This commit is contained in:
2025-03-12 12:37:19 +03:00
committed by Dudarenko
parent 0c9f0664fd
commit d4fb323f86
428 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
#pragma once
#include "dvm.h"
#include "TypedSymbol.h"
#include <set>
class VarUsages
{
std::set<TypedSymbol> reads;
std::set<TypedSymbol> writes;
bool undefined;
public:
VarUsages() : undefined(false) { }
void extend(const VarUsages&);
void insert_undefined(const TypedSymbol&);
void insert_read(const TypedSymbol&);
void insert_write(const TypedSymbol&);
bool is_undefined() const;
std::set<SgSymbol*> get_reads(const std::set<VAR_TYPE>) const;
std::set<SgSymbol*> get_writes(const std::set<VAR_TYPE>) const;
std::set<SgSymbol*> get_all(const std::set<VAR_TYPE>) const;
std::set<SgSymbol*> get_reads() const;
std::set<SgSymbol*> get_writes() const;
std::set<SgSymbol*> get_all() const;
static std::set<SgSymbol*> filter(const std::set<TypedSymbol>&, const std::set<VAR_TYPE>);
void print() const;
};