Commit Graph

134782 Commits

Author SHA1 Message Date
Manuel López-Ibáñez
9c320ab1f1 line-map.c (linemap_add): Fix typo.
2014-12-02  Manuel López-Ibáñez  <manu@gcc.gnu.org>

        * line-map.c (linemap_add): Fix typo.
        (linemap_line_start): Fix whitespace.

From-SVN: r218276
2014-12-02 16:00:33 +00:00
Ulrich Weigand
3c610413ca re PR target/64115 (ICE: : in rs6000_delegitimize_address, at config/rs6000/rs6000.c:7051)
PR target/64115
	* config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove
	invalid UNSPEC_TOCREL sanity check under ENABLE_CHECKING.

From-SVN: r218273
2014-12-02 14:27:46 +00:00
H.J. Lu
0f884e6709 Stop only if there aren't any usable algorithms
When searching for an usable algorithm with -minline-all-stringops,
decide_alg stops when it sees libcall even if there is a usable
algorithm.  It goes into an infinite loop.  This patch changes
decide_alg to stop searching only if there aren't any usable algorithms.
Testd on Linux/x86-64.


gcc/

	PR target/64108
	* config/i386/i386.c (decide_alg): Stop only if there aren't
	any usable algorithms.

gcc/testsuite/

	PR target/64108
	* gcc.target/i386/memset-strategy-2.c: New test.

From-SVN: r218272
2014-12-02 06:10:23 -08:00
Tom de Vries
fb98f8869b re PR rtl-optimization/63718 (ARM Thumb1 bootstrap fail after fuse-caller-save info in cprop-hardreg)
2014-12-02  Tom de Vries  <tom@codesourcery.com>

	PR rtl-optimization/63718
	* config/arm/arm.c (arm_option_override): Disable fuse-caller-save for
	Thumb1.

From-SVN: r218271
2014-12-02 13:35:10 +00:00
Jonathan Wakely
e3376050fc status_cxx2011.xml: Update.
* doc/xml/manual/status_cxx2011.xml: Update.
	* doc/xml/manual/status_cxx2014.xml: Update.
	* doc/html/manual/status.html: Regenerate.

From-SVN: r218270
2014-12-02 13:26:18 +00:00
Richard Biener
ac19a30334 match.pd: When combining divisions exclude the degenerate case involving INT_MIN from...
2014-12-02  Richard Biener  <rguenther@suse.de>

	* match.pd: When combining divisions exclude the degenerate
	case involving INT_MIN from overflow handling.

	* gcc.dg/torture/20141202-1.c: New testcase.

From-SVN: r218269
2014-12-02 13:09:13 +00:00
H.J. Lu
88936a2bfd Add a test for PR ipa/63814
PR ipa/63814
	* g++.dg/ipa/pr63814.C: New test.

From-SVN: r218268
2014-12-02 04:47:29 -08:00
Jiong Wang
ffc510234e [AArch64/testsuite] Add missing testcase
Add the missing testcase.
  (forget svn add in previous commit ...)

From-SVN: r218267
2014-12-02 11:57:08 +00:00
Wilco Dijkstra
048f927a75 [PATCH] Improve spillcost of literal pool loads
2014-12-02  Wilco Dijkstra  <wdijkstr@arm.com>

  gcc/
    ira-costs.c (scan_one_insn): Improve spill cost adjustment.

  gcc/testsuite
    gcc.target/aarch64/remat1.c: New testcase.

From-SVN: r218266
2014-12-02 11:55:08 +00:00
Martin Jambor
47f4756ed1 re PR ipa/63814 (g++.dg/ipa/pr61160-1.C fails with -m32 -fPIC)
2014-12-02  Martin Jambor  <mjambor@suse.cz>

	PR ipa/63814
	* ipa-cp.c (same_node_or_its_all_contexts_clone_p): New function.
	(cgraph_edge_brings_value_p): New parameter dest, use
	same_node_or_its_all_contexts_clone_p and check availability.
	(cgraph_edge_brings_value_p): Likewise.
	(get_info_about_necessary_edges): New parameter dest, pass it to
	cgraph_edge_brings_value_p.  Update caller.
	(gather_edges_for_value): Likewise.
	(perhaps_add_new_callers): Use cgraph_edge_brings_value_p to check
	both the destination and availability.

From-SVN: r218265
2014-12-02 11:12:27 +01:00
Uros Bizjak
c271ca677e re PR target/64113 (Gcc on Alpha: Error: No lda !gpdisp!282 was found)
PR target/64113
	* config/alpha/alpha.md (call_value_osf_tlsgd): Do not split insn
	using post-reload splitter.  Use peephole2 pass instead.
	(call_value_osf_tlsldm): Ditto.
	(TLS_CALL): New int iterator.
	(tls): New int attribute.
	(call_value_osf_<tls>): Merge insn pattern from call_value_osf_tlsgd
	and call_value_tlsldm using TLS_CALL int iterator.

From-SVN: r218264
2014-12-02 11:04:14 +01:00
Richard Biener
1c9b044857 genmatch.c: Include hash-set.h.
2014-12-02  Richard Biener  <rguenther@suse.de>
	Prathamesh Kulkarni  <bilbotheelffriend@gmail.com>

	* genmatch.c: Include hash-set.h.
	(fatal_at): Add source_location overload.
	(parser::record_operlist): New method.
	(parser::push_simplify): Likewise.
	(parser::oper_lists_set): New member.
	(parser::oper_lists): Likewise.
	(parser::parse_operation): Record seen operator list references.
	(parser::parse_c_expr): Likewise.
	(parser::parse_simplify): Init oper_lists_set and oper_lists
	and use push_simplify.
	(parser::parser): Init oper_lists_set and oper_lists.

Co-Authored-By: Prathamesh Kulkarni <bilbotheelffriend@gmail.com>

From-SVN: r218261
2014-12-02 09:30:15 +00:00
Richard Biener
280931058a match.pd: Restrict division combining to trunc_div and exact_div.
2014-12-02  Richard Biener  <rguenther@suse.de>

	* match.pd: Restrict division combining to trunc_div and
	exact_div.

From-SVN: r218260
2014-12-02 09:03:44 +00:00
Richard Biener
e1b7f42ec6 re PR fortran/64137 (Fortran FE builds invalid GENERIC)
2014-12-02  Richard Biener  <rguenther@suse.de>

	PR fortran/64137
	* trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Check
	proper expressions type, use proper type for computing
	-Huge - 1.

From-SVN: r218259
2014-12-02 08:50:57 +00:00
Jakub Jelinek
9b489f313c sparc.c (sparc_atomic_assign_expand_fenv): Remove NULL last argument from create_tmp_var calls.
* config/sparc/sparc.c (sparc_atomic_assign_expand_fenv):
	Remove NULL last argument from create_tmp_var calls.
	* config/mips/mips.c (mips_atomic_assign_expand_fenv): Likewise.
	* config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Likewise.
	* config/i386/i386.c (add_condition_to_bb,
	ix86_atomic_assign_expand_fenv): Likewise.
	* config/mep/mep.c (mep_gimplify_va_arg_expr): Likewise.
	* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
	* config/aarch64/aarch64-builtins.c
	(aarch64_atomic_assign_expand_fenv): Likewise.
	* config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Likewise.
	* config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Likewise.
	* config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise.

From-SVN: r218257
2014-12-02 08:45:36 +01:00
Jakub Jelinek
0d3d81525d alpha.c (alpha_gimple_fold_builtin): Use gimple_build_assign instead of gimple_build_assign_with_ops and swap the...
* config/alpha/alpha.c (alpha_gimple_fold_builtin): Use
	gimple_build_assign instead of gimple_build_assign_with_ops and swap
	the order of first two arguments.
	* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin):
	Likewise.  Remove last NULL_TREE argument.

From-SVN: r218256
2014-12-02 08:32:54 +01:00
Jonathan Wakely
9db7c9316e Define *_at_thread_exit() functions.
* config/abi/pre/gnu.ver: Add new exports.
	* include/std/condition_variable (notify_all_at_thread_exit): Declare.
	(__at_thread_exit_elt): New base class.
	* include/std/future: Add comments documenting the implementation.
	(__future_base::_State_baseV2::_State_baseV2()): Use brace-or-equal
	initializers and define constructor as defaulted.
	(__future_base::_State_baseV2::_M_ready): Replace member function
	with member variable.
	(__future_base::_State_baseV2::_M_set_result): Set _M_ready.
	(__future_base::_State_baseV2::_M_set_delayed_result): Define.
	(__future_base::_State_baseV2::_M_break_promise): Set _M_ready.
	(__future_base::_State_baseV2::_Make_ready): New helper class.
	(__future_base::_Deferred_state::_M_has_deferred): Remove requirement
	for caller to own mutex.
	(__future_base::_Async_state_impl::~_Async_state_impl): Call join
	directly.
	(__future_base::_Task_state_base::_M_run): Take arguments by
	reference.
	(__future_base::_Task_state_base::_M_run_delayed): Declare new pure
	virtual function.
	(__future_base::_Task_state::_M_run_delayed): Define override.
	(promise::set_value_at_thread_exit): Define.
	(promise::set_exception_at_thread_exit): Define.
	(packaged_task::make_ready_at_thread_exit): Define.
	* src/c++11/condition_variable.cc (notify_all_at_thread_exit): Define.
	* src/c++11/future.cc
	(__future_base::_State_baseV2::_Make_ready::_M_set): Define.
	* testsuite/30_threads/condition_variable/members/3.cc: New.
	* testsuite/30_threads/packaged_task/members/at_thread_exit.cc: New.
	* testsuite/30_threads/promise/members/at_thread_exit.cc: New.

From-SVN: r218255
2014-12-02 01:51:25 +00:00
GCC Administrator
8581fd6499 Daily bump.
From-SVN: r218254
2014-12-02 00:16:25 +00:00
Oleg Endo
70c9ce2d46 re PR rtl-optimization/59278 (combine does not replace matched insn)
testsuite/
	PR rtl-optimization/59278
	* gcc.target/sh/pr59278.c: New.

From-SVN: r218251
2014-12-01 23:53:12 +00:00
Segher Boessenkool
14f2df344a re PR rtl-optimization/59278 (combine does not replace matched insn)
PR rtl-optimization/59278
	combine (reg_dead_at_p): Consider REG_UNUSED notes.

From-SVN: r218250
2014-12-02 00:48:26 +01:00
Segher Boessenkool
dd400a3627 * combine.c (try_combine): Use is_parallel_of_n_reg_sets some more.
From-SVN: r218249
2014-12-01 23:37:34 +01:00
Segher Boessenkool
9d2f8e16f5 combine.c (is_parallel_of_n_reg_sets): New function.
* combine.c (is_parallel_of_n_reg_sets): New function.
	(can_split_parallel_of_n_reg_sets): New function.
	(try_combine): If I2 is a PARALLEL of two SETs, split it into
	two insns if possible.

From-SVN: r218248
2014-12-01 23:36:12 +01:00
Tobias Burnus
797d88589e re PR middle-end/64017 (Support ISL 0.14.0 (to fix ICE with gfortran.dg/graphite/pr42393.f90))
2014-12-01  Tobias Burnus  <burnus@net-b.de>
            Jack Howarth  <howarth@bromo.med.uc.edu>

        PR middle-end/64017
        * configure.ac
        * (ac_has_isl_schedule_constraints_compute_schedule):
        New check.
        * doc/install.texi (ISL): Permit ISL 0.14.
        * graphite-optimize-isl.c (getScheduleForBandList,
        * optimize_isl):
        Conditionally use ISL 0.13+ functions.
        * graphite-interchange.c: Make 'extern "C"' conditional.
        * graphite-isl-ast-to-gimple.c: Ditto.
        * graphite-poly.c: Ditto.
        * graphite-sese-to-poly.c: Ditto.
        * config.in: Regenerate.
        * gcc/configure: Regenerate.


Co-Authored-By: Jack Howarth <howarth@bromo.med.uc.edu>

From-SVN: r218247
2014-12-01 20:07:37 +01:00
David Malcolm
81ba15f105 Improvements to documentation of gcc_jit_context_release
gcc/jit/ChangeLog:
	* docs/examples/tut02-square.c (main): Release the context
	earlier, to show that this is possible.  Update error-handling
	to avoid a double-release of the context, and to avoid
	releasing a NULL result.
	* docs/intro/tutorial02.rst: Discuss gcc_jit_context_release.
	* docs/topics/functions.rst (GCC_JIT_FUNCTION_EXPORTED): Emphasize
	* docs/topics/results.rst (gcc_jit_result): Mention that this
	controls the lifetimes of machine code functions.
	(gcc_jit_result_get_code): Spell out the requirements for this
	to succeed, and the lifetime of the result.
	(gcc_jit_result_release): Mention that this invalidates any code
	that was obtained from the result.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r218245
2014-12-01 18:53:44 +00:00
Paolo Carlini
ad1f2178c1 re PR c++/60859 (Value-initialization of scalar in aggregate yields "braces around scalar initializer")
/cp
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60859
	* decl.c (reshape_init_r): Do not reject value-initialization of
	scalar array element.

/testsuite
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60859
	* g++.dg/cpp0x/initlist88.C: New.

From-SVN: r218244
2014-12-01 18:52:05 +00:00
David Malcolm
e250f0dcfe PR jit/64018: Add description of error-handling to the JIT tutorial
gcc/jit/ChangeLog:
	PR jit/64018
	* docs/intro/tutorial02.rst: Spell out lifetime of generated code.
	Add description of error-handling, taken in part from...
	* docs/topics/contexts.rst (Error-handling): Expand, and move some
	content to tutorial02.rst.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r218243
2014-12-01 18:47:31 +00:00
Segher Boessenkool
9838117b0d * combine.c (distribute_links): Handle multiple SETs.
From-SVN: r218242
2014-12-01 19:28:07 +01:00
Segher Boessenkool
66d4b01246 combine.c (struct insn_link): New field `regno'.
* combine.c (struct insn_link): New field `regno'.
	(alloc_insn_link): New parameter `regno'.  Use it.
	(find_single_use): Check the new field.
	(can_combine_def_p, can_combine_use_p): New functions.  Split
	off from ...
	(create_log_links): ... here.  Correct data type of `regno'.
	Adjust call to alloc_insn_link.
	(adjust_for_new_dest): Find regno, use it in call to
	alloc_insn_link.
	(try_combine): Check reg_used_between_p when combining a PARALLEL
	as earlier insn.  Adjust call to alloc_insn_link.
	(distribute_links): Check the new field.

From-SVN: r218241
2014-12-01 19:26:20 +01:00
David Malcolm
eeafb31957 PR jit/64020: Fixes to handling of builtins
PR jit/64020
	* docs/topics/types.rst (Standard types) Add new enum values to
	the table of enum gcc_jit_types: GCC_JIT_TYPE_COMPLEX_FLOAT,
	GCC_JIT_TYPE_COMPLEX_DOUBLE, GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.
	Widen the left-hand column so that
	GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE will fit.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

	* jit-builtins.c: Include stringpool.h and jit-playback.h.
	Move everything out of the gcc::jit::recording namespace into
	just gcc::jit.
	(struct builtin_data): Add fields "fnclass", "attr", and
	"implicit_p".
	(DEF_BUILTIN): Update macro so populate the new fields.
	(builtins_manager::builtins_manager): Update for move out of
	recording namespace.  Initialize the m_attributes array.
	(builtins_manager::get_builtin_function): Likewise.
	(builtins_manager::get_builtin_function_by_id): New function.
	(builtins_manager::make_builtin_function): Update for move out of
	recording namespace.  Add fix for PR jit/64020 by detecting
	specific builtin ids and having them ensure that builtins for
	other ids are created as necessary.
	(builtins_manager::get_type): Update for move out of recording
	namespace.
	(builtins_manager::make_type): Likewise.  Add some missing
	#undefs.
	(builtins_manager::make_primitive_type): Update for move out of
	recording namespace.  Implement the three BT_COMPLEX_ cases and
	BT_DOUBLE_PTR.
	(builtins_manager::make_fn_type): Update for move out of recording
	namespace.
	(builtins_manager::make_ptr_type): Likewise.
	(builtins_manager::finish_playback): New function.
	(builtins_manager::get_class): New function.
	(builtins_manager::implicit_p): New function.
	(builtins_manager::get_attrs_tree): Two new functions.
	(builtins_manager::make_attrs_tree): New function.

	* jit-builtins.h: Move everything out of the gcc::jit::recording
	namespace into just gcc::jit.
	(enum built_in_attribute): New.
	(builtins_manager::builtins_manager): Update decl for namespace
	change.
	(builtins_manager::get_builtin_function): Likewise.
	(builtins_manager::get_class): New.
	(builtins_manager::implicit_p): New.
	(builtins_manager::get_attrs_tree): Two new functions.
	(builtins_manager::make_attrs_tree): New function.
	(builtins_manager::finish_playback): New.
	(builtins_manager::get_builtin_function_by_id): New.
	(builtins_manager::make_builtin_function): Update decl for
	namespace change.
	(builtins_manager::get_type): Likewise.
	(builtins_manager::make_type): Likewise.
	(builtins_manager::make_primitive_type): Likewise.
	(builtins_manager::make_fn_type): Likewise.
	(builtins_manager::make_ptr_type): Likewise.
	(builtins_manager): Likewise for fields.  Add new field
	"m_attributes".

	* jit-common.h (NUM_GCC_JIT_TYPES): Update.
	(builtins_manager): Update forward decl to reflect namespace
	change.

	* jit-playback.c: Include attribs.h and jit-builtins.h.
	(gcc::jit::playback::context::get_tree_node_for_type): Add cases
	for the new COMPLEX_ types.
	(gcc::jit::playback::context::new_function): If creating a
	builtin, set the DECL_BUILT_IN_CLASS and attributes on the fndecl,
	and call set_builtin_decl.
	(gcc::jit::playback::context::replay): If we have a
	builtins_manager, call its finish_playback method when we're done.

	* jit-playback.h:
	(gcc::jit::playback::context::get_builtins_manager): New function.

	* jit-recording.c
	(gcc::jit::recording::context::get_builtins_manager): New function.
	(gcc::jit::recording::get_builtin_function): Use
	get_builtins_manager, in case we're a child context.
	(gcc::jit::recording::memento_of_get_type::dereference): Add the
	COMPLEX_ types.
	(gcc::jit::recording::memento_of_get_type::is_int): Likewise.
	(gcc::jit::recording::memento_of_get_type::is_float): Likewise.
	(gcc::jit::recording::memento_of_get_type::is_bool): Likewise.
	(get_type_strings): Likewise.

	* jit-recording.h
	(gcc::jit::recording::context::get_builtins_manager): New.

	* libgccjit.h (enum gcc_jit_types): Add
	GCC_JIT_TYPE_COMPLEX_FLOAT, GCC_JIT_TYPE_COMPLEX_DOUBLE,
	GCC_JIT_TYPE_COMPLEX_LONG_DOUBLE.

From-SVN: r218240
2014-12-01 18:23:37 +00:00
David Malcolm
23844fd730 jit-builtins.c: Fix segfault on unsupported builtins
gcc/jit/ChangeLog:
	* jit-builtins.c
	(gcc::jit::recording::builtins_manager::get_builtin_function):
	Check for NULL return from make_builtin_function.
	(gcc::jit::recording::builtins_manager::make_builtin_function):
	Check for NULL return from get_type.

From-SVN: r218239
2014-12-01 18:16:37 +00:00
David Malcolm
c6760a1317 jit-playback: Move dso-creation into its own function
gcc/jit/ChangeLog:
	* jit-playback.c (gcc::jit::playback::context::compile): Move DSO
	creation code into...
	(gcc::jit::playback::context::convert_to_dso): New function.
	* jit-playback.h (gcc::jit::playback::context::convert_to_dso):
	New function.

From-SVN: r218238
2014-12-01 18:02:45 +00:00
David Malcolm
8f50ee3cbe jit-playback: Move argv-creation to its own function
gcc/jit/ChangeLog:
	* jit-playback.c (gcc::jit::playback::context::compile): Use an
	auto_vec<const char *> rather than a const char *[20] for the
	top-level argv, and move the logic to build it to...
	(gcc::jit::playback::context::make_fake_args): New function.
	* jit-playback.h (gcc::jit::playback::context::make_fake_args):
	New function.

From-SVN: r218237
2014-12-01 17:56:34 +00:00
David Malcolm
56dea35f94 Move gcc_jit_result implementation to a new files jit-result.{h|c}
gcc/jit/ChangeLog:
	* Make-lang.in (jit_OBJS): Add jit/jit-result.o.
	* jit-playback.c: Include new header jit-result.h.
	(gcc::jit::result::result): Move to new file jit-result.c.
	(gcc::jit::result::~result): Likewise.
	(gcc::jit::playback::result): Likewise.
	* jit-recording.h (class gcc::jit::result): Move to new
	header jit-result.h.
	* jit-result.c: New file, to contain...
	(gcc::jit::result::result): Move here from jit-playback.c,
	removing erroneous "playback" namespace from comment.
	(gcc::jit::result::~result): Likewise.
	(gcc::jit::playback::result): Likewise.
	* jit-result.h: New file, to contain...
	(class gcc::jit::result): Move from jit-recording.h.
	* libgccjit.c: Include jit-result.h.
	(gcc_jit_result_get_code): Update comment to reflect move
	of implementation.
	(gcc_jit_result_release): Likewise.

From-SVN: r218236
2014-12-01 17:52:03 +00:00
David Malcolm
52b9468f15 PR jit/63854: Fix leaks in toyvm.c
gcc/jit/ChangeLog:
	PR jit/63854
	* docs/examples/tut04-toyvm/toyvm.c
	(toyvm_compiled_function): New typedef.
	(toyvm_compiled_func) Rename to...
	(toyvm_compiled_code) ...this.
	(struct toyvm_compiled_function): New struct.
	(toyvm_function_compile): Return a toyvm_compiled_function *
	rather than a toyvm_compiled_func, so that the caller can fully
	clean things up.  Free "funcname".
	(test_script): Update for change to toyvm_function_compile.
	Clean up the toyvm_compiled_function.
	(main): Likewise.
	(docs/intro/tutorial04.rst): Update to reflect the above changes,
	and to better spell out the lifetime of the compiled code.

From-SVN: r218234
2014-12-01 17:40:03 +00:00
David Malcolm
33b625ed60 PR jit/63854: Fix leak in real.c for i386:init_ext_80387_constants
gcc/ChangeLog:
	PR jit/63854
	* real.c (real_from_string): Add missing mpfr_clear.

From-SVN: r218233
2014-12-01 17:28:28 +00:00
Kyrylo Tkachov
e90c82d3ee [AArch64][obvious] Gate fuse_adrp_add_1.c test on aarch64_small.
* gcc.target/aarch64/fuse_adrp_add_1.c: Gate test on aarch64_small.

From-SVN: r218232
2014-12-01 17:26:35 +00:00
David Malcolm
c8d19a6934 PR jit/63854: Fix leak within jit-builtins.c
gcc/jit/ChangeLog:
	PR jit/63854
	* jit-builtins.c
	(gcc::jit::recording::builtins_manager::make_fn_type): Call the
	context's new_function_type method, rather than directly creating
	a function_type instance.
	* jit-recording.c
	(gcc::jit::recording::context::new_function_type): New method,
	adapted from part of...
	(gcc::jit::recording::context::new_function_ptr_type): ...this.
	Update to call new_function_type.
	* jit-recording.h
	(gcc::jit::recording::context::new_function_type): New method.

From-SVN: r218231
2014-12-01 17:22:19 +00:00
David Malcolm
9370adeb9d PR jit/63854: Fix leak in tree-ssa-math-opts.c
gcc/ChangeLog:
	PR jit/63854
	* tree-ssa-math-opts.c (execute_cse_sincos_1): Fix a missing
	release of stmts by converting it to an auto_vec.

From-SVN: r218230
2014-12-01 17:16:04 +00:00
David Malcolm
dc706721e6 jit.exp: Verify the exit status of the spawnee
gcc/testsuite/ChangeLog:
	* jit.dg/jit.exp (verify_exit_status): New function.
	(fixed_host_execute): Verify the exit status of the spawnee.

From-SVN: r218229
2014-12-01 16:25:59 +00:00
David Malcolm
f3447c36c6 jit.exp: fix timeout bug inherited from dejagnu.exp
gcc/testsuite/ChangeLog:
	* jit.dg/jit.exp (fixed_host_execute): Fix timeout bug.

From-SVN: r218228
2014-12-01 16:18:57 +00:00
David Malcolm
d86dd9cb94 PR jit/63854: Add support for running "make check-jit" under valgrind
gcc/testsuite/ChangeLog:
	PR jit/63854
	* jit.dg/jit.exp (report_leak): New.
	(parse_valgrind_logfile): New.
	(fixed_host_execute): Detect if RUN_UNDER_VALGRIND is present
	in the environment, and if so, run the executable under
	valgrind, capturing valgrind's output to a logfile.  Parse the
	log file, generating PASSes and XFAILs for the summary of leaks.
	Use "wait" before "close": valgrind might not have finished
	writing the log out before we parse it, so we need to wait for
	the spawnee to finish.

From-SVN: r218227
2014-12-01 16:13:29 +00:00
David Malcolm
c985705ae9 PR jit/63969: Fix segfault in error-handling when driver isn't found
gcc/jit/ChangeLog:
	PR jit/63969
	* jit-playback.c: Ensure that ctxt_progname is non-NULL.

gcc/testsuite/ChangeLog:
	PR jit/63969
	* jit.dg/harness.h (CHECK_STRING_STARTS_WITH): New.
	(check_string_starts_with): New.
	* jit.dg/test-error-pr63969-missing-driver.c: New.

From-SVN: r218226
2014-12-01 15:58:11 +00:00
David Malcolm
81f263694d jit.exp: Avoid embedding full paths into test results
gcc/testsuite/ChangeLog:
	* jit.dg/jit.exp (jit-dg-test): Use $name rathen than $prog
	when calling jit_check_compile to avoid embedding the full path of
	the testcase into the test results.

From-SVN: r218225
2014-12-01 15:48:46 +00:00
Richard Biener
da42b278b2 Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of -Wno-unused-variable and...
2014-12-01  Richard Biener  <rguenther@suse.de>

	* Makefile.in (gimple-match.o-warn): Use -Wno-unused instead of
	-Wno-unused-variable and -Wno-unused-but-set-variable to restore
	bootstrap with old GCC.
	(generic-match.o-warn): Likewise.

From-SVN: r218224
2014-12-01 15:46:46 +00:00
Richard Biener
cd04ce7fb9 fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
2014-12-01  Richard Biener  <rguenther@suse.de>

	* fold-const.c (const_binop): Handle POINTER_PLUS_EXPR.
	Properly handle FIXED_CST shifts by INTEGER_CST.
	(const_binop): Move COMPLEX_EXPR, VEC_PACK_TRUNC_EXPR,
	VEC_PACK_FIX_TRUNC_EXPR, VEC_WIDEN_MULT_LO_EXPR,
	VEC_WIDEN_MULT_HI_EXPR, VEC_WIDEN_MULT_EVEN_EXPR and
	VEC_WIDEN_MULT_ODD_EXPR handling here from ...
	(fold_binary_loc): ... here.  Call const_binop overload
	with result type.

From-SVN: r218223
2014-12-01 15:43:58 +00:00
Marek Polacek
7d1f4ae5f1 re PR tree-optimization/64121 (ICE: SSA corruption with -O -fsanitize=undefined)
PR sanitizer/64121
	* ubsan.c (instrument_object_size): Stop searching if the base
	occurs in abnormal phi.

	* c-c++-common/ubsan/pr64121.c: New test.

Co-Authored-By: Jakub Jelinek <jakub@redhat.com>

From-SVN: r218222
2014-12-01 15:37:55 +00:00
Marek Polacek
0b274c179f re PR sanitizer/63956 ([UBSAN] ICE segfault in cxx_eval_call_expression ../../gcc/cp/constexpr.c)
PR sanitizer/63956
	* ubsan.c (is_ubsan_builtin_p): Check also built-in class.
cp/
	* constexpr.c: Include ubsan.h.
	(cxx_eval_call_expression): Bail out for IFN_UBSAN_{NULL,BOUNDS}
	internal functions and for ubsan builtins.
	* error.c: Include internal-fn.h.
	(dump_expr): Add printing of internal functions.
testsuite/
	* c-c++-common/ubsan/shift-5.c: Add xfails.
	* g++.dg/ubsan/div-by-zero-1.C: Don't use -w.  Add xfail.
	* g++.dg/ubsan/pr63956.C: New test.

From-SVN: r218221
2014-12-01 15:29:11 +00:00
Marek Polacek
e42c407c8a constexpr.c (literal_type_p): Return true for void type in C++14.
* constexpr.c (literal_type_p): Return true for void type in C++14.

	* g++.dg/cpp0x/constexpr-function2.C: Limit dg-error to C++11.
	* g++.dg/cpp0x/constexpr-neg1.C: Likewise.
	* g++.dg/cpp1y/constexpr-void1.C: New test.

From-SVN: r218220
2014-12-01 15:26:10 +00:00
Paolo Carlini
7a1811342e re PR c++/60845 (print original type for typedef classes in diagnostics)
/cp
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60845
	* typeck.c (finish_class_member_access_expr): Use %q#T instead of
	%qD in error message.

/testsuite
2014-12-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/60845
	* g++.dg/parse/error55.C: New.

From-SVN: r218218
2014-12-01 14:58:01 +00:00
Jakub Jelinek
0d0e4a03e9 gimple.h (gimple_build_assign_stat): Remove prototype.
* gimple.h (gimple_build_assign_stat): Remove prototype.
	(gimple_build_assign): Remove define.  Add overload prototypes
	with tree lhs and either a tree rhs, or enum tree_code and
	1, 2 or 3 tree operands.
	* gimple.c (gimple_build_assign_stat): Renamed to...
	(gimple_build_assign): ... this.  Add overloads with
	enum tree_code and 1, 2 or 3 tree operands.
	(gimple_build_assign_with_ops): Remove 1 and 2 operand overloads.
	Rename the 3 operand overload to ...
	(gimple_build_assign_1): ... this.  Make it static inline.
	* tree-ssa-strlen.c (get_string_length): Use gimple_build_assign
	instead of gimple_build_assign_with_ops, swap the order of first
	two arguments and adjust formatting where necessary.
	* tree-vect-slp.c (vect_get_constant_vectors,
	vect_create_mask_and_perm): Likewise.
	* tree-ssa-forwprop.c (simplify_rotate): Likewise.
	* asan.c (build_shadow_mem_access, maybe_create_ssa_name,
	maybe_cast_to_ptrmode, asan_expand_check_ifn): Likewise.
	* tsan.c (instrument_builtin_call): Likewise.
	* tree-chkp.c (chkp_compute_bounds_for_assignment,
	chkp_generate_extern_var_bounds): Likewise.
	* tree-loop-distribution.c (generate_memset_builtin): Likewise.
	* tree-ssa-loop-im.c (rewrite_reciprocal): Likewise.
	* gimple-builder.c (build_assign, build_type_cast): Likewise.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise.
	* value-prof.c (gimple_divmod_fixed_value, gimple_mod_pow2,
	gimple_mod_subtract): Likewise.
	* gimple-match-head.c (maybe_push_res_to_seq): Likewise.
	* tree-vect-patterns.c (vect_recog_dot_prod_pattern,
	vect_recog_sad_pattern, vect_handle_widen_op_by_const,
	vect_recog_widen_mult_pattern, vect_recog_pow_pattern,
	vect_recog_widen_sum_pattern, vect_operation_fits_smaller_type,
	vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern,
	vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern,
	vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern,
	adjust_bool_pattern_cast, adjust_bool_pattern,
	vect_recog_bool_pattern): Likewise.
	* gimple-ssa-strength-reduction.c (create_add_on_incoming_edge,
	insert_initializers, introduce_cast_before_cand,
	replace_one_candidate): Likewise.
	* tree-ssa-math-opts.c (insert_reciprocals, powi_as_mults_1,
	powi_as_mults, build_and_insert_binop, build_and_insert_cast,
	pass_cse_sincos::execute, bswap_replace, convert_mult_to_fma):
	Likewise.
	* tree-tailcall.c (adjust_return_value_with_ops,
	update_accumulator_with_ops): Likewise.
	* tree-predcom.c (reassociate_to_the_same_stmt): Likewise.
	* tree-ssa-reassoc.c (build_and_add_sum,
	optimize_range_tests_to_bit_test, update_ops,
	maybe_optimize_range_tests, rewrite_expr_tree, linearize_expr,
	negate_value, repropagate_negates, attempt_builtin_powi,
	reassociate_bb): Likewise.
	* tree-vect-loop.c (vect_is_simple_reduction_1,
	get_initial_def_for_induction, vect_create_epilog_for_reduction):
	Likewise.
	* ipa-split.c (split_function): Likewise.
	* tree-ssa-phiopt.c (conditional_replacement, minmax_replacement,
	abs_replacement, neg_replacement): Likewise.
	* tree-profile.c (gimple_gen_edge_profiler): Likewise.
	* tree-vrp.c (simplify_truth_ops_using_ranges,
	simplify_float_conversion_using_ranges,
	simplify_internal_call_using_ranges): Likewise.
	* gimple-fold.c (rewrite_to_defined_overflow, gimple_build): Likewise.
	* tree-vect-generic.c (expand_vector_divmod,
	optimize_vector_constructor): Likewise.
	* ubsan.c (ubsan_expand_null_ifn, ubsan_expand_objsize_ifn,
	instrument_bool_enum_load): Likewise.
	* tree-ssa-loop-manip.c (create_iv): Likewise.
	* omp-low.c (lower_rec_input_clauses, expand_omp_for_generic,
	expand_omp_for_static_nochunk, expand_omp_for_static_chunk,
	expand_cilk_for, simd_clone_adjust): Likewise.
	* trans-mem.c (expand_transaction): Likewise.
	* tree-vect-data-refs.c (bump_vector_ptr, vect_permute_store_chain,
	vect_setup_realignment, vect_permute_load_chain,
	vect_shift_permute_load_chain): Likewise.
	* tree-vect-stmts.c (vect_init_vector, vectorizable_mask_load_store,
	vectorizable_simd_clone_call, vect_gen_widened_results_half,
	vect_create_vectorized_demotion_stmts, vectorizable_conversion,
	vectorizable_shift, vectorizable_operation, vectorizable_store,
	permute_vec_elements, vectorizable_load): Likewise.

From-SVN: r218216
2014-12-01 14:58:10 +01:00