This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: SUBREGs and modes
> This implies that there are cases where you have a subreg of a reg with
> multiple words, where not all bits of a word are stored to.
Note that this is not quite an case I am talking about. My case
(subreg:HI (reg:DI) 1)
is not paradoxical (at least in the definition of word paradoxical I understand
to)
>
> Note that nested subregs are not allowed, so we really *have* to express
> the access of a single smaller-than-word part of a multi word register
> with a single SUBREG.
I know, thats why I am asking - otherwise I would send patch killing them.
>
> Do you have a suggestion how to make the documentation more clear on that
> count?
Don't know - perhaps it would be better to wait for the SUBREG_BYTE patches.
The prbolem I am having is that we prohibit SUBREGs of const_int s lurking
around the RTL stream and currently gcse is creating them, since it fails
to simplify the SUBREGs of constants substitued to registers with
NON-SImode and WORDNUM nonzero. This also disables any const propagation on these
beast too - in the CSE, gcse and combine :(
So I am asking basically whether:
1) it is better to keep this issue and wait for SUBREG_BYTE
2) update documentation and make cse/gcse/combine to handle them
3) avoid the (this is impossible)
I will probably pick 2) since otherwise my checker will cry (I am having function
to check corectness of rtx expression and trying to prevent gcc from creating
incorrect ones)
If you have some ideas for the docs, let me know.
Honza