[LLVMbugs] [Bug 1135] NEW: Change "+" to "|" may cause problem in loop dependence analysis
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Fri Jan 26 17:29:50 PST 2007
http://llvm.org/bugs/show_bug.cgi?id=1135
Summary: Change "+" to "|" may cause problem in loop dependence
analysis
Product: new-bugs
Version: unspecified
Platform: All
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: new bugs
AssignedTo: unassignedbugs at nondot.org
ReportedBy: wjiang at cs.ucla.edu
This is actually not a bug, but it may bring problem to further optimizations.
The TOT llvm now can change the addition(+) to or(|) if one operation is a
constant and satisfies some condition ( around InstCombiner.cpp: 1107) . But if
somebody want to analyze the dependence inside one loop (most of the dependency
techniques don't work on bit operations), it may cause some problems.
For exmaple:
for ( i=0; i<N; i++) {
x = 4*i;
a [x ] = a[x+1] + ...
}
After llvm optimization x+1 is changed to :
x = shl i, 2
tmp1 = or x, 1
Can you provide an option to disable this kind of operation , or can you
recover it back to addition in ScalarEvolution? Thanks.
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
More information about the llvm-bugs
mailing list