diff options
author | matz <matz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-20 16:07:21 +0000 |
---|---|---|
committer | matz <matz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-10-20 16:07:21 +0000 |
commit | 21a9b734ae34bc0fc6a6fc958af6fe48adb0e955 (patch) | |
tree | 8373744cb0ba30186429688bf97d57291d6ff5b3 /gcc/loop-invariant.c | |
parent | df6cfbc57139d1afbff073f8791e109f44bf3af6 (diff) | |
download | gcc-21a9b734ae34bc0fc6a6fc958af6fe48adb0e955.tar.gz |
* loop-invariant.c (create_new_invariant): Use different magic number.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153022 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/loop-invariant.c')
-rw-r--r-- | gcc/loop-invariant.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c index 8cbfdb30a92..901ce51ac89 100644 --- a/gcc/loop-invariant.c +++ b/gcc/loop-invariant.c @@ -705,8 +705,17 @@ create_new_invariant (struct def *def, rtx insn, bitmap depends_on, if (def) { inv->cost = rtx_cost (set, SET, speed); + /* ??? Try to determine cheapness of address computation. Unfortunately + the address cost is only a relative measure, we can't really compare + it with any absolute number, but only with other address costs. + But here we don't have any other addresses, so compare with a magic + number anyway. It has to be large enough to not regress PR33928 + (by avoiding to move reg+8,reg+16,reg+24 invariants), but small + enough to not regress 410.bwaves either (by still moving reg+reg + invariants). + See http://gcc.gnu.org/ml/gcc-patches/2009-10/msg01210.html . */ inv->cheap_address = address_cost (SET_SRC (set), word_mode, - speed) < COSTS_N_INSNS (1); + speed) < 3; } else { |