Add ARMv8-M and ARMv8.1-M support for Darwin (#195184)
Extend Mach-O reading/writing and Clang's driver with support for
ARMv8-M and ARMv8.1-M. Then, build libclang_rt for armv8m.main and
armv8.1m.main target triples.
[NVPTX] Add commutativity to SETP instructions to enable MachineCSE of inverted predicates
Inverted predicates can be used freely in PTX. If we can invert a
predicate and CSE the generating instruction we can save calculating
the inverse.
Teach the NVPTX commuteInstructionImpl that SETP instructions can be
inverted to allow CSEing with previous SETP that match the inverted
form. This also inverts the branch users of the predicate to maintain
correctness.
Currently only allow the SETP inversion if all users are branches.
Future work can extend this to sel and not instructions.
Made-with: Cursor
[SSAF] Add SourcePassAnalysis framework
SourcePassAnalysis is for analyses/actions to be performed in a second
pass on source code, after the SSAF whole-program analysis.
SourcePassAnalysis is defined as an ASTConsumer abstraction that
depends on a whole-program analysis result.
This commit adds:
- SourcePassAnalysis base classes
- SourcePassAnalysis registry
- unit test for registry
rdar://175802731
[lldb] Change TestPublicAPIHeaders.py to only build when the target architecture matches the host's (#193848)
This test requires that LLDB.framework be built the same architecture as
the test binary (effectively). There's no way to specify that in our
testing logic currently, so let's just mark this test as arm64 only for
now.
---------
Co-authored-by: Jonas Devlieghere <jonas at devlieghere.com>
[lldb] Remove verbose DWARF spec comments from evaluator (NFC) (#195140)
Most labels in DWARFExpression::Evaluate have a 3-10 line
OPCODE/OPERANDS/DESCRIPTION block copied from the DWARF specification.
My assumption is that anyone editing this code should be consulting the
latest version of the spec, which is the (only) source of truth. This
approach doesn't scale, create the opportunity for subtle bugs and makes
the code harder to read.
Anything LLDB specific (i.e. that's not part of the spec) is preserved.
InstCombine: Don't read first argument of llvm.ptrauth.* call argument until checking intrinsic ID.
If llvm.ptrauth.auth or llvm.ptrauth.resign is called on the result of
a call with no arguments InstCombine will hit an assertion failure due
to reading the non-existent first argument. Fix it.
Assisted-by: gemini (wrote test)
Reviewers: nikic, fmayer
Pull Request: https://github.com/llvm/llvm-project/pull/195195
[clang][modules] Make -fmodules-decluse work on the public/private pair of modules (#192585)
Previously, it would only check the main module.
Now, if the main module is a private module (foo_Private), it will also check the public module.
[lldb] Extract DW_OP_fbreg and DW_OP_call_frame_cfa evaluation (NFC) (#195143)
Both case bodies had several levels of nested if/else validating the
execution context and frame before doing the real work. Invert the
checks and move the bodies to static helpers alongside
Evaluate_DW_OP_piece, matching the pattern already used for
Evaluate_DW_OP_deref_size and Evaluate_DW_OP_entry_value.
[MLIR][Vector] Add unrolling support for bitcast, interleave, and deinterleave ops (#194513)
This patch implements VectorUnrollOpInterface and unrolling patterns for
vector bitcast,
interleave, and deinterleave operations.
---------
Co-authored-by: Claude Sonnet 4.5 <noreply at anthropic.com>