[AArch64][GlobalISel] Remove -global-isel-abort=2 from a number of tests. NFC
This cleans up some -global-isel-abort=2 uses, either removing the unnecessary
flags or cleaning up the tests that use them.
[SPIRV] Emit intrinsics for globals only in function that references them
In the SPIRV backend, the SPIRVEmitIntrinscs::processGlobalValue
function adds intrinsic calls for every global variable of the module,
on every function.
These intrinsics are used to keep track of global variables, their types and
initializers.
In SPIRV everything is an instruction (even globals/constants). We currently
represent these global entities as individual instructions on every function.
Later, the `SPIRVModuleAnalysis` collects these entities and maps function _local_ registers
to _global_ registers. The `SPIRVAsmPrinter` is in charge of mapping back the _local_
registers to the appropiate _global_ register.
These instructions associated with global entities on functions that do not reference them leads
to a bloated intermediate representation and high memory consumption (as it happend
in https://github.com/llvm/llvm-project/issues/170339).
[25 lines not shown]
[libc++][NFC] Don't use std::distance in std::equal (#177113)
We don't need to use `std::distance`, since we know for a fact that we
have random access iterators in that place. Instead, we can just
subtract the iterators, avoiding a bunch of template machinery and
imrpoving compile times a bit.
[flang] fix DIR IVDEP for array assignments inside loops (#177940)
The access attribute set on hlfir.assign for arrays was lost in
InlineHLFIRAssign.cpp. This patch propagates it to the creates loads and
stores.
[compiler-rt][aarch64][sme] Add SVE/FP variant of `__arm_sc_memcpy` (#127093)
When SVE is available use the `-sve` variant of memcpy from AOR for
`__arm_sc_memcpy`. From:
https://github.com/ARM-software/optimized-routines/blob/71e36403858ab3ff743fcde336fb31890e57af7e/string/aarch64/memcpy-sve.S
This implementation uses FPR/ZPR load/store instructions to do the copy,
so should not cause memory hazards if called in streaming mode (with the
memory later being accessed in the streaming mode with SVE/SME
instructions).
The implementation has been slightly modified from AOR to use local
labels (matching other compiler-rt functions) but still passes the
memcpy and memmove tests from AOR.
[analyzer][docs] Add basic description of checker 'core.CallAndMessage' (#177179)
The checker had very little documentation. Now a more detailed (but
still not much) description of the features and options is added.