In type.[ch]pp, to TypeInt and TypeLong, add bitwise constant information.
Specifically, in addition to arithmetic upper and lower bounds _hi and _lo, add bitwise upper and lower bounds, _up and _dn.
Push this information through TypePtr offsets, to track alignment information.
Use this information to help decide if ALU operations can be strength reduced.
The bit equations can be derived with some thought. A working Java prototype is attached (creation date is 4/18/2007, by jrose).
Specifically, in addition to arithmetic upper and lower bounds _hi and _lo, add bitwise upper and lower bounds, _up and _dn.
Push this information through TypePtr offsets, to track alignment information.
Use this information to help decide if ALU operations can be strength reduced.
The bit equations can be derived with some thought. A working Java prototype is attached (creation date is 4/18/2007, by jrose).
- relates to
-
JDK-8043284 Optimize signed integer comparison
- Resolved
-
JDK-8001336 C2: Implement Bitwise Liveness Analysis
- Open
-
JDK-8315066 Add unsigned bounds and known bits to TypeInt/Long
- Open