chromium/third_party/skia/src/sksl/analysis/SkSLProgramUsage.cpp

/*
 * Copyright 2021 Google LLC
 *
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include "include/core/SkSpan.h"
#include "include/core/SkTypes.h"
#include "include/private/base/SkDebug.h"
#include "src/base/SkEnumBitMask.h"
#include "src/core/SkTHash.h"
#include "src/sksl/SkSLAnalysis.h"
#include "src/sksl/SkSLModule.h"
#include "src/sksl/analysis/SkSLProgramUsage.h"
#include "src/sksl/analysis/SkSLProgramVisitor.h"
#include "src/sksl/ir/SkSLExpression.h"
#include "src/sksl/ir/SkSLFunctionCall.h"
#include "src/sksl/ir/SkSLFunctionDeclaration.h"
#include "src/sksl/ir/SkSLFunctionDefinition.h"
#include "src/sksl/ir/SkSLInterfaceBlock.h"
#include "src/sksl/ir/SkSLModifierFlags.h"
#include "src/sksl/ir/SkSLProgramElement.h"
#include "src/sksl/ir/SkSLStatement.h"
#include "src/sksl/ir/SkSLStructDefinition.h"
#include "src/sksl/ir/SkSLSymbol.h"
#include "src/sksl/ir/SkSLType.h"
#include "src/sksl/ir/SkSLVarDeclarations.h"
#include "src/sksl/ir/SkSLVariable.h"
#include "src/sksl/ir/SkSLVariableReference.h"

#include <cstring>
#include <memory>
#include <string_view>
#include <vector>

namespace SkSL {

struct Program;

namespace {

class ProgramUsageVisitor : public ProgramVisitor {};

}  // namespace

std::unique_ptr<ProgramUsage> Analysis::GetUsage(const Program& program) {}

std::unique_ptr<ProgramUsage> Analysis::GetUsage(const Module& module) {}

ProgramUsage::VariableCounts ProgramUsage::get(const Variable& v) const {}

bool ProgramUsage::isDead(const Variable& v) const {}

int ProgramUsage::get(const FunctionDeclaration& f) const {}

void ProgramUsage::add(const Expression* expr) {}

void ProgramUsage::add(const Statement* stmt) {}

void ProgramUsage::add(const ProgramElement& element) {}

void ProgramUsage::remove(const Expression* expr) {}

void ProgramUsage::remove(const Statement* stmt) {}

void ProgramUsage::remove(const ProgramElement& element) {}

static bool contains_matching_data(const ProgramUsage& a, const ProgramUsage& b) {}

bool ProgramUsage::operator==(const ProgramUsage& that) const {}

}  // namespace SkSL