X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=source%2Fopt%2Ffold.cpp;h=678c4566e5190ae6b0e65362a5a4cc8d0f80a988;hb=802cf053c797741008cc35bc3b2a2a926edd463d;hp=6cc486a030ae5c969025eb1efb13ae1b9f6652ad;hpb=20b8cdb7c6e24e66650e204d28423e11fb0f2de5;p=platform%2Fupstream%2FSPIRV-Tools.git diff --git a/source/opt/fold.cpp b/source/opt/fold.cpp index 6cc486a..678c456 100644 --- a/source/opt/fold.cpp +++ b/source/opt/fold.cpp @@ -194,20 +194,10 @@ bool FoldInstructionInternal(ir::Instruction* inst) { } SpvOp opcode = inst->opcode(); - analysis::ConstantManager* const_manger = context->get_constant_mgr(); + analysis::ConstantManager* const_manager = context->get_constant_mgr(); - std::vector constants; - for (uint32_t i = 0; i < inst->NumInOperands(); i++) { - const ir::Operand* operand = &inst->GetInOperand(i); - if (operand->type != SPV_OPERAND_TYPE_ID) { - constants.push_back(nullptr); - } else { - uint32_t id = operand->words[0]; - const analysis::Constant* constant = - const_manger->FindDeclaredConstant(id); - constants.push_back(constant); - } - } + std::vector constants = + const_manager->GetOperandConstants(inst); static FoldingRules* rules = new FoldingRules(); for (FoldingRule rule : rules->GetRulesForOpcode(opcode)) { @@ -466,7 +456,7 @@ bool FoldBinaryBooleanOpToConstant(ir::Instruction* inst, } switch (opcode) { - // Logical + // Logical case SpvOp::SpvOpLogicalOr: for (uint32_t i = 0; i < 2; i++) { if (constants[i] != nullptr) {