Commit 5a9fbcf1 by Alexandre Oliva Committed by Alexandre Oliva

re PR debug/50869 (ice in vt_expand_var_loc_chain)

PR debug/50869
* cselib.c (cfa_base_preserved_regno): Initialize.
(cselib_expand_value_rtx_1): Don't expand it.
* var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
Check it's only zero if result is NULL.

From-SVN: r180725
parent 03e0010d
2011-11-01 Alexandre Oliva <aoliva@redhat.com>
PR debug/50869
* cselib.c (cfa_base_preserved_regno): Initialize.
(cselib_expand_value_rtx_1): Don't expand it.
* var-tracking.c (vt_expand_var_loc_chain): Initialize depth.
Check it's only zero if result is NULL.
2011-11-01 Jakub Jelinek <jakub@redhat.com> 2011-11-01 Jakub Jelinek <jakub@redhat.com>
* config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New * config/i386/sse.md (fixuns_trunc<mode><sseintvecmodelower>2): New
...@@ -185,7 +185,7 @@ static cselib_val dummy_val; ...@@ -185,7 +185,7 @@ static cselib_val dummy_val;
that is constant through the whole function and should never be that is constant through the whole function and should never be
eliminated. */ eliminated. */
static cselib_val *cfa_base_preserved_val; static cselib_val *cfa_base_preserved_val;
static unsigned int cfa_base_preserved_regno; static unsigned int cfa_base_preserved_regno = INVALID_REGNUM;
/* Used to list all values that contain memory reference. /* Used to list all values that contain memory reference.
May or may not contain the useless values - the list is compacted May or may not contain the useless values - the list is compacted
...@@ -1451,7 +1451,7 @@ cselib_expand_value_rtx_1 (rtx orig, struct expand_value_data *evd, ...@@ -1451,7 +1451,7 @@ cselib_expand_value_rtx_1 (rtx orig, struct expand_value_data *evd,
if (GET_MODE (l->elt->val_rtx) == GET_MODE (orig)) if (GET_MODE (l->elt->val_rtx) == GET_MODE (orig))
{ {
rtx result; rtx result;
int regno = REGNO (orig); unsigned regno = REGNO (orig);
/* The only thing that we are not willing to do (this /* The only thing that we are not willing to do (this
is requirement of dse and if others potential uses is requirement of dse and if others potential uses
...@@ -1471,7 +1471,8 @@ cselib_expand_value_rtx_1 (rtx orig, struct expand_value_data *evd, ...@@ -1471,7 +1471,8 @@ cselib_expand_value_rtx_1 (rtx orig, struct expand_value_data *evd,
make the frame assumptions. */ make the frame assumptions. */
if (regno == STACK_POINTER_REGNUM if (regno == STACK_POINTER_REGNUM
|| regno == FRAME_POINTER_REGNUM || regno == FRAME_POINTER_REGNUM
|| regno == HARD_FRAME_POINTER_REGNUM) || regno == HARD_FRAME_POINTER_REGNUM
|| regno == cfa_base_preserved_regno)
return orig; return orig;
bitmap_set_bit (evd->regs_active, regno); bitmap_set_bit (evd->regs_active, regno);
......
...@@ -7764,7 +7764,7 @@ vt_expand_var_loc_chain (variable var, bitmap regs, void *data, bool *pendrecp) ...@@ -7764,7 +7764,7 @@ vt_expand_var_loc_chain (variable var, bitmap regs, void *data, bool *pendrecp)
bool pending_recursion; bool pending_recursion;
rtx loc_from = NULL; rtx loc_from = NULL;
struct elt_loc_list *cloc = NULL; struct elt_loc_list *cloc = NULL;
int depth, saved_depth = elcd->depth; int depth = 0, saved_depth = elcd->depth;
/* Clear all backlinks pointing at this, so that we're not notified /* Clear all backlinks pointing at this, so that we're not notified
while we're active. */ while we're active. */
...@@ -7842,6 +7842,8 @@ vt_expand_var_loc_chain (variable var, bitmap regs, void *data, bool *pendrecp) ...@@ -7842,6 +7842,8 @@ vt_expand_var_loc_chain (variable var, bitmap regs, void *data, bool *pendrecp)
VAR_LOC_FROM (var) = loc_from; VAR_LOC_FROM (var) = loc_from;
VAR_LOC_DEPTH (var) = depth; VAR_LOC_DEPTH (var) = depth;
gcc_checking_assert (!depth == !result);
elcd->depth = update_depth (saved_depth, depth); elcd->depth = update_depth (saved_depth, depth);
/* Indicate whether any of the dependencies are pending recursion /* Indicate whether any of the dependencies are pending recursion
......
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