Res.markOverdefined();
return Res;
}
-
+
bool isUndefined() const { return Tag == undefined; }
bool isConstant() const { return Tag == constant; }
bool isNotConstant() const { return Tag == notconstant; }
return lookup(V)[BB];
}
-
+
public:
/// This is the query interface to determine the lattice
/// value for the specified Value* at the end of the specified block.
return true;
};
}
-
+
// TODO: ABS, NABS from the SelectPatternResult
}
};
}
}
-
+
LVILatticeVal Result; // Start Undefined.
Result.mergeIn(TrueVal, DL);
Result.mergeIn(FalseVal, DL);
return true;
}
-
// Figure out the range of the LHS. If that fails, we still apply the
// transfer rule on the full set since we may be able to locally infer
// interesting facts.
BBLV.markOverdefined();
return true;
};
-
+
// Figure out the range of the LHS. If that fails, use a conservative range,
// but apply the transfer rule anyways. This lets us pick up facts from
// expressions like "and i32 (call i32 @foo()), 32"
return true;
}
}
-
+
return false;
}
// If we couldn't constrain the value on the edge, LocalResult doesn't
// provide any information.
LocalResult.markOverdefined();
-
+
if (hasSingleValue(LocalResult)) {
// Can't get any more precise here
Result = LocalResult;
// Note that PredBB may be BB itself.
Tristate Result = getPredicateOnEdge(Pred, Incoming, C, PredBB, BB,
CxtI);
-
+
// Keep going as long as we've seen a consistent known result for
// all inputs.
Baseline = (i == 0) ? Result /* First iteration */
(COFF::IMAGE_SCN_MEM_DISCARDABLE | COFF::IMAGE_SCN_LNK_INFO);
return HasContent && !IsDiscardable;
}
-
+
assert(isa<MachOObjectFile>(Obj));
return true;
}
uint64_t Size = Sym.getCommonSize();
CommonSize = alignTo(CommonSize, Align) + Size;
-
+
SymbolsToAllocate.push_back(Sym);
}