[Bug rtl-optimization/79059] Information from CCmode is not propagated across basic blocks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79059 Andrew Pinski changed: What|Removed |Added Keywords||internal-improvement, ||missed-optimization Severity|normal |enhancement
[Bug rtl-optimization/79059] Information from CCmode is not propagated across basic blocks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79059 --- Comment #5 from Andrew Pinski --- I can't remember if this is the same but I don't know how to describe this optimization right now but take the following two functions: struct arc { int ident; }; int bea_is_dual_infeasible( struct arc *arc, int red_cost ) { return( (red_cost < 0 && arc->ident == 1) || (red_cost > 0 && arc->ident == 2) ); } int bea_is_dual_infeasible1( struct arc *arc, int red_cost ) { int t; if (red_cost == 0) return 0; return arc->ident == ((red_cost > 0) ? 2 : 1); } They both do the same thing but bea_is_dual_infeasible1 has only one branch (no conditional move either) while bea_is_dual_infeasible has many branches. This is true on x86 (have not checked arm though).
[Bug rtl-optimization/79059] Information from CCmode is not propagated across basic blocks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79059 Andrew Pinski changed: What|Removed |Added CC||pinskia at gcc dot gnu.org --- Comment #4 from Andrew Pinski --- Iirc there is even better way of doing these branches that is arch independent.
[Bug rtl-optimization/79059] Information from CCmode is not propagated across basic blocks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79059 --- Comment #3 from Maxim Kuvyrkov --- (In reply to Richard Biener from comment #2) > Somewhat related to PR78200 (x86 has the CCmodes nicely combined but the > branches are the wrong order). Indeed it is related. It is [expectedly] mcf's primal_bea_mpp where this is triggered.
[Bug rtl-optimization/79059] Information from CCmode is not propagated across basic blocks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79059 --- Comment #2 from Richard Biener --- Somewhat related to PR78200 (x86 has the CCmodes nicely combined but the branches are the wrong order).
[Bug rtl-optimization/79059] Information from CCmode is not propagated across basic blocks
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79059 Maxim Kuvyrkov changed: What|Removed |Added CC||bernds at gcc dot gnu.org, ||ramana.radhakrishnan@gmail. ||com, rearnsha at arm dot com --- Comment #1 from Maxim Kuvyrkov --- Adding people who might be interested.