{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,20]],"date-time":"2025-06-20T04:08:52Z","timestamp":1750392532577,"version":"3.41.0"},"reference-count":46,"publisher":"Association for Computing Machinery (ACM)","issue":"FSE","content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Proc. ACM Softw. Eng."],"published-print":{"date-parts":[[2025,6,19]]},"abstract":"<jats:p>In recent years, the MLIR framework has had explosive growth due to the need for extensible deep learning compilers for hardware accelerators. Such examples include Triton, CIRCT, and ONNX-MLIR. MLIR compilers introduce significant complexities in localizing bugs or inefficiencies because of their layered optimization and transformation process with compilation passes. While existing delta debugging techniques can be used to identify a minimum subset of IR code that reproduces a given bug symptom, their naive application to MLIR is time-consuming because real-world MLIR compilers usually involve a large number of compilation passes. Compiler developers must identify a minimized set of relevant compilation passes to reduce the footprint of MLIR compiler code to be inspected for a bug fix. We propose DuoReduce, a dual-dimensional reduction approach for MLIR bug localization. DuoReduce leverages three key ideas in tandem to design an efficient MLIR delta debugger. First, DuoReduce reduces compiler passes that are irrelevant to the bug by identifying ordering dependencies among the different compilation passes. Second, DuoReduce uses MLIR-semantics-aware transformations to expedite IR code reduction. Finally, DuoReduce leverages cross-dependence between the IR code dimension and the compilation pass dimension by accounting for which IR code segments are related to which compilation passes to reduce unused passes.                 Experiments with three large-scale MLIR compiler projects find that DuoReduce outperforms syntax-aware reducers such as Perses and Vulcan in terms of IR code reduction by 31.6% and 21.5% respectively. If one uses these reducers by enumerating all possible compilation passes (on average 18 passes), it could take up to 145 hours. By identifying ordering dependencies among compilation passes, DuoReduce reduces this time to 9.5 minutes. By identifying which compilation passes are unused for compiling reduced IR code, DuoReduce reduces the number of passes by 14.6%. This translates to not needing to examine 281 lines of MLIR compiler code on average to fix the bugs. DuoReduce has the potential to significantly reduce debugging effort in MLIR compilers, which serves as the foundation for the current landscape of machine learning and hardware accelerators.<\/jats:p>","DOI":"10.1145\/3715747","type":"journal-article","created":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T15:16:02Z","timestamp":1750346162000},"page":"647-667","source":"Crossref","is-referenced-by-count":0,"title":["DuoReduce: Bug Isolation for Multi-layer Extensible Compilation"],"prefix":"10.1145","volume":"2","author":[{"ORCID":"https:\/\/orcid.org\/0009-0005-2778-8840","authenticated-orcid":false,"given":"Jiyuan","family":"Wang","sequence":"first","affiliation":[{"name":"University of California at Los Angeles, Los Angeles, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-3179-7433","authenticated-orcid":false,"given":"Yuxin","family":"Qiu","sequence":"additional","affiliation":[{"name":"University of California at Riverside, Riverside, USA"}]},{"ORCID":"https:\/\/orcid.org\/0009-0003-3652-384X","authenticated-orcid":false,"given":"Ben","family":"Limpanukorn","sequence":"additional","affiliation":[{"name":"University of California at Los Angeles, Los Angeles, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-7335-7295","authenticated-orcid":false,"given":"Hong Jin","family":"Kang","sequence":"additional","affiliation":[{"name":"University of California at Los Angeles, Los Angeles, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4002-4379","authenticated-orcid":false,"given":"Qian","family":"Zhang","sequence":"additional","affiliation":[{"name":"University of California at Riverside, Riverside, USA"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3802-1512","authenticated-orcid":false,"given":"Miryung","family":"Kim","sequence":"additional","affiliation":[{"name":"University of California at Los Angeles, Los Angeles, USA"}]}],"member":"320","published-online":{"date-parts":[[2025,6,19]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"2024. https:\/\/mlir.llvm.org\/"},{"key":"e_1_2_1_2_1","unstructured":"2024. https:\/\/circt.llvm.org\/docs\/PyCDE\/basics\/"},{"key":"e_1_2_1_3_1","unstructured":"2024. https:\/\/github.com\/llvm\/llvm-project\/issues\/82382"},{"key":"e_1_2_1_4_1","unstructured":"2024. https:\/\/mlir.llvm.org\/docs\/Tools\/mlir-reduce\/"},{"key":"e_1_2_1_5_1","unstructured":"2024. https:\/\/github.com\/llvm\/circt\/issues\/6317"},{"key":"e_1_2_1_6_1","unstructured":"2024. https:\/\/github.com\/llvm\/llvm-project\/issues\/56914"},{"key":"e_1_2_1_7_1","unstructured":"2024. https:\/\/github.com\/llvm\/llvm-project\/issues\/64074"},{"key":"e_1_2_1_8_1","unstructured":"2024. https:\/\/github.com\/uw-pluverse\/perses"},{"key":"e_1_2_1_9_1","unstructured":"2024. https:\/\/github.com\/llvm\/circt\/tree\/main\/test\/circt-reduce"},{"key":"e_1_2_1_10_1","unstructured":"2024. https:\/\/github.com\/llvm\/llvm-project\/issues\/64071"},{"key":"e_1_2_1_11_1","unstructured":"2024. https:\/\/github.com\/llvm\/llvm-project\/issues\/76579"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3624062.3624167"},{"key":"e_1_2_1_13_1","volume-title":"13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18)","author":"Chen Tianqi","year":"2018","unstructured":"Tianqi Chen, Thierry Moreau, Ziheng Jiang, Lianmin Zheng, Eddie Yan, Haichen Shen, Meghan Cowan, Leyuan Wang, Yuwei Hu, and Luis Ceze. 2018. TVM: an automated end-to-end optimizing compiler for deep learning. In 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI 18). USENIX Association, USA. 578\u2013594. isbn:9781931971478"},{"key":"e_1_2_1_14_1","volume-title":"CIRCT: Circuit IR Compilers and Tools. https:\/\/github.com\/llvm\/circt","author":"Contributors CIRCT","year":"2023","unstructured":"CIRCT Contributors. 2023. CIRCT: Circuit IR Compilers and Tools. https:\/\/github.com\/llvm\/circt"},{"key":"e_1_2_1_15_1","unstructured":"LLVM Contributors. 2023. MLIR Language Reference. https:\/\/mlir.llvm.org\/docs\/LangRef\/"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/3453483.3454092"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/3519939.3523700"},{"key":"e_1_2_1_18_1","unstructured":"Juliana Freire D Koop Emanuele Santos Carlos Scheidegger Cl\u00e1udio Silva and Vo Huy. 2011. The Architecture of Open Source Applications. 1."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/3243734.3243838"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/2994291.2994296"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSME.2017.26"},{"key":"e_1_2_1_22_1","unstructured":"Tian Jin Gheorghe-Teodor Bercea Tung D Le Tong Chen Gong Su Haruki Imai Yasushi Negishi Anh Leu Kevin O\u2019Brien and Kiyokuni Kawachiya. 2020. Compiling onnx neural network models using mlir. arXiv preprint arXiv:2008.08272."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/3338906.3338956"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/3278186.3278189"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2737924.2737986"},{"key":"e_1_2_1_26_1","volume-title":"Eric Zitong Zhou, and Miryung Kim.","author":"Limpanukorn Ben","year":"2024","unstructured":"Ben Limpanukorn, Jiyuan Wang, Hong Jin Kang, Eric Zitong Zhou, and Miryung Kim. 2024. Fuzzing MLIR by Synthesizing Custom Mutations. arXiv preprint arXiv:2404.16947."},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/3575693.3575707"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3611643.3616337"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/3527317"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE56229.2023.00147"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/3597926.3598053"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134285.1134307"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the 11th International Workshop on Satisfiability Modulo Theories, SMT. 8\u20139.","author":"Niemetz Aina","year":"2013","unstructured":"Aina Niemetz and Armin Biere. 2013. ddSMT: a delta debugger for the SMT-LIB v2 format. In Proceedings of the 11th International Workshop on Satisfiability Modulo Theories, SMT. 8\u20139."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/2345156.2254104"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468591"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180236"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3617172"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/3315508.3329973"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/3468264.3468625"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE56229.2023.00120"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/3586049"},{"key":"e_1_2_1_42_1","volume-title":"my program worked. Today, it does not. Why? ACM SIGSOFT Software engineering notes, 24, 6","author":"Zeller Andreas","year":"1999","unstructured":"Andreas Zeller. 1999. Yesterday, my program worked. Today, it does not. Why? ACM SIGSOFT Software engineering notes, 24, 6 (1999), 253\u2013267."},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/587051.587053"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/32.988498"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/3650212.3652126"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/3611643.3616275"}],"container-title":["Proceedings of the ACM on Software Engineering"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3715747","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T15:19:57Z","timestamp":1750346397000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3715747"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,6,19]]},"references-count":46,"journal-issue":{"issue":"FSE","published-print":{"date-parts":[[2025,6,19]]}},"alternative-id":["10.1145\/3715747"],"URL":"https:\/\/doi.org\/10.1145\/3715747","relation":{},"ISSN":["2994-970X"],"issn-type":[{"value":"2994-970X","type":"electronic"}],"subject":[],"published":{"date-parts":[[2025,6,19]]}}}