LLVM/project f5b589eclang/test/CodeGen/AArch64/sme2-intrinsics acle_sme2_tmop.c, llvm/include/llvm/IR IntrinsicsAArch64.td

[AArch64][SME] Split FP8 FTMOPA intrinsics (#203310)

Introduce separate FP8 FTMOPA intrinsics for ZA16 and ZA32:

    llvm.aarch64.sme.fp8.ftmopa.za16
    llvm.aarch64.sme.fp8.ftmopa.za32

The FP8 FTMOPA forms need to model their FPMR dependency, so they should
not share the same intrinsic definitions as the non-FP8 FTMOPA forms.

Update the Clang SME builtin definitions and AArch64 instruction
patterns to use the new intrinsics, and add AutoUpgrade support for the
previous FP8-shaped llvm.aarch64.sme.ftmopa.* spellings so existing IR
and bitcode continue to work.

This was split out from #154144 because the intrinsic upgrade needs to
be handled separately to avoid breaking existing bitcode.
DeltaFile
+21-0llvm/test/Bitcode/upgrade-sme2-fp8-intrinsics-tmop.ll
+19-0llvm/lib/IR/AutoUpgrade.cpp
+14-0llvm/include/llvm/IR/IntrinsicsAArch64.td
+4-4clang/test/CodeGen/AArch64/sme2-intrinsics/acle_sme2_tmop.c
+2-2llvm/test/CodeGen/AArch64/sme2-intrinsics-tmop.ll
+2-2llvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
+62-82 files not shown
+64-108 files

LLVM/project 6a0b6a1clang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 neon-2velem.c v8.2a-neon-intrinsics.c

[CIR][AArch64] Lower NEON laneq FMA builtins (#202337)

Lower additional AArch64 NEON laneq fused multiply-accumulate builtins
in CIR.

This covers:
- `BI__builtin_neon_vfmaq_laneq_v`
  - `vfmaq_laneq_f16`
  - `vfmaq_laneq_f32`
  - `vfmaq_laneq_f64`
- `BI__builtin_neon_vfmad_laneq_f64`
  - `vfmad_laneq_f64`

For `vfmaq_laneq_v`, the lowering bitcasts the operands, splats the
selected lane source, and emits the `llvm.fma` intrinsic with the
operand order matching classic AArch64 CodeGen.

For `vfmad_laneq_f64`, the lowering extracts the selected lane from the
`float64x2_t` source and emits scalar `llvm.fma.f64`.

    [7 lines not shown]
DeltaFile
+104-2clang/test/CodeGen/AArch64/neon/fused-multiply.c
+0-76clang/test/CodeGen/AArch64/neon-2velem.c
+24-2clang/test/CodeGen/AArch64/neon/fused-multiple-fullfp16.c
+19-2clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+0-20clang/test/CodeGen/AArch64/v8.2a-neon-intrinsics.c
+0-11clang/test/CodeGen/AArch64/neon-scalar-x-indexed-elem.c
+147-1136 files

LLVM/project 49375feclang/lib/CIR/CodeGen CIRGenBuiltinAArch64.cpp, clang/test/CodeGen/AArch64 neon-intrinsics.c

[CIR][AArch64] Lower NEON subtraction intrinsics (#202857)

### summary

part of : https://github.com/llvm/llvm-project/issues/185382

- Add CIR lowering for the scalar AArch64 NEON subtraction builtins
`vsubd_s64` and `vsubd_u64`.
- Verify that the remaining signed, unsigned, and floating-point
`vsub/vsubq` intrinsics are correctly expanded through arm_neon.h and
emitted as `cir.sub`.
DeltaFile
+266-0clang/test/CodeGen/AArch64/neon/subtraction.c
+1-221clang/test/CodeGen/AArch64/neon-intrinsics.c
+1-0clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp
+268-2213 files

LLVM/project 19fbfa5cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py

darker
DeltaFile
+2-0cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+2-01 files

LLVM/project 8514e0fcross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py ExpectWriter.py

[Dexter] Add condition check to state nodes

This patch enables the ability for state nodes to check conditions, meaning
they will be active only if the condition is met.

Condition evaluation is somewhat language specific; we directly check
whether the value of the evaluated expression is "true" (case-insensitive),
which works for the languages we actually use Dexter with, but may require
generalizing in future.

We also cache conditions as they are evaluated; each time we step, we clear
all cached conditions for the current frame and any expired frames, but we
keep the cached conditions for any frames rootwards from the current frame;
this prevents us from unexpectedly exiting out of a callee frame because of
debug info not surviving a stack unwind; if the early exit is desired, an
!and{at_frame_idx, condition} under the lower frame may suffice.
DeltaFile
+45-10cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+53-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/conditions.cpp
+9-1cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+6-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+6-1cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+1-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+120-146 files

LLVM/project c023636cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers ScriptDebuggerController.py, cross-project-tests/debuginfo-tests/dexter/dex/evaluation StateMatch.py RunMatch.py

[Dexter] Enable after_hit_count for state nodes

The after_hit_count attribute for a state node causes it to become active
only after it would have become active N times. This uses the existing logic
for incrementing hit counts, i.e. after the node becomes "active", we will
not add another hit count until it stops being active for at least one step.
Since state nodes with after_hit_count do not become active before reaching
the required hit count, this requires us to keep track of an "early" set of
state nodes, meaning nodes that would be active if not for their
after_hit_count.
DeltaFile
+66-29cross-project-tests/debuginfo-tests/dexter/dex/evaluation/StateMatch.py
+38-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/where_hit_count.cpp
+31-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/debugging/then_after_hit_count.cpp
+8-10cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ScriptDebuggerController.py
+7-4cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+0-8cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+150-511 files not shown
+153-547 files

LLVM/project 580e8a7cross-project-tests/debuginfo-tests/dexter/dex/evaluation ExpectWriter.py, cross-project-tests/debuginfo-tests/dexter/dex/test_script Script.py

[Dexter] Add support for writing !step values

Following from the previous patch, this patch adds support to Dexter for
generating expected values for !step nodes. This is relatively limited:
the kind of !step which this is most well-suited to this is !step exactly,
as the !step order of ignoring extra lines is redundant (all lines are added
as expected values), and !step never can't know what lines could have been
stepped on but weren't without some extra work (e.g. finding viable
breakpoint locations in the enclosing state node).
DeltaFile
+97-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_step_lines_expected.cpp
+56-9cross-project-tests/debuginfo-tests/dexter/dex/evaluation/ExpectWriter.py
+31-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/Inputs/rewrite_step_lines.cpp
+21-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/rewriting/rewrite_step_lines.test
+1-3cross-project-tests/debuginfo-tests/dexter/dex/test_script/Script.py
+206-125 files

LLVM/project b8886fbcross-project-tests/debuginfo-tests/dexter/dex/evaluation RunMatch.py Metrics.py, cross-project-tests/debuginfo-tests/dexter/dex/test_script Nodes.py

[Dexter] Add !step node for testing stepping behaviour

This patch adds a node for generating metrics based on lines stepped on. The
new node has 3 versions: !step exactly, !step order, and !step never, which
check an expected list of line numbers against the actual line numbers seen
while the expect is active.
DeltaFile
+94-28cross-project-tests/debuginfo-tests/dexter/dex/evaluation/RunMatch.py
+79-2cross-project-tests/debuginfo-tests/dexter/dex/evaluation/Metrics.py
+69-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_steps_penalties.cpp
+46-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/evaluation/eval_steps_perfect.cpp
+32-1cross-project-tests/debuginfo-tests/dexter/dex/test_script/Nodes.py
+19-0cross-project-tests/debuginfo-tests/dexter/feature_tests/scripts/parser/step-node-expected-values.test
+339-312 files not shown
+354-338 files

LLVM/project 7d95737llvm/tools/llc NewPMDriver.cpp, llvm/tools/opt NewPMDriver.cpp

[tools] Register analyses correctly (#203808)

- Analyses with custom parameter must be registered before
register*Analyses, otherwise it will be skipped.
- Remove redundant LibcallLoweringModuleAnalysis, pass builder will
register it automatically.
DeltaFile
+9-9llvm/tools/llc/NewPMDriver.cpp
+0-2llvm/tools/opt/NewPMDriver.cpp
+9-112 files

LLVM/project aaa414ellvm/include/llvm/ADT FloatingPointMode.h, llvm/lib/Support FloatingPointMode.cpp KnownFPClass.cpp

[Valuetracking] Use all FPClasses ordering information for min/max (#199651)

Min/Max functions can exclude more FPClasses than
OrderedLessThanZeroMask/OrderedGreaterThanZeroMask. Now it excludes all
analyzable FPClasses, of which +/-Inf are the most useful.

This enhances analysis for transforms which need to exclude Inf.
Here is a simplified example: 0*y -> 0 is only correct if y cannot be
Inf or NaN, otherwise it may be NaN.
DeltaFile
+59-15llvm/test/Transforms/InstSimplify/known-never-infinity.ll
+38-0llvm/lib/Support/FloatingPointMode.cpp
+12-23llvm/lib/Support/KnownFPClass.cpp
+16-16llvm/test/Transforms/Attributor/nofpclass-minimum-maximum.ll
+20-0llvm/include/llvm/ADT/FloatingPointMode.h
+8-8llvm/test/Transforms/Attributor/nofpclass-minimumnum-maximumnum.ll
+153-621 files not shown
+161-707 files

LLVM/project 58031e5clang/lib/AST/ByteCode InterpBlock.h DynamicAllocator.cpp

[clang][bytecode] Add `Block::invokeCtorNoMemset()` (#203749)

`invokeCtor()` first memsets the memory to zero, then calls the
descriptor ctor function. The memset is unnecessary if we're already
working with zero-ed memory, like the one we get from
`std::make_unique`.
DeltaFile
+7-2clang/lib/AST/ByteCode/InterpBlock.h
+1-1clang/lib/AST/ByteCode/DynamicAllocator.cpp
+1-1clang/lib/AST/ByteCode/EvalEmitter.cpp
+9-43 files

LLVM/project ee0b9c6clang/include/clang/Basic arm_sve.td, clang/include/clang/Interpreter IncrementalExecutor.h

Add missing newlines at EOF; NFC (#203483)
DeltaFile
+1-1clang/include/clang/Basic/arm_sve.td
+1-1clang/include/clang/Interpreter/IncrementalExecutor.h
+1-1clang/lib/Headers/hlsl/hlsl_alias_intrinsics.h
+1-1clang/unittests/AST/ASTExprTest.cpp
+1-1llvm/unittests/Transforms/IPO/AttributorTestBase.h
+1-1llvm/unittests/Transforms/IPO/MergeFunctionsTest.cpp
+6-62 files not shown
+8-88 files

LLVM/project 97a79eellvm/lib/CodeGen/GlobalISel IRTranslator.cpp, llvm/test/CodeGen/AArch64/GlobalISel translate-gep.ll

[GlobalISel] Avoid redundant copy for zero-offset GEPs (#203029)

Handle zero-offset GEPs early to avoid creating a separate vreg for the
GEP result and copying the base pointer into it.

Improves CTMark geomean -0.14% on aarch64-O0-g, with consumer-typeset
-0.86%.

https://llvm-compile-time-tracker.com/compare.php?from=2de2edb943fe1b83d79bdffa03606eb8c5452e9b&to=d3d5a4af0e7a58ea7b3a1e8c02b34fa380695e62&stat=instructions%3Au

Assisted-by: codex
DeltaFile
+18-24llvm/test/CodeGen/Mips/GlobalISel/irtranslator/aggregate_struct_return.ll
+3-4llvm/test/CodeGen/Mips/GlobalISel/irtranslator/sret_pointer.ll
+2-4llvm/test/CodeGen/X86/GlobalISel/irtranslator-callingconv.ll
+3-0llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
+1-2llvm/test/CodeGen/AArch64/GlobalISel/translate-gep.ll
+27-345 files

LLVM/project 7ff58e4llvm/lib/Transforms/Vectorize LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/X86 nondetermisitic-widening-cost.ll

[LoopVectorize] Fix nondeterminism in loop-vectorize (#200833)

The nondeterministic iteration over `AddrDefs` (SmallPtrSet) causes
nondeterministic output for the test case in this patch (reduced from a
C codebase). One of two different outputs is generated arbitrarily,
chosen roughly equally.

Between the two different outputs sometimes the instruction
   `%3 = load i64, ptr %2, align 8`
has an associated cost of 4 and othertimes 9. The instruction is visited
twice in `setCostBasedWideningDecision` in the `AddrDefs` loop: once
directly as an element of `AddrDefs`, and the other time indirectly in
the lambda `UpdateMemOpUserCost` as a User of another `AddrDefs`
element. Each of those times `setWideningDecision` is called with a
different cost value; the final of the two calls sets the final value
(previous is overwritten). Because `AddrDefs` iteration is
nondeterministic, the order of those two calls to `setWideningDecision`
is also nondeterministic, hence we see two different costs arbitrarily
between runs.

    [13 lines not shown]
DeltaFile
+147-0llvm/test/Transforms/LoopVectorize/X86/nondetermisitic-widening-cost.ll
+2-2llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+149-22 files

LLVM/project fecfe32clang/test/CodeGen/AArch64/neon add.c intrinsics.c

[Clang][CIR] Move AArch64 Add tests (nfc) (#203543)

Follow-up for https://github.com/llvm/llvm-project/pull/202005
DeltaFile
+247-1clang/test/CodeGen/AArch64/neon/add.c
+0-247clang/test/CodeGen/AArch64/neon/intrinsics.c
+247-2482 files

LLVM/project 8608209llvm/lib/ObjectYAML ELFEmitter.cpp, llvm/test/tools/yaml2obj/ELF bb-addr-map.yaml

[ObjectYAML] Make BBAddrMap encoder diagnostics format-neutral (#202524)

In preparation for sharing the yaml2obj BBAddrMap encoder with COFF.
1. Drop the now-dead `Section.Type == SHT_LLVM_BB_ADDR_MAP` guards (#146186).
2. Reword the two warnings that will move into the shared helper.
3. Fix a "PBOBBEntries" -> "PGOBBEntries" typo.
DeltaFile
+14-16llvm/lib/ObjectYAML/ELFEmitter.cpp
+1-1llvm/test/tools/yaml2obj/ELF/bb-addr-map.yaml
+15-172 files

LLVM/project acdfd6bclang/lib/AST/ByteCode Descriptor.cpp

[clang][bytecode] Char<Signed> doesn't need a descriptor ctor (#203748)

This was lost when adding Char for 8-bit data.
DeltaFile
+2-2clang/lib/AST/ByteCode/Descriptor.cpp
+2-21 files

LLVM/project 0b6faeellvm/lib/Transforms/Scalar LoopInterchange.cpp, llvm/test/Transforms/LoopInterchange inner-latch-lcssa-feeds-exit-condition.ll

[LoopInterchange] Reject inner-latch lcssa PHI feeding the exit condition (#202863)

In a multi-level nest, an lcssa PHI in the inner loop latch that feeds
the latch's exit condition can be left with a stale incoming block after
a subsequent interchange rewires the CFG, producing invalid IR. This
happened even when the outer latch had a single predecessor, where the
legality check returned early. Instead, reject the interchange when such
a PHI feeds the exit condition.

Fixes #202027
DeltaFile
+81-0llvm/test/Transforms/LoopInterchange/inner-latch-lcssa-feeds-exit-condition.ll
+41-27llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+122-272 files

LLVM/project 0e21d7cllvm/test/Analysis/DependenceAnalysis gcd-miv-addrec-wrap.ll

[DA] Add test for addrec can wrap in GCD MIV (NFC) (#203526)

This patch adds a test that should have been included in #186892. The
test demonstrates a case where the GCD MIV test would miss a dependency
if the presence of nsw flags were not checked.
DeltaFile
+73-0llvm/test/Analysis/DependenceAnalysis/gcd-miv-addrec-wrap.ll
+73-01 files

LLVM/project 66e5a88clang/lib/AST/ByteCode Function.h Function.cpp

[clang][bytecode] Add an `ExplicitThisParam` flag to `Function` (#203672)

We unfortunately have to check this for every function call, so don't
consult the decl every time here.
DeltaFile
+6-12clang/lib/AST/ByteCode/Function.h
+5-0clang/lib/AST/ByteCode/Function.cpp
+11-122 files

LLVM/project 713acbcllvm/include/llvm/MC DXContainerInfo.h

[NFC][MC] Initialize all fields of DebugName::Parameters in default constructor (#202701)

Initialized both variables **Flags** and **NameLength** of
**DebugNameHeader** structure.
DeltaFile
+1-1llvm/include/llvm/MC/DXContainerInfo.h
+1-11 files

LLVM/project 43a0be0llvm/lib/Target/X86 X86DomainReassignment.cpp, llvm/test/CodeGen/X86 domain-reassignment-closure-stats.mir

[X86] Record the enclosed register in X86DomainReassignment::buildClosure (#202534)

buildClosure recorded the seed register Reg in the function-wide
EnclosedEdges map on every worklist iteration instead of CurReg, the
register actually being added to the closure. EnclosedEdges therefore
only ever contained the seed of each closure.

The driver loop in runOnMachineFunction skips registers already present
in EnclosedEdges before starting a new closure. Because only seeds were
recorded, every non-seed member of an already-built closure looked like
a fresh seed, so a redundant closure was built for it and then
immediately discarded by the EnclosedInstrs cross-closure check. The
emitted code is unchanged; the pass just performed redundant work
proportional to closure size.

Key EnclosedEdges by CurReg so each enclosed register is recorded once.

This was found as part of @jlebar's X86 LLVM bug hunt / FuzzX effort:


    [2 lines not shown]
DeltaFile
+92-0llvm/test/CodeGen/X86/domain-reassignment-closure-stats.mir
+3-1llvm/lib/Target/X86/X86DomainReassignment.cpp
+95-12 files

LLVM/project 0f572a5clang/lib/AST/ByteCode Opcodes.td, clang/utils/TableGen ClangOpcodesEmitter.cpp

[clang][bytecode] Add an on-by-default `CanFail` flag to opcodes (#203671)

We have several opcodes that can't fail, so add a flag to them
indicating that they always return `true` anyway.

This simplifies the generated code from e.g.
```c++
PRESERVE_NONE
static bool Interp_Activate(InterpState &S, CodePtr &PC) {
  if (!Activate(S, PC))
    return false;
#if USE_TAILCALLS
  MUSTTAIL return InterpNext(S, PC);
#else
  return true;
#endif
}
```


    [12 lines not shown]
DeltaFile
+45-22clang/lib/AST/ByteCode/Opcodes.td
+24-6clang/utils/TableGen/ClangOpcodesEmitter.cpp
+69-282 files

LLVM/project 57a5646llvm/test/CodeGen/AMDGPU fcanonicalize.ll llvm.amdgcn.sched.group.barrier.ll, llvm/test/CodeGen/X86 vector-interleaved-store-i16-stride-7.ll vector-interleaved-store-i16-stride-6.ll

Merge branch 'main' into users/kasuga-fj/da-add-test-addrec-wrap-gcdmiv
DeltaFile
+3,204-3,450llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-7.ll
+1,905-2,037llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-6.ll
+2,760-227llvm/test/CodeGen/AMDGPU/fcanonicalize.ll
+1,813-654llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
+812-846llvm/test/CodeGen/X86/vector-interleaved-store-i16-stride-5.ll
+1,357-0llvm/test/CodeGen/AMDGPU/maximumnum.ll
+11,851-7,214802 files not shown
+43,491-17,605808 files

LLVM/project 736202fclang/docs UsersManual.rst

Fix documentation
DeltaFile
+1-3clang/docs/UsersManual.rst
+1-31 files

LLVM/project c27a62cclang/include/clang/Basic CodeGenOptions.def, clang/include/clang/Options Options.td

Revert "Remove default setting signaling_nan attribute for strictfp functions"

Restore the previous behavior, where a strictfp function implicitly got
the `singaling_nans` attribute. Difficulty in explaining the behavior to
users is not an acceptable reason for changing the default behavior.
Previously, this behavior was also undocumented. Assuming
`signaling_nans` by default in `strictfp` functions is safer and
maintains compatibility.

This reverts commit 1c9601c52e8f396d024e4c3032047dce87b288b8.
DeltaFile
+9-8clang/include/clang/Options/Options.td
+8-4clang/lib/Driver/ToolChains/Clang.cpp
+5-5clang/test/CodeGen/fp-floatcontrol-stack.cpp
+4-4clang/test/Driver/fp-model.c
+6-1clang/lib/CodeGen/CodeGenFunction.cpp
+4-1clang/include/clang/Basic/CodeGenOptions.def
+36-235 files not shown
+43-2911 files

LLVM/project e170fb1llvm/test/Analysis/DependenceAnalysis gcd-miv-addrec-wrap.ll

address review
DeltaFile
+3-3llvm/test/Analysis/DependenceAnalysis/gcd-miv-addrec-wrap.ll
+3-31 files

LLVM/project 774f486clang/lib/CIR/CodeGen CIRGenBuiltinAMDGPU.cpp, clang/test/CIR/CodeGenHIP builtins-amdgcn-extended-image.hip

[CIR][AMDGPU] Adds lowering for amdgcn extended image sample/gather4 builtins (#201761)

Support for lowering of` __builtin_amdgcn_image_sample/gather4` for
AMDGPU builtins to clangIR.
Followed similar lowering from clang->llvmir:
`clang/lib/CodeGen/TargetBuiltins/AMDGPU.cpp`.

Upstreaming clangIR PR:
[llvm/clangir#2083](https://github.com/llvm/clangir/pull/2083)
DeltaFile
+374-0clang/test/CIR/CodeGenHIP/builtins-amdgcn-extended-image.hip
+50-12clang/lib/CIR/CodeGen/CIRGenBuiltinAMDGPU.cpp
+424-122 files

LLVM/project c236ef5llvm/include/llvm InitializePasses.h, llvm/include/llvm/CodeGen CFIFixup.h

[CodeGen][NewPM] Port cfi-fixup to new pass manager (#203692)

Standard work for `cfi-fixup`.
DeltaFile
+14-4llvm/lib/CodeGen/CFIFixup.cpp
+9-2llvm/include/llvm/CodeGen/CFIFixup.h
+1-1llvm/include/llvm/InitializePasses.h
+1-1llvm/include/llvm/Passes/MachinePassRegistry.def
+1-1llvm/lib/CodeGen/CodeGen.cpp
+1-1llvm/lib/CodeGen/TargetPassConfig.cpp
+27-105 files not shown
+32-1111 files

LLVM/project ad611b6llvm/lib/Target/X86 X86ISelLoweringCall.cpp, llvm/test/CodeGen/X86 abi-isel.ll

[X86] Do not hold GOT base for indirect call or absolute address (#203192)

Fixes:
https://github.com/llvm/llvm-project/pull/202370#discussion_r3384983368

Assisted-by: Claude Sonnet 4.6
DeltaFile
+32-40llvm/test/CodeGen/X86/abi-isel.ll
+6-5llvm/lib/Target/X86/X86ISelLoweringCall.cpp
+38-452 files