diff options
author | Eric Christopher <echristo@gmail.com> | 2015-05-12 01:26:05 +0000 |
---|---|---|
committer | Eric Christopher <echristo@gmail.com> | 2015-05-12 01:26:05 +0000 |
commit | 824f42f209c4b04d9f43e4b74dd601ced6409ff7 (patch) | |
tree | db1a47b1f504331007c995d19256c06dd4df9a41 /llvm/lib/Target/Mips/MipsTargetMachine.cpp | |
parent | 8b33567189ea25fbdd454d9c4cc75cb2850a821f (diff) | |
download | llvm-824f42f209c4b04d9f43e4b74dd601ced6409ff7.zip llvm-824f42f209c4b04d9f43e4b74dd601ced6409ff7.tar.gz llvm-824f42f209c4b04d9f43e4b74dd601ced6409ff7.tar.bz2 |
Migrate existing backends that care about software floating point
to use the information in the module rather than TargetOptions.
We've had and clang has used the use-soft-float attribute for some
time now so have the backends set a subtarget feature based on
a particular function now that subtargets are created based on
functions and function attributes.
For the one middle end soft float check go ahead and create
an overloadable TargetLowering::useSoftFloat function that
just checks the TargetSubtargetInfo in all cases.
Also remove the command line option that hard codes whether or
not soft-float is set by using the attribute for all of the
target specific test cases - for the generic just go ahead and
add the attribute in the one case that showed up.
llvm-svn: 237079
Diffstat (limited to 'llvm/lib/Target/Mips/MipsTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/MipsTargetMachine.cpp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Target/Mips/MipsTargetMachine.cpp b/llvm/lib/Target/Mips/MipsTargetMachine.cpp index 4d05eb84..b279184 100644 --- a/llvm/lib/Target/Mips/MipsTargetMachine.cpp +++ b/llvm/lib/Target/Mips/MipsTargetMachine.cpp @@ -140,10 +140,9 @@ MipsTargetMachine::getSubtargetImpl(const Function &F) const { // FIXME: This is related to the code below to reset the target options, // we need to know whether or not the soft float flag is set on the // function, so we can enable it as a subtarget feature. - Attribute SFAttr = F.getFnAttribute("use-soft-float"); - bool softFloat = !SFAttr.hasAttribute(Attribute::None) - ? SFAttr.getValueAsString() == "true" - : Options.UseSoftFloat; + bool softFloat = + F.hasFnAttribute("use-soft-float") && + F.getFnAttribute("use-soft-float").getValueAsString() == "true"; if (hasMips16Attr) FS += FS.empty() ? "+mips16" : ",+mips16"; |