On Thu, 9 Jul 2026, Michal Jires wrote:

> Cache partitioning asserts that {min,max}_partition_size parameter
> cannot be 0 to prevent later divisions by zero. This is needlessly
> strict, we can clamp the value to 1 to get reasonable/expected behavior.

Can you instead add IntegerRage(1, 2147483647) to the params in
param.opt?

>       PR lto/125257
> 
> gcc/lto/ChangeLog:
> 
>       * lto-partition.cc: Handle min/max_partition_size = 0 for
>       cache partitioning.
> 
> gcc/testsuite/ChangeLog:
> 
>       * gcc.dg/lto/pr125257_0.c: New test.
> ---
>  gcc/lto/lto-partition.cc              | 6 ++----
>  gcc/testsuite/gcc.dg/lto/pr125257_0.c | 6 ++++++
>  2 files changed, 8 insertions(+), 4 deletions(-)
>  create mode 100644 gcc/testsuite/gcc.dg/lto/pr125257_0.c
> 
> diff --git a/gcc/lto/lto-partition.cc b/gcc/lto/lto-partition.cc
> index 076cb002a11..5033ae3f97d 100644
> --- a/gcc/lto/lto-partition.cc
> +++ b/gcc/lto/lto-partition.cc
> @@ -987,11 +987,9 @@ public:
>  
>  protected:
>    partitioner_base (int64_t min_partition_size, int64_t max_partition_size):
> -    min_partition_size (min_partition_size),
> -    max_partition_size (max_partition_size)
> +    min_partition_size (std::max<int64_t>(min_partition_size, 1)),
> +    max_partition_size (std::max<int64_t>(max_partition_size, 1))
>    {
> -    gcc_assert (min_partition_size != 0);
> -    gcc_assert (max_partition_size != 0);
>    }
>    virtual ~partitioner_base ()
>    {}
> diff --git a/gcc/testsuite/gcc.dg/lto/pr125257_0.c 
> b/gcc/testsuite/gcc.dg/lto/pr125257_0.c
> new file mode 100644
> index 00000000000..e3821150a18
> --- /dev/null
> +++ b/gcc/testsuite/gcc.dg/lto/pr125257_0.c
> @@ -0,0 +1,6 @@
> +/* PR lto/125257 */
> +/* { dg-lto-do link } */
> +/* { dg-lto-options { "-O0 -flto --param=lto-min-partition=0 
> --param=lto-max-partition=0" } } */
> +
> +int main() {}
> +__attribute__((used)) void foo() {}
> 

-- 
Richard Biener <[email protected]>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Jochen Jaser, Andrew McDonald; (HRB 36809, AG Nuernberg)

Reply via email to