This is the mail archive of the 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]

[PATCH v2, RTL]: Fix PR 63483, Scheduler performs Invalid move of aliased memory reference

On Wed, Oct 8, 2014 at 1:56 PM, Uros Bizjak <> wrote:

>>> This message revives an old thread [1], where the miscompilation of gfortran
>>> on alpha was found that that resulted in:
> [...]
>> As said in the audit trail of the bugreport I think that the caller
>> of alpha_set_memflags is wrong in applying MEM flags from the _source_
>> operand to MEMs generated for the RMW sequence for the destination.
>> It would be better to fix that instead.
> Please see comment #6 of the referred PR [1] for further analysis and
> ammended testcase. The testcase and analysis will show a "native" read
> passing possibly aliasing store.

Attached v2 patch implements the same approach in all alias.c places
that declare MEM_READONLY_P operands as never aliasing.

2014-10-10  Uros Bizjak  <>

    * alias.c (true_dependence_1): Do not exit early for MEM_READONLY_P
    references when alignment ANDs are involved.
    (write_dependence_p): Ditto.
    (may_alias_p): Ditto.

Patch was boostrapped and regression tested on x86_64-linux-gnu and
alpha-linux-gnu. Unfortunately, there are still failures remaining in
gfortran testsuite due to independent RTL infrastructure problem with
VALUEs leaking into aliasing detecting functions [2], [3].

The patch was discussed and OK'd by Richi in the PR audit trail. If
there are no objections from RTL maintainers, I plan to commit it to
the mainline early next week.



Attachment: alias-2.diff.txt
Description: Text document

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