LLVM/project a22714dlldb/test/API/tools/lldb-dap/progress Progress_emitter.py TestDAP_Progress.py, lldb/tools/lldb-dap DAP.cpp ProgressEvent.h

[lldb-dap] Refactor handling progress events. (#224957)

lldb-dap now only uses one thread to receive and throttle received
progress events.
For every progress with a progressId, we delay reporting the progress
for 1000ms until we have recieved a new progress and only send an update
if the progress has a new version after 250ms.

This means for every progress integration test we do nothing for at
least 1250ms. The previous `TestDAP_progress` runs for at least 8s
regardless of how fast the computer is.

Moved most of the test to unittest where we can simulate progress delays
and time passing. We now have only one `TestDAP_progress` test to verify
the client receives progress Events.

When the ProgressEventThread reports a new progressEvent, the reporter
then.
- Create or update the `PendingProgress` with that progressId.

    [6 lines not shown]
DeltaFile
+104-213lldb/tools/lldb-dap/ProgressEvent.cpp
+254-0lldb/unittests/DAP/ProgressEventTest.cpp
+91-134lldb/tools/lldb-dap/ProgressEvent.h
+35-150lldb/tools/lldb-dap/DAP.cpp
+62-80lldb/test/API/tools/lldb-dap/progress/TestDAP_Progress.py
+44-83lldb/test/API/tools/lldb-dap/progress/Progress_emitter.py
+590-6605 files not shown
+761-66511 files

LLVM/project 031866fllvm/lib/Target/X86 X86FrameLowering.cpp, llvm/test/CodeGen/X86 x86-64-intrcc.ll

[X86] Don't double count the interrupt stack alignment push in StackSize (#224029)

emitPrologue pushes a slot to give an error-code handler the
return-address parity the frame layout assumes, but StackSize counted
that push as well. NumBytes derives from StackSize, so the subq grew by
8 too and left RSP at 8 mod 16 at every call. Object addresses are
unchanged.

Fixes #44560, fixes #50195

---------

Co-authored-by: Claude Opus 5 <noreply at anthropic.com>
DeltaFile
+471-108llvm/test/CodeGen/X86/x86-64-intrcc.ll
+0-3llvm/lib/Target/X86/X86FrameLowering.cpp
+471-1112 files

LLVM/project e1abcb2clang/include/clang/AST DeclObjC.h Decl.h, clang/lib/AST DeclOpenMP.cpp DeclObjC.cpp

[Clang] Store AST context in declaration contexts

Store the owning ASTContext directly in each DeclContext and route declarations
through that direct path. This removes the nullable cache and translation-unit
walk from Decl::getASTContext().

Assisted-by: Codex
DeltaFile
+29-26clang/lib/AST/Decl.cpp
+25-24clang/lib/AST/DeclObjC.cpp
+30-5clang/include/clang/AST/DeclOpenMP.h
+14-12clang/lib/AST/DeclOpenMP.cpp
+12-12clang/include/clang/AST/Decl.h
+9-11clang/include/clang/AST/DeclObjC.h
+119-907 files not shown
+170-11213 files

LLVM/project a2c2034orc-rt/include/orc-rt/bedrock/sps SimpleRemoteCA.h, orc-rt/lib/bedrock/sps SimpleRemoteCA.cpp

[orc-rt] Add MsgHeader, the SimpleRemote stream header (#225336)

A SimpleRemote message carries an opcode, a sequence number, a tag and a
payload. MsgHeader is how a byte-stream transport puts those on the
wire: four little-endian uint64 fields, size first, followed by the
payload.

Adding MsgHeader to SimpleRemoteCA makes it easy for stream-based
transports to reuse.
DeltaFile
+32-0orc-rt/test/unit/bedrock/sps/SimpleRemoteCATest.cpp
+31-0orc-rt/include/orc-rt/bedrock/sps/SimpleRemoteCA.h
+29-0orc-rt/lib/bedrock/sps/SimpleRemoteCA.cpp
+92-03 files

LLVM/project ac90427llvm/include/llvm/ExecutionEngine/Orc/Shared OrcRTBridge.h, llvm/lib/ExecutionEngine/Orc/Shared OrcRTBridge.cpp

[ORC] Remove unused rt_alt UnwindInfoManager CI names (#225329)

The rt_alt UnwindInfoManager register/deregister action names were added
as a step towards supporting an "ORC-runtime-lite" API within LLVM, but
have not been used so far. This patch removes them, rather than leaving
them to drift. Replacements can be added as part of a coherent design
when ORC-runtime-lite is revisited.
DeltaFile
+5-12llvm/lib/ExecutionEngine/Orc/TargetProcess/UnwindInfoManager.cpp
+0-7llvm/lib/ExecutionEngine/Orc/Shared/OrcRTBridge.cpp
+0-5llvm/include/llvm/ExecutionEngine/Orc/Shared/OrcRTBridge.h
+5-243 files

LLVM/project 24fbe6allvm/include/llvm/Analysis BasicAliasAnalysis.h, llvm/lib/Analysis BasicAliasAnalysis.cpp

[BasicAA] Extend two-variable MinAbsVarIndex heuristic to different scales (#218639)

When performing offset-based reasoning via the min abs heuristic, the
existing two-variables case requires equal absolute scaling factors.
This may be generalized to different scales by factoring the offset as
`GCD*(C0*V0 - C1*V1)`, and relying on cached KnownBits to prove that the
cofactor products differ.

Proof: https://alive2.llvm.org/ce/z/RC4LwD.

Co-authored-by: Alex MacLean <amaclean at nvidia.com>
DeltaFile
+111-0llvm/test/Analysis/BasicAA/gep-minabs-different-scale.ll
+69-12llvm/lib/Analysis/BasicAliasAnalysis.cpp
+2-0llvm/include/llvm/Analysis/BasicAliasAnalysis.h
+182-123 files

LLVM/project 394c8ddllvm/lib/Transforms/AggressiveInstCombine AggressiveInstCombine.cpp, llvm/test/Transforms/AggressiveInstCombine lower-table-based-lowbits-mask-n32.ll lower-table-based-lowbits-mask.ll

[AggressiveInstCombine] Fold low-bits mask table loads to arithmetic (#222509)

Recognize a load from a constant "low bits mask" table

```
  static const uintN_t tbl[K] = { 0, 1, 3, 7, ... }; // tbl[j] == (1 << j) - 1
  ... x & tbl[i] ...
```

and replace the load with the equivalent arithmetic mask (1 << i) - 1.
This is the target-independent form of the X86 combineAndLoadToBZHI DAG
combine: on X86 with BMI2 the surrounding and still selects to a single
bzhi.

Assisted-by: Claude Code
DeltaFile
+253-0llvm/test/Transforms/AggressiveInstCombine/lower-table-based-lowbits-mask.ll
+100-11llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
+52-0llvm/test/Transforms/AggressiveInstCombine/lower-table-based-lowbits-mask-n32.ll
+405-113 files

LLVM/project 19549b1clang/include/clang/AST Decl.h DeclOpenMP.h, clang/lib/AST DeclOpenMP.cpp Decl.cpp

[Clang] Store AST context in declaration contexts

Store the owning ASTContext directly in each DeclContext and route declarations
through that direct path. This removes the nullable cache and translation-unit
walk from Decl::getASTContext().

Assisted-by: Codex
DeltaFile
+35-31clang/lib/AST/DeclObjC.cpp
+29-26clang/lib/AST/Decl.cpp
+23-23clang/include/clang/AST/DeclObjC.h
+30-5clang/include/clang/AST/DeclOpenMP.h
+14-12clang/lib/AST/DeclOpenMP.cpp
+12-12clang/include/clang/AST/Decl.h
+143-1097 files not shown
+192-13113 files

LLVM/project ddb3843llvm/include/llvm/CodeGen SjLjEHPrepare.h, llvm/include/llvm/Target TargetMachine.h

Triple: Move getSjLjDataSize off TargetMachine

This eliminates the TargetMachine dependence of SjLjEHPrepare.
The pass had the questionable behavior of just proceeding with the
default size without a TargetMachine. VE is the only user and changes
the integer bitwidth used, and this doesn't seem worthwhile of a
virtual function. Move to the triple in keeping with migrating
ABI parameters out of codegen.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+5-11llvm/lib/CodeGen/SjLjEHPrepare.cpp
+6-0llvm/lib/TargetParser/Triple.cpp
+0-5llvm/include/llvm/CodeGen/SjLjEHPrepare.h
+0-4llvm/include/llvm/Target/TargetMachine.h
+4-0llvm/include/llvm/TargetParser/Triple.h
+0-2llvm/lib/Target/VE/VETargetMachine.h
+15-224 files not shown
+19-2610 files

LLVM/project ef2f0a0

Retrigger CI
DeltaFile
+0-00 files

LLVM/project b72b9f2llvm/include/llvm/CodeGen Passes.h SjLjEHPrepare.h, llvm/include/llvm/Target TargetMachine.h

Triple: Move getSjLjDataSize off TargetMachine

This eliminates the TargetMachine dependence of SjLjEHPrepare.
The pass had the questionable behavior of just proceeding with the
default size without a TargetMachine. VE is the only user and changes
the integer bitwidth used, and this doesn't seem worthwhile of a
virtual function. Move to the triple in keeping with migrating
ABI parameters out of codegen.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+5-11llvm/lib/CodeGen/SjLjEHPrepare.cpp
+6-0llvm/lib/TargetParser/Triple.cpp
+0-5llvm/include/llvm/CodeGen/SjLjEHPrepare.h
+0-4llvm/include/llvm/Target/TargetMachine.h
+4-0llvm/include/llvm/TargetParser/Triple.h
+1-1llvm/include/llvm/CodeGen/Passes.h
+16-214 files not shown
+19-2610 files

LLVM/project 4df5d01llvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll compress-idioms.ll, llvm/test/Transforms/LoopVectorize/AArch64 compress-idioms.ll

Update checks
DeltaFile
+333-418llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+132-53llvm/test/Transforms/LoopVectorize/X86/compress-idioms.ll
+59-43llvm/test/Transforms/LoopVectorize/AArch64/compress-idioms.ll
+54-4llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+578-5184 files

LLVM/project 7ba1c3dllvm/lib/Target/AMDGPU SIISelLowering.cpp, llvm/test/CodeGen/AMDGPU atomic_optimizations_global_pointer.ll idot4-test.ll

[AMDGPU] Fuse mad64_32 from 24-bit multiply-add
DeltaFile
+218-109llvm/test/CodeGen/AMDGPU/integer-mad-patterns.ll
+126-0llvm/test/CodeGen/AMDGPU/mad_u64_u32_mul24.ll
+106-0llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+29-30llvm/test/CodeGen/AMDGPU/coexec-mfma-interleave-gfx950.ll
+24-30llvm/test/CodeGen/AMDGPU/idot4-test.ll
+6-7llvm/test/CodeGen/AMDGPU/atomic_optimizations_global_pointer.ll
+509-1761 files not shown
+515-1837 files

LLVM/project 9e1a623llvm/lib/Target/PISA PISALegalizeCalls.cpp

Simplify, remove redundant comment
DeltaFile
+10-14llvm/lib/Target/PISA/PISALegalizeCalls.cpp
+10-141 files

LLVM/project 4faf0aelibc/src/__support/threads cleanup_stack.h, libc/src/pthread CMakeLists.txt __pthread_cleanup_pop.cpp

[libc] Implement pthread_cleanup_push and pthread_cleanup_pop (#223427)

This patch implements the core POSIX thread cleanup mechanism
(pthread_cleanup_push and pthread_cleanup_pop).

POSIX allows these functions to be implemented as macros opening and
closing a lexical block. We allocate an automatic
__pthread_cleanup_frame structure on the stack in the push macro and
unlink it in the pop macro, calling helper functions
(__pthread_cleanup_push and __pthread_cleanup_pop) to link/unlink the
frame on the thread's cleanup_stack.

The stack is drained in LIFO order during thread termination in
call_atexit_callbacks before running __cxa_thread_atexit and TSS key
destructors.

It's worth noting that GLIBC implements this functionality in a much
more complicated way. The cleanup functions are registered with the
unwinding machinery so that throwing an exception (or even just

    [17 lines not shown]
DeltaFile
+261-0libc/test/integration/src/pthread/pthread_cleanup_test.cpp
+45-0libc/src/__support/threads/cleanup_stack.h
+37-1utils/bazel/llvm-project-overlay/libc/BUILD.bazel
+33-0libc/src/pthread/__pthread_cleanup_push.cpp
+31-0libc/src/pthread/__pthread_cleanup_pop.cpp
+28-0libc/src/pthread/CMakeLists.txt
+435-119 files not shown
+645-1425 files

LLVM/project e886ea8llvm/lib/Target/AMDGPU AMDGPUAtomicOptimizer.cpp, llvm/test/CodeGen/AMDGPU global-atomic-scan.ll

Use unsigned intrinsics + code formatting.
DeltaFile
+8-8llvm/test/CodeGen/AMDGPU/global-atomic-scan.ll
+3-1llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
+11-92 files

LLVM/project e5add9dllvm/lib/Target/PISA PISATargetMachine.cpp

Improve comment
DeltaFile
+2-1llvm/lib/Target/PISA/PISATargetMachine.cpp
+2-11 files

LLVM/project 48cccbbllvm/test/Analysis/CostModel/X86 shuffle-mask-broadcast.ll shuffle-broadcast.ll

[NFC][CostModel][X86] Add cost tests for vXi1 mask broadcasts (#225070)
DeltaFile
+183-3llvm/test/Analysis/CostModel/X86/shuffle-splat.ll
+75-3llvm/test/Analysis/CostModel/X86/shuffle-broadcast.ll
+75-0llvm/test/Analysis/CostModel/X86/shuffle-mask-broadcast.ll
+333-63 files

LLVM/project 2c1e776llvm/lib/Target/PISA PISAKernelByValArgsLowering.cpp PISALegalizePredicates.cpp

Fix issues raised in earlier PRs
DeltaFile
+90-89llvm/lib/Target/PISA/PISALegalizeCalls.cpp
+91-80llvm/lib/Target/PISA/PISALegalizeSubregAccess.cpp
+42-36llvm/lib/Target/PISA/PISAEmitIntrinsics.cpp
+39-36llvm/lib/Target/PISA/PISALayout.cpp
+37-37llvm/lib/Target/PISA/PISALegalizePredicates.cpp
+38-34llvm/lib/Target/PISA/PISAKernelByValArgsLowering.cpp
+337-31217 files not shown
+519-49323 files

LLVM/project beba7c2llvm/include/llvm/Transforms/Vectorize LoopVectorizationLegality.h, llvm/lib/Transforms/Utils LoopUtils.cpp

[LoopVectorize] Support vectorization of compressing patterns in VPlan

RFC link: https://discourse.llvm.org/t/rfc-loop-vectorization-of-compress-store-expand-load-patterns/86442

This adds loop vectorizer support for "compressing" patterns,
for example:

```
int dst_idx = 0;
for (int i = 0; i < n; i++) {
  if (cond[i])
    dst[dst_idx++] = src[i];
}
```

Can be vectorized with a `llvm.masked.compressstore` as:

```
int dst_idx = 0;

    [74 lines not shown]
DeltaFile
+153-0llvm/test/Transforms/LoopVectorize/VPlan/compress-idioms.ll
+91-10llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+91-0llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+75-0llvm/lib/Transforms/Utils/LoopUtils.cpp
+63-9llvm/lib/Transforms/Vectorize/VPlan.h
+55-0llvm/include/llvm/Transforms/Vectorize/LoopVectorizationLegality.h
+528-1916 files not shown
+735-3222 files

LLVM/project f8e7ce4llvm/test/Transforms/LoopVectorize compress-store-vec-epilogue.ll compress-idioms-negative-tests.ll, llvm/test/Transforms/LoopVectorize/AArch64 compress-idioms.ll

[LV] Pre-commit compressing pattern tests (NFC) (#225109)

This patch pre-commits tests for #214491.
DeltaFile
+679-0llvm/test/Transforms/LoopVectorize/compress-idioms.ll
+269-0llvm/test/Transforms/LoopVectorize/compress-idioms-negative-tests.ll
+208-0llvm/test/Transforms/LoopVectorize/X86/compress-idioms.ll
+110-0llvm/test/Transforms/LoopVectorize/AArch64/compress-idioms.ll
+108-0llvm/test/Transforms/LoopVectorize/RISCV/compress-idioms.ll
+54-0llvm/test/Transforms/LoopVectorize/compress-store-vec-epilogue.ll
+1,428-06 files

LLVM/project 9998842clang/lib/Options OptionUtils.cpp, clang/test/Driver ps4-ps5-resource-path.cpp

Remove .. from clang resource path when specified with CLANG_RESOURCE_DIR  (#216996)

As discussed here:
https://discourse.llvm.org/t/removing-clang-version-number-from-resource-dir-in-a-distribution/90234

If a distributor wishes to have stable include paths across LLVM
versions, then they can build with `CLANG_RESOURCE_DIR=../lib/clang`.
This results in a slightly untidy include path (E.g.`C:\Program
Files\LLVM\bin\..\lib\clang\include`). This removes the ".." to make it
`C:\Program Files\LLVM\lib\clang\include` in this configuration.

Also added test. This uses "SIE" vendor. Since
https://github.com/llvm/llvm-zorg/commit/eac6791821f5104eb4c2b32f39ef5d20cda535a9,
PS4 and PS5 buildbots use this configuration and define the vendor so
the lack of version number and ".." should be tested on at least these
buildbots.
DeltaFile
+9-0clang/test/Driver/ps4-ps5-resource-path.cpp
+4-2clang/lib/Options/OptionUtils.cpp
+13-22 files

LLVM/project d5231d8llvm/unittests/ABI TargetInfoTest.cpp

fix ci fail tests
DeltaFile
+4-4llvm/unittests/ABI/TargetInfoTest.cpp
+4-41 files

LLVM/project 24cc35clibc/src/sys/stat CMakeLists.txt fstatat.h, libc/src/sys/stat/linux CMakeLists.txt fstatat.cpp

[libc] Implement fstatat in sys/stat (#224334)

### Summary
Implement the standard POSIX.1-2008 function `fstatat` in
`<sys/stat.h>`.

Fixes #224327

### Changes
- Added `fstatat` function specification to
`libc/include/sys/stat.yaml`.
- Added internal header `libc/src/sys/stat/fstatat.h`.
- Implemented `fstatat` in `libc/src/sys/stat/linux/fstatat.cpp` using
the existing `internal::stat_via_statx`.
- Registered `fstatat` entrypoint in `libc/src/sys/stat/CMakeLists.txt`
and `libc/src/sys/stat/linux/CMakeLists.txt`.
- Added entrypoint across Linux targets (`x86_64`, `aarch64`, `riscv`).
- Added hermetic unit tests in
`libc/test/src/sys/stat/fstatat_test.cpp`.

    [12 lines not shown]
DeltaFile
+101-0libc/test/src/sys/stat/fstatat_test.cpp
+36-0libc/src/sys/stat/linux/fstatat.cpp
+27-0libc/src/sys/stat/fstatat.h
+21-0libc/test/src/sys/stat/CMakeLists.txt
+14-0libc/src/sys/stat/linux/CMakeLists.txt
+7-0libc/src/sys/stat/CMakeLists.txt
+206-04 files not shown
+216-010 files

LLVM/project bbff6d8libc/src/sys/stat CMakeLists.txt mkfifoat.h, libc/src/sys/stat/linux CMakeLists.txt mkfifoat.cpp

[libc] Implement mkfifoat in sys/stat (#224628)

### Summary
Implement the standard POSIX.1-2008 function `mkfifoat` in
`<sys/stat.h>`.

Fixes #224587

### Changes
- Added `mkfifoat` function specification to
`libc/include/sys/stat.yaml`.
- Added internal header `libc/src/sys/stat/mkfifoat.h`.
- Implemented `mkfifoat` in `libc/src/sys/stat/linux/mkfifoat.cpp` using
the existing `linux_syscalls::mknodat`.
- Registered `mkfifoat` entrypoint in `libc/src/sys/stat/CMakeLists.txt`
and `libc/src/sys/stat/linux/CMakeLists.txt`.
- Added entrypoint across Linux targets (`x86_64`, `aarch64`, `riscv`).
- Added hermetic unit tests in
`libc/test/src/sys/stat/mkfifoat_test.cpp` using `cpp::scope_exit`

    [9 lines not shown]
DeltaFile
+88-0libc/test/src/sys/stat/mkfifoat_test.cpp
+35-0libc/src/sys/stat/linux/mkfifoat.cpp
+26-0libc/src/sys/stat/mkfifoat.h
+24-0libc/test/src/sys/stat/CMakeLists.txt
+14-0libc/src/sys/stat/linux/CMakeLists.txt
+7-0libc/src/sys/stat/CMakeLists.txt
+194-04 files not shown
+203-010 files

LLVM/project 3bbfa71llvm/lib/Transforms/Utils ScalarEvolutionExpander.cpp, llvm/test/Transforms/LoopVectorize scev-check-unknown-prof.ll

[SCEVExpander] Mark selects with unknown profile. (#224362)

SCEVExpander creates selects when expanding min/max expressions for
pointers and predicates. In neither case there is any information on how
likely either arm of the select is. Annotate with unknown profile.

This is part of addressing the remaining profcheck failures in
LoopVectorize: https://github.com/llvm/llvm-project/issues/161235.

PR: https://github.com/llvm/llvm-project/pull/224362
DeltaFile
+7-6llvm/test/Transforms/LoopVectorize/scev-check-unknown-prof.ll
+7-3llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
+14-92 files

LLVM/project 4a7a601llvm/lib/Target/PISA PISAKernelByValArgsLowering.cpp

Formatting fix
DeltaFile
+4-3llvm/lib/Target/PISA/PISAKernelByValArgsLowering.cpp
+4-31 files

LLVM/project 59fd1aallvm/lib/Target/PISA CMakeLists.txt

Review fixes
DeltaFile
+1-1llvm/lib/Target/PISA/CMakeLists.txt
+1-11 files

LLVM/project a0b7352llvm/lib/Target/PISA PISALegalizeSubregAccess.cpp PISALegalizeCalls.cpp

Add PISA codegen pipeline and lowering passes

Add the IR- and MIR-level passes that make up the PISA code generation
pipeline and wire them into PISAPassConfig in PISATargetMachine:

- Intrinsic handling: PISAEmitIntrinsics, PISAExpandIntrinsics,
    PISAReplaceIntrinsics
- Call/ABI lowering: PISALegalizeCalls, PISAKernelByValArgsLowering
- IR preparation: PISAPropagateNullPointers, PISALayout, PISAConstProp
- Legalization/verification: PISALegalizePredicates, PISAVerifyTypes,
    PISAVerifier
- Post-selection: PISAScopeSelector, PISACacheHintSelector,
    PISALegalizeSubregAccess, PISAOptimizeSubregAccess,
    PISAOptimizeRedundantCopies, PISAMarkConvergentNoMerge,
    PISAInsertLifetimeStart

PISAPassConfig now overrides the GlobalISel and pre/post-regalloc hooks
to run these passes, disables the machine passes that assume physical
registers, and runs the load/store vectorizer and atomic expansion in

    [4 lines not shown]
DeltaFile
+994-0llvm/lib/Target/PISA/PISALegalizePredicates.cpp
+751-0llvm/lib/Target/PISA/PISAInsertLifetimeStart.cpp
+581-0llvm/lib/Target/PISA/PISALayout.cpp
+565-0llvm/lib/Target/PISA/PISAEmitIntrinsics.cpp
+505-0llvm/lib/Target/PISA/PISALegalizeCalls.cpp
+435-0llvm/lib/Target/PISA/PISALegalizeSubregAccess.cpp
+3,831-021 files not shown
+6,216-6527 files

LLVM/project 977f915llvm/tools/llvm-pdbutil DumpOutputStyle.cpp

[llvm-pdbutil] Avoid reading EC names from non-EC modules (#223253)

The module dumper resolves the PDB and source file name indices for
every module, even when the module does not contain Edit and Continue
information. If the DBI stream has no EC names table, `dump --modules`
fails with:

Unexpected error processing modules: Stream Error: The stream is too
short
  to perform the requested operation.

Only resolve and print the EC names when the module's EC flag is set.
DeltaFile
+14-8llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp
+14-81 files