[LLVMbugs] [Bug 194] NEW: [indvars] Induction variable canonicalization always makes 32-bit indvars
bugzilla-daemon at zion.cs.uiuc.edu
bugzilla-daemon at zion.cs.uiuc.edu
Sat Dec 20 18:52:46 PST 2003
http://llvm.cs.uiuc.edu/bugs/show_bug.cgi?id=194
Summary: [indvars] Induction variable canonicalization always
makes 32-bit indvars
Product: libraries
Version: 1.0
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Scalar Optimizations
AssignedTo: sabre at nondot.org
ReportedBy: sabre at nondot.org
The induction variable canonicalization pass inserts new canonical induction
variables if a loop is lacking one, but it always chooses to insert a 32-bit
induction variable. This can turn legal loops into infinite loops, such as this
one:
---
long long V;
int main() {
long long X;
for (X = 1; X < (1ULL << 33); ++X)
V = X;
printf("%lld\n", V); // erroneously not reached
}
---
Though always introducing 64-bit induction variables would be acceptable, the
right approach is to insert a variable which is the largest of the existing
auxillary induction variables.
-Chris
------- 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