Static Detection of Loop-Invariant Data Structures

8 years 6 months ago
Static Detection of Loop-Invariant Data Structures
As a culture, object-orientation encourages programmers to create objects, both short- and long-lived, without concern for cost. Excessive object creation and initialization can cause severe runtime bloat, which degrades significantly application performance and scalability. A frequently-occurring coding pattern that may lead to large volumes of (temporary) objects is the creation of objects that, while allocated per loop iteration, contain values independent of specific iterations. Finding these objects and moving them out of loops requires sophisticated interprocedural analysis, a task that is difficult for traditional dataflow analyses such as loop-invariant code motion to accomplish. Our work targets data structures that are loop-invariant, and presents a static type and effect system to detect loop-invariant data structures. For each loop, our analysis inspects each logical data structure in order to find those that have disjoint instances per loop iteration and contain loop-i...
Guoqing (Harry) Xu, Dacong Yan, Atanas Rountev
Added 28 Sep 2012
Updated 28 Sep 2012
Type Journal
Year 2012
Authors Guoqing (Harry) Xu, Dacong Yan, Atanas Rountev
Comments (0)