BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend

The compiler serves as a bridge connecting hardware architecture and application software, converting source code into executable files and optimizing code. Fuzz testing is an automated testing technology that evaluates software reliability by providing a large amount of random or mutated input data...

Full description

Saved in:
Bibliographic Details
Main Authors: Hui Liu, Hanbin Guo, Peng Liu, Tongding Hou
Format: Article
Language:English
Published: MDPI AG 2025-05-01
Series:Applied Sciences
Subjects:
Online Access:https://www.mdpi.com/2076-3417/15/11/5935
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1850160482536652800
author Hui Liu
Hanbin Guo
Peng Liu
Tongding Hou
author_facet Hui Liu
Hanbin Guo
Peng Liu
Tongding Hou
author_sort Hui Liu
collection DOAJ
description The compiler serves as a bridge connecting hardware architecture and application software, converting source code into executable files and optimizing code. Fuzz testing is an automated testing technology that evaluates software reliability by providing a large amount of random or mutated input data to the target system to trigger abnormal program behavior. When existing fuzz testing methods are applied to compiler testing, although they can detect common errors like lexical and syntax errors, there are issues such as insufficient pertinence in constructing the input corpus, limited support for structured Intermediate Representation (IR) node manipulation, and limited perfection of the mutation strategy. This study proposes a deep fuzz testing framework named BoostPolyGlot for GCC compiler frontend IR generation, which effectively covers the code-execution paths and improves the code-coverage rate through constructing an input corpus, employing translation by a master–slave IR translator, conducting operations on structured program characteristic IR nodes, and implementing an IR mutation strategy with dynamic weight adjustment. This study evaluates the fuzz testing capabilities of BoostPolyGlot based on dependency relationships, loop structures, and their synergistic effect. The experimental outcomes confirm that, when measured against five crucial performance indicators including total paths, count coverage, favored paths rate, new edges on rate, and level, BoostPolyGlot demonstrated statistically significant improvements compared with American Fuzzy Lop (AFL) and PolyGlot. These findings validate the effectiveness and practicality of the proposed framework.
format Article
id doaj-art-756c17cbec534698857c2acd080ef87e
institution OA Journals
issn 2076-3417
language English
publishDate 2025-05-01
publisher MDPI AG
record_format Article
series Applied Sciences
spelling doaj-art-756c17cbec534698857c2acd080ef87e2025-08-20T02:23:08ZengMDPI AGApplied Sciences2076-34172025-05-011511593510.3390/app15115935BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler FrontendHui Liu0Hanbin Guo1Peng Liu2Tongding Hou3School of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, ChinaSchool of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, ChinaPurple Mountain Laboratories, Nanjing 211111, ChinaSchool of Computer and Information Engineering, Henan Normal University, Xinxiang 453007, ChinaThe compiler serves as a bridge connecting hardware architecture and application software, converting source code into executable files and optimizing code. Fuzz testing is an automated testing technology that evaluates software reliability by providing a large amount of random or mutated input data to the target system to trigger abnormal program behavior. When existing fuzz testing methods are applied to compiler testing, although they can detect common errors like lexical and syntax errors, there are issues such as insufficient pertinence in constructing the input corpus, limited support for structured Intermediate Representation (IR) node manipulation, and limited perfection of the mutation strategy. This study proposes a deep fuzz testing framework named BoostPolyGlot for GCC compiler frontend IR generation, which effectively covers the code-execution paths and improves the code-coverage rate through constructing an input corpus, employing translation by a master–slave IR translator, conducting operations on structured program characteristic IR nodes, and implementing an IR mutation strategy with dynamic weight adjustment. This study evaluates the fuzz testing capabilities of BoostPolyGlot based on dependency relationships, loop structures, and their synergistic effect. The experimental outcomes confirm that, when measured against five crucial performance indicators including total paths, count coverage, favored paths rate, new edges on rate, and level, BoostPolyGlot demonstrated statistically significant improvements compared with American Fuzzy Lop (AFL) and PolyGlot. These findings validate the effectiveness and practicality of the proposed framework.https://www.mdpi.com/2076-3417/15/11/5935fuzz testingIR generationdependency relationshiploop structureIR mutation strategy
spellingShingle Hui Liu
Hanbin Guo
Peng Liu
Tongding Hou
BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
Applied Sciences
fuzz testing
IR generation
dependency relationship
loop structure
IR mutation strategy
title BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
title_full BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
title_fullStr BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
title_full_unstemmed BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
title_short BoostPolyGlot: A Structured IR Generation-Based Fuzz Testing Framework for GCC Compiler Frontend
title_sort boostpolyglot a structured ir generation based fuzz testing framework for gcc compiler frontend
topic fuzz testing
IR generation
dependency relationship
loop structure
IR mutation strategy
url https://www.mdpi.com/2076-3417/15/11/5935
work_keys_str_mv AT huiliu boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend
AT hanbinguo boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend
AT pengliu boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend
AT tongdinghou boostpolyglotastructuredirgenerationbasedfuzztestingframeworkforgcccompilerfrontend