>> Why that change? Was no-schedule necessary before and is not anymore? >> Is it a result from the changes? I'd hope not. Yes. But reasonable. So adapt testcase is enough. juzhe.zhong@rivai.ai From: Robin Dapp Date: 2024-01-24 05:12 To: Juzhe-Zhong; gcc-patches CC: rdapp.gcc; kito.cheng; kito.cheng; jeffreyalaw Subject: Re: [PATCH] RISC-V: Fix large memory usage of VSETVL PASS [PR113495] > SPEC 2017 wrf benchmark expose unreasonble memory usage of VSETVL PASS > that is, VSETVL PASS consume over 33 GB memory which make use impossible > to compile SPEC 2017 wrf in a laptop. > > The root cause is wasting-memory variables: LGTM. The new code matches compute_lcm_local_properties more closely which makes sense to me. One separate thing, nothing to do with this patch - I find bitmap_union_of_preds_with_entry not wrong but weirdly written. Probably because it was copied from somewhere and slightly adjusted? If you touch more code anyway, would you mind fixing it? for (ix = 0; ix < EDGE_COUNT (b->preds); ix++) { e = EDGE_PRED (b, ix); bitmap_copy (dst, src[e->src->index]); break; } if (ix == EDGE_COUNT (b->preds)) bitmap_clear (dst); The whole idea seems to _not_ skip the entry block. So something like if (EDGE_COUNT () == 0) {...} else { bitmap_copy (...)) should be sufficient? If the input is assumed to be empty we could even skip the copy. > -/* { dg-options "--param=riscv-autovec-preference=scalable -march=rv32gcv -mabi=ilp32 -fno-schedule-insns -fno-schedule-insns2 -fno-tree-vectorize" } */ > +/* { dg-options "--param=riscv-autovec-preference=scalable -march=rv32gcv -mabi=ilp32 -fno-tree-vectorize" } */ Why that change? Was no-schedule necessary before and is not anymore? Is it a result from the changes? I'd hope not. Regards Robin