mirror of git://gcc.gnu.org/git/gcc.git
re PR rtl-optimization/48141 (DSE compile time hog)
PR rtl-optimization/48141 * dse.c (record_store): If no positions are needed in an insn that cannot be deleted, at least unchain it from active_local_stores. * gcc.dg/pr48141.c: New test. From-SVN: r171089
This commit is contained in:
parent
cb21e9cdf7
commit
1b6fa86002
|
@ -1,3 +1,9 @@
|
||||||
|
2011-03-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/48141
|
||||||
|
* dse.c (record_store): If no positions are needed in an insn
|
||||||
|
that cannot be deleted, at least unchain it from active_local_stores.
|
||||||
|
|
||||||
2011-03-16 Dodji Seketeli <dodji@redhat.com>
|
2011-03-16 Dodji Seketeli <dodji@redhat.com>
|
||||||
|
|
||||||
PR debug/47510
|
PR debug/47510
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* RTL dead store elimination.
|
/* RTL dead store elimination.
|
||||||
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010
|
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||||
Free Software Foundation, Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
Contributed by Richard Sandiford <rsandifor@codesourcery.com>
|
Contributed by Richard Sandiford <rsandifor@codesourcery.com>
|
||||||
|
@ -1530,8 +1530,7 @@ record_store (rtx body, bb_info_t bb_info)
|
||||||
|
|
||||||
/* An insn can be deleted if every position of every one of
|
/* An insn can be deleted if every position of every one of
|
||||||
its s_infos is zero. */
|
its s_infos is zero. */
|
||||||
if (any_positions_needed_p (s_info)
|
if (any_positions_needed_p (s_info))
|
||||||
|| ptr->cannot_delete)
|
|
||||||
del = false;
|
del = false;
|
||||||
|
|
||||||
if (del)
|
if (del)
|
||||||
|
@ -1543,7 +1542,8 @@ record_store (rtx body, bb_info_t bb_info)
|
||||||
else
|
else
|
||||||
active_local_stores = ptr->next_local_store;
|
active_local_stores = ptr->next_local_store;
|
||||||
|
|
||||||
delete_dead_store_insn (insn_to_delete);
|
if (!insn_to_delete->cannot_delete)
|
||||||
|
delete_dead_store_insn (insn_to_delete);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
last = ptr;
|
last = ptr;
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2011-03-17 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR rtl-optimization/48141
|
||||||
|
* gcc.dg/pr48141.c: New test.
|
||||||
|
|
||||||
2011-03-16 Jason Merrill <jason@redhat.com>
|
2011-03-16 Jason Merrill <jason@redhat.com>
|
||||||
|
|
||||||
* g++.dg/cpp0x/constexpr-48089.C: New.
|
* g++.dg/cpp0x/constexpr-48089.C: New.
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* PR rtl-optimization/48141 */
|
||||||
|
/* { dg-do compile } */
|
||||||
|
/* { dg-options "-O" } */
|
||||||
|
|
||||||
|
#define A i = 0;
|
||||||
|
#define B A A A A A A A A A A
|
||||||
|
#define C B B B B B B B B B B
|
||||||
|
#define D C C C C C C C C C C
|
||||||
|
#define E D D D D D D D D D D
|
||||||
|
|
||||||
|
int
|
||||||
|
foo (void)
|
||||||
|
{
|
||||||
|
volatile int i = 0;
|
||||||
|
E E E E E E E E E E E
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue