Begin to expose Pass class.

This commit is contained in:
Siu Kwan Lam 2012-12-31 18:46:57 -06:00
commit ff92a05858
6 changed files with 182 additions and 259 deletions

View file

@ -1057,97 +1057,11 @@ _wrap_none2none(LLVMInitializePTXAsmPrinter)
/*===----------------------------------------------------------------------===*/
/* Passes */
/*===----------------------------------------------------------------------===*/
/*
#define _wrap_pass(P) \
_wrap_obj2none( LLVMAdd ## P ## Pass, LLVMPassManagerRef)
_wrap_pass( AAEval )
_wrap_pass( AggressiveDCE )
_wrap_pass( AliasAnalysisCounter )
_wrap_pass( AlwaysInliner )
_wrap_pass( ArgumentPromotion )
_wrap_pass( BasicAliasAnalysis )
_wrap_pass( BlockPlacement )
_wrap_pass( BreakCriticalEdges )
_wrap_pass( CFGSimplification )
_wrap_pass( CodeGenPrepare )
_wrap_pass( ConstantMerge )
_wrap_pass( ConstantPropagation )
_wrap_pass( DbgInfoPrinter )
_wrap_pass( DeadArgElimination )
_wrap_pass( DeadCodeElimination )
_wrap_pass( DeadInstElimination )
_wrap_pass( DeadStoreElimination )
_wrap_pass( DemoteRegisterToMemory )
_wrap_pass( DomOnlyPrinter )
_wrap_pass( DomOnlyViewer )
_wrap_pass( DomPrinter )
_wrap_pass( DomViewer )
_wrap_pass( EdgeProfiler )
_wrap_pass( FunctionAttrs )
_wrap_pass( FunctionInlining )
//_wrap_pass( GEPSplitter )
_wrap_pass( GlobalDCE )
_wrap_pass( GlobalOptimizer )
_wrap_pass( GlobalsModRef )
_wrap_pass( GVN )
_wrap_pass( IndVarSimplify )
_wrap_pass( InstCount )
_wrap_pass( InstructionCombining )
_wrap_pass( InstructionNamer )
_wrap_pass( IPConstantPropagation )
_wrap_pass( IPSCCP )
_wrap_pass( JumpThreading )
_wrap_pass( LazyValueInfo )
_wrap_pass( LCSSA )
_wrap_pass( LICM )
//_wrap_pass( LiveValues )
_wrap_pass( LoopDeletion )
_wrap_pass( LoopDependenceAnalysis )
_wrap_pass( LoopExtractor )
//_wrap_pass( LoopIndexSplit )
_wrap_pass( LoopRotate )
_wrap_pass( LoopSimplify )
_wrap_pass( LoopStrengthReduce )
_wrap_pass( LoopUnroll )
_wrap_pass( LoopUnswitch )
_wrap_pass( LowerInvoke )
_wrap_pass( LowerSwitch )
_wrap_pass( MemCpyOpt )
_wrap_pass( MergeFunctions )
_wrap_pass( NoAA )
_wrap_pass( NoProfileInfo )
_wrap_pass( OptimalEdgeProfiler )
_wrap_pass( PartialInlining )
//_wrap_pass( PartialSpecialization )
_wrap_pass( PostDomOnlyPrinter )
_wrap_pass( PostDomOnlyViewer )
_wrap_pass( PostDomPrinter )
_wrap_pass( PostDomViewer )
_wrap_pass( ProfileEstimator )
_wrap_pass( ProfileLoader )
_wrap_pass( ProfileVerifier )
_wrap_pass( PromoteMemoryToRegister )
_wrap_pass( PruneEH )
_wrap_pass( Reassociate )
_wrap_pass( ScalarEvolutionAliasAnalysis )
_wrap_pass( ScalarReplAggregates )
_wrap_pass( SCCP )
//_wrap_pass( SimplifyHalfPowrLibCalls )
_wrap_pass( SimplifyLibCalls )
_wrap_pass( SingleLoopExtractor )
_wrap_pass( StripDeadPrototypes )
_wrap_pass( StripNonDebugSymbols )
_wrap_pass( StripSymbols )
//_wrap_pass( StructRetPromotion )
_wrap_pass( TailCallElimination )
//_wrap_pass( TailDuplication )
_wrap_pass( UnifyFunctionExitNodes )
_wrap_pass( Internalize2 )
*/
_wrap_str2obj(LLVMCreatePassByName, LLVMPassRef)
_wrap_obj2none(LLVMDisposePass, LLVMPassRef)
_wrap_obj2str(LLVMGetPassName, LLVMPassRef)
_wrap_objobj2none(LLVMAddPass, LLVMPassManagerRef, LLVMPassRef)
/*===----------------------------------------------------------------------===*/
/* Target Machine */
@ -2040,94 +1954,6 @@ static PyMethodDef core_methods[] = {
_method( LLVMInitializePTXAsmPrinter )
# endif
#endif
/* Passes */
/*
_pass( AAEval )
_pass( AggressiveDCE )
_pass( AliasAnalysisCounter )
_pass( AlwaysInliner )
_pass( ArgumentPromotion )
_pass( BasicAliasAnalysis )
_pass( BlockPlacement )
_pass( BreakCriticalEdges )
_pass( CFGSimplification )
_pass( CodeGenPrepare )
_pass( ConstantMerge )
_pass( ConstantPropagation )
_pass( DbgInfoPrinter )
_pass( DeadArgElimination )
_pass( DeadCodeElimination )
_pass( DeadInstElimination )
_pass( DeadStoreElimination )
_pass( DemoteRegisterToMemory )
_pass( DomOnlyPrinter )
_pass( DomOnlyViewer )
_pass( DomPrinter )
_pass( DomViewer )
_pass( EdgeProfiler )
_pass( FunctionAttrs )
_pass( FunctionInlining )
//_pass( GEPSplitter )
_pass( GlobalDCE )
_pass( GlobalOptimizer )
_pass( GlobalsModRef )
_pass( GVN )
_pass( IndVarSimplify )
_pass( InstCount )
_pass( InstructionCombining )
_pass( InstructionNamer )
_pass( IPConstantPropagation )
_pass( IPSCCP )
_pass( JumpThreading )
_pass( LazyValueInfo )
_pass( LCSSA )
_pass( LICM )
//_pass( LiveValues )
_pass( LoopDeletion )
_pass( LoopDependenceAnalysis )
_pass( LoopExtractor )
//_pass( LoopIndexSplit )
_pass( LoopRotate )
_pass( LoopSimplify )
_pass( LoopStrengthReduce )
_pass( LoopUnroll )
_pass( LoopUnswitch )
_pass( LowerInvoke )
_pass( LowerSwitch )
_pass( MemCpyOpt )
_pass( MergeFunctions )
_pass( NoAA )
_pass( NoProfileInfo )
_pass( OptimalEdgeProfiler )
_pass( PartialInlining )
//_pass( PartialSpecialization )
_pass( PostDomOnlyPrinter )
_pass( PostDomOnlyViewer )
_pass( PostDomPrinter )
_pass( PostDomViewer )
_pass( ProfileEstimator )
_pass( ProfileLoader )
_pass( ProfileVerifier )
_pass( PromoteMemoryToRegister )
_pass( PruneEH )
_pass( Reassociate )
_pass( ScalarEvolutionAliasAnalysis )
_pass( ScalarReplAggregates )
_pass( SCCP )
//_pass( SimplifyHalfPowrLibCalls )
_pass( SimplifyLibCalls )
_pass( SingleLoopExtractor )
_pass( StripDeadPrototypes )
_pass( StripNonDebugSymbols )
_pass( StripSymbols )
//_pass( StructRetPromotion )
_pass( TailCallElimination )
//_pass( TailDuplication )
_pass( UnifyFunctionExitNodes )
_pass( Internalize2 )
*/
/* Target Machine */
_method( LLVMTargetMachineFromEngineBuilder )
@ -2194,6 +2020,12 @@ static PyMethodDef core_methods[] = {
_method( LLVMGenericValueToPointer )
_method( LLVMDisposeGenericValue )
/* Passes */
_method( LLVMCreatePassByName )
_method( LLVMDisposePass )
_method( LLVMGetPassName )
_method( LLVMAddPass )
/* Misc */
_method( LLVMGetIntrinsic )
_method( LLVMLoadLibraryPermanently )