gcc.git
8 years agoDaily bump.
GCC Administrator [Wed, 1 Jun 2016 00:16:20 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236972

8 years agopredict-lop-exit-1.C: Update template for new predictor name.
Jan Hubicka [Tue, 31 May 2016 23:33:08 +0000 (01:33 +0200)]
predict-lop-exit-1.C: Update template for new predictor name.

* g++.d/predict-lop-exit-1.C: Update template for new predictor name.
* g++.d/predict-lop-exit-2.C: Update template for new predictor name.
* g++.d/predict-lop-exit-2.C: Update template for new predictor name.

* predict.def (PRED_LOOP_EXTRA_EXIT): Define.
* predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
(predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
PRED_LOOP_EXIT.

From-SVN: r236968

8 years agoinvoke.texi (-frename-registers): Drop -fpeel-loops from list of flags impliying...
Jan Hubicka [Tue, 31 May 2016 23:23:40 +0000 (01:23 +0200)]
invoke.texi (-frename-registers): Drop -fpeel-loops from list of flags impliying the register renaming.

* 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.

From-SVN: r236966

8 years ago* pt.c (instantiate_decl): Avoid recalculation.
Jason Merrill [Tue, 31 May 2016 19:49:22 +0000 (15:49 -0400)]
* pt.c (instantiate_decl): Avoid recalculation.

From-SVN: r236947

8 years agoPR c++/60095 - partial specialization of variable templates
Jason Merrill [Tue, 31 May 2016 19:49:16 +0000 (15:49 -0400)]
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.

From-SVN: r236946

8 years agoPR c++/71227 - specializing hidden friend
Jason Merrill [Tue, 31 May 2016 19:16:26 +0000 (15:16 -0400)]
PR c++/71227 - specializing hidden friend

* pt.c (check_explicit_specialization): Give better diagnostic about
specializing a hidden friend.

From-SVN: r236941

8 years agore PR ada/71317 (Compiling gnat for rtems fails at s-taprop.adb)
Eric Botcazou [Tue, 31 May 2016 18:59:36 +0000 (18:59 +0000)]
re PR ada/71317 (Compiling gnat for rtems fails at s-taprop.adb)

* 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.

From-SVN: r236938

8 years agore PR c++/71248 (crash on in-class initializer of array of pointer to member)
Paolo Carlini [Tue, 31 May 2016 17:17:29 +0000 (17:17 +0000)]
re PR c++/71248 (crash on in-class initializer of array of pointer to member)

/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.

From-SVN: r236931

8 years agosh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the default implementation.
Oleg Endo [Tue, 31 May 2016 15:57:15 +0000 (15:57 +0000)]
sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the default implementation.

gcc/
* config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
default implementation.

From-SVN: r236930

8 years ago* dwarf2out.c (cur_line_info_table): Add GTY marker.
Nathan Sidwell [Tue, 31 May 2016 15:54:43 +0000 (15:54 +0000)]
* dwarf2out.c (cur_line_info_table): Add GTY marker.

From-SVN: r236929

8 years agoRemove SH5 target regs.
Oleg Endo [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.

From-SVN: r236928

8 years agoSimplify SH DImode add, sub, neg patterns.
Oleg Endo [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.

From-SVN: r236927

8 years agoFix wrong-code issues of RX atomic operations.
Oleg Endo [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.

From-SVN: r236926

8 years agoScan %\[re\]di instead of %rdi
H.J. Lu [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.

From-SVN: r236925

8 years agogimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
Marek Polacek [Tue, 31 May 2016 14:55:05 +0000 (14:55 +0000)]
gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.

* 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.

From-SVN: r236924

8 years ago[AArch64] Use aarch64_fusion_enabled_p to check for insn fusion capabilities
Kyrylo Tkachov [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.

From-SVN: r236921

8 years agore PR tree-optimization/71352 (ICE at -O1 and above on x86_64-linux-gnu: in zero_one_...
Richard Biener [Tue, 31 May 2016 12:18:15 +0000 (12:18 +0000)]
re PR tree-optimization/71352 (ICE at -O1 and above on x86_64-linux-gnu: in zero_one_operation, at tree-ssa-reassoc.c:1251)

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.

From-SVN: r236920

8 years agobuiltins.c (java_builtins): Use popcount* and bswap* builtins to implement bitCount...
Roger Sayle [Tue, 31 May 2016 11:30:56 +0000 (11:30 +0000)]
builtins.c (java_builtins): Use popcount* and bswap* builtins to implement bitCount() and reverseBytes()...

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.

From-SVN: r236919

8 years agoDon't needlessly clear xmemdup allocated memory.
Alan Modra [Tue, 31 May 2016 11:08:54 +0000 (20:38 +0930)]
Don't needlessly clear xmemdup allocated memory.

* xmemdup.c (xmemdup): Use xmalloc rather than xcalloc.

From-SVN: r236917

8 years ago[AArch64] Remove aarch64_simd_attr_length_move
Kyrylo Tkachov [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.

From-SVN: r236916

8 years agoloop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
Jan Hubicka [Tue, 31 May 2016 10:42:59 +0000 (12:42 +0200)]
loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.

* 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.

From-SVN: r236915

8 years ago[PATCH] AARCH64: Remove spurious attribute __unused__ from NEON intrinsic
Wladimir J. van der Laan [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__.

From-SVN: r236914

8 years agoarm-protos.h (arm_arch_thumb1): Declare.
Thomas Preud'homme [Tue, 31 May 2016 10:10:18 +0000 (10:10 +0000)]
arm-protos.h (arm_arch_thumb1): Declare.

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.

From-SVN: r236913

8 years agoMake analyze_brprob.py executable.
Martin Liska [Tue, 31 May 2016 08:52:31 +0000 (08:52 +0000)]
Make analyze_brprob.py executable.

From-SVN: r236911

8 years agoAVX-512. Limit constraint for scalar operand in split to AVX-512VL.
Kirill Yukhin [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.

From-SVN: r236909

8 years agoHandle 3-arg phi in copy_bb_and_scalar_dependences
Tom de 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.

From-SVN: r236907

8 years agoDaily bump.
GCC Administrator [Tue, 31 May 2016 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236906

8 years agoPR c++/71306 - bogus -Wplacement-new with an array element
Martin Sebor [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.

From-SVN: r236902

8 years agore PR c++/71349 (Combined async target clause parsing issues)
Jakub Jelinek [Mon, 30 May 2016 21:36:24 +0000 (23:36 +0200)]
re PR c++/71349 (Combined async target clause parsing issues)

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.

From-SVN: r236900

8 years agoconfig.gcc: Move hard float support for arm*hf*-*-freebsd* into armv6*-*-freebsd...
Andreas Tobler [Mon, 30 May 2016 20:03:57 +0000 (22:03 +0200)]
config.gcc: Move hard float support for arm*hf*-*-freebsd* into armv6*-*-freebsd* for...

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.

From-SVN: r236898

8 years agoconfig.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and tune_64.
Jose E. Marchesi [Mon, 30 May 2016 19:33:34 +0000 (21:33 +0200)]
config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and tune_64.

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.

From-SVN: r236897

8 years agore PR c++/71238 (Undeclared function message imprecisely points to error column)
Paolo Carlini [Mon, 30 May 2016 19:18:13 +0000 (19:18 +0000)]
re PR c++/71238 (Undeclared function message imprecisely points to error column)

/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.

From-SVN: r236896

8 years agosync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
Uros Bizjak [Mon, 30 May 2016 19:06:38 +0000 (21:06 +0200)]
sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".

* config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".

From-SVN: r236895

8 years agoDon't cause ICEs when auto profile file is not found with checking
Andi Kleen [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.

From-SVN: r236894

8 years agotree-cfg.c (print_loop): Print likely upper bounds.
Jan Hubicka [Mon, 30 May 2016 17:59:24 +0000 (19:59 +0200)]
tree-cfg.c (print_loop): Print likely upper bounds.

* tree-cfg.c (print_loop): Print likely upper bounds.

From-SVN: r236893

8 years agoinvoke.texi (-fpeel-loops,-O3): Update documentation.
Jan Hubicka [Mon, 30 May 2016 17:58:19 +0000 (19:58 +0200)]
invoke.texi (-fpeel-loops,-O3): Update documentation.

* 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.

From-SVN: r236892

8 years agoAdd profiling support for IVOPTS
Martin Liska [Mon, 30 May 2016 16:04:50 +0000 (18:04 +0200)]
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.

From-SVN: r236888

8 years agoFix pr69067.c testcase
Tom de 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.

From-SVN: r236886

8 years agore PR c++/71099 (Misleading diagnostic message with 'virtual' used in out-of-line...
Paolo Carlini [Mon, 30 May 2016 15:10:51 +0000 (15:10 +0000)]
re PR c++/71099 (Misleading diagnostic message with 'virtual' used in out-of-line definitions of class template member functions)

/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.

From-SVN: r236885

8 years agoargs.h (clear_non_sret_int_hardware_registers): Use correct register when clearing...
Uros Bizjak [Mon, 30 May 2016 14:50:44 +0000 (16:50 +0200)]
args.h (clear_non_sret_int_hardware_registers): Use correct register when clearing %edx.

* gcc.target/i386/iamcu/args.h (clear_non_sret_int_hardware_registers):
Use correct register when clearing %edx.

From-SVN: r236883

8 years agomatch.pd: optimize unsigned mul overflow check
Alexander Monakov [Mon, 30 May 2016 14:37:02 +0000 (17:37 +0300)]
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.

Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r236882

8 years ago* tree-vect-loop.c (vect_transform_loop): Update likely bounds.
Jan Hubicka [Mon, 30 May 2016 14:12:46 +0000 (16:12 +0200)]
* tree-vect-loop.c (vect_transform_loop): Update likely bounds.

From-SVN: r236880

8 years agotree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit for peeled copies...
Jan Hubicka [Mon, 30 May 2016 13:25:02 +0000 (15:25 +0200)]
tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit for peeled copies...

* tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
for peeled copies; avoid underflow when updating estimates; correctly
scale loop profile.

From-SVN: r236878

8 years agotree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix typo from commit r236875.
Kugan Vivekanandarajah [Mon, 30 May 2016 11:01:06 +0000 (11:01 +0000)]
tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix typo from commit r236875.

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.

From-SVN: r236877

8 years agore PR middle-end/71269 (segfault while compiling sqlite)
Kugan Vivekanandarajah [Mon, 30 May 2016 10:47:57 +0000 (10:47 +0000)]
re PR middle-end/71269 (segfault while compiling sqlite)

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.

From-SVN: r236876

8 years agore PR tree-optimization/71252 (ICE: verify_ssa failed : definition in block 7 does...
Kugan Vivekanandarajah [Mon, 30 May 2016 10:45:19 +0000 (10:45 +0000)]
re PR tree-optimization/71252 (ICE: verify_ssa failed : definition in block 7 does not dominate use in block 6)

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.

From-SVN: r236875

8 years agopredict.h (force_edge_cold): Declare.
Jan Hubicka [Mon, 30 May 2016 10:40:33 +0000 (12:40 +0200)]
predict.h (force_edge_cold): Declare.

* 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.

From-SVN: r236874

8 years agovisium.c (visium_split_double_add): Minor tweaks.
Eric Botcazou [Mon, 30 May 2016 08:48:17 +0000 (08:48 +0000)]
visium.c (visium_split_double_add): Minor tweaks.

* config/visium/visium.c (visium_split_double_add): Minor tweaks.
(visium_expand_copysign): Use gen_int_mode directly.
(visium_compute_frame_size): Minor tweaks.

From-SVN: r236871

8 years agotree-vect-loop.c (vect_analyze_loop_2): Use likely_max_stmt_executions_int.
Jan Hubicka [Mon, 30 May 2016 08:19:24 +0000 (10:19 +0200)]
tree-vect-loop.c (vect_analyze_loop_2): Use likely_max_stmt_executions_int.

* tree-vect-loop.c (vect_analyze_loop_2): Use
likely_max_stmt_executions_int.

From-SVN: r236870

8 years agoRemove assert in get_def_bb_for_const
Tom de 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.

From-SVN: r236868

8 years agoDaily bump.
GCC Administrator [Mon, 30 May 2016 00:16:26 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236867

8 years agore PR target/71245 (std::atomic<double> load/store bounces the data to the stack...
Uros Bizjak [Sun, 29 May 2016 20:50:32 +0000 (22:50 +0200)]
re PR target/71245 (std::atomic<double> load/store bounces the data to the stack using fild/fistp)

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.

From-SVN: r236863

8 years ago* predict.c (maybe_hot_frequency_p): Avoid division.
Jan Hubicka [Sun, 29 May 2016 17:29:42 +0000 (19:29 +0200)]
* predict.c (maybe_hot_frequency_p): Avoid division.

From-SVN: r236862

8 years agore PR c++/71105 (lambdas with default captures improperly have function pointer conve...
Paolo Carlini [Sun, 29 May 2016 08:29:46 +0000 (08:29 +0000)]
re PR c++/71105 (lambdas with default captures improperly have function pointer conversions)

/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.

From-SVN: r236861

8 years agore PR c++/71105 (lambdas with default captures improperly have function pointer conve...
Paolo Carlini [Sun, 29 May 2016 08:05:30 +0000 (08:05 +0000)]
re PR c++/71105 (lambdas with default captures improperly have function pointer conversions)

/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.

From-SVN: r236859

8 years agobackwards_compatibility.xml: Adjust lists.debian.org link to https.
Gerald Pfeifer [Sun, 29 May 2016 08:03:35 +0000 (08:03 +0000)]
backwards_compatibility.xml: Adjust lists.debian.org link to https.

* doc/xml/manual/backwards_compatibility.xml: Adjust
lists.debian.org link to https.
* doc/html/manual/backwards.html: Regenerate.

From-SVN: r236858

8 years agoDaily bump.
GCC Administrator [Sun, 29 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236857

8 years ago* doc/install.texi: Use https for shop.fsf.org.
Gerald Pfeifer [Sat, 28 May 2016 19:44:13 +0000 (19:44 +0000)]
* doc/install.texi: Use https for shop.fsf.org.

From-SVN: r236853

8 years agotree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use likely_max_stmt_execution...
Jan Hubicka [Sat, 28 May 2016 16:36:29 +0000 (18:36 +0200)]
tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use likely_max_stmt_executions_int.

* tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
likely_max_stmt_executions_int.

From-SVN: r236852

8 years agoprefetch-5.c: Remove xfail.
Jan Hubicka [Sat, 28 May 2016 16:23:33 +0000 (18:23 +0200)]
prefetch-5.c: Remove xfail.

* gcc.dg/tree-ssa/prefetch-5.c: Remove xfail.
* tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
likely_max_stmt_executions_int.

From-SVN: r236851

8 years agoUpdate changelogs for revert of c++/69855.
Ville Voutilainen [Sat, 28 May 2016 16:21:05 +0000 (19:21 +0300)]
Update changelogs for revert of c++/69855.

From-SVN: r236850

8 years agoprofile.c (compute_branch_probabilities): Do not report hitrates here.
Jan Hubicka [Sat, 28 May 2016 16:20:06 +0000 (18:20 +0200)]
profile.c (compute_branch_probabilities): Do not report hitrates here.

* 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.

From-SVN: r236849

8 years agopredict.c (edge_predicted_by_p): New function.
Jan Hubicka [Sat, 28 May 2016 14:52:46 +0000 (16:52 +0200)]
predict.c (edge_predicted_by_p): New function.

* predict.c (edge_predicted_by_p): New function.
(predict_paths_for_bb): Do not put multiple predictions of the same type
on one edge.

From-SVN: r236848

8 years agotree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental commit.
Jan Hubicka [Sat, 28 May 2016 13:22:49 +0000 (15:22 +0200)]
tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental commit.

* tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
commit.

From-SVN: r236847

8 years agoAdd dependencies to configure rule
Alan Modra [Sat, 28 May 2016 13:08:47 +0000 (22:38 +0930)]
Add dependencies to configure rule

* Makefile.tpl (configure): Depend on m4 files included.
* Makefile.in: Regenerate.

From-SVN: r236846

8 years agoFix segfault on verify_dominators error path
Alan Modra [Sat, 28 May 2016 09:16:00 +0000 (18:46 +0930)]
Fix segfault on verify_dominators error path

* dominance.c (verify_dominators): Don't segfault on NULL imm_bb.

From-SVN: r236845

8 years agoRevert the attempted fix for c++/69855, it breaks bootstrap.
Ville Voutilainen [Sat, 28 May 2016 08:22:15 +0000 (11:22 +0300)]
Revert the attempted fix for c++/69855, it breaks bootstrap.

From-SVN: r236844

8 years agoira.c bb_loop_depth again
Alan Modra [Sat, 28 May 2016 00:22:56 +0000 (09:52 +0930)]
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.

From-SVN: r236843

8 years agoDaily bump.
GCC Administrator [Sat, 28 May 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236842

8 years agoAdjust URL in libstdc++ manual to use https
Jonathan Wakely [Fri, 27 May 2016 21:23:42 +0000 (22:23 +0100)]
Adjust URL in libstdc++ manual to use https

* doc/xml/manual/abi.xml: Adjust URL to use https.
* doc/html/manual/*: Regenerate.

From-SVN: r236837

8 years ago* doc/sourcebuild.texi: New address for upstream Go repository.
Gerald Pfeifer [Fri, 27 May 2016 20:25:05 +0000 (20:25 +0000)]
* doc/sourcebuild.texi: New address for upstream Go repository.

From-SVN: r236836

8 years agore PR c++/60385 (confused by earlier errors, bailing out)
Paolo Carlini [Fri, 27 May 2016 19:19:23 +0000 (19:19 +0000)]
re PR c++/60385 (confused by earlier errors, bailing out)

/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.

From-SVN: r236835

8 years agoarm.h (TARGET_ARM_V6M): Remove.
Thomas Preud'homme [Fri, 27 May 2016 16:36:42 +0000 (16:36 +0000)]
arm.h (TARGET_ARM_V6M): Remove.

2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm.h (TARGET_ARM_V6M): Remove.
    (TARGET_ARM_V7M): Likewise.

From-SVN: r236832

8 years agotree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
Jeff Law [Fri, 27 May 2016 16:32:38 +0000 (10:32 -0600)]
tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.

* 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.

From-SVN: r236831

8 years agovisium-protos.h (split_double_move): Rename into...
Eric Botcazou [Fri, 27 May 2016 15:08:50 +0000 (15:08 +0000)]
visium-protos.h (split_double_move): Rename into...

* 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.

From-SVN: r236827

8 years agore PR c++/69855 (Missing diagnostic for overload that only differs by return type)
Ville Voutilainen [Fri, 27 May 2016 14:59:01 +0000 (17:59 +0300)]
re PR c++/69855 (Missing diagnostic for overload that only differs by return type)

/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.

From-SVN: r236826

8 years agoconfigure.ac: Treat a --with-headers option without argument the same as the default...
Ulrich Weigand [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.

* configure.ac: Treat a --with-headers option without argument
the same as the default (i.e. consult sys-include directory).
* configure: Regenerate.

From-SVN: r236825

8 years agoFix build.
Ville Voutilainen [Fri, 27 May 2016 14:34:08 +0000 (17:34 +0300)]
Fix build.

From-SVN: r236823

8 years agore PR libstdc++/66338 (std::forward_as_tuple() issue with single argument)
Ville Voutilainen [Fri, 27 May 2016 14:08:37 +0000 (17:08 +0300)]
re PR libstdc++/66338 (std::forward_as_tuple() issue with single argument)

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.

From-SVN: r236822

8 years ago[AArch64] Tie operand 1 to operand 0 in AESMC pattern when AES/AESMC fusion is enabled
Kyrylo Tkachov [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.

From-SVN: r236820

8 years ago[AArch64] PR target/63596, honor tree-stdarg analysis result to improve VAARG codegen
Jiong Wang [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.

From-SVN: r236819

8 years ago[AArch64] Enable tree-stdarg pass for AArch64 by defining counter fields
Jiong Wang [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.

From-SVN: r236818

8 years agoRemove aarch64_cannot_change_mode_class as the underlying issue (PR67609) has been...
Wilco Dijkstra [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.

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.

From-SVN: r236817

8 years agocfgloop.c (record_niter_bound): Record likely upper bounds.
Jan Hubicka [Fri, 27 May 2016 12:10:34 +0000 (14:10 +0200)]
cfgloop.c (record_niter_bound): Record likely upper bounds.

* 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.

From-SVN: r236816

8 years agore PR middle-end/71308 (ICE (segfault) in in gimple_fold_call gimple-fold.c:3060)
Marek Polacek [Fri, 27 May 2016 12:08:03 +0000 (12:08 +0000)]
re PR middle-end/71308 (ICE (segfault) in in gimple_fold_call gimple-fold.c:3060)

PR middle-end/71308
* gimple-fold.c (gimple_fold_call): Check that LHS is not null.

* g++.dg/torture/pr71308.C: New test.

From-SVN: r236815

8 years agoS/390: Replace rtx_equal_p with reg_overlap_mentioned_p in splitter check.
Andreas 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.

From-SVN: r236814

8 years agocombine: Take known zero bits into account when checking extraction.
Dominik Vogt [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.

From-SVN: r236813

8 years ago[AArch64] Simplify ashl<mode>3 expander for SHORT modes
Kyrylo Tkachov [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.

From-SVN: r236812

8 years agore PR middle-end/71279 (ICE on trunk gcc with knl target)
Ilya Enkovich [Fri, 27 May 2016 10:39:40 +0000 (10:39 +0000)]
re PR middle-end/71279 (ICE on trunk gcc with knl target)

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.

From-SVN: r236810

8 years ago[AArch64] Delete obsolete CC_ZESWP and CC_SESWP CC modes
Kyrylo Tkachov [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.

From-SVN: r236809

8 years agoDaily bump.
GCC Administrator [Fri, 27 May 2016 00:16:16 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r236804

8 years agors6000.c (rs6000_emit_p9_fp_minmax): New function for ISA 3.0 min/max support.
Michael Meissner [Thu, 26 May 2016 21:38:19 +0000 (21:38 +0000)]
rs6000.c (rs6000_emit_p9_fp_minmax): New function for ISA 3.0 min/max support.

[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.

From-SVN: r236795

8 years agoc-parser.c (c_parser_omp_clause_schedule): Warn if OMP_CLAUSE_SCHEDULE_CHUNK_EXPR...
Jakub Jelinek [Thu, 26 May 2016 19:12:27 +0000 (21:12 +0200)]
c-parser.c (c_parser_omp_clause_schedule): Warn if OMP_CLAUSE_SCHEDULE_CHUNK_EXPR is known not to be positive.

* 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.

From-SVN: r236793

8 years agoFix PR c++/70822 (bogus error with parenthesized SCOPE_REF)
Patrick Palka [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.

From-SVN: r236792

8 years agoira.c bb_loop_depth
Alan Modra [Thu, 26 May 2016 17:38:36 +0000 (03:08 +0930)]
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.

From-SVN: r236789

8 years agoi386.md (*movqi_internal): Use if_then_else or cond RTXes to calculate attribute...
Uros Bizjak [Thu, 26 May 2016 17:32:55 +0000 (19:32 +0200)]
i386.md (*movqi_internal): Use if_then_else or cond RTXes to calculate attribute value.

* 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.

From-SVN: r236787

8 years agoIVOPTS: make comp_cost in a more c++ fashion.
Martin Liska [Thu, 26 May 2016 17:12:32 +0000 (19:12 +0200)]
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.

From-SVN: r236785

8 years agoFix ivopts estimates for internal functions
Richard Sandiford [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.

From-SVN: r236780

8 years ago20060410.c: Xfail on ptx.
Nathan Sidwell [Thu, 26 May 2016 14:32:36 +0000 (14:32 +0000)]
20060410.c: Xfail on ptx.

* 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.

From-SVN: r236774

8 years agofree.asm: Delete.
Nathan Sidwell [Thu, 26 May 2016 14:22:40 +0000 (14:22 +0000)]
free.asm: Delete.

* config/nvptx/free.asm: Delete.
* config/nvptx/malloc.asm: Delete.
* config/nvptx/realloc.c: Delete.
* t-nvptx: Update.

From-SVN: r236773