LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Liu, Yuchen, Hu, Junhao, Shan, Yingdi, Li, Ge, Zou, Yanzhen, Dong, Yihong, Xie, Tao
Format: Preprint
Published: 2025
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866912301723942912
author Liu, Yuchen
Hu, Junhao
Shan, Yingdi
Li, Ge
Zou, Yanzhen
Dong, Yihong
Xie, Tao
author_facet Liu, Yuchen
Hu, Junhao
Shan, Yingdi
Li, Ge
Zou, Yanzhen
Dong, Yihong
Xie, Tao
contents Rewriting C code in Rust provides stronger memory safety, yet migrating large codebases such as the 32-million-line Linux kernel remains challenging. While rule-based translators (e.g., C2Rust) provide accurate yet largely unsafe Rust programs, recent Large Language Model (LLM) approaches produce more idiomatic, safe Rust programs but frequently exhibit "laziness", omitting significant portions of the target code. To address the issue, in this paper, we present LLMigrate, an LLM-based C-to-Rust translation tool that splits modules into discrete functions, translating them individually, and then reintegrating them. LLMigrate uses static analysis to retain necessary context, pairs GPT-4o (a state-of-the-art LLM) with compiler-driven translation and program-repair techniques for complex core functions, and leverages call-graph-guided translation to ensure consistent interfaces. Evaluations on three representative Linux kernel modules (math, sort, and ramfs) show that LLMigrate requires modifying less than 15\% of the target code, significantly outperforming a pure GPT-4o-based migration.
format Preprint
id arxiv_https___arxiv_org_abs_2503_23791
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators
Liu, Yuchen
Hu, Junhao
Shan, Yingdi
Li, Ge
Zou, Yanzhen
Dong, Yihong
Xie, Tao
Programming Languages
Software Engineering
Rewriting C code in Rust provides stronger memory safety, yet migrating large codebases such as the 32-million-line Linux kernel remains challenging. While rule-based translators (e.g., C2Rust) provide accurate yet largely unsafe Rust programs, recent Large Language Model (LLM) approaches produce more idiomatic, safe Rust programs but frequently exhibit "laziness", omitting significant portions of the target code. To address the issue, in this paper, we present LLMigrate, an LLM-based C-to-Rust translation tool that splits modules into discrete functions, translating them individually, and then reintegrating them. LLMigrate uses static analysis to retain necessary context, pairs GPT-4o (a state-of-the-art LLM) with compiler-driven translation and program-repair techniques for complex core functions, and leverages call-graph-guided translation to ensure consistent interfaces. Evaluations on three representative Linux kernel modules (math, sort, and ramfs) show that LLMigrate requires modifying less than 15\% of the target code, significantly outperforming a pure GPT-4o-based migration.
title LLMigrate: Transforming "Lazy" Large Language Models into Efficient Source Code Migrators
topic Programming Languages
Software Engineering
url https://arxiv.org/abs/2503.23791