aboutsummaryrefslogtreecommitdiffstats
path: root/lib/CodeGen/SimpleRegisterCoalescing.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-01-20 06:44:16 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-01-20 06:44:16 +0000
commite08eb9ca1dc832e0c8b460459fe218622f231898 (patch)
treeffa96a8fb5144c5bb6d00d857b15fb38e54a17cc /lib/CodeGen/SimpleRegisterCoalescing.h
parent20394494cc2ab9a08afc85a490523c50c388e8b3 (diff)
downloadexternal_llvm-e08eb9ca1dc832e0c8b460459fe218622f231898.zip
external_llvm-e08eb9ca1dc832e0c8b460459fe218622f231898.tar.gz
external_llvm-e08eb9ca1dc832e0c8b460459fe218622f231898.tar.bz2
Refactor code. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62573 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/SimpleRegisterCoalescing.h')
-rw-r--r--lib/CodeGen/SimpleRegisterCoalescing.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/CodeGen/SimpleRegisterCoalescing.h b/lib/CodeGen/SimpleRegisterCoalescing.h
index 71a64a2..a4f0fa3 100644
--- a/lib/CodeGen/SimpleRegisterCoalescing.h
+++ b/lib/CodeGen/SimpleRegisterCoalescing.h
@@ -232,6 +232,20 @@ namespace llvm {
bool HasIncompatibleSubRegDefUse(MachineInstr *CopyMI,
unsigned VirtReg, unsigned PhysReg);
+ /// CanJoinExtractSubRegToPhysReg - Return true if it's possible to coalesce
+ /// an extract_subreg where dst is a physical register, e.g.
+ /// cl = EXTRACT_SUBREG reg1024, 1
+ bool CanJoinExtractSubRegToPhysReg(MachineInstr *CopyMI,
+ unsigned DstReg, unsigned SrcReg,
+ unsigned SubIdx, unsigned &RealDstReg);
+
+ /// CanJoinInsertSubRegToPhysReg - Return true if it's possible to coalesce
+ /// an insert_subreg where src is a physical register, e.g.
+ /// reg1024 = INSERT_SUBREG reg1024, c1, 0
+ bool CanJoinInsertSubRegToPhysReg(MachineInstr *CopyMI,
+ unsigned DstReg, unsigned SrcReg,
+ unsigned SubIdx, unsigned &RealDstReg);
+
/// RangeIsDefinedByCopyFromReg - Return true if the specified live range of
/// the specified live interval is defined by a copy from the specified
/// register.