Index: llvm/docs/ReleaseNotes.rst =================================================================== --- llvm/docs/ReleaseNotes.rst +++ llvm/docs/ReleaseNotes.rst @@ -40,6 +40,7 @@ functionality, or simply have a lot to talk about), see the `NOTE` below for adding a new subsection. +* The LoopFlatten pass is now enabled by default. .. NOTE If you would like to document a larger change, then you can add a Index: llvm/lib/Transforms/IPO/PassManagerBuilder.cpp =================================================================== --- llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -95,7 +95,7 @@ cl::Hidden, cl::desc("Enable Unroll And Jam Pass")); -cl::opt EnableLoopFlatten("enable-loop-flatten", cl::init(false), +cl::opt EnableLoopFlatten("enable-loop-flatten", cl::init(true), cl::Hidden, cl::desc("Enable the LoopFlatten Pass")); Index: llvm/test/CodeGen/AMDGPU/opt-pipeline.ll =================================================================== --- llvm/test/CodeGen/AMDGPU/opt-pipeline.ll +++ llvm/test/CodeGen/AMDGPU/opt-pipeline.ll @@ -160,7 +160,9 @@ ; GCN-O1-NEXT: LCSSA Verifier ; GCN-O1-NEXT: Loop-Closed SSA Form Pass ; GCN-O1-NEXT: Scalar Evolution Analysis +; GCN-O1-NEXT: Flattens loops ; GCN-O1-NEXT: Loop Pass Manager +; GCN-O1-NEXT: Simplify loop CFG ; GCN-O1-NEXT: Recognize loop idioms ; GCN-O1-NEXT: Induction Variable Simplification ; GCN-O1-NEXT: Delete dead loops @@ -487,7 +489,9 @@ ; GCN-O2-NEXT: LCSSA Verifier ; GCN-O2-NEXT: Loop-Closed SSA Form Pass ; GCN-O2-NEXT: Scalar Evolution Analysis +; GCN-O2-NEXT: Flattens loops ; GCN-O2-NEXT: Loop Pass Manager +; GCN-O2-NEXT: Simplify loop CFG ; GCN-O2-NEXT: Recognize loop idioms ; GCN-O2-NEXT: Induction Variable Simplification ; GCN-O2-NEXT: Delete dead loops @@ -851,7 +855,9 @@ ; GCN-O3-NEXT: LCSSA Verifier ; GCN-O3-NEXT: Loop-Closed SSA Form Pass ; GCN-O3-NEXT: Scalar Evolution Analysis +; GCN-O3-NEXT: Flattens loops ; GCN-O3-NEXT: Loop Pass Manager +; GCN-O3-NEXT: Simplify loop CFG ; GCN-O3-NEXT: Recognize loop idioms ; GCN-O3-NEXT: Induction Variable Simplification ; GCN-O3-NEXT: Delete dead loops Index: llvm/test/Other/new-pm-defaults.ll =================================================================== --- llvm/test/Other/new-pm-defaults.ll +++ llvm/test/Other/new-pm-defaults.ll @@ -179,6 +179,7 @@ ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass ; CHECK-EP-LOOP-LATE-NEXT: Running pass: NoOpLoopPass ; CHECK-O-NEXT: Running pass: LoopDeletionPass +; CHECK-O-NEXT: Running pass: LoopFlattenPass ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass ; CHECK-EP-LOOP-END-NEXT: Running pass: NoOpLoopPass ; CHECK-O-NEXT: Running pass: SROAPass on foo Index: llvm/test/Other/new-pm-lto-defaults.ll =================================================================== --- llvm/test/Other/new-pm-lto-defaults.ll +++ llvm/test/Other/new-pm-lto-defaults.ll @@ -106,6 +106,7 @@ ; CHECK-O23SZ-NEXT: Running pass: LCSSAPass on foo ; CHECK-O23SZ-NEXT: Running pass: IndVarSimplifyPass on Loop ; CHECK-O23SZ-NEXT: Running pass: LoopDeletionPass on Loop +; CHECK-O23SZ-NEXT: Running pass: LoopFlattenPass on Loop ; CHECK-O23SZ-NEXT: Running pass: LoopFullUnrollPass on Loop ; CHECK-O23SZ-NEXT: Running pass: LoopDistributePass on foo ; CHECK-O23SZ-NEXT: Running pass: LoopVectorizePass on foo Index: llvm/test/Other/new-pm-thinlto-defaults.ll =================================================================== --- llvm/test/Other/new-pm-thinlto-defaults.ll +++ llvm/test/Other/new-pm-thinlto-defaults.ll @@ -144,6 +144,7 @@ ; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass ; CHECK-O-NEXT: Running pass: LoopDeletionPass +; CHECK-O-NEXT: Running pass: LoopFlattenPass ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass ; CHECK-O-NEXT: Running pass: SROAPass on foo ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass Index: llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll =================================================================== --- llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll +++ llvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll @@ -117,6 +117,7 @@ ; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass ; CHECK-O-NEXT: Running pass: LoopDeletionPass +; CHECK-O-NEXT: Running pass: LoopFlattenPass ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass ; CHECK-O-NEXT: Running pass: SROAPass on foo ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass Index: llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll =================================================================== --- llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll +++ llvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll @@ -126,6 +126,7 @@ ; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass ; CHECK-O-NEXT: Running pass: LoopDeletionPass +; CHECK-O-NEXT: Running pass: LoopFlattenPass ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass ; CHECK-O-NEXT: Running pass: SROAPass on foo ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass Index: llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll =================================================================== --- llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll +++ llvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll @@ -155,6 +155,7 @@ ; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass ; CHECK-O-NEXT: Running pass: LoopDeletionPass +; CHECK-O-NEXT: Running pass: LoopFlattenPass ; CHECK-O-NEXT: Running pass: LoopFullUnrollPass ; CHECK-O-NEXT: Running pass: SROAPass on foo ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass Index: llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll =================================================================== --- llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll +++ llvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll @@ -121,6 +121,7 @@ ; CHECK-O-NEXT: Running pass: LoopIdiomRecognizePass ; CHECK-O-NEXT: Running pass: IndVarSimplifyPass ; CHECK-O-NEXT: Running pass: LoopDeletionPass +; CHECK-O-NEXT: Running pass: LoopFlattenPass ; CHECK-O-NEXT: Running pass: SROAPass on foo ; CHECK-Os-NEXT: Running pass: MergedLoadStoreMotionPass ; CHECK-Os-NEXT: Running pass: GVNPass