cosmetic change - simplify cse.c:preferable()
Dodji Seketeli
dodji@seketeli.org
Wed Jul 18 19:36:00 GMT 2012
Hey Dimitrios,
I can't say much about your patch, so I am CC-ing the maintainers.
Thanks.
Dimitrios Apostolou <jimis@gmx.net> a écrit:
> Hello,
>
> I've had this patch some time now, it's simple and cosmetic only, I
> had done it while trying to understand expression costs in CSE. I
> think it's more readable than the previous one. FWIW it passed all
> tests on x86.
>
>
> Thanks,
> Dimitris
>
> === modified file 'gcc/cse.c'
> --- gcc/cse.c 2012-06-15 09:22:00 +0000
> +++ gcc/cse.c 2012-07-08 07:28:52 +0000
> @@ -713,32 +713,25 @@ approx_reg_cost (rtx x)
> static int
> preferable (int cost_a, int regcost_a, int cost_b, int regcost_b)
> {
> - /* First, get rid of cases involving expressions that are entirely
> - unwanted. */
> - if (cost_a != cost_b)
> - {
> - if (cost_a == MAX_COST)
> - return 1;
> - if (cost_b == MAX_COST)
> - return -1;
> - }
> + int cost_diff = cost_a - cost_b;
> + int regcost_diff = regcost_a - regcost_b;
>
> - /* Avoid extending lifetimes of hardregs. */
> - if (regcost_a != regcost_b)
> + if (cost_diff != 0)
> {
> - if (regcost_a == MAX_COST)
> - return 1;
> - if (regcost_b == MAX_COST)
> - return -1;
> + /* If none of the expressions are entirely unwanted */
> + if ((cost_a != MAX_COST) && (cost_b != MAX_COST)
> + /* AND only one of the regs is HARD_REG */
> + && (regcost_diff != 0)
> + && ((regcost_a == MAX_COST) || (regcost_b == MAX_COST))
> + )
> + /* Then avoid extending lifetime of HARD_REG */
> + return regcost_diff;
> +
> + return cost_diff;
> }
>
> - /* Normal operation costs take precedence. */
> - if (cost_a != cost_b)
> - return cost_a - cost_b;
> - /* Only if these are identical consider effects on register pressure. */
> - if (regcost_a != regcost_b)
> - return regcost_a - regcost_b;
> - return 0;
> + /* cost_a == costb, consider effects on register pressure */
> + return regcost_diff;
> }
>
> /* Internal function, to compute cost when X is not a register; called
>
--
Dodji
More information about the Gcc-patches
mailing list