LLVM/project da4e5ccllvm/lib/Analysis ScalarEvolution.cpp, llvm/test/Analysis/ScalarEvolution rounding-demanded-bits.ll

[SCEV] Canonicalise round-up idiom when some bits known (#197126)

Since #174380, instcombine can clear some set bits in the added constant
in expressions like this, when A has some known-clear low order bits.
  (A + 15) & ~15

This transformation is valid, but can make it harder for later passes to
recognise this idiom for rounding up to a power of 2. This is causing
the ARM MVE tail predication pass to fail on loops with a trip count
which is a multiple of a small power of 2.

The fix is to reverse the transformation when building SCEV expressions,
canonicalising to always use the largest valid value for the added
constant.

Alive proofs:
https://alive2.llvm.org/ce/z/hhndoW
https://alive2.llvm.org/ce/z/_JYVat
DeltaFile
+117-0llvm/test/Analysis/ScalarEvolution/rounding-demanded-bits.ll
+77-0llvm/test/CodeGen/Thumb2/LowOverheadLoops/tail-pred-known-bits.ll
+20-0llvm/lib/Analysis/ScalarEvolution.cpp
+214-03 files

LLVM/project ca5d128clang/test/Driver aarch64-v97a.c, llvm/lib/Target/AArch64 AArch64SystemOperands.td AArch64Features.td

[AArch64][llvm] Deprecate FEAT_MPAMv2_VID

`FEAT_MPAMv2_VID` instructions and system registers, as introduced
in change d30f18d2c, are being deprecated at this time, as they've been
removed from the latest Arm ARM, which doesn't preclude them returning
in some form in future.

Other system registers introduced with `FEAT_MPAMv2` are unaffected,
and these continue to be ungated. `+mpamv2` gating is now renamed to
`+mpamv2-deprecated`, to avoid an ABI break. This makes it obvious that
it shouldn't be used.
DeltaFile
+19-19llvm/test/MC/AArch64/armv9.7a-mpamv2.s
+3-3llvm/lib/Target/AArch64/AArch64SystemOperands.td
+2-2llvm/unittests/TargetParser/TargetParserTest.cpp
+0-4clang/test/Driver/aarch64-v97a.c
+2-2llvm/lib/Target/AArch64/AArch64Features.td
+1-1llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+27-313 files not shown
+30-349 files

LLVM/project ee3709bllvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 neon-partial-reduce-dot-product.ll

[AArch64] Lower SUMLA via two udot products on plain dotprod targets. (#199761)

Lower PARTIAL_REDUCE_SUMLA on targets without i8mm using udot via

sum(mul (zext %a, sext %b)) =
    sum(mul zext %a, zext (xor %b, 0x80)) -
    sum(mul 128, zext %a)

using  sext(s) = zext(xor(s, 0x80)) - 128
(https://alive2.llvm.org/ce/z/8G8rer)

Alive2 proofs:
* mul (zext, sext) https://alive2.llvm.org/ce/z/8Av7rG
* mul (sext, zext) https://alive2.llvm.org/ce/z/g-gJGq

PR: https://github.com/llvm/llvm-project/pull/199761
DeltaFile
+292-142llvm/test/CodeGen/AArch64/neon-partial-reduce-dot-product.ll
+43-11llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+335-1532 files

LLVM/project 7fb99eellvm/lib/Analysis CallGraphSCCPass.cpp, llvm/test/Other legacy-callgraph-scc-pass-printer.ll

Emit newline after IR-dump banner in PrintCallGraphPass (#199410)

Required for Compiler Explorer's opt-pipeline viewer: the tool parses
pass output by splitting on the IR-dump banner line, so the banner must
end with a newline. Without it, targets that exercise this pass cannot
be inspected through the opt-pipeline feature.

Assisted by Claude.
DeltaFile
+11-0llvm/test/Other/legacy-callgraph-scc-pass-printer.ll
+1-1llvm/lib/Analysis/CallGraphSCCPass.cpp
+12-12 files

LLVM/project 34f294cflang/lib/Semantics resolve-directives.cpp, flang/test/Semantics/OpenMP detach-symbols.f90

[flang][OpenMP] Event handles are not predetermined shared (#200055)

An event-handle variable that appears in a DETACH has its data-sharing
attributes determined according to the usual rules in the constructs
enclosing the clause.
DeltaFile
+0-17flang/test/Semantics/OpenMP/detach-symbols.f90
+0-11flang/lib/Semantics/resolve-directives.cpp
+0-282 files

LLVM/project 9f82a4ellvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 ldst-opt.mir volatile-reg-writeback.ll

[AArch64] Do not generate indexed addressing mode for volatile accesses (#196305)

Instructions performing register writeback do not set a valid
instruction syndrome, making it impossible to handle MMIO in protected
hypervisors. Suppress the use of postinc/preinc addressing modes for
volatile accesses, which may be used to interact with MMIO.

There are three different places that can form indexed addressing modes:

 * GISel via isIndexingLegal()
 * SDAG via getPreIndexedAddressParts() and getPostIndexedAddressParts()
 * AArch64LoadStoreOptimizer

The the latter case, exclude volatile accesses on SP (which are relevant
for stack probing) and MTE tag stores, as both cannot be MMIO.

Fixes https://github.com/llvm/llvm-project/issues/173014.
DeltaFile
+36-36llvm/test/CodeGen/AArch64/ldst-opt.mir
+52-0llvm/test/CodeGen/AArch64/volatile-reg-writeback.ll
+14-15llvm/test/CodeGen/AArch64/stack-probing-dynamic.ll
+12-12llvm/test/CodeGen/AArch64/memtag-merge-writeback.mir
+24-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+10-10llvm/test/CodeGen/AArch64/arm64-ldst-unscaled-pre-post.mir
+148-736 files not shown
+174-9312 files

LLVM/project 98c7814llvm/test/tools/llubi gep.ll attributes.ll, llvm/tools/llubi/lib Context.cpp Value.h

[llubi] Add basic support for provenance modeling (#185977)

There are four solutions to model the provenance in the memory:
1. `(allocid, bitindex)` for each bit: It follows the definition of byte
type.
2. `(allocid, bitindex)` for each byte: This assumes the pointer/byte
types are always byte-sized, and requires bitextract/bitinsert to shift
by multiples of 8, as posted in
https://discourse.llvm.org/t/rfc-add-a-new-byte-type-to-llvm-ir/89522/53.
I believe this is true in most real-world cases.
3. Assign a random tag for each memory object: The tag has the same
width as the address. It is stored in the memory like addresses. Thus,
each logical byte only occupies 4 bytes. When loading a pointer, the tag
is loaded and used to recover the provenance. Incorrect bit ordering
will result in nullary provenance (with a negligible rate of false
negatives). I think it is feasible because we can always turn a false
negative into a positive with a different seed. It is also compatible
with captured components
(https://github.com/dtcxzyw/llvm-ub-aware-interpreter/blob/d15dfef5bc0c1b30b05512bbc28fddb2b50cc0b1/ubi.h#L187)

    [8 lines not shown]
DeltaFile
+85-20llvm/tools/llubi/lib/Context.cpp
+26-9llvm/tools/llubi/lib/Value.h
+27-8llvm/tools/llubi/lib/Context.h
+14-14llvm/test/tools/llubi/gep.ll
+13-13llvm/test/tools/llubi/attributes.ll
+9-11llvm/test/tools/llubi/metadata.ll
+174-7518 files not shown
+234-10524 files

LLVM/project 4471b62llvm/utils/git github-automation.py

[GitHub] Add InstCombine Contributor Guide to new contributor greeting comment (#199730)

I have always manually replied to new contributors, reminding them to
follow the InstCombine contributor guide. Let’s automate this process.

Now it will append the link to the guide when the PR changes the
InstCombine (and highly related components) files.
DeltaFile
+32-1llvm/utils/git/github-automation.py
+32-11 files

LLVM/project 40d0700clang/docs ReleaseNotes.rst, clang/include/clang/Basic DiagnosticParseKinds.td

address review
DeltaFile
+25-0clang/test/C/C2y/n3267.c
+10-4clang/lib/Parse/ParseExprCXX.cpp
+5-5clang/include/clang/Basic/DiagnosticParseKinds.td
+4-1clang/docs/ReleaseNotes.rst
+2-2clang/lib/Parse/ParseStmt.cpp
+46-125 files

LLVM/project 3e8fc35clang/include/clang/CIR MissingFeatures.h, clang/lib/CIR/CodeGen CIRGenCoroutine.cpp CIRGenException.cpp

[CIR] Implement 'coroutine' exception handling lowering (#200045)

This patch implements the lowering to CIR for exception handling.
Unfortunately the missing components of Flatten-CFG don't work here, so
we only test that we get successfully to CIR, not to LLVM-IR.

This patch runs the 'await-resume' in a try/catch, and only if that
succeeds, does it run the coroutine body (also in a try/catch if there
is an exception handler).

This is nearly identical to the implementation in classic-codegen,
except we invert the resume-eh variable's value, so we can just use a
simple `if` op for the branch.
DeltaFile
+138-0clang/test/CIR/CodeGen/coro-exceptions.cpp
+118-15clang/lib/CIR/CodeGen/CIRGenCoroutine.cpp
+3-1clang/lib/CIR/CodeGen/CIRGenException.cpp
+0-1clang/include/clang/CIR/MissingFeatures.h
+259-174 files

LLVM/project 61b5b08libc/test/integration/src/__support/GPU CMakeLists.txt

[libc] Move fixed buffer GPU test to an integration test (#200042)

Move the `fixedbuffer` GPU test to an integration test.

libc tests are intended to be GTest style tests written with the normal
`TEST(Suite, Test)` GTest macros. Example
[here](https://github.com/llvm/llvm-project/blob/main/libc/test/include/SignbitTest.h#L32).

This test has its own `main` which ends up causing a `main multiple
definitions` linker error when compiling for SPIR-V (work in progress).
I'm not sure why this error doesn't occur for AMDGPU, probably the fact
we have to compile with a ton less compile/linker flags for SPIR-V and
one of them hides the issue.

Specifically the fix is that we don't link against
`libc/test/UnitTest/CMakeFiles/LibcTest.hermetic.dir/LibcTestMain.cpp.o`
which has its own main which conflicts with the one defined in the test.

All other tests in this directory are integration tests too.

    [4 lines not shown]
DeltaFile
+1-1libc/test/integration/src/__support/GPU/CMakeLists.txt
+1-11 files

LLVM/project 9107dacllvm/include/llvm/Analysis LazyValueInfo.h MemoryDependenceAnalysis.h

llvm: Fix most LLVM_ABI annotations in Analysis (#199019)

This updates most LLVM_ABI annotations in the Analysis headers to match
expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.

These changes were done by a script fixing annotations on LLVM public
headers and manually checked.

This effort is tracked in #109483.
DeltaFile
+34-29llvm/include/llvm/Analysis/LazyValueInfo.h
+31-31llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h
+31-28llvm/include/llvm/Analysis/Delinearization.h
+28-30llvm/include/llvm/Analysis/IR2Vec.h
+26-25llvm/include/llvm/Analysis/StackSafetyAnalysis.h
+22-18llvm/include/llvm/Analysis/LoopCacheAnalysis.h
+172-16144 files not shown
+410-37550 files

LLVM/project 0adae5fllvm/docs AMDGPUUsage.rst

[AMDGPU] Document that only naturally aligned atomics of up to 64 bits are supported by the AMDGPU backend

We get an error from AtomicExpandPass if those constraints are not satisfied.
The 64-bit limit is set [here, in AMDGPUISelLowering.cpp](https://github.com/llvm/llvm-project/blob/5cac2751fb9cf3112d16717b278e40d07dd6cfdc/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp#L645).
DeltaFile
+3-0llvm/docs/AMDGPUUsage.rst
+3-01 files

LLVM/project 5b32c6ellvm/include/llvm/IR InstrTypes.h, llvm/lib/IR Instructions.cpp

[InstCombine] Drop the correct assume when working on assume bundles (#198404)

Currently, all assumes of the same kind in an assume bundle are dropped,
even though only a single one is actually checked to be redundant and
should be dropped. This introduces a new `removeOperandFromBundleAt`,
which instead drops a bundle at a specific position. This should also be
faster, since copying the bundles can now be done into an already
correctly allocated vector.
DeltaFile
+16-0llvm/lib/IR/Instructions.cpp
+15-0llvm/test/Transforms/InstCombine/assume.ll
+4-4llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
+4-0llvm/include/llvm/IR/InstrTypes.h
+39-44 files

LLVM/project 8ecfd9bmlir/include/mlir/Target/SPIRV SPIRVExtInstSets.h, utils/bazel/llvm-project-overlay/mlir BUILD.bazel

[BUILD]: Fix for af772866 (#200158)
DeltaFile
+4-1utils/bazel/llvm-project-overlay/mlir/BUILD.bazel
+3-2mlir/include/mlir/Target/SPIRV/SPIRVExtInstSets.h
+7-32 files

LLVM/project 5cac275llvm/lib/Target/LoongArch LoongArchFrameLowering.cpp LoongArchISelLowering.cpp, llvm/test/CodeGen/LoongArch stack-clash-prologue.ll stack-probing-dynamic.ll

[LoongArch] Add `-fstack-clash-protection` support (#195595)

This PR adds stack probing and `-fstack-clash-protection` support to the
LoongArch backend and Clang driver.

The implementation is largely borrowed from the RISCV backend (cf.
#117612, #139731), with the same allocation-unrolling strategy for
const-sized allocations.
DeltaFile
+714-0llvm/test/CodeGen/LoongArch/stack-clash-prologue.ll
+479-0llvm/test/CodeGen/LoongArch/stack-probing-dynamic.ll
+351-0llvm/test/CodeGen/LoongArch/stack-clash-prologue-nounwind.ll
+226-21llvm/lib/Target/LoongArch/LoongArchFrameLowering.cpp
+185-0llvm/test/CodeGen/LoongArch/stack-probing-frame-setup.mir
+123-1llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp
+2,078-228 files not shown
+2,233-2514 files

LLVM/project 960e149flang/lib/Lower/OpenMP OpenMP.cpp, flang/test/Lower/OpenMP target-inreduction.f90

[flang][OpenMP] Lower target in_reduction for host fallback

Teach Flang lowering and MLIR OpenMP translation to carry
in_reduction through omp.target for the host-fallback path.

The translation looks up task reduction-private storage with
__kmpc_task_reduction_get_th_data and binds the target region's
in_reduction block argument to that private pointer, so uses inside the
region do not keep referring to the original variable.

The patch also preserves in_reduction operands in the TargetOp builder
path and ensures target in_reduction list items are mapped into the
target region when needed.

The device/offload-entry path remains diagnosed as not yet implemented.
DeltaFile
+90-1mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+83-3mlir/test/Target/LLVMIR/openmp-todo.mlir
+64-6flang/lib/Lower/OpenMP/OpenMP.cpp
+60-0mlir/test/Dialect/OpenMP/invalid.mlir
+50-0mlir/test/Target/LLVMIR/openmp-target-in-reduction.mlir
+28-0flang/test/Lower/OpenMP/target-inreduction.f90
+375-103 files not shown
+412-309 files

LLVM/project f6758a5flang/lib/Frontend FrontendAction.cpp, flang/test/Preprocessing show-macros-stdin.f90

[flang] Fix -E -dM macro dumping for stdin and .f90 inputs (#200144)

Issue:
flang -E -dM does not consistently print predefined macros for stdin and
.f90 inputs, unlike expected behavior.

Root cause:
Flang only initialized predefined macros when preprocessing was implied
by -cpp or suffix-based inference (mustBePreprocessed), but not when -dM
alone requested macro dumping.

Fix:
Treat -dM as an explicit trigger to initialize macro predefinitions in,
and add a stdin regression test for flang -E -dM - < /dev/null.

Fixes #198234
DeltaFile
+10-0flang/test/Preprocessing/show-macros-stdin.f90
+1-0flang/lib/Frontend/FrontendAction.cpp
+11-02 files

LLVM/project ec7f079llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp

[SelectionDAG] Remove redundant asserts in WidenVecRes_ATOMIC_LOAD

These asserts duplicate guarantees already provided elsewhere:
- isVector() checks are redundant because findMemType() calls
  WidenVT.getVectorElementType() and WidenVT.isScalableVector()
  internally, and WidenVecRes_ATOMIC_LOAD is only reached from the
  ATOMIC_LOAD case in WidenVectorResult, which is the vector path.
- The element-type and scalability consistency between LdVT and
  WidenVT is a property of GetWidenedVector / getTypeToTransformTo.
DeltaFile
+0-5llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+0-51 files

LLVM/project 4683f6blldb/tools/lldb-dap DAP.cpp

[lldb-dap] Fix data race on disconnecting (#200017)

Guard m_disconnecting with the m_queue_mutex because the value can be
changed in multiple threads
DeltaFile
+3-1lldb/tools/lldb-dap/DAP.cpp
+3-11 files

LLVM/project ff7e6bbllvm/include/llvm/CodeGen RDFGraph.h ReachingDefAnalysis.h, llvm/include/llvm/CodeGen/GlobalISel CombinerHelper.h

llvm: Fix most LLVM_ABI annotations in CodeGen (#199921)

This updates most LLVM_ABI annotations in the CodeGen headers to match
expected usage:
* All public APIs should be properly annotated.
* Inlined functions should not be annotated.

These changes were done by a script fixing annotations on LLVM public
headers and manually checked.

This effort is tracked in #109483.
DeltaFile
+461-367llvm/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
+70-67llvm/include/llvm/CodeGen/RDFGraph.h
+54-44llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
+50-45llvm/include/llvm/CodeGen/MIRParser/MIParser.h
+48-43llvm/include/llvm/CodeGen/MachinePipeliner.h
+44-43llvm/include/llvm/CodeGen/Analysis.h
+727-609156 files not shown
+1,581-1,370162 files

LLVM/project dbdbb8dlibcxx/include/__type_traits conditional.h

[libc++] Simplify the implementation of conditional a bit (#199916)

We can use our internal `_If` instead of specializing `conditional` for
selecting the appropriate type.
DeltaFile
+2-12libcxx/include/__type_traits/conditional.h
+2-121 files

LLVM/project d241fbellvm/lib/Transforms/Scalar NewGVN.cpp, llvm/test/Transforms/NewGVN crash.ll

[GVN] Canonicalize null values in `createConstantExpression`
DeltaFile
+19-0llvm/test/Transforms/NewGVN/crash.ll
+4-0llvm/lib/Transforms/Scalar/NewGVN.cpp
+23-02 files

LLVM/project 326a132llvm/test/Transforms/LoopStrengthReduce/AArch64 vscale-fixups.ll

[LSR][AArch64] Precommit tests showing lack of `mul vl` addressing (NFC) (#200149)

These loops could be using `mul vl` addressing in the loop and use fewer
base registers and have a smaller loop setup.
DeltaFile
+208-0llvm/test/Transforms/LoopStrengthReduce/AArch64/vscale-fixups.ll
+208-01 files

LLVM/project 7b5ba23llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll gfx-callable-argument-types.ll

Merge branch 'main' of https://github.com/llvm/llvm-project into users/ssahasra/av-metadata
DeltaFile
+7,498-6,528llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+2,501-2,502llvm/test/CodeGen/AMDGPU/gfx-callable-argument-types.ll
+2,151-2,154llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+1,981-1,979llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+1,802-1,805llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+1,502-1,500llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+17,435-16,468932 files not shown
+69,608-34,171938 files

LLVM/project dbebcb0mlir/lib/Target/SPIRV/Deserialization DeserializeOps.cpp

[mlir][spirv] Remove unnecessary assertion (#200137)

The use of the variable in the assertion was causing a build failure
when compiling with assertion off and hence the variable becomes unused.

Signed-off-by: Davide Grohmann <davide.grohmann at arm.com>
DeltaFile
+0-3mlir/lib/Target/SPIRV/Deserialization/DeserializeOps.cpp
+0-31 files

LLVM/project 1e348callvm/docs AMDGPUMemoryModel.rst

new mmra syntax; use system scope; fix indentation; fix chains;
DeltaFile
+27-24llvm/docs/AMDGPUMemoryModel.rst
+27-241 files

LLVM/project aa0d012llvm/utils/TableGen/Common/GlobalISel GlobalISelMatchTable.h GlobalISelMatchTable.cpp, llvm/utils/TableGen/Common/GlobalISel/MatchTable Matchers.h Matchers.cpp

[NFC][TableGen] Reorganize GlobalISelMatchTable.h

This file was a bit of a kitchen sink, and the implementation of the
match table is sufficiently difficult to get comfortable with already.
I spent the past few weeks looking at it, finding improvements, etc. and
I think a nice way to make it a bit easier to approach is to split up
the file a bit so that the main implementation (Matchers.h/.cpp) only
contains the code pertaining to the Matchers (RuleMatchers, Preds, etc.).

We now have 3 files:

- One for type (LLT) related utilities.
- One for the MatchTable emission logic, which is generic and should not
  be tied to any specific implementation. It just has the tools to emit
  the opcodes for the table.
- One for the entire Matcher system, including PredicateMatchers and so on.
DeltaFile
+0-2,624llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.h
+0-2,619llvm/utils/TableGen/Common/GlobalISel/GlobalISelMatchTable.cpp
+2,414-0llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.h
+2,250-0llvm/utils/TableGen/Common/GlobalISel/MatchTable/Matchers.cpp
+253-0llvm/utils/TableGen/Common/GlobalISel/MatchTable/MatchTable.cpp
+180-0llvm/utils/TableGen/Common/GlobalISel/MatchTable/MatchTable.h
+5,097-5,2436 files not shown
+5,353-5,25112 files

LLVM/project eb1b57cllvm/docs LangRef.rst

[LangRef] Specify that syncscopes can affect the monotonic modification order (#189017)

If a target specifies that atomics with mismatching syncscopes appear
non-atomic to each other, there is no point in requiring them to be ordered in
the monotonic modification order. Notably, the [AMDGPU target user
guide](https://llvm.org/docs/AMDGPUUsage.html#memory-scopes) has specified
syncscopes to relax the modification order for years.

So far, I haven't found an example where this less constrained ordering would
be observable (at least with the AMDGPU inclusive scope rules). Whenever a load
would be able to see two monotonic stores with non-inclusive scope, that's
considered a data race (i.e., the load would return `undef`), so it cannot be
used to observe the order of the stores.

Related RFC: https://discourse.llvm.org/t/rfc-clarifying-llvm-irs-concurrent-memory-model/90480
DeltaFile
+12-8llvm/docs/LangRef.rst
+12-81 files

LLVM/project a554a19clang/test/Driver dxc_section_emission.hlsl, llvm/lib/Target/DirectX DXContainerGlobals.cpp

[DirectX] Generate shader debug file name part in llc (#199555)

This change modifies DXContainerGlobals pass to generate debug name
(ILDN) part in DXContainer. ILDN part allows consumers to find PDB file
containing shader debug info.

As ILDB emission PR is not merged yet, and PDB file creation is not
upstreamed yet, debug name is generated based on MD5-hash of bitcode
module in DXIL part.
This corresponds to DXC behavior when a shader is compiled with `/Zi
/Qembed_debug /Zsb` flags (with `/Qembed_debug`, DXC does not produce an
actual PDB file, but still emits ILDN, `/Zsb` tells DXC to use bitcode
from DXIL to compute hash).
However, here ILDN is emitted for any debug info flag configuration.
assuming that it won't break debug info consumers, and that PDB creation
will be added later.
DeltaFile
+42-10llvm/lib/Target/DirectX/DXContainerGlobals.cpp
+38-0llvm/test/CodeGen/DirectX/ContainerData/DebugName-DXIL.ll
+25-0clang/test/Driver/dxc_section_emission.hlsl
+12-0llvm/test/CodeGen/DirectX/lit.local.cfg
+117-104 files