Richard Sandiford <rsand...@linux.vnet.ibm.com> wrote: >Kenneth Zadeck <zad...@naturalbridge.com> writes: >> I am a little confused here. what is the reason for doing the the >> is_sign_extended thing? >> is the point of deferring the canonization that we can avoid the use >of >> the scratch array until the value is actually used. then we >> canonicalize on demand? > >The idea is that we conservatively treat upper bits as undefined when >reading, just like you did originally. But (assuming I understood the >idea correctly) the traits class has an ::is_sign_extended member that >may be able to tell you at compile time that the upper bits are >actually >sign-extended. This would be true for wide_int and rtx, but not tree. >We can then use ::is_sign_extended to add fast paths to the functions >that are better with sign-extended inputs (like eq_p and lts_p) without >adding any extra run-time checks.
Correct. As additional benefit we get rid of the scratch array use in the tree decompose routine. At least that was the main motivation of this idea. Richard. >Thanks, >Richard