https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94092
Bug ID: 94092 Summary: Code size and performance degradations after -ftree-loop-distribute-patterns was enabled at -O[2s]+ Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: bina2374 at gmail dot com Target Milestone: --- Target: riscv64-unknown-elf Since https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88440, loop-distribute-patterns was enabled at -O[2s]+. We understand that this patch is helpful in some cases, but not for all. In the original bugzilla, the loop count is known, and the performance and code size are all improved finally. However, if loop count is unknown, the results may become worse. void init_array(int N, int *array) { int i; for (i = 0; i < N; i++) array[i] = 0; } init_array: mv a2,a0 mv a0,a1 ble a2,zero,.L1 slli a2,a2,2 li a1,0 tail memset .L1: ret For coremark, this is not only harmful to performance, but also code size. Therefore, I suggest that we have to discuss how to resolve the case of unknown loop count.