On x86-64, r266692 caused: g++ -O2 -ffast-math -fwhole-program -flto=jobserver -fuse-linker-plugin -DSPEC_CPU2000_LP64 ggCoverageSolidTexture.o ggPathDielectricMaterial.o ggBox2.o ggBox3.o ggRasterSurfaceTexture.o ggJitterSample1.o ggNRooksSample2.o ggJitterSample2.o ggRGBFPixel.o ggRotatingPinholeCamera.o ggRandomSample2.o ggRandomSample3.o ggSolidNoise2.o ggSolidNoise3.o ggSolidTexture.o ggOakSolidTexture.o ggSpecularMaterial.o ggNA.o ggMaterial.o ggDiffuseMaterial.o ggDielectricMaterial.o ggConductorMaterial.o ggEdgeDiscrepancy.o ggPolishedMaterial.o ggFrameInterpolation.o ggQuaternion.o ggSpline.o ggONB2.o ggONB3.o ggFrame2.o ggFrame3.o ggHMatrix3.o ggSphere.o ggRGBE.o ggGamma.o ggBRDF.o ggDiffuseBRDF.o ggPhongBRDF.o ggPolishedBRDF.o ggCamera.o ggPinholeCamera.o ggThinLensCamera.o ggErr.o ggPixelFilter.o ggTrianglePixelFilter.o ggBoxPixelFilter.o ggFormat.o ggGeometry.o ggHAffineMatrix3.o ggHShearMatrix3.o ggHBoxMatrix3.o ggHPerspectiveMatrix3.o ggHTranslationMatrix3.o ggHRigidBodyMatrix3.o ggHRotationMatrix3.o ggHScaleMatrix3.o ggHPoint3.o ggPoint2.o ggPoint3.o ggOptics.o ggPlane.o ggPolygon.o ggGrayPixel_x.o ggRGBPixel_x.o ggRay2.o ggRay3.o ggBoardFloorSolidTexture.o ggVector2.o ggVector3.o ggString.o ggFineSpectrum.o ggSpectrum.o eon.o eonImageCalculator.o mrObjectRecord.o mrCoarsePixelRenderer.o mrIndirectPixelRenderer.o mrRushmeierPixelRenderer.o mrBruteForcePixelRenderer.o mrKajiyaPixelRenderer.o mrCookPixelRenderer.o mrGrid.o mrScene.o mrCamera.o mrTriangle.o mrFastTriangle.o mrPolygon.o mrXYDisk.o mrXZDisk.o mrYZDisk.o mrPhongAreaXYRectangleLuminaire.o mrPhongAreaXZRectangleLuminaire.o mrPhongAreaYZRectangleLuminaire.o mrEmitter.o mrImposter.o mrLinkedObjects.o mrBox.o mrXCylinder.o mrYCylinder.o mrZCylinder.o mrDiffuseAreaZCylinderLuminaire.o mrDiffuseCosineZCylinderLuminaire.o mrDiffuseVisibleAreaZCylinderLuminaire.o mrXEllipticalCylinder.o mrYEllipticalCylinder.o mrZEllipticalCylinder.o mrSpotAreaXYDiskLuminaire.o mrDiffuseAreaXYRectangleLuminaire.o mrDiffuseAreaXZRectangleLuminaire.o mrDiffuseAreaYZRectangleLuminaire.o mrSurfaceList.o mrDiffuseAreaTriangleLuminaire.o mrDiffuseAreaSphereLuminaire.o mrDiffuseCosineSphereLuminaire.o mrDiffuseSolidAngleSphereLuminaire.o mrShellLuminaire.o mrInstance.o mrMaterial.o mrPhongAreaTriangleLuminaire.o mrSolidTexture.o mrSphere.o mrSurface.o mrSurfaceTexture.o mrXYRectangle.o mrXZRectangle.o mrYZRectangle.o myrand.o -o eon /tmp/ccrGLkBy.s: Assembler messages: /tmp/ccrGLkBy.s:66: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:122: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:178: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:234: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:290: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:346: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:402: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:458: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:514: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:570: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:626: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:682: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:738: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:794: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:850: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:906: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:962: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1028: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1084: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1140: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1199: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1258: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1314: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1370: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1426: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1491: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1547: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1603: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1659: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1718: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1777: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1833: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1889: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:1945: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2001: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2060: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2116: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2172: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2228: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2284: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2340: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2396: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2452: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2508: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2564: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2620: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2676: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:2735: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:4746: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:4817: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:4885: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:4956: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5037: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5118: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5199: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5280: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5361: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5442: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5523: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined /tmp/ccrGLkBy.s:5604: Error: symbol `_Z41__static_initialization_and_destruction_0ii.constprop.0' is already defined make[4]: *** [/tmp/ccY4XDm6.mk:2: /tmp/eon.Z6uSqi.ltrans0.ltrans.o] Error 1 make[4]: *** Waiting for unfinished jobs.... lto-wrapper: fatal error: make returned 2 exit status compilation terminated. /usr/local/bin/ld: error: lto-wrapper failed collect2: error: ld returned 1 exit status when building 252.eon in SPEC CPU 2000.
Can you try to reduce this failure?
I am getting same error with profiledbootstrap ../configure --enable-checking=release --prefix=/aux/hubicka/trunk-install/ --disable-werror --with-build-config=bootstrap-lto --disable-plugin I guess when creating the symbol you want to check if symbol of same name is already in the symbol table and skip it, so clones made at compile/wpa time do not conflict with clones made at ltrans time? Honza In function ‘_GLOBAL__I_65535_1_cp_lang.o’: lto1: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without /tmp/ccKpcs9g.s: Assembler messages: /tmp/ccKpcs9g.s:49952: Error: symbol `_ZN2wi3mulI16generic_wide_intI22fixed_wide_int_storageILi128EEEiEENS_13binary_traitsIT_T0_XsrNS_10int_traitsIS6_EE14precision_typeEXsrNS8_IS7_EE14precision_typeEE11result_typeERKS6_RKS7_.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:74607: Error: symbol `_Z10multiple_pILj1ElilEN10if_nonpolyIT1_bXsr15poly_int_traitsIS1_E7is_polyEE4typeERK12poly_int_podIXT_ET0_ES1_PS6_IXT_ET2_E.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:88768: Error: symbol `_ZL19regno_ok_for_base_pj12machine_modeh8rtx_codeS0_.constprop.0' is already defined /tmp/ccKpcs9g.s:89655: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:89893: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:89960: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:96444: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:96751: Error: symbol `_ZL19regno_ok_for_base_pj12machine_modeh8rtx_codeS0_.constprop.0' is already defined /tmp/ccKpcs9g.s:96839: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:101732: Error: symbol `_ZL15_succ_iter_condP13succ_iteratorPP8rtx_insnS2_PFbP8edge_defS0_E.constprop.0' is already defined /tmp/ccKpcs9g.s:103133: Error: symbol `_ZL15_succ_iter_condP13succ_iteratorPP8rtx_insnS2_PFbP8edge_defS0_E.constprop.0.cold' is already defined /tmp/ccKpcs9g.s:114090: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined /tmp/ccKpcs9g.s:114968: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:115035: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined /tmp/ccKpcs9g.s:116035: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined /tmp/ccKpcs9g.s:116153: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:117419: Error: symbol `_ZL17bmp_iter_set_initP15bitmap_iteratorPK11bitmap_headjPj.isra.0.constprop.0' is already defined /tmp/ccKpcs9g.s:140354: Error: symbol `_ZL18make_temp_ssa_nameP9tree_nodeP6gimplePKc.constprop.0' is already defined
So before the patch we were just lucky, right? When seeing the patches I wondered whether we instead want to add a clone_count member to cgraph_node (which we could stream) and use that for the .NUM suffix. We alread have it (sort-of) if we walk the clones list and do counting, right?
Originally we maintained things safe by having the global counter and not using same suffixes (i.e. constprop/wpa etc.) during early, wpa and late optimization, so things did not conflict. I wonder how the conflict happens here. All the .constprop clones are produced at WPA so we should have counter for those right? I need to take closer look at the patch. Honza
(In reply to Richard Biener from comment #3) > So before the patch we were just lucky, right? When seeing the patches I > wondered whether we instead want to add a clone_count member to cgraph_node > (which we could stream) and use that for the .NUM suffix. We alread have > it (sort-of) if we walk the clones list and do counting, right? But the root of the problem is that multiple different cgraph_nodes share the same name, so even if two or more nodes like that have counters == 0 we would get the same conflict. Unless it's always the case that the additional cgraph_nodes with the same decl name are made as copies of the original one and their counter values are copied as well - I'm not sure if things actually work like that, I'm just guessing...
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88297 > > --- Comment #5 from michael.ploujnikov at oracle dot com --- > (In reply to Richard Biener from comment #3) > > So before the patch we were just lucky, right? When seeing the patches I > > wondered whether we instead want to add a clone_count member to cgraph_node > > (which we could stream) and use that for the .NUM suffix. We alread have > > it (sort-of) if we walk the clones list and do counting, right? > > But the root of the problem is that multiple different cgraph_nodes share the > same name, so even if two or more nodes like that have counters == 0 we would > get the same conflict. Unless it's always the case that the additional They are linked together as "transparent aliases". So one node has no transparent_alias set and other sets it and node->alias_target will get you to the "master" node. Honza
Author: plouj Date: Tue Dec 4 14:22:09 2018 New Revision: 266780 URL: https://gcc.gnu.org/viewcvs?rev=266780&root=gcc&view=rev Log: PR ipa/88297 * ipa-cp.c (create_specialized_node): Track clone counters by node assembler names. (ipcp_driver): Change type of clone_num_suffixes key to const char*. Modified: trunk/gcc/ChangeLog trunk/gcc/ipa-cp.c
252.eon in SPEC CPU 2000 builds OK with r266780.