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: PR 54168: Unnecessary narrowing in tree-ssa-forwprop pass?


On 14/01/14 14:32, Jakub Jelinek wrote:
> Anyway, the above is really a simple case, and I'd call it a
> backend bug if it isn't able to generate good code out of that.

Exactly which back-end pass are you expecting to simplify

(set (subreg:SI (reg:HI 1) 0) (and:SI (subreg:SI (reg:HI 0) 0)
(const_int 2)))

(set (reg:SI 2) (zero_extend:SI (reg:HI 1)))

(set (reg:SI 3) (ne:SI (reg:SI 2) (const_int 0)))

into

(set (reg:SI 2) (and:SI (subreg:SI (reg:HI 0) 0) (const_int 2)))

(set (reg:SI 3) (ne:SI (reg:SI 2) (const_int 0)))

Combine is about the only pass that does this sort of thing, and that's
far too often confused by extraneous information that it thinks might be
helpful, but isn't, or by the fact that the intermediate result is used
more than once.

R.


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