{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,7,15]],"date-time":"2025-07-15T03:15:58Z","timestamp":1752549358780},"reference-count":4,"publisher":"Wiley","issue":"2","license":[{"start":{"date-parts":[[2006,10,30]],"date-time":"2006-10-30T00:00:00Z","timestamp":1162166400000},"content-version":"vor","delay-in-days":5385,"URL":"http:\/\/onlinelibrary.wiley.com\/termsAndConditions#vor"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Softw Pract Exp"],"published-print":{"date-parts":[[1992,2]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Random access to local variables stored in a stack frame is more difficult for compiled functions when the target processor lacks register\u2010plus\u2010offset addressing. One alternative technique employs a roving pointer which the program increments or decrements as needed between stack accesses. Processors which support auto\u2010increment and auto\u2010decrement addressing modes are often capable of performing these increments for free when consecutive accesses are to adjacent stack locations. For these processors, the compiler's chosen ordering for the local variables in the stack frame can substantially affect the execution speed of the compiled program.<\/jats:p><jats:p>This paper is concerned with finding an ordering for the local variables in the frame that maximizes the likelihood that two consecutive references at run\u2010time will be to the same or to adjacent stack locations. We have formulated a solution to this problem in terms of finding a Hamiltonian path in a graph. Although this problem is NP\u2010complete in general, we have developed a heuristic algorithm that delivers good results with acceptable performance.<\/jats:p>","DOI":"10.1002\/spe.4380220202","type":"journal-article","created":{"date-parts":[[2006,11,17]],"date-time":"2006-11-17T19:07:07Z","timestamp":1163790427000},"page":"101-110","source":"Crossref","is-referenced-by-count":75,"title":["Optimizing stack frame accesses for processors with restricted addressing modes"],"prefix":"10.1002","volume":"22","author":[{"given":"David H.","family":"Hartley","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"311","published-online":{"date-parts":[[2006,10,30]]},"reference":[{"key":"e_1_2_1_2_2","unstructured":"Texas Instruments Second\u2010Generation TMS320 User's Guide 1989."},{"key":"e_1_2_1_3_2","volume-title":"Computers and Intractability: A Guide to the Theory of NP\u2010Completeness","author":"Garey Michael R.","year":"1979"},{"key":"e_1_2_1_4_2","unstructured":"JimGilbreath \u2018A high\u2010level language benchmark\u2019 BYTE Magazine September1981 p.180."},{"key":"e_1_2_1_5_2","unstructured":"NatSeshan \u2018A TMS320C30\u2010based LPC vocoder\u2019 InDigital Signal Processing Applications with the TMS320C30 Evaluation Module Texas Instruments 1991 pp.47\u2013156."}],"container-title":["Software: Practice and Experience"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.wiley.com\/onlinelibrary\/tdm\/v1\/articles\/10.1002%2Fspe.4380220202","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/pdf\/10.1002\/spe.4380220202","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2023,10,23]],"date-time":"2023-10-23T14:30:47Z","timestamp":1698071447000},"score":1,"resource":{"primary":{"URL":"https:\/\/onlinelibrary.wiley.com\/doi\/10.1002\/spe.4380220202"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1992,2]]},"references-count":4,"journal-issue":{"issue":"2","published-print":{"date-parts":[[1992,2]]}},"alternative-id":["10.1002\/spe.4380220202"],"URL":"https:\/\/doi.org\/10.1002\/spe.4380220202","archive":["Portico"],"relation":{},"ISSN":["0038-0644","1097-024X"],"issn-type":[{"value":"0038-0644","type":"print"},{"value":"1097-024X","type":"electronic"}],"subject":[],"published":{"date-parts":[[1992,2]]}}}