Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations
Abstract
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.
- Inventors:
- Issue Date:
- Research Org.:
- International Business Machines Corp., Armonk, NY (United States)
- Sponsoring Org.:
- USDOE
- OSTI Identifier:
- 1088674
- Patent Number(s):
- 8495607
- Application Number:
- 12/714,877
- Assignee:
- International Business Machines Corporation (Armonk, NY)
- Patent Classifications (CPCs):
-
G - PHYSICS G06 - COMPUTING G06F - ELECTRIC DIGITAL DATA PROCESSING
- DOE Contract Number:
- B554331
- Resource Type:
- Patent
- Country of Publication:
- United States
- Language:
- English
- Subject:
- 97 MATHEMATICS AND COMPUTING
Citation Formats
Gschwind, Michael K. Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations. United States: N. p., 2013.
Web.
Gschwind, Michael K. Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations. United States.
Gschwind, Michael K. Tue .
"Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations". United States. https://www.osti.gov/servlets/purl/1088674.
@article{osti_1088674,
title = {Performing aggressive code optimization with an ability to rollback changes made by the aggressive optimizations},
author = {Gschwind, Michael K},
abstractNote = {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.},
doi = {},
journal = {},
number = ,
volume = ,
place = {United States},
year = {Tue Jul 23 00:00:00 EDT 2013},
month = {Tue Jul 23 00:00:00 EDT 2013}
}
Works referenced in this record:
System for software registration
patent, February 1996
- Richardson, III, Frederic B.
- US Patent Document 5,490,216
Optimized Scalar Promotion with Load and Splat SIMD Instructions
patent-application, December 2009
- Eichenberger, Alexandre E.; GSchwind, Michael K.; Gunnels, JOhn A.
- US Patent Application 12/134495; 20090307656
Systems and methods for injecting an exception into a target thread
patent, September 2006
- Smith, Frederick J.; Kagan, Oleg
- US Patent Document 7,114,164
Processor extensions and software verification to support type-safe language environments running with untrusted code
patent, May 2008
- Saha, Bratin; Washburn, Weldon; Held, James P.
- US Patent Document 7,380,276
Transactional memory: architectural support for lock-free data structures
conference, January 1993
- Herlihy, Maurice; Moss, J. Eliot B.
- Proceedings of the 20th annual international symposium on Computer architecture - ISCA '93
Performance pathologies in hardware transactional memory
conference, January 2007
- Bobba, Jayaram; Moore, Kevin E.; Volos, Haris
- Proceedings of the 34th annual international symposium on Computer architecture - ISCA '07
Method and apparatus for an improved code optimizer for pipelined computers
patent, July 1999
- Beylin, Boris; Subramanian, Krishna
- US Patent Document 5,930,510
Compiler support for optimizing decomposed software transactional memory operations
patent-application, July 2007
- Tarditi, JR., David Read; Harris, Timothy Lawrence; Plesko, Mark Ronald
- US Patent Application 11/389451; 20070169030