Commit Graph

144000 Commits

Author SHA1 Message Date
Sandra Loosemore
d0899488d9 standards.texi: Copy-editing for grammar, markup, and sentence flow throughout the file.
2016-01-19  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/standards.texi: Copy-editing for grammar, markup, and sentence
	flow throughout the file.  Fix broken link to Objective-C 2.0
	documentation.
	* doc/invoke.texi: More copy-editing; fix numerous typos and spelling
	errors.

From-SVN: r232583
2016-01-19 15:44:11 -05:00
David Malcolm
199501ea41 PR jit/69144: Ensure that libgccjit's tempdir is fully cleaned-up
There were a couple of ways that libgccjit could fail to unlink all
of its tempfiles, leading to /tmp/libgccjit-* tempdirs lingering
after the build:
- dumpfiles requested by gcc_jit_context_enable_dump
- ahead-of-time compilation artifacts which lingered in the tempdir
  after they've been copied up to the output_path.  This was only
  the case for GCC_JIT_OUTPUT_KIND_OBJECT_FILE and
  GCC_JIT_OUTPUT_KIND_EXECUTABLE.

The following patch fixes these by introducing a vec of additional
cleanups to be performed by gcc:jit::tempdir's dtor.

In addition, if a gcc_jit_result * is leaked and
GCC_JIT_BOOL_OPTION_DEBUGINFO is enabled, the tempdir will also
not be cleaned up.  This was the case for tut04-toyvm/toyvm.cc
which the patch fixes by introducing a wrapper around
gcc_jit_result *.  Doing this required some updates to the
corresponding docs.

gcc/jit/ChangeLog:
	PR jit/69144
	* jit-playback.c (gcc::jit::playback::compile_to_file::postprocess):
	Potentially add the temporary artifact to the tempdir's list of
	tempfiles needing additional cleanup.
	(gcc::jit::playback::context::extract_any_requested_dumps): Likewise
	for the dumpfile.
	* jit-tempdir.c (gcc::jit::tempdir::~tempdir): Clean up additional
	tempfiles.
	* jit-tempdir.h (gcc::jit::tempdir::add_temp_file): New method.
	(gcc::jit::tempdir::m_tempfiles): New field.
	* docs/cp/intro/tutorial04.rst: Update for changes to toyvm.cc.
	* docs/examples/tut04-toyvm/toyvm.cc (class compilation_result):
	New.
	(toyvm_function::compile): Change return type from function ptr
	to a compilation_result.
	(toyvm_function::get_function_name): New accessor.
	(toyvm_function::m_funcname): New field.
	(get_function_name): Convert to...
	(toyvm_function::make_function_name): ...this new method.
	(toyvm_function::parse): Call make_function_name.
	(toyvm_function::compile): Convert return type from function ptr
	to a compilation_result.  Use get_function_name.
	(compilation_state::compile): Convert return type from
	gcc_jit_result * to a compilation_result.
	(test_script): Update for above changes, extracting the code from
	the compilation_result.
	(main): Likewise.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r232582
2016-01-19 20:37:19 +00:00
Torvald Riegel
f57fc96068 libitm: Remove dead code.
* local_type_traits: Remove file.
	* libitm_i.h: Don't include it anymore.
	(sized_integral): Remove.

From-SVN: r232581
2016-01-19 19:49:14 +00:00
Jason Merrill
33f4884259 re PR c++/59759 (internal compiler error: in unify, using std::enable_if on classes)
PR c++/59759
	* pt.c (convert_template_argument): Handle VAR_DECL properly.

From-SVN: r232580
2016-01-19 14:00:21 -05:00
Wilco Dijkstra
a88d10cb99 [Patch] Fix spurious warning in ccmp.c
2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

	* ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.

From-SVN: r232576
2016-01-19 18:02:48 +00:00
Uros Bizjak
7596d5de93 re PR testsuite/68820 (FAIL: gcc.c-torture/execute/builtins/memops-asm.c execution, -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects)
PR testsuite/68820
	* gcc.c-torture/execute/builtins/memops-asm.x: New file.
	* gcc.c-torture/execute/builtins/strstr-asm.x: Ditto.
	* gcc.c-torture/execute/builtins/strstr-asm.c: Remove dg-options.

From-SVN: r232573
2016-01-19 18:10:31 +01:00
Jan Hubicka
ceda2c69d5 re PR ipa/66223 (Diagnostic of pure virtual function call broken, including __cxa_pure_virtual)
PR ipa/66223
	* ipa-devirt.c (is_cxa_pure_virtual_p): New function.
	(maybe_record_node): Record cxa_pure_virtual as the only possible
	target if there are not ohter candidates.
	(possible_polymorphic_call_target_p): Accept cxa_pure_virtual.

	* g++.dg/ipa/devirt-50.C: New testcase.

From-SVN: r232572
2016-01-19 16:49:50 +00:00
Richard Biener
b1b6d906cd hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants and name.
2016-01-19  Richard Biener  <rguenther@suse.de>

	* hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants
	and name.
	(get_memory_order): Likewise.

From-SVN: r232571
2016-01-19 15:10:40 +00:00
Marek Polacek
38a979f288 re PR c++/68965 (-Wunused-parameter is reported in variadic lambda or function using sizeof...(xs))
PR c++/68965
	* pt.c (tsubst_copy): Mark elements in expanded vector as used.

	* g++.dg/cpp1y/parameter-pack-1.C: New test.
	* g++.dg/cpp1y/parameter-pack-2.C: New test.

From-SVN: r232569
2016-01-19 14:37:49 +00:00
Kirill Yukhin
f4d0971224 Fix ICE in vectorizable_store ().
gcc/
	* tree-vect-stmts.c (vectorizable_store): Check
	rhs vectype.

From-SVN: r232568
2016-01-19 14:37:23 +00:00
David Malcolm
d6874f5662 Fix memory chunk corruption for opts_obstack (PR jit/68446)
gcc/ChangeLog:
	PR jit/68446
	* gcc.c (driver::decode_argv): Add call to
	init_opts_obstack before init_options_struct.
	* opts.c (init_opts_obstack): Remove idempotency.
	(init_options_struct): Replace call to init_opts_obstack
	with a gcc_assert to verify that it has already been called.
	* toplev.c (toplev::main): Add call to init_opts_obstack before
	calls to init_options_struct.
	(toplev::finalize): Move cleanup of opts_obstack next to
	cleanup of save_decoded_options, clearing the latter, and
	save_decoded_options_count.

From-SVN: r232567
2016-01-19 14:35:16 +00:00
Kyrylo Tkachov
962801c550 [ARM] PR target/69135: Mark ARMv8 vcvt instructions as unconditional
PR target/69135
	* config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
	attribute to unconditional.  Remove %? from output template.

	* gcc.target/arm/pr69135_1.c: New test.

From-SVN: r232566
2016-01-19 14:30:23 +00:00
Wilco Dijkstra
078fe40a48 [PATCH 4/4] Add CCMP selection based on rtx costs
2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
		Jiong Wang  <jiong.wang@arm.com>

    gcc/
	* ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
	generated from different expand order.

    gcc/testsuite/
        * gcc.target/aarch64/ccmp_1.c: Add new tests.


Co-Authored-By: Jiong Wang <jiong.wang@arm.com>

From-SVN: r232565
2016-01-19 14:14:56 +00:00
Wilco Dijkstra
786298dc13 [PATCH 3/4] Add support for rtx costing of CCMP on AArch64
2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
        * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
        Add support for CCMP costing.

From-SVN: r232564
2016-01-19 14:10:49 +00:00
Wilco Dijkstra
786e3c064c [PATCH 2/4] Add support for float CCMP
2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
        * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
        * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
        (fccmpe<mode>): Likewise.
        (fcmp): Rename to fcmp and globalize pattern.
        (fcmpe): Likewise.
        * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
        (aarch64_gen_ccmp_next): Add FP support.

    gcc/testsuite/

        * gcc.target/aarch64/ccmp_1.c: New testcase.

From-SVN: r232563
2016-01-19 14:09:49 +00:00
Marek Polacek
1e2970064a re PR c++/68586 (Enum template parameter wrongly rejected)
PR c++/68586
	* constexpr.c (clear_cv_cache): New.
	* cp-gimplify.c (clear_fold_cache): New.
	* cp-tree.h (clear_cv_cache, clear_fold_cache): Declare.
	* decl.c (finish_enum_value_list): Call them.

	* g++.dg/cpp0x/enum30.C: New test.

From-SVN: r232562
2016-01-19 14:02:40 +00:00
Wilco Dijkstra
c8012fbce9 [Patch 1/4] Simplify the representation of CCMP patterns by using
2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>

    gcc/
        * target.def (gen_ccmp_first): Update documentation.
        (gen_ccmp_next): Likewise.
        * doc/tm.texi (gen_ccmp_first): Update documentation.
        (gen_ccmp_next): Likewise.
        * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
        expand_ccmp_expr_1.  Improve comments.
        * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
        (ccmp_ior<mode>): Remove pattern.
        (cmp<mode>): Remove expand.
        (cmp): Globalize pattern.
        (cstorecc4): Use cc_register.
        (mov<mode>cc): Remove ccmp_cc_register check.
        * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
        Simplify after removal of CC_DNE/* modes.
        (aarch64_ccmp_mode_to_code): Remove.
        (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
        In 'k' case use integer as condition.
        (aarch64_nzcv_codes): Remove inverted cases.
        (aarch64_code_to_ccmode): Remove.
        (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
        comparison with CC register to be used in folowing CCMP/branch/CSEL.
        (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
        pattern.  Return the comparison with CC register.  Invert conditions
        when bitcode is OR.
        * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
        * config/aarch64/predicates.md (ccmp_cc_register): Remove.

From-SVN: r232561
2016-01-19 13:59:56 +00:00
Jan Hubicka
756f4e9049 cgraphunit.c (cgraph_node::reset): Clear thunk info and instrumented_version.
* cgraphunit.c (cgraph_node::reset): Clear thunk info and
	instrumented_version.

From-SVN: r232560
2016-01-19 13:28:32 +00:00
Richard Biener
879c27e3a3 re PR tree-optimization/69336 (Constant value not detected)
2016-01-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69336
	* tree-ssa-scopedtables.c (avail_expr_hash): Handle all
	handled components with get_ref_base_and_extent.
	(equal_mem_array_ref_p): Adjust.

	* g++.dg/tree-ssa/pr69336.C: New testcase.

From-SVN: r232559
2016-01-19 13:27:11 +00:00
Jakub Jelinek
015337d35b re PR debug/65779 (undefined local symbol on powerpc [regression])
PR debug/65779
	* shrink-wrap.c: Include valtrack.h.
	(move_insn_for_shrink_wrap): Add DEBUG argument.  If
	MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
	in between insn and where it will be moved to.  Call
	dead_debug_insert_temp.
	(prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
	first and dead_debug_local_finish at the end.
	For uses and defs bitmap, handle all regs in between REGNO and
	END_REGNO, not just the first one.

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

From-SVN: r232558
2016-01-19 14:21:04 +01:00
Richard Biener
e2c768b644 re PR tree-optimization/69352 (profiledbootstrap failure with --with-build-config=bootstrap-lto)
2016-01-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69352
	* tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
	(equal_mem_array_ref_p): Constrain size and max size properly.
	Compare the reverse flag.

	* gcc.dg/torture/pr69352.c: New testcase.

From-SVN: r232557
2016-01-19 13:19:01 +00:00
Bernd Schmidt
d20c47fc86 * ira.c (ira): Update regstat data if we deleted insns.
From-SVN: r232556
2016-01-19 13:02:17 +00:00
Jakub Jelinek
e47294194f re PR sanitizer/68824 (libtsan is missing the __interceptor___tls_get_addr symbol without bumping the soname)
PR sanitizer/68824
	* tsan/tsan_interceptors.cc (NEED_TLS_GET_ADDR, __tls_get_addr,
	InitializeInterceptors): Cherry pick upstream r258119.

From-SVN: r232555
2016-01-19 13:45:54 +01:00
Jakub Jelinek
569efc34eb re PR rtl-optimization/68955 (wrong code at -O3 on x86-64-linux-gnu in 32-bit mode)
PR rtl-optimization/68955
	PR rtl-optimization/64557
	* dse.c (record_store, check_mem_read_rtx): Don't call get_addr
	here.  Fix up formatting.
	* alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.

	* gcc.dg/torture/pr68955.c: New test.

From-SVN: r232554
2016-01-19 13:34:45 +01:00
Jan Hubicka
e49d321f03 re PR lto/69136 (ICE in lto_symtab_prevailing_virtual_decl, at lto/lto-symtab.c:991)
PR lto/69136
	* lto-symtab.c (lto_symtab_prevailing_virtual_decl): Abstract
	decls have no assemblernames.
	* g++.dg/torture/pr69136.C: New testcase.

From-SVN: r232553
2016-01-19 11:59:58 +00:00
Jan Hubicka
e9191ad3ab re PR lto/69133 (LTO segfault in lto_get_decl_name_mapping() on 483.xalancbmk with -flto-partition=none)
PR lto/69133
	* cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
	assume that the node has body.
	* cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
	check.
	* g++.dg/lto/pr69133_0.C: New testcase.
	* g++.dg/lto/pr69133_1.C: New testcase.

From-SVN: r232552
2016-01-19 11:57:41 +00:00
Jan Hubicka
150be262b9 lto-streamer-out.c (lto_output): Do not stream instrumentation thunks.
* lto-streamer-out.c (lto_output): Do not stream instrumentation
	thunks.

From-SVN: r232551
2016-01-19 11:55:10 +00:00
Jan Hubicka
ae4bbcb233 symtab.c (symtab_node::asm_name): Do not call printable name directly.
* symtab.c (symtab_node::asm_name): Do not call printable name directly.
	(symtab_node::name): Report name as unnamed if DECL_NAME is not set.

From-SVN: r232550
2016-01-19 11:51:18 +00:00
Martin Jambor
b2b4005150 Merge of HSA
2016-01-19  Martin Jambor  <mjambor@suse.cz>
	    Martin Liska  <mliska@suse.cz>
	    Michael Matz <matz@suse.de>

libgomp/
	* plugin/Makefrag.am: Add HSA plugin requirements.
	* plugin/configfrag.ac (HSA_RUNTIME_INCLUDE): New variable.
	(HSA_RUNTIME_LIB): Likewise.
	(HSA_RUNTIME_CPPFLAGS): Likewise.
	(HSA_RUNTIME_INCLUDE): New substitution.
	(HSA_RUNTIME_LIB): Likewise.
	(HSA_RUNTIME_LDFLAGS): Likewise.
	(hsa-runtime): New configure option.
	(hsa-runtime-include): Likewise.
	(hsa-runtime-lib): Likewise.
	(PLUGIN_HSA): New substitution variable.
	Fill HSA_RUNTIME_INCLUDE and HSA_RUNTIME_LIB according to the new
	configure options.
	(PLUGIN_HSA_CPPFLAGS): Likewise.
	(PLUGIN_HSA_LDFLAGS): Likewise.
	(PLUGIN_HSA_LIBS): Likewise.
	Check that we have access to HSA run-time.
	* libgomp-plugin.h (offload_target_type): New element
	OFFLOAD_TARGET_TYPE_HSA.
	* libgomp.h (gomp_target_task): New fields firstprivate_copies and
	args.
	(bool gomp_create_target_task): Updated.
	(gomp_device_descr): Extra parameter of run_func and async_run_func,
	new field can_run_func.
	* libgomp_g.h (GOMP_target_ext): Update prototype.
	* oacc-host.c (host_run): Added a new parameter args.
	* target.c (calculate_firstprivate_requirements): New function.
	(copy_firstprivate_data): Likewise.
	(gomp_target_fallback_firstprivate): Use them.
	(gomp_target_unshare_firstprivate): New function.
	(gomp_get_target_fn_addr): Allow returning NULL for shared memory
	devices.
	(GOMP_target): Do host fallback for all shared memory devices.  Do not
	pass any args to plugins.
	(GOMP_target_ext): Introduce device-specific argument parameter args.
	Allow host fallback if device shares memory.  Do not remap data if
	device has shared memory.
	(gomp_target_task_fn): Likewise.  Also treat shared memory devices
	like host fallback for mappings.
	(GOMP_target_data): Treat shared memory devices like host fallback.
	(GOMP_target_data_ext): Likewise.
	(GOMP_target_update): Likewise.
	(GOMP_target_update_ext): Likewise.  Also pass NULL as args to
	gomp_create_target_task.
	(GOMP_target_enter_exit_data): Likewise.
	(omp_target_alloc): Treat shared memory devices like host fallback.
	(omp_target_free): Likewise.
	(omp_target_is_present): Likewise.
	(omp_target_memcpy): Likewise.
	(omp_target_memcpy_rect): Likewise.
	(omp_target_associate_ptr): Likewise.
	(gomp_load_plugin_for_device): Also load can_run.
	* task.c (GOMP_PLUGIN_target_task_completion): Free
	firstprivate_copies.
	(gomp_create_target_task): Accept new argument args and store it to
	ttask.
	* plugin/plugin-hsa.c: New file.

gcc/
	* Makefile.in (OBJS): Add new source files.
	(GTFILES): Add hsa.c.
	* common.opt (disable_hsa): New variable.
	(-Whsa): New warning.
	* config.in (ENABLE_HSA): New.
	* configure.ac: Treat hsa differently from other accelerators.
	(OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
	$enable_offloading.
	(ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
	* doc/install.texi (Configuration): Document --with-hsa-runtime,
	--with-hsa-runtime-include, --with-hsa-runtime-lib and
	--with-hsa-kmt-lib.
	* doc/invoke.texi (-Whsa): Document.
	(hsa-gen-debug-stores): Likewise.
	* lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
	to invoke offload compiler for hsa acclerator.
	* opts.c (common_handle_option): Determine whether HSA offloading
	should be performed.
	* params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
	* builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
	* gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
	* gimple-pretty-print.c (dump_gimple_omp_for): Also handle
	GF_OMP_FOR_KIND_GRID_LOOP.
	(dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
	(pp_gimple_stmt_1): Likewise.
	* gimple-walk.c (walk_gimple_stmt): Likewise.
	* gimple.c (gimple_build_omp_grid_body): New function.
	(gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
	* gimple.def (GIMPLE_OMP_GRID_BODY): New.
	* gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
	GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
	GF_OMP_TEAMS_GRID_PHONY.
	(gimple_statement_omp_single_layout): Updated comments.
	(gimple_build_omp_grid_body): New function.
	(gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
	(gimple_omp_for_grid_phony): New function.
	(gimple_omp_for_set_grid_phony): Likewise.
	(gimple_omp_parallel_grid_phony): Likewise.
	(gimple_omp_parallel_set_grid_phony): Likewise.
	(gimple_omp_teams_grid_phony): Likewise.
	(gimple_omp_teams_set_grid_phony): Likewise.
	(gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
	* omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
	(BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
	(BUILT_IN_GOMP_TARGET): Updated type.
	* omp-low.c: Include symbol-summary.h, hsa.h and params.h.
	(adjust_for_condition): New function.
	(get_omp_for_step_from_incr): Likewise.
	(extract_omp_for_data): Moved parts to adjust_for_condition and
	get_omp_for_step_from_incr.
	(build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
	(fixup_child_record_type): Bail out if receiver_decl is NULL.
	(scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
	(scan_omp_parallel): Do not create child functions for phony
	constructs.
	(check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
	(scan_omp_1_op): Checking assert we are not remapping to
	ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
	(parallel_needs_hsa_kernel_p): New function.
	(expand_parallel_call): Register apprpriate parallel child
	functions as HSA kernels.
	(grid_launch_attributes_trees): New type.
	(grid_attr_trees): New variable.
	(grid_create_kernel_launch_attr_types): New function.
	(grid_insert_store_range_dim): Likewise.
	(grid_get_kernel_launch_attributes): Likewise.
	(get_target_argument_identifier_1): Likewise.
	(get_target_argument_identifier): Likewise.
	(get_target_argument_value): Likewise.
	(push_target_argument_according_to_value): Likewise.
	(get_target_arguments): Likewise.
	(expand_omp_target): Call get_target_arguments instead of looking
	up for teams and thread limit.
	(grid_expand_omp_for_loop): New function.
	(grid_arg_decl_map): New type.
	(grid_remap_kernel_arg_accesses): New function.
	(grid_expand_target_kernel_body): New function.
	(expand_omp): Call it.
	(lower_omp_for): Do not emit phony constructs.
	(lower_omp_taskreg): Do not emit phony constructs but create for them
	a temporary variable receiver_decl.
	(lower_omp_taskreg): Do not emit phony constructs.
	(lower_omp_teams): Likewise.
	(lower_omp_grid_body): New function.
	(lower_omp_1): Call it.
	(grid_reg_assignment_to_local_var_p): New function.
	(grid_seq_only_contains_local_assignments): Likewise.
	(grid_find_single_omp_among_assignments_1): Likewise.
	(grid_find_single_omp_among_assignments): Likewise.
	(grid_find_ungridifiable_statement): Likewise.
	(grid_target_follows_gridifiable_pattern): Likewise.
	(grid_remap_prebody_decls): Likewise.
	(grid_copy_leading_local_assignments): Likewise.
	(grid_process_kernel_body_copy): Likewise.
	(grid_attempt_target_gridification): Likewise.
	(grid_gridify_all_targets_stmt): Likewise.
	(grid_gridify_all_targets): Likewise.
	(execute_lower_omp): Call grid_gridify_all_targets.
	(make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
	* tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
	(tree_omp_clause): Added union field dimension.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
	* tree.c (omp_clause_num_ops): Added number of arguments of
	OMP_CLAUSE__GRIDDIM_.
	(omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
	(walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
	* tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
	(OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
	(OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
	(OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
	* passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
	* tree-pass.h (make_pass_gen_hsail): Declare.
	(make_pass_ipa_hsa): Likewise.
	* ipa-hsa.c: New file.
	* lto-section-in.c (lto_section_name): Add hsa section name.
	* lto-streamer.h (lto_section_type): Add hsa section.
	* timevar.def (TV_IPA_HSA): New.
        * hsa-brig-format.h: New file.
	* hsa-brig.c: New file.
	* hsa-dump.c: Likewise.
	* hsa-gen.c: Likewise.
	* hsa.c: Likewise.
	* hsa.h: Likewise.
	* toplev.c (compile_file): Call hsa_output_brig.
	* hsa-regalloc.c: New file.

gcc/fortran/
	* types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
	(BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.

gcc/lto/
	* lto-partition.c: Include "hsa.h"
	(add_symbol_to_partition_1): Put hsa implementations into the
	same partition as host implementations.

liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_async_run): New
	unused parameter.
	(GOMP_OFFLOAD_run): Likewise.

include/
	* gomp-constants.h (GOMP_DEVICE_HSA): New macro.
	(GOMP_VERSION_HSA): Likewise.
	(GOMP_TARGET_ARG_DEVICE_MASK): Likewise.
	(GOMP_TARGET_ARG_DEVICE_ALL): Likewise.
	(GOMP_TARGET_ARG_SUBSEQUENT_PARAM): Likewise.
	(GOMP_TARGET_ARG_ID_MASK): Likewise.
	(GOMP_TARGET_ARG_NUM_TEAMS): Likewise.
	(GOMP_TARGET_ARG_THREAD_LIMIT): Likewise.
	(GOMP_TARGET_ARG_VALUE_SHIFT): Likewise.
	(GOMP_TARGET_ARG_HSA_KERNEL_ATTRIBUTES): Likewise.

From-SVN: r232549
2016-01-19 11:35:10 +01:00
Jeff Law
2bedb645f2 re PR tree-optimization/69320 (wrong code generation at -O2 and higher)
2016-01-18  Jeff Law  <law@redhat.com>

	PR tree-optimization/69320
	* tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
	ranged object, do nothing if the RHS constant is not [0..1].
	(optimize_stmt): Comparing a boolean ranged object against a
	constant outside [0..1] results in a compile-time constant.

	* tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
	test.

	PR tree-optimization/69320
	* gcc.c-torture/pr69320-1.c: New test.
	* gcc.c-torture/pr69320-2.c: New test.
	* gcc.c-torture/pr69320-3.c: New test.
	* gcc.c-torture/pr69320-4.c: New test.

From-SVN: r232548
2016-01-18 23:43:54 -07:00
Patrick Palka
17c15cb932 Fix the remaining PR c++/24666 blockers (arrays decay to pointers too early)
gcc/cp/ChangeLog:

	PR c++/11858
	PR c++/24663
	PR c++/24664
	* decl.c (grokdeclarator): Don't decay array parameter type to
	a pointer type if it's dependent.
	(grokparms): Invoke strip_top_quals instead of directly invoking
	cp_build_qualified_type.
	* pt.c (decay_dependent_array_parm_type): New static function.
	(type_unification_real): Call decay_dependent_array_parm_type
	to decay a dependent array parameter type to its corresponding
	pointer type before unification.
	(more_specialized_fn): Likewise.
	(get_bindings): Likewise.
	* tree.c (cp_build_qualified_type): Trivial typofix in
	documentation.

gcc/testsuite/ChangeLog:

	PR c++/11858
	PR c++/24663
	PR c++/24664
	* g++.dg/template/pr11858.C: New test.
	* g++.dg/template/pr24663.C: New test.
	* g++.dg/template/unify12.C: New test.
	* g++.dg/template/unify13.C: New test.
	* g++.dg/template/unify14.C: New test.
	* g++.dg/template/unify15.C: New test.
	* g++.dg/template/unify16.C: New test.
	* g++.dg/template/unify17.C: New test.

From-SVN: r232547
2016-01-19 00:19:16 +00:00
GCC Administrator
49f8a19186 Daily bump.
From-SVN: r232546
2016-01-19 00:16:13 +00:00
Sandra Loosemore
b0b662cc56 invoke.texi (Invoking GCC): Add new section to menu.
2016-01-18  Sandra Loosemore <sandra@codesourcery.com>

	gcc/
	* doc/invoke.texi (Invoking GCC): Add new section to menu.
	(Option Summary): Update to reflect new section and moved options.
	(C++ Dialect Options): Move -fstats to new section.
	(Debugging Options): Move all dump, statistics, and other GCC
	developer options to new section.  Rewrite section introduction
	and re-order remaining options to put the more basic ones first.
	(Optimization Options): Move -fira-verbose and -flto-report* to
	new section.
	(Developer Options): New section incorporating moved options.
	* doc/cppopts.texi (-dM): Update cross-reference.

From-SVN: r232541
2016-01-18 17:47:09 -05:00
Richard Henderson
89f0a62ebc re PR target/69176 (ICE in in final_scan_insn, at final.c:2981 on aarch64-linux-gnu)
PR target/69176

  * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
  operands to pseudo only if CSE is expected.  Split long immediate
  operands only after reload, and for the stack pointer.
  (*add<GPI>3_pluslong): Remove.
  (*addsi3_aarch64, *adddi3_aarch64): Merge into...
  (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
  (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
  (*add<GPI>3 peepholes): New.
  (*add<GPI>3 splitters): New.
  * config/aarch64/constraints.md (Upl): New.
  * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.

From-SVN: r232540
2016-01-18 12:56:13 -08:00
Torvald Riegel
9585381acd libstdc++: Fix usage of __GXX_WEAK__ in TM TS support.
* include/bits/c++config (_GLIBCXX_USE_WEAK_REF): New.
	(_GLIBCXX_TXN_SAFE, _GLIBCXX_TXN_SAFE_DYN): Use	_GLIBCXX_USE_WEAK_REF
	and move after its definition.
	* config/os/aix/os_defines.h (_GLIBCXX_USE_WEAK_REF): Override.
	* src/c++11/cow-stdexcept.cc: Use _GLIBCXX_USE_WEAK_REF instead of
	__GXX_WEAK__, and only provide transactional clones if
	_GLIBCXX_USE_WEAK_REF is true.  Don't provide stubs of libitm
	functions.

From-SVN: r232539
2016-01-18 20:09:55 +00:00
Jakub Jelinek
66bc83c2a7 mpx_wrappers.c (__mpx_wrapper_memmove): Avoid -Wdiscarded-qualifiers warning.
* mpxwrap/mpx_wrappers.c (__mpx_wrapper_memmove): Avoid
	-Wdiscarded-qualifiers warning.  Fix up formatting.

From-SVN: r232537
2016-01-18 20:36:02 +01:00
David Malcolm
9617fd0862 PR testsuite/69181: ensure expected multiline outputs is cleared per-test
gcc/testsuite/ChangeLog:
	PR testsuite/69181
	* gcc.dg/pr69181-1.c: New test file.
	* gcc.dg/pr69181-2.c: New test file.
	* lib/gcc-dg.exp (dg-test): Consolidate post-test cleanup of
	globals by moving it to...
	(cleanup-after-saved-dg-test): ...this new function.  Add
	"global additional_sources_used".  Add reset of global
	multiline_expected_outputs to the empty list.
	* lib/multiline.exp (_multiline_expected_outputs): Rename this
	global to...
	(multiline_expected_outputs): ...this, and updated comments to
	note that it is modified from gcc-dg.exp.
	(dg-end-multiline-output): Update for the above renaming.
	(handle-multiline-outputs): Likewise.  Remove the clearing
	of the expected outputs to the empty list.

From-SVN: r232535
2016-01-18 17:26:58 +00:00
Jonathan Wakely
c91bcffc4a Add test for PR 60637
PR libstdc++/60637
	* testsuite/26_numerics/headers/cmath/60637.cc: Add test.

From-SVN: r232534
2016-01-18 17:15:42 +00:00
Jan Hubicka
5803bd0127 re PR lto/69003 (Undefined reference with gcc -r incremental linking)
PR lto/69003
	* lto-partition.c (rename_statics): Fix pasto.

From-SVN: r232525
2016-01-18 15:58:06 +00:00
Jason Merrill
4b0b30ef85 * cp-gimplify.c (cp_fold) [CONSTRUCTOR]: Don't clobber the input.
From-SVN: r232524
2016-01-18 10:54:26 -05:00
Jason Merrill
8d8f323550 * cp-gimplify.c (cp_fold): Remove unnecessary special cases.
From-SVN: r232523
2016-01-18 10:54:20 -05:00
Jason Merrill
7f26f7df90 re PR c++/68767 (spurious warning: null argument where non-null required)
PR c++/68767
gcc/c-family/
	* c-common.c (check_function_arguments_recurse): Fold the whole
	COND_EXPR, not just the condition.
gcc/cp/
	* cp-gimplify.c (cp_fold) [COND_EXPR]: Simplify.  Do fold COND_EXPR.
	(contains_label_1, contains_label_p): Remove.

From-SVN: r232522
2016-01-18 10:54:14 -05:00
Tom de Vries
f62bf0924e Ignore reduction clause on kernels directive
2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* c-omp.c (c_oacc_split_loop_clauses): Don't copy OMP_CLAUSE_REDUCTION,
	classify as loop clause.

From-SVN: r232521
2016-01-18 14:48:26 +00:00
Richard Biener
b555a2e4c3 re PR tree-optimization/69297 (Performance regression after r230020)
2016-01-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/69297
	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
	stmt at most once.
	(vect_bb_vectorization_profitable_p): Clear visited flag again.

	* gcc.dg/vect/costmodel/x86_64/costmodel-pr69297.c: New testcase.

From-SVN: r232519
2016-01-18 14:25:56 +00:00
Yuri Rumyantsev
305708cedd re PR middle-end/68542 (10% 481.wrf performance regression)
gcc/

2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

	PR middle-end/68542
	* fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
	of mixind vector and scalar types.
	(fold_relational_const): Add handling of vector
	comparison with boolean result.
	* tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
	comparison of vector operands with boolean result for EQ/NE only.
	(verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
	(verify_gimple_cond): Likewise.
	* tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
	valid type of VAL.

From-SVN: r232518
2016-01-18 14:14:35 +00:00
Joseph Myers
969028053f Handle Octeon 3 not supporting MIPS paired-single instructions.
The Octeon 3 processor does not support the MIPS paired-single
instructions.  This results in illegal instruction errors in the
testsuite when vectorization tests try to use those instructions.

This patch teaches the compiler about that lack of support, so that
warnings are given when -mpaired-single (or something implying it) is
used when compiling for such a processor.  I chose to test
TARGET_OCTEON as the simplest conditional; since the older Octeon
processors don't support hard float at all, I don't think the choice
matters for them.  Tests that then failed with the warning were
updated to disable them for Octeon.

Tested with no regressions for cross to mips64el-linux-gnu (Octeon
3).

gcc:
	* config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
	!TARGET_OCTEON.

gcc/testsuite:
	* gcc.target/mips/mips-3d-1.c: Use forbid_cpu=octeon.* in
	dg-options.
	* gcc.target/mips/mips-3d-2.c: Likewise.
	* gcc.target/mips/mips-3d-3.c: Likewise.
	* gcc.target/mips/mips-3d-4.c: Likewise.
	* gcc.target/mips/mips-3d-5.c: Likewise.
	* gcc.target/mips/mips-3d-6.c: Likewise.
	* gcc.target/mips/mips-3d-7.c: Likewise.
	* gcc.target/mips/mips-3d-8.c: Likewise.
	* gcc.target/mips/mips-3d-9.c: Likewise.
	* gcc.target/mips/mips-ps-1.c: Likewise.
	* gcc.target/mips/mips-ps-2.c: Likewise.
	* gcc.target/mips/mips-ps-3.c: Likewise.
	* gcc.target/mips/mips-ps-4.c: Likewise.
	* gcc.target/mips/mips-ps-5.c: Likewise.
	* gcc.target/mips/mips-ps-6.c: Likewise.
	* gcc.target/mips/mips-ps-7.c: Likewise.
	* gcc.target/mips/mips-ps-type.c: Likewise.
	* gcc.target/mips/mips-ps-type-2.c: Likewise.
	* gcc.target/mips/mips16-attributes-6.c: Likewise.

From-SVN: r232517
2016-01-18 13:30:43 +00:00
Richard Biener
46ec7a061e re PR tree-optimization/69308 (ifcombine joins together floating point expression with side effects)
2016-01-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/69308
	* gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.

From-SVN: r232516
2016-01-18 13:03:54 +00:00
Tom de Vries
5d7804a940 Add oacc kernels test in libgomp
2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-2.c: New test.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-3.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-2.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-3.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-4.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-5.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq-6.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-and-seq.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-collapse.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-2.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit-2.c:
	Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-enter-exit.c:
	Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data-update.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-data.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-g.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-mod-not-zero.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-n.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop-nest.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-loop.c: Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-parallel-loop-data-enter-exit.c:
	Same.
	* testsuite/libgomp.oacc-c-c++-common/kernels-reduction.c: Same.

From-SVN: r232515
2016-01-18 12:53:03 +00:00
Tom de Vries
40e26f946c Add oacc kernels tests in goacc
2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* c-c++-common/goacc/kernels-counter-vars-function-scope.c: New test.
	* c-c++-common/goacc/kernels-double-reduction.c: New test.
	* c-c++-common/goacc/kernels-empty.c: New test.
	* c-c++-common/goacc/kernels-eternal.c: New test.
	* c-c++-common/goacc/kernels-loop-2.c: New test.
	* c-c++-common/goacc/kernels-loop-3.c: New test.
	* c-c++-common/goacc/kernels-loop-data-2.c: New test.
	* c-c++-common/goacc/kernels-loop-data-enter-exit-2.c: New test.
	* c-c++-common/goacc/kernels-loop-data-enter-exit.c: New test.
	* c-c++-common/goacc/kernels-loop-data-update.c: New test.
	* c-c++-common/goacc/kernels-loop-data.c: New test.
	* c-c++-common/goacc/kernels-loop-g.c: New test.
	* c-c++-common/goacc/kernels-loop-mod-not-zero.c: New test.
	* c-c++-common/goacc/kernels-loop-n.c: New test.
	* c-c++-common/goacc/kernels-loop-nest.c: New test.
	* c-c++-common/goacc/kernels-loop.c: New test.
	* c-c++-common/goacc/kernels-noreturn.c: New test.
	* c-c++-common/goacc/kernels-one-counter-var.c: New test.
	* c-c++-common/goacc/kernels-parallel-loop-data-enter-exit.c: New test.
	* c-c++-common/goacc/kernels-reduction.c: New test.

From-SVN: r232514
2016-01-18 12:52:53 +00:00
Tom de Vries
a98d464768 Add pass_parallelize_loops to pass_oacc_kernels
2016-01-18  Tom de Vries  <tom@codesourcery.com>

	* passes.def: Add pass_parallelize_loops to pass_oacc_kernels.

	* gcc.dg/autopar/outer-1.c: Update for new parloops instantiation.
	* gcc.dg/autopar/outer-2.c: Same.
	* gcc.dg/autopar/outer-3.c: Same.
	* gcc.dg/autopar/outer-4.c: Same.
	* gcc.dg/autopar/outer-5.c: Same.
	* gcc.dg/autopar/outer-6.c: Same.
	* gcc.dg/autopar/parallelization-1.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-2.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-3.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-4.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-5.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-6.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-7.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt-pr66652.c: Same.
	* gcc.dg/autopar/parloops-exit-first-loop-alt.c: Same.
	* gcc.dg/autopar/pr39500-1.c: Same.
	* gcc.dg/autopar/pr39500-2.c: Same.
	* gcc.dg/autopar/pr46193.c: Same.
	* gcc.dg/autopar/pr46194.c: Same.
	* gcc.dg/autopar/pr49580.c: Same.
	* gcc.dg/autopar/pr49960-1.c: Same.
	* gcc.dg/autopar/pr49960.c: Same.
	* gcc.dg/autopar/pr68373.c: Same.
	* gcc.dg/autopar/reduc-1.c: Same.
	* gcc.dg/autopar/reduc-1char.c: Same.
	* gcc.dg/autopar/reduc-1short.c: Same.
	* gcc.dg/autopar/reduc-2.c: Same.
	* gcc.dg/autopar/reduc-2char.c: Same.
	* gcc.dg/autopar/reduc-2short.c: Same.
	* gcc.dg/autopar/reduc-3.c: Same.
	* gcc.dg/autopar/reduc-4.c: Same.
	* gcc.dg/autopar/reduc-6.c: Same.
	* gcc.dg/autopar/reduc-7.c: Same.
	* gcc.dg/autopar/reduc-8.c: Same.
	* gcc.dg/autopar/reduc-9.c: Same.
	* gcc.dg/autopar/uns-outer-4.c: Same.
	* gcc.dg/autopar/uns-outer-5.c: Same.
	* gcc.dg/autopar/uns-outer-6.c: Same.
	* gfortran.dg/parloops-exit-first-loop-alt-2.f95: Same.
	* gfortran.dg/parloops-exit-first-loop-alt.f95: Same.

From-SVN: r232513
2016-01-18 12:52:42 +00:00