diff options
author | Serge Guelton <sguelton@redhat.com> | 2021-03-24 16:45:04 -0400 |
---|---|---|
committer | serge-sans-paille <sguelton@redhat.com> | 2021-04-17 08:17:33 +0200 |
commit | d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1 (patch) | |
tree | abbf039ca49e20d35a9796d4fae72300ac4f5072 /llvm/lib/Target/TargetMachine.cpp | |
parent | bbba69425c6131283163af99201577c296aa3877 (diff) | |
download | llvm-d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1.zip llvm-d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1.tar.gz llvm-d6de1e1a71406c75a4ea4d5a2fe84289f07ea3a1.tar.bz2 |
Normalize interaction with boolean attributes
Such attributes can either be unset, or set to "true" or "false" (as string).
throughout the codebase, this led to inelegant checks ranging from
if (Fn->getFnAttribute("no-jump-tables").getValueAsString() == "true")
to
if (Fn->hasAttribute("no-jump-tables") && Fn->getFnAttribute("no-jump-tables").getValueAsString() == "true")
Introduce a getValueAsBool that normalize the check, with the following
behavior:
no attributes or attribute set to "false" => return false
attribute set to "true" => return true
Differential Revision: https://reviews.llvm.org/D99299
Diffstat (limited to 'llvm/lib/Target/TargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/TargetMachine.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/TargetMachine.cpp b/llvm/lib/Target/TargetMachine.cpp index 2aee0e5..0a655a8 100644 --- a/llvm/lib/Target/TargetMachine.cpp +++ b/llvm/lib/Target/TargetMachine.cpp @@ -56,7 +56,7 @@ bool TargetMachine::isPositionIndependent() const { void TargetMachine::resetTargetOptions(const Function &F) const { #define RESET_OPTION(X, Y) \ do { \ - Options.X = (F.getFnAttribute(Y).getValueAsString() == "true"); \ + Options.X = F.getFnAttribute(Y).getValueAsBool(); \ } while (0) RESET_OPTION(UnsafeFPMath, "unsafe-fp-math"); |