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: Merge alignments from coalesced SSA pointers


On Tue, Jul 26, 2011 at 6:56 PM, Ulrich Weigand <uweigand@de.ibm.com> wrote:
> Michael Matz wrote:
>> On Tue, 26 Jul 2011, Michael Matz wrote:
>> > On Tue, 26 Jul 2011, Ulrich Weigand wrote:
>> >
>> > > > Well, REG_ATTRS->decl is again a decl, not an SSA name. ?I suppose
>> > > > we'd need to pick a conservative REGNO_POINTER_ALIGN during
>> > > > expansion of the SSA name partition - iterate over all of them in the
>> > > > partition and pick the lowest alignment. ?Or even adjust the partitioning
>> > > > to avoid losing alignment information that way.
>> > >
>> > > That would certainly be helpful.
>> >
>> > I'm working on a patch for that, stay tuned.
>>
>> Like so. ?Currently in regstrapping on x86_64-linux. ?Could you try if it
>> helps spu?
>
> Well, it does help SPU in the sense that the wrong code generation goes away.
>
> However, it does so by setting REGNO_POINTER_ALIGN to the minimum of 8 just
> about every time -- not sure what the impact on generated code quality is.
>
> Maybe get_pointer_alignment should default to the type's alignment if
> nothing more specific is known, at least on STRICT_ALIGNMENT targets?
> Just like MEM_ALIGN defaults to the mode's alignment ...

Which is bogus ... instead we should improve alignment tracking to
take into account more sources of alignment information (it is very
conservative right now - for a reason, of course, as we get most of
the packed/aligned attribute stuff wrong from the frontend already
as soon as pointers are involved).

Richard.

> Thanks,
> Ulrich
>
> --
> ?Dr. Ulrich Weigand
> ?GNU Toolchain for Linux on System z and Cell BE
> ?Ulrich.Weigand@de.ibm.com
>


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