Markus Trippelsdorf [Tue, 25 Nov 2014 07:41:48 +0000 (07:41 +0000)]
re PR ipa/64059 (ICE: Segmentation fault in ipa-polymorphic-call.c:1593)
Fix PR64059
* ipa-prop.c (ipa_analyze_call_uses): Don't call get_dynamic_type when
devirtualization is disabled.
From-SVN: r218038
Tim Shen [Tue, 25 Nov 2014 05:43:04 +0000 (05:43 +0000)]
re PR libstdc++/63920 (Any regular expression should not match an empty sequence if match_not_null is specified)
PR libstdc++/63920
* include/bits/regex_executor.h: Make _M_begin non const.
* include/bits/regex_executor.tcc (_Executor<>::_M_search): Increase
_M_begin in search algorithm, so that _M_begin is treated as
"current start position" for each search iteration.
* testsuite/28_regex/algorithms/regex_search/ecma/flags.cc: New
testcase.
From-SVN: r218037
GCC Administrator [Tue, 25 Nov 2014 00:16:26 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r218036
John David Anglin [Mon, 24 Nov 2014 23:39:47 +0000 (23:39 +0000)]
linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap() instead.
* config/pa/linux-atomic.c (ABORT_INSTRUCTION): Use __builtin_trap()
instead.
From-SVN: r218033
John David Anglin [Mon, 24 Nov 2014 23:27:36 +0000 (23:27 +0000)]
configure.ac: Guard include of <ieeefp.h>.
* configure.ac: Guard include of <ieeefp.h>.
* configure: Rebuilt.
From-SVN: r218032
Jakub Jelinek [Mon, 24 Nov 2014 23:08:26 +0000 (00:08 +0100)]
re PR fortran/63938 (OpenMP atomic update does not protect access to automatic array)
PR fortran/63938
* trans-openmp.c (gfc_trans_omp_atomic): Make sure lhsaddr is
simple enough for goa_lhs_expr_p.
* libgomp.fortran/pr63938-1.f90: New test.
* libgomp.fortran/pr63938-2.f90: New test.
From-SVN: r218031
Uros Bizjak [Mon, 24 Nov 2014 21:43:59 +0000 (22:43 +0100)]
re PR target/63847 (FAIL: c-c++-common/cilk-plus/AN/builtin_fn_custom.c execution test on i?86 with -fpic)
PR target/63847
* c-c++-common/cilk-plus/AN/builtin_fn_custom.c: Add -ffloat-store
for 32bit x86 targets.
* c-c++-common/cilk-plus/AN/builtin_fn_mutating.c: Ditto.
From-SVN: r218030
Tobias Burnus [Mon, 24 Nov 2014 19:40:10 +0000 (20:40 +0100)]
coarray_collectives_3.f90: Add dg-excess-errors.
2014-11-24 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray_collectives_3.f90: Add dg-excess-errors.
* gfortran.dg/dollar_sym_1.f90: Ditto.
* gfortran.dg/dollar_sym_3.f: Ditto.
From-SVN: r218029
Michael Meissner [Mon, 24 Nov 2014 19:27:29 +0000 (19:27 +0000)]
re PR target/63965 (ICE: in extract_constrain_insn, at recog.c:2230 on ppc64)
2014-11-24 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/63965
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
Altivec & -16 mask if the type is not valid for Altivec registers.
(rs6000_secondary_reload_memory): Add support for ((reg + const) +
reg) that occurs during push_reload processing.
* config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
alternative for moving constant vectors which are easy altivec
constants to GPRs. Set the length attribute each of the
alternatives.
From-SVN: r218028
Michael Meissner [Mon, 24 Nov 2014 18:58:40 +0000 (18:58 +0000)]
re PR target/63965 (ICE: in extract_constrain_insn, at recog.c:2230 on ppc64)
2014-11-24 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/63965
* config/rs6000/rs6000-cpus.def: Undo November 21st changes, a
work in progress patch was committed instead of the fixes for
63965.
* config/rs6000/rs6000.c: Likewise.
From-SVN: r218027
Ian Lance Taylor [Mon, 24 Nov 2014 17:10:20 +0000 (17:10 +0000)]
compiler: Do not dereference a named pointer type when looking up a method.
Fixes Issue 9018.
From-SVN: r218026
Bernd Edlinger [Mon, 24 Nov 2014 16:55:01 +0000 (16:55 +0000)]
Makefile.def (module=gmp): Work around in-tree gmp configure bug with missing flex.
2014-11-24 Bernd Edlinger <bernd.edlinger@hotmail.de>
* Makefile.def (module=gmp): Work around in-tree gmp configure bug with
missing flex.
* Makefile.in: Regenerated.
From-SVN: r218025
Jan Hubicka [Mon, 24 Nov 2014 16:15:46 +0000 (17:15 +0100)]
re PR ipa/63671 (21% tramp3d-v4 performance hit due to -fdevirtualize)
PR ipa/63671
* ipa-inline-transform.c (can_remove_node_now_p_1): Handle alises
and -fno-devirtualize more carefully.
(can_remove_node_now_p): Update.
From-SVN: r218024
Andrew Pinski [Mon, 24 Nov 2014 15:40:19 +0000 (15:40 +0000)]
re PR middle-end/63972 (shrink_wrap_symbol_ref_1.c fail with -mabi=ilp32 on aarch64)
2014-11-24 Andrew Pinski <apinski@cavium.com>
PR rtl-opt/63972
* shrink-wrap.c (move_insn_for_shrink_wrap): Allow LO_SUM also.
From-SVN: r218023
Alan Lawrence [Mon, 24 Nov 2014 15:23:28 +0000 (15:23 +0000)]
[AArch64]Add vec_shr pattern for 64-bit vectors using ush{l,r}; enable tests.
gcc/:
* config/aarch64/aarch64-simd.md (vec_shr<mode>): New.
gcc/testsuite/:
* lib/target-supports.exp (check_effective_target_whole_vector_shift):
Add aarch64{,_be}.
From-SVN: r218022
Alan Lawrence [Mon, 24 Nov 2014 15:15:20 +0000 (15:15 +0000)]
[AArch64]Tidy up aarch64_simd_expand_args
* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args):
Refactor by combining switch statements and make arrays into scalars.
From-SVN: r218021
David Edelsohn [Mon, 24 Nov 2014 14:59:52 +0000 (14:59 +0000)]
re PR c++/58561 ([c++11] ICE using declaration of function with auto in return type)
PR c++/58561
* dbxout.c: Include stringpool.h
(dbxout_type) [default]: Ignore auto type.
From-SVN: r218020
Richard Biener [Mon, 24 Nov 2014 14:07:18 +0000 (14:07 +0000)]
re PR target/63679 ([AArch64] Failure to constant fold.)
2014-11-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/63679
* tree-ssa-sccvn.c: Include ipa-ref.h, plugin-api.h and cgraph.h.
(copy_reference_ops_from_ref): Fix non-constant ADDR_EXPR case
to properly leave off at -1.
(fully_constant_vn_reference_p): Generalize folding from
constant initializers.
(vn_reference_lookup_3): When looking through aggregate copies
handle offsetted reads and try simplifying the result to
a constant.
* gimple-fold.h (fold_ctor_reference): Export.
* gimple-fold.c (fold_ctor_reference): Likewise.
* gcc.dg/tree-ssa/ssa-fre-42.c: New testcase.
* gcc.dg/tree-ssa/
20030807-5.c: Avoid folding read from global to zero.
* gcc.target/i386/ssetype-1.c: Likewise.
* gcc.target/i386/ssetype-3.c: Likewise.
* gcc.target/i386/ssetype-5.c: Likewise.
From-SVN: r218019
Richard Biener [Mon, 24 Nov 2014 14:02:36 +0000 (14:02 +0000)]
re PR java/64044 (Java emits bogus .class$ decls)
2014-11-24 Richard Biener <rguenther@suse.de>
PR java/64004
* class.c (build_classdollar_field): Do not set TREE_READONLY.
From-SVN: r218018
Jonathan Wakely [Mon, 24 Nov 2014 13:35:08 +0000 (13:35 +0000)]
re PR c++/63203 (Self-initialization of reference not diagnosed if it occurs within a loop)
/cp
2014-11-24 Jonathan Wakely <jwakely@redhat.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63203
* decl.c (initialize_local_var): Add -Winit-self warning for
references initialized with themselves.
/testsuite
2014-11-24 Jonathan Wakely <jwakely@redhat.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63203
* g++.dg/warn/Winit-self-2.C: New.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r218017
Jason Merrill [Mon, 24 Nov 2014 12:49:08 +0000 (07:49 -0500)]
re PR c++/63942 (constexpr conflicts with previous declaration)
PR c++/63942
* mangle.c (mangle_decl): If we aren't going to create a symbol
alias, don't build the alias DECL either.
From-SVN: r218016
Petr Murzin [Mon, 24 Nov 2014 12:00:54 +0000 (12:00 +0000)]
simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge (vec_duplicate (vec_select)).
2014-11-24 Petr Murzin <petr.murzin@intel.com>
gcc/
* simplify-rtx.c (simplify_ternary_operation): Simplify
vec_merge (vec_duplicate (vec_select)).
gcc/testsuite/
* gcc.target/i386/extract-insert-combining.c: New test.
From-SVN: r218015
Kyrylo Tkachov [Mon, 24 Nov 2014 11:37:34 +0000 (11:37 +0000)]
[AArch64][4/5] Implement fusion of ARDP+LDR
* config/aarch64/aarch64.c (AARCH64_FUSE_ADRP_LDR): Define.
(cortexa53_tunings): Specify AARCH64_FUSE_ADRP_LDR in fuseable_ops.
(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_LDR.
From-SVN: r218014
Kyrylo Tkachov [Mon, 24 Nov 2014 11:26:04 +0000 (11:26 +0000)]
[AArch64][3/5] Implement fusion of MOVK+MOVK
* config/aarch64/aarch64.c (AARCH64_FUSE_MOVK_MOVK): Define.
(cortexa53_tunings): Specify AARCH64_FUSE_MOVK_MOVK in fuseable_ops.
(cortexa57_tunings): Likewise.
(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_MOVK_MOVK.
From-SVN: r218013
Kyrylo Tkachov [Mon, 24 Nov 2014 11:09:59 +0000 (11:09 +0000)]
[sched-deps] Remove needless check for modified_in_p when trying to fuse two non-conditional jump insns
* sched-deps.c (sched_macro_fuse_insns): Do not check modified_in_p
in the not conditional jump case.
* doc/tm.texi (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
* target.def (TARGET_SCHED_MACRO_FUSION_PAIR_P): Update description.
* gcc.target/aarch64/fuse_adrp_add_1.c: New test.
From-SVN: r218012
Richard Biener [Mon, 24 Nov 2014 11:07:23 +0000 (11:07 +0000)]
re PR testsuite/64039 (FAIL: gcc.dg/tree-ssa/ssa-dom-cse-2.c scan-tree-dump optimized "return 28;")
2014-11-24 Richard Biener <rguenther@suse.de>
PR testsuite/64039
* gcc.dg/tree-ssa/ssa-dom-cse-2.c: XFAIL for hppa*-*-*.
From-SVN: r218011
Kyrylo Tkachov [Mon, 24 Nov 2014 10:50:45 +0000 (10:50 +0000)]
[AArch64][2/5] Implement adrp+add fusion
* config/aarch64/aarch64.c: Include tm-constrs.h
(AARCH64_FUSE_ADRP_ADD): Define.
(cortexa57_tunings): Add AARCH64_FUSE_ADRP_ADD to fuseable_ops.
(cortexa53_tunings): Likewise.
(aarch_macro_fusion_pair_p): Handle AARCH64_FUSE_ADRP_ADD.
From-SVN: r218010
Martin Liska [Mon, 24 Nov 2014 10:43:55 +0000 (11:43 +0100)]
[PATCH 2/2] ipa-inline uses sreal for as fibonacci_heap template
* ipa-inline.c (edge_badness): long is replaced by sreal
as fibonacci_heap template type.
(update_edge_key): Likewise.
(inline_small_functions): Likewise.
From-SVN: r218009
Martin Liska [Mon, 24 Nov 2014 10:41:18 +0000 (11:41 +0100)]
[PATCH 1/2] Negative numbers added for sreal class.
* predict.c (propagate_freq): More elegant sreal API is used.
(estimate_bb_frequencies): Precomputed constants replaced by integer
constants.
* sreal.c (sreal::normalize): New function.
(sreal::to_int): Likewise.
(sreal::operator+): Likewise.
(sreal::operator-): Likewise.
(sreal::signedless_plus): Likewise.
(sreal::signedless_minus): Likewise.
(sreal::operator/): Negative number support is added.
* sreal.h: Definition of new functions added.
(inline sreal operator<<): New function.
(inline sreal operator>>): Likewise.
From-SVN: r218008
Kyrylo Tkachov [Mon, 24 Nov 2014 10:37:30 +0000 (10:37 +0000)]
[AArch64][1/5] Implement TARGET_SCHED_MACRO_FUSION_PAIR_P
* config/aarch64/aarch64-protos.h (struct tune_params): Add
fuseable_ops field.
* config/aarch64/aarch64.c (generic_tunings): Specify fuseable_ops.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(thunderx_tunings): Likewise.
(aarch64_macro_fusion_p): New function.
(aarch_macro_fusion_pair_p): Likewise.
(TARGET_SCHED_MACRO_FUSION_P): Define.
(TARGET_SCHED_MACRO_FUSION_PAIR_P): Likewise.
(AARCH64_FUSE_MOV_MOVK): Likewise.
(AARCH64_FUSE_NOTHING): Likewise.
From-SVN: r218007
Martin Liska [Mon, 24 Nov 2014 10:25:06 +0000 (11:25 +0100)]
re PR lto/63968 (175.vpr from cpu2000 fails to build with LTO)
PR lto/63968
* bb-reorder.c (find_traces_1_round): decreate_key is replaced
with replace_key method.
* fibonacci_heap.h (fibonacci_heap::insert): New argument.
(fibonacci_heap::replace_key_data): Likewise.
(fibonacci_heap::replace_key): New method that can even increment key,
this operation costs O(log N).
(fibonacci_heap::extract_min): New argument.
(fibonacci_heap::delete_node): Likewise.
From-SVN: r218006
Richard Biener [Mon, 24 Nov 2014 09:24:50 +0000 (09:24 +0000)]
re PR tree-optimization/55334 (mgrid regression (ipa-cp disables vectorization))
2014-11-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/55334
* function.h (struct function): Add last_clique member.
* tree-inline.c (remap_dependence_clique): New function.
(remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
(copy_tree_body_r): Likewise.
(copy_cfg_body): Free dependence map.
(copy_gimple_seq_and_replace_locals): Likewise.
* tree-pretty-print.c (dump_generic_node): Dump
dependence info.
* tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
to answer alias query.
* tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
tree-pretty-print.h and gimple-walk.h.
(struct variable_info): Add is_restrict_var flag and ruid
member.
(new_var_info): Initialize is_restrict_var.
(make_constraint_from_restrict): Likewise.
(create_variable_info_for): Exclude restricts from global vars
from new handling.
(intra_create_variable_infos): But not those from parameters.
(visit_loadstore): New function.
(maybe_set_dependence_info): Likewise.
(compute_dependence_clique): Likewise.
(compute_may_aliases): Call compute_dependence_clique.
* tree-data-ref.c (dr_analyze_indices): Copy dependence info
to fake MEM_REF.
(dr_may_alias_p): Use recorded dependence info to answer
alias query.
* tree-core.h (struct tree_base): Add clique, base struct in
union.
* tree.h (MR_DEPENDENCE_CLIQUE): New macro.
(MR_DEPENDENCE_BASE): Likewise.
* tree-inline.h (dependence_hasher): New hash-map kind.
(struct copy_body_data): Add dependence_map pointer.
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
throwing away dependence info.
* tree-streamer-in.c (unpack_value_fields): Stream dependence info.
* tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
* gcc.dg/tree-ssa/restrict-5.c: New testcase.
From-SVN: r218005
Richard Biener [Mon, 24 Nov 2014 09:24:26 +0000 (09:24 +0000)]
re PR tree-optimization/55334 (mgrid regression (ipa-cp disables vectorization))
2014-11-24 Richard Biener <rguenther@suse.de>
PR tree-optimization/55334
* function.h (struct function): Add last_clique member.
* tree-inline.c (remap_dependence_clique): New function.
(remap_gimple_op_r): Remap dependence cliques in MEM_REFs.
(copy_tree_body_r): Likewise.
(copy_cfg_body): Free dependence map.
(copy_gimple_seq_and_replace_locals): Likewise.
* tree-pretty-print.c (dump_generic_node): Dump
dependence info.
* tree-ssa-alias.c (refs_may_alias_p_1): Use dependence info
to answer alias query.
* tree-ssa-structalias.c: Include tree-phinodes.h, ssa-iterators.h,
tree-pretty-print.h and gimple-walk.h.
(struct variable_info): Add is_restrict_var flag and ruid
member.
(new_var_info): Initialize is_restrict_var.
(make_constraint_from_restrict): Likewise.
(create_variable_info_for): Exclude restricts from global vars
from new handling.
(intra_create_variable_infos): But not those from parameters.
(visit_loadstore): New function.
(maybe_set_dependence_info): Likewise.
(compute_dependence_clique): Likewise.
(compute_may_aliases): Call compute_dependence_clique.
* tree-data-ref.c (dr_analyze_indices): Copy dependence info
to fake MEM_REF.
(dr_may_alias_p): Use recorded dependence info to answer
alias query.
* tree-core.h (struct tree_base): Add clique, base struct in
union.
* tree.h (MR_DEPENDENCE_CLIQUE): New macro.
(MR_DEPENDENCE_BASE): Likewise.
* tree-inline.h (dependence_hasher): New hash-map kind.
(struct copy_body_data): Add dependence_map pointer.
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Avoid
throwing away dependence info.
* tree-streamer-in.c (unpack_value_fields): Stream dependence info.
* tree-streamer-out.c (streamer_pack_tree_bitfields): Likewise.
* gcc.dg/tree-ssa/restrict-5.c: New testcase.
From-SVN: r218004
Eric Botcazou [Mon, 24 Nov 2014 09:18:38 +0000 (09:18 +0000)]
* gcc-interface/Makefile.in (Cygwin/Mingw): Fix previous change.
From-SVN: r218003
Trevor Saunders [Mon, 24 Nov 2014 08:47:41 +0000 (08:47 +0000)]
Add missing entry
From-SVN: r218002
Paolo Carlini [Mon, 24 Nov 2014 08:36:32 +0000 (08:36 +0000)]
re PR c++/63905 (redundant fields left in gcc/cp/cp-tree.h:lang_decl_fn)
2014-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/63905
* cp-tree.h (lang_decl_fn): Remove constructor_attr, destructor_attr.
From-SVN: r218001
Eric Botcazou [Mon, 24 Nov 2014 08:34:01 +0000 (08:34 +0000)]
trans.c (build_return_expr): Use INIT_EXPR instead of MODIFY_EXPR to assign to the return object.
* gcc-interface/trans.c (build_return_expr): Use INIT_EXPR instead of
MODIFY_EXPR to assign to the return object.
(finalize_nrv_r): Adjust to above change.
(finalize_nrv_unc_r): Likewise.
From-SVN: r218000
Eric Botcazou [Mon, 24 Nov 2014 08:18:40 +0000 (08:18 +0000)]
trans.c (push_range_check_info): Replace early test with assertion.
* gcc-interface/trans.c (push_range_check_info): Replace early test
with assertion.
(Raise_Error_to_gnu): Do not call push_range_check_info if the loop
stack is empty.
* gcc-interface/utils.c (convert_to_fat_pointer): Fix formatting.
* gcc-interface/utils2.c (gnat_invariant_expr): Deal with padded types
and revert latest change.
From-SVN: r217998
Tobias Burnus [Mon, 24 Nov 2014 07:47:46 +0000 (08:47 +0100)]
error.c (gfc_fatal_error_1): Remove.
2014-11-24 Tobias Burnus <burnus@net-b.de>
* error.c (gfc_fatal_error_1): Remove.
* gfortran.h (gfc_fatal_error_1): Remove.
* check.c (check_co_collective): Change gfc_fatal_error_1 to
gfc_fatal_error.
* match.c (gfc_match_name): Ditto.
* trans-array.c (gfc_conv_array_initializer): Ditto.
* trans-stmt.c (gfc_trans_sync): Ditto.
2014-11-24 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/dollar_sym_3.f: Update dg-error.
* gfortran.dg/dollar_sym_3.f: Ditto.
From-SVN: r217997
David Edelsohn [Mon, 24 Nov 2014 01:59:38 +0000 (01:59 +0000)]
pr46799.c: XFAIL on AIX.
* gcc.dg/autopar/pr46799.c: XFAIL on AIX.
* gcc.dg/torture/pr59166.c: XFAIL on AIX.
* gcc.dg/pr63914.c: Ignore non-standard ABI warning.
* gcc.dg/pr63594-[12].c: Ignore non-standard ABI warning.
From-SVN: r217996
GCC Administrator [Mon, 24 Nov 2014 00:16:28 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217995
Manuel López-Ibáñez [Sun, 23 Nov 2014 23:47:42 +0000 (23:47 +0000)]
re PR fortran/44054 (Handle -Werror, -Werror=, -fdiagnostics-show-option, !GCC$ diagnostic (pragmas) and color)
gcc/fortran/ChangeLog:
2014-11-23 Manuel López-Ibáñez <manu@gcc.gnu.org>
PR fortran/44054
* decl.c (gfc_verify_c_interop_param): Use gfc_error_now_2.
(gfc_set_constant_character_len): Use gfc_warning_now_2.
* resolve.c (resolve_ordinary_assign): Likewise.
* gfortran.h (warn_character_truncation): Do not declare here.
* error.c (gfc_format_decoder): Handle %L.
* lang.opt (Wcharacter-truncation): Add Var and LangEnabledBy.
* options.c (gfc_init_options): Do not handle
warn_character_truncation explicitly.
(set_Wall): Likewise.
(gfc_handle_option): Likewise.
From-SVN: r217992
Trevor Saunders [Sun, 23 Nov 2014 22:24:59 +0000 (22:24 +0000)]
pr63856 - test case
From-SVN: r217991
Tobias Burnus [Sun, 23 Nov 2014 22:02:38 +0000 (23:02 +0100)]
invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that -Wtabs enables the warning.
2014-11-23 Tobias Burnus <burnus@net-b.de>
* invoke.texi (-Wtabs): Swap -Wtabs/-Wno-tabs now that
-Wtabs enables the warning.
From-SVN: r217990
Oleg Endo [Sun, 23 Nov 2014 21:20:13 +0000 (21:20 +0000)]
Fix ChangeLog formatting.
From-SVN: r217988
Oleg Endo [Sun, 23 Nov 2014 21:16:26 +0000 (21:16 +0000)]
re PR target/53976 ([SH] Unnecessary clrt/sett after bt/bf)
gcc/
PR target/53976
* config/sh/sh_optimize_sett_clrt.cc
(sh_optimize_sett_clrt::find_last_ccreg_values): Return bool instead
of void. Abort at complex edges.
(sh_optimize_sett_clrt::execute): Do nothing if find_last_ccreg_values
returned false.
From-SVN: r217987
Tobias Burnus [Sun, 23 Nov 2014 20:35:14 +0000 (21:35 +0100)]
error.c (gfc_diagnostic_build_prefix): Correct coloring of the colon of the prefix.
2014-11-23 Tobias Burnus <burnus@net-b.de>
* error.c (gfc_diagnostic_build_prefix): Correct coloring
of the colon of the prefix.
From-SVN: r217986
Tobias Burnus [Sun, 23 Nov 2014 17:14:10 +0000 (18:14 +0100)]
gfortran.h (gfc_option_t): Remove warn_tabs.
2014-11-23 Tobias Burnus <burnus@net-b.de>
Manuel López-Ibáñez <manu@gcc.gnu.org>
gcc/fortran/
* gfortran.h (gfc_option_t): Remove warn_tabs.
* lang.opt (Wpedantic): Add.
(Wtabs): Use Var and LangEnabledBy.
* options.c (gfc_init_options, gfc_post_options,
set_Wall): Remove -Wtabs handling.
(gfc_handle_option): Update -std=, remove OPT_Wtabs.
* scanner.c (gfc_gobble_whitespace): Update for
flag-variable renaming.
(load_line): Ditto. Pass warn flag to diagnostic.
gcc/testsuite/
* gfortran.dg/tab_continuation.f: Update dg-*.
Co-Authored-By: Manuel López-Ibáñez <manu@gcc.gnu.org>
From-SVN: r217985
Andrew Pinski [Sun, 23 Nov 2014 12:30:24 +0000 (12:30 +0000)]
20120927-1.c: New testcase.
2014-11-23 Andrew Pinski <apinski@cavium.com>
* gcc.c-torture/compile/
20120927-1.c: New testcase.
* gcc.c-torture/compile/
20120830-1.c: New testcase.
From-SVN: r217982
Andrew Pinski [Sun, 23 Nov 2014 05:30:26 +0000 (05:30 +0000)]
initlist-lifetime1.C: Fix testcase where argc is always greater than 1 (octeon simulator).
2014-11-22 Andrew Pinski <apinski@cavium.com>
* g++.dg/cpp0x/initlist-lifetime1.C: Fix testcase where
argc is always greater than 1 (octeon simulator).
* g++.dg/cpp0x/initlist-lifetime2.C: Likewise.
From-SVN: r217979
GCC Administrator [Sun, 23 Nov 2014 00:16:29 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217978
Andrew Pinski [Sat, 22 Nov 2014 23:41:26 +0000 (23:41 +0000)]
\1a2014-11-22 Andrew Pinski <apinski@cavium.com>
PR target/63971
* gcc.target/aarch64/test_frame_1.c: Expect only two loads of
x30 (in the epilogue).
* gcc.target/aarch64/test_frame_6.c: Likewise.
* gcc.target/aarch64/test_frame_2.c: Expect only one pair load of
x30 and x19 (in the epilogue).
* gcc.target/aarch64/test_frame_4.c: Likewise.
* gcc.target/aarch64/test_frame_7.c: Likewise.
From-SVN: r217975
John David Anglin [Sat, 22 Nov 2014 21:12:47 +0000 (21:12 +0000)]
Commit missing change log entries.
From-SVN: r217974
Jan Hubicka [Sat, 22 Nov 2014 21:08:07 +0000 (22:08 +0100)]
ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones as having abstract origin used.
* ipa.c (symbol_table::remove_unreachable_nodes): Mark all inline clones
as having abstract origin used.
* ipa-inline-transform.c (can_remove_node_now_p_1): Drop abstract origin check.
(clone_inlined_nodes): Copy abstract originflag.
* lto-cgraph.c (compute_ltrans_boundary): Use get_create to get abstract origin node.
From-SVN: r217973
John David Anglin [Sat, 22 Nov 2014 20:53:36 +0000 (20:53 +0000)]
re PR other/63694 (Build error compiling asan.c: strtoull undeclared)
PR other/63694
* libiberty/configure.ac: Check for strtol, strtoul, strtoll and strtoull
declarations.
* libiberty/configure: Regenerated.
* gcc/configure.ac: Check for strtol, strtoul, strtoll and strtoull
declarations.
* gcc/configure: Regenerated.
* gcc/config.in: Regenerated.
From-SVN: r217972
Uros Bizjak [Sat, 22 Nov 2014 19:02:12 +0000 (20:02 +0100)]
params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
* params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
* config/i386/i386.c (ix86_option_override_internal): Do not increase
PARAM_MAX_COMPLETELY_PEELED_INSNS.
From-SVN: r217971
Oleg Endo [Sat, 22 Nov 2014 15:50:10 +0000 (15:50 +0000)]
re PR target/63783 ([SH] Miscompilation of boolean negation on SH4 using -O2)
gcc/
PR target/63783
PR target/51244
* config/sh/sh_treg_combine.cc (sh_treg_combine::make_not_reg_insn):
Do not emit bitwise not insn. Emit logical not insn sequence instead.
Adjust related comments throughout the file.
gcc/testsuite/
PR target/63783
PR target/51244
* gcc.target/sh/torture/pr63783-1.c: New.
* gcc.target/sh/torture/pr63783-2.c: New.
* gcc.target/sh/pr51244-20.c: Adjust.
* gcc.target/sh/pr51244-20-sh2a.c: Adjust.
From-SVN: r217969
Oleg Endo [Sat, 22 Nov 2014 15:06:34 +0000 (15:06 +0000)]
re PR target/63986 ([SH] gcc.target/sh/pr51244-15.c failures)
gcc/
PR target/63986
PR target/51244
* config/sh/sh.c (sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend): Use rtx_insn* for insn argument.
(sh_split_movrt_negc_to_movt_xor): New function.
(sh_find_set_of_reg): Move to ...
* config/sh/sh-protos.h (sh_find_set_of_reg): ... here and convert
to template function.
(set_of_reg): Use rtx_insn* for insn member.
(sh_is_logical_t_store_expr, sh_try_omit_signzero_extend): Use
rtx_insn* for insn argument.
* config/sh/sh.md (movrt_negc, *movrt_negc): Split into movt-xor
sequence using new sh_split_movrt_negc_to_movt_xor function.
(movrt_xor): Allow also for SH2A.
(*movt_movrt): Delete insns and splits.
From-SVN: r217968
Marc Glisse [Sat, 22 Nov 2014 14:28:19 +0000 (15:28 +0100)]
re PR tree-optimization/60770 (disappearing clobbers)
2014-11-22 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/60770
* tree-sra.c (clobber_subtree): New function.
(sra_modify_constructor_assign): Call it.
From-SVN: r217967
Tobias Burnus [Sat, 22 Nov 2014 14:14:35 +0000 (15:14 +0100)]
trans-expr.c (gfc_caf_get_image_index): Fix image calculation.
gcc/fortran/
2014-11-22 Tobias Burnus <burnus@net-b.de>
* trans-expr.c (gfc_caf_get_image_index): Fix image calculation.
gcc/testsuite/
2014-11-22 Tobias Burnus <burnus@net-b.de>
* gfortran.dg/coarray/cosubscript_1.f90: New.
From-SVN: r217966
Eric Botcazou [Sat, 22 Nov 2014 12:23:47 +0000 (12:23 +0000)]
trans.c (Call_to_gnu): Strip unchecked conversions on actuals of In parameters if...
* gcc-interface/trans.c (Call_to_gnu): Strip unchecked conversions on
actuals of In parameters if the destination type is an unconstrained
composite type.
From-SVN: r217965
Eric Botcazou [Sat, 22 Nov 2014 12:15:53 +0000 (12:15 +0000)]
trans.c (gnat_gimplify_expr): Add 'type' variable.
* gcc-interface/trans.c (gnat_gimplify_expr): Add 'type' variable.
<case NULL_EXPR>: Deal with unconstrained array types and use 'type'.
<case ADDR_EXPR>: Use 'type'.
<case DECL_EXPR>: Likewise.
From-SVN: r217964
Uros Bizjak [Sat, 22 Nov 2014 08:26:06 +0000 (09:26 +0100)]
store-motion-fgcse-sm.c (dg-final): Cleanup store_modtion rtl dump.
* gcc.dg/store-motion-fgcse-sm.c (dg-final): Cleanup
store_modtion rtl dump.
* gcc.dg/var-expand1.c (dg-final): Cleanup loop2_unroll rtl dump.
* gcc.dg/var-expand3.c (dg-final): Ditto.
From-SVN: r217961
Uros Bizjak [Sat, 22 Nov 2014 08:19:33 +0000 (09:19 +0100)]
avx512vl-vpermb-2.c: Require avx512vbmi.
* gcc.target/i386/avx512vl-vpermb-2.c: Require avx512vbmi.
* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Require avx512ifma.
* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
From-SVN: r217960
Jason Merrill [Sat, 22 Nov 2014 02:21:35 +0000 (21:21 -0500)]
re PR c++/63657 (-Wunused-variable: warning supressed by virtual dtor)
PR c++/63657
PR c++/38958
* call.c (set_up_extended_ref_temp): Set TREE_USED on the reference
if the temporary has a non-trivial destructor.
* decl.c (poplevel): Don't look through references.
From-SVN: r217957
Guy Martin [Sat, 22 Nov 2014 00:18:49 +0000 (01:18 +0100)]
linux-atomic.c (__kernel_cmpxchg2): New.
* config/pa/linux-atomic.c (__kernel_cmpxchg2): New.
(FETCH_AND_OP_2): New. Use for subword and double word operations.
(OP_AND_FETCH_2): Likewise.
(COMPARE_AND_SWAP_2): Likewise.
(SYNC_LOCK_TEST_AND_SET_2): Likewise.
(SYNC_LOCK_RELEASE_2): Likewise.
(SUBWORD_SYNC_OP): Remove.
(SUBWORD_VAL_CAS): Likewise.
(SUBWORD_BOOL_CAS): Likewise.
(FETCH_AND_OP_WORD): Update.
Consistently use signed types.
Co-Authored-By: John David Anglin <danglin@gcc.gnu.org>
From-SVN: r217956
GCC Administrator [Sat, 22 Nov 2014 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r217955
Steve Ellcey [Fri, 21 Nov 2014 23:25:51 +0000 (23:25 +0000)]
futex.h (SYS_futex): Define if not already done.
2014-11-21 Steve Ellcey <sellcey@imgtec.com>
* config/linux/mips/futex.h (SYS_futex): Define if not already done.
From-SVN: r217952
Jason Merrill [Fri, 21 Nov 2014 21:35:09 +0000 (16:35 -0500)]
re PR c++/63942 (constexpr conflicts with previous declaration)
PR c++/63942
* name-lookup.c (supplement_binding_1): Override a mangling alias.
* mangle.c (implicit_alias_p, remove_implicit_alias): New.
(mangle_decl): Avoid creating conflicting alias with
-fabi-compat-version=0, too.
* cp-tree.h: Adjust.
From-SVN: r217950
Jason Merrill [Fri, 21 Nov 2014 21:35:00 +0000 (16:35 -0500)]
re PR c++/63849 ([c++11] ICE on variadic alias template with wrappers)
PR c++/63849
* mangle.c (decl_mangling_context): Use template_type_parameter_p.
From-SVN: r217949
Jason Merrill [Fri, 21 Nov 2014 21:34:54 +0000 (16:34 -0500)]
re PR c++/63588 (ICE (segfault) on arm-linux-gnueabihf)
PR c++/63588
* pt.c (uses_template_parms): Handle null argument.
From-SVN: r217948
Vladimir Makarov [Fri, 21 Nov 2014 21:29:54 +0000 (21:29 +0000)]
re PR target/63897 (gcc.dg/torture/vector-2.c fails at on x86_64-apple-darwin14)
2014-11-21 Vladimir Makarov <vmakarov@redhat.com>
PR target/63897
* lra-lives.c (mark_regno_live, mark_regno_dead): Remove last
argument.
(process_bb_lives): Rename dead_insn_p on remove_p
and global_live_info_p on dead_insn_p. Calculate local live info
unconditionally. Remove last argument in calls mark_regno_live and
mark_regno_dead. Reorganize body of EXECUTE_IF_SET_IN_BITMAP.
(lra_create_live_ranges): Rename to lra_create_live_ranges_1.
Return bool. Rename global_live_info_p on dead_insn_p. Return
flag of live info change.
(lra_create_live_ranges): New.
From-SVN: r217947
Jakub Jelinek [Fri, 21 Nov 2014 20:42:20 +0000 (21:42 +0100)]
re PR target/63848 (FAIL: c-c++-common/torture/builtin-arith-overflow-17.c -O0 execution test)
PR target/63848
PR target/63975
* internal-fn.c (expand_arith_overflow_result_store,
expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow): Use
do_compare_rtx_and_jump instead of emit_cmp_and_jump_insns everywhere,
adjust arguments to those functions. Use unsignedp = true for
EQ, NE, GEU, LEU, LTU and GTU comparisons.
From-SVN: r217946
Jakub Jelinek [Fri, 21 Nov 2014 20:41:37 +0000 (21:41 +0100)]
re PR tree-optimization/64006 (__builtin_mul_overflow fails to signal overflow)
PR tree-optimization/64006
* tree-vrp.c (stmt_interesting_for_vrp): Return true
for {ADD,SUB,MUL}_OVERFLOW internal calls.
(vrp_visit_assignment_or_call): For {ADD,SUB,MUL}_OVERFLOW
internal calls, check if any REALPART_EXPR/IMAGPART_EXPR
immediate uses would change their value ranges and return
SSA_PROP_INTERESTING if so, or SSA_PROP_NOT_INTERESTING
if there are some REALPART_EXPR/IMAGPART_EXPR immediate uses
interesting for vrp.
* gcc.c-torture/execute/pr64006.c: New test.
From-SVN: r217945
Ilya Verbin [Fri, 21 Nov 2014 19:37:10 +0000 (19:37 +0000)]
* Makefile.in: Regenerate.
From-SVN: r217944
Lynn Boger [Fri, 21 Nov 2014 18:25:14 +0000 (12:25 -0600)]
go-test.exp (go-set-goarch): Add case for ppc64le goarch value for go testing.
* go.test/go-test.exp (go-set-goarch): Add case for ppc64le goarch
value for go testing.
From-SVN: r217942
Ian Lance Taylor [Fri, 21 Nov 2014 18:22:05 +0000 (18:22 +0000)]
runtime: GOARCH values for ppc64 BE & LE
ppc64 for BE
ppc64le for LE
issue 8654
From-SVN: r217941
Michael Meissner [Fri, 21 Nov 2014 18:03:09 +0000 (18:03 +0000)]
re PR target/63965 (ICE: in extract_constrain_insn, at recog.c:2230 on ppc64)
2014-11-21 Michael Meissner <meissner@linux.vnet.ibm.com>
PR target/63965
* config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): Do not set
Altivec & -16 mask if the type is not valid for Altivec registers.
(rs6000_secondary_reload_memory): Add support for ((reg + const) +
reg) that occurs during push_reload processing.
* config/rs6000/altivec.md (altivec_mov<mode>): Add instruction
alternative for moving constant vectors which are easy altivec
constants to GPRs. Set the length attribute each of the
alternatives.
From-SVN: r217940
Matthew Fortune [Fri, 21 Nov 2014 16:57:55 +0000 (16:57 +0000)]
Refine configure guard for MIPS .module availability
gcc/
* configure.ac: When checking for MIPS .module support ensure that
o32 FPXX is supported to avoid a second configure check.
* configure: Regenerate.
From-SVN: r217939
Jiong Wang [Fri, 21 Nov 2014 16:56:21 +0000 (16:56 +0000)]
[AArch64] Add vector pattern for __builtin_ctz
gcc/
* config/aarch64/iterators.md (VS): New mode iterator.
(vsi2qi): New mode attribute.
(VSI2QI): Likewise.
* config/aarch64/aarch64-simd-builtins.def: New entry for ctz.
* config/aarch64/aarch64-simd.md (ctz<mode>2): New pattern for ctz.
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Support BUILT_IN_CTZ.
gcc/testsuite/
* gcc.target/aarch64/vect_ctz_1.c: New testcase.
From-SVN: r217938
H.J. Lu [Fri, 21 Nov 2014 16:49:17 +0000 (08:49 -0800)]
Always use PIC option with -shared in libtool
Libtool needs to pass PIC option -shared when creating shared object to
link regular object files with slim-lto archive.
PR bootstrap/63784
* libtool.m4: Add $pic_flag with -shared.
boehm-gc/
PR bootstrap/63784
* configure: Regenerated.
gcc/
PR bootstrap/63784
* configure: Regenerated.
libatomic/
PR bootstrap/63784
* configure: Regenerated.
libbacktrace/
PR bootstrap/63784
* configure: Regenerated.
libcc1/
PR bootstrap/63784
* configure: Regenerated.
libcilkrts/
PR bootstrap/63784
* configure: Regenerated.
libffi/
PR bootstrap/63784
* configure: Regenerated.
libgfortran/
PR bootstrap/63784
* configure: Regenerated.
libgomp/
PR bootstrap/63784
* configure: Regenerated.
libitm/
PR bootstrap/63784
* configure: Regenerated.
libjava/
PR bootstrap/63784
* configure: Regenerated.
libjava/classpath/
PR bootstrap/63784
* configure: Regenerated.
libobjc/
PR bootstrap/63784
* configure: Regenerated.
libquadmath/
PR bootstrap/63784
* configure: Regenerated.
libsanitizer/
PR bootstrap/63784
* configure: Regenerated.
libssp/
PR bootstrap/63784
* configure: Regenerated.
libstdc++-v3/
PR bootstrap/63784
* configure: Regenerated.
libvtv/
PR bootstrap/63784
* configure: Regenerated.
lto-plugin/
PR bootstrap/63784
* configure: Regenerated.
From-SVN: r217937
Kyrylo Tkachov [Fri, 21 Nov 2014 16:28:29 +0000 (16:28 +0000)]
[AArch64] Implement vsqrt_f64 intrinsic
* config/aarch64/arm_neon.h (vsqrt_f64): New intrinsic.
* gcc.target/aarch64/simd/vsqrt_f64_1.c
From-SVN: r217936
Ilya Tocar [Fri, 21 Nov 2014 16:04:20 +0000 (16:04 +0000)]
Add x86 pcommit instruction.
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
OPTION_MASK_ISA_PCOMMIT_SET): New.
(ix86_handle_option): Handle OPT_mpcommit.
* config.gcc: Add pcommitintrin.h
* config/i386/pcommitintrin.h: New file.
* config/i386/cpuid.h (bit_PCOMMIT): Define.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect pcommit.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__PCOMMIT__.
* config/i386/i386.c (ix86_target_string): Add -mpcommit.
(PTA_PCOMMIT): Define.
(ix86_option_override_internal): Handle new option.
(ix86_valid_target_attribute_inner_p): Add pcommit.
(ix86_builtins): Add IX86_BUILTIN_PCOMMIT.
(bdesc_special_args): Add __builtin_ia32_pcommit.
* config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Define.
* config/i386/i386.md (unspecv): Add UNSPECV_PCOMMIT.
(pcommit): New instruction.
* config/i386/i386.opt: Add mpcommit.
* config/i386/x86intrin.h: Include pcommitintrin.h.
gcc/testsuite/
* g++.dg/other/i386-2.C: Add -mpcommit.
* g++.dg/other/i386-3.C: Ditto.
* gcc.target/i386/pcommit-1.c: New test.
* gcc.target/i386/sse-12.c: Add new options.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
From-SVN: r217935
Mark Wielaard [Fri, 21 Nov 2014 16:00:06 +0000 (16:00 +0000)]
PR debug/38757 gcc does not emit DW_LANG_C99.
For C and C++ add the language standard version in use to lang_hooks.name.
Change users of lang_hook.name to check with new functions lang_GNU_C or
lang_GNU_CXX. In dwarf2out.c output the DW_LANG_C version from the
lang_hooks.name and merge any LTO TRANSLATION_UNIT_LANGUAGE found. Adds
two testcases to dwarf2.exp to check the right DWARF DW_AT_language is set
on the compile_unit depending on the -std=c89 or -std=c99 setting.
gcc/c-family/ChangeLog
PR debug/38757
* c-opts.c (set_std_c89): Set lang_hooks.name.
(set_std_c99): Likewise.
(set_std_c11): Likewise.
(set_std_cxx98): Likewise.
(set_std_cxx11): Likewise.
(set_std_cxx14): Likewise.
(set_std_cxx1z): Likewise.
gcc/ChangeLog
PR debug/38757
* config/avr/avr-c.c (avr_cpu_cpp_builtins): Use lang_GNU_C.
* config/darwin.c (darwin_file_end): Use lang_GNU_CXX.
(darwin_override_options): Likewise.
* config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
Likewise.
* config/rs6000/rs6000.c (rs6000_output_function_epilogue):
Likewise.
* dbxout.c (get_lang_number): Likewise.
(dbxout_type): Likewise.
(dbxout_symbol_location): Likewise.
* dwarf2out.c (add_prototyped_attribute): Add DW_AT_prototype
also for DW_LANG_{C,C99,ObjC}.
(highest_c_language): New function.
(gen_compile_unit_die): Call highest_c_language to merge LTO
TRANSLATION_UNIT_LANGUAGE. Use strncmp language_string to
determine if DW_LANG_C99 or DW_LANG_C89 should be returned.
* fold-const.c (fold_cond_expr_with_comparison): Use lang_GNU_CXX.
* langhooks.h (struct lang_hooks): Add version comment to name.
(lang_GNU_C): New function declaration.
(lang_GNU_CXX): Likewise.
* langhooks.c (lang_GNU_C): New function.
(lang_GNU_CXX): Likewise.
* vmsdbgout.c (vmsdbgout_init): Use lang_GNU_C and lang_GNU_CXX.
gcc/testsuite/ChangeLog
PR debug/38757
* gcc.dg/debug/dwarf2/lang-c89.c: New test.
* gcc.dg/debug/dwarf2/lang-c99.c: Likewise.
From-SVN: r217934
Ilya Tocar [Fri, 21 Nov 2014 15:52:49 +0000 (15:52 +0000)]
Support clwb x86 instruction.
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_CLWB_UNSET,
OPTION_MASK_ISA_CLWB_SET): New.
(ix86_handle_option): Handle OPT_mclwb.
* config.gcc: Add clwbintrin.h.
* config/i386/clwbintrin.h: New file.
* config/i386/cpuid.h (bit_CLWB): Define.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect clwb.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__CLWB__.
* config/i386/i386.c (ix86_target_string): Add -mclwb.
(PTA_CLWB): Define.
(ix86_option_override_internal): Handle new option.
(ix86_valid_target_attribute_inner_p): Add clwb.
(ix86_builtins): Add IX86_BUILTIN_CLWB.
(ix86_init_mmx_sse_builtins): Add __builtin_ia32_clwb.
(ix86_expand_builtin): Handle IX86_BUILTIN_CLWB.
* config/i386/i386.h (TARGET_CLWB, TARGET_CLWB_P): Define.
* config/i386/i386.md (unspecv): Add UNSPECV_CLWB.
(clwb): New instruction.
* config/i386/i386.opt: Add mclwb.
* config/i386/x86intrin.h: Include clwbintrin.h.
gcc/testsuite/
* g++.dg/other/i386-2.C: Add -mclwb.
* g++.dg/other/i386-3.C: Ditto.
* gcc.target/i386/clwb-1.c: New test.
* gcc.target/i386/sse-12.c: Add new options.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
From-SVN: r217933
Ilya Tocar [Fri, 21 Nov 2014 15:44:37 +0000 (15:44 +0000)]
Add avx512vbmi instructions.
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VBMI_SET
OPTION_MASK_ISA_AVX512VBMI_UNSET): New.
(ix86_handle_option): Handle OPT_mavx512vbmi.
* config.gcc: Add avx512vbmiintrin.h, avx512vbmivlintrin.h.
* config/i386/avx512vbmiintrin.h: New file.
* config/i386/avx512vbmivlintrin.h: Ditto.
* config/i386/cpuid.h (bit_AVX512VBMI): New.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect avx512vbmi.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__AVX512VBMI__.
* config/i386/i386.c (ix86_target_string): Add -mavx512vbmi.
(PTA_AVX512VBMI): Define.
(ix86_option_override_internal): Handle new options.
(ix86_valid_target_attribute_inner_p): Add avx512vbmi,
(ix86_builtins): Add IX86_BUILTIN_VPMULTISHIFTQB512,
IX86_BUILTIN_VPMULTISHIFTQB256, IX86_BUILTIN_VPMULTISHIFTQB128,
IX86_BUILTIN_VPERMVARQI512_MASK, IX86_BUILTIN_VPERMT2VARQI512,
IX86_BUILTIN_VPERMT2VARQI512_MASKZ, IX86_BUILTIN_VPERMI2VARQI512,
IX86_BUILTIN_VPERMVARQI256_MASK, IX86_BUILTIN_VPERMVARQI128_MASK,
IX86_BUILTIN_VPERMT2VARQI256, IX86_BUILTIN_VPERMT2VARQI256_MASKZ,
IX86_BUILTIN_VPERMT2VARQI128, IX86_BUILTIN_VPERMI2VARQI256,
IX86_BUILTIN_VPERMI2VARQI128.
(bdesc_special_args): Add __builtin_ia32_vpmultishiftqb512_mask,
__builtin_ia32_vpmultishiftqb256_mask,
__builtin_ia32_vpmultishiftqb128_mask,
__builtin_ia32_permvarqi512_mask, __builtin_ia32_vpermt2varqi512_mask,
__builtin_ia32_vpermt2varqi512_maskz,
__builtin_ia32_vpermi2varqi512_mask, __builtin_ia32_permvarqi256_mask,
__builtin_ia32_permvarqi128_mask, __builtin_ia32_vpermt2varqi256_mask,
__builtin_ia32_vpermt2varqi256_maskz,
__builtin_ia32_vpermt2varqi128_mask,
__builtin_ia32_vpermt2varqi128_maskz,
__builtin_ia32_vpermi2varqi256_mask,
__builtin_ia32_vpermi2varqi128_mask.
(ix86_hard_regno_mode_ok): Allow big masks for AVX512VBMI.
* config/i386/i386.h (TARGET_AVX512VBMI, TARGET_AVX512VBMI_P): Define.
* config/i386/i386.opt: Add mavx512vbmi.
* config/i386/immintrin.h: Include avx512vbmiintrin.h,
avx512vbmivlintrin.h.
* config/i386/sse.md (unspec): Add UNSPEC_VPMULTISHIFT.
(VI1_AVX512VL): New iterator.
(<avx512>_permvar<mode><mask_name>): Use it.
(<avx512>_vpermi2var<mode>3_maskz): Ditto.
(<avx512>_vpermi2var<mode>3<sd_maskz_name>): Ditto.
(<avx512>_vpermi2var<mode>3_mask): Ditto.
(<avx512>_vpermt2var<mode>3_maskz): Ditto.
(<avx512>_vpermt2var<mode>3<sd_maskz_name>): Ditto.
(<avx512>_vpermt2var<mode>3_mask): Ditto.
(vpmultishiftqb<mode><mask_name>): Ditto.
gcc/testsuite/
* g++.dg/other/i386-2.C: Add -mavx512vbmi.
* g++.dg/other/i386-3.C: Ditto.
* gcc.target/i386/avx512f-helper.h: Add avx512vbmi-check.h.
* gcc.target/i386/avx512vbmi-check.h: Ditto.
* gcc.target/i386/avx512vbmi-vpermb-1.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermb-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermi2b-1.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermi2b-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermt2b-1.c: Ditto.
* gcc.target/i386/avx512vbmi-vpermt2b-2.c: Ditto.
* gcc.target/i386/avx512vbmi-vpmultishiftqb-1.c: Ditto.
* gcc.target/i386/avx512vbmi-vpmultishiftqb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermb-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermi2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpermt2b-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmultishiftqb-2.c: Ditto.
* gcc.target/i386/i386.exp (check_effective_target_avx512vbmi): New.
* gcc.target/i386/sse-12.c: Add new options.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
From-SVN: r217932
Ulrich Weigand [Fri, 21 Nov 2014 15:33:27 +0000 (15:33 +0000)]
re PR rtl-optimization/63952 (bootstrap failure (ICE in prepare_cmp_insn) on s390x in libjava)
PR rtl-optimization/63952
* optabs.c (prepare_cmp_insn): Do not call can_compare_p for CCmode.
* config/s390/s390.md ("cbranchcc4"): Accept any s390_comparison.
Remove incorrect TARGET_HARD_FLOAT check and no-op expander code.
From-SVN: r217929
Ilya Tocar [Fri, 21 Nov 2014 15:28:24 +0000 (15:28 +0000)]
Add avx512ifma instructions.
gcc/
* common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512IFMA_SET,
OPTION_MASK_ISA_AVX512IFMA_UNSET): New.
(ix86_handle_option): Handle OPT_mavx512ifma.
* config.gcc: Add avx512ifmaintrin.h, avx512ifmavlintrin.h.
* config/i386/avx512ifmaintrin.h: New file.
* config/i386/avx512ifmaivlntrin.h: Ditto.
* config/i386/cpuid.h (bit_AVX512IFMA): New.
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
avx512ifma.
* config/i386/i386-c.c (ix86_target_macros_internal): Define
__AVX512IFMA__.
* config/i386/i386.c (ix86_target_string): Add -mavx512ifma.
(PTA_AVX512IFMA): Define.
(ix86_option_override_internal): Handle new options.
(ix86_valid_target_attribute_inner_p): Add avx512ifma.
(ix86_builtins): Add IX86_BUILTIN_VPMADD52LUQ512,
IX86_BUILTIN_VPMADD52HUQ512, IX86_BUILTIN_VPMADD52LUQ256,
IX86_BUILTIN_VPMADD52HUQ256, IX86_BUILTIN_VPMADD52LUQ128,
IX86_BUILTIN_VPMADD52HUQ128, IX86_BUILTIN_VPMADD52LUQ512_MASKZ,
IX86_BUILTIN_VPMADD52HUQ512_MASKZ, IX86_BUILTIN_VPMADD52LUQ256_MASKZ,
IX86_BUILTIN_VPMADD52HUQ256_MASKZ, IX86_BUILTIN_VPMADD52LUQ128_MASKZ,
IX86_BUILTIN_VPMADD52HUQ128_MASKZ.
(bdesc_special_args): Add __builtin_ia32_vpmadd52luq512_mask,
__builtin_ia32_vpmadd52luq512_maskz,
__builtin_ia32_vpmadd52huq512_mask,
__builtin_ia32_vpmadd52huq512_maskx,
__builtin_ia32_vpmadd52luq256_mask,
__builtin_ia32_vpmadd52luq256_maskz,
__builtin_ia32_vpmadd52huq256_mask,
__builtin_ia32_vpmadd52huq256_maskz,
__builtin_ia32_vpmadd52luq128_mask,
__builtin_ia32_vpmadd52luq128_maskz,
__builtin_ia32_vpmadd52huq128_mask,
__builtin_ia32_vpmadd52huq128_maskz,
* config/i386/i386.h (TARGET_AVX512IFMA, TARGET_AVX512IFMA_P): Define.
* config/i386/i386.opt: Add mavx512ifma.
* config/i386/immintrin.h: Include avx512ifmaintrin.h,
avx512ifmavlintrin.h.
* config/i386/sse.md (unspec): Add UNSPEC_VPMADD52LUQ,
UNSPEC_VPMADD52HUQ.
(VPMADD52): New iterator.
(vpmadd52type): New attribute.
(vpamdd52huq<mode>_maskz): New.
(vpamdd52luq<mode>_maskz): Ditto.
(vpamdd52<vpmadd52type><mode><sd_maskz_name>): Ditto.
(vpamdd52<vpmadd52type><mode>_mask): Ditto.
gcc/testsuite/
* g++.dg/other/i386-2.C: Add -mavx512ifma.
* g++.dg/other/i386-3.C: Ditto.
* gcc.target/i386/avx512f-helper.h: Add avx512ifma-check.h.
* gcc.target/i386/avx512ifma-check.h: New.
* gcc.target/i386/avx512ifma-vpmaddhuq-1.c: Ditto.
* gcc.target/i386/avx512ifma-vpmaddhuq-2.c: Ditto.
* gcc.target/i386/avx512ifma-vpmaddluq-1.c: Ditto.
* gcc.target/i386/avx512ifma-vpmaddluq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddhuq-2.c: Ditto.
* gcc.target/i386/avx512vl-vpmaddluq-2.c: Ditto.
* gcc.target/i386/i386.exp (check_effective_target_avx512ifma): New.
* gcc.target/i386/sse-12.c: Add new options.
* gcc.target/i386/sse-13.c: Ditto.
* gcc.target/i386/sse-14.c: Ditto.
* gcc.target/i386/sse-22.c: Ditto.
* gcc.target/i386/sse-23.c: Ditto.
2014-11-21 Georg-Johann Lay <avr@gjlay.de>
From-SVN: r217928
Alan Lawrence [Fri, 21 Nov 2014 14:44:31 +0000 (14:44 +0000)]
Revert: Workaround following [PATCH] Pul all constants last in tree_swap_operands_p
https://gcc.gnu.org/ml/gcc-patches/2014-09/msg01509.html
2014-09-22 Alan Lawrence <alan.lawrence@arm.com>
gcc/:
* fold-const.c (tree_swap_operands_p): Strip only sign-preserving NOPs.
From-SVN: r217927
Andrew Bennett [Fri, 21 Nov 2014 14:34:55 +0000 (14:34 +0000)]
[MIPS] If using branch likelies in MIPS sync code fill the delay slot
with a nop.
gcc/
* config/mips/mips.c (mips_process_sync_loop): Place a
nop in the delay slot of the branch likely instruction.
(mips_output_sync_loop): Ensure mips_branch_likely is
set before calling mips_output_sync_loop.
(mips_sync_loop_insns): Likewise.
From-SVN: r217926
William Schmidt [Fri, 21 Nov 2014 14:20:42 +0000 (14:20 +0000)]
missing ChangeLog entry
From-SVN: r217925
William Schmidt [Fri, 21 Nov 2014 14:10:27 +0000 (14:10 +0000)]
PR/target 63673
2014-11-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
PR/target 63673
* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Allow
the base pointer of vec_vsx_ld and vec_vsx_st to take a pointer to
double.
From-SVN: r217924
Georg-Johann Lay [Fri, 21 Nov 2014 14:05:32 +0000 (14:05 +0000)]
Add ChangeLog entry
From-SVN: r217923
Georg-Johann Lay [Fri, 21 Nov 2014 14:04:25 +0000 (14:04 +0000)]
Forward-port from 2014-10-30 4_9-branch r216934 PR target/63633
gcc/
Forward-port from 2014-10-30 4_9-branch r216934
PR target/63633
* config/avr/avr-protos.h (regmask): New inline function.
(avr_fix_inputs, avr_emit3_fix_outputs): New protos.
* config/avr/avr.c (avr_fix_operands, avr_move_fixed_operands)
(avr_fix_inputs, avr_emit3_fix_outputs): New functions.
* config/avr/avr-fixed.md (mulqq3_nomul, muluqq3_nomul)
(mul<ALL2QA>3, mul<ALL4A>3, <usdiv><ALL1Q>3, <usdiv><ALL2QA>3)
(<usdiv><ALL4A>3, round<ALL124QA>3): Fix input operands.
* config/avr/avr-dimode.md (add<ALL8>3, sub<ALL8>3)
(<ss_addsub><ALL8S>3, <us_addsub><ALL8U>3, cbranch<ALL8>4)
(<di_shifts><ALL8>3, <any_extend>mulsidi3): Fix input operands.
* config/avr/avr.md (mulqi3_call, mulhi3_call, mulsi3, mulpsi3)
(mulu<QIHI>si3, muls<QIHI>si3, mulohisi3, <any_extend>mulhisi3)
(usmulhisi3, <any_extend>mulhi3_highpart, mulsqipsi3)
(fmul, fmuls, fmulsu): Fix operands. Turn insn into expander as
needed.
gcc/testsuite/
Forward-port from 2014-10-30 4_9-branch r216934
PR target/63633
* gcc.target/avr/torture/pr63633-ice-mult.c: New test.
From-SVN: r217922
Jakub Jelinek [Fri, 21 Nov 2014 14:03:37 +0000 (15:03 +0100)]
re PR sanitizer/64013 (libsanitizer fails to build)
PR sanitizer/64013
* sanitizer_common/sanitizer_linux.cc (FileExists): Cherry pick
upstream r222532.
From-SVN: r217921
Francois-Xavier Coudert [Fri, 21 Nov 2014 13:32:08 +0000 (13:32 +0000)]
re PR debug/63239 (DWARF does not represent C++ deleted methods)
PR debug/63239
* g++.dg/debug/dwarf2/deleted-member-function.C: Pass
-gno-strict-dwarf.
From-SVN: r217920
Jakub Jelinek [Fri, 21 Nov 2014 13:28:58 +0000 (14:28 +0100)]
re PR testsuite/61137 (FAIL: gcc.target/ia64/small-addr-1.c (test for excess errors))
PR target/61137
* config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
From-SVN: r217919
Francois-Xavier Coudert [Fri, 21 Nov 2014 13:27:57 +0000 (13:27 +0000)]
re PR debug/63239 (DWARF does not represent C++ deleted methods)
PR debug/63239
* g++.dg/debug/dwarf2/deleted-member-function.C: Pass
-gno-strict-dwarf on darwin.
From-SVN: r217918
James Greenhalgh [Fri, 21 Nov 2014 12:29:26 +0000 (12:29 +0000)]
[AArch64, Obvious] Fix formatting of SHLL and friends
gcc/
* config/aarch64/aarch64-simd.md
(aarch64_<ANY_EXTEND:su><ADDSUB:optab>l<mode>): Add a tab between
output mnemonic and operands.
(aarch64_simd_vec_unpack<su>_lo_<mode>): Likewise.
(aarch64_simd_vec_unpack<su>_hi_<mode>): Likewise.
From-SVN: r217917
Tom de Vries [Fri, 21 Nov 2014 12:26:11 +0000 (12:26 +0000)]
Add fgcse-sm test with scan-rtl-dump
2014-11-21 Tom de Vries <tom@codesourcery.com>
* gcc.dg/store-motion-fgcse-sm.c: New test.
From-SVN: r217916