Enabling the target-independent garbage collection infrastructure by hooking it

up to the various compiler pipelines.

This doesn't actually add support for any GC algorithms, which means it 
temporarily breaks a few tests. To be fixed shortly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45669 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Gordon Henriksen
2008-01-07 01:30:38 +00:00
parent 7e40ad5106
commit ce2247755e
7 changed files with 71 additions and 11 deletions

View File

@@ -118,6 +118,10 @@ namespace llvm {
std::string getCurrentFunctionEHName(const MachineFunction *MF);
protected:
/// getAnalysisUsage - Record analysis usage.
///
void getAnalysisUsage(AnalysisUsage &AU) const;
/// doInitialization - Set up the AsmPrinter when we are working on a new
/// module. If your pass overrides this, it must make sure to explicitly
/// call this implementation.

View File

@@ -30,6 +30,7 @@ namespace llvm {
class TargetLowering;
class FunctionLoweringInfo;
class HazardRecognizer;
class CollectorMetadata;
/// SelectionDAGISel - This is the common base class used for SelectionDAG-based
/// pattern-matching instruction selectors.
@@ -42,10 +43,11 @@ public:
AliasAnalysis *AA;
std::vector<SDNode*> TopOrder;
unsigned DAGSize;
CollectorMetadata *GCI;
static char ID;
explicit SelectionDAGISel(TargetLowering &tli) :
FunctionPass((intptr_t)&ID), TLI(tli), DAGSize(0) {}
FunctionPass((intptr_t)&ID), TLI(tli), DAGSize(0), GCI(0) {}
TargetLowering &getTargetLowering() { return TLI; }