From 87d50f0566679f5556b6ea8cc01a48cb695bbe95 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 1 Sep 2003 19:56:48 +0000 Subject: [PATCH] No longer include IGNode.h in the Sparc global header git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8292 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/SparcV9/SparcV9RegClassInfo.cpp | 14 ++++++++++++++ lib/Target/SparcV9/SparcV9RegClassInfo.h | 11 +---------- lib/Target/SparcV9/SparcV9RegInfo.cpp | 1 + 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/lib/Target/SparcV9/SparcV9RegClassInfo.cpp b/lib/Target/SparcV9/SparcV9RegClassInfo.cpp index c27c28b33f0..6050cf069d8 100644 --- a/lib/Target/SparcV9/SparcV9RegClassInfo.cpp +++ b/lib/Target/SparcV9/SparcV9RegClassInfo.cpp @@ -8,6 +8,7 @@ #include "SparcInternals.h" #include "llvm/Type.h" #include "../../CodeGen/RegAlloc/RegAllocCommon.h" // FIXME! +#include "llvm/CodeGen/IGNode.h" //----------------------------------------------------------------------------- // Int Register Class - method for coloring a node in the interference graph. @@ -162,6 +163,19 @@ void SparcIntCCRegClass::colorIGNode(IGNode *Node, } +void SparcFloatCCRegClass::colorIGNode(IGNode *Node, + const std::vector &IsColorUsedArr) const { + for(unsigned c = 0; c != 4; ++c) + if (!IsColorUsedArr[c]) { // find unused color + Node->setColor(c); + return; + } + + Node->getParentLR()->markForSpill(); +} + + + //----------------------------------------------------------------------------- // Float Register Class - method for coloring a node in the interference graph. // diff --git a/lib/Target/SparcV9/SparcV9RegClassInfo.h b/lib/Target/SparcV9/SparcV9RegClassInfo.h index af61791b282..30ec42d7642 100644 --- a/lib/Target/SparcV9/SparcV9RegClassInfo.h +++ b/lib/Target/SparcV9/SparcV9RegClassInfo.h @@ -8,7 +8,6 @@ #define SPARC_REG_CLASS_INFO_H #include "llvm/Target/TargetRegInfo.h" -#include "llvm/CodeGen/IGNode.h" //----------------------------------------------------------------------------- // Integer Register Class @@ -175,15 +174,7 @@ struct SparcFloatCCRegClass : public TargetRegClassInfo { : TargetRegClassInfo(ID, 4, 5) { } void colorIGNode(IGNode *Node, - const std::vector &IsColorUsedArr) const { - for(unsigned c = 0; c != 4; ++c) - if (!IsColorUsedArr[c]) { // find unused color - Node->setColor(c); - return; - } - - Node->getParentLR()->markForSpill(); - } + const std::vector &IsColorUsedArr) const; // according to Sparc 64 ABI, all %fp CC regs are volatile // diff --git a/lib/Target/SparcV9/SparcV9RegInfo.cpp b/lib/Target/SparcV9/SparcV9RegInfo.cpp index 6edf1f4c0e4..cd8e1e2860b 100644 --- a/lib/Target/SparcV9/SparcV9RegInfo.cpp +++ b/lib/Target/SparcV9/SparcV9RegInfo.cpp @@ -14,6 +14,7 @@ #include "llvm/CodeGen/MachineCodeForInstruction.h" #include "llvm/CodeGen/MachineInstrAnnot.h" #include "llvm/CodeGen/LiveRangeInfo.h" +#include "llvm/CodeGen/IGNode.h" #include "llvm/iTerminators.h" #include "llvm/iOther.h" #include "llvm/Function.h" -- 2.34.1