VRP: normalize VR_VARYING in PLUS/MINUS_EXPR handling

Aldy Hernandez aldyh@redhat.com
Tue Sep 11 10:34:00 GMT 2018


For addition and subtraction, we're currently punting on things like 
[0,0] - VR_VARYING.  However, if we normalize VR_VARYING to the entire 
domain, we can see that the above is actually [-MIN+1, +MAX].

We would've normally caught this sort of things with my rewrite of the 
binary operators, but PLUS/MINUS are special in that they're pretty much 
the only operator that keeps symbolics through it's calculations.  This 
is why we can't just blindly treat symbolics as [-MIN, +MAX] as I've 
done elsewhere.  PLUS/MINUS are handled specially (ugly) :-/.

OK for trunk?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: curr.patch
Type: text/x-patch
Size: 975 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20180911/c9fecc85/attachment.bin>


More information about the Gcc-patches mailing list