• Home
  • Raw
  • Download

Lines Matching full:analysis

54 const analysis::Constant* GenerateIntegerConstant(  in GenerateIntegerConstant()
55 const analysis::Integer* integer_type, uint64_t result, in GenerateIntegerConstant()
56 analysis::ConstantManager* const_mgr) { in GenerateIntegerConstant()
79 const analysis::Constant* GetNan(const analysis::Type* type, in GetNan()
80 analysis::ConstantManager* const_mgr) { in GetNan()
81 const analysis::Float* float_type = type->AsFloat(); in GetNan()
99 const analysis::Constant* GetInf(const analysis::Type* type, in GetInf()
100 analysis::ConstantManager* const_mgr) { in GetInf()
101 const analysis::Float* float_type = type->AsFloat(); in GetInf()
117 bool HasFloatingPoint(const analysis::Type* type) { in HasFloatingPoint()
120 } else if (const analysis::Vector* vec_type = type->AsVector()) { in HasFloatingPoint()
129 const analysis::Constant* NegateFPConst(const analysis::Type* result_type, in NegateFPConst()
130 const analysis::Constant* val, in NegateFPConst()
131 analysis::ConstantManager* const_mgr) { in NegateFPConst()
132 const analysis::Float* float_type = result_type->AsFloat(); in NegateFPConst()
145 const analysis::Constant* NegateIntConst(const analysis::Type* result_type, in NegateIntConst()
146 const analysis::Constant* val, in NegateIntConst()
147 analysis::ConstantManager* const_mgr) { in NegateIntConst()
148 const analysis::Integer* int_type = result_type->AsInteger(); in NegateIntConst()
163 const std::vector<const analysis::Constant*>& constants) in FoldExtractWithConstants()
164 -> const analysis::Constant* { in FoldExtractWithConstants()
165 const analysis::Constant* c = constants[kExtractCompositeIdInIdx]; in FoldExtractWithConstants()
174 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldExtractWithConstants()
175 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldExtractWithConstants()
194 const std::vector<const analysis::Constant*>& constants) in FoldInsertWithConstants()
195 -> const analysis::Constant* { in FoldInsertWithConstants()
196 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldInsertWithConstants()
197 const analysis::Constant* object = constants[0]; in FoldInsertWithConstants()
198 const analysis::Constant* composite = constants[1]; in FoldInsertWithConstants()
205 std::vector<const analysis::Constant*> chain; in FoldInsertWithConstants()
206 std::vector<const analysis::Constant*> components; in FoldInsertWithConstants()
207 const analysis::Type* type = nullptr; in FoldInsertWithConstants()
243 const analysis::Constant* constant = in FoldInsertWithConstants()
248 const analysis::Constant* new_constant = const_mgr->GetConstant(type, ids); in FoldInsertWithConstants()
268 const analysis::Constant* constant = in FoldInsertWithConstants()
284 const std::vector<const analysis::Constant*>& constants) in FoldVectorShuffleWithConstants()
285 -> const analysis::Constant* { in FoldVectorShuffleWithConstants()
287 const analysis::Constant* c1 = constants[0]; in FoldVectorShuffleWithConstants()
288 const analysis::Constant* c2 = constants[1]; in FoldVectorShuffleWithConstants()
293 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldVectorShuffleWithConstants()
294 const analysis::Type* element_type = c1->type()->AsVector()->element_type(); in FoldVectorShuffleWithConstants()
296 std::vector<const analysis::Constant*> c1_components; in FoldVectorShuffleWithConstants()
297 if (const analysis::VectorConstant* vec_const = c1->AsVectorConstant()) { in FoldVectorShuffleWithConstants()
301 const analysis::Constant* element = in FoldVectorShuffleWithConstants()
305 std::vector<const analysis::Constant*> c2_components; in FoldVectorShuffleWithConstants()
306 if (const analysis::VectorConstant* vec_const = c2->AsVectorConstant()) { in FoldVectorShuffleWithConstants()
310 const analysis::Constant* element = in FoldVectorShuffleWithConstants()
333 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldVectorShuffleWithConstants()
340 const std::vector<const analysis::Constant*>& constants) in FoldVectorTimesScalar()
341 -> const analysis::Constant* { in FoldVectorTimesScalar()
343 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldVectorTimesScalar()
344 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldVectorTimesScalar()
352 const analysis::Constant* c1 = constants[0]; in FoldVectorTimesScalar()
353 const analysis::Constant* c2 = constants[1]; in FoldVectorTimesScalar()
370 const analysis::Type* result_type = type_mgr->GetType(inst->type_id()); in FoldVectorTimesScalar()
371 const analysis::Vector* vector_type = result_type->AsVector(); in FoldVectorTimesScalar()
373 const analysis::Type* element_type = vector_type->element_type(); in FoldVectorTimesScalar()
375 const analysis::Float* float_type = element_type->AsFloat(); in FoldVectorTimesScalar()
384 std::vector<const analysis::Constant*> c1_components = in FoldVectorTimesScalar()
392 const analysis::Constant* new_elem = in FoldVectorTimesScalar()
403 const analysis::Constant* new_elem = in FoldVectorTimesScalar()
416 const analysis::Constant* TransposeMatrix(const analysis::Constant* matrix, in TransposeMatrix()
417 analysis::Matrix* result_type, in TransposeMatrix()
419 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in TransposeMatrix()
429 for (const analysis::Constant* column : columns) { in TransposeMatrix()
455 const analysis::Constant* FoldTranspose( in FoldTranspose()
457 const std::vector<const analysis::Constant*>& constants) { in FoldTranspose()
460 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldTranspose()
467 const analysis::Constant* matrix = constants[0]; in FoldTranspose()
478 const std::vector<const analysis::Constant*>& constants) in FoldVectorTimesMatrix()
479 -> const analysis::Constant* { in FoldVectorTimesMatrix()
481 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldVectorTimesMatrix()
482 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldVectorTimesMatrix()
490 const analysis::Constant* c1 = constants[0]; in FoldVectorTimesMatrix()
491 const analysis::Constant* c2 = constants[1]; in FoldVectorTimesMatrix()
498 const analysis::Type* result_type = type_mgr->GetType(inst->type_id()); in FoldVectorTimesMatrix()
499 const analysis::Vector* vector_type = result_type->AsVector(); in FoldVectorTimesMatrix()
501 const analysis::Type* element_type = vector_type->element_type(); in FoldVectorTimesMatrix()
503 const analysis::Float* float_type = element_type->AsFloat(); in FoldVectorTimesMatrix()
517 const analysis::Constant* new_elem = in FoldVectorTimesMatrix()
525 std::vector<const analysis::Constant*> c1_components = in FoldVectorTimesMatrix()
527 std::vector<const analysis::Constant*> c2_components = in FoldVectorTimesMatrix()
534 const analysis::VectorConstant* c2_vec = in FoldVectorTimesMatrix()
544 const analysis::Constant* new_elem = in FoldVectorTimesMatrix()
553 const analysis::VectorConstant* c2_vec = in FoldVectorTimesMatrix()
563 const analysis::Constant* new_elem = in FoldVectorTimesMatrix()
575 const std::vector<const analysis::Constant*>& constants) in FoldMatrixTimesVector()
576 -> const analysis::Constant* { in FoldMatrixTimesVector()
578 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldMatrixTimesVector()
579 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldMatrixTimesVector()
587 const analysis::Constant* c1 = constants[0]; in FoldMatrixTimesVector()
588 const analysis::Constant* c2 = constants[1]; in FoldMatrixTimesVector()
595 const analysis::Type* result_type = type_mgr->GetType(inst->type_id()); in FoldMatrixTimesVector()
596 const analysis::Vector* vector_type = result_type->AsVector(); in FoldMatrixTimesVector()
598 const analysis::Type* element_type = vector_type->element_type(); in FoldMatrixTimesVector()
600 const analysis::Float* float_type = element_type->AsFloat(); in FoldMatrixTimesVector()
613 const analysis::Constant* new_elem = in FoldMatrixTimesVector()
621 std::vector<const analysis::Constant*> c1_components = in FoldMatrixTimesVector()
623 std::vector<const analysis::Constant*> c2_components = in FoldMatrixTimesVector()
641 const analysis::Constant* new_elem = in FoldMatrixTimesVector()
661 const analysis::Constant* new_elem = in FoldMatrixTimesVector()
675 const std::vector<const analysis::Constant*>& constants) in FoldCompositeWithConstants()
676 -> const analysis::Constant* { in FoldCompositeWithConstants()
677 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldCompositeWithConstants()
678 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldCompositeWithConstants()
679 const analysis::Type* new_type = type_mgr->GetType(inst->type_id()); in FoldCompositeWithConstants()
685 const analysis::Constant* element_const = constants[i]; in FoldCompositeWithConstants()
711 using UnaryScalarFoldingRule = std::function<const analysis::Constant*(
712 const analysis::Type* result_type, const analysis::Constant* a,
713 analysis::ConstantManager*)>;
718 using BinaryScalarFoldingRule = std::function<const analysis::Constant*(
719 const analysis::Type* result_type, const analysis::Constant* a,
720 const analysis::Constant* b, analysis::ConstantManager*)>;
730 const std::vector<const analysis::Constant*>& constants) in FoldUnaryOp()
731 -> const analysis::Constant* { in FoldUnaryOp()
732 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldUnaryOp()
733 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldUnaryOp()
734 const analysis::Type* result_type = type_mgr->GetType(inst->type_id()); in FoldUnaryOp()
735 const analysis::Vector* vector_type = result_type->AsVector(); in FoldUnaryOp()
737 const analysis::Constant* arg = in FoldUnaryOp()
745 std::vector<const analysis::Constant*> a_components; in FoldUnaryOp()
746 std::vector<const analysis::Constant*> results_components; in FoldUnaryOp()
761 for (const analysis::Constant* member : results_components) { in FoldUnaryOp()
780 const std::vector<const analysis::Constant*>& constants) in FoldBinaryOp()
781 -> const analysis::Constant* { in FoldBinaryOp()
784 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldBinaryOp()
785 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldBinaryOp()
786 const analysis::Type* result_type = type_mgr->GetType(inst->type_id()); in FoldBinaryOp()
787 const analysis::Vector* vector_type = result_type->AsVector(); in FoldBinaryOp()
789 const analysis::Constant* arg1 = in FoldBinaryOp()
791 const analysis::Constant* arg2 = in FoldBinaryOp()
802 std::vector<const analysis::Constant*> a_components; in FoldBinaryOp()
803 std::vector<const analysis::Constant*> b_components; in FoldBinaryOp()
804 std::vector<const analysis::Constant*> results_components; in FoldBinaryOp()
822 for (const analysis::Constant* member : results_components) { in FoldBinaryOp()
838 const std::vector<const analysis::Constant*>& constants) in FoldFPUnaryOp()
839 -> const analysis::Constant* { in FoldFPUnaryOp()
851 const analysis::Constant* FoldFPBinaryOp( in FoldFPBinaryOp()
853 const std::vector<const analysis::Constant*>& constants, in FoldFPBinaryOp()
855 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldFPBinaryOp()
856 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldFPBinaryOp()
857 const analysis::Type* result_type = type_mgr->GetType(result_type_id); in FoldFPBinaryOp()
858 const analysis::Vector* vector_type = result_type->AsVector(); in FoldFPBinaryOp()
865 std::vector<const analysis::Constant*> a_components; in FoldFPBinaryOp()
866 std::vector<const analysis::Constant*> b_components; in FoldFPBinaryOp()
867 std::vector<const analysis::Constant*> results_components; in FoldFPBinaryOp()
884 for (const analysis::Constant* member : results_components) { in FoldFPBinaryOp()
900 const std::vector<const analysis::Constant*>& constants) in FoldFPBinaryOp()
901 -> const analysis::Constant* { in FoldFPBinaryOp()
917 return [](const analysis::Type* result_type, const analysis::Constant* a, in FoldFToIOp()
918 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { in FoldFToIOp()
920 const analysis::Integer* integer_type = result_type->AsInteger(); in FoldFToIOp()
921 const analysis::Float* float_type = a->type()->AsFloat(); in FoldFToIOp()
948 return [](const analysis::Type* result_type, const analysis::Constant* a, in FoldIToFOp()
949 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { in FoldIToFOp()
951 const analysis::Integer* integer_type = a->type()->AsInteger(); in FoldIToFOp()
952 const analysis::Float* float_type = result_type->AsFloat(); in FoldIToFOp()
978 return [](const analysis::Type* result_type, const analysis::Constant* a, in FoldQuantizeToF16Scalar()
979 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { in FoldQuantizeToF16Scalar()
981 const analysis::Float* float_type = a->type()->AsFloat(); in FoldQuantizeToF16Scalar()
1001 [](const analysis::Type* result_type_in_macro, const analysis::Constant* a, \
1002 const analysis::Constant* b, \
1003 analysis::ConstantManager* const_mgr_in_macro) \
1004 -> const analysis::Constant* { \
1008 const analysis::Float* float_type_in_macro = \
1044 const analysis::Constant* FoldFPScalarDivideByZero( in FoldFPScalarDivideByZero()
1045 const analysis::Type* result_type, const analysis::Constant* numerator, in FoldFPScalarDivideByZero()
1046 analysis::ConstantManager* const_mgr) { in FoldFPScalarDivideByZero()
1055 const analysis::Constant* result = GetInf(result_type, const_mgr); in FoldFPScalarDivideByZero()
1068 const analysis::Constant* FoldScalarFPDivide( in FoldScalarFPDivide()
1069 const analysis::Type* result_type, const analysis::Constant* numerator, in FoldScalarFPDivide()
1070 const analysis::Constant* denominator, in FoldScalarFPDivide()
1071 analysis::ConstantManager* const_mgr) { in FoldScalarFPDivide()
1085 const analysis::FloatConstant* denominator_float = in FoldScalarFPDivide()
1088 const analysis::Constant* result = in FoldScalarFPDivide()
1115 [](const analysis::Type* result_type, const analysis::Constant* a, \
1116 const analysis::Constant* b, \
1117 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { \
1121 const analysis::Float* float_type = a->type()->AsFloat(); \
1184 const std::vector<const analysis::Constant*>& constants) in FoldOpDotWithConstants()
1185 -> const analysis::Constant* { in FoldOpDotWithConstants()
1186 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldOpDotWithConstants()
1187 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldOpDotWithConstants()
1188 const analysis::Type* new_type = type_mgr->GetType(inst->type_id()); in FoldOpDotWithConstants()
1190 const analysis::Float* float_type = new_type->AsFloat(); in FoldOpDotWithConstants()
1227 std::vector<const analysis::Constant*> a_components; in FoldOpDotWithConstants()
1228 std::vector<const analysis::Constant*> b_components; in FoldOpDotWithConstants()
1235 const analysis::Constant* result_const = in FoldOpDotWithConstants()
1243 const analysis::Constant* component = FOLD_FPARITH_OP(*)( in FoldOpDotWithConstants()
1260 const std::vector<const analysis::Constant*>& constants) in FoldFClampFeedingCompare()
1261 -> const analysis::Constant* { in FoldFClampFeedingCompare()
1262 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldFClampFeedingCompare()
1263 analysis::DefUseManager* def_use_mgr = context->get_def_use_mgr(); in FoldFClampFeedingCompare()
1273 analysis::TypeManager* type_mgr = context->get_type_mgr(); in FoldFClampFeedingCompare()
1274 const analysis::Type* operand_type = in FoldFClampFeedingCompare()
1299 const analysis::Constant* max_const = in FoldFClampFeedingCompare()
1303 const analysis::Constant* min_const = in FoldFClampFeedingCompare()
1404 const analysis::Type* bool_type = in FoldFClampFeedingCompare()
1406 const analysis::Constant* result_const = in FoldFClampFeedingCompare()
1415 const std::vector<const analysis::Constant*>& constants) in FoldFMix()
1416 -> const analysis::Constant* { in FoldFMix()
1417 analysis::ConstantManager* const_mgr = context->get_constant_mgr(); in FoldFMix()
1437 const analysis::Constant* one; in FoldFMix()
1439 const analysis::Type* result_type = constants[1]->type(); in FoldFMix()
1440 const analysis::Type* base_type = result_type; in FoldFMix()
1462 const analysis::Constant* temp1 = FoldFPBinaryOp( in FoldFMix()
1468 const analysis::Constant* temp2 = FoldFPBinaryOp( in FoldFMix()
1473 const analysis::Constant* temp3 = in FoldFMix()
1484 const analysis::Constant* FoldMin(const analysis::Type* result_type, in FoldMin()
1485 const analysis::Constant* a, in FoldMin()
1486 const analysis::Constant* b, in FoldMin()
1487 analysis::ConstantManager*) { in FoldMin()
1488 if (const analysis::Integer* int_type = result_type->AsInteger()) { in FoldMin()
1510 } else if (const analysis::Float* float_type = result_type->AsFloat()) { in FoldMin()
1524 const analysis::Constant* FoldMax(const analysis::Type* result_type, in FoldMax()
1525 const analysis::Constant* a, in FoldMax()
1526 const analysis::Constant* b, in FoldMax()
1527 analysis::ConstantManager*) { in FoldMax()
1528 if (const analysis::Integer* int_type = result_type->AsInteger()) { in FoldMax()
1550 } else if (const analysis::Float* float_type = result_type->AsFloat()) { in FoldMax()
1565 const analysis::Constant* FoldClamp1( in FoldClamp1()
1567 const std::vector<const analysis::Constant*>& constants) { in FoldClamp1()
1581 const analysis::Constant* temp = FoldFPBinaryOp( in FoldClamp1()
1591 const analysis::Constant* FoldClamp2( in FoldClamp2()
1593 const std::vector<const analysis::Constant*>& constants) { in FoldClamp2()
1600 const analysis::Constant* x = constants[1]; in FoldClamp2()
1601 const analysis::Constant* min_val = constants[2]; in FoldClamp2()
1607 const analysis::Constant* temp = in FoldClamp2()
1619 const analysis::Constant* FoldClamp3( in FoldClamp3()
1621 const std::vector<const analysis::Constant*>& constants) { in FoldClamp3()
1628 const analysis::Constant* x = constants[1]; in FoldClamp3()
1629 const analysis::Constant* max_val = constants[3]; in FoldClamp3()
1635 const analysis::Constant* temp = in FoldClamp3()
1648 [fp](const analysis::Type* result_type, const analysis::Constant* a, in FoldFTranscendentalUnary()
1649 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { in FoldFTranscendentalUnary()
1651 const analysis::Float* float_type = a->type()->AsFloat(); in FoldFTranscendentalUnary()
1674 [fp](const analysis::Type* result_type, const analysis::Constant* a, in FoldFTranscendentalBinary()
1675 const analysis::Constant* b, in FoldFTranscendentalBinary()
1676 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { in FoldFTranscendentalBinary()
1678 const analysis::Float* float_type = a->type()->AsFloat(); in FoldFTranscendentalBinary()
1712 [op](const analysis::Type* result_type, const analysis::Constant* a, in FoldBinaryIntegerOperation()
1713 const analysis::Constant* b, in FoldBinaryIntegerOperation()
1714 analysis::ConstantManager* const_mgr) -> const analysis::Constant* { in FoldBinaryIntegerOperation()
1716 const analysis::Integer* integer_type = result_type->AsInteger(); in FoldBinaryIntegerOperation()
1718 assert(a->type()->kind() == analysis::Type::kInteger); in FoldBinaryIntegerOperation()
1719 assert(b->type()->kind() == analysis::Type::kInteger); in FoldBinaryIntegerOperation()
1732 const analysis::Constant* result_constant = in FoldBinaryIntegerOperation()
1739 const analysis::Constant* FoldScalarSConvert( in FoldScalarSConvert()
1740 const analysis::Type* result_type, const analysis::Constant* a, in FoldScalarSConvert()
1741 analysis::ConstantManager* const_mgr) { in FoldScalarSConvert()
1745 const analysis::Integer* integer_type = result_type->AsInteger(); in FoldScalarSConvert()
1752 const analysis::Constant* FoldScalarUConvert( in FoldScalarUConvert()
1753 const analysis::Type* result_type, const analysis::Constant* a, in FoldScalarUConvert()
1754 analysis::ConstantManager* const_mgr) { in FoldScalarUConvert()
1758 const analysis::Integer* integer_type = result_type->AsInteger(); in FoldScalarUConvert()