OSDN Git Service

* tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
authorbbooth <bbooth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 Jul 2004 18:33:20 +0000 (18:33 +0000)
committerbbooth <bbooth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 22 Jul 2004 18:33:20 +0000 (18:33 +0000)
commit5664499b6cbf1b58f05a2d0c5a62e5e599249009
treefa1b2308821180c3a5c2ca8c6e99270c2c793d16
parentf7db692b6e1ed2d26a2d7842a1c26357b76cb8d0
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@85055 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/20040721-1.c [new file with mode: 0644]
gcc/tree-ssa-ccp.c