LLVM/project fe5817bclang/test/CodeGen 2008-07-31-asm-labels.c

Revert "Search for @_thisIsNotAPipe vs _thisIsNotAPipe" (#194929)

Reverts llvm/llvm-project#192132, which broke the `Clang ::
CodeGen/2008-07-31-asm-labels.c` test on mac.
DeltaFile
+3-3clang/test/CodeGen/2008-07-31-asm-labels.c
+3-31 files

LLVM/project 22f61feclang/include/clang/Analysis/Analyses/LifetimeSafety LifetimeAnnotations.h, clang/lib/Analysis/LifetimeSafety LifetimeAnnotations.cpp FactsGenerator.cpp

[LifetimeSafety] Generalize invalidating member function detection (#194907)

This PR adds support for invalidating references after reassigning a
`unique_ptr` or calling its `reset` member function.

Previously, invalidation handling was limited to container-like types.
This PR generalizes the helper for detecting invalidating member calls
and adds `unique_ptr`'s `reset` member function as an invalidating one.
Since `unique_ptr` is now handled by this helper, reassignment through
`operator=` is also treated as invalidating.

Fixes #184630
DeltaFile
+34-0clang/test/Sema/warn-lifetime-safety-invalidations.cpp
+6-6clang/include/clang/Analysis/Analyses/LifetimeSafety/LifetimeAnnotations.h
+8-4clang/lib/Analysis/LifetimeSafety/LifetimeAnnotations.cpp
+3-0clang/test/Sema/Inputs/lifetime-analysis.h
+1-1clang/lib/Analysis/LifetimeSafety/FactsGenerator.cpp
+52-115 files

LLVM/project 6fc0857clang/lib/CIR/CodeGen CIRGenExpr.cpp CIRGenModule.cpp, clang/lib/Sema SemaOpenACC.cpp

[CIR] Add some missing NYIs for WeakRefAttr/AliasAttr (#194913)

I found these while poking through something else, we should make sure
these don't get lost, particularly as alias has some significant
functionality.
DeltaFile
+10-0clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+6-0clang/lib/CIR/CodeGen/CIRGenModule.cpp
+4-2clang/lib/Sema/SemaOpenACC.cpp
+20-23 files

LLVM/project 1ee0a4allvm/docs AMDGPUUsage.rst, llvm/docs/AMDGPU DeveloperGuideline.rst

[NFC][AMDGPU][Doc] Add developer guideline

This guideline covers topics on top of existing LLVM guideline.
DeltaFile
+373-0llvm/docs/AMDGPU/DeveloperGuideline.rst
+1-0llvm/docs/AMDGPUUsage.rst
+374-02 files

LLVM/project 04591cbllvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes SeedCollection.cpp, llvm/test/Transforms/SandboxVectorizer/AMDGPU basic.ll lit.local.cfg

[SandboxVec][SeedCollector] Change vector bit width calculation (#194090)

On GPUs `TTI::getRegisterBitWidth(TargetTransformInfo::RGK_FixedWidthVector()` returns the element bit width, not the whole vector size as it does on the CPU. So this patch changes this to a call to `getLoadStoreVecRegBitWidth()`, which depends on the address space, so it also moves the calculation per seed.

This patch also adds an AMDGPU lit test directory with a simple test.
DeltaFile
+22-0llvm/test/Transforms/SandboxVectorizer/AMDGPU/basic.ll
+12-6llvm/lib/Transforms/Vectorize/SandboxVectorizer/Passes/SeedCollection.cpp
+2-0llvm/test/Transforms/SandboxVectorizer/AMDGPU/lit.local.cfg
+36-63 files

LLVM/project eab8a46llvm/include/llvm/CodeGen WasmEHFuncInfo.h, llvm/lib/CodeGen/SelectionDAG FunctionLoweringInfo.cpp

[WebAssembly] Remove exception deferring in CFGSort (NFC) (#194905)

This logic was added in
https://github.com/llvm/llvm-project/commit/ea8c6375e3330f181105106b3adb84ff9fa76a7c
(and extended to support multiple srcs in
https://github.com/llvm/llvm-project/commit/aa097ef8d474c925e4fbe0efcaad253266c2fd6f).

But as in the case of #191495, we don't need this logic anymore after
#130374. The reason is the same as #130374, but in this PR's context, in
the deleted comments,

> there can be cases in which, for example:
> EHPad A's unwind destination (where the exception lands when it is not
caught by EHPad A) is EHPad B, so EHPad B does not belong to the
exception dominated by EHPad A. But EHPad B is dominated by EHPad A, so
EHPad B can be sorted within EHPad A's exception.

This can't happen anymore, because if an invoke BB throws, and EHPad A
is the first unwind destination, and EHPad B is the next unwind

    [6 lines not shown]
DeltaFile
+1-30llvm/lib/Target/WebAssembly/WebAssemblyCFGSort.cpp
+1-28llvm/include/llvm/CodeGen/WasmEHFuncInfo.h
+0-9llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
+2-673 files

LLVM/project 7893951clang/test/CodeGen 2008-07-31-asm-labels.c

Revert "Search for @_thisIsNotAPipe vs _thisIsNotAPipe (#192132)"

This reverts commit 398049f309e0f8cd42e9b35b7518381a966132d2.
DeltaFile
+3-3clang/test/CodeGen/2008-07-31-asm-labels.c
+3-31 files

LLVM/project 4c3fed7clang/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
+122-123clang/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
+215-1973 files not shown
+224-2069 files

LLVM/project 6591086clang/docs ReleaseNotes.rst, clang/lib/Parse ParseDeclCXX.cpp

[Clang] allow GNU attrs before bit-field width in member declarators (#185322)

Fixes #184954

--- 

This PR fixes the parsing of member bit-field declarators by allowing
GNU attributes between the declarator and the bit-field width.

```cpp
struct S {
    int x __attribute__((packed)) : 4;
};
```
DeltaFile
+11-1clang/test/Parser/cxx-attributes.cpp
+5-1clang/lib/Parse/ParseDeclCXX.cpp
+2-0clang/docs/ReleaseNotes.rst
+18-23 files

LLVM/project 135d14cclang/lib/DependencyScanning InProcessModuleCache.cpp

[clang][deps] Value-compare buffers in the in-process module cache (#194888)

The `MemoryBufferRef::operator==()` function performs pointer comparison
instead of value comparison. This means that the assertion in
`InProcessModuleCache` always fires if there's a race between two
producers of a PCM. This PR makes sure to value-compare the contained
`StringRef` buffers.
DeltaFile
+2-1clang/lib/DependencyScanning/InProcessModuleCache.cpp
+2-11 files

LLVM/project 01de588llvm/include/llvm/CodeGen TargetInstrInfo.h

Revert "[CodeGen] Temporary disable the unreachable" (#194720)

This reverts commit 7dc644fc463a8f42f54d63a99c3a4579df2c3859.

This code path is only used in implementations of
`emitZeroCallUsedRegs()`, it is not required for all platforms that use
stack protectors.
DeltaFile
+0-4llvm/include/llvm/CodeGen/TargetInstrInfo.h
+0-41 files

LLVM/project a68fcabllvm/include/llvm/Analysis FunctionPropertiesAnalysis.h InstCount.h

Revert "Make Passes Required - func-properties-stats and instcount (#192130)"

This reverts commit 3b4731fed7abbb91b6789ce6ebb597fbf441edbd.
DeltaFile
+0-2llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
+0-2llvm/include/llvm/Analysis/InstCount.h
+0-42 files

LLVM/project 105bd6boffload/include/Shared Utils.h, offload/plugins-nextgen/amdgpu/src rtl.cpp

[Offload] Clean up and split Shared/Utils.h (#194876)

Summary:
This is used in the GPU portion of the build, but really shouldn't be.
Most of these helpers were only used by the GPU portion, which has much
nicer builtins available in new clang. Using these in the main offload
build is broken on Windows and not available on older compilers, so we
split. Also means one less header we share.

The alignment helpers are trivially replaced by an LLVM utility, the
only thing that remains are the pointer arithmetic functions. There's no
conveient place to put these so I just let them stay.
DeltaFile
+0-34offload/include/Shared/Utils.h
+16-1openmp/device/include/DeviceUtils.h
+2-2offload/plugins-nextgen/amdgpu/src/rtl.cpp
+2-2openmp/device/src/Reduction.cpp
+0-3openmp/device/src/DeviceUtils.cpp
+1-1openmp/device/src/Allocator.cpp
+21-434 files not shown
+25-4710 files

LLVM/project d558f69lldb/packages/Python/lldbsuite/test decorators.py, lldb/test/API/functionalities/signal/handle-abrt TestHandleAbort.py

[lldb] Add a @skipIfNoSignals decorator for Windows and Wasm (#194760)

Add a new @skipIfNoSignals test decorator that skips tests on platforms
that lack signal support (Windows & WASI).
DeltaFile
+5-0lldb/packages/Python/lldbsuite/test/decorators.py
+1-1lldb/test/API/functionalities/signal/raise/TestRaise.py
+1-1lldb/test/API/python_api/signals/TestSignalsAPI.py
+1-1lldb/test/API/tools/lldb-dap/exception/TestDAP_exception.py
+1-1lldb/test/API/functionalities/signal/handle-abrt/TestHandleAbort.py
+1-1lldb/test/API/functionalities/signal/handle-segv/TestHandleSegv.py
+10-53 files not shown
+13-59 files

LLVM/project 323fc90llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly BUILD.gn

[gn] port 16897c234a2980 (wasm global isel extended llt tblgen) (#194925)
DeltaFile
+4-1llvm/utils/gn/secondary/llvm/lib/Target/WebAssembly/BUILD.gn
+4-11 files

LLVM/project b42edd6clang/test/Preprocessor init-fuchsia.c

[clang][Fuchsia] Add test for Fuchsia-specific predefines (#194780)

One of these is tested indirectly via the driver test for
plumbing the `-ffuchsia-api-level=...` switch.  But there is no
proper cc1 test for the predefines being defined per se.
DeltaFile
+11-0clang/test/Preprocessor/init-fuchsia.c
+11-01 files

LLVM/project 2a54e8fllvm/lib/Target/PowerPC PPCISelLowering.cpp, llvm/test/CodeGen/PowerPC test-issue-98598.ll

[PowerPC] Fix assert which caused by PR 190606 (#194040)

Fixed assert which caused by
https://github.com/llvm/llvm-project/pull/190606
DeltaFile
+65-0llvm/test/CodeGen/PowerPC/test-issue-98598.ll
+10-9llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+75-92 files

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

address review comments
DeltaFile
+5-7clang/include/clang/Analysis/Analyses/LifetimeSafety/Origins.h
+2-3clang/lib/Analysis/LifetimeSafety/Origins.cpp
+7-102 files

LLVM/project de3ff7eflang/lib/Optimizer/Dialect FIROps.cpp, flang/test/Fir mem2reg.mlir

[flang][FIR][Mem2Reg] Do not emit potentially wrong debug info (#194837)

When mem2reg replaces values, it can potentially replace a value that is
stored before a fir.declare comes in scope, when the fir.declare was
inlined from another routine. When we emit a declare_value op for such a
variable, it can potentially break dominance with regards to the
fir.dummy_scope op.

Do not emit fir.declare_value op in such cases to prevent compiler
crashes.
DeltaFile
+18-0flang/test/Fir/mem2reg.mlir
+6-1flang/lib/Optimizer/Dialect/FIROps.cpp
+24-12 files

LLVM/project a068c90flang/include/flang/Optimizer/Builder HLFIRTools.h, flang/lib/Lower ConvertArrayConstructor.cpp ConvertCall.cpp

[flang][HLFIR] Fix crash in WHERE with exactly_once inside elemental (#194443)

Fix a segfault in LowerHLFIROrderedAssignments when compiling a WHERE
statement whose mask contains an array constructor with an implied-do
loop (e.g. WHERE([(f(J), J=1,N)]) ...). The hlfir.exactly_once op inside
the hlfir.elemental has live-in values that are block arguments from the
enclosing elemental, which canonicalizeExactlyOnceInsideWhere cannot
pull into the exactly_once region.

The fix has two parts:

1. In canonicalizeExactlyOnceInsideWhere, skip exactly_once ops nested
inside hlfir.elemental and skip block argument live-ins, since these
cannot be relocated.

2. In both overloads of inlineElementalOp, handle hlfir.exactly_once by
inlining its body and cleanup operations instead of cloning the op
verbatim (which left an illegal op after lowering).


    [6 lines not shown]
DeltaFile
+22-0flang/test/Lower/HLFIR/where-implied-do-mask.f90
+1-13flang/lib/Lower/ConvertArrayConstructor.cpp
+13-0flang/lib/Optimizer/Builder/HLFIRTools.cpp
+1-7flang/lib/Lower/ConvertCall.cpp
+4-0flang/include/flang/Optimizer/Builder/HLFIRTools.h
+41-205 files

LLVM/project df65c8blldb/source/Plugins/ExpressionParser/Clang InjectPointerSigningFixups.cpp

[lldb] Handle ConstantExpr constants in InjectPointerSigningFixupCode (#194476)

Currently, the injection code assumes we encounter ConstantAggregate
constants and emits a GEP to access the fields/members. However, it's
possible for a CPA to be an operand of a ConstantExpr (e.g. a bitcast).
Emitting a GEP in that scenario doesn't make sense. This should instead
be handled by keeping track of the path to the CPA (which operands need
to be followed from the top-level ConstantExpr).

After this change, most arm64e tests that crash LLDB either pass or fail
with some other issue. The main exception is TestWeakSymbols.py which
needs more work.
DeltaFile
+69-31lldb/source/Plugins/ExpressionParser/Clang/InjectPointerSigningFixups.cpp
+69-311 files

LLVM/project 7e13df6llvm/utils/gn/secondary/clang/unittests/Lex BUILD.gn

[gn build] Port 1e10f9a82222 (#194919)
DeltaFile
+1-0llvm/utils/gn/secondary/clang/unittests/Lex/BUILD.gn
+1-01 files

LLVM/project 12c9ffbllvm/utils/gn/secondary/lldb/source/Host BUILD.gn

[gn build] Port 6617aac292a1 (#194920)
DeltaFile
+1-0llvm/utils/gn/secondary/lldb/source/Host/BUILD.gn
+1-01 files

LLVM/project f0af59allvm/utils/gn/secondary/llvm/lib/ProfileData BUILD.gn

[gn build] Port 69c38be83991 (#194921)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/lib/ProfileData/BUILD.gn
+1-01 files

LLVM/project 5776682llvm/utils/gn/secondary/llvm/test BUILD.gn

[gn] port 69c38be83991374 (#194918)
DeltaFile
+1-0llvm/utils/gn/secondary/llvm/test/BUILD.gn
+1-01 files

LLVM/project e328845mlir/include/mlir/Dialect/XeGPU/IR XeGPUAttrs.td, mlir/lib/Dialect/XeGPU/Transforms XeGPUPeepHoleOptimizer.cpp

[MLIR][XeGPU] Clean up stale convert_layout on single-element vector in peephole (#194043)

Extend MultiRed2dOpPattern in xegpu-optimize-peephole to also erase
consumer xegpu.convert_layout ops when a 2D vector.multi_reduction
produces a single-element vector (e.g. vector<1xf32>)
DeltaFile
+51-12mlir/lib/Dialect/XeGPU/Transforms/XeGPUPeepHoleOptimizer.cpp
+49-4mlir/test/Dialect/XeGPU/peephole-optimize.mlir
+2-1mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td
+102-173 files

LLVM/project b6824bfllvm/lib/Target/RISCV RISCVISelLowering.cpp RISCVISelLowering.h

[RISCV] Remove codegen for vp_and, vp_or, vp_xor, vp_sra, vp_srl, vp_shl. NFC (#194904)
DeltaFile
+2-50llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+0-1llvm/lib/Target/RISCV/RISCVISelLowering.h
+2-512 files

LLVM/project 326162bllvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator ret-aggregates.ll args-simd.ll

[WebAssembly][GlobalISel] Remove unecessary `-verify-machineinstrs` from tests (NFC) (#194799)

Removes all uses of `-verify-machineinstrs` from the Wasm GISel tests.

This only impacts `*.ll` in practice, as `-verify-machineinstrs` appears
to be implicitly enabled when processing `.mir` files.
DeltaFile
+4-4llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/ret-aggregates.ll
+3-3llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args-simd.ll
+2-2llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args.ll
+2-2llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/ret-basics.ll
+2-2llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/args-swiftcc.ll
+2-2llvm/test/CodeGen/WebAssembly/GlobalISel/irtranslator/ret-simd.ll
+15-1511 files not shown
+26-2617 files

LLVM/project 88d2615lldb/packages/Python/lldbsuite/test decorators.py, lldb/packages/Python/lldbsuite/test/tools/lldb-server gdbremote_testcase.py

[lldb] Add skipIfWasm decorator and skip unsupported WebAssembly tests (#194761)

Add a new `skipIfWasm` test decorator that skips tests on the "wasip1"
and "wasi" platforms, and apply it to the test classes that rely on
expression evaluation or lldb-server, neither of which is available when
debugging WebAssembly targets.
DeltaFile
+5-0lldb/packages/Python/lldbsuite/test/decorators.py
+2-1lldb/test/API/lang/cpp/typedef/TestCppTypedef.py
+2-0lldb/test/API/lang/cpp/covariant-return-types/TestCovariantReturnTypes.py
+2-0lldb/test/API/commands/target/stop-hooks/TestStopHooks.py
+2-0lldb/test/API/commands/expression/context-object/TestContextObject.py
+2-0lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py
+15-150 files not shown
+68-156 files

LLVM/project a7a4a8alldb/packages/Python/lldbsuite/test decorators.py, lldb/test/API/commands/target/create-deps TestTargetCreateDeps.py

[lldb] Decorate tests that use shared libraries (#193118)

`wasip1` does not support shared libraries in the traditional POSIX
sense. It was designed primarily as a monolithic system interface for
standalone modules where everything is statically linked. `wasip2`
introduced a "component model" where components achieve the goals of
shared libraries.
DeltaFile
+9-0lldb/packages/Python/lldbsuite/test/decorators.py
+5-0lldb/test/API/commands/target/create-deps/TestTargetCreateDeps.py
+2-0lldb/test/API/functionalities/breakpoint/move_nearest/TestMoveNearest.py
+2-0lldb/test/API/lang/cpp/step-through-trampoline/TestStepThroughTrampoline.py
+2-0lldb/test/API/functionalities/completion/TestCompletion.py
+1-0lldb/test/API/functionalities/executable_first/TestExecutableFirst.py
+21-036 files not shown
+57-042 files