mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-16 14:46:36 +00:00
[BOLT][DWARF] Add parallelization for processing of DWO debug information (#100282)
Enables parallelization for the processing of DWO CUs.
This commit is contained in:
parent
9428631d76
commit
6aad62cf5b
@ -113,6 +113,10 @@
|
||||
|
||||
Prints out offsets for abbrev and debug_info of Skeleton CUs that get patched.
|
||||
|
||||
- `--debug-thread-count=<uint>`
|
||||
|
||||
Specifies the number of threads to be used when processing DWO debug information.
|
||||
|
||||
- `--dot-tooltip-code`
|
||||
|
||||
Add basic block instructions as tool tips on nodes
|
||||
|
@ -50,7 +50,8 @@ enum SchedulingPolicy {
|
||||
};
|
||||
|
||||
/// Return the managed thread pool and initialize it if not initialized.
|
||||
ThreadPoolInterface &getThreadPool();
|
||||
ThreadPoolInterface &
|
||||
getThreadPool(const unsigned ThreadsCount = opts::ThreadCount);
|
||||
|
||||
/// Perform the work on each BinaryFunction except those that are accepted
|
||||
/// by SkipPredicate, scheduling heuristic is based on SchedPolicy.
|
||||
|
@ -184,7 +184,8 @@ public:
|
||||
/// Output .dwo files.
|
||||
void writeDWOFiles(DWARFUnit &, const OverriddenSectionsMap &,
|
||||
const std::string &, DebugLocWriter &,
|
||||
DebugStrOffsetsWriter &, DebugStrWriter &);
|
||||
DebugStrOffsetsWriter &, DebugStrWriter &,
|
||||
DebugRangesSectionWriter &);
|
||||
using KnownSectionsEntry = std::pair<MCSection *, DWARFSectionKind>;
|
||||
};
|
||||
|
||||
|
@ -49,7 +49,7 @@ namespace ParallelUtilities {
|
||||
|
||||
namespace {
|
||||
/// A single thread pool that is used to run parallel tasks
|
||||
std::unique_ptr<DefaultThreadPool> ThreadPoolPtr;
|
||||
std::unique_ptr<ThreadPoolInterface> ThreadPoolPtr;
|
||||
|
||||
unsigned computeCostFor(const BinaryFunction &BF,
|
||||
const PredicateTy &SkipPredicate,
|
||||
@ -102,12 +102,15 @@ inline unsigned estimateTotalCost(const BinaryContext &BC,
|
||||
|
||||
} // namespace
|
||||
|
||||
ThreadPoolInterface &getThreadPool() {
|
||||
ThreadPoolInterface &getThreadPool(const unsigned ThreadsCount) {
|
||||
if (ThreadPoolPtr.get())
|
||||
return *ThreadPoolPtr;
|
||||
|
||||
ThreadPoolPtr = std::make_unique<DefaultThreadPool>(
|
||||
llvm::hardware_concurrency(opts::ThreadCount));
|
||||
if (ThreadsCount > 1)
|
||||
ThreadPoolPtr = std::make_unique<DefaultThreadPool>(
|
||||
llvm::hardware_concurrency(ThreadsCount));
|
||||
else
|
||||
ThreadPoolPtr = std::make_unique<SingleThreadExecutor>();
|
||||
return *ThreadPoolPtr;
|
||||
}
|
||||
|
||||
|
@ -329,6 +329,12 @@ static cl::opt<bool> KeepARanges(
|
||||
"keep or generate .debug_aranges section if .gdb_index is written"),
|
||||
cl::Hidden, cl::cat(BoltCategory));
|
||||
|
||||
static cl::opt<unsigned>
|
||||
DebugThreadCount("debug-thread-count",
|
||||
cl::desc("specifies thread count for the multithreading "
|
||||
"for updating DWO debug info"),
|
||||
cl::init(1), cl::cat(BoltCategory));
|
||||
|
||||
static cl::opt<std::string> DwarfOutputPath(
|
||||
"dwarf-output-path",
|
||||
cl::desc("Path to where .dwo files will be written out to."), cl::init(""),
|
||||
@ -475,8 +481,8 @@ static void emitDWOBuilder(const std::string &DWOName,
|
||||
DWARFUnit &SplitCU, DWARFUnit &CU,
|
||||
DebugLocWriter &LocWriter,
|
||||
DebugStrOffsetsWriter &StrOffstsWriter,
|
||||
DebugStrWriter &StrWriter,
|
||||
GDBIndex &GDBIndexSection) {
|
||||
DebugStrWriter &StrWriter, GDBIndex &GDBIndexSection,
|
||||
DebugRangesSectionWriter &TempRangesSectionWriter) {
|
||||
// Populate debug_info and debug_abbrev for current dwo into StringRef.
|
||||
DWODIEBuilder.generateAbbrevs();
|
||||
DWODIEBuilder.finish();
|
||||
@ -532,7 +538,7 @@ static void emitDWOBuilder(const std::string &DWOName,
|
||||
OverriddenSections[Kind] = Contents;
|
||||
}
|
||||
Rewriter.writeDWOFiles(CU, OverriddenSections, DWOName, LocWriter,
|
||||
StrOffstsWriter, StrWriter);
|
||||
StrOffstsWriter, StrWriter, TempRangesSectionWriter);
|
||||
}
|
||||
|
||||
using DWARFUnitVec = std::vector<DWARFUnit *>;
|
||||
@ -646,7 +652,6 @@ void DWARFRewriter::updateDebugInfo() {
|
||||
*StrWriter);
|
||||
GDBIndex GDBIndexSection(BC);
|
||||
auto processSplitCU = [&](DWARFUnit &Unit, DWARFUnit &SplitCU,
|
||||
DIEBuilder &DIEBlder,
|
||||
DebugRangesSectionWriter &TempRangesSectionWriter,
|
||||
DebugAddrWriter &AddressWriter,
|
||||
const std::string &DWOName,
|
||||
@ -669,7 +674,7 @@ void DWARFRewriter::updateDebugInfo() {
|
||||
|
||||
emitDWOBuilder(DWOName, DWODIEBuilder, *this, SplitCU, Unit,
|
||||
DebugLocDWoWriter, DWOStrOffstsWriter, DWOStrWriter,
|
||||
GDBIndexSection);
|
||||
GDBIndexSection, TempRangesSectionWriter);
|
||||
};
|
||||
auto processMainBinaryCU = [&](DWARFUnit &Unit, DIEBuilder &DIEBlder) {
|
||||
std::optional<DWARFUnit *> SplitCU;
|
||||
@ -716,9 +721,13 @@ void DWARFRewriter::updateDebugInfo() {
|
||||
finalizeTypeSections(DIEBlder, *Streamer, GDBIndexSection);
|
||||
|
||||
CUPartitionVector PartVec = partitionCUs(*BC.DwCtx);
|
||||
const unsigned int ThreadCount =
|
||||
std::min(opts::DebugThreadCount, opts::ThreadCount);
|
||||
for (std::vector<DWARFUnit *> &Vec : PartVec) {
|
||||
DIEBlder.buildCompileUnits(Vec);
|
||||
llvm::SmallVector<std::unique_ptr<DIEBuilder>, 72> DWODIEBuildersByCU;
|
||||
ThreadPoolInterface &ThreadPool =
|
||||
ParallelUtilities::getThreadPool(ThreadCount);
|
||||
for (DWARFUnit *CU : DIEBlder.getProcessedCUs()) {
|
||||
createRangeLocListAddressWriters(*CU);
|
||||
std::optional<DWARFUnit *> SplitCU;
|
||||
@ -729,9 +738,9 @@ void DWARFRewriter::updateDebugInfo() {
|
||||
continue;
|
||||
DebugAddrWriter &AddressWriter =
|
||||
*AddressWritersByCU[CU->getOffset()].get();
|
||||
DebugRangesSectionWriter *TempRangesSectionWriter =
|
||||
CU->getVersion() >= 5 ? RangeListsWritersByCU[*DWOId].get()
|
||||
: LegacyRangesWritersByCU[*DWOId].get();
|
||||
DebugRangesSectionWriter &TempRangesSectionWriter =
|
||||
CU->getVersion() >= 5 ? *RangeListsWritersByCU[*DWOId].get()
|
||||
: *LegacyRangesWritersByCU[*DWOId].get();
|
||||
std::optional<std::string> DwarfOutputPath =
|
||||
opts::DwarfOutputPath.empty()
|
||||
? std::nullopt
|
||||
@ -744,9 +753,17 @@ void DWARFRewriter::updateDebugInfo() {
|
||||
*DWODIEBuildersByCU.emplace_back(std::move(DWODIEBuilderPtr)).get();
|
||||
if (CU->getVersion() >= 5)
|
||||
StrOffstsWriter->finalizeSection(*CU, DIEBlder);
|
||||
processSplitCU(*CU, **SplitCU, DIEBlder, *TempRangesSectionWriter,
|
||||
AddressWriter, DWOName, DwarfOutputPath, DWODIEBuilder);
|
||||
// Important to capture CU and SplitCU by value here, otherwise when the
|
||||
// thread is executed at some point after the current iteration of the
|
||||
// loop, dereferencing CU/SplitCU in the call to processSplitCU means it
|
||||
// will dereference a different variable than the one intended, causing a
|
||||
// seg fault.
|
||||
ThreadPool.async([&, DwarfOutputPath, DWOName, CU, SplitCU] {
|
||||
processSplitCU(*CU, **SplitCU, TempRangesSectionWriter, AddressWriter,
|
||||
DWOName, DwarfOutputPath, DWODIEBuilder);
|
||||
});
|
||||
}
|
||||
ThreadPool.wait();
|
||||
for (std::unique_ptr<DIEBuilder> &DWODIEBuilderPtr : DWODIEBuildersByCU)
|
||||
DWODIEBuilderPtr->updateDebugNamesTable();
|
||||
for (DWARFUnit *CU : DIEBlder.getProcessedCUs())
|
||||
@ -1807,7 +1824,8 @@ std::optional<StringRef> updateDebugData(
|
||||
void DWARFRewriter::writeDWOFiles(
|
||||
DWARFUnit &CU, const OverriddenSectionsMap &OverridenSections,
|
||||
const std::string &DWOName, DebugLocWriter &LocWriter,
|
||||
DebugStrOffsetsWriter &StrOffstsWriter, DebugStrWriter &StrWriter) {
|
||||
DebugStrOffsetsWriter &StrOffstsWriter, DebugStrWriter &StrWriter,
|
||||
DebugRangesSectionWriter &TempRangesSectionWriter) {
|
||||
// Setup DWP code once.
|
||||
DWARFContext *DWOCtx = BC.getDWOContext();
|
||||
const uint64_t DWOId = *CU.getDWOId();
|
||||
@ -1854,9 +1872,8 @@ void DWARFRewriter::writeDWOFiles(
|
||||
|
||||
DebugRangeListsSectionWriter *RangeListssWriter = nullptr;
|
||||
if (CU.getVersion() == 5) {
|
||||
assert(RangeListsWritersByCU.count(DWOId) != 0 &&
|
||||
"No RangeListsWriter for DWO ID.");
|
||||
RangeListssWriter = RangeListsWritersByCU[DWOId].get();
|
||||
RangeListssWriter =
|
||||
llvm::dyn_cast<DebugRangeListsSectionWriter>(&TempRangesSectionWriter);
|
||||
|
||||
// Handling .debug_rnglists.dwo separately. The original .o/.dwo might not
|
||||
// have .debug_rnglists so won't be part of the loop below.
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-cross-reference-different-abbrev-dst.s -o %t.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-cross-reference-different-abbrev-src.s -o %t1.o
|
||||
# RUN: %clang %cflags -gdwarf-4 %t.o %t1.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-cross-reference-different-abbrev-dst.s -o %t.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-cross-reference-different-abbrev-src.s -o %t1.o
|
||||
# RUN: %clang %cflags -gdwarf-4 %t1.o %t.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
|
@ -4,7 +4,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-loclist.s -o %t1.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-two-entries-loclist.s -o %t2.o
|
||||
# RUN: %clang %cflags %t1.o %t2.o %t.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-df-dualcu-loclist-helper.s \
|
||||
; RUN: -split-dwarf-file=helper.dwo -o helper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 -O2 -gsplit-dwarf=split main.o helper.o -o main.exe
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo | FileCheck -check-prefix=PRE-BOLT-DWO-MAIN %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.dwo.dwo | FileCheck -check-prefix=BOLT-DWO-MAIN %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info helper.dwo | FileCheck -check-prefix=PRE-BOLT-DWO-HELPER %s
|
||||
|
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-mc --split-dwarf-file=helper.dwo --triple=x86_64-unknown-linux-gnu \
|
||||
; RUN: --filetype=obj %p/Inputs/dwarf4-split-dwarf-no-address-helper.s -o=helper.o
|
||||
; RUN: %clang %cflags -gdwarf-4 -gsplit-dwarf=split main.o helper.o -o main.exe -fno-pic -no-pie
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe.bolt | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
;; Testing that there are no asserts/crashes when one of the DWARF4 CUs does not modify .debug_addr
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-subprogram-multiple-ranges-main.s -o %t1.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-subprogram-multiple-ranges-other.s -o %t2.o
|
||||
# RUN: %clang %cflags %t1.o %t2.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-objdump %t.bolt --disassemble > %t1.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t1.txt
|
||||
# RUN: cat %t1.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-types-dwarf5-types-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-types-dwarf5-types-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-types-dwarf5-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-types-dwarf5-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-helper2-addr-section-reuse.s -o %thelper2.o
|
||||
# RUN: %clang %cflags -dwarf-5 %thelper1.o %tmain.o %thelper2.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-dwarfdump --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --debug-info %t.exe.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## This test checks that when a binary is bolted if CU is not modified and has DW_AT_addr_base that is shared
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-call-pc-function-null-check-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-call-pc-function-null-check-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe > %t.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=CHECK %s
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-call-pc-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-call-pc-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections -reorder-blocks=reverse
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections -reorder-blocks=reverse --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe > %tmain.txt
|
||||
# RUN: llvm-objdump %t.exe --disassemble >> %tmain.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe.bolt > %tmainbolt.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-cu-no-debug-addr-main.s -o %t1main.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-cu-no-debug-addr-helper.s -o %t1helper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %t1main.o %t1helper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-input-lowpc-ranges-other.s \
|
||||
; RUN: -split-dwarf-file=mainOther.dwo -o other.o
|
||||
; RUN: %clang %cflags main.o other.o -o main.exe
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-rnglists main.exe.bolt &> %t/foo.txt
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-addr main.exe.bolt >> %t/foo.txt
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe.bolt >> %t/foo.txt
|
||||
|
@ -5,7 +5,7 @@
|
||||
; RUN: -split-dwarf-file=main.dwo -o main.o
|
||||
; RUN: llvm-mc -filetype=obj -triple x86_64-unknown-linux-gnu %p/Inputs/dwarf5-df-mono-helper.s -o=helper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 main.o helper.o -o main.exe -fno-pic -no-pie
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --always-convert-to-ranges
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --always-convert-to-ranges --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe | FileCheck -check-prefix=PRE-BOLT %s
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-addr main.exe.bolt &> %t/foo.txt
|
||||
; RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe.bolt >> %t/foo.txt
|
||||
|
@ -9,7 +9,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-output-dir-same-name-helper.s \
|
||||
; RUN: -split-dwarf-file=objects/o2/split.dwo -o helper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 -gsplit-dwarf=split main.o helper.o -o main.exe
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --dwarf-output-path=%t/dwo
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --dwarf-output-path=%t/dwo --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: ls -l %t/dwo > log
|
||||
; RUN: llvm-dwarfdump --debug-info main.exe.bolt >> log
|
||||
; RUN: cat log | FileCheck -check-prefix=BOLT %s
|
||||
|
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-types-debug-names-helper.s \
|
||||
; RUN: -split-dwarf-file=helper.dwo -o helper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 -gsplit-dwarf=split main.o helper.o -o main.exe
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 main.dwo.dwo > log.txt
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 helper.dwo.dwo >> log.txt
|
||||
; RUN: llvm-dwarfdump --debug-info --debug-names main.exe.bolt >> log.txt
|
||||
|
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-types-dup-helper.s \
|
||||
; RUN: -split-dwarf-file=helper.dwo -o helper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 -gsplit-dwarf=split main.o helper.o -o main.exe
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 main.exe.bolt > log.txt
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 main.dwo.dwo >> log.txt
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 helper.dwo.dwo >> log.txt
|
||||
|
@ -6,7 +6,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-df-types-debug-names-helper.s \
|
||||
; RUN: -split-dwarf-file=helper.dwo -o helper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 -gsplit-dwarf=split main.o helper.o -o main.exe
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt main.exe -o main.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 main.exe.bolt > log.txt
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 main.dwo.dwo >> log.txt
|
||||
; RUN: llvm-dwarfdump --debug-info -r 0 helper.dwo.dwo >> log.txt
|
||||
|
@ -4,7 +4,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-gdb-index-types-helper.s -o %thelpergdb.o
|
||||
# RUN: %clang %cflags %tmaingdb.o %thelpergdb.o -o %tgdb.exe -Wl,-q
|
||||
# RUN: llvm-objcopy %tgdb.exe --add-section=.gdb_index=%p/Inputs/dwarf5-dwarf4-gdb-index-types-v8.generted-gdb11.gdb-index
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
@ -4,7 +4,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-gdb-index-types-helper.s -o %thelpergdb.o
|
||||
# RUN: %clang %cflags %tmaingdb.o %thelpergdb.o -o %tgdb.exe -Wl,-q
|
||||
# RUN: llvm-objcopy %tgdb.exe --add-section=.gdb_index=%p/Inputs/dwarf5-dwarf4-gdb-index-types-v8.generted-gdb9.gdb-index
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-gdb-index-types-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf4-gdb-index-types-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe -Wl,-q -Wl,--gdb-index
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
|
@ -5,7 +5,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-dwarf4-monolithic-helper1.s -o %t1.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-dwarf4-monolithic-helper2.s -o %t2.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %t0.o %t1.o %t2.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt --always-convert-to-ranges %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt --always-convert-to-ranges %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line %t.exe > %t_line.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt > %t.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-dwarf4-types-backward-forward-cross-reference-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-dwarf4-types-backward-forward-cross-reference-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt | FileCheck --check-prefix=POSTCHECKADDR %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-types %t.bolt | FileCheck --check-prefix=POSTCHECKTU %s
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-empty-arange-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-empty-arange-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,--entry=main -Wl,-q -Wl,-gc-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --debug-aranges %t.bolt > %t.txt
|
||||
# RUN: llvm-dwarfdump --debug-info -r 0 %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
@ -4,7 +4,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-gdb-index-types-helper.s -o %thelpergdb.o
|
||||
# RUN: %clang %cflags %tmaingdb.o %thelpergdb.o -o %tgdb.exe -Wl,-q
|
||||
# RUN: llvm-objcopy %tgdb.exe --add-section=.gdb_index=%p/Inputs/dwarf5-gdb-index-types-v8.generted-gdb11.gdb-index
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
@ -4,7 +4,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-gdb-index-types-helper.s -o %thelpergdb.o
|
||||
# RUN: %clang %cflags %tmaingdb.o %thelpergdb.o -o %tgdb.exe -Wl,-q
|
||||
# RUN: llvm-objcopy %tgdb.exe --add-section=.gdb_index=%p/Inputs/dwarf5-gdb-index-types-v8.generted-gdb9.gdb-index
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %tgdb.exe -o %tgdb.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index %tgdb.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB.
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-gdb-index-types-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-gdb-index-types-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe -Wl,-q -Wl,--gdb-index
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by LLD.
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-locexpr-referrence-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-locexpr-referrence-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=CHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt | FileCheck --check-prefix=CHECKADDR %s
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-loclist-offset-form-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-loclist-offset-form-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt > %t.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-loc-base-no-loc-accesshelper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt > %t.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-return-pc-form-addr-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-return-pc-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections -reorder-blocks=reverse
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections -reorder-blocks=reverse --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe > %tmain.txt
|
||||
# RUN: llvm-objdump %t.exe --disassemble >> %tmain.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe.bolt > %tmainbolt.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-return-pc-main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-return-pc-helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections -reorder-blocks=reverse
|
||||
# RUN: llvm-bolt %t.exe -o %t.exe.bolt --update-debug-sections -reorder-blocks=reverse --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe > %tmain.txt
|
||||
# RUN: llvm-objdump %t.exe --disassemble >> %tmain.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe.bolt > %tmainbolt.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc --filetype=obj --triple x86_64 %s -o %tmain.o --defsym MAIN=0
|
||||
# RUN: llvm-mc --filetype=obj --triple x86_64 %s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %tmain.exe
|
||||
# RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --debug-info %tmain.exe.bolt > %tout.text
|
||||
# RUN: llvm-dwarfdump --show-section-sizes %tmain.exe >> %tout.text
|
||||
# RUN: llvm-dwarfdump --show-section-sizes %tmain.exe.bolt >> %tout.text
|
||||
|
@ -9,7 +9,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux -split-dwarf-file=helper1.dwo %p/Inputs/dwarf5-split-dwarf4-monolithic-helper1.s -o helper1.o
|
||||
# RUN: llvm-mc -dwarf-version=4 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-dwarf4-monolithic-helper2.s -o helper2.o
|
||||
# RUN: %clang %cflags -dwarf-5 main.o helper0.o helper1.o helper2.o -o main.exe -Wl,-q
|
||||
# RUN: llvm-bolt --always-convert-to-ranges main.exe -o main.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt --always-convert-to-ranges main.exe -o main.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info main.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-line main.exe | FileCheck --check-prefix=PRECHECK-LINE %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr main.bolt > boltout.txt
|
||||
|
@ -7,7 +7,7 @@
|
||||
# RUN: llvm-mc --split-dwarf-file=helper.dwo -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-split-gdb-index-types-helper.s -o helpergdb.o
|
||||
# RUN: %clang %cflags maingdb.o helpergdb.o -o maingdb.exe -Wl,-q
|
||||
# RUN: llvm-objcopy maingdb.exe --add-section=.gdb_index=%p/Inputs/dwarf5-split-gdb-index-types-v8.gdb-index
|
||||
# RUN: llvm-bolt maingdb.exe -o maingdb.exe.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt maingdb.exe -o maingdb.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --gdb-index maingdb.exe.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## Tests that BOLT correctly handles gdb-index generated by GDB with split-dwarf DWARF4.
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-subprogram-multiple-ranges-main.s -o %t1.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-subprogram-multiple-ranges-other.s -o %t2.o
|
||||
# RUN: %clang %cflags %t1.o %t2.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-objdump %t.bolt --disassemble > %t1.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t1.txt
|
||||
# RUN: cat %t1.txt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-str-offsets %t.exe > %t.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-str-offsets %t.bolt >> %t.txt
|
||||
# RUN: cat %t.txt | FileCheck --check-prefix=CHECK %s
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt > %t.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_main.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5_helper.s -o %thelper.o
|
||||
# RUN: %clang %cflags -dwarf-5 %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt --always-convert-to-ranges %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt --always-convert-to-ranges %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.exe | FileCheck --check-prefix=PRECHECK %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-addr %t.bolt > %t.txt
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt >> %t.txt
|
||||
|
@ -3,7 +3,7 @@
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-basic-cu.s -o %tmain.o
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-types-no-cu.s -o %thelper.o
|
||||
# RUN: %clang %cflags %tmain.o %thelper.o -o %t.exe -Wl,-q
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-str-offsets %t.exe | FileCheck -check-prefix=PRE-BOLT %s
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-str-offsets %t.bolt | FileCheck -check-prefix=POST-BOLT %s
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
# RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %s -o %t.o
|
||||
# RUN: %clang %cflags -gdwarf-5 %t.o -o %t.exe
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections
|
||||
# RUN: llvm-bolt %t.exe -o %t.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
# RUN: llvm-dwarfdump --show-form --verbose --debug-info %t.bolt | FileCheck --check-prefix=POSTCHECK %s
|
||||
|
||||
## This test checks that BOLT handles backward cross CU references for dwarf5
|
||||
|
@ -1,7 +1,7 @@
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-types-debug-names-main.s -o %tmain.o
|
||||
; RUN: llvm-mc -dwarf-version=5 -filetype=obj -triple x86_64-unknown-linux %p/Inputs/dwarf5-types-debug-names-helper.s -o %thelper.o
|
||||
; RUN: %clang %cflags -gdwarf-5 %tmain.o %thelper.o -o %tmain.exe
|
||||
; RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections
|
||||
; RUN: llvm-bolt %tmain.exe -o %tmain.exe.bolt --update-debug-sections --debug-thread-count=4 --cu-processing-batch-size=4
|
||||
; RUN: llvm-dwarfdump --debug-info --debug-names %tmain.exe.bolt > %tlog.txt
|
||||
; RUN: cat %tlog.txt | FileCheck -check-prefix=BOLT %s
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user