------- Comment From <email address hidden> 2015-10-01 01:46 EDT-------
Assuming the upstream GCC 5 code was used, as I'm sure it was, the patches were definitely present.
I think the problem is that Ubuntu is still being built with -mcpu=power7 -mtune=power8. That will cause the alignment optimization to be missed; since unaligned loads perform poorly on Power7, gcc favors the realignment code that confuses valgrind.
My understanding is that Ubuntu 16.04 will move to using -mcpu=power8, at which point this should no longer be an issue.
So unfortunately I believe we need to carry over the -O3 -fno-tree-vectorize workaround for shared/vg_replace_strmem.c in 15.10. This workaround can then be removed for 16.04.
Matthias, could you please change the build rules to implement the circumvention?
------- Comment From <email address hidden> 2015-10-01 01:46 EDT-------
Assuming the upstream GCC 5 code was used, as I'm sure it was, the patches were definitely present.
I think the problem is that Ubuntu is still being built with -mcpu=power7 -mtune=power8. That will cause the alignment optimization to be missed; since unaligned loads perform poorly on Power7, gcc favors the realignment code that confuses valgrind.
My understanding is that Ubuntu 16.04 will move to using -mcpu=power8, at which point this should no longer be an issue.
So unfortunately I believe we need to carry over the -O3 -fno-tree-vectorize workaround for shared/ vg_replace_ strmem. c in 15.10. This workaround can then be removed for 16.04.
Matthias, could you please change the build rules to implement the circumvention?
Thanks!
Bill