LLVM/project da9b531libc/src/__support big_int.h, libc/src/__support/FPUtil bfloat16.h NormalFloat.h

[libc] Fix LIBC_HAS_CONSTANT_EVALUATION macro and re-add LIBC_ENABLE_CONSTEXPR control. (#197774)
DeltaFile
+122-128libc/src/__support/big_int.h
+16-16libc/src/__support/math/atan2f128.h
+15-15libc/src/__support/FPUtil/bfloat16.h
+10-13libc/src/__support/math/sqrtf128.h
+10-12libc/src/__support/FPUtil/NormalFloat.h
+8-8libc/src/__support/math/log1p.h
+181-192408 files not shown
+680-742414 files

LLVM/project afcd7aallvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp LegalizeIntegerTypes.cpp, llvm/lib/Target/RISCV RISCVISelLowering.cpp

[SelectionDAG] Add ISD::ABS_MIN_POISON to preserve poision semantics of llvm.abs (#183851)

SelectionDAGBuilder previously dropped the is_int_min_poison flag on
llvm.abs, lowering both variants to ISD::ABS. This is unsound for
certain targets like NVPTX whose native abs.s is poison on INT_MIN. This
PR adds a new ISD::ABS_MIN_POISON opcode, emits it for llvm.abs(x, true)
and threads through legalization, SDAG folding. The default action for
this is Expand with a fallback to the original ISD::ABS. DAGCombiner
adds visitABS_MIN_POISON which mirrors visitABS and two new folds:
abs_min_poison(freeze(abs x)) -> freeze(abs x) and
abs_min_poison(sign_extend_inreg x) → zext(abs(trunc x)). PromoteIntRes,
ExpandIntRes, and widenAbs now emit ABS_MIN_POISON whenever the input
provably can't be the wide INT_MIN. NVPTX fix to match abs.s against
abs_min_poison and tests updated accordingly.
DeltaFile
+56-6llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+52-4llvm/test/CodeGen/X86/icmp-abs-C.ll
+18-6llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+12-9llvm/test/CodeGen/NVPTX/idioms.ll
+19-1llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
+8-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+165-3014 files not shown
+218-4120 files

LLVM/project 8c493f5mlir/lib/Dialect/Vector/IR VectorOps.cpp, mlir/test/Dialect/Vector/canonicalize vector-transfer-read-write.mlir

[mlir][vector] Add fold to transfer_{read,write} vector<1xT> (#196598)

vector.transfer_read and vector.transfer_write's permutations maps are
irrelevant with vector<1xT>. This pattern unblocks lowerings to
vector.load and vector.store.

Assisted-By: Claude Opus 4.6
DeltaFile
+130-0mlir/test/Dialect/Vector/canonicalize/vector-transfer-read-write.mlir
+29-0mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+159-02 files

LLVM/project 44fe4cdclang/test/Tooling clang-sycl-linker-split-mode.ll clang-sycl-linker.ll, clang/tools/clang-sycl-linker ClangSYCLLinker.cpp SYCLLinkOpts.td

[clang-sycl-linker] Add per-translation-unit device code split mode (#197571)

Adds `source` split mode to `clang-sycl-linker`, driven by the
`sycl-module-id` function attribute emitted by the CFE.
`source` is the default mode and groups kernels by the value of their
`sycl-module-id` attribute, emitting one device image per translation
unit.
If the linked module contains no entry points, no splitting happens.

The `EntryPointCategorizer` in `ClangSYCLLinker.cpp` is refactored into
a class (instead of a stateful lambda) to support both per-kernel and
per-TU modes cleanly.

Also fix a potential buffer invalidation bug in sycl::writeSymbolTable
where appending symbol names could reallocate the output buffer while
pointers into it were still live.

Co-Authored-By: Claude


    [2 lines not shown]
DeltaFile
+123-63clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
+47-19clang/test/Tooling/clang-sycl-linker-split-mode.ll
+5-8clang/test/Tooling/clang-sycl-linker.ll
+5-3clang/tools/clang-sycl-linker/SYCLLinkOpts.td
+180-934 files

LLVM/project a8c0641clang/include/clang/Basic BuiltinsNVPTX.td, clang/lib/Basic Cuda.cpp

[Clang][CUDA] Introduce support for 'f' GPU variants and feature test macros (#197584)

- Clang now accepts 'f' GPU variants as the target for sm_100+ GPUs.
- `__CUDA_ARCH_SPECIFIC__` and `__CUDA_ARCH_FAMILY_SPECIFIC__` are now
defined to allow distinguishing `a`/`f`/base GPU vaiants.
- refactored BuiltinsNVPTX.td to handle availability quirks introduced
by the 'f' variants, and to simplify additions of new GPU/PTX variants
to just adding a number to a list.
- bulk test changes to deal with the tablegen-generated strings.
DeltaFile
+284-284clang/test/CodeGen/builtins-nvptx-mma.cu
+132-132clang/test/CodeGen/builtins-nvptx-sm_70.cu
+111-97clang/include/clang/Basic/BuiltinsNVPTX.td
+29-0clang/lib/Basic/Cuda.cpp
+27-0clang/test/Frontend/standalone-nvptx-macros.c
+4-4clang/test/CodeGen/builtins-nvptx-ptx60.cu
+587-5178 files not shown
+628-52114 files

LLVM/project bc124ceflang/lib/Frontend FrontendActions.cpp

[flang] Remove `do concurrent` mapping experimental warning (#195009)
DeltaFile
+0-7flang/lib/Frontend/FrontendActions.cpp
+0-71 files

LLVM/project 1430a3flldb/source/Commands CommandObjectPlatform.cpp

[lldb] Add missing calls to SetStatus in CommandObjectPlatform (#197548)

Add missing calls to CommandReturnObject::SetStatus in
CommandObjectPlatform. I replaced some calls to AppendMessageWithFormatv
with AppendErrorWithFormatv because the latter implicitly sets the
status.
DeltaFile
+10-5lldb/source/Commands/CommandObjectPlatform.cpp
+10-51 files

LLVM/project 42b4cb6clang/include/clang/Basic DiagnosticDriverKinds.td, flang/lib/Frontend CompilerInvocation.cpp TextDiagnosticBuffer.cpp

[flang] Implement -Wno-<warning> flags for driver diagnostics (#196354)

Utilize clang::ProcessWarningOptions function to process -Wno-...
options.

This has the side effect that without additional changes it would cause
driver warnings to become errors with -Werror. That would be a change
from the existing behavior, so make sure that these warnings remain
unaffected.

Modify the diagnostic emitter to add the disabling option at the end of
the emitted diagnostic.

Fixes https://github.com/llvm/llvm-project/issues/195921

---------

Co-authored-by: Tarun Prabhu <tarun at lanl.gov>
DeltaFile
+38-28flang/lib/Frontend/CompilerInvocation.cpp
+22-1flang/lib/Frontend/TextDiagnosticBuffer.cpp
+5-2clang/include/clang/Basic/DiagnosticDriverKinds.td
+3-3flang/test/Driver/fopenmp-version.F90
+1-1flang/test/Semantics/OpenMP/depend05.f90
+1-1flang/test/Semantics/OpenMP/depend06.f90
+70-3611 files not shown
+81-4717 files

LLVM/project b9bc518lldb/test/API/commands/breakpoint/location-dot TestBreakpointLocationDot.py

[lldb] Use current breakpoint location in TestBreakpointLocationDot.py (NFC) (#197472)

Replaces `FindLocationByID(1)` with `FindLocationByID(loc_id)`. Instead
of hard-coding an ID of 1, the location ID is determined from
`GetStopReasonDataAtIndex`.

Some of these asserts were failing on a windows CI, because the
breakpoint was resolved to **two** locations.
DeltaFile
+24-8lldb/test/API/commands/breakpoint/location-dot/TestBreakpointLocationDot.py
+24-81 files

LLVM/project 26a4ffblldb/include/lldb/Breakpoint BreakpointIDList.h, lldb/source/Breakpoint BreakpointIDList.cpp

[lldb] Update calls to VerifyBreakpointIDs to handle dummy targets (#197088)

Follow up to #194272. In that change, `VerifyBreakpointIDs` had its
signature changed to take an `ExecutionContext` instead of a `Target`.
In updating the call-sites, `m_exe_ctx` was used. However, in some of
those places, the `target` argument reflected the use of a dummy target.
The switch broke situations where a proper target does not exist.

This update changes those calls back to using the `target` variable,
which may be the dummy target.

The `const` change to `ExecutionContext &` parameters is to support the
passing of `&target`.
DeltaFile
+6-6lldb/source/Commands/CommandObjectBreakpoint.cpp
+3-3lldb/source/Commands/CommandObjectBreakpoint.h
+2-2lldb/source/Commands/CommandObjectBreakpointCommand.cpp
+1-1lldb/include/lldb/Breakpoint/BreakpointIDList.h
+1-1lldb/source/Breakpoint/BreakpointIDList.cpp
+13-135 files

LLVM/project 574fd4aclang/include/clang/CIR/Dialect/IR CIROps.td, clang/test/CIR/CodeGen bool-bitfield.cpp

[CIR] Lower bool bit-fields correctly (#197085)

`bool` bit-fields like `bool flag : 1;` trip an assertion in CIR codegen
because `cir.set_bitfield` and `cir.get_bitfield` are constrained to
take and produce `CIR_IntType` values, but CIRGen was passing
`convertType(boolType)` (= `!cir.bool`) as the op's result type. Both
load and store paths fail with:

Assertion `isa<To>(Val) && "cast<Ty>() argument of incompatible type!"'
failed
[To = mlir::detail::TypedValue<cir::IntType>, From = mlir::OpResult]

This is the second-largest libcxx-with-CIR blocker behind #197068 — ~119
of 1,494 fails in our May 11 `std/` baseline, mostly in `<format>`
parsing state where bool bit-fields are common.

The fix mirrors classic CodeGen at the bit-field boundary: widen the
bool source to the storage integer type for the op call, and narrow the
integer result back to bool with `int_to_bool` so callers that consume

    [11 lines not shown]
DeltaFile
+131-0clang/test/CIR/CodeGen/bool-bitfield.cpp
+2-2clang/include/clang/CIR/Dialect/IR/CIROps.td
+133-22 files

LLVM/project 9870819clang-tools-extra/clang-doc Representation.cpp Representation.h, clang-tools-extra/clang-doc/tool ClangDocMain.cpp

Restore clang-doc arena allocation (#197595)

This patch restores the commits reverted in
49f8ad172446dd54dd14c2333a7a0f638e37d05a.

It effectively reapplies:

Reapply "[clang-doc][nfc] Default initialize all StringRef members
(#191641)"
Reapply "[clang-doc] Initialize StringRef members in Info types
(#191637)"
Reapply "[clang-doc] Initialize member variable (#191570)" 
Reapply "[clang-doc] Merge data into persistent memory (#190056)" 
Reapply "[clang-doc] Support deep copy between arenas for merging
(#190055)"

This version has been updated to account for the new InfoNode<T>
paradigm and APIs introduced earlier. Its logic is largely unchanged: it
still performs deep copies between the transient and persistent arenas,

    [3 lines not shown]
DeltaFile
+251-29clang-tools-extra/clang-doc/Representation.cpp
+107-0clang-tools-extra/unittests/clang-doc/MergeTest.cpp
+25-25clang-tools-extra/clang-doc/tool/ClangDocMain.cpp
+33-0clang-tools-extra/clang-doc/Representation.h
+6-4clang-tools-extra/clang-doc/Serialize.cpp
+422-585 files

LLVM/project 7f4e7ddllvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add support for modules and globals (#197535)

We can emit callbacks when a module is loaded/unloaded and before
globals are initialized and "removed". Both happens in newly introduced constructors and destructors.
DeltaFile
+318-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+96-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+81-0llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
+70-1llvm/test/Instrumentation/Instrumentor/default_config.json
+11-8llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+3-3llvm/test/Instrumentation/Instrumentor/unreachable.ll
+579-126 files

LLVM/project 0b380f9llvm/lib/Target/AMDGPU/AsmParser AMDGPUAsmParser.cpp, llvm/test/MC/AMDGPU literals.s

[AMDGPU] Restore lit() to be accepted as 64-bit FP operand

It is worth to note that immediate value comes already truncated
to this point of validation.
DeltaFile
+93-2llvm/test/MC/AMDGPU/literals.s
+2-1llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+95-32 files

LLVM/project a089568libc/utils/hdrgen/hdrgen header.py yaml_to_classes.py, libc/utils/hdrgen/tests/expected_output func_guarding.h type_guarding.h

[libc][hdrgen] Extend guard attribute support for types (#191663)

Closes #187404 
- Add support for an optional guard attribute on types in hdrgen YAML
input.
- Parse and validate guard from YAML in yaml_to_classes.py, ensuring
guard macros have macro_header in the same YAML file.
- Introduce emit_guard a function that extracts the common logic between
guarded types and guarded functions.
- Add  integration tests for both type guarding and function guarding

---------

Co-authored-by: un-pixelated <masterhc321 at gmail.com>
DeltaFile
+37-26libc/utils/hdrgen/hdrgen/header.py
+38-0libc/utils/hdrgen/tests/input/func_guarding.yaml
+34-0libc/utils/hdrgen/tests/expected_output/func_guarding.h
+27-0libc/utils/hdrgen/tests/expected_output/type_guarding.h
+19-0libc/utils/hdrgen/tests/input/type_guarding.yaml
+14-1libc/utils/hdrgen/hdrgen/yaml_to_classes.py
+169-272 files not shown
+187-298 files

LLVM/project d073515clang/include/clang/DependencyScanning DependencyConsumer.h DependencyScanningWorker.h, clang/lib/DependencyScanning DependencyScannerImpl.cpp DependencyScanningWorker.cpp

[clang][deps] Consolidate types into new `DependencyConsumer.h` (#197772)

This PR pulls the `DependencyConsumer` type out of
`DependencyScanningWorker.h` into its own header. Just a cleanup, NFC.
DeltaFile
+47-0clang/include/clang/DependencyScanning/DependencyConsumer.h
+1-26clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+1-0clang/lib/DependencyScanning/DependencyScannerImpl.cpp
+1-0clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+1-0clang/lib/DependencyScanning/ModuleDepCollector.cpp
+1-0clang/include/clang/DependencyScanning/DependencyScanningUtils.h
+52-266 files

LLVM/project 8ef6b39libc/src/__support/math exp.h exp10.h

[libc][math] Fix UBSan errors from left-shifting negative values (#197747)

Replace left-shift operations on potentially negative exponent values
with mathematically equivalent multiplication to avoid undefined
behavior. When computing exponential functions for inputs that produce
results less than 1, the exponent 'hi' can be negative (e.g., -2 for
exp(-1.0) ≈ 0.368). Left-shifting negative values is undefined behavior
in C++.

Fixed in:
- exp.h: 3 instances
- exp2.h: 3 instances
- exp10.h: 3 instances
- expm1.h: 2 instances
- exp_utils.h: 1 instance (hi + 1022 can be negative)

Exposed by 2b2a63819f9f.

Co-Authored-By: Claude Sonnet 4.5 <noreply at anthropic.com>

    [3 lines not shown]
DeltaFile
+3-3libc/src/__support/math/exp.h
+3-3libc/src/__support/math/exp10.h
+3-3libc/src/__support/math/exp2.h
+2-2libc/src/__support/math/expm1.h
+2-1libc/src/__support/math/exp_utils.h
+13-125 files

LLVM/project f1574dbclang/lib/Sema SemaARM.cpp, clang/test/AST ast-dump-aarch64-mte.c

[Clang][AArch64] Add missing lvalue-to-rvalue conversions for MTE built-ins (#197621)

This patch adds missing lvalue-to-rvalue conversions for the second
argument of `__builtin_arm_irg()` and both arguments of
`__builtin_arm_gmi()`.
DeltaFile
+75-0clang/test/AST/ast-dump-aarch64-mte.c
+8-1clang/lib/Sema/SemaARM.cpp
+83-12 files

LLVM/project 1354182clang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety Origins.cpp FactsGenerator.cpp

only track origins for accessed fields
DeltaFile
+37-2clang/lib/Analysis/LifetimeSafety/Origins.cpp
+11-0clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+4-3clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+52-53 files

LLVM/project 3fc0dd5clang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp Origins.cpp

[LifetimeSafety] Track per-field origins for record types
DeltaFile
+314-4clang/test/Sema/warn-lifetime-safety.cpp
+82-43clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+95-8clang/lib/Analysis/LifetimeSafety/Origins.cpp
+67-24clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+21-12clang/lib/Analysis/LifetimeSafety/LiveOrigins.cpp
+4-6clang/test/Sema/warn-lifetime-safety-dangling-field.cpp
+583-972 files not shown
+587-988 files

LLVM/project cb2be10clang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h Facts.h, clang/lib/Analysis/LifetimeSafety FactsGenerator.cpp Origins.cpp

[LifetimeSafety][NFC] Refactor OriginList to OriginNode tree
DeltaFile
+129-131clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+42-30clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+38-30clang/lib/Analysis/LifetimeSafety/Origins.cpp
+5-6clang/include/clang/Analysis/Analyses/LifetimeSafety/Facts.h
+5-5clang/include/clang/Analysis/Analyses/LifetimeSafety/FactsGenerator.h
+3-3clang/unittests/Analysis/LifetimeSafetyTest.cpp
+222-2053 files not shown
+231-2149 files

LLVM/project 2327bf9clang/include/clang/Analysis/Analyses/LifetimeSafety Origins.h, clang/lib/Analysis/LifetimeSafety Origins.cpp

merge two pre-scans
DeltaFile
+24-44clang/lib/Analysis/LifetimeSafety/Origins.cpp
+7-8clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+31-522 files

LLVM/project ee21e54clang/include/clang/DependencyScanning DependencyScanningWorker.h, clang/include/clang/Tooling DependencyScanningTool.h

[clang][deps] Expose the tracing VFS directly (#197775)

This adds new `DependencyScanningWorker::getTracingVFS()` API that
allows direct access to the tracing VFS, if present. This replaces the
call to `vfs::FileSystem::visit()` in clang-scan-deps. This will allow
removing `DependencyScanningWorker::getVFS()` and simplifying VFS
overlay handling in a follow-up PR.
DeltaFile
+8-10clang/tools/clang-scan-deps/ClangScanDeps.cpp
+8-1clang/include/clang/DependencyScanning/DependencyScanningWorker.h
+4-2clang/lib/DependencyScanning/DependencyScanningWorker.cpp
+4-1clang/include/clang/Tooling/DependencyScanningTool.h
+24-144 files

LLVM/project 70f2c08llvm/include/llvm/CodeGen MachineFunction.h, llvm/lib/CodeGen MachineFunction.cpp

[AMDGPU][MC] Replace shifted registers in CFI instructions

Change-Id: I0d99e9fe43ec3b6fecac20531119956dca2e4e5c
DeltaFile
+67-67llvm/test/CodeGen/AMDGPU/sgpr-spill-overlap-wwm-reserve.mir
+33-0llvm/lib/MC/MCDwarf.cpp
+15-15llvm/test/CodeGen/AMDGPU/dwarf-multi-register-use-crash.ll
+10-0llvm/lib/CodeGen/MachineFunction.cpp
+4-4llvm/test/CodeGen/AMDGPU/debug-frame.ll
+4-0llvm/include/llvm/CodeGen/MachineFunction.h
+133-865 files not shown
+143-9011 files

LLVM/project d28b25dclang/include/clang/CIR/Dialect/Builder CIRBaseBuilder.h, clang/lib/CIR/CodeGen CIRGenExprCXX.cpp

[CIR] Lower aligned operator new in CIRGen (and matching cleanup-during-new) (#197094)

Two related `errorNYI`s in CIRGen for C++17 aligned `operator new` /
`delete`:

- `emitCXXNewExpr` `errorNYI`'d on `"emitCXXNewExpr: pass alignment"`
when the allocator is the `align_val_t`-overloaded form (called whenever
you `new` an over-aligned type).
- The cleanup-during-new path (the `CallDeleteDuringNew` cleanup that
fires if a ctor throws after `operator new` returns) `errorNYI`'d on the
matching `"CallDeleteDuringNew: aligned allocation"`.

The non-cleanup delete path was already wired up; this just plumbs the
matching new side.

Both fixes are direct ports of `clang/lib/CodeGen/CGExprCXX.cpp`. In
`emitCXXNewExpr` we look up the alignment parameter type from the
allocator prototype (or fall back to `size_t` for the variadic corner
case classic also handles), build a constant of that type, and append it

    [35 lines not shown]
DeltaFile
+27-0clang/test/CIR/CodeGen/aligned-allocation.cpp
+21-5clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
+7-0clang/include/clang/CIR/Dialect/Builder/CIRBaseBuilder.h
+55-53 files

LLVM/project d6585e8flang/docs ReleaseNotes.md

Update flang/docs/ReleaseNotes.md

Co-authored-by: Tarun Prabhu <tarun at lanl.gov>
DeltaFile
+1-1flang/docs/ReleaseNotes.md
+1-11 files

LLVM/project 887fdd8llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add support for modules and globals

We can emit callbacks when a module is loaded/unloaded and before
globals are initialized. Both happens in newly introduced constructors
and destructors.
DeltaFile
+318-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+96-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+81-0llvm/test/Instrumentation/Instrumentor/module_and_globals.ll
+70-1llvm/test/Instrumentation/Instrumentor/default_config.json
+11-8llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+3-3llvm/test/Instrumentation/Instrumentor/unreachable.ll
+579-126 files

LLVM/project dce3bbbllvm/docs Instrumentor.rst, llvm/lib/Transforms/IPO InstrumentorUtils.cpp

[Instrumentor] Add a property filter for static properties

The user can define static filters in the json to limit instrumentation
to opportunities that match the static expression, e.g., is_volatile==1.
The matcher logic is pretty basic for now. Integer comparisons, pointer
null checks, string equalities and startswith are supported.

The commit was prepared with Claude (AI) and modified/tested by me.
DeltaFile
+475-0llvm/lib/Transforms/IPO/InstrumentorUtils.cpp
+153-0llvm/docs/Instrumentor.rst
+114-0llvm/test/Instrumentation/Instrumentor/test_filter_parentheses.ll
+69-0llvm/test/Instrumentation/Instrumentor/test_filter.ll
+58-0llvm/test/Instrumentation/Instrumentor/test_filter_parentheses_config.json
+56-0llvm/test/Instrumentation/Instrumentor/test_filter_pointer_null_config.json
+925-014 files not shown
+1,243-320 files

LLVM/project b56403allvm/lib/Target/AMDGPU SIFrameLowering.cpp SIMachineFunctionInfo.h, llvm/test/CodeGen/AMDGPU amdgpu-spill-cfi-saved-regs.ll

[AMDGPU] Implement -amdgpu-spill-cfi-saved-regs

These spills need special CFI anyway, so implementing them directly
where CFI is emitted avoids the need to invent a mechanism to track them
from ISel.

Change-Id: If4f34abb3a8e0e46b859a7c74ade21eff58c4047
Co-authored-by: Scott Linder scott.linder at amd.com
Co-authored-by: Venkata Ramanaiah Nalamothu VenkataRamanaiah.Nalamothu at amd.com
DeltaFile
+2,926-0llvm/test/CodeGen/AMDGPU/amdgpu-spill-cfi-saved-regs.ll
+12-0llvm/lib/Target/AMDGPU/SIFrameLowering.cpp
+10-0llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h
+9-0llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+2-0llvm/lib/Target/AMDGPU/SIRegisterInfo.h
+2,959-05 files

LLVM/project f198408llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.960bit.ll

[AMDGPU] Use register pair for PC spill

Change-Id: Ibedeef926f7ff235a06de65a83087c151f66a416
DeltaFile
+4,331-4,331llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+1,742-1,740llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+1,562-1,560llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+1,462-1,460llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+1,238-1,236llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+1,030-1,028llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
+11,365-11,35589 files not shown
+18,153-18,04495 files