#include <ValueIndex.h>
Definition at line 36 of file ValueIndex.h.
◆ generator_location_map
A map from generative ast::Argument
s to storage locations.
Note, since in this case ast::Argument are indexed by their values (not their address) no standard map can be utilized. (By-value indexing induces an ad-hoc form of CSE.)
Definition at line 59 of file ValueIndex.h.
◆ record_definition_map
The type mapping record init expressions to their definition points, hence the point where they get grounded/bound.
Definition at line 51 of file ValueIndex.h.
◆ variable_reference_map
The type mapping variables (referenced by their names) to the locations where they are used.
Definition at line 45 of file ValueIndex.h.
◆ ValueIndex()
souffle::ast2ram::ValueIndex::ValueIndex |
( |
| ) |
|
|
default |
◆ ~ValueIndex()
souffle::ast2ram::ValueIndex::~ValueIndex |
( |
| ) |
|
|
default |
◆ addVarReference() [1/2]
◆ addVarReference() [2/2]
void souffle::ast2ram::ValueIndex::addVarReference |
( |
const ast::Variable & |
var, |
|
|
int |
ident, |
|
|
int |
pos, |
|
|
std::string |
rel = "" |
|
) |
| |
◆ getDefinitionPoint() [1/2]
Definition at line 90 of file ValueIndex.cpp.
95 [&level](
const auto& location) {
return location.second.identifier == level; });
◆ getDefinitionPoint() [2/2]
Definition at line 53 of file ValueIndex.cpp.
57 if (
dynamic_cast<const ast::Aggregator*
>(&arg) !=
nullptr) {
◆ getGeneratorLoc()
Definition at line 63 of file ValueIndex.cpp.
67 if (cur.first == &arg) {
72 fatal(
"arg `%s` has no generator location", arg);
◆ getVariableReferences()
◆ isDefined()
bool souffle::ast2ram::ValueIndex::isDefined |
( |
const ast::Variable & |
var | ) |
const |
◆ isGenerator()
bool souffle::ast2ram::ValueIndex::isGenerator |
( |
const int |
level | ) |
const |
Definition at line 99 of file ValueIndex.cpp.
101 if (cur.second.begin()->identifier == level) {
◆ isSomethingDefinedOn()
bool souffle::ast2ram::ValueIndex::isSomethingDefinedOn |
( |
int |
level | ) |
const |
Definition at line 105 of file ValueIndex.cpp.
107 if (cur.second.identifier == level) {
116 out <<
"Variables:\n\t";
◆ print()
void souffle::ast2ram::ValueIndex::print |
( |
std::ostream & |
out | ) |
const |
◆ setGeneratorLoc()
◆ setRecordDefinition() [1/2]
◆ setRecordDefinition() [2/2]
void souffle::ast2ram::ValueIndex::setRecordDefinition |
( |
const ast::RecordInit & |
init, |
|
|
int |
ident, |
|
|
int |
pos, |
|
|
std::string |
rel = "" |
|
) |
| |
◆ arg_generator_locations
The level of a nested ram operation that is handling a generator operation.
Definition at line 106 of file ValueIndex.h.
◆ record_definitions
◆ var_references
The documentation for this class was generated from the following files:
detail::joined_sequence< Iter, Printer > join(const Iter &a, const Iter &b, const std::string &sep, const Printer &p)
Creates an object to be forwarded to some output stream for printing sequences of elements interspers...