]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Merge in trunk.
authormrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Sep 2013 23:01:12 +0000 (23:01 +0000)
committermrs <mrs@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 20 Sep 2013 23:01:12 +0000 (23:01 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/wide-int@202802 138bc75d-0d04-0410-961f-82ee72b054a4

115 files changed:
1  2 
gcc/Makefile.in
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/trans.c
gcc/alias.c
gcc/asan.c
gcc/builtins.c
gcc/c-family/c-common.c
gcc/c/c-decl.c
gcc/c/c-typeck.c
gcc/cfgexpand.c
gcc/cfgloop.c
gcc/cgraph.c
gcc/cgraphunit.c
gcc/combine.c
gcc/config/aarch64/aarch64.c
gcc/config/alpha/alpha.c
gcc/config/arm/arm.c
gcc/config/bfin/bfin.c
gcc/config/darwin.c
gcc/config/i386/i386.c
gcc/config/rs6000/rs6000.c
gcc/coverage.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/error.c
gcc/cp/init.c
gcc/cp/parser.c
gcc/cp/semantics.c
gcc/cp/vtable-class-hierarchy.c
gcc/cse.c
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/dwarf2out.c
gcc/except.c
gcc/explow.c
gcc/expmed.c
gcc/expr.c
gcc/final.c
gcc/fold-const.c
gcc/fortran/Make-lang.in
gcc/function.c
gcc/gengtype.c
gcc/gimple-fold.c
gcc/gimple-pretty-print.c
gcc/gimple-ssa-strength-reduction.c
gcc/gimple.c
gcc/gimplify.c
gcc/go/gofrontend/expressions.cc
gcc/graphite-clast-to-gimple.c
gcc/graphite-scop-detection.c
gcc/graphite-sese-to-poly.c
gcc/ipa-cp.c
gcc/ipa-devirt.c
gcc/ipa-prop.c
gcc/loop-iv.c
gcc/loop-unroll.c
gcc/lto-streamer-in.c
gcc/lto-streamer-out.c
gcc/lto/lto.c
gcc/objc/objc-next-runtime-abi-01.c
gcc/objc/objc-next-runtime-abi-02.c
gcc/omp-low.c
gcc/optabs.c
gcc/predict.c
gcc/print-tree.c
gcc/simplify-rtx.c
gcc/targhooks.c
gcc/trans-mem.c
gcc/tree-call-cdce.c
gcc/tree-cfg.c
gcc/tree-chrec.c
gcc/tree-core.h
gcc/tree-data-ref.c
gcc/tree-dfa.c
gcc/tree-flow-inline.h
gcc/tree-flow.h
gcc/tree-inline.c
gcc/tree-mudflap.c
gcc/tree-object-size.c
gcc/tree-predcom.c
gcc/tree-pretty-print.c
gcc/tree-sra.c
gcc/tree-ssa-address.c
gcc/tree-ssa-alias.c
gcc/tree-ssa-ccp.c
gcc/tree-ssa-forwprop.c
gcc/tree-ssa-loop-im.c
gcc/tree-ssa-loop-ivcanon.c
gcc/tree-ssa-loop-ivopts.c
gcc/tree-ssa-loop-niter.c
gcc/tree-ssa-loop-prefetch.c
gcc/tree-ssa-math-opts.c
gcc/tree-ssa-phiopt.c
gcc/tree-ssa-pre.c
gcc/tree-ssa-reassoc.c
gcc/tree-ssa-sccvn.c
gcc/tree-ssa-strlen.c
gcc/tree-ssa-structalias.c
gcc/tree-ssa.c
gcc/tree-stdarg.c
gcc/tree-streamer-in.c
gcc/tree-switch-conversion.c
gcc/tree-vect-data-refs.c
gcc/tree-vect-generic.c
gcc/tree-vect-loop-manip.c
gcc/tree-vect-loop.c
gcc/tree-vect-patterns.c
gcc/tree-vect-stmts.c
gcc/tree-vrp.c
gcc/tree.c
gcc/tree.h
gcc/tsan.c
gcc/value-prof.c
gcc/var-tracking.c

diff --cc gcc/Makefile.in
index 1a775f467d6c7bf9387464fb1e24b0f374c5d5d6,a2e3f7af2baefe047eec5f4a1857bd9b11cb2ff4..b8d8a35e52ea3913951f9197a61f8b00ee956fa9
@@@ -946,7 -946,8 +946,8 @@@ TREE_PASS_H = tree-pass.h $(TIMEVAR_H) 
  TREE_FLOW_H = tree-flow.h tree-flow-inline.h tree-ssa-operands.h \
                $(BITMAP_H) sbitmap.h $(BASIC_BLOCK_H) $(GIMPLE_H) \
                $(HASHTAB_H) $(CGRAPH_H) $(IPA_REFERENCE_H) \
 -              tree-ssa-alias.h
 +              tree-ssa-alias.h wide-int.h
+ TREE_SSA_H = tree-ssa.h $(TREE_FLOW_H)
  TREE_HASHER_H = tree-hasher.h $(HASH_TABLE_H) $(TREE_FLOW_H)
  TREE_SSA_LIVE_H = tree-ssa-live.h $(PARTITION_H)
  SSAEXPAND_H = ssaexpand.h $(TREE_SSA_LIVE_H)
@@@ -2246,13 -2240,12 +2243,13 @@@ tree.o: tree.c $(CONFIG_H) $(SYSTEM_H) 
     all-tree.def $(FLAGS_H) $(FUNCTION_H) $(PARAMS_H) \
     toplev.h $(DIAGNOSTIC_CORE_H) $(GGC_H) $(HASHTAB_H) $(TARGET_H) output.h $(TM_P_H) \
     langhooks.h gt-tree.h $(TREE_INLINE_H) tree-iterator.h \
-    $(BASIC_BLOCK_H) $(TREE_FLOW_H) $(OBSTACK_H) pointer-set.h \
+    $(BASIC_BLOCK_H) $(TREE_SSA_H) $(OBSTACK_H) pointer-set.h \
     $(TREE_PASS_H) $(LANGHOOKS_DEF_H) $(DIAGNOSTIC_H) $(CGRAPH_H) \
     $(EXCEPT_H) debug.h intl.h tree-diagnostic.h $(TREE_PRETTY_PRINT_H) \
 -   $(COMMON_TARGET_H)
 +   $(COMMON_TARGET_H) wide-int.h
  tree-dump.o: tree-dump.c $(CONFIG_H) $(SYSTEM_H) $(TM_H) $(TREE_H) \
 -   langhooks.h $(TREE_DUMP_H) tree-iterator.h $(TREE_PRETTY_PRINT_H)
 +   langhooks.h $(TREE_DUMP_H) tree-iterator.h $(TREE_PRETTY_PRINT_H) \
 +   wide-int.h wide-int-print.h
  tree-inline.o : tree-inline.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
     $(TREE_H) $(RTL_H) $(FLAGS_H) $(PARAMS_H) $(INPUT_H) insn-config.h \
     $(HASHTAB_H) langhooks.h $(TREE_INLINE_H) $(CGRAPH_H) \
     $(TREE_PRETTY_PRINT_H)
  print-tree.o : print-tree.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(DUMPFILE_H) \
     $(TM_H) $(TREE_H) $(GGC_H) langhooks.h tree-iterator.h \
-    $(DIAGNOSTIC_H) $(TREE_FLOW_H) $(GIMPLE_PRETTY_PRINT_H) $(TREE_DUMP_H) \
 -   $(DIAGNOSTIC_H) $(TREE_SSA_H) $(GIMPLE_PRETTY_PRINT_H) $(TREE_DUMP_H)
++   $(DIAGNOSTIC_H) $(TREE_SSA_H) $(GIMPLE_PRETTY_PRINT_H) $(TREE_DUMP_H) \
 +   wide-int-print.h
  stor-layout.o : stor-layout.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
     $(TREE_H) $(PARAMS_H) $(FLAGS_H) $(FUNCTION_H) $(EXPR_H) $(RTL_H) \
     $(GGC_H) $(TM_P_H) $(TARGET_H) langhooks.h $(REGS_H) gt-stor-layout.h \
@@@ -2418,10 -2410,10 +2415,10 @@@ tree-ssa-sccvn.o : tree-ssa-sccvn.c $(T
  gimple-ssa-strength-reduction.o : gimple-ssa-strength-reduction.c $(CONFIG_H) \
     $(SYSTEM_H) coretypes.h $(TREE_H) $(GIMPLE_H) $(BASIC_BLOCK_H) \
     $(HASH_TABLE_H) $(TREE_PASS_H) $(CFGLOOP_H) $(TREE_PRETTY_PRINT_H) \
-    $(GIMPLE_PRETTY_PRINT_H) alloc-pool.h $(TREE_FLOW_H) domwalk.h \
+    $(GIMPLE_PRETTY_PRINT_H) alloc-pool.h $(TREE_SSA_H) domwalk.h \
 -   pointer-set.h expmed.h
 +   pointer-set.h expmed.h wide-int-print.h
  tree-vrp.o : tree-vrp.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) \
-    $(TREE_FLOW_H) $(TREE_PASS_H) $(DIAGNOSTIC_CORE_H) $(GGC_H) \
+    $(TREE_SSA_H) $(TREE_PASS_H) $(DIAGNOSTIC_CORE_H) $(GGC_H) \
     $(BASIC_BLOCK_H) tree-ssa-propagate.h $(FLAGS_H) $(TREE_DUMP_H) \
     $(CFGLOOP_H) $(SCEV_H) intl.h \
     $(GIMPLE_PRETTY_PRINT_H) gimple-fold.h $(OPTABS_H) $(EXPR_H)
@@@ -2429,9 -2421,9 +2426,9 @@@ tree-cfg.o : tree-cfg.c $(TREE_SSA_H) $
     $(TREE_H) $(TM_P_H) $(GGC_H) $(FLAGS_H) $(TARGET_H) \
     $(DIAGNOSTIC_CORE_H) $(FUNCTION_H) $(TM_H) coretypes.h \
     $(TREE_DUMP_H) $(EXCEPT_H) $(CFGLOOP_H) $(TREE_PASS_H) \
 -   $(BASIC_BLOCK_H) \
 +   $(BASIC_BLOCK_H) wide-int.h  wide-int-print.h \
     value-prof.h tree-ssa-propagate.h $(TREE_INLINE_H) $(GIMPLE_PRETTY_PRINT_H)
- tree-cfgcleanup.o : tree-cfgcleanup.c $(TREE_FLOW_H) $(CONFIG_H) $(SYSTEM_H) \
+ tree-cfgcleanup.o : tree-cfgcleanup.c $(TREE_SSA_H) $(CONFIG_H) $(SYSTEM_H) \
     $(TREE_H) $(TM_P_H) $(GGC_H) $(FLAGS_H) \
     $(DIAGNOSTIC_CORE_H) $(FUNCTION_H) $(TM_H) coretypes.h \
     $(EXCEPT_H) langhooks.h $(CFGLOOP_H) $(TREE_PASS_H) \
@@@ -2487,14 -2479,13 +2484,14 @@@ tree-ssa-address.o : tree-ssa-address.
     $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(DUMPFILE_H) \
     $(FLAGS_H) $(TREE_INLINE_H) $(RECOG_H) insn-config.h \
     $(EXPR_H) gt-tree-ssa-address.h $(GGC_H) tree-affine.h $(TARGET_H) \
 -   $(TREE_PRETTY_PRINT_H) expmed.h
 +   $(TREE_PRETTY_PRINT_H) expmed.h wide-int-print.h
- tree-ssa-loop-niter.o : tree-ssa-loop-niter.c $(TREE_FLOW_H) $(CONFIG_H) \
+ tree-ssa-loop-niter.o : tree-ssa-loop-niter.c $(TREE_SSA_H) $(CONFIG_H) \
     $(SYSTEM_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) \
     $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(TM_H) coretypes.h $(DUMPFILE_H) \
     $(DIAGNOSTIC_CORE_H) $(FLAGS_H) $(TREE_DATA_REF_H) \
 -   $(BASIC_BLOCK_H) $(GGC_H) intl.h $(GIMPLE_PRETTY_PRINT_H) $(TREE_PASS_H)
 +   $(BASIC_BLOCK_H) $(GGC_H) intl.h $(GIMPLE_PRETTY_PRINT_H) $(TREE_PASS_H) \
 +   wide-int-print.h
- tree-ssa-loop-ivcanon.o : tree-ssa-loop-ivcanon.c $(TREE_FLOW_H) $(CONFIG_H) \
+ tree-ssa-loop-ivcanon.o : tree-ssa-loop-ivcanon.c $(TREE_SSA_H) $(CONFIG_H) \
     $(SYSTEM_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(PARAMS_H) \
     $(TREE_INLINE_H) $(DIAGNOSTIC_H) $(TM_H) coretypes.h \
     $(FLAGS_H) $(TREE_PASS_H) $(SCEV_H) $(BASIC_BLOCK_H) $(TARGET_H) \
@@@ -2511,10 -2502,10 +2508,10 @@@ tree-ssa-loop-prefetch.o: tree-ssa-loop
     $(DIAGNOSTIC_CORE_H) langhooks.h $(TREE_INLINE_H) $(TREE_DATA_REF_H) \
     $(OPTABS_H) $(TREE_PRETTY_PRINT_H)
  tree-predcom.o: tree-predcom.c $(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(TM_P_H) \
-    $(CFGLOOP_H) $(TREE_FLOW_H) $(GGC_H) $(TREE_DATA_REF_H) \
+    $(CFGLOOP_H) $(TREE_SSA_H) $(GGC_H) $(TREE_DATA_REF_H) \
     $(PARAMS_H) $(DIAGNOSTIC_H) $(TREE_PASS_H) $(TM_H) coretypes.h \
 -   tree-affine.h $(TREE_INLINE_H) $(TREE_PRETTY_PRINT_H)
 +   tree-affine.h $(TREE_INLINE_H) $(TREE_PRETTY_PRINT_H) wide-int-print.h
- tree-ssa-loop-ivopts.o : tree-ssa-loop-ivopts.c $(TREE_FLOW_H) $(CONFIG_H) \
+ tree-ssa-loop-ivopts.o : tree-ssa-loop-ivopts.c $(TREE_SSA_H) $(CONFIG_H) \
     $(SYSTEM_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) $(EXPR_H) \
     $(DIAGNOSTIC_H) $(TM_H) coretypes.h \
     $(TREE_PASS_H) $(GGC_H) $(RECOG_H) insn-config.h $(HASH_TABLE_H) $(SCEV_H) \
  tree-affine.o : tree-affine.c tree-affine.h $(CONFIG_H) pointer-set.h \
     $(SYSTEM_H) $(TREE_H) $(GIMPLE_H) \
     coretypes.h $(DUMPFILE_H) $(FLAGS_H) \
 -   $(TREE_PRETTY_PRINT_H)
 +   $(TREE_PRETTY_PRINT_H) wide-int-print.h wide-int.h
- tree-ssa-loop-manip.o : tree-ssa-loop-manip.c $(TREE_FLOW_H) $(CONFIG_H) \
+ tree-ssa-loop-manip.o : tree-ssa-loop-manip.c $(TREE_SSA_H) $(CONFIG_H) \
     $(SYSTEM_H) coretypes.h $(DUMPFILE_H) $(TM_H) $(TREE_H) \
-    $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_FLOW_H) \
+    $(BASIC_BLOCK_H) $(DIAGNOSTIC_H) $(TREE_SSA_H) \
     $(CFGLOOP_H) $(TREE_PASS_H) \
     $(SCEV_H) $(PARAMS_H) $(TREE_INLINE_H) langhooks.h
- tree-ssa-loop-im.o : tree-ssa-loop-im.c $(TREE_FLOW_H) $(CONFIG_H) \
+ tree-ssa-loop-im.o : tree-ssa-loop-im.c $(TREE_SSA_H) $(CONFIG_H) \
     $(SYSTEM_H) $(HASH_TABLE_H) $(TREE_H) $(TM_P_H) $(CFGLOOP_H) domwalk.h \
     $(PARAMS_H) $(DIAGNOSTIC_H) $(TM_H) coretypes.h \
     $(TREE_PASS_H) $(FLAGS_H) $(BASIC_BLOCK_H) \
@@@ -2703,9 -2694,9 +2700,9 @@@ tree-nomudflap.o : $(CONFIG_H) $(SYSTEM
     output.h langhooks.h tree-mudflap.h $(TM_H) coretypes.h \
     $(GGC_H) gt-tree-mudflap.h $(TREE_PASS_H) $(DIAGNOSTIC_CORE_H)
  tree-pretty-print.o : tree-pretty-print.c $(CONFIG_H) $(SYSTEM_H) \
-    $(TREE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) $(TREE_FLOW_H) \
+    $(TREE_H) $(DIAGNOSTIC_H) $(HASHTAB_H) $(TREE_SSA_H) \
     $(TM_H) coretypes.h $(DUMPFILE_H) tree-iterator.h $(SCEV_H) langhooks.h \
 -   value-prof.h output.h $(TREE_PRETTY_PRINT_H)
 +   value-prof.h output.h $(TREE_PRETTY_PRINT_H) wide-int-print.h
  tree-diagnostic.o : tree-diagnostic.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
     $(DUMPFILE_H) \
     $(TREE_H) $(DIAGNOSTIC_H) tree-diagnostic.h langhooks.h $(LANGHOOKS_DEF_H) \
@@@ -2732,11 -2723,9 +2729,11 @@@ targhooks.o : targhooks.c $(CONFIG_H) $
     $(EXPR_H) $(TM_H) $(RTL_H) $(TM_P_H) $(FUNCTION_H) output.h $(DIAGNOSTIC_CORE_H) \
     $(MACHMODE_H) $(TARGET_DEF_H) $(TARGET_H) $(GGC_H) gt-targhooks.h \
     $(OPTABS_H) $(RECOG_H) $(REGS_H) reload.h hard-reg-set.h intl.h $(OPTS_H) \
-    tree-ssa-alias.h $(TREE_FLOW_H)
+    tree-ssa-alias.h $(TREE_SSA_H)
  common/common-targhooks.o : common/common-targhooks.c $(CONFIG_H) $(SYSTEM_H) \
     coretypes.h $(INPUT_H) $(TM_H) $(COMMON_TARGET_H) common/common-targhooks.h
 +wide-int.o: wide-int.cc $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) wide-int.h
 +wide-int-print.o: wide-int-print.cc wide-int-print.h wide-int.h
  
  bversion.h: s-bversion; @true
  s-bversion: BASE-VER
@@@ -3108,17 -3097,17 +3105,17 @@@ tree-ssa-ccp.o : tree-ssa-ccp.c $(TREE_
     $(BASIC_BLOCK_H) $(TREE_PASS_H) langhooks.h  $(PARAMS_H) \
     tree-ssa-propagate.h value-prof.h $(FLAGS_H) $(TARGET_H) \
     $(DIAGNOSTIC_CORE_H) $(HASH_TABLE_H) \
 -   $(DBGCNT_H) $(GIMPLE_PRETTY_PRINT_H) gimple-fold.h
 +   $(DBGCNT_H) $(GIMPLE_PRETTY_PRINT_H) gimple-fold.h wide-int-print.h
  tree-ssa-strlen.o : tree-ssa-strlen.c $(CONFIG_H) $(SYSTEM_H) coretypes.h \
-    $(TREE_FLOW_H) $(TREE_PASS_H) domwalk.h alloc-pool.h tree-ssa-propagate.h \
+    $(TREE_SSA_H) $(TREE_PASS_H) domwalk.h alloc-pool.h tree-ssa-propagate.h \
     $(GIMPLE_PRETTY_PRINT_H) $(PARAMS_H) $(EXPR_H) $(HASH_TABLE_H)
  tree-sra.o : tree-sra.c $(CONFIG_H) $(SYSTEM_H) coretypes.h alloc-pool.h \
-    $(HASH_TABLE_H) $(TM_H) $(TREE_H) $(GIMPLE_H) $(CGRAPH_H) $(TREE_FLOW_H) \
+    $(HASH_TABLE_H) $(TM_H) $(TREE_H) $(GIMPLE_H) $(CGRAPH_H) $(TREE_SSA_H) \
     $(IPA_PROP_H) $(DIAGNOSTIC_H) statistics.h \
     $(PARAMS_H) $(TARGET_H) $(FLAGS_H) \
-    $(DBGCNT_H) $(TREE_INLINE_H) $(GIMPLE_PRETTY_PRINT_H)
+    $(DBGCNT_H) $(TREE_INLINE_H) $(GIMPLE_PRETTY_PRINT_H) ipa-utils.h
  tree-switch-conversion.o : tree-switch-conversion.c $(CONFIG_H) $(SYSTEM_H) \
-     $(TREE_H) $(TM_P_H) $(TREE_FLOW_H) $(DIAGNOSTIC_H) $(TREE_INLINE_H) \
+     $(TREE_H) $(TM_P_H) $(TREE_SSA_H) $(DIAGNOSTIC_H) $(TREE_INLINE_H) \
      $(TM_H) coretypes.h $(GIMPLE_H) $(CFGLOOP_H) \
      $(TREE_PASS_H) $(FLAGS_H) $(EXPR_H) $(BASIC_BLOCK_H) \
      $(GGC_H) $(OBSTACK_H) $(PARAMS_H) $(CPPLIB_H) $(PARAMS_H) \
@@@ -3455,8 -3444,8 +3452,8 @@@ final.o : final.c $(CONFIG_H) $(SYSTEM_
     $(EXCEPT_H) debug.h xcoffout.h toplev.h $(DIAGNOSTIC_CORE_H) reload.h $(DWARF2OUT_H) \
     $(TREE_PASS_H) $(BASIC_BLOCK_H) $(TM_P_H) $(TARGET_H) $(EXPR_H) \
     dbxout.h $(CGRAPH_H) $(COVERAGE_H) \
-    $(DF_H) $(GGC_H) $(CFGLOOP_H) $(PARAMS_H) $(TREE_FLOW_H) \
+    $(DF_H) $(GGC_H) $(CFGLOOP_H) $(PARAMS_H) $(TREE_SSA_H) \
 -   $(TARGET_DEF_H) $(TREE_PRETTY_PRINT_H)
 +   $(TARGET_DEF_H) $(TREE_PRETTY_PRINT_H) wide-int-print.h
  recog.o : recog.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_ERROR_H) \
     $(FUNCTION_H) $(BASIC_BLOCK_H) $(REGS_H) $(RECOG_H) $(EXPR_H) \
     $(FLAGS_H) insn-config.h $(INSN_ATTR_H) reload.h \
Simple merge
Simple merge
diff --cc gcc/alias.c
Simple merge
diff --cc gcc/asan.c
Simple merge
diff --cc gcc/builtins.c
Simple merge
Simple merge
diff --cc gcc/c/c-decl.c
Simple merge
Simple merge
diff --cc gcc/cfgexpand.c
Simple merge
diff --cc gcc/cfgloop.c
Simple merge
diff --cc gcc/cgraph.c
Simple merge
Simple merge
diff --cc gcc/combine.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/coverage.c
Simple merge
diff --cc gcc/cp/class.c
Simple merge
Simple merge
diff --cc gcc/cp/decl.c
Simple merge
diff --cc gcc/cp/error.c
Simple merge
diff --cc gcc/cp/init.c
Simple merge
diff --cc gcc/cp/parser.c
Simple merge
Simple merge
Simple merge
diff --cc gcc/cse.c
Simple merge
diff --cc gcc/doc/tm.texi
Simple merge
Simple merge
diff --cc gcc/dwarf2out.c
Simple merge
diff --cc gcc/except.c
Simple merge
diff --cc gcc/explow.c
Simple merge
diff --cc gcc/expmed.c
index d42341c6536f1eac89dda8adfedda984b208c136,ba9a7b68c42823777c7c5474db7de141f5135deb..b504a4e2f9f52478d636cb54a9fa3ef293074df8
@@@ -55,7 -55,8 +55,7 @@@ static void store_split_bit_field (rtx
  static rtx extract_fixed_bit_field (enum machine_mode, rtx,
                                    unsigned HOST_WIDE_INT,
                                    unsigned HOST_WIDE_INT, rtx, int, bool);
- static rtx lshift_value (enum machine_mode, rtx, int, int);
 -static rtx mask_rtx (enum machine_mode, int, int, int);
+ static rtx lshift_value (enum machine_mode, unsigned HOST_WIDE_INT, int);
  static rtx extract_split_bit_field (rtx, unsigned HOST_WIDE_INT,
                                    unsigned HOST_WIDE_INT, int);
  static void do_cmp_and_jump (rtx, rtx, enum rtx_code, enum machine_mode, rtx);
@@@ -1852,15 -1840,40 +1852,17 @@@ extract_fixed_bit_field (enum machine_m
    return expand_shift (RSHIFT_EXPR, mode, op0,
                       GET_MODE_BITSIZE (mode) - bitsize, target, 0);
  }
- /* Return a constant integer rtx with the value VALUE truncated to
-    BITSIZE bits and then shifted left BITPOS bits.  */
 -\f
 -/* Return a constant integer (CONST_INT or CONST_DOUBLE) mask value
 -   of mode MODE with BITSIZE ones followed by BITPOS zeros, or the
 -   complement of that if COMPLEMENT.  The mask is truncated if
 -   necessary to the width of mode MODE.  The mask is zero-extended if
 -   BITSIZE+BITPOS is too small for MODE.  */
 -
 -static rtx
 -mask_rtx (enum machine_mode mode, int bitpos, int bitsize, int complement)
 -{
 -  double_int mask;
 -
 -  mask = double_int::mask (bitsize);
 -  mask = mask.llshift (bitpos, HOST_BITS_PER_DOUBLE_INT);
 -
 -  if (complement)
 -    mask = ~mask;
 -
 -  return immed_double_int_const (mask, mode);
 -}
+ /* Return a constant integer (CONST_INT or CONST_DOUBLE) rtx with the value
+    VALUE << BITPOS.  */
  
  static rtx
- lshift_value (enum machine_mode mode, rtx value, int bitpos, int bitsize)
+ lshift_value (enum machine_mode mode, unsigned HOST_WIDE_INT value,
+             int bitpos)
  {
 -  double_int val;
 -  
 -  val = double_int::from_uhwi (value);
 -  val = val.llshift (bitpos, HOST_BITS_PER_DOUBLE_INT);
 -
 -  return immed_double_int_const (val, mode);
 +  return 
-     immed_wide_int_const (wi::lshift (wi::zext (std::make_pair (value, mode),
-                                               bitsize), bitpos), mode);
++    immed_wide_int_const (wi::lshift (max_wide_int (value),
++                                    bitpos), mode);
  }
  \f
  /* Extract a bit field that is split across two words
diff --cc gcc/expr.c
Simple merge
diff --cc gcc/final.c
Simple merge
index e87a31cd8eccba122b9d5d35086c02bd5c44fd4e,d23c1737ed33fb668918d9e0b9b2137383694bcc..ab94704631e133645eb54b402b63eb89015be63a
@@@ -11215,10 -11282,12 +11233,11 @@@ fold_binary_loc (location_t loc
          && TREE_CODE (arg1) == INTEGER_CST
          && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
        {
 -        double_int c1, c2, c3, msk;
 +        wide_int c1, c2, c3, msk;
          int width = TYPE_PRECISION (type), w;
 -
 -        c1 = tree_to_double_int (TREE_OPERAND (arg0, 1));
 -        c2 = tree_to_double_int (arg1);
+         bool try_simplify = true;
 +        c1 = TREE_OPERAND (arg0, 1);
 +        c2 = arg1;
  
          /* If (C1&C2) == C1, then (X&C1)|C2 becomes (X,C2).  */
          if ((c1 & c2) == c1)
          && TREE_CODE (arg0) == MULT_EXPR
          && TREE_CODE (TREE_OPERAND (arg0, 1)) == INTEGER_CST)
        {
++<<<<<<< .working
 +        int arg1tz = wi::ctz (TREE_OPERAND (arg0, 1));
 +        if (arg1tz > 0)
 +          {
 +            wide_int arg1mask, masked;
 +            arg1mask = wi::mask (arg1tz, true, TYPE_PRECISION (type));
 +            masked = arg1mask & arg1;
 +            if (masked == 0)
 +              return omit_two_operands_loc (loc, type, build_zero_cst (type),
 +                                            arg0, arg1);
 +            else if (masked != arg1)
 +              return fold_build2_loc (loc, code, type, op0,
 +                                      wide_int_to_tree (type, masked));
 +          }
++=======
+         double_int masked
+           = mask_with_tz (type, tree_to_double_int (arg1),
+                           tree_to_double_int (TREE_OPERAND (arg0, 1)));
+         if (masked.is_zero ())
+           return omit_two_operands_loc (loc, type, build_zero_cst (type),
+                                         arg0, arg1);
+         else if (masked != tree_to_double_int (arg1))
+           return fold_build2_loc (loc, code, type, op0,
+                                   double_int_to_tree (type, masked));
++>>>>>>> .merge-right.r202797
        }
  
        /* For constants M and N, if M == (1LL << cst) - 1 && (N & M) == M,
Simple merge
diff --cc gcc/function.c
Simple merge
diff --cc gcc/gengtype.c
index 1dd1c61124906384252df21b6e73e60900b84bba,ce60c788012406104fb1615bb419bcd22b334158..ed2399145edce440d2a57ed06099c9e6b468b0ec
@@@ -1732,10 -1733,10 +1732,10 @@@ open_base_files (void
      static const char *const ifiles[] = {
        "config.h", "system.h", "coretypes.h", "tm.h",
        "hashtab.h", "splay-tree.h", "obstack.h", "bitmap.h", "input.h",
 -      "tree.h", "rtl.h", "function.h", "insn-config.h", "expr.h",
 +      "tree.h", "rtl.h", "wide-int.h", "function.h", "insn-config.h", "expr.h",
        "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
        "optabs.h", "libfuncs.h", "debug.h", "ggc.h", "cgraph.h",
-       "tree-flow.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
+       "tree-ssa.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
        "except.h", "output.h", "gimple.h", "cfgloop.h",
        "target.h", "ipa-prop.h", "lto-streamer.h", "target-globals.h",
        "ipa-inline.h", "dwarf2out.h", NULL
index c125ba486e06a7dcebc272d98ced258857597166,51713e64655055bf0644576313b01e7a466118eb..97e6cb13e7f4ac249b2e5dcc6dbcf2d2a2bc75d3
@@@ -3133,10 -3146,10 +3147,10 @@@ gimple_get_virt_method_for_binfo (HOST_
        return NULL_TREE;
      }
    gcc_checking_assert (TREE_CODE (TREE_TYPE (v)) == ARRAY_TYPE);
 -  size = tree_low_cst (TYPE_SIZE (TREE_TYPE (TREE_TYPE (v))), 1);
 +  size = tree_to_uhwi (TYPE_SIZE (TREE_TYPE (TREE_TYPE (v))));
    offset += token * size;
    fn = fold_ctor_reference (TREE_TYPE (TREE_TYPE (v)), init,
-                           offset, size, vtable);
+                           offset, size, v);
    if (!fn || integer_zerop (fn))
      return NULL_TREE;
    gcc_assert (TREE_CODE (fn) == ADDR_EXPR
Simple merge
index 024dffe15eb4ecc8ea7a95e639d29e41c231182d,8d48adde01d4f530ff2dd88732c00fb828582f28..7a089cd0d39d5177a391bd554af52ddd73afaefe
@@@ -769,16 -818,24 +820,23 @@@ backtrace_base_for_ref (tree *pbase
  
      *PBASE:    T1
      *POFFSET:  MULT_EXPR (T2, C3)
-     *PINDEX:   C1 + (C2 * C3) + C4  */
+     *PINDEX:   C1 + (C2 * C3) + C4
+    When T2 is recorded by a CAND_ADD in the form of (T2' + C5), it
+    will be further restructured to:
+     *PBASE:    T1
+     *POFFSET:  MULT_EXPR (T2', C3)
+     *PINDEX:   C1 + (C2 * C3) + C4 + (C5 * C3)  */
  
  static bool
 -restructure_reference (tree *pbase, tree *poffset, double_int *pindex,
 +restructure_reference (tree *pbase, tree *poffset, max_wide_int *pindex,
                       tree *ptype)
  {
    tree base = *pbase, offset = *poffset;
 -  double_int index = *pindex;
 -  double_int bpu = double_int::from_uhwi (BITS_PER_UNIT);
 -  tree mult_op0, mult_op1, t1, t2, type;
 -  double_int c1, c2, c3, c4, c5;
 +  max_wide_int index = *pindex;
 +  tree mult_op0, t1, t2, type;
-   max_wide_int c1, c2, c3, c4;
++  max_wide_int c1, c2, c3, c4, c5;
  
    if (!base
        || !offset
    else
      {
        t2 = mult_op0;
 -      c2 = double_int_zero;
 +      c2 = 0;
      }
  
 -  c4 = index.udiv (bpu, FLOOR_DIV_EXPR);
 +  c4 = wi::udiv_floor (index, BITS_PER_UNIT);
+   c5 = backtrace_base_for_ref (&t2);
  
    *pbase = t1;
-   *poffset = fold_build2 (MULT_EXPR, sizetype, t2,
+   *poffset = fold_build2 (MULT_EXPR, sizetype, fold_convert (sizetype, t2),
 -                        double_int_to_tree (sizetype, c3));
 +                        wide_int_to_tree (sizetype, c3));
-   *pindex = c1 + c2 * c3 + c4;
+   *pindex = c1 + c2 * c3 + c4 + c5 * c3;
    *ptype = type;
  
    return true;
diff --cc gcc/gimple.c
Simple merge
diff --cc gcc/gimplify.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/ipa-cp.c
Simple merge
Simple merge
diff --cc gcc/ipa-prop.c
Simple merge
diff --cc gcc/loop-iv.c
Simple merge
index 0b46f1d8399aff1bf46de9b78628111fb1d07abb,95d58209224f6fd69567c2f66a6758c83a5d11b4..b2587bb6aee1c2cfe1e0772a2c9c0c619c9f3914
@@@ -1304,12 -1309,16 +1303,12 @@@ unroll_loop_runtime_iterations (struct 
    gcc_assert (!desc->const_iter);
    desc->niter_expr =
      simplify_gen_binary (UDIV, desc->mode, old_niter,
-                        GEN_INT (max_unroll + 1));
+                        gen_int_mode (max_unroll + 1, desc->mode));
    loop->nb_iterations_upper_bound
 -    = loop->nb_iterations_upper_bound.udiv (double_int::from_uhwi (max_unroll
 -                                                                 + 1),
 -                                          TRUNC_DIV_EXPR);
 +    = wi::udiv_trunc (loop->nb_iterations_upper_bound, max_unroll + 1);
    if (loop->any_estimate)
      loop->nb_iterations_estimate
 -      = loop->nb_iterations_estimate.udiv (double_int::from_uhwi (max_unroll
 -                                                                + 1),
 -                                         TRUNC_DIV_EXPR);
 +      = wi::udiv_trunc (loop->nb_iterations_estimate, max_unroll + 1);
    if (exit_at_end)
      {
        desc->niter_expr =
Simple merge
Simple merge
diff --cc gcc/lto/lto.c
Simple merge
Simple merge
Simple merge
diff --cc gcc/omp-low.c
Simple merge
diff --cc gcc/optabs.c
Simple merge
diff --cc gcc/predict.c
Simple merge
index 1413af6f95f8c9938e1c097f35a8968415e023a3,22f007879dbc0a3fa7c3ef9c81adecb1eb38f6a6..c3272e223c42e9cb274362781e806efdcd637bec
@@@ -28,10 -28,9 +28,10 @@@ along with GCC; see the file COPYING3
  #include "tree-iterator.h"
  #include "diagnostic.h"
  #include "gimple-pretty-print.h" /* FIXME */
- #include "tree-flow.h"
+ #include "tree-ssa.h"
  #include "tree-dump.h"
  #include "dumpfile.h"
 +#include "wide-int-print.h"
  
  /* Define the hash table of nodes already seen.
     Such nodes are not repeated; brief cross-references are used.  */
Simple merge
diff --cc gcc/targhooks.c
Simple merge
diff --cc gcc/trans-mem.c
Simple merge
Simple merge
diff --cc gcc/tree-cfg.c
Simple merge
Simple merge
diff --cc gcc/tree-core.h
Simple merge
Simple merge
diff --cc gcc/tree-dfa.c
Simple merge
Simple merge
diff --cc gcc/tree-flow.h
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/tree-sra.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc gcc/tree-ssa.c
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
index c51b3e2c31667a88503fd38c6054810fd2a975b4,2871ba1ce751501f37f577acc46aad16a4ebcbb0..76b64dd4102f89b30c84b8a5ec7f38b76afcac44
@@@ -1239,9 -1262,10 +1262,10 @@@ vect_analyze_loop_form (struct loop *lo
            dump_printf_loc (MSG_NOTE, vect_location,
                           "Symbolic number of iterations is ");
          dump_generic_expr (MSG_NOTE, TDF_DETAILS, number_of_iterations);
+           dump_printf (MSG_NOTE, "\n");
          }
      }
 -  else if (TREE_INT_CST_LOW (number_of_iterations) == 0)
 +  else if (tree_to_hwi (number_of_iterations) == 0)
      {
        if (dump_enabled_p ())
        dump_printf_loc (MSG_MISSED_OPTIMIZATION, vect_location,
@@@ -4134,9 -4175,9 +4175,9 @@@ vect_create_epilog_for_reduction (vec<t
  
            if (dump_enabled_p ())
              dump_printf_loc (MSG_NOTE, vect_location,
-                            "Reduce using scalar code. ");
+                            "Reduce using scalar code.\n");
  
 -          vec_size_in_bits = tree_low_cst (TYPE_SIZE (vectype), 1);
 +          vec_size_in_bits = tree_to_uhwi (TYPE_SIZE (vectype));
            FOR_EACH_VEC_ELT (new_phis, i, new_phi)
              {
                if (gimple_code (new_phi) == GIMPLE_PHI)
Simple merge
Simple merge
diff --cc gcc/tree-vrp.c
Simple merge
diff --cc gcc/tree.c
Simple merge
diff --cc gcc/tree.h
Simple merge
diff --cc gcc/tsan.c
Simple merge
Simple merge
Simple merge