aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2007-09-19 01:35:01 +0000
committerEvan Cheng <evan.cheng@apple.com>2007-09-19 01:35:01 +0000
commita3ca3149f2b59c512c50aab330b5a0d8efddeffa (patch)
treefaf1320f6091e715c283687ab2a5247ca2e74d46 /include
parentbabbe27007b6b418706d4fe1de3092c8a88fd314 (diff)
downloadexternal_llvm-a3ca3149f2b59c512c50aab330b5a0d8efddeffa.zip
external_llvm-a3ca3149f2b59c512c50aab330b5a0d8efddeffa.tar.gz
external_llvm-a3ca3149f2b59c512c50aab330b5a0d8efddeffa.tar.bz2
Add CopyCost to TargetRegisterClass. This specifies the cost of copying a value
between two registers in the specific class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42123 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/MRegisterInfo.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/include/llvm/Target/MRegisterInfo.h b/include/llvm/Target/MRegisterInfo.h
index a4846d8..dab5d20 100644
--- a/include/llvm/Target/MRegisterInfo.h
+++ b/include/llvm/Target/MRegisterInfo.h
@@ -70,6 +70,7 @@ private:
const sc_iterator SubRegClasses;
const sc_iterator SuperRegClasses;
const unsigned RegSize, Alignment; // Size & Alignment of register in bytes
+ const int CopyCost;
const iterator RegsBegin, RegsEnd;
public:
TargetRegisterClass(unsigned id,
@@ -78,10 +79,11 @@ public:
const TargetRegisterClass * const *supcs,
const TargetRegisterClass * const *subregcs,
const TargetRegisterClass * const *superregcs,
- unsigned RS, unsigned Al, iterator RB, iterator RE)
+ unsigned RS, unsigned Al, int CC,
+ iterator RB, iterator RE)
: ID(id), VTs(vts), SubClasses(subcs), SuperClasses(supcs),
SubRegClasses(subregcs), SuperRegClasses(superregcs),
- RegSize(RS), Alignment(Al), RegsBegin(RB), RegsEnd(RE) {}
+ RegSize(RS), Alignment(Al), CopyCost(CC), RegsBegin(RB), RegsEnd(RE) {}
virtual ~TargetRegisterClass() {} // Allow subclasses
/// getID() - Return the register class ID number.
@@ -258,6 +260,10 @@ public:
/// getAlignment - Return the minimum required alignment for a register of
/// this class.
unsigned getAlignment() const { return Alignment; }
+
+ /// getCopyCost - Return the cost of copying a value between two registers in
+ /// this class.
+ int getCopyCost() const { return CopyCost; }
};