[pypy-svn] r50020 - in pypy/branch/llvmgcroot/pypy/translator/llvm: . module

arigo at codespeak.net arigo at codespeak.net
Sat Dec 22 22:01:47 CET 2007


Author: arigo
Date: Sat Dec 22 22:01:47 2007
New Revision: 50020

Modified:
   pypy/branch/llvmgcroot/pypy/translator/llvm/module/support.py
   pypy/branch/llvmgcroot/pypy/translator/llvm/opwriter.py
Log:
Bad level of indirection.

For reference, here's how I compile the generated .ll file manually:

    cd /tmp/usession-arigo

    llvm-as < new_entrypoint.ll | opt -std-compile-opts > new_entrypoint.bc

    ~/svn/llvm-trunk/Debug/bin/llc -load=/home/arigo/svn/arigo/hack/pypy-hack/stackrootwalker/gcrootsingle.so new_entrypoint.bc -f -o new_entrypoint.s

    gcc -g -pthread new_entrypoint.s module_cache/module_*.c -I ~/svn/pypy/dist2/pypy/translator/c/



Modified: pypy/branch/llvmgcroot/pypy/translator/llvm/module/support.py
==============================================================================
--- pypy/branch/llvmgcroot/pypy/translator/llvm/module/support.py	(original)
+++ pypy/branch/llvmgcroot/pypy/translator/llvm/module/support.py	Sat Dec 22 22:01:47 2007
@@ -38,7 +38,7 @@
 declare void @llvm.gcroot(i8**, i8*) nounwind
 declare i8* @llvm.frameaddress(i32) nounwind
 
- at __gcmapstart = external constant i8*
- at __gcmapend   = external constant i8*
+ at __gcmapstart = external constant i8
+ at __gcmapend   = external constant i8
 """
 

Modified: pypy/branch/llvmgcroot/pypy/translator/llvm/opwriter.py
==============================================================================
--- pypy/branch/llvmgcroot/pypy/translator/llvm/opwriter.py	(original)
+++ pypy/branch/llvmgcroot/pypy/translator/llvm/opwriter.py	Sat Dec 22 22:01:47 2007
@@ -608,7 +608,7 @@
                              "@llvm.frameaddress", ['i32'], ['0'])
 
     def llvm_gcmapstart(self, opr):
-        self.codewriter.load(opr.retref, opr.rettype, '@__gcmapstart')
+        self.codewriter.cast(opr.retref, 'i8*', '@__gcmapstart', opr.rettype)
 
     def llvm_gcmapend(self, opr):
-        self.codewriter.load(opr.retref, opr.rettype, '@__gcmapend')
+        self.codewriter.cast(opr.retref, 'i8*', '@__gcmapend', opr.rettype)



More information about the Pypy-commit mailing list