aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2015-09-17 15:35:24 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2015-09-17 15:35:24 +0000
commit308fbc42903ba2f97c29eea52928802686a917f1 (patch)
treec12e12796ec6015809c220ba206a9730a7d23acb
parent01610fec498c0ed7a2d1377a3a2a960172355a4b (diff)
downloadgcc-308fbc42903ba2f97c29eea52928802686a917f1.zip
gcc-308fbc42903ba2f97c29eea52928802686a917f1.tar.gz
gcc-308fbc42903ba2f97c29eea52928802686a917f1.tar.bz2
re PR rtl-optimization/66790 (Invalid uninitialized register handling in REE)
PR rtl-optimization/66790 * df-problems.c (LIVE): Amend documentation. From-SVN: r227874
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/df-problems.c19
2 files changed, 15 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fa26892..6466454 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2015-09-17 Eric Botcazou <ebotcazou@adacore.com>
+
+ PR rtl-optimization/66790
+ * df-problems.c (LIVE): Amend documentation.
+
2015-09-17 Richard Sandiford <richard.sandiford@arm.com>
* Makefile.in (OBJS): Add optabs-libfuncs.o, optabs-query.o
diff --git a/gcc/df-problems.c b/gcc/df-problems.c
index 0ab533f..153732a 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)