Lines Matching refs:opt

39 using ModuleSupplier = std::function<std::unique_ptr<opt::IRContext>()>;
42 bool IsFreshId(opt::IRContext* context, uint32_t id);
46 void UpdateModuleIdBound(opt::IRContext* context, uint32_t id);
50 opt::BasicBlock* MaybeFindBlock(opt::IRContext* context,
59 opt::IRContext* context, opt::BasicBlock* bb_from, opt::BasicBlock* bb_to,
71 opt::IRContext* context, opt::BasicBlock* bb_from, opt::BasicBlock* bb_to,
78 bool BlockIsBackEdge(opt::IRContext* context, uint32_t block_id,
83 bool BlockIsInLoopContinueConstruct(opt::IRContext* context, uint32_t block_id,
88 opt::BasicBlock::iterator GetIteratorForInstruction(
89 opt::BasicBlock* block, const opt::Instruction* inst);
93 bool BlockIsReachableInItsFunction(opt::IRContext* context,
94 opt::BasicBlock* bb);
99 SpvOp opcode, const opt::BasicBlock::iterator& instruction_in_block);
104 bool CanMakeSynonymOf(opt::IRContext* ir_context,
106 opt::Instruction* inst);
110 bool IsCompositeType(const opt::analysis::Type* type);
127 uint32_t WalkOneCompositeTypeIndex(opt::IRContext* context,
136 opt::IRContext* context, uint32_t base_object_type_id,
142 const opt::Instruction& struct_type_instruction);
147 uint32_t GetArraySize(const opt::Instruction& array_type_instruction,
148 opt::IRContext* context);
154 uint32_t GetBoundForCompositeIndex(const opt::Instruction& composite_type_inst,
155 opt::IRContext* ir_context);
160 bool IsValid(const opt::IRContext* context,
167 bool IsValidAndWellFormed(const opt::IRContext* context,
173 std::unique_ptr<opt::IRContext> CloneIRContext(opt::IRContext* context);
177 bool IsNonFunctionTypeId(opt::IRContext* ir_context, uint32_t id);
180 bool IsMergeOrContinue(opt::IRContext* ir_context, uint32_t block_id);
184 uint32_t GetLoopFromMergeBlock(opt::IRContext* ir_context,
190 uint32_t FindFunctionType(opt::IRContext* ir_context,
195 opt::Instruction* GetFunctionType(opt::IRContext* context,
196 const opt::Function* function);
200 opt::Function* FindFunction(opt::IRContext* ir_context, uint32_t function_id);
204 bool FunctionContainsOpKillOrUnreachable(const opt::Function& function);
207 bool FunctionIsEntryPoint(opt::IRContext* context, uint32_t function_id);
212 bool IdIsAvailableAtUse(opt::IRContext* context,
213 opt::Instruction* use_instruction,
219 bool IdIsAvailableBeforeInstruction(opt::IRContext* context,
220 opt::Instruction* instruction, uint32_t id);
224 bool InstructionIsFunctionParameter(opt::Instruction* instruction,
225 opt::Function* function);
229 uint32_t GetTypeId(opt::IRContext* context, uint32_t result_id);
233 uint32_t GetPointeeTypeIdFromPointerType(opt::Instruction* pointer_type_inst);
237 uint32_t GetPointeeTypeIdFromPointerType(opt::IRContext* context,
243 opt::Instruction* pointer_type_inst);
247 SpvStorageClass GetStorageClassFromPointerType(opt::IRContext* context,
252 uint32_t MaybeGetPointerType(opt::IRContext* context, uint32_t pointee_type_id,
257 uint32_t InOperandIndexFromOperandIndex(const opt::Instruction& inst,
262 bool IsNullConstantSupported(const opt::analysis::Type& type);
268 const opt::IRContext* context);
273 void AddVariableIdToEntryPointInterfaces(opt::IRContext* context, uint32_t id);
287 void AddGlobalVariable(opt::IRContext* context, uint32_t result_id,
299 void AddLocalVariable(opt::IRContext* context, uint32_t result_id,
314 std::vector<opt::Instruction*> GetParameters(opt::IRContext* ir_context,
324 void RemoveParameter(opt::IRContext* ir_context, uint32_t parameter_id);
328 std::vector<opt::Instruction*> GetCallers(opt::IRContext* ir_context,
333 opt::Function* GetFunctionFromParameterId(opt::IRContext* ir_context,
348 uint32_t UpdateFunctionType(opt::IRContext* ir_context, uint32_t function_id,
358 void AddFunctionType(opt::IRContext* ir_context, uint32_t result_id,
367 uint32_t FindOrCreateFunctionType(opt::IRContext* ir_context,
373 uint32_t MaybeGetIntegerType(opt::IRContext* ir_context, uint32_t width,
378 uint32_t MaybeGetFloatType(opt::IRContext* ir_context, uint32_t width);
382 uint32_t MaybeGetBoolType(opt::IRContext* ir_context);
388 uint32_t MaybeGetVectorType(opt::IRContext* ir_context,
395 uint32_t MaybeGetStructType(opt::IRContext* ir_context,
400 uint32_t MaybeGetVoidType(opt::IRContext* ir_context);
413 opt::IRContext* ir_context,
421 bool CanCreateConstant(opt::IRContext* ir_context, uint32_t type_id);
428 opt::IRContext* ir_context,
439 opt::IRContext* ir_context,
449 opt::IRContext* ir_context,
458 uint32_t MaybeGetIntegerConstantFromValueAndType(opt::IRContext* ir_context,
467 opt::IRContext* ir_context,
475 opt::IRContext* context,
481 void AddIntegerType(opt::IRContext* ir_context, uint32_t result_id,
486 void AddFloatType(opt::IRContext* ir_context, uint32_t result_id,
493 void AddVectorType(opt::IRContext* ir_context, uint32_t result_id,
500 void AddStructType(opt::IRContext* ir_context, uint32_t result_id,
525 bool TypesAreEqualUpToSign(opt::IRContext* ir_context, uint32_t type1_id,
540 opt::Instruction* GetLastInsertBeforeInstruction(opt::IRContext* ir_context,
556 bool IdUseCanBeReplaced(opt::IRContext* ir_context,
558 opt::Instruction* use_instruction,
565 bool MembersHaveBuiltInDecoration(opt::IRContext* ir_context,
572 bool HasBlockOrBufferBlockDecoration(opt::IRContext* ir_context, uint32_t id);
577 opt::BasicBlock* block_to_split, opt::Instruction* split_before);
583 bool InstructionHasNoSideEffects(const opt::Instruction& instruction);
588 std::set<uint32_t> GetReachableReturnBlocks(opt::IRContext* ir_context,