[Bug lto/83201] [7/8 Regression] SPEC CPU2017 505.mcf_r produces incorrect output when built with -flto and FDO
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Dec 19 13:38:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83201
--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
Likely invalid. spec_qsort is full of alias violations. We sort
typedef struct basket
{
arc_t *a;
cost_t cost;
cost_t abs_cost;
LONG number;
} BASKET;
and spec_qsort does stuff like
if (n < 7) {
for (pm = (char *)a + es; pm < (char *)a + n * es; pm += es)
for (pl = pm;
pl > (char *)a && cmp(pl - es, pl) > 0;
pl -= es)
swap(pl, pl - es);
return;
with
#define swap(a, b) \
if (swaptype_long == 0) { \
long t = *(long *)(a); \
*(long *)(a) = *(long *)(b); \
*(long *)(b) = t; \
} else if (swaptype_int == 0) { \
int t = *(int *)(a); \
*(int *)(a) = *(int *)(b); \
*(int *)(b) = t; \
} else \
swapfunc((char *)a, (char *)b, es, swaptype_long, swaptype_int)
eh... (no, swapfunc isn't any better).
Anybody up to reporting this to SPEC?
More information about the Gcc-bugs
mailing list