Index: lib/Target/X86/ShadowCallStack.cpp =================================================================== --- lib/Target/X86/ShadowCallStack.cpp +++ lib/Target/X86/ShadowCallStack.cpp @@ -242,7 +242,8 @@ 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()); Index: test/CodeGen/X86/shadow-call-stack.mir =================================================================== --- test/CodeGen/X86/shadow-call-stack.mir +++ test/CodeGen/X86/shadow-call-stack.mir @@ -106,6 +106,14 @@ 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