re PR debug/88723 (PR debug/88635 patch breaks testsuite_shared.cc compilation)
PR debug/88723 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to const_not_ok_for_debug_p target hook. (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1 on UNSPEC and subexpressions thereof if all subexpressions of the UNSPEC are CONSTANT_P. From-SVN: r267638
This commit is contained in:
parent
0119d5a23a
commit
1e92df7eed
2 changed files with 18 additions and 9 deletions
|
@ -1,5 +1,12 @@
|
|||
2019-01-07 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/88723
|
||||
* dwarf2out.c (const_ok_for_output_1): Remove redundant call to
|
||||
const_not_ok_for_debug_p target hook.
|
||||
(mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
|
||||
on UNSPEC and subexpressions thereof if all subexpressions of the
|
||||
UNSPEC are CONSTANT_P.
|
||||
|
||||
PR tree-optimization/88676
|
||||
* tree-ssa-phiopt.c (two_value_replacement): New function.
|
||||
(tree_ssa_phiopt_worker): Call it.
|
||||
|
|
|
@ -14445,13 +14445,6 @@ const_ok_for_output_1 (rtx rtl)
|
|||
if (CONST_POLY_INT_P (rtl))
|
||||
return false;
|
||||
|
||||
if (targetm.const_not_ok_for_debug_p (rtl))
|
||||
{
|
||||
expansion_failed (NULL_TREE, rtl,
|
||||
"Expression rejected for debug by the backend.\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
/* FIXME: Refer to PR60655. It is possible for simplification
|
||||
of rtl expressions in var tracking to produce such expressions.
|
||||
We should really identify / validate expressions
|
||||
|
@ -15660,8 +15653,17 @@ mem_loc_descriptor (rtx rtl, machine_mode mode,
|
|||
bool not_ok = false;
|
||||
subrtx_var_iterator::array_type array;
|
||||
FOR_EACH_SUBRTX_VAR (iter, array, rtl, ALL)
|
||||
if ((*iter != rtl && !CONSTANT_P (*iter))
|
||||
|| !const_ok_for_output_1 (*iter))
|
||||
if (*iter != rtl && !CONSTANT_P (*iter))
|
||||
{
|
||||
not_ok = true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (not_ok)
|
||||
break;
|
||||
|
||||
FOR_EACH_SUBRTX_VAR (iter, array, rtl, ALL)
|
||||
if (!const_ok_for_output_1 (*iter))
|
||||
{
|
||||
not_ok = true;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue