[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