fixed code style

This commit is contained in:
ALEXks
2025-05-30 12:45:05 +03:00
parent 8dcbd587ec
commit 26e36bed46
6 changed files with 86 additions and 158 deletions

View File

@@ -39,25 +39,17 @@ void Collapse(Region* region)
}
ArrayAccessingIndexes useUnion;
for (auto& byBlock : region->getBasickBlocks())
{
for (auto& [arrayName, arrayRanges] : byBlock->array_use)
{
useUnion[arrayName] = useUnion[arrayName].Union(byBlock->array_use[arrayName]);
}
}
for (auto& [arrayName, arrayRanges] : useUnion)
{
region->array_priv[arrayName] = useUnion[arrayName].Diff(region->array_use[arrayName]);
}
for (auto& [arrayName, arrayRanges] : useUnion)
region->array_priv[arrayName] = useUnion[arrayName].Diff(region->array_use[arrayName]);
for (Region* prevBlock : region->getHeader()->getPrevRegions())
{
prevBlock->replaceInNextRegions(region, region->getHeader());
}
for (Region* nextBlock : region->getHeader()->getNextRegions())
{
nextBlock->replaceInPrevRegions(region, region->getHeader());
}
}
static void SolveDataFlowIteratively(Region* DFG)
@@ -85,49 +77,35 @@ static void SolveDataFlowIteratively(Region* DFG)
for (const auto& [arrayName, accessSet] : prevBlock->array_out)
{
if (newIn.find(arrayName) != newIn.end())
{
newIn[arrayName] = newIn[arrayName].Intersect(accessSet);
}
newIn[arrayName] = newIn[arrayName].Intersect(accessSet);
else
{
newIn[arrayName] = AccessingSet();
}
}
}
}
b->array_in = move(newIn);
ArrayAccessingIndexes newOut;
if (b->array_def.empty())
{
if (b->array_def.empty())
newOut = b->array_in;
}
else if (b->array_in.empty())
{
newOut = b->array_def;
}
else
{
for (auto& [arrayName, accessSet] : b->array_def)
{
if (newOut.find(arrayName) != newOut.end())
{
newOut[arrayName] = b->array_def[arrayName].Union(b->array_in[arrayName]);
}
else
{
newOut[arrayName] = accessSet;
}
}
}
/* can not differ */
if (newOut != b->array_out)
{
b->array_out = newOut;
}
else
{
worklist.erase(b);
}
}
while (!worklist.empty());
}
@@ -136,11 +114,10 @@ static void SolveDataFlow(Region* DFG)
{
if (!DFG)
return;
SolveDataFlowIteratively(DFG);
for (Region* subRegion : DFG->getSubRegions())
{
SolveDataFlow(subRegion);
}
Collapse(DFG);
}