Add PassManagerBuilder.loop_vectorize property

This commit is contained in:
Siu Kwan Lam 2012-12-27 17:58:15 -06:00
commit 10e83f306f
4 changed files with 51 additions and 1 deletions

View file

@ -41,6 +41,7 @@ import llvm.core as core # module, function etc.
import llvm._core as _core # C wrappers
import llvm._util as _util # Utility functions
import warnings
#===----------------------------------------------------------------------===
# Pass manager builder
#===----------------------------------------------------------------------===
@ -89,6 +90,21 @@ class PassManagerBuilder(object):
vectorize = property(_get_vectorize, _set_vectorize)
def _set_loop_vectorize(self, enable):
try:
_core.LLVMPassManagerBuilderSetLoopVectorize(self.ptr,
int(bool(enable)))
except AttributeError:
warnings.warn("Ignored. LLVM-3.1 & prior do not support loop vectorizer.")
def _get_loop_vectorize(self):
try:
return bool(_core.LLVMPassManagerBuilderGetLoopVectorize(self.ptr))
except AttributeError:
return False
loop_vectorize = property(_get_loop_vectorize, _set_loop_vectorize)
def _set_disable_unit_at_a_time(self, disable):
return _core.LLVMPassManagerBuilderSetDisableUnitAtATime(
self.ptr, disable)