Changes

Summary

  1. [CMake] Don't LTO optimize targets on Darwin either (details)
  2. [TargetLowering][ARM] Don't alter opaque constants in TargetLowering::ShrinkDemandedConstant. (details)
  3. [InstSimplify][test] move tests that don't require InstCombine; NFC (details)
  4. [InstSimplify][test] add test for extract of splat; NFC (details)
  5. [MLIR][SCF] Inline single block ExecuteRegionOp (details)
  6. Precommit tests for context senstive attribute dropping (details)
  7. [InstSimplify] move extract with undef index fold; NFC (details)
  8. [AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP) (details)
  9. [NFC][SimplifyCFG] Revisit tail-merge-resume.ll test (details)
  10. [libcxx][ranges] Add contiguous_range. (details)
  11. [libcxx][nfc] Add one more test case for contiguous_range. (details)
  12. Attempt to disable MLIR JIT tests on PowerPC to unbreak the bot (details)
Commit aac4de989ee98605f1ce918c8e541c9be0f52324 by phosek
[CMake] Don't LTO optimize targets on Darwin either

This is a follow up to D102732 which also expands the logic to Darwin.

Differential Revision: https://reviews.llvm.org/D104764
The file was modifiedllvm/cmake/modules/AddLLVM.cmake
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit 03f9e04bc35c674337ec04d629260b4a283c1f25 by craig.topper
[TargetLowering][ARM] Don't alter opaque constants in TargetLowering::ShrinkDemandedConstant.

We don't constant fold based on demanded bits elsewhere in
SimplifyDemandedBits, so I don't think we should shrink them either.

The affected ARM test changes because a constant become non-opaque
and eventually enabled some constant folding. This no longer happens.
I checked and InstCombine is able to simplify this test. I'm not sure exactly
what it was trying to test.

Reviewed By: lebedev.ri, dmgreen

Differential Revision: https://reviews.llvm.org/D104832
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/test/CodeGen/ARM/select-imm.ll
Commit e13c62a10371dea7d4cfd491bb2ef3b779e7526f by spatel
[InstSimplify][test] move tests that don't require InstCombine; NFC

These are existing/missing simplifications, so the tests
don't need the full power of InstCombine.
The file was modifiedllvm/test/Transforms/InstSimplify/vscale.ll
The file was modifiedllvm/test/Transforms/InstSimplify/vscale-inseltpoison.ll
The file was modifiedllvm/test/Transforms/InstCombine/vscale_extractelement.ll
The file was modifiedllvm/test/Transforms/InstCombine/vscale_extractelement-inseltpoison.ll
Commit 3ba090e5f69ae7bd6548dfdb4b7124d0470cfd48 by spatel
[InstSimplify][test] add test for extract of splat; NFC

This is shown in:
https://llvm.org/PR50817
The file was modifiedllvm/test/Transforms/InstSimplify/extract-element.ll
Commit 44985872b8a058272741703ee63bf7ca34212449 by gh
[MLIR][SCF] Inline single block ExecuteRegionOp

This commit adds a canonicalization pass which inlines any single block execute region

Differential Revision: https://reviews.llvm.org/D104865
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
The file was modifiedmlir/test/Dialect/SCF/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
Commit e9a3637c0ca4772aeee55cd09d98a68b19e18621 by anna
Precommit tests for context senstive attribute dropping

Precommit tests from D104641.
The patch will fix the callsites by dropping the context-sensitive
attributes.

Reviewed-By: Self
The file was modifiedllvm/test/Transforms/SimplifyCFG/speculate-call.ll
The file was modifiedllvm/test/Transforms/LICM/call-hoisting.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/fold-branch-to-common-dest.ll
Commit 50db987d5936260a30a1df69e6abfcb4434692ec by spatel
[InstSimplify] move extract with undef index fold; NFC

This puts it closer to the other undef query check and
will avoid a potential ordering problem if we allow
folding non-constant-int indexes.
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 571c8c5263a79293aaadae07b11feb36726eaf53 by pablo.barrio
[AArch64][v8.3A] Avoid inserting implicit landing pads (PACI*SP)

PACI*SP have the advantage that they are in HINT space, meaning
they can be run successfully in hardware without PAuth support -
they will just behave as a NOP. However, PACI*SP are also implicit
landing pads (think of an extra BTI jc). Therefore, they allow
indirect jumps of all kinds into them, potentially inserting new
gadgets. This patch replaces PACI*SP by PACI* LR, SP when
compiling explicitly for hardware with full PAuth support. PACI*
is not in the HINT space, therefore it will fault when run in
hardware without PAuth support, but it is also not a landing pad,
making programs safer in newer HW.

Differential Revision: https://reviews.llvm.org/D101920
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-v8-3.ll
The file was modifiedllvm/test/CodeGen/AArch64/pacbti-module-attrs.ll
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-sp-mod.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-subtarget.ll
The file was modifiedllvm/test/CodeGen/AArch64/sign-return-address.ll
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-signedreturnaddress.ll
The file was modifiedllvm/test/CodeGen/AArch64/sign-return-address-cfi-negate-ra-state.ll
The file was modifiedllvm/test/CodeGen/AArch64/pacbti-llvm-generated-funcs-2.ll
Commit 507df686aff631da454173d2d54cbb12c6f9bcf7 by lebedev.ri
[NFC][SimplifyCFG] Revisit tail-merge-resume.ll test

Add an already somewhat-common resume block
The file was modifiedllvm/test/Transforms/SimplifyCFG/tail-merge-resume.ll
Commit 34503987385b8e2a21ca4f9a29c9135c03b427e4 by zoecarver
[libcxx][ranges] Add contiguous_range.

Differential Revision: https://reviews.llvm.org/D104262
The file was modifiedlibcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp
The file was modifiedlibcxx/include/__ranges/ref_view.h
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/__ranges/concepts.h
The file was addedlibcxx/test/std/ranges/range.req/range.refinements/contiguous_range.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/include/ranges
The file was modifiedlibcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp
The file was modifiedlibcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
Commit 9824f86760bc711453ac8a51721c5ff7edd008e0 by zoecarver
[libcxx][nfc] Add one more test case for contiguous_range.

If the `data` member function is different enough, `ranges::data` won't pick it, so the range remains a contiguous_range.
The file was modifiedlibcxx/test/std/ranges/range.req/range.refinements/contiguous_range.compile.pass.cpp
Commit 652f4b5140e231b679564a86019307291f7bf7cc by joker.eph
Attempt to disable MLIR JIT tests on PowerPC to unbreak the bot

This is until we figure how to turn on the large code size model.
The file was modifiedmlir/test/Unit/lit.cfg.py
The file was modifiedmlir/test/mlir-cpu-runner/lit.local.cfg
The file was modifiedmlir/test/Unit/lit.site.cfg.py.in