[LLVMbugs] [Bug 807] NEW: perform substitution when equality is known
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Sat Jun 10 12:38:13 PDT 2006
http://llvm.org/bugs/show_bug.cgi?id=807
Summary: perform substitution when equality is known
Product: libraries
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: Scalar Optimizations
AssignedTo: unassignedbugs at nondot.org
ReportedBy: nicholas at mxc.ca
The following code doesn't optimize down:
// Source: pag.csail.mit.edu/paste2005/slides/yang-paste2005-slides.ppt
extern void foo();
void process(int *p, int *q)
{
if (p != q)
return;
if (*p != *q)
foo(); // unreachable
}
In a branch whose condition depends on a EQ or NE, in the side where the
variables are equal (and if the types are equal (?)), replaceAllUsesOfWith(p,
q). This allows the compiler to optimize away the following test and should kill
the liveness of one of the variables. I suppose you could also do the same
optimization with a switch instruction.
Where would such an optimization belong? The instruction combiner?
------- 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