From d51eb76fec21f8d1bc0a598759d8df877beff059 Mon Sep 17 00:00:00 2001 From: "mdevan.foobar@gmail.com" Date: Sat, 24 Jul 2010 18:15:49 +0000 Subject: [PATCH] Updated for LLVM 2.7 (will not work with LLVM 2.6). Work-in-progress. git-svn-id: http://llvm-py.googlecode.com/svn/trunk@86 8d1e9007-1d4e-0410-b67e-1979fd6579aa --- CHANGELOG | 1 + README | 6 +- llvm/_core.c | 152 +++-- llvm/_intrinsic_ids.py | 1241 ++++++++++++++++++++-------------------- llvm/core.py | 233 ++++---- llvm/extra.cpp | 94 +-- llvm/extra.h | 109 ++-- llvm/passes.py | 304 ++++++---- setup.py | 2 +- test/testall.py | 6 +- 10 files changed, 1136 insertions(+), 1012 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index da1f96d..fb85a17 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ 0.6, in progress: + * Migrate to LLVM 2.7. * Migrate to LLVM 2.6 (KS Sreeram) (Issue #25). * Inline function (Corrado Zoccolo). * Get pointer to function (Corrado Zoccolo). diff --git a/README b/README index ad665e8..4c496c1 100644 --- a/README +++ b/README @@ -12,13 +12,13 @@ Home page: Versions: --------- - This package will work only with LLVM 2.6. If you need llvm-py for LLVM - 2.5, use SVN r82 or older. + This package will work only with LLVM 2.7, and Python 2.4 or later, + but not 3.x. Quickstart: ----------- - 1. Get 2.6 version of LLVM, build it. Make sure '--enable-pic' is passed to + 1. Get 2.7 version of LLVM, build it. Make sure '--enable-pic' is passed to LLVM's 'configure'. 2. Get llvm-py from SVN, install it: diff --git a/llvm/_core.c b/llvm/_core.c index a2a39cd..13e088f 100644 --- a/llvm/_core.c +++ b/llvm/_core.c @@ -70,6 +70,7 @@ _wrap_obj2str(LLVMGetTarget, LLVMModuleRef) _wrap_objstr2none(LLVMSetTarget, LLVMModuleRef) _wrap_objstrobj2obj(LLVMAddTypeName, LLVMModuleRef, LLVMTypeRef, int) _wrap_objstr2none(LLVMDeleteTypeName, LLVMModuleRef) +_wrap_objstr2obj(LLVMGetTypeByName, LLVMModuleRef, LLVMTypeRef) _wrap_obj2none(LLVMDumpModule, LLVMModuleRef) _wrap_obj2none(LLVMDisposeModule, LLVMModuleRef) _wrap_dumper(LLVMDumpModuleToString, LLVMModuleRef) @@ -783,69 +784,96 @@ _wrap_obj2none(LLVMDisposePassManager, LLVMPassManagerRef) #define _wrap_pass(P) \ _wrap_obj2none( LLVMAdd ## P ## Pass, LLVMPassManagerRef) +_wrap_pass( AAEval ) +_wrap_pass( ABCD ) _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( CondPropagation ) _wrap_pass( ConstantMerge ) _wrap_pass( ConstantPropagation ) -_wrap_pass( DeadCodeElimination ) +_wrap_pass( DbgInfoPrinter ) _wrap_pass( DeadArgElimination ) -_wrap_pass( DeadTypeElimination ) +_wrap_pass( DeadCodeElimination ) _wrap_pass( DeadInstElimination ) _wrap_pass( DeadStoreElimination ) -/* _wrap_pass( GCSE ): removed in LLVM 2.4. */ +_wrap_pass( DeadTypeElimination ) +_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( GVNPRE ) -_wrap_pass( IndMemRem ) _wrap_pass( IndVarSimplify ) -_wrap_pass( FunctionInlining ) -_wrap_pass( BlockProfiler ) -_wrap_pass( EdgeProfiler ) -_wrap_pass( FunctionProfiler ) -_wrap_pass( NullProfilerRS ) -_wrap_pass( RSProfiling ) +_wrap_pass( InstCount ) _wrap_pass( InstructionCombining ) -_wrap_pass( Internalize ) +_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( SingleLoopExtractor ) _wrap_pass( LoopIndexSplit ) -_wrap_pass( LoopStrengthReduce ) _wrap_pass( LoopRotate ) +_wrap_pass( LoopSimplify ) +_wrap_pass( LoopStrengthReduce ) _wrap_pass( LoopUnroll ) _wrap_pass( LoopUnswitch ) -_wrap_pass( LoopSimplify ) -_wrap_pass( LowerAllocations ) _wrap_pass( LowerInvoke ) _wrap_pass( LowerSetJmp ) _wrap_pass( LowerSwitch ) -_wrap_pass( PromoteMemoryToRegister ) _wrap_pass( MemCpyOpt ) -_wrap_pass( UnifyFunctionExitNodes ) -_wrap_pass( PredicateSimplifier ) +_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( RaiseAllocations ) _wrap_pass( Reassociate ) -_wrap_pass( DemoteRegisterToMemory ) +_wrap_pass( ScalarEvolutionAliasAnalysis ) _wrap_pass( ScalarReplAggregates ) _wrap_pass( SCCP ) +_wrap_pass( SCCVN ) +_wrap_pass( SimplifyHalfPowrLibCalls ) _wrap_pass( SimplifyLibCalls ) -_wrap_pass( CFGSimplification ) -_wrap_pass( StripSymbols ) +_wrap_pass( SingleLoopExtractor ) +_wrap_pass( SSI ) +_wrap_pass( SSIEverything ) _wrap_pass( StripDeadPrototypes ) +_wrap_pass( StripNonDebugSymbols ) +_wrap_pass( StripSymbols ) _wrap_pass( StructRetPromotion ) _wrap_pass( TailCallElimination ) _wrap_pass( TailDuplication ) +_wrap_pass( UnifyFunctionExitNodes ) + +_wrap_pass( Internalize ) /*===----------------------------------------------------------------------===*/ /* Target Data */ @@ -1143,6 +1171,7 @@ static PyMethodDef core_methods[] = { _method( LLVMSetTarget ) _method( LLVMAddTypeName ) _method( LLVMDeleteTypeName ) + _method( LLVMGetTypeByName ) _method( LLVMDumpModule ) _method( LLVMDisposeModule ) _method( LLVMDumpModuleToString ) @@ -1485,69 +1514,96 @@ static PyMethodDef core_methods[] = { _method( LLVMDisposePassManager ) /* Passes */ + _pass( AAEval ) + _pass( ABCD ) _pass( AggressiveDCE ) + _pass( AliasAnalysisCounter ) + _pass( AlwaysInliner ) _pass( ArgumentPromotion ) + _pass( BasicAliasAnalysis ) _pass( BlockPlacement ) _pass( BreakCriticalEdges ) + _pass( CFGSimplification ) _pass( CodeGenPrepare ) - _pass( CondPropagation ) _pass( ConstantMerge ) _pass( ConstantPropagation ) - _pass( DeadCodeElimination ) + _pass( DbgInfoPrinter ) _pass( DeadArgElimination ) - _pass( DeadTypeElimination ) + _pass( DeadCodeElimination ) _pass( DeadInstElimination ) _pass( DeadStoreElimination ) - /* _pass( GCSE ): removed in LLVM 2.4. */ + _pass( DeadTypeElimination ) + _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( GVNPRE ) - _pass( IndMemRem ) _pass( IndVarSimplify ) - _pass( FunctionInlining ) - _pass( BlockProfiler ) - _pass( EdgeProfiler ) - _pass( FunctionProfiler ) - _pass( NullProfilerRS ) - _pass( RSProfiling ) + _pass( InstCount ) _pass( InstructionCombining ) - _pass( Internalize ) + _pass( InstructionNamer ) _pass( IPConstantPropagation ) _pass( IPSCCP ) _pass( JumpThreading ) + _pass( LazyValueInfo ) _pass( LCSSA ) _pass( LICM ) + _pass( LiveValues ) _pass( LoopDeletion ) + _pass( LoopDependenceAnalysis ) _pass( LoopExtractor ) - _pass( SingleLoopExtractor ) _pass( LoopIndexSplit ) - _pass( LoopStrengthReduce ) _pass( LoopRotate ) + _pass( LoopSimplify ) + _pass( LoopStrengthReduce ) _pass( LoopUnroll ) _pass( LoopUnswitch ) - _pass( LoopSimplify ) - _pass( LowerAllocations ) _pass( LowerInvoke ) _pass( LowerSetJmp ) _pass( LowerSwitch ) - _pass( PromoteMemoryToRegister ) _pass( MemCpyOpt ) - _pass( UnifyFunctionExitNodes ) - _pass( PredicateSimplifier ) + _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( RaiseAllocations ) _pass( Reassociate ) - _pass( DemoteRegisterToMemory ) + _pass( ScalarEvolutionAliasAnalysis ) _pass( ScalarReplAggregates ) _pass( SCCP ) + _pass( SCCVN ) + _pass( SimplifyHalfPowrLibCalls ) _pass( SimplifyLibCalls ) - _pass( CFGSimplification ) - _pass( StripSymbols ) + _pass( SingleLoopExtractor ) + _pass( SSI ) + _pass( SSIEverything ) _pass( StripDeadPrototypes ) + _pass( StripNonDebugSymbols ) + _pass( StripSymbols ) _pass( StructRetPromotion ) _pass( TailCallElimination ) _pass( TailDuplication ) + _pass( UnifyFunctionExitNodes ) + + _pass( Internalize ) /* Target Data */ _method( LLVMCreateTargetData ) diff --git a/llvm/_intrinsic_ids.py b/llvm/_intrinsic_ids.py index a16cbfd..1a9c278 100644 --- a/llvm/_intrinsic_ids.py +++ b/llvm/_intrinsic_ids.py @@ -170,624 +170,623 @@ INTR_ATOMIC_LOAD_UMAX = 134 INTR_ATOMIC_LOAD_UMIN = 135 INTR_ATOMIC_LOAD_XOR = 136 INTR_ATOMIC_SWAP = 137 -INTR_BFIN_CSYNC = 138 -INTR_BFIN_IDLE = 139 -INTR_BFIN_SSYNC = 140 -INTR_BSWAP = 141 -INTR_CONVERTFF = 142 -INTR_CONVERTFSI = 143 -INTR_CONVERTFUI = 144 -INTR_CONVERTSIF = 145 -INTR_CONVERTSS = 146 -INTR_CONVERTSU = 147 -INTR_CONVERTUIF = 148 -INTR_CONVERTUS = 149 -INTR_CONVERTUU = 150 -INTR_COS = 151 -INTR_CTLZ = 152 -INTR_CTPOP = 153 -INTR_CTTZ = 154 -INTR_DBG_DECLARE = 155 -INTR_DBG_FUNC_START = 156 -INTR_DBG_REGION_END = 157 -INTR_DBG_REGION_START = 158 -INTR_DBG_STOPPOINT = 159 -INTR_EH_DWARF_CFA = 160 -INTR_EH_EXCEPTION = 161 -INTR_EH_RETURN_I32 = 162 -INTR_EH_RETURN_I64 = 163 -INTR_EH_SELECTOR_I32 = 164 -INTR_EH_SELECTOR_I64 = 165 -INTR_EH_SJLJ_LONGJMP = 166 -INTR_EH_SJLJ_LSDA = 167 -INTR_EH_SJLJ_SETJMP = 168 -INTR_EH_TYPEID_FOR_I32 = 169 -INTR_EH_TYPEID_FOR_I64 = 170 -INTR_EH_UNWIND_INIT = 171 -INTR_EXP = 172 -INTR_EXP2 = 173 -INTR_FLT_ROUNDS = 174 -INTR_FRAMEADDRESS = 175 -INTR_GCREAD = 176 -INTR_GCROOT = 177 -INTR_GCWRITE = 178 -INTR_INIT_TRAMPOLINE = 179 -INTR_LOG = 180 -INTR_LOG10 = 181 -INTR_LOG2 = 182 -INTR_LONGJMP = 183 -INTR_MEMCPY = 184 -INTR_MEMMOVE = 185 -INTR_MEMORY_BARRIER = 186 -INTR_MEMSET = 187 -INTR_PCMARKER = 188 -INTR_POW = 189 -INTR_POWI = 190 -INTR_PPC_ALTIVEC_DSS = 191 -INTR_PPC_ALTIVEC_DSSALL = 192 -INTR_PPC_ALTIVEC_DST = 193 -INTR_PPC_ALTIVEC_DSTST = 194 -INTR_PPC_ALTIVEC_DSTSTT = 195 -INTR_PPC_ALTIVEC_DSTT = 196 -INTR_PPC_ALTIVEC_LVEBX = 197 -INTR_PPC_ALTIVEC_LVEHX = 198 -INTR_PPC_ALTIVEC_LVEWX = 199 -INTR_PPC_ALTIVEC_LVSL = 200 -INTR_PPC_ALTIVEC_LVSR = 201 -INTR_PPC_ALTIVEC_LVX = 202 -INTR_PPC_ALTIVEC_LVXL = 203 -INTR_PPC_ALTIVEC_MFVSCR = 204 -INTR_PPC_ALTIVEC_MTVSCR = 205 -INTR_PPC_ALTIVEC_STVEBX = 206 -INTR_PPC_ALTIVEC_STVEHX = 207 -INTR_PPC_ALTIVEC_STVEWX = 208 -INTR_PPC_ALTIVEC_STVX = 209 -INTR_PPC_ALTIVEC_STVXL = 210 -INTR_PPC_ALTIVEC_VADDCUW = 211 -INTR_PPC_ALTIVEC_VADDSBS = 212 -INTR_PPC_ALTIVEC_VADDSHS = 213 -INTR_PPC_ALTIVEC_VADDSWS = 214 -INTR_PPC_ALTIVEC_VADDUBS = 215 -INTR_PPC_ALTIVEC_VADDUHS = 216 -INTR_PPC_ALTIVEC_VADDUWS = 217 -INTR_PPC_ALTIVEC_VAVGSB = 218 -INTR_PPC_ALTIVEC_VAVGSH = 219 -INTR_PPC_ALTIVEC_VAVGSW = 220 -INTR_PPC_ALTIVEC_VAVGUB = 221 -INTR_PPC_ALTIVEC_VAVGUH = 222 -INTR_PPC_ALTIVEC_VAVGUW = 223 -INTR_PPC_ALTIVEC_VCFSX = 224 -INTR_PPC_ALTIVEC_VCFUX = 225 -INTR_PPC_ALTIVEC_VCMPBFP = 226 -INTR_PPC_ALTIVEC_VCMPBFP_P = 227 -INTR_PPC_ALTIVEC_VCMPEQFP = 228 -INTR_PPC_ALTIVEC_VCMPEQFP_P = 229 -INTR_PPC_ALTIVEC_VCMPEQUB = 230 -INTR_PPC_ALTIVEC_VCMPEQUB_P = 231 -INTR_PPC_ALTIVEC_VCMPEQUH = 232 -INTR_PPC_ALTIVEC_VCMPEQUH_P = 233 -INTR_PPC_ALTIVEC_VCMPEQUW = 234 -INTR_PPC_ALTIVEC_VCMPEQUW_P = 235 -INTR_PPC_ALTIVEC_VCMPGEFP = 236 -INTR_PPC_ALTIVEC_VCMPGEFP_P = 237 -INTR_PPC_ALTIVEC_VCMPGTFP = 238 -INTR_PPC_ALTIVEC_VCMPGTFP_P = 239 -INTR_PPC_ALTIVEC_VCMPGTSB = 240 -INTR_PPC_ALTIVEC_VCMPGTSB_P = 241 -INTR_PPC_ALTIVEC_VCMPGTSH = 242 -INTR_PPC_ALTIVEC_VCMPGTSH_P = 243 -INTR_PPC_ALTIVEC_VCMPGTSW = 244 -INTR_PPC_ALTIVEC_VCMPGTSW_P = 245 -INTR_PPC_ALTIVEC_VCMPGTUB = 246 -INTR_PPC_ALTIVEC_VCMPGTUB_P = 247 -INTR_PPC_ALTIVEC_VCMPGTUH = 248 -INTR_PPC_ALTIVEC_VCMPGTUH_P = 249 -INTR_PPC_ALTIVEC_VCMPGTUW = 250 -INTR_PPC_ALTIVEC_VCMPGTUW_P = 251 -INTR_PPC_ALTIVEC_VCTSXS = 252 -INTR_PPC_ALTIVEC_VCTUXS = 253 -INTR_PPC_ALTIVEC_VEXPTEFP = 254 -INTR_PPC_ALTIVEC_VLOGEFP = 255 -INTR_PPC_ALTIVEC_VMADDFP = 256 -INTR_PPC_ALTIVEC_VMAXFP = 257 -INTR_PPC_ALTIVEC_VMAXSB = 258 -INTR_PPC_ALTIVEC_VMAXSH = 259 -INTR_PPC_ALTIVEC_VMAXSW = 260 -INTR_PPC_ALTIVEC_VMAXUB = 261 -INTR_PPC_ALTIVEC_VMAXUH = 262 -INTR_PPC_ALTIVEC_VMAXUW = 263 -INTR_PPC_ALTIVEC_VMHADDSHS = 264 -INTR_PPC_ALTIVEC_VMHRADDSHS = 265 -INTR_PPC_ALTIVEC_VMINFP = 266 -INTR_PPC_ALTIVEC_VMINSB = 267 -INTR_PPC_ALTIVEC_VMINSH = 268 -INTR_PPC_ALTIVEC_VMINSW = 269 -INTR_PPC_ALTIVEC_VMINUB = 270 -INTR_PPC_ALTIVEC_VMINUH = 271 -INTR_PPC_ALTIVEC_VMINUW = 272 -INTR_PPC_ALTIVEC_VMLADDUHM = 273 -INTR_PPC_ALTIVEC_VMSUMMBM = 274 -INTR_PPC_ALTIVEC_VMSUMSHM = 275 -INTR_PPC_ALTIVEC_VMSUMSHS = 276 -INTR_PPC_ALTIVEC_VMSUMUBM = 277 -INTR_PPC_ALTIVEC_VMSUMUHM = 278 -INTR_PPC_ALTIVEC_VMSUMUHS = 279 -INTR_PPC_ALTIVEC_VMULESB = 280 -INTR_PPC_ALTIVEC_VMULESH = 281 -INTR_PPC_ALTIVEC_VMULEUB = 282 -INTR_PPC_ALTIVEC_VMULEUH = 283 -INTR_PPC_ALTIVEC_VMULOSB = 284 -INTR_PPC_ALTIVEC_VMULOSH = 285 -INTR_PPC_ALTIVEC_VMULOUB = 286 -INTR_PPC_ALTIVEC_VMULOUH = 287 -INTR_PPC_ALTIVEC_VNMSUBFP = 288 -INTR_PPC_ALTIVEC_VPERM = 289 -INTR_PPC_ALTIVEC_VPKPX = 290 -INTR_PPC_ALTIVEC_VPKSHSS = 291 -INTR_PPC_ALTIVEC_VPKSHUS = 292 -INTR_PPC_ALTIVEC_VPKSWSS = 293 -INTR_PPC_ALTIVEC_VPKSWUS = 294 -INTR_PPC_ALTIVEC_VPKUHUS = 295 -INTR_PPC_ALTIVEC_VPKUWUS = 296 -INTR_PPC_ALTIVEC_VREFP = 297 -INTR_PPC_ALTIVEC_VRFIM = 298 -INTR_PPC_ALTIVEC_VRFIN = 299 -INTR_PPC_ALTIVEC_VRFIP = 300 -INTR_PPC_ALTIVEC_VRFIZ = 301 -INTR_PPC_ALTIVEC_VRLB = 302 -INTR_PPC_ALTIVEC_VRLH = 303 -INTR_PPC_ALTIVEC_VRLW = 304 -INTR_PPC_ALTIVEC_VRSQRTEFP = 305 -INTR_PPC_ALTIVEC_VSEL = 306 -INTR_PPC_ALTIVEC_VSL = 307 -INTR_PPC_ALTIVEC_VSLB = 308 -INTR_PPC_ALTIVEC_VSLH = 309 -INTR_PPC_ALTIVEC_VSLO = 310 -INTR_PPC_ALTIVEC_VSLW = 311 -INTR_PPC_ALTIVEC_VSR = 312 -INTR_PPC_ALTIVEC_VSRAB = 313 -INTR_PPC_ALTIVEC_VSRAH = 314 -INTR_PPC_ALTIVEC_VSRAW = 315 -INTR_PPC_ALTIVEC_VSRB = 316 -INTR_PPC_ALTIVEC_VSRH = 317 -INTR_PPC_ALTIVEC_VSRO = 318 -INTR_PPC_ALTIVEC_VSRW = 319 -INTR_PPC_ALTIVEC_VSUBCUW = 320 -INTR_PPC_ALTIVEC_VSUBSBS = 321 -INTR_PPC_ALTIVEC_VSUBSHS = 322 -INTR_PPC_ALTIVEC_VSUBSWS = 323 -INTR_PPC_ALTIVEC_VSUBUBS = 324 -INTR_PPC_ALTIVEC_VSUBUHS = 325 -INTR_PPC_ALTIVEC_VSUBUWS = 326 -INTR_PPC_ALTIVEC_VSUM2SWS = 327 -INTR_PPC_ALTIVEC_VSUM4SBS = 328 -INTR_PPC_ALTIVEC_VSUM4SHS = 329 -INTR_PPC_ALTIVEC_VSUM4UBS = 330 -INTR_PPC_ALTIVEC_VSUMSWS = 331 -INTR_PPC_ALTIVEC_VUPKHPX = 332 -INTR_PPC_ALTIVEC_VUPKHSB = 333 -INTR_PPC_ALTIVEC_VUPKHSH = 334 -INTR_PPC_ALTIVEC_VUPKLPX = 335 -INTR_PPC_ALTIVEC_VUPKLSB = 336 -INTR_PPC_ALTIVEC_VUPKLSH = 337 -INTR_PPC_DCBA = 338 -INTR_PPC_DCBF = 339 -INTR_PPC_DCBI = 340 -INTR_PPC_DCBST = 341 -INTR_PPC_DCBT = 342 -INTR_PPC_DCBTST = 343 -INTR_PPC_DCBZ = 344 -INTR_PPC_DCBZL = 345 -INTR_PPC_SYNC = 346 -INTR_PREFETCH = 347 -INTR_PTR_ANNOTATION = 348 -INTR_READCYCLECOUNTER = 349 -INTR_RETURNADDRESS = 350 -INTR_SADD_WITH_OVERFLOW = 351 -INTR_SETJMP = 352 -INTR_SIGLONGJMP = 353 -INTR_SIGSETJMP = 354 -INTR_SIN = 355 -INTR_SMUL_WITH_OVERFLOW = 356 -INTR_SPU_SI_A = 357 -INTR_SPU_SI_ADDX = 358 -INTR_SPU_SI_AH = 359 -INTR_SPU_SI_AHI = 360 -INTR_SPU_SI_AI = 361 -INTR_SPU_SI_AND = 362 -INTR_SPU_SI_ANDBI = 363 -INTR_SPU_SI_ANDC = 364 -INTR_SPU_SI_ANDHI = 365 -INTR_SPU_SI_ANDI = 366 -INTR_SPU_SI_BG = 367 -INTR_SPU_SI_BGX = 368 -INTR_SPU_SI_CEQ = 369 -INTR_SPU_SI_CEQB = 370 -INTR_SPU_SI_CEQBI = 371 -INTR_SPU_SI_CEQH = 372 -INTR_SPU_SI_CEQHI = 373 -INTR_SPU_SI_CEQI = 374 -INTR_SPU_SI_CG = 375 -INTR_SPU_SI_CGT = 376 -INTR_SPU_SI_CGTB = 377 -INTR_SPU_SI_CGTBI = 378 -INTR_SPU_SI_CGTH = 379 -INTR_SPU_SI_CGTHI = 380 -INTR_SPU_SI_CGTI = 381 -INTR_SPU_SI_CGX = 382 -INTR_SPU_SI_CLGT = 383 -INTR_SPU_SI_CLGTB = 384 -INTR_SPU_SI_CLGTBI = 385 -INTR_SPU_SI_CLGTH = 386 -INTR_SPU_SI_CLGTHI = 387 -INTR_SPU_SI_CLGTI = 388 -INTR_SPU_SI_DFA = 389 -INTR_SPU_SI_DFM = 390 -INTR_SPU_SI_DFMA = 391 -INTR_SPU_SI_DFMS = 392 -INTR_SPU_SI_DFNMA = 393 -INTR_SPU_SI_DFNMS = 394 -INTR_SPU_SI_DFS = 395 -INTR_SPU_SI_FA = 396 -INTR_SPU_SI_FCEQ = 397 -INTR_SPU_SI_FCGT = 398 -INTR_SPU_SI_FCMEQ = 399 -INTR_SPU_SI_FCMGT = 400 -INTR_SPU_SI_FM = 401 -INTR_SPU_SI_FMA = 402 -INTR_SPU_SI_FMS = 403 -INTR_SPU_SI_FNMS = 404 -INTR_SPU_SI_FS = 405 -INTR_SPU_SI_FSMBI = 406 -INTR_SPU_SI_MPY = 407 -INTR_SPU_SI_MPYA = 408 -INTR_SPU_SI_MPYH = 409 -INTR_SPU_SI_MPYHH = 410 -INTR_SPU_SI_MPYHHA = 411 -INTR_SPU_SI_MPYHHAU = 412 -INTR_SPU_SI_MPYHHU = 413 -INTR_SPU_SI_MPYI = 414 -INTR_SPU_SI_MPYS = 415 -INTR_SPU_SI_MPYU = 416 -INTR_SPU_SI_MPYUI = 417 -INTR_SPU_SI_NAND = 418 -INTR_SPU_SI_NOR = 419 -INTR_SPU_SI_OR = 420 -INTR_SPU_SI_ORBI = 421 -INTR_SPU_SI_ORC = 422 -INTR_SPU_SI_ORHI = 423 -INTR_SPU_SI_ORI = 424 -INTR_SPU_SI_SF = 425 -INTR_SPU_SI_SFH = 426 -INTR_SPU_SI_SFHI = 427 -INTR_SPU_SI_SFI = 428 -INTR_SPU_SI_SFX = 429 -INTR_SPU_SI_SHLI = 430 -INTR_SPU_SI_SHLQBI = 431 -INTR_SPU_SI_SHLQBII = 432 -INTR_SPU_SI_SHLQBY = 433 -INTR_SPU_SI_SHLQBYI = 434 -INTR_SPU_SI_XOR = 435 -INTR_SPU_SI_XORBI = 436 -INTR_SPU_SI_XORHI = 437 -INTR_SPU_SI_XORI = 438 -INTR_SQRT = 439 -INTR_SSUB_WITH_OVERFLOW = 440 -INTR_STACKPROTECTOR = 441 -INTR_STACKRESTORE = 442 -INTR_STACKSAVE = 443 -INTR_TRAP = 444 -INTR_UADD_WITH_OVERFLOW = 445 -INTR_UMUL_WITH_OVERFLOW = 446 -INTR_USUB_WITH_OVERFLOW = 447 -INTR_VACOPY = 448 -INTR_VAEND = 449 -INTR_VAR_ANNOTATION = 450 -INTR_VASTART = 451 -INTR_X86_MMX_EMMS = 452 -INTR_X86_MMX_FEMMS = 453 -INTR_X86_MMX_MASKMOVQ = 454 -INTR_X86_MMX_MOVNT_DQ = 455 -INTR_X86_MMX_PACKSSDW = 456 -INTR_X86_MMX_PACKSSWB = 457 -INTR_X86_MMX_PACKUSWB = 458 -INTR_X86_MMX_PADDS_B = 459 -INTR_X86_MMX_PADDS_W = 460 -INTR_X86_MMX_PADDUS_B = 461 -INTR_X86_MMX_PADDUS_W = 462 -INTR_X86_MMX_PAVG_B = 463 -INTR_X86_MMX_PAVG_W = 464 -INTR_X86_MMX_PCMPEQ_B = 465 -INTR_X86_MMX_PCMPEQ_D = 466 -INTR_X86_MMX_PCMPEQ_W = 467 -INTR_X86_MMX_PCMPGT_B = 468 -INTR_X86_MMX_PCMPGT_D = 469 -INTR_X86_MMX_PCMPGT_W = 470 -INTR_X86_MMX_PMADD_WD = 471 -INTR_X86_MMX_PMAXS_W = 472 -INTR_X86_MMX_PMAXU_B = 473 -INTR_X86_MMX_PMINS_W = 474 -INTR_X86_MMX_PMINU_B = 475 -INTR_X86_MMX_PMOVMSKB = 476 -INTR_X86_MMX_PMULH_W = 477 -INTR_X86_MMX_PMULHU_W = 478 -INTR_X86_MMX_PMULU_DQ = 479 -INTR_X86_MMX_PSAD_BW = 480 -INTR_X86_MMX_PSLL_D = 481 -INTR_X86_MMX_PSLL_Q = 482 -INTR_X86_MMX_PSLL_W = 483 -INTR_X86_MMX_PSLLI_D = 484 -INTR_X86_MMX_PSLLI_Q = 485 -INTR_X86_MMX_PSLLI_W = 486 -INTR_X86_MMX_PSRA_D = 487 -INTR_X86_MMX_PSRA_W = 488 -INTR_X86_MMX_PSRAI_D = 489 -INTR_X86_MMX_PSRAI_W = 490 -INTR_X86_MMX_PSRL_D = 491 -INTR_X86_MMX_PSRL_Q = 492 -INTR_X86_MMX_PSRL_W = 493 -INTR_X86_MMX_PSRLI_D = 494 -INTR_X86_MMX_PSRLI_Q = 495 -INTR_X86_MMX_PSRLI_W = 496 -INTR_X86_MMX_PSUBS_B = 497 -INTR_X86_MMX_PSUBS_W = 498 -INTR_X86_MMX_PSUBUS_B = 499 -INTR_X86_MMX_PSUBUS_W = 500 -INTR_X86_SSE2_ADD_SD = 501 -INTR_X86_SSE2_CLFLUSH = 502 -INTR_X86_SSE2_CMP_PD = 503 -INTR_X86_SSE2_CMP_SD = 504 -INTR_X86_SSE2_COMIEQ_SD = 505 -INTR_X86_SSE2_COMIGE_SD = 506 -INTR_X86_SSE2_COMIGT_SD = 507 -INTR_X86_SSE2_COMILE_SD = 508 -INTR_X86_SSE2_COMILT_SD = 509 -INTR_X86_SSE2_COMINEQ_SD = 510 -INTR_X86_SSE2_CVTDQ2PD = 511 -INTR_X86_SSE2_CVTDQ2PS = 512 -INTR_X86_SSE2_CVTPD2DQ = 513 -INTR_X86_SSE2_CVTPD2PS = 514 -INTR_X86_SSE2_CVTPS2DQ = 515 -INTR_X86_SSE2_CVTPS2PD = 516 -INTR_X86_SSE2_CVTSD2SI = 517 -INTR_X86_SSE2_CVTSD2SI64 = 518 -INTR_X86_SSE2_CVTSD2SS = 519 -INTR_X86_SSE2_CVTSI2SD = 520 -INTR_X86_SSE2_CVTSI642SD = 521 -INTR_X86_SSE2_CVTSS2SD = 522 -INTR_X86_SSE2_CVTTPD2DQ = 523 -INTR_X86_SSE2_CVTTPS2DQ = 524 -INTR_X86_SSE2_CVTTSD2SI = 525 -INTR_X86_SSE2_CVTTSD2SI64 = 526 -INTR_X86_SSE2_DIV_SD = 527 -INTR_X86_SSE2_LFENCE = 528 -INTR_X86_SSE2_LOADU_DQ = 529 -INTR_X86_SSE2_LOADU_PD = 530 -INTR_X86_SSE2_MASKMOV_DQU = 531 -INTR_X86_SSE2_MAX_PD = 532 -INTR_X86_SSE2_MAX_SD = 533 -INTR_X86_SSE2_MFENCE = 534 -INTR_X86_SSE2_MIN_PD = 535 -INTR_X86_SSE2_MIN_SD = 536 -INTR_X86_SSE2_MOVMSK_PD = 537 -INTR_X86_SSE2_MOVNT_DQ = 538 -INTR_X86_SSE2_MOVNT_I = 539 -INTR_X86_SSE2_MOVNT_PD = 540 -INTR_X86_SSE2_MUL_SD = 541 -INTR_X86_SSE2_PACKSSDW_128 = 542 -INTR_X86_SSE2_PACKSSWB_128 = 543 -INTR_X86_SSE2_PACKUSWB_128 = 544 -INTR_X86_SSE2_PADDS_B = 545 -INTR_X86_SSE2_PADDS_W = 546 -INTR_X86_SSE2_PADDUS_B = 547 -INTR_X86_SSE2_PADDUS_W = 548 -INTR_X86_SSE2_PAVG_B = 549 -INTR_X86_SSE2_PAVG_W = 550 -INTR_X86_SSE2_PCMPEQ_B = 551 -INTR_X86_SSE2_PCMPEQ_D = 552 -INTR_X86_SSE2_PCMPEQ_W = 553 -INTR_X86_SSE2_PCMPGT_B = 554 -INTR_X86_SSE2_PCMPGT_D = 555 -INTR_X86_SSE2_PCMPGT_W = 556 -INTR_X86_SSE2_PMADD_WD = 557 -INTR_X86_SSE2_PMAXS_W = 558 -INTR_X86_SSE2_PMAXU_B = 559 -INTR_X86_SSE2_PMINS_W = 560 -INTR_X86_SSE2_PMINU_B = 561 -INTR_X86_SSE2_PMOVMSKB_128 = 562 -INTR_X86_SSE2_PMULH_W = 563 -INTR_X86_SSE2_PMULHU_W = 564 -INTR_X86_SSE2_PMULU_DQ = 565 -INTR_X86_SSE2_PSAD_BW = 566 -INTR_X86_SSE2_PSLL_D = 567 -INTR_X86_SSE2_PSLL_DQ = 568 -INTR_X86_SSE2_PSLL_DQ_BS = 569 -INTR_X86_SSE2_PSLL_Q = 570 -INTR_X86_SSE2_PSLL_W = 571 -INTR_X86_SSE2_PSLLI_D = 572 -INTR_X86_SSE2_PSLLI_Q = 573 -INTR_X86_SSE2_PSLLI_W = 574 -INTR_X86_SSE2_PSRA_D = 575 -INTR_X86_SSE2_PSRA_W = 576 -INTR_X86_SSE2_PSRAI_D = 577 -INTR_X86_SSE2_PSRAI_W = 578 -INTR_X86_SSE2_PSRL_D = 579 -INTR_X86_SSE2_PSRL_DQ = 580 -INTR_X86_SSE2_PSRL_DQ_BS = 581 -INTR_X86_SSE2_PSRL_Q = 582 -INTR_X86_SSE2_PSRL_W = 583 -INTR_X86_SSE2_PSRLI_D = 584 -INTR_X86_SSE2_PSRLI_Q = 585 -INTR_X86_SSE2_PSRLI_W = 586 -INTR_X86_SSE2_PSUBS_B = 587 -INTR_X86_SSE2_PSUBS_W = 588 -INTR_X86_SSE2_PSUBUS_B = 589 -INTR_X86_SSE2_PSUBUS_W = 590 -INTR_X86_SSE2_SQRT_PD = 591 -INTR_X86_SSE2_SQRT_SD = 592 -INTR_X86_SSE2_STOREL_DQ = 593 -INTR_X86_SSE2_STOREU_DQ = 594 -INTR_X86_SSE2_STOREU_PD = 595 -INTR_X86_SSE2_SUB_SD = 596 -INTR_X86_SSE2_UCOMIEQ_SD = 597 -INTR_X86_SSE2_UCOMIGE_SD = 598 -INTR_X86_SSE2_UCOMIGT_SD = 599 -INTR_X86_SSE2_UCOMILE_SD = 600 -INTR_X86_SSE2_UCOMILT_SD = 601 -INTR_X86_SSE2_UCOMINEQ_SD = 602 -INTR_X86_SSE3_ADDSUB_PD = 603 -INTR_X86_SSE3_ADDSUB_PS = 604 -INTR_X86_SSE3_HADD_PD = 605 -INTR_X86_SSE3_HADD_PS = 606 -INTR_X86_SSE3_HSUB_PD = 607 -INTR_X86_SSE3_HSUB_PS = 608 -INTR_X86_SSE3_LDU_DQ = 609 -INTR_X86_SSE3_MONITOR = 610 -INTR_X86_SSE3_MWAIT = 611 -INTR_X86_SSE41_BLENDPD = 612 -INTR_X86_SSE41_BLENDPS = 613 -INTR_X86_SSE41_BLENDVPD = 614 -INTR_X86_SSE41_BLENDVPS = 615 -INTR_X86_SSE41_DPPD = 616 -INTR_X86_SSE41_DPPS = 617 -INTR_X86_SSE41_EXTRACTPS = 618 -INTR_X86_SSE41_INSERTPS = 619 -INTR_X86_SSE41_MOVNTDQA = 620 -INTR_X86_SSE41_MPSADBW = 621 -INTR_X86_SSE41_PACKUSDW = 622 -INTR_X86_SSE41_PBLENDVB = 623 -INTR_X86_SSE41_PBLENDW = 624 -INTR_X86_SSE41_PCMPEQQ = 625 -INTR_X86_SSE41_PEXTRB = 626 -INTR_X86_SSE41_PEXTRD = 627 -INTR_X86_SSE41_PEXTRQ = 628 -INTR_X86_SSE41_PHMINPOSUW = 629 -INTR_X86_SSE41_PMAXSB = 630 -INTR_X86_SSE41_PMAXSD = 631 -INTR_X86_SSE41_PMAXUD = 632 -INTR_X86_SSE41_PMAXUW = 633 -INTR_X86_SSE41_PMINSB = 634 -INTR_X86_SSE41_PMINSD = 635 -INTR_X86_SSE41_PMINUD = 636 -INTR_X86_SSE41_PMINUW = 637 -INTR_X86_SSE41_PMOVSXBD = 638 -INTR_X86_SSE41_PMOVSXBQ = 639 -INTR_X86_SSE41_PMOVSXBW = 640 -INTR_X86_SSE41_PMOVSXDQ = 641 -INTR_X86_SSE41_PMOVSXWD = 642 -INTR_X86_SSE41_PMOVSXWQ = 643 -INTR_X86_SSE41_PMOVZXBD = 644 -INTR_X86_SSE41_PMOVZXBQ = 645 -INTR_X86_SSE41_PMOVZXBW = 646 -INTR_X86_SSE41_PMOVZXDQ = 647 -INTR_X86_SSE41_PMOVZXWD = 648 -INTR_X86_SSE41_PMOVZXWQ = 649 -INTR_X86_SSE41_PMULDQ = 650 -INTR_X86_SSE41_PMULLD = 651 -INTR_X86_SSE41_PTESTC = 652 -INTR_X86_SSE41_PTESTNZC = 653 -INTR_X86_SSE41_PTESTZ = 654 -INTR_X86_SSE41_ROUND_PD = 655 -INTR_X86_SSE41_ROUND_PS = 656 -INTR_X86_SSE41_ROUND_SD = 657 -INTR_X86_SSE41_ROUND_SS = 658 -INTR_X86_SSE42_CRC32_16 = 659 -INTR_X86_SSE42_CRC32_32 = 660 -INTR_X86_SSE42_CRC32_64 = 661 -INTR_X86_SSE42_CRC32_8 = 662 -INTR_X86_SSE42_PCMPESTRI128 = 663 -INTR_X86_SSE42_PCMPESTRIA128 = 664 -INTR_X86_SSE42_PCMPESTRIC128 = 665 -INTR_X86_SSE42_PCMPESTRIO128 = 666 -INTR_X86_SSE42_PCMPESTRIS128 = 667 -INTR_X86_SSE42_PCMPESTRIZ128 = 668 -INTR_X86_SSE42_PCMPESTRM128 = 669 -INTR_X86_SSE42_PCMPGTQ = 670 -INTR_X86_SSE42_PCMPISTRI128 = 671 -INTR_X86_SSE42_PCMPISTRIA128 = 672 -INTR_X86_SSE42_PCMPISTRIC128 = 673 -INTR_X86_SSE42_PCMPISTRIO128 = 674 -INTR_X86_SSE42_PCMPISTRIS128 = 675 -INTR_X86_SSE42_PCMPISTRIZ128 = 676 -INTR_X86_SSE42_PCMPISTRM128 = 677 -INTR_X86_SSE_ADD_SS = 678 -INTR_X86_SSE_CMP_PS = 679 -INTR_X86_SSE_CMP_SS = 680 -INTR_X86_SSE_COMIEQ_SS = 681 -INTR_X86_SSE_COMIGE_SS = 682 -INTR_X86_SSE_COMIGT_SS = 683 -INTR_X86_SSE_COMILE_SS = 684 -INTR_X86_SSE_COMILT_SS = 685 -INTR_X86_SSE_COMINEQ_SS = 686 -INTR_X86_SSE_CVTPD2PI = 687 -INTR_X86_SSE_CVTPI2PD = 688 -INTR_X86_SSE_CVTPI2PS = 689 -INTR_X86_SSE_CVTPS2PI = 690 -INTR_X86_SSE_CVTSI2SS = 691 -INTR_X86_SSE_CVTSI642SS = 692 -INTR_X86_SSE_CVTSS2SI = 693 -INTR_X86_SSE_CVTSS2SI64 = 694 -INTR_X86_SSE_CVTTPD2PI = 695 -INTR_X86_SSE_CVTTPS2PI = 696 -INTR_X86_SSE_CVTTSS2SI = 697 -INTR_X86_SSE_CVTTSS2SI64 = 698 -INTR_X86_SSE_DIV_SS = 699 -INTR_X86_SSE_LDMXCSR = 700 -INTR_X86_SSE_LOADU_PS = 701 -INTR_X86_SSE_MAX_PS = 702 -INTR_X86_SSE_MAX_SS = 703 -INTR_X86_SSE_MIN_PS = 704 -INTR_X86_SSE_MIN_SS = 705 -INTR_X86_SSE_MOVMSK_PS = 706 -INTR_X86_SSE_MOVNT_PS = 707 -INTR_X86_SSE_MUL_SS = 708 -INTR_X86_SSE_RCP_PS = 709 -INTR_X86_SSE_RCP_SS = 710 -INTR_X86_SSE_RSQRT_PS = 711 -INTR_X86_SSE_RSQRT_SS = 712 -INTR_X86_SSE_SFENCE = 713 -INTR_X86_SSE_SQRT_PS = 714 -INTR_X86_SSE_SQRT_SS = 715 -INTR_X86_SSE_STMXCSR = 716 -INTR_X86_SSE_STOREU_PS = 717 -INTR_X86_SSE_SUB_SS = 718 -INTR_X86_SSE_UCOMIEQ_SS = 719 -INTR_X86_SSE_UCOMIGE_SS = 720 -INTR_X86_SSE_UCOMIGT_SS = 721 -INTR_X86_SSE_UCOMILE_SS = 722 -INTR_X86_SSE_UCOMILT_SS = 723 -INTR_X86_SSE_UCOMINEQ_SS = 724 -INTR_X86_SSSE3_PABS_B = 725 -INTR_X86_SSSE3_PABS_B_128 = 726 -INTR_X86_SSSE3_PABS_D = 727 -INTR_X86_SSSE3_PABS_D_128 = 728 -INTR_X86_SSSE3_PABS_W = 729 -INTR_X86_SSSE3_PABS_W_128 = 730 -INTR_X86_SSSE3_PALIGN_R = 731 -INTR_X86_SSSE3_PALIGN_R_128 = 732 -INTR_X86_SSSE3_PHADD_D = 733 -INTR_X86_SSSE3_PHADD_D_128 = 734 -INTR_X86_SSSE3_PHADD_SW = 735 -INTR_X86_SSSE3_PHADD_SW_128 = 736 -INTR_X86_SSSE3_PHADD_W = 737 -INTR_X86_SSSE3_PHADD_W_128 = 738 -INTR_X86_SSSE3_PHSUB_D = 739 -INTR_X86_SSSE3_PHSUB_D_128 = 740 -INTR_X86_SSSE3_PHSUB_SW = 741 -INTR_X86_SSSE3_PHSUB_SW_128 = 742 -INTR_X86_SSSE3_PHSUB_W = 743 -INTR_X86_SSSE3_PHSUB_W_128 = 744 -INTR_X86_SSSE3_PMADD_UB_SW = 745 -INTR_X86_SSSE3_PMADD_UB_SW_128 = 746 -INTR_X86_SSSE3_PMUL_HR_SW = 747 -INTR_X86_SSSE3_PMUL_HR_SW_128 = 748 -INTR_X86_SSSE3_PSHUF_B = 749 -INTR_X86_SSSE3_PSHUF_B_128 = 750 -INTR_X86_SSSE3_PSIGN_B = 751 -INTR_X86_SSSE3_PSIGN_B_128 = 752 -INTR_X86_SSSE3_PSIGN_D = 753 -INTR_X86_SSSE3_PSIGN_D_128 = 754 -INTR_X86_SSSE3_PSIGN_W = 755 -INTR_X86_SSSE3_PSIGN_W_128 = 756 -INTR_XCORE_BITREV = 757 -INTR_XCORE_GETID = 758 +INTR_BSWAP = 138 +INTR_CONVERTFF = 139 +INTR_CONVERTFSI = 140 +INTR_CONVERTFUI = 141 +INTR_CONVERTSIF = 142 +INTR_CONVERTSS = 143 +INTR_CONVERTSU = 144 +INTR_CONVERTUIF = 145 +INTR_CONVERTUS = 146 +INTR_CONVERTUU = 147 +INTR_COS = 148 +INTR_CTLZ = 149 +INTR_CTPOP = 150 +INTR_CTTZ = 151 +INTR_DBG_DECLARE = 152 +INTR_DBG_VALUE = 153 +INTR_EH_DWARF_CFA = 154 +INTR_EH_EXCEPTION = 155 +INTR_EH_RETURN_I32 = 156 +INTR_EH_RETURN_I64 = 157 +INTR_EH_SELECTOR = 158 +INTR_EH_SJLJ_CALLSITE = 159 +INTR_EH_SJLJ_LONGJMP = 160 +INTR_EH_SJLJ_LSDA = 161 +INTR_EH_SJLJ_SETJMP = 162 +INTR_EH_TYPEID_FOR = 163 +INTR_EH_UNWIND_INIT = 164 +INTR_EXP = 165 +INTR_EXP2 = 166 +INTR_FLT_ROUNDS = 167 +INTR_FRAMEADDRESS = 168 +INTR_GCREAD = 169 +INTR_GCROOT = 170 +INTR_GCWRITE = 171 +INTR_INIT_TRAMPOLINE = 172 +INTR_INVARIANT_END = 173 +INTR_INVARIANT_START = 174 +INTR_LIFETIME_END = 175 +INTR_LIFETIME_START = 176 +INTR_LOG = 177 +INTR_LOG10 = 178 +INTR_LOG2 = 179 +INTR_LONGJMP = 180 +INTR_MEMCPY = 181 +INTR_MEMMOVE = 182 +INTR_MEMORY_BARRIER = 183 +INTR_MEMSET = 184 +INTR_OBJECTSIZE = 185 +INTR_PCMARKER = 186 +INTR_POW = 187 +INTR_POWI = 188 +INTR_PPC_ALTIVEC_DSS = 189 +INTR_PPC_ALTIVEC_DSSALL = 190 +INTR_PPC_ALTIVEC_DST = 191 +INTR_PPC_ALTIVEC_DSTST = 192 +INTR_PPC_ALTIVEC_DSTSTT = 193 +INTR_PPC_ALTIVEC_DSTT = 194 +INTR_PPC_ALTIVEC_LVEBX = 195 +INTR_PPC_ALTIVEC_LVEHX = 196 +INTR_PPC_ALTIVEC_LVEWX = 197 +INTR_PPC_ALTIVEC_LVSL = 198 +INTR_PPC_ALTIVEC_LVSR = 199 +INTR_PPC_ALTIVEC_LVX = 200 +INTR_PPC_ALTIVEC_LVXL = 201 +INTR_PPC_ALTIVEC_MFVSCR = 202 +INTR_PPC_ALTIVEC_MTVSCR = 203 +INTR_PPC_ALTIVEC_STVEBX = 204 +INTR_PPC_ALTIVEC_STVEHX = 205 +INTR_PPC_ALTIVEC_STVEWX = 206 +INTR_PPC_ALTIVEC_STVX = 207 +INTR_PPC_ALTIVEC_STVXL = 208 +INTR_PPC_ALTIVEC_VADDCUW = 209 +INTR_PPC_ALTIVEC_VADDSBS = 210 +INTR_PPC_ALTIVEC_VADDSHS = 211 +INTR_PPC_ALTIVEC_VADDSWS = 212 +INTR_PPC_ALTIVEC_VADDUBS = 213 +INTR_PPC_ALTIVEC_VADDUHS = 214 +INTR_PPC_ALTIVEC_VADDUWS = 215 +INTR_PPC_ALTIVEC_VAVGSB = 216 +INTR_PPC_ALTIVEC_VAVGSH = 217 +INTR_PPC_ALTIVEC_VAVGSW = 218 +INTR_PPC_ALTIVEC_VAVGUB = 219 +INTR_PPC_ALTIVEC_VAVGUH = 220 +INTR_PPC_ALTIVEC_VAVGUW = 221 +INTR_PPC_ALTIVEC_VCFSX = 222 +INTR_PPC_ALTIVEC_VCFUX = 223 +INTR_PPC_ALTIVEC_VCMPBFP = 224 +INTR_PPC_ALTIVEC_VCMPBFP_P = 225 +INTR_PPC_ALTIVEC_VCMPEQFP = 226 +INTR_PPC_ALTIVEC_VCMPEQFP_P = 227 +INTR_PPC_ALTIVEC_VCMPEQUB = 228 +INTR_PPC_ALTIVEC_VCMPEQUB_P = 229 +INTR_PPC_ALTIVEC_VCMPEQUH = 230 +INTR_PPC_ALTIVEC_VCMPEQUH_P = 231 +INTR_PPC_ALTIVEC_VCMPEQUW = 232 +INTR_PPC_ALTIVEC_VCMPEQUW_P = 233 +INTR_PPC_ALTIVEC_VCMPGEFP = 234 +INTR_PPC_ALTIVEC_VCMPGEFP_P = 235 +INTR_PPC_ALTIVEC_VCMPGTFP = 236 +INTR_PPC_ALTIVEC_VCMPGTFP_P = 237 +INTR_PPC_ALTIVEC_VCMPGTSB = 238 +INTR_PPC_ALTIVEC_VCMPGTSB_P = 239 +INTR_PPC_ALTIVEC_VCMPGTSH = 240 +INTR_PPC_ALTIVEC_VCMPGTSH_P = 241 +INTR_PPC_ALTIVEC_VCMPGTSW = 242 +INTR_PPC_ALTIVEC_VCMPGTSW_P = 243 +INTR_PPC_ALTIVEC_VCMPGTUB = 244 +INTR_PPC_ALTIVEC_VCMPGTUB_P = 245 +INTR_PPC_ALTIVEC_VCMPGTUH = 246 +INTR_PPC_ALTIVEC_VCMPGTUH_P = 247 +INTR_PPC_ALTIVEC_VCMPGTUW = 248 +INTR_PPC_ALTIVEC_VCMPGTUW_P = 249 +INTR_PPC_ALTIVEC_VCTSXS = 250 +INTR_PPC_ALTIVEC_VCTUXS = 251 +INTR_PPC_ALTIVEC_VEXPTEFP = 252 +INTR_PPC_ALTIVEC_VLOGEFP = 253 +INTR_PPC_ALTIVEC_VMADDFP = 254 +INTR_PPC_ALTIVEC_VMAXFP = 255 +INTR_PPC_ALTIVEC_VMAXSB = 256 +INTR_PPC_ALTIVEC_VMAXSH = 257 +INTR_PPC_ALTIVEC_VMAXSW = 258 +INTR_PPC_ALTIVEC_VMAXUB = 259 +INTR_PPC_ALTIVEC_VMAXUH = 260 +INTR_PPC_ALTIVEC_VMAXUW = 261 +INTR_PPC_ALTIVEC_VMHADDSHS = 262 +INTR_PPC_ALTIVEC_VMHRADDSHS = 263 +INTR_PPC_ALTIVEC_VMINFP = 264 +INTR_PPC_ALTIVEC_VMINSB = 265 +INTR_PPC_ALTIVEC_VMINSH = 266 +INTR_PPC_ALTIVEC_VMINSW = 267 +INTR_PPC_ALTIVEC_VMINUB = 268 +INTR_PPC_ALTIVEC_VMINUH = 269 +INTR_PPC_ALTIVEC_VMINUW = 270 +INTR_PPC_ALTIVEC_VMLADDUHM = 271 +INTR_PPC_ALTIVEC_VMSUMMBM = 272 +INTR_PPC_ALTIVEC_VMSUMSHM = 273 +INTR_PPC_ALTIVEC_VMSUMSHS = 274 +INTR_PPC_ALTIVEC_VMSUMUBM = 275 +INTR_PPC_ALTIVEC_VMSUMUHM = 276 +INTR_PPC_ALTIVEC_VMSUMUHS = 277 +INTR_PPC_ALTIVEC_VMULESB = 278 +INTR_PPC_ALTIVEC_VMULESH = 279 +INTR_PPC_ALTIVEC_VMULEUB = 280 +INTR_PPC_ALTIVEC_VMULEUH = 281 +INTR_PPC_ALTIVEC_VMULOSB = 282 +INTR_PPC_ALTIVEC_VMULOSH = 283 +INTR_PPC_ALTIVEC_VMULOUB = 284 +INTR_PPC_ALTIVEC_VMULOUH = 285 +INTR_PPC_ALTIVEC_VNMSUBFP = 286 +INTR_PPC_ALTIVEC_VPERM = 287 +INTR_PPC_ALTIVEC_VPKPX = 288 +INTR_PPC_ALTIVEC_VPKSHSS = 289 +INTR_PPC_ALTIVEC_VPKSHUS = 290 +INTR_PPC_ALTIVEC_VPKSWSS = 291 +INTR_PPC_ALTIVEC_VPKSWUS = 292 +INTR_PPC_ALTIVEC_VPKUHUS = 293 +INTR_PPC_ALTIVEC_VPKUWUS = 294 +INTR_PPC_ALTIVEC_VREFP = 295 +INTR_PPC_ALTIVEC_VRFIM = 296 +INTR_PPC_ALTIVEC_VRFIN = 297 +INTR_PPC_ALTIVEC_VRFIP = 298 +INTR_PPC_ALTIVEC_VRFIZ = 299 +INTR_PPC_ALTIVEC_VRLB = 300 +INTR_PPC_ALTIVEC_VRLH = 301 +INTR_PPC_ALTIVEC_VRLW = 302 +INTR_PPC_ALTIVEC_VRSQRTEFP = 303 +INTR_PPC_ALTIVEC_VSEL = 304 +INTR_PPC_ALTIVEC_VSL = 305 +INTR_PPC_ALTIVEC_VSLB = 306 +INTR_PPC_ALTIVEC_VSLH = 307 +INTR_PPC_ALTIVEC_VSLO = 308 +INTR_PPC_ALTIVEC_VSLW = 309 +INTR_PPC_ALTIVEC_VSR = 310 +INTR_PPC_ALTIVEC_VSRAB = 311 +INTR_PPC_ALTIVEC_VSRAH = 312 +INTR_PPC_ALTIVEC_VSRAW = 313 +INTR_PPC_ALTIVEC_VSRB = 314 +INTR_PPC_ALTIVEC_VSRH = 315 +INTR_PPC_ALTIVEC_VSRO = 316 +INTR_PPC_ALTIVEC_VSRW = 317 +INTR_PPC_ALTIVEC_VSUBCUW = 318 +INTR_PPC_ALTIVEC_VSUBSBS = 319 +INTR_PPC_ALTIVEC_VSUBSHS = 320 +INTR_PPC_ALTIVEC_VSUBSWS = 321 +INTR_PPC_ALTIVEC_VSUBUBS = 322 +INTR_PPC_ALTIVEC_VSUBUHS = 323 +INTR_PPC_ALTIVEC_VSUBUWS = 324 +INTR_PPC_ALTIVEC_VSUM2SWS = 325 +INTR_PPC_ALTIVEC_VSUM4SBS = 326 +INTR_PPC_ALTIVEC_VSUM4SHS = 327 +INTR_PPC_ALTIVEC_VSUM4UBS = 328 +INTR_PPC_ALTIVEC_VSUMSWS = 329 +INTR_PPC_ALTIVEC_VUPKHPX = 330 +INTR_PPC_ALTIVEC_VUPKHSB = 331 +INTR_PPC_ALTIVEC_VUPKHSH = 332 +INTR_PPC_ALTIVEC_VUPKLPX = 333 +INTR_PPC_ALTIVEC_VUPKLSB = 334 +INTR_PPC_ALTIVEC_VUPKLSH = 335 +INTR_PPC_DCBA = 336 +INTR_PPC_DCBF = 337 +INTR_PPC_DCBI = 338 +INTR_PPC_DCBST = 339 +INTR_PPC_DCBT = 340 +INTR_PPC_DCBTST = 341 +INTR_PPC_DCBZ = 342 +INTR_PPC_DCBZL = 343 +INTR_PPC_SYNC = 344 +INTR_PREFETCH = 345 +INTR_PTR_ANNOTATION = 346 +INTR_READCYCLECOUNTER = 347 +INTR_RETURNADDRESS = 348 +INTR_SADD_WITH_OVERFLOW = 349 +INTR_SETJMP = 350 +INTR_SIGLONGJMP = 351 +INTR_SIGSETJMP = 352 +INTR_SIN = 353 +INTR_SMUL_WITH_OVERFLOW = 354 +INTR_SPU_SI_A = 355 +INTR_SPU_SI_ADDX = 356 +INTR_SPU_SI_AH = 357 +INTR_SPU_SI_AHI = 358 +INTR_SPU_SI_AI = 359 +INTR_SPU_SI_AND = 360 +INTR_SPU_SI_ANDBI = 361 +INTR_SPU_SI_ANDC = 362 +INTR_SPU_SI_ANDHI = 363 +INTR_SPU_SI_ANDI = 364 +INTR_SPU_SI_BG = 365 +INTR_SPU_SI_BGX = 366 +INTR_SPU_SI_CEQ = 367 +INTR_SPU_SI_CEQB = 368 +INTR_SPU_SI_CEQBI = 369 +INTR_SPU_SI_CEQH = 370 +INTR_SPU_SI_CEQHI = 371 +INTR_SPU_SI_CEQI = 372 +INTR_SPU_SI_CG = 373 +INTR_SPU_SI_CGT = 374 +INTR_SPU_SI_CGTB = 375 +INTR_SPU_SI_CGTBI = 376 +INTR_SPU_SI_CGTH = 377 +INTR_SPU_SI_CGTHI = 378 +INTR_SPU_SI_CGTI = 379 +INTR_SPU_SI_CGX = 380 +INTR_SPU_SI_CLGT = 381 +INTR_SPU_SI_CLGTB = 382 +INTR_SPU_SI_CLGTBI = 383 +INTR_SPU_SI_CLGTH = 384 +INTR_SPU_SI_CLGTHI = 385 +INTR_SPU_SI_CLGTI = 386 +INTR_SPU_SI_DFA = 387 +INTR_SPU_SI_DFM = 388 +INTR_SPU_SI_DFMA = 389 +INTR_SPU_SI_DFMS = 390 +INTR_SPU_SI_DFNMA = 391 +INTR_SPU_SI_DFNMS = 392 +INTR_SPU_SI_DFS = 393 +INTR_SPU_SI_FA = 394 +INTR_SPU_SI_FCEQ = 395 +INTR_SPU_SI_FCGT = 396 +INTR_SPU_SI_FCMEQ = 397 +INTR_SPU_SI_FCMGT = 398 +INTR_SPU_SI_FM = 399 +INTR_SPU_SI_FMA = 400 +INTR_SPU_SI_FMS = 401 +INTR_SPU_SI_FNMS = 402 +INTR_SPU_SI_FS = 403 +INTR_SPU_SI_FSMBI = 404 +INTR_SPU_SI_MPY = 405 +INTR_SPU_SI_MPYA = 406 +INTR_SPU_SI_MPYH = 407 +INTR_SPU_SI_MPYHH = 408 +INTR_SPU_SI_MPYHHA = 409 +INTR_SPU_SI_MPYHHAU = 410 +INTR_SPU_SI_MPYHHU = 411 +INTR_SPU_SI_MPYI = 412 +INTR_SPU_SI_MPYS = 413 +INTR_SPU_SI_MPYU = 414 +INTR_SPU_SI_MPYUI = 415 +INTR_SPU_SI_NAND = 416 +INTR_SPU_SI_NOR = 417 +INTR_SPU_SI_OR = 418 +INTR_SPU_SI_ORBI = 419 +INTR_SPU_SI_ORC = 420 +INTR_SPU_SI_ORHI = 421 +INTR_SPU_SI_ORI = 422 +INTR_SPU_SI_SF = 423 +INTR_SPU_SI_SFH = 424 +INTR_SPU_SI_SFHI = 425 +INTR_SPU_SI_SFI = 426 +INTR_SPU_SI_SFX = 427 +INTR_SPU_SI_SHLI = 428 +INTR_SPU_SI_SHLQBI = 429 +INTR_SPU_SI_SHLQBII = 430 +INTR_SPU_SI_SHLQBY = 431 +INTR_SPU_SI_SHLQBYI = 432 +INTR_SPU_SI_XOR = 433 +INTR_SPU_SI_XORBI = 434 +INTR_SPU_SI_XORHI = 435 +INTR_SPU_SI_XORI = 436 +INTR_SQRT = 437 +INTR_SSUB_WITH_OVERFLOW = 438 +INTR_STACKPROTECTOR = 439 +INTR_STACKRESTORE = 440 +INTR_STACKSAVE = 441 +INTR_TRAP = 442 +INTR_UADD_WITH_OVERFLOW = 443 +INTR_UMUL_WITH_OVERFLOW = 444 +INTR_USUB_WITH_OVERFLOW = 445 +INTR_VACOPY = 446 +INTR_VAEND = 447 +INTR_VAR_ANNOTATION = 448 +INTR_VASTART = 449 +INTR_X86_MMX_EMMS = 450 +INTR_X86_MMX_FEMMS = 451 +INTR_X86_MMX_MASKMOVQ = 452 +INTR_X86_MMX_MOVNT_DQ = 453 +INTR_X86_MMX_PACKSSDW = 454 +INTR_X86_MMX_PACKSSWB = 455 +INTR_X86_MMX_PACKUSWB = 456 +INTR_X86_MMX_PADDS_B = 457 +INTR_X86_MMX_PADDS_W = 458 +INTR_X86_MMX_PADDUS_B = 459 +INTR_X86_MMX_PADDUS_W = 460 +INTR_X86_MMX_PAVG_B = 461 +INTR_X86_MMX_PAVG_W = 462 +INTR_X86_MMX_PCMPEQ_B = 463 +INTR_X86_MMX_PCMPEQ_D = 464 +INTR_X86_MMX_PCMPEQ_W = 465 +INTR_X86_MMX_PCMPGT_B = 466 +INTR_X86_MMX_PCMPGT_D = 467 +INTR_X86_MMX_PCMPGT_W = 468 +INTR_X86_MMX_PMADD_WD = 469 +INTR_X86_MMX_PMAXS_W = 470 +INTR_X86_MMX_PMAXU_B = 471 +INTR_X86_MMX_PMINS_W = 472 +INTR_X86_MMX_PMINU_B = 473 +INTR_X86_MMX_PMOVMSKB = 474 +INTR_X86_MMX_PMULH_W = 475 +INTR_X86_MMX_PMULHU_W = 476 +INTR_X86_MMX_PMULU_DQ = 477 +INTR_X86_MMX_PSAD_BW = 478 +INTR_X86_MMX_PSLL_D = 479 +INTR_X86_MMX_PSLL_Q = 480 +INTR_X86_MMX_PSLL_W = 481 +INTR_X86_MMX_PSLLI_D = 482 +INTR_X86_MMX_PSLLI_Q = 483 +INTR_X86_MMX_PSLLI_W = 484 +INTR_X86_MMX_PSRA_D = 485 +INTR_X86_MMX_PSRA_W = 486 +INTR_X86_MMX_PSRAI_D = 487 +INTR_X86_MMX_PSRAI_W = 488 +INTR_X86_MMX_PSRL_D = 489 +INTR_X86_MMX_PSRL_Q = 490 +INTR_X86_MMX_PSRL_W = 491 +INTR_X86_MMX_PSRLI_D = 492 +INTR_X86_MMX_PSRLI_Q = 493 +INTR_X86_MMX_PSRLI_W = 494 +INTR_X86_MMX_PSUBS_B = 495 +INTR_X86_MMX_PSUBS_W = 496 +INTR_X86_MMX_PSUBUS_B = 497 +INTR_X86_MMX_PSUBUS_W = 498 +INTR_X86_SSE2_ADD_SD = 499 +INTR_X86_SSE2_CLFLUSH = 500 +INTR_X86_SSE2_CMP_PD = 501 +INTR_X86_SSE2_CMP_SD = 502 +INTR_X86_SSE2_COMIEQ_SD = 503 +INTR_X86_SSE2_COMIGE_SD = 504 +INTR_X86_SSE2_COMIGT_SD = 505 +INTR_X86_SSE2_COMILE_SD = 506 +INTR_X86_SSE2_COMILT_SD = 507 +INTR_X86_SSE2_COMINEQ_SD = 508 +INTR_X86_SSE2_CVTDQ2PD = 509 +INTR_X86_SSE2_CVTDQ2PS = 510 +INTR_X86_SSE2_CVTPD2DQ = 511 +INTR_X86_SSE2_CVTPD2PS = 512 +INTR_X86_SSE2_CVTPS2DQ = 513 +INTR_X86_SSE2_CVTPS2PD = 514 +INTR_X86_SSE2_CVTSD2SI = 515 +INTR_X86_SSE2_CVTSD2SI64 = 516 +INTR_X86_SSE2_CVTSD2SS = 517 +INTR_X86_SSE2_CVTSI2SD = 518 +INTR_X86_SSE2_CVTSI642SD = 519 +INTR_X86_SSE2_CVTSS2SD = 520 +INTR_X86_SSE2_CVTTPD2DQ = 521 +INTR_X86_SSE2_CVTTPS2DQ = 522 +INTR_X86_SSE2_CVTTSD2SI = 523 +INTR_X86_SSE2_CVTTSD2SI64 = 524 +INTR_X86_SSE2_DIV_SD = 525 +INTR_X86_SSE2_LFENCE = 526 +INTR_X86_SSE2_LOADU_DQ = 527 +INTR_X86_SSE2_LOADU_PD = 528 +INTR_X86_SSE2_MASKMOV_DQU = 529 +INTR_X86_SSE2_MAX_PD = 530 +INTR_X86_SSE2_MAX_SD = 531 +INTR_X86_SSE2_MFENCE = 532 +INTR_X86_SSE2_MIN_PD = 533 +INTR_X86_SSE2_MIN_SD = 534 +INTR_X86_SSE2_MOVMSK_PD = 535 +INTR_X86_SSE2_MOVNT_DQ = 536 +INTR_X86_SSE2_MOVNT_I = 537 +INTR_X86_SSE2_MOVNT_PD = 538 +INTR_X86_SSE2_MUL_SD = 539 +INTR_X86_SSE2_PACKSSDW_128 = 540 +INTR_X86_SSE2_PACKSSWB_128 = 541 +INTR_X86_SSE2_PACKUSWB_128 = 542 +INTR_X86_SSE2_PADDS_B = 543 +INTR_X86_SSE2_PADDS_W = 544 +INTR_X86_SSE2_PADDUS_B = 545 +INTR_X86_SSE2_PADDUS_W = 546 +INTR_X86_SSE2_PAVG_B = 547 +INTR_X86_SSE2_PAVG_W = 548 +INTR_X86_SSE2_PCMPEQ_B = 549 +INTR_X86_SSE2_PCMPEQ_D = 550 +INTR_X86_SSE2_PCMPEQ_W = 551 +INTR_X86_SSE2_PCMPGT_B = 552 +INTR_X86_SSE2_PCMPGT_D = 553 +INTR_X86_SSE2_PCMPGT_W = 554 +INTR_X86_SSE2_PMADD_WD = 555 +INTR_X86_SSE2_PMAXS_W = 556 +INTR_X86_SSE2_PMAXU_B = 557 +INTR_X86_SSE2_PMINS_W = 558 +INTR_X86_SSE2_PMINU_B = 559 +INTR_X86_SSE2_PMOVMSKB_128 = 560 +INTR_X86_SSE2_PMULH_W = 561 +INTR_X86_SSE2_PMULHU_W = 562 +INTR_X86_SSE2_PMULU_DQ = 563 +INTR_X86_SSE2_PSAD_BW = 564 +INTR_X86_SSE2_PSLL_D = 565 +INTR_X86_SSE2_PSLL_DQ = 566 +INTR_X86_SSE2_PSLL_DQ_BS = 567 +INTR_X86_SSE2_PSLL_Q = 568 +INTR_X86_SSE2_PSLL_W = 569 +INTR_X86_SSE2_PSLLI_D = 570 +INTR_X86_SSE2_PSLLI_Q = 571 +INTR_X86_SSE2_PSLLI_W = 572 +INTR_X86_SSE2_PSRA_D = 573 +INTR_X86_SSE2_PSRA_W = 574 +INTR_X86_SSE2_PSRAI_D = 575 +INTR_X86_SSE2_PSRAI_W = 576 +INTR_X86_SSE2_PSRL_D = 577 +INTR_X86_SSE2_PSRL_DQ = 578 +INTR_X86_SSE2_PSRL_DQ_BS = 579 +INTR_X86_SSE2_PSRL_Q = 580 +INTR_X86_SSE2_PSRL_W = 581 +INTR_X86_SSE2_PSRLI_D = 582 +INTR_X86_SSE2_PSRLI_Q = 583 +INTR_X86_SSE2_PSRLI_W = 584 +INTR_X86_SSE2_PSUBS_B = 585 +INTR_X86_SSE2_PSUBS_W = 586 +INTR_X86_SSE2_PSUBUS_B = 587 +INTR_X86_SSE2_PSUBUS_W = 588 +INTR_X86_SSE2_SQRT_PD = 589 +INTR_X86_SSE2_SQRT_SD = 590 +INTR_X86_SSE2_STOREL_DQ = 591 +INTR_X86_SSE2_STOREU_DQ = 592 +INTR_X86_SSE2_STOREU_PD = 593 +INTR_X86_SSE2_SUB_SD = 594 +INTR_X86_SSE2_UCOMIEQ_SD = 595 +INTR_X86_SSE2_UCOMIGE_SD = 596 +INTR_X86_SSE2_UCOMIGT_SD = 597 +INTR_X86_SSE2_UCOMILE_SD = 598 +INTR_X86_SSE2_UCOMILT_SD = 599 +INTR_X86_SSE2_UCOMINEQ_SD = 600 +INTR_X86_SSE3_ADDSUB_PD = 601 +INTR_X86_SSE3_ADDSUB_PS = 602 +INTR_X86_SSE3_HADD_PD = 603 +INTR_X86_SSE3_HADD_PS = 604 +INTR_X86_SSE3_HSUB_PD = 605 +INTR_X86_SSE3_HSUB_PS = 606 +INTR_X86_SSE3_LDU_DQ = 607 +INTR_X86_SSE3_MONITOR = 608 +INTR_X86_SSE3_MWAIT = 609 +INTR_X86_SSE41_BLENDPD = 610 +INTR_X86_SSE41_BLENDPS = 611 +INTR_X86_SSE41_BLENDVPD = 612 +INTR_X86_SSE41_BLENDVPS = 613 +INTR_X86_SSE41_DPPD = 614 +INTR_X86_SSE41_DPPS = 615 +INTR_X86_SSE41_EXTRACTPS = 616 +INTR_X86_SSE41_INSERTPS = 617 +INTR_X86_SSE41_MOVNTDQA = 618 +INTR_X86_SSE41_MPSADBW = 619 +INTR_X86_SSE41_PACKUSDW = 620 +INTR_X86_SSE41_PBLENDVB = 621 +INTR_X86_SSE41_PBLENDW = 622 +INTR_X86_SSE41_PCMPEQQ = 623 +INTR_X86_SSE41_PEXTRB = 624 +INTR_X86_SSE41_PEXTRD = 625 +INTR_X86_SSE41_PEXTRQ = 626 +INTR_X86_SSE41_PHMINPOSUW = 627 +INTR_X86_SSE41_PMAXSB = 628 +INTR_X86_SSE41_PMAXSD = 629 +INTR_X86_SSE41_PMAXUD = 630 +INTR_X86_SSE41_PMAXUW = 631 +INTR_X86_SSE41_PMINSB = 632 +INTR_X86_SSE41_PMINSD = 633 +INTR_X86_SSE41_PMINUD = 634 +INTR_X86_SSE41_PMINUW = 635 +INTR_X86_SSE41_PMOVSXBD = 636 +INTR_X86_SSE41_PMOVSXBQ = 637 +INTR_X86_SSE41_PMOVSXBW = 638 +INTR_X86_SSE41_PMOVSXDQ = 639 +INTR_X86_SSE41_PMOVSXWD = 640 +INTR_X86_SSE41_PMOVSXWQ = 641 +INTR_X86_SSE41_PMOVZXBD = 642 +INTR_X86_SSE41_PMOVZXBQ = 643 +INTR_X86_SSE41_PMOVZXBW = 644 +INTR_X86_SSE41_PMOVZXDQ = 645 +INTR_X86_SSE41_PMOVZXWD = 646 +INTR_X86_SSE41_PMOVZXWQ = 647 +INTR_X86_SSE41_PMULDQ = 648 +INTR_X86_SSE41_PMULLD = 649 +INTR_X86_SSE41_PTESTC = 650 +INTR_X86_SSE41_PTESTNZC = 651 +INTR_X86_SSE41_PTESTZ = 652 +INTR_X86_SSE41_ROUND_PD = 653 +INTR_X86_SSE41_ROUND_PS = 654 +INTR_X86_SSE41_ROUND_SD = 655 +INTR_X86_SSE41_ROUND_SS = 656 +INTR_X86_SSE42_CRC32_16 = 657 +INTR_X86_SSE42_CRC32_32 = 658 +INTR_X86_SSE42_CRC32_64 = 659 +INTR_X86_SSE42_CRC32_8 = 660 +INTR_X86_SSE42_PCMPESTRI128 = 661 +INTR_X86_SSE42_PCMPESTRIA128 = 662 +INTR_X86_SSE42_PCMPESTRIC128 = 663 +INTR_X86_SSE42_PCMPESTRIO128 = 664 +INTR_X86_SSE42_PCMPESTRIS128 = 665 +INTR_X86_SSE42_PCMPESTRIZ128 = 666 +INTR_X86_SSE42_PCMPESTRM128 = 667 +INTR_X86_SSE42_PCMPGTQ = 668 +INTR_X86_SSE42_PCMPISTRI128 = 669 +INTR_X86_SSE42_PCMPISTRIA128 = 670 +INTR_X86_SSE42_PCMPISTRIC128 = 671 +INTR_X86_SSE42_PCMPISTRIO128 = 672 +INTR_X86_SSE42_PCMPISTRIS128 = 673 +INTR_X86_SSE42_PCMPISTRIZ128 = 674 +INTR_X86_SSE42_PCMPISTRM128 = 675 +INTR_X86_SSE_ADD_SS = 676 +INTR_X86_SSE_CMP_PS = 677 +INTR_X86_SSE_CMP_SS = 678 +INTR_X86_SSE_COMIEQ_SS = 679 +INTR_X86_SSE_COMIGE_SS = 680 +INTR_X86_SSE_COMIGT_SS = 681 +INTR_X86_SSE_COMILE_SS = 682 +INTR_X86_SSE_COMILT_SS = 683 +INTR_X86_SSE_COMINEQ_SS = 684 +INTR_X86_SSE_CVTPD2PI = 685 +INTR_X86_SSE_CVTPI2PD = 686 +INTR_X86_SSE_CVTPI2PS = 687 +INTR_X86_SSE_CVTPS2PI = 688 +INTR_X86_SSE_CVTSI2SS = 689 +INTR_X86_SSE_CVTSI642SS = 690 +INTR_X86_SSE_CVTSS2SI = 691 +INTR_X86_SSE_CVTSS2SI64 = 692 +INTR_X86_SSE_CVTTPD2PI = 693 +INTR_X86_SSE_CVTTPS2PI = 694 +INTR_X86_SSE_CVTTSS2SI = 695 +INTR_X86_SSE_CVTTSS2SI64 = 696 +INTR_X86_SSE_DIV_SS = 697 +INTR_X86_SSE_LDMXCSR = 698 +INTR_X86_SSE_LOADU_PS = 699 +INTR_X86_SSE_MAX_PS = 700 +INTR_X86_SSE_MAX_SS = 701 +INTR_X86_SSE_MIN_PS = 702 +INTR_X86_SSE_MIN_SS = 703 +INTR_X86_SSE_MOVMSK_PS = 704 +INTR_X86_SSE_MOVNT_PS = 705 +INTR_X86_SSE_MUL_SS = 706 +INTR_X86_SSE_RCP_PS = 707 +INTR_X86_SSE_RCP_SS = 708 +INTR_X86_SSE_RSQRT_PS = 709 +INTR_X86_SSE_RSQRT_SS = 710 +INTR_X86_SSE_SFENCE = 711 +INTR_X86_SSE_SQRT_PS = 712 +INTR_X86_SSE_SQRT_SS = 713 +INTR_X86_SSE_STMXCSR = 714 +INTR_X86_SSE_STOREU_PS = 715 +INTR_X86_SSE_SUB_SS = 716 +INTR_X86_SSE_UCOMIEQ_SS = 717 +INTR_X86_SSE_UCOMIGE_SS = 718 +INTR_X86_SSE_UCOMIGT_SS = 719 +INTR_X86_SSE_UCOMILE_SS = 720 +INTR_X86_SSE_UCOMILT_SS = 721 +INTR_X86_SSE_UCOMINEQ_SS = 722 +INTR_X86_SSSE3_PABS_B = 723 +INTR_X86_SSSE3_PABS_B_128 = 724 +INTR_X86_SSSE3_PABS_D = 725 +INTR_X86_SSSE3_PABS_D_128 = 726 +INTR_X86_SSSE3_PABS_W = 727 +INTR_X86_SSSE3_PABS_W_128 = 728 +INTR_X86_SSSE3_PALIGN_R = 729 +INTR_X86_SSSE3_PALIGN_R_128 = 730 +INTR_X86_SSSE3_PHADD_D = 731 +INTR_X86_SSSE3_PHADD_D_128 = 732 +INTR_X86_SSSE3_PHADD_SW = 733 +INTR_X86_SSSE3_PHADD_SW_128 = 734 +INTR_X86_SSSE3_PHADD_W = 735 +INTR_X86_SSSE3_PHADD_W_128 = 736 +INTR_X86_SSSE3_PHSUB_D = 737 +INTR_X86_SSSE3_PHSUB_D_128 = 738 +INTR_X86_SSSE3_PHSUB_SW = 739 +INTR_X86_SSSE3_PHSUB_SW_128 = 740 +INTR_X86_SSSE3_PHSUB_W = 741 +INTR_X86_SSSE3_PHSUB_W_128 = 742 +INTR_X86_SSSE3_PMADD_UB_SW = 743 +INTR_X86_SSSE3_PMADD_UB_SW_128 = 744 +INTR_X86_SSSE3_PMUL_HR_SW = 745 +INTR_X86_SSSE3_PMUL_HR_SW_128 = 746 +INTR_X86_SSSE3_PSHUF_B = 747 +INTR_X86_SSSE3_PSHUF_B_128 = 748 +INTR_X86_SSSE3_PSIGN_B = 749 +INTR_X86_SSSE3_PSIGN_B_128 = 750 +INTR_X86_SSSE3_PSIGN_D = 751 +INTR_X86_SSSE3_PSIGN_D_128 = 752 +INTR_X86_SSSE3_PSIGN_W = 753 +INTR_X86_SSSE3_PSIGN_W_128 = 754 +INTR_XCORE_BITREV = 755 +INTR_XCORE_GETID = 756 + diff --git a/llvm/core.py b/llvm/core.py index 1ae339c..0608d2e 100644 --- a/llvm/core.py +++ b/llvm/core.py @@ -51,93 +51,96 @@ TYPE_X86_FP80 = 3 TYPE_FP128 = 4 TYPE_PPC_FP128 = 5 TYPE_LABEL = 6 -TYPE_METADATA = 7 -TYPE_INTEGER = 8 -TYPE_FUNCTION = 9 -TYPE_STRUCT = 10 -TYPE_ARRAY = 11 -TYPE_POINTER = 12 -TYPE_OPAQUE = 13 -TYPE_VECTOR = 14 +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_UNION = 15 # value IDs (llvm::Value::ValueTy enum) -VALUE_ARGUMENT = 0 -VALUE_BASIC_BLOCK = 1 -VALUE_FUNCTION = 2 -VALUE_GLOBAL_ALIAS = 3 -VALUE_GLOBAL_VARIABLE = 4 -VALUE_UNDEF_VALUE = 5 -VALUE_CONSTANT_EXPR = 6 -VALUE_CONSTANT_AGGREGATE_ZERO = 7 -VALUE_CONSTANT_INT = 8 -VALUE_CONSTANT_FP = 9 -VALUE_CONSTANT_ARRAY = 10 -VALUE_CONSTANT_STRUCT = 11 -VALUE_CONSTANT_VECTOR = 12 -VALUE_CONSTANT_POINTER_NULL = 13 -VALUE_MD_NODE = 14 -VALUE_MD_STRING = 15 -VALUE_NAMED_MD_NODE = 16 -VALUE_INLINE_ASM = 17 -VALUE_PSEUDO_SOURCE_VALUE = 18 -VALUE_INSTRUCTION = 19 +VALUE_ARGUMENT = 0 +VALUE_BASIC_BLOCK = 1 +VALUE_FUNCTION = 2 +VALUE_GLOBAL_ALIAS = 3 +VALUE_GLOBAL_VARIABLE = 4 +VALUE_UNDEF_VALUE = 5 +VALUE_BLOCK_ADDRESS = 6 +VALUE_CONSTANT_EXPR = 7 +VALUE_CONSTANT_AGGREGATE_ZERO = 8 +VALUE_CONSTANT_INT = 9 +VALUE_CONSTANT_FP = 10 +VALUE_CONSTANT_ARRAY = 11 +VALUE_CONSTANT_STRUCT = 12 +VALUE_CONSTANT_UNION = 13 +VALUE_CONSTANT_VECTOR = 14 +VALUE_CONSTANT_POINTER_NULL = 15 +VALUE_MD_NODE = 16 +VALUE_MD_STRING = 17 +VALUE_NAMED_MD_NODE = 18 +VALUE_INLINE_ASM = 19 +VALUE_PSEUDO_SOURCE_VALUE = 20 +VALUE_FIXED_STACK_PSEUDO_SOURCE_VALUE = 21 +VALUE_INSTRUCTION = 22 # instruction opcodes (from include/llvm/Instruction.def) OPCODE_RET = 1 OPCODE_BR = 2 OPCODE_SWITCH = 3 -OPCODE_INVOKE = 4 -OPCODE_UNWIND = 5 -OPCODE_UNREACHABLE = 6 -OPCODE_ADD = 7 -OPCODE_FADD = 8 -OPCODE_SUB = 9 -OPCODE_FSUB = 10 -OPCODE_MUL = 11 -OPCODE_FMUL = 12 -OPCODE_UDIV = 13 -OPCODE_SDIV = 14 -OPCODE_FDIV = 15 -OPCODE_UREM = 16 -OPCODE_SREM = 17 -OPCODE_FREM = 18 -OPCODE_SHL = 19 -OPCODE_LSHR = 20 -OPCODE_ASHR = 21 -OPCODE_AND = 22 -OPCODE_OR = 23 -OPCODE_XOR = 24 -OPCODE_MALLOC = 25 -OPCODE_FREE = 26 -OPCODE_ALLOCA = 27 -OPCODE_LOAD = 28 -OPCODE_STORE = 29 -OPCODE_GETELEMENTPTR = 30 -OPCODE_TRUNC = 31 -OPCODE_ZEXT = 32 -OPCODE_SEXT = 33 -OPCODE_FPTOUI = 34 -OPCODE_FPTOSI = 35 -OPCODE_UITOFP = 36 -OPCODE_SITOFP = 37 -OPCODE_FPTRUNC = 38 -OPCODE_FPEXT = 39 -OPCODE_PTRTOINT = 40 -OPCODE_INTTOPTR = 41 -OPCODE_BITCAST = 42 -OPCODE_ICMP = 43 -OPCODE_FCMP = 44 -OPCODE_PHI = 45 -OPCODE_CALL = 46 -OPCODE_SELECT = 47 -OPCODE_USEROP1 = 48 -OPCODE_USEROP2 = 49 -OPCODE_VAARG = 50 -OPCODE_EXTRACTELEMENT = 51 -OPCODE_INSERTELEMENT = 52 -OPCODE_SHUFFLEVECTOR = 53 -OPCODE_EXTRACTVALUE = 54 -OPCODE_INSERTVALUE = 55 +OPCODE_INDIRECT_BR = 4 +OPCODE_INVOKE = 5 +OPCODE_UNWIND = 6 +OPCODE_UNREACHABLE = 7 +OPCODE_ADD = 8 +OPCODE_FADD = 9 +OPCODE_SUB = 10 +OPCODE_FSUB = 11 +OPCODE_MUL = 12 +OPCODE_FMUL = 13 +OPCODE_UDIV = 14 +OPCODE_SDIV = 15 +OPCODE_FDIV = 16 +OPCODE_UREM = 17 +OPCODE_SREM = 18 +OPCODE_FREM = 19 +OPCODE_SHL = 20 +OPCODE_LSHR = 21 +OPCODE_ASHR = 22 +OPCODE_AND = 23 +OPCODE_OR = 24 +OPCODE_XOR = 25 +OPCODE_ALLOCA = 26 +OPCODE_LOAD = 27 +OPCODE_STORE = 28 +OPCODE_GETELEMENTPTR = 29 +OPCODE_TRUNC = 30 +OPCODE_ZEXT = 31 +OPCODE_SEXT = 32 +OPCODE_FPTOUI = 33 +OPCODE_FPTOSI = 34 +OPCODE_UITOFP = 35 +OPCODE_SITOFP = 36 +OPCODE_FPTRUNC = 37 +OPCODE_FPEXT = 38 +OPCODE_PTRTOINT = 39 +OPCODE_INTTOPTR = 40 +OPCODE_BITCAST = 41 +OPCODE_ICMP = 42 +OPCODE_FCMP = 43 +OPCODE_PHI = 44 +OPCODE_CALL = 45 +OPCODE_SELECT = 46 +OPCODE_USEROP1 = 47 +OPCODE_USEROP2 = 48 +OPCODE_VAARG = 59 +OPCODE_EXTRACTELEMENT = 50 +OPCODE_INSERTELEMENT = 51 +OPCODE_SHUFFLEVECTOR = 52 +OPCODE_EXTRACTVALUE = 53 +OPCODE_INSERTVALUE = 54 # calling conventions CC_C = 0 @@ -206,7 +209,7 @@ RPRED_ULE = FCMP_ULE RPRED_UNE = FCMP_UNE RPRED_TRUE = FCMP_TRUE -# linkages +# linkages (see llvm-c/Core.h) LINKAGE_EXTERNAL = 0 LINKAGE_AVAILABLE_EXTERNALLY = 1 LINKAGE_LINKONCE_ANY = 2 @@ -216,39 +219,41 @@ LINKAGE_WEAK_ODR = 5 LINKAGE_APPENDING = 6 LINKAGE_INTERNAL = 7 LINKAGE_PRIVATE = 8 -LINKAGE_LINKER_PRIVATE = 9 -LINKAGE_DLLIMPORT = 10 -LINKAGE_DLLEXPORT = 11 -LINKAGE_EXTERNAL_WEAK = 12 -LINKAGE_GHOST = 13 -LINKAGE_COMMON = 14 +LINKAGE_DLLIMPORT = 9 +LINKAGE_DLLEXPORT = 10 +LINKAGE_EXTERNAL_WEAK = 11 +LINKAGE_GHOST = 12 +LINKAGE_COMMON = 13 +LINKAGE_LINKER_PRIVATE = 14 -# visibility -VISIBILITY_DEFAULT = 0 -VISIBILITY_HIDDEN = 1 +# visibility (see llvm/GlobalValue.h) +VISIBILITY_DEFAULT = 0 +VISIBILITY_HIDDEN = 1 VISIBILITY_PROTECTED = 2 # parameter attributes (see llvm/Attributes.h) -ATTR_ZEXT = 1 -ATTR_SEXT = 2 -ATTR_NO_RETURN = 4 -ATTR_IN_REG = 8 -ATTR_STRUCT_RET = 16 -ATTR_NO_UNWIND = 32 -ATTR_NO_ALIAS = 64 -ATTR_BY_VAL = 128 -ATTR_NEST = 256 -ATTR_READ_NONE = 512 -ATTR_READONLY = 1024 -ATTR_NO_INLINE = 1<<11 -ATTR_ALWAYS_INLINE = 1<<12 -ATTR_OPTIMIZE_FOR_SIZE = 1<<13 -ATTR_STACK_PROTECT = 1<<14 -ATTR_STACK_PROTECT_REQ = 1<<15 -ATTR_NO_CAPTURE = 1<<21 -ATTR_NO_REDZONE = 1<<22 -ATTR_NO_IMPLICIT_FLOAT = 1<<23 -ATTR_NAKED = 1<<24 +ATTR_NONE = 0 +ATTR_ZEXT = 1 +ATTR_SEXT = 2 +ATTR_NO_RETURN = 4 +ATTR_IN_REG = 8 +ATTR_STRUCT_RET = 16 +ATTR_NO_UNWIND = 32 +ATTR_NO_ALIAS = 64 +ATTR_BY_VAL = 128 +ATTR_NEST = 256 +ATTR_READ_NONE = 512 +ATTR_READONLY = 1024 +ATTR_NO_INLINE = 1<<11 +ATTR_ALWAYS_INLINE = 1<<12 +ATTR_OPTIMIZE_FOR_SIZE = 1<<13 +ATTR_STACK_PROTECT = 1<<14 +ATTR_STACK_PROTECT_REQ = 1<<15 +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 # intrinsic IDs from llvm._intrinsic_ids import * @@ -439,6 +444,14 @@ class Module(llvm.Ownable, llvm.Cacheable): """ _core.LLVMDeleteTypeName(self.ptr, name) + def get_type_named(self, name): + """Return a Type object with the given name.""" + ptr = _core.LLVMGetTypeByName(self.ptr, name) + if ptr: + kind = _core.LLVMGetTypeKind(ptr) + return _make_type(ptr, kind) + return None + def add_global_variable(self, ty, name): """Add a global variable of given type with given name.""" return GlobalVariable.new(self, ty, name) diff --git a/llvm/extra.cpp b/llvm/extra.cpp index 5593640..3df195c 100644 --- a/llvm/extra.cpp +++ b/llvm/extra.cpp @@ -41,6 +41,7 @@ #include // LLVM includes +#include "llvm/LLVMContext.h" #include "llvm/Bitcode/ReaderWriter.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Casting.h" @@ -48,7 +49,6 @@ #include "llvm/DerivedTypes.h" #include "llvm/GlobalVariable.h" #include "llvm/TypeSymbolTable.h" -#include "llvm/ModuleProvider.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/CallSite.h" #include "llvm/IntrinsicInst.h" @@ -58,6 +58,8 @@ #include "llvm/PassManager.h" #include "llvm/ExecutionEngine/ExecutionEngine.h" #include "llvm/Analysis/LoopPass.h" +#include "llvm/Analysis/Passes.h" +#include "llvm/Analysis/DomPrinter.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/IPO.h" #include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h" @@ -461,13 +463,6 @@ int LLVMInlineFunction(LLVMValueRef call) /* Passes. A few passes (listed below) are used directly from LLVM-C, * rest are defined here. - * - * ConstantPropagation - * GVN - * InstructionCombining - * PromoteMemoryToRegister - * Reassociate - * CFGSimplification */ #define define_pass(P) \ @@ -478,47 +473,62 @@ void LLVMAdd ## P ## Pass (LLVMPassManagerRef passmgr) { \ pmp->add( create ## P ## Pass ()); \ } -define_pass( ArgumentPromotion ) +define_pass( AAEval ) +define_pass( ABCD ) +define_pass( AliasAnalysisCounter ) +define_pass( AlwaysInliner ) +define_pass( BasicAliasAnalysis ) define_pass( BlockPlacement ) define_pass( BreakCriticalEdges ) define_pass( CodeGenPrepare ) -define_pass( ConstantMerge ) +define_pass( DbgInfoPrinter ) define_pass( DeadCodeElimination ) -define_pass( DeadArgElimination ) -define_pass( DeadTypeElimination ) define_pass( DeadInstElimination ) -/* define_pass( GCSE ): removed in LLVM 2.4 */ -define_pass( GlobalDCE ) -define_pass( GlobalOptimizer ) -define_pass( GVNPRE ) -define_pass( IndMemRem ) -define_pass( FunctionInlining ) -define_pass( BlockProfiler ) +define_pass( DemoteRegisterToMemory ) +define_pass( DomOnlyPrinter ) +define_pass( DomOnlyViewer ) +define_pass( DomPrinter ) +define_pass( DomViewer ) define_pass( EdgeProfiler ) -define_pass( FunctionProfiler ) -define_pass( NullProfilerRS ) -define_pass( RSProfiling ) +define_pass( GEPSplitter ) +define_pass( GlobalsModRef ) +define_pass( InstCount ) +define_pass( InstructionNamer ) +define_pass( IPSCCP ) +define_pass( LazyValueInfo ) +define_pass( LCSSA ) +define_pass( LiveValues ) +define_pass( LoopDependenceAnalysis ) +define_pass( LoopExtractor ) +define_pass( LoopSimplify ) +define_pass( LoopStrengthReduce ) +define_pass( LowerInvoke ) +define_pass( LowerSwitch ) +define_pass( MergeFunctions ) +define_pass( NoAA ) +define_pass( NoProfileInfo ) +define_pass( OptimalEdgeProfiler ) +define_pass( PartialInlining ) +define_pass( PartialSpecialization ) +define_pass( PostDomOnlyPrinter ) +define_pass( PostDomOnlyViewer ) +define_pass( PostDomPrinter ) +define_pass( PostDomViewer ) +define_pass( ProfileEstimator ) +define_pass( ProfileLoader ) +define_pass( ProfileVerifier ) +define_pass( ScalarEvolutionAliasAnalysis ) +define_pass( SCCVN ) +define_pass( SimplifyHalfPowrLibCalls ) +define_pass( SingleLoopExtractor ) +define_pass( SSI ) +define_pass( SSIEverything ) +define_pass( StripNonDebugSymbols ) +define_pass( StructRetPromotion ) +define_pass( TailDuplication ) +define_pass( UnifyFunctionExitNodes ) + /* we support only internalize(true) */ llvm::ModulePass *createInternalizePass() { return llvm::createInternalizePass(true); } define_pass( Internalize ) -define_pass( IPConstantPropagation ) -define_pass( IPSCCP ) -define_pass( LCSSA ) -define_pass( LoopExtractor ) -define_pass( SingleLoopExtractor ) -define_pass( LoopStrengthReduce ) -define_pass( LoopSimplify ) -define_pass( LowerAllocations ) -define_pass( LowerInvoke ) -define_pass( LowerSetJmp ) -define_pass( LowerSwitch ) -define_pass( UnifyFunctionExitNodes ) -define_pass( PredicateSimplifier ) -define_pass( PruneEH ) -define_pass( RaiseAllocations ) -define_pass( DemoteRegisterToMemory ) -define_pass( StripSymbols ) -define_pass( StripDeadPrototypes ) -define_pass( StructRetPromotion ) -define_pass( TailDuplication ) diff --git a/llvm/extra.h b/llvm/extra.h index 5833b1f..fa73ca3 100644 --- a/llvm/extra.h +++ b/llvm/extra.h @@ -183,77 +183,68 @@ void *LLVMGetPointerToFunction(LLVMExecutionEngineRef ee, LLVMValueRef fn); * containing the call is still in a proper state (not changed). */ int LLVMInlineFunction(LLVMValueRef call); -/* Passes. A few passes (listed below) are used directly from LLVM-C, - * rest are declared here. - * - * ConstantPropagation - * GVN - * InstructionCombining - * PromoteMemoryToRegister - * Reassociate - * CFGSimplification - */ +/* Passes. Some passes are used directly from LLVM-C, rest are declared + * here. */ #define declare_pass(P) \ void LLVMAdd ## P ## Pass (LLVMPassManagerRef PM); -declare_pass( AggressiveDCE ) -declare_pass( ArgumentPromotion ) +declare_pass( AAEval ) +declare_pass( ABCD ) +declare_pass( AliasAnalysisCounter ) +declare_pass( AlwaysInliner ) +declare_pass( BasicAliasAnalysis ) declare_pass( BlockPlacement ) declare_pass( BreakCriticalEdges ) declare_pass( CodeGenPrepare ) -declare_pass( CondPropagation ) -declare_pass( ConstantMerge ) +declare_pass( DbgInfoPrinter ) declare_pass( DeadCodeElimination ) -declare_pass( DeadArgElimination ) -declare_pass( DeadTypeElimination ) declare_pass( DeadInstElimination ) -declare_pass( DeadStoreElimination ) -/* declare_pass( GCSE ): removed in LLVM 2.4. */ -declare_pass( GlobalDCE ) -declare_pass( GlobalOptimizer ) -declare_pass( GVNPRE ) -declare_pass( IndMemRem ) -declare_pass( IndVarSimplify ) -declare_pass( FunctionInlining ) -declare_pass( BlockProfiler ) -declare_pass( EdgeProfiler ) -declare_pass( FunctionProfiler ) -declare_pass( NullProfilerRS ) -declare_pass( RSProfiling ) -declare_pass( Internalize ) -declare_pass( IPConstantPropagation ) -declare_pass( IPSCCP ) -declare_pass( JumpThreading ) -declare_pass( LCSSA ) -declare_pass( LICM ) -declare_pass( LoopDeletion ) -declare_pass( LoopExtractor ) -declare_pass( SingleLoopExtractor ) -declare_pass( LoopIndexSplit ) -declare_pass( LoopStrengthReduce ) -declare_pass( LoopRotate ) -declare_pass( LoopUnroll ) -declare_pass( LoopUnswitch ) -declare_pass( LoopSimplify ) -declare_pass( LowerAllocations ) -declare_pass( LowerInvoke ) -declare_pass( LowerSetJmp ) -declare_pass( LowerSwitch ) -declare_pass( MemCpyOpt ) -declare_pass( UnifyFunctionExitNodes ) -declare_pass( PredicateSimplifier ) -declare_pass( PruneEH ) -declare_pass( RaiseAllocations ) declare_pass( DemoteRegisterToMemory ) -declare_pass( ScalarReplAggregates ) -declare_pass( SCCP ) -declare_pass( SimplifyLibCalls ) -declare_pass( StripSymbols ) -declare_pass( StripDeadPrototypes ) +declare_pass( DomOnlyPrinter ) +declare_pass( DomOnlyViewer ) +declare_pass( DomPrinter ) +declare_pass( DomViewer ) +declare_pass( EdgeProfiler ) +declare_pass( GEPSplitter ) +declare_pass( GlobalsModRef ) +declare_pass( InstCount ) +declare_pass( InstructionNamer ) +declare_pass( IPSCCP ) +declare_pass( LazyValueInfo ) +declare_pass( LCSSA ) +declare_pass( LiveValues ) +declare_pass( LoopDependenceAnalysis ) +declare_pass( LoopExtractor ) +declare_pass( LoopSimplify ) +declare_pass( LoopStrengthReduce ) +declare_pass( LowerInvoke ) +declare_pass( LowerSwitch ) +declare_pass( MergeFunctions ) +declare_pass( NoAA ) +declare_pass( NoProfileInfo ) +declare_pass( OptimalEdgeProfiler ) +declare_pass( PartialInlining ) +declare_pass( PartialSpecialization ) +declare_pass( PostDomOnlyPrinter ) +declare_pass( PostDomOnlyViewer ) +declare_pass( PostDomPrinter ) +declare_pass( PostDomViewer ) +declare_pass( ProfileEstimator ) +declare_pass( ProfileLoader ) +declare_pass( ProfileVerifier ) +declare_pass( ScalarEvolutionAliasAnalysis ) +declare_pass( SCCVN ) +declare_pass( SimplifyHalfPowrLibCalls ) +declare_pass( SingleLoopExtractor ) +declare_pass( SSI ) +declare_pass( SSIEverything ) +declare_pass( StripNonDebugSymbols ) declare_pass( StructRetPromotion ) -declare_pass( TailCallElimination ) declare_pass( TailDuplication ) +declare_pass( UnifyFunctionExitNodes ) + +declare_pass( Internalize ) #ifdef __cplusplus } /* extern "C" */ diff --git a/llvm/passes.py b/llvm/passes.py index 99b487d..282258b 100644 --- a/llvm/passes.py +++ b/llvm/passes.py @@ -42,69 +42,95 @@ import llvm._core as _core # C wrappers # passes -PASS_AGGRESSIVE_DCE = 1 -PASS_ARGUMENT_PROMOTION = 2 -PASS_BLOCK_PLACEMENT = 3 -PASS_BREAK_CRITICAL_EDGES = 4 -PASS_CODE_GEN_PREPARE = 5 -PASS_COND_PROPAGATION = 6 -PASS_CONSTANT_MERGE = 7 -PASS_CONSTANT_PROPAGATION = 8 -PASS_DEAD_CODE_ELIMINATION = 9 -PASS_DEAD_ARG_ELIMINATION = 10 -PASS_DEAD_TYPE_ELIMINATION = 11 -PASS_DEAD_INST_ELIMINATION = 12 -PASS_DEAD_STORE_ELIMINATION = 13 -# PASS_GCSE = 14: removed in LLVM 2.4 -PASS_GLOBAL_DCE = 15 -PASS_GLOBAL_OPTIMIZER = 16 -PASS_GVN = 17 -PASS_GVNPRE = 18 -PASS_IND_MEM_REM = 19 -PASS_IND_VAR_SIMPLIFY = 20 -PASS_FUNCTION_INLINING = 21 -PASS_BLOCK_PROFILER = 22 -PASS_EDGE_PROFILER = 23 -PASS_FUNCTION_PROFILER = 24 -PASS_NULL_PROFILER_RS = 25 -PASS_RS_PROFILING = 26 -PASS_INSTRUCTION_COMBINING = 27 -PASS_INTERNALIZE = 28 -PASS_IP_CONSTANT_PROPAGATION = 29 -PASS_IPSCCP = 30 -PASS_JUMP_THREADING = 31 -PASS_LCSSA = 32 -PASS_LICM = 33 -PASS_LOOP_DELETION = 34 -PASS_LOOP_EXTRACTOR = 35 -PASS_SINGLE_LOOP_EXTRACTOR = 36 -PASS_LOOP_INDEX_SPLIT = 37 -PASS_LOOP_STRENGTH_REDUCE = 38 -PASS_LOOP_ROTATE = 39 -PASS_LOOP_UNROLL = 40 -PASS_LOOP_UNSWITCH = 41 -PASS_LOOP_SIMPLIFY = 42 -PASS_LOWER_ALLOCATIONS = 43 -PASS_LOWER_INVOKE = 44 -PASS_LOWER_SET_JMP = 45 -PASS_LOWER_SWITCH = 46 -PASS_PROMOTE_MEMORY_TO_REGISTER = 47 -PASS_MEM_CPY_OPT = 48 -PASS_UNIFY_FUNCTION_EXIT_NODES = 49 -PASS_PREDICATE_SIMPLIFIER = 50 -PASS_PRUNE_EH = 51 -PASS_RAISE_ALLOCATIONS = 52 -PASS_REASSOCIATE = 53 -PASS_DEMOTE_REGISTER_TO_MEMORY = 54 -PASS_SCALAR_REPL_AGGREGATES = 55 -PASS_SCCP = 56 -PASS_SIMPLIFY_LIB_CALLS = 57 -PASS_CFG_SIMPLIFICATION = 58 -PASS_STRIP_SYMBOLS = 59 -PASS_STRIP_DEAD_PROTOTYPES = 60 -PASS_STRUCT_RET_PROMOTION = 61 -PASS_TAIL_CALL_ELIMINATION = 62 -PASS_TAIL_DUPLICATION = 63 +PASS_AAEVAL = 1 +PASS_ABCD = 2 +PASS_AGGRESSIVE_DCE = 3 +PASS_ALIAS_ANALYSIS_COUNTER = 4 +PASS_ALWAYS_INLINER = 5 +PASS_ARGUMENT_PROMOTION = 6 +PASS_BASIC_ALIAS_ANALYSIS = 7 +PASS_BLOCK_PLACEMENT = 8 +PASS_BREAK_CRITICAL_EDGES = 9 +PASS_CFG_SIMPLIFICATION = 10 +PASS_CODE_GEN_PREPARE = 11 +PASS_CONSTANT_MERGE = 12 +PASS_CONSTANT_PROPAGATION = 13 +PASS_DBG_INFO_PRINTER = 14 +PASS_DEAD_ARG_ELIMINATION = 15 +PASS_DEAD_CODE_ELIMINATION = 16 +PASS_DEAD_INST_ELIMINATION = 17 +PASS_DEAD_STORE_ELIMINATION = 18 +PASS_DEAD_TYPE_ELIMINATION = 19 +PASS_DEMOTE_REGISTER_TO_MEMORY = 20 +PASS_DOM_ONLY_PRINTER = 21 +PASS_DOM_ONLY_VIEWER = 22 +PASS_DOM_PRINTER = 23 +PASS_DOM_VIEWER = 24 +PASS_EDGE_PROFILER = 25 +PASS_FUNCTION_ATTRS = 26 +PASS_FUNCTION_INLINING = 27 +PASS_GEP_SPLITTER = 28 +PASS_GLOBAL_DCE = 29 +PASS_GLOBAL_OPTIMIZER = 30 +PASS_GLOBALS_MOD_REF = 31 +PASS_GVN = 32 +PASS_IND_VAR_SIMPLIFY = 33 +PASS_INST_COUNT = 34 +PASS_INSTRUCTION_COMBINING = 35 +PASS_INSTRUCTION_NAMER = 36 +PASS_IP_CONSTANT_PROPAGATION = 37 +PASS_IPSCCP = 38 +PASS_JUMP_THREADING = 39 +PASS_LAZY_VALUE_INFO = 40 +PASS_LCSSA = 41 +PASS_LICM = 42 +PASS_LIVE_VALUES = 43 +PASS_LOOP_DELETION = 44 +PASS_LOOP_DEPENDENCE_ANALYSIS = 45 +PASS_LOOP_EXTRACTOR = 46 +PASS_LOOP_INDEX_SPLIT = 47 +PASS_LOOP_ROTATE = 48 +PASS_LOOP_SIMPLIFY = 49 +PASS_LOOP_STRENGTH_REDUCE = 50 +PASS_LOOP_UNROLL = 51 +PASS_LOOP_UNSWITCH = 52 +PASS_LOWER_INVOKE = 53 +PASS_LOWER_SET_JMP = 54 +PASS_LOWER_SWITCH = 55 +PASS_MEM_CPY_OPT = 56 +PASS_MERGE_FUNCTIONS = 57 +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_PROFILE_ESTIMATOR = 67 +PASS_PROFILE_LOADER = 68 +PASS_PROFILE_VERIFIER = 69 +PASS_PROMOTE_MEMORY_TO_REGISTER = 70 +PASS_PRUNE_EH = 71 +PASS_REASSOCIATE = 72 +PASS_SCALAR_EVOLUTION_ALIAS_ANALYSIS = 73 +PASS_SCALAR_REPL_AGGREGATES = 74 +PASS_SCCVN = 75 +PASS_SCCP = 76 +PASS_SIMPLIFY_HALF_POWR_LIB_CALLS = 77 +PASS_SIMPLIFY_LIB_CALLS = 78 +PASS_SINGLE_LOOP_EXTRACTOR = 79 +PASS_SSI = 80 +PASS_SSI_EVERYTHING = 81 +PASS_STRIP_DEAD_PROTOTYPES = 82 +PASS_STRIP_NON_DEBUG_SYMBOLS = 83 +PASS_STRIP_SYMBOLS = 84 +PASS_STRUCT_RET_PROMOTION = 85 +PASS_TAIL_CALL_ELIMINATION = 86 +PASS_TAIL_DUPLICATION = 87 +PASS_UNIFY_FUNCTION_EXIT_NODES = 88 +PASS_INTERNALIZE = 89 @@ -113,69 +139,95 @@ PASS_TAIL_DUPLICATION = 63 #===----------------------------------------------------------------------=== _pass_creator = { - PASS_AGGRESSIVE_DCE : _core.LLVMAddAggressiveDCEPass, - PASS_ARGUMENT_PROMOTION : _core.LLVMAddArgumentPromotionPass, - PASS_BLOCK_PLACEMENT : _core.LLVMAddBlockPlacementPass, - PASS_BREAK_CRITICAL_EDGES : _core.LLVMAddBreakCriticalEdgesPass, - PASS_CODE_GEN_PREPARE : _core.LLVMAddCodeGenPreparePass, - PASS_COND_PROPAGATION : _core.LLVMAddCondPropagationPass, - PASS_CONSTANT_MERGE : _core.LLVMAddConstantMergePass, - PASS_CONSTANT_PROPAGATION : _core.LLVMAddConstantPropagationPass, - PASS_DEAD_CODE_ELIMINATION : _core.LLVMAddDeadCodeEliminationPass, - PASS_DEAD_ARG_ELIMINATION : _core.LLVMAddDeadArgEliminationPass, - PASS_DEAD_TYPE_ELIMINATION : _core.LLVMAddDeadTypeEliminationPass, - PASS_DEAD_INST_ELIMINATION : _core.LLVMAddDeadInstEliminationPass, - PASS_DEAD_STORE_ELIMINATION : _core.LLVMAddDeadStoreEliminationPass, - # PASS_GCSE : _core.LLVMAddGCSEPass,: removed in LLVM 2.4. - PASS_GLOBAL_DCE : _core.LLVMAddGlobalDCEPass, - PASS_GLOBAL_OPTIMIZER : _core.LLVMAddGlobalOptimizerPass, - PASS_GVN : _core.LLVMAddGVNPass, - PASS_GVNPRE : _core.LLVMAddGVNPREPass, - PASS_IND_MEM_REM : _core.LLVMAddIndMemRemPass, - PASS_IND_VAR_SIMPLIFY : _core.LLVMAddIndVarSimplifyPass, - PASS_FUNCTION_INLINING : _core.LLVMAddFunctionInliningPass, - PASS_BLOCK_PROFILER : _core.LLVMAddBlockProfilerPass, - PASS_EDGE_PROFILER : _core.LLVMAddEdgeProfilerPass, - PASS_FUNCTION_PROFILER : _core.LLVMAddFunctionProfilerPass, - PASS_NULL_PROFILER_RS : _core.LLVMAddNullProfilerRSPass, - PASS_RS_PROFILING : _core.LLVMAddRSProfilingPass, - PASS_INSTRUCTION_COMBINING : _core.LLVMAddInstructionCombiningPass, - PASS_INTERNALIZE : _core.LLVMAddInternalizePass, - PASS_IP_CONSTANT_PROPAGATION : _core.LLVMAddIPConstantPropagationPass, - PASS_IPSCCP : _core.LLVMAddIPSCCPPass, - PASS_JUMP_THREADING : _core.LLVMAddJumpThreadingPass, - PASS_LCSSA : _core.LLVMAddLCSSAPass, - PASS_LICM : _core.LLVMAddLICMPass, - PASS_LOOP_DELETION : _core.LLVMAddLoopDeletionPass, - PASS_LOOP_EXTRACTOR : _core.LLVMAddLoopExtractorPass, - PASS_SINGLE_LOOP_EXTRACTOR : _core.LLVMAddSingleLoopExtractorPass, - PASS_LOOP_INDEX_SPLIT : _core.LLVMAddLoopIndexSplitPass, - PASS_LOOP_STRENGTH_REDUCE : _core.LLVMAddLoopStrengthReducePass, - PASS_LOOP_ROTATE : _core.LLVMAddLoopRotatePass, - PASS_LOOP_UNROLL : _core.LLVMAddLoopUnrollPass, - PASS_LOOP_UNSWITCH : _core.LLVMAddLoopUnswitchPass, - PASS_LOOP_SIMPLIFY : _core.LLVMAddLoopSimplifyPass, - PASS_LOWER_ALLOCATIONS : _core.LLVMAddLowerAllocationsPass, - PASS_LOWER_INVOKE : _core.LLVMAddLowerInvokePass, - PASS_LOWER_SET_JMP : _core.LLVMAddLowerSetJmpPass, - PASS_LOWER_SWITCH : _core.LLVMAddLowerSwitchPass, - PASS_PROMOTE_MEMORY_TO_REGISTER : _core.LLVMAddPromoteMemoryToRegisterPass, - PASS_MEM_CPY_OPT : _core.LLVMAddMemCpyOptPass, - PASS_UNIFY_FUNCTION_EXIT_NODES : _core.LLVMAddUnifyFunctionExitNodesPass, - PASS_PREDICATE_SIMPLIFIER : _core.LLVMAddPredicateSimplifierPass, - PASS_PRUNE_EH : _core.LLVMAddPruneEHPass, - PASS_RAISE_ALLOCATIONS : _core.LLVMAddRaiseAllocationsPass, - PASS_REASSOCIATE : _core.LLVMAddReassociatePass, - PASS_DEMOTE_REGISTER_TO_MEMORY : _core.LLVMAddDemoteRegisterToMemoryPass, - PASS_SCALAR_REPL_AGGREGATES : _core.LLVMAddScalarReplAggregatesPass, - PASS_SCCP : _core.LLVMAddSCCPPass, - PASS_SIMPLIFY_LIB_CALLS : _core.LLVMAddSimplifyLibCallsPass, - PASS_CFG_SIMPLIFICATION : _core.LLVMAddCFGSimplificationPass, - PASS_STRIP_SYMBOLS : _core.LLVMAddStripSymbolsPass, - PASS_STRIP_DEAD_PROTOTYPES : _core.LLVMAddStripDeadPrototypesPass, - PASS_STRUCT_RET_PROMOTION : _core.LLVMAddStructRetPromotionPass, - PASS_TAIL_CALL_ELIMINATION : _core.LLVMAddTailCallEliminationPass, - PASS_TAIL_DUPLICATION : _core.LLVMAddTailDuplicationPass, + PASS_AAEVAL : _core.LLVMAddAAEvalPass, + PASS_ABCD : _core.LLVMAddABCDPass, + PASS_AGGRESSIVE_DCE : _core.LLVMAddAggressiveDCEPass, + PASS_ALIAS_ANALYSIS_COUNTER : _core.LLVMAddAliasAnalysisCounterPass, + PASS_ALWAYS_INLINER : _core.LLVMAddAlwaysInlinerPass, + PASS_ARGUMENT_PROMOTION : _core.LLVMAddArgumentPromotionPass, + PASS_BASIC_ALIAS_ANALYSIS : _core.LLVMAddBasicAliasAnalysisPass, + PASS_BLOCK_PLACEMENT : _core.LLVMAddBlockPlacementPass, + PASS_BREAK_CRITICAL_EDGES : _core.LLVMAddBreakCriticalEdgesPass, + PASS_CFG_SIMPLIFICATION : _core.LLVMAddCFGSimplificationPass, + PASS_CODE_GEN_PREPARE : _core.LLVMAddCodeGenPreparePass, + PASS_CONSTANT_MERGE : _core.LLVMAddConstantMergePass, + PASS_CONSTANT_PROPAGATION : _core.LLVMAddConstantPropagationPass, + PASS_DBG_INFO_PRINTER : _core.LLVMAddDbgInfoPrinterPass, + PASS_DEAD_ARG_ELIMINATION : _core.LLVMAddDeadArgEliminationPass, + PASS_DEAD_CODE_ELIMINATION : _core.LLVMAddDeadCodeEliminationPass, + PASS_DEAD_INST_ELIMINATION : _core.LLVMAddDeadInstEliminationPass, + PASS_DEAD_STORE_ELIMINATION : _core.LLVMAddDeadStoreEliminationPass, + PASS_DEAD_TYPE_ELIMINATION : _core.LLVMAddDeadTypeEliminationPass, + PASS_DEMOTE_REGISTER_TO_MEMORY : _core.LLVMAddDemoteRegisterToMemoryPass, + PASS_DOM_ONLY_PRINTER : _core.LLVMAddDomOnlyPrinterPass, + PASS_DOM_ONLY_VIEWER : _core.LLVMAddDomOnlyViewerPass, + PASS_DOM_PRINTER : _core.LLVMAddDomPrinterPass, + PASS_DOM_VIEWER : _core.LLVMAddDomViewerPass, + PASS_EDGE_PROFILER : _core.LLVMAddEdgeProfilerPass, + PASS_FUNCTION_ATTRS : _core.LLVMAddFunctionAttrsPass, + PASS_FUNCTION_INLINING : _core.LLVMAddFunctionInliningPass, + PASS_GEP_SPLITTER : _core.LLVMAddGEPSplitterPass, + PASS_GLOBAL_DCE : _core.LLVMAddGlobalDCEPass, + PASS_GLOBAL_OPTIMIZER : _core.LLVMAddGlobalOptimizerPass, + PASS_GLOBALS_MOD_REF : _core.LLVMAddGlobalsModRefPass, + PASS_GVN : _core.LLVMAddGVNPass, + PASS_IND_VAR_SIMPLIFY : _core.LLVMAddIndVarSimplifyPass, + PASS_INST_COUNT : _core.LLVMAddInstCountPass, + PASS_INSTRUCTION_COMBINING : _core.LLVMAddInstructionCombiningPass, + PASS_INSTRUCTION_NAMER : _core.LLVMAddInstructionNamerPass, + PASS_IP_CONSTANT_PROPAGATION : _core.LLVMAddIPConstantPropagationPass, + PASS_IPSCCP : _core.LLVMAddIPSCCPPass, + PASS_JUMP_THREADING : _core.LLVMAddJumpThreadingPass, + PASS_LAZY_VALUE_INFO : _core.LLVMAddLazyValueInfoPass, + PASS_LCSSA : _core.LLVMAddLCSSAPass, + PASS_LICM : _core.LLVMAddLICMPass, + 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_ROTATE : _core.LLVMAddLoopRotatePass, + PASS_LOOP_SIMPLIFY : _core.LLVMAddLoopSimplifyPass, + PASS_LOOP_STRENGTH_REDUCE : _core.LLVMAddLoopStrengthReducePass, + PASS_LOOP_UNROLL : _core.LLVMAddLoopUnrollPass, + PASS_LOOP_UNSWITCH : _core.LLVMAddLoopUnswitchPass, + PASS_LOWER_INVOKE : _core.LLVMAddLowerInvokePass, + PASS_LOWER_SET_JMP : _core.LLVMAddLowerSetJmpPass, + PASS_LOWER_SWITCH : _core.LLVMAddLowerSwitchPass, + PASS_MEM_CPY_OPT : _core.LLVMAddMemCpyOptPass, + PASS_MERGE_FUNCTIONS : _core.LLVMAddMergeFunctionsPass, + PASS_NO_AA : _core.LLVMAddNoAAPass, + 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_PROFILE_ESTIMATOR : _core.LLVMAddProfileEstimatorPass, + PASS_PROFILE_LOADER : _core.LLVMAddProfileLoaderPass, + PASS_PROFILE_VERIFIER : _core.LLVMAddProfileVerifierPass, + PASS_PROMOTE_MEMORY_TO_REGISTER : _core.LLVMAddPromoteMemoryToRegisterPass, + PASS_PRUNE_EH : _core.LLVMAddPruneEHPass, + PASS_REASSOCIATE : _core.LLVMAddReassociatePass, + PASS_SCALAR_EVOLUTION_ALIAS_ANALYSIS : _core.LLVMAddScalarEvolutionAliasAnalysisPass, + PASS_SCALAR_REPL_AGGREGATES : _core.LLVMAddScalarReplAggregatesPass, + PASS_SCCVN : _core.LLVMAddSCCVNPass, + PASS_SCCP : _core.LLVMAddSCCPPass, + PASS_SIMPLIFY_HALF_POWR_LIB_CALLS : _core.LLVMAddSimplifyHalfPowrLibCallsPass, + PASS_SIMPLIFY_LIB_CALLS : _core.LLVMAddSimplifyLibCallsPass, + PASS_SINGLE_LOOP_EXTRACTOR : _core.LLVMAddSingleLoopExtractorPass, + PASS_SSI : _core.LLVMAddSSIPass, + PASS_SSI_EVERYTHING : _core.LLVMAddSSIEverythingPass, + PASS_STRIP_DEAD_PROTOTYPES : _core.LLVMAddStripDeadPrototypesPass, + PASS_STRIP_NON_DEBUG_SYMBOLS : _core.LLVMAddStripNonDebugSymbolsPass, + PASS_STRIP_SYMBOLS : _core.LLVMAddStripSymbolsPass, + PASS_STRUCT_RET_PROMOTION : _core.LLVMAddStructRetPromotionPass, + PASS_TAIL_CALL_ELIMINATION : _core.LLVMAddTailCallEliminationPass, + PASS_TAIL_DUPLICATION : _core.LLVMAddTailDuplicationPass, + PASS_UNIFY_FUNCTION_EXIT_NODES : _core.LLVMAddUnifyFunctionExitNodesPass, + PASS_INTERNALIZE : _core.LLVMAddInternalizePass, } diff --git a/setup.py b/setup.py index ab8ed35..6d0797a 100755 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -# Copyright (c) 2008, Mahadevan R All rights reserved. +# Copyright (c) 2008-10, Mahadevan R All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: diff --git a/test/testall.py b/test/testall.py index de6f030..177e40d 100755 --- a/test/testall.py +++ b/test/testall.py @@ -573,8 +573,10 @@ def do_passmanager(): print " Testing class PassManager" pm = PassManager.new() pm.add(TargetData.new('')) - for i in range(1, 10): - pm.add(i) + for i in range(1, 90): + if i not in (PASS_OPTIMAL_EDGE_PROFILER, + PASS_EDGE_PROFILER, PASS_PROFILE_LOADER, PASS_AAEVAL): + pm.add(i) pm.run(Module.new('a'))