SuccessChanges

Summary

  1. [Compiler-rt][AArch64] Workaround for .cfi_startproc assembler parser bug. (details)
  2. Re-apply "[CMake][compiler-rt][AArch64] Avoid preprocessing LSE builtins separately" (details)
  3. [Analysis] Use llvm::erase_value (NFC) (details)
Commit 3000c19df64f89ff319590f3a6e4d6b93d20983d by raul
[Compiler-rt][AArch64] Workaround for .cfi_startproc assembler parser bug.

Put .cfi_startproc on a new line to avoid hitting the assembly parser bug in MasmParser::parseDirectiveCFIStartProc().

Reviewed By: tambre

Differential Revision: https://reviews.llvm.org/D93236
The file was modifiedcompiler-rt/lib/builtins/aarch64/lse.S
The file was modifiedcompiler-rt/lib/builtins/assembly.h
Commit a72d462eb9b9f5698e081c8ccf3bc7fa3e35da08 by raul
Re-apply "[CMake][compiler-rt][AArch64] Avoid preprocessing LSE builtins separately"

aa772fc85e0f526615c78b9c3979c2be945a754c (D92530) has landed fixing relocations on Darwin.
3000c19df64f89ff319590f3a6e4d6b93d20983d (D93236) has landed working around an assembly parser bug on Darwin.
Previous quick-fix d9697c2e6b153ac7dc40a69450d9b672f71b1029 (D93198) included in this commit.

Invoking the preprocessor ourselves is fragile and would require us to replicate CMake's handling of definitions, compiler flags, etc for proper compatibility.
In my toolchain builds this notably resulted in a bunch of warnings from unused flags as my CMAKE_C_FLAGS includes CPU-specific optimization options.
Notably this part was already duplicating the logic for VISIBILITY_HIDDEN define.

Instead, symlink the files and set the proper set of defines on each.
This should also be faster as we avoid invoking the compiler multiple times.

Fixes https://llvm.org/PR48494

Differential Revision: https://reviews.llvm.org/D93278
The file was modifiedcompiler-rt/cmake/Modules/CompilerRTDarwinUtils.cmake
The file was modifiedcompiler-rt/lib/builtins/aarch64/lse.S
The file was modifiedcompiler-rt/lib/builtins/CMakeLists.txt
Commit ddc5a5920e5d00336ee12f9c4682969ac18bca7f by kazu
[Analysis] Use llvm::erase_value (NFC)
The file was modifiedllvm/include/llvm/Analysis/IntervalIterator.h
The file was modifiedllvm/lib/Analysis/LoopPass.cpp
The file was modifiedllvm/lib/Analysis/AssumptionCache.cpp