[pypy-svn] r16024 - in pypy/dist/pypy/translator/llvm2: . module

ericvrp at codespeak.net ericvrp at codespeak.net
Fri Aug 12 22:09:37 CEST 2005


Author: ericvrp
Date: Fri Aug 12 22:09:36 2005
New Revision: 16024

Modified:
   pypy/dist/pypy/translator/llvm2/codewriter.py
   pypy/dist/pypy/translator/llvm2/module/ll_os.py
   pypy/dist/pypy/translator/llvm2/module/support.py
Log:
small fixes and cleanup


Modified: pypy/dist/pypy/translator/llvm2/codewriter.py
==============================================================================
--- pypy/dist/pypy/translator/llvm2/codewriter.py	(original)
+++ pypy/dist/pypy/translator/llvm2/codewriter.py	Fri Aug 12 22:09:36 2005
@@ -93,13 +93,16 @@
     def phi(self, targetvar, type_, refs, blocknames): 
         assert targetvar.startswith('%')
         assert refs and len(refs) == len(blocknames), "phi node requires blocks" 
-        for ref in refs:
-            if targetvar == ref:    #some nodes break SSA-form otherwise?!?
-                return
         mergelist = ", ".join(
             ["[%s, %%%s]" % item 
                 for item in zip(refs, blocknames)])
-        self.indent("%s = phi %s %s" %(targetvar, type_, mergelist))
+        s = "%s = phi %s %s" % (targetvar, type_, mergelist)
+        for ref in refs:
+            if targetvar == ref:
+                self.comment('breaks SSA form: ' + s)
+                break
+        else:
+            self.indent(s)
 
     def binaryop(self, name, targetvar, type_, ref1, ref2):
         self.indent("%s = %s %s %s, %s" % (targetvar, name, type_, ref1, ref2))

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	Fri Aug 12 22:09:36 2005
@@ -73,13 +73,14 @@
 
 extfunctions["%ll_os_fstat"] = ((), """
 internal fastcc %structtype.tuple10* %ll_os_fstat(int %fd) {
-    %st = alloca int, uint 32
-    %error = call ccc int %fstat(int %fd, int* %st)
-    ;TODO XXX if error: raise exception
-    ;%ret = %ll_stat_result__Signed__Signed__Signed__Signed__Signed__Signed__Signed__Signed__Signed__Signed(
-    %ret = alloca %structtype.tuple10   ;ERROR
-    store int %s
-    ret %structtype.tuple10* %ret
+    ;%st = alloca int, uint 32
+    ;%error = call ccc int %fstat(int %fd, int* %st)
+    ;;TODO XXX if error: raise exception
+    ;;%ret = %ll_stat_result__Signed__Signed__Signed__Signed__Signed__Signed__Signed__Signed__Signed__Signed(
+    ;%ret = alloca %structtype.tuple10   ;ERROR
+    ;store int %s
+    ;ret %structtype.tuple10* %ret
+    ret %structtype.tuple10* null
 }
 
 """)

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	Fri Aug 12 22:09:36 2005
@@ -194,7 +194,7 @@
 extfunctions["%int_mod_ovf_zer"] = (("%__prepare_OverflowError","%__prepare_ZeroDivisionError"), """
 internal fastcc int %%int_mod_ovf_zer(int %%x, int %%y) {
     %(int_zer_test)s
-    %%t = rem int %%x, ubyte %%y
+    %%t = rem int %%x, %%y
     %(int_ovf_test)s
 return_block:
     ; XXX: TEST int_mod_ovf_zer checking



More information about the Pypy-commit mailing list