applied patch to work with llvm 2.9 from llvm-py r105 ... 84.7KB version seen here: http://code.google.com/p/llvm-py/issues/detail?id=37
This commit is contained in:
parent
ce117b2d77
commit
d5c2806b5d
6 changed files with 952 additions and 904 deletions
24
llvm/_core.c
24
llvm/_core.c
|
|
@ -807,7 +807,7 @@ _wrap_pass( DomViewer )
|
|||
_wrap_pass( EdgeProfiler )
|
||||
_wrap_pass( FunctionAttrs )
|
||||
_wrap_pass( FunctionInlining )
|
||||
_wrap_pass( GEPSplitter )
|
||||
//_wrap_pass( GEPSplitter )
|
||||
_wrap_pass( GlobalDCE )
|
||||
_wrap_pass( GlobalOptimizer )
|
||||
_wrap_pass( GlobalsModRef )
|
||||
|
|
@ -822,11 +822,11 @@ _wrap_pass( JumpThreading )
|
|||
_wrap_pass( LazyValueInfo )
|
||||
_wrap_pass( LCSSA )
|
||||
_wrap_pass( LICM )
|
||||
_wrap_pass( LiveValues )
|
||||
//_wrap_pass( LiveValues )
|
||||
_wrap_pass( LoopDeletion )
|
||||
_wrap_pass( LoopDependenceAnalysis )
|
||||
_wrap_pass( LoopExtractor )
|
||||
_wrap_pass( LoopIndexSplit )
|
||||
//_wrap_pass( LoopIndexSplit )
|
||||
_wrap_pass( LoopRotate )
|
||||
_wrap_pass( LoopSimplify )
|
||||
_wrap_pass( LoopStrengthReduce )
|
||||
|
|
@ -841,7 +841,7 @@ _wrap_pass( NoAA )
|
|||
_wrap_pass( NoProfileInfo )
|
||||
_wrap_pass( OptimalEdgeProfiler )
|
||||
_wrap_pass( PartialInlining )
|
||||
_wrap_pass( PartialSpecialization )
|
||||
//_wrap_pass( PartialSpecialization )
|
||||
_wrap_pass( PostDomOnlyPrinter )
|
||||
_wrap_pass( PostDomOnlyViewer )
|
||||
_wrap_pass( PostDomPrinter )
|
||||
|
|
@ -855,7 +855,7 @@ _wrap_pass( Reassociate )
|
|||
_wrap_pass( ScalarEvolutionAliasAnalysis )
|
||||
_wrap_pass( ScalarReplAggregates )
|
||||
_wrap_pass( SCCP )
|
||||
_wrap_pass( SimplifyHalfPowrLibCalls )
|
||||
//_wrap_pass( SimplifyHalfPowrLibCalls )
|
||||
_wrap_pass( SimplifyLibCalls )
|
||||
_wrap_pass( SingleLoopExtractor )
|
||||
_wrap_pass( StripDeadPrototypes )
|
||||
|
|
@ -1162,7 +1162,7 @@ _wLLVMLoadLibraryPermanently(PyObject *self, PyObject *args)
|
|||
Py_RETURN_NONE;
|
||||
}
|
||||
|
||||
_wrap_obj2obj(LLVMInlineFunction, LLVMValueRef, int)
|
||||
//_wrap_obj2obj(LLVMInlineFunction, LLVMValueRef, int)
|
||||
|
||||
/* Expose the void* inside a PyCObject as a PyLong. This allows us to
|
||||
* use it as a unique ID. */
|
||||
|
|
@ -1569,7 +1569,7 @@ static PyMethodDef core_methods[] = {
|
|||
_pass( EdgeProfiler )
|
||||
_pass( FunctionAttrs )
|
||||
_pass( FunctionInlining )
|
||||
_pass( GEPSplitter )
|
||||
//_pass( GEPSplitter )
|
||||
_pass( GlobalDCE )
|
||||
_pass( GlobalOptimizer )
|
||||
_pass( GlobalsModRef )
|
||||
|
|
@ -1584,11 +1584,11 @@ static PyMethodDef core_methods[] = {
|
|||
_pass( LazyValueInfo )
|
||||
_pass( LCSSA )
|
||||
_pass( LICM )
|
||||
_pass( LiveValues )
|
||||
//_pass( LiveValues )
|
||||
_pass( LoopDeletion )
|
||||
_pass( LoopDependenceAnalysis )
|
||||
_pass( LoopExtractor )
|
||||
_pass( LoopIndexSplit )
|
||||
//_pass( LoopIndexSplit )
|
||||
_pass( LoopRotate )
|
||||
_pass( LoopSimplify )
|
||||
_pass( LoopStrengthReduce )
|
||||
|
|
@ -1603,7 +1603,7 @@ static PyMethodDef core_methods[] = {
|
|||
_pass( NoProfileInfo )
|
||||
_pass( OptimalEdgeProfiler )
|
||||
_pass( PartialInlining )
|
||||
_pass( PartialSpecialization )
|
||||
//_pass( PartialSpecialization )
|
||||
_pass( PostDomOnlyPrinter )
|
||||
_pass( PostDomOnlyViewer )
|
||||
_pass( PostDomPrinter )
|
||||
|
|
@ -1617,7 +1617,7 @@ static PyMethodDef core_methods[] = {
|
|||
_pass( ScalarEvolutionAliasAnalysis )
|
||||
_pass( ScalarReplAggregates )
|
||||
_pass( SCCP )
|
||||
_pass( SimplifyHalfPowrLibCalls )
|
||||
//_pass( SimplifyHalfPowrLibCalls )
|
||||
_pass( SimplifyLibCalls )
|
||||
_pass( SingleLoopExtractor )
|
||||
_pass( StripDeadPrototypes )
|
||||
|
|
@ -1672,7 +1672,7 @@ static PyMethodDef core_methods[] = {
|
|||
/* Misc */
|
||||
_method( LLVMGetIntrinsic )
|
||||
_method( LLVMLoadLibraryPermanently )
|
||||
_method( LLVMInlineFunction )
|
||||
//_method( LLVMInlineFunction )
|
||||
_method( PyCObjectVoidPtrToPyLong )
|
||||
|
||||
{ NULL }
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
42
llvm/core.py
42
llvm/core.py
|
|
@ -51,14 +51,16 @@ TYPE_X86_FP80 = 3
|
|||
TYPE_FP128 = 4
|
||||
TYPE_PPC_FP128 = 5
|
||||
TYPE_LABEL = 6
|
||||
TYPE_INTEGER = 7
|
||||
TYPE_FUNCTION = 8
|
||||
TYPE_STRUCT = 9
|
||||
TYPE_ARRAY = 10
|
||||
TYPE_POINTER = 11
|
||||
TYPE_OPAQUE = 12
|
||||
TYPE_VECTOR = 13
|
||||
TYPE_METADATA = 14
|
||||
TYPE_METADATA = 7
|
||||
TYPE_X86_MMX = 8
|
||||
TYPE_INTEGER = 9
|
||||
TYPE_FUNCTION = 10
|
||||
TYPE_STRUCT = 11
|
||||
TYPE_ARRAY = 12
|
||||
TYPE_POINTER = 13
|
||||
TYPE_OPAQUE = 14
|
||||
TYPE_VECTOR = 15
|
||||
|
||||
|
||||
# value IDs (llvm::Value::ValueTy enum)
|
||||
VALUE_ARGUMENT = 0
|
||||
|
|
@ -140,11 +142,22 @@ OPCODE_EXTRACTVALUE = 53
|
|||
OPCODE_INSERTVALUE = 54
|
||||
|
||||
# calling conventions
|
||||
CC_C = 0
|
||||
CC_FASTCALL = 8
|
||||
CC_COLDCALL = 9
|
||||
CC_X86_STDCALL = 64
|
||||
CC_X86_FASTCALL = 65
|
||||
CC_C = 0
|
||||
CC_FASTCALL = 8
|
||||
CC_COLDCALL = 9
|
||||
CC_GHC = 10
|
||||
CC_X86_STDCALL = 64
|
||||
CC_X86_FASTCALL = 65
|
||||
CC_ARM_APCS = 66
|
||||
CC_ARM_AAPCS = 67
|
||||
CC_ARM_AAPCS_VFP = 68
|
||||
CC_MSP430_INTR = 69
|
||||
CC_X86_THISCALL = 70
|
||||
CC_PTX_KERNEL = 71
|
||||
CC_PTX_DEVICE = 72
|
||||
CC_MBLAZE_INTR = 73
|
||||
CC_MBLAZE_SVOL = 74
|
||||
|
||||
|
||||
# int predicates
|
||||
ICMP_EQ = 32
|
||||
|
|
@ -248,11 +261,14 @@ ATTR_ALWAYS_INLINE = 1<<12
|
|||
ATTR_OPTIMIZE_FOR_SIZE = 1<<13
|
||||
ATTR_STACK_PROTECT = 1<<14
|
||||
ATTR_STACK_PROTECT_REQ = 1<<15
|
||||
ATTR_ALIGNMENT = 1<<16
|
||||
ATTR_NO_CAPTURE = 1<<21
|
||||
ATTR_NO_REDZONE = 1<<22
|
||||
ATTR_NO_IMPLICIT_FLOAT = 1<<23
|
||||
ATTR_NAKED = 1<<24
|
||||
ATTR_INLINE_HINT = 1<<25
|
||||
ATTR_STACK_ALIGNMENT = 7<<26
|
||||
ATTR_HOTPATCH = 1<<29
|
||||
|
||||
# intrinsic IDs
|
||||
from llvm._intrinsic_ids import *
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@
|
|||
#include "llvm/IntrinsicInst.h"
|
||||
#include "llvm/Analysis/Verifier.h"
|
||||
#include "llvm/Assembly/Parser.h"
|
||||
#include "llvm/System/DynamicLibrary.h"
|
||||
#include "llvm/Support/DynamicLibrary.h"
|
||||
#include "llvm/PassManager.h"
|
||||
#include "llvm/ExecutionEngine/ExecutionEngine.h"
|
||||
#include "llvm/Analysis/LoopPass.h"
|
||||
|
|
@ -452,12 +452,19 @@ void *LLVMGetPointerToFunction(LLVMExecutionEngineRef ee, LLVMValueRef fn)
|
|||
return eep->getPointerToFunction(fnp);
|
||||
}
|
||||
|
||||
|
||||
int LLVMInlineFunction(LLVMValueRef call)
|
||||
{
|
||||
llvm::Value *callp = llvm::unwrap(call);
|
||||
assert(callp);
|
||||
|
||||
llvm::CallSite cs = llvm::CallSite::get(callp);
|
||||
// llvm::CallSite cs = llvm::CallSite::get(callp);
|
||||
llvm::CallSite cs;
|
||||
llvm::Instruction *II = llvm::dyn_cast<llvm::Instruction>(callp);
|
||||
if (II->getOpcode() == llvm::Instruction::Call)
|
||||
cs = llvm::CallSite(static_cast<llvm::CallInst*>(II));
|
||||
else if (II->getOpcode() == llvm::Instruction::Invoke)
|
||||
cs = llvm::CallSite(static_cast<llvm::InvokeInst*>(II));
|
||||
|
||||
llvm::InlineFunctionInfo unused;
|
||||
return llvm::InlineFunction(cs, unused);
|
||||
|
|
@ -501,13 +508,13 @@ define_pass( DomOnlyViewer )
|
|||
define_pass( DomPrinter )
|
||||
define_pass( DomViewer )
|
||||
define_pass( EdgeProfiler )
|
||||
define_pass( GEPSplitter )
|
||||
//define_pass( GEPSplitter )
|
||||
define_pass( GlobalsModRef )
|
||||
define_pass( InstCount )
|
||||
define_pass( InstructionNamer )
|
||||
define_pass( LazyValueInfo )
|
||||
define_pass( LCSSA )
|
||||
define_pass( LiveValues )
|
||||
//define_pass( LiveValues )
|
||||
define_pass( LoopDependenceAnalysis )
|
||||
define_pass( LoopExtractor )
|
||||
define_pass( LoopSimplify )
|
||||
|
|
@ -519,7 +526,7 @@ define_pass( NoAA )
|
|||
define_pass( NoProfileInfo )
|
||||
define_pass( OptimalEdgeProfiler )
|
||||
define_pass( PartialInlining )
|
||||
define_pass( PartialSpecialization )
|
||||
//define_pass( PartialSpecialization )
|
||||
define_pass( PostDomOnlyPrinter )
|
||||
define_pass( PostDomOnlyViewer )
|
||||
define_pass( PostDomPrinter )
|
||||
|
|
@ -528,7 +535,7 @@ define_pass( ProfileEstimator )
|
|||
define_pass( ProfileLoader )
|
||||
define_pass( ProfileVerifier )
|
||||
define_pass( ScalarEvolutionAliasAnalysis )
|
||||
define_pass( SimplifyHalfPowrLibCalls )
|
||||
//define_pass( SimplifyHalfPowrLibCalls )
|
||||
define_pass( SingleLoopExtractor )
|
||||
define_pass( StripNonDebugSymbols )
|
||||
define_pass( StructRetPromotion )
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ void *LLVMGetPointerToFunction(LLVMExecutionEngineRef ee, LLVMValueRef fn);
|
|||
/* Wraps llvm::InlineFunction(). Inlines a function. C is the call
|
||||
* instruction, created by LLVMBuildCall. Even if it fails, the Function
|
||||
* containing the call is still in a proper state (not changed). */
|
||||
int LLVMInlineFunction(LLVMValueRef call);
|
||||
//int LLVMInlineFunction(LLVMValueRef call);
|
||||
|
||||
/* Wraps llvm::getAlignmentFromAttrs from Attributes.h. Compliments the
|
||||
* already available LLVMSetParamAlignment(). */
|
||||
|
|
@ -209,13 +209,13 @@ declare_pass( DomOnlyViewer )
|
|||
declare_pass( DomPrinter )
|
||||
declare_pass( DomViewer )
|
||||
declare_pass( EdgeProfiler )
|
||||
declare_pass( GEPSplitter )
|
||||
//declare_pass( GEPSplitter )
|
||||
declare_pass( GlobalsModRef )
|
||||
declare_pass( InstCount )
|
||||
declare_pass( InstructionNamer )
|
||||
declare_pass( LazyValueInfo )
|
||||
declare_pass( LCSSA )
|
||||
declare_pass( LiveValues )
|
||||
//declare_pass( LiveValues )
|
||||
declare_pass( LoopDependenceAnalysis )
|
||||
declare_pass( LoopExtractor )
|
||||
declare_pass( LoopSimplify )
|
||||
|
|
@ -227,7 +227,7 @@ declare_pass( NoAA )
|
|||
declare_pass( NoProfileInfo )
|
||||
declare_pass( OptimalEdgeProfiler )
|
||||
declare_pass( PartialInlining )
|
||||
declare_pass( PartialSpecialization )
|
||||
//declare_pass( PartialSpecialization )
|
||||
declare_pass( PostDomOnlyPrinter )
|
||||
declare_pass( PostDomOnlyViewer )
|
||||
declare_pass( PostDomPrinter )
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ PASS_DOM_VIEWER = 24
|
|||
PASS_EDGE_PROFILER = 25
|
||||
PASS_FUNCTION_ATTRS = 26
|
||||
PASS_FUNCTION_INLINING = 27
|
||||
PASS_GEP_SPLITTER = 28
|
||||
#PASS_GEP_SPLITTER = 28
|
||||
PASS_GLOBAL_DCE = 29
|
||||
PASS_GLOBAL_OPTIMIZER = 30
|
||||
PASS_GLOBALS_MOD_REF = 31
|
||||
|
|
@ -83,11 +83,11 @@ PASS_JUMP_THREADING = 39
|
|||
PASS_LAZY_VALUE_INFO = 40
|
||||
PASS_LCSSA = 41
|
||||
PASS_LICM = 42
|
||||
PASS_LIVE_VALUES = 43
|
||||
#PASS_LIVE_VALUES = 43
|
||||
PASS_LOOP_DELETION = 44
|
||||
PASS_LOOP_DEPENDENCE_ANALYSIS = 45
|
||||
PASS_LOOP_EXTRACTOR = 46
|
||||
PASS_LOOP_INDEX_SPLIT = 47
|
||||
#PASS_LOOP_INDEX_SPLIT = 47
|
||||
PASS_LOOP_ROTATE = 48
|
||||
PASS_LOOP_SIMPLIFY = 49
|
||||
PASS_LOOP_STRENGTH_REDUCE = 50
|
||||
|
|
@ -102,11 +102,11 @@ PASS_NO_AA = 58
|
|||
PASS_NO_PROFILE_INFO = 59
|
||||
PASS_OPTIMAL_EDGE_PROFILER = 60
|
||||
PASS_PARTIAL_INLINING = 61
|
||||
PASS_PARTIAL_SPECIALIZATION = 62
|
||||
PASS_POST_DOM_ONLY_PRINTER = 63
|
||||
PASS_POST_DOM_ONLY_VIEWER = 64
|
||||
PASS_POST_DOM_PRINTER = 65
|
||||
PASS_POST_DOM_VIEWER = 66
|
||||
#PASS_PARTIAL_SPECIALIZATION = 62
|
||||
#PASS_POST_DOM_ONLY_PRINTER = 63
|
||||
#PASS_POST_DOM_ONLY_VIEWER = 64
|
||||
#PASS_POST_DOM_PRINTER = 65
|
||||
#PASS_POST_DOM_VIEWER = 66
|
||||
PASS_PROFILE_ESTIMATOR = 67
|
||||
PASS_PROFILE_LOADER = 68
|
||||
PASS_PROFILE_VERIFIER = 69
|
||||
|
|
@ -116,7 +116,7 @@ PASS_REASSOCIATE = 72
|
|||
PASS_SCALAR_EVOLUTION_ALIAS_ANALYSIS = 73
|
||||
PASS_SCALAR_REPL_AGGREGATES = 74
|
||||
PASS_SCCP = 76
|
||||
PASS_SIMPLIFY_HALF_POWR_LIB_CALLS = 77
|
||||
#PASS_SIMPLIFY_HALF_POWR_LIB_CALLS = 77
|
||||
PASS_SIMPLIFY_LIB_CALLS = 78
|
||||
PASS_SINGLE_LOOP_EXTRACTOR = 79
|
||||
PASS_STRIP_DEAD_PROTOTYPES = 82
|
||||
|
|
@ -161,7 +161,7 @@ _pass_creator = {
|
|||
PASS_EDGE_PROFILER : _core.LLVMAddEdgeProfilerPass,
|
||||
PASS_FUNCTION_ATTRS : _core.LLVMAddFunctionAttrsPass,
|
||||
PASS_FUNCTION_INLINING : _core.LLVMAddFunctionInliningPass,
|
||||
PASS_GEP_SPLITTER : _core.LLVMAddGEPSplitterPass,
|
||||
# PASS_GEP_SPLITTER : _core.LLVMAddGEPSplitterPass,
|
||||
PASS_GLOBAL_DCE : _core.LLVMAddGlobalDCEPass,
|
||||
PASS_GLOBAL_OPTIMIZER : _core.LLVMAddGlobalOptimizerPass,
|
||||
PASS_GLOBALS_MOD_REF : _core.LLVMAddGlobalsModRefPass,
|
||||
|
|
@ -176,11 +176,11 @@ _pass_creator = {
|
|||
PASS_LAZY_VALUE_INFO : _core.LLVMAddLazyValueInfoPass,
|
||||
PASS_LCSSA : _core.LLVMAddLCSSAPass,
|
||||
PASS_LICM : _core.LLVMAddLICMPass,
|
||||
PASS_LIVE_VALUES : _core.LLVMAddLiveValuesPass,
|
||||
# PASS_LIVE_VALUES : _core.LLVMAddLiveValuesPass,
|
||||
PASS_LOOP_DELETION : _core.LLVMAddLoopDeletionPass,
|
||||
PASS_LOOP_DEPENDENCE_ANALYSIS : _core.LLVMAddLoopDependenceAnalysisPass,
|
||||
PASS_LOOP_EXTRACTOR : _core.LLVMAddLoopExtractorPass,
|
||||
PASS_LOOP_INDEX_SPLIT : _core.LLVMAddLoopIndexSplitPass,
|
||||
# PASS_LOOP_INDEX_SPLIT : _core.LLVMAddLoopIndexSplitPass,
|
||||
PASS_LOOP_ROTATE : _core.LLVMAddLoopRotatePass,
|
||||
PASS_LOOP_SIMPLIFY : _core.LLVMAddLoopSimplifyPass,
|
||||
PASS_LOOP_STRENGTH_REDUCE : _core.LLVMAddLoopStrengthReducePass,
|
||||
|
|
@ -195,11 +195,11 @@ _pass_creator = {
|
|||
PASS_NO_PROFILE_INFO : _core.LLVMAddNoProfileInfoPass,
|
||||
PASS_OPTIMAL_EDGE_PROFILER : _core.LLVMAddOptimalEdgeProfilerPass,
|
||||
PASS_PARTIAL_INLINING : _core.LLVMAddPartialInliningPass,
|
||||
PASS_PARTIAL_SPECIALIZATION : _core.LLVMAddPartialSpecializationPass,
|
||||
PASS_POST_DOM_ONLY_PRINTER : _core.LLVMAddPostDomOnlyPrinterPass,
|
||||
PASS_POST_DOM_ONLY_VIEWER : _core.LLVMAddPostDomOnlyViewerPass,
|
||||
PASS_POST_DOM_PRINTER : _core.LLVMAddPostDomPrinterPass,
|
||||
PASS_POST_DOM_VIEWER : _core.LLVMAddPostDomViewerPass,
|
||||
# PASS_PARTIAL_SPECIALIZATION : _core.LLVMAddPartialSpecializationPass,
|
||||
# PASS_POST_DOM_ONLY_PRINTER : _core.LLVMAddPostDomOnlyPrinterPass,
|
||||
# PASS_POST_DOM_ONLY_VIEWER : _core.LLVMAddPostDomOnlyViewerPass,
|
||||
# PASS_POST_DOM_PRINTER : _core.LLVMAddPostDomPrinterPass,
|
||||
# PASS_POST_DOM_VIEWER : _core.LLVMAddPostDomViewerPass,
|
||||
PASS_PROFILE_ESTIMATOR : _core.LLVMAddProfileEstimatorPass,
|
||||
PASS_PROFILE_LOADER : _core.LLVMAddProfileLoaderPass,
|
||||
PASS_PROFILE_VERIFIER : _core.LLVMAddProfileVerifierPass,
|
||||
|
|
@ -209,7 +209,7 @@ _pass_creator = {
|
|||
PASS_SCALAR_EVOLUTION_ALIAS_ANALYSIS : _core.LLVMAddScalarEvolutionAliasAnalysisPass,
|
||||
PASS_SCALAR_REPL_AGGREGATES : _core.LLVMAddScalarReplAggregatesPass,
|
||||
PASS_SCCP : _core.LLVMAddSCCPPass,
|
||||
PASS_SIMPLIFY_HALF_POWR_LIB_CALLS : _core.LLVMAddSimplifyHalfPowrLibCallsPass,
|
||||
# PASS_SIMPLIFY_HALF_POWR_LIB_CALLS : _core.LLVMAddSimplifyHalfPowrLibCallsPass,
|
||||
PASS_SIMPLIFY_LIB_CALLS : _core.LLVMAddSimplifyLibCallsPass,
|
||||
PASS_SINGLE_LOOP_EXTRACTOR : _core.LLVMAddSingleLoopExtractorPass,
|
||||
PASS_STRIP_DEAD_PROTOTYPES : _core.LLVMAddStripDeadPrototypesPass,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue