Mercurial > hg > CbC > CbC_gcc
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 |