On 6/9/24 5:28 AM, YunQiang Su wrote:
YunQiang Su <wzss...@gmail.com> 于2024年6月9日周日 18:25写道:
gcc/ChangeLog:
* ifcvt.cc (cond_move_process_if_block):
Consider the result of targetm.noce_conversion_profitable_p()
when replacing the original sequence with the converted one.
THanks. I pushed this to the trunk.
Sorry for the delay report. With this patch the test
gcc.target/mips/movcc-3.c fails.
The problem may be caused by the different of `seq` and `edge e`.
In `seq`, there may be a compare operation, while
`default_max_noce_ifcvt_seq_cost`
only count the branch operation.
The rtx_cost may consider the compare operation in `seq` as quite expensive.
Overall it sounds like a target issue to me -- ie, now that we're
testing for profitability instead of just assuming it's profitable some
targets need adjustment. Either in their costing model or in the
testsuite expectations.
Jeff