[PATCH, vec-tails 03/10] Support epilogues vectorization with no masking
Jeff Law
law@redhat.com
Fri Jun 17 15:37:00 GMT 2016
On 06/17/2016 08:48 AM, Bin.Cheng wrote:
>>>
>>>> + /* FORNOW: Currently alias checks are not inherited for epilogues.
>>>> + Don't try to vectorize epilogue because it will require
>>>> + additional alias checks. */
>>>
>>> Are the alias checks here redundant with the ones done for the original
>>> loop? If so won't DOM eliminate them?
>>
>> I revisited this part recently and thought it should actually be safe to
>> assume we have no aliasing in epilogue because we are dominated by alias
>> checks of the original loop. So I prepared a patch to remove this restriction
>> and avoid alias checks generation for epilogues (so we compute aliases checks
>> required but don't emit them). I didn't send this patch yet.
>> Do you think it is a valid assumption?
> I recently visited that part and agree it's valid, unless epilogue
> loop is vectorized in larger vector-units, but that would be unlikely
> to happen, right? BTW, does this patch start all over analyzing
> epilogue loop? As you said the alias checks will be computed.
I think we're OK either way. If you emit the checks, DOM ought to
eliminate them as they'd be dominated by the earlier check.
But I'm a fan of not generating dumb code for later passes to clean up,
so I think we should just avoid generating the additional checks if we
can reasonably do so in the vectorizer.
I can't envision a scenario where we'd want a larger vector size in the
epilogue than the main loop.
Jeff
More information about the Gcc-patches
mailing list