This is an archive of the discontinued LLVM Phabricator instance.

MachineCSE: Respect interblock physreg liveness
ClosedPublic

Authored by materi on May 22 2017, 5:42 AM.

Details

Summary

This is a fix for PR32538. MachineCSE first looks at MO.isDead(), but
if it is not marked dead, MachineCSE still wants to do its own check
to see if it is trivially dead. This check for the trivial case
assumed that physical registers cannot be live out of a block.

Event Timeline

materi created this revision.May 22 2017, 5:42 AM
materi added a subscriber: jbhateja.
This revision is now accepted and ready to land.May 22 2017, 6:28 PM
qcolombet accepted this revision.May 23 2017, 1:16 PM
This revision was automatically updated to reflect the committed changes.
thakis added a subscriber: thakis.May 24 2017, 11:59 AM

The new test fails for me like so, at r303736:

lit.py: /b/build/slave/linux_upload_clang/build/src/third_party/llvm/tools/clang/test/lit.cfg:200: note: using clang: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap/./bin/clang'

  • Testing: 32636 tests, 32 threads --

Testing: 0 .. 10.. 20.. 30.. 40.. 50
FAIL: LLVM :: CodeGen/MIR/Generic/machine-cse-physreg.mir (17609 of 32636)

  • TEST 'LLVM :: CodeGen/MIR/Generic/machine-cse-physreg.mir' FAILED ****

Script:

/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap/./bin/llc -mtriple thumbv5e -run-pass=machine-cse -o - /b/build/slave/linux_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-cse-physreg.mir | /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap/./bin/FileCheck /b/build/slave/linux_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-cse-physreg.mir

Exit Code: 2

Command Output (stderr):

/b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap/./bin/llc: : error: unable to get target for 'thumbv5e', see --version and --triple.
FileCheck error: '-' is empty.

FileCheck command line: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap/./bin/FileCheck /b/build/slave/linux_upload_clang/build/src/third_party/llvm/test/CodeGen/MIR/Generic/machine-cse-physreg.mir

I see you moved the test around in r303778, so if that happens to address this failure already, please disregard. Else, please take a look.