SuccessChanges

Summary

  1. Removed scei-ps4 builders. (details)
  2. More builders.py cleaning. (details)
  3. Removed unused code from LLDBBuilder. (details)
  4. Cleaned status.py from old notifiers. (details)
Commit 3c45e09f5c0981f7cbd442f1456efeee3dad426e by gkistanova
Removed scei-ps4 builders.
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
The file was modifiedbuildbot/osuosl/master/config/slaves.py (diff)
Commit d1f7315cc1aa2fb32ea19fd1f84803a8798a17f7 by gkistanova
More builders.py cleaning.
The file was modifiedbuildbot/osuosl/master/config/builders.py (diff)
Commit 97c8bbea257b4facd1b8cb19cd8d6a6ae8119776 by gkistanova
Removed unused code from LLDBBuilder.
The file was modifiedzorg/buildbot/builders/LLDBBuilder.py (diff)
Commit 29eb67693d9ac60038068870cb44710d81073021 by gkistanova
Cleaned status.py from old notifiers.
The file was modifiedbuildbot/osuosl/master/config/status.py (diff)

Summary

  1. [InstCombine] Regenerate test checks (NFC) (details)
  2. [InstCombine] Add more tests for select op replacement (NFC) (details)
  3. [DemandedBits] Add braces to large if (NFC) (details)
  4. [DemandedBits][BDCE] Add support for min/max intrinsics (details)
  5. [ORC] Make MaterializationResponsibility immovable, pass by unique_ptr. (details)
  6. [libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h. (details)
  7. [EarlyCSE] Equivalent SELECTs should hash equally (details)
  8. [DSE] Switch to MemorySSA-backed DSE by default. (details)
  9. [ELF] Make two PPC64.cpp variables constexpr. NFC (details)
  10. [flang] Fix assert on constant folding of extended types (details)
  11. Use pragmas to work around MSVC x86_32 debug miscompile bug (details)
  12. [AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0. (details)
  13. Fix wrong comment about enabling optimizations to work around a bug (details)
  14. Remove unused variable introduce in 0448d11a06b451a causing build (details)
  15. [obj2yaml] Add support for dumping the .debug_ranges section. (details)
  16. [lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform (details)
  17. [mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp (details)
  18. scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot (details)
  19. scudo: Remove the THREADLOCAL macro. (details)
  20. Remove dependency on clangASTMatchers. (details)
  21. Revert "[EarlyCSE] Equivalent SELECTs should hash equally" (details)
  22. [Asan] Fix __asan_update_allocation_context (details)
  23. [EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6 (details)
  24. libclc/spirv: Add missing files from D85911 (details)
  25. [NFC][MLInliner] Presort instruction successions. (details)
  26. [DebugInfo] Fixing CodeView assert related to lowerBound field of DISubrange. (details)
  27. [EarlyCSE] Remove unnecessary operand swap. (details)
  28. [NFC][PowerPC] Add tests of constants-i64. (details)
  29. [Clang] Clarify __builtin_memcpy_inline documentation (details)
  30. [CodeGen] [WinException] Remove a redundant explicit section switch for aarch64 (details)
  31. [MC] [Win64EH] Canonicalize ARM64 unwind opcodes (details)
  32. [MC] [Win64EH] Write packed ARM64 epilogues if possible (details)
  33. [NewPM] Introduce PreserveCFG check (details)
  34. [SVE][CodeGen] Fix InlineFunction for scalable vectors (details)
  35. [mlir][Linalg] Make LinalgBaseTilingPattern not delete the original operation. (details)
  36. [clang][Sparc] Default to -mcpu=v9 for Sparc V8 on Solaris (details)
  37. Uncapitalize word in LanguageExtensions.rst (details)
  38. [mlir] Fix generation of AVX512 dialect documentation (details)
  39. [MC] [Win64EH] Fix builds with expensive checks enabled (details)
  40. Revert "[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr." (details)
Commit adb738899e6378ae0023acb19cde57a585dce502 by nikita.ppv
[InstCombine] Regenerate test checks (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/select-binop-cmp.ll
Commit 476836331f7d31ca46779742dccf2e26698b94ed by nikita.ppv
[InstCombine] Add more tests for select op replacement (NFC)
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit 99e78cb7185db1a15afd33020a1e026dc7ac5e1b by nikita.ppv
[DemandedBits] Add braces to large if (NFC)

While the if only contains a single statement, it happens to be
a huge switch. Add braces to make this code easier to read.
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp
Commit a5168bdb4a25485ac62e18bdc538b4842bc9fbd9 by nikita.ppv
[DemandedBits][BDCE] Add support for min/max intrinsics

Add DemandedBits / BDCE support for min/max intrinsics: If the low
bits are not demanded in the result, they also aren't demanded in
the operands.

Differential Revision: https://reviews.llvm.org/D87161
The file was modifiedllvm/lib/Analysis/DemandedBits.cpp
The file was modifiedllvm/test/Transforms/BDCE/intrinsics.ll
Commit c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd by Lang Hames
[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr.

Making MaterializationResponsibility instances immovable allows their
associated VModuleKeys to be updated by the ExecutionSession while the
responsibility is still in-flight. This will be used in the upcoming
removable code feature to enable safe merging of resource keys even if
there are active compiles using the keys being merged.
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp
Commit cb19e8c6d192a108b72ab07362921864a9e244f9 by sivachandra
[libc][obvious] Include Sqrt.h in SqrtLongDoubleX86.h.

This makes SqrtLongDoubleX86.h includable by itself.
The file was modifiedlibc/utils/FPUtil/SqrtLongDoubleX86.h
Commit c9826829d74e637163fdb0351870b8204e62d6e6 by bryan.chan
[EarlyCSE] Equivalent SELECTs should hash equally

DenseMap<SimpleValue> assumes that, if its isEqual method returns true
for two elements, then its getHashValue method must return the same value
for them. This invariant is broken when one SELECT node is a min/max
operation, and the other can be transformed into an equivalent min/max by
inverting its predicate and swapping its operands. This patch fixes an
assertion failure that would occur intermittently while compiling the
following IR:

    define i32 @t(i32 %i) {
      %cmp = icmp sle i32 0, %i
      %twin1 = select i1 %cmp, i32 %i, i32 0
      %cmpinv = icmp sgt i32 0, %i
      %twin2 = select i1 %cmpinv,  i32 0, i32 %i
      %sink = add i32 %twin1, %twin2
      ret i32 %sink
    }

Differential Revision: https://reviews.llvm.org/D86843
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
Commit fb109c42d91c30c8c7497ef1fd7aff6f2969c6e7 by flo
[DSE] Switch to MemorySSA-backed DSE by default.

The tests have been updated and I plan to move them from the MSSA
directory up.

Some end-to-end tests needed small adjustments. One difference to the
legacy DSE is that legacy DSE also deletes trivially dead instructions
that are unrelated to memory operations. Because MemorySSA-backed DSE
just walks the MemorySSA, we only visit/check memory instructions. But
removing unrelated dead instructions is not really DSE's job and other
passes will clean up.

One noteworthy change is in llvm/test/Transforms/Coroutines/ArgAddr.ll,
but I think this comes down to legacy DSE not handling instructions that
may throw correctly in that case. To cover this with MemorySSA-backed
DSE, we need an update to llvm.coro.begin to treat it's return value to
belong to the same underlying object as the passed pointer.

There are some minor cases MemorySSA-backed DSE currently misses, e.g. related
to atomic operations, but I think those can be implemented after the switch.

This has been discussed on llvm-dev:
http://lists.llvm.org/pipermail/llvm-dev/2020-August/144417.html

For the MultiSource/SPEC2000/SPEC2006 the number of eliminated stores
goes from ~17500 (legayc DSE) to ~26300 (MemorySSA-backed). More numbers
and details in the thread on llvm-dev.

Impact on CTMark:
```
                                     Legacy Pass Manager
                        exec instrs    size-text
O3                       + 0.60%        - 0.27%
ReleaseThinLTO           + 1.00%        - 0.42%
ReleaseLTO-g.            + 0.77%        - 0.33%
RelThinLTO (link only)   + 0.87%        - 0.42%
RelLO-g (link only)      + 0.78%        - 0.33%
```
http://llvm-compile-time-tracker.com/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions
```
                                     New Pass Manager
                       exec instrs.   size-text
O3                       + 0.95%       - 0.25%
ReleaseThinLTO           + 1.34%       - 0.41%
ReleaseLTO-g.            + 1.71%       - 0.35%
RelThinLTO (link only)   + 0.96%       - 0.41%
RelLO-g (link only)      + 2.21%       - 0.35%
```
http://195.201.131.214:8000/compare.php?from=3f22e96d95c71ded906c67067d75278efb0a2525&to=ae8be4642533ff03803967ee9d7017c0d73b0ee0&stat=instructions

Reviewed By: asbirlea, xbolva00, nikic

Differential Revision: https://reviews.llvm.org/D87163
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/launder.invariant.group.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/X86/gather-null-pointer.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/invariant.start.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr47285-not-overwritten-on-all-exit-paths.ll
The file was modifiedllvm/test/Analysis/BasicAA/modref.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreEnd.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-missing-debugloc.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/pr11390.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/OverwriteStoreBegin.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/cs-cs-aliasing.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/combined-partial-overwrites.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-MemCpy.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline-enable-matrix.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debuginfo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/dominate.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/libcalls.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-preservation.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-unknown-sizes.ll
The file was modifiedclang/test/CodeGenObjC/exceptions.m
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/lifetime.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/tail-byval.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-overlapping.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/crash.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-partial.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/operand-bundles.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/mda-with-dbg-values.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/merge-stores-big-endian.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memintrinsics.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/noop-stores.ll
The file was modifiedllvm/test/Other/opt-Os-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-09-06-EndOfFunction.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/simple.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-memoryphis.ll
The file was modifiedllvm/test/Transforms/MemCpyOpt/memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-unreachable.ll
The file was modifiedllvm/test/Transforms/Coroutines/ArgAddr.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/no-targetdata.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-loops.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-exceptions.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/const-pointers.ll
The file was modifiedllvm/test/Other/opt-O2-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memcpy-complete-overwrite.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/atomic-todo.ll
The file was modifiedllvm/test/Transforms/Coroutines/coro-retcon.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath-throwing.ll
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2011-03-25-DSEMiscompile.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-throwing.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-captures.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/2016-07-17-UseAfterFree.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/int_sideeffect.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-malloc-free.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memoryssa-scan-limit.ll
The file was modifiedllvm/test/Other/opt-O3-pipeline.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/stats.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/fence-todo.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-multipath.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/multiblock-overlap.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/memset-and-memcpy.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/calloc-store.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/debug-counter.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/PartialStore2.ll
The file was modifiedllvm/test/Transforms/DeadStoreElimination/MSSA/inst-limits.ll
Commit 485f3f35cc511637661619967319eafb932df5d5 by i
[ELF] Make two PPC64.cpp variables constexpr. NFC

Why are they mutable? :)
The file was modifiedlld/ELF/Arch/PPC64.cpp
Commit b34f116856306d97aa9244a46eb1643a8ddd49a8 by psteinfeld
[flang] Fix assert on constant folding of extended types

When we define a derived type that extends another derived type, we can then
create a structure constructor that contains values for the fields of both the
child type and its parent.  The compiler's internal representation of that
value contains the name of the parent type where a component name would
normally appear.  This caused an assert during contant folding.

There are three cases for components that appear in structure constructors.
The first is the normal case of a component appearing in a structure
constructor for its type.

  The second is a component of the parent (or grandparent) type appearing in a
  structure constructor for the child type.

  The third is the parent type component, which can appear in the structure
  constructor of its child.

There are also cases where the component can be arrays.

I created the test case folding12.f90 that covers all of these cases and
modified the code to handle them.

Most of my changes were to the "Find()" method of the type
"StructureConstructor" where I added code to cover the second and third cases
described above.  To handle these cases, I needed to create a
"StructureConstructor" for the parent type component and return it.  To handle
returning a newly created "StructureConstructor", I changed the return type of
"Find()" to be "std::optional" rather than an ordinary pointer.

This change supersedes D86172.

Differential Revision: https://reviews.llvm.org/D87151
The file was modifiedflang/lib/Evaluate/fold-implementation.h
The file was modifiedflang/include/flang/Evaluate/type.h
The file was modifiedflang/lib/Evaluate/expression.cpp
The file was addedflang/test/Evaluate/folding12.f90
The file was modifiedflang/include/flang/Evaluate/expression.h
The file was modifiedflang/lib/Evaluate/type.cpp
Commit 4e3edef4b8b637c0c76897497eb7c66f00157210 by rnk
Use pragmas to work around MSVC x86_32 debug miscompile bug

Halide users reported this here: https://llvm.org/pr46176
I reported the issue to MSVC here:
https://developercommunity.visualstudio.com/content/problem/1179643/msvc-copies-overaligned-non-trivially-copyable-par.html

This codepath is apparently not covered by LLVM's unit tests, so I added
coverage in a unit test.

If we want to support this configuration going forward, it means that is
in general not safe to pass a SmallVector<T, N> by value if alignof(T)
is greater than 4. This doesn't appear to come up often because passing
a SmallVector by value is inefficient and not idiomatic: it copies the
inline storage. In this case, the SmallVector<LLT,4> is captured by
value by a lambda, and the lambda is passed by value into std::function,
and that's how we hit the bug.

Differential Revision: https://reviews.llvm.org/D87475
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/LegalizerInfoTest.cpp
Commit 0448d11a06b451a63a8f60408fec613ad24801ba by Amara Emerson
[AArch64][GlobalISel] Don't emit a branch for a fallthrough G_BR at -O0.

With optimizations we leave the decision to eliminate fallthrough branches to
bock placement, but at -O0 we should do it in the selector to save code size.

This regressed -O0 with a recent change to a combiner.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-binop.mir
The file was modifiedllvm/test/CodeGen/AArch64/unwind-preserved.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-jump-table-brjt-constrain.mir
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-returnaddress-liveins.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/select-xor.mir
Commit 2c73bef7fad4bb92213c9e8ace7d98a231efe027 by rnk
Fix wrong comment about enabling optimizations to work around a bug
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalityPredicates.cpp
Commit 035396197a5f129c5ec42e9e46a85c32fa1c1b84 by zarko
Remove unused variable introduce in 0448d11a06b451a causing build
failures with -Werror on.
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 0e47a8d17fe85b4ab810a17cde4178b2729f2363 by Xing
[obj2yaml] Add support for dumping the .debug_ranges section.

This patch adds support for dumping the .debug_ranges section to
elf2yaml.

Reviewed By: jhenderson

Differential Revision: https://reviews.llvm.org/D87429
The file was modifiedllvm/tools/obj2yaml/elf2yaml.cpp
The file was addedllvm/test/tools/obj2yaml/ELF/DWARF/debug-ranges.yaml
Commit bc0a35f3b7dd45077d16b064c8d5c37e6a907d58 by Jonas Devlieghere
[lldb] Add missing LLDB_REGISTER_CONSTRUCTOR in SBPlatform

This fixes the following assertion in TestPlatformPython.py.

  Assertion failed: (id != 0 && "Forgot to add function to
  registry?")
The file was modifiedlldb/source/API/SBPlatform.cpp
Commit 0a391c60793bae25804d2a82e5a26e2b9c7a69a1 by ravishankarm
[mlir][Analysis] Allow Slice Analysis to work with linalg::LinalgOp

Differential Revision: https://reviews.llvm.org/D87307
The file was modifiedmlir/test/lib/IR/CMakeLists.txt
The file was addedmlir/test/lib/IR/TestSlicing.cpp
The file was modifiedmlir/tools/mlir-opt/mlir-opt.cpp
The file was modifiedmlir/lib/Analysis/SliceAnalysis.cpp
The file was addedmlir/test/IR/slice.mlir
Commit 84c2c4977dfe89112fd564a69c693d271663229c by peter
scudo: Introduce a new mechanism to let Scudo access a platform-specific TLS slot

An upcoming change to Scudo will change how we use the TLS slot
in tsd_shared.h, which will be a little easier to deal with if
we can remove the code path that calls pthread_getspecific and
pthread_setspecific. The only known user of this code path is Fuchsia.

We can't eliminate this code path by making Fuchsia use ELF TLS
because although Fuchsia supports ELF TLS, it is not supported within
libc itself. To address this, Roland McGrath on the Fuchsia team has
proposed that Scudo will optionally call a platform-provided function
to access a TLS slot reserved for Scudo. Android also has a reserved
TLS slot, but the code that accesses the TLS slot lives in Scudo.

We can eliminate some complexity and duplicated code by having Android
use the same mechanism that was proposed for Fuchsia, which is what
this change does. A separate change to Android implements it.

Differential Revision: https://reviews.llvm.org/D87420
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_shared.h
The file was modifiedcompiler-rt/lib/scudo/standalone/linux.h
Commit d876c7c8ec5387aac14041cace1833b243e5b335 by peter
scudo: Remove the THREADLOCAL macro.

Replace all remaining uses with thread_local, which is a C++11
standard feature.

Differential Revision: https://reviews.llvm.org/D87478
The file was modifiedcompiler-rt/lib/scudo/standalone/internal_defs.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_exclusive.h
Commit b22d45049682d1461b6b786f159681e2e5c2ce24 by michael.hliao
Remove dependency on clangASTMatchers.

- It seems no long required for shared library builds.
The file was modifiedclang/lib/CodeGen/CMakeLists.txt
Commit 39dc75f66c60025539940ff47b105418645c025f by michael.hliao
Revert "[EarlyCSE] Equivalent SELECTs should hash equally"

This reverts commit c9826829d74e637163fdb0351870b8204e62d6e6 as it
breaks regression tests.
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
Commit 3f7c3e84ad69f1ffa767b1b7ce3aa36de6c30f87 by Vitaly Buka
[Asan] Fix __asan_update_allocation_context

Update both thread and stack.
Update thread and stack as atomic operation.
Keep all 32bit of TID as now we have enough bits.

Depends on D87135.

Reviewed By: morehouse

Differential Revision: https://reviews.llvm.org/D87217
The file was modifiedcompiler-rt/test/asan/TestCases/asan_update_allocation.cpp
The file was modifiedcompiler-rt/lib/asan/asan_allocator.cpp
The file was modifiedcompiler-rt/lib/asan/asan_allocator.h
Commit 41e68f7ee7b3bb33e9acb0502339a858806e8523 by michael.hliao
[EarlyCSE] Fix and recommit the revised c9826829d74e637163fdb0351870b8204e62d6e6

In addition to calculate hash consistently by swapping SELECT's
operands, we also need to inverse the select pattern favor to match the
original logic.

[EarlyCSE] Equivalent SELECTs should hash equally

DenseMap<SimpleValue> assumes that, if its isEqual method returns true
for two elements, then its getHashValue method must return the same value
for them. This invariant is broken when one SELECT node is a min/max
operation, and the other can be transformed into an equivalent min/max by
inverting its predicate and swapping its operands. This patch fixes an
assertion failure that would occur intermittently while compiling the
following IR:

    define i32 @t(i32 %i) {
      %cmp = icmp sle i32 0, %i
      %twin1 = select i1 %cmp, i32 %i, i32 0
      %cmpinv = icmp sgt i32 0, %i
      %twin2 = select i1 %cmpinv,  i32 0, i32 %i
      %sink = add i32 %twin1, %twin2
      ret i32 %sink
    }

Differential Revision: https://reviews.llvm.org/D86843
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/test/Transforms/EarlyCSE/commute.ll
Commit 16ba78ee627c3fe66906349e8c90ee8cc1224298 by jano.vesely
libclc/spirv: Add missing files from D85911

Fixes: 060c8e083dd637866854acb6a0823c45b2ef68ef
Signed-off-by: Jan Vesely <jan.vesely@rutgers.edu>
The file was addedlibclc/spirv64/lib/math/fma.cl
The file was addedlibclc/spirv64/lib/math/fma.inc
The file was addedlibclc/spirv/lib/math/fma.cl
The file was addedlibclc/spirv/lib/math/fma.inc
Commit da9244882804ec6479aac70334fd7f7b4baf855e by mtrofin
[NFC][MLInliner] Presort instruction successions.

Differential Revision: https://reviews.llvm.org/D87489
The file was modifiedllvm/lib/Analysis/InlineSizeEstimatorAnalysis.cpp
Commit e45b0708ae81ace27de53f12b32a80601cb12bf3 by SourabhSingh.Tomar
[DebugInfo] Fixing CodeView assert related to lowerBound field of DISubrange.

    This is to fix CodeView build failure https://bugs.llvm.org/show_bug.cgi?id=47287
    after DIsSubrange upgrade D80197

    Assert condition is now removed and Count is calculated in case LowerBound
    is absent or zero and Count or UpperBound is constant. If Count is unknown
    it is later handled as VLA (currently Count is set to zero).

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D87406
The file was modifiedllvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
Commit f787fe15d8e1cb63b40235e781cd7c2e130bbcd6 by michael.hliao
[EarlyCSE] Remove unnecessary operand swap.

- As min/max are commutative operators, there is no need to swap
  operands. That breaks the convention calculating the hash value.
The file was modifiedllvm/test/CodeGen/AMDGPU/sad.ll
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
Commit 525c83cee00a3a92d9b1a9d6f39ee4fd6c0c798d by esme.yi
[NFC][PowerPC] Add tests of constants-i64.
The file was modifiedllvm/test/CodeGen/PowerPC/constants-i64.ll
Commit e38be7091ee3d00430652aaa7b66ba3fc8394916 by gchatelet
[Clang] Clarify __builtin_memcpy_inline documentation

This patch updates the documentation about `__builtin_memcpy_inline` and reorders the sections so it is more consitent and understandable.

Differential Revision: https://reviews.llvm.org/D87458
The file was modifiedclang/docs/LanguageExtensions.rst
Commit 46416f08031f6fcaccd9f51430f7a71c5f510495 by martin
[CodeGen] [WinException] Remove a redundant explicit section switch for aarch64

The following EmitWinEHHandlerData() implicitly switches to .xdata, just
like on x86_64.

This became orphaned from the original code requiring it in
0b61d220c9b1f0 / https://reviews.llvm.org/D61095.

Differential Revision: https://reviews.llvm.org/D87447
The file was modifiedllvm/test/CodeGen/AArch64/win64-jumptable.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/WinException.cpp
The file was modifiedllvm/test/CodeGen/AArch64/wineh-mingw.ll
The file was modifiedllvm/test/CodeGen/AArch64/wineh1.mir
Commit 700fbe591ac0f29c76e9f2bd77d752d4bd56d274 by martin
[MC] [Win64EH] Canonicalize ARM64 unwind opcodes

Convert 2-byte opcodes to equivalent 1-byte ones.

Adjust the existing exhaustive testcase to avoid being altered by
the simplification rules (to keep that test exercising all individual
opcodes).

Fix the assembler parser limits for register pairs; for .seh_save_regp
and .seh_save_regp_x, we can allow up to x29, for a x29+x30 pair
(which gets remapped to the UOP_SaveFPLR(X) opcodes), for .seh_save_fregp
and .seh_save_fregpx, allow up to d14+d15.

Not creating .seh_save_next for float register pairs, as the
actual unwinder implementation in current versions of Windows is buggy
for that case.

This gives a minimal but measurable size reduction. (For a 6.5 MB
DLL with 300 KB .xdata, the .xdata shrinks by 48 bytes. The opcode
sequences are padded to a 4 byte boundary, so very small improvements
might not end up mattering directly.)

Differential Revision: https://reviews.llvm.org/D87367
The file was addedllvm/test/MC/AArch64/seh-optimize.s
The file was modifiedllvm/lib/MC/MCWin64EH.cpp
The file was modifiedllvm/test/MC/AArch64/seh.s
The file was modifiedllvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
Commit 1308bb99e06752ab0b5175c92da31083f91af921 by martin
[MC] [Win64EH] Write packed ARM64 epilogues if possible

This gives a pretty substantial size reduction; for a 6.5 MB
DLL with 300 KB .xdata, the .xdata shrinks by 66 KB.

Differential Revision: https://reviews.llvm.org/D87369
The file was modifiedllvm/test/CodeGen/AArch64/wineh7.mir
The file was modifiedllvm/include/llvm/MC/MCWinEH.h
The file was modifiedllvm/test/CodeGen/AArch64/wineh3.mir
The file was modifiedllvm/test/CodeGen/AArch64/wineh6.mir
The file was addedllvm/test/MC/AArch64/seh-packed-epilog.s
The file was modifiedllvm/test/MC/AArch64/seh.s
The file was modifiedllvm/lib/MC/MCWin64EH.cpp
Commit 28012e00d80b994ef0709377da15e2b25e6c0b72 by yrouban
[NewPM] Introduce PreserveCFG check

Check that all passes, which report they preserve CFG,
are really preserving CFG.
A new standard instrumentation is introduced. It can be
switched on/off by the flag verify-cfg-preserved, which
is on by default for debug builds.

Reviewers: kuhar, fedor.sergeev

Differential Revision: https://reviews.llvm.org/D81558
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp
Commit 1e1770a07ec0f6a3576362ea5eb97aedd33f4b26 by david.sherwood
[SVE][CodeGen] Fix InlineFunction for scalable vectors

When inlining functions containing allocas of scalable vectors we
cannot specify the size in the lifetime markers, since we don't
know this at compile time.

Added new test here:

  test/Transforms/Inline/AArch64/sve-alloca-merge.ll

Differential Revision: https://reviews.llvm.org/D87139
The file was addedllvm/test/Transforms/Inline/AArch64/sve-alloca-merge.ll
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
Commit d380b582f7f04f7635b1fbdb8347a6095660a1b6 by ravishankarm
[mlir][Linalg] Make LinalgBaseTilingPattern not delete the original operation.

The LinalgTilingPattern class dervied from the base deletes the
original operation. This allows for the use case where the more
transformations are necessary on the original operation after
tiling. In such cases the pattern can derive from
LinalgBaseTilingPattern instead of LinalgTilingPattern.

Differential Revision: https://reviews.llvm.org/D87308
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Transforms.cpp
Commit 76e85ae268f8e64540703b0d1710d27ef0d36040 by ro
[clang][Sparc] Default to -mcpu=v9 for Sparc V8 on Solaris

As reported in Bug 42535, `clang` doesn't inline atomic ops on 32-bit
Sparc, unlike `gcc` on Solaris.  In a 1-stage build with `gcc`, only two
testcases are affected (currently `XFAIL`ed), while in a 2-stage build more
than 100 tests `FAIL` due to this issue.

The reason for this `gcc`/`clang` difference is that `gcc` on 32-bit
Solaris/SPARC defaults to `-mpcu=v9` where atomic ops are supported, unlike
with `clang`'s default of `-mcpu=v8`.  This patch changes `clang` to use
`-mcpu=v9` on 32-bit Solaris/SPARC, too.

Doing so uncovered two bugs:

`clang -m32 -mcpu=v9` chokes with any Solaris system headers included:

  /usr/include/sys/isa_defs.h:461:2: error: "Both _ILP32 and _LP64 are defined"
  #error "Both _ILP32 and _LP64 are defined"

While `clang` currently defines `__sparcv9` in a 32-bit `-mcpu=v9`
compilation, neither `gcc` nor Studio `cc` do.  In fact, the Studio 12.6
`cc(1)` man page clearly states:

            These predefinitions are valid in all modes:
  [...]
               __sparcv8 (SPARC)
               __sparcv9 (SPARC -m64)

At the same time, the patch defines `__GCC_HAVE_SYNC_COMPARE_AND_SWAP_[1248]`
for a 32-bit Sparc compilation with any V9 cpu.  I've also changed
`MaxAtomicInlineWidth` for V9, matching what `gcc` does and the Oracle
Developer Studio 12.6: C User's Guide documents (Ch. 3, Support for Atomic
Types, 3.1 Size and Alignment of Atomic C Types).

The two testcases that had been `XFAIL`ed for Bug 42535 are un-`XFAIL`ed
again.

Tested on `sparcv9-sun-solaris2.11` and `amd64-pc-solaris2.11`.

Differential Revision: https://reviews.llvm.org/D86621
The file was modifiedcompiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp
The file was modifiedclang/lib/Basic/Targets/Sparc.cpp
The file was modifiedcompiler-rt/test/profile/Posix/instrprof-gcov-parallel.test
The file was modifiedclang/lib/Basic/Targets/Sparc.h
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/test/Preprocessor/predefined-arch-macros.c
Commit b8ea47a38039c57e863e3047c33d8584e21360f0 by noreply
Uncapitalize word in LanguageExtensions.rst
The file was modifiedclang/docs/LanguageExtensions.rst
Commit a68673cc067a190f5a9d0f0e3e4837601caf4504 by marius.brehler
[mlir] Fix generation of AVX512 dialect documentation

This changes adjusts the documentation generation for the AVX512 dialect. The machanism to generate documentation was changed with https://github.com/llvm/llvm-project/commit/1a083f027f33f4014247df4c0e757e23d5cdab64.

Reviewed By: nicolasvasilache

Differential Revision: https://reviews.llvm.org/D87460
The file was modifiedmlir/include/mlir/Dialect/AVX512/CMakeLists.txt
Commit e6419d320d501077d1c5e1e7e1291a1ec6573877 by martin
[MC] [Win64EH] Fix builds with expensive checks enabled

This fixes a failed assert if expensive checks are enabled,
since 1308bb99e06752ab0b5175c92da31083f91af921.
The file was modifiedllvm/lib/MC/MCWin64EH.cpp
Commit c0825fa5fc367bb7dc04a4b9dd4cc62abde04521 by flo
Revert "[ORC] Make MaterializationResponsibility immovable, pass by unique_ptr."

This reverts commit c74900ca67241bf963b7a4cfa1fae8eadf6bb8cd.

This appears to be breaking some builds on macOS and has been causing
build failures on Green Dragon (see below). I am reverting this for now,
to unblock testing on Green Dragon.

http://green.lab.llvm.org/green/job/clang-stage1-cmake-RA-incremental/18144/console

[65/187] /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iexamples/ThinLtoJIT -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT -Iinclude -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -O3  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.9    -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -MF examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o.d -o examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp
FAILED: examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++  -DBUILD_EXAMPLES -DGTEST_HAS_RTTI=0 -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -Iexamples/ThinLtoJIT -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT -Iinclude -I/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include -fPIC -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -pedantic -Wno-long-long -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wstring-conversion -fdiagnostics-color -O3  -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -mmacosx-version-min=10.9    -fno-exceptions -fno-rtti -UNDEBUG -std=c++14 -MD -MT examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -MF examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o.d -o examples/ThinLtoJIT/CMakeFiles/ThinLtoJIT.dir/ThinLtoDiscoveryThread.cpp.o -c /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp
In file included from /Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoDiscoveryThread.cpp:7:
/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/examples/ThinLtoJIT/ThinLtoInstrumentationLayer.h:37:68: error: non-virtual member function marked 'override' hides virtual member function
  void emit(MaterializationResponsibility R, ThreadSafeModule TSM) override;
                                                                   ^
/Users/buildslave/jenkins/workspace/clang-stage1-cmake-RA-incremental/llvm-project/llvm/include/llvm/ExecutionEngine/Orc/Layer.h:103:16: note: hidden overloaded virtual function 'llvm::orc::IRLayer::emit' declared here: type mismatch at 1st parameter ('std::unique_ptr<MaterializationResponsibility>' vs 'llvm::orc::MaterializationResponsibility')
  virtual void emit(std::unique_ptr<MaterializationResponsibility> R,
               ^
1 error generated.
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRTransformLayer.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/CompileOnDemandLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Layer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Speculation.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/LazyReexports.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/IRCompileLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/LazyCallThroughAndReexportsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/Speculation.cpp
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectTransformLayer.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Layer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h