/third_party/spirv-tools/test/fuzz/ |
H A D | transformation_split_block_test.cpp | 28 // local store elimination applied to get some OpPhi instructions. in TEST() 70 %27 = OpPhi %6 %28 %5 %22 %13 in TEST() 71 %26 = OpPhi %6 %9 %5 %25 %13 in TEST() 121 MakeInstructionDescriptor(27, spv::Op::OpPhi, 0), 100) in TEST() 124 MakeInstructionDescriptor(27, spv::Op::OpPhi, 1), 100) in TEST() 621 // local store elimination applied to get some OpPhi instructions. in TEST() 663 %27 = OpPhi %6 %28 %5 %22 %13 in TEST() 664 %26 = OpPhi %6 %9 %5 %25 %13 in TEST() 692 // We cannot split before OpPhi instructions, since the number of incoming in TEST() 695 MakeInstructionDescriptor(26, spv::Op::OpPhi, in TEST() [all...] |
H A D | transformation_swap_conditional_branch_operands_test.cpp | 63 %25 = OpPhi %6 %20 %16 %24 %21 in TEST() 79 MakeInstructionDescriptor(26, spv::Op::OpPhi, 0), 26) in TEST() 84 MakeInstructionDescriptor(25, spv::Op::OpPhi, 0), 26) in TEST() 159 %25 = OpPhi %6 %20 %16 %24 %21 in TEST()
|
/third_party/spirv-tools/source/opt/ |
H A D | fix_storage_class.cpp | 60 if (inst->opcode() == spv::Op::OpPhi) { in PropagateStorageClass() 74 if (inst->opcode() == spv::Op::OpPhi) { in PropagateStorageClass() 85 case spv::Op::OpPhi: in PropagateStorageClass() 194 case spv::Op::OpPhi: in PropagateType() 281 if (inst->opcode() == spv::Op::OpPhi) { in PropagateType()
|
H A D | register_pressure.cpp | 38 return !(insn->opcode() == spv::Op::OpPhi && in operator ()() 149 if (insn.opcode() == spv::Op::OpPhi) { in ComputePartialLiveness() 226 if (insn.opcode() == spv::Op::OpPhi) { in EvaluateRegisterRequirements() 327 if (insn.opcode() == spv::Op::OpPhi || !CreatesRegisterUsage(&insn) || in ComputeLoopRegisterPressure() 388 !(insn->opcode() == spv::Op::OpPhi && in SimulateFusion() 405 if (insn.opcode() == spv::Op::OpPhi || !CreatesRegisterUsage(&insn) || in SimulateFusion() 436 if (insn.opcode() == spv::Op::OpPhi || !CreatesRegisterUsage(&insn) || in SimulateFusion() 534 if (insn.opcode() == spv::Op::OpPhi) { in SimulateFission()
|
H A D | dead_insert_elim_pass.cpp | 71 insertChain->opcode() != spv::Op::OpPhi) in MarkInsertChain() 139 if (insInst->opcode() != spv::Op::OpPhi) return; in MarkInsertChain() 182 (op != spv::Op::OpPhi || !spvOpcodeIsComposite(typeInst->opcode()))) in EliminateDeadInsertsOnePass() 199 case spv::Op::OpPhi: in EliminateDeadInsertsOnePass()
|
H A D | propagator.cpp | 137 if (instr->opcode() == spv::Op::OpPhi) { in Simulate() 192 if (instr->opcode() != spv::Op::OpPhi) { in Simulate()
|
H A D | loop_fission.cpp | 116 inst.opcode() == spv::Op::OpPhi || inst.IsOpcodeCodeMotionSafe(); in MovableInstruction() 170 if (ignore_phi_users && user->opcode() == spv::Op::OpPhi) return; in TraverseUseDef() 390 if (inst.opcode() == spv::Op::OpPhi) { in SplitLoop()
|
H A D | code_sink.cpp | 62 while (pos->opcode() == spv::Op::OpPhi) { in SinkInstruction() 81 if (use->opcode() != spv::Op::OpPhi) { in FindNewBasicBlockFor()
|
H A D | if_conversion.cpp | 43 while (iter != block.end() && iter->opcode() == spv::Op::OpPhi) { in Process() 165 // the OpPhi. Other transformation should be able to simplify that. in CheckBlock() 189 if (user->opcode() == spv::Op::OpPhi && in CheckPhiUsers()
|
H A D | loop_descriptor.cpp | 39 assert(induction->opcode() == spv::Op::OpPhi); in GetInductionStepOperation() 165 // Extract the initial value from the |induction| OpPhi instruction and store it 444 if (use->opcode() != spv::Op::OpPhi) return false; in IsLCSSA() 850 if (inst.opcode() == spv::Op::OpPhi) { in GetInductionVariables() 879 if (!variable_inst || variable_inst->opcode() != spv::Op::OpPhi) in FindConditionVariable()
|
H A D | loop_utils.cpp | 73 (user->opcode() != spv::Op::OpPhi || bb != GetParent(user)) && in RewriteUse() 76 assert((user->opcode() == spv::Op::OpPhi || bb == GetParent(user)) && in RewriteUse() 295 if (use->opcode() == spv::Op::OpPhi) { in MakeSetClosedSSA() 684 if (insn->opcode() == spv::Op::OpPhi) return; in Analyze()
|
H A D | merge_return_pass.cpp | 283 if (user->opcode() != spv::Op::OpPhi) { in CreatePhiNodesForInst() 286 // For OpPhi, the use should be considered to be in the predecessor. in CreatePhiNodesForInst() 298 // replaced with the result of the OpPhi. in CreatePhiNodesForInst() 309 // First create the OpPhi instruction. in CreatePhiNodesForInst() 314 // Add the OpPhi operands. If the predecessor is a return block use undef, in CreatePhiNodesForInst() 328 // then we have to regenerate the instruction instead of creating an OpPhi in CreatePhiNodesForInst() 351 while (insert_pos->opcode() == spv::Op::OpPhi) { in CreatePhiNodesForInst() 373 // Update all of the users to use the result of the new OpPhi. in CreatePhiNodesForInst() 467 while (iter->opcode() == spv::Op::OpPhi) { in BreakFromConstruct() 498 // 3. Update OpPhi instruction in BreakFromConstruct() [all...] |
/third_party/spirv-tools/source/fuzz/ |
H A D | fuzzer_pass_outline_functions.cpp | 139 // If the entry block starts with OpPhi or OpVariable, try to split it. in MaybeGetEntryBlockSuitableForOutlining() 140 if (entry_block->begin()->opcode() == spv::Op::OpPhi || in MaybeGetEntryBlockSuitableForOutlining() 142 // Find the first non-OpPhi and non-OpVariable instruction. in MaybeGetEntryBlockSuitableForOutlining() 144 while (non_phi_or_var_inst->opcode() == spv::Op::OpPhi || in MaybeGetEntryBlockSuitableForOutlining() 176 // Find the first non-OpPhi instruction, after which to split. in MaybeGetExitBlockSuitableForOutlining() 178 while (split_before->opcode() == spv::Op::OpPhi) { in MaybeGetExitBlockSuitableForOutlining()
|
H A D | transformation_propagate_instruction_up.cpp | 26 assert(phi_inst.opcode() == spv::Op::OpPhi && "|phi_inst| is not an OpPhi"); in GetResultIdFromLabelId() 69 dependency->opcode() != spv::Op::OpPhi) { in HasValidDependencies() 70 // |dependency| is "valid" if it's an OpPhi from the same basic block or in HasValidDependencies() 146 // Compute InOperands for the OpPhi instruction to be inserted later. in Apply() 156 // Adjust |clone|'s operands to account for possible dependencies on OpPhi in Apply() 176 assert(dependency_inst->opcode() == spv::Op::OpPhi && in Apply() 181 assert(new_id && "OpPhi instruction is missing a predecessor"); in Apply() 192 // Insert an OpPhi instruction into the basic block of |inst|. in Apply() 194 MakeUnique<opt::Instruction>(ir_context, spv::Op::OpPhi, ins in Apply() [all...] |
H A D | transformation_merge_function_returns.cpp | 131 // OpPhi and OpBranch. in IsApplicable() 138 inst->opcode() == spv::Op::OpPhi || in IsApplicable() 334 // Map from existing OpPhi to overflow ids. If there is no mapping, get an in Apply() 351 // Adjust the existing OpPhi instructions. in Apply() 380 // If the function is not void, add a new OpPhi instructions to collect the in Apply() 413 ir_context, spv::Op::OpPhi, function->type_id(), maybe_return_val_id, in Apply() 419 // Add an OpPhi instruction deciding whether the function is returning. in Apply() 451 ir_context, spv::Op::OpPhi, bool_type, is_returning_id, in Apply() 530 // If the entry block is referenced in an OpPhi instruction, the header for in Apply() 535 if (use_instruction->opcode() == spv::Op::OpPhi) { in Apply() [all...] |
H A D | fuzzer_pass_apply_id_synonyms.cpp | 112 use_inst->opcode() != spv::Op::OpPhi) { in Apply() 135 if (use_inst->opcode() != spv::Op::OpPhi) { in Apply()
|
H A D | fuzzer_pass_permute_phi_operands.cpp | 43 if (inst.opcode() != spv::Op::OpPhi) { in Apply() 53 // OpPhi always has an even number of operands. in Apply()
|
H A D | transformation_add_loop_to_create_int_constant_synonym.cpp | 268 // Add OpPhi instructions to retrieve the current value of the counter and of in Apply() 271 ir_context, spv::Op::OpPhi, const_0_def->type_id(), message_.ctr_id(), in Apply() 279 ir_context, spv::Op::OpPhi, initial_val_def->type_id(), in Apply() 401 // Update all the OpPhi instructions in the block after the loop: its in Apply() 410 // Add a new OpPhi instruction at the beginning of the block after the loop, in Apply() 415 ir_context, spv::Op::OpPhi, initial_val_def->type_id(), message_.syn_id(), in Apply()
|
H A D | fuzzer_pass_replace_opphi_ids_from_dead_predecessors.cpp | 47 // Find all the uses of the label id of the block inside OpPhi in Apply() 52 // Only consider OpPhi instructions. in Apply() 53 if (instruction->opcode() != spv::Op::OpPhi) { in Apply()
|
H A D | transformation_permute_phi_operands.cpp | 42 if (!inst || inst->opcode() != spv::Op::OpPhi) { in IsApplicable()
|
H A D | transformation_replace_opphi_id_from_dead_predecessor.cpp | 39 // |opphi_id| must be the id of an OpPhi instruction. in IsApplicable() 41 if (!opphi_def || opphi_def->opcode() != spv::Op::OpPhi) { in IsApplicable() 53 // OpPhi instruction. in IsApplicable() 67 // |replacement_id| must have the same type id as the OpPhi instruction. in IsApplicable() 83 // Get the OpPhi instruction. in Apply()
|
H A D | transformation_duplicate_region_with_selection.cpp | 113 // To make the process of resolving OpPhi instructions easier, we require that in IsApplicable() 240 // like to be able to add an OpPhi instruction at the merge point of the in IsApplicable() 248 // The instruction cannot be used as an OpPhi argument. This is a in IsApplicable() 250 // Otherwise we can simply avoid generating an OpPhi for this in IsApplicable() 356 // Before adding duplicate blocks, we need to update the OpPhi instructions in in Apply() 364 if (instr.opcode() == spv::Op::OpPhi) { in Apply() 389 // Update all the OpPhi instructions in the |entry_block|. Change every in Apply() 393 if (instr.opcode() == spv::Op::OpPhi) { in Apply() 496 // Add an OpPhi instruction for every result id that is available at in Apply() 498 // with OpPhi in Apply() [all...] |
/third_party/spirv-tools/source/val/ |
H A D | validate_adjacency.cpp | 35 // or non-OpPhi instructions in non-entry blocks, except OpLine. 67 case spv::Op::OpPhi: in ValidateAdjacency() 70 << "OpPhi must appear within a non-entry block before all " in ValidateAdjacency() 71 << "non-OpPhi instructions " in ValidateAdjacency() 72 << "(except for OpLine, which can be mixed with OpPhi)."; in ValidateAdjacency()
|
H A D | validate_id.cpp | 63 if (use->opcode() == spv::Op::OpPhi) { in CheckIdDefinitionDominateUse() 96 // Check all OpPhi parent blocks are dominated by the variable's defining in CheckIdDefinitionDominateUse() 107 << "In OpPhi instruction " << _.getIdName(phi->id()) << ", ID " in CheckIdDefinitionDominateUse() 146 // for OpPhi since it's the only case where it defines its own forward in IdPass() 178 !spvOpcodeIsBranch(opcode) && opcode != spv::Op::OpPhi && in IdPass()
|
/third_party/skia/third_party/externals/swiftshader/src/Pipeline/ |
H A D | SpirvShaderControlFlow.cpp | 359 if(insn.opcode() == spv::OpPhi) in EmitLoop() 397 if(insn.opcode() == spv::OpPhi) in EmitLoop() 442 if(insn.opcode() == spv::OpPhi) in EmitLoop() 468 // int phi = phi_source; // OpPhi in EmitLoop() 476 if(insn.opcode() == spv::OpPhi) in EmitLoop()
|