Commit 007b405b by John David Anglin

re PR middle-end/71732 (FAIL: gcc.dg/torture/pr71532.c at -O2 and above)

	PR middle-end/71732
	* cselib.c (cselib_process_insn): Invalidate argument slots for
	const/pure calls.

From-SVN: r238727
parent 7d575fff
2016-07-25 John David Anglin <danglin@gcc.gnu.org>
PR middle-end/71732
* cselib.c (cselib_process_insn): Invalidate argument slots for
const/pure calls.
2016-07-25 Jiong Wang <jiong.wang@arm.com> 2016-07-25 Jiong Wang <jiong.wang@arm.com>
* config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16, * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
......
...@@ -2659,6 +2659,13 @@ cselib_process_insn (rtx_insn *insn) ...@@ -2659,6 +2659,13 @@ cselib_process_insn (rtx_insn *insn)
if (RTL_LOOPING_CONST_OR_PURE_CALL_P (insn) if (RTL_LOOPING_CONST_OR_PURE_CALL_P (insn)
|| !(RTL_CONST_OR_PURE_CALL_P (insn))) || !(RTL_CONST_OR_PURE_CALL_P (insn)))
cselib_invalidate_mem (callmem); cselib_invalidate_mem (callmem);
else
/* For const/pure calls, invalidate any argument slots because
they are owned by the callee. */
for (x = CALL_INSN_FUNCTION_USAGE (insn); x; x = XEXP (x, 1))
if (GET_CODE (XEXP (x, 0)) == USE
&& MEM_P (XEXP (XEXP (x, 0), 0)))
cselib_invalidate_mem (XEXP (XEXP (x, 0), 0));
} }
cselib_record_sets (insn); cselib_record_sets (insn);
......
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