Lines Matching defs:Expression
75 /// as an efficient mechanism to determine the expression-wise equivalence of
78 struct Expression {
83 Expression(uint32_t o = ~2U) : opcode(o) { }
85 bool operator==(const Expression &other) const {
97 friend hash_code hash_value(const Expression &Value) {
106 DenseMap<Expression, uint32_t> expressionNumbering;
113 Expression create_expression(Instruction* I);
114 Expression create_cmp_expression(unsigned Opcode,
117 Expression create_extractvalue_expression(ExtractValueInst* EI);
138 template <> struct DenseMapInfo<Expression> {
139 static inline Expression getEmptyKey() {
143 static inline Expression getTombstoneKey() {
147 static unsigned getHashValue(const Expression e) {
151 static bool isEqual(const Expression &LHS, const Expression &RHS) {
162 Expression ValueTable::create_expression(Instruction *I) {
163 Expression e;
196 Expression ValueTable::create_cmp_expression(unsigned Opcode,
201 Expression e;
215 Expression ValueTable::create_extractvalue_expression(ExtractValueInst *EI) {
217 Expression e;
224 // is we'll synthesize a semantically equivalent expression instead on
225 // an extract value expression.
244 // Intrinsic recognized. Grab its args to finish building the expression.
254 // expression.
278 Expression exp = create_expression(C);
284 Expression exp = create_expression(C);
398 Expression exp;
471 Expression exp = create_cmp_expression(Opcode, Predicate, LHS, RHS);
2472 // Instantiate the expression in the predecessor that lacked it.