Add a RequireStructuredCFG Field to TargetMachine.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@196634 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vincent Lejeune
2013-12-07 01:49:19 +00:00
parent 7c8fbdac72
commit d254d3111e
8 changed files with 27 additions and 3 deletions

View File

@@ -725,7 +725,10 @@ void TargetPassConfig::addMachineLateOptimization() {
printAndVerify("After BranchFolding");
// Tail duplication.
if (addPass(&TailDuplicateID))
// Note that duplicating tail just increases code size and degrades
// performance for targets that require Structured Control Flow.
// In addition it can also make CFG irreducible. Thus we disable it.
if (!TM->requiresStructuredCFG() && addPass(&TailDuplicateID))
printAndVerify("After TailDuplicate");
// Copy propagation.