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: PR middle-end/43671: [4.4/4.5/4.6 Regression] -fsched2-use-superblocks -m32 produces wrong code with vectorization


On Mon, May 3, 2010 at 12:15 AM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Sun, May 02, 2010 at 08:59:23PM -0700, H.J. Lu wrote:
>> H.J.
>> ----
>> gcc/
>>
>> 2010-05-02 ?H.J. Lu ?<hongjiu.lu@intel.com>
>>
>> ? ? ? PR middle-end/43671
>> ? ? ? * (get_addr): Don't return an expression if references_value_p
>> ? ? ? returns true.
>
> I don't think this is the right thing to do to fix this bug.
> Of course get_addr callers could be smarter and look at both addresses
> and don't call get_addr blindly if the same VALUE appears on both sides.
> get_addr in the end returns v->locs->loc anyway, and that can of course also
> include stuff referencing VALUEs. ?Your change merely makes the problem
> latent, nothing else.
>
> In the single problematic true_dependence call it is better if
> get_addr wouldn't be called on both sides, as both sides originally contain
> the same VALUE, but there are many other cases where it is desirable and

How about this patch?


H.J.
---
gcc/

2010-05-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/43671
	* alias.c (true_dependence): Handle the same VALUE in x and mem.

gcc/testsuite/

2010-05-03  H.J. Lu  <hongjiu.lu@intel.com>

	PR middle-end/43671
	* gcc.target/i386/pr43671.c: New.

Attachment: gcc-pr43671-2.patch
Description: Text document


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