From 757b5735f44e9a9454f12612ec00c38d81f5f32c Mon Sep 17 00:00:00 2001 From: lemon Date: Sat, 11 Apr 2026 12:14:09 +0200 Subject: backend: run mem2reg after inlining --- src/ir.c | 6 +++++- src/ir_ssa.c | 2 ++ test/external/c-testsuite/runners/single-exec/antcc-x86_64 | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/ir.c b/src/ir.c index ead9ae4..f34cfaf 100644 --- a/src/ir.c +++ b/src/ir.c @@ -680,7 +680,11 @@ irfini(Function *fn) copyopt(fn); } if (ccopt.o >= OPT1) { - doinline(fn); + if (doinline(fn)) { + filluses(fn); + copyopt(fn); + mem2reg(fn); + } freearena(fn->passarena); filldom(fn); if (!(fn->prop & FNUSE)) filluses(fn); diff --git a/src/ir_ssa.c b/src/ir_ssa.c index 6e7945b..a1d960f 100644 --- a/src/ir_ssa.c +++ b/src/ir_ssa.c @@ -35,6 +35,8 @@ copyopt(Function *fn) if (ins->cls != k) continue; replcuses(var, arg); + if (arg.t == RTMP) + deluse(blk, var.i, arg); *ins = mkinstr0(Onop,0); deluses(var.i); } diff --git a/test/external/c-testsuite/runners/single-exec/antcc-x86_64 b/test/external/c-testsuite/runners/single-exec/antcc-x86_64 index da9e20c..607c4ea 100755 --- a/test/external/c-testsuite/runners/single-exec/antcc-x86_64 +++ b/test/external/c-testsuite/runners/single-exec/antcc-x86_64 @@ -7,6 +7,6 @@ then fi CC=../../../antcc -CFLAGS="" +CFLAGS="$CFLAGS -lm" export CC CFLAGS exec ./runners/single-exec/posix $1 -- cgit v1.2.3