ssa-ccp.c (first_phi_node): Remove.
authorJeffrey A Law <law@cygnus.com>
Tue, 10 Jul 2001 16:27:54 +0000 (16:27 +0000)
committerJeff Law <law@gcc.gnu.org>
Tue, 10 Jul 2001 16:27:54 +0000 (10:27 -0600)
        * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
        first_insn_after_basic_block_note instead.

        * df.c (df_bb_refs_unlink): #if 0 out for now.

        * ssa.h: Add prototype for ssa_const_prop
        * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
        (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
        (ssa_fast_dce): Remove unused variable

From-SVN: r43906

gcc/ChangeLog
gcc/df.c
gcc/ssa-ccp.c
gcc/ssa.h

index 9bdce89d35cbfcdb93126ce39a59eab68065d74e..e6ff663dd34b8df9117355fc820bec930679a3b3 100644 (file)
@@ -1,3 +1,17 @@
+Tue Jul 10 09:04:45 2001  Jeffrey A Law  (law@cygnus.com)
+
+       * ssa-ccp.c (first_phi_node): Remove.  Replace uses with calls to
+       first_insn_after_basic_block_note instead.
+
+       * df.c (df_bb_refs_unlink): #if 0 out for now.
+
+2001-07-10  David Billinghurst <David.Billinghurst@riotinto.com
+
+       * ssa.h: Add prototype for ssa_const_prop
+       * ssa-ccp.c: Add prototype for ssa_fast_dce and mark_references
+       (ssa_ccp_substitute_constants): Fix signed vs unsigned comparison
+       (ssa_fast_dce): Remove unused variable
+
 2001-07-10  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
 
        * diagnostic.c (finish_diagnostic): Rename to
index 4b049f550875c67ef64e656da89ff521261db05f..36ae66f783fe39c9151e9ee635397e2bae74d412 100644 (file)
--- a/gcc/df.c
+++ b/gcc/df.c
@@ -218,8 +218,8 @@ static struct df_link *df_ref_unlink PARAMS((struct df_link **, struct ref *));
 static void df_def_unlink PARAMS((struct df *, struct ref *));
 static void df_use_unlink PARAMS((struct df *, struct ref *));
 static void df_insn_refs_unlink PARAMS ((struct df *, basic_block, rtx));
-static void df_bb_refs_unlink PARAMS ((struct df *, basic_block));
 #if 0
+static void df_bb_refs_unlink PARAMS ((struct df *, basic_block));
 static void df_refs_unlink PARAMS ((struct df *, bitmap));
 #endif
 
@@ -2513,6 +2513,7 @@ df_insn_refs_unlink (df, bb, insn)
 }
 
 
+#if 0
 /* Unlink all the insns within BB from their reference information.  */
 static void
 df_bb_refs_unlink (df, bb)
@@ -2535,7 +2536,6 @@ df_bb_refs_unlink (df, bb)
 }
 
 
-#if 0
 /* Unlink all the refs in the basic blocks specified by BLOCKS.
    Not currently used.  */
 static void
index 2316824a13125d3e4defda2ea4f027cb537265ae..2b5e592cb0996041b4b3ff97ddef97ba18b3d00b 100644 (file)
@@ -123,41 +123,17 @@ static sbitmap ssa_edges;
 #define PHI_PARMS(x) XVEC (SET_SRC (x), 0)
 #define EIE(x,y) EDGE_INDEX (edges, x, y)
 
-rtx first_phi_node              PARAMS ((basic_block));
 static void visit_phi_node             PARAMS ((rtx, basic_block));
 static void visit_expression           PARAMS ((rtx, basic_block));
 static void defs_to_undefined          PARAMS ((rtx));
 static void defs_to_varying            PARAMS ((rtx));
 static void examine_flow_edges         PARAMS ((void));
+static int mark_references             PARAMS ((rtx *, void *));
 static void follow_def_use_chains      PARAMS ((void));
 static void optimize_unexecutable_edges PARAMS ((struct edge_list *, sbitmap));
 static void ssa_ccp_substitute_constants PARAMS ((void));
 static void ssa_ccp_df_delete_unreachable_insns PARAMS ((void));
-
-/* Return the first PHI node in a basic block.  This routine knows
-   what INSNs can start a basic block and what can validly follow
-   them up to the first PHI node.
-
-   If the INSN chain or block structures are incorrect, then the behavior
-   of this routine is undefined.  verify_flow_info will normally catch
-   these problems in a more graceful manner.  */
-rtx
-first_phi_node (block)
-     basic_block block;
-{
-  rtx insn = block->head;
-
-  /* Eat the optional CODE_LABEL at the start of the block.  */
-  if (GET_CODE (insn) == CODE_LABEL)
-    insn = NEXT_INSN (insn);
-
-  /* Eat the mandatory NOTE_INSN_BASIC_BLOCK.  */
-  if (!NOTE_INSN_BASIC_BLOCK_P (insn) || NOTE_BASIC_BLOCK (insn) != block)
-    abort ();
-
-  /* If there is a PHI node in this block, then it will be the next insn.  */
-  return NEXT_INSN (insn);
-}
+static void ssa_fast_dce PARAMS ((struct df *));
 
 /* Loop through the PHI_NODE's parameters for BLOCK and compare their
    lattice values to determine PHI_NODE's lattice value.  */
@@ -638,7 +614,7 @@ examine_flow_edges (void)
 
       /* Always simulate PHI nodes, even if we have simulated this block
         before.  Note that all PHI nodes are consecutive within a block.  */
-      for (curr_phi_node = first_phi_node (succ_block);
+      for (curr_phi_node = first_insn_after_basic_block_note (succ_block);
           PHI_NODE_P (curr_phi_node);
           curr_phi_node = NEXT_INSN (curr_phi_node))
        visit_phi_node (curr_phi_node, succ_block);
@@ -751,7 +727,7 @@ optimize_unexecutable_edges (edges, executable_edges)
             the PHI nodes in the target block.  */
          if (edge->dest != EXIT_BLOCK_PTR)
            {
-             rtx insn = first_phi_node (edge->dest);
+             rtx insn = first_insn_after_basic_block_note (edge->dest);
 
              while (PHI_NODE_P (insn))
                {
@@ -840,7 +816,7 @@ optimize_unexecutable_edges (edges, executable_edges)
 static void
 ssa_ccp_substitute_constants ()
 {
-  int i;
+  unsigned int i;
 
   for (i = FIRST_PSEUDO_REGISTER; i < VARRAY_SIZE (ssa_definition); i++)
     {
@@ -1159,8 +1135,6 @@ ssa_fast_dce (df)
       found_use = 0;
       for (curruse = df->regs[reg].uses; curruse; curruse = curruse->next)
        {
-         rtx useinsn;
-
          if (curruse->ref
              && DF_REF_INSN (curruse->ref)
              && ! INSN_DELETED_P (DF_REF_INSN (curruse->ref))
index a5655958d42589ee09db88debb255b8b0f92f451..bf9a04106fc1e77d9657ff1cb4c6eae8fb3492f3 100644 (file)
--- a/gcc/ssa.h
+++ b/gcc/ssa.h
@@ -35,6 +35,10 @@ extern int remove_phi_alternative    PARAMS ((rtx, basic_block));
 /* In ssa-dce.c */
 extern void ssa_eliminate_dead_code    PARAMS ((void));
 
+/* In ssa-ccp.c */
+extern void ssa_const_prop             PARAMS ((void));
+
+
 /* SSA definitions and uses.  */
 /* This flag is set when the CFG is in SSA form.  */
 extern int in_ssa_form;