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:
Jakub Jelinek 2019-01-07 10:51:46 +01:00 committed by Jakub Jelinek
parent 0119d5a23a
commit 1e92df7eed
2 changed files with 18 additions and 9 deletions

View file

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

View file

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