1. 04 May, 2016 6 commits
    • backport: Makefile.am: Merge from upstream... · 2e01cda6
      Merge libcilkrts from upstream.
      
      libcilkrts/
      	* Makefile.am: Merge from upstream, version 2.0.4420.0
      	<https://bitbucket.org/intelcilkruntime/intel-cilk-runtime.git>.
      	* README: Likewise.
      	* configure.ac: Likewise.
      	* configure.tgt: Likewise.
      	* include/cilk/cilk.h: Likewise.
      	* include/cilk/cilk_api.h: Likewise.
      	* include/cilk/cilk_api_linux.h: Likewise.
      	* include/cilk/cilk_stub.h: Likewise.
      	* include/cilk/cilk_undocumented.h: Likewise.
      	* include/cilk/common.h: Likewise.
      	* include/cilk/holder.h: Likewise.
      	* include/cilk/hyperobject_base.h: Likewise.
      	* include/cilk/metaprogramming.h: Likewise.
      	* include/cilk/reducer.h: Likewise.
      	* include/cilk/reducer_file.h: Likewise.
      	* include/cilk/reducer_list.h: Likewise.
      	* include/cilk/reducer_max.h: Likewise.
      	* include/cilk/reducer_min.h: Likewise.
      	* include/cilk/reducer_min_max.h: Likewise.
      	* include/cilk/reducer_opadd.h: Likewise.
      	* include/cilk/reducer_opand.h: Likewise.
      	* include/cilk/reducer_opmul.h: Likewise.
      	* include/cilk/reducer_opor.h: Likewise.
      	* include/cilk/reducer_opxor.h: Likewise.
      	* include/cilk/reducer_ostream.h: Likewise.
      	* include/cilk/reducer_string.h: Likewise.
      	* include/cilktools/cilkscreen.h: Likewise.
      	* include/cilktools/cilkview.h: Likewise.
      	* include/cilktools/fake_mutex.h: Likewise.
      	* include/cilktools/lock_guard.h: Likewise.
      	* include/internal/abi.h: Likewise.
      	* include/internal/cilk_fake.h: Likewise.
      	* include/internal/cilk_version.h: Likewise.
      	* include/internal/metacall.h: Likewise.
      	* include/internal/rev.mk: Likewise.
      	* mk/cilk-version.mk: Likewise.
      	* runtime/acknowledgements.dox: Likewise.
      	* runtime/bug.cpp: Likewise.
      	* runtime/bug.h: Likewise.
      	* runtime/c_reducers.c: Likewise.
      	* runtime/cilk-abi-cilk-for.cpp: Likewise.
      	* runtime/cilk-abi-vla-internal.c: Likewise.
      	* runtime/cilk-abi-vla-internal.h: Likewise.
      	* runtime/cilk-abi.c: Likewise.
      	* runtime/cilk-ittnotify.h: Likewise.
      	* runtime/cilk-tbb-interop.h: Likewise.
      	* runtime/cilk_api.c: Likewise.
      	* runtime/cilk_fiber-unix.cpp: Likewise.
      	* runtime/cilk_fiber-unix.h: Likewise.
      	* runtime/cilk_fiber.cpp: Likewise.
      	* runtime/cilk_fiber.h: Likewise.
      	* runtime/cilk_malloc.c: Likewise.
      	* runtime/cilk_malloc.h: Likewise.
      	* runtime/component.h: Likewise.
      	* runtime/config/generic/cilk-abi-vla.c: Likewise.
      	* runtime/config/generic/os-fence.h: Likewise.
      	* runtime/config/generic/os-unix-sysdep.c: Likewise.
      	* runtime/config/x86/cilk-abi-vla.c: Likewise.
      	* runtime/config/x86/os-fence.h: Likewise.
      	* runtime/config/x86/os-unix-sysdep.c: Likewise.
      	* runtime/doxygen-layout.xml: Likewise.
      	* runtime/doxygen.cfg: Likewise.
      	* runtime/except-gcc.cpp: Likewise.
      	* runtime/except-gcc.h: Likewise.
      	* runtime/except.h: Likewise.
      	* runtime/frame_malloc.c: Likewise.
      	* runtime/frame_malloc.h: Likewise.
      	* runtime/full_frame.c: Likewise.
      	* runtime/full_frame.h: Likewise.
      	* runtime/global_state.cpp: Likewise.
      	* runtime/global_state.h: Likewise.
      	* runtime/jmpbuf.c: Likewise.
      	* runtime/jmpbuf.h: Likewise.
      	* runtime/linux-symbols.ver: Likewise.
      	* runtime/local_state.c: Likewise.
      	* runtime/local_state.h: Likewise.
      	* runtime/mac-symbols.txt: Likewise.
      	* runtime/metacall_impl.c: Likewise.
      	* runtime/metacall_impl.h: Likewise.
      	* runtime/os-unix.c: Likewise.
      	* runtime/os.h: Likewise.
      	* runtime/os_mutex-unix.c: Likewise.
      	* runtime/os_mutex.h: Likewise.
      	* runtime/pedigrees.c: Likewise.
      	* runtime/pedigrees.h: Likewise.
      	* runtime/record-replay.cpp: Likewise.
      	* runtime/record-replay.h: Likewise.
      	* runtime/reducer_impl.cpp: Likewise.
      	* runtime/reducer_impl.h: Likewise.
      	* runtime/rts-common.h: Likewise.
      	* runtime/scheduler.c: Likewise.
      	* runtime/scheduler.h: Likewise.
      	* runtime/signal_node.c: Likewise.
      	* runtime/signal_node.h: Likewise.
      	* runtime/spin_mutex.c: Likewise.
      	* runtime/spin_mutex.h: Likewise.
      	* runtime/stats.c: Likewise.
      	* runtime/stats.h: Likewise.
      	* runtime/sysdep-unix.c: Likewise.
      	* runtime/sysdep.h: Likewise.
      	* runtime/worker_mutex.c: Likewise.
      	* runtime/worker_mutex.h: Likewise.
      	* include/cilk/reducer_vector.h: New.
      	* runtime/cilk_str_mem.h: New.
      	* runtime/config/arm/cilk-abi-vla.c: New.
      	* runtime/config/arm/os-fence.h: New.
      	* runtime/config/arm/os-unix-sysdep.c: New.
      	* runtime/declare-alloca.h: New.
      	* runtime/sslib/ignore_handler_s.c: New.
      	* runtime/sslib/safe_lib.h: New.
      	* runtime/sslib/safe_lib_errno.h: New.
      	* runtime/sslib/safe_str_constraint.c: New.
      	* runtime/sslib/safe_str_constraint.h: New.
      	* runtime/sslib/safe_str_lib.h: New.
      	* runtime/sslib/safe_types.h: New.
      	* runtime/sslib/safeclib_private.h: New.
      	* runtime/sslib/snprintf_s.h: New.
      	* runtime/sslib/snprintf_support.c: New.
      	* runtime/sslib/strcpy_s.c: New.
      	* runtime/sslib/strncpy_s.c: New.
      	* runtime/sslib/strnlen_s.c: New.
      	* runtime/symbol_test.c: Remove.
      	* Makefile.in: Regenerate.
      	* configure: Regenerate.
      
      From-SVN: r235870
      Ilya Verbin committed
    • libstdc++/70940 Start fixing polymorphic memory resources · d9cb3e75
      	PR libstdc++/70940
      	* include/experimental/memory_resource
      	(__resource_adaptor_imp::do_allocate): Do not default-construct
      	rebound allocator.
      	(__resource_adaptor_imp::do_deallocate): Likewise. Use
      	allocator_traits to get pointer type.
      	(__null_memory_resource::do_allocate): Remove unused parameters.
      	(__null_memory_resource::do_deallocate): Likewise.
      	(__null_memory_resource::do_is_equal): Likewise. Add return statement.
      	* testsuite/experimental/type_erased_allocator/1.cc: Combine with ...
      	* testsuite/experimental/type_erased_allocator/1_neg.cc: This, and
      	move to ...
      	* testsuite/experimental/memory_resource/1.cc: Here.
      	* testsuite/experimental/memory_resource/null_memory_resource.cc: New.
      	* testsuite/experimental/memory_resource/resource_adaptor.cc: New.
      
      From-SVN: r235868
      Jonathan Wakely committed
    • predicates (post_inc_mem, [...]): New predicates. · da5b1ec1
      gcc/
      	* config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
      	* config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
      	result.set_rtx is null instead of aborting.
      	* config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
      	Always enable.
      	(USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
      	* config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
      	*mov<mode>_store_postinc): New patterns.
      
      From-SVN: r235859
      Oleg Endo committed
    • Remove duplicate (A & B) OP (C & B) in match.pd. · e07ab2fe
      2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
      
      	* match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
      	as commutative.  Check both conversions are NOP.
      	((A & B) OP (C & B)): Remove.
      
      From-SVN: r235858
      Marc Glisse committed
    • Daily bump. · 0777ce6f
      From-SVN: r235856
      GCC Administrator committed
    • Combine simplify_set WORD_REGISTER_OPERATIONS · 343d0287
      The comment says this test is supposed to prevent "a narrower
      operation than requested", but it actually only allows a larger
      subreg not one the same size.  Fix that.
      
      	* combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
      
      From-SVN: r235852
      Alan Modra committed
  2. 03 May, 2016 29 commits
    • [RS6000] powerpc64le -ffixed-cr2 -ffixed-cr3 -ffixed-cr4 ICE · 475839b6
      gcc/
      	PR target/70866
      	* config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
      	when cr2,3,4 are all fixed regs.
      gcc/testsuite/
      	* gcc.target/powerpc/pr70866.c: New.
      
      From-SVN: r235851
      Alan Modra committed
    • re PR rtl-optimization/57193 (suboptimal register allocation for SSE registers) · 9ced9549
      	PR rtl-optimization/57193
      	* opts.c (default_options_table): Revert OPT_frename_registers change.
      	* doc/invoke.texi (-frename-registers, -O2): Likewise.
      
      From-SVN: r235848
      Bernd Schmidt committed
    • PR c++/66561 - __builtin_LINE at al. should yield constant expressions · b25aad5f
      PR c++/66561 - __builtin_LINE at al. should yield constant expressions
      PR c++/66639 - declare __func__, __FUNCTION__ & __PRETTY_FUNCTION__ constexpr
      
      gcc/testsuite/ChangeLog:
      2016-05-03  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/66561
      	* c-c++-common/builtin_location.c: New test.
      	* g++.dg/cpp1y/builtin_location.C: New test.
      
      gcc/cp/ChangeLog:
      2016-05-03  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/66561
      	* tree.c (builtin_valid_in_constant_expr_p): Treat BUILT_IN_FILE,
      	BUILT_IN_FUNCTION, and BUILT_IN_LINE as constant expressions.
      
      gcc/ChangeLog:
      2016-05-03  Martin Sebor  <msebor@redhat.com>
      
      	PR c++/66561
      	* builtins.c (fold_builtin_FILE): New function.
      	(fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
      	(fold_builtin_0): Call them.
      	* gimplify.c (gimplify_call_expr): Remove the handling of
      	BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
      
      	PR c++/66561
      	* doc/extend.texi (Other Builtins): Update __builtin_FILE,
      	__builtin_FUNCTION, and __builtin_LINE to reflect they yield
      	constants.
      
      	PR c++/66639
      	* doc/extend.texi (Function Names as Strings): Update __func__,
      	__FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
      	constants.
      
      From-SVN: r235845
      Martin Sebor committed
    • re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu… · 9663f8f7
      re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
      
      	PR tree-optimization/70916
      	* tree-if-conv.c: Include cfganal.h.
      	(pass_if_conversion::execute): Call connect_infinite_loops_to_exit
      	and remove_fake_exit_edges around the optimization pass.
      
      Co-Authored-By: Richard Biener <rguenther@suse.de>
      
      From-SVN: r235842
      Jakub Jelinek committed
    • cgraph.c (symbol_table::create_edge): Set inline_failed. · 1a0bf5e1
      
      	* cgraph.c (symbol_table::create_edge): Set inline_failed.
      	(cgraph_edge::make_direct): Likewise.
      	(cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
      	* cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
      	* cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
      	(CIF_THUNK): New code.
      	* ipa-inline-analysis.c (initialize_inline_failed): Preserve
      	CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
      	(compute_inline_parameters): Set inline_failed for thunks.
      	(inline_analyze_function): Cleanup.
      	* ipa-inline.c (can_inline_edge_p): Do not deal with
      	call_stmt_cannot_inline_p.
      	(can_early_inline_edge_p): Likewise.
      	(early_inliner): Initialize inline_failed.
      	* lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
      
      	* lto-symtab.c (lto_cgraph_replace_node): Initialize inline_failed.
      
      From-SVN: r235839
      Jan Hubicka committed
    • predicates.md (x87nonimm_ssenomem_operand): Rename from nonimm_ssenomem_operand. · 8b38916a
      	* config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
      	from nonimm_ssenomem_operand.
      	(nonimm_ssenomem_operand): New predicate.
      	* config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
      	as operand 0 predicate.
      	(*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
      	Disable unsupported alternatives using "enabled" attribute.
      	Use register_ssemem_operand as operand 0 predicate.
      	(*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
      
      From-SVN: r235837
      Uros Bizjak committed
    • re PR c/70859 (Bad column number in type-generic function errors) · 79ce98bc
      	PR c/70859
      	* input.c (expansion_point_location): New function.
      	* input.h (expansion_point_location): Declare.
      
      	* c-common.c (builtin_function_validate_nargs): Add location
      	parameter.  Use it.
      	(check_builtin_function_arguments): Add location and arguments
      	parameters.  Use them.
      	* c-common.h (check_builtin_function_arguments): Update declaration.
      
      	* c-typeck.c (build_function_call_vec): Pass LOC and ARG_LOC down to
      	check_builtin_function_arguments.
      
      	* call.c (build_cxx_call): Pass location and vNULL down to
      	check_builtin_function_arguments.
      
      	* gcc.dg/pr70859.c: New test.
      	* gcc.dg/pr70859-2.c: New test.
      
      From-SVN: r235832
      Marek Polacek committed
    • Fix a typo in dwarf2out.c:resolve_args_picking_1 · 402e89f5
      Under specific circumstances for Ada programs, such as in the testcase
      this change adds, the DWARF back-end currently crashes because of
      inconsistent internal state. This is due to a typo: a local variable is
      called frame_offset_ but resolve_args_picking_1 wrongly modifies
      emit-rtl.h's frame_offset instead.
      
      This change fixes this typo.
      
      gcc/
      	* dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
      	occurence with frame_offset_ ones.
      
      gcc/testsuite/
      	* gnat.dg/debug5.adb: New testcase.
      
      From-SVN: r235830
      Pierre-Marie de Rodat committed
    • * nl.po: Update. · 67647f92
      From-SVN: r235827
      Joseph Myers committed
    • PR70890, stage2 miscompilation · fcc861d9
      	PR rtl-optimization/70890
      	* ira.c (combine_and_move_insns): When moving def_insn, remove
      	equivs on use_insn.
      
      From-SVN: r235825
      Alan Modra committed
    • S/390: Add patterns for r<nox>sbg instructions. · f3d90045
      gcc/ChangeLog:
      
      2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
      	("*r<noxa>sbg_<mode>_srl"): New define_insns.
      	("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
      	("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
      
      gcc/testsuite/ChangeLog:
      
      2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
      
      	* gcc.target/s390/md/rXsbg_mode_sXl.c: New test.
      	* gcc.target/s390/s390.exp (check_effective_target_z10_instructions):
      	Procedure to check for z10 instruction set.
      
      From-SVN: r235822
      Dominik Vogt committed
    • inline-8.c: Require c99_runtime. · 1e26cec1
      	* gcc.dg/ipa/inline-8.c: Require c99_runtime.
      
      From-SVN: r235821
      Christophe Lyon committed
    • [RS6000] Fix ICE caused by rs6000_savres_strategy thinko · 71aca5a0
      rev 235672 (git cffc0b35) changed the condition for SAVE_MULTIPLE/
      STORE_MULTIPLE, wrongly allowing a single reg.
      
      gcc/
      	* config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
      	for SAVE_MULTIPLE/STORE_MULTIPLE.
      gcc/testsuite/
      	* gcc.target/powerpc/savres.c: Add func using a single gpr.
      
      From-SVN: r235820
      Alan Modra committed
    • * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387, · 2fd70ec1
      	*truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead
      	of x.
      
      	* gcc.target/i386/avx512f-cvt-1.c: New test.
      
      From-SVN: r235819
      Jakub Jelinek committed
    • Compile ssa-thread-14.c with -fdump-tree-vrp-details · e5705cf7
      	* gcc.dg/tree-ssa/ssa-thread-14.c: Replace -fdump-tree-vrp with
      	-fdump-tree-vrp-details.
      
      From-SVN: r235818
      H.J. Lu committed
    • gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter default true. · 381cdae4
      2016-05-03  Richard Biener  <rguenther@suse.de>
      
      	* gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
      	default true.
      	(gimplify_arg): Likewise.
      	* gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
      	re-writing the result to a decl if required.
      	(internal_get_tmp_var): Add allow_ssa parameter
      	and override into_ssa with it.
      	(get_formal_tmp_var): Adjust.
      	(get_initialized_tmp_var): Add allow_ssa parameter.
      	(gimplify_arg): Add allow_ssa parameter and avoid generating
      	SSA names for the result false.
      	(gimplify_call_expr): If the call may return twice do not
      	gimplify parameters into SSA.
      	(prepare_gimple_addressable): Do not allow an SSA name as
      	temporary.
      	(gimplify_modify_expr): Adjust assert.  For noreturn calls
      	with a SSA name LHS adjust its def.
      	(gimplify_save_expr): Do not allow an SSA name as save-expr
      	result.
      	(gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
      	(gimplify_body): Init GIMPLE SSA data structures and gimplify
      	into-SSA.
      	(gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
      	an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
      	(gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
      	for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
      	(optimize_target_teams): Do not allow SSA names for clause operands.
      	(gimplify_expr): Likewise for where we mark the result addressable.
      	* passes.def (pass_init_datastructures): Remove.
      	* tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
      	(rewrite_stmt): Likewise.
      	* tree-inline.c (initialize_cfun): Properly transfer SSA state.
      	(replace_locals_op): Replace SSA names.
      	(copy_gimple_seq_and_replace_locals): Init src_cfun.
      	* gimple-low.c (lower_builtin_setjmp): Deal with SSA.
      	* cgraph.c (release_function_body): Free CFG annotations only
      	when we have a CFG.  Simplify.
      	* gimple-fold.c (gimplify_and_update_call_from_tree): Use
      	force_gimple_operand instead of get_initialized_tmp_var.
      	* tree-pass.h (make_pass_init_datastructures): Remove.
      	* tree-ssa.c (execute_init_datastructures): Remove.
      	(pass_data_init_datastructures): Likewise.
      	(class pass_init_datastructures): Likewise.
      	(make_pass_init_datastructures): Likewise.
      	* omp-low.c (create_omp_child_function): Init SSA data structures.
      	(grid_expand_target_grid_body): Likewise.
      	* tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
      	name before adding it to names_to_release.
      	(remove_bb): Always release SSA defs.
      	* tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
      	before dereferencing it.
      	* cgraphunit.c (init_lowered_empty_function): Always
      	int SSA data structures.
      	* tree-ssanames.c (release_defs): Remove assert that we are in
      	SSA form.
      	* trans-mem.c (diagnose_tm_1): Handle SSA name function.
      
      	c-family/
      	* cilk.c (cilk_gimplify_call_params_in_spawned_fn): Do not
      	allow call args to gimplify to SSA names.
      
      	* gcc.dg/pr30172-1.c: Adjust.
      	* gcc.dg/pr63743.c: Likewise.
      	* gcc.dg/tm/pr51696.c: Likewise.
      	* c-c++-common/tm/safe-1.c: Likewise.
      	* gcc.dg/tree-prof/val-prof-3.c: Likewise.
      	* gcc.dg/plugin/self-assign-test-1.c: XFAIL case that needs CSE.
      	* g++.dg/plugin/self-assign-test-1.C: Likewise.
      	* g++.dg/plugin/self-assign-test-2.C: Likewise.
      
      From-SVN: r235817
      Richard Biener committed
    • re PR rtl-optimization/70467 (Useless "and [esp],-1" emitted on AND with uint64_t variable) · 31ed1665
      	PR rtl-optimization/70467
      	* config/i386/predicates.md (x86_64_hilo_int_operand,
      	x86_64_hilo_general_operand): New predicates.
      	* config/i386/constraints.md (Wd): New constraint.
      	* config/i386/i386.md (mode attr di): Use Wd instead of e.
      	(general_hilo_operand): New mode attr.
      	(add<mode>3, sub<mode>3): Use <general_hilo_operand>
      	instead of <general_operand>.
      	(*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
      	x86_64_hilo_general_operand instead of <general_operand>.
      
      	* gcc.target/i386/pr70467-3.c: New test.
      	* gcc.target/i386/pr70467-4.c: New test.
      
      Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
      
      From-SVN: r235816
      Jakub Jelinek committed
    • re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu… · e7437b59
      re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
      
      	PR tree-optimization/70916
      	* tree-if-conv.c (constant_or_ssa_name): Removed.
      	(fold_build_cond_expr): Use is_gimple_val instead of
      	constant_or_ssa_name.
      
      From-SVN: r235815
      Jakub Jelinek committed
    • re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu… · dea60b59
      re PR tree-optimization/70916 (gcc ICE at -O3 on valid code on x86_64-linux-gnu in "tree_operand_check")
      
      	PR tree-optimization/70916
      	* tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
      	if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
      
      	* gcc.c-torture/compile/pr70916.c: New test.
      
      From-SVN: r235814
      Jakub Jelinek committed
    • re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc') · adedd5c1
      	PR target/49244
      	* tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
      	(optimize_atomic_bit_test_and): New function.
      	(pass_fold_builtins::execute): Use it.
      	* optabs.def (atomic_bit_test_and_set_optab,
      	atomic_bit_test_and_complement_optab,
      	atomic_bit_test_and_reset_optab): New optabs.
      	* internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
      	ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
      	* builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
      	* builtins.c (expand_ifn_atomic_bit_test_and): New function.
      	* internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
      	expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
      	expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
      	* doc/md.texi (atomic_bit_test_and_set@var{mode},
      	atomic_bit_test_and_complement@var{mode},
      	atomic_bit_test_and_reset@var{mode}): Document.
      	* config/i386/sync.md (atomic_bit_test_and_set<mode>,
      	atomic_bit_test_and_complement<mode>,
      	atomic_bit_test_and_reset<mode>): New expanders.
      	(atomic_bit_test_and_set<mode>_1,
      	atomic_bit_test_and_complement<mode>_1,
      	atomic_bit_test_and_reset<mode>_1): New insns.
      
      	* gcc.target/i386/pr49244-1.c: New test.
      	* gcc.target/i386/pr49244-2.c: New test.
      
      From-SVN: r235813
      Jakub Jelinek committed
    • PR 70687: Use wide_int in combine.c:change_zero_ext · 50891606
      PR 70687 reports a case where combine.c mishandles integer modes
      wider than unsigned HOST_WIDE_INT.  I don't have a testcase since
      the PR is just pointing out the hole.
      
      Also, I think a ZERO_EXTEND of a vector mode could in principle satisfy
      the subreg condition but wouldn't be equivalent to an AND.  E.g.:
      
            (zero_extend:V4DI (subreg:V4SI (reg:V4DI R) 0))
      
      Tested on x86_64-linux-gnu.
      
      gcc/
      	PR rtl-optimization/70687
      	* combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
      	instead of unsigned HOST_WIDE_INT.
      
      From-SVN: r235811
      Richard Sandiford committed
    • Fix PR44281, bad RA with global regs. · f80041ef
      	PR rtl-optimization/44281
      	* hard-reg-set.h (struct target_hard_regs): New field
      	x_fixed_nonglobal_reg_set.
      	(fixed_nonglobal_reg_set): New macro.
      	* reginfo.c (init_reg_sets_1): Initialize it.
      	* ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
      	of fixed_reg_set.
      	* df-scan.c (df_insn_refs_collect): Asms may reference global regs.
      
      testsuite/
      	PR rtl-optimization/44281
      	* gcc.target/i386/pr44281.c: New test.
      
      From-SVN: r235809
      Bernd Schmidt committed
    • re PR tree-optimization/56541 (vectorizaton fails in conditional assignment of a constant) · 1cfcd39e
      	PR tree-optimization/56541
      	* doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
      	* params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
      	* tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
      	(any_complicated_phi): new static variable.
      	(aggressive_if_conv): delete.
      	(if_convertible_phi_p): support phis with more than two arguments.
      	(if_convertible_bb_p): remvoe check on aggressive_if_conv and
      	critical pred edges.
      	(ifcvt_split_critical_edges): support phis with more than two
      	arguments by checking new parameter.  only split critical edges
      	if needed.
      	(tree_if_conversion): handle simd pragma marked loop using new
      	local variable aggressive_if_conv.  check any_complicated_phi.
      
      	gcc/testsuite
      	PR tree-optimization/56541
      	* gcc.dg/tree-ssa/ifc-pr56541.c: new test.
      	* gcc.dg/vect/pr56541.c: new test.
      
      From-SVN: r235808
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on before using it. · 15526589
      	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
      	before using it.
      
      From-SVN: r235807
      Bin Cheng committed
    • tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber cbase. · e0db1402
      	* tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
      	cbase.
      
      From-SVN: r235805
      Bin Cheng committed
    • Make-lang.in (cc1-checksum.c): For stage-final re-use the checksum from the previous stage. · fb2647aa
      2016-05-03  Richard Biener  <rguenther@suse.de>
      
      	c/
      	* Make-lang.in (cc1-checksum.c): For stage-final re-use
      	the checksum from the previous stage.
      
      	cp/
      	* Make-lang.in (cc1plus-checksum.c): For stage-final re-use
      	the checksum from the previous stage.
      
      From-SVN: r235804
      Richard Biener committed
    • sh.md (udivsi3, [...]): Simplify. · d0ce2326
      gcc/
      	* config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
      	(mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
      	define_insn_and_split.
      	(mulsi3_i): New define_insn_and_split.
      	(mulsi3_call): Convert to define_insn.
      	(mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
      	Remove constraints.
      
      From-SVN: r235803
      Oleg Endo committed
    • * c-common.h (enum c_omp_region_type): Remove stray comma. · 1d793c34
      From-SVN: r235802
      Marek Polacek committed
    • Daily bump. · 1e2867df
      From-SVN: r235800
      GCC Administrator committed
  3. 02 May, 2016 5 commits
    • machmode.h (mode_complex): Add support to give the complex mode for a given mode. · 4304ccfd
      [gcc]
      2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* machmode.h (mode_complex): Add support to give the complex mode
      	for a given mode.
      	(GET_MODE_COMPLEX_MODE): Likewise.
      	* stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
      	stored by build_complex_type and gfc_build_complex_type instead of
      	trying to figure out the appropriate mode based on the size. Raise
      	an assertion error, if the type was not set.
      	* genmodes.c (struct mode_data): Add field for the complex type of
      	the given type.
      	(blank_mode): Likewise.
      	(make_complex_modes): Remember the complex mode created in the
      	base type.
      	(emit_mode_complex): Write out the mode_complex array to map a
      	type mode to the complex version.
      	(emit_insn_modes_c): Likewise.
      	* tree.c (build_complex_type): Set the complex type to use before
      	calling layout_type.
      	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
      	support for __float128 complex datatypes.
      	(rs6000_hard_regno_mode_ok): Likewise.
      	(rs6000_setup_reg_addr_masks): Likewise.
      	(rs6000_complex_function_value): Likewise.
      	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
      	__float128 and __ibm128 complex.
      	(FLOAT128_IBM_P): Likewise.
      	(ALTIVEC_ARG_MAX_RETURN): Likewise.
      	* doc/extend.texi (Additional Floating Types): Document that
      	-mfloat128 must be used to enable __float128.  Document complex
      	__float128 and __ibm128 support.
      
      [gcc/fortran]
      2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* trans-types.c (gfc_build_complex_type):
      
      [gcc/testsuite]
      2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	* gcc.target/powerpc/float128-complex-1.c: New tests for complex
      	__float128.
      	* gcc.target/powerpc/float128-complex-2.c: Likewise.
      
      From-SVN: r235794
      Michael Meissner committed
    • re PR target/49244 (__sync or __atomic builtins will not emit 'lock bts/btr/btc') · fd39794a
      	PR target/49244
      	* gimple.c (gimple_builtin_call_types_compatible_p): Allow
      	char/short arguments promoted to int because of promote_prototypes.
      
      From-SVN: r235792
      Jakub Jelinek committed
    • backport: Since x86 psABIs require the function incoming stack must align at 16 bytes... · 50d94c29
      Backport r265322 from llvm upstream
      
      Since x86 psABIs require the function incoming stack must align at 16
      bytes, child process stack passed to clone should be aligned at 16
      bytes.
      
      	PR testsuite/70520
      	* c-c++-common/asan/clone-test-1.c (main): Align child process
      	stack to 16 bytes.
      
      From-SVN: r235790
      H.J. Lu committed
    • PR c++/62314: C++: add fixit hint to misspelled member names · bc1aee87
      When we emit a hint about a misspelled member name, it will slightly
      aid readability if we use a fixit-hint to show the proposed
      name in context within the source code (and in the future this
      might support some kind of auto-apply in an IDE).
      
      This patch adds such a hint to the C++ frontend, taking us from:
      
      test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
         return ptr->colour;
                     ^~~~~~
      
      to:
      
      test.cc:10:15: error: 'struct foo' has no member named 'colour'; did you mean 'color'?
         return ptr->colour;
                     ^~~~~~
                     color
      
      gcc/cp/ChangeLog:
      	PR c++/62314
      	* typeck.c (finish_class_member_access_expr): When
      	giving a hint about a possibly-misspelled member name,
      	add a fix-it replacement hint.
      
      gcc/testsuite/ChangeLog:
      	PR c++/62314
      	* g++.dg/spellcheck-fields-2.C: New test case.
      
      From-SVN: r235785
      David Malcolm committed
    • * ChangeLog: Add missing entry. · 7caed520
      From-SVN: r235783
      Uros Bizjak committed