mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
Avoid calls to dumpPassInfo and RegionBase<Tr>::getNameStr() in RGPassManager if
-debug-pass is not specified, as the string is only used when dumping pass information. There is a big cost of determining the name in ReginBase<Tr>:getNameStr() if the region's entry or exit block doesn't have a name. This is the case for the Release build, as names are not preserved by the front-end. RegionPass is mainly used by Polly, resulting in long compile time for one file of a customer application with the Release build (1m24s) vs Release+Asserts build (10s) when Polly is used. With this change, the compile time with the Release build went down to 8s. Patch by Sanjin Sijaric <ssijaric@codeaurora.org>! Phabricator: http://reviews.llvm.org/D8076 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231485 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4e022da51e
commit
3ad549487e
@ -83,9 +83,11 @@ bool RGPassManager::runOnFunction(Function &F) {
|
||||
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
|
||||
RegionPass *P = (RegionPass*)getContainedPass(Index);
|
||||
|
||||
dumpPassInfo(P, EXECUTION_MSG, ON_REGION_MSG,
|
||||
CurrentRegion->getNameStr());
|
||||
dumpRequiredSet(P);
|
||||
if (isPassDebuggingExecutionsOrMore()) {
|
||||
dumpPassInfo(P, EXECUTION_MSG, ON_REGION_MSG,
|
||||
CurrentRegion->getNameStr());
|
||||
dumpRequiredSet(P);
|
||||
}
|
||||
|
||||
initializeAnalysisImpl(P);
|
||||
|
||||
@ -96,11 +98,13 @@ bool RGPassManager::runOnFunction(Function &F) {
|
||||
Changed |= P->runOnRegion(CurrentRegion, *this);
|
||||
}
|
||||
|
||||
if (Changed)
|
||||
dumpPassInfo(P, MODIFICATION_MSG, ON_REGION_MSG,
|
||||
skipThisRegion ? "<deleted>" :
|
||||
CurrentRegion->getNameStr());
|
||||
dumpPreservedSet(P);
|
||||
if (isPassDebuggingExecutionsOrMore()) {
|
||||
if (Changed)
|
||||
dumpPassInfo(P, MODIFICATION_MSG, ON_REGION_MSG,
|
||||
skipThisRegion ? "<deleted>" :
|
||||
CurrentRegion->getNameStr());
|
||||
dumpPreservedSet(P);
|
||||
}
|
||||
|
||||
if (!skipThisRegion) {
|
||||
// Manually check that this region is still healthy. This is done
|
||||
@ -120,8 +124,8 @@ bool RGPassManager::runOnFunction(Function &F) {
|
||||
removeNotPreservedAnalysis(P);
|
||||
recordAvailableAnalysis(P);
|
||||
removeDeadPasses(P,
|
||||
skipThisRegion ? "<deleted>" :
|
||||
CurrentRegion->getNameStr(),
|
||||
(!isPassDebuggingExecutionsOrMore() || skipThisRegion) ?
|
||||
"<deleted>" : CurrentRegion->getNameStr(),
|
||||
ON_REGION_MSG);
|
||||
|
||||
if (skipThisRegion)
|
||||
|
Loading…
Reference in New Issue
Block a user