Dataflow analysis is a well-understood and very powerful technique for analyzing programs as part of the compilation process. Virtually all compilers use some sort of dataflow analysis as part of their optimization phase. However, despite being well-understood theoretically, such analyses are often difficult to code, making it difficult to quickly experiment with variants. To address this, we developed a domain-specific language, Analyzer Generator (AG), that synthesizes dataflow analysis phases for Microsoft's Phoenix compiler framework. AG hides the fussy details needed to make analyses modular, yet generates code that is as efficient as the hand-coded equivalent. One key construct we introduce allows IR object classes to be extended with...
This paper describes how the use of software libraries, which is prevalent in high performance comp...
This paper describes a new approach to program optimization that allows general purpose code to bene...
The trade-offs between the use of modern high-level and low-level programming languages in construct...
AbstractDataflow analysis is a well-understood and very powerful technique for analyzing programs as...
Dataflow analysis is a well-understood and very powerful technique for analyzing programs as part of...
The compiler process, the one that transforms a program in a high level language into assembly or bi...
Dataflow analysis is a powerful tool used for program optimization, static analysis, and editor serv...
International audienceThis paper reports on the correctness proof of compiler optimizations based on...
Compilers are tools that transform a high level programming languages into assem- bly or binary cod...
We have seen numerous dataflow analyses in class. They have a lot more in common than one might thin...
Data-flow analysis is the static analysis of programs to estimate their approximate run-time behavio...
Dataflow graphs are a popular abstraction for describing computation, used in many systems for high-...
Dataflow has historically been motivated either by parallelism or programmability or some combinatio...
International audienceThis chapter reviews dataflow programming as a whole and presents a classifica...
Loss of precision due to the conservative nature of compile-time dataflow analysis is a general prob...
This paper describes how the use of software libraries, which is prevalent in high performance comp...
This paper describes a new approach to program optimization that allows general purpose code to bene...
The trade-offs between the use of modern high-level and low-level programming languages in construct...
AbstractDataflow analysis is a well-understood and very powerful technique for analyzing programs as...
Dataflow analysis is a well-understood and very powerful technique for analyzing programs as part of...
The compiler process, the one that transforms a program in a high level language into assembly or bi...
Dataflow analysis is a powerful tool used for program optimization, static analysis, and editor serv...
International audienceThis paper reports on the correctness proof of compiler optimizations based on...
Compilers are tools that transform a high level programming languages into assem- bly or binary cod...
We have seen numerous dataflow analyses in class. They have a lot more in common than one might thin...
Data-flow analysis is the static analysis of programs to estimate their approximate run-time behavio...
Dataflow graphs are a popular abstraction for describing computation, used in many systems for high-...
Dataflow has historically been motivated either by parallelism or programmability or some combinatio...
International audienceThis chapter reviews dataflow programming as a whole and presents a classifica...
Loss of precision due to the conservative nature of compile-time dataflow analysis is a general prob...
This paper describes how the use of software libraries, which is prevalent in high performance comp...
This paper describes a new approach to program optimization that allows general purpose code to bene...
The trade-offs between the use of modern high-level and low-level programming languages in construct...