Move cyclic path redundancy into reduce loop

Sometimes cyclic path redundancy can uncover further reduction work that
can be done by the other passes in the reduce loop.
This commit is contained in:
Justin Viiret 2016-01-11 09:25:32 +11:00 committed by Matthew Barr
parent b36197df26
commit cca4116861

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2015, Intel Corporation
* Copyright (c) 2015-2016, Intel Corporation
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
@ -167,6 +167,7 @@ void reduceGraph(NGHolder &g, som_type som, bool utf8,
changed |= removeEdgeRedundancy(g, som, cc);
changed |= reduceGraphEquivalences(g, cc);
changed |= removeRedundancy(g, som);
changed |= removeCyclicPathRedundancy(g);
if (!changed) {
DEBUG_PRINTF("graph unchanged after pass %u, stopping\n", pass);
break;
@ -183,7 +184,6 @@ void reduceGraph(NGHolder &g, som_type som, bool utf8,
removeEdgeRedundancy(g, som, cc);
}
removeCyclicPathRedundancy(g);
removeCyclicDominated(g, som);
if (!som) {