Commit 99a9c946 by Graham Stott Committed by Graham Stott

cse.c (cse_insn): Initialise all regcost variables.


        * cse.c (cse_insn): Initialise all regcost variables.
        Fix a typo add missing '='.
        Only compare costs if there is a replacement insn.

From-SVN: r37694
parent f9b383f2
2000-11-23 Graham Stott <grahams@redhat.com>
* cse.c (cse_insn): Initialise all regcost variables.
Fix a typo add missing '='.
Only compare costs if there is a replacement insn.
Thu Nov 23 04:33:33 2000 Alexandre Oliva <aoliva@redhat.com> Thu Nov 23 04:33:33 2000 Alexandre Oliva <aoliva@redhat.com>
* final.c (output_addr_const) [LABEL_REF]: Simplify. * final.c (output_addr_const) [LABEL_REF]: Simplify.
......
...@@ -4941,10 +4941,16 @@ cse_insn (insn, libcall_insn) ...@@ -4941,10 +4941,16 @@ cse_insn (insn, libcall_insn)
rtx src_const = 0; rtx src_const = 0;
rtx src_related = 0; rtx src_related = 0;
struct table_elt *src_const_elt = 0; struct table_elt *src_const_elt = 0;
int src_cost = MAX_COST, src_eqv_cost = MAX_COST, src_folded_cost = MAX_COST; int src_cost = MAX_COST;
int src_related_cost = MAX_COST, src_elt_cost = MAX_COST; int src_eqv_cost = MAX_COST;
int src_regcost, src_eqv_regcost, src_folded_regcost; int src_folded_cost = MAX_COST;
int src_related_regcost, src_elt_regcost; int src_related_cost = MAX_COST;
int src_elt_cost = MAX_COST;
int src_regcost = MAX_COST;
int src_eqv_regcost = MAX_COST;
int src_folded_regcost = MAX_COST;
int src_related_regcost = MAX_COST;
int src_elt_regcost = MAX_COST;
/* Set non-zero if we need to call force_const_mem on with the /* Set non-zero if we need to call force_const_mem on with the
contents of src_folded before using it. */ contents of src_folded before using it. */
int src_folded_force_flag = 0; int src_folded_force_flag = 0;
...@@ -5395,7 +5401,7 @@ cse_insn (insn, libcall_insn) ...@@ -5395,7 +5401,7 @@ cse_insn (insn, libcall_insn)
/* If this was an indirect jump insn, a known label will really be /* If this was an indirect jump insn, a known label will really be
cheaper even though it looks more expensive. */ cheaper even though it looks more expensive. */
if (dest == pc_rtx && src_const && GET_CODE (src_const) == LABEL_REF) if (dest == pc_rtx && src_const && GET_CODE (src_const) == LABEL_REF)
src_folded = src_const, src_folded_cost = src_folded_regcost -1; src_folded = src_const, src_folded_cost = src_folded_regcost = -1;
/* Terminate loop when replacement made. This must terminate since /* Terminate loop when replacement made. This must terminate since
the current contents will be tested and will always be valid. */ the current contents will be tested and will always be valid. */
...@@ -5436,8 +5442,9 @@ cse_insn (insn, libcall_insn) ...@@ -5436,8 +5442,9 @@ cse_insn (insn, libcall_insn)
/* Find cheapest and skip it for the next time. For items /* Find cheapest and skip it for the next time. For items
of equal cost, use this order: of equal cost, use this order:
src_folded, src, src_eqv, src_related and hash table entry. */ src_folded, src, src_eqv, src_related and hash table entry. */
if (preferrable (src_folded_cost, src_folded_regcost, if (src_folded
src_cost, src_regcost) <= 0 && preferrable (src_folded_cost, src_folded_regcost,
src_cost, src_regcost) <= 0
&& preferrable (src_folded_cost, src_folded_regcost, && preferrable (src_folded_cost, src_folded_regcost,
src_eqv_cost, src_eqv_regcost) <= 0 src_eqv_cost, src_eqv_regcost) <= 0
&& preferrable (src_folded_cost, src_folded_regcost, && preferrable (src_folded_cost, src_folded_regcost,
...@@ -5449,20 +5456,23 @@ cse_insn (insn, libcall_insn) ...@@ -5449,20 +5456,23 @@ cse_insn (insn, libcall_insn)
if (src_folded_force_flag) if (src_folded_force_flag)
trial = force_const_mem (mode, trial); trial = force_const_mem (mode, trial);
} }
else if (preferrable (src_cost, src_regcost, else if (src
src_eqv_cost, src_eqv_regcost) <= 0 && preferrable (src_cost, src_regcost,
src_eqv_cost, src_eqv_regcost) <= 0
&& preferrable (src_cost, src_regcost, && preferrable (src_cost, src_regcost,
src_related_cost, src_related_regcost) <= 0 src_related_cost, src_related_regcost) <= 0
&& preferrable (src_cost, src_regcost, && preferrable (src_cost, src_regcost,
src_elt_cost, src_elt_regcost) <= 0) src_elt_cost, src_elt_regcost) <= 0)
trial = src, src_cost = MAX_COST; trial = src, src_cost = MAX_COST;
else if (preferrable (src_eqv_cost, src_eqv_regcost, else if (src_eqv_here
src_related_cost, src_related_regcost) <= 0 && preferrable (src_eqv_cost, src_eqv_regcost,
src_related_cost, src_related_regcost) <= 0
&& preferrable (src_eqv_cost, src_eqv_regcost, && preferrable (src_eqv_cost, src_eqv_regcost,
src_elt_cost, src_elt_regcost) <= 0) src_elt_cost, src_elt_regcost) <= 0)
trial = copy_rtx (src_eqv_here), src_eqv_cost = MAX_COST; trial = copy_rtx (src_eqv_here), src_eqv_cost = MAX_COST;
else if (preferrable (src_related_cost, src_related_regcost, else if (src_related
src_elt_cost, src_elt_regcost) <= 0) && preferrable (src_related_cost, src_related_regcost,
src_elt_cost, src_elt_regcost) <= 0)
trial = copy_rtx (src_related), src_related_cost = MAX_COST; trial = copy_rtx (src_related), src_related_cost = MAX_COST;
else else
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment