#include "source/opt/combine_access_chains.h"
#include <utility>
#include "source/opt/constants.h"
#include "source/opt/ir_builder.h"
#include "source/opt/ir_context.h"
namespace spvtools {
namespace opt {
Pass::Status CombineAccessChains::Process() { … }
bool CombineAccessChains::ProcessFunction(Function& function) { … }
uint32_t CombineAccessChains::GetConstantValue(
const analysis::Constant* constant_inst) { … }
uint32_t CombineAccessChains::GetArrayStride(const Instruction* inst) { … }
const analysis::Type* CombineAccessChains::GetIndexedType(Instruction* inst) { … }
bool CombineAccessChains::CombineIndices(Instruction* ptr_input,
Instruction* inst,
std::vector<Operand>* new_operands) { … }
bool CombineAccessChains::CreateNewInputOperands(
Instruction* ptr_input, Instruction* inst,
std::vector<Operand>* new_operands) { … }
bool CombineAccessChains::CombineAccessChain(Instruction* inst) { … }
spv::Op CombineAccessChains::UpdateOpcode(spv::Op base_opcode,
spv::Op input_opcode) { … }
bool CombineAccessChains::IsPtrAccessChain(spv::Op opcode) { … }
bool CombineAccessChains::Has64BitIndices(Instruction* inst) { … }
}
}