diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-09-19 01:35:01 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-09-19 01:35:01 +0000 |
commit | a3ca3149f2b59c512c50aab330b5a0d8efddeffa (patch) | |
tree | faf1320f6091e715c283687ab2a5247ca2e74d46 /utils | |
parent | babbe27007b6b418706d4fe1de3092c8a88fd314 (diff) | |
download | llvm-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.h | 1 | ||||
-rw-r--r-- | utils/TableGen/CodeGenTarget.cpp | 1 | ||||
-rw-r--r-- | utils/TableGen/RegisterInfoEmitter.cpp | 6 |
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"; |