Skip to content

Commit d59f705

Browse files
vtjnashvchuravy
authored andcommitted
some code_native fixes
1 parent c4a70fe commit d59f705

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

src/disasm.cpp

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,9 @@ static void jl_strip_llvm_debug(Module *m, bool all_meta, LineNumberAnnotatedWri
456456
if (AAW)
457457
AAW->addDebugLoc(&inst, inst.getDebugLoc());
458458
inst.setDebugLoc(DebugLoc());
459+
#if JL_LLVM_VERSION >= 190000
460+
inst.dropDbgRecords();
461+
#endif
459462
}
460463
if (deletelast) {
461464
deletelast->eraseFromParent();
@@ -869,6 +872,8 @@ static void jl_dump_asm_internal(
869872
SourceMgr SrcMgr;
870873

871874
MCTargetOptions Options;
875+
Options.AsmVerbose = true;
876+
Options.MCUseDwarfDirectory = MCTargetOptions::EnableDwarfDirectory;
872877
std::unique_ptr<MCAsmInfo> MAI(
873878
TheTarget->createMCAsmInfo(*TheTarget->createMCRegInfo(TheTriple.str()), TheTriple.str(), Options));
874879
assert(MAI && "Unable to create target asm info!");
@@ -1237,6 +1242,11 @@ jl_value_t *jl_dump_function_asm_impl(jl_llvmf_dump_t* dump, char emit_mc, const
12371242
});
12381243
auto TMBase = jl_ExecutionEngine->cloneTargetMachine();
12391244
LLVMTargetMachine *TM = static_cast<LLVMTargetMachine*>(TMBase.get());
1245+
MCTargetOptions &Options = TM->Options.MCOptions;
1246+
Options.AsmVerbose = true;
1247+
Options.MCUseDwarfDirectory = MCTargetOptions::EnableDwarfDirectory;
1248+
if (binary)
1249+
Options.ShowMCEncoding = true;
12401250
legacy::PassManager PM;
12411251
addTargetPasses(&PM, TM->getTargetTriple(), TM->getTargetIRAnalysis());
12421252
if (emit_mc) {
@@ -1266,8 +1276,8 @@ jl_value_t *jl_dump_function_asm_impl(jl_llvmf_dump_t* dump, char emit_mc, const
12661276
OutputAsmDialect = 1;
12671277
MCInstPrinter *InstPrinter = TM->getTarget().createMCInstPrinter(
12681278
jl_ExecutionEngine->getTargetTriple(), OutputAsmDialect, MAI, MII, MRI);
1269-
std::unique_ptr<MCAsmBackend> MAB(TM->getTarget().createMCAsmBackend(
1270-
STI, MRI, TM->Options.MCOptions));
1279+
std::unique_ptr<MCAsmBackend> MAB(TM->getTarget().createMCAsmBackend(
1280+
STI, MRI, Options));
12711281
std::unique_ptr<MCCodeEmitter> MCE;
12721282
if (binary) { // enable MCAsmStreamer::AddEncodingComment printing
12731283
MCE.reset(TM->getTarget().createMCCodeEmitter(MII, *Context));
@@ -1281,8 +1291,7 @@ jl_value_t *jl_dump_function_asm_impl(jl_llvmf_dump_t* dump, char emit_mc, const
12811291
std::move(MAB), false
12821292
#endif
12831293
));
1284-
std::unique_ptr<AsmPrinter> Printer(
1285-
TM->getTarget().createAsmPrinter(*TM, std::move(S)));
1294+
AsmPrinter *Printer = TM->getTarget().createAsmPrinter(*TM, std::move(S));
12861295
#if JL_LLVM_VERSION >= 190000
12871296
Printer->addDebugHandler(
12881297
std::make_unique<LineNumberPrinterHandler>(*Printer, debuginfo));
@@ -1293,7 +1302,7 @@ jl_value_t *jl_dump_function_asm_impl(jl_llvmf_dump_t* dump, char emit_mc, const
12931302
#endif
12941303
if (!Printer)
12951304
return jl_an_empty_string;
1296-
PM.add(Printer.release());
1305+
PM.add(Printer);
12971306
PM.add(createFreeMachineFunctionPass());
12981307
TSM->withModuleDo([&](Module &m){ PM.run(m); });
12991308
}

0 commit comments

Comments
 (0)