Fei Xie 0004

dblp:51/1316-4 · DBLP profile ↗
← Back
17ranked-venue papers
0as first author
4since 2021 · last 2025
0000-0002-7324-3287ORCID · verified

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

Systems, architecture and hardware · 10 · 2 since 2021Software engineering, systems software and programming languages · 9 · 3 since 2021Theory of computation · 3
YearPublicationVenuePosition
2025 Enhancing Translation Validation of Compiler Transformations with Large Language Models
abstract
This paper presents a framework that integrates Large Language Models (LLMs) into translation validation, targeting LLVM compiler transformations where formal verification tools fall short. Our framework utilizes the existing tools, like Alive2, to perform initial validation. For transformations deemed unsolvable by traditional methods, our approach leverages fine-tuned LLMs to predict soundness or unsoundness, with subsequent fuzzing applied to identify counterexamples for unsound transformations. Our approach has proven effective in complex scenarios, such as deep-learning accelerator designs, enhancing the reliability of compiler transformations.
Fei Xie 0004
Int. J. Softw. Eng. Knowl. Eng.2
2024 A Systematic Translation Validation Framework for MLIR-Based Compilers
abstract
This paper introduces an innovative translation validation framework designed for MLIR-based compilers, which has garnered considerable prominence in fields such as machine learning, high-performance computing and hardware design. Despite rigorous testing, compilers based on MLIR might still induce incorrect results and undefined behaviors, necessitating verification work. Our framework first takes a pair of MLIR programs as inputs and check their function signature’s compatibility before encoding them into SMT expressions. Then it uses the Z3 SMT solver to check whether the target program refines the source program. Our framework transcends the dialect limitations of past solutions, thereby providing validation support to a wider range of MLIR-based compilers. We demonstrate its effectiveness through evaluations on prominent open-source MLIR-based compilers, where we identified bugs and undefined behaviors. We further demonstrate the capability of this framework by validating two practical deep-learning accelerator designs.
Fei Xie 0004, Pasquale Cocchini, Jin Yang 0006
Int. J. Softw. Eng. Knowl. Eng.2
2023 An Equivalence Checking Framework for Agile Hardware Design
abstract
Agile hardware design enables designers to produce new design iterations efficiently. Equivalence checking is critical in ensuring that a new design iteration conforms to its specification. In this paper, we introduce an equivalence checking framework for hardware designs represented in HalideIR. HalideIR is a popular intermediate representation in software domains such as deep learning and image processing, and it is increasingly utilized in agile hardware design. We have developed a fully automatic equivalence checking workflow seamlessly integrated with HalideIR and several optimizations that leverage the incremental nature of agile hardware design to scale equivalence checking. Evaluations of two deep learning accelerator designs show our automatic equivalence checking framework scales to hardware designs of practical sizes and detects inconsistencies that manually crafted tests have missed.
Fei Xie 0004, Pasquale Cocchini, Jin Yang 0006
ASP-DAC2
2023 An Automated Verification Framework for HalideIR-Based Compiler Transformations
abstract
HalideIR is a popular intermediate representation for compilers in domains such as deep learning, image processing, and hardware design. In this paper, we present an automated verification framework for HalideIR-based compiler transformations. The framework conducts verification using symbolic execution in two steps. Given a compiler transformation, our automated verification framework first uses symbolic execution to enumerate the compiler transformation's paths, and then utilizes symbolic execution to verify if the output program for each transformation path is equivalent to its source. We have successfully applied this framework to verify 46 transformations from the three most-starred HalideIR-based compilers on GitHub and detected 4 transformation bugs undetected by manually crafted unit tests.
Fei Xie 0004, Jeremy Casas, Pasquale Cocchini, Jin Yang 0006
DATE2
2018 CRETE: A Versatile Binary-Level Concolic Testing Framework
abstract
In this paper, we present crete , a versatile binary-level concolic testing framework, which features an open and highly extensible architecture allowing easy integration of concrete execution frontends and symbolic execution engine backends. crete ’s extensibility is rooted in its modular design where concrete and symbolic execution is loosely coupled only through standardized execution traces and test cases. The standardized execution traces are llvm -based, self-contained, and composable, providing succinct and sufficient information for symbolic execution engines to reproduce the concrete executions. We have implemented crete with klee as the symbolic execution engine and multiple concrete execution frontends such as qemu and 8051 Emulator. We have evaluated the effectiveness of crete on GNU Coreutils programs and TianoCore utility programs for UEFI BIOS. The evaluation of Coreutils programs shows that crete achieved comparable code coverage as klee directly analyzing the source code of Coreutils and generally outperformed angr . The evaluation of TianoCore utility programs found numerous exploitable bugs that were previously unreported.
Bo Chen 0008, Christopher Havlicek, Kai Cong, Raghudeep Kannavara, Fei Xie 0004
FASE6
2016 Validating scheduling transformation for behavioral synthesis
Kecheng Hao, Kai Cong, Sandip Ray, Fei Xie 0004
DATE6
2014 Scalable Certification Framework for Behavioral Synthesis Front-End
abstract
Behavioral synthesis entails application of a sequence of transformations to compile a high-level description of a hardware design (e.g., in C/C++/SystemC) into a register-transfer level (RTL) implementation. In this paper, we present a scalable equivalence checking framework to validate the correctness of compiler transformations employed by behavioral synthesis front-end. Our approach makes use of dual-rail symbolic simulation of the input and output of a transformation, together with identification and inductive verification of their loop structures. We have evaluated our framework on transformations applied by an open source behavioral synthesis tool to designs from the CHStone benchmark. Our tool can automatically validate more than 75 percent of the total of 1008 compiler transformations applied, taking an average time of 1.5 seconds per transformation.
Kecheng Hao, Kai Cong, Sandip Ray, Fei Xie 0004
DAC6
2014 Equivalence checking for function pipelining in behavioral synthesis
abstract
Function pipelining is a key transformation in behavioral synthesis. However, synthesizing the complex pipeline logic is an error-prone process. Sequential equivalence checking (SEC) support is highly desired to provide confidence in the correctness of synthesized pipelines. However, SEC for function pipelining is challenging due to the significant difference between the behavioral specification and synthesized RTL. Furthermore, function pipelines include hardware logic for dynamically inserting “bubbles” (pipeline stalls), which bring additional difficulties in equivalence checking. We develop an SEC framework for behaviorally synthesized function pipelines by (1) building a reference pipeline model with a certified function pipelining transformation, which faithfully captures bubble insertion; and (2) checking the equivalence between the reference model and synthesized RTL. We demonstrate the scalability of our approach on industry-strength designs synthesized by a commercial tool.
Kecheng Hao, Sandip Ray, Fei Xie 0004
DATE3
2014 Mechanical Certification of Loop Pipelining Transformations: A Preview
Disha Puri, Sandip Ray, Kecheng Hao, Fei Xie 0004
ITP4
2013 Handling design and implementation optimizations in equivalence checking for behavioral synthesis
abstract
Behavioral synthesis involves generating hardware design via compilation of its Electronic System Level (ESL) description to an RTL implementation. Equivalence checking is critical to ensure that the synthesized RTL conforms to its ESL specification. Such equivalence checking must effectively handle design and implementation optimizations. We identify two key optimizations that complicate equivalence checking for behavioral synthesis: (1) operation gating, and (2) global variables. We develop a sequential equivalence checking (SEC) framework to compare ESL designs with RTL in the presence of these optimizations. Our approach can handle designs with more than 32K LoC RTL synthesized from practical ESL designs. Furthermore, our evaluation found a bug in a commercial tool, underlining both the importance of SEC and the effectiveness of our approach.
Sandip Ray, Kecheng Hao, Fei Xie 0004
DAC4
2013 Equivalence checking for compiler transformations in behavioral synthesis
abstract
Behavioral synthesis entails application of a sequence of transformations to compile a high-level description of a hardware design (e.g., in C/C++/SystemC) into a Register-Transfer Level (RTL) implementation. We present a scalable equivalence checking framework to validate the correctness of compiler transformations employed by behavioral synthesis. Our approach is based on dual-rail symbolic simulation of the input and output design representations of a transformation. We have evaluated our framework on transformations applied to several designs by an open source behavioral synthesis tool, and we present initial results demonstrating the approach.
Kecheng Hao, Kai Cong, Sandip Ray, Fei Xie 0004
ICCD5
2012 Equivalence checking for behaviorally synthesized pipelines
abstract
Loop pipelining is a critical transformation in behavioral synthesis. It is crucial to producing hardware designs with acceptable latency and throughput. However, it is a complex transformation involving aggressive scheduling strategies for high throughput and careful control generation to eliminate hazards. We present an equivalence checking approach for certifying synthesized hardware designs in the presence of pipelining transformations. Our approach works by (1) constructing a provably correct pipeline reference model from sequential specification, and (2) applying sequential equivalence checking between this reference model and synthesized RTL. We demonstrate the scalability of our approach on several synthesized designs from a commercial synthesis tool.
Kecheng Hao, Sandip Ray, Fei Xie 0004
DAC3
2010 Optimizing equivalence checking for behavioral synthesis
abstract
Behavioral synthesis is the compilation of an Electronic system-level (ESL) design into an RTL implementation. We present a suite of optimizations for equivalence checking of RTL generated through behavioral synthesis. The optimizations exploit the high-level structure of the ESL description to ameliorate verification complexity. Experiments on representative benchmarks indicate that the optimizations can handle equivalence checking of synthesized designs with tens of thousands of lines of RTL.
Kecheng Hao, Fei Xie 0004, Sandip Ray, Jin Yang 0006
DATE2
2009 Formal Verification for High-Assurance Behavioral Synthesis
Sandip Ray, Kecheng Hao, Yan Chen 0001, Fei Xie 0004, Jin Yang 0006
ATVA4
2008 Optimizing automatic abstraction refinement for generalized symbolic trajectory evaluation
abstract
In this paper, we present a suite of optimizations targeting automatic abstraction refinement for Generalized Symbolic Trajectory Evaluation (GSTE). We optimize both model refinement and spec refinement supported by AutoGSTE: a counterexample-guided refinement loop for GSTE. Experiments on a family of benchmark circuits have shown that our optimizations lead to major efficiency improvements in verification involving abstraction refinement.
Yan Chen 0001, Fei Xie 0004, Jin Yang 0006
DAC2
2007 Automatic Abstraction Refinement for Generalized Symbolic Trajectory Evaluation
abstract
In this paper, we present AutoGSTE, a comprehensive approach to automatic abstraction refinement for generalized symbolic trajectory evaluation (GSTE). This approach addresses imprecision of GSTE's quaternary abstraction caused by underconstrained input circuit nodes, quaternary state set unions, and existentially quantified-out symbolic variables. It follows the counterexample-guided abstraction refinement framework and features an algorithm that analyzes counterexamples (symbolic error traces) generated by GSTE to identify causes of imprecision and two complementary algorithms that automate model refinement and specification refinement according to the causes identified. AutoGSTE completely eliminates false negatives due to imprecision of quaternary abstraction. Application of AutoGSTE to benchmark circuits from small to large size has demonstrated that it can quickly converge to an abstraction upon which GSTE can either verify or falsify an assertion graph efficiently.
Yan Chen 0001, Fei Xie 0004, Jin Yang 0006
FMCAD3
2006 Maximal Models of Assertion Graph in GSTE
Guowu Yang, Jin Yang 0006, Fei Xie 0004
TAMC4