summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Christopher <echristo@gmail.com>2013-04-15 07:31:37 +0000
committerEric Christopher <echristo@gmail.com>2013-04-15 07:31:37 +0000
commit60d20a81fcf91818db6b52520dd2ce520ad57a42 (patch)
tree313569ee431b8ea4e469c2c2aa1e4144ca6577b4
parentfdf9624f3c20a24345a543979e1cb5c94a9d6715 (diff)
downloadllvm-60d20a81fcf91818db6b52520dd2ce520ad57a42.tar.gz
llvm-60d20a81fcf91818db6b52520dd2ce520ad57a42.tar.bz2
llvm-60d20a81fcf91818db6b52520dd2ce520ad57a42.tar.xz
Revert "Recommit r179497 after fixing uninitialized variable." until
I can fix the testcases here: http://lab.llvm.org:8011/builders/clang-native-arm-cortex-a9/builds/6952 This reverts commit r179512 due to testcases specifying triples that they didn't actually mean and causing failures on other platforms. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@179513 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--test/Transforms/SLPVectorizer/X86/reduction.ll3
-rw-r--r--test/Transforms/SLPVectorizer/X86/reduction2.ll3
-rw-r--r--tools/opt/opt.cpp30
3 files changed, 20 insertions, 16 deletions
diff --git a/test/Transforms/SLPVectorizer/X86/reduction.ll b/test/Transforms/SLPVectorizer/X86/reduction.ll
index da65f92a92..70b7c3a0b9 100644
--- a/test/Transforms/SLPVectorizer/X86/reduction.ll
+++ b/test/Transforms/SLPVectorizer/X86/reduction.ll
@@ -1,5 +1,8 @@
; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=i386-apple-macosx10.8.0 -mcpu=corei7-avx | FileCheck %s
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32-S128"
+target triple = "i386-apple-macosx10.8.0"
+
; int foo(double *A, int n, int m) {
; double sum = 0, v1 = 2, v0 = 3;
; for (int i=0; i < n; ++i)
diff --git a/test/Transforms/SLPVectorizer/X86/reduction2.ll b/test/Transforms/SLPVectorizer/X86/reduction2.ll
index 9cce0be6e3..7aa7d7e243 100644
--- a/test/Transforms/SLPVectorizer/X86/reduction2.ll
+++ b/test/Transforms/SLPVectorizer/X86/reduction2.ll
@@ -1,5 +1,8 @@
; RUN: opt < %s -basicaa -slp-vectorizer -dce -S -mtriple=i386-apple-macosx10.8.0 -mcpu=corei7-avx | FileCheck %s
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128-n8:16:32-S128"
+target triple = "i386-apple-macosx10.8.0"
+
;CHECK: @foo
;CHECK: load <2 x double>
;CHECK: ret
diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp
index de8bd41d11..e385d7f577 100644
--- a/tools/opt/opt.cpp
+++ b/tools/opt/opt.cpp
@@ -403,7 +403,7 @@ struct BreakpointPrinter : public ModulePass {
AU.setPreservesAll();
}
};
-
+
} // anonymous namespace
char BreakpointPrinter::ID = 0;
@@ -446,7 +446,7 @@ static void AddOptimizationPasses(PassManagerBase &MPM,FunctionPassManager &FPM,
Builder.DisableUnitAtATime = !UnitAtATime;
Builder.DisableUnrollLoops = OptLevel == 0;
Builder.DisableSimplifyLibCalls = DisableSimplifyLibCalls;
-
+
Builder.populateFunctionPassManager(FPM);
Builder.populateModulePassManager(MPM);
}
@@ -529,8 +529,9 @@ static TargetMachine* GetTargetMachine(Triple TheTriple) {
const Target *TheTarget = TargetRegistry::lookupTarget(MArch, TheTriple,
Error);
// Some modules don't specify a triple, and this is okay.
- if (!TheTarget)
+ if (!TheTarget) {
return 0;
+ }
// Package up features to be passed to target/subtarget
std::string FeaturesStr;
@@ -597,11 +598,8 @@ int main(int argc, char **argv) {
}
// If we are supposed to override the target triple, do so now.
- const DataLayout *TD = 0;
- if (!TargetTriple.empty()) {
+ if (!TargetTriple.empty())
M->setTargetTriple(Triple::normalize(TargetTriple));
- TD = GetTargetMachine(Triple(TargetTriple))->getDataLayout();
- }
// Figure out what stream we are supposed to write to...
OwningPtr<tool_output_file> Out;
@@ -643,16 +641,16 @@ int main(int argc, char **argv) {
TLI->disableAllFunctions();
Passes.add(TLI);
- // If we don't have a data layout by now go ahead and set it if we can.
- if (!TD) {
- const std::string &ModuleDataLayout = M.get()->getDataLayout();
- if (!ModuleDataLayout.empty())
- TD = new DataLayout(ModuleDataLayout);
- else if (!DefaultDataLayout.empty())
- TD = new DataLayout(DefaultDataLayout);
- }
+ // Add an appropriate DataLayout instance for this module.
+ DataLayout *TD = 0;
+ const std::string &ModuleDataLayout = M.get()->getDataLayout();
+ if (!ModuleDataLayout.empty())
+ TD = new DataLayout(ModuleDataLayout);
+ else if (!DefaultDataLayout.empty())
+ TD = new DataLayout(DefaultDataLayout);
+
if (TD)
- Passes.add(new DataLayout(*TD));
+ Passes.add(TD);
Triple ModuleTriple(M->getTargetTriple());
TargetMachine *Machine = 0;