[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