PHIExpression *createPHIExpression(Instruction *);
const VariableExpression *createVariableExpression(Value *);
const ConstantExpression *createConstantExpression(Constant *);
- const Expression *createVariableOrConstant(Value *V);
const UnknownExpression *createUnknownExpression(Instruction *);
const StoreExpression *createStoreExpression(StoreInst *, MemoryAccess *);
LoadExpression *createLoadExpression(Type *, Value *, LoadInst *,
return E;
}
-const Expression *NewGVN::createVariableOrConstant(Value *V) {
- auto Leader = lookupOperandLeader(V);
- if (auto *C = dyn_cast<Constant>(Leader))
- return createConstantExpression(C);
- return createVariableExpression(Leader);
-}
-
const ConstantExpression *NewGVN::createConstantExpression(Constant *C) {
auto *E = new (ExpressionAllocator) ConstantExpression(C);
E->setOpcode(C->getValueID());