2025-03-31 02:50:30 +03:00
|
|
|
#pragma once
|
|
|
|
|
|
2025-05-30 12:45:05 +03:00
|
|
|
#include <vector>
|
|
|
|
|
#include <map>
|
|
|
|
|
#include <unordered_set>
|
2025-05-19 20:50:35 +03:00
|
|
|
|
2025-05-27 02:25:39 +03:00
|
|
|
#include "range_structures.h"
|
|
|
|
|
#include "region.h"
|
2025-03-31 02:50:30 +03:00
|
|
|
#include "../GraphLoop/graph_loops.h"
|
|
|
|
|
#include "../CFGraph/CFGraph.h"
|
|
|
|
|
|
|
|
|
|
void Collapse(Region* region);
|
2025-05-19 20:50:35 +03:00
|
|
|
std::map<LoopGraph*, ArrayAccessingIndexes> FindPrivateArrays(std::map<std::string, std::vector<LoopGraph*>>& loopGraph, std::map<FuncInfo*, std::vector<SAPFOR::BasicBlock*>>& FullIR);
|
|
|
|
|
std::pair<SAPFOR::BasicBlock*, std::unordered_set<SAPFOR::BasicBlock*>> GetBasicBlocksForLoop(const LoopGraph* loop, const std::vector<SAPFOR::BasicBlock*> blocks);
|