Test environment running 7.6.6

Cultural advice

The Australian National University acknowledges, celebrates and pays our respects to the Ngunnawal and Ngambri people of the Canberra region and to all First Nations Australians on whose traditional lands we meet and work, and whose cultures are among the oldest continuing cultures in human history.

Aboriginal and Torres Strait Islander peoples are advised that ANU Library collections may include images, names, voices, and other representations of deceased persons.

Material in the collection may contain terms, language or views that reflect the period in which the item was created and may be considered inappropriate today.

Partial redundancy elimination for access path expressions

dc.contributor.authorHosking, Antony L.en
dc.contributor.authorNystrom, Nathanielen
dc.contributor.authorWhitlock, Daviden
dc.contributor.authorCutts, Quintinen
dc.contributor.authorDiwan, Ameren
dc.date.accessioned2025-03-14T22:32:53Z
dc.date.available2025-03-14T22:32:53Z
dc.date.issued2001en
dc.description.abstractPointer traversals pose significant overhead to the execution of object-oriented programs, since every access to an object's state requires a pointer dereference. Eliminating redundant pointer traversals reduces both instructions executed as well as redundant memory accesses to relieve pressure on the memory subsystem. We describe an approach to elimination of redundant access expressions that combines partial redundancy elimination (PRE) with type-based alias analysis (TBAA). To explore the potential of this approach we have implemented an optimization framework for Java class files incorporating TBAA-based PRE over pointer access expressions. The framework is implemented as a class-file-to-class-file transformer; optimized classes can then be run in any standard Java execution environment. Our experiments demonstrate improvements in the execution of optimized code for several Java benchmarks running in diverse execution environments: the standard interpreted JDK virtual machine, a virtual machine using 'just-in-time' compilation, and native binaries compiled off-line ('way-ahead-of-time'). Overall, however, our experience is of mixed success with the optimizations, mainly because of the isolation between our optimizer and the underlying execution environments which prevents more effective cooperation between them. We isolate the impact of access path PRE using TBAA, and demonstrate that Java's requirement of precise exceptions can noticeably impact code-motion optimizations like PRE.en
dc.description.statustrueen
dc.format.extent24en
dc.identifier.otherresearchoutputwizard:U3488905xPUB25546en
dc.identifier.otherScopus:0035337479en
dc.identifier.urihttps://dspace-test.anu.edu.au/handle/1885/733716177
dc.identifier.urlhttp://www.scopus.com/inward/record.url?scp=0035337479&partnerID=8YFLogxKen
dc.language.isoEnglishen
dc.sourceSoftware - Practice and Experienceen
dc.subjectCache memoriesen
dc.subjectCode generationen
dc.subjectIncremental compilersen
dc.subjectLanguage preprocessorsen
dc.subjectObject representationen
dc.subjectObject-oriented languagesen
dc.subjectOptimizationen
dc.subjectPerformance evaluationen
dc.subjectRun-time environmentsen
dc.subjectVirtual machinesen
dc.titlePartial redundancy elimination for access path expressionsen
dc.typeArticleen
local.bibliographicCitation.lastpage600en
local.bibliographicCitation.startpage577en
local.contributor.affiliationHosking, Antony L.; Purdue Universityen
local.contributor.affiliationNystrom, Nathaniel; Purdue Universityen
local.contributor.affiliationWhitlock, David; Purdue Universityen
local.contributor.affiliationCutts, Quintin; University of Glasgowen
local.contributor.affiliationDiwan, Amer; University of Colorado Boulderen
local.identifier.citationvolume31en
local.identifier.doi10.1002/spe.371en
local.identifier.pureac98f39d-9b38-460f-bbab-bcae87c82ddden
local.type.statusPublisheden

Downloads