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:
AndrewBC 2011-06-05 21:21:18 -05:00
commit d5c2806b5d
6 changed files with 952 additions and 904 deletions

View file

@ -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

View file

@ -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 *

View file

@ -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 )

View file

@ -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 )

View file

@ -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,