gcc.git
8 years agoUpdate TARGET_FUNCTION_INCOMING_ARG documentation
H.J. Lu [Thu, 2 Jun 2016 13:46:20 +0000 (13:46 +0000)]
Update TARGET_FUNCTION_INCOMING_ARG documentation

On x86, interrupt handlers are only called by processors which push
interrupt data onto stack at the address where the normal return address
is.  Since interrupt handlers must access interrupt data via pointers so
that they can update interrupt data, the pointer argument is passed as
"argument pointer - word".

TARGET_FUNCTION_INCOMING_ARG defines how callee sees its argument.
Normally it returns REG, NULL, or CONST_INT.  This patch adds arbitrary
address computation based on hard register, which can be forced into a
register, to the list.

When copying an incoming argument onto stack, assign_parm_setup_stack
has:

if (argument in memory)
  copy argument in memory to stack
else
  move argument to stack

Since an arbitrary address computation may be passed as an argument, we
change it to:

if (argument in memory)
  copy argument in memory to stack
else
  {
    if (argument isn't in register)
      force argument into a register
    move argument to stack
  }

* function.c (assign_parm_setup_stack): Force source into a
register if needed.
* target.def (function_incoming_arg): Update documentation to
allow arbitrary address computation based on hard register.
* doc/tm.texi: Regenerated.

Co-Authored-By: Julia Koval <julia.koval@intel.com>
From-SVN: r237037

8 years agoFix first match heuristics
Martin Liska [Thu, 2 Jun 2016 12:51:57 +0000 (14:51 +0200)]
Fix first match heuristics

* predict.c (combine_predictions_for_bb): Fix first match in
cases where a first predictor contains more than one occurence
in list of predictors.  Take the best value in such case.
* gcc.dg/predict-9.c: New test.

From-SVN: r237036

8 years agogcc-dg.exp (cleanup-after-saved-dg-test): Add missing global set_compiler_env_var...
Jakub Jelinek [Thu, 2 Jun 2016 12:34:42 +0000 (14:34 +0200)]
gcc-dg.exp (cleanup-after-saved-dg-test): Add missing global set_compiler_env_var and global saved_compiler_env_var.

* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Add missing
global set_compiler_env_var and global saved_compiler_env_var.

From-SVN: r237035

8 years ago[rtlanal] Fix rtl-optimization/71295
Kyrylo Tkachov [Thu, 2 Jun 2016 12:26:42 +0000 (12:26 +0000)]
[rtlanal] Fix rtl-optimization/71295

PR rtl-optimization/71295
* rtlanal.c (subreg_get_info): If taking a subreg at the requested
offset would go over the size of the inner mode reject it.

* gcc.c-torture/compile/pr71295.c: New test.

From-SVN: r237034

8 years agoOn behalf of Aaron Conole <aconole@redhat.com>
Aaron Conole [Thu, 2 Jun 2016 12:22:01 +0000 (12:22 +0000)]
On behalf of Aaron Conole <aconole@redhat.com>

On behalf of  Aaron Conole  <aconole@redhat.com>
* libgcov-driver-system.c (__gcov_error_file): New.
(get_gcov_error_file): New.
(gcov_error): Use and set __gcov_error_file.
(gcov_error_exit): New.
* libgcov-driver.c (gcov_exit): Call gcov_error_exit.

From-SVN: r237033

8 years agosse.md (*vec_concatv4si): Use v=v,v instead of x=x,x and v=v,m instead of x=x,m.
Jakub Jelinek [Thu, 2 Jun 2016 11:02:26 +0000 (13:02 +0200)]
sse.md (*vec_concatv4si): Use v=v,v instead of x=x,x and v=v,m instead of x=x,m.

* config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
x=x,x and v=v,m instead of x=x,m.

* gcc.target/i386/avx512vl-concatv4si-1.c: New test.

From-SVN: r237031

8 years agosse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm alternative.
Jakub Jelinek [Thu, 2 Jun 2016 11:01:31 +0000 (13:01 +0200)]
sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm alternative.

* config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
alternative to v=rm,C.

* gcc.target/i386/avx512dq-concatv2si-1.c: New test.
* gcc.target/i386/avx512vl-concatv2si-1.c: New test.

From-SVN: r237030

8 years agosse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm alternative.
Jakub Jelinek [Thu, 2 Jun 2016 09:43:52 +0000 (11:43 +0200)]
sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm alternative.

* config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
instead of vex for the last two above mentioned alternatives.

* gcc.target/i386/avx512dq-concatv2di-1.c: New test.
* gcc.target/i386/avx512vl-concatv2di-1.c: New test.
* gcc.target/i386/sse2-init-v2di-2.c: Adjust expected vec_concatv2di
alternative number.

From-SVN: r237028

8 years agoFix fallout from: [ARM] PR target/70830: Avoid POP-{reglist}^ when returning from...
Kyrylo Tkachov [Thu, 2 Jun 2016 08:54:15 +0000 (08:54 +0000)]
Fix fallout from: [ARM] PR target/70830: Avoid POP-{reglist}^ when returning from interrupt handlers

PR target/70830
* config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.

From-SVN: r237027

8 years agors6000: Correct the "length" attribute for trunctddd2
Segher Boessenkool [Thu, 2 Jun 2016 07:19:07 +0000 (09:19 +0200)]
rs6000: Correct the "length" attribute for trunctddd2

* config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.

From-SVN: r237026

8 years agoDaily bump.
GCC Administrator [Thu, 2 Jun 2016 00:16:17 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r237025

8 years agoFix ChangeLog entry:
Michael Meissner [Wed, 1 Jun 2016 22:24:29 +0000 (22:24 +0000)]
Fix ChangeLog entry:

2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/altivec.md (VNEG iterator): New iterator for
VNEGW/VNEGD instructions.
(p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
(neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
support for ISA 3.0 VNEGW/VNEGD instructions.

From-SVN: r237020

8 years agorl78.c: fix warning
David Malcolm [Wed, 1 Jun 2016 21:38:46 +0000 (21:38 +0000)]
rl78.c: fix warning

gcc/ChangeLog:
* config/rl78/rl78.c (rl78_expand_prologue): Convert local
from int to unsigned.

From-SVN: r237017

8 years agore PR c/70688 (bogus OpenACC data clause errors involving reductions)
Cesar Philippidis [Wed, 1 Jun 2016 20:37:44 +0000 (13:37 -0700)]
re PR c/70688 (bogus OpenACC data clause errors involving reductions)

PR c/70688
* pr70688.c: New file.

From-SVN: r237011

8 years agolibtool-version: Bump soversion.
Matthias Klose [Wed, 1 Jun 2016 20:10:48 +0000 (20:10 +0000)]
libtool-version: Bump soversion.

2016-06-01  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Bump soversion.

From-SVN: r237007

8 years agore PR target/71186 (PowerPC64: Autovectorised code hits ICE with -O3 -mpower9 -mlra)
Michael Meissner [Wed, 1 Jun 2016 20:09:35 +0000 (20:09 +0000)]
re PR target/71186 (PowerPC64: Autovectorised code hits ICE with -O3 -mpower9 -mlra)

[gcc]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71186
* config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
for loading up all 0's or all 1's.

[gcc/testsuite]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

PR target/71186
* gcc.target/powerpc/pr71186.c: New test.

Index: gcc/config/rs6000/vsx.md
===================================================================
--- gcc/config/rs6000/vsx.md (.../svn+ssh://meissner@gcc.gnu.org/svn/gcc/trunk/gcc/config/rs6000) (revision 236935)
+++ gcc/config/rs6000/vsx.md (.../gcc/config/rs6000) (working copy)
@@ -776,8 +776,8 @@ (define_insn "xxspltib_v16qi"
   [(set_attr "type" "vecperm")])

 (define_insn "xxspltib_<mode>_nosplit"
-  [(set (match_operand:VSINT_842 0 "vsx_register_operand" "=wa")
- (match_operand:VSINT_842 1 "xxspltib_constant_nosplit" "wE"))]
+  [(set (match_operand:VSINT_842 0 "vsx_register_operand" "=wa,wa")
+ (match_operand:VSINT_842 1 "xxspltib_constant_nosplit" "jwM,wE"))]
   "TARGET_P9_VECTOR"
 {
   rtx op1 = operands[1];

[gcc]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
alternatives, eliminating preferred register class.  Add support
for the MTVSRDD instruction in ISA 3.0.
(vsx_splat_v4si_internal): Use splat_input_operand instead of
reg_or_indexed_operand.
(vsx_splat_v4sf_internal): Likewise.

[gcc/testsuite]
2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>

* gcc.target/powerpc/p9-splat-4.c: New test.

From-SVN: r237006

8 years agore PR fortran/52393 (I/O: "READ format" statement with parenthesed default-char-expr)
Jerry DeLisle [Wed, 1 Jun 2016 17:06:50 +0000 (17:06 +0000)]
re PR fortran/52393 (I/O: "READ format" statement with parenthesed default-char-expr)

2016-06-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/52393
* io.c (match_io): For READ, try to match a default character
expression. If found, set the dt format expression to this,
otherwise go back and try control list.

PR fortran/52393
* gfortran.dg/fmt_read_3.f90: New test.

From-SVN: r237003

8 years agosourcebuild.texi (arm_acq_rel): Document new effective target.
Thomas Preud'homme [Wed, 1 Jun 2016 16:54:18 +0000 (16:54 +0000)]
sourcebuild.texi (arm_acq_rel): Document new effective target.

2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.

    gcc/testsuite/
    * lib/target-supports.exp (check_effective_target_arm_acq_rel): New
    procedure.

From-SVN: r237002

8 years agoc-common.c (get_source_date_epoch): Rename to cb_get_source_date_epoch.
Eduard Sanou [Wed, 1 Jun 2016 16:42:41 +0000 (16:42 +0000)]
c-common.c (get_source_date_epoch): Rename to cb_get_source_date_epoch.

gcc/c-family/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

* c-common.c (get_source_date_epoch): Rename to
cb_get_source_date_epoch.
* c-common.c (cb_get_source_date_epoch): Use a single generic erorr
message when the parsing fails.  Use error_at instead of fatal_error.
* c-common.h (get_source_date_epoch): Rename to
cb_get_source_date_epoch.
* c-common.h (cb_get_source_date_epoch): Prototype.
* c-common.h (MAX_SOURCE_DATE_EPOCH): Define.
* c-common.h (c_omp_region_type): Remove trailing comma.
* c-lex.c (init_c_lex): Set cb->get_source_date_epoch callback.
* c-lex.c (c_lex_with_flags): Remove initialization of
pfile->source_date_epoch.

gcc/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

* doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
extension.
* gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
* gcc.c (set_source_date_epoch_envvar): New function, sets
the SOURCE_DATE_EPOCH environment variable to the current time.

gcc/testsuite/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

* gcc.dg/cpp/source_date_epoch-1.c: New file, test the proper
behaviour of the macros __DATE__ and __TIME__ when SOURCE_DATE_EPOCH
env var is set.
* gcc.dg/cpp/source_date_epoch-2.c: New file, test the error output
when parsing the SOURCE_DATE_EPOCH env var, and make sure it is only
shown once.
* lib/gcc-dg.exp (dg-set-compiler-env-var): New function, set env vars
during compilation.
* lib/gcc-dg.exp (restore-compiler-env-var): New function, restore env
vars set by dg-set-compiler-env-var.

libcpp/ChangeLog:

2016-05-13  Eduard Sanou  <dhole@openmailbox.org>

* include/cpplib.h (cpp_callbacks): Add get_source_date_epoch
callback.
* include/cpplib.h (cpp_init_source_date_epoch): Remove prototype.
* init.c (cpp_init_source_date_epoch): Remove function.
* init.c (cpp_create_reader): Initialize pfile->source_date_epoch.
* internal.h (cpp_reader): Extend comment about source_date_epoch.
* macro.c (_cpp_builtin_macro_text): Use get_source_date_epoch
callback only once, read pfile->source_date_epoch on future passes.
Check that get_source_date_epoch callback is not NULL.

From-SVN: r237001

8 years agotree-vect-loop.c (vect_determine_vectorization_factor): Also compute the factor for...
Eric Botcazou [Wed, 1 Jun 2016 16:06:10 +0000 (16:06 +0000)]
tree-vect-loop.c (vect_determine_vectorization_factor): Also compute the factor for live Phi nodes.

* tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
the factor for live Phi nodes.

From-SVN: r236999

8 years agoloop-dolop.c (doloop_optimize): Us likely max iteration bound.
Jan Hubicka [Wed, 1 Jun 2016 15:26:46 +0000 (17:26 +0200)]
loop-dolop.c (doloop_optimize): Us likely max iteration bound.

* loop-dolop.c (doloop_optimize): Us likely max iteration bound.
* tree-parloops.c (parallelize_loops): likewise.
* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
tree_unswitch_outer_loop): likewise.

From-SVN: r236998

8 years agore PR fortran/71156 (PURE interface/definition inconsistency: accepts invalid, reject...
Paul Thomas [Wed, 1 Jun 2016 14:30:00 +0000 (14:30 +0000)]
re PR fortran/71156 (PURE interface/definition inconsistency: accepts invalid, rejects valid)

2016-06-01  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/71156
* decl.c (copy_prefix): Add checks that the module procedure
declaration prefixes are compliant with the interface. Invert
order of existing elemental and pure checks.
* resolve.c (resolve_fl_procedure): Invert order of elemental
and pure errors.

2016-06-01  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/71156
* gfortran.dg/submodule_14.f08: Add missing recursive prefix
to the module procedure declaration.
* gfortran.dg/submodule_16.f08: New test.

From-SVN: r236996

8 years agore PR middle-end/71371 (ICE with OpenMP taskloop and addressable iterator)
Jakub Jelinek [Wed, 1 Jun 2016 14:24:02 +0000 (16:24 +0200)]
re PR middle-end/71371 (ICE with OpenMP taskloop and addressable iterator)

PR middle-end/71371
* gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
around creation of the temporary.

* c-c++-common/gomp/pr71371.c: New test.

From-SVN: r236994

8 years agore PR tree-optimization/71366 (ICE on valid code at -O3 on x86_64-linux-gnu: Segmenta...
Richard Biener [Wed, 1 Jun 2016 14:05:22 +0000 (14:05 +0000)]
re PR tree-optimization/71366 (ICE on valid code at -O3 on x86_64-linux-gnu: Segmentation fault)

2016-06-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71366
* tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
(unloop_loops): Move removing edges here ...
(try_unroll_loop_completely): ... from here.
(try_peel_loop): ... and here.
(tree_unroll_loops_completely_1): Track parent loops via
bitmap of header BBs.
(tree_unroll_loops_completely): Adjust for that.

* gcc.dg/torture/pr71366-1.c: New testcase.
* gcc.dg/torture/pr71366-2.c: Likewise.

From-SVN: r236993

8 years agoaltivec.h (vec_slv): New macro.
Kelvin Nilsen [Wed, 1 Jun 2016 14:01:10 +0000 (14:01 +0000)]
altivec.h (vec_slv): New macro.

gcc/ChangeLog:

2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* config/rs6000/altivec.h (vec_slv): New macro.
(vec_srv): New macro.
* config/rs6000/altivec.md (UNSPEC_VSLV): New value.
(UNSPEC_VSRV): New value.
(vslv): New insn.
(vsrv): New insn.
* config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
(vsrv): New builtin definition.
* config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
define argument types for new builtin.
(P9V_BUILTIN_VSRV): Macro expansion to define argument types for
new builtin.
* doc/extend.texi: Document the new vec_vslv and vec_srv built-in
functions.

gcc/testsuite/ChangeLog:

2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>

* gcc.target/powerpc/vslv-0.c: New test.
* gcc.target/powerpc/vslv-1.c: New test.
* gcc.target/powerpc/vsrv-0.c: New test.
* gcc.target/powerpc/vsrv-1.c: New test.

From-SVN: r236992

8 years agore PR target/67310 ([PATCH] gcc 4.8.4 fails to compile with -march=native on VIA...
Uros Bizjak [Wed, 1 Jun 2016 13:44:37 +0000 (15:44 +0200)]
re PR target/67310 ([PATCH] gcc 4.8.4 fails to compile with -march=native on VIA nano CPU)

PR target/67310
* config/i386/driver-i386.c (host_detect_local_cpu): Correctly
detect processor family for signature_CENTAUR_ebx.
<case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
signature_CENTAUR_ebx.
<case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
<default>: Pass x86-64 for has_longmode.

Co-Authored-By: Jocelyn Mayer <l_indien@magic.fr>
From-SVN: r236991

8 years agonvptx.c (nvptx_assemble_undefined_decl): Reject undefined weak.
Nathan Sidwell [Wed, 1 Jun 2016 13:41:19 +0000 (13:41 +0000)]
nvptx.c (nvptx_assemble_undefined_decl): Reject undefined weak.

* config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
undefined weak.

testsuite/
* c-c++-common/torture/pr57945.c: Add expected PTX error.
* gcc.target/nvptx/weak.c: New.

From-SVN: r236990

8 years agore PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)
Richard Biener [Wed, 1 Jun 2016 13:08:24 +0000 (13:08 +0000)]
re PR tree-optimization/71261 (Trunk GCC hangs on knl and broadwell targets)

2016-06-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71261
* tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
of stmts successfully put in the bool pattern.  Remove
single-use restriction.
(adjust_bool_pattern_cast): Add cast at the use site via the
pattern def sequence.
(adjust_bool_pattern): Remove recursion, maintain a hash-map
of patterned defs.  Use the pattern def seqence instead of
multiple independent patterns.
(sort_after_uid): New qsort compare function.
(adjust_bool_stmts): New function to process stmts in the bool
pattern in IL order.
(vect_recog_bool_pattern): Adjust.
* tree-if-conv.c (ifcvt_split_def_stmt): Remove.
(ifcvt_walk_pattern_tree): Likewise.
(stmt_is_root_of_bool_pattern): Likewise.
(ifcvt_repair_bool_pattern): Likewise.
(tree_if_conversion): Do not call ifcvt_repair_bool_pattern.

* gcc.dg/torture/vect-bool-1.c: New testcase.

From-SVN: r236989

8 years agoparse.c (case_decl): Move ST_OMP_* to ...
Jakub Jelinek [Wed, 1 Jun 2016 12:21:38 +0000 (14:21 +0200)]
parse.c (case_decl): Move ST_OMP_* to ...

* parse.c (case_decl): Move ST_OMP_* to ...
(case_omp_decl): ... here, new macro.
(verify_st_order): For case_omp_decl, complain about
p->state >= ORDER_EXEC, but don't change p->state otherwise.

* gfortran.dg/gomp/order-1.f90: New test.
* gfortran.dg/gomp/order-2.f90: New test.

From-SVN: r236987

8 years agoloop-unroll.c (decide_unroll_constant_iterations, [...]): Use likely upper bounds.
Jan Hubicka [Wed, 1 Jun 2016 12:01:17 +0000 (14:01 +0200)]
loop-unroll.c (decide_unroll_constant_iterations, [...]): Use likely upper bounds.

* loop-unroll.c (decide_unroll_constant_iterations,
decide_unroll_runtime_iterations, decide_unroll_stupid): Use
likely upper bounds.
* loop-iv.c (find_simple_exit): Dump likely upper bounds.

* gcc.dg/unroll-6.c: Update template.
* gcc.dg/unroll-7.c: New testcase.
* gcc.dg/unroll-8.c: New testcase.

From-SVN: r236986

8 years agoRemove the unused OMP_CLAUSE_DEVICE_RESIDENT
Thomas Schwinge [Wed, 1 Jun 2016 11:55:35 +0000 (13:55 +0200)]
Remove the unused OMP_CLAUSE_DEVICE_RESIDENT

gcc/
* tree-core.h (enum omp_clause_code): Remove
OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.

From-SVN: r236985

8 years ago[ARM] Use proper output modifier for DImode register in store exclusive patterns
Kyrylo Tkachov [Wed, 1 Jun 2016 10:44:07 +0000 (10:44 +0000)]
[ARM] Use proper output modifier for DImode register in store exclusive patterns

* config/arm/sync.md (arm_store_exclusive<mode>):
Use 'H' output modifier on operands[2] rather than creating a new
entry in out-of-bounds memory of the operands array.
(arm_store_release_exclusivedi): Likewise.

From-SVN: r236984

8 years ago[ARM] Tie operand 1 to operand 0 in AESMC pattern when fusing AES/AESMC
Kyrylo Tkachov [Wed, 1 Jun 2016 10:37:27 +0000 (10:37 +0000)]
[ARM] Tie operand 1 to operand 0 in AESMC pattern when fusing AES/AESMC

* config/arm/arm.c (arm_fusion_enabled_p): New function.
* config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
* config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.

From-SVN: r236982

8 years agotree-vect-loop.c (vect_determine_vectorization_factor): Also take into account live...
Eric Botcazou [Wed, 1 Jun 2016 10:35:30 +0000 (10:35 +0000)]
tree-vect-loop.c (vect_determine_vectorization_factor): Also take into account live statements for mask producers.

* tree-vect-loop.c (vect_determine_vectorization_factor): Also take
into account live statements for mask producers.

From-SVN: r236981

8 years agore PR tree-optimization/71311 (spec2006 test case 416.gamess fails since r235817)
Richard Biener [Wed, 1 Jun 2016 10:33:35 +0000 (10:33 +0000)]
re PR tree-optimization/71311 (spec2006 test case 416.gamess fails since r235817)

2016-06-01  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71311
* match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
restrict to non-INTEGER_CST @0.

From-SVN: r236980

8 years agomatch.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
Richard Biener [Wed, 1 Jun 2016 10:31:30 +0000 (10:31 +0000)]
match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.

2016-06-01  Richard Biener  <rguenther@suse.de>

* match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
(relational patterns): Use :c to avoid pattern duplications.

From-SVN: r236979

8 years agore PR c++/66635 (g++ ICE when compiling constexpr code with comma operator)
Paolo Carlini [Wed, 1 Jun 2016 09:48:05 +0000 (09:48 +0000)]
re PR c++/66635 (g++ ICE when compiling constexpr code with comma operator)

2016-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66635
* g++.dg/cpp0x/constexpr-ice16.C: New.

From-SVN: r236978

8 years agogenmatch.c (comparison_code_p): New predicate.
Richard Biener [Wed, 1 Jun 2016 09:00:57 +0000 (09:00 +0000)]
genmatch.c (comparison_code_p): New predicate.

2016-06-01  Richard Biener  <rguenther@suse.de>

* genmatch.c (comparison_code_p): New predicate.
(swap_tree_comparison): New function.
(commutate): Add for_vec parameter to append new for entries.
Support commutating relational operators by swapping it alongside
operands.
(lower_commutative): Adjust.
(dt_simplify::gen): Do not pass artificial operators to gen
functions.
(decision_tree::gen): Do not add artificial operators as parameters.
(parser::parse_expr): Verify operator commutativity when :c is
applied.  Allow :C to override this.
* match.pd: Adjust patterns to use :C instead of :c where required.

From-SVN: r236977

8 years agore PR ada/71358 (GNAT.Command_Line.Getopt fails if there are no switches)
Simon Wright [Wed, 1 Jun 2016 07:43:57 +0000 (07:43 +0000)]
re PR ada/71358 (GNAT.Command_Line.Getopt fails if there are no switches)

PR ada/71358
* g-comlin.adb (Display_Section_Help): Do not dereference
Config.Switches if it's null.
(Getopt): Likewise.

From-SVN: r236975

8 years agore PR tree-optimization/71314 (test case gcc.dg/tree-ssa/ssa-thread-14.c fails starti...
Patrick Palka [Wed, 1 Jun 2016 02:37:50 +0000 (02:37 +0000)]
re PR tree-optimization/71314 (test case gcc.dg/tree-ssa/ssa-thread-14.c fails starting with its introduction in r235653)

Fix PR tree-optimization/71314

gcc/testsuite/ChangeLog:

PR tree-optimization/71314
* gcc.dg/tree-ssa/ssa-thread-14.c: Adjust target selector.  Pass
-mbranch-cost=2.

From-SVN: r236974

8 years agore PR tree-optimization/71077 (gcc -lto raises ICE)
Patrick Palka [Wed, 1 Jun 2016 02:36:27 +0000 (02:36 +0000)]
re PR tree-optimization/71077 (gcc -lto raises ICE)

Fix PR tree-optimization/71077

gcc/ChangeLog:

PR tree-optimization/71077
* tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
the combining step, use boolean_false_node and boolean_true_node
as the designated false/true return values.

gcc/testsuite/ChangeLog:

PR tree-optimization/71077
* gcc.dg/tree-ssa/pr71077.c: New test.

From-SVN: r236973

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