diff options
author | Enkovich Ilya <ilya.enkovich@intel.com> | 2011-11-25 09:46:27 +0000 |
---|---|---|
committer | Kirill Yukhin <kyukhin@gcc.gnu.org> | 2011-11-25 09:46:27 +0000 |
commit | 696095350b0301162911c181498ac0a286098c1b (patch) | |
tree | a2b06ee94adfdb8a9218e7e37aa21e457127955c /gcc | |
parent | c466c4ff909f2a03344110dec66c3c3616e44920 (diff) | |
download | gcc-696095350b0301162911c181498ac0a286098c1b.zip gcc-696095350b0301162911c181498ac0a286098c1b.tar.gz gcc-696095350b0301162911c181498ac0a286098c1b.tar.bz2 |
re PR target/51287 (252.eon compfail with -march=atom)
PR target/51287
* i386.c (distance_non_agu_define): Fix insn attr check.
From-SVN: r181713
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 5 |
2 files changed, 7 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f4cf7e1..9436021 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-11-24 Enkovich Ilya <ilya.enkovich@intel.com> + + PR target/51287 + * i386.c (distance_non_agu_define): Fix insn attr check. + 2011-11-24 Andrew MacLeod <amacleod@redhat.com> * optab.c (maybe_emit_atomic_exchange): New. Try to emit an diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 409accc..1b871be 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -16273,7 +16273,6 @@ distance_non_agu_define_in_bb (unsigned int regno1, unsigned int regno2, basic_block bb = start ? BLOCK_FOR_INSN (start) : NULL; rtx prev = start; rtx next = NULL; - enum attr_type insn_type; *found = false; @@ -16286,8 +16285,8 @@ distance_non_agu_define_in_bb (unsigned int regno1, unsigned int regno2, distance = increase_distance (prev, next, distance); if (insn_defines_reg (regno1, regno2, prev)) { - insn_type = get_attr_type (prev); - if (insn_type != TYPE_LEA) + if (recog_memoized (prev) < 0 + || get_attr_type (prev) != TYPE_LEA) { *found = true; return distance; |