{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:56:36Z","timestamp":1750308996768,"version":"3.41.0"},"reference-count":34,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2004,9,1]],"date-time":"2004-09-01T00:00:00Z","timestamp":1093996800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2004,9]]},"abstract":"<jats:p>\n            Speculative execution, such as control speculation or data speculation, is an effective way to improve program performance. Using edge\/path profile information or simple heuristic rules, existing compiler frameworks can adequately incorporate and exploit control speculation. However, very little has been done so far to allow existing compiler frameworks to incorporate and exploit data speculation effectively in various program transformations beyond instruction scheduling. This paper proposes a speculative static single assignment form to incorporate information from alias profiling and\/or heuristic rules for data speculation, thus allowing existing frameworks to be extended to support both control and data speculation. Such a general framework is very useful for EPIC architectures that provide run-time checking (such as\n            <jats:italic>advanced load address table<\/jats:italic>\n            ) on data speculation to guarantee the correctness of program execution. We use SSAPRE as one example to illustrate how to incorporate data speculation in partial redundancy elimination, register promotion, and strength reduction. Our extended framework allows both control and data speculations to be performed on top of SSAPRE and, thus, enables more aggressive speculative optimizations. The proposed framework has been implemented on Intel's Open Research Compiler. We present experimental data on some SPEC2000 benchmark programs to demonstrate the usefulness of this framework.\n          <\/jats:p>","DOI":"10.1145\/1022969.1022970","type":"journal-article","created":{"date-parts":[[2005,8,1]],"date-time":"2005-08-01T17:31:42Z","timestamp":1122917502000},"page":"247-271","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":11,"title":["A compiler framework for speculative optimizations"],"prefix":"10.1145","volume":"1","author":[{"given":"Jin","family":"Lin","sequence":"first","affiliation":[{"name":"University of Minnesota, Minneapolis, MN"}]},{"given":"Tong","family":"Chen","sequence":"additional","affiliation":[{"name":"University of Minnesota, Minneapolis, MN"}]},{"given":"Wei-Chung","family":"Hsu","sequence":"additional","affiliation":[{"name":"University of Minnesota, Minneapolis, MN"}]},{"given":"Pen-Chung","family":"Yew","sequence":"additional","affiliation":[{"name":"University of Minnesota, Minneapolis, MN"}]},{"given":"Roy Dz-Ching","family":"Ju","sequence":"additional","affiliation":[{"name":"Intel Microprocessor Research Lab, Santa Clara, CA"}]},{"given":"Tin-Fook","family":"Ngai","sequence":"additional","affiliation":[{"name":"Intel Microprocessor Research Lab, Santa Clara, CA"}]},{"given":"Sun","family":"Chan","sequence":"additional","affiliation":[{"name":"Intel Microprocessor Research Lab, Santa Clara, CA"}]}],"member":"320","published-online":{"date-parts":[[2004,9]]},"reference":[{"volume-title":"Proceedings of the ACM SIGPLAN Symposium on Programming Language Design and Implementation. 300--313","author":"Ball T.","key":"e_1_2_1_1_1","unstructured":"Ball , T. and Larus , J . 1993. Branch prediction for free . In Proceedings of the ACM SIGPLAN Symposium on Programming Language Design and Implementation. 300--313 . 10.1145\/155090.155119 Ball, T. and Larus, J. 1993. Branch prediction for free. In Proceedings of the ACM SIGPLAN Symposium on Programming Language Design and Implementation. 300--313. 10.1145\/155090.155119"},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1--14","author":"Bod\u00edk R.","key":"e_1_2_1_2_1","unstructured":"Bod\u00edk , R. , Gupta , R. , and Soffa , M . 1998. Complete removal of redundant expressions . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1--14 . 10.1145\/277650.277653 Bod\u00edk, R., Gupta, R., and Soffa, M. 1998. Complete removal of redundant expressions. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1--14. 10.1145\/277650.277653"},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 64--76","author":"Bod\u00edk R.","key":"e_1_2_1_3_1","unstructured":"Bod\u00edk , R. , Gupta , R. , and Soffa , M . 1999. Load-reuse analysis: design and evaluation . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 64--76 . 10.1145\/301618.301643 Bod\u00edk, R., Gupta, R., and Soffa, M. 1999. Load-reuse analysis: design and evaluation. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 64--76. 10.1145\/301618.301643"},{"volume-title":"15th Workshop on Languages and Compilers for Parallel Computing. 151--160","author":"Chen T.","key":"e_1_2_1_4_1","unstructured":"Chen , T. , Lin , J. , Hsu , W. , and Yew , P. C . 2002. An empirical study on the granularity of pointer analysis in C programs . In 15th Workshop on Languages and Compilers for Parallel Computing. 151--160 . 10.1007\/11596110_11 Chen, T., Lin, J., Hsu, W., and Yew, P. C. 2002. An empirical study on the granularity of pointer analysis in C programs. In 15th Workshop on Languages and Compilers for Parallel Computing. 151--160. 10.1007\/11596110_11"},{"volume-title":"The Proceedings of the 14th International Conference on Compiler Construction. 57--62","author":"Chen T.","key":"e_1_2_1_5_1","unstructured":"Chen , T. , Lin , J. , Hsu , W. , and Yew , P. C . 2004. Data dependence profiling for speculative optimization . In The Proceedings of the 14th International Conference on Compiler Construction. 57--62 . Chen, T., Lin, J., Hsu, W., and Yew, P. C. 2004. Data dependence profiling for speculative optimization. In The Proceedings of the 14th International Conference on Compiler Construction. 57--62."},{"volume-title":"Proceedings of the Sixth International Conference on Compiler Construction. 253--267","author":"Chow F.","key":"e_1_2_1_6_1","unstructured":"Chow , F. , Chan , S. , Liu , S. , Lo , R. , and Streich , M . 1996. Effective representation of aliases and indirect memory operations in SSA form . In Proceedings of the Sixth International Conference on Compiler Construction. 253--267 . Chow, F., Chan, S., Liu, S., Lo, R., and Streich, M. 1996. Effective representation of aliases and indirect memory operations in SSA form. In Proceedings of the Sixth International Conference on Compiler Construction. 253--267."},{"volume-title":"Proceedings of the ACM SICPLAN Conference on Programming Language Design and Implementation. 273--286","author":"Chow F.","key":"e_1_2_1_7_1","unstructured":"Chow , F. , Chan , S. , Kennedy , R. , Liu , S. , Lo , R. , and Tu , P . 1997. A new algorithm for partial redundancy elimination based on SSA form . In Proceedings of the ACM SICPLAN Conference on Programming Language Design and Implementation. 273--286 . 10.1145\/258915.258940 Chow, F., Chan, S., Kennedy, R., Liu, S., Lo, R., and Tu, P. 1997. A new algorithm for partial redundancy elimination based on SSA form. In Proceedings of the ACM SICPLAN Conference on Programming Language Design and Implementation. 273--286. 10.1145\/258915.258940"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/115372.115320"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/103135.214520"},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 106--117","author":"Diwan A.","key":"e_1_2_1_10_1","unstructured":"Diwan , A. , McKinley , K. , and Moss , J . 1998. Type-based alias analysis . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 106--117 . 10.1145\/277650.277670 Diwan, A., McKinley, K., and Moss, J. 1998. Type-based alias analysis. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 106--117. 10.1145\/277650.277670"},{"key":"e_1_2_1_11_1","unstructured":"Dulong C. Krishnaiyer R. Kulkarni D. Lavery D. Li W. Ng J. and Sehr D. 1999. An overview of the Intel IA-64 compiler. Intel Technology Journal.  Dulong C. Krishnaiyer R. Kulkarni D. Lavery D. Li W. Ng J. and Sehr D. 1999. An overview of the Intel IA-64 compiler. Intel Technology Journal."},{"volume-title":"Proceedings of International Conference on Parallel Architectures and Compilation Techniques. 222--231","author":"Fernande M.","key":"e_1_2_1_12_1","unstructured":"Fernande , M. and Espasa , R . 2002. Speculative alias analysis for executable code . In Proceedings of International Conference on Parallel Architectures and Compilation Techniques. 222--231 . Fernande, M. and Espasa, R. 2002. Speculative alias analysis for executable code. In Proceedings of International Conference on Parallel Architectures and Compilation Techniques. 222--231."},{"volume-title":"Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. 47--58","author":"Ghiya R.","key":"e_1_2_1_13_1","unstructured":"Ghiya , R. , Lavery , D. , and Sehr , D . 2001. On the importance of points-to analysis and other memory disambiguation methods for C programs . In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. 47--58 . 10.1145\/378795.378806 Ghiya, R., Lavery, D., and Sehr, D. 2001. On the importance of points-to analysis and other memory disambiguation methods for C programs. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. 47--58. 10.1145\/378795.378806"},{"key":"e_1_2_1_14_1","volume-title":"ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. 54--61","author":"Hind M.","year":"2001","unstructured":"Hind , M. 2001 . Pointer analysis: Haven't we solved this problem yet? In ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. 54--61 . 10.1145\/379605.379665 Hind, M. 2001. Pointer analysis: Haven't we solved this problem yet? In ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. 54--61. 10.1145\/379605.379665"},{"volume-title":"Proceedings of the Workshop of Languages and Compilers for Parallel Computing.","author":"Hwang Y.-S.","key":"e_1_2_1_15_1","unstructured":"Hwang , Y.-S. , Chen , P.-S. , Lee , J.-K. , and Ju , R. D . -C. 2001. Probabilistic points-to analysis . In Proceedings of the Workshop of Languages and Compilers for Parallel Computing. Hwang, Y.-S., Chen, P.-S., Lee, J.-K., and Ju, R. D.-C. 2001. Probabilistic points-to analysis. In Proceedings of the Workshop of Languages and Compilers for Parallel Computing."},{"key":"e_1_2_1_16_1","unstructured":"Intel Corp. 1999. IA-64 Application Developer's Architecture Guide Available at http:\/\/developer.intel.com\/design\/ia64\/downloads\/adag.htm.  Intel Corp. 1999. IA-64 Application Developer's Architecture Guide Available at http:\/\/developer.intel.com\/design\/ia64\/downloads\/adag.htm."},{"volume-title":"Proceedings of the Eleventh International Conference on Parallel Architectures and Compilation Techniques. 259--268","author":"Ishizaki K.","key":"e_1_2_1_17_1","unstructured":"Ishizaki , K. , Inagaki , T. , Komatsu , H. , and Nakatani , T . 2002. Eliminating exception constraints of Java programs for IA-64 . In Proceedings of the Eleventh International Conference on Parallel Architectures and Compilation Techniques. 259--268 . Ishizaki, K., Inagaki, T., Komatsu, H., and Nakatani, T. 2002. Eliminating exception constraints of Java programs for IA-64. In Proceedings of the Eleventh International Conference on Parallel Architectures and Compilation Techniques. 259--268."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/309758.309769"},{"volume-title":"Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. 157--168","author":"Ju R. D.-C.","key":"e_1_2_1_19_1","unstructured":"Ju , R. D.-C. , Nomura , K. , Mahadevan , U. , and Wu , L . -C. 2000. A unified compiler framework for control and data speculation . In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. 157--168 . Ju, R. D.-C., Nomura, K., Mahadevan, U., and Wu, L.-C. 2000. A unified compiler framework for control and data speculation. In Proceedings of the International Conference on Parallel Architectures and Compilation Techniques. 157--168."},{"key":"e_1_2_1_20_1","unstructured":"Ju R. D.-C. Chan S. and Wu C. 2001. Open Research Compiler (ORC) for the Itanium Processor Family. Tutorial presented at Micro 34.  Ju R. D.-C. Chan S. and Wu C. 2001. Open Research Compiler (ORC) for the Itanium Processor Family. Tutorial presented at Micro 34."},{"volume-title":"Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems. 10","author":"Kawahito M.","key":"e_1_2_1_21_1","unstructured":"Kawahito , M. , Komatsu , H. , and Nakatani , T . 2000. Effective null pointer check elimination utilizing hardware trap . In Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems. 10 .1145\/378993.379234 Kawahito, M., Komatsu, H., and Nakatani, T. 2000. Effective null pointer check elimination utilizing hardware trap. In Proceedings of the Ninth International Conference on Architectural Support for Programming Languages and Operating Systems. 10.1145\/378993.379234"},{"volume-title":"Proceedings of the Seventh International Conference on Compiler Construction. 144--158","author":"Kennedy R.","key":"e_1_2_1_22_1","unstructured":"Kennedy , R. , Chow , F. , Dahl , P. , Liu , S.-M. , Lo , R. , and Streich , M . 1998. Strength reduction via SSAPRE . In Proceedings of the Seventh International Conference on Compiler Construction. 144--158 . Kennedy, R., Chow, F., Dahl, P., Liu, S.-M., Lo, R., and Streich, M. 1998. Strength reduction via SSAPRE. In Proceedings of the Seventh International Conference on Compiler Construction. 144--158."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/319301.319348"},{"volume-title":"Proceedings of ACM Symposium on Principles of Programming Languages. 107--120","author":"Knobe K.","key":"e_1_2_1_24_1","unstructured":"Knobe , K. and Sarkar , V . 1998. Array SSA form and its use in parallelization . In Proceedings of ACM Symposium on Principles of Programming Languages. 107--120 . 10.1145\/268946.268956 Knobe, K. and Sarkar, V. 1998. Array SSA form and its use in parallelization. In Proceedings of ACM Symposium on Principles of Programming Languages. 107--120. 10.1145\/268946.268956"},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 224--234","author":"Knoop J.","key":"e_1_2_1_25_1","unstructured":"Knoop , J. , Ruthing , O. , and Steffen , B . 1992. Lazy code motion . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 224--234 . 10.1145\/143095.143136 Knoop, J., Ruthing, O., and Steffen, B. 1992. Lazy code motion. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 224--234. 10.1145\/143095.143136"},{"volume-title":"Proceedings of First Annual IEEE\/ACM International Symposium on Code Generation and Optimization. 125--134","author":"Lin J.","key":"e_1_2_1_26_1","unstructured":"Lin , J. , Chen , T. , Hsu , W. C. , and Yew , P. C . 2003. Speculative register promotion using advanced load address table (ALAT) . In Proceedings of First Annual IEEE\/ACM International Symposium on Code Generation and Optimization. 125--134 . Lin, J., Chen, T., Hsu, W. C., and Yew, P. C. 2003. Speculative register promotion using advanced load address table (ALAT). In Proceedings of First Annual IEEE\/ACM International Symposium on Code Generation and Optimization. 125--134."},{"volume-title":"Proceedings of ACM SIGPLAN on Programming Language Design and Implementation. 289--299","author":"Lin J.","key":"e_1_2_1_27_1","unstructured":"Lin , J. , Chen , T. , Hsu , W. C. , Yew , P. C. , Ju , R. D.-C. , Ngai , T. F. , and Chan , S . 2003. A compiler framework for speculative analysis and optimizations . In Proceedings of ACM SIGPLAN on Programming Language Design and Implementation. 289--299 . 10.1145\/781131.781164 Lin, J., Chen, T., Hsu, W. C., Yew, P. C., Ju, R. D.-C., Ngai, T. F., and Chan, S. 2003. A compiler framework for speculative analysis and optimizations. In Proceedings of ACM SIGPLAN on Programming Language Design and Implementation. 289--299. 10.1145\/781131.781164"},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 26--37","author":"Lo R.","key":"e_1_2_1_28_1","unstructured":"Lo , R. , Chow , F. , Kennedy , R. , Liu , S. , and Tu , P . 1998. Register promotion by sparse partial redundancy elimination of loads and stores . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 26--37 . 10.1145\/277650.277659 Lo, R., Chow, F., Kennedy, R., Liu, S., and Tu, P. 1998. Register promotion by sparse partial redundancy elimination of loads and stores. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 26--37. 10.1145\/277650.277659"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/359060.359069"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.24269"},{"key":"e_1_2_1_31_1","unstructured":"Pfmon. 2003. Available from ftp:\/\/ftp.hpl.hp.com\/pub\/linux-ia64\/pfmon-1.1-0.ia64.rpm.  Pfmon. 2003. Available from ftp:\/\/ftp.hpl.hp.com\/pub\/linux-ia64\/pfmon-1.1-0.ia64.rpm."},{"key":"e_1_2_1_32_1","volume-title":"Proceedings of ACM Symposium on Principles of Programming Languages. 32--41","author":"Steensgaard B.","year":"1996","unstructured":"Steensgaard , B. 1996 . Points-to analysis in almost linear time . In Proceedings of ACM Symposium on Principles of Programming Languages. 32--41 . 10.1145\/237721.237727 Steensgaard, B. 1996. Points-to analysis in almost linear time. In Proceedings of ACM Symposium on Principles of Programming Languages. 32--41. 10.1145\/237721.237727"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1--12","author":"Wilson R. P.","year":"2071","unstructured":"Wilson , R. P. and Lam , M. S . 1995. Efficient context-sensitive pointer analysis for C program . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1--12 . 10.1145\/ 2071 10.207111 Wilson, R. P. and Lam, M. S. 1995. Efficient context-sensitive pointer analysis for C program. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. 1--12. 10.1145\/207110.207111"},{"volume-title":"13th International Conference on Parallel and Distributed Computing Systems.","author":"Wu Y.","key":"e_1_2_1_34_1","unstructured":"Wu , Y. and Lee , Y . 2000. Accurate invalidation profiling for effective data speculation on EPIC processors . In 13th International Conference on Parallel and Distributed Computing Systems. Wu, Y. and Lee, Y. 2000. Accurate invalidation profiling for effective data speculation on EPIC processors. In 13th International Conference on Parallel and Distributed Computing Systems."}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1022969.1022970","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1022969.1022970","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T21:41:25Z","timestamp":1750282885000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1022969.1022970"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004,9]]},"references-count":34,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2004,9]]}},"alternative-id":["10.1145\/1022969.1022970"],"URL":"https:\/\/doi.org\/10.1145\/1022969.1022970","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2004,9]]},"assertion":[{"value":"2004-09-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}