[WebAssembly] Use a physical register to describe ARGUMENT liveness.
authorDan Gohman <dan433584@gmail.com>
Wed, 25 Nov 2015 19:36:19 +0000 (19:36 +0000)
committerDan Gohman <dan433584@gmail.com>
Wed, 25 Nov 2015 19:36:19 +0000 (19:36 +0000)
commitfe3415b2af46d76f92ef21c345b07defa763dba8
tree61230f99ccacd5923ab150e670e578d402870623
parentf722f529e7f3147ee286fb1d0baa2bb4e2313967
[WebAssembly] Use a physical register to describe ARGUMENT liveness.

Instead of trying to move ARGUMENT instructions back up to the top after
they've been scheduled or sunk down, use a fake physical register to
create a liveness constraint that prevents ARGUMENT instructions from
moving down in the first place. This is still not entirely ideal, however
it is more robust than letting them move and moving them back.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254084 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
lib/Target/WebAssembly/WebAssemblyInstrCall.td
lib/Target/WebAssembly/WebAssemblyInstrControl.td
lib/Target/WebAssembly/WebAssemblyInstrConv.td
lib/Target/WebAssembly/WebAssemblyInstrFloat.td
lib/Target/WebAssembly/WebAssemblyInstrInfo.td
lib/Target/WebAssembly/WebAssemblyInstrInteger.td
lib/Target/WebAssembly/WebAssemblyInstrMemory.td
lib/Target/WebAssembly/WebAssemblyRegColoring.cpp
lib/Target/WebAssembly/WebAssemblyRegisterInfo.td
test/CodeGen/WebAssembly/dead-vreg.ll