Teach PHI elimination to remove REG_SEQUENCE instructions and update references of...
authorEvan Cheng <evan.cheng@apple.com>
Tue, 4 May 2010 20:26:52 +0000 (20:26 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Tue, 4 May 2010 20:26:52 +0000 (20:26 +0000)
commitafff40a62da19be15295c0f8ed5d4d450ccb45a5
tree0e98248c6957214da8b9a842f1e29914ca903c41
parent55cd6cb141777b1a1d64060828adafeff80b3986
Teach PHI elimination to remove REG_SEQUENCE instructions and update references of the source operands with references of the destination with subreg indices. e.g.
%reg1029<def>, %reg1030<def> = VLD1q16 %reg1024<kill>, ...
%reg1031<def> = REG_SEQUENCE %reg1029<kill>, 5, %reg1030<kill>, 6
=>
%reg1031:5<def>, %reg1031:6<def> = VLD1q16 %reg1024<kill>, ...

PHI elimination now does more than phi elimination. It is really a de-SSA pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103039 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/LiveIntervalAnalysis.cpp
lib/CodeGen/PHIElimination.cpp
lib/CodeGen/PHIElimination.h