Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
f63d33d
Reland "[clang] Refactor option-related code from clangDriver into ne…
naveen-seth Nov 10, 2025
4ae7348
[DirectX] Teach DXILResourceAccess about cbuffers (#164554)
bogner Nov 10, 2025
793ab6a
X86: Enable terminal rule (#165957)
arsenm Nov 10, 2025
2fc2e1f
[LLDB] Fix darwin shell tests under ASAN
adrian-prantl Nov 10, 2025
f8e9723
ARM: Enable terminal rule (#165958)
arsenm Nov 10, 2025
2aa629d
AArch64: Enable terminal rule (#165959)
arsenm Nov 10, 2025
067f155
[AMDGPU] remove clamp and omod for trans bf16 insts (#165819)
broxigarchen Nov 10, 2025
826cadd
[Hexagon] Clean-up Instrprof test (#166990)
fhossein-quic Nov 10, 2025
17e2641
[bazel][clang] Port #167374: split clang options/driver (#167387)
rupprecht Nov 10, 2025
a37c4e0
[NFC][SpecialCaseList] Hide Section internals in private section (#16…
vitalybuka Nov 10, 2025
b4a6151
[CIR][NFC] Re-land: Add test for Complex imag literal GNU extension (…
AmrDeveloper Nov 10, 2025
540250c
[OpenMP][Clang] Add codegen support for dyn_groupprivate clause (#152…
kevinsala Nov 10, 2025
20e1a12
[LLDB] Fix (more) darwin shell tests under ASAN
adrian-prantl Nov 10, 2025
fb2fa21
[AMDGPU] Remove calling conv check on entry function (#162080)
jofrn Nov 10, 2025
4b9d7e1
Reapply "[libc] Return errno from OFD failure paths in fcntl." (#1666…
jtstogel Nov 10, 2025
8c86bc8
AMDGPU/GlobalISel: Fix AGPR regbank check for mfma_scale (#167393)
arsenm Nov 10, 2025
0767c64
[VPlan] Use getDefiningRecipe instead of directly accessing Def. (NFC)
fhahn Nov 10, 2025
a1934ee
[NFC][SpecialCaseList] Replace callback with return value (#165943)
vitalybuka Nov 10, 2025
046ae85
[scudo] Small cleanup of memory tagging code. (#166860)
cferris1000 Nov 10, 2025
8b1cc2d
[VPlan] Update canNarrowLoad to check WidenMember0's op first (NFCI).
fhahn Nov 10, 2025
95db31e
Treat specifying a function in the bbsection profile without any dire…
rlavaee Nov 10, 2025
d5125b3
[flang][CUDA] Unify element size computation in CUF helpers (#167398)
wangzpgi Nov 10, 2025
7b12a08
[AArch64] Allow peephole to optimize AND + signed compare with 0 (#15…
AZero13 Nov 10, 2025
bf3b704
[flang][NFC] Characterize allocation based on MemAlloc effect instead…
SusanTan Nov 10, 2025
ad9eb0d
Add default empty header filter regex to root .clang-tidy (#167386)
vbvictor Nov 10, 2025
11ab23c
CodeGen: Keep reference to TargetRegisterInfo in TargetInstrInfo (#15…
arsenm Nov 10, 2025
da996a3
[NFC][SpecialCaseList] Refactor error handling (#167277)
vitalybuka Nov 10, 2025
5b8e869
[llc] Fix save-stats test in read only directories (#167403)
michaelrj-google Nov 10, 2025
c5ce802
[libc] fwrite_unlocked: only return errno if an actual error occurred…
Sterling-Augustine Nov 10, 2025
e5e74e9
AMDGPU: Use getMergedLocation in SILoadStoreOptimizer (#156396)
arsenm Nov 10, 2025
46dc4b8
[lldb] Fix TestLocationsAfterRebuild test (#167402)
GeorgeHuyubo Nov 10, 2025
97d50b5
[lldb] Fix crash in BreakpointSite::BumpHitCounts (#166876)
JDevlieghere Nov 10, 2025
6537e0d
ARM: Remove TRI argument from AddDReg (#158228)
arsenm Nov 10, 2025
55422e8
CodeGen: Remove TRI argument from getRegClass (#158225)
arsenm Nov 10, 2025
a78f587
[DirectX] Fix dxc-compatible DataLayout in BitcodeWriter (#167410)
bogner Nov 10, 2025
cd6c761
[LLDB] Fix lldb failure caused by 95db31e7f6. (#167423)
rlavaee Nov 11, 2025
8751f26
[libc] add an SVE implementation of strlen (#167259)
SchrodingerZhu Nov 11, 2025
222f4e4
[mlir] Add FP software implementation lowering pass: `arith-to-apfloa…
makslevental Nov 11, 2025
a88fa64
CodeGen: Remove TRI argument from reMaterialize (#158229)
arsenm Nov 11, 2025
1f3f522
CodeGen: Remove TRI arguments from stack load/store hooks (#158240)
arsenm Nov 11, 2025
dd75d30
[X86][NFC] Change check from MIR to assemble for non EGPR instruction…
phoebewang Nov 11, 2025
4369d52
workflows/llvm-abi-tests: Trigger tests on updates to the file (#167413)
tstellar Nov 11, 2025
9c7fe12
Revert "[scudo] Small cleanup of memory tagging code." (#167425)
cferris1000 Nov 11, 2025
70d379f
Revert "[mlir] Add FP software implementation lowering pass: `arith-t…
makslevental Nov 11, 2025
0e639ae
Reapply "[mlir] Add FP software implementation lowering pass: `arith-…
makslevental Nov 11, 2025
2677c29
[NFC][SpecialCaseList] Store SectionStr as StringRef (#167278)
vitalybuka Nov 11, 2025
93b3c1b
Revert "Reapply "[mlir] Add FP software implementation lowering pass:…
makslevental Nov 11, 2025
7e04336
Revert "[DFAJumpThreading] Enable DFAJumpThread by default." (#167352)
petrhosek Nov 11, 2025
90b4b86
[NFC][Support] Replace "Return" with "Returns" in comments (#167395)
vitalybuka Nov 11, 2025
b7ceda3
MachineCombiner: Partially fix losing subregister indexes (#141661)
arsenm Nov 11, 2025
86fa018
[Flang][OpenMP] Initial defaultmap(none) implementation (#166715)
agozillon Nov 11, 2025
cdc6f85
[Github] Add Workflow to test Unprivileged Download Artifact Action
boomanaiden154 Nov 11, 2025
ae1e2ec
[NFC][SpecialCaseList] Rename `Section::SectionStr` to `Name` (#167279)
vitalybuka Nov 11, 2025
bdf37f4
unittests: Convert some tests to opaque pointers (#167443)
arsenm Nov 11, 2025
19d472f
AArch64: Convert tests to opaque pointers (#167442)
arsenm Nov 11, 2025
3618ed1
[DAGCombiner] Add sra-xor-sra pattern fold (#166777)
rez5427 Nov 11, 2025
ae50366
[OMPIRBuilder] Use AS 0 for internal variables for AMDGPU (#167377)
sarnex Nov 11, 2025
dee0afa
[BOLT][DWARF] Slice .debug_str from the DWP for each CU (#159540)
Sockke Nov 11, 2025
fc69bfb
Hexagon: Enable terminal rule (#165960)
arsenm Nov 11, 2025
cf91088
RISCV: Enable terminal rule (#165961)
arsenm Nov 11, 2025
faf9ac0
[Flang][MLIR][OpenMP] Add MLIR lowering support for taskloop clauses.…
kaviya2510 Nov 11, 2025
ba4babe
[NFC][SpecialCaseList] Move most of implementation in cpp file (#167280)
vitalybuka Nov 11, 2025
242d0c7
SplitKit: Use initializer lists (#167449)
arsenm Nov 11, 2025
0c09869
ARC,M68k: Adapt #158240
MaskRay Nov 11, 2025
9524b37
[GitHub][CI] Add parallel to the ci-container-abi-tests container (#1…
tstellar Nov 11, 2025
00d2780
workflows/llvm-abi-tests: Use new container (#167424)
tstellar Nov 11, 2025
8475a66
[AMDGPU] Correct validation for the intended behavior of the test (#1…
hidekisaito Nov 11, 2025
356b0dd
[AMDGPU][CodeGen] enable D16Writes32BitVgpr for gfx12 (#165587)
broxigarchen Nov 11, 2025
1b4f226
[clang-tidy] Add `IgnoreValueCalls` option to bugprone-unchecked-opti…
zeyi2 Nov 11, 2025
957f929
[RISCV] Set __GCC_CONSTRUCTIVE_SIZE/__GCC_DESTRUCTIVE_SIZE to 64 (#16…
wangpc-pp Nov 11, 2025
f2aad35
[XCore] Use MCRegister instead of unsigned. NFC (#167461)
topperc Nov 11, 2025
4c4b1a9
[orc-rt] Replace wrapper fn `void *CallCtx` arg with `uint64_t CallId…
lhames Nov 11, 2025
464cb33
Revert "[LoongArch] Add `isSafeToMove` hook to prevent unsafe instruc…
heiher Nov 11, 2025
cc184e3
[Sparc] Use MCRegister instead of unsigned. NFC (#167464)
topperc Nov 11, 2025
321afc7
[VE] Use MCRegister instead of unsigned. NFC (#167460)
topperc Nov 11, 2025
db8c38d
[NVVM] Make nanosleep op duration SSA value (#167331)
grypp Nov 11, 2025
531ce54
[Hexagon] Fix a warning
kazutakahirata Nov 11, 2025
dfdc69b
[RISCV][llvm] Preliminary P extension codegen support (#162668)
4vtomat Nov 11, 2025
658b5e3
[llvm][DebugInfo] Adjust ModuleDebugInfoPrinter to versioned language…
Michael137 Nov 11, 2025
9100001
[IndVarSimplify] Precommit tests for PR166649 (NFC)
antoniofrighetto Nov 11, 2025
eaf3a91
[IndVarSimplify] Ensure fp values can be represented as exact integers
antoniofrighetto Nov 11, 2025
8e3188a
[clang][bytecode] Mark CXXDefaultInitExprs in InitLink chain (#166395)
tbaederr Nov 11, 2025
517d725
[LV] Move condition to VPPartialReductionRecipe::execute (#166136)
sdesmalen-arm Nov 11, 2025
5cb2c68
[libunwind][AArch64] Disable ZA before resuming from unwinding (on Li…
MacDue Nov 11, 2025
c0bca9c
[libc++] Remove some of the uses of aligned_storage inside the librar…
philnik777 Nov 11, 2025
dacd2f9
[libc++][NFC] Make the exception implementation files self-contained …
philnik777 Nov 11, 2025
0400b9a
[mlir]: Add handling of escaped memrefs to erase_dead_alloc_and_store…
d-smirnov Nov 11, 2025
c3c4a88
[clang][bytecode] Add a C test case (#167484)
tbaederr Nov 11, 2025
fdd52f5
[VPlan] Handle WidenGEP in narrowToSingleScalars (#166740)
artagnon Nov 11, 2025
efc0ab0
[AArch64][CostModel] Add SVE bfloat arithmetic tests (NFC) (#166951)
MacDue Nov 11, 2025
0f4c8dd
[lldb][test] Fix ThreadStepUntilAPI.py
DavidSpickett Nov 11, 2025
b1b1257
merge main into amd-staging
ronlieb Nov 11, 2025
3a73595
Revert "Reland "[clang] Refactor option-related code from clangDriver…
ronlieb Nov 11, 2025
7a73e69
[flang-rt] Use dlsym to access char** environ on FreeBSD (#158477)
arrowd Nov 11, 2025
de3de3f
[LV] Consider interleaving when -enable-wide-lane-mask=true (#163387)
kmclaughlin-arm Nov 11, 2025
6e5f277
[X86] bittest-big-integer.ll - add test showing missed RMW fold becau…
RKSimon Nov 11, 2025
fa81402
merge main into amd-staging
ronlieb Nov 11, 2025
b440fb7
[Clang][CUDA] Replace inline asm in __trap() with intrinsic (#166152)
NewSigma Nov 11, 2025
300750d
[MLIR][XeGPU][TransformOps] Add set_gpu_launch_threads op (#166865)
tkarna Nov 11, 2025
bcb8544
merge main into amd-staging
ronlieb Nov 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
HeaderFilterRegex: ''
Checks: >
-*,
clang-diagnostic-*,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,7 @@ RUN apt-get update && \
abi-compliance-checker \
abi-dumper \
autoconf \
parallel \
pkg-config && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
Expand Down
25 changes: 6 additions & 19 deletions .github/workflows/llvm-abi-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ on:
- 'release/**'
paths:
- 'llvm/**'
- '.github/workflows/llvm-tests.yml'
- '.github/workflows/llvm-abi-tests.yml'
pull_request:
branches:
- 'release/**'
paths:
- 'llvm/**'
- '.github/workflows/llvm-tests.yml'
- '.github/workflows/llvm-abi-tests.yml'

concurrency:
# Skip intermediate builds: always.
Expand Down Expand Up @@ -72,6 +72,8 @@ jobs:
if: github.repository_owner == 'llvm'
needs: abi-dump-setup
runs-on: ubuntu-24.04
container:
image: "ghcr.io/llvm/ci-ubuntu-24.04-abi-tests@sha256:01e66b0847c1e9c88f0bd0492ed7c3374550a0730b48040f63888393f1ff6c13" #ghcr.io/llvm/ci-ubuntu-24.04-abi-tests:bb0bd382ab2b"
strategy:
matrix:
name:
Expand All @@ -87,19 +89,6 @@ jobs:
ref: ${{ github.sha }}
repo: ${{ github.repository }}
steps:
- name: Install Ninja
uses: llvm/actions/install-ninja@42d80571b13f4599bbefbc7189728b64723c7f78 # main
- name: Install abi-compliance-checker
run: |
sudo apt-get update
sudo apt-get -y install abi-dumper autoconf pkg-config
- name: Install universal-ctags
run: |
git clone https://github.com/universal-ctags/ctags.git
cd ctags
./autogen.sh
./configure
sudo make install
- name: Download source code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
Expand Down Expand Up @@ -143,6 +132,8 @@ jobs:
abi-compare:
if: github.repository_owner == 'llvm'
runs-on: ubuntu-24.04
container:
image: "ghcr.io/llvm/ci-ubuntu-24.04-abi-tests@sha256:01e66b0847c1e9c88f0bd0492ed7c3374550a0730b48040f63888393f1ff6c13" #ghcr.io/llvm/ci-ubuntu-24.04-abi-tests:bb0bd382ab2b
needs:
- abi-dump-setup
- abi-dump
Expand All @@ -163,10 +154,6 @@ jobs:
name: symbol-list
path: symbol-list

- name: Install abi-compliance-checker
run: |
sudo apt-get update
sudo apt-get -y install abi-compliance-checker
- name: Compare ABI
run: |
if [ -s symbol-list/llvm.symbols ]; then
Expand Down
54 changes: 54 additions & 0 deletions .github/workflows/test-unprivileged-download-artifact.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Test Unprivileged Download Artifact Action

permissions:
contents: read

on:
push:
branches:
- main
paths:
- .github/workflows/test-unprivileged-download-artifact.yml
- '.github/workflows/unprivileged-download-artifact/**'
pull_request:
paths:
- .github/workflows/test-unprivileged-download-artifact.yml
- '.github/workflows/unprivileged-download-artifact/**'

jobs:
upload-test-artifact:
name: Upload Test Artifact
if: github.repository_owner == 'llvm'
runs-on: ubuntu-24.04
steps:
- name: Create Test File
run: |
echo "test" > comment
- name: Upload Test File
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
with:
name: workflow-args
path: |
comment

test-download:
name: Test Unprivileged Download Artifact
if: github.repository_owner == 'llvm'
runs-on: ubuntu-24.04
needs: [ upload-test-artifact ]
steps:
- name: Chekcout LLVM
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
sparse-checkout: |
.github/workflows/unprivileged-download-artifact/action.yml
- name: Download Artifact
uses: ./.github/workflows/unprivileged-download-artifact
id: download-artifact
with:
run-id: ${{ github.run_id }}
artifact-name: workflow-args
- name: Assert That Contents are the Same
run: |
cat comment
[[ "$(cat comment)" == "test" ]]
12 changes: 12 additions & 0 deletions bolt/include/bolt/Core/DebugData.h
Original file line number Diff line number Diff line change
Expand Up @@ -471,6 +471,12 @@ class DebugStrOffsetsWriter {
return std::move(StrOffsetsBuffer);
}

/// Returns strings of .debug_str_offsets.
StringRef getBufferStr() {
return StringRef(reinterpret_cast<const char *>(StrOffsetsBuffer->data()),
StrOffsetsBuffer->size());
}

/// Initializes Buffer and Stream.
void initialize(DWARFUnit &Unit);

Expand Down Expand Up @@ -507,6 +513,12 @@ class DebugStrWriter {
return std::move(StrBuffer);
}

/// Returns strings of .debug_str.
StringRef getBufferStr() {
return StringRef(reinterpret_cast<const char *>(StrBuffer->data()),
StrBuffer->size());
}

/// Adds string to .debug_str.
/// On first invocation it initializes internal data structures.
uint32_t addString(StringRef Str);
Expand Down
120 changes: 118 additions & 2 deletions bolt/lib/Rewrite/DWARFRewriter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1723,7 +1723,76 @@ StringRef getSectionName(const SectionRef &Section) {
return Name;
}

// Extracts an appropriate slice if input is DWP.
/// Extracts the slice of the .debug_str.dwo section for a given CU from a DWP
/// file, based on the .debug_str_offsets.dwo section. This helps address DWO
/// bloat that may occur after updates.
///
/// A slice of .debug_str.dwo may be composed of several non-contiguous
/// fragments. These non-contiguous string views will be written out
/// sequentially, avoiding the copying overhead caused by assembling them.
///
/// The .debug_str_offsets for the first CU often does not need to be updated,
/// so copying is only performed when .debug_str_offsets requires updating.
static void UpdateStrAndStrOffsets(StringRef StrDWOContent,
StringRef StrOffsetsContent,
SmallVectorImpl<StringRef> &StrDWOOutData,
std::string &StrOffsetsOutData,
unsigned DwarfVersion, bool IsLittleEndian) {
const llvm::endianness Endian =
IsLittleEndian ? llvm::endianness::little : llvm::endianness::big;
const uint64_t HeaderOffset = (DwarfVersion >= 5) ? 8 : 0;
constexpr size_t SizeOfOffset = sizeof(int32_t);
const uint64_t NumOffsets =
(StrOffsetsContent.size() - HeaderOffset) / SizeOfOffset;

DataExtractor Extractor(StrOffsetsContent, IsLittleEndian, 0);
uint64_t ExtractionOffset = HeaderOffset;

using StringFragment = DWARFUnitIndex::Entry::SectionContribution;
const auto getStringLength = [](StringRef Content,
uint64_t Offset) -> uint64_t {
size_t NullPos = Content.find('\0', Offset);
return (NullPos != StringRef::npos) ? (NullPos - Offset + 1) : 0;
};
const auto isContiguous = [](const StringFragment &Fragment,
uint64_t NextOffset) -> bool {
return NextOffset == Fragment.getOffset() + Fragment.getLength();
};
std::optional<StringFragment> CurrentFragment;
uint64_t AccumulatedStrLen = 0;
for (uint64_t I = 0; I < NumOffsets; ++I) {
const uint64_t StrOffset = Extractor.getU32(&ExtractionOffset);
const uint64_t StringLength = getStringLength(StrDWOContent, StrOffset);
if (!CurrentFragment) {
// First init.
CurrentFragment = StringFragment(StrOffset, StringLength);
} else {
if (isContiguous(*CurrentFragment, StrOffset)) {
// Expanding the current fragment.
CurrentFragment->setLength(CurrentFragment->getLength() + StringLength);
} else {
// Saving the current fragment and start a new one.
StrDWOOutData.push_back(StrDWOContent.substr(
CurrentFragment->getOffset(), CurrentFragment->getLength()));
CurrentFragment = StringFragment(StrOffset, StringLength);
}
}
if (AccumulatedStrLen != StrOffset) {
// Updating str offsets.
if (StrOffsetsOutData.empty())
StrOffsetsOutData = StrOffsetsContent.str();
llvm::support::endian::write32(
&StrOffsetsOutData[HeaderOffset + I * SizeOfOffset],
static_cast<uint32_t>(AccumulatedStrLen), Endian);
}
AccumulatedStrLen += StringLength;
}
if (CurrentFragment)
StrDWOOutData.push_back(StrDWOContent.substr(CurrentFragment->getOffset(),
CurrentFragment->getLength()));
}

// Exctracts an appropriate slice if input is DWP.
// Applies patches or overwrites the section.
std::optional<StringRef> updateDebugData(
DWARFContext &DWCtx, StringRef SectionName, StringRef SectionContents,
Expand Down Expand Up @@ -1772,6 +1841,8 @@ std::optional<StringRef> updateDebugData(
errs() << "BOLT-WARNING: unsupported debug section: " << SectionName
<< "\n";
if (StrWriter.isInitialized()) {
if (CUDWOEntry)
return StrWriter.getBufferStr();
OutputBuffer = StrWriter.releaseBuffer();
return StringRef(reinterpret_cast<const char *>(OutputBuffer->data()),
OutputBuffer->size());
Expand All @@ -1786,6 +1857,8 @@ std::optional<StringRef> updateDebugData(
}
case DWARFSectionKind::DW_SECT_STR_OFFSETS: {
if (StrOffstsWriter.isFinalized()) {
if (CUDWOEntry)
return StrOffstsWriter.getBufferStr();
OutputBuffer = StrOffstsWriter.releaseBuffer();
return StringRef(reinterpret_cast<const char *>(OutputBuffer->data()),
OutputBuffer->size());
Expand Down Expand Up @@ -1888,18 +1961,61 @@ void DWARFRewriter::writeDWOFiles(
}
}

StringRef StrDWOContent;
StringRef StrOffsetsContent;
llvm::SmallVector<StringRef, 3> StrDWOOutData;
std::string StrOffsetsOutData;
for (const SectionRef &Section : File->sections()) {
std::unique_ptr<DebugBufferVector> OutputData;
StringRef SectionName = getSectionName(Section);
if (SectionName == "debug_rnglists.dwo")
continue;
Expected<StringRef> ContentsExp = Section.getContents();
assert(ContentsExp && "Invalid contents.");
if (IsDWP && SectionName == "debug_str.dwo") {
if (StrWriter.isInitialized())
StrDWOContent = StrWriter.getBufferStr();
else
StrDWOContent = *ContentsExp;
continue;
}
if (std::optional<StringRef> OutData = updateDebugData(
(*DWOCU)->getContext(), SectionName, *ContentsExp, KnownSections,
*Streamer, *this, CUDWOEntry, DWOId, OutputData, RangeListssWriter,
LocWriter, StrOffstsWriter, StrWriter, OverridenSections))
LocWriter, StrOffstsWriter, StrWriter, OverridenSections)) {
if (IsDWP && SectionName == "debug_str_offsets.dwo") {
StrOffsetsContent = *OutData;
continue;
}
Streamer->emitBytes(*OutData);
}
}

if (IsDWP) {
// Handling both .debug_str.dwo and .debug_str_offsets.dwo concurrently. In
// the original DWP, .debug_str is a deduplicated global table, and the
// .debug_str.dwo slice for a single CU needs to be extracted according to
// .debug_str_offsets.dwo.
UpdateStrAndStrOffsets(StrDWOContent, StrOffsetsContent, StrDWOOutData,
StrOffsetsOutData, CU.getVersion(),
(*DWOCU)->getContext().isLittleEndian());
auto SectionIter = KnownSections.find("debug_str.dwo");
if (SectionIter != KnownSections.end()) {
Streamer->switchSection(SectionIter->second.first);
for (size_t i = 0; i < StrDWOOutData.size(); ++i) {
StringRef OutData = StrDWOOutData[i];
if (!OutData.empty())
Streamer->emitBytes(OutData);
}
}
SectionIter = KnownSections.find("debug_str_offsets.dwo");
if (SectionIter != KnownSections.end()) {
Streamer->switchSection(SectionIter->second.first);
if (!StrOffsetsOutData.empty())
Streamer->emitBytes(StrOffsetsOutData);
else
Streamer->emitBytes(StrOffsetsContent);
}
}
Streamer->finish();
TempOut->keep();
Expand Down
Loading