projects
/
oota-llvm.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
c3c52ee
)
Move the subtarget dependent features from the target machine to
author
Eric Christopher
<echristo@gmail.com>
Fri, 27 Jun 2014 01:14:54 +0000
(
01:14
+0000)
committer
Eric Christopher
<echristo@gmail.com>
Fri, 27 Jun 2014 01:14:54 +0000
(
01:14
+0000)
the subtarget for the MSP430 target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@211836
91177308
-0d34-0410-b5e6-
96231b3b80d8
lib/Target/MSP430/MSP430Subtarget.cpp
patch
|
blob
|
history
lib/Target/MSP430/MSP430Subtarget.h
patch
|
blob
|
history
lib/Target/MSP430/MSP430TargetMachine.cpp
patch
|
blob
|
history
lib/Target/MSP430/MSP430TargetMachine.h
patch
|
blob
|
history
diff --git
a/lib/Target/MSP430/MSP430Subtarget.cpp
b/lib/Target/MSP430/MSP430Subtarget.cpp
index 68ad0911aff48d85d6c8bfaa04e5618e165696c7..dbddc5243db040b32b4ec7881adde560b1af227e 100644
(file)
--- a/
lib/Target/MSP430/MSP430Subtarget.cpp
+++ b/
lib/Target/MSP430/MSP430Subtarget.cpp
@@
-25,12
+25,15
@@
using namespace llvm;
void MSP430Subtarget::anchor() { }
void MSP430Subtarget::anchor() { }
-MSP430Subtarget::MSP430Subtarget(const std::string &TT,
- const std::string &CPU,
- const std::string &FS) :
- MSP430GenSubtargetInfo(TT, CPU, FS) {
- std::string CPUName = "generic";
-
- // Parse features string.
- ParseSubtargetFeatures(CPUName, FS);
+MSP430Subtarget &MSP430Subtarget::initializeSubtargetDependencies(StringRef CPU, StringRef FS) {
+ ParseSubtargetFeatures("generic", FS);
+ return *this;
}
}
+
+MSP430Subtarget::MSP430Subtarget(const std::string &TT, const std::string &CPU,
+ const std::string &FS, const TargetMachine &TM)
+ : MSP430GenSubtargetInfo(TT, CPU, FS),
+ // FIXME: Check DataLayout string.
+ DL("e-m:e-p:16:16-i32:16:32-n8:16"), FrameLowering(),
+ InstrInfo(initializeSubtargetDependencies(CPU, FS)), TLInfo(TM),
+ TSInfo(DL) {}
diff --git
a/lib/Target/MSP430/MSP430Subtarget.h
b/lib/Target/MSP430/MSP430Subtarget.h
index 4d8792eede7fc9d53aba436c52211695b3d3d27c..0152ad19dfcdc7fa65f08082e65ec2fd6b2daa4c 100644
(file)
--- a/
lib/Target/MSP430/MSP430Subtarget.h
+++ b/
lib/Target/MSP430/MSP430Subtarget.h
@@
-14,6
+14,12
@@
#ifndef LLVM_TARGET_MSP430_SUBTARGET_H
#define LLVM_TARGET_MSP430_SUBTARGET_H
#ifndef LLVM_TARGET_MSP430_SUBTARGET_H
#define LLVM_TARGET_MSP430_SUBTARGET_H
+#include "MSP430FrameLowering.h"
+#include "MSP430InstrInfo.h"
+#include "MSP430ISelLowering.h"
+#include "MSP430RegisterInfo.h"
+#include "MSP430SelectionDAGInfo.h"
+#include "llvm/IR/DataLayout.h"
#include "llvm/Target/TargetSubtargetInfo.h"
#include <string>
#include "llvm/Target/TargetSubtargetInfo.h"
#include <string>
@@
-26,16
+32,33
@@
class StringRef;
class MSP430Subtarget : public MSP430GenSubtargetInfo {
virtual void anchor();
bool ExtendedInsts;
class MSP430Subtarget : public MSP430GenSubtargetInfo {
virtual void anchor();
bool ExtendedInsts;
+ const DataLayout DL; // Calculates type size & alignment
+ MSP430FrameLowering FrameLowering;
+ MSP430InstrInfo InstrInfo;
+ MSP430TargetLowering TLInfo;
+ MSP430SelectionDAGInfo TSInfo;
+
public:
/// This constructor initializes the data members to match that
/// of the specified triple.
///
MSP430Subtarget(const std::string &TT, const std::string &CPU,
public:
/// This constructor initializes the data members to match that
/// of the specified triple.
///
MSP430Subtarget(const std::string &TT, const std::string &CPU,
- const std::string &FS);
+ const std::string &FS, const TargetMachine &TM);
+
+ MSP430Subtarget &initializeSubtargetDependencies(StringRef CPU, StringRef FS);
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
void ParseSubtargetFeatures(StringRef CPU, StringRef FS);
+
+ const TargetFrameLowering *getFrameLowering() const { return &FrameLowering; }
+ const MSP430InstrInfo *getInstrInfo() const { return &InstrInfo; }
+ const DataLayout *getDataLayout() const { return &DL; }
+ const TargetRegisterInfo *getRegisterInfo() const {
+ return &InstrInfo.getRegisterInfo();
+ }
+ const MSP430TargetLowering *getTargetLowering() const { return &TLInfo; }
+ const MSP430SelectionDAGInfo *getSelectionDAGInfo() const { return &TSInfo; }
};
} // End llvm namespace
};
} // End llvm namespace
diff --git
a/lib/Target/MSP430/MSP430TargetMachine.cpp
b/lib/Target/MSP430/MSP430TargetMachine.cpp
index ab7284e830d21c23288941d95376dc1f7625e2f4..5ca36f2e4e77c65ebb42665d839bdb13f565fc58 100644
(file)
--- a/
lib/Target/MSP430/MSP430TargetMachine.cpp
+++ b/
lib/Target/MSP430/MSP430TargetMachine.cpp
@@
-24,19
+24,13
@@
extern "C" void LLVMInitializeMSP430Target() {
RegisterTargetMachine<MSP430TargetMachine> X(TheMSP430Target);
}
RegisterTargetMachine<MSP430TargetMachine> X(TheMSP430Target);
}
-MSP430TargetMachine::MSP430TargetMachine(const Target &T,
- StringRef TT,
- StringRef CPU,
- StringRef FS,
+MSP430TargetMachine::MSP430TargetMachine(const Target &T, StringRef TT,
+ StringRef CPU, StringRef FS,
const TargetOptions &Options,
Reloc::Model RM, CodeModel::Model CM,
CodeGenOpt::Level OL)
const TargetOptions &Options,
Reloc::Model RM, CodeModel::Model CM,
CodeGenOpt::Level OL)
- : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
- Subtarget(TT, CPU, FS),
- // FIXME: Check DataLayout string.
- DL("e-m:e-p:16:16-i32:16:32-n8:16"),
- InstrInfo(Subtarget), TLInfo(*this), TSInfo(DL),
- FrameLowering() {
+ : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL),
+ Subtarget(TT, CPU, FS, *this) {
initAsmInfo();
}
initAsmInfo();
}
diff --git
a/lib/Target/MSP430/MSP430TargetMachine.h
b/lib/Target/MSP430/MSP430TargetMachine.h
index ea5d4073700b4409a4fff0b853069d532760b592..efa84039ff6b4a119cef82d2dacceebbac624448 100644
(file)
--- a/
lib/Target/MSP430/MSP430TargetMachine.h
+++ b/
lib/Target/MSP430/MSP430TargetMachine.h
@@
-15,13
+15,7
@@
#ifndef LLVM_TARGET_MSP430_TARGETMACHINE_H
#define LLVM_TARGET_MSP430_TARGETMACHINE_H
#ifndef LLVM_TARGET_MSP430_TARGETMACHINE_H
#define LLVM_TARGET_MSP430_TARGETMACHINE_H
-#include "MSP430FrameLowering.h"
-#include "MSP430ISelLowering.h"
-#include "MSP430InstrInfo.h"
-#include "MSP430RegisterInfo.h"
-#include "MSP430SelectionDAGInfo.h"
#include "MSP430Subtarget.h"
#include "MSP430Subtarget.h"
-#include "llvm/IR/DataLayout.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetFrameLowering.h"
#include "llvm/Target/TargetMachine.h"
@@
-31,11
+25,6
@@
namespace llvm {
///
class MSP430TargetMachine : public LLVMTargetMachine {
MSP430Subtarget Subtarget;
///
class MSP430TargetMachine : public LLVMTargetMachine {
MSP430Subtarget Subtarget;
- const DataLayout DL; // Calculates type size & alignment
- MSP430InstrInfo InstrInfo;
- MSP430TargetLowering TLInfo;
- MSP430SelectionDAGInfo TSInfo;
- MSP430FrameLowering FrameLowering;
public:
MSP430TargetMachine(const Target &T, StringRef TT,
public:
MSP430TargetMachine(const Target &T, StringRef TT,
@@
-44,22
+33,25
@@
public:
CodeGenOpt::Level OL);
const TargetFrameLowering *getFrameLowering() const override {
CodeGenOpt::Level OL);
const TargetFrameLowering *getFrameLowering() const override {
- return &FrameLowering;
+ return getSubtargetImpl()->getFrameLowering();
+ }
+ const MSP430InstrInfo *getInstrInfo() const override {
+ return getSubtargetImpl()->getInstrInfo();
+ }
+ const DataLayout *getDataLayout() const override {
+ return getSubtargetImpl()->getDataLayout();
+ }
+ const MSP430Subtarget *getSubtargetImpl() const override {
+ return &Subtarget;
}
}
- const MSP430InstrInfo *getInstrInfo() const override { return &InstrInfo; }
- const DataLayout *getDataLayout() const override { return &DL;}
- const MSP430Subtarget *getSubtargetImpl() const override { return &Subtarget; }
-
const TargetRegisterInfo *getRegisterInfo() const override {
const TargetRegisterInfo *getRegisterInfo() const override {
- return
&InstrInfo.
getRegisterInfo();
+ return
getSubtargetImpl()->
getRegisterInfo();
}
}
-
const MSP430TargetLowering *getTargetLowering() const override {
const MSP430TargetLowering *getTargetLowering() const override {
- return
&TLInfo
;
+ return
getSubtargetImpl()->getTargetLowering()
;
}
}
-
- const MSP430SelectionDAGInfo* getSelectionDAGInfo() const override {
- return &TSInfo;
+ const MSP430SelectionDAGInfo *getSelectionDAGInfo() const override {
+ return getSubtargetImpl()->getSelectionDAGInfo();
}
TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
}; // MSP430TargetMachine.
}
TargetPassConfig *createPassConfig(PassManagerBase &PM) override;
}; // MSP430TargetMachine.