{"doi":"10.1145/3508362","title":"Boosting Compiler Testing via Compiler Optimization Exploration","abstract":"<jats:p>\n            Compilers are a kind of important software, and similar to the quality assurance of other software, compiler testing is one of the most widely-used ways of guaranteeing their quality. Compiler bugs tend to occur in compiler optimizations. Detecting optimization bugs needs to consider two main factors: (1) the\n            <jats:italic>optimization flags</jats:italic>\n            controlling the accessability of the compiler buggy code should be turned on; and (2) the\n            <jats:italic>test program</jats:italic>\n            should be able to trigger the buggy code. However, existing compiler testing approaches only consider the latter to generate effective test programs, but just run them under several pre-defined optimization levels (e.g.,\n            <jats:monospace>-O0</jats:monospace>\n            ,\n            <jats:monospace>-O1</jats:monospace>\n            ,\n            <jats:monospace>-O2</jats:monospace>\n            ,\n            <jats:monospace>-O3</jats:monospace>\n            ,\n            <jats:monospace>-Os</jats:monospace>\n            in GCC).\n          </jats:p>\n          <jats:p>\n            To better understand the influence of compiler optimizations on compiler testing, we conduct the first empirical study, and find that (1) all the bugs detected under the widely-used optimization levels are also detected under the explored optimization settings (we call a combination of optimization flags turned on for compilation\n            <jats:italic>an optimization setting</jats:italic>\n            ), while 83.54% of bugs are only detected under the latter; (2) there exist both inhibition effect and promotion effect among optimization flags for compiler testing, indicating the necessity and challenges of considering the factor of compiler optimizations in compiler testing.\n          </jats:p>\n          <jats:p>\n            We then propose the first approach, called\n            <jats:bold>COTest</jats:bold>\n            , by considering both factors to test compilers. Specifically, COTest first adopts machine-learning (the XGBoost algorithm) to model the relationship between test programs and optimization settings, to predict the bug-triggering probability of a test program under an optimization setting. Then, it designs a diversity augmentation strategy to select a set of diverse candidate optimization settings for prediction for a test program. Finally, Top-K optimization settings are selected for compiler testing according to the predicted bug-triggering probabilities. Then, it designs a diversity augmentation strategy to select a set of diverse candidate optimization settings for prediction for a test program. Finally, Top-K optimization settings are selected for compiler testing according to the predicted bug-triggering probabilities. The experiments on GCC and LLVM demonstrate its effectiveness, especially COTest detects 17 previously unknown bugs, 11 of which have been fixed or confirmed by developers.\n          </jats:p>","journal":"ACM Transactions on Software Engineering and Methodology","year":2022,"id":29856,"datarank":0.8936787432170132,"base_score":3.4011973816621555,"endowment":3.4011973816621555,"self_citation_contribution":0.5101796072493234,"citation_network_contribution":0.38349913596768975,"self_endowment_contribution":0.5101796072493234,"citer_contribution":0.38349913596768975,"corpus_percentile":null,"corpus_rank":null,"citation_count":29,"citer_count":18,"citers_with_citation_signal":9,"citers_with_endowment":9,"datacite_reuse_total":0,"is_dataset":false,"is_dataset_confidence":null,"is_data_producer":false,"deposit_databanks":null,"is_oa":false,"file_count":0,"downloads":0,"has_version_chain":false,"published_date":null,"fair_score":null,"fair_percentile":null,"algorithm_id":"datarank_citation_only_1hop_v6","ranking_scope":"data_only","authors":[{"id":163614,"name":"Chenyao Suo","orcid":null,"position":1,"is_corresponding":false},{"id":163613,"name":"Junjie Chen","orcid":"0000-0003-3056-9962","position":0,"is_corresponding":false}],"reference_count":0,"raw_metadata":{"has_enrichment":true,"base_score":3.332204510175204,"endowment":3.332204510175204,"datacite_reuse_total":0,"file_count":0,"downloads":0,"views":0,"has_version_chain":false,"is_dataset":false,"is_oa":false,"pmid":"18998881","pmcid":null,"openalex_id":"https://openalex.org/W4220800565","authors":[],"funders":[{"funder_name":"National Natural Science Foundation of China","grant_id":"62002256","title":null}],"total_grants":1,"fwci":6.6403,"citation_percentile":0.97103236,"influential_citations":2,"citation_trend":[{"year":2022,"count":1},{"year":2023,"count":10},{"year":2024,"count":7},{"year":2025,"count":6},{"year":2026,"count":3}],"oa_status":"closed","license":"https://www.acm.org/publications/policies/copyright_policy#Background","oa_locations":[{"url":"https://dl.acm.org/doi/10.1145/3508362","host_type":"publisher"},{"url":"https://dl.acm.org/doi/pdf/10.1145/3508362","host_type":"publisher"},{"url":"https://doi.org/10.1145/3508362","host_type":"journal"}],"fields_of_study":["Software Testing and Debugging Techniques","Software Engineering Research","Software System Performance and Reliability","Computer Science"],"mesh_terms":[],"keywords":["Compiler","Computer science","Interprocedural optimization","Optimizing compiler","Compiler correctness","Compiler construction","Loop optimization","Dead code elimination","Programming language","Program optimization","Parallel computing","Software quality assurance","Code coverage","Software","Software quality","Code generation","Software development","Operating system"],"sdg_mappings":[],"linked_datasets":[],"clinical_trials":[],"software_tools":[],"database_accessions":[],"source":"live","citation_network_status":"fetched"},"created_at":"2026-06-09T00:57:35.622211Z","pmid":null,"pmcid":null,"fwci":null,"citation_percentile":null,"influential_citations":0,"oa_status":null,"license":null,"views":0,"total_file_size_bytes":0,"version_count":0,"fair_f":null,"fair_a":null,"fair_i":null,"fair_r":null,"fair_zscore":null,"fair_rationale":null,"fair_model":null,"fair_agent_version":null,"fair_fulltext_source":null,"fair_has_llm":null,"fair_computed_at":null,"clinical_trials":[],"software_tools":[],"db_accessions":[],"linked_datasets":[],"topics":[]}