| 19 | namespace ftg { |
| 20 | |
| 21 | void DefMapGenerator::generate(std::vector<ASTIRNode> &Nodes, |
| 22 | const UTLoader &Loader, std::string BaseDir) { |
| 23 | auto Definitions = generateDefinitions(Nodes, Loader, BaseDir); |
| 24 | KeyDefMap = generateKeyDefMap(Definitions); |
| 25 | IDDefMap = generateIDDefMap(Definitions); |
| 26 | |
| 27 | std::map<unsigned, std::set<unsigned>> ArrayIDMap; |
| 28 | std::map<unsigned, std::set<unsigned>> ArrayLenIDMap; |
| 29 | std::tie(ArrayIDMap, ArrayLenIDMap) = |
| 30 | generateArrayMap(Nodes, Loader.getArrayReport()); |
| 31 | updateDefinitions(ArrayIDMap, ArrayLenIDMap); |
| 32 | |
| 33 | std::unique_ptr<GroupFilter> Filters = std::make_unique<ArrayGroupFilter>(); |
| 34 | assert(Filters && "Unexpected Program State"); |
| 35 | Filters->start(IDDefMap); |
| 36 | } |
| 37 | |
| 38 | const std::map<unsigned, std::shared_ptr<Definition>> & |
| 39 | DefMapGenerator::getDefMap() const { |