Interprocedural symbolic analysis

作者: Paul Howard Havlak , Ken Kennedy

DOI:

关键词: Constant (computer programming)Program analysisFortranTransformation (function)Set (abstract data type)CompilerAlgorithmArithmeticSymbolic data analysisComputer scienceSide effect (computer science)

摘要: Compiling for efficient execution on advanced computer architectures requires extensive program analysis and transformation. Most compilers limit their to simple phenomena within single procedures, limiting effective optimization of modular codes making the programmer's job harder. We present methods analyzing array side effects comparing nonconstant values computed in same different procedures. Regular sections, described by rectangular bounds stride, prove as describing L scINPACK more complicated summary techniques. On a set six programs, regular section gives 0 39 percent reductions dependences at call sites, with 10 25 increases time. Symbolic is essential data dependence testing, analysis, other high-level manipulations. give building symbolic expressions from gated single-assignment form simplifying them arithmetically. suite 33 scientific Fortran testing yields 32 number dependences, compared constant propagation alone. The additional time space requirements appear proportional size analyzed. Interprocedural are enabling techniques operate multiple procedures. Our implementation provides this support while allowing recompilation approximate incrementalism separate compilation. However, direct improvement graphs interprocedural facts rare programs studied. Overall, use our production compiler justified efficiency, enhancement indirect through effect analysis.

参考文章(0)