forked from OSchip/llvm-project
[CodeGen] Move Reciprocals option from TargetOptions to CodeGenOptions
Diffrential Revision: https://reviews.llvm.org/D40226 llvm-svn: 318662
This commit is contained in:
parent
f75f4d6573
commit
402b431051
|
@ -54,8 +54,6 @@ public:
|
|||
/// be a list of strings starting with by '+' or '-'.
|
||||
std::vector<std::string> Features;
|
||||
|
||||
std::vector<std::string> Reciprocals;
|
||||
|
||||
/// Supported OpenCL extensions and optional core features.
|
||||
OpenCLOptions SupportedOpenCLOptions;
|
||||
|
||||
|
|
|
@ -251,6 +251,8 @@ public:
|
|||
/// \brief A list of all -fno-builtin-* function names (e.g., memset).
|
||||
std::vector<std::string> NoBuiltinFuncs;
|
||||
|
||||
std::vector<std::string> Reciprocals;
|
||||
|
||||
public:
|
||||
// Define accessors/mutators for code generation options of enumeration type.
|
||||
#define CODEGENOPT(Name, Bits, Default)
|
||||
|
|
|
@ -1739,7 +1739,7 @@ void CodeGenModule::ConstructDefaultFnAttrList(StringRef Name, bool HasOptnone,
|
|||
llvm::toStringRef(CodeGenOpts.CorrectlyRoundedDivSqrt));
|
||||
|
||||
// TODO: Reciprocal estimate codegen options should apply to instructions?
|
||||
std::vector<std::string> &Recips = getTarget().getTargetOpts().Reciprocals;
|
||||
const std::vector<std::string> &Recips = CodeGenOpts.Reciprocals;
|
||||
if (!Recips.empty())
|
||||
FuncAttrs.addAttribute("reciprocal-estimates",
|
||||
llvm::join(Recips, ","));
|
||||
|
|
|
@ -642,6 +642,7 @@ static bool ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, InputKind IK,
|
|||
Opts.FlushDenorm = Args.hasArg(OPT_cl_denorms_are_zero);
|
||||
Opts.CorrectlyRoundedDivSqrt =
|
||||
Args.hasArg(OPT_cl_fp32_correctly_rounded_divide_sqrt);
|
||||
Opts.Reciprocals = Args.getAllArgValues(OPT_mrecip_EQ);
|
||||
Opts.ReciprocalMath = Args.hasArg(OPT_freciprocal_math);
|
||||
Opts.NoTrappingMath = Args.hasArg(OPT_fno_trapping_math);
|
||||
Opts.NoZeroInitializedInBSS = Args.hasArg(OPT_mno_zero_initialized_in_bss);
|
||||
|
@ -2667,7 +2668,6 @@ static void ParseTargetArgs(TargetOptions &Opts, ArgList &Args,
|
|||
Opts.FeaturesAsWritten = Args.getAllArgValues(OPT_target_feature);
|
||||
Opts.LinkerVersion = Args.getLastArgValue(OPT_target_linker_version);
|
||||
Opts.Triple = llvm::Triple::normalize(Args.getLastArgValue(OPT_triple));
|
||||
Opts.Reciprocals = Args.getAllArgValues(OPT_mrecip_EQ);
|
||||
// Use the default target triple if unspecified.
|
||||
if (Opts.Triple.empty())
|
||||
Opts.Triple = llvm::sys::getDefaultTargetTriple();
|
||||
|
|
Loading…
Reference in New Issue