From 308fbc42903ba2f97c29eea52928802686a917f1 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Thu, 17 Sep 2015 15:35:24 +0000 Subject: [PATCH] re PR rtl-optimization/66790 (Invalid uninitialized register handling in REE) PR rtl-optimization/66790 * df-problems.c (LIVE): Amend documentation. From-SVN: r227874 --- gcc/ChangeLog | 5 +++++ gcc/df-problems.c | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa26892fc45..64664541f31 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2015-09-17 Eric Botcazou + + PR rtl-optimization/66790 + * df-problems.c (LIVE): Amend documentation. + 2015-09-17 Richard Sandiford * Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o diff --git a/gcc/df-problems.c b/gcc/df-problems.c index 0ab533fe0b1..153732ae26f 100644 --- a/gcc/df-problems.c +++ b/gcc/df-problems.c @@ -1309,22 +1309,23 @@ df_lr_verify_transfer_functions (void) /*---------------------------------------------------------------------------- - LIVE AND MUST-INITIALIZED REGISTERS. + LIVE AND MAY-INITIALIZED REGISTERS. This problem first computes the IN and OUT bitvectors for the - must-initialized registers problems, which is a forward problem. - It gives the set of registers for which we MUST have an available - definition on any path from the entry block to the entry/exit of - a basic block. Sets generate a definition, while clobbers kill + may-initialized registers problems, which is a forward problem. + It gives the set of registers for which we MAY have an available + definition, i.e. for which there is an available definition on + at least one path from the entry block to the entry/exit of a + basic block. Sets generate a definition, while clobbers kill a definition. In and out bitvectors are built for each basic block and are indexed by regnum (see df.h for details). In and out bitvectors in struct - df_live_bb_info actually refers to the must-initialized problem; + df_live_bb_info actually refers to the may-initialized problem; Then, the in and out sets for the LIVE problem itself are computed. These are the logical AND of the IN and OUT sets from the LR problem - and the must-initialized problem. + and the may-initialized problem. ----------------------------------------------------------------------------*/ /* Private data used to verify the solution for this problem. */ @@ -1531,7 +1532,7 @@ df_live_confluence_n (edge e) } -/* Transfer function for the forwards must-initialized problem. */ +/* Transfer function for the forwards may-initialized problem. */ static bool df_live_transfer_function (int bb_index) @@ -1555,7 +1556,7 @@ df_live_transfer_function (int bb_index) } -/* And the LR info with the must-initialized registers, to produce the LIVE info. */ +/* And the LR info with the may-initialized registers to produce the LIVE info. */ static void df_live_finalize (bitmap all_blocks) -- 2.30.2