aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorYuri Rumyantsev <ysrumyan@gmail.com>2013-09-17 12:01:28 +0000
committerKirill Yukhin <kyukhin@gcc.gnu.org>2013-09-17 12:01:28 +0000
commit9a0ac98faf0823b9c4fe1c1c129ba2c0445d1247 (patch)
tree432538c1486de57eb52c960e2c87631f7488072e /gcc
parentdff717d29b17e8da5a17890ad8393cb5ea959b41 (diff)
downloadgcc-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/ChangeLog5
-rw-r--r--gcc/config/i386/i386.c12
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)