@article{canis13_legup, author = {Canis, Andrew and Choi, Jongsok and Aldham, Mark and Zhang, Victor and Kammoona, Ahmed and Czajkowski, Tomasz and Brown, Stephen D. and Anderson, Jason H.}, title = {{LegUp}: an Open-Source High-Level Synthesis Tool for {FPGA}-Based Processor/accelerator Systems}, journal = {ACM Trans. Embed. Comput. Syst.}, volume = {13}, number = {2}, year = {2013}, doi = {10.1145/2514740}, address = {New York, NY, USA}, articleno = {24}, issn = {1539-9087}, issue_date = {September 2013}, month = {9}, numpages = {27}, publisher = {Association for Computing Machinery}, } @misc{xilinx20_vivad_high_synth, author = {Xilinx}, title = {Vivado High-level Synthesis}, url = {https://bit.ly/39ereMx}, urldate = {2020-07-20}, year = 2020, } @misc{intel20_sdk_openc_applic, author = {Intel}, title = {{SDK} for {OpenCL} Applications}, url = {https://intel.ly/30sYHz0}, urldate = {2020-07-20}, year = 2020, } @misc{mentor20_catap_high_level_synth, author = {Mentor}, title = {Catapult High-Level Synthesis}, url = {https://bit.ly/32xhADw}, urldate = {2020-06-06}, year = 2020, } @inproceedings{yang11_findin_under_bugs_c_compil, author = {Yang, Xuejun and Chen, Yang and Eide, Eric and Regehr, John}, title = {Finding and Understanding Bugs in {C} Compilers}, booktitle = {Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation}, year = 2011, pages = {283--294}, doi = {10.1145/1993498.1993532}, acmid = 1993532, address = {New York, NY, USA}, isbn = {978-1-4503-0663-8}, location = {San Jose, California, USA}, numpages = 12, publisher = {ACM}, series = {PLDI '11}, doi={10.1145/1993498.1993532}, } @inproceedings{lidbury15_many_core_compil_fuzzin, author = {Lidbury, Christopher and Lascu, Andrei and Chong, Nathan and Donaldson, Alastair F.}, title = {Many-Core Compiler Fuzzing}, booktitle = {Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation}, year = 2015, pages = {65-76}, doi = {10.1145/2737924.2737986}, address = {New York, NY, USA}, isbn = 9781450334686, location = {Portland, OR, USA}, numpages = 12, publisher = {Association for Computing Machinery}, series = {PLDI '15}, } @misc{hls_fintech, author = {{EE Journal}}, title = {Silexica Expands Into FinTech Industry Bringing Next-Generation Compute Acceleration}, year = {2020}, month = {June}, url = {https://bit.ly/hls-fintech}, howpublished = {Press release}, } @misc{hls_objdetect, author = {{PR Newswire}}, title = {Mentor's {Catapult HLS} enables {Chips\&Media} to deliver deep learning hardware accelerator {IP} in half the time}, year = {2019}, month = {January}, url = {https://bit.ly/hls-objdetect}, howpublished = {Press release}, } @misc{hls_controller, author = {{LegUp Computing}}, title = {Migrating Motor Controller {C++} Software from a Microcontroller to a {PolarFire} {FPGA} with {LegUp} High-Level Synthesis}, year = {2020}, month = {June}, url = {https://bit.ly/hls-controller}, howpublished = {White Paper}, } @inproceedings {verismith, author = {Yann Herklotz and John Wickerson}, title = {Finding and Understanding Bugs in {FPGA} Synthesis Tools}, booktitle = {{FPGA}}, pages = {277-287}, doi = {10.1145/3373087.3375310}, publisher = {{ACM}}, year = {2020} } @inproceedings{creduce, title={Test-case reduction for {C} compiler bugs}, author={Regehr, John and Chen, Yang and Cuoq, Pascal and Eide, Eric and Ellison, Chucky and Yang, Xuejun}, booktitle={Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation}, pages={335--346}, year={2012}, doi={10.1145/2254064.2254104}, } @inproceedings{fuzzing+chen+13+taming, title={Taming compiler fuzzers}, author={Chen, Yang and Groce, Alex and Zhang, Chaoqiang and Wong, Weng-Keen and Fern, Xiaoli and Eide, Eric and Regehr, John}, booktitle={Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation}, pages={197--208}, year={2013}, doi={10.1145/2491956.2462173}, } @article{fuzzing+liang+18+survey, title={Fuzzing: State of the art}, author={Liang, Hongliang and Pei, Xiaoxiao and Jia, Xiaodong and Shen, Wuwei and Zhang, Jian}, journal={IEEE Transactions on Reliability}, volume={67}, number={3}, pages={1199--1218}, year={2018}, publisher={IEEE}, doi={10.1109/TR.2018.2834476} } @inproceedings{fuzz+sun+16+toward, title={Toward understanding compiler bugs in {GCC and LLVM}}, author={Sun, Chengnian and Le, Vu and Zhang, Qirun and Su, Zhendong}, booktitle={Proceedings of the 25th International Symposium on Software Testing and Analysis}, pages={294--305}, year={2016}, doi={10.1145/2931037.2931074}, } @inproceedings{fuzzing+zhang+19, title={Finding and understanding bugs in software model checkers}, author={Zhang, Chengyu and Su, Ting and Yan, Yichen and Zhang, Fuyuan and Pu, Geguang and Su, Zhendong}, booktitle={Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering}, pages={763--773}, year={2019}, doi={10.1145/3338906.3338932} } @article{perna12_mechan_wire_wise_verif_handel_c_synth, author = "Juan Perna and Jim Woodcock", title = {Mechanised Wire-Wise Verification of {Handel-C} Synthesis}, journal = "Science of Computer Programming", volume = 77, number = 4, pages = "424 - 443", year = 2012, doi = "10.1016/j.scico.2010.02.007", issn = "0167-6423", } @article{chouksey20_verif_sched_condit_behav_high_level_synth, author = {R. {Chouksey} and C. {Karfa}}, title = {Verification of Scheduling of Conditional Behaviors in High-Level Synthesis}, journal = {IEEE Transactions on Very Large Scale Integration (VLSI) Systems}, volume = {}, number = {}, pages = {1-14}, year = {2020}, doi = {10.1109/TVLSI.2020.2978242}, url = {https://doi.org/10.1109/TVLSI.2020.2978242}, ISSN = {1557-9999}, month = {}, } @inproceedings{gupta03_spark, author = {S. {Gupta} and N. {Dutt} and R. {Gupta} and A. {Nicolau}}, title = {{SPARK}: a high-level synthesis framework for applying parallelizing compiler transformations}, booktitle = {16th International Conference on VLSI Design, 2003. Proceedings.}, year = 2003, pages = {461-466}, doi = {10.1109/ICVD.2003.1183177}, ISSN = {1063-9667}, month = {Jan}, } @article{marcozzi+19, author = {Micha{\"{e}}l Marcozzi and Qiyi Tang and Alastair F. Donaldson and Cristian Cadar}, title = {Compiler fuzzing: how much does it matter?}, journal = {Proc. {ACM} Program. Lang.}, volume = {3}, number = {{OOPSLA}}, pages = {155:1--155:29}, year = {2019}, doi = {10.1145/3360581}, timestamp = {Thu, 16 Apr 2020 13:51:46 +0200}, biburl = {https://dblp.org/rec/journals/pacmpl/MarcozziTDC19.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} } @inproceedings{ramanathan+17, author = {Nadesh Ramanathan and Shane T. Fleming and John Wickerson and George A. Constantinides}, editor = {Jonathan W. Greene and Jason Helge Anderson}, title = {Hardware Synthesis of Weakly Consistent {C} Concurrency}, booktitle = {Proceedings of the 2017 {ACM/SIGDA} International Symposium on Field-Programmable Gate Arrays, {FPGA} 2017, Monterey, CA, USA, February 22-24, 2017}, pages = {169--178}, publisher = {{ACM}}, year = {2017}, url = {http://dl.acm.org/citation.cfm?id=3021733}, timestamp = {Tue, 06 Nov 2018 16:58:22 +0100}, biburl = {https://dblp.org/rec/conf/fpga/RamanathanFWC17.bib}, bibsource = {dblp computer science bibliography, https://dblp.org} } @inproceedings{karine+20, author = {Karine Even-Mendoza and Cristian Cadar and Alastair Donaldson}, title = {Closer to the Edge: Testing Compilers More Thoroughly by Being Less Conservative About Undefined Behaviour}, booktitle = {IEEE/ACM International Conference on Automated Software Engineering, New Ideas and Emerging Results Track (ASE-NIER 2020)}, year = {2020}, month = {09}, location = {undefined}, } @inproceedings{pilato13_bambu, author = {C. {Pilato} and F. {Ferrandi}}, booktitle = {2013 23rd International Conference on Field programmable Logic and Applications}, title = {Bambu: A modular framework for the high level synthesis of memory-intensive applications}, year = {2013}, volume = {}, number = {}, pages = {1-4}, doi = {10.1109/FPL.2013.6645550} } @phdthesis{canis15_legup, keywords = {high-level synthesis, hardware/software co-simulation, FPGA}, title = {{LegUp}: open-source high-level synthesis research framework}, author = {Canis, Andrew Christopher}, school = {University of Toronto}, year = {2015} } @inproceedings{chen16_empir_compar_compil_testin_techn, author = {Chen, Junjie and Hu, Wenxiang and Hao, Dan and Xiong, Yingfei and Zhang, Hongyu and Zhang, Lu and Xie, Bing}, title = {An Empirical Comparison of Compiler Testing Techniques}, year = {2016}, isbn = {9781450339001}, publisher = {Association for Computing Machinery}, address = {New York, NY, USA}, url = {https://doi.org/10.1145/2884781.2884878}, doi = {10.1145/2884781.2884878}, abstract = {Compilers, as one of the most important infrastructure of today's digital world, are expected to be trustworthy. Different testing techniques are developed for testing compilers automatically. However, it is unknown so far how these testing techniques compared to each other in terms of testing effectiveness: how many bugs a testing technique can find within a time limit.In this paper, we conduct a systematic and comprehensive empirical comparison of three compiler testing techniques, namely, Randomized Differential Testing (RDT), a variant of RDT---Different Optimization Levels (DOL), and Equivalence Modulo Inputs (EMI). Our results show that DOL is more effective at detecting bugs related to optimization, whereas RDT is more effective at detecting other types of bugs, and the three techniques can complement each other to a certain degree.Furthermore, in order to understand why their effectiveness differs, we investigate three factors that influence the effectiveness of compiler testing, namely, efficiency, strength of test oracles, and effectiveness of generated test programs. The results indicate that all the three factors are statistically significant, and efficiency has the most significant impact.}, booktitle = {Proceedings of the 38th International Conference on Software Engineering}, pages = {180–190}, numpages = {11}, location = {Austin, Texas}, series = {ICSE '16} }