From: Daniel Dunbar Date: Mon, 3 Aug 2009 17:34:19 +0000 (+0000) Subject: Provide target data from the module if the target machine doesn't have any. X-Git-Tag: android-x86-6.0-r1~1003^2~17350 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=4e02eb0f67356762eeb12a75f8d4d6f47de955a4;p=android-x86%2Fexternal-llvm.git Provide target data from the module if the target machine doesn't have any. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77973 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/tools/llc/llc.cpp b/tools/llc/llc.cpp index 5782e422457..f5815708223 100644 --- a/tools/llc/llc.cpp +++ b/tools/llc/llc.cpp @@ -310,7 +310,13 @@ int main(int argc, char **argv) { // used by strange things like the C backend. if (Target.WantsWholeFile()) { PassManager PM; - PM.add(new TargetData(*Target.getTargetData())); + + // Add the target data from the target machine, if it exists, or the module. + if (const TargetData *TD = Target.getTargetData()) + PM.add(new TargetData(*TD)); + else + PM.add(new TargetData(&mod)); + if (!NoVerify) PM.add(createVerifierPass()); @@ -328,7 +334,12 @@ int main(int argc, char **argv) { // Build up all of the passes that we want to do to the module. ExistingModuleProvider Provider(M.release()); FunctionPassManager Passes(&Provider); - Passes.add(new TargetData(*Target.getTargetData())); + + // Add the target data from the target machine, if it exists, or the module. + if (const TargetData *TD = Target.getTargetData()) + Passes.add(new TargetData(*TD)); + else + Passes.add(new TargetData(&mod)); #ifndef NDEBUG if (!NoVerify)