[llvm-bugs] [Bug 34313] New: Unswitching does not catch opportunity with -fexperimental-new-pass-manager
via llvm-bugs
llvm-bugs at lists.llvm.org
Thu Aug 24 11:57:00 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=34313
Bug ID: 34313
Summary: Unswitching does not catch opportunity with
-fexperimental-new-pass-manager
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: Loop Optimizer
Assignee: chandlerc at gmail.com
Reporter: stefanp at ca.ibm.com
CC: llvm-bugs at lists.llvm.org
With the following test code:
int has_utf8 = 1;
const char AA[] = {
0, 1, 2, 3, 156, 9, 134, 17
};
int main() {
long i, count=0, num=22;
for (i=0; i<100000000; i++) {
num = i % 7;
if (!has_utf8 && AA[num] < 0x4)
count+=AA[num+1];
}
return count;
}
we can move the "if (!has_utf8)" outside of the loop and not run the loop at
all when has_utf8 = 1.
The opportunity is caught correctly with the old pass manager but not with the
new one.
Found with these options:
-m64 -mcpu=power8 -O3
Not found with these ones:
-m64 -mcpu=power8 -O3 -fexperimental-new-pass-manager
I did try the new unswitching pass from this patch:
https://reviews.llvm.org/D34200
but the compiler still did not find the opportunity.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20170824/f4ec9fff/attachment.html>
More information about the llvm-bugs
mailing list