[llvm] r329656 - ShadowCallStack/x86_64: Ignore pseudo-machine instructions
Vlad Tsyrklevich via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 9 18:31:01 PDT 2018
Author: vlad.tsyrklevich
Date: Mon Apr 9 18:31:01 2018
New Revision: 329656
URL: http://llvm.org/viewvc/llvm-project?rev=329656&view=rev
Log:
ShadowCallStack/x86_64: Ignore pseudo-machine instructions
Modified:
llvm/trunk/lib/Target/X86/ShadowCallStack.cpp
llvm/trunk/test/CodeGen/X86/shadow-call-stack.mir
Modified: llvm/trunk/lib/Target/X86/ShadowCallStack.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/ShadowCallStack.cpp?rev=329656&r1=329655&r2=329656&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/ShadowCallStack.cpp (original)
+++ llvm/trunk/lib/Target/X86/ShadowCallStack.cpp Mon Apr 9 18:31:01 2018
@@ -242,7 +242,8 @@ bool ShadowCallStack::runOnMachineFuncti
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());
Modified: llvm/trunk/test/CodeGen/X86/shadow-call-stack.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/shadow-call-stack.mir?rev=329656&r1=329655&r2=329656&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/shadow-call-stack.mir (original)
+++ llvm/trunk/test/CodeGen/X86/shadow-call-stack.mir Mon Apr 9 18:31:01 2018
@@ -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
More information about the llvm-commits
mailing list