1. 19 Jan, 2016 24 commits
    • re PR c++/68965 (`-Wunused-parameter` is reported in variadic lambda or function… · 38a979f2
      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
      Marek Polacek committed
    • Fix ICE in vectorizable_store (). · f4d09712
      gcc/
      	* tree-vect-stmts.c (vectorizable_store): Check
      	rhs vectype.
      
      From-SVN: r232568
      Kirill Yukhin committed
    • Fix memory chunk corruption for opts_obstack (PR jit/68446) · d6874f56
      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
      David Malcolm committed
    • [ARM] PR target/69135: Mark ARMv8 vcvt instructions as unconditional · 962801c5
      	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
      Kyrylo Tkachov committed
    • [PATCH 4/4] Add CCMP selection based on rtx costs · 078fe40a
          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
      Wilco Dijkstra committed
    • [PATCH 3/4] Add support for rtx costing of CCMP on AArch64 · 786298dc
          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
      Wilco Dijkstra committed
    • [PATCH 2/4] Add support for float CCMP · 786e3c06
          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
      Wilco Dijkstra committed
    • re PR c++/68586 (Enum template parameter wrongly rejected) · 1e297006
      	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
      Marek Polacek committed
    • [Patch 1/4] Simplify the representation of CCMP patterns by using · c8012fbc
          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
      Wilco Dijkstra committed
    • cgraphunit.c (cgraph_node::reset): Clear thunk info and instrumented_version. · 756f4e90
      	* cgraphunit.c (cgraph_node::reset): Clear thunk info and
      	instrumented_version.
      
      From-SVN: r232560
      Jan Hubicka committed
    • re PR tree-optimization/69336 (Constant value not detected) · 879c27e3
      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
      Richard Biener committed
    • re PR debug/65779 (undefined local symbol on powerpc [regression]) · 015337d3
      	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
      Jakub Jelinek committed
    • re PR tree-optimization/69352 (profiledbootstrap failure with --with-build-config=bootstrap-lto) · e2c768b6
      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
      Richard Biener committed
    • * ira.c (ira): Update regstat data if we deleted insns. · d20c47fc
      From-SVN: r232556
      Bernd Schmidt committed
    • re PR sanitizer/68824 (libtsan is missing the __interceptor___tls_get_addr… · e4729419
      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
      Jakub Jelinek committed
    • re PR rtl-optimization/68955 (wrong code at -O3 on x86-64-linux-gnu in 32-bit mode) · 569efc34
      	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
      Jakub Jelinek committed
    • re PR lto/69136 (ICE in lto_symtab_prevailing_virtual_decl, at lto/lto-symtab.c:991) · e49d321f
      	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
      Jan Hubicka committed
    • re PR lto/69133 (LTO segfault in lto_get_decl_name_mapping() on 483.xalancbmk… · e9191ad3
      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
      Jan Hubicka committed
    • lto-streamer-out.c (lto_output): Do not stream instrumentation thunks. · 150be262
      	* lto-streamer-out.c (lto_output): Do not stream instrumentation
      	thunks.
      
      From-SVN: r232551
      Jan Hubicka committed
    • symtab.c (symtab_node::asm_name): Do not call printable name directly. · ae4bbcb2
      	* 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
      Jan Hubicka committed
    • Merge of HSA · b2b40051
      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
      Martin Jambor committed
    • re PR tree-optimization/69320 (wrong code generation at -O2 and higher) · 2bedb645
      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
      Jeff Law committed
    • Fix the remaining PR c++/24666 blockers (arrays decay to pointers too early) · 17c15cb9
      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
      Patrick Palka committed
    • Daily bump. · 49f8a191
      From-SVN: r232546
      GCC Administrator committed
  2. 18 Jan, 2016 16 commits
    • invoke.texi (Invoking GCC): Add new section to menu. · b0b662cc
      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
      Sandra Loosemore committed
    • re PR target/69176 (ICE in in final_scan_insn, at final.c:2981 on aarch64-linux-gnu) · 89f0a62e
      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
      Richard Henderson committed
    • libstdc++: Fix usage of __GXX_WEAK__ in TM TS support. · 9585381a
      	* 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
      Torvald Riegel committed
    • mpx_wrappers.c (__mpx_wrapper_memmove): Avoid -Wdiscarded-qualifiers warning. · 66bc83c2
      	* mpxwrap/mpx_wrappers.c (__mpx_wrapper_memmove): Avoid
      	-Wdiscarded-qualifiers warning.  Fix up formatting.
      
      From-SVN: r232537
      Jakub Jelinek committed
    • PR testsuite/69181: ensure expected multiline outputs is cleared per-test · 9617fd08
      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
      David Malcolm committed
    • Add test for PR 60637 · c91bcffc
      	PR libstdc++/60637
      	* testsuite/26_numerics/headers/cmath/60637.cc: Add test.
      
      From-SVN: r232534
      Jonathan Wakely committed
    • re PR lto/69003 (Undefined reference with gcc -r incremental linking) · 5803bd01
      	PR lto/69003
      	* lto-partition.c (rename_statics): Fix pasto.
      
      From-SVN: r232525
      Jan Hubicka committed
    • * cp-gimplify.c (cp_fold): Remove unnecessary special cases. · 8d8f3235
      From-SVN: r232523
      Jason Merrill committed
    • re PR c++/68767 (spurious warning: null argument where non-null required) · 7f26f7df
      	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
      Jason Merrill committed
    • Ignore reduction clause on kernels directive · f62bf092
      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
      Tom de Vries committed
    • re PR tree-optimization/69297 (Performance regression after r230020) · b555a2e4
      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
      Richard Biener committed
    • re PR middle-end/68542 (10% 481.wrf performance regression) · 305708ce
      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
      Yuri Rumyantsev committed
    • Handle Octeon 3 not supporting MIPS paired-single instructions. · 96902805
      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
      Joseph Myers committed
    • re PR tree-optimization/69308 (ifcombine joins together floating point… · 46ec7a06
      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
      Richard Biener committed
    • Add oacc kernels test in libgomp · 5d7804a9
      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
      Tom de Vries committed