diff options
author | Vlad Tsyrklevich <vlad@tsyrklevich.net> | 2018-04-10 01:31:01 +0000 |
---|---|---|
committer | Vlad Tsyrklevich <vlad@tsyrklevich.net> | 2018-04-10 01:31:01 +0000 |
commit | 0cdc6ec5357e9295dcd7bb0ce2a5e1fc5973626f (patch) | |
tree | 53222676cb89cf835e174b2fcb439a162713cf59 | |
parent | 4485ae0890d8ce9c3cd0a050178d2479f8a7599a (diff) | |
download | bcm5719-llvm-0cdc6ec5357e9295dcd7bb0ce2a5e1fc5973626f.tar.gz bcm5719-llvm-0cdc6ec5357e9295dcd7bb0ce2a5e1fc5973626f.zip |
ShadowCallStack/x86_64: Ignore pseudo-machine instructions
llvm-svn: 329656
-rw-r--r-- | llvm/lib/Target/X86/ShadowCallStack.cpp | 3 | ||||
-rw-r--r-- | llvm/test/CodeGen/X86/shadow-call-stack.mir | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/llvm/lib/Target/X86/ShadowCallStack.cpp b/llvm/lib/Target/X86/ShadowCallStack.cpp index ba02644273b..9a39455f9dd 100644 --- a/llvm/lib/Target/X86/ShadowCallStack.cpp +++ b/llvm/lib/Target/X86/ShadowCallStack.cpp @@ -242,7 +242,8 @@ bool ShadowCallStack::runOnMachineFunction(MachineFunction &Fn) { for (auto &LiveIn : MBB.liveins()) UsedRegs.set(LiveIn.PhysReg); for (auto &MI : MBB) { - InstructionCount++; + if (!MI.isDebugValue() && !MI.isCFIInstruction() && !MI.isLabel()) + InstructionCount++; for (auto &Op : MI.operands()) if (Op.isReg() && Op.isDef()) UsedRegs.set(Op.getReg()); diff --git a/llvm/test/CodeGen/X86/shadow-call-stack.mir b/llvm/test/CodeGen/X86/shadow-call-stack.mir index 485b970540f..f10fabf587d 100644 --- a/llvm/test/CodeGen/X86/shadow-call-stack.mir +++ b/llvm/test/CodeGen/X86/shadow-call-stack.mir @@ -106,6 +106,14 @@ frameInfo: body: | ; CHECK: bb.0: bb.0: + ; Ensure these are not counted as machine instructions + CFI_INSTRUCTION 0 + CFI_INSTRUCTION 0 + CFI_INSTRUCTION 0 + DBG_VALUE 0 + DBG_VALUE 0 + DBG_VALUE 0 + ; CHECK: $eax = MOV32ri 13 $eax = MOV32ri 13 |