From 6bceadccbe3fa8b26922724076a3619ca5491455 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Wed, 6 Jul 2022 14:09:29 -0700 Subject: [PATCH 1/2] emit column for .loc in asm file --- src/mapleall/maple_be/include/cg/dbg.def | 2 +- src/mapleall/maple_be/src/cg/aarch64/aarch64_proepilog.cpp | 6 ++++-- src/mapleall/maple_be/src/cg/cgfunc.cpp | 3 ++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/mapleall/maple_be/include/cg/dbg.def b/src/mapleall/maple_be/include/cg/dbg.def index b49c9093cb..b95eefe0c5 100644 --- a/src/mapleall/maple_be/include/cg/dbg.def +++ b/src/mapleall/maple_be/include/cg/dbg.def @@ -13,5 +13,5 @@ * See the Mulan PSL v1 for more details. */ /* .loc fileNum lineNum */ -DBG_DEFINE(loc, , 2, Immediate, Immediate, Undef) +DBG_DEFINE(loc, , 3, Immediate, Immediate, Immediate) DBG_DEFINE(scope, , 2, Immediate, Immediate, Undef) diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_proepilog.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_proepilog.cpp index 883c14dd17..ce1506a060 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_proepilog.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_proepilog.cpp @@ -1438,13 +1438,15 @@ void AArch64GenProEpilog::GenerateProlog(BB &bb) { } } Operand *o1 = cgFunc.CreateDbgImmOperand(lineNum); - Insn &loc = currCG->BuildInstruction(mpldbg::OP_DBG_loc, *o0, *o1); + Operand *o2 = cgFunc.CreateDbgImmOperand(fSym->GetSrcPosition().Column()); + Insn &loc = currCG->BuildInstruction(mpldbg::OP_DBG_loc, *o0, *o1, *o2); cgFunc.GetCurBB()->AppendInsn(loc); } } else { Operand *o0 = cgFunc.CreateDbgImmOperand(1); Operand *o1 = cgFunc.CreateDbgImmOperand(fSym->GetSrcPosition().MplLineNum()); - Insn &loc = currCG->BuildInstruction(mpldbg::OP_DBG_loc, *o0, *o1); + Operand *o2 = cgFunc.CreateDbgImmOperand(0); + Insn &loc = currCG->BuildInstruction(mpldbg::OP_DBG_loc, *o0, *o1, *o2); cgFunc.GetCurBB()->AppendInsn(loc); } } diff --git a/src/mapleall/maple_be/src/cg/cgfunc.cpp b/src/mapleall/maple_be/src/cg/cgfunc.cpp index 788a763a8e..aa4fa05150 100644 --- a/src/mapleall/maple_be/src/cg/cgfunc.cpp +++ b/src/mapleall/maple_be/src/cg/cgfunc.cpp @@ -1529,7 +1529,8 @@ void CGFunc::GenerateLoc(StmtNode *stmt, SrcPosition &lastSrcPos, SrcPosition &l if (cg->GetCGOptions().WithMpl() && !hasLoc && !lastMplPos.IsEqMpl(newSrcPos)) { Operand *o0 = CreateDbgImmOperand(1); Operand *o1 = CreateDbgImmOperand(newSrcPos.MplLineNum()); - Insn &loc = cg->BuildInstruction(mpldbg::OP_DBG_loc, *o0, *o1); + Operand *o2 = CreateDbgImmOperand(0); + Insn &loc = cg->BuildInstruction(mpldbg::OP_DBG_loc, *o0, *o1, *o2); curBB->AppendInsn(loc); lastMplPos.UpdateWith(newSrcPos); } -- Gitee From a51a6629a8d516ca9c392fc5cdd6e2d84e10bf36 Mon Sep 17 00:00:00 2001 From: Wen HU Date: Wed, 6 Jul 2022 14:09:48 -0700 Subject: [PATCH 2/2] emit verbose asm with debug compiler --- src/mapleall/maple_driver/src/driver_runner.cpp | 5 +++++ src/mapleall/maple_driver/src/mplcg_compiler.cpp | 3 +++ 2 files changed, 8 insertions(+) diff --git a/src/mapleall/maple_driver/src/driver_runner.cpp b/src/mapleall/maple_driver/src/driver_runner.cpp index 96dce5e9d0..e236c8f250 100644 --- a/src/mapleall/maple_driver/src/driver_runner.cpp +++ b/src/mapleall/maple_driver/src/driver_runner.cpp @@ -314,6 +314,11 @@ void DriverRunner::ProcessCGPhase(const std::string &output, const std::string & if (withDwarf && !theModule->IsWithDbgInfo()) { LogInfo::MapleLogger() << "set up debug info " << '\n'; theMIRModule->GetDbgInfo()->BuildDebugInfo(); +#if DEBUG + if (cgOptions) { + cgOptions->SetOption(CGOptions::kVerboseAsm); + } +#endif } if (cgOptions == nullptr) { return; diff --git a/src/mapleall/maple_driver/src/mplcg_compiler.cpp b/src/mapleall/maple_driver/src/mplcg_compiler.cpp index 19e55113f9..e24eb66e82 100644 --- a/src/mapleall/maple_driver/src/mplcg_compiler.cpp +++ b/src/mapleall/maple_driver/src/mplcg_compiler.cpp @@ -118,6 +118,9 @@ ErrorCode MplcgCompiler::MakeCGOptions(const MplOptions &options) { /* use maple flags to set cg flags */ if (opts::withDwarf) { cgOption.SetOption(CGOptions::kWithDwarf); +#if DEBUG + cgOption.SetOption(CGOptions::kVerboseAsm); +#endif } cgOption.SetGenerateFlags(CGOptions::kDefaultGflags); -- Gitee