diff options
author | David Green <david.green@arm.com> | 2018-12-07 12:10:23 +0000 |
---|---|---|
committer | David Green <david.green@arm.com> | 2018-12-07 12:10:23 +0000 |
commit | ca29c271d2b951b125b7f97264ca7b927db0b1cf (patch) | |
tree | 0c576a9c69d06179da070a855a87d460b62e4003 /llvm/lib/Target/PowerPC | |
parent | 700a29a153039c6176efaf7a3b7c0a274b8aafed (diff) | |
download | bcm5719-llvm-ca29c271d2b951b125b7f97264ca7b927db0b1cf.tar.gz bcm5719-llvm-ca29c271d2b951b125b7f97264ca7b927db0b1cf.zip |
[Targets] Add errors for tiny and kernel codemodel on targets that don't support them
Adds fatal errors for any target that does not support the Tiny or Kernel
codemodels by rejigging the getEffectiveCodeModel calls.
Differential Revision: https://reviews.llvm.org/D50141
llvm-svn: 348585
Diffstat (limited to 'llvm/lib/Target/PowerPC')
-rw-r--r-- | llvm/lib/Target/PowerPC/PPCTargetMachine.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp index 068b4d8f4d2..580d057602f 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -222,11 +222,16 @@ static Reloc::Model getEffectiveRelocModel(const Triple &TT, return Reloc::Static; } -static CodeModel::Model getEffectiveCodeModel(const Triple &TT, - Optional<CodeModel::Model> CM, - bool JIT) { - if (CM) +static CodeModel::Model getEffectivePPCCodeModel(const Triple &TT, + Optional<CodeModel::Model> CM, + bool JIT) { + if (CM) { + if (*CM == CodeModel::Tiny) + report_fatal_error("Target does not support the tiny CodeModel"); + if (*CM == CodeModel::Kernel) + report_fatal_error("Target does not support the kernel CodeModel"); return *CM; + } if (!TT.isOSDarwin() && !JIT && (TT.getArch() == Triple::ppc64 || TT.getArch() == Triple::ppc64le)) return CodeModel::Medium; @@ -246,7 +251,7 @@ PPCTargetMachine::PPCTargetMachine(const Target &T, const Triple &TT, : LLVMTargetMachine(T, getDataLayoutString(TT), TT, CPU, computeFSAdditions(FS, OL, TT), Options, getEffectiveRelocModel(TT, RM), - getEffectiveCodeModel(TT, CM, JIT), OL), + getEffectivePPCCodeModel(TT, CM, JIT), OL), TLOF(createTLOF(getTargetTriple())), TargetABI(computeTargetABI(TT, Options)) { initAsmInfo(); |