Commit Graph

134979 Commits

Author SHA1 Message Date
Jan Hubicka
b41e0d29d2 ipa-devirt.c (possible_polymorphic_call_targets): Return early if otr_type has no BINFO.
* ipa-devirt.c (possible_polymorphic_call_targets): Return early
	if otr_type has no BINFO.

From-SVN: r218659
2014-12-12 08:46:56 +00:00
Zhenqiang Chen
0a6aa4763e re PR rtl-optimization/63917 (r217646 caused many failures)
2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>

	PR rtl-optimization/63917
	* ifcvt.c (cc_in_cond): New function.
	(end_ifcvt_sequence): Make sure new generated insns do not clobber CC.
	(noce_process_if_block, check_cond_move_block): Check CC references.

testsuite/ChangeLog:
2014-12-12  Zhenqiang Chen  <zhenqiang.chen@arm.com>

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

From-SVN: r218658
2014-12-12 05:51:19 +00:00
Bin Cheng
e8c8ffa900 ldp_stp_2.c: Make test less vulnerable.
gcc/testsuite
	* gcc.target/aarch64/ldp_stp_2.c: Make test less vulnerable.
	* gcc.target/aarch64/ldp_stp_3.c: Ditto.

From-SVN: r218657
2014-12-12 04:45:58 +00:00
Jason Merrill
acaa5911a2 * c-cppbuiltin.c (c_cpp_builtins): Enable C++14 __cpp_constexpr.
From-SVN: r218656
2014-12-11 22:49:19 -05:00
Jason Merrill
94a073b251 Remove N3639 "array of runtime length" from -std=c++14.
gcc/cp/
	* decl.c (compute_array_index_type): VLAs are not part of C++14.
	(create_array_type_for_decl, grokdeclarator): Likewise.
	* lambda.c (add_capture): Likewise.
	* pt.c (tsubst): Likewise.
	* rtti.c (get_tinfo_decl): Likewise.
	* semantics.c (finish_decltype_type): Likewise.
	* typeck.c (cxx_sizeof_or_alignof_type): Likewise.
	(cp_build_addr_expr_1): Likewise.
	* init.c (build_vec_init): Don't throw bad_array_length.
gcc/c-family/
	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
	we aren't complaining about VLAs.
libstdc++-v3/
	* libsupc++/new (bad_array_length): Move...
	* bad_array_length.cc: ...here.
	* cxxabi.h, eh_aux_runtime.cc (__cxa_throw_bad_array_new_length): Also
	move to bad_array_length.cc.

	* c-cppbuiltin.c (c_cpp_builtins): Define __cpp_runtime_arrays if
	we aren't complaining about VLAs.

From-SVN: r218655
2014-12-11 22:49:13 -05:00
Jason Merrill
8c7e9a616e re PR c++/64248 (Error: declarator-id missing; using reserved word ‘__FUNCTION__’)
PR c++/64248
	Revert:
	* parser.c (cp_parser_unqualified_id): Handle __func__ here.
	(cp_parser_primary_expression): Not here.

From-SVN: r218654
2014-12-11 22:49:03 -05:00
Jason Merrill
89631a4336 re PR c++/57510 (subobjects not destroyed when exception thrown during list-initialization)
PR c++/57510
	* typeck2.c (split_nonconstant_init_1): Handle arrays here.
	(store_init_value): Not here.
	(split_nonconstant_init): Look through TARGET_EXPR.  No longer static.
	* cp-tree.h: Declare split_nonconstant_init.
	* call.c (set_up_extended_ref_temp): Use split_nonconstant_init.

From-SVN: r218653
2014-12-11 22:48:55 -05:00
Chung-Ju Wu
923e09ee92 Adjust the comment in contrib/download_prerequisties.
contrib/
	* download_prerequisites: Modify the comment for GRAPHITE_LOOP_OPT.

From-SVN: r218652
2014-12-12 03:23:16 +00:00
GCC Administrator
bcff67ea0a Daily bump.
From-SVN: r218651
2014-12-12 00:16:29 +00:00
Andrew Pinski
b4917c98f0 aarch64-protos.h (tune_params): Add align field.
2014-12-11  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-protos.h (tune_params): Add align field.
        * config/aarch64/aarch64.c (generic_tunings): Specify align.
        (cortexa53_tunings): Likewise.
        (cortexa57_tunings): Likewise.
        (thunderx_tunings): Likewise.
        (aarch64_override_options): Set align_loops, align_jumps,
        align_functions based on what the tuning struct.

From-SVN: r218645
2014-12-11 15:11:03 -08:00
Eric Botcazou
0c94b59f47 * doc/md.texi (Insn Lengths): Fix description of (pc).
From-SVN: r218642
2014-12-11 22:37:56 +00:00
Eric Botcazou
3334c72564 builtin-arith-overflow-1.c (fn2): Take signed char.
* gcc.dg/builtin-arith-overflow-1.c (fn2): Take signed char.
	(fn3): Likewise.

From-SVN: r218641
2014-12-11 22:16:09 +00:00
Jan Hubicka
17e0fc9202 re PR ipa/61324 (ICE: SIGSEGV at ipa-comdats.c:321 with -fno-use-cxa-atexit -fkeep-inline-functions)
PR ipa/61324
	* testsuite/g++.dg/pr61324.C: New testcase by Trevor Saunders.
	* testsuite/g++.dg/tm/pr51411-2.C: Update se the extern function is
	not eliminated early.
	* testsuite/gcc.target/i386/pr57756.c: Turn extern inline into static
	inline.

	* passes.c (execute_todo): Update call of remove_unreachable_nodes.
	* ipa-chkp.c (chkp_produce_thunks): Use TODO_remove_functions.
	* cgraphunit.c (symbol_table::process_new_functions): Add
	IPA_SSA_AFTER_INLINING.
	(ipa_passes): Update call of remove_unreachable_nodes.
	(symbol_table::compile): Remove call of remove_unreachable_nodes.
	* ipa-inline.c (inline_small_functions): Do not ICE with
	-flto-partition=none
	(ipa_inline): Update symtab->state; fix formatting
	update call of remove_unreachable_nodes.
	* cgraphclones.c (symbol_table::materialize_all_clones): Likewise.
	* cgraph.h (enum symtab_state): Add IPA_SSA_AFTER_INLINING.
	(remove_unreachable_nodes): Update.
	* ipa.c (process_references): Keep external references only
	when optimizing.
	(walk_polymorphic_call_targets): Keep possible polymorphic call
	target only when devirtualizing.
	(symbol_table::remove_unreachable_nodes): Remove BEFORE_INLINING_P
	parameter.
	(ipa_single_use): Update comment.
	* ipa-pure-const.c (cdtor_p): New function.
	(propagate_pure_const): Track if some cdtor was turned pure/const.
	(execute): Return TODO_remove_functions if needed.
	* ipa-comdats.c (ipa_comdats): Update comment.
	
	* lto.c (read_cgraph_and_symbols): Update call of
	remove_unreachable_nodes.
	(do_whole_program_analysis): Remove call of
	symtab->remove_unreachable_nodes

From-SVN: r218640
2014-12-11 21:48:48 +00:00
Aldy Hernandez
d4b7742db2 dwarf2out.c (gen_lexical_block_die): Remove unused `depth' parameter.
* dwarf2out.c (gen_lexical_block_die): Remove unused `depth'
	parameter.
	(gen_inlined_subroutine_die): Same.
	(gen_block_die): Same.
	(decls_for_scope): Same.

From-SVN: r218639
2014-12-11 19:13:57 +00:00
Jonathan Wakely
b8c555ac7c 3.cc: Only use a thread_local when __cxa_thread_atexit_impl is available.
* testsuite/30_threads/condition_variable/members/3.cc: Only use
	a thread_local when __cxa_thread_atexit_impl is available.

From-SVN: r218638
2014-12-11 17:58:22 +00:00
David Malcolm
7b31ff5e79 Move changelog entries from r218617 from gcc/ChangeLog to gcc/jit/ChangeLog
From-SVN: r218637
2014-12-11 17:55:22 +00:00
David Malcolm
35291c7dda Document gccjit::context::set_str_option
gcc/jit/ChangeLog:
	* docs/cp/topics/contexts.rst (gccjit::context::set_str_option):
	Document new function.
	* docs/_build/texinfo/libgccjit.texi: Regenerate.

From-SVN: r218636
2014-12-11 17:50:56 +00:00
Renlin Li
faa542268c [AArch64]Use AARCH64_FL_FPSIMD flags for all cores in aarch64-cores.def
gcc/

2014-12-11  Renlin Li  <renlin.li@arm.com>

	* config/aarch64/aarch64-cores.def: Change all AARCH64_FL_FPSIMD to
	AARCH64_FL_FOR_ARCH8.
	* config/aarch64/aarch64.c (all_cores): Use FLAGS from
	aarch64-cores.def file only.

From-SVN: r218635
2014-12-11 17:30:39 +00:00
Richard Biener
d17271de7f re PR tree-optimization/42108 (50% performance regression)
2014-12-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/42108
	* trans-stmt.c (gfc_trans_do): Execute the division computing
	countm1 before the loop entry check.

	* gfortran.dg/pr42108.f90: Amend.

From-SVN: r218630
2014-12-11 15:52:47 +00:00
Paolo Carlini
b214b73391 typeck.c (maybe_warn_about_useless_cast): Remove unnecessary conditional.
2014-12-11  Paolo Carlini  <paolo.carlini@oracle.com>

	* typeck.c (maybe_warn_about_useless_cast): Remove unnecessary
	conditional.

From-SVN: r218629
2014-12-11 15:45:32 +00:00
Manuel López-Ibáñez
4011a145dc do_iterator.f90: Remove bogus dg-warning.
gcc/testsuite/ChangeLog:

2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

        * gfortran.dg/do_iterator.f90: Remove bogus dg-warning.

From-SVN: r218628
2014-12-11 15:28:27 +00:00
Manuel López-Ibáñez
c4100eaea3 re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)
gcc/ChangeLog:

2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* diagnostic.c (diagnostic_action_after_output): Make it extern.
	Take diagnostic_t argument instead of diagnostic_info. Count also
	DK_WERROR towards max_errors.
	(diagnostic_report_diagnostic): Update call according to the above.
	(error_recursion): Likewise.
	* diagnostic.h (diagnostic_action_after_output): Declare.
	* pretty-print.c (pp_formatted_text_data): Delete.
	(pp_append_r): Call output_buffer_append_r.
	(pp_formatted_text): Call output_buffer_formatted_text.
	(pp_last_position_in_text): Call output_buffer_last_position_in_text.
	* pretty-print.h (output_buffer_formatted_text): New.
	(output_buffer_append_r): New.
	(output_buffer_last_position_in_text): New.

gcc/fortran/ChangeLog:

2014-12-11  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/44054
	* error.c (pp_error_buffer): New static variable.
	(pp_warning_buffer): Make it a pointer.
	(gfc_output_buffer_empty_p): New.
	(gfc_error_init_1): Call gfc_buffer_error.
	(gfc_buffer_error): Do not use pp_warning_buffer.flush_p as the
	buffered_p flag.
	(gfc_clear_warning): Likewise.
	(gfc_warning_check): Call gfc_clear_warning. Only check the new
	pp_warning_buffer if the old warning_buffer was empty. Call
	diagnostic_action_after_output.
	(gfc_error_1): Renamed from gfc_error.
	(gfc_error): New.
	(gfc_clear_error): Clear also pp_error_buffer.
	(gfc_error_flag_test): Check also pp_error_buffer.
	(gfc_error_check): Likewise. Only check the new pp_error_buffer
	if the old error_buffer was empty.
	(gfc_move_output_buffer_from_to): New.
	(gfc_push_error): Use it here. Take also an output_buffer as argument.
	(gfc_pop_error): Likewise.
	(gfc_free_error): Likewise.
	(gfc_diagnostics_init): Use XNEW and placement-new to init
	pp_error_buffer and pp_warning_buffer. Set flush_p to false for
	both pp_warning_buffer and pp_error_buffer.

	* Update gfc_push_error, gfc_pop_error and gfc_free_error calls
	according to the above changes.
	* Use gfc_error_1 for all gfc_error calls that use multiple
	locations.
	* Use %qs instead of '%s' for many gfc_error calls.

From-SVN: r218627
2014-12-11 15:13:33 +00:00
Kyrylo Tkachov
217d0904fa [AArch64] Fix usage of +no in error message for aarch64_parse_extension
* config/aarch64/aarch64.c (aarch64_parse_extension): Update error
	message to say +no only when removing extension.

From-SVN: r218626
2014-12-11 15:09:01 +00:00
Andrew MacLeod
b61d924dce gen-mul-tables.cc: Add insn-codes.h to include list for generator file.
2014-12-11  Andrew MacLeod  <amacleod@redhat.com>

	* config/tilepro/gen-mul-tables.cc: Add insn-codes.h to include list
	for generator file.  Add comment indicating it is a generated file.
	* config/tilepro/mul-tables.c: Update generated file.
	* config/tilegx/mul-tables.c: Likewise.

From-SVN: r218624
2014-12-11 14:57:00 +00:00
Segher Boessenkool
08e39a5406 combine.c (try_combine): Do not allow combining a PARALLEL I2 with a register move I3 if that I2 is an asm.
* combine.c (try_combine): Do not allow combining a PARALLEL I2
	with a register move I3 if that I2 is an asm.

From-SVN: r218623
2014-12-11 15:29:14 +01:00
Kyrylo Tkachov
26a4d424e1 [ARM] Fix names of some rounding intrinsics, impement vrndx_f32 and vrndxq_f32
* config/arm/arm_neon.h (vrndqn_f32): Rename to...
	(vrndnq_f32): ... this.
	(vrndqa_f32): Rename to...
	(vrndaq_f32): ... this.
	(vrndqp_f32): Rename to...
	(vrndpq_f32): ... this.
	(vrndqm_f32): Rename to...
	(vrndmq_f32): ... this.
	(vrndx_f32): New intrinsic.
	(vrndxq_f32): Likewise.

	* config/arm/arm_neon.h (vrndqn_f32): Rename to...
	(vrndnq_f32): ... this.
	(vrndqa_f32): Rename to...
	(vrndaq_f32): ... this.
	(vrndqp_f32): Rename to...
	(vrndpq_f32): ... this.
	(vrndqm_f32): Rename to...
	(vrndmq_f32): ... this.
	(vrndx_f32): New intrinsic.
	(vrndxq_f32): Likewise.

From-SVN: r218622
2014-12-11 13:34:22 +00:00
Marek Polacek
20bd649ae4 fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
* fold-const.c (fold_negate_expr): Add ANY_INTEGRAL_TYPE_P check.
	(extract_muldiv_1): Likewise.
	(maybe_canonicalize_comparison_1): Likewise.
	(fold_comparison): Likewise.
	(tree_binary_nonnegative_warnv_p): Likewise.
	(tree_binary_nonzero_warnv_p): Likewise.
	* gimple-ssa-strength-reduction.c (legal_cast_p_1): Likewise.
	* tree-scalar-evolution.c (simple_iv): Likewise.
	(scev_const_prop): Likewise.
	* tree-ssa-loop-niter.c (expand_simple_operations): Likewise.
	* tree-vect-generic.c (expand_vector_operation): Likewise.
	* tree.h (ANY_INTEGRAL_TYPE_CHECK): Define.
	(ANY_INTEGRAL_TYPE_P): Define.
	(TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED, TYPE_OVERFLOW_TRAPS):
	Add ANY_INTEGRAL_TYPE_CHECK.
	(any_integral_type_check): New function.

From-SVN: r218621
2014-12-11 11:07:58 +00:00
Kyrylo Tkachov
f63950e561 [testsuite][1/2] Move ${tool}_check_unsupported_p into separate file
* lib/target-utils.exp: New file.
	* lib/gcc-defs.exp (${tool}_check_unsupported_p): Delete.
	Include target-utils.exp.
	* lib/objc.exp: Likewise.
	* lib/mike-gcc.exp: Load target-utils.exp.
	* lib/mike-g++.exp: Likewise.
	* lib/go-torture.exp: Likewise.
	* lib/fortran-torture.exp: Likewise.
	* lib/c-torture.exp: Likewise.

From-SVN: r218620
2014-12-11 09:43:53 +00:00
Tobias Burnus
c9db45aaf4 diagnostic.c (get_terminal_width): Renamed from
2014-12-11  Tobias Burnus  <burnus@net-b.de>
            Manuel López-Ibáñez  <manu@gcc.gnu.org>

gcc/
        * diagnostic.c (get_terminal_width): Renamed from
        * getenv_columns,
        removed static, and additionally use ioctl to get width.
        (diagnostic_set_caret_max_width): Update call.
        * diagnostic.h (get_terminal_width): Add prototype.
        * opts.c (print_specific_help): Use it for x_help_columns.
        * doc/invoke.texi (fdiagnostics-show-caret): Document how the
        width is set.

gcc/fortran/
        * error.c (gfc_get_terminal_width): Renamed from
        get_terminal_width and use same-named common function.
        (gfc_error_init_1): Update call.


Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r218619
2014-12-11 09:20:24 +01:00
Uros Bizjak
01ca36af91 xvasprintf.c: New file.
* xvasprintf.c: New file.
	* vprintf-support.h: Likewise.
	* vprintf-support.c: Likewise.
	* Makefile.in (CFILES): Add vprintf-support.c, xvasprintf.c.
	(REQUIRED_OFILES): Add vprintf-support.$(objext), xvasprintf.$(objext).
	(vprintf-support.$(objext), xvasprintf.$(objext)): New targets.
	(vasprintf.$(objext)): Depend on $(srcdir)/vprintf-support.h.
	* functions.texi: Regenerate.
	* vasprintf.c (int_vasprintf): Use libiberty_vprintf_buffer_size.

include/ChangeLog:

	* libiberty.h (xvasprintf): Declare.

libcpp/ChangeLog:

	* directives.c (cpp_define_formatted): Use xvasprintf.


Co-Authored-By: Ben Elliston <bje@au.ibm.com>
Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>

From-SVN: r218618
2014-12-11 09:15:37 +01:00
Ulrich Drepper
c168eab92c Minor interface cleanups of libgccjit
Minor interface cleanups of libgccjit
        * jit/jit-playback.c (convert_to_dso): Use auto_vec instead
        of automatic array to build up command line.
        * jit/jit-recording.c (recording::context::set_str_option):
        Make copy of the string.
        (recording::context::~context): Free string options.
        * jit/jit-recording.h (recording::context): Adjust type
        of m_str_options member.
        * jit/libgccjit.h: Adjust comment about
        gcc_jit_context_set_str_option parameter begin used after
        the call.
        Update comment now that all interfaces are copy strings
        if necessary.
        * jit/libgccjit++.h (gccjit::context): Add set_str_option
        member function.

From-SVN: r218617
2014-12-11 04:31:52 +00:00
GCC Administrator
67dab5e0a3 Daily bump.
From-SVN: r218616
2014-12-11 00:16:24 +00:00
Aldy Hernandez
53afce203b gdbhooks.py (class DWDieRefPrinter): New class.
* gdbhooks.py (class DWDieRefPrinter): New class.
	(build_pretty_printer): Register dw_die_ref's.

From-SVN: r218612
2014-12-10 23:16:42 +00:00
Ilya Tocar
52747219da Add march=knl.
gcc/

	* config.gcc: Support "knl".
	* config/i386/driver-i386.c (host_detect_local_cpu): Detect "knl".
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	PROCESSOR_KNL.
	* config/i386/i386.c (m_KNL): Define.
	(processor_target_table): Add "knl".
	(PTA_KNL): Define.
	(ix86_issue_rate): Add PROCESSOR_KNL.
	(ix86_adjust_cost): Ditto.
	(ia32_multipass_dfa_lookahead): Ditto.
	(get_builtin_code_for_version): Handle "knl".
	(fold_builtin_cpu): Ditto.
	* config/i386/i386.h (TARGET_KNL): Define.
	(processor_type): Add PROCESSOR_KNL.
	* config/i386/i386.md (attr "cpu"): Add knl.
	* config/i386/x86-tune.def: Add m_KNL.


gcc/testsuite/

	* gcc.target/i386/funcspec-5.c: Test avx512f and knl.

From-SVN: r218610
2014-12-11 00:25:12 +03:00
Jan Hubicka
1e29e4d36f invoke.texi: (-devirtualize-at-ltrans): Document.
* doc/invoke.texi: (-devirtualize-at-ltrans): Document.
	* lto-cgraph.c (lto_output_varpool_node): Mark initializer as removed
	when it is not streamed to the given ltrans.
	(compute_ltrans_boundary): Make code adding all polymorphic
	call targets conditional with !flag_wpa || flag_ltrans_devirtualize.
	* common.opt (fdevirtualize-at-ltrans): New flag.

From-SVN: r218609
2014-12-10 21:17:28 +00:00
David Edelsohn
a06478dd6c Commit missing part of patch.
From-SVN: r218608
2014-12-10 16:14:36 -05:00
Ilya Verbin
2354caecd9 Force output of vars with "omp declare target" attribute in gcc/varpool.c
gcc/
	* varpool.c (varpool_node::get_create): Force output of vars with
	"omp declare target" attribute.
libgomp/
	* testsuite/libgomp.c/target-9.c: New test.

From-SVN: r218607
2014-12-10 20:52:10 +00:00
Ian Lance Taylor
c44f74e4cb re PR go/61316 (gccgo: spurious "incompatible types in assignment" error [GoSmith])
PR go/61316
compiler: Don't lower multi-valued arguments into temporaries.

From-SVN: r218606
2014-12-10 20:38:13 +00:00
Marc Glisse
1b457aa45d real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
2014-12-10  Marc Glisse  <marc.glisse@inria.fr>

	* real.h (HONOR_NANS): Replace macro with 3 overloaded declarations.
	* real.c: Include rtl.h and options.h.
	(HONOR_NANS): Define three overloads.
	* builtins.c (fold_builtin_classify, fold_builtin_unordered_cmp):
	Simplify argument of HONOR_NANS.
	* fold-const.c (combine_comparisons, fold_truth_not_expr,
	fold_cond_expr_with_comparison, merge_truthop_with_opposite_arm,
	fold_comparison, fold_binary_loc): Likewise.
	* ifcvt.c (noce_try_move, noce_try_minmax): Likewise.
	* ipa-inline-analysis.c (add_clause,
	set_cond_stmt_execution_predicate): Likewise.
	* match.pd: Likewise.
	* rtlanal.c (may_trap_p_1): Likewise.
	* simplify-rtx.c (simplify_const_relational_operation): Likewise.
	* tree-if-conv.c (parse_predicate): Likewise.
	* tree-ssa-ccp.c (valid_lattice_transition): Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* tree-ssa-phiopt.c (minmax_replacement, neg_replacement): Likewise.
	* tree-ssa-reassoc.c (eliminate_using_constants): Likewise.
	* tree-ssa-tail-merge.c (gimple_equal_p): Likewise.

From-SVN: r218605
2014-12-10 20:26:05 +00:00
Jakub Jelinek
1c4967b998 re PR tree-optimization/62021 (ICE in verify_gimple_assign_single)
PR tree-optimization/62021
	* omp-low.c (simd_clone_adjust_return_type): Use
	vector of pointer_sized_int_node types instead vector of pointer
	types.
	(simd_clone_adjust_argument_types): Likewise.

	* gcc.dg/vect/pr62021.c: New test.

From-SVN: r218603
2014-12-10 21:01:12 +01:00
Jakub Jelinek
3ec5dd98f0 re PR target/64252 (expand_vec_perm_pblendv caused miscompilation)
PR target/64252
	* config/i386/i386.c (expand_vec_perm_pblendv): If not testing_p,
	set dcopy.target to a new pseudo.

	* gcc.dg/vect/pr64252.c: New test.
	* gcc.dg/pr64252.c: New test.
	* gcc.target/i386/avx2-pr64252.c: New test.

Co-Authored-By: Evgeny Stupachenko <evstupac@gmail.com>

From-SVN: r218602
2014-12-10 20:59:57 +01:00
Ilya Enkovich
e90f3d6cfc chkp-privatize_0.c: Remove unneeded selector from target check.
* gcc.dg/lto/chkp-privatize_0.c: Remove unneeded selector
	from target check.

From-SVN: r218601
2014-12-10 19:08:57 +00:00
Paolo Carlini
bf79db5ad0 pr64127.C: Fix.
2014-12-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp/pr64127.C: Fix.

From-SVN: r218600
2014-12-10 19:05:56 +00:00
Paolo Carlini
9e10d54ac5 pr64127.C: Fix.
2014-12-10  Paolo Carlini  <paolo.carlini@oracle.com>

	* g++.dg/cpp/pr64127.C: Fix.

From-SVN: r218599
2014-12-10 19:05:43 +00:00
Segher Boessenkool
0ccf5264a3 * config/rs6000/rs6000.md (*add<mode>3): Remove condition.
From-SVN: r218598
2014-12-10 19:41:37 +01:00
Segher Boessenkool
f5ae5a23ac 40x.md (ppc403-compare): Remove "compare".
* config/rs6000/40x.md (ppc403-compare): Remove "compare".
	config/rs6000/440.md (ppc440-compare): Remove "compare".
	config/rs6000/476.md (ppc476-compare): Remove "compare".
	config/rs6000/601.md (ppc601-compare): Remove "compare".
	config/rs6000/603.md (ppc603-compare): Remove "compare".
	config/rs6000/6xx.md (ppc604-compare): Remove "compare".
	config/rs6000/7450.md (ppc7450-compare): Remove "compare".
	config/rs6000/7xx.md (ppc750-compare): Remove "compare".
	config/rs6000/8540.md (ppc8540_su): Remove "compare".
	config/rs6000/cell.md (cell-fast-cmp, cell-cmp-microcoded): Remove
	"compare".
	config/rs6000/e300c2c3.md (ppce300c3_cmp): Remove "compare".
	config/rs6000/e500mc.md (e500mc_su): Remove "compare".
	config/rs6000/e500mc64.md (e500mc64_su2): Remove "compare".
	config/rs6000/e5500.md (e5500_sfx2): Remove "compare".
	config/rs6000/e6500.md (e6500_sfx2): Remove "compare".
	config/rs6000/mpc.md (mpccore-compare): Remove "compare".
	config/rs6000/power4.md (power4-compare): Remove "compare".
	config/rs6000/power5.md (power5-compare): Remove "compare".
	config/rs6000/power6.md (power6-compare): Remove "compare".
	config/rs6000/power7.md (power7-compare): Remove "compare".
	config/rs6000/power8.md (power8-compare): Remove "compare".  Update
	comment.
	config/rs6000/rs6000.c (rs6000_adjust_cost) <TYPE_COMPARE>: Remove
	(three times).
	(is_cracked_insn): Remove TYPE_COMPARE case.
	(insn_must_be_first_in_group) <TYPE_COMPARE>: Remove (twice).
	config/rs6000/rs6000.md (type): Remove "compare".
	(cell_micro): Remove "compare".
	config/rs6000/rs64.md (rs64a-compare): Remove "compare".

From-SVN: r218597
2014-12-10 19:40:26 +01:00
Segher Boessenkool
823dc8bde7 rs6000.md (*anddi3_2rld_dot, [...]): Change type from "compare" to "two".
* config/rs6000/rs6000.md (*anddi3_2rld_dot, *anddi3_rld_dot2):
	Change type from "compare" to "two".

From-SVN: r218596
2014-12-10 19:39:14 +01:00
Segher Boessenkool
a935964dea re PR target/64180 (PowerPC carry bit improvements)
PR target/64180
	* config/rs6000/predicates.md (unsigned_comparison_operator): New.
	(signed_comparison_operator): New.
	* config/rs6000/rs6000-protos.h (rs6000_emit_eqne): Declare.
	* config/rs6000/rs6000.c (rs6000_emit_eqne): New function.
	(rs6000_emit_sCOND): Remove ISEL test (move it to the expander).
	* config/rs6000/rs6000.md (add<mode>3 for SDI): Expand DImode
	add to addc,adde directly, if !TARGET_POWERPC64.
	(sub<mode>3 for SDI): Expand DImode sub to subfc,subfe directly,
	if !TARGET_POWERPC64.
	(neg<mode>2): Delete expander.
	(*neg<mode>2): Rename to "neg<mode>2".
	(addti3, subti3): Delete.
	(addti3, subti3): New expanders.
	(*adddi3_noppc64, *subdi3_noppc64, *negdi2_noppc64): Delete.
	(cstore<mode>4_unsigned): New expander.
	(cstore<mode>4): Allow GPR as output (not just SI).  Rewrite.
	(cstore<mode>4 for FP): Remove superfluous quotes.
	(*eq<mode>, *eq<mode>_compare, *plus_eqsi and splitter,
	*compare_plus_eqsi and splitter, *plus_eqsi_compare and splitter,
	*neg_eq0<mode>, *neg_eq<mode>, *ne0_<mode>, plus_ne0_<mode>,
	compare_plus_ne0_<mode> and splitter, *compare_plus_ne0_<mode>_1 and
	splitter, *plus_ne0_<mode>_compare and splitter, *leu<mode>,
	*leu<mode>_compare and splitter, *plus_leu<mode>, *neg_leu<mode>,
	*and_neg_leu<mode>, *ltu<mode>, *ltu<mode>_compare, *plus_ltu<mode>,
	*plus_ltu<mode>_1, *plus_ltu<mode>compare, *neg_ltu<mode>, *geu<mode>,
	*geu<mode>_compare and splitter, *plus_geu<mode>, *neg_geu<mode>,
	*and_neg_geu<mode>, *plus_gt0<mode>, *gtu<mode>, *gtu<mode>_compare,
	*plus_gtu<mode>, *plus_gtu<mode>_1, *plus_gtu<mode>_compare,
	*neg_gtu<mode>, 12 anonymous insns, and 12 anonymous splitters):
	Delete.
	(eq<mode>3, ne<mode>3): New.
	(*neg_eq_<mode>, *neg_ne_<mode>): New.
	(*plus_eq_<mode>, *plus_ne_<mode>): New.
	(*minus_eq_<mode>, *minus_ne_<mode>): New.

From-SVN: r218595
2014-12-10 19:37:58 +01:00
Segher Boessenkool
969ce0b0a6 re PR target/64180 (PowerPC carry bit improvements)
PR target/64180
	* config/rs6000/predicates.md (adde_operand): New.
	* config/rs6000/rs6000.md (add<mode>3_carry): New.
	(*add<mode>3_imm_carry_pos): New.
	(*add<mode>3_imm_carry_0): New.
	(*add<mode>3_imm_carry_m1): New.
	(*add<mode>3_imm_carry_neg): New.
	(add<mode>3_carry_in): New.
	(*add<mode>3_carry_in_internal): New.
	(add<mode>3_carry_in_0): New.
	(add<mode>3_carry_in_m1): New.
	(subf<mode>3_carry): New.
	(*subf<mode>3_imm_carry_0): New.
	(*subf<mode>3_imm_carry_m1): New.
	(subf<mode>3_carry_in): New.
	(*subf<mode>3_carry_in_internal): New.
	(subf<mode>3_carry_in_0): New.
	(subf<mode>3_carry_in_m1): New.
	(subf<mode>3_carry_in_xx): New.

From-SVN: r218594
2014-12-10 19:36:18 +01:00
Segher Boessenkool
46121d60c5 re PR target/64180 (PowerPC carry bit improvements)
PR target/64180
	* config/rs6000/rs6000.md (*add<mode>3_internal1): Rename to
	"*add<mode>3".
	(*add<mode>3_internal2, *add<mode>3_internal3, and (their splitters):
	Delete.
	(*add<mode>3_dot, *add<mode>3_dot2): New.
	(*add<mode>3_imm_dot, *add<mode>3_imm_dot2): New.

From-SVN: r218593
2014-12-10 19:33:26 +01:00