Fix breakage of LLVM 3.1.
Add LLVM version number in llvmpy.
This commit is contained in:
parent
dd32ce56b1
commit
5b6a1d75f8
7 changed files with 50 additions and 8 deletions
|
|
@ -89,10 +89,10 @@ class PassManagerBuilder(llvm.Handle):
|
|||
vectorize = property(_get_vectorize, _set_vectorize)
|
||||
|
||||
def _set_loop_vectorize(self, enable):
|
||||
try:
|
||||
if llvm.version >= (3, 2):
|
||||
_core.LLVMPassManagerBuilderSetLoopVectorize(self.ptr,
|
||||
int(bool(enable)))
|
||||
except AttributeError:
|
||||
else:
|
||||
warnings.warn("Ignored. LLVM-3.1 & prior do not support loop vectorizer.")
|
||||
|
||||
def _get_loop_vectorize(self):
|
||||
|
|
@ -326,9 +326,11 @@ class TargetLibraryInfo(Pass):
|
|||
class TargetTransformInfo(Pass):
|
||||
@staticmethod
|
||||
def new(targetmachine):
|
||||
llvm.require_version_at_least(3, 2)
|
||||
ptr = _core.LLVMCreateTargetTransformInfo(targetmachine.ptr)
|
||||
return TargetTransformInfo(ptr)
|
||||
|
||||
|
||||
#===----------------------------------------------------------------------===
|
||||
# Helpers
|
||||
#===----------------------------------------------------------------------===
|
||||
|
|
@ -365,13 +367,15 @@ def build_pass_managers(tm, opt=2, loop_vectorize=False, vectorize=False,
|
|||
if pm:
|
||||
pm.add(tm.target_data)
|
||||
pm.add(TargetLibraryInfo.new(tm.triple))
|
||||
pm.add(TargetTransformInfo.new(tm))
|
||||
if llvm.version >= (3, 2):
|
||||
pm.add(TargetTransformInfo.new(tm))
|
||||
pmb.populate(pm)
|
||||
|
||||
if fpm:
|
||||
fpm.add(tm.target_data)
|
||||
fpm.add(TargetLibraryInfo.new(tm.triple))
|
||||
fpm.add(TargetTransformInfo.new(tm))
|
||||
if llvm.version >= (3, 2):
|
||||
fpm.add(TargetTransformInfo.new(tm))
|
||||
pmb.populate(fpm)
|
||||
fpm.initialize()
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue