mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-15 19:24:33 +00:00
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237079 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -165,6 +165,7 @@ public:
|
||||
|
||||
bool isBigEndian() const { return !IsLittleEndian; }
|
||||
bool isLittleEndian() const { return IsLittleEndian; }
|
||||
virtual bool useSoftFloat() const { return false; }
|
||||
|
||||
/// Return the pointer type for the given address space, defaults to
|
||||
/// the pointer type from the data layout.
|
||||
|
@@ -63,7 +63,7 @@ namespace llvm {
|
||||
: PrintMachineCode(false), NoFramePointerElim(false),
|
||||
LessPreciseFPMADOption(false), UnsafeFPMath(false),
|
||||
NoInfsFPMath(false), NoNaNsFPMath(false),
|
||||
HonorSignDependentRoundingFPMathOption(false), UseSoftFloat(false),
|
||||
HonorSignDependentRoundingFPMathOption(false),
|
||||
NoZerosInBSS(false),
|
||||
GuaranteedTailCallOpt(false),
|
||||
DisableTailCalls(false), StackAlignmentOverride(0),
|
||||
@@ -127,12 +127,6 @@ namespace llvm {
|
||||
unsigned HonorSignDependentRoundingFPMathOption : 1;
|
||||
bool HonorSignDependentRoundingFPMath() const;
|
||||
|
||||
/// UseSoftFloat - This flag is enabled when the -soft-float flag is
|
||||
/// specified on the command line. When this flag is on, the code generator
|
||||
/// will generate libcalls to the software floating point library instead of
|
||||
/// target FP instructions.
|
||||
unsigned UseSoftFloat : 1;
|
||||
|
||||
/// NoZerosInBSS - By default some codegens place zero-initialized data to
|
||||
/// .bss section. This flag disables such behaviour (necessary, e.g. for
|
||||
/// crt*.o compiling).
|
||||
@@ -240,7 +234,6 @@ inline bool operator==(const TargetOptions &LHS,
|
||||
ARE_EQUAL(NoInfsFPMath) &&
|
||||
ARE_EQUAL(NoNaNsFPMath) &&
|
||||
ARE_EQUAL(HonorSignDependentRoundingFPMathOption) &&
|
||||
ARE_EQUAL(UseSoftFloat) &&
|
||||
ARE_EQUAL(NoZerosInBSS) &&
|
||||
ARE_EQUAL(GuaranteedTailCallOpt) &&
|
||||
ARE_EQUAL(DisableTailCalls) &&
|
||||
|
Reference in New Issue
Block a user