OSDN Git Service
(root)
/
pf3gnuchains
/
gcc-fork.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* tree-ssa-threadupdate.c (rediscover_loops_after_threading):
[pf3gnuchains/gcc-fork.git]
/
gcc
/
tree-ssa-loop-ch.c
diff --git
a/gcc/tree-ssa-loop-ch.c
b/gcc/tree-ssa-loop-ch.c
index
378755c
..
1663807
100644
(file)
--- a/
gcc/tree-ssa-loop-ch.c
+++ b/
gcc/tree-ssa-loop-ch.c
@@
-15,8
+15,8
@@
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
-Software Foundation, 5
9 Temple Place - Suite 330
, Boston, MA
-0211
1-1307
, USA. */
+Software Foundation, 5
1 Franklin Street, Fifth Floor
, Boston, MA
+0211
0-1301
, USA. */
#include "config.h"
#include "system.h"
#include "config.h"
#include "system.h"
@@
-120,7
+120,7
@@
do_while_loop_p (struct loop *loop)
of the loop. This is beneficial since it increases efficiency of
code motion optimizations. It also saves one jump on entry to the loop. */
of the loop. This is beneficial since it increases efficiency of
code motion optimizations. It also saves one jump on entry to the loop. */
-static
void
+static
unsigned int
copy_loop_headers (void)
{
struct loops *loops;
copy_loop_headers (void)
{
struct loops *loops;
@@
-132,20
+132,17
@@
copy_loop_headers (void)
unsigned n_bbs;
unsigned bbs_size;
unsigned n_bbs;
unsigned bbs_size;
- loops = loop_optimizer_init (dump_file);
+ loops = loop_optimizer_init (LOOPS_HAVE_PREHEADERS
+ | LOOPS_HAVE_SIMPLE_LATCHES);
if (!loops)
if (!loops)
- return;
-
- /* We do not try to keep the information about irreducible regions
- up-to-date. */
- loops->state &= ~LOOPS_HAVE_MARKED_IRREDUCIBLE_REGIONS;
+ return 0;
#ifdef ENABLE_CHECKING
verify_loop_structure (loops);
#endif
#ifdef ENABLE_CHECKING
verify_loop_structure (loops);
#endif
- bbs =
xmalloc (sizeof (basic_block) *
n_basic_blocks);
- copied_bbs =
xmalloc (sizeof (basic_block) *
n_basic_blocks);
+ bbs =
XNEWVEC (basic_block,
n_basic_blocks);
+ copied_bbs =
XNEWVEC (basic_block,
n_basic_blocks);
bbs_size = n_basic_blocks;
for (i = 1; i < loops->num; i++)
bbs_size = n_basic_blocks;
for (i = 1; i < loops->num; i++)
@@
-197,7
+194,7
@@
copy_loop_headers (void)
/* Ensure that the header will have just the latch as a predecessor
inside the loop. */
if (!single_pred_p (exit->dest))
/* Ensure that the header will have just the latch as a predecessor
inside the loop. */
if (!single_pred_p (exit->dest))
- exit = single_
succ
_edge (loop_split_edge_with (exit, NULL));
+ exit = single_
pred
_edge (loop_split_edge_with (exit, NULL));
entry = loop_preheader_edge (loop);
entry = loop_preheader_edge (loop);
@@
-216,7
+213,8
@@
copy_loop_headers (void)
free (bbs);
free (copied_bbs);
free (bbs);
free (copied_bbs);
- loop_optimizer_finalize (loops, NULL);
+ loop_optimizer_finalize (loops);
+ return 0;
}
static bool
}
static bool