diff options
author | Yuri Rumyantsev <ysrumyan@gmail.com> | 2013-09-17 12:01:28 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2013-09-17 12:01:28 +0000 |
commit | 9a0ac98faf0823b9c4fe1c1c129ba2c0445d1247 (patch) | |
tree | 432538c1486de57eb52c960e2c87631f7488072e /gcc | |
parent | dff717d29b17e8da5a17890ad8393cb5ea959b41 (diff) | |
download | gcc-9a0ac98faf0823b9c4fe1c1c129ba2c0445d1247.zip gcc-9a0ac98faf0823b9c4fe1c1c129ba2c0445d1247.tar.gz gcc-9a0ac98faf0823b9c4fe1c1c129ba2c0445d1247.tar.bz2 |
i386.c (distance_agu_use_in_bb): Proper initialization of 'prev' var to get better distance estimation.
* config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization
of 'prev' var to get better distance estimation.
From-SVN: r202649
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 44c7d66..e05412a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-09-17 Yuri Rumyantsev <ysrumyan@gmail.com> + + * config/i386/i386.c (distance_agu_use_in_bb) : Proper initialization + of 'prev' var to get better distance estimation. + 2013-09-17 Eric Botcazou <ebotcazou@adacore.com> * tree-inline.h (struct copy_body_data): Add transform_parameter. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index bba2147..ac7d40a 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -17469,13 +17469,23 @@ distance_agu_use_in_bb (unsigned int regno, rtx insn, int distance, rtx start, bool *found, bool *redefined) { - basic_block bb = start ? BLOCK_FOR_INSN (start) : NULL; + basic_block bb = NULL; rtx next = start; rtx prev = NULL; *found = false; *redefined = false; + if (start != NULL_RTX) + { + bb = BLOCK_FOR_INSN (start); + if (start != BB_HEAD (bb)) + /* If insn and start belong to the same bb, set prev to insn, + so the call to increase_distance will increase the distance + between insns by 1. */ + prev = insn; + } + while (next && next != insn && distance < LEA_SEARCH_THRESHOLD) |