Improve const bitmask optimization

This commit is contained in:
drmortalwombat 2025-01-03 14:29:08 +01:00
parent 38bb033328
commit d6362a305f
2 changed files with 9 additions and 2 deletions

View File

@ -32,6 +32,13 @@ namespace opp {
v = k;
}
void operator+=(int k)
{
k += v;
__assume(k >= tmin && k <= tmax);
v = k;
}
operator int() const
{
int k = v;

View File

@ -8775,7 +8775,7 @@ void InterCodeBasicBlock::UpdateLocalIntegerRangeSetsForward(const GrowingVariab
{
vr.mMinState = IntegerValueRange::S_BOUND;
vr.mMinValue = 0;
vr.LimitMax(ins->mSrc[0].mIntConst);
vr.LimitMax(ins->mSrc[0].mIntConst & BuildLowerBitsMask(ins->mSrc[1].mRange.mMaxValue));
}
else
{
@ -8794,7 +8794,7 @@ void InterCodeBasicBlock::UpdateLocalIntegerRangeSetsForward(const GrowingVariab
{
vr.mMinState = IntegerValueRange::S_BOUND;
vr.mMinValue = 0;
vr.LimitMax(ins->mSrc[1].mIntConst);
vr.LimitMax(ins->mSrc[1].mIntConst & BuildLowerBitsMask(ins->mSrc[0].mRange.mMaxValue));
}
else
{