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: fix for strct-pack-1.c regressions


On Wed, Mar 13, 2002 at 02:20:12PM -0500, Richard Kenner wrote:
> Right, but you could strip off *two*.

Yes, but that (as with adjusting mem_attr.expr) going to take a
reasonable-sized hunk o logic to coordinate with what
store/extract_bit_field is actually going to do.

> However, I don't think we should be trying to use the alias set
> of a mis-aligned field, so I'm not sure I understand the original problem.

Digging up Aldy's first message on this...

The problem actually observed is 

(insn 12 11 15 (set (mem/s:HI (plus:SI (reg/f:SI 31 r31)
                (const_int 16 [0x10])) [6 trial.s+0 S2 A128])
        (reg:HI 116)) 296 {*rs6000.md:8555} (insn_list 11 (nil))
    (expr_list:REG_DEAD (reg:HI 116)
        (nil)))

(insn 16 15 18 (set (reg:SI 118)
        (zero_extend:SI (mem/s:HI (plus:SI (reg/f:SI 31 r31)
                    (const_int 16 [0x10])) [4 trial.d+-2 S2 A128])))
	30 {*rs6000.md:2318} (nil)
    (nil))

being considered not to alias, and thus mis-scheduled.

I consider [trial.d-2] to be incorrect.  You also find that the
alias set is set as for short and int, which also prevents these
from being considered to alias.  Thus my suggestion to (in the
short term) smash both of these values to known-safe settings.


r~

BTW, it's "-mstrict-align -mlittle -O2" on powerpc-eabialtivec
that is supposed to show this failure.


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