summaryrefslogtreecommitdiff
path: root/lib/CodeGen/PHIElimination.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2010-05-04 20:26:52 +0000
committerEvan Cheng <evan.cheng@apple.com>2010-05-04 20:26:52 +0000
commitafff40a62da19be15295c0f8ed5d4d450ccb45a5 (patch)
tree0e98248c6957214da8b9a842f1e29914ca903c41 /lib/CodeGen/PHIElimination.h
parent55cd6cb141777b1a1d64060828adafeff80b3986 (diff)
downloadllvm-afff40a62da19be15295c0f8ed5d4d450ccb45a5.tar.gz
llvm-afff40a62da19be15295c0f8ed5d4d450ccb45a5.tar.bz2
llvm-afff40a62da19be15295c0f8ed5d4d450ccb45a5.tar.xz
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
Diffstat (limited to 'lib/CodeGen/PHIElimination.h')
-rw-r--r--lib/CodeGen/PHIElimination.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/PHIElimination.h b/lib/CodeGen/PHIElimination.h
index 7dedf0318a..3292aa27af 100644
--- a/lib/CodeGen/PHIElimination.h
+++ b/lib/CodeGen/PHIElimination.h
@@ -94,6 +94,8 @@ namespace llvm {
return I;
}
+ bool EliminateRegSequences(MachineFunction &MF);
+
typedef std::pair<unsigned, unsigned> BBVRegPair;
typedef DenseMap<BBVRegPair, unsigned> VRegPHIUse;