aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-09-04 10:52:59 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-09-04 10:52:59 -0700
commit391fb94d3f3ceb218bb2a7920ad40ac6e7f70529 (patch)
tree466195b13b4f74ffc646c90e0be2ce8614f33f87
parentff8ea20b9b60ef0425c82390314608f31927524e (diff)
fix llvm opts for 3.0
-rw-r--r--tests/runner.py6
-rw-r--r--tools/shared.py9
2 files changed, 10 insertions, 5 deletions
diff --git a/tests/runner.py b/tests/runner.py
index 19e703f1..381bea07 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -79,6 +79,7 @@ class RunnerCore(unittest.TestCase):
if LLVM_OPTS:
shutil.move(filename + '.o', filename + '.o.pre')
output = Popen([LLVM_OPT, filename + '.o.pre'] + LLVM_OPT_OPTS + ['-o=' + filename + '.o'], stdout=PIPE, stderr=STDOUT).communicate()[0]
+ assert os.path.exists(filename + '.o'), 'Failed to run llvm optimizations: ' + output
def do_llvm_dis(self, filename):
# LLVM binary ==> LLVM assembly
@@ -86,8 +87,8 @@ class RunnerCore(unittest.TestCase):
os.remove(filename + '.o.ll')
except:
pass
- Popen([LLVM_DIS, filename + '.o'] + LLVM_DIS_OPTS + ['-o=' + filename + '.o.ll'], stdout=PIPE, stderr=STDOUT).communicate()[0]
- assert os.path.exists(filename + '.o.ll'), 'Could not create .ll file'
+ output = Popen([LLVM_DIS, filename + '.o'] + LLVM_DIS_OPTS + ['-o=' + filename + '.o.ll'], stdout=PIPE, stderr=STDOUT).communicate()[0]
+ assert os.path.exists(filename + '.o.ll'), 'Could not create .ll file: ' + output
def do_llvm_as(self, source, target):
# LLVM assembly ==> LLVM binary
@@ -145,6 +146,7 @@ class RunnerCore(unittest.TestCase):
# C++ => LLVM binary
os.chdir(dirname)
cwd = os.getcwd()
+
for f in [filename] + additional_files:
try:
# Make sure we notice if compilation steps failed
diff --git a/tools/shared.py b/tools/shared.py
index cc466e68..84f50f5e 100644
--- a/tools/shared.py
+++ b/tools/shared.py
@@ -78,7 +78,7 @@ def pick_llvm_opts(optimization_level, optimize_size, allow_nonportable=False, u
if allow_nonportable:
opts.append('-O%d' % optimization_level)
else:
- # createStandardAliasAnalysisPasses
+ # PassManagerBuilder::populateModulePassManager
if allow_nonportable and use_aa: # ammo.js results indicate this can be nonportable
opts.append('-tbaa')
opts.append('-basicaa') # makes fannkuch slow but primes fast
@@ -118,7 +118,8 @@ def pick_llvm_opts(optimization_level, optimize_size, allow_nonportable=False, u
if allow_nonportable: opts.append('-loop-idiom') # ?
opts.append('-loop-deletion')
opts.append('-loop-unroll')
- if allow_nonportable: opts.append('-instcombine')
+
+ ##### not in llvm-3.0. but have | #addExtensionsToPM(EP_LoopOptimizerEnd, MPM);| if allow_nonportable: opts.append('-instcombine')
# XXX Danger: Messes up Lua output for unknown reasons
# Note: this opt is of minor importance for raytrace...
@@ -131,11 +132,13 @@ def pick_llvm_opts(optimization_level, optimize_size, allow_nonportable=False, u
opts.append('-jump-threading')
opts.append('-correlated-propagation')
opts.append('-dse')
+ #addExtensionsToPM(EP_ScalarOptimizerLate, MPM);
+
opts.append('-adce')
opts.append('-simplifycfg')
+ if allow_nonportable: opts.append('-instcombine')
opts.append('-strip-dead-prototypes')
- opts.append('-deadtypeelim')
if optimization_level > 2: opts.append('-globaldce')