[pypy-svn] r39814 - pypy/dist/pypy/translator/llvm
rxe at codespeak.net
rxe at codespeak.net
Sat Mar 3 16:20:38 CET 2007
Author: rxe
Date: Sat Mar 3 16:20:36 2007
New Revision: 39814
Modified:
pypy/dist/pypy/translator/llvm/buildllvm.py
pypy/dist/pypy/translator/llvm/genllvm.py
Log:
(mwh, rxe) start sanitizing build interface
Modified: pypy/dist/pypy/translator/llvm/buildllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/buildllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/buildllvm.py Sat Mar 3 16:20:36 2007
@@ -4,6 +4,7 @@
import py
from pypy.translator.llvm.log import log
+from pypy.translator.llvm.pyxwrapper import write_pyx_wrapper
from pypy.translator.tool import stdoutcapture
from pypy.translator.tool.cbuild import make_c_from_pyxfile
@@ -77,6 +78,18 @@
log.build(cmd)
py.process.cmdexec(cmd)
+
+def build_module(genllvm):
+ # use pyrex to create module for CPython
+ postfix = ''
+ basename = genllvm.filename.purebasename + '_wrapper' + postfix + '.pyx'
+ pyxfile = genllvm.filename.new(basename = basename)
+ write_pyx_wrapper(genllvm, pyxfile)
+ return make_module_from_llvm(genllvm, genllvm.filename, pyxfile=pyxfile)
+
+def build_standalone(genllvm, exename):
+ return make_module_from_llvm(genllvm, genllvm.filename, exe_name=exename)
+
def make_module_from_llvm(genllvm, llvmfile,
pyxfile=None, optimize=True, exe_name=None,
profile=False, cleanup=False, use_gcc=True):
@@ -101,12 +114,12 @@
else: #we generate 1.x .ll files, so upgrade these first
cmds = ["llvm-upgrade < %s.ll | llvm-as | opt %s -f -o %s.bc" % (b, opts, b)]
- object_files = ["-L%s/lib" % distutils.sysconfig.EXEC_PREFIX]
+ object_files = ["-L/sw/lib"]
library_files = genllvm.db.gcpolicy.gc_libraries()
gc_libs = ' '.join(['-l' + lib for lib in library_files])
if sys.platform == 'darwin':
- libdir = distutils.sysconfig.EXEC_PREFIX + "/lib"
+ libdir = '/sw/' + "/lib"
gc_libs_path = '-L%s -ldl' % libdir
else:
gc_libs_path = '-static'
@@ -122,7 +135,7 @@
cmds.append("as %s.s -o %s.o" % (b, b))
if exe_name:
- cmd = "gcc %s.o %s %s -lm -pipe -o %s" % (b, gc_libs_path, gc_libs, exe_name)
+ cmd = "gcc -O3 %s.o %s %s -lm -pipe -o %s" % (b, gc_libs_path, gc_libs, exe_name)
cmds.append(cmd)
object_files.append("%s.o" % b)
else:
Modified: pypy/dist/pypy/translator/llvm/genllvm.py
==============================================================================
--- pypy/dist/pypy/translator/llvm/genllvm.py (original)
+++ pypy/dist/pypy/translator/llvm/genllvm.py Sat Mar 3 16:20:36 2007
@@ -4,7 +4,6 @@
from pypy.translator.llvm import buildllvm
from pypy.translator.llvm.database import Database
-from pypy.translator.llvm.pyxwrapper import write_pyx_wrapper
from pypy.rpython.rmodel import inputconst
from pypy.rpython.typesystem import getfunctionptr
from pypy.rpython.lltypesystem import lltype
@@ -48,6 +47,7 @@
self._checkpoint('done')
codewriter.close()
+
return self.filename
def setup(self, func):
@@ -221,13 +221,8 @@
def compile_module(self):
assert not self.standalone
- # use pyrex to create module for CPython
- postfix = ''
- basename = self.filename.purebasename + '_wrapper' + postfix + '.pyx'
- pyxfile = self.filename.new(basename = basename)
- write_pyx_wrapper(self, pyxfile)
- info = buildllvm.make_module_from_llvm(self, self.filename, pyxfile=pyxfile)
- mod, wrap_fun = self.get_module(*info)
+ modname, dirpath = buildllvm.build_module(self)
+ mod, wrap_fun = self.get_module(modname, dirpath)
return mod, wrap_fun
def get_module(self, modname, dirpath):
@@ -242,8 +237,7 @@
def compile_standalone(self, exe_name):
assert self.standalone
- return buildllvm.make_module_from_llvm(self, self.filename,
- exe_name=exe_name)
+ return buildllvm.build_standalone(self, exe_name)
def _checkpoint(self, msg=None):
if not self.config.translation.llvm.logging:
More information about the Pypy-commit
mailing list