Commit graph

143148 commits

Author SHA1 Message Date
Nathan Sidwell
bd5d4b6538 nvptx.md (nvptx_register_operand): Don't accept and then reject subregs.
* config/nvptx/nvptx.md (nvptx_register_operand): Don't accept and
	then reject subregs.
	(nvptx_reg_or_mem_operand): Likewise.
	(nvptx_nonmemory_operand): Likewise.
	(call_insn_operand): A regular predicate, check	SYMBOL_REF_FUNCTION_P.
	(call_insn, call_value_insn): Address is not SImode.
	* config/nvptx/nvptx.h (FIXED_REGISTERS): Make return reg fixed.
	(enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove
	RETURN_REG class.
	(REGNO_REG_CLASS): Alwaus ALL_REGS.
	(PROMOTE_MODE): QI and HI are the only smaller than SI int modes.
	(HARD_FRAME_POINTER_REGNUM): Delete.
	(REGISTER_NAMES): Move earlier.
	(struct nvptx_args): Remove 'off'.
	(INIT_CUMULATIVE_ARGS): Don't initialize 'off'.
	(ELIMINABLE_REGS): Remove HARD_FRAME_POINTER_REGNUM.
	* config/nvptx/nvptx.c (arg_promotion): Delete.
	(nvptx_expand_call): Remove check for funtype being an fntype.

From-SVN: r231659
2015-12-15 17:05:01 +00:00
Jason Merrill
951c9e90e3 * hash-map.h, hash-table.h: Make copy constructors explicit.
From-SVN: r231658
2015-12-15 11:21:50 -05:00
Alessandro Fanfarillo
57e8ab2468 Add space between name and email in Changelog
From-SVN: r231657
2015-12-15 09:12:41 -07:00
Marek Polacek
2994fb91b7 re PR c/68907 (bogus warning: right-hand operand of comma expression has no effect on an atomic_int preincrement)
PR c/68907
	* c-typeck.c (build_atomic_assign): Set TREE_NO_WARNING on an
	artificial decl.

	* gcc.dg/pr68907.c: New test.

From-SVN: r231656
2015-12-15 15:13:49 +00:00
Ilya Verbin
4a38b02b4e c-common.c (c_common_attribute_table): Handle "omp declare target link" attribute.
gcc/c-family/
	* c-common.c (c_common_attribute_table): Handle "omp declare target
	link" attribute.
gcc/
	* cgraphunit.c (output_in_order): Do not assemble "omp declare target
	link" variables in ACCEL_COMPILER.
	* gimplify.c (gimplify_adjust_omp_clauses): Do not remove mapping of
	"omp declare target link" variables.
	* omp-low.c (scan_sharing_clauses): Do not remove mapping of "omp
	declare target link" variables.
	(add_decls_addresses_to_decl_constructor): For "omp declare target link"
	variables output address of the artificial pointer instead of address of
	the variable.  Set most significant bit of the size to mark them.
	(pass_data_omp_target_link): New pass_data.
	(pass_omp_target_link): New class.
	(find_link_var_op): New static function.
	(make_pass_omp_target_link): New function.
	* passes.def: Add pass_omp_target_link.
	* tree-pass.h (make_pass_omp_target_link): Declare.
	* varpool.c (symbol_table::output_variables): Do not assemble "omp
	declare target link" variables in ACCEL_COMPILER.
gcc/lto/
	* lto.c: Include stringpool.h and fold-const.h.
	(offload_handle_link_vars): New static function.
	(lto_main): Call offload_handle_link_vars.
libgomp/
	* libgomp.h (REFCOUNT_LINK): Define.
	(struct splay_tree_key_s): Add link_key.
	* target.c (gomp_map_vars): Treat REFCOUNT_LINK objects as not mapped.
	Replace target address of the pointer with target address of newly
	mapped object in the splay tree.  Set link pointer on target to the
	device address of the mapped object.
	(gomp_unmap_vars): Restore target address of the pointer in the splay
	tree for REFCOUNT_LINK objects after unmapping.
	(gomp_load_image_to_device): Set refcount to REFCOUNT_LINK for "omp
	declare target link" objects.
	(gomp_unload_image_from_device): Replace j with i.  Force unmap of all
	"omp declare target link" objects, which were mapped for the image.
	(gomp_exit_data): Restore target address of the pointer in the splay
	tree for REFCOUNT_LINK objects after unmapping.
	* testsuite/libgomp.c/target-link-1.c: New file.

From-SVN: r231655
2015-12-15 14:56:50 +00:00
Bernd Schmidt
b7e2dd6fb4 re PR middle-end/21273 (gensupport.c:collect_insn_data doesn't consider the constraints of match_scratch)
Fix PR21273

	PR middle-end/21273
	* gensupport.c (collect_insn_data): Look for number of alternatives
	in MATCH_SCRATCH.

From-SVN: r231654
2015-12-15 14:34:01 +00:00
Jonathan Wakely
72030b28a1 Remove vestigial traces of std::tr1::bind
* include/std/functional (is_placeholder, is_bind_expression): Update
	comments.
	(_Safe_tuple_element): Replace with _Safe_tuple_element_t alias
	template.
	(_Mu): Remove vestigial TR1 return types and update coments.

From-SVN: r231653
2015-12-15 14:17:27 +00:00
Jonathan Wakely
6666731254 Fix cv-qualifiers in std::bind invocation
PR libstdc++/68912
	* include/std/functional (_Bind::operator()): Use lvalue functor to
	deduce return type.
	* testsuite/20_util/bind/68912.cc: New.

From-SVN: r231652
2015-12-15 14:17:17 +00:00
Nathan Sidwell
5c036f3f0a nvptx.h (HARD_REGNO_NREGS): Reformat.
* config/nvptx/nvptx.h (HARD_REGNO_NREGS): Reformat.
	(CANNOT_CHANGE_MODE_CLASS): Always return true.
	(HARD_REGNO_MODE_OK): Reformat.
	* config/nvptx/nvptx.md (define_expand mov<mode>): No
	RETURN_REGNUM handling here.
	* config/nvptx/nvptx.c (nvptx_function_value): Set ret_reg_mode
	here.
	(write_one_arg): No QI or HI mode args.
	(write_fn_proto_from_insn): No argument promotion here.
	(nvptx_output_return_insn): No return promotion here.
	(nvptx_output_mov_insn): No RETURN_REGNUM handling needed.
	(nvptx_output_call_insn): No return promotion here.

From-SVN: r231651
2015-12-15 13:32:48 +00:00
Alessandro Fanfarillo
1fceb21584 Fix ICE for coarray Critical inside module procedure
From-SVN: r231649
2015-12-15 06:19:21 -07:00
Martin Jambor
4a414de84a [PR 68851] Do not collect thunks in collect_callers
2015-12-15  Martin Jambor  <mjambor@suse.cz>

	PR ipa/68851
	* cgraph.c (collect_callers_of_node_1): Do not collect thunks.
	* cgraph.h (cgraph_node): Change comment of collect_callers.

testsuite/
	* g++.dg/ipa/pr68851.C: New test.

From-SVN: r231648
2015-12-15 14:07:15 +01:00
Alessandro Fanfarillo
b15f027346 Add myself to MAINTAINERS
From-SVN: r231647
2015-12-15 06:01:06 -07:00
Paolo Carlini
293b1f44fa re PR c++/63506 (GCC deduces wrong return type of operator*() inside template functions)
2015-12-15  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/63506
	* g++.dg/cpp0x/pr63506-1.C: New.
	* g++.dg/cpp0x/pr63506-2.C: Likewise.

From-SVN: r231646
2015-12-15 10:18:13 +00:00
Olivier Hainque
2764999bbd Skip block move tests for mcpu=gr5 on Visium
testsuite/
        * gcc.target/visium/block_move.c: Skip for -mcpu=gr5.

From-SVN: r231645
2015-12-15 09:36:37 +00:00
Jakub Jelinek
3be33b6eac re PR debug/66688 (compare debug failure building Linux kernel on ppc64le)
PR tree-optimization/66688
	* tree-cfgcleanup.c (cleanup_control_flow_bb): Handle
	noreturn call followed only by debug stmts by removing
	the debug stmts and handling it the same as if the noreturn
	call is the last stmt.

	* gcc.dg/pr66688.c: New test.

From-SVN: r231644
2015-12-15 08:46:23 +01:00
Tim Shen
3ce38f68f9 re PR libstdc++/68863 (Regular expressions: Backreferences don't work in negative lookahead)
PR libstdc++/68863
	* include/bits/regex_executor.tcc (_Executor::_M_lookahead):
	Copy the captured content for lookahead, so that the backreferences
	inside can refer to them.
	* testsuite/28_regex/algorithms/regex_match/ecma/char/68863.cc:
	New testcase.

From-SVN: r231641
2015-12-15 04:50:29 +00:00
Patrick Palka
fcb9363eb9 Fix PR c++/21802 (two-stage name lookup fails for operators)
gcc/cp/ChangeLog:

	PR c++/21802
	PR c++/53223
	* cp-tree.h (cp_tree_code_length): Declare.
	(build_min_non_dep_op_overload): Declare.
	* tree.c (cp_tree_code_length): Define.
	(build_min_non_dep_op_overload): Define.
	(build_win_non_dep_call_vec): Copy the KOENIG_LOOKUP_P flag.
	* typeck.c (build_x_indirect_ref): Use
	build_min_non_dep_op_overload when the given expression
	has been resolved to an operator overload.
	(build_x_binary_op): Likewise.
	(build_x_array_ref): Likewise.
	(build_x_unary_op): Likewise.
	(build_x_compound_expr): Likewise.
	(build_x_modify_expr): Likewise.
	* decl2.c (grok_array_decl): Likewise.
	* call.c (build_new_op_1): If during template processing we
	chose an operator overload that is a hidden friend function, set
	the call's KOENIG_LOOKUP_P flag to 1.

gcc/testsuite/ChangeLog:

	PR c++/21802
	PR c++/53223
	* g++.dg/cpp0x/pr53223.C: New test.
	* g++.dg/lookup/pr21802.C: New test.
	* g++.dg/lookup/two-stage4.C: Remove XFAIL.

From-SVN: r231640
2015-12-15 03:33:53 +00:00
Jerry DeLisle
8d3586e4e2 PR libfortran/pr68867
2015-12-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR libfortran/pr68867
	* io/write.c (set_fnode_default): For kind=16, set the decimal precision
	depending on the platform binary precision, 106 or 113.

From-SVN: r231639
2015-12-15 03:16:26 +00:00
GCC Administrator
060eb4c9a4 Daily bump.
From-SVN: r231638
2015-12-15 00:16:12 +00:00
Steve Ellcey
0c3fce93a7 ssa-fre-4.c: Remove mips*-*-* target.
2015-12-14  Steve Ellcey  <sellcey@imgtec.com>

	* gcc.dg/tree-ssa/ssa-fre-4.c: Remove mips*-*-* target.
	* gcc.target/mips/ext-2.c: Update scan checks.

From-SVN: r231635
2015-12-14 23:58:31 +00:00
Steve Ellcey
db4aec84e0 mips.c (mips_promote_function_mode): New function.
2015-12-14  Steve Ellcey  <sellcey@imgtec.com>

	* config/mips/mips.c (mips_promote_function_mode): New function.
	(TARGET_PROMOTE_FUNCTION_MODE): Define as above function.
	(TARGET_PROMOTE_PROTOTYPES): Remove.

From-SVN: r231634
2015-12-14 23:56:28 +00:00
Jason Merrill
fa583f9e65 re PR c++/68309 (ICE: Segmentation fault)
PR c++/68309
gcc/
	* hash-table.h: Add copy constructor.
	* hash-map.h: Add copy constructor.
gcc/cp/
	* pt.c (instantiate_decl): Copy local_specializations for nested
	function.

From-SVN: r231632
2015-12-14 15:54:17 -05:00
Tobias Burnus
1cb62d16c2 re PR fortran/68850 (Coarray events: EVENT_QUERY not documented as intrinsic subroutine)
2014-12-14  Tobias Burnus  <burnus@net-b.de>

        PR fortran/68850
        * gfortran.texi (Standards): Mention TS 18508.
        (Fortran 2003 and 2008 Status): Add section on TS 18508 status.
        * intrinsic.texi (EVENT_QUERY): Add.

From-SVN: r231631
2015-12-14 20:31:51 +01:00
Tom de Vries
0482b001d4 Dump default defs for arguments, static chain and decl-by-reference
2015-12-14  Tom de Vries  <tom@codesourcery.com>

	PR other/68882
	* gimple-pretty-print.c (dump_ssaname_info_to_file): New function.
	* gimple-pretty-print.h (dump_ssaname_info_to_file): Declare.
	* tree-cfg.c (dump_default_def): New function.
	(dump_function_to_file): Dump default defs for arguments, static chain,
	and decl-by-reference.

From-SVN: r231630
2015-12-14 19:29:48 +00:00
Nathan Sidwell
44eba92d0a nvptx.h (PARM_BOUNDARY): Set to 32.
gcc/
	* config/nvptx/nvptx.h (PARM_BOUNDARY): Set to 32.
	* config/nvptx/nvptx.c (PASS_IN_REG_P, RETURN_IN_REG_P): Delete.
	(pass_in_memory, promote_arg, promote_return): New.
	(nvptx_function_arg_boundary): Delete.
	(nvptx_function_value): Use promote_return.
	(nvptx_pass_by_reference): Use pass_in_memory.
	(nvptx_return_in_memory): Use pass_in_memory.
	(nvptx_promote_function_mode): Use promote_arg.
	(write_arg): Adjust arg splitting logic.
	(write_return): Check and clear ret_reg_mode, if needed.
	(write_fn_proto, nvptx_declare_function_name): Adust write_return
	calls.
	(TARGET_RUNCTION_ARG_BOUNDARY,
	TARGET_FUNCTION_ARG_ROUND_BOUNDARY): Don't override.

	gcc/testsuite/
	* g++.dg/abi/nvptx-nrv1.C: New.
	* g++.dg/abi/nvptx-ptrmem1.C: New.
	* gcc.target/nvptx/abi-complex-arg.c: New.
	* gcc.target/nvptx/abi-complex-ret.c: New.
	* gcc.target/nvptx/abi-enum-arg.c: New.
	* gcc.target/nvptx/abi-enum-ret.c: New.
	* gcc.target/nvptx/abi-knr-arg.c: New.
	* gcc.target/nvptx/abi-knr-ret.c: New.
	* gcc.target/nvptx/abi-scalar-arg.c: New.
	* gcc.target/nvptx/abi-scalar-ret.c: New.
	* gcc.target/nvptx/abi-struct-arg.c: New.
	* gcc.target/nvptx/abi-struct-ret.c: New.
	* gcc.target/nvptx/abi-vararg-1.c: New.
	* gcc.target/nvptx/abi-vararg-2.c: New.
	* gcc.target/nvptx/abi-vect-arg.c: New.
	* gcc.target/nvptx/abi-vect-ret.c: New.

From-SVN: r231628
2015-12-14 19:26:49 +00:00
Jakub Jelinek
54d62f5148 re PR c/68833 (-Werror=format issues an error now)
PR c/68833
	* common.opt (Wmissing-noreturn): Add Warning option.
	* opts-common.c (control_warning_option): If opt is
	alias_target with alias_arg, set arg to it.

	* c.opt (Wmissing-format-attribute, Wnormalized): Add Warning option.

	* c-c++-common/pr68833-1.c: New test.
	* c-c++-common/pr68833-2.c: New test.

From-SVN: r231624
2015-12-14 17:59:05 +01:00
Ilya Verbin
d84ffc0a56 libgomp.h (gomp_device_state): New enum.
libgomp/
	* libgomp.h (gomp_device_state): New enum.
	(struct gomp_device_descr): Replace is_initialized with state.
	(gomp_fini_device): Remove declaration.
	* oacc-host.c (host_dispatch): Use state instead of is_initialized.
	* oacc-init.c (acc_init_1): Use state instead of is_initialized.
	(acc_shutdown_1): Likewise.  Inline gomp_fini_device.
	(acc_set_device_type): Use state instead of is_initialized.
	(acc_set_device_num): Likewise.
	* target.c (resolve_device): Use state instead of is_initialized.
	Do not initialize finalized device.
	(gomp_map_vars): Do nothing if device is finalized.
	(gomp_unmap_vars): Likewise.
	(gomp_update): Likewise.
	(GOMP_offload_register_ver): Use state instead of is_initialized.
	(GOMP_offload_unregister_ver): Likewise.
	(gomp_init_device): Likewise.
	(gomp_unload_device): Likewise.
	(gomp_fini_device): Remove.
	(gomp_get_target_fn_addr): Do nothing if device is finalized.
	(GOMP_target): Go to host fallback if device is finalized.
	(GOMP_target_ext): Likewise.
	(gomp_exit_data): Do nothing if device is finalized.
	(gomp_target_task_fn): Go to host fallback if device is finalized.
	(gomp_target_fini): New static function.
	(gomp_target_init): Use state instead of is_initialized.
	Call gomp_target_fini at exit.
liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (unregister_main_image): Remove.
	(register_main_image): Do not call unregister_main_image at exit.
	(GOMP_OFFLOAD_fini_device): Allow for OpenMP.  Unregister main image.

From-SVN: r231623
2015-12-14 16:46:54 +00:00
Segher Boessenkool
755cd5a907 rs6000: Fix a mistake in cstore_si_as_di (PR68865, PR68879)
convert_move does not know how to zero-extend a constant integer to the
target mode -- simply because it does not know the source mode.  As a
result, 32-bit SImode with the high bit set would be effectively sign-
extended instead of zero-extended.

This patch fixes it.


	PR target/68865
	PR target/68879
	* config/rs6000/rs6000.md (cstore_si_as_di): Force all operands
	into registers.

From-SVN: r231621
2015-12-14 17:13:33 +01:00
Richard Biener
150cf34781 re PR tree-optimization/68707 (testcase gcc.dg/vect/O3-pr36098.c vectorized using VEC_PERM_EXPR rather than VEC_LOAD_LANES)
2015-12-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68707
	PR tree-optimization/67323
	* tree-vect-slp.c (vect_analyze_slp_instance): Drop SLP instances
	if they can be vectorized using load/store-lane instructions.

From-SVN: r231620
2015-12-14 15:33:20 +00:00
Richard Biener
603cca9344 re PR middle-end/68852 (ICE in vect_is_simple_use (tree-vect-stmts.c:8750) using -O3)
2015-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68852
	* tree-vectorizer.h (struct _slp_tree): Add def_type member.
	(SLP_TREE_DEF_TYPE): New accessor.
	* tree-vect-stmts.c (vect_is_simple_use): Remove BB vectorization
	hack.
	* tree-vect-slp.c (vect_create_new_slp_node): Initialize
	SLP_TREE_DEF_TYPE.
	(vect_build_slp_tree): When a node is to be built up from scalars
	do not push a NULL as child but instead set its def_type to
	vect_external_def.
	(vect_analyze_slp_cost_1): Check for child def-type instead
	of NULL.
	(vect_detect_hybrid_slp_stmts): Likewise.
	(vect_bb_slp_scalar_cost): Likewise.
	(vect_get_slp_defs): Likewise.
	(vect_slp_analyze_node_operations): Likewise.  Before
	processing node push the children def-types to the underlying
	stmts vinfo and restore it afterwards.
	(vect_schedule_slp_instance): Likewise.
	(vect_slp_analyze_bb_1): Do not mark stmts not in SLP instances
	as not vectorizable.

	* g++.dg/torture/pr68852.C: New testcase.

From-SVN: r231619
2015-12-14 15:26:24 +00:00
Richard Biener
60f2b86449 re PR tree-optimization/68775 (spec2006 test case 465.tonto fails with the gcc 6.0 fortran compiler)
2015-12-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/68775
	* tree-vect-slp.c (vect_build_slp_tree): Make sure to apply
	a operand swapping even if replacing the op with scalars.

From-SVN: r231617
2015-12-14 13:42:03 +00:00
Kyrylo Tkachov
adb48173b8 [combine] Don't create LSHIFTRT of zero bits in change_zero_ext
* combine.c (change_zero_ext): Do not create a shift of zero length.

From-SVN: r231613
2015-12-14 11:33:00 +00:00
Ville Voutilainen
f5a8c224d1 Bad date on the Changelog entry, boo hiss.
From-SVN: r231612
2015-12-14 13:11:03 +02:00
Ville Voutilainen
5d190d2124 Document the implementation of Logical Operator Type Traits.
* doc/html/index.html: Regenerate.
	* doc/html/manual/status.html: Likewise.
	* doc/xml/manual/status_cxx2017.xml: Add P0013R1 to C++ 201z
	and to Library Fundamentals 2 TS.

From-SVN: r231611
2015-12-14 13:08:30 +02:00
Alexander Monakov
6945a76e12 builtin-return-1.c: Correct effective-target test.
* gcc.dg/builtin-return-1.c: Correct effective-target test.
	* gcc.dg/stack-usage-2.c: Use effective-target test.

From-SVN: r231610
2015-12-14 13:15:13 +03:00
Claudiu Zissulescu
bf9e9dc52e [ARC] Use TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P hook.
gcc/
2015-12-14  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (TARGET_NO_SPECULATION_IN_DELAY_SLOTS_P):
	Provide target hook.
	(arc_no_speculation_in_delay_slots_p): New function.

From-SVN: r231609
2015-12-14 10:59:02 +01:00
Claudiu Zissulescu
67a9630010 [ARC] Refurbish emitting DWARF2 related information when expanding epilogue.
gcc/
2015-12-14  Claudiu Zissulescu  <claziss@synopsys.com>
	    Andrew Burgess  <andrew.burgess@embecosm.com>

	* config/arc/arc.c (frame_move): Set frame related flag.
	(arc_save_restore): Emit epilogue related DWARF2 information.
	(arc_expand_epilogue): Likewise.
	* config/arc/arc.opt (mno-epilogue-cfi): Remove.
	(mepilogue-cfi): Likewise.
	* doc/invoke.texi: Remove -m[no]-epilogue-cfi documentation.

Co-Authored-By: Andrew Burgess <andrew.burgess@embecosm.com>

From-SVN: r231608
2015-12-14 10:46:13 +01:00
Martin Jambor
173b7355f6 [PR 66616] Check for thunks when adding extra constants to clones
2015-12-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/66616
	* ipa-cp.c (propagate_constants_accross_call): Move thuk check...
	(call_passes_through_thunk_p): ...here.
	(find_more_scalar_values_for_callers_subset): Perform thunk checks
	like propagate_constants_accross_call does.

testsuite/
	* g++.dg/ipa/pr66616.C: New test.

From-SVN: r231607
2015-12-14 10:33:12 +01:00
Jakub Jelinek
63da5ff6bf re PR rtl-optimization/68730 (wrong code at -O3 on x86_64-linux-gnu (in 32-bit mode))
PR rtl-optimization/68730
	* cfgrtl.c (cfg_layout_finalize): Free dominators.

	* gcc.dg/pr68730.c: New test.

From-SVN: r231606
2015-12-14 09:04:37 +01:00
Thomas Preud'homme
65a00f0e3b re PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)
2015-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR testsuite/68629
    * lib/target-supports.exp (check_effective_target_cilkplus): Also
    check that compiling with -fcilkplus does not give an error.
    * c-c++-common/attr-simd-3.c: Require cilkplus effective target.

From-SVN: r231605
2015-12-14 02:05:16 +00:00
GCC Administrator
8edccfc629 Daily bump.
From-SVN: r231604
2015-12-14 00:16:17 +00:00
Alexandre Oliva
c779924eee [PR67355] drop dummy zero from reverse VTA ops, fix infinite recursion
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
2015-12-13 20:37:26 +00:00
David Edelsohn
8454aad340 * gcc.dg/graphite/pr42729.c: XFAIL AIX.
From-SVN: r231598
2015-12-13 08:10:33 -05:00
Kazu Kirata
dcca1b0510 [PATCH][PR target/19201] Peephole to improve clearing items in structure for m68k
[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
2015-12-13 06:06:12 -07:00
Jeff Law
d686d8067a [PATCH] m68k testsuite TLC
* 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
2015-12-13 05:51:02 -07:00
Tom de Vries
40e2341e42 Handle sizes and kinds params of GOACC_paralllel in find_func_clobbers
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
2015-12-13 12:43:21 +00:00
Jan Hubicka
7fa658c2cc cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data.
* 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
2015-12-13 02:13:15 +00:00
Jan Hubicka
ca83487662 cgraph.c (cgraph_node::get_untransformed_body): Pass compressed flag to lto_get_section_data.
* 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
2015-12-13 02:12:15 +00:00
David Edelsohn
b44c0c0c7f pr48549.C: XFAIL AIX.
* g++.dg/opt/pr48549.C: XFAIL AIX.
        * g++.dg/abi/anon1.C: XFAIL AIX.
        * gcc.dg/graphite/pr42917.c: XFAIL AIX.

From-SVN: r231592
2015-12-12 20:55:02 -05:00
GCC Administrator
c6683011a8 Daily bump.
From-SVN: r231591
2015-12-13 00:16:12 +00:00