1. 14 Dec, 2015 6 commits
  2. 13 Dec, 2015 9 commits
    • [PR67355] drop dummy zero from reverse VTA ops, fix infinite recursion · c779924e
      VTA's cselib expression hashing compares expressions with the same
      hash before adding them to the hash table.  When there is a collision
      involving a self-referencing expression, we could get infinite
      recursion, in spite of the cycle breakers already in place.  The
      problem is currently latent in the trunk, because by chance we don't
      get a collision.
      
      Such value cycles are often introduced by reverse_op; most often,
      they're indirect, and then value canonicalization takes care of the
      cycle, but if the reverse operation simplifies to the original value,
      we used to issue a (plus V (const_int 0)), because at some point
      adding a plain value V to a location list as a reverse_op equivalence
      caused other problems.
      
      This dummy zero, in turn, caused the value canonicalizer to not fully
      realize the equivalence, leading to more complex graphs and,
      occasionally, to infinite recursion when comparing such
      value-plus-zero expressions recursively.
      
      Simply using V solves the infinite recursion from the PR testcase,
      since the extra equivalence and the preexisting value canonicalization
      together prevent recursion while the unrecognized equivalence
      wouldn't, but it exposed another infinite recursion in
      memrefs_conflict_p: get_addr had a cycle breaker in place, to skip RTL
      referencing values introduced after the one we're examining, but it
      wouldn't break the cycle if the value itself appeared in the
      expression being examined.
      
      After removing the dummy zero above, this kind of cycle in the
      equivalence graph is no longer introduced by VTA itself, but dummy
      zeros are also present in generated code, such as in the 32-bit x86's
      pro_epilogue_adjust_stack_si_add epilogue insn generated as part of
      the builtin longjmp in _Unwind_RaiseException building libgcc's
      unwind-dw2.o.  So, break the recursion cycle for them too.
      
      
      for  gcc/ChangeLog
      
      	PR debug/67355
      	* var-tracking.c (reverse_op): Don't add dummy zero to reverse
      	ops that simplify back to the original value.
      	* alias.c (refs_newer_value_p): Cut off recursion for
      	expressions containing the original value.
      
      From-SVN: r231599
      Alexandre Oliva committed
    • * gcc.dg/graphite/pr42729.c: XFAIL AIX. · 8454aad3
      From-SVN: r231598
      David Edelsohn committed
    • [PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k · dcca1b05
      [PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k
      	* config/m68k/m68k.md (load feeding clear byte): New peephole2.
      
      	* gcc.target/m68k/pr19201.c: New test.
      
      From-SVN: r231597
      Kazu Kirata committed
    • [PATCH] m68k testsuite TLC · d686d806
      	* gcc.target/m68k/pr63347.c: Remove #include <stdlib> add -w to
      	command line options.
      	* gcc.target/m68k/20090709-1.c: Adjust expected output.
      
      From-SVN: r231596
      Jeff Law committed
    • Handle sizes and kinds params of GOACC_paralllel in find_func_clobbers · 40e2341e
      2015-12-13  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-ssa-structalias.c (find_func_clobbers): Handle sizes and kinds
      	parameters of GOACC_paralllel.
      
      From-SVN: r231595
      Tom de Vries committed
    • cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data. · 7fa658c2
      
      	* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
      	flag to lto_get_section_data.
      	* varpool.c (varpool_node::get_constructor): Likewise.
      	* lto-section-in.c (lto_get_section_data): Add new flag decompress.
      	(lto_free_section_data): Likewise.
      	(lto_get_raw_section_data): New function.
      	(lto_free_raw_section_data): New function.
      	(copy_function_or_variable): Copy sections w/o decompressing.
      	(lto_output_decl_state_refs): Picke compressed bit.
      	* lto-streamer.h (lto_in_decl_state): New flag compressed.
      	(lto_out_decl_state): Likewise.
      	(lto_get_section_data, lto_free_section_data): Update prototypes
      	(lto_get_raw_section_data, lto_free_raw_section_data): Declare.
      	(lto_write_raw_data): Declare.
      	(lto_begin_section): Remove FIXME.
      	(lto_write_raw_data): New function.
      	(lto_write_stream): Remove FIXME.
      	(lto_new_out_decl_state): Set compressed flag.
      
      From-SVN: r231594
      Jan Hubicka committed
    • cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data. · ca834876
      
      	* cgraph.c (cgraph_node::get_untransformed_body): Pass compressed
      	flag to lto_get_section_data.
      	* varpool.c (varpool_node::get_constructor): Likewise.
      	* lto-section-in.c (lto_get_section_data): Add new flag decompress.
      	(lto_free_section_data): Likewise.
      	(lto_get_raw_section_data): New function.
      	(lto_free_raw_section_data): New function.
      	(copy_function_or_variable): Copy sections w/o decompressing.
      	(lto_output_decl_state_refs): Picke compressed bit.
      	* lto-streamer.h (lto_in_decl_state): New flag compressed.
      	(lto_out_decl_state): Likewise.
      	(lto_get_section_data, lto_free_section_data): Update prototypes
      	(lto_get_raw_section_data, lto_free_raw_section_data): Declare.
      	(lto_write_raw_data): Declare.
      	(lto_begin_section): Remove FIXME.
      	(lto_write_raw_data): New function.
      	(lto_write_stream): Remove FIXME.
      	(lto_new_out_decl_state): Set compressed flag.
      
      	* lto.c (lto_read_in_decl_state): Unpickle compressed bit.
      
      From-SVN: r231593
      Jan Hubicka committed
    • pr48549.C: XFAIL AIX. · b44c0c0c
              * g++.dg/opt/pr48549.C: XFAIL AIX.
              * g++.dg/abi/anon1.C: XFAIL AIX.
              * gcc.dg/graphite/pr42917.c: XFAIL AIX.
      
      From-SVN: r231592
      David Edelsohn committed
    • Daily bump. · c6683011
      From-SVN: r231591
      GCC Administrator committed
  3. 12 Dec, 2015 8 commits
    • tree.c (free_lang_data_in_type, [...]): Also free unnecesary type decls. · b8e99d03
      	* tree.c (free_lang_data_in_type, find_decls_types_r): Also free
      	unnecesary type decls.
      	* tree.h (is_redundant_typedef): Declare.
      	* dwarf2out.c (is_redundant_typedef): Export; booleanize
      
      From-SVN: r231588
      Jan Hubicka committed
    • Fix date · 425112c8
      From-SVN: r231587
      Eric Botcazou committed
    • sparc.h (TARGET_SUPPORTS_WIDE_INT): Define to 1. · eaac029f
      	* config/sparc/sparc.h (TARGET_SUPPORTS_WIDE_INT): Define to 1.
      	* config/sparc/sparc.c (sparc_emit_set_const64): Remove code
      	conditionalized on HOST_BITS_PER_WIDE_INT == 32.
      	(sparc_cannot_force_const_mem) <CONST_WIDE_INT>: New case.
      	<CONST_DOUBLE>: Remove VOIDmode test.
      	(epilogue_renumber) <CONST_WIDE_INT>: New case.
      	(sparc_print_operand): Remove support for CONST_DOUBLE with VOIDmode.
      	(sparc_assemble_integer): Likewise.
      	(set_extends): Likewise.
      	(sparc_rtx_costs) <CONST_INT>: Use SMALL_INT.
      	<CONST_WIDE_INT>: New case.
      	<CONST_DOUBLE>: Remove support for VOIDmode.
      	<MULT>: Remove support for CONST_DOUBLE with VOIDmode.
      	* config/sparc/predicates.md (const_zero_operand): Add const_wide_int.
      	(const_all_ones_operand): Likewise.
      	(uns_small_int_operand): Remove const_double and code conditionalized
      	on HOST_BITS_PER_WIDE_INT == 32.
      	(arith_double_operand): Likewise.
      	(arith_double_add_operand): Likewise.
      	(input_operand): Remove support for CONST_DOUBLE with DImode.
      	* config/sparc/sparc.md (DImode CONST_INT splitter): Remove code
      	conditionalized on HOST_BITS_PER_WIDE_INT == 32.
      	(DFmode CONST_DOUBLE splitter): Likewise.
      	(*adddi3_insn_sp32): Likewise.
      	(*subdi3_insn_sp32): Likewise.
      	(DImode logical splitter): Likewise.
      	(DImode CONST_DOUBLE splitter): Delete.
      
      From-SVN: r231586
      Eric Botcazou committed
    • re PR fortran/45859 ([Coarray, F2008, IR] Rejects valid actuals to coarray dummies) · 460263d0
      2014-12-12  Tobias Burnus  <burnus@net-b.de>
      
      gcc/fortran
              PR fortran/45859
              * expr.c (gfc_is_simply_contiguous): Optionally permit array
              * elements.
              (gfc_check_pointer_assign): Update call.
              * interface.c (compare_parameter): Ditto.
              * trans-array.c (gfc_conv_array_parameter): Ditto.
              * trans-intrinsic.c (gfc_conv_intrinsic_transfer,
              conv_isocbinding_function): Ditto.
              * gfortran.h (gfc_is_simply_contiguous): Update prototype.
      
      gcc/testsuite/
              PR fortran/45859
              * gcc/testsuite/gfortran.dg/coarray_args_2.f90: Remove dg-error.
      
      From-SVN: r231585
      Tobias Burnus committed
    • re PR fortran/68815 (Error/warning diagnostic: '%s' should be converted to… · 8d4227c8
      re PR fortran/68815 (Error/warning diagnostic: '%s' should be converted to %qs-like or %<%s%>-like string strings)
      
      2014-12-12  Tobias Burnus  <burnus@net-b.de>
      
      gcc/c-family/
              PR fortran/68815
              * c-format.c (gcc_gfc_char_table): Add 'q' flag to remaining
              specifiers (%d, %i,%u and %c).
      
      gcc/fortran/
              PR fortran/68815
              * check.c (gfc_check_reshape): Replace %<%d%> by %qd.
              * matchexp.c (gfc_match_defined_op_name): Use %qc.
              * symbol.c (gfc_add_new_implicit_range,
              gfc_merge_new_implicit): Ditto.
      
      From-SVN: r231584
      Tobias Burnus committed
    • pr67808.c: Add -mlong-double-128 option. · 68f7e79e
              * gcc.target/powerpc/pr67808.c: Add -mlong-double-128 option.
              * g++.dg/cpp1y/pr58708.C: Test appropriate value for size of
              wchar_t.
      
      From-SVN: r231583
      David Edelsohn committed
    • re PR sanitizer/68418 (ubsan complains about left shifts even with -fwrapv) · b3007644
      gcc:
      	PR sanitizer/68418
      	* c-family/c-ubsan.c (ubsan_instrument_shift): Disable
      	sanitization of left shifts for wrapping signed types as well.
      
      gcc/testsuite:
      	PR sanitizer/68418
      	* gcc.dg/ubsan/c99-wrapv-shift-1.c,
      	gcc.dg/ubsan/c99-wrapv-shift-2.c: New testcases.
      
      From-SVN: r231582
      Paolo Bonzini committed
    • Daily bump. · aa31006f
      From-SVN: r231580
      GCC Administrator committed
  4. 11 Dec, 2015 17 commits
    • [PATCH][PR tree-optimization/68844] Fix testcase expected output · 55ccf4f9
      	PR tree-optimization/68844
      	* gcc.dg/tree-ssa/ssa-dom-thread-4.c: Update expected output.
      
      2015-12-11  Jan Beulich  <jbeulich@suse.com>
      
      From-SVN: r231577
      Jeff Law committed
    • re PR middle-end/68215 (FAIL: c-c++-common/opaque-vector.c -std=c++11 (internal compiler error)) · 1a2d7586
      	PR middle-end/68215
      	* tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
      	Do not gimplify the result.
      	(do_unop): Adjust call to tree_vec_extract.
      	(do_binop): Likewise.
      	(do_compare): Likewise.
      	(do_plus_minus): Likewise.
      	(do_negate): Likewise.
      	(expand_vector_condition): Likewise.
      	(do_cond): Likewise.
      
      From-SVN: r231575
      Eric Botcazou committed
    • Fix std::invoke support for reference_wrappers · f3d7dd52
      	PR libstdc++/59768
      	* include/std/functional (_Unwrap, __invfwd): Define.
      	(__invoke_impl): Remove reference_wrapper overloads and use __invfwd.
      	* include/std/type_traits (__result_of_memobj, __result_of_memfun):
      	Add partial specializations for const reference_wrappers and simplify.
      	* testsuite/20_util/bind/ref_neg.cc: Use dg-excess-errors.
      	* testsuite/20_util/function_objects/invoke/59768.cc: New.
      
      From-SVN: r231574
      Jonathan Wakely committed
    • nvptx.h (RETURN_ADDR_REGNO): Delete. · b49e35a9
      	* config/nvptx/nvptx.h (RETURN_ADDR_REGNO): Delete.
      	(OUTGOING_ARG_POINTER_REGNUM): Delete.
      	(ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
      	(REGISTER_NAMES): Name static chain regs.
      	* config/nvptx/nvptx.c (nvptx_function_arg): Add ARG_UNUSED, merge
      	ifs.
      	(nvptx_incoming_arg): Merge ifs.
      	(nvptx_function_arg_boundary): Reimplement to avoid mixing units.
      	(nvptx_function_value): Tail call nvptx_libcall_value.
      	(nvptx_pass_by_reference): Add ARG_UNUSED.
      	(nvptx_static_chain): Use conditional op.
      	(nvptx_handle_kernel_attribute): Use VOID_TYPE_P.
      
      From-SVN: r231572
      Nathan Sidwell committed
    • re PR target/26427 (with -fsection-anchors with zero sized structs) · 2515981d
      2015-12-11  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
      	    Dominique d'Humieres  <dominiq@lps.ens.fr>
      
      	PR target/26427
      	PR target/33120
      	PR testsuite/35710
      
      	* config/darwin.c (darwin_use_anchors_for_symbol_p): Fix indention and
      	trailing whitespace.
      
      
      Co-Authored-By: Dominique d'Humieres <dominiq@lps.ens.fr>
      
      From-SVN: r231571
      Jan-Benedict Glaw committed
    • * gcc.dg/pr59605-1.c: Reduce iterations for nvptx. · 60385364
      From-SVN: r231570
      Nathan Sidwell committed
    • avoid alignment of static variables affecting stack's · 9d7d6446
      Function (or more narrow) scope static variables (as well as others not
      placed on the stack) should also not have any effect on the stack
      alignment. I noticed the issue first with Linux'es dynamic_pr_debug()
      construct using an 8-byte aligned sub-file-scope local variable.
      
      According to my checking bad behavior started with 4.6.x (4.5.3 was
      still okay), but generated code got quite a bit worse as of 4.9.0.
      
      gcc/
      2015-12-11  Jan Beulich  <jbeulich@suse.com>
      
      	* cfgexpand.c (expand_one_var): Exit early for static and
      	external variables when adjusting stack alignment related.
      
      gcc/testsuite/
      2015-12-11  Jan Beulich  <jbeulich@suse.com>
      
      	* gcc.c-torture/execute/stkalign.c: New.
      
      From-SVN: r231569
      Jan Beulich committed
    • * ChangeLog: Remove confusign PR marker. · 34955216
      From-SVN: r231567
      Uros Bizjak committed
    • S/390: Wide int support. · 089b05b1
      gcc/ChangeLog
      
      	* config/s390/s390.c (s390_rtx_costs)
      	(s390_cannot_force_const_mem, legitimate_pic_operand_p)
      	(s390_preferred_reload_class, s390_reload_symref_address)
      	(legitimate_reload_constant_p, print_operand): Wide int support.
      	* config/s390/predicates.md ("const0_operand", "constm1_operand")
      	("consttable_operand"): Likewise.
      	("larl_operand"): Add a comment.
      	* config/s390/s390.h (TARGET_SUPPORTS_WIDE_INT): Enable wide int
      	support.
      
      From-SVN: r231566
      Dominik Vogt committed
    • Makefile.am (libmpx_la_LDFLAGS): Add -version-info option. · 653b8b8d
      libmpx/
      
      2015-12-11  Tsvetkova Alexandra  <aleksandra.tsvetkova@intel.com>
      
      	* mpxrt/Makefile.am (libmpx_la_LDFLAGS): Add -version-info
      	option.
      	* libmpxwrap/Makefile.am (libmpx_la_LDFLAGS): Likewise and
      	fix include path.
      	* libmpx/Makefile.in: Regenerate.
      	* mpxrt/Makefile.in: Regenerate.
      	* libmpxwrap/Makefile.in: Regenerate.
      	* mpxrt/libtool-version: New version.
      	* libmpxwrap/libtool-version: Likewise.
      	* mpxrt/libmpx.map: Add new version and a new symbol.
      	* mpxrt/mpxrt.h: New file.
      	* mpxrt/mpxrt.c (NUM_L1_BITS): Moved to mpxrt.h.
      	(REG_IP_IDX): Moved to mpxrt.h.
      	(REX_PREFIX): Moved to mpxrt.h.
      	(XSAVE_OFFSET_IN_FPMEM): Moved to mpxrt.h.
      	(MPX_L1_SIZE): Moved to mpxrt.h.
      	* libmpxwrap/mpx_wrappers.c (mpx_pointer): New type.
      	(mpx_bt_entry): New type.
      	(alloc_bt): New function.
      	(get_bt): New function.
      	(copy_if_possible): New function.
      	(copy_if_possible_from_end): New function.
      	(move_bounds): New function.
      	(__mpx_wrapper_memmove): Use move_bounds to copy bounds.
      
      gcc/testsuite/
      
      2015-12-11  Tsvetkova Alexandra  <aleksandra.tsvetkova@intel.com>
      
      	* gcc.target/i386/mpx/memmove-1.c: New test.
      	* gcc.target/i386/mpx/memmove-2.c: New test.
      
      From-SVN: r231565
      Tsvetkova Alexandra committed
    • nvptx.h (TARGET_SUPPORTS_WIDE_INT): Define. · a9000e1e
      	gcc/
      	* config/nvptx/nvptx.h (TARGET_SUPPORTS_WIDE_INT): Define.
      	* config/nvptx/nvptx.c (nvptxx_assemble_integer): Return false for
      	unrecognizable RTX.
      
      	gcc/testsuite/
      	* gcc.target/nvptx/ary-init.c: Repair dg_final syntax.
      	* gcc.target/nvptx/decl-init.c: Likewise.  Add TI case.
      
      From-SVN: r231564
      Nathan Sidwell committed
    • re PR libstdc++/68139 (rethrow_if_nested should tolerate overloaded unary operator&) · e3fc446b
      PR libstdc++/68139
      
      From-SVN: r231562
      Ville Voutilainen committed
    • Remove unpaired TERMINATE_PASS_LIST in passes.def · 7d3015e8
      2015-12-11  Tom de Vries  <tom@codesourcery.com>
      
      	* passes.def: Remove unpaired TERMINATE_PASS_LIST.
      
      From-SVN: r231561
      Tom de Vries committed
    • hash-map.h (hash_map::hash_map): Gather statistics only when GATHER_STATISTICS is true. · f5c08287
      	* hash-map.h (hash_map::hash_map): Gather statistics only
      	when GATHER_STATISTICS is true.
      	* hash-set.h (hash_set::hash_set): Ditto.
      	* hash-table.h (hash_table::hash_table): Ditto.
      	(hash_table::create_ggc): Ditto.
      
      From-SVN: r231560
      Michael Matz committed
    • Add an asssert and testcase for PR 68064 · 9e64af18
      2015-12-11  Martin Jambor  <mjambor@suse.cz>
      
      	PR ipa/68064
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Add checking
      	assert that align is nonzero.
      
      testsuite/
      	* g++.dg/torture/pr68064.C: New test.
      
      From-SVN: r231559
      Martin Jambor committed
    • S/390: Fix warnings in "*setmem_long..." patterns. · da0dcab1
      gcc/ChangeLog
      
      	* config/s390/s390.c (s390_expand_setmem): Use new expanders.
      	* config/s390/s390.md ("*setmem_long")
      	("*setmem_long_and", "*setmem_long_31z"): Fix warnings.
      	("*setmem_long_and_31z"): New define_insn.
      	("setmem_long_<P:mode>"): New expanders.
      	* (<modesize>): New mode attribute
      
      gcc/testsuite/ChangeLog
      
      	* gcc.target/s390/md/setmem_long-1.c: New test.
      
      From-SVN: r231558
      Dominik Vogt committed
    • S/390: Fix warnings in "*setmem_long..." patterns. · 4a7dec25
      gcc/ChangeLog
      
      	* config/s390/s390.md ("movstr", "*movstr"): Fix warning.
      	("movstr<P:mode>"): New indirect expanders used by "movstr".
      
      gcc/testsuite/ChangeLog
      
      	* gcc.target/s390/md/movstr-1.c: New test.
      	* gcc.target/s390/s390.exp: Add subdir md.
      	Do not run hotpatch tests twice.
      
      From-SVN: r231557
      Dominik Vogt committed