#include "upgrade_memory_model.h"
#include <utility>
#include "source/opt/ir_builder.h"
#include "source/opt/ir_context.h"
#include "source/spirv_constant.h"
#include "source/util/make_unique.h"
#include "source/util/string_utils.h"
namespace spvtools {
namespace opt {
Pass::Status UpgradeMemoryModel::Process() { … }
void UpgradeMemoryModel::UpgradeMemoryModelInstruction() { … }
void UpgradeMemoryModel::UpgradeInstructions() { … }
void UpgradeMemoryModel::UpgradeMemoryAndImages() { … }
void UpgradeMemoryModel::UpgradeAtomics() { … }
void UpgradeMemoryModel::UpgradeSemantics(Instruction* inst,
uint32_t in_operand,
bool is_volatile) { … }
std::tuple<bool, bool, spv::Scope> UpgradeMemoryModel::GetInstructionAttributes(
uint32_t id) { … }
std::pair<bool, bool> UpgradeMemoryModel::TraceInstruction(
Instruction* inst, std::vector<uint32_t> indices,
std::unordered_set<uint32_t>* visited) { … }
std::pair<bool, bool> UpgradeMemoryModel::CheckType(
uint32_t type_id, const std::vector<uint32_t>& indices) { … }
std::pair<bool, bool> UpgradeMemoryModel::CheckAllTypes(
const Instruction* inst) { … }
uint64_t UpgradeMemoryModel::GetIndexValue(Instruction* index_inst) { … }
bool UpgradeMemoryModel::HasDecoration(const Instruction* inst, uint32_t value,
spv::Decoration decoration) { … }
void UpgradeMemoryModel::UpgradeFlags(Instruction* inst, uint32_t in_operand,
bool is_coherent, bool is_volatile,
OperationType operation_type,
InstructionType inst_type) { … }
uint32_t UpgradeMemoryModel::GetScopeConstant(spv::Scope scope) { … }
void UpgradeMemoryModel::CleanupDecorations() { … }
void UpgradeMemoryModel::UpgradeBarriers() { … }
void UpgradeMemoryModel::UpgradeMemoryScope() { … }
bool UpgradeMemoryModel::IsDeviceScope(uint32_t scope_id) { … }
void UpgradeMemoryModel::UpgradeExtInst(Instruction* ext_inst) { … }
uint32_t UpgradeMemoryModel::MemoryAccessNumWords(uint32_t mask) { … }
}
}