skip to main content
OSTI.GOV title logo U.S. Department of Energy
Office of Scientific and Technical Information

Title: Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations

Patent ·
OSTI ID:1088674

Mechanisms for aggressively optimizing computer code are provided. With these mechanisms, a compiler determines an optimization to apply to a portion of source code and determines if the optimization as applied to the portion of source code will result in unsafe optimized code that introduces a new source of exceptions being generated by the optimized code. In response to a determination that the optimization is an unsafe optimization, the compiler generates an aggressively compiled code version, in which the unsafe optimization is applied, and a conservatively compiled code version in which the unsafe optimization is not applied. The compiler stores both versions and provides them for execution. Mechanisms are provided for switching between these versions during execution in the event of a failure of the aggressively compiled code version. Moreover, predictive mechanisms are provided for predicting whether such a failure is likely.

Research Organization:
International Business Machines Corp., Armonk, NY (United States)
Sponsoring Organization:
USDOE
DOE Contract Number:
B554331
Assignee:
International Business Machines Corporation (Armonk, NY)
Patent Number(s):
8,495,607
Application Number:
12/714,877
OSTI ID:
1088674
Country of Publication:
United States
Language:
English

References (8)

System for software registration patent February 1996
Optimized Scalar Promotion with Load and Splat SIMD Instructions patent-application December 2009
Systems and methods for injecting an exception into a target thread patent September 2006
Processor extensions and software verification to support type-safe language environments running with untrusted code patent May 2008
Transactional memory: architectural support for lock-free data structures conference January 1993
Performance pathologies in hardware transactional memory conference January 2007
Method and apparatus for an improved code optimizer for pipelined computers patent July 1999
Compiler support for optimizing decomposed software transactional memory operations patent-application July 2007