diff options
| author | Dan Gohman <gohman@apple.com> | 2010-05-11 17:31:57 +0000 | 
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2010-05-11 17:31:57 +0000 | 
| commit | bb919dfb6bfe6c3f8b119a2341fb647f6d18a150 (patch) | |
| tree | 2247003e684bbd62b468104686e4cee76bc7396f /llvm/lib/Target/CellSPU | |
| parent | 3937e28da01728c12f9f4b6e79b66425e6ab082b (diff) | |
| download | bcm5719-llvm-bb919dfb6bfe6c3f8b119a2341fb647f6d18a150.tar.gz bcm5719-llvm-bb919dfb6bfe6c3f8b119a2341fb647f6d18a150.zip  | |
Implement a bunch more TargetSelectionDAGInfo infrastructure.
Move EmitTargetCodeForMemcpy, EmitTargetCodeForMemset, and
EmitTargetCodeForMemmove out of TargetLowering and into
SelectionDAGInfo to exercise this.
llvm-svn: 103481
Diffstat (limited to 'llvm/lib/Target/CellSPU')
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.cpp | 5 | ||||
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.h | 4 | ||||
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUTargetMachine.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Target/CellSPU/SPUTargetMachine.h | 6 | 
4 files changed, 13 insertions, 3 deletions
diff --git a/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.cpp b/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.cpp index ca2a4bf2199..5732fd43cdc 100644 --- a/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.cpp +++ b/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.cpp @@ -12,10 +12,11 @@  //===----------------------------------------------------------------------===//  #define DEBUG_TYPE "cellspu-selectiondag-info" -#include "SPUSelectionDAGInfo.h" +#include "SPUTargetMachine.h"  using namespace llvm; -SPUSelectionDAGInfo::SPUSelectionDAGInfo() { +SPUSelectionDAGInfo::SPUSelectionDAGInfo(const SPUTargetMachine &TM) +  : TargetSelectionDAGInfo(TM) {  }  SPUSelectionDAGInfo::~SPUSelectionDAGInfo() { diff --git a/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.h b/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.h index 0a6b4c171f1..39257d92c40 100644 --- a/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.h +++ b/llvm/lib/Target/CellSPU/SPUSelectionDAGInfo.h @@ -18,9 +18,11 @@  namespace llvm { +class SPUTargetMachine; +  class SPUSelectionDAGInfo : public TargetSelectionDAGInfo {  public: -  SPUSelectionDAGInfo(); +  explicit SPUSelectionDAGInfo(const SPUTargetMachine &TM);    ~SPUSelectionDAGInfo();  }; diff --git a/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp b/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp index 6500067849d..480ec3f7f88 100644 --- a/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp +++ b/llvm/lib/Target/CellSPU/SPUTargetMachine.cpp @@ -42,6 +42,7 @@ SPUTargetMachine::SPUTargetMachine(const Target &T, const std::string &TT,      InstrInfo(*this),      FrameInfo(*this),      TLInfo(*this), +    TSInfo(*this),      InstrItins(Subtarget.getInstrItineraryData()) {    // For the time being, use static relocations, since there's really no    // support for PIC yet. diff --git a/llvm/lib/Target/CellSPU/SPUTargetMachine.h b/llvm/lib/Target/CellSPU/SPUTargetMachine.h index 37e7cd2b7b3..7e0270159a8 100644 --- a/llvm/lib/Target/CellSPU/SPUTargetMachine.h +++ b/llvm/lib/Target/CellSPU/SPUTargetMachine.h @@ -17,6 +17,7 @@  #include "SPUSubtarget.h"  #include "SPUInstrInfo.h"  #include "SPUISelLowering.h" +#include "SPUSelectionDAGInfo.h"  #include "SPUFrameInfo.h"  #include "llvm/Target/TargetMachine.h"  #include "llvm/Target/TargetData.h" @@ -34,6 +35,7 @@ class SPUTargetMachine : public LLVMTargetMachine {    SPUInstrInfo        InstrInfo;    SPUFrameInfo        FrameInfo;    SPUTargetLowering   TLInfo; +  SPUSelectionDAGInfo TSInfo;    InstrItineraryData  InstrItins;  public:    SPUTargetMachine(const Target &T, const std::string &TT, @@ -61,6 +63,10 @@ public:     return &TLInfo;    } +  virtual const SPUSelectionDAGInfo* getSelectionDAGInfo() const { +    return &TSInfo; +  } +    virtual const SPURegisterInfo *getRegisterInfo() const {      return &InstrInfo.getRegisterInfo();    }  | 

