ssa-ccp.c (first_phi_node): Remove.

* 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
This commit is contained in:
Jeffrey A Law 2001-07-10 16:27:54 +00:00 committed by Jeff Law
parent 64dfaa76b3
commit af5c573a60
4 changed files with 25 additions and 33 deletions

View 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

View file

@ -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

View 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))

View file

@ -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;