Displaying 2 results from an estimated 2 matches for "propgateequality".
Did you mean:
propagateequality
2017 Apr 11
5
Potential issue with noalias @malloc and @realloc
...= malloc(sizeof(int));
if (!p1) return 20;
int value = 0;
if (p0 == p1) {
for (int i = 0; i < 1; i++) {
*p1 = 20;
value = *p1;
if (false)
a();
}
} else {
// Other copy of the loop that calls b() in dead code
}
return result;
}
and then run GVN::propgateEquality that replaces one use of p1 with p0
but not the other (for some reason, say the other use was obscured
behind a function call):
int f() {
int* p0 = malloc(size of(int));
free(p0);
int* p1 = malloc(sizeof(int));
if (!p1) return 20;
int value = 0;
if (p0 == p1) {
for (int i = 0; i &l...
2017 Apr 12
4
Potential issue with noalias @malloc and @realloc
...> for (int i = 0; i < 1; i++) {
> > *p1 = 20;
> > value = *p1;
> > if (false)
> > a();
> > }
> > } else {
> > // Other copy of the loop that calls b() in dead code
> > }
> > return result;
> > }
> >
> > and then run GVN::propgateEquality that replaces one use of p1 with p0
> > but not the other (for some reason, say the other use was obscured
> > behind a function call):
> >
> > int f() {
> > int* p0 = malloc(size of(int));
> > free(p0);
> > int* p1 = malloc(sizeof(int));
> > if (!p1)...