On Fri, 2014-10-10 at 11:02 -0400, Vladimir Makarov wrote: > Here is a new rematerialization sub-pass of LRA.
When Mike and I build with this patch along with the patch that enables LRA by default on powerpc64*-linux (attached below), we're seeing the following error message. I'm not sure how your patch can cause this error, but it does go away if we remove your patch and build again. Peter # Enable LRA by default Index: gcc/config/rs6000/rs6000.opt =================================================================== --- gcc/config/rs6000/rs6000.opt (revision 216216) +++ gcc/config/rs6000/rs6000.opt (working copy) @@ -466,7 +466,7 @@ Target RejectNegative Joined UInteger Va -mlong-double-<n> Specify size of long double (64 or 128 bits) mlra -Target Report Var(rs6000_lra_flag) Init(0) Save +Target Report Var(rs6000_lra_flag) Init(1) Save Use LRA instead of reload msched-costly-dep= Error message caused by LRA Rematerialization patch: make[5]: Entering directory `/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include' mkdir -p ./powerpc64-linux/bits/stdc++.h.gch /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/./gcc/xgcc -shared-libgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/./gcc -nostdinc++ -L/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/src -L/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/src/.libs -L/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/libsupc++/.libs -B/home/bergner/gcc/install/gcc-fsf-mainline-lra-remat/powerpc64-linux/bin/ -B/home/bergner/gcc/install/gcc-fsf-mainline-lra-remat/powerpc64-linux/lib/ -isystem /home/bergner/gcc/install/gcc-fsf-mainline-lra-remat/powerpc64-linux/include -isystem /home/bergner/gcc/install/gcc-fsf-mainline-lra-remat/powerpc64-linux/sys-include -x c++-header -nostdinc++ -g -O2 -D_GNU_SOURCE -I/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/powerpc64-linux -I/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include -I/home/bergner/gcc/gcc-fsf-mainline-bootstrap/libstdc++-v3/libsupc++ -O2 -g -std=gnu++0x /home/bergner/gcc/gcc-fsf-mainline-bootstrap/libstdc++-v3/include/precompiled/stdc++.h \ -o powerpc64-linux/bits/stdc++.h.gch/O2ggnu++0x.gch In file included from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/bits/move.h:57:0, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/bits/stl_pair.h:59, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/bits/stl_algobase.h:64, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/bits/char_traits.h:39, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/ios:40, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/istream:38, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/sstream:38, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/complex:45, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/ccomplex:38, from /home/bergner/gcc/gcc-fsf-mainline-bootstrap/libstdc ++-v3/include/precompiled/stdc++.h:52: /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/type_traits:251:12: error: redefinition of ‘struct std::__is_integral_helper<unsigned int>’ struct __is_integral_helper<unsigned __int128> ^ /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/type_traits:226:12: error: previous definition of ‘struct std::__is_integral_helper<unsigned int>’ struct __is_integral_helper<unsigned int> ^ /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/type_traits:1763:12: error: redefinition of ‘struct std::__make_signed<unsigned int>’ struct __make_signed<unsigned __int128> ^ /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/type_traits:1735:12: error: previous definition of ‘struct std::__make_signed<unsigned int>’ struct __make_signed<unsigned int> ^ In file included from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/random:42:0, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/bits/stl_algo.h:66, from /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/algorithm:62, from /home/bergner/gcc/gcc-fsf-mainline-bootstrap/libstdc ++-v3/include/precompiled/stdc++.h:64: /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/limits:1479:12: error: redefinition of ‘struct std::numeric_limits<unsigned int>’ struct numeric_limits<unsigned __int128> ^ /home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include/limits:1049:12: error: previous definition of ‘struct std::numeric_limits<unsigned int>’ struct numeric_limits<unsigned int> ^ make[5]: *** [powerpc64-linux/bits/stdc++.h.gch/O2ggnu++0x.gch] Error 1 make[5]: Leaving directory `/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3/include' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3' make[3]: *** [all] Error 2 make[3]: Leaving directory `/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat/powerpc64-linux/libstdc++-v3' make[2]: *** [all-stage2-target-libstdc++-v3] Error 2 make[2]: Leaving directory `/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat' make[1]: *** [stage2-bubble] Error 2 make[1]: Leaving directory `/home/bergner/gcc/build/gcc-fsf-mainline-lra-remat' make: *** [all] Error 2