On 25 November 2016 at 14:48, Richard Biener <rguent...@suse.de> wrote:
> On Fri, 25 Nov 2016, Prathamesh Kulkarni wrote:
>
>> On 25 November 2016 at 13:43, Richard Biener <rguent...@suse.de> wrote:
>> > On Fri, 25 Nov 2016, Jakub Jelinek wrote:
>> >
>> >> On Fri, Nov 25, 2016 at 01:28:06PM +0530, Prathamesh Kulkarni wrote:
>> >> > --- a/gcc/lto/lto-lang.c
>> >> > +++ b/gcc/lto/lto-lang.c
>> >> > @@ -1271,8 +1271,30 @@ lto_init (void)
>> >> >    gcc_assert (TYPE_MAIN_VARIANT (const_tm_ptr_type_node)
>> >> >           == const_ptr_type_node);
>> >> >
>> >> > -  ptrdiff_type_node = integer_type_node;
>> >> > +  if (strcmp (PTRDIFF_TYPE, "int") == 0)
>> >> > +    ptrdiff_type_node = integer_type_node;
>> >> > +  else if (strcmp (PTRDIFF_TYPE, "long int") == 0)
>> >> > +    ptrdiff_type_node = long_integer_type_node;
>> >> > +  else if (strcmp (PTRDIFF_TYPE, "long long int") == 0)
>> >> > +    ptrdiff_type_node = long_long_integer_type_node;
>> >> > +  else if (strcmp (PTRDIFF_TYPE, "short int") == 0)
>> >> > +    ptrdiff_type_node = short_integer_type_node;
>> >> > +  else
>> >> > +    {
>> >> > +      ptrdiff_type_node = NULL_TREE;
>> >> > +      for (int i = 0; i < NUM_INT_N_ENTS; i++)
>> >> > +   if (int_n_enabled_p[i])
>> >> > +     {
>> >> > +       char name[50];
>> >> > +       sprintf (name, "__int%d", int_n_data[i].bitsize);
>> >> > +       if (strcmp (name, PTRDIFF_TYPE) == 0)
>> >> > +         ptrdiff_type_node = int_n_trees[i].signed_type;
>> >> > +     }
>> >> > +      if (ptrdiff_type_node == NULL_TREE)
>> >> > +   gcc_unreachable ();
>> >> > +    }
>> >>
>> >> This looks ok to me.
>> >
>> > But I'd like to see this in build_common_tree_nodes alongside
>> > the initialization of size_type_node (and thus removed from
>> > c_common_nodes_and_builtins).  This way you can simply remove
>> > the lto-lang.c code as well.
>> >
>> > Please then also remove the ptrdiff_type_node re-set from
>> > free_lang_data ().
>> Hi Richard,
>> Does this version look OK ?
>> Validation in progress.
>
> Yes, patch is ok if testing succeeds.
Thanks, the patch passes bootstrap+test on x86_64-unknown-linux-gnu
with --enable-languages=all,ada
and cross-tested on arm*-*-*, aarch64*-*-* with
--enable-languages=c,c++,fortran.

However LTO bootstrap fails with miscompares (attached)
configured with: --disable-werror --enable-stage1-checking=release
--with-build-config=bootstrap-lto
I verified that the same miscompares happen without the patch too, and
have committed it as r242888.

Thanks,
Prathamesh
>
> Thanks,
> Richard.
gcc/tree-ssa-phiopt.o differs
gcc/sanopt.o differs
gcc/tree-ssa-loop-ivcanon.o differs
gcc/gcc.o differs
gcc/lra.o differs
gcc/tree-ssa-loop-manip.o differs
gcc/tree.o differs
gcc/tree-ssa-dce.o differs
gcc/gcse.o differs
gcc/gimple-ssa-strength-reduction.o differs
gcc/ipa-split.o differs
gcc/ipa.o differs
gcc/cfgexpand.o differs
gcc/recog.o differs
gcc/tree-ssa-loop-niter.o differs
gcc/loop-doloop.o differs
gcc/combine.o differs
gcc/predict.o differs
gcc/dce.o differs
gcc/graphds.o differs
gcc/asan.o differs
gcc/tree-ssa.o differs
gcc/tree-ssa-loop-im.o differs
gcc/ipa-devirt.o differs
gcc/dbxout.o differs
gcc/combine-stack-adj.o differs
gcc/tree-ssa-live.o differs
gcc/sched-rgn.o differs
gcc/trans-mem.o differs
gcc/tree-ssa-loop-unswitch.o differs
gcc/haifa-sched.o differs
gcc/tree-diagnostic.o differs
gcc/tree-vect-stmts.o differs
gcc/collect2.o differs
gcc/tree-vect-data-refs.o differs
gcc/tree-ssa-operands.o differs
gcc/ipa-icf.o differs
gcc/tree-ssa-sccvn.o differs
gcc/tree-ssa-forwprop.o differs
gcc/tsan.o differs
gcc/gimple-ssa-store-merging.o differs
gcc/tree-parloops.o differs
gcc/tree-complex.o differs
gcc/tracer.o differs
gcc/tree-vect-slp.o differs
gcc/diagnostic-show-locus.o differs
gcc/hsa-gen.o differs
gcc/hsa.o differs
gcc/df-scan.o differs
gcc/gcse-common.o differs
gcc/tree-object-size.o differs
gcc/build/genextract.o differs
gcc/build/genpreds.o differs
gcc/build/read-rtl.o differs
gcc/build/gengtype-state.o differs
gcc/build/genattr.o differs
gcc/build/genopinit.o differs
gcc/build/genmatch.o differs
gcc/build/genrecog.o differs
gcc/build/gensupport.o differs
gcc/build/genautomata.o differs
gcc/tree-loop-distribution.o differs
gcc/gimplify.o differs
gcc/symtab.o differs
gcc/lto-wrapper.o differs
gcc/rtlanal.o differs
gcc/dse.o differs
gcc/cfgrtl.o differs
gcc/dwarf2out.o differs
gcc/ifcvt.o differs
gcc/ipa-inline-analysis.o differs
gcc/ira.o differs
gcc/hsa-brig.o differs
gcc/dwarf2cfi.o differs
gcc/gimple.o differs
gcc/sel-sched-dump.o differs
gcc/tree-ssa-uncprop.o differs
gcc/tree-eh.o differs
gcc/reg-stack.o differs
gcc/ggc-none.o differs
gcc/tree-ssa-tail-merge.o differs
gcc/loop-init.o differs
gcc/tree-vrp.o differs
gcc/emit-rtl.o differs
gcc/tree-vect-patterns.o differs
gcc/ipa-pure-const.o differs
gcc/ipa-prop.o differs
gcc/function.o differs
gcc/tree-vect-loop-manip.o differs
gcc/vtable-verify.o differs
gcc/tree-outof-ssa.o differs
gcc/edit-context.o differs
gcc/dominance.o differs
gcc/alias.o differs
gcc/df-core.o differs
gcc/tree-scalar-evolution.o differs
gcc/tree-ssa-pre.o differs
gcc/sese.o differs
gcc/ipa-icf-gimple.o differs
gcc/lra-constraints.o differs
gcc/calls.o differs
gcc/tree-into-ssa.o differs
gcc/loop-unroll.o differs
gcc/reload1.o differs
gcc/gengtype-state.o differs
gcc/opts-common.o differs
gcc/ipa-profile.o differs
gcc/bt-load.o differs
gcc/tree-chkp.o differs
gcc/cfghooks.o differs
gcc/tree-ssa-strlen.o differs
gcc/sched-deps.o differs
gcc/ipa-visibility.o differs
gcc/tree-ssa-loop.o differs
gcc/tree-vect-loop.o differs
gcc/ira-color.o differs
gcc/sel-sched-ir.o differs
gcc/omp-simd-clone.o differs
gcc/cp/constexpr.o differs
gcc/cp/vtable-class-hierarchy.o differs
gcc/cp/parser.o differs
gcc/cp/cp-array-notation.o differs
gcc/cp/class.o differs
gcc/cp/search.o differs
gcc/cp/semantics.o differs
gcc/cp/mangle.o differs
gcc/cp/name-lookup.o differs
gcc/cp/cp-gimplify.o differs
gcc/tree-stdarg.o differs
gcc/loop-iv.o differs
gcc/tree-ssa-loop-split.o differs
gcc/tree-ssa-threadupdate.o differs
gcc/tree-switch-conversion.o differs
gcc/graphite-poly.o differs
gcc/cgraphclones.o differs
gcc/tree-chkp-opt.o differs
gcc/tree-sra.o differs
gcc/tree-cfg.o differs
gcc/fortran/scanner.o differs
gcc/cfganal.o differs
gcc/c/c-parser.o differs
gcc/c/gimple-parser.o differs
gcc/c/c-decl.o differs
gcc/c/c-typeck.o differs
gcc/c/c-array-notation.o differs
gcc/tree-ssa-coalesce.o differs
gcc/shrink-wrap.o differs
gcc/tree-inline.o differs
gcc/tree-ssa-structalias.o differs
gcc/lto-streamer-out.o differs
gcc/sel-sched.o differs
gcc/tree-vectorizer.o differs
gcc/passes.o differs
gcc/tree-ssa-threadbackward.o differs
gcc/tree-ssa-alias.o differs
gcc/tree-dfa.o differs
gcc/lto-streamer-in.o differs
gcc/cfgloopmanip.o differs
gcc/cgraphunit.o differs
gcc/ggc-common.o differs
gcc/expr.o differs
gcc/value-prof.o differs
gcc/graphite-scop-detection.o differs
gcc/lto-section-out.o differs
gcc/ipa-cp.o differs
gcc/profile.o differs
gcc/cfgloop.o differs
gcc/tree-ssa-loop-ivopts.o differs
gcc/tree-ssa-loop-prefetch.o differs
gcc/lto-cgraph.o differs
gcc/ree.o differs
gcc/params.o differs
gcc/tree-ssa-threadedge.o differs
gcc/except.o differs
gcc/tree-ssa-loop-ch.o differs
gcc/objc/objc-act.o differs
gcc/lower-subreg.o differs
gcc/tree-data-ref.o differs
gcc/var-tracking.o differs
gcc/lto/lto.o differs
gcc/lto/lto-partition.o differs
gcc/ipa-inline.o differs
gcc/dumpfile.o differs
gcc/tree-if-conv.o differs
gcc/tree-ssa-reassoc.o differs
gcc/reginfo.o differs
gcc/tlink.o differs
gcc/input.o differs
gcc/tree-ssa-propagate.o differs
gcc/tree-call-cdce.o differs
gcc/cgraph.o differs
gcc/ddg.o differs
gcc/tree-predcom.o differs
gcc/tree-ssa-dom.o differs
gcc/ipa-utils.o differs
gcc/lra-lives.o differs
gcc/varasm.o differs
gcc/gimple-ssa-backprop.o differs
gcc/store-motion.o differs
gcc/i386.o differs
gcc/modulo-sched.o differs
gcc/tree-emutls.o differs
gcc/tree-ssa-uninit.o differs
gcc/opts-global.o differs
gcc/spellcheck.o differs
gcc/loop-invariant.o differs
gcc/coverage.o differs
gcc/ipa-reference.o differs
gcc/ira-build.o differs
gcc/opts.o differs
gcc/gcov-dump.o differs
gcc/c-family/cilk.o differs
gcc/c-family/c-omp.o differs
gcc/c-family/c-pragma.o differs
gcc/c-family/c-ada-spec.o differs
gcc/c-family/c-warn.o differs
gcc/c-family/array-notation-common.o differs
gcc/c-family/c-common.o differs
gcc/c-family/c-opts.o differs
gcc/c-family/c-format.o differs
gcc/libgcov-driver-tool.o differs
gcc/hsa-regalloc.o differs
gcc/diagnostic.o differs
gcc/tree-ssa-math-opts.o differs
gcc/cfgloopanal.o differs
gcc/gimple-low.o differs
gcc/ira-emit.o differs
libcpp/charset.o differs

Reply via email to