Home
last modified time | relevance | path

Searched refs:OpPhi (Results 1 - 25 of 123) sorted by relevance

12345

/third_party/spirv-tools/test/fuzz/
H A Dtransformation_split_block_test.cpp28 // 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 Dtransformation_swap_conditional_branch_operands_test.cpp63 %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 Dfix_storage_class.cpp60 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 Dregister_pressure.cpp38 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 Ddead_insert_elim_pass.cpp71 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 Dpropagator.cpp137 if (instr->opcode() == spv::Op::OpPhi) { in Simulate()
192 if (instr->opcode() != spv::Op::OpPhi) { in Simulate()
H A Dloop_fission.cpp116 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 Dcode_sink.cpp62 while (pos->opcode() == spv::Op::OpPhi) { in SinkInstruction()
81 if (use->opcode() != spv::Op::OpPhi) { in FindNewBasicBlockFor()
H A Dif_conversion.cpp43 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 Dloop_descriptor.cpp39 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 Dloop_utils.cpp73 (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 Dmerge_return_pass.cpp283 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 Dfuzzer_pass_outline_functions.cpp139 // 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 Dtransformation_propagate_instruction_up.cpp26 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 Dtransformation_merge_function_returns.cpp131 // 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 Dfuzzer_pass_apply_id_synonyms.cpp112 use_inst->opcode() != spv::Op::OpPhi) { in Apply()
135 if (use_inst->opcode() != spv::Op::OpPhi) { in Apply()
H A Dfuzzer_pass_permute_phi_operands.cpp43 if (inst.opcode() != spv::Op::OpPhi) { in Apply()
53 // OpPhi always has an even number of operands. in Apply()
H A Dtransformation_add_loop_to_create_int_constant_synonym.cpp268 // 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 Dfuzzer_pass_replace_opphi_ids_from_dead_predecessors.cpp47 // 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 Dtransformation_permute_phi_operands.cpp42 if (!inst || inst->opcode() != spv::Op::OpPhi) { in IsApplicable()
H A Dtransformation_replace_opphi_id_from_dead_predecessor.cpp39 // |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 Dtransformation_duplicate_region_with_selection.cpp113 // 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 Dvalidate_adjacency.cpp35 // 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 Dvalidate_id.cpp63 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 DSpirvShaderControlFlow.cpp359 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()

Completed in 19 milliseconds

12345