#include <ValueIndex.h>
Definition at line 36 of file ValueIndex.h.
 
◆ generator_location_map
A map from generative ast::Arguments 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...