comparison gcc/loop-unswitch.c @ 55:77e2b8dfacca gcc-4.4.5

update it from 4.4.3 to 4.5.0
author ryoma <e075725@ie.u-ryukyu.ac.jp>
date Fri, 12 Feb 2010 23:39:51 +0900
parents a06113de4d67
children b7f97abdc517
comparison
equal deleted inserted replaced
52:c156f1bd5cd9 55:77e2b8dfacca
390 unswitch_loop (struct loop *loop, basic_block unswitch_on, rtx cond, rtx cinsn) 390 unswitch_loop (struct loop *loop, basic_block unswitch_on, rtx cond, rtx cinsn)
391 { 391 {
392 edge entry, latch_edge, true_edge, false_edge, e; 392 edge entry, latch_edge, true_edge, false_edge, e;
393 basic_block switch_bb, unswitch_on_alt; 393 basic_block switch_bb, unswitch_on_alt;
394 struct loop *nloop; 394 struct loop *nloop;
395 sbitmap zero_bitmap;
396 int irred_flag, prob; 395 int irred_flag, prob;
397 rtx seq; 396 rtx seq;
398 397
399 /* Some sanity checking. */ 398 /* Some sanity checking. */
400 gcc_assert (flow_bb_inside_loop_p (loop, unswitch_on)); 399 gcc_assert (flow_bb_inside_loop_p (loop, unswitch_on));
407 entry = loop_preheader_edge (loop); 406 entry = loop_preheader_edge (loop);
408 407
409 /* Make a copy. */ 408 /* Make a copy. */
410 irred_flag = entry->flags & EDGE_IRREDUCIBLE_LOOP; 409 irred_flag = entry->flags & EDGE_IRREDUCIBLE_LOOP;
411 entry->flags &= ~EDGE_IRREDUCIBLE_LOOP; 410 entry->flags &= ~EDGE_IRREDUCIBLE_LOOP;
412 zero_bitmap = sbitmap_alloc (2);
413 if (!duplicate_loop_to_header_edge (loop, entry, 1, 411 if (!duplicate_loop_to_header_edge (loop, entry, 1,
414 NULL, NULL, NULL, 0)) 412 NULL, NULL, NULL, 0))
415 return NULL; 413 return NULL;
416 entry->flags |= irred_flag; 414 entry->flags |= irred_flag;
417 415