{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:17:53Z","timestamp":1750220273304,"version":"3.41.0"},"reference-count":52,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2022,3,8]],"date-time":"2022-03-08T00:00:00Z","timestamp":1646697600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100000266","name":"EPSRC","doi-asserted-by":"crossref","award":["EP\/P010040\/1 and EP\/R006865\/1"],"award-info":[{"award-number":["EP\/P010040\/1 and EP\/R006865\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"crossref"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Des. Autom. Electron. Syst."],"published-print":{"date-parts":[[2022,7,31]]},"abstract":"<jats:p>This article combines two practical approaches to improve pointer synthesis within HLS tools. Both approaches focus on inefficiencies in how HLS tools treat the<jats:italic>points-to graph\u2014<\/jats:italic>a mapping that connects each instruction to the memory locations that it might access at runtime. HLS pointer synthesis first computes the points-to graph via pointer analysis and then implements its connections in hardware, which gives rise to two inefficiencies. First, HLS tools typically favour pointer analysis that is fast, sacrificing precision. Second, they also favour centralising memory connections in hardware for instructions that can point to more than one location.<\/jats:p><jats:p>In this article, we demonstrate that a more precise pointer analysis coupled with decentralised memory connections in hardware can substantially reduce the unnecessary sharing of memory resources. We implement both flow- and context-sensitive pointer analysis and fine-grained memory connections in two modern HLS tools, LegUp and Vitis HLS. An evaluation on three benchmark suites, ranging from non-trivial pointer use to standard HLS benchmarks, indicates that when we improve both precision and granularity of pointer synthesis, on average, we can reduce area and latency by around 42% and 37%, respectively.<\/jats:p>","DOI":"10.1145\/3491430","type":"journal-article","created":{"date-parts":[[2022,3,8]],"date-time":"2022-03-08T16:32:11Z","timestamp":1646757131000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":0,"title":["A Case for Precise, Fine-Grained Pointer Synthesis in High-Level Synthesis"],"prefix":"10.1145","volume":"27","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-9083-8349","authenticated-orcid":false,"given":"Nadesh","family":"Ramanathan","sequence":"first","affiliation":[{"name":"Imperial College London, London, UK"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-0201-310X","authenticated-orcid":false,"given":"George A.","family":"Constantinides","sequence":"additional","affiliation":[{"name":"Imperial College London, London, UK"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-6735-5533","authenticated-orcid":false,"given":"John","family":"Wickerson","sequence":"additional","affiliation":[{"name":"Imperial College London, London, UK"}]}],"member":"320","published-online":{"date-parts":[[2022,3,8]]},"reference":[{"key":"e_1_3_2_2_2","unstructured":"N. Ramanathan. 2020. Supplementary material on GitHub. https:\/\/github.com\/nadeshr\/ppa-hls."},{"key":"e_1_3_2_3_2","volume-title":"Program Analysis and Specialization for the C Programming Language","author":"Andersen Lars Ole","year":"1994","unstructured":"Lars Ole Andersen. 1994. Program Analysis and Specialization for the C Programming Language. Ph.D. Dissertation. University of Cophenhagen."},{"key":"e_1_3_2_4_2","volume-title":"An Independent Evaluation of: The AutoESL AutoPilot High-Level Synthesis Tool","author":"Inc. Berkeley Design Technology,","year":"2010","unstructured":"Berkeley Design Technology, Inc.2010. An Independent Evaluation of: The AutoESL AutoPilot High-Level Synthesis Tool. Tech. Rep.http:\/\/www.bdti.com\/MyBDTI\/pubs\/AutoPilot.pdf."},{"key":"e_1_3_2_5_2","first-page":"234","volume-title":"International Workshop on Languages and Compilers for Parallel Computing","author":"Burke Michael","year":"1994","unstructured":"Michael Burke, Paul Carini, Jong-Deok Choi, and Michael Hind. 1994. Flow-insensitive interprocedural alias analysis in the presence of pointers. In International Workshop on Languages and Compilers for Parallel Computing. Springer, 234\u2013250."},{"key":"e_1_3_2_6_2","volume-title":"Field-Programmable Gate Arrays (FPGA)","author":"Canis Andrew","year":"2011","unstructured":"Andrew Canis, Jongsok Choi, Mark Aldham, Victor Zhang, Ahmed Kammoona, Jason Anderson, Stephen Brown, and Tomasz Czajkowski. 2011. LegUp: High-level synthesis for FPGA-based processor\/accelerator systems. In Field-Programmable Gate Arrays (FPGA)."},{"key":"e_1_3_2_7_2","doi-asserted-by":"crossref","first-page":"142","DOI":"10.1145\/3289602.3293899","volume-title":"2019 ACM\/SIGDA International Symposium on Field-Programmable Gate Arrays","author":"Cheng Jianyi","year":"2019","unstructured":"Jianyi Cheng, Shane T. Fleming, Yu Ting Chen, Jason H. Anderson, and George A. Constantinides. 2019. EASY: Efficient arbiter synthesis from multi-threaded code. In 2019 ACM\/SIGDA International Symposium on Field-Programmable Gate Arrays. 142\u2013151."},{"key":"e_1_3_2_8_2","doi-asserted-by":"crossref","first-page":"232","DOI":"10.1145\/158511.158639","volume-title":"20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"Choi Jong-Deok","year":"1993","unstructured":"Jong-Deok Choi, Michael Burke, and Paul Carini. 1993. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 232\u2013245."},{"key":"e_1_3_2_9_2","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2009.69"},{"key":"e_1_3_2_10_2","doi-asserted-by":"publisher","DOI":"10.1145\/773473.178264"},{"key":"e_1_3_2_11_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICFPT47387.2019.00046"},{"key":"e_1_3_2_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2019.00057"},{"key":"e_1_3_2_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISCAS.2008.4541637"},{"key":"e_1_3_2_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/1250734.1250767"},{"key":"e_1_3_2_15_2","doi-asserted-by":"publisher","DOI":"10.1145\/1594834.1480911"},{"key":"e_1_3_2_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2011.5764696"},{"key":"e_1_3_2_17_2","doi-asserted-by":"publisher","DOI":"10.1145\/381694.378802"},{"key":"e_1_3_2_18_2","doi-asserted-by":"crossref","first-page":"113","DOI":"10.1145\/347324.348916","volume-title":"2000 ACM SIGSOFT International Symposium on Software Testing and Analysis","author":"Hind Michael","year":"2000","unstructured":"Michael Hind and Anthony Pioli. 2000. Which pointer analysis should I use? In 2000 ACM SIGSOFT International Symposium on Software Testing and Analysis. 113\u2013123."},{"key":"e_1_3_2_19_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2834439"},{"key":"e_1_3_2_20_2","article-title":"The LLVM instruction set and compilation strategy","author":"Lattner Chris","year":"2002","unstructured":"Chris Lattner and Vikram Adve. 2002. The LLVM instruction set and compilation strategy.CS Dept., Univ. of Illinois at Urbana-Champaign, Tech. Report UIUCDCS (2002).","journal-title":"CS Dept., Univ. of Illinois at Urbana-Champaign, Tech. Report UIUCDCS"},{"key":"e_1_3_2_21_2","volume-title":"Data Structure Analysis: An Efficient Context-sensitive Heap Analysis","author":"Lattner Chris","year":"2003","unstructured":"Chris Lattner and Vikram Adve. 2003. Data Structure Analysis: An Efficient Context-sensitive Heap Analysis. Technical Report. Tech. Report UIUCDCSR-2003-2340, Computer Science Dept., Univ. of Illinois."},{"key":"e_1_3_2_22_2","unstructured":"LegUp Computing Inc.2017. LegUp 5.1 Documentation. (2017). https:\/\/www.legupcomputing.com\/docs\/legup-5.1-docs\/index.html."},{"key":"e_1_3_2_23_2","unstructured":"LegUp Computing Inc.2017. LegUp 6.4 Documentation. (2017). https:\/\/bit.ly\/legup-memory-controller."},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1145\/2555670.2466483"},{"key":"e_1_3_2_25_2","doi-asserted-by":"publisher","DOI":"10.1109\/TCAD.2018.2857040"},{"key":"e_1_3_2_26_2","doi-asserted-by":"publisher","DOI":"10.1109\/MDT.2009.83"},{"key":"e_1_3_2_27_2","doi-asserted-by":"crossref","first-page":"165","DOI":"10.1007\/978-3-540-27864-1_14","volume-title":"International Static Analysis Symposium","author":"Nystrom Erik M.","year":"2004","unstructured":"Erik M. Nystrom, Hong-Seok Kim, and W. Hwu Wen-mei. 2004. Bottom-up and top-down context-sensitive summary-based pointer analysis. In International Static Analysis Symposium. Springer, 165\u2013180."},{"key":"e_1_3_2_28_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2013.6645550"},{"key":"e_1_3_2_29_2","doi-asserted-by":"publisher","DOI":"10.1145\/2039370.2039381"},{"key":"e_1_3_2_30_2","doi-asserted-by":"publisher","DOI":"10.1145\/186025.186041"},{"key":"e_1_3_2_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2018.00025"},{"key":"e_1_3_2_32_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL50879.2020.00044"},{"key":"e_1_3_2_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2017.2786249"},{"key":"e_1_3_2_34_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICCAD.1998.742894"},{"key":"e_1_3_2_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/43.908442"},{"key":"e_1_3_2_36_2","doi-asserted-by":"publisher","DOI":"10.1109\/92.974889"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1561\/2500000014"},{"key":"e_1_3_2_38_2","volume-title":"30th European Conference on Object-Oriented Programming (ECOOP 2016)","author":"Sp\u00e4th Johannes","year":"2016","unstructured":"Johannes Sp\u00e4th, Lisa Nguyen Quang Do, Karim Ali, and Eric Bodden. 2016. Boomerang: Demand-driven flow-and context-sensitive pointer analysis for java. In 30th European Conference on Object-Oriented Programming (ECOOP 2016). Schloss Dagstuhl-Leibniz-Zentrum fuer Informatik."},{"key":"e_1_3_2_39_2","first-page":"32","volume-title":"23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"Steensgaard Bjarne","year":"1996","unstructured":"Bjarne Steensgaard. 1996. Points-to analysis in almost linear time. In 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. 32\u201341."},{"key":"e_1_3_2_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/2892208.2892235"},{"key":"e_1_3_2_41_2","article-title":"Value-flow-based demand-driven pointer analysis for C and C++","author":"Sui Yulei","year":"2018","unstructured":"Yulei Sui and Jingling Xue. 2018. Value-flow-based demand-driven pointer analysis for C and C++. IEEE Transactions on Software Engineering (2018).","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_3_2_42_2","volume-title":"Context-Sensitive Pointer Analysis using Binary Decision Diagrams","author":"Whaley John","year":"2007","unstructured":"John Whaley and Monica Lam. 2007. Context-Sensitive Pointer Analysis using Binary Decision Diagrams. Ph.D. Dissertation. Citeseer."},{"key":"e_1_3_2_43_2","doi-asserted-by":"publisher","DOI":"10.1145\/193209.193217"},{"key":"e_1_3_2_44_2","doi-asserted-by":"publisher","DOI":"10.1145\/223428.207111"},{"key":"e_1_3_2_45_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-53222-6"},{"key":"e_1_3_2_46_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPT.2013.6718388"},{"volume-title":"Vivado Design Suite User Guide: High-Level Synthesis (v2018.2)","year":"2018","key":"e_1_3_2_47_2","unstructured":"Xilinx. 2018. Vivado Design Suite User Guide: High-Level Synthesis (v2018.2)."},{"volume-title":"Vitis Unified Software Platform Documentation: Application Acceleration Development (v2020.1)","year":"2020","key":"e_1_3_2_48_2","unstructured":"Xilinx. 2020. Vitis Unified Software Platform Documentation: Application Acceleration Development (v2020.1)."},{"key":"e_1_3_2_49_2","doi-asserted-by":"publisher","DOI":"10.1109\/FPL.2015.7294013"},{"key":"e_1_3_2_50_2","doi-asserted-by":"publisher","DOI":"10.1109\/FCCM.2016.26"},{"key":"e_1_3_2_51_2","unstructured":"Y. Sui and J. Xue. 2020. PTABen Benchmark Suite. (2020). https:\/\/github.com\/SVF-tools\/PTABen."},{"key":"e_1_3_2_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/1065579.1065798"},{"key":"e_1_3_2_53_2","first-page":"145","volume-title":"PLDI","author":"Zhu Jianwen","year":"2004","unstructured":"Jianwen Zhu and Silvian Calman. 2004. Symbolic pointer analysis revisited. In PLDI. ACM, 145\u2013157."}],"container-title":["ACM Transactions on Design Automation of Electronic Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3491430","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3491430","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:31:07Z","timestamp":1750188667000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3491430"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2022,3,8]]},"references-count":52,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2022,7,31]]}},"alternative-id":["10.1145\/3491430"],"URL":"https:\/\/doi.org\/10.1145\/3491430","relation":{},"ISSN":["1084-4309","1557-7309"],"issn-type":[{"type":"print","value":"1084-4309"},{"type":"electronic","value":"1557-7309"}],"subject":[],"published":{"date-parts":[[2022,3,8]]},"assertion":[{"value":"2021-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2021-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-03-08","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}