summaryrefslogtreecommitdiff
path: root/utils
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 /utils
parentbabbe27007b6b418706d4fe1de3092c8a88fd314 (diff)
downloadllvm-a3ca3149f2b59c512c50aab330b5a0d8efddeffa.tar.gz
llvm-a3ca3149f2b59c512c50aab330b5a0d8efddeffa.tar.bz2
llvm-a3ca3149f2b59c512c50aab330b5a0d8efddeffa.tar.xz
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 'utils')
-rw-r--r--utils/TableGen/CodeGenRegisters.h1
-rw-r--r--utils/TableGen/CodeGenTarget.cpp1
-rw-r--r--utils/TableGen/RegisterInfoEmitter.cpp6
3 files changed, 6 insertions, 2 deletions
diff --git a/utils/TableGen/CodeGenRegisters.h b/utils/TableGen/CodeGenRegisters.h
index cee81e9092..a5636e34f2 100644
--- a/utils/TableGen/CodeGenRegisters.h
+++ b/utils/TableGen/CodeGenRegisters.h
@@ -38,6 +38,7 @@ namespace llvm {
std::vector<MVT::ValueType> VTs;
unsigned SpillSize;
unsigned SpillAlignment;
+ int CopyCost;
std::vector<Record*> SubRegClasses;
std::string MethodProtos, MethodBodies;
diff --git a/utils/TableGen/CodeGenTarget.cpp b/utils/TableGen/CodeGenTarget.cpp
index 1fee306e9f..c73ffb98ef 100644
--- a/utils/TableGen/CodeGenTarget.cpp
+++ b/utils/TableGen/CodeGenTarget.cpp
@@ -221,6 +221,7 @@ CodeGenRegisterClass::CodeGenRegisterClass(Record *R) : TheDef(R) {
Namespace = R->getValueAsString("Namespace");
SpillSize = Size ? Size : MVT::getSizeInBits(VTs[0]);
SpillAlignment = R->getValueAsInt("Alignment");
+ CopyCost = R->getValueAsInt("CopyCost");
MethodBodies = R->getValueAsCode("MethodBodies");
MethodProtos = R->getValueAsCode("MethodProtos");
}
diff --git a/utils/TableGen/RegisterInfoEmitter.cpp b/utils/TableGen/RegisterInfoEmitter.cpp
index 06c575da3a..2f948afa3d 100644
--- a/utils/TableGen/RegisterInfoEmitter.cpp
+++ b/utils/TableGen/RegisterInfoEmitter.cpp
@@ -384,8 +384,10 @@ void RegisterInfoEmitter::run(std::ostream &OS) {
<< RC.getName() + "SubRegClasses" << ", "
<< RC.getName() + "SuperRegClasses" << ", "
<< RC.SpillSize/8 << ", "
- << RC.SpillAlignment/8 << ", " << RC.getName() << ", "
- << RC.getName() << " + " << RC.Elements.size() << ") {}\n";
+ << RC.SpillAlignment/8 << ", "
+ << RC.CopyCost << ", "
+ << RC.getName() << ", " << RC.getName() << " + " << RC.Elements.size()
+ << ") {}\n";
}
OS << "}\n";