summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Blackfin
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Blackfin')
-rw-r--r--llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp7
-rw-r--r--llvm/lib/Target/Blackfin/BlackfinSubtarget.h5
-rw-r--r--llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp3
-rw-r--r--llvm/lib/Target/Blackfin/BlackfinTargetMachine.h2
4 files changed, 11 insertions, 6 deletions
diff --git a/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp b/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp
index e104c5245a9..50920264515 100644
--- a/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp
+++ b/llvm/lib/Target/Blackfin/BlackfinSubtarget.cpp
@@ -17,6 +17,7 @@
using namespace llvm;
BlackfinSubtarget::BlackfinSubtarget(const std::string &TT,
+ const std::string &CPU,
const std::string &FS)
: sdram(false),
icplb(false),
@@ -30,7 +31,9 @@ BlackfinSubtarget::BlackfinSubtarget(const std::string &TT,
wa_killed_mmr(false),
wa_rets(false)
{
- std::string CPU = "generic";
+ std::string CPUName = CPU;
+ if (CPUName.empty())
+ CPUName = "generic";
// Parse features string.
- ParseSubtargetFeatures(FS, CPU);
+ ParseSubtargetFeatures(FS, CPUName);
}
diff --git a/llvm/lib/Target/Blackfin/BlackfinSubtarget.h b/llvm/lib/Target/Blackfin/BlackfinSubtarget.h
index d667fe26519..a1a09ec4ec9 100644
--- a/llvm/lib/Target/Blackfin/BlackfinSubtarget.h
+++ b/llvm/lib/Target/Blackfin/BlackfinSubtarget.h
@@ -32,11 +32,12 @@ namespace llvm {
bool wa_killed_mmr;
bool wa_rets;
public:
- BlackfinSubtarget(const std::string &TT, const std::string &FS);
+ BlackfinSubtarget(const std::string &TT, const std::string &CPU,
+ const std::string &FS);
/// ParseSubtargetFeatures - Parses features string setting specified
/// subtarget options. Definition of function is auto generated by tblgen.
- std::string ParseSubtargetFeatures(const std::string &FS,
+ void ParseSubtargetFeatures(const std::string &FS,
const std::string &CPU);
};
diff --git a/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp b/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp
index e11920f568a..477c43882f3 100644
--- a/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp
+++ b/llvm/lib/Target/Blackfin/BlackfinTargetMachine.cpp
@@ -26,10 +26,11 @@ extern "C" void LLVMInitializeBlackfinTarget() {
BlackfinTargetMachine::BlackfinTargetMachine(const Target &T,
const std::string &TT,
+ const std::string &CPU,
const std::string &FS)
: LLVMTargetMachine(T, TT),
DataLayout("e-p:32:32-i64:32-f64:32-n32"),
- Subtarget(TT, FS),
+ Subtarget(TT, CPU, FS),
TLInfo(*this),
TSInfo(*this),
InstrInfo(Subtarget),
diff --git a/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h b/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h
index 29b2b177fc3..bd7dc84f04a 100644
--- a/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h
+++ b/llvm/lib/Target/Blackfin/BlackfinTargetMachine.h
@@ -36,7 +36,7 @@ namespace llvm {
BlackfinIntrinsicInfo IntrinsicInfo;
public:
BlackfinTargetMachine(const Target &T, const std::string &TT,
- const std::string &FS);
+ const std::string &CPU, const std::string &FS);
virtual const BlackfinInstrInfo *getInstrInfo() const { return &InstrInfo; }
virtual const TargetFrameLowering *getFrameLowering() const {
OpenPOWER on IntegriCloud