]>
git.ipfire.org Git - thirdparty/gcc.git/log
hubicka [Tue, 31 May 2016 23:23:40 +0000 (23:23 +0000)]
* doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
of flags impliying the register renaming.
* toplev.c (process_options): Do not imply flag_rename_registers with
loop peeling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236966
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Tue, 31 May 2016 19:49:22 +0000 (19:49 +0000)]
* pt.c (instantiate_decl): Avoid recalculation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236947
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Tue, 31 May 2016 19:49:16 +0000 (19:49 +0000)]
PR c++/60095 - partial specialization of variable templates
PR c++/69515
PR c++/69009
* pt.c (instantiate_template_1): Don't put the partial
specialization in DECL_TI_TEMPLATE.
(partial_specialization_p, impartial_args): Remove.
(regenerate_decl_from_template): Add args parm.
(instantiate_decl): Look up the partial specialization again.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236946
138bc75d -0d04-0410-961f-
82ee72b054a4
jason [Tue, 31 May 2016 19:16:26 +0000 (19:16 +0000)]
PR c++/71227 - specializing hidden friend
* pt.c (check_explicit_specialization): Give better diagnostic about
specializing a hidden friend.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236941
138bc75d -0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 31 May 2016 18:59:36 +0000 (18:59 +0000)]
* s-osinte-kfreebsd-gnu.ads (clock_getres): Define.
(Get_Page_Size): Remove duplicate and return int.
PR ada/71317
* s-osinte-rtems.ads (clock_getres): Define.
(Get_Page_Size): Remove duplicate and return int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236938
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Tue, 31 May 2016 17:17:29 +0000 (17:17 +0000)]
/cp
2016-05-31 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71248
* decl.c (check_static_variable_definition): Use DECL_SOURCE_LOCATION
to obtain correct locations; avoid redundant diagnostics on
out-of-class definitions.
/testsuite
2016-05-31 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71248
* g++.dg/cpp0x/pr71248.C: New.
* g++.dg/cpp0x/auto7.C: Test column numbers too.
* g++.dg/cpp0x/constexpr-static8.C: Likewise.
* g++.dg/init/new37.C: Likewise.
* g++.dg/template/static1.C: Likewise.
* g++.dg/template/static2.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236931
138bc75d -0d04-0410-961f-
82ee72b054a4
olegendo [Tue, 31 May 2016 15:57:15 +0000 (15:57 +0000)]
gcc/
* config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
default implementation.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236930
138bc75d -0d04-0410-961f-
82ee72b054a4
nathan [Tue, 31 May 2016 15:54:43 +0000 (15:54 +0000)]
* dwarf2out.c (cur_line_info_table): Add GTY marker.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236929
138bc75d -0d04-0410-961f-
82ee72b054a4
olegendo [Tue, 31 May 2016 15:49:13 +0000 (15:49 +0000)]
Remove SH5 target regs.
gcc/
* config/sh/constraints.md (b): Remove constraint.
* config/sh/predicates.md (arith_reg_operand): Remove TARGET_REGISTER_P.
* config/sh/sh-modes.def (PDI): Remove.
* config/sh/sh.c (sh_target_reg_class,
sh_optimize_target_register_callee_saved): Remove functions.
(sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
(sh_expand_epilogue): Update comment.
(sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
sh_secondary_reload): Remove TARGET_REGS related code.
* config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
TARGET_REGISTER_P): Remove macros.
(SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
* config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
TR1_REG, TR2_REG): Remove constants.
* config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236928
138bc75d -0d04-0410-961f-
82ee72b054a4
olegendo [Tue, 31 May 2016 15:27:54 +0000 (15:27 +0000)]
Simplify SH DImode add, sub, neg patterns.
* config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
define_expand patterns.
(adddi3_compact): Rename to adddi3.
(subdi3_compact): Rename to subdi3.
(*negdi2): Rename to negdi2.
(*abs<mode>2): Rename to abs<mode>2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236927
138bc75d -0d04-0410-961f-
82ee72b054a4
olegendo [Tue, 31 May 2016 15:06:25 +0000 (15:06 +0000)]
Fix wrong-code issues of RX atomic operations.
gcc/
* config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
(atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
(atomic_sub_fetchsi): ... this new pattern.
(mvtc): Add CC_REG clobber.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236926
138bc75d -0d04-0410-961f-
82ee72b054a4
hjl [Tue, 31 May 2016 15:00:25 +0000 (15:00 +0000)]
Scan %\[re\]di instead of %rdi
Since x32 may use 32-bit register in address, we should scan %\[re\]di
instead of %rdi.
* gcc.target/i386/avx512vl-vbroadcast-3.c: Scan %\[re\]di
instead of %rdi.
* gcc.target/i386/avx512vl-vcvtps2ph-3.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236925
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Tue, 31 May 2016 14:55:05 +0000 (14:55 +0000)]
* gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
* c-c++-common/Wswitch-unreachable-3.c: New test.
* g++.dg/warn/Wswitch-unreachable-1.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236924
138bc75d -0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 31 May 2016 12:35:42 +0000 (12:35 +0000)]
[AArch64] Use aarch64_fusion_enabled_p to check for insn fusion capabilities
* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
aarch64_fusion_enabled_p to check for fusion capabilities.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236921
138bc75d -0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 31 May 2016 12:18:15 +0000 (12:18 +0000)]
2016-05-31 Richard Biener <rguenther@suse.de>
PR tree-optimization/71352
* tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
minus one and a negate.
* gcc.dg/tree-ssa/reassoc-45.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236920
138bc75d -0d04-0410-961f-
82ee72b054a4
sayle [Tue, 31 May 2016 11:30:56 +0000 (11:30 +0000)]
2016-05-31 Roger Sayle <roger@nextmovesoftware.com>
gcc/java:
* builtins.c (java_builtins): Use popcount* and bswap* builtins to
implement bitCount() and reverseBytes() methods in java.lang.Integer
and friends.
(initialize_builtins): Annotate math builtins with ECF_LEAF. Call
define_builtin for the new popcount* and bswap* builtins.
libjava:
* testsuite/libjava.lang/BuiltinBitCount.java: New test case.
* testsuite/libjava.lang/BuiltinReverseBytes.java: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236919
138bc75d -0d04-0410-961f-
82ee72b054a4
amodra [Tue, 31 May 2016 11:08:54 +0000 (11:08 +0000)]
Don't needlessly clear xmemdup allocated memory.
* xmemdup.c (xmemdup): Use xmalloc rather than xcalloc.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236917
138bc75d -0d04-0410-961f-
82ee72b054a4
ktkachov [Tue, 31 May 2016 11:04:41 +0000 (11:04 +0000)]
[AArch64] Remove aarch64_simd_attr_length_move
* config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
Delete prototype.
* config/aarch64/iterators.md (insn_count): Add descriptive comment.
* config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
Remove use of aarch64_simd_attr_length_move, set length attribute
directly.
(*aarch64_be_movoi): Likewise.
(*aarch64_be_movci): Likewise.
(*aarch64_be_movxi): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236916
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Tue, 31 May 2016 10:42:59 +0000 (10:42 +0000)]
* loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
It no longer does that.
* toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236915
138bc75d -0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Tue, 31 May 2016 10:30:03 +0000 (10:30 +0000)]
[PATCH] AARCH64: Remove spurious attribute __unused__ from NEON intrinsic
gcc/
* config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
attribute __unused__.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236914
138bc75d -0d04-0410-961f-
82ee72b054a4
thopre01 [Tue, 31 May 2016 10:10:18 +0000 (10:10 +0000)]
2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm-protos.h (arm_arch_thumb1): Declare.
* config/arm/arm.c (arm_arch_thumb1): Define.
(arm_option_override): Initialize arm_arch_thumb1.
* config/arm/arm.h (arm_arch_thumb1): Declare.
(TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
support Thumb-1 ISA.
gcc/testsuite/
* gcc.target/arm/armv5_thumb_isa.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236913
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Tue, 31 May 2016 08:52:31 +0000 (08:52 +0000)]
Make analyze_brprob.py executable.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236911
138bc75d -0d04-0410-961f-
82ee72b054a4
kyukhin [Tue, 31 May 2016 08:05:24 +0000 (08:05 +0000)]
AVX-512. Limit constraint for scalar operand in split to AVX-512VL.
PR target/71346
gcc/
* config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
`Yv' for scalar operand.
testsuite/
* gcc.target/i386/pr71346.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236909
138bc75d -0d04-0410-961f-
82ee72b054a4
vries [Tue, 31 May 2016 07:07:26 +0000 (07:07 +0000)]
Handle 3-arg phi in copy_bb_and_scalar_dependences
2016-05-31 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/69068
* graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
phis with more than two args.
* gcc.dg/graphite/pr69068.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236907
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 31 May 2016 00:16:26 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236906
138bc75d -0d04-0410-961f-
82ee72b054a4
msebor [Mon, 30 May 2016 22:56:43 +0000 (22:56 +0000)]
PR c++/71306 - bogus -Wplacement-new with an array element
gcc/cp/ChangeLog:
2016-05-27 Martin Sebor <msebor@redhat.com>
PR c++/71306
* init.c (warn_placement_new_too_small): Handle placement new arguments
that are elements of arrays more carefully. Remove a pointless loop.
gcc/testsuite/ChangeLog:
2016-05-27 Martin Sebor <msebor@redhat.com>
PR c++/71306
* g++.dg/warn/Wplacement-new-size-3.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236902
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Mon, 30 May 2016 21:36:24 +0000 (21:36 +0000)]
PR c++/71349
* c-parser.c (c_parser_omp_for): Don't disallow nowait clause
when combined with target construct.
* parser.c (cp_parser_omp_for): Don't disallow nowait clause
when combined with target construct.
(cp_parser_omp_parallel): Pass cclauses == NULL as last argument
to cp_parser_omp_all_clauses.
* c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
C_OMP_CLAUSE_SPLIT_TARGET. Put OMP_CLAUSE_NOWAIT to
C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
instead of C_OMP_CLAUSE_SPLIT_FOR.
* c-c++-common/gomp/clauses-1.c (bar): Add dd argument. Add
nowait depend(inout: dd[0]) clauses where permitted.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236900
138bc75d -0d04-0410-961f-
82ee72b054a4
andreast [Mon, 30 May 2016 20:03:57 +0000 (20:03 +0000)]
2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
* config.gcc: Move hard float support for arm*hf*-*-freebsd* into
armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
target.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236898
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Mon, 30 May 2016 19:33:34 +0000 (19:33 +0000)]
2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
* config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
tune_64.
* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
support on SPARC.
* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
cpu_32, cpu_64, tune_32 and tune_64.
* config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236897
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Mon, 30 May 2016 19:18:13 +0000 (19:18 +0000)]
/cp
2016-05-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71238
* lex.c (unqualified_name_lookup_error): Take a location too.
(unqualified_fn_lookup_error): Take a cp_expr.
* cp-tree.h (unqualified_name_lookup_error,
unqualified_fn_lookup_error): Adjust declarations.
* semantics.c (perform_koenig_lookup): Adjust
unqualified_fn_lookup_error call, pass the location of
the identifier too as part of a cp_expr.
/testsuite
2016-05-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71238
* g++.dg/parse/pr71238.C: New.
* g++.dg/concepts/friend1.C: Test column numbers too.
* g++.dg/cpp0x/initlist31.C: Likewise.
* g++.dg/cpp0x/pr51420.C: Likewise.
* g++.dg/cpp0x/udlit-declare-neg.C: Likewise.
* g++.dg/cpp0x/udlit-member-neg.C: Likewise.
* g++.dg/ext/builtin3.C: Likewise.
* g++.dg/lookup/friend12.C: Likewise.
* g++.dg/lookup/friend7.C: Likewise.
* g++.dg/lookup/koenig1.C: Likewise.
* g++.dg/lookup/koenig5.C: Likewise.
* g++.dg/lookup/used-before-declaration.C: Likewise.
* g++.dg/overload/koenig1.C: Likewise.
* g++.dg/template/crash65.C: Likewise.
* g++.dg/template/friend57.C: Likewise.
* g++.dg/warn/Wshadow-5.C: Likewise.
* g++.dg/warn/Wunused-8.C: Likewise.
* g++.old-deja/g++.bugs/900211_01.C: Likewise.
* g++.old-deja/g++.jason/lineno5.C: Likewise.
* g++.old-deja/g++.jason/member.C: Likewise.
* g++.old-deja/g++.jason/report.C: Likewise.
* g++.old-deja/g++.jason/scoping12.C: Likewise.
* g++.old-deja/g++.law/visibility20.C: Likewise.
* g++.old-deja/g++.ns/koenig5.C: Likewise.
* g++.old-deja/g++.other/static5.C: Likewise.
* g++.old-deja/g++.pt/overload2.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236896
138bc75d -0d04-0410-961f-
82ee72b054a4
uros [Mon, 30 May 2016 19:06:38 +0000 (19:06 +0000)]
* config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236895
138bc75d -0d04-0410-961f-
82ee72b054a4
ak [Mon, 30 May 2016 18:13:12 +0000 (18:13 +0000)]
Don't cause ICEs when auto profile file is not found with checking
Currently, on a checking enabled compiler when -fauto-profile does
not find the profile feedback file it errors out with assertation
failures. Add proper errors for this case.
gcc/:
2016-05-30 Andi Kleen <ak@linux.intel.com>
* auto-profile.c (read_profile): Replace asserts with errors
when file does not exist.
* gcov-io.c (gcov_read_words): Dito.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236894
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 30 May 2016 17:59:24 +0000 (17:59 +0000)]
* tree-cfg.c (print_loop): Print likely upper bounds.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236893
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 30 May 2016 17:58:19 +0000 (17:58 +0000)]
* doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
* opts.c (default_options): Enable peel loops at -O3.
* tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
(try_peel_loop): Do not re-peel already peeled loops;
use likely upper bounds; fix profile updating.
(pass_complete_unroll::execute): Initialize peeled_loops.
* gcc.dg/tree-ssa/peel1.c: New testcase.
* gcc.dg/tree-ssa/pr61743-1.c: Disable loop peeling.
* gcc.dg/tree-ssa/pr61743-2.c: Disable loop peeling.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236892
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Mon, 30 May 2016 16:04:50 +0000 (16:04 +0000)]
Add profiling support for IVOPTS
* tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
computed costs by frequency of BB they belong to.
(get_scaled_computation_cost_at): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236888
138bc75d -0d04-0410-961f-
82ee72b054a4
vries [Mon, 30 May 2016 15:50:55 +0000 (15:50 +0000)]
Fix pr69067.c testcase
2016-05-30 Tom de Vries <tom@codesourcery.com>
* gcc.dg/graphite/pr69067.c (main): Remove superfluous argument in call
to ce.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236886
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Mon, 30 May 2016 15:10:51 +0000 (15:10 +0000)]
/cp
2016-05-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71099
* parser.c (cp_parser_function_specifier_opt): Use current_class_type
to improve the diagnostic about wrong uses of 'virtual'.
/testsuite
2016-05-30 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71099
* g++.dg/parse/virtual1.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236885
138bc75d -0d04-0410-961f-
82ee72b054a4
uros [Mon, 30 May 2016 14:50:44 +0000 (14:50 +0000)]
* gcc.target/i386/iamcu/args.h (clear_non_sret_int_hardware_registers):
Use correct register when clearing %edx.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236883
138bc75d -0d04-0410-961f-
82ee72b054a4
amonakov [Mon, 30 May 2016 14:37:02 +0000 (14:37 +0000)]
match.pd: optimize unsigned mul overflow check
gcc/
2016-05-28 Alexander Monakov <amonakov@ispras.ru>
Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/71289
* match.pd (-1 / B < A, A > -1 / B): New transformations.
gcc/testsuite/
2016-05-28 Alexander Monakov <amonakov@ispras.ru>
PR tree-optimization/71289
* gcc.dg/pr71289.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236882
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 30 May 2016 14:12:46 +0000 (14:12 +0000)]
* tree-vect-loop.c (vect_transform_loop): Update likely bounds.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236880
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 30 May 2016 13:25:02 +0000 (13:25 +0000)]
* tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
for peeled copies; avoid underflow when updating estimates; correctly
scale loop profile.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236878
138bc75d -0d04-0410-961f-
82ee72b054a4
kugan [Mon, 30 May 2016 11:01:06 +0000 (11:01 +0000)]
gcc/ChangeLog:
2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
* tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix typo from commit
r236875. Corrected oe3 to oe2 as obvious.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236877
138bc75d -0d04-0410-961f-
82ee72b054a4
kugan [Mon, 30 May 2016 10:47:57 +0000 (10:47 +0000)]
gcc/testsuite/ChangeLog:
2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71269
PR middle-end/71292
* gcc.dg/tree-ssa/pr71269.c: New test.
* gcc.dg/tree-ssa/pr71292.c: New test.
gcc/ChangeLog:
2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71269
PR middle-end/71252
* tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
that inserted stmt will not dominate stmts that defines its operand.
(rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
(rewrite_expr_tree_parallel): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236876
138bc75d -0d04-0410-961f-
82ee72b054a4
kugan [Mon, 30 May 2016 10:45:19 +0000 (10:45 +0000)]
gcc/ChangeLog:
2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71252
* tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
all fields including stmt_to_insert are swapped.
gcc/testsuite/ChangeLog:
2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71252
* gcc.dg/tree-ssa/pr71252-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236875
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 30 May 2016 10:40:33 +0000 (10:40 +0000)]
* predict.h (force_edge_cold): Declare.
* predict.c (force_edge_cold): New function.
* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
updating.
(canonicalize_loop_induction_variables): Fix formating.
* gcc.dg/tree-ssa/cunroll-12.c: New testcase.
* gcc.dg/tree-ssa/cunroll-13.c: New testcase.
* gcc.dg/tree-ssa/cunroll-14.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236874
138bc75d -0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 30 May 2016 08:48:17 +0000 (08:48 +0000)]
* config/visium/visium.c (visium_split_double_add): Minor tweaks.
(visium_expand_copysign): Use gen_int_mode directly.
(visium_compute_frame_size): Minor tweaks.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236871
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Mon, 30 May 2016 08:19:24 +0000 (08:19 +0000)]
* tree-vect-loop.c (vect_analyze_loop_2): Use
likely_max_stmt_executions_int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236870
138bc75d -0d04-0410-961f-
82ee72b054a4
vries [Mon, 30 May 2016 07:49:42 +0000 (07:49 +0000)]
Remove assert in get_def_bb_for_const
2016-05-30 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/69067
* graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
* gcc.dg/graphite/pr69067.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236868
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 30 May 2016 00:16:26 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236867
138bc75d -0d04-0410-961f-
82ee72b054a4
uros [Sun, 29 May 2016 20:50:32 +0000 (20:50 +0000)]
PR target/71245
* config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
New peepholes to remove unneeded fild/fistp pairs.
(define_peephole2 atomic_loaddi_fpu): Ditto.
testsuite/ChangeLog:
PR target/71245
* gcc.target/i386/pr71245-1.c: New test.
* gcc.target/i386/pr71245-2.c: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236863
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 29 May 2016 17:29:42 +0000 (17:29 +0000)]
* predict.c (maybe_hot_frequency_p): Avoid division.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236862
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Sun, 29 May 2016 08:29:46 +0000 (08:29 +0000)]
/cp
2016-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71105
* lambda.c (maybe_add_lambda_conv_op): Early return also when
LAMBDA_EXPR_DEFAULT_CAPTURE_MODE != CPLD_NONE.
/testsuite
2016-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71105
* g++.dg/cpp0x/lambda/lambda-conv11.C: New.
* g++.dg/cpp1y/lambda-conv1.C: Likewise.
* g++.dg/cpp1y/lambda-conv2.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236861
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Sun, 29 May 2016 08:05:30 +0000 (08:05 +0000)]
/cp
2016-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71105
* lambda.c (maybe_add_lambda_conv_op): Early return also when
LAMBDA_EXPR_DEFAULT_CAPTURE_MODE != CPLD_NONE.
/testsuite
2016-05-29 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/71105
* g++.dg/cpp0x/lambda/lambda-conv11.C: New.
* g++.dg/cpp1y/lambda-conv1.C: Likewise.
* g++.dg/cpp1y/lambda-conv2.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236859
138bc75d -0d04-0410-961f-
82ee72b054a4
gerald [Sun, 29 May 2016 08:03:35 +0000 (08:03 +0000)]
* doc/xml/manual/backwards_compatibility.xml: Adjust
lists.debian.org link to https.
* doc/html/manual/backwards.html: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236858
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 29 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236857
138bc75d -0d04-0410-961f-
82ee72b054a4
gerald [Sat, 28 May 2016 19:44:13 +0000 (19:44 +0000)]
* doc/install.texi: Use https for shop.fsf.org.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236853
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 28 May 2016 16:36:29 +0000 (16:36 +0000)]
* tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
likely_max_stmt_executions_int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236852
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 28 May 2016 16:23:33 +0000 (16:23 +0000)]
* gcc.dg/tree-ssa/prefetch-5.c: Remove xfail.
* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
likely_max_stmt_executions_int.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236851
138bc75d -0d04-0410-961f-
82ee72b054a4
ville [Sat, 28 May 2016 16:21:05 +0000 (16:21 +0000)]
Update changelogs for revert of c++/69855.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236850
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 28 May 2016 16:20:06 +0000 (16:20 +0000)]
* profile.c (compute_branch_probabilities): Do not report hitrates
here.
(branch_prob): Report hitrates here.
* predict.c (gimple_predict_edge): Do not assert profile status;
fix formatting issues.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236849
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 28 May 2016 14:52:46 +0000 (14:52 +0000)]
* predict.c (edge_predicted_by_p): New function.
(predict_paths_for_bb): Do not put multiple predictions of the same type
on one edge.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236848
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 28 May 2016 13:22:49 +0000 (13:22 +0000)]
* tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236847
138bc75d -0d04-0410-961f-
82ee72b054a4
amodra [Sat, 28 May 2016 13:08:47 +0000 (13:08 +0000)]
Add dependencies to configure rule
* Makefile.tpl (configure): Depend on m4 files included.
* Makefile.in: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236846
138bc75d -0d04-0410-961f-
82ee72b054a4
amodra [Sat, 28 May 2016 09:16:00 +0000 (09:16 +0000)]
Fix segfault on verify_dominators error path
* dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236845
138bc75d -0d04-0410-961f-
82ee72b054a4
ville [Sat, 28 May 2016 08:22:15 +0000 (08:22 +0000)]
Revert the attempted fix for c++/69855, it breaks bootstrap.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236844
138bc75d -0d04-0410-961f-
82ee72b054a4
amodra [Sat, 28 May 2016 00:22:56 +0000 (00:22 +0000)]
ira.c bb_loop_depth again
Follow the same practice as other places in ira.c, where
free_dominance_info is called along with loop_optimizer_finalize. Not
doing so causes an ICE on gcc-5-branch, so avoid that possibility on
trunk.
PR rtl-optimization/71275
* ira.c (ira): Free dominance info.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236843
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 28 May 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236842
138bc75d -0d04-0410-961f-
82ee72b054a4
redi [Fri, 27 May 2016 21:23:42 +0000 (21:23 +0000)]
Adjust URL in libstdc++ manual to use https
* doc/xml/manual/abi.xml: Adjust URL to use https.
* doc/html/manual/*: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236837
138bc75d -0d04-0410-961f-
82ee72b054a4
gerald [Fri, 27 May 2016 20:25:05 +0000 (20:25 +0000)]
* doc/sourcebuild.texi: New address for upstream Go repository.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236836
138bc75d -0d04-0410-961f-
82ee72b054a4
paolo [Fri, 27 May 2016 19:19:23 +0000 (19:19 +0000)]
/cp
2016-05-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60385
* name-lookup.c (push_namespace): Return bool, false when pushdecl
fails.
* name-lookup.h (push_namespace): Adjust declaration.
* parser.c (cp_parser_namespace_definition): Check push_namespace
return value.
/testsuite
2016-05-27 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/60385
* g++.dg/parse/namespace13.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236835
138bc75d -0d04-0410-961f-
82ee72b054a4
thopre01 [Fri, 27 May 2016 16:36:42 +0000 (16:36 +0000)]
2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
gcc/
* config/arm/arm.h (TARGET_ARM_V6M): Remove.
(TARGET_ARM_V7M): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236832
138bc75d -0d04-0410-961f-
82ee72b054a4
law [Fri, 27 May 2016 16:32:38 +0000 (16:32 +0000)]
* tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
(thread_across_edge): Remove calls to find_jump_threads_backwards.
* passes.def: Add jump threading passes before DOM/VRP.
* tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
argument to a basic block from an edge. Remove tests which are
handled elsewhere.
(pass_data_thread_jumps, class pass_thread_jumps): New.
(pass_thread_jumps::gate, pass_thread_jumps::execute): New.
(make_pass_thread_jumps): Likewise.
* tree-pass.h (make_pass_thread_jumps): Declare.
* gcc.dg/tree-ssa/pr21417.c: Update expected output.
* gcc.dg/tree-ssa/pr66752-3.c: Likewise.
* gcc.dg/tree-ssa/pr68198.c: Likewise.
* gcc.dg/tree-ssa/pr69196-1.c: Likewise.
* gcc.dg/tree-ssa/pr69270-3.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-2b.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-2g.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-2h.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-6.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-7.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-12.c: Likewise.
* gcc.dg/tree-ssa/ssa-dom-thread-13.c: Likewise.
* gcc.dg/tree-ssa/vrp56.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236831
138bc75d -0d04-0410-961f-
82ee72b054a4
ebotcazou [Fri, 27 May 2016 15:08:50 +0000 (15:08 +0000)]
* config/visium/visium-protos.h (split_double_move): Rename into...
(visium_split_double_move): ...this.
(visium_split_double_add): Declare.
* config/visium/visium.c (split_double_move): Rename into...
(visium_split_double_move): ...this.
(visium_split_double_add): New function.
(visium_expand_copysign): Renumber operands for consistency.
* config/visium/visium.md (DImode move splitter): Adjust to renaming.
(DFmode move splitter): Likewise.
(*addi3_insn): Split by means of visium_split_double_add.
(*adddi3_insn_flags): Delete.
(*plus_plus_sltu<subst_arith>): New insn.
(*subdi3_insn): Split by means of visium_split_double_add.
(subdi3_insn_flags): Delete.
(*minus_minus_sltu<subst_arith>): New insn.
(*negdi2_insn): Split by means of visium_split_double_add.
(*negdi2_insn_flags): Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236827
138bc75d -0d04-0410-961f-
82ee72b054a4
ville [Fri, 27 May 2016 14:59:01 +0000 (14:59 +0000)]
/cp
PR c++/69855
* name-lookup.c (pushdecl_maybe_friend_1): Push local function
decls into the global scope after stripping template bits
and setting DECL_ANTICIPATED.
/testsuite
PR c++/69855
* g++.dg/overload/69855.C: New.
* g++.old-deja/g++.law/missed-error2.C: Adjust.
* g++.old-deja/g++.pt/crash3.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236826
138bc75d -0d04-0410-961f-
82ee72b054a4
uweigand [Fri, 27 May 2016 14:50:06 +0000 (14:50 +0000)]
* configure.ac: Treat a --with-headers option without argument
the same as the default (i.e. consult sys-include directory).
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236825
138bc75d -0d04-0410-961f-
82ee72b054a4
ville [Fri, 27 May 2016 14:34:08 +0000 (14:34 +0000)]
Fix build.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236823
138bc75d -0d04-0410-961f-
82ee72b054a4
ville [Fri, 27 May 2016 14:08:37 +0000 (14:08 +0000)]
2016-05-24 Ville Voutilainen <ville.voutilainen@gmail.com>
PR libstdc++/66338
* include/std/tuple (_TMC): Add a check for _NotSameTuple.
* include/std/tuple (tuple(_UElements&&...)): Remove the separate
check for _NotSameTuple.
* include/std/tuple (_TMCT): New.
* include/std/tuple (tuple(const tuple<_UElements...>&)): Use it.
* include/std/tuple (tuple(tuple<_UElements...>&&)): Likewise.
* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
const tuple<_UElements...>&)): Likewise.
* include/std/tuple (tuple(allocator_arg_t, const _Alloc&,
tuple<_UElements...>&&)): Likewise.
* testsuite/20_util/tuple/cons/66338.cc: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236822
138bc75d -0d04-0410-961f-
82ee72b054a4
ktkachov [Fri, 27 May 2016 13:44:57 +0000 (13:44 +0000)]
[AArch64] Tie operand 1 to operand 0 in AESMC pattern when AES/AESMC fusion is enabled
* config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
* config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
prototype.
* config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236820
138bc75d -0d04-0410-961f-
82ee72b054a4
jiwang [Fri, 27 May 2016 13:05:34 +0000 (13:05 +0000)]
[AArch64] PR target/63596, honor tree-stdarg analysis result to improve VAARG codegen
gcc/
PR target/63596
* config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
tree-stdarg analysis results.
(aarch64_setup_incoming_varargs): Likewise.
gcc/testsuite/
* gcc.target/aarch64/va_arg_1.c: New testcase.
* gcc.target/aarch64/va_arg_2.c: Likewise.
* gcc.target/aarch64/va_arg_3.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236819
138bc75d -0d04-0410-961f-
82ee72b054a4
jiwang [Fri, 27 May 2016 12:57:06 +0000 (12:57 +0000)]
[AArch64] Enable tree-stdarg pass for AArch64 by defining counter fields
gcc/
* config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
va_list_gpr_counter_field and va_list_fpr_counter_field.
gcc/testsuite/
* gcc.dg/tree-ssa/stdarg-2.c: Enable all testcases for AArch64.
* gcc.dg/tree-ssa/stdarg-3.c: Likewise.
* gcc.dg/tree-ssa/stdarg-4.c: Likewise.
* gcc.dg/tree-ssa/stdarg-5.c: Likewise.
* gcc.dg/tree-ssa/stdarg-6.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236818
138bc75d -0d04-0410-961f-
82ee72b054a4
wilco [Fri, 27 May 2016 12:15:47 +0000 (12:15 +0000)]
Remove aarch64_cannot_change_mode_class as the underlying issue
(PR67609) has been resolved. This avoids a few unnecessary lane
widening operations like:
faddp d18, v18.2d
mov d18, v18.d[0]
gcc/
PR67609
* config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
* config/aarch64/aarch64.c
(aarch64_cannot_change_mode_class): Remove function.
* config/aarch64/aarch64-protos.h
(aarch64_cannot_change_mode_class): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236817
138bc75d -0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 27 May 2016 12:10:34 +0000 (12:10 +0000)]
* cfgloop.c (record_niter_bound): Record likely upper bounds.
(likely_max_stmt_executions_int, get_likely_max_loop_iterations,
get_likely_max_loop_iterations_int): New.
* cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
any_likely_upper_bound.
(get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
Declare.
* cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
* loop-unroll.c (unroll_loop_constant_iterations): Update likely
upper bound.
(unroll_loop_constant_iterations): Likewise.
(unroll_loop_runtime_iterations): Likewise.
* lto-streamer-in.c (input_cfg): Stream likely upper bounds.
* lto-streamer-out.c (output_cfg): Likewise.
* tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
bounds.
(canonicalize_loop_induction_variables): Dump likely upper bounds.
* tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
(likely_max_loop_iterations): New.
(likely_max_loop_iterations_int): New.
(likely_max_stmt_executions): New.
* tree-ssa-loop-niter.h (likely_max_loop_iterations,
likely_max_loop_iterations_int, likely_max_stmt_executions_int,
likely_max_stmt_executions): Declare.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236816
138bc75d -0d04-0410-961f-
82ee72b054a4
mpolacek [Fri, 27 May 2016 12:08:03 +0000 (12:08 +0000)]
PR middle-end/71308
* gimple-fold.c (gimple_fold_call): Check that LHS is not null.
* g++.dg/torture/pr71308.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236815
138bc75d -0d04-0410-961f-
82ee72b054a4
krebbel [Fri, 27 May 2016 12:05:59 +0000 (12:05 +0000)]
S/390: Replace rtx_equal_p with reg_overlap_mentioned_p in splitter check.
gcc/ChangeLog:
2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
* config/s390/s390.md (2x risbg splitters): Use
reg_overlap_mentioned_p instead of rtx_equal_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236814
138bc75d -0d04-0410-961f-
82ee72b054a4
krebbel [Fri, 27 May 2016 11:38:59 +0000 (11:38 +0000)]
combine: Take known zero bits into account when checking extraction.
gcc/ChangeLog:
* combine.c (make_compound_operation): Take known zero bits into
account when checking for possible zero_extend.
gcc/testsuite/ChangeLog:
* gcc.dg/zero_bits_compound-1.c: New test.
* gcc.dg/zero_bits_compound-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236813
138bc75d -0d04-0410-961f-
82ee72b054a4
ktkachov [Fri, 27 May 2016 11:21:46 +0000 (11:21 +0000)]
[AArch64] Simplify ashl<mode>3 expander for SHORT modes
* config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
Use const_int_operand for operand 2 predicate. Simplify expand code
as a result.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236812
138bc75d -0d04-0410-961f-
82ee72b054a4
ienkovich [Fri, 27 May 2016 10:39:40 +0000 (10:39 +0000)]
gcc/
PR middle-end/71279
* fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
into comparison.
gcc/testsuite/
PR middle-end/71279
* gcc.dg/pr71279.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236810
138bc75d -0d04-0410-961f-
82ee72b054a4
ktkachov [Fri, 27 May 2016 08:42:01 +0000 (08:42 +0000)]
[AArch64] Delete obsolete CC_ZESWP and CC_SESWP CC modes
* config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
that returns CC_SESWPmode and CC_ZESWPmode.
(aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
and CC_SESWPmode.
(aarch64_rtx_costs): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236809
138bc75d -0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 27 May 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236804
138bc75d -0d04-0410-961f-
82ee72b054a4
meissner [Thu, 26 May 2016 21:38:19 +0000 (21:38 +0000)]
[gcc]
2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
for ISA 3.0 min/max support.
(rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
conditional move support.
(rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
available.
* config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
conditional moves where the comparison type is different from move
type.
(fp_minmax): New code iterator for smin/smax.
(minmax): New code attributes for min/max.
(SMINMAX): Likewise.
(smax<mode>3): Combine min, max insns into one insn using the
fp_minmax code iterator. Add support for ISA 3.0 min/max
instructions that don't need -ffast-math.
(s<minmax><mode>3): Likewise.
(smax<mode>3_vsx): Likewise.
(smin<mode>3): Likewise.
(s<minmax><mode>3_vsx): Likewise.
(smin<mode>3_vsx): Likewise.
(pre-VSX min/max splitters): Likewise.
(s<minmax><mode>3_fpr): Likewise.
(movsfcc): Rewrite floating point conditional moves to combine
SFmode/DFmode into a single insn.
(mov<mode>cc): Likewise.
(movdfcc): Likewise.
(fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
SFDF2 iterators to handle all combinations.
(fseldfsf4): Likewise.
(fsel<SFDF:mode><SFDF2:mode>4): Likewise.
(fseldfdf4): Likewise.
(fselsfdf4): Likewise.
(mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
comparison instructions that set a 0/-1 mask, and use it for
floating point conditional move via XXSEL.
(fpmask<mode>): Likewise.
(xxsel<mode>): Likewise.
* config/rs6000/predicates.md (min_max_operator): Delete, no
longer used.
(fpmask_comparison_operaton): New insn for ISA 3.0 comparison
instructions that generate a 0/-1 mask for use with XXSEL.
* config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
say whether floating point min/max is available, either through
FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
(TARGET_MINMAX_DF): Likewise.
[gcc/testsuite]
2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
* gcc.target/powerpc/p9-minmax-1.c: New tests for ISA 3.0
floating point min/max/comparison instructions.
* gcc.target/powerpc/p9-minmax-2.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236795
138bc75d -0d04-0410-961f-
82ee72b054a4
jakub [Thu, 26 May 2016 19:12:27 +0000 (19:12 +0000)]
* c-parser.c (c_parser_omp_clause_schedule): Warn if
OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
* semantics.c (finish_omp_clauses) <case OMP_CLAUSE_SCHEDULE>: Warn
if OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.
* openmp.c (resolve_omp_clauses): Warn if chunk_size is known not to
be positive.
* c-c++-common/gomp/schedule-1.c: New test.
* gfortran.dg/gomp/schedule-1.f90: New test.
* testsuite/libgomp.c/doacross-1.c (main): Use schedule(static)
instead of invalid schedule(static, 0).
* testsuite/libgomp.c/doacross-2.c (main): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236793
138bc75d -0d04-0410-961f-
82ee72b054a4
ppalka [Thu, 26 May 2016 18:17:43 +0000 (18:17 +0000)]
Fix PR c++/70822 (bogus error with parenthesized SCOPE_REF)
gcc/cp/ChangeLog:
PR c++/70822
PR c++/70106
* cp-tree.h (REF_PARENTHESIZED_P): Make this flag apply to
SCOPE_REFs too.
* pt.c (tsubst_qualified_id): If REF_PARENTHESIZED_P is set
on the qualified_id then propagate it to the resulting
expression.
(do_auto_deduction): Check REF_PARENTHESIZED_P on SCOPE_REFs
too.
* semantics.c (force_paren_expr): If given a SCOPE_REF, just set
its REF_PARENTHESIZED_P flag.
gcc/testsuite/ChangeLog:
PR c++/70822
PR c++/70106
* g++.dg/cpp1y/auto-fn32.C: New test.
* g++.dg/cpp1y/paren4.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236792
138bc75d -0d04-0410-961f-
82ee72b054a4
amodra [Thu, 26 May 2016 17:38:36 +0000 (17:38 +0000)]
ira.c bb_loop_depth
PR rtl-optimization/71275
* ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
for update_equiv_regs and combine_and_move_insns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236789
138bc75d -0d04-0410-961f-
82ee72b054a4
uros [Thu, 26 May 2016 17:32:55 +0000 (17:32 +0000)]
* config/i386/i386.md (*movqi_internal) <attr "isa">: Use
if_then_else or cond RTXes to calculate attribute value.
* config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
<attr "length_immediate>: Ditto.
(*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
* config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
(*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
<attr "type">: Ditto.
<attr "prefix_data16">: Ditto.
<attr "prefix_extra">: Ditto.
<attr "length_immediate">: Ditto.
<attr "prefix">: Ditto.
(vec_set<mode>_0) <attr "isa">: Ditto.
<attr "prefix_extra">: Ditto.
<attr "length_immediate">: Ditto.
<attr "prefix">: Ditto.
(*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
(*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
(sse2_storelpd) <attr "prefix_data16">: Ditto.
(sse2_loadhpd) <attr "prefix_data16">: Ditto.
(sse2_loadlpd) <attr "prefix_data16">: Ditto.
<attr "length_immediate">: Ditto.
<attr "prefix">: Ditto.
(sse2_movsd) <attr "length_immediate">: Ditto.
<attr "prefix">: Ditto.
(vec_concatv2df) <attr "isa">: Ditto.
<attr "prefix">: Ditto.
(*vec_extractv4si) <attr "prefix_extra">: Ditto.
(*vec_extractv2di_1) <attr "isa">: Ditto.
<attr "type">: Ditto.
<attr "length_immediate">: Ditto.
<attr "prefix_rex">: Ditto.
<attr "prefix_extra">: Ditto.
(*vec_concatv2si_sse4_1) <attr "type">: Ditto.
<attr "prefix_extra">: Ditto.
<attr "length_immediate">: Ditto.
(vec_concatv2di) <attr "isa">: Ditto.
<attr "prefix_extra">: Ditto.
<attr "length_immediate">: Ditto.
<attr "prefix">: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236787
138bc75d -0d04-0410-961f-
82ee72b054a4
marxin [Thu, 26 May 2016 17:12:32 +0000 (17:12 +0000)]
IVOPTS: make comp_cost in a more c++ fashion.
* tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
function.
(operator+): Likewise.
(operator-): Likewise.
(comp_cost::operator+=): Likewise.
(comp_cost::operator-=): Likewise.
(comp_cost::operator/=): Likewise.
(comp_cost::operator*=): Likewise.
(operator<): Likewise.
(operator==): Likewise.
(operator<=): Likewise.
(new_cost): Remove.
(infinite_cost_p): Likewise.
(add_costs): Likewise.
(sub_costs): Likewise.
(compare_costs): Likewise.
(set_group_iv_cost): Use the newly introduced functions.
(get_address_cost): Likewise.
(get_shiftadd_cost): Likewise.
(force_expr_to_var_cost): Likewise.
(split_address_cost): Likewise.
(ptr_difference_cost): Likewise.
(difference_cost): Likewise.
(get_computation_cost_at): Likewise.
(determine_group_iv_cost_generic): Likewise.
(determine_group_iv_cost_address): Likewise.
(determine_group_iv_cost_cond): Likewise.
(autoinc_possible_for_pair): Likewise.
(determine_group_iv_costs): Likewise.
(cheaper_cost_pair): Likewise.
(iv_ca_recount_cost): Likewise.
(iv_ca_set_no_cp): Likewise.
(iv_ca_set_cp): Likewise.
(iv_ca_cost): Likewise.
(iv_ca_new): Likewise.
(iv_ca_dump): Likewise.
(iv_ca_narrow): Likewise.
(iv_ca_prune): Likewise.
(iv_ca_replace): Likewise.
(try_add_cand_for): Likewise.
(try_improve_iv_set): Likewise.
(find_optimal_iv_set): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236785
138bc75d -0d04-0410-961f-
82ee72b054a4
rsandifo [Thu, 26 May 2016 15:49:22 +0000 (15:49 +0000)]
Fix ivopts estimates for internal functions
tree-ssa-loop-ivopts.c:loop_body_includes_call was treating internal
calls such as IFN_SQRT as clobbering all caller-saved registers, which
I don't think is appropriate for any current internal function.
Tested on aarch64-linux-gnu and x86_64-linux-gnu.
gcc/
* tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
that internal functions will clobber all caller-saved registers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236780
138bc75d -0d04-0410-961f-
82ee72b054a4
nathan [Thu, 26 May 2016 14:32:36 +0000 (14:32 +0000)]
* gcc.dg/
20060410 .c: Xfail on ptx.
* gcc.dg/torture/c99-contract-1.c: Skip on ptx.
* c-c++-common/torture/complex-sign-mixed-add.c: Skip on ptx -O0
* c-c++-common/torture/complex-sign-mixed-sub.c: Skip on ptx -O0
* gcc.c-torture/execute/pr68185.c: Skip on ptx -O0 & Os.
* gcc.c-torture/execute/
20020529 -1.c: Skip on ptx -00.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236774
138bc75d -0d04-0410-961f-
82ee72b054a4
nathan [Thu, 26 May 2016 14:22:40 +0000 (14:22 +0000)]
* config/nvptx/free.asm: Delete.
* config/nvptx/malloc.asm: Delete.
* config/nvptx/realloc.c: Delete.
* t-nvptx: Update.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236773
138bc75d -0d04-0410-961f-
82ee72b054a4
cltang [Thu, 26 May 2016 13:28:25 +0000 (13:28 +0000)]
2016-05-26 Chung-Lin Tang <cltang@codesourcery.com>
libgomp/
* oacc-plugin.h (GOMP_PLUGIN_async_unmap_vars): Add int parameter.
* oacc-plugin.c (GOMP_PLUGIN_async_unmap_vars): Add 'int async'
parameter, use to set async stream around call to gomp_unmap_vars,
call gomp_unmap_vars() with 'do_copyfrom' set to true.
* plugin/plugin-nvptx.c (struct ptx_event): Add 'int val' field.
(event_gc): Adjust event handling loop, collect PTX_EVT_ASYNC_CLEANUP
events and call GOMP_PLUGIN_async_unmap_vars() for each of them.
(event_add): Add int parameter, initialize 'val' field when
adding new ptx_event struct.
(nvptx_evec): Adjust event_add() call arguments.
(nvptx_host2dev): Likewise.
(nvptx_dev2host): Likewise.
(nvptx_wait_async): Likewise.
(nvptx_wait_all_async): Likewise.
(GOMP_OFFLOAD_openacc_register_async_cleanup): Add async parameter,
pass to event_add() call.
* oacc-host.c (host_openacc_register_async_cleanup): Add 'int async'
parameter.
* oacc-mem.c (gomp_acc_remove_pointer): Adjust async case to
call openacc.register_async_cleanup_func() hook.
* oacc-parallel.c (GOACC_parallel_keyed): Likewise.
* target.c (gomp_copy_from_async): Delete function.
(gomp_map_vars): Remove async_refcount.
(gomp_unmap_vars): Likewise.
(gomp_load_image_to_device): Likewise.
(omp_target_associate_ptr): Likewise.
* libgomp.h (struct splay_tree_key_s): Remove async_refcount.
(acc_dispatch_t.register_async_cleanup_func): Add int parameter.
(gomp_copy_from_async): Remove.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236772
138bc75d -0d04-0410-961f-
82ee72b054a4
wilco [Thu, 26 May 2016 12:25:51 +0000 (12:25 +0000)]
GCC expands switch statements in a very simplistic way and tries to use a table
expansion even when it is a bad idea for performance or codesize.
GCC typically emits extremely sparse tables that contain mostly default entries
(something which currently cannot be tuned by backends). Additionally the
computation of the minimum/maximum label offsets is too simplistic so the
tables are often twice as large as necessary.
The cost of a table switch is significant due to the setup overhead, the table
lookup (which due to being sparse and large adds unnecessary cachemisses)
and hard to predict indirect jump. Therefore it is best to avoid using a table
unless there are many real case labels.
This patch fixes that by setting the default aarch64_case_values_threshold to
16 when the per-CPU tuning is not set. On SPEC2006 this improves the switch
heavy benchmarks GCC and perlbench both in performance (1-2%) as well as size
(0.5-1% smaller).
gcc/
* config/aarch64/aarch64.c (aarch64_case_values_threshold):
Return a better case_values_threshold when optimizing.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236771
138bc75d -0d04-0410-961f-
82ee72b054a4