About: Loop splitting is a research topic. Over the lifetime, 252 publications have been published within this topic receiving 4980 citations. The topic is also known as: loop peeling.
TL;DR: This work presents a general parameterized method for code generation based on dual representation of polyhedra that uses a simple recursion on the dimensions of the domains, and enables fine control over the tradeoff between code size and control overhead.
Abstract: Automatic parallelization in the polyhedral model is based on affine transformations from an original computation domain (iteration space) to a target space-time domain, often with a different transformation for each variable. Code generation is an often ignored step in this process that has a significant impact on the quality of the final code. It involves making a trade-off between code size and control code simplification/optimization. Previous methods of doing code generation are based on loop splitting, however they have nonoptimal behavior when working on parameterized programs. We present a general parameterized method for code generation based on dual representation of polyhedra. Our algorithm uses a simple recursion on the dimensions of the domains, and enables fine control over the tradeoff between code size and control overhead.
TL;DR: The goal of this paper is to study, from a theoretical point of view, several variants of the loop fusion problem -- identifying polynomially solvable cases and NP-complete cases -- and to make the link between these problems and some scheduling problems that arise from completely different areas.
Abstract: Loop fusion is a program transformation that combines several loops into one. It is used in parallelizing compilers mainly for increasing the granularity of loops and for improving data reuse. The goal of this paper is to study, from a theoretical point of view, several variants of the loop fusion problem – identifying polynomially solvable cases and NP-complete cases – and to make the link between these problems and some scheduling problems that arise from completely different areas. We study, among others, the fusion of loops of different types, and the fusion of loops when combined with loop shifting.
TL;DR: Iterative type analysis and extended message splitting are new compilation techniques that extract much of the necessary type information and make it possible to hoist run-time type tests out of loops.
Abstract: Object-oriented languages have suffered from poor performance caused by frequent and slow dynamically-bound procedure calls The best way to speed up a procedure call is to compile it out, but dynamic binding of object-oriented procedure calls without static receiver type information precludes inlining Iterative type analysis and extended message splitting are new compilation techniques that extract much of the necessary type information and make it possible to hoist run-time type tests out of loopsOur system compiles code on-the-fly that is customized to the actual data types used by a running program The compiler constructs a control flow graph annotated with type information by simultaneously performing type analysis and inlining Extended message splitting preserves type information that would otherwise be lost by a control-flow merge by duplicating all the code between the merge and the place that uses the information Iterative type analysis computes the types of variables used in a loop by repeatedly recompiling the loop until the computed types reach a fix-point Together these two techniques enable our SELF compiler to split off a copy of an entire loop, optimized for the common-case typesBy the time our SELF compiler generates code for the graph, it has eliminated many dynamically-dispatched procedure calls and type tests The resulting machine code is twice as fast as that generated by the previous SELF compiler, four times faster than ParcPlace Systems Smalltalk-80,* the fastest commercially available dynamically-typed object-oriented language implementation, and nearly half the speed of optimized C Iterative type analysis and extended message splitting have cut the performance penalty for dynamically-typed object-oriented languages in half
TL;DR: In this paper, the authors recompute the functions describing the collinear factorization of one-loop amplitudes using the unitarity-based method and present the results in a form suitable for use as an ingredient in two-loop calculations.
Abstract: We recompute the functions describing the collinear factorization of one-loop amplitudes using the unitarity-based method. We present the results in a form suitable for use as an ingredient in two-loop calculations. We also present a function summarizing the behavior at one loop in both the soft and collinear limits.
TL;DR: In this paper, the spin-dependent next-to-leading order splitting functions are calculated in the light-cone gauge and the results for different prescriptions for the Dirac matrix are given.
Abstract: We present a complete description of the calculation of the spin-dependent next-to-leading order splitting functions. The calculation is performed in the light-cone gauge. We give results for different prescriptions for the Dirac matrix $\gamma_5$ in $d=4-2 \epsilon$ dimensions and provide the link to the results in dimensional reduction.