Jeff Law <l...@redhat.com> writes: > On 07/13/2017 03:02 AM, Richard Sandiford wrote: >> This patch treats the mode associated with an integer constant as a >> scalar_mode. We can't use the more natural-sounding scalar_int_mode >> because we also use (const_int 0) for bounds-checking modes. (It might >> be worth adding a bounds-specific code instead, but that's for another >> day.) > Is that the only reason why we can't use scalar_int_mode here -- the > bounds checking stuff? What if it were to just magically disappear?
:-) I *think* that was the only case, but it's possible that once we hit it, we didn't look much further. [...] >> We didn't try to make these functions take scalar_mode arguments >> because in many cases that would be too invasive at this stage. >> Maybe it would become feasible in future. Also, the long-term >> direction should probably be to add modes to constant integers >> rather than have then as VOIDmode odd-ones-out. That would remove >> the need for rtx_mode_t and thus remove the question whether they >> should use scalar_int_mode, scalar_mode or machine_mode. > THe lack of a mode on CONST_INTs is a long standing wart. It's been > eons since we really thought about how to fix it. I'd have to dig > real deep to remember why we've let the wart stand so long When I last looked at the history, I got the impression it was just lack of time. I have a vague plan for how we could transition to integers with modes, but then I've had the same plan for a while now and no realistic chance of getting time to do it. Thanks, Richard