On 6/8/23 20:57, Andrew MacLeod wrote:
Range_operator had a tree code added last release to facilitate bitmask
operations. This was intended to be a temporary change until we could
figure out something more strategic going forward.
This patch removes the tree_code and replaces it with a virtual routine
to perform the masking. Each of the affected tree codes operators now
call the bitmask routine via a virtual function. At some point we may
want to consolidate the code that CCP is using so that it resides in the
range_operator, but the extensive parameter list used by that CCP
routine makes that prohibitive to do at the moment.
It's on my radar for this release. I will be changing the
nonzero_bitmask field in irange for a value/mask pair, as CCP does, and
if all goes well, consolidating CCP as well as the on-the-side bitmask
tracking IPA does.
Thanks for tidying this up.
Aldy