Yunbo Ni

dblp:385/0761 · DBLP profile ↗
← Back
2ranked-venue papers
1as first author
2since 2021 · last 2025
0009-0004-4837-6696ORCID · reported

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 first-author · 2 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software testing · 40% Empirical software engineering · 28% Compilers and program optimization · 28%

Topics — the 8 heaviest of 9, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing
compiler testing
1.122025
Interleaving Large Language Models for Compiler Testing · Proc. ACM Program. Lang. 2025
An Empirical Study of Bugs in the rustc Compiler · Proc. ACM Program. Lang. 2025
Compilers and program optimization
code generation
0.912025
Interleaving Large Language Models for Compiler Testing · Proc. ACM Program. Lang. 2025
Empirical software engineering › software fault analysis
compiler bug study
0.912025
An Empirical Study of Bugs in the rustc Compiler · Proc. ACM Program. Lang. 2025
Empirical software engineering
mining software repositories
0.912025
An Empirical Study of Bugs in the rustc Compiler · Proc. ACM Program. Lang. 2025
Software testing › test generation › automated test generation
test program generation
0.912025
Interleaving Large Language Models for Compiler Testing · Proc. ACM Program. Lang. 2025
Software testing
fuzzing
0.312025
Interleaving Large Language Models for Compiler Testing · Proc. ACM Program. Lang. 2025
Software testing › compiler testing
miscompilation detection
0.312025
Interleaving Large Language Models for Compiler Testing · Proc. ACM Program. Lang. 2025
Programming languages and type systems › rust
rust type system
0.312025
An Empirical Study of Bugs in the rustc Compiler · Proc. ACM Program. Lang. 2025

Methods — techniques the papers use, named apart from their topics

program generation · 0.9manual issue review · 0.9large language model · 0.9interleaving · 0.9empirical study · 0.9bug categorization · 0.9
YearPublicationVenuePosition
2025 An Empirical Study of Bugs in the rustc Compiler
abstract
Rust is gaining popularity for its well-known memory safety guarantees and high performance, distinguishing it from C/C++ and JVM-based languages. Its compiler, rustc , enforces these guarantees through specialized mechanisms such as trait solving, borrow checking, and specific optimizations. However, Rust’s unique language mechanisms introduce complexity to its compiler, resulting in bugs that are uncommon in traditional compilers. With Rust’s increasing adoption in safety-critical domains, understanding these language mechanisms and their impact on compiler bugs is essential for improving the reliability of both rustc and Rust programs. Such understanding could provide the foundation for developing more effective testing strategies tailored to rustc . Improving the quality of rustc testing is essential for enhancing compiler reliability, which in turn strengthens the safety and correctness of all Rust programs, as compiler bugs can silently propagate into every compiled program. Yet, we still lack a large-scale, detailed, and in-depth study of rustc bugs. To bridge this gap, this work presents a comprehensive and systematic study of rustc bugs, specifically those originating in semantic analysis and intermediate representation (IR) processing, which are stages that implement essential Rust language features such as ownership and lifetimes. Our analysis examines issues and fixes reported between 2022 and 2024, with a manual review of 301 valid issues. We categorize these bugs based on their causes, symptoms, affected compilation stages, and test case characteristics. Additionally, we evaluate existing rustc testing tools to assess their effectiveness and limitations. Our key findings include: (1) rustc bugs primarily arise from Rust’s type system and lifetime model, with frequent errors in the High-Level Intermediate Representation (HIR) and Mid-Level Intermediate Representation (MIR) modules due to complex checkers and optimizations; (2) bug-revealing test cases often involve unstable features, advanced trait usages, lifetime annotations, standard APIs, and specific optimization levels; (3) while both valid and invalid programs can trigger bugs, existing testing tools struggle to detect non-crash errors, underscoring the need for further advancements in rustc testing.
Yang Feng 0003, Yunbo Ni, Shaohua Li 0002, Xizhe Yin, Qingkai Shi, Baowen Xu, Zhendong Su 0001
Proc. ACM Program. Lang.3
2025 Interleaving Large Language Models for Compiler Testing
abstract
Testing compilers with AI models, especially large language models (LLMs), has shown great promise. However, current approaches struggle with two key problems: The generated programs for testing compilers are often too simple, and extensive testing with the LLMs is computationally expensive. In this paper, we propose a novel compiler testing framework that decouples the testing process into two distinct phases: an offline phase and an online phase. In the offline phase, we use LLMs to generate a collection of small but feature-rich code pieces. In the online phase, we reuse these code pieces by strategically combining them to build high-quality and valid test programs, which are then used to test compilers. We implement this idea in a tool, LegoFuzz , for testing C compilers. The results are striking: we found 66 bugs in GCC and LLVM, the most widely used C compilers. Almost half of the bugs are miscompilation bugs, which are serious and hard-to-find bugs that none of the existing LLM-based tools could find. We believe this efficient design opens up new possibilities for using AI models in software testing beyond just C compilers.
Yunbo Ni, Shaohua Li 0002
Proc. ACM Program. Lang.1