This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR 51389


2012/1/27 Andrey Belevantsev <abel@ispras.ru>:
> On 25.01.2012 18:21, Richard Guenther wrote:
>>
>> 2012/1/25 Andrey Belevantsev<abel@ispras.ru>:
>
> ...
>
>>> Sure, I've just had the impression that the datarefs vector is no use
>>> without the dependencies themselves. ?The possibility of making
>>> find_data_references_in_loop static also kind of hints in this direction.
>>> Anyways, I don't have any problem with fixing compute_all_dependences
>>> instead.
>>
>>
>> I'd prefer that.
>
>
> The below tests fine and passes the test case. ?compute_all_dependences now
> returns bool and has the hunk from compute_data_dependences_for_loop for
> creating a single dont-know datadep. ?The only caller that needs to be fixed
> is compute_data_dependences_for_bb, others look fine.
>
> Tree prefetching has its own knob for the same goal,
> PREFETCH_MAX_MEM_REFS_PER_LOOP, which is 200. ?Do we want to remove it, to
> change it to the new parameter (might be too big), or to leave it as is?

Just keep it for now as is.

Btw, did you check all callers to compute_all_dependences check its
return value?  At least the array-prefetch and phiopt ones don't AFAICS.

Ok for trunk.

Thanks,
Richard.

> (Interesting enough, with data deps fixed the most time on the test case is
> taken by RTL PRE, 27%.)
>
> Andrey
>
>
> 2012-01-27 ?Andrey Belevantsev ?<abel@ispras.ru>
>
>
> ? ? ? ?PR middle-end/51389
> ? ? ? ?* Makefile.in (tree-data-ref.o): Depend on $(PARAMS_H).
> ? ? ? ?* tree-data-ref.h (find_data_references_in_loop): Remove declaration.
> ? ? ? ?* tree-data-ref.c (find_data_references_in_loop): Make static.
> ? ? ? ?(compute_all_dependences): Change return type to bool. ?Bail out
> ? ? ? ?for too many datarefs in a loop. ?Move the hunk resetting the data
> ? ? ? ?dependences vector from ...
> ? ? ? ?(compute_data_dependences_for_loop): ... here. ?Account for
> ? ? ? ?compute_all_dependences returning false.
> ? ? ? ?(compute_data_dependences_for_bb): Likewise.
>
> ? ? ? ?* params.def (PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS): New param.
> ? ? ? ?* doc/invoke.texi (loop-max-datarefs-for-datadeps): Document it.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]