Lines Matching refs:Instruction
67 Instruction* GetComponentVariable() const { return component_variable; }
69 void SetSingleComponentVariable(Instruction* var) {
75 Instruction* component_variable;
79 std::vector<Instruction*> CollectInterfaceVariables(Instruction& entry_point);
83 bool HasExtraArrayness(Instruction& entry_point, Instruction* var);
87 bool GetVariableLocation(Instruction* var, uint32_t* location);
91 bool GetVariableComponent(Instruction* var, uint32_t* component);
94 Instruction* GetTypeOfVariable(Instruction* var);
103 bool ReplaceInterfaceVariableWithScalars(Instruction* interface_var,
104 Instruction* interface_var_type,
114 Instruction* interface_var_type, spv::StorageClass storage_class,
122 Instruction* interface_var_type, spv::StorageClass storage_class,
130 Instruction* interface_var_type, spv::StorageClass storage_class,
146 Instruction* interface_var, uint32_t extra_arrayness,
159 Instruction* interface_var,
160 const std::vector<Instruction*>& interface_var_users,
164 std::unordered_map<Instruction*, Instruction*>* loads_to_composites,
165 std::unordered_map<Instruction*, Instruction*>*
178 Instruction* interface_var,
179 const std::vector<Instruction*>& interface_var_users,
183 std::unordered_map<Instruction*, Instruction*>* loads_to_composites,
184 std::unordered_map<Instruction*, Instruction*>*
196 Instruction* interface_var, Instruction* interface_var_user,
197 Instruction* scalar_var,
200 std::unordered_map<Instruction*, Instruction*>* loads_to_component_values,
201 std::unordered_map<Instruction*, Instruction*>*
208 Instruction* LoadScalarVar(Instruction* scalar_var,
210 Instruction* insert_before);
215 Instruction* LoadAccessChainToVar(Instruction* var,
217 Instruction* insert_before);
227 Instruction* scalar_var,
229 Instruction* insert_before);
237 Instruction* scalar_var, const uint32_t* extra_array_index,
238 Instruction* insert_before);
247 Instruction* ptr,
249 Instruction* insert_before);
255 Instruction* CreateCompositeExtract(uint32_t type_id, uint32_t composite_id,
261 Instruction* CreateLoad(uint32_t type_id, Instruction* ptr,
262 Instruction* insert_before);
266 void CloneAnnotationForVariable(Instruction* annotation_inst,
273 bool ReplaceInterfaceVarInEntryPoint(Instruction* interface_var,
274 Instruction* entry_point,
281 Instruction* CreateAccessChainWithIndex(uint32_t component_type_id,
282 Instruction* var, uint32_t index,
283 Instruction* insert_before);
286 uint32_t GetPointeeTypeIdOfVar(Instruction* var);
295 Instruction* access_chain,
297 Instruction* scalar_var,
298 std::unordered_map<Instruction*, Instruction*>*
305 void UseBaseAccessChainForAccessChain(Instruction* access_chain,
306 Instruction* base_access_chain);
317 const std::unordered_map<Instruction*, Instruction*>&
319 std::unordered_map<Instruction*, Instruction*>* loads_to_composites,
325 Instruction* CreateCompositeConstructForComponentOfLoad(
326 Instruction* load, uint32_t depth_to_component);
333 Instruction* CreateAccessChainToVar(uint32_t var_type_id, Instruction* var,
335 Instruction* insert_before,
347 void KillInstructionAndUsers(Instruction* inst);
350 void KillInstructionsAndUsers(const std::vector<Instruction*>& insts);
358 bool ReportErrorIfHasExtraArraynessForOtherEntry(Instruction* var);
362 bool ReportErrorIfHasNoExtraArraynessForOtherEntry(Instruction* var);
368 bool CheckExtraArraynessConflictBetweenEntries(Instruction* interface_var,
373 Pass::Status ReplaceInterfaceVarsWithScalars(Instruction& entry_point);
387 std::unordered_set<Instruction*> vars_with_extra_arrayness;
391 std::unordered_set<Instruction*> vars_without_extra_arrayness;