https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85232

--- Comment #3 from rguenther at suse dot de <rguenther at suse dot de> ---
On Fri, 6 Apr 2018, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85232
> 
> --- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
> if-conversion is attempted, but fails.
> I can get it to work (as in, use the simd clones) if fun1 is
> __attribute__((const)); and when using -ffast-math.
> const attribute is needed to prove no side-effects.
> 
> Now, not really sure why we require all data refs in the loop to be 
> analyzable;
> perhaps if find_data_references_in_loop fails, we should just remember it and
> if-convert only if the blocks have no data references at all (that is the case
> here)?

we don't need data references to be analyzable for if-conversion, all not
analyzable refs can be simply "skipped" AFAIK.  So I'd just open-code
find_data_references_in_loop like other passes do and ignore the
non-analyzable refs.

Reply via email to