tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
authorBrian Booth <bbooth@gcc.gnu.org>
Thu, 22 Jul 2004 18:33:20 +0000 (18:33 +0000)
committerBrian Booth <bbooth@gcc.gnu.org>
Thu, 22 Jul 2004 18:33:20 +0000 (18:33 +0000)
commit173b818d9c51a851a3358de2ae11a51f47f5aeed
treefa1b2308821180c3a5c2ca8c6e99270c2c793d16
parent2bb16349067f9dd8feea38c3e1d689042bcbebd7
tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.

* tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
(substitute_and_fold): Propigate into VUSE operands when possible.
(visit_phi_node): Handle UNKNOWN_VAL latticevalue.
(cp_lattice_meet): Handle merging of latticevalues when
UNKNOWN_VAL is present.
(visit_stmt): Visit assignments with V_MUST_DEFs.
(visit_assignment): Gather ccp information for V_MUST_DEF operands.
(ccp_fold): Deal with RHS' that are constant and virtual.
(evaluate_stmt): Handle UNKNOWN_VAL likely values.
(dump_lattice_value): Dump UNKNOWN_VAL latticevalues.
(initialize): Mark statements with V_MUST_DEFs as VARYING only if the
V_MUST_DEF operand is VARYING. Fix comment and include VOPS when
computing immediate uses.
(set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state
transition.
(replace_vuse_in): New function.
(likely_value): Add check of vuse operands.
(get_default_value): Set the default value of virtually defined
variables to UKNOWN_VAL instead of VARYING.

testsuite:

* gcc.dg/tree-ssa/20040721-1.c: New test.

From-SVN: r85055
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/20040721-1.c [new file with mode: 0644]
gcc/tree-ssa-ccp.c