[pypy-svn] r16120 - in pypy/dist/pypy/translator/llvm2: . module
ericvrp at codespeak.net
ericvrp at codespeak.net
Wed Aug 17 23:50:55 CEST 2005
Author: ericvrp
Date: Wed Aug 17 23:50:55 2005
New Revision: 16120
Modified:
pypy/dist/pypy/translator/llvm2/build_llvm_module.py
pypy/dist/pypy/translator/llvm2/module/ll_os.py
pypy/dist/pypy/translator/llvm2/module/support.py
Log:
* fixed bug with calling convention mismatch (found by Chris Lattner)
* using another set of optimization options, suggested by Chris Lattner.
Modified: pypy/dist/pypy/translator/llvm2/build_llvm_module.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/build_llvm_module.py (original)
+++ pypy/dist/pypy/translator/llvm2/build_llvm_module.py Wed Aug 17 23:50:55 2005
@@ -132,9 +132,9 @@
# merge dup global constants
"-constmerge",
-
]))
+
# XXX Tmp for debugging
OPTIMIZATION_SWITCHES = (" ".join([
@@ -148,9 +148,15 @@
"-mem2reg",
# clean up disgusting code
- "-simplifycfg", ]))
+ "-simplifycfg",
+ ]))
+# suggested by: gccas /dev/null -o /dev/null -debug-pass=Arguments
+OPTIMIZATION_SWITCHES = (" ".join([
+ "-verify -lowersetjmp -funcresolve -raiseallocs -simplifycfg -mem2reg -globalopt -globaldce -ipconstprop -deadargelim -instcombine -simplifycfg -prune-eh -inline -simplify-libcalls -argpromotion -raise -tailduplicate -simplifycfg -scalarrepl -instcombine -break-crit-edges -condprop -tailcallelim -simplifycfg -reassociate -loopsimplify -licm -instcombine -indvars -loop-unroll -instcombine -load-vn -gcse -sccp -instcombine -break-crit-edges -condprop -dse -mergereturn -adce -simplifycfg -deadtypeelim -constmerge -verify"
+ ]))
+
def compile_module(module, source_files, object_files, library_files):
open("%s_setup.py" % module, "w").write(str(py.code.Source(
'''
Modified: pypy/dist/pypy/translator/llvm2/module/ll_os.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/ll_os.py (original)
+++ pypy/dist/pypy/translator/llvm2/module/ll_os.py Wed Aug 17 23:50:55 2005
@@ -15,6 +15,9 @@
%errno = external global int
+%__print_debug_info = internal global bool false
+%__print_debug_info_option = internal constant [19 x sbyte] c"--print-debug-info\\00"
+
%__ll_os_getcwd = internal constant [12 x sbyte] c"getcwd.....\\00"
%__ll_os_ftruncate = internal constant [12 x sbyte] c"ftruncate..\\00"
%__ll_os_lseek = internal constant [12 x sbyte] c"lseek......\\00"
Modified: pypy/dist/pypy/translator/llvm2/module/support.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/module/support.py (original)
+++ pypy/dist/pypy/translator/llvm2/module/support.py Wed Aug 17 23:50:55 2005
@@ -3,13 +3,21 @@
declare ccc double %fmod(double, double)
declare ccc int %puts(sbyte*)
declare ccc int %strlen(sbyte*)
+declare ccc int %strcmp(sbyte*, sbyte*)
"""
extfunctions = {}
extfunctions["%__debug"] = ((), """
-void %__debug([12 x sbyte]* %msg12) {
+internal fastcc void %__debug([12 x sbyte]* %msg12) {
+ %cond = load bool* %__print_debug_info
+ br bool %__print_debug_info, label %print_it, label %do_nothing
+
+do_nothing:
+ ret void
+
+print_it:
%msg = getelementptr [12 x sbyte]* %msg12, long 0, long 0
call int %puts(sbyte* %msg)
ret void
More information about the Pypy-commit
mailing list