diff options
author | Mehdi Amini <mehdi.amini@apple.com> | 2016-10-09 23:00:34 +0000 |
---|---|---|
committer | Mehdi Amini <mehdi.amini@apple.com> | 2016-10-09 23:00:34 +0000 |
commit | f42454b94b035cd4ad65c8470bb56e761f79b86e (patch) | |
tree | dc8386dc823263161a0fadf2cf1de1227927a2e7 /llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp | |
parent | 69125397170c6ee553725b8bfb562fe38d3ffefe (diff) | |
download | bcm5719-llvm-f42454b94b035cd4ad65c8470bb56e761f79b86e.tar.gz bcm5719-llvm-f42454b94b035cd4ad65c8470bb56e761f79b86e.zip |
Move the global variables representing each Target behind accessor function
This avoids "static initialization order fiasco"
Differential Revision: https://reviews.llvm.org/D25412
llvm-svn: 283702
Diffstat (limited to 'llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp')
-rw-r--r-- | llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp b/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp index ab1c6beee4e..66178acd52b 100644 --- a/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp +++ b/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp @@ -12,15 +12,24 @@ #include "llvm/Support/TargetRegistry.h" using namespace llvm; -Target llvm::TheSparcTarget; -Target llvm::TheSparcV9Target; -Target llvm::TheSparcelTarget; +Target &llvm::getTheSparcTarget() { + static Target TheSparcTarget; + return TheSparcTarget; +} +Target &llvm::getTheSparcV9Target() { + static Target TheSparcV9Target; + return TheSparcV9Target; +} +Target &llvm::getTheSparcelTarget() { + static Target TheSparcelTarget; + return TheSparcelTarget; +} extern "C" void LLVMInitializeSparcTargetInfo() { - RegisterTarget<Triple::sparc, /*HasJIT=*/true> X(TheSparcTarget, "sparc", + RegisterTarget<Triple::sparc, /*HasJIT=*/true> X(getTheSparcTarget(), "sparc", "Sparc"); - RegisterTarget<Triple::sparcv9, /*HasJIT=*/true> Y(TheSparcV9Target, + RegisterTarget<Triple::sparcv9, /*HasJIT=*/true> Y(getTheSparcV9Target(), "sparcv9", "Sparc V9"); - RegisterTarget<Triple::sparcel, /*HasJIT=*/true> Z(TheSparcelTarget, + RegisterTarget<Triple::sparcel, /*HasJIT=*/true> Z(getTheSparcelTarget(), "sparcel", "Sparc LE"); } |