Compiler Construction

A graph-coloring register allocator that optimally allocates registers for structured programs in polynomial time is presented. It can handle register aliasing. The assignment of registers is optimal with respect to spill and rematerialization costs, register preferences and coalescing. The register allocator is not restricted to programs in SSA form or chordal interference graphs. It assumes the number of registers is to be fixed and requires the input program to be structured, which is automatically true for many programming languages and for others, such as C, is equivalent to a bound on the number of goto labels per function. Non-structured programs can be handled at the cost of either a loss of optimality or an increase in runtime. This is the first optimal approach that has polynomial runtime and works for such a huge class of programs. An implementation is already the default register allocator in most backends of a mainstream cross-compiler for embedded systems.

[1]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[2]  David Zhang,et al.  Secure program execution via dynamic information flow tracking , 2004, ASPLOS XI.

[3]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[4]  Andreas Podelski,et al.  Boolean Heaps , 2005, SAS.

[5]  Guofei Gu,et al.  TaintScope: A Checksum-Aware Directed Fuzzing Tool for Automatic Software Vulnerability Detection , 2010, 2010 IEEE Symposium on Security and Privacy.

[6]  Thomas Johnsson,et al.  The GRIN Project: A Highly Optimising Back End for Lazy Functional Languages , 1996, Implementation of Functional Languages.

[7]  Zhi Wang,et al.  ReFormat: Automatic Reverse Engineering of Encrypted Messages , 2009, ESORICS.

[8]  Herbert Bos,et al.  Pointless tainting?: evaluating the practicality of pointer tainting , 2009, EuroSys '09.

[9]  Wei Xu,et al.  Taint-Enhanced Policy Enforcement: A Practical Approach to Defeat a Wide Range of Attacks , 2006, USENIX Security Symposium.

[10]  Manu Sridharan,et al.  TAJ: effective taint analysis of web applications , 2009, PLDI '09.

[11]  Axel Simon Splitting the Control Flow with Boolean Flags , 2008, SAS.

[12]  Jörg Brauer,et al.  Existential Quantification as Incremental SAT , 2011, CAV.

[13]  Bor-Yuh Evan Chang,et al.  Relational inductive shape analysis , 2008, POPL '08.

[14]  Patrick Cousot,et al.  Systematic design of program analysis frameworks , 1979, POPL.

[15]  Thomas W. Reps,et al.  Recency-Abstraction for Heap-Allocated Storage , 2006, SAS.

[16]  Ondrej Lhoták,et al.  Points-to analysis using BDDs , 2003, PLDI '03.

[17]  Reinhard Wilhelm,et al.  Parametric shape analysis via 3-valued logic , 1999, POPL '99.

[18]  Hong-Seok Kim,et al.  Importance of heap specialization in pointer analysis , 2004, PASTE '04.

[19]  Axel Simon,et al.  Summarized Dimensions Revisited , 2012, NSAD@SAS.

[20]  Zhenkai Liang,et al.  BitBlaze: A New Approach to Computer Security via Binary Analysis , 2008, ICISS.

[21]  Thomas W. Reps,et al.  Statically Inferring Complex Heap, Array, and Numeric Invariants , 2010, SAS.

[22]  Jörg Brauer,et al.  Inferring Definite Counterexamples through Under-Approximation , 2012, NASA Formal Methods.

[23]  Thomas W. Reps,et al.  Finite differencing of logical formulas for static analysis , 2010, TOPL.

[24]  William Terrence McCloskey Practical Shape Analysis , 2010 .

[25]  Peter W. O'Hearn,et al.  Shape Analysis for Composite Data Structures , 2007, CAV.

[26]  R. Sekar,et al.  Efficient fine-grained binary instrumentationwith applications to taint-tracking , 2008, CGO '08.

[27]  Michael Hind,et al.  Which pointer analysis should I use? , 2000, ISSTA '00.

[28]  Lawrie Brown,et al.  Computer Security: Principles and Practice , 2007 .

[29]  Guru Venkataramani,et al.  FlexiTaint: A programmable accelerator for dynamic taint propagation , 2008, 2008 IEEE 14th International Symposium on High Performance Computer Architecture.

[30]  Peter W. O'Hearn,et al.  Compositional Shape Analysis by Means of Bi-Abduction , 2011, JACM.