diff options
author | Hsiangkai Wang <hsiangkai@gmail.com> | 2018-08-18 14:55:34 +0000 |
---|---|---|
committer | Hsiangkai Wang <hsiangkai@gmail.com> | 2018-08-18 14:55:34 +0000 |
commit | 68c706ceb7b567ca1c02c97533ada4c169574b7e (patch) | |
tree | 916c644a3422877bd2258e726397af3bd7be671a /llvm | |
parent | 911efbb926414f15278a7c761f9e12c6f3efbc3e (diff) | |
download | bcm5719-llvm-68c706ceb7b567ca1c02c97533ada4c169574b7e.tar.gz bcm5719-llvm-68c706ceb7b567ca1c02c97533ada4c169574b7e.zip |
[DebugInfo] In FastISel, convert llvm.dbg.label to DBG_LABEL MI.
Convert llvm.dbg.label(!label_metadata) to DBG_LABEL !label_metadata.
Differential Revision: https://reviews.llvm.org/D50622
llvm-svn: 340122
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/FastISel.cpp | 12 | ||||
-rw-r--r-- | llvm/test/DebugInfo/Generic/debug-label-mi.ll | 4 | ||||
-rw-r--r-- | llvm/test/DebugInfo/Generic/debug-label-opt.ll | 2 | ||||
-rw-r--r-- | llvm/test/DebugInfo/Generic/debug-label.ll | 4 |
4 files changed, 17 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp index 795ade588b8..60af537b715 100644 --- a/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp @@ -1426,6 +1426,18 @@ bool FastISel::selectIntrinsicCall(const IntrinsicInst *II) { } return true; } + case Intrinsic::dbg_label: { + const DbgLabelInst *DI = cast<DbgLabelInst>(II); + assert(DI->getLabel() && "Missing label"); + if (!FuncInfo.MF->getMMI().hasDebugInfo()) { + LLVM_DEBUG(dbgs() << "Dropping debug info for " << *DI << "\n"); + return true; + } + + BuildMI(*FuncInfo.MBB, FuncInfo.InsertPt, DbgLoc, + TII.get(TargetOpcode::DBG_LABEL)).addMetadata(DI->getLabel()); + return true; + } case Intrinsic::objectsize: { ConstantInt *CI = cast<ConstantInt>(II->getArgOperand(1)); unsigned long long Res = CI->isZero() ? -1ULL : 0; diff --git a/llvm/test/DebugInfo/Generic/debug-label-mi.ll b/llvm/test/DebugInfo/Generic/debug-label-mi.ll index 163b1902958..dd9d620da08 100644 --- a/llvm/test/DebugInfo/Generic/debug-label-mi.ll +++ b/llvm/test/DebugInfo/Generic/debug-label-mi.ll @@ -1,12 +1,12 @@ ; Test DBG_LABEL MachineInstr for label debugging. ; REQUIRES: asserts -; RUN: llc -fast-isel=false -debug-only=isel %s -o /dev/null 2> %t.debug +; RUN: llc -debug-only=isel %s -o /dev/null 2> %t.debug ; RUN: cat %t.debug | FileCheck %s --check-prefix=CHECKMI ; ; CHECKMI: DBG_LABEL "top", debug-location !9 ; CHECKMI: DBG_LABEL "done", debug-location !11 ; -; RUN: llc -fast-isel=false %s -o - | FileCheck %s --check-prefix=CHECKASM +; RUN: llc %s -o - | FileCheck %s --check-prefix=CHECKASM ; ; CHECKASM: DEBUG_LABEL: foo:top ; CHECKASM: DEBUG_LABEL: foo:done diff --git a/llvm/test/DebugInfo/Generic/debug-label-opt.ll b/llvm/test/DebugInfo/Generic/debug-label-opt.ll index 8440a16781c..4da22797425 100644 --- a/llvm/test/DebugInfo/Generic/debug-label-opt.ll +++ b/llvm/test/DebugInfo/Generic/debug-label-opt.ll @@ -1,7 +1,7 @@ ; Test DBG_LABEL MachineInstr under optimization. ; The test case is generated by clang with -O2 is on. ; REQUIRES: asserts -; RUN: llc -fast-isel=false -debug-only=isel %s -o /dev/null 2> %t.debug +; RUN: llc -debug-only=isel %s -o /dev/null 2> %t.debug ; RUN: cat %t.debug | FileCheck %s --check-prefix=CHECKMI ; ; CHECKMI: DBG_LABEL "end_sum", debug-location !17 diff --git a/llvm/test/DebugInfo/Generic/debug-label.ll b/llvm/test/DebugInfo/Generic/debug-label.ll index 17129ad06b6..e4e1edcb9be 100644 --- a/llvm/test/DebugInfo/Generic/debug-label.ll +++ b/llvm/test/DebugInfo/Generic/debug-label.ll @@ -1,4 +1,4 @@ -; RUN: llc -fast-isel=false -O0 -filetype=obj -o - %s | llvm-dwarfdump -v - | FileCheck %s +; RUN: llc -O0 -filetype=obj -o - %s | llvm-dwarfdump -v - | FileCheck %s ; ; CHECK: .debug_info contents: ; CHECK: DW_TAG_label @@ -12,7 +12,7 @@ ; CHECK-NEXT: DW_AT_decl_line [DW_FORM_data1] {{.*}}7 ; CHECK-NEXT: DW_AT_low_pc [DW_FORM_addr] {{.*}}{{0x[0-9a-f]+}} ; -; RUN: llc -fast-isel=false -O0 -o - %s | FileCheck %s -check-prefix=ASM +; RUN: llc -O0 -o - %s | FileCheck %s -check-prefix=ASM ; ; ASM: [[TOP_LOW_PC:[.0-9a-zA-Z]+]]:{{[[:space:]].*}}DEBUG_LABEL: foo:top ; ASM: [[DONE_LOW_PC:[.0-9a-zA-Z]+]]:{{[[:space:]].*}}DEBUG_LABEL: foo:done |