{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,11]],"date-time":"2026-04-11T02:15:23Z","timestamp":1775873723404,"version":"3.50.1"},"reference-count":19,"publisher":"Wiley","issue":"12","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5447,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1991,12]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>This paper describes the design and implementation of an optimizing compiler that automatically generates profile information to assist classic code optimizations. This compiler contains two new components, an execution profiler and a profile\u2010based code optimizer, which are not commonly found in traditional optimizing compilers. The execution profiler inserts probes into the input program, executes the input program for several inputs, accumulates profile information and supplies this information to the optimizer. The profile\u2010based code optimizer uses the profile information to expose new optimization opportunities that are not visible to traditional global optimization methods. Experimental results show that the profile\u2010based code optimizer significantly improves the performance of production C programs that have already been optimized by a high\u2010quality global code optimizer.<\/jats:p>","DOI":"10.1002\/spe.4380211204","type":"journal-article","created":{"date-parts":[[2006,11,18]],"date-time":"2006-11-18T07:01:33Z","timestamp":1163833293000},"page":"1301-1321","source":"Crossref","is-referenced-by-count":157,"title":["Using profile information to assist classic code optimizations"],"prefix":"10.1002","volume":"21","author":[{"given":"Pohua P.","family":"Chang","sequence":"first","affiliation":[]},{"given":"Scott A.","family":"Mahlke","sequence":"additional","affiliation":[]},{"given":"Wen\u2010Mei W.","family":"Hwu","sequence":"additional","affiliation":[]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","volume-title":"Compilers: Principles, Techniques, and Tools","author":"Aho A. V.","year":"1986"},{"key":"e_1_2_1_3_2","doi-asserted-by":"publisher","DOI":"10.1145\/800230.806987"},{"key":"e_1_2_1_4_2","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380130803"},{"key":"e_1_2_1_5_2","volume-title":"UNIX Programmer's Manual","year":"1979"},{"key":"e_1_2_1_6_2","doi-asserted-by":"crossref","unstructured":"S.McFarlingandJ. L.Hennessy \u2018Reducing the cost of branches\u2019 The 13th International Symposium on Computer Architecture Conference Proceedings Tokyo Japan June1986 pp.396\u2013403.","DOI":"10.1145\/17356.17402"},{"key":"e_1_2_1_7_2","doi-asserted-by":"crossref","unstructured":"W. W.Hwu T. M.ConteandP. P.Chang \u2018Comparing software and hardware schemes for reducing the cost of branches\u2019 Proceedings of the 16th Annual International Symposium on Computer Architecture Jerusalem Israel May1989.","DOI":"10.1145\/74925.74951"},{"key":"e_1_2_1_8_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1981.1675827"},{"key":"e_1_2_1_9_2","volume-title":"Bulldog: A Compiler for VLIW Architectures","author":"Ellis J. R.","year":"1986"},{"key":"e_1_2_1_10_2","unstructured":"P. P.ChangandW. W.Hwu \u2018Trace selection for compiling large C application programs to microcode\u2019 Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitectures San Diego California November1988 pp.21\u201329."},{"key":"e_1_2_1_11_2","doi-asserted-by":"crossref","unstructured":"W. W.HwuandP. P.Chang \u2018Achieving high instruction cache performance with an optimizing compiler\u2019 Proceedings 16th Annual International Symposium on Computer Architecture Jrerusalem Israel June1989.","DOI":"10.1145\/74925.74953"},{"key":"e_1_2_1_12_2","doi-asserted-by":"crossref","unstructured":"K.PettisandR. C.Hansen \u2018Profile guided code positioning\u2019 Proceedings of the ACM SIGPLAN '90Conference on Programming Language Design and Implementation June1990 pp.16\u201327.","DOI":"10.1145\/93548.93550"},{"key":"e_1_2_1_13_2","doi-asserted-by":"crossref","unstructured":"P. P.ChangandW. W.Hwu \u2018Control flow optimization for supercomputer scalar processing\u2019 Proceedings 1989 International Conference on Supercomputing Crete Greece June1989.","DOI":"10.1145\/318789.318806"},{"key":"e_1_2_1_14_2","doi-asserted-by":"crossref","unstructured":"D. W.Wall \u2018Global register allocation at link time\u2019 Proceedings of the SIGPLAN 1986 Symposium on Compiler Construction June1986.","DOI":"10.1145\/12276.13338"},{"key":"e_1_2_1_15_2","doi-asserted-by":"crossref","unstructured":"D. W.Wall \u2018Register window vs. register allocation\u2019 Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation June1988.","DOI":"10.1145\/53990.53997"},{"key":"e_1_2_1_16_2","unstructured":"W. W.HwuandP. P.Chang \u2018Inline function expansion for compiling realistic C programs\u2019 Proceedings ACM SIGPLAN'89 Conference on Programming Language Design and Implementation Portland Oregon June1989."},{"key":"e_1_2_1_17_2","doi-asserted-by":"crossref","unstructured":"V.Sarkar \u2018Determining average program execution times and their variance\u2019 Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation June1989.","DOI":"10.1145\/73141.74845"},{"key":"e_1_2_1_18_2","volume-title":"Partitioning and Scheduling Parallel Programs for Multiprocessors","author":"Sarkar V.","year":"1989"},{"key":"e_1_2_1_19_2","first-page":"1","volume-title":"Design and Optimization of Compilers","author":"Allen F.","year":"1972"},{"key":"e_1_2_1_20_2","doi-asserted-by":"crossref","unstructured":"P. P.Chang S. A.MahlkeandW. W.Hwu \u2018Using profile information to assist classic code optimizations\u2019 Technical Report Center for Reliable and High\u2010Performance Computing CRHC\u201091\u201312 University of Illinois Urbana\u2010Champaign 1991.","DOI":"10.1002\/spe.4380211204"}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380211204","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380211204","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T04:27:25Z","timestamp":1698035245000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380211204"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1991,12]]},"references-count":19,"journal-issue":{"issue":"12","published-print":{"date-parts":[[1991,12]]}},"alternative-id":["10.1002\/spe.4380211204"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380211204","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1991,12]]}}}