1. 19 Jan, 2016 9 commits
    • 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 31 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
    • 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
    • Add oacc kernels tests in goacc · 40e26f94
      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
      Tom de Vries committed
    • Add pass_parallelize_loops to pass_oacc_kernels · a98d4647
      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
      Tom de Vries committed
    • Add oacc_kernels_p argument to pass_parallelize_loops · 61d9c527
      2016-01-18  Tom de Vries  <tom@codesourcery.com>
      
      	* omp-low.c (set_oacc_fn_attrib): Make extern.
      	* omp-low.h (set_oacc_fn_attrib): Declare.
      	* tree-parloops.c (struct reduction_info): Add reduc_addr field.
      	(create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
      	(create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
      	Add and handle function parameter oacc_kernels_p.
      	(find_reduc_addr, get_omp_data_i_param): New function.
      	(ref_conflicts_with_region, oacc_entry_exit_ok_1)
      	(oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
      	(parallelize_loops): Add and handle function parameter oacc_kernels_p.
      	Calculate dominance info.  Skip loops that are not in a kernels region
      	in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
      	(pass_parallelize_loops::execute): Call parallelize_loops with
      	oacc_kernels_p argument.
      	(pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
      	New member function.
      	(pass_parallelize_loops::bool oacc_kernels_p): New member var.
      	* passes.def: Add argument to pass_parallelize_loops instantation.
      
      From-SVN: r232512
      Tom de Vries committed
    • Allow pass_parallelize_loops to be run outside the loop pipeline · 12db0814
      2016-01-18  Tom de Vries  <tom@codesourcery.com>
      
      	* tree-parloops.c (pass_parallelize_loops::execute): Allow
      	pass_parallelize_loops to be run outside the loop pipeline.
      
      From-SVN: r232511
      Tom de Vries committed
    • Un-XFAIL ssa-dom-cse-2.c for most platforms · da976fa8
      	* gcc.dg/tree-ssa/ssa-dom-cse-2.c: Remove XFAIL for powerpc(32), hppa,
      	aarch64, sparc, s390. Add --param sra-max-scalarization-size-Ospeed.
      
      From-SVN: r232510
      Alan Lawrence committed
    • Enhance SCEV to follow copies of SSA_NAMEs. · 806f2c1b
      (Fixes missed vectorization of gcc.dg/vect/pr65947-2.c.)
      
              * tree-scalar-evolution.c (follow_copies_to_constant): New.
              (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
      
      From-SVN: r232509
      Alan Lawrence committed
    • Equate MEM_REFs and ARRAY_REFs in tree-ssa-scopedtables.c · 70c1e886
      PR target/63679
      
      gcc/:
      
      	* tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
      	using get_ref_base_and_extent.
      	(equal_mem_array_ref_p): New.
      	(hashable_expr_equal_p): Add call to previous.
      
      gcc/testsuite/:
      
              * gcc.dg/tree-ssa/ssa-dom-cse-5.c: New.
              * gcc.dg/tree-ssa/ssa-dom-cse-6.c: New.
              * gcc.dg/tree-ssa/ssa-dom-cse-7.c: New.
      
      From-SVN: r232508
      Alan Lawrence committed
    • Fix PR number in changelog for commit r232504 · d75d9f91
      From-SVN: r232507
      Jonathan Wakely committed
    • Make SRA scalarize constant-pool loads · 88bed196
      PR target/63679
      
      gcc/ChangeLog:
          
      	* tree-sra.c (disqualified_constants, constant_decl_p): New.
      	(sra_initialize): Allocate disqualified_constants.
      	(sra_deinitialize): Free disqualified_constants.
      	(disqualify_candidate): Update disqualified_constants when appropriate.
      	(create_access): Scan for constant-pool entries as we go along.
      	(scalarizable_type_p): Add check against type_contains_placeholder_p.
      	(maybe_add_sra_candidate): Allow constant-pool entries.
      	(load_assign_lhs_subreplacements): Bind debug for constant pool vars.
      	(initialize_constant_pool_replacements): New.
      	(sra_modify_assign): Avoid mangling assignments created by previous,
      	and don't generate writes into constant pool.
      	(sra_modify_function_body): Call initialize_constant_pool_replacements.
          
      gcc/testsuite/:
      
      	* gcc.dg/tree-ssa/sra-17.c: New.
      	* gcc.dg/tree-ssa/sra-18.c: New.
      
      From-SVN: r232506
      Alan Lawrence committed
    • re PR lto/69337 (Internal compiler error fortran c lto) · 13092f61
      2016-01-18  Richard Biener  <rguenther@suse.de>
      
      	PR lto/69337
      	* lto-symtab.c (lto_symtab_merge): Return early for mismatched
      	function vs. variable.
      
      From-SVN: r232505
      Richard Biener committed
    • Fix construction of std::function from null pointer-to-member · 9c5ad80e
      	PR libstdc++/69293
      	* include/std/functional (_Function_base::_M_not_empty_function):
      	Change overloads for pointers to take arguments by value.
      	* testsuite/20_util/function/cons/57465.cc: Add tests for
      	pointer-to-member cases.
      
      From-SVN: r232504
      Jonathan Wakely committed
    • gigi.h (build_call_raise_column): Adjust prototype. · 9a1bdc31
      	* gcc-interface/gigi.h (build_call_raise_column): Adjust prototype.
      	(build_call_raise_range): Likewise.
      	(gnat_unsigned_type): Delete.
      	(gnat_signed_type): Likewise.
      	(gnat_signed_or_unsigned_type_for): New prototype.
      	(gnat_unsigned_type_for): New inline function.
      	(gnat_signed_type_for): Likewise.
      	* gcc-interface/cuintp.c (build_cst_from_int): Call build_int_cst.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Likewise.
      	(gnat_to_gnu_entity) <E_Array_Type>: Always translate the index types
      	and compute their base type from that.
      	<E_Array_Subtype>: Remove duplicate declaration.
      	* gcc-interface/misc.c (get_array_bit_stride): Call build_int_cst.
      	* gcc-interface/trans.c (get_type_length): Likewise.
      	(Attribute_to_gnu): Likewise.
      	(Loop_Statement_to_gnu): Likewise.
      	(Call_to_gnu): Likewise.
      	(gnat_to_gnu): Call build_real, build_int_cst, gnat_unsigned_type_for
      	and gnat_signed_type_for.  Minor tweaks.
      	(build_binary_op_trapv): Likewise.
      	(emit_check): Likewise.
      	(convert_with_check): Likewise.
      	(Raise_Error_to_gnu): Adjust calls to the build_call_raise family of
      	functions.  Minor tweaks.
      	(Case_Statement_to_gnu): Remove dead code.
      	(gnat_to_gnu): Call gnat_unsigned_type_for and gnat_signed_type_for.
      	(init_code_table): Minor reordering.
      	* gcc-interface/utils.c (gnat_unsigned_type): Delete.
      	(gnat_signed_type): Likewise.
      	(gnat_signed_or_unsigned_type_for): New function.
      	(unchecked_convert): Use directly the size in the test for precision
      	vs size adjustments.
      	(install_builtin_elementary_types): Call gnat_signed_type_for.
      	* gcc-interface/utils2.c (nonbinary_modular_operation): Call
      	build_int_cst.
      	(build_goto_raise): New function taken from...
      	(build_call_raise): ...here.  Call it.
      	(build_call_raise_column): Add KIND parameter and call it.
      	(build_call_raise_range): Likewise.
      
      From-SVN: r232503
      Eric Botcazou committed
    • Fix libstdc++ build with -fno-exceptions · f5460595
      	PR libstdc++/69340
      	* src/c++11/cow-stdexcept.cc (_txnal_cow_string_C1_for_exceptions):
      	Use macros for exception handling and fix unused parameter warning.
      
      From-SVN: r232502
      Jonathan Wakely committed
    • ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to · 7c775aca
      	* gcc-interface/ada-tree.h (TYPE_IMPLEMENTS_PACKED_ARRAY_P): Rename to
      	(TYPE_IMPL_PACKED_ARRAY_P): ...this.
      	(TYPE_CAN_HAVE_DEBUG_TYPE_P): Do not test TYPE_DEBUG_TYPE.
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Simplify NULL_TREE tests
      	and tweak gnat_encodings tests throughout.
      	(initial_value_needs_conversion): Likewise.
      	(intrin_arglists_compatible_p): Likewise.
      	* gcc-interface/misc.c (gnat_print_type): Likewise.
      	(gnat_get_debug_type): Likewise.
      	(gnat_get_fixed_point_type_info): Likewise.
      	(gnat_get_array_descr_info): Likewise.
      	(get_array_bit_stride): Likewise.
      	(gnat_get_type_bias): Fix formatting.
      	(enumerate_modes): Likewise.
      	* gcc-interface/trans.c (gnat_to_gnu): Likewise.
      	(add_decl_expr): Simplify NULL_TREE test.
      	(end_stmt_group): Likewise.
      	(build_binary_op_trapv): Fix formatting.
      	(get_exception_label): Use switch statement.
      	(init_code_table): Move around.
      	* gcc-interface/utils.c (global_bindings_p): Simplify NULL_TREE test.
      	(gnat_poplevel): Likewise.
      	(gnat_set_type_context): Likewise.
      	(defer_or_set_type_context): Fix formatting.
      	(gnat_pushdecl): Simplify NULL_TREE test.
      	(maybe_pad_type): Likewise.
      	(add_parallel_type): Likewise.
      	(create_range_type): Likewise.
      	(process_deferred_decl_context): Likewise.
      	(convert): Likewise.
      	(def_builtin_1): Likewise.
      	* gcc-interface/utils2.c (find_common_type): Likewise.
      	(build_binary_op): Likewise.
      	(gnat_rewrite_reference): Likewise.
      	(get_inner_constant_reference): Likewise.
      
      From-SVN: r232501
      Eric Botcazou committed
    • i386.c (scalar_to_vector_candidate_p): Support andnot instruction. · 3dd5f42e
      gcc/
      
      	* config/i386/i386.c (scalar_to_vector_candidate_p): Support
      	andnot instruction.
      	(scalar_chain::convert_op): Likewise.
      	* config/i386/i386.md (*andndi3_doubleword): New.
      
      gcc/testsuite/
      
      	* gcc.target/i386/pr65105-5.c: Adjust to andn generation.
      
      From-SVN: r232500
      Ilya Enkovich committed