Container classes in object-oriented languages often suffer from the problem of compiler-generated temporaries. Storage is allocated for each intermediate result in each expression, introducing huge penalties to performance. Loop fusion and array contraction, the most closely related compiler optimizations to this problem, are not powerful enough to optimize the container classes. The current workaround is to perform a manual optimization called Expression Templates (ETs), which utilizes C++ templates to perform arbitrary code generation, but is a very messy and inefficient way of doing things. We present a compiler alternative to ETs that uses programmer annotations to eliminate temporaries through expression fusion. Our solution ...
C++ does not support run-time resolution of template type arguments. To circumvent this restriction,...
Action Semantics is a new and interesting foundation for semantics based compiler generation. In th...
Abstract. Template metaprogramming (TMP) is an emerging new di-rection in C++ programming for execut...
Container classes in object-oriented languages often suffer from the problem of compiler-generated ...
Ever-increasing size and complexity of software applications and libraries in scien-ti c computing i...
C++ has gained broad acceptance as an object-oriented evolutionary extension to the C language, but ...
AbstractGeneric programming with C++ templates results in efficient but inflexible code: efficient, ...
International audienceConcepts are likely to be introduced in a future C++ standard. They can be use...
Abstract. The C++ language provides a two-layer execution model: static execution of meta-programs a...
C++ does not support run-time resolution of template type arguments. To circumvent this restriction,...
Software Engineering progresses as improvements are made in languages and methodologies. Significant...
Abstract. Optimizing compilers have a long history of applying loop transformations to C and Fortran...
Large scale scientific computing raises questions on different levels ranging from the fomulation of...
Abstract. Optimizing compilers have a long history of applying loop transformations to C and Fortran...
Compiler design is a well researched area of computer science. Typically, compiler designers use a p...
C++ does not support run-time resolution of template type arguments. To circumvent this restriction,...
Action Semantics is a new and interesting foundation for semantics based compiler generation. In th...
Abstract. Template metaprogramming (TMP) is an emerging new di-rection in C++ programming for execut...
Container classes in object-oriented languages often suffer from the problem of compiler-generated ...
Ever-increasing size and complexity of software applications and libraries in scien-ti c computing i...
C++ has gained broad acceptance as an object-oriented evolutionary extension to the C language, but ...
AbstractGeneric programming with C++ templates results in efficient but inflexible code: efficient, ...
International audienceConcepts are likely to be introduced in a future C++ standard. They can be use...
Abstract. The C++ language provides a two-layer execution model: static execution of meta-programs a...
C++ does not support run-time resolution of template type arguments. To circumvent this restriction,...
Software Engineering progresses as improvements are made in languages and methodologies. Significant...
Abstract. Optimizing compilers have a long history of applying loop transformations to C and Fortran...
Large scale scientific computing raises questions on different levels ranging from the fomulation of...
Abstract. Optimizing compilers have a long history of applying loop transformations to C and Fortran...
Compiler design is a well researched area of computer science. Typically, compiler designers use a p...
C++ does not support run-time resolution of template type arguments. To circumvent this restriction,...
Action Semantics is a new and interesting foundation for semantics based compiler generation. In th...
Abstract. Template metaprogramming (TMP) is an emerging new di-rection in C++ programming for execut...