GCC Newspaper
OCTOBER 6, 2026
gcc — Proposed

Remove double-int.

Proposes removing the double-int implementation in favor of wide-int.h's fixed_wide_int.

This RFC proposes to remove the double-int component from GCC. The author argues that wide_int.h’s fixed_wide_int offers similar functionality without heap usage, simplifying parts of the build process and helping with a specific bug (PR126622). The change would involve removing double-int.{cc,h} and updating various other GCC components that currently depend on it.

In Details

The double-int implementation in GCC provides 128-bit integer arithmetic, likely used for intermediate calculations in tree-ssa or RTL. This RFC suggests replacing it with fixed_wide_int from wide_int.h, which avoids heap allocations and may simplify related code, particularly in constant folding and tree node construction. The removal would affect multiple parts of the compiler, including AVR backend, C++ parser, dwarf2out, and RTL manipulation.

For Context
double-int
A GCC internal data type or implementation for handling 128-bit integers, likely used for intermediate values in calculations.
wide-int.h
A GCC header file providing fixed-width arbitrary precision integer types, potentially an alternative or replacement for double-int.
PR126622
A specific bug report within the GCC project, which this change aims to help resolve.
build_int_cst
Likely a function or component within GCC responsible for building integer constants, possibly related to tree or RTL representations.
tree-ssa
GCC's primary intermediate representation (IR) and analysis framework, using Static Single Assignment form.
RTL
Register Transfer Language, an intermediate representation used by GCC after the SSA phase.
dwarf2out.cc
A GCC source file responsible for generating DWARF debugging information, version 2.
Filed Under: gccinternaloptimizationcleanup