[PATCH PR71956] Add missed check on MASK_STORE builtin.

Jakub Jelinek jakub@redhat.com
Thu Aug 11 11:28:00 GMT 2016


On Thu, Aug 11, 2016 at 02:03:37PM +0300, Yuri Rumyantsev wrote:
> Hi All,
> 
> Jakub introduced regression after r235764 and we got RF for
> spec2000/176.gcc on HSW if loop vectorization is on (32-bit only).
> Here is a simple fix which cures the issue.
> 
> Is it OK for trunk?
> ChangeLog:
> 2016-08-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
> 
> PR rtl-optimization/71956
> * ipa-pure-const.c (check_call): Add missed check on MASK_STORE
> builtin which can not be pure function.

This is weird.  Even for MASK_STORE the comment IMHO still holds,
there are no cgraph edges for internal calls, so it won't be processed as a
call during ipa mode.  Is the problem that the ipa-pure-const pass marks a
function containing MASK_STORE still as const or pure, or doesn't mark
something you want to mark, something else?

At least in the non-ipa mode, I'd expect that a MASK_STORE to a (potential)
non-local decl should be treated in this pass similarly to normal stores
and similarly MASK_LOAD.

I'm really surprised the ipa-pure-const pass sees these internal calls
though, I thought they are introduced late (tree-if-conv) while
ipa-pure-const runs during IPA opts far earlier, isn't that the case?

	Jakub



More information about the Gcc-patches mailing list