Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Disable loop re-rotation for -Oz (patch by Andrey Turetsky)
After changes in rL231820 loop re-rotation is performed even in -Oz mode. Since loop rotation is disabled for -Oz, it seems loop re-rotation should be disabled too. Differential Revision: http://reviews.llvm.org/D10961 llvm-svn: 241897
- Loading branch information
1 parent
edb0210
commit da33d80
Showing
2 changed files
with
32 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
; REQUIRES: asserts | ||
; RUN: opt < %s -S -Os -debug -debug-only=loop-rotate 2>&1 | FileCheck %s -check-prefix=OS | ||
; RUN: opt < %s -S -Oz -debug -debug-only=loop-rotate 2>&1 | FileCheck %s -check-prefix=OZ | ||
|
||
; Loop should be rotated for -Os but not for -Oz. | ||
; OS: rotating Loop at depth 1 | ||
; OZ-NOT: rotating Loop at depth 1 | ||
|
||
@e = global i32 10 | ||
|
||
declare void @use(i32) | ||
|
||
define void @test() { | ||
entry: | ||
%end = load i32, i32* @e | ||
br label %loop | ||
|
||
loop: | ||
%n.phi = phi i32 [ %n, %loop.fin ], [ 0, %entry ] | ||
%cond = icmp eq i32 %n.phi, %end | ||
br i1 %cond, label %exit, label %loop.fin | ||
|
||
loop.fin: | ||
%n = add i32 %n.phi, 1 | ||
call void @use(i32 %n) | ||
br label %loop | ||
|
||
exit: | ||
ret void | ||
} |