{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,10]],"date-time":"2026-01-10T07:37:51Z","timestamp":1768030671141,"version":"3.49.0"},"reference-count":40,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2017,5,26]],"date-time":"2017-05-26T00:00:00Z","timestamp":1495756800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100017634","name":"LG Electronics","doi-asserted-by":"crossref","id":[{"id":"10.13039\/501100017634","id-type":"DOI","asserted-by":"crossref"}]},{"name":"FAPEMIG, FAPESP, CNPq and CAPES"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2017,6,30]]},"abstract":"<jats:p>Directive-based programming models, such as OpenACC and OpenMP, allow developers to convert a sequential program into a parallel one with minimum human intervention. However, inserting pragmas into production code is a difficult and error-prone task, often requiring familiarity with the target program. This difficulty restricts the ability of developers to annotate code that they have not written themselves. This article provides a suite of compiler-related methods to mitigate this problem. Such techniques rely on symbolic range analysis, a well-known static technique, to achieve two purposes: populate source code with data transfer primitives and to disambiguate pointers that could hinder automatic parallelization due to aliasing. We have materialized our ideas into a tool, DawnCC, which can be used stand-alone or through an online interface. To demonstrate its effectiveness, we show how DawnCC can annotate the programs available in PolyBench without any intervention from users. Such annotations lead to speedups of over 100\u00d7 in an Nvidia architecture and over 50\u00d7 in an ARM architecture.<\/jats:p>","DOI":"10.1145\/3084540","type":"journal-article","created":{"date-parts":[[2017,5,31]],"date-time":"2017-05-31T19:32:40Z","timestamp":1496259160000},"page":"1-25","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":27,"title":["DawnCC"],"prefix":"10.1145","volume":"14","author":[{"given":"Gleison","family":"Mendon\u00e7a","sequence":"first","affiliation":[{"name":"UFMG"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Breno","family":"Guimar\u00e3es","sequence":"additional","affiliation":[{"name":"UFMG"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"P\u00e9ricles","family":"Alves","sequence":"additional","affiliation":[{"name":"UFMG"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"M\u00e1rcio","family":"Pereira","sequence":"additional","affiliation":[{"name":"Unicamp"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Guido","family":"Ara\u00fajo","sequence":"additional","affiliation":[{"name":"Unicamp"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Fernando Magno Quint\u00e3o","family":"Pereira","sequence":"additional","affiliation":[{"name":"UFMG"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2017,5,26]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the 2013 DATE Conference (DATE\u201913)","author":"Alias C."},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2814270.2814285"},{"key":"e_1_2_1_3_1","unstructured":"M. Amini C. Ancourt F. Coelho B. Creusillet S. Guelton F. Irigoin P. Jouvelot R. Keryell and P. Villalon. 2012. PIPS Is Not (Only) Polyhedral Software. Technical Report. IMPACT.  M. Amini C. Ancourt F. Coelho B. Creusillet S. Guelton F. Irigoin P. Jouvelot R. Keryell and P. Villalon. 2012. PIPS Is Not (Only) Polyhedral Software. Technical Report. IMPACT."},{"key":"e_1_2_1_4_1","unstructured":"Lars Ole Andersen. 1994. Program Analysis and Specialization for the C Programming Language. Ph.D. Dissertation. DIKU University of Copenhagen.  Lars Ole Andersen. 1994. Program Analysis and Specialization for the C Programming Language. Ph.D. Dissertation. DIKU University of Copenhagen."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10766-015-0362-9"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.17"},{"key":"e_1_2_1_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11970-5_14"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1109\/LLVM-HPC.2014.10"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892225"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/115372.115320"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892212"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/24039.24041"},{"key":"e_1_2_1_14_1","volume-title":"Proceedings of the 2014 LCPC Conference (LCPC\u201914)","author":"Ghike Swapnil"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 2012 InPar Conference (InPar\u201912)","author":"Grauer-Gray S."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.5555\/2015039.2015535"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1142\/S0129626412500107"},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 2012 LCPC Conference (LCPC\u201912)","author":"Guelton Serge","year":"2012"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993516"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1002\/cpe.3352"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/143095.143136"},{"key":"e_1_2_1_22_1","volume-title":"IPMACC: Open source OpenACC to CUDA\/OpenCL translator. arXiv:1412.1127.","author":"Lashgar Ahmad","year":"2014"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.5555\/977395.977673"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/SC.2010.36"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2600212.2600704"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1109\/DSD.2011.62"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/SBAC-PAD.2016.13"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2660193.2660205"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2665079"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2009.9"},{"key":"e_1_2_1_32_1","unstructured":"A Raghesh. 2011. A Framework for Automatic OpenMP Code Generation. Master\u2019s thesis. IIT Madras.  A Raghesh. 2011. A Framework for Automatic OpenMP Code Generation. Master\u2019s thesis. IIT Madras."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-32820-6_86"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/358438.349325"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1024597010150"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/53990.54007"},{"key":"e_1_2_1_37_1","unstructured":"John A. Stratton Christopher Rodrigues I-Jui Sung Nady Obeid Li-Wen Chang Nasser Anssari Geng Daniel Liu and Wen-Mei W. Hwu. 2012. Parboil: A Revised Benchmark Suite for Scientific and Commercial Throughput Computing. Technical Report. IMPACT.  John A. Stratton Christopher Rodrigues I-Jui Sung Nady Obeid Li-Wen Chang Nasser Anssari Geng Daniel Liu and Wen-Mei W. Hwu. 2012. Parboil: A Revised Benchmark Suite for Scientific and Commercial Throughput Computing. Technical Report. IMPACT."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/12276.13329"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2400682.2400713"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-32820-6_85"},{"key":"e_1_2_1_41_1","unstructured":"M. J. Wolfe. 1995. High Performance Compilers for Parallel Computing. Addison-Wesley Boston MA.   M. J. Wolfe. 1995. High Performance Compilers for Parallel Computing. Addison-Wesley Boston MA."}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3084540","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3084540","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:22Z","timestamp":1750217422000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3084540"}},"subtitle":["Automatic Annotation for Data Parallelism and Offloading"],"short-title":[],"issued":{"date-parts":[[2017,5,26]]},"references-count":40,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2017,6,30]]}},"alternative-id":["10.1145\/3084540"],"URL":"https:\/\/doi.org\/10.1145\/3084540","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,5,26]]},"assertion":[{"value":"2016-11-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-04-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2017-05-26","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}