diff options
author | Nate Begeman <natebegeman@mac.com> | 2005-06-14 03:55:23 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2005-06-14 03:55:23 +0000 |
commit | a43b176f5141b263113841ba62bde2ad7fbab66d (patch) | |
tree | 2d94d675db4edd0fbcaaa16b30bb90ad5e352d19 /lib/Target/PowerPC/PPCISelPattern.cpp | |
parent | 16b5644f04ce534bb67b993dd837197cd5356988 (diff) |
Commit a small improvement that is already in the x86 and ia64 backends to
not generate unnecessary register copies. This improves compile time by
2-5% depending on the test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22210 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCISelPattern.cpp')
-rw-r--r-- | lib/Target/PowerPC/PPCISelPattern.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp index 750161caf8..5b4c6e58d5 100644 --- a/lib/Target/PowerPC/PPCISelPattern.cpp +++ b/lib/Target/PowerPC/PPCISelPattern.cpp @@ -1572,6 +1572,11 @@ unsigned ISel::SelectExpr(SDOperand N, bool Recording) { SDNode *Node = N.Val; MVT::ValueType DestType = N.getValueType(); + if (Node->getOpcode() == ISD::CopyFromReg && + MRegisterInfo::isVirtualRegister(cast<RegSDNode>(Node)->getReg())) + // Just use the specified register as our input. + return cast<RegSDNode>(Node)->getReg(); + unsigned &Reg = ExprMap[N]; if (Reg) return Reg; |