diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/flow.c | 16 |
2 files changed, 11 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f2dc2843b8..d901b876f7c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> + + * flow.c (calculate_global_regs_live): Queue blocks in program order. + 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> * doc/install.texi (Configuration): Document PWDCMD. diff --git a/gcc/flow.c b/gcc/flow.c index cdfbee5c875..c78877d23ce 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -1113,16 +1113,14 @@ calculate_global_regs_live (blocks_in, blocks_out, flags) useful work. We use AUX non-null to flag that the block is queued. */ if (blocks_in) { - /* Clear out the garbage that might be hanging out in bb->aux. */ FOR_ALL_BB (bb) - bb->aux = NULL; - - EXECUTE_IF_SET_IN_SBITMAP (blocks_in, 0, i, - { - bb = BASIC_BLOCK (i); - *--qhead = bb; - bb->aux = bb; - }); + if (TEST_BIT (blocks_in, bb->sindex)) + { + *--qhead = bb; + bb->aux = bb; + } + else + bb->aux = NULL; } else { |