Papers for

compiler developers

Papers whose findings have a practical use for this group, as judged from the abstract. Open a paper to read what it means in practice.

Hierarchical approach improves rustc bug location using documentation and evidence

HIDE: Hierarchical Isolation via Documentation and Evidence for Rustc Bugs

Abstract: Rustc bugs can prevent valid programs from compiling or cause incorrect compilation results, making the identification of responsible source files essential for repair. Using large language models (LLMs) for rustc bug isolation raises three challenges. First, distributed compiler functionality requires understanding both what individual files do and how they work together. Second, a large source file search space makes exhaustive analysis of all files costly. Third, including documentation and source code for many candidate files in LLM prompts leads to context overload, which can reduce bug isolation accuracy. We propose HIDE, a hierarchical LLM-based approach that combines compiler documentation with bug evidence to rank suspicious rustc source files. Given a rustc revision and a bug context, HIDE consists of two stages that generate compiler documentation and narrow the search space. To understand distributed compiler functionality, the Layered Documentation Aggregation stage summarizes what individual files do and how files with similar functions work together. To reduce the large source file search space, the Hierarchical Bug Isolation stage uses hierarchical candidate selection to reduce the number of files requiring detailed analysis. To mitigate context overload, this stage uses Scoped Candidate Competition and Evidence-Guided Code Slicing to limit the number of candidates and the amount of source code included in each prompt, respectively. We evaluate HIDE on 160 reproducible rustc bugs and compare it with Agentless, SoapFL, and GraphLocator. With GPT-5.4, HIDE achieves 42.08% Accuracy@1 and 80.42% Accuracy@10, exceeding the strongest baseline results by 5.83% and 6.04%, respectively. These results demonstrate that generating compiler documentation, narrowing candidates hierarchically, and limiting analysis context enable effective rustc bug isolation.

Tue 27 OctSoftware Engineering
The gist
Finding bugs in the Rust compiler is hard because it involves many files working together, and looking at all the files at once is too much for computer models. The authors created a two-step method called HIDE that first summarizes what each file does and then focuses on the most likely problem files while showing only the important parts of the code. This approach helps large language models work better without getting overwhelmed. They tested HIDE on real Rust compiler bugs and it found the correct problem file more often than previous methods.
Open → 2610.37343v1

Typed template fuzzing improves software testing across many languages

Typed Template Fuzzing

Abstract: Fuzzing software with complex inputs has been a longstanding challenge. Traditionally, fuzzers either programmatically encode language constraints, requiring significant engineering effort, or rely on users to declare grammars and constraints. Recent LLM-based fuzzers address these drawbacks but introduce new issues. Some use LLMs for test generation, sacrificing throughput and producing invalid inputs when the LLM makes mistakes. Others rely on language-specific parsers, static analysis, and AST manipulation libraries. We introduce Typed Template Fuzzing (TTF), a lightweight LLM-based fuzzing methodology. The key idea is to use LLMs in a preprocessing step to transform seeds into typed templates. The typed templates then enable semantically aware, mutation-based fuzzing without language-specific parsers, type checkers, or further LLM queries during fuzzing. By exploiting the correspondence between seeds and templates, TTF can moreover repair LLM mistakes. We have implemented TTF in our tool Typos, which we evaluate across 21 input languages, including C, C++, Go, Rust, SystemVerilog, Scala, and Java, as well as libraries such as PyTorch and Qiskit. In a six-month fuzzing campaign, we reported 135 bugs, 128 of which were previously unknown. Perhaps most notably, on average 96% of Typos's mutants are valid, coming close to the validity rates of domain-specific fuzzers. Our evaluation further shows Typos's benefits over the state of the art.

Thu 22 OctSoftware EngineeringProgramming Languages
The gist
Testing software with complicated inputs is hard because those inputs need to follow special rules. The authors created a new method called Typed Template Fuzzing that uses language models just once to prepare templates, then quickly mutates these templates to create many valid tests. This approach works well for many programming languages without extra language-specific tools, finds many bugs, and keeps almost all tests valid. Their tool Typos showed good results by finding many new bugs and maintaining high test validity.
Open → 2610.31342v1

Integer-based method improves scaling decisions in MXFP4 dot product computation

Deciding Scale Placement in MXFP4 Dot Products with Integer Arithmetic

Abstract: The Open Compute Project's microscaling (MX) family includes MXFP4, which stores 32 four-bit elements with a shared power-of-two scale. When lowering a dot-product reduction, a compiler can apply these scales before the reduction, or defer scaling until afterwards. Although equivalent over real numbers, these formulations can produce different IEEE binary32 results through overflow or underflow, with equivalence also depending on the reduction tree. We study the legality of compiler rewrites in either direction by deriving conditions under which the two formulations are bitwise equivalent. To decide rewrite legality, we construct an integer state machine that exploits the finite element alphabet and shared power-of-two scales, modeling overflow, NaN, and subnormal rounding. We prove its faithfulness under bounded scale codes and integer coefficients, yielding an exact encoding of the equivalence query in quantifier-free linear integer arithmetic (QF_LIA). For MXFP4, we derive a closed-form sufficient upper bound on the sum of scale exponents for any fixed binary reduction tree within the supported coefficient range. This bound depends on the size of the largest proper subtree. For four tree shapes at block lengths $k\in\{2,3,4,8,16,32\}$ and two shapes at $k=64$, SMT finds counterexamples when this upper bound is increased by one exponent step. Against the standard direct encoding in quantifier-free floating-point arithmetic (QF_FP), on matched queries cvc5 proves the integer version in seconds but reaches a configured one-CPU-hour limit on the floating-point proof even at $k=2$. The implementation was cross-checked using an independent floating-point encoding, exhaustive and stratified binary32 execution, and GPU replay of counterexamples. An MLIR lowering prototype demonstrates selection between the two formulations using the certified conditions as static or runtime guards.

Wed 21 OctLogic in Computer ScienceHardware ArchitectureProgramming Languages
The gist
When computers calculate sums of products with tiny numbers stored in a special compressed format called MXFP4, the order of multiplying by a scale factor can change the tiny errors and overflows in the result. The authors found exact mathematical conditions that guarantee when two ways of scaling produce exactly the same answer, using only integer math to model floating-point rounding errors. They created a method that quickly checks these conditions and proved it works for a wide range of cases. This helps compilers safely pick the best way to do these calculations, avoiding hidden errors and saving time.
Open → 2610.29445v1

Secure compartment isolation proofs handle shared low-level code views

Blame-aware Recomposition for Secure Compilation Proofs of Low-Level Compartment Isolation

Abstract: The security guarantees of existing formally verified compilers for compartmentalized programs in unsafe languages like C stop at a rather high level, assuming a built-in protection mechanism and a block-based memory model. Verifying a concrete, low-level enforcement mechanism for compartment isolation is still a major challenge for current proof techniques. In particular, Abate et al.'s proof technique fails because one of their proof steps, recomposition, essentially requires hiding all information about the code of each compartment, which is not practically achievable at a low level. We propose an extension of their proof technique to a low-level setting where compartments can fully observe each other's code. To do so, we introduce an overlay semantics that allows us to characterize these observations as a form of undefined behaviour, and we use a novel variant of recomposition that we call blame-aware recomposition, which essentially allows recomposing executions as needed in the original high-level proof technique, even if the low-level context observes the code, because this context is ultimately going to be discarded. We apply this new proof to a compartment isolation mechanism that uses a programmable tag-based reference monitor.

Mon 19 OctProgramming LanguagesCryptography and Security
The gist
Proving security for programs that isolate pieces of code, called compartments, is hard when those compartments can see each other’s code at a low level. Previous methods assumed the code was hidden, which is unrealistic for real computers. The authors extend these proofs by treating the observation of other compartments’ code as a special kind of undefined behavior. They introduce a new proof step called blame-aware recomposition that lets them safely prove security even when code is fully visible. Their approach applies to systems that protect compartments using programmable tags on memory references.
Open → 2610.26054v1

Benchmark shows code refactoring can break speed without breaking function

FrontierRefactor: Benchmarking Multi-Scale Performance-Oriented Codebase Refactoring

Abstract: Autonomous codebase refactoring requires coding agents to restructure working software while strictly preserving externally observable behavior and prioritizing execution performance and compute efficiency over stylistic preference. Existing benchmarks: refactoring benchmarks assess functional correctness while overlooking runtime regressions, whereas code performance benchmarks target isolated micro-kernels that ignore codebase-scale complexity. We observe that refactoring scale is governed by the scope of the observable contract, the caller-visible interface fixing behavioral invariants while freeing private implementations for optimization. Building on this insight, we introduce FrontierRefactor, a benchmark of 60 qualified engineering tasks spanning four scales, from computational kernels to full repositories, across in-place optimization and cross-language rewriting. Evaluating frontier coding agents through a reference-free cascaded protocol across 1,080 execution runs reveals that correctness and speedup are largely decoupled: 41.2% of submissions satisfy functional equivalence yet fail to deliver verified performance improvements, with 19.3% suffering performance regressions and 21.9% trapped in measurement noise. Refactoring paradigms reveal orthogonal engineering bottlenecks: while cross-language rewrites gain speedups from native compilation after passing functional checks, agents struggle with contract fidelity, with pass rates dropping from 65.0% on modules to 32.6% at package scale; conversely, in-place optimization reliably preserves behavioral contracts at 86.5% but rarely achieves acceleration without physical performance profiling. Trajectory analysis shows that agents fall victim to uncalibrated micro-benchmarking illusions, an operational blind spot that multi-turn execution-timing feedback directly resolves, raising strict success from 16.0% to 40.0%.

Mon 19 OctArtificial Intelligence
The gist
Refactoring software means changing its code to make it better without changing what it does. This paper introduces FrontierRefactor, a new benchmark made of 60 tasks to test how well AI coding agents refactor code while keeping it working and running faster. They found many times the refactored code was still correct but didn’t actually run faster, and sometimes performance even got worse. The research also shows that checking speed improvements is tricky, but giving agents detailed feedback about run time during multiple tries helps improve success.
Open → 2610.25834v1

Mapping environment classifiers to contextual modal types for safer code

Compiling Environment Classifiers to Contextual Modal Types

Abstract: Type systems for metaprogramming take one of two approaches to safeguarding the scopes of variables in generated code. They either use Environment Classifiers (EC) to identify scopes by name (Taha and Nielsen, 2003), or they use Contextual Modal Type Theory (CMTT) to match scopes by structure (Nanevski, Pfenning, and Pientka, 2008). In this paper, we connect these two approaches by compiling a calculus with polymorphic environment classifiers, subtyping, and mutable references to a CMTT-based calculus with polymorphic contexts, mutable references, and first-class substitutions. The key idea is to map each environment classifier to a context. We prove that the compilation preserves types and that compilation preserves the behavior of metaprograms. Both proofs are mechanized in Agda. The compilation shows that CMTT is at least as expressive as environment classifiers. We conjecture that the converse compilation is difficult, because environment classifiers impose a stricter regime on the metaprogram.

Mon 19 OctProgramming Languages
The gist
Programming languages that generate code need ways to keep track of variable scopes safely. One method uses names to identify where variables belong, while another uses the structure of those scopes. The authors show how to turn the first method into the second by converting named scopes into structured contexts. They prove this conversion keeps the types and behaviors intact, using a tool called Agda for the proofs. This work shows that the structural approach can do at least what the naming method can, but going the other way might be harder.
Open → 2610.25741v1

LLMs prove code optimizations beyond compiler capabilities improve speed

Pattern-Driven Evaluation of LLM Code Optimization: Isolating Compiler-Transcendent Semantic Reasoning

Abstract: Existing evaluations of LLM-based code optimization primarily measure end-to-end speedup, obscuring whether a model actually performs the intended optimization. For compiled languages, this is especially problematic: observed gains may reflect transformations already recoverable by modern optimizing compilers rather than optimization behavior attributable to the model itself. We present PatternBench, a benchmark for studying compiler-transcendent optimization, i.e., performance improvements that remain after aggressive compiler optimization. PatternBench targets residual optimization opportunities across seven classes of transformations and pairs runtime evaluation with an AST-based optimization faithfulness analysis that verifies whether the intended optimization is realized in the generated program. Experiments with frontier, open-weight, and fine-tuned models show that runtime speedup alone provides an incomplete account of optimization capability. Optimization faithfulness is strongly associated with realized speedup, and fine-tuning improves both faithfulness and optimization effectiveness. These results suggest that evaluation of LLM-based code optimization should measure not only performance outcomes, but also whether the target transformation was successfully executed.

Sat 17 OctArtificial IntelligenceProgramming LanguagesSoftware Engineering
The gist
Measuring how much faster code runs after optimization doesn’t always show if a large language model (LLM) truly improved it. The authors created PatternBench, a new test to find optimizations that existing compilers miss. They check not only speed but also if the intended changes really happen in the code. Their tests show that just looking at speedups misses important details and that training models helps them optimize better. This means future evaluations should look at both performance and whether the specific code changes were made.
Open → 2610.24835v1

New class of languages extends semi-linearity beyond context-free sets

Semi-Linearity and Generalized Stratified Semi-Linearity beyond Context-Free Languages

Abstract: Parikh's famous theorem relates to the semi-linearity of context-free languages. We seek for expanding the scope of the semi-linear property from context-free languages to languages beyond them. Of those languages, this work focuses on the languages that are particularly recognized by one-way nondeterministic depth-k storage automata under a natural restriction of frozen blank sensitivity. Those languages (which are called $k$-storable languages) have been already proven to satisfy a natural generalization of the well-known pumping lemmas for regular and context-free languages. The semi-linearity of k-storable languages generalizes Parikh's theorem on the semi-linearity of context-free languages. As for bounded languages, Ginsburg and Spanier's well-known theorem characterizes context-free languages in terms of stratified semi-linearity. This notion is further generalized and is used to characterize the k-storable languages as well. Such a generalization is interesting in its own right. This helps us take an abstract treatment of k-storable languages without relying on "machines". Our results strengthen the belief that those languages are "natural" generalizations of context-free languages.

Wed 14 OctFormal Languages and Automata TheoryComputational Complexity
The gist
This work expands a famous idea about context-free languages, called semi-linearity, to a broader family of languages recognized by certain memory-limited machines. The authors study these ‘k-storable’ languages and show they also have a structured, predictable pattern in their word compositions, generalizing known results from simpler languages. They do this by using a new, abstract mathematical description that doesn't depend on machine models. This suggests that k-storable languages naturally generalize context-free languages in a meaningful way.
Open → 2610.19562v1

Improved algorithms cut graph layout measures and expander decompositions

Greedy Region Growing: Improved Approximations for Cutwidth, Pathwidth, Flow-Expander Decomposition, and More

Abstract: We give a new rounding technique for spreading-metric linear programs, called Greedy Region Growing, which adapts the classical technique of region growing to min-max graph layout problems and flow-expander decomposition. Using this technique, we obtain state-of-the-art approximation algorithms for several fundamental problems. (1) An $O(\log n)$-approximation for Cutwidth and Pathwidth, improving upon the previous bound of $O(\log n\exp(O(\sqrt{\log\log n})))$ due to Bansal, Katzelnick, and Schwartz (FOCS 2024). This matches the $Ω(\log n)$ integrality gap of the standard LP relaxations. (2) An $O(\log n)$-approximation for their directed analogues, Minimum Storage and Minimum Register Sufficiency on directed acyclic graphs, improving the previous bound of $O(\log^{3/2} n)$. (3) A $φ$-flow-expander decomposition that cuts at most an $O(φ\log n\log\log n)$ fraction of the edges. This improves the $O(φ\log n\exp(O(\sqrt{\log\log n})))$ bound of Bansal, Jambulapati, and Saranurak (ICALP 2026), and is within an $O(\log\log n)$ factor of the graph-theoretic lower bound. The vertex version of our algorithm also gives an $O(\log n)$-approximation for Treedepth. In particular, our results answer several open problems of Bansal, Katzelnick, and Schwartz (FOCS 2024). Technically, we also solve the conceptual question raised by their work: our technique shows how to adapt Seymour recursion to min-max objectives, and constructs $O(1)$-weak local partitions in spreading metrics.

Mon 12 OctData Structures and Algorithms
The gist
This paper tackles problems involving how to arrange parts of a network or graph to minimize certain measures like cutwidth and pathwidth, which relate to how connected or tangled the graph is. The authors introduce a method called Greedy Region Growing, which improves previous approximation methods for these problems and achieves close to the best possible performance guaranteed by the mathematical models. Their technique also helps break down graphs into flow-expanders more efficiently, and provides better approximations for related directed graph problems and treedepth measures. This work answers some open questions from recent research and introduces a new approach to handle complex optimization objectives.
Open → 2610.17237v1

SMT solver instability slows verification but can be reduced

Quantifying SMT Solver Instability for Formal Verification

Abstract: Program verification has become commonplace in software development projects, and much of its feasibility can be attributed to the potential of SMT solvers to automate model checking and other verification techniques. However, SMT instability, a phenomenon where semantically equivalent permutations of source code take much longer to solve or timeout, has been found to interrupt workflows and make software engineers more likely to avoid verification. Previous efforts to measure SMT instability have had difficulty quantifying it due to the abnormal runtime distributions it produces. In this paper, we use the coefficient of variation to model instability across an extensive dataset of SMT queries from three software domains. Our results show that SMT instability is significant in each area, and that it increases for queries that take longer on average. However, using a novel method to quantify instability, we show that a different approach is possible: if a solution were to optimize the structure of queries for runtime, rather than variance, instability could be mitigated while also improving overall solver performance.

Thu 8 OctSoftware Engineering
The gist
SMT solvers help check if computer programs are correct, but sometimes they take a very long time to solve certain problems even when the problems mean the same thing. The authors studied this unstable behavior, called SMT instability, across many examples from different software areas. They found the problem is worse for harder queries but developed a new way to measure and potentially reduce it by changing how problems are structured. This could make automated checking faster and more reliable.
Open → 2610.12649v1

Machines with more power can cause huge size increases in equivalent simpler machines

Non-recursive trade-offs for two-way machines

Abstract: If the machines of some type A have enough resources to (i) solve problems that no machine of type B can solve, and (ii) simulate any unary two-way deterministic finite automaton that has access to a linearly-bounded counter, then typically no recursive function can upper bound the increase in the size of description when a machine of type A is replaced by an equivalent machine of type B.

Thu 8 OctFormal Languages and Automata Theory
The gist
Some types of computing machines are much more powerful than others, meaning they can solve problems the simpler ones can't. The authors find that when you try to convert a powerful machine into a simpler one, the size of the description can explode beyond any predictable limit. This means there is no general way to estimate how big the simpler machine’s description will get. The study focuses on machines that use two-way reading and counters in a very specific way.
Open → 2610.11969v1

Pattern-based tree transformations type-checking made decidable

Type-Checking for Pattern-Based Tree Transformations

Abstract: We introduce and study pattern-based tree transformations. As an illustrating example, consider a source pattern $(x \cdot y) + (x \cdot z)$ and a target pattern $x \cdot (y + z)$ as a pair. This source pattern matches any expression $e$ of the form $(e_1 \cdot e_2) + (e_1 \cdot e_3)$ (by substituting $x$ with $e_1$, $y$ with $e_2$, and $z$ with $e_3$) and the pair transforms it into the expression $e_1 \cdot (e_2 + e_3)$ as dictated by the target pattern. Note that in this example, the set of expressions that match the source pattern is not a regular tree language. We propose a model of tree transformations given by a finite representation of a (possibly infinite) set of such (source pattern, target pattern) pairs. The expressive power of this model comes at the cost of undecidability of checking equivalence. Nevertheless, we show that the type-checking problem is decidable for our model of pattern-based tree transformations. The type-checking problem asks whether applying a given transformation to trees having a given regular property (type) preserves the property. Our decision procedure is by a reduction to the emptiness problem of alternating tree automata.

Thu 8 OctFormal Languages and Automata TheoryComputation and Language
The gist
The paper deals with a way to change tree-structured data by matching and rewriting patterns, like turning parts of a math expression into a simpler form. The authors look at complicated patterns that can match many trees, even infinitely many, which makes checking if two transformations are the same impossible. However, they found that you can still decide if a transformation always keeps certain tree properties intact, which helps ensure safe changes to data structures. They do this by converting the problem into one related to special tree automata, a kind of computational model.
Open → 2610.11337v1

Method guarantees consistent outcomes from complex rewrite systems

A new method for proving confluence on abstract reduction systems --- Confluence of non-E-overlapping weakly-shallow TRSs ---

Abstract: This paper proposes a new method for proving the confluence of an abstract reduction system (ARS) by clarifying the sufficient conditions, called compatibility and edge commutativity, for expanding a given finite sub-ARS into a confluent one by adding rewrite edges. This method can be regarded as an extension of our earlier work, which showed that a weakly non-overlapping, shallow, and non-collapsing term rewriting system (TRS) is confluent. Furthermore, we apply our method to demonstrate that a non-$E$-overlapping and weakly shallow TRS is confluent. Here, a term is weakly shallow if each defined function symbol occurs either at the root or in the ground subterms, and a TRS is weakly shallow if both sides of all its rewrite rules are weakly shallow. This drops the non-collapsing condition assumed in our previous work on weakly shallow TRSs. Moreover, since a weakly shallow TRS is non-$E$-overlapping whenever it is non-$ω$-overlapping, and the latter property is decidable, we also obtain a decidable sufficient condition for confluence: non-$ω$-overlapping and weakly shallow TRSs are confluent.

Wed 7 OctLogic in Computer Science
The gist
When computers simplify or change expressions step-by-step, different paths could lead to different results, which is a problem. This paper introduces a new way to prove that certain systems always reach the same outcome, no matter how they are simplified. The authors improve previous methods by allowing a broader class of rules to be handled and make it easier to check this property automatically.
Open → 2610.09572v1

Ai agents create diverse benchmarks for better computer chip testing

BenchmarkAnything: Agent-Driven Construction of Simulator-Ready Microarchitecture Benchmarks

Abstract: The selection of benchmark workloads is of paramount importance in computer architecture, as it establishes the yardstick against which architectural innovations are measured and guided. Yet for decades, the SPEC benchmark suites, comprising merely tens of workloads, have been the de facto standard in academic architectural research, where they are frequently treated as a principal evaluation and optimization target. When a suite this small is relied upon so heavily, it risks architectural overfitting; as our research and prior studies demonstrate, an overly narrow focus can mislead design decisions by overvaluing certain innovations, producing cores that excel on SPEC benchmarks yet underperform on broader, realistic workloads. To mitigate this overfitting, adopting a large, comprehensive benchmark suite is the natural solution. However, the immense engineering effort required to strip software into the clean, interference-free binary executables demanded by simulators often makes this highly impractical. In this work, we demonstrate that AI agents provide an elegant solution to this challenge. Rather than manually curating yet another static benchmark suite, we introduce an agent-driven workflow capable of autonomously transforming arbitrary open-source repositories into simulator-ready executables. This automated approach makes workload collection highly scalable, allowing us to rapidly harvest hundreds of diverse applications from public repositories into our benchmark suite. Through a comparative analysis of our agent-generated suite against SPEC, we show that it not only achieves higher-fidelity performance assessments but also uncovers novel architectural insights that traditional, static suites fail to expose.

Wed 7 OctHardware Architecture
The gist
Testing new computer chip designs needs a set of programs called benchmarks to see how well the chips work. For many years, a small set of programs called SPEC has been used, but relying on this small group can make chips that only do well on those tests. The authors show that using AI agents to automatically create many more test programs from public software can give a more accurate picture of chip performance. Their AI-built set of tests finds new insights that old sets miss.
Open → 2610.09447v1

Auditable dataset reveals compiler security bug patterns in c code

CISB-Bench: An Auditable Source--IR Dataset of Compiler-Introduced Security Bugs

Abstract: Compiler-introduced security bugs (CISBs) arise when an optimization, lowering, or instrumentation decision changes a security-relevant property of the generated program. They are difficult to study because their evidence is distributed across issue reports, reduced tests, historical configurations, and compiler artifacts; a security-related report also does not imply that every associated reduction establishes a security-bearing compiler failure. We present CISB-Bench, an auditable dataset of 429 exact C-program rows mined from GCC and LLVM. Each row contains its C reduction, a standardized LLVM IR analysis bundle at -O0 through -O3, public provenance, a final binary label, and a primary mechanism or boundary annotation. Two reviewers independently labeled the fixed corpus, agreeing on 369 rows (86.0%, Cohen's kappa=0.662); the 60 disagreements were adjudicated. The final dataset comprises 280 CISBs and 149 hard non-CISB cases. The prediction task is to recover this reviewed exact-row label from the supplied artifacts; it is not a claim that standardized IR alone reproduces every historical compiler failure. We characterize the security mechanisms and evidence boundaries represented by the corpus, and demonstrate how its paired artifacts support source-only, IR-aware, and joint analyses. CISB-Bench provides a reusable, inspectable target for compiler-security mining and detection research.

Tue 6 OctCryptography and SecuritySoftware Engineering
The gist
Compiler-introduced security bugs happen when the tools that turn code into programs accidentally change how safe the program is. These bugs are hard to study because the proof is spread out in many places. The authors collected 429 exact examples from two big compilers, with all the details needed to check and learn from them. They tagged each example carefully to show which ones really are security bugs and which are not. This dataset helps others understand and find these compiler-caused security bugs more easily.
Open → 2610.07635v1

Decreasing diagrams technique proved complete for confluence in computations

Decreasing Diagrams are Complete for Confluence

Abstract: Confluence is a fundamental property of nondeterministic computations, arising from parallelism, concurrency, or freedom in the evaluation order. It guarantees that such a computation always yields the same result, regardless of the order in which steps are taken. The decreasing diagrams technique of van Oostrom is one of the most versatile methods for establishing confluence of transition systems (abstract rewriting systems). It reduces global confluence to local confluence: a system is confluent whenever its transitions admit a locally decreasing labeling. Essentially all classical confluence criteria arise as corollaries. A central question, posed by van Oostrom in 1993, asks whether the decreasing diagrams technique is complete: Does every confluent transition system admit a locally decreasing labeling? This is Problem 56 of the RTA List of Open Problems. A positive answer was known only for countable systems, and recently up to the first uncountable cardinal $\aleph_1$. The general case remained open. We settle this thirty-three-year-old problem in full. We prove that every confluent transition system admits a locally decreasing labeling using only three labels. This bound is optimal, as two labels do not suffice even at the first uncountable cardinality. It follows that this single criterion can, in principle, certify the confluence of every confluent system, and hence of every confluent program. The entire development is machine-checked in the Isabelle/HOL and Lean proof assistants and relies only on classical logic and the axiom of choice.

Mon 5 OctLogic in Computer Science
The gist
When computers can take different steps in different orders but still end up with the same answer, this is called confluence. Van Oostrom's decreasing diagrams method helps check this property by breaking it down into smaller pieces. The authors have now proven that this method always works to prove confluence, even in very complex systems, using only three labels. They confirmed this with formal verification tools to ensure the proof is correct.
Open → 2610.06368v1

Knuth-Bendix completion boosts program optimization speed and quality

Augmenting Rewrite Rule Sets via Knuth-Bendix Completion

Abstract: Equality Saturation (EqSat) is a powerful technique for program optimization, systematically exploring the search space of candidate programs to overcome the phase ordering problem. However, the feasibility and performance of EqSat rely heavily on the specific rewrite rules used to derive equivalent programs. These rule sets are typically handcrafted, requiring extensive domain expertise and carrying the risk of missing valuable transformations. In this work, we evaluate Knuth-Bendix Completion (KBC) as a method for automatically generating and augmenting rewrite rules for EqSat. Our experiments show faster optimization as well as reaching better terms with previously missed optimizations.

Thu 1 OctProgramming Languages
The gist
Optimizing computer programs is tricky because the order of changes can affect the outcome. The authors studied a way to automatically generate rules that help explore many possible program changes without missing good ones. They showed that their method speeds up finding better program versions by adding new rules that were not manually created before. This means program optimization can become more efficient and catch improvements previously overlooked.
Open → 2610.01246v1

Reflection enhanced search improves code generation from natural language prompts

ReMCTS: Reflection-Enhanced Monte Carlo Tree Search for Code Generation

Abstract: Open-weight large language models (LLMs) can generate function-level programs from natural-language prompts, but plausible candidates still fail on hidden semantics and repeat mistakes across repair attempts. We present ReMCTS, an execution-grounded, memory-augmented, LLM-guided MCTS-style search framework. It organizes program candidates as tree states, retains branch-local debugging context, retrieves failure experience across branches, and distinguishes failed checks from unavailable evidence. On HumanEval and MBPP-Sanitized, visible-test ReMCTS improves over direct generation in 8 of 10 model-dataset pairs under held-out evaluation, whereas proxy-only search is less stable. Controlled tree-search, sampling, repair, and memory ablations characterize the source and limits of these gains. A 30-task HumanEval-X C++ pilot further demonstrates compatibility with compiler-backed execution, but does not constitute a broad multilingual evaluation.

Mon 28 SeptComputation and Language
The gist
Writing code from descriptions can be tricky because early guesses might miss hidden details or keep making the same mistakes. The authors created a system called ReMCTS that searches smartly through different code tries, remembers past errors, and learns from them to avoid repeating problems. They tested this system on benchmarks where it did better than just generating code once, showing more success at making working programs. Their approach can also work with different programming languages and uses real test results to guide its decisions.
Open → 2609.34717v1

Improved algorithm colors 3-colorable graphs with fewer colors

Improved SDP Coloring of 3-Colorable Graphs from Recursive Gaussian Certificates

Abstract: We give a randomized polynomial-time algorithm that, for every fixed $\varepsilon > 0$, colors every $3$-colorable $n$-vertex graph using $O\bigl(n^{(13-\sqrt{97})/18+\varepsilon}\bigr) \approx O\bigl(n^{0.17506+\varepsilon}\bigr)$ colors, improving upon the previous best bound of $O(n^{0.19539})$ from Bansal, Huang, and Lee. Our improvement comes from analyzing higher-level neighborhoods through a recursive description of failure in Gaussian SDP rounding. If the rounding returns too small an independent set, it produces local Gaussian certificates at every vertex of a nonempty induced subgraph. We propagate these certificates along walks to higher-level neighborhoods by defining a recursive certificate structure and proving a strengthened cover-composition lemma, which refines the one of Arora, Chlamt{á}{č}, and Charikar. We then construct a bounded potential function that increases by a fixed positive amount at every propagation step, yielding a contradiction. Consequently, the rounding must produce a sufficiently large independent set.

Sun 27 SeptData Structures and AlgorithmsDiscrete Mathematics
The gist
Coloring a graph means assigning colors to points so connected points have different colors. This paper improves a method to color certain graphs that can be colored with just three colors, but where actually finding such a coloring is hard. The authors developed a smarter way to analyze parts of the graph using advanced math involving Gaussian distributions to show their algorithm can color the graph using fewer colors than before, though not as few as three. Their method involves tracking ’failures’ in previous attempts and using that information recursively to get better results.
Open → 2609.33684v1

Call graph analysis improved for c programs without type info

Neuro-Symbolic Indirect-Call Analysis under Opaque Pointers

Abstract: Resolving indirect calls is central to call-graph construction for C. Scalable type-based analyses such as MLTA use type information in LLVM IR to associate indirect calls with functions assigned to the corresponding structure fields. However, a single pointee type often misrepresents the memory a pointer addresses, and LLVM 17 removed pointee types in favor of opaque pointers. Therefore, field-sensitive analyses lose their matching key. Recovering the erased types restores the matching key but still misses the relation that the type encoded: which functions the program assigns to the field. We present Facet, to our knowledge the first analysis that reconstructs this dispatch relation over opaque IR. Facet identifies the structure field from which an indirect call loads its function pointer. It separately recovers the functions assigned to that field through initializers, stores, and aggregate copies. It then joins the two by field identity, without requiring an end-to-end value-flow path. Facet classifies proposed call-graph changes under distinct evidence rules for edge addition and removal and records the assumption behind each refinement. An LLM decides only the residual cases among symbolically bounded candidates. One analysis yields both a recall-preserving call graph and a refined call graph. On 14 C programs, Facet reduces the mean target-set size from 25.9 to 5.2 and raises observed recall from 0.79 to 0.99. Its recovered field identities agree with typed IR at 98.1% of jointly resolved sites. Applied to bug detection, the refined call graph found 17 deep bugs in C software from nginx to the Linux kernel, three of them latent for over a decade; 12 are confirmed.

Sun 27 SeptSoftware EngineeringProgramming Languages
The gist
Indirect function calls in C programs are hard to analyze precisely when key type information is missing, as happened with recent changes in LLVM. The authors present Facet, a new technique that recovers important information about which functions are assigned to specific memory fields, even when type details have been erased. Facet does this by identifying and matching structure fields and the functions stored in them without needing full value tracking. This method results in more accurate call graphs that greatly reduce confusion about which functions might be called, improving bug detection in real-world software.
Open → 2609.33547v1

Egraph extraction speeds up effectful program compilation by ten times

Efficient Extraction for Effectful E-Graphs

Abstract: Egraphs have enabled recent advances in program optimization, synthesis, and verification, yet remain difficult to apply to effectful programs whose memory and I/O operations must respect execution order. Existing effect-aware extraction algorithms rely on integer linear programming (ILP) and dominate total runtime. We introduce Statewalk DP, a new extraction algorithm that enforces effect ordering efficiently without external solvers. We prove that finding any effect-safe extraction is NP-complete, but show that Statewalk DP is tractable in statewalk width, a parameter that measures the complexity of dataflow interactions among effects. In practice, statewalk width generally remains small, enabling Statewalk DP to achieve order-of-magnitude speedups over ILP extraction while producing programs comparable to LLVM across our benchmarks. We implement the algorithm in eqcc, a prototype egraph-based compiler for imperative Bril programs and demonstrate that effect-aware extraction is no longer a bottleneck.

Fri 25 SeptProgramming Languages
The gist
Finding the best way to simplify programs that involve memory and input/output actions is hard because the order of these actions matters. The authors found that the problem is generally very complex but created a new method called Statewalk DP that can handle typical cases quickly. This method does not need complicated external tools to work and makes extracting optimized programs much faster. They tested their approach on a small-language compiler and saw big speed improvements without losing quality.
Open → 2609.31887v1

Algebraic model improves reasoning about program variables and state

Scenes: A Meta-Logical Algebra for Mutable State

Abstract: Modelling of mutable state spaces and precisely describing how variables are manipulated in a program is a fundamental problem in compositional verification. Though we can make use of the embedded abstract syntax of a program for such analysis, this runs contrary to the shallow-embedding approach, and hampers efficient proof automation. On the other hand, lenses and prisms provide an elegant algebraic foundation for modelling state, which provide sufficient structure to provide meta-logical program analysis, but without requiring a deep embedding. Nevertheless lenses, as complex algebraic objects, cannot easily be combined, complemented, or collected in sets. In this paper we contribute an accompanying algebraic structure called the scene, which allows us to characterise the set of variables, or coordinates, in a state space. Scenes intuitively correspond to sets of lenses, but like lenses they are purely semantic algebraic objects. We demonstrate that scenes provide us with sufficient structure to characterise the lens-based meta-logical properties, like independence and equivalence. Moreover, we introduce the notion of a scene space, analogous to a vector space, which allows us to recover a set-like algebraic structure. Finally, we show how scenes allow us to characterise the free and bound variables of expressions and programs, without any need for syntax, and demonstrate their use for reasoning about programs by deriving reasoning principles for the parallel composition operator.

Thu 24 SeptLogic in Computer Science
The gist
Understanding how a computer program changes and uses its variables is tricky but important. The paper introduces a new algebraic tool called scenes that groups and describes variables in a program without relying on complex syntax. This helps in analyzing and verifying how programs behave, particularly in parallel tasks, by focusing on the underlying mathematical structure. The authors also develop a way to treat these scenes like vector spaces to make them easier to work with.
Open → 2609.29380v1

Canonical parallel form improves speed of auto-parallelizing compilers on cpu and gpu

The Canonical Parallel Form as a Substrate for Parallelizing Compilers and Agentic Optimizers

Abstract: Imperative code fixes an execution order the computation does not require, and a parallelizing compiler must prove which parts of that order it can remove. We introduce the Canonical Parallel Form (CPF), a device-neutral program state from which every ordering constraint our analyses prove unnecessary has been removed. CPF is reached by output-preserving normalization, by lifting semantic operations such as tensor contractions, and by deriving parallelism in three levels ordered by decidability: syntactic subscript tests, exact affine dependence tests over integer sets, and SMT queries over non-linear integer arithmetic, which also admit parallelism guarded behind a runtime check. Heuristics can then specialize the canonical form for each architecture. Across 248 loop-level reasoning kernels on an AMD MI300A, CPF reaches 4.4x over Numba on its 24 Zen 4 cores and 25.4x on its CDNA 3 GPU. Against the other auto-parallelizing optimizers, CPF is 2.9x faster on the CPU and 8.7x on the GPU than DaCe's own auto-parallelizer, 1.9x faster than Pluto, and 1.5x faster than PPCG on the affine subset of the kernels. Because the pipeline is deterministic, CPF also serves as an agent's starting source, cutting the token cost per kernel by up to a factor of 2.72x while leaving the achieved speed-up unchanged, since the coding agents reason less about parallelism.

Wed 23 SeptPerformance
The gist
Programs often say things must happen in a certain order, but sometimes they don't actually need to. The authors present a way to rewrite programs into a 'canonical parallel form' that removes unnecessary order, making it easier for compilers to run parts at the same time. This new form uses a step-by-step process to find safe parallelism and works on different devices without changes. Their tests show it can run much faster than several existing tools on real hardware, and it also helps code-writing assistants work more efficiently.
Open → 2609.28724v1

Automated method cuts GPU instruction sizes and decoder area significantly

Automated Instruction Encoding Synthesis for Modern GPU ISA Compression

Abstract: Modern GPU kernels increasingly stress the instruction supply path, while fixed instruction containers can leave substantial footprint slack. This paper presents an automated encoding-synthesis framework that treats instruction layout as a constrained slot-assignment problem over a validated instruction-form field specification. The formulation separates semantic field identity from physical bit positions and supports tied, pinned, and free placement constraints, making it applicable when recurring decoded fields are not frozen by a public format contract. We instantiate the framework for NVIDIA SASS: raw public encoding text is normalized into a machine-readable specification, a SASS disassembler is validated against nvdisasm on 3.78M instructions, released as an open benchmark, and CP-SAT synthesis is used for fixed-length and variable-length encodings. On 142 Blackwell kernel inputs, variable-length synthesis reduces instruction footprint by 33%, with comparable reductions after re-synthesis on Ampere and Hopper; fixed-length synthesis on the same specification reduces decoder area by 16% against a decoder generated from the NVIDIA-observed 128-bit layout by the same generator and flow. Generated fetch/decode RTL meets 1.5 GHz in TSMC 22 nm with a replicated area delta of 0.12% of a GA100-class die; a same-node SRAM comparison shows the footprint reduction corresponds to about 9x this added logic in instruction-SRAM bit-cell area.

Wed 16 SeptHardware ArchitectureProgramming Languages
The gist
GPUs run programs made of instructions, but the way these instructions are stored can be inefficient. The paper presents a new automated way to redesign how GPU instructions are encoded, making them smaller without losing meaning. By testing on real Nvidia GPU instructions, the authors show this method can reduce instruction size by about one-third and also simplify the hardware needed to decode them. This means GPUs can use memory and chip area more efficiently.
Open → 2609.18662v1

Unique context-free fixed points arise from guarded language operators

Context-Free Fixed Points and Complete Classification of Orbits in Picard Iteration for Guarded Power Language Operators

Abstract: We study the language-theoretic structure of fixed points and finite Picard iterates for guarded q-power language operators. For the general operator, we prove that a context-free seeded language deter- mines a unique context-free fixed point and give an effective construction of a context-free grammar generating this fixed point, independently of the initial language.We then consider a marked single-guard special case in which two new symbols separate the recursive contribution from the the contribution of the seed. In this setting, the initial language can be traced and recovered exactly from every finite Picard iterate by means of a regular slice and fixed-word quotients. This yields injectivity of the finite-time maps and an abstract finite-time class-preservation prin- ciple. As a consequence, we obtain a classification of the finite Picard iterates according to the exact position of the initial language in the Chomsky hierarchy. Thus the exact language-theoretic complexity may persist at every finite stage, while all Picard orbits converge to the same context-free fixed point.

Wed 16 SeptFormal Languages and Automata Theory
The gist
This paper looks at how certain language-building processes create fixed outcomes, called fixed points, in the world of formal languages. The authors prove that starting from any suitable language, a unique context-free fixed point can be determined and constructed. In a special case, they show that you can always trace back to the original language during the iteration process, meaning the complexity stays visible at every step before reaching the fixed point. This helps classify how complex the languages remain at each stage while ultimately all iterations lead to the same kind of language.
Open → 2609.18218v1

Programmable tool helps build and improve compiler rewrite rules

Equality saturation theory exploration `a la carte

Abstract: Rewrite rules are critical in equality saturation, an increasingly popular technique in optimizing compilers, synthesizers, and verifiers. Unfortunately, developing high-quality rulesets is difficult and error-prone. Recent work to automatically infer rewrite rules does not scale to large terms or grammars. Users struggle to guide inference and incrementally construct rulesets because existing rule inference tools are monolithic and opaque. As a result, most equality saturation users still manually develop and maintain rulesets. This paper proposes Enumo, a new domain-specific language for programmable theory exploration. Enumo provides a small set of core operators that enable users to strategically guide rule inference and incrementally build rulesets. Short Enumo programs easily replicate results from state-of-the-art tools like Ruler, but Enumo programs can also scale to infer deeper rules from larger grammars than prior approaches. Enumo's composable operators even facilitate developing new strategies for ruleset inference. We introduce a new fast-forwarding strategy which does not require evaluating terms in the target language, and thus supports domains that were out of scope for prior work. Enumo is also easy to extend: two new operators suffice to incorporate large language models into rule inference, where they complement guided search. We evaluate Enumo and fast-forwarding across a variety of domains. Compared to state-of-the-art techniques, Enumo can synthesize better rulesets over a diverse set of domains, in some cases matching the effects of manually developed rulesets in systems driven by equality saturation.

Sun 13 SeptProgramming Languages
The gist
Making computers run programs faster or prove program properties often needs rules to rewrite code in smarter ways, but creating these rules is hard. The authors designed Enumo, a new language that helps users write and improve these rules step by step, combining automated help and human guidance. Enumo can handle more complex rules and bigger programming languages than older tools, even using large language models to assist. Their approach can produce rules as good as ones made by hand in some cases and works faster without checking code outcomes directly.
Open → 2609.14527v1

Limits on state increase when changing nondeterministic to deterministic automata

On 2DFA simulation of 1NFA: A Quadratic Limitation to a New Lower-Bound Method

Abstract: A recent result by the present authors established a quadratic lower bound, in the worst case, for the increase in the number of states when a one-way nondeterministic finite automaton is converted to a two-way deterministic finite automaton. Although this simply matched a well-known pre-existing quadratic lower bound by Chrobak, it used a distinct proof method. We show that, much like Chrobak's, this new method is also unable to deliver any lower bound strictly greater than quadratic.

Sat 12 SeptFormal Languages and Automata Theory
The gist
The paper looks at how complicated a machine must get when turning a type of computing machine that can guess (nondeterministic) into one that works in a fixed way (deterministic). The authors confirmed an earlier finding that in the worst case, the new machine must have about the square of the original machine’s number of parts. They also showed that their new method can’t prove any bigger jump than this. This means if you want to prove bigger jumps, a different approach will be needed.
Open → 2609.13793v1

Type theory advances ensure safe erasure with identity and quotients

Erased Postulates, Identity Types and Quotients

Abstract: This text is concerned with the question of whether, in type theory with erasure annotations, one can postulate that some type is inhabited and still have a guarantee that a program will not get stuck. Previous work has provided such guarantees for consistent erased postulates, i.e. postulates that are restricted to be used in erased contexts. Here those guarantees are extended to type theory with identity types. Similar ideas provide a simple way to support quotient types: it is shown that one can let things like "the equivalence classes for two related values are equal" be erased postulates and have an eliminator that only computes for the equivalence class constructor, and still get a guarantee that programs will compute correctly. Another question is whether programs compute correctly if one is allowed to transport (cast) using erased identity proofs. It is shown that this is safe in the absence of quotients and postulates, and in the presence of quotients and erased postulates that can be implemented using equality reflection. However, unrestricted transports of this kind are not compatible with erased, postulated univalence. For that reason the text includes a study of the function []-cong, which encapsulates a limited form of transport for erased identity proofs. The text is accompanied by machine-checked Agda proofs.

Tue 8 SeptProgramming LanguagesLogic in Computer Science
The gist
When programmers use type theory to write programs, they sometimes assume certain facts without giving explicit evidence, called postulates. The authors study how to safely erase these assumptions in the final program without causing it to get stuck or stop working. They show it is safe to do this even when working with concepts that identify things as equal (identity types) and when grouping things into classes (quotients). They also explore limits on safely transporting values using these erased proofs and provide formal machine-checked proofs to back their results.
Open → 2609.08578v1

Proved no middle context-free language always exists between others

Solution to Bucher's density problem for context-free languages

Abstract: In 1980 Bucher asked whether, given context-free languages $L\subseteq U$ with $U\setminus L$ infinite, there must be a context-free language $K$ between them for which both $K\setminus L$ and $U\setminus K$ are infinite. We give a negative answer. We first construct an infinite language $D$ with context-free complement such that, for every regular language $R$, either $D\cap R$ or $D\setminus R$ is finite. The words of $D$ encode computations of factorials; repetition of letters ensures that each finite automaton either accepts all but finitely many words of $D$ or rejects all but finitely many words of $D$, while a one-counter automaton recognizes errors in the encodings. We then construct $L$ and $U$ from the complement of $D$. A grammar argument shows that any context-free intermediate language $K$ would divide $D$ in the same way as some regular language. This proves the required impossibility. Both $L$ and $U$ can be taken over a binary alphabet.

Tue 8 SeptFormal Languages and Automata Theory
The gist
The authors answered a long-standing question about special sets of words called context-free languages. They asked if, given two such sets that differ infinitely, there must always be a middle set remaining context-free and still infinite on both sides. They showed this is not always true by cleverly creating a special language that breaks this pattern. Their finding helps clarify how complex the families of these word sets can be.
Open → 2609.08571v1

New method controls complexity in finite graph expression proofs

Width-Bounded Equational Derivations for Finite Graph Expressions

Abstract: Completeness of an equational presentation guarantees an equality path but need not control the resources used along it. For finite graph expressions we measure derivational space by the largest input-output interface of an intermediate raw term. For every finite doubly ranked edge alphabet $Σ$, we prove that equal closed expressions of pattern width at most $k$ are joined by a derivation in which every step applies an equation in either direction and every intermediate width is at most a computable $B_Σ(k)$, independently of graph size. The derivation uses only the structural magmoid laws and the fifteen finite-graphoid schemes. The construction compiles each expression through protected cores and finite routing windows to an encoding-canonical representative $\operatorname{NF}_k$ of width at most $4k+4$. We call this property bounded equational coherence. We also prove $\operatorname{bw}(F)\le\operatorname{patw}(F)\le4(\operatorname{tw}(F)+1)$ whenever the underlying simple graph has at least two edges, separate layered linear from branching expressions on cliques, and provide machine-checkable witnesses and finite invariants for the first five nontrivial clique values.

Tue 8 SeptLogic in Computer Science
The gist
When proving that two expressions representing graphs are equal, it's important to track how complicated the steps between them get. The authors have found a way to measure and limit this complexity by controlling the size of intermediate parts during the proof process. They show that for certain graph expressions, there is always a way to prove equality without the complexity growing uncontrollably, regardless of the overall graph size. This helps keep the proof process more manageable and predictable.
Open → 2609.08325v1