• Home
  • Raw
  • Download

Lines Matching refs:Expression

27 struct Constructor : public Expression {
29 std::vector<std::unique_ptr<Expression>> arguments) in Constructor()
33 std::unique_ptr<Expression> constantPropagate(const IRGenerator& irGenerator, in constantPropagate()
35 if (fArguments.size() == 1 && fArguments[0]->fKind == Expression::kIntLiteral_Kind) { in constantPropagate()
39 return std::unique_ptr<Expression>(new FloatLiteral(irGenerator.fContext, in constantPropagate()
45 return std::unique_ptr<Expression>(new IntLiteral(irGenerator.fContext, in constantPropagate()
84 bool compareConstant(const Context& context, const Expression& other) const override { in compareConstant()
85 ASSERT(other.fKind == Expression::kConstructor_Kind && other.fType == fType); in compareConstant()
101 const Expression* zero; in compareConstant()
110 const Expression* component1 = getMatComponent(col, row); in compareConstant()
111 const Expression* component2 = c.getMatComponent(col, row); in compareConstant()
122 const Expression& getVecComponent(int index) const { in getVecComponent()
137 ASSERT(arg->fKind == Expression::kConstructor_Kind); in getVecComponent()
148 const Expression& c = this->getVecComponent(index); in getFVecComponent()
149 ASSERT(c.fKind == Expression::kFloatLiteral_Kind); in getFVecComponent()
154 const Expression& c = this->getVecComponent(index); in getIVecComponent()
155 ASSERT(c.fKind == Expression::kIntLiteral_Kind); in getIVecComponent()
160 const Expression* getMatComponent(int col, int row) const { in getMatComponent()
174 ASSERT(fArguments[0]->fKind == Expression::kConstructor_Kind); in getMatComponent()
195 ASSERT(arg->fKind == Expression::kConstructor_Kind); in getMatComponent()
204 std::vector<std::unique_ptr<Expression>> fArguments;
206 typedef Expression INHERITED;