LLVM/project ca5ea41clang/test/CodeGenOpenCL builtins-amdgcn-asyncmark-errs.cl

fix test

Co-authored-by: Matt Arsenault <arsenm2 at gmail.com>
DeltaFile
+1-1clang/test/CodeGenOpenCL/builtins-amdgcn-asyncmark-errs.cl
+1-11 files

LLVM/project b071e92llvm/include/llvm/Support GenericDomTree.h GenericDomTreeConstruction.h

[DomTree] Remove support for unnumbered graphs (#212026)

After VPlan, all our in-tree users of the dominator tree have numbered
nodes. Remove the support for unnumbered graphs.

Also slightly simplify the numbering for pre-dominator trees to avoid an
extra +1 on every node number.
DeltaFile
+33-70llvm/include/llvm/Support/GenericDomTree.h
+9-20llvm/include/llvm/Support/GenericDomTreeConstruction.h
+42-902 files

LLVM/project 026a34bllvm/lib/Transforms/Utils SimplifyCFG.cpp

[SimplifyCFG] Fix DomTree update in `simplifySwitchDefaultBranch` (#212030)

When there is no edge to the original default destination BB, also
remove the edge in DT.

This issue cannot be reproduced via
-simplifycfg-require-and-preserve-domtree=1. I just found it by checking
DT in requestResimplify (will be added after fixing all existing
issues). The following test covers this case:

https://github.com/llvm/llvm-project/blob/5bc304c65494702d9d4928ff6cb369e6e6496e53/llvm/test/Transforms/SimplifyCFG/switch-simplify-default.ll#L172-L214
DeltaFile
+5-7llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+5-71 files

LLVM/project 4c3a4f1llvm/include/llvm/Analysis ScalarEvolution.h, llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Use DenseMap for constant lookup, bypassing FoldingSet (NFC) (#212022)

Looking up/contructing SCEVConstants is a very frequent operation, with
a notable amount of compile-time spent in SCEV.

Add a new DenseMap, mapping IR constants to SCEVConstant. Constants are
already uniqued, so the pointer based lookup is notably faster than the
folding-set lookup.

The cache is used as fast early-exit, and the SCEVConstants are still
added to the folding set for completeness.

Compile-time impact
 * stage1-O3: -0.23%
 * stage1-ReleaseThinLTO: -0.21%
 * stage1-ReleaseLTO-g: -0.19%
 * stage1-aarch64-O3: -0.20%
 * stage2-O3: -0.10%


    [3 lines not shown]
DeltaFile
+11-3llvm/lib/Analysis/ScalarEvolution.cpp
+5-0llvm/include/llvm/Analysis/ScalarEvolution.h
+16-32 files

LLVM/project a434fe8libcxx/include/__functional function_ref_impl.h, libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.ref/func.wrap.ref.ctor constant_wrapper_ref.pass.cpp constant_wrapper_ptr.pass.cpp

[libc++] Implement  `std::function_ref` (#186692)

Papers:
- P0792R14: function_ref: a type-erased callable reference
- P3948R1 constant_wrapper is the only tool needed for passing constant
expressions via function arguments
- P3961R1 Less double indirection in function_ref (RU-220)

LWG issues:
- LWG4256: Incorrect constraints for function_ref constructors from
nontype_t
- LWG4425: CTAD function_ref of data member pointer should produce
noexcept signature

Fixes #189606
Fixes #105376
Fixes #189604
Fixes #171321
Fixes #171387

    [4 lines not shown]
DeltaFile
+524-0libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.ref/func.wrap.ref.inv/invoke.pass.cpp
+428-0libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.ref/func.wrap.ref.ctor/constant_wrapper_ref.pass.cpp
+407-0libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.ref/func.wrap.ref.ctor/constant_wrapper_ptr.pass.cpp
+368-0libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.ref/func.wrap.ref.ctor/ref.pass.cpp
+201-0libcxx/include/__functional/function_ref_impl.h
+199-0libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.ref/func.wrap.ref.ctor/copy_assign.pass.cpp
+2,127-026 files not shown
+3,356-3232 files

LLVM/project 2ab167bclang-tools-extra/docs ReleaseNotes.rst

[clangd] Add clangd 23 release notes
DeltaFile
+108-11clang-tools-extra/docs/ReleaseNotes.rst
+108-111 files

LLVM/project 3b484a3llvm/docs LangRef.md, llvm/test/Assembler invalid-atomicrmw-elementwise.ll atomic.ll

port
DeltaFile
+25-3llvm/docs/LangRef.md
+25-0llvm/unittests/IR/VerifierTest.cpp
+8-0llvm/test/Assembler/invalid-atomicrmw-elementwise.ll
+2-2llvm/test/Assembler/atomic.ll
+2-2llvm/test/Bitcode/atomicrmw-elementwise.ll
+2-2llvm/test/Bitcode/compatibility.ll
+64-92 files not shown
+68-98 files

LLVM/project 461ec35clang/lib/AST Decl.cpp, clang/lib/Sema SemaDecl.cpp

[Sema] Skip expansion statements when determing local extern context (#210512) (#211745)

This bug showed up as a failed assertion that was asserting that if
not in a function or method context we should be in the global/file
context.

The root cause is that when determining the linkage context for a
decl we were failing to account for the existence of expansion
contexts. Ignoring the assertion failure, the functional effect of
this is that we would fail to detect incorrect local extern
declarations inside expansion contexts. The fix here is to make
sure that we use `getEnclosingNonExpansionStatementContext()` to
find the true DeclContext for the current scope.

The initial report only identified local extern function declarations
but the same bug occurred with extern var decls, but the path did
not lead to an assertion firing, just incorrect behaviour.

Thanks to Sirraide for explaining why this was going wrong, and

    [5 lines not shown]
DeltaFile
+73-0clang/test/SemaCXX/expansion-statements-local-extern-decls.cpp
+3-1clang/lib/AST/Decl.cpp
+1-1clang/lib/Sema/SemaDecl.cpp
+77-23 files

LLVM/project d4d778bllvm/lib/CodeGen/AsmPrinter DwarfExpression.cpp, llvm/lib/Target/WebAssembly WebAssemblyFrameLowering.cpp

[DebugInfo][WebAssembly] Anchor stack locals to the frame base (#211826)

WebAssembly's stack pointer is not a register that can be described in
DWARF. When a function has no virtual frame base, because its stack
pointer is never explicitly referenced (e.g. a function whose only local
is dead), the frame base falls back to the __stack_pointer global and
the frame register is the physical SP.

addMachineReg failed for that register, so addMachineRegExpression
dropped the base and the caller emitted the frame offset with nothing
under it: a bare DW_OP_plus_uconst that underflows the DWARF stack when
the location is evaluated.

```
  DW_AT_frame_base (DW_OP_WASM_location 0x3 0x0, DW_OP_stack_value)
    DW_AT_location  (DW_OP_plus_uconst 0xc)   ;; before
    DW_AT_location  (DW_OP_fbreg +12)         ;; after
```


    [13 lines not shown]
DeltaFile
+39-0llvm/test/DebugInfo/WebAssembly/dbg-fbreg-global-frame-base.ll
+7-0llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
+3-2llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp
+49-23 files

LLVM/project d6d9072llvm/include/llvm/CodeGen ModuloSchedule.h, llvm/lib/CodeGen ModuloSchedule.cpp

[Pipeliner] Use VRMapPhi to generate phi in epilog (#211723)

When generating a phi in the epilog block corresponding to an existing
phi in the loop, the loop value should come from the new phi generated
in the kernel block (for a non-phi instruction in the loop) rather than
directly from the value map of the previous stage.

The new phis generated by generatePhis for non-phi instructions are
stored in VRMapPhi. Thread VRMapPhi through generateExistingPhis and add
a helper getMapPhiReg that returns the phi-generated register when
available, falling back to VRMap otherwise.

Without this fix, the epilog can pick up the initial prolog value of a
loop-carried register instead of the last kernel-iteration value,
producing incorrect results for pipelined loops with two or more stages
that carry values across iterations. This has been observed on Hexagon
with the modulo scheduled epilog of a right-shift-with-carry loop after
loop unrolling.


    [3 lines not shown]
DeltaFile
+190-0llvm/test/CodeGen/Hexagon/swp-epilog-carry.ll
+148-0llvm/test/CodeGen/Hexagon/swp-epilog-phi12.mir
+16-12llvm/lib/CodeGen/ModuloSchedule.cpp
+13-3llvm/include/llvm/CodeGen/ModuloSchedule.h
+367-154 files

LLVM/project 01242af.github/workflows release-documentation.yml

workflows/release-documentation: Fix indentation (#211319)

Introduced by 8ad500f6f7d7347ca097d9c442fbf4a0f604dc26.

(cherry picked from commit 7d39826fbe9e1b248fcdb0bdd68626b3deb88d1e)
DeltaFile
+6-6.github/workflows/release-documentation.yml
+6-61 files

LLVM/project 516370c.github/workflows test-suite.yml hlsl-test-all.yaml

Update [Github] Update GHA Dependencies (#194274)

This PR contains the following updates:

| Package | Type | Update | Change | Pending |
|---|---|---|---|---|
|
[EnricoMi/publish-unit-test-result-action](https://redirect.github.com/EnricoMi/publish-unit-test-result-action)
| action | minor | `v2.23.0` → `v2.24.0` | |
|
[actions/attest-build-provenance](https://redirect.github.com/actions/attest-build-provenance)
| action | patch | `v4.1.0` → `v4.1.1` | |
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | patch | `v6.0.2` → `v6.0.3` | |
| [actions/checkout](https://redirect.github.com/actions/checkout) |
action | patch | `v6.0.1` → `v6.0.3` | |
|
[actions/create-github-app-token](https://redirect.github.com/actions/create-github-app-token)
| action | minor | `v3.1.1` → `v3.2.0` | |

    [35 lines not shown]
DeltaFile
+6-6.github/workflows/test-suite.yml
+5-5.github/workflows/hlsl-test-all.yaml
+5-5.github/workflows/libcxx-build-and-test.yaml
+5-5.github/workflows/libc-shared-tests.yml
+5-5.github/workflows/libc-overlay-tests.yml
+4-4.github/workflows/release-documentation.yml
+30-3049 files not shown
+129-12955 files

LLVM/project 5bc304cllvm/lib/Transforms/Vectorize VPlan.h

[VPlan][NFC] Extend comments of VPlan block numbers (#212025)

Address during-commit review feedback.
DeltaFile
+4-2llvm/lib/Transforms/Vectorize/VPlan.h
+4-21 files

LLVM/project 311914cllvm/include/llvm/Support GenericDomTree.h

more cleanup

Created using spr 1.3.8-wip
DeltaFile
+12-22llvm/include/llvm/Support/GenericDomTree.h
+12-221 files

LLVM/project da352acllvm/include/llvm/Support GenericDomTree.h

clang-format, but reasonable

Created using spr 1.3.8-wip
DeltaFile
+3-5llvm/include/llvm/Support/GenericDomTree.h
+3-51 files

LLVM/project 6b5e124llvm/include/llvm/Support GenericDomTree.h GenericDomTreeConstruction.h

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+28-53llvm/include/llvm/Support/GenericDomTree.h
+9-20llvm/include/llvm/Support/GenericDomTreeConstruction.h
+37-732 files

LLVM/project c7299aellvm/lib/Transforms/Vectorize VPlan.h

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+4-2llvm/lib/Transforms/Vectorize/VPlan.h
+4-21 files

LLVM/project 05bcb50llvm/lib/Transforms/Vectorize VPlan.h VPlanCFG.h

[VPlan][NFC] Number blocks (#212023)

Assign numbers to blocks for more efficient dominator tree construction.
The number is identical to the index in CreatedBlocks of the VPlan.

This removes the last user of unnumbered graphs for dominator trees.

Note that the compile-time change here is practically unmeasurable. The
motivation really is to remove the non-number code path from the
dominator tree.
DeltaFile
+12-0llvm/lib/Transforms/Vectorize/VPlan.h
+11-0llvm/lib/Transforms/Vectorize/VPlanCFG.h
+7-2llvm/lib/Transforms/Vectorize/VPlan.cpp
+30-23 files

LLVM/project cb175d2llvm/lib/Target/AArch64/MCTargetDesc AArch64MCAsmInfo.cpp, llvm/lib/Target/AMDGPU/MCTargetDesc AMDGPUMCAsmInfo.cpp

[MC][NFC] Use EnumStrings for AtSpecifiers (#211827)

Store at specifiers without relocations using EnumStrings, reducing
.data.rel.ro by 4-5kiB. This also saves the more compactly at now 6B per
entry instead of 24B.
DeltaFile
+87-84llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp
+31-29llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp
+27-25llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp
+18-14llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp
+17-15llvm/lib/Target/VE/MCTargetDesc/VEMCAsmInfo.cpp
+12-10llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCAsmInfo.cpp
+192-1778 files not shown
+256-22214 files

LLVM/project 5f787acllvm/lib/Transforms/Utils SimplifyCFG.cpp, llvm/test/Transforms/SimplifyCFG switch-dedup.ll

[SimplfiyCFG] Deduplicate edges in `hoistSuccIdenticalTerminatorToSwitchOrIf` (#212017)

Fix domtree update by deduplicating edges to be inserted. Tested by the
function `@dedup`.
DeltaFile
+3-1llvm/lib/Transforms/Utils/SimplifyCFG.cpp
+1-1llvm/test/Transforms/SimplifyCFG/switch-dedup.ll
+4-22 files

LLVM/project 73f6b3aclang/lib CMakeLists.txt

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+3-1clang/lib/CMakeLists.txt
+3-11 files

LLVM/project 6bd4361llvm/lib/Transforms/Vectorize VPlan.h VPlanCFG.h

[spr] initial version

Created using spr 1.3.8-wip
DeltaFile
+12-0llvm/lib/Transforms/Vectorize/VPlan.h
+11-0llvm/lib/Transforms/Vectorize/VPlanCFG.h
+7-2llvm/lib/Transforms/Vectorize/VPlan.cpp
+30-23 files

LLVM/project ae5e065compiler-rt/lib/profile InstrProfilingPlatformROCm.cpp, compiler-rt/test/profile/AMDGPU device-module-load-file.hip

[PGO][HIP] Support hipModuleLoad in offload PGO (#211875)

Offload PGO finds profile sections by inspecting the image passed to
hipModuleLoadData. hipModuleLoad only provides a file name, so its
device
profile counters were not collected.

After a successful hipModuleLoad, read the code object with the existing
profile file-buffer helper and register it through the same path used by
in-memory module loads.
DeltaFile
+63-0compiler-rt/test/profile/AMDGPU/device-module-load-file.hip
+37-3compiler-rt/lib/profile/InstrProfilingPlatformROCm.cpp
+100-32 files

LLVM/project a273377llvm/include/llvm/Support GenericDomTreeConstruction.h, llvm/unittests/Support GenericDomTreeTest.cpp

[DomTreeConstr][NFC] Resize NodeInfos once on construction (#211998)

This avoids frequent size checks when accessing node infos. All numbered
graphs support getMaxNumber().

Also move away from BB->getParent() as preliminary work for numbering
VPlan blocks -- there, getParent() has a different meaning.
DeltaFile
+18-17llvm/include/llvm/Support/GenericDomTreeConstruction.h
+0-5llvm/unittests/Support/GenericDomTreeTest.cpp
+18-222 files

LLVM/project 0252b42clang-tools-extra/docs/clang-tidy/checks/abseil unchecked-statusor-access.md duration-unnecessary-conversion.md

[clang-tidy][docs] Rewrite remaining abseil check docs to Markdown (#212004)

This commit rewrites the reST documentation to Markdown.

Tracking issue: #201242
See the [migration guide] for more information. 

[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines

AI Usage: This was prepared with rst2myst and GPT5.6-assisted cleanup, I
manually verified that all the documentations render as expected.

Preview site for reviewing:
https://broken.life/llvm-staging/abseil-markdown-port/
DeltaFile
+267-283clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.md
+35-35clang-tools-extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.md
+34-33clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-str-contains.md
+32-32clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-startswith.md
+24-25clang-tools-extra/docs/clang-tidy/checks/abseil/duration-division.md
+23-23clang-tools-extra/docs/clang-tidy/checks/abseil/faster-strsplit-delimiter.md
+415-4316 files not shown
+537-55512 files

LLVM/project fedcc2eclang-tools-extra/docs/clang-tidy/checks/abseil unchecked-statusor-access.rst unchecked-statusor-access.md

[clang-tidy][docs] Rename remaining abseil check docs to Markdown (#212003)

Tracking issue: https://github.com/llvm/llvm-project/issues/201242
See the [migration guide] for more information.

[migration guide]:

https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines

This is the initial straight rename commit. It will probably break the
docs build, but it has to be a separate PR for blame preservation
purposes.
DeltaFile
+0-442clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.rst
+442-0clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.md
+0-57clang-tools-extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.rst
+57-0clang-tools-extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.md
+52-0clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-str-contains.md
+0-52clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-str-contains.rst
+551-55118 files not shown
+895-89524 files

LLVM/project 7e08ed3llvm/lib/Target/AArch64 AArch64MacroFusion.cpp AArch64Features.td, llvm/test/CodeGen/AArch64 misched-fusion-fmin-fmax-post-ra.mir misched-fusion-fmin-fmax-pre-ra.mir

[AArch64] Add FMIN/FMAX clustering (#210906)

This patch adds a subtarget feature that controls scheduling FMIN/FMAX
instructions back to back. Enabled on Apple CPU.
DeltaFile
+968-0llvm/test/CodeGen/AArch64/misched-fusion-fmin-fmax-post-ra.mir
+456-0llvm/test/CodeGen/AArch64/misched-fusion-fmin-fmax-pre-ra.mir
+371-0llvm/test/CodeGen/AArch64/misched-fusion-fmin-fmax.ll
+44-0llvm/lib/Target/AArch64/AArch64MacroFusion.cpp
+5-0llvm/lib/Target/AArch64/AArch64Features.td
+3-1llvm/lib/Target/AArch64/AArch64Processors.td
+1,847-12 files not shown
+1,849-28 files

LLVM/project b5ffcdfclang-tools-extra/docs/clang-tidy/checks/abseil unchecked-statusor-access.md duration-unnecessary-conversion.md

[clang-tidy][docs] Rewrite remaining abseil check docs to Markdown
DeltaFile
+267-283clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.md
+35-35clang-tools-extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.md
+34-33clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-str-contains.md
+32-32clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-startswith.md
+24-25clang-tools-extra/docs/clang-tidy/checks/abseil/duration-division.md
+23-23clang-tools-extra/docs/clang-tidy/checks/abseil/faster-strsplit-delimiter.md
+415-4316 files not shown
+537-55512 files

LLVM/project 24246aeclang-tools-extra/docs/clang-tidy/checks/abseil unchecked-statusor-access.md unchecked-statusor-access.rst

[clang-tidy][docs] Rename remaining abseil check docs to Markdown
DeltaFile
+442-0clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.md
+0-442clang-tools-extra/docs/clang-tidy/checks/abseil/unchecked-statusor-access.rst
+0-57clang-tools-extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.rst
+57-0clang-tools-extra/docs/clang-tidy/checks/abseil/duration-unnecessary-conversion.md
+52-0clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-str-contains.md
+0-52clang-tools-extra/docs/clang-tidy/checks/abseil/string-find-str-contains.rst
+551-55118 files not shown
+895-89524 files

LLVM/project 255b9d0llvm/include/llvm/Transforms/Utils AssignGUID.h, llvm/lib/Target/AArch64 SVEShuffleOpts.cpp AArch64.h

[𝘀𝗽𝗿] changes to main this commit is based on

Created using spr 1.3.7

[skip ci]
DeltaFile
+3-3llvm/lib/Target/AArch64/SVEShuffleOpts.cpp
+3-2llvm/lib/Target/AArch64/AArch64.h
+1-3llvm/include/llvm/Transforms/Utils/AssignGUID.h
+3-1llvm/lib/Target/AArch64/AArch64PassRegistry.def
+10-94 files