[PATCH] D49187: [XRay] Fix machine verifier issues in X86

Francis Visoiu Mistrih via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 11 07:35:27 PDT 2018


thegameg created this revision.
thegameg added reviewers: dberris, MatzeB, qcolombet, timshen.

I'm not sure if this fix is the right thing to do, but it seemed to me that PATCHABLE_RET and PATCHABLE_TAIL_CALL shouldn't have any defs.

Running the following:

  LLVM_ENABLE_MACHINE_VERIFIER=1 ./build/bin/llvm-lit -v -a test/CodeGen/X86/xray-*

results in the following tests to fail (along others):

  LLVM :: CodeGen/X86/xray-attribute-instrumentation.ll
  LLVM :: CodeGen/X86/xray-custom-log.ll
  LLVM :: CodeGen/X86/xray-log-args.ll
  LLVM :: CodeGen/X86/xray-loop-detection.ll
  LLVM :: CodeGen/X86/xray-multiplerets-in-blocks.mir
  LLVM :: CodeGen/X86/xray-section-group.ll
  LLVM :: CodeGen/X86/xray-selective-instrumentation.ll
  LLVM :: CodeGen/X86/xray-tail-call-sled.ll
  LLVM :: CodeGen/X86/xray-typed-event-log.ll

The errors are:

  *** Bad machine code: Explicit definition must be a register ***
  - function:    fn
  - basic block: %bb.0  (0x7fa31a84d908)
  - instruction: PATCHABLE_RET 2560, $eax
  - operand 0:   2560

and

  *** Bad machine code: Explicit definition must be a register ***
  - function:    caller
  - basic block: %bb.0  (0x7fbff3044108)
  - instruction: PATCHABLE_TAIL_CALL 3009, @callee, <regmask $bh $bl $bp $bph $bpl $bx $ebp $ebx $hbp $hbx $rbp $rbx $r12 $r13 $r14 $r15 $r12b $r13b $r14b $r15b $r12bh $r13bh $r14bh $r15bh $r12d $r13d $r14d $r15d $r12w $r13w $r14w $r15w $r12wh and 3 more...>, implicit $rsp, implicit $ssp, implicit $rsp, implicit $ssp, implicit $edi
  - operand 0:   3009


https://reviews.llvm.org/D49187

Files:
  include/llvm/Target/Target.td
  test/CodeGen/X86/xray-attribute-instrumentation.ll
  test/CodeGen/X86/xray-custom-log.ll
  test/CodeGen/X86/xray-log-args.ll
  test/CodeGen/X86/xray-loop-detection.ll
  test/CodeGen/X86/xray-multiplerets-in-blocks.mir
  test/CodeGen/X86/xray-section-group.ll
  test/CodeGen/X86/xray-selective-instrumentation.ll
  test/CodeGen/X86/xray-tail-call-sled.ll
  test/CodeGen/X86/xray-typed-event-log.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D49187.154998.patch
Type: text/x-patch
Size: 7552 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180711/4d759c08/attachment.bin>


More information about the llvm-commits mailing list