]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
9 years ago2016-06-03 Alan Hayward <alan.hayward@arm.com>
alahay01 [Fri, 3 Jun 2016 13:00:06 +0000 (13:00 +0000)] 
2016-06-03  Alan Hayward  <alan.hayward@arm.com>

[2/3] Vectorize inductions that are live after the loop

gcc/
* tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
(vectorizable_reduction): Check for new relevant state.
(vectorizable_live_operation): vectorize live stmts using
BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
* tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
(vect_stmt_relevant_p): Check for stmts which are only used live.
(process_use): Use of a stmt does not inherit it's live value.
(vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
(vect_analyze_stmt): Check for new relevant state.
* tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
outside the loop, but not inside it.

testsuite/
* gcc.dg/tree-ssa/pr64183.c: Ensure test does not vectorize.
* testsuite/gcc.dg/vect/no-scevccp-vect-iv-2.c: Remove xfail.
* gcc.dg/vect/vect-live-1.c: New test.
* gcc.dg/vect/vect-live-2.c: New test.
* gcc.dg/vect/vect-live-3.c: New test.
* gcc.dg/vect/vect-live-4.c: New test.
* gcc.dg/vect/vect-live-5.c: New test.
* gcc.dg/vect/vect-live-slp-1.c: New test.
* gcc.dg/vect/vect-live-slp-2.c: New test.
* gcc.dg/vect/vect-live-slp-3.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237064 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-03 Alan Hayward <alan.hayward@arm.com>
alahay01 [Fri, 3 Jun 2016 12:48:21 +0000 (12:48 +0000)] 
2016-06-03  Alan Hayward  <alan.hayward@arm.com>

[1/3] Split vect_get_vec_def_for_operand into two

gcc/
* tree-vectorizer.h (vect_get_vec_def_for_operand_1): New
* tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New
(vect_get_vec_def_for_operand): Split out code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237063 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agors6000: Remove the ancient mfcr peepholes
segher [Fri, 3 Jun 2016 12:33:07 +0000 (12:33 +0000)] 
rs6000: Remove the ancient mfcr peepholes

These peepholes replace two mfcr;mask sequences by one mfcr;mask;mask
sequence.  On modern cpus, the original mfcr's were actually mfocrf,
but the new insn is an actual heavy-weight mfcr.  This is very bad
for performance.

The comment says there is a three cycle delay between two consecutive
mfcr insns.  This may have been true on rios, and it's true on 604,
but on 603, 750, 7400 it is just a single cycle (on 7450 it is two).

This is also a define_peephole, and we should get rid of those.

So this patch just removes the peepholes; the benefit is marginal at
best, and it so very hurts in other cases.

* config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237062 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-03 Alan Hayward <alan.hayward@arm.com>
alahay01 [Fri, 3 Jun 2016 12:12:41 +0000 (12:12 +0000)] 
2016-06-03  Alan Hayward  <alan.hayward@arm.com>

gcc/
* tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237061 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARM][obvious] Fix typos in *thumb1_mulsi3 comment
ktkachov [Fri, 3 Jun 2016 08:43:28 +0000 (08:43 +0000)] 
[ARM][obvious] Fix typos in *thumb1_mulsi3 comment

* config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237058 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * MAINTAINERS (Write After Approval): Add myself.
jemarch [Fri, 3 Jun 2016 08:35:24 +0000 (08:35 +0000)] 
* MAINTAINERS (Write After Approval): Add myself.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237055 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR middle-end/71387
jakub [Fri, 3 Jun 2016 08:03:11 +0000 (08:03 +0000)] 
PR middle-end/71387
* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
to noreturn e->callee->decl that has void return type and void
arguments, adjust gimple_call_fntype and remove lhs even if it had
previously addressable type.

* g++.dg/opt/pr71387.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237053 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR tree-optimization/71328
law [Fri, 3 Jun 2016 05:20:16 +0000 (05:20 +0000)] 
PR tree-optimization/71328
* tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
error when checking for a jump back onto the copied path.  */

PR tree-optimization/71328
* gcc.c-torture/compile/pr71328.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237052 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Fri, 3 Jun 2016 01:25:31 +0000 (01:25 +0000)] 
2016-06-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237051 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Fri, 3 Jun 2016 00:16:16 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237050 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago/cp
paolo [Thu, 2 Jun 2016 23:10:33 +0000 (23:10 +0000)] 
/cp
2016-06-02  Paolo Carlini  <paolo.carlini@oracle.com>

* decl.c (xref_tag_1): Change pairs of errors to error + inform.
(start_enum): Likewise.
* parser.c (cp_parser_class_head): Likewise.

/testsuite
2016-06-02  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp0x/forw_enum10.C: Adjust for dg-message vs dg-error.
* g++.dg/cpp0x/forw_enum6.C: Likewise.
* g++.dg/cpp0x/forw_enum8.C: Likewise.
* g++.dg/cpp0x/override2.C: Likewise.
* g++.dg/parse/crash5.C: Likewise.
* g++.dg/parse/error16.C: Likewise.
* g++.dg/parse/error27.C: Likewise.
* g++.dg/template/qualttp15.C: Likewise.
* g++.dg/template/redecl4.C: Likewise.
* g++.old-deja/g++.other/crash39.C: Likewise.
* g++.old-deja/g++.other/struct1.C: Likewise.
* g++.old-deja/g++.pt/m9a.C: Likewise.
* g++.old-deja/g++.pt/memclass10.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237046 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agomicroblaze.c: fix warnings
dmalcolm [Thu, 2 Jun 2016 19:27:10 +0000 (19:27 +0000)] 
microblaze.c: fix warnings

gcc/ChangeLog:
* config/microblaze/microblaze.c (get_branch_target): Add return
NULL_RTX for the non-CALL_P case.
(insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
(insert_wic): Remove unused local "j".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237044 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/71372
jakub [Thu, 2 Jun 2016 16:36:04 +0000 (16:36 +0000)] 
PR c++/71372
* cp-gimplify.c (cp_fold): For INDIRECT_REF, if the folded expression
is INDIRECT_REF or MEM_REF, copy over TREE_READONLY, TREE_SIDE_EFFECTS
and TREE_THIS_VOLATILE flags.  For ARRAY_REF and ARRAY_RANGE_REF, copy
over TREE_READONLY, TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE flags
to the newly built tree.

* c-c++-common/pr71372.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237041 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix display name of PRED_FORTRAN_FAIL_IO
marxin [Thu, 2 Jun 2016 16:18:05 +0000 (16:18 +0000)] 
Fix display name of PRED_FORTRAN_FAIL_IO

* predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237040 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc.dg/cpp/source_date_epoch-1.c (main): Test __DATE__ and
jakub [Thu, 2 Jun 2016 16:17:15 +0000 (16:17 +0000)] 
* gcc.dg/cpp/source_date_epoch-1.c (main): Test __DATE__ and
__TIME__ strings with __builtin_strcmp instead of printf and
dg-output.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237039 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoUpdate TARGET_FUNCTION_INCOMING_ARG documentation
hjl [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237037 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix first match heuristics
marxin [Thu, 2 Jun 2016 12:51:57 +0000 (12:51 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237036 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * lib/gcc-dg.exp (cleanup-after-saved-dg-test): Add missing
jakub [Thu, 2 Jun 2016 12:34:42 +0000 (12:34 +0000)] 
* lib/gcc-dg.exp (cleanup-after-saved-dg-test): Add missing
global set_compiler_env_var and global saved_compiler_env_var.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237035 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[rtlanal] Fix rtl-optimization/71295
ktkachov [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237034 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoOn behalf of Aaron Conole <aconole@redhat.com>
nathan [Thu, 2 Jun 2016 12:22:01 +0000 (12:22 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237033 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
jakub [Thu, 2 Jun 2016 11:02:26 +0000 (11:02 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237031 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
jakub [Thu, 2 Jun 2016 11:01:31 +0000 (11:01 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237030 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
jakub [Thu, 2 Jun 2016 09:43:52 +0000 (09:43 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237028 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix fallout from: [ARM] PR target/70830: Avoid POP-{reglist}^ when returning from...
ktkachov [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237027 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agors6000: Correct the "length" attribute for trunctddd2
segher [Thu, 2 Jun 2016 07:19:07 +0000 (07:19 +0000)] 
rs6000: Correct the "length" attribute for trunctddd2

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237026 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237025 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix ChangeLog entry:
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237020 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agorl78.c: fix warning
dmalcolm [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237017 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c/70688
cesar [Wed, 1 Jun 2016 20:37:44 +0000 (20:37 +0000)] 
PR c/70688
* pr70688.c: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237011 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Matthias Klose <doko@ubuntu.com>
doko [Wed, 1 Jun 2016 20:10:48 +0000 (20:10 +0000)] 
2016-06-01  Matthias Klose  <doko@ubuntu.com>

        * libtool-version: Bump soversion.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237007 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[gcc]
meissner [Wed, 1 Jun 2016 20:09:35 +0000 (20:09 +0000)] 
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237006 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
jvdelisle [Wed, 1 Jun 2016 17:06:50 +0000 (17:06 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237003 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Wed, 1 Jun 2016 16:54:18 +0000 (16:54 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237002 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/c-family/ChangeLog:
doko [Wed, 1 Jun 2016 16:42:41 +0000 (16:42 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237001 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
ebotcazou [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236999 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
hubicka [Wed, 1 Jun 2016 15:26:46 +0000 (15:26 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236998 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Paul Thomas <pault@gcc.gnu.org>
pault [Wed, 1 Jun 2016 14:30:00 +0000 (14:30 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236996 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR middle-end/71371
jakub [Wed, 1 Jun 2016 14:24:02 +0000 (14:24 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236994 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Richard Biener <rguenther@suse.de>
rguenth [Wed, 1 Jun 2016 14:05:22 +0000 (14:05 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236993 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/ChangeLog:
kelvin [Wed, 1 Jun 2016 14:01:10 +0000 (14:01 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236992 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR target/67310
uros [Wed, 1 Jun 2016 13:44:37 +0000 (13:44 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236991 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
nathan [Wed, 1 Jun 2016 13:41:19 +0000 (13:41 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236990 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Richard Biener <rguenther@suse.de>
rguenth [Wed, 1 Jun 2016 13:08:24 +0000 (13:08 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236989 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * parse.c (case_decl): Move ST_OMP_* to ...
jakub [Wed, 1 Jun 2016 12:21:38 +0000 (12:21 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236987 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * loop-unroll.c (decide_unroll_constant_iterations,
hubicka [Wed, 1 Jun 2016 12:01:17 +0000 (12:01 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236986 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove the unused OMP_CLAUSE_DEVICE_RESIDENT
tschwinge [Wed, 1 Jun 2016 11:55:35 +0000 (11:55 +0000)] 
Remove the unused OMP_CLAUSE_DEVICE_RESIDENT

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236985 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARM] Use proper output modifier for DImode register in store exclusive patterns
ktkachov [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236984 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[ARM] Tie operand 1 to operand 0 in AESMC pattern when fusing AES/AESMC
ktkachov [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236982 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
ebotcazou [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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236981 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Richard Biener <rguenther@suse.de>
rguenth [Wed, 1 Jun 2016 10:33:35 +0000 (10:33 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236980 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Richard Biener <rguenther@suse.de>
rguenth [Wed, 1 Jun 2016 10:31:30 +0000 (10:31 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236979 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Paolo Carlini <paolo.carlini@oracle.com>
paolo [Wed, 1 Jun 2016 09:48:05 +0000 (09:48 +0000)] 
2016-06-01  Paolo Carlini  <paolo.carlini@oracle.com>

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236978 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-06-01 Richard Biener <rguenther@suse.de>
rguenth [Wed, 1 Jun 2016 09:00:57 +0000 (09:00 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236977 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR ada/71358
ebotcazou [Wed, 1 Jun 2016 07:43:57 +0000 (07:43 +0000)] 
PR ada/71358
* g-comlin.adb (Display_Section_Help): Do not dereference
Config.Switches if it's null.
(Getopt): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236975 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix PR tree-optimization/71314
ppalka [Wed, 1 Jun 2016 02:37:50 +0000 (02:37 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236974 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix PR tree-optimization/71077
ppalka [Wed, 1 Jun 2016 02:36:27 +0000 (02:36 +0000)] 
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236973 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDaily bump.
gccadmin [Wed, 1 Jun 2016 00:16:20 +0000 (00:16 +0000)] 
Daily bump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236972 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * g++.d/predict-lop-exit-1.C: Update template for new predictor name.
hubicka [Tue, 31 May 2016 23:33:08 +0000 (23:33 +0000)] 
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236968 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
hubicka [Tue, 31 May 2016 23:23:40 +0000 (23:23 +0000)] 
* doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
of flags impliying the register renaming.
* toplev.c (process_options): Do not imply flag_rename_registers with
loop peeling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236966 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * pt.c (instantiate_decl): Avoid recalculation.
jason [Tue, 31 May 2016 19:49:22 +0000 (19:49 +0000)] 
* pt.c (instantiate_decl): Avoid recalculation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236947 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/60095 - partial specialization of variable templates
jason [Tue, 31 May 2016 19:49:16 +0000 (19:49 +0000)] 
PR c++/60095 - partial specialization of variable templates

PR c++/69515
PR c++/69009
* pt.c (instantiate_template_1): Don't put the partial
specialization in DECL_TI_TEMPLATE.
(partial_specialization_p, impartial_args): Remove.
(regenerate_decl_from_template): Add args parm.
(instantiate_decl): Look up the partial specialization again.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236946 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/71227 - specializing hidden friend
jason [Tue, 31 May 2016 19:16:26 +0000 (19:16 +0000)] 
PR c++/71227 - specializing hidden friend

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236941 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * s-osinte-kfreebsd-gnu.ads (clock_getres): Define.
ebotcazou [Tue, 31 May 2016 18:59:36 +0000 (18:59 +0000)] 
* s-osinte-kfreebsd-gnu.ads (clock_getres): Define.
(Get_Page_Size): Remove duplicate and return int.

PR ada/71317
* s-osinte-rtems.ads (clock_getres): Define.
(Get_Page_Size): Remove duplicate and return int.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236938 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago/cp
paolo [Tue, 31 May 2016 17:17:29 +0000 (17:17 +0000)] 
/cp
2016-05-31  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71248
* decl.c (check_static_variable_definition): Use DECL_SOURCE_LOCATION
to obtain correct locations; avoid redundant diagnostics on
out-of-class definitions.

/testsuite
2016-05-31  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71248
* g++.dg/cpp0x/pr71248.C: New.
* g++.dg/cpp0x/auto7.C: Test column numbers too.
* g++.dg/cpp0x/constexpr-static8.C: Likewise.
* g++.dg/init/new37.C: Likewise.
* g++.dg/template/static1.C: Likewise.
* g++.dg/template/static2.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236931 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/
olegendo [Tue, 31 May 2016 15:57:15 +0000 (15:57 +0000)] 
gcc/
* config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
default implementation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236930 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236929 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoRemove SH5 target regs.
olegendo [Tue, 31 May 2016 15:49:13 +0000 (15:49 +0000)] 
Remove SH5 target regs.

gcc/
* config/sh/constraints.md (b): Remove constraint.
* config/sh/predicates.md (arith_reg_operand): Remove TARGET_REGISTER_P.
* config/sh/sh-modes.def (PDI): Remove.
* config/sh/sh.c (sh_target_reg_class,
sh_optimize_target_register_callee_saved): Remove functions.
(sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
(sh_expand_epilogue): Update comment.
(sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
sh_secondary_reload): Remove TARGET_REGS related code.
* config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
TARGET_REGISTER_P): Remove macros.
(SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
* config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
TR1_REG, TR2_REG): Remove constants.
* config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236928 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoSimplify SH DImode add, sub, neg patterns.
olegendo [Tue, 31 May 2016 15:27:54 +0000 (15:27 +0000)] 
Simplify SH DImode add, sub, neg patterns.

* config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
define_expand patterns.
(adddi3_compact): Rename to adddi3.
(subdi3_compact): Rename to subdi3.
(*negdi2): Rename to negdi2.
(*abs<mode>2): Rename to abs<mode>2.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236927 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix wrong-code issues of RX atomic operations.
olegendo [Tue, 31 May 2016 15:06:25 +0000 (15:06 +0000)] 
Fix wrong-code issues of RX atomic operations.

gcc/
* config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
(atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
(atomic_sub_fetchsi): ... this new pattern.
(mvtc): Add CC_REG clobber.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236926 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoScan %\[re\]di instead of %rdi
hjl [Tue, 31 May 2016 15:00:25 +0000 (15:00 +0000)] 
Scan %\[re\]di instead of %rdi

Since x32 may use 32-bit register in address, we should scan %\[re\]di
instead of %rdi.

* gcc.target/i386/avx512vl-vbroadcast-3.c: Scan %\[re\]di
instead of %rdi.
* gcc.target/i386/avx512vl-vcvtps2ph-3.c: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236925 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
mpolacek [Tue, 31 May 2016 14:55:05 +0000 (14:55 +0000)] 
* gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.

* c-c++-common/Wswitch-unreachable-3.c: New test.
* g++.dg/warn/Wswitch-unreachable-1.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236924 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Use aarch64_fusion_enabled_p to check for insn fusion capabilities
ktkachov [Tue, 31 May 2016 12:35:42 +0000 (12:35 +0000)] 
[AArch64] Use aarch64_fusion_enabled_p to check for insn fusion capabilities

* config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
aarch64_fusion_enabled_p to check for fusion capabilities.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236921 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-05-31 Richard Biener <rguenther@suse.de>
rguenth [Tue, 31 May 2016 12:18:15 +0000 (12:18 +0000)] 
2016-05-31  Richard Biener  <rguenther@suse.de>

PR tree-optimization/71352
* tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
minus one and a negate.

* gcc.dg/tree-ssa/reassoc-45.c: New testcase.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236920 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-05-31 Roger Sayle <roger@nextmovesoftware.com>
sayle [Tue, 31 May 2016 11:30:56 +0000 (11:30 +0000)] 
2016-05-31  Roger Sayle  <roger@nextmovesoftware.com>

gcc/java:
* builtins.c (java_builtins): Use popcount* and bswap* builtins to
implement bitCount() and reverseBytes() methods in java.lang.Integer
and friends.
(initialize_builtins): Annotate math builtins with ECF_LEAF.  Call
define_builtin for the new popcount* and bswap* builtins.

libjava:
* testsuite/libjava.lang/BuiltinBitCount.java: New test case.
* testsuite/libjava.lang/BuiltinReverseBytes.java: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236919 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDon't needlessly clear xmemdup allocated memory.
amodra [Tue, 31 May 2016 11:08:54 +0000 (11:08 +0000)] 
Don't needlessly clear xmemdup allocated memory.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236917 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[AArch64] Remove aarch64_simd_attr_length_move
ktkachov [Tue, 31 May 2016 11:04:41 +0000 (11:04 +0000)] 
[AArch64] Remove aarch64_simd_attr_length_move

* config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
Delete prototype.
* config/aarch64/iterators.md (insn_count): Add descriptive comment.
* config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
Remove use of aarch64_simd_attr_length_move, set length attribute
directly.
(*aarch64_be_movoi): Likewise.
(*aarch64_be_movci): Likewise.
(*aarch64_be_movxi): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236916 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
hubicka [Tue, 31 May 2016 10:42:59 +0000 (10:42 +0000)] 
* loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
It no longer does that.
* toplev.c (process_options): Do not enable flag_web with -fpeel-loops.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236915 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago[PATCH] AARCH64: Remove spurious attribute __unused__ from NEON intrinsic
jgreenhalgh [Tue, 31 May 2016 10:30:03 +0000 (10:30 +0000)] 
[PATCH] AARCH64: Remove spurious attribute __unused__ from NEON intrinsic

gcc/

* config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
attribute __unused__.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236914 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
thopre01 [Tue, 31 May 2016 10:10:18 +0000 (10:10 +0000)] 
2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
    * config/arm/arm.c (arm_arch_thumb1): Define.
    (arm_option_override): Initialize arm_arch_thumb1.
    * config/arm/arm.h (arm_arch_thumb1): Declare.
    (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
    support Thumb-1 ISA.

    gcc/testsuite/
    * gcc.target/arm/armv5_thumb_isa.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236913 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236911 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAVX-512. Limit constraint for scalar operand in split to AVX-512VL.
kyukhin [Tue, 31 May 2016 08:05:24 +0000 (08:05 +0000)] 
AVX-512. Limit constraint for scalar operand in split to AVX-512VL.

PR target/71346
gcc/
* config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
`Yv' for scalar operand.
testsuite/
* gcc.target/i386/pr71346.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236909 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoHandle 3-arg phi in copy_bb_and_scalar_dependences
vries [Tue, 31 May 2016 07:07:26 +0000 (07:07 +0000)] 
Handle 3-arg phi in copy_bb_and_scalar_dependences

2016-05-31  Tom de Vries  <tom@codesourcery.com>

PR tree-optimization/69068
* graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
phis with more than two args.

* gcc.dg/graphite/pr69068.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236907 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236906 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoPR c++/71306 - bogus -Wplacement-new with an array element
msebor [Mon, 30 May 2016 22:56:43 +0000 (22:56 +0000)] 
PR c++/71306 - bogus -Wplacement-new with an array element

gcc/cp/ChangeLog:
2016-05-27  Martin Sebor  <msebor@redhat.com>

PR c++/71306
* init.c (warn_placement_new_too_small): Handle placement new arguments
that are elements of arrays more carefully.  Remove a pointless loop.

gcc/testsuite/ChangeLog:
2016-05-27  Martin Sebor  <msebor@redhat.com>

PR c++/71306
* g++.dg/warn/Wplacement-new-size-3.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236902 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago PR c++/71349
jakub [Mon, 30 May 2016 21:36:24 +0000 (21:36 +0000)] 
PR c++/71349
* c-parser.c (c_parser_omp_for): Don't disallow nowait clause
when combined with target construct.

* parser.c (cp_parser_omp_for): Don't disallow nowait clause
when combined with target construct.
(cp_parser_omp_parallel): Pass cclauses == NULL as last argument
to cp_parser_omp_all_clauses.

* c-omp.c (c_omp_split_clauses): Put OMP_CLAUSE_DEPEND to
C_OMP_CLAUSE_SPLIT_TARGET.  Put OMP_CLAUSE_NOWAIT to
C_OMP_CLAUSE_SPLIT_TARGET if combined with target construct,
instead of C_OMP_CLAUSE_SPLIT_FOR.

* c-c++-common/gomp/clauses-1.c (bar): Add dd argument.  Add
nowait depend(inout: dd[0]) clauses where permitted.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236900 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
andreast [Mon, 30 May 2016 20:03:57 +0000 (20:03 +0000)] 
2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>

    * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
    armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
    target.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236898 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
paolo [Mon, 30 May 2016 19:33:34 +0000 (19:33 +0000)] 
2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>

* config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
tune_64.
* doc/install.texi (--with-cpu-32, --with-cpu-64): Document
support on SPARC.
* config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
cpu_32, cpu_64, tune_32 and tune_64.
* config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236897 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago/cp
paolo [Mon, 30 May 2016 19:18:13 +0000 (19:18 +0000)] 
/cp
2016-05-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71238
* lex.c (unqualified_name_lookup_error): Take a location too.
(unqualified_fn_lookup_error): Take a cp_expr.
* cp-tree.h (unqualified_name_lookup_error,
unqualified_fn_lookup_error): Adjust declarations.
* semantics.c (perform_koenig_lookup): Adjust
unqualified_fn_lookup_error call, pass the location of
the identifier too as part of a cp_expr.

/testsuite
2016-05-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71238
* g++.dg/parse/pr71238.C: New.
* g++.dg/concepts/friend1.C: Test column numbers too.
* g++.dg/cpp0x/initlist31.C: Likewise.
* g++.dg/cpp0x/pr51420.C: Likewise.
* g++.dg/cpp0x/udlit-declare-neg.C: Likewise.
* g++.dg/cpp0x/udlit-member-neg.C: Likewise.
* g++.dg/ext/builtin3.C: Likewise.
* g++.dg/lookup/friend12.C: Likewise.
* g++.dg/lookup/friend7.C: Likewise.
* g++.dg/lookup/koenig1.C: Likewise.
* g++.dg/lookup/koenig5.C: Likewise.
* g++.dg/lookup/used-before-declaration.C: Likewise.
* g++.dg/overload/koenig1.C: Likewise.
* g++.dg/template/crash65.C: Likewise.
* g++.dg/template/friend57.C: Likewise.
* g++.dg/warn/Wshadow-5.C: Likewise.
* g++.dg/warn/Wunused-8.C: Likewise.
* g++.old-deja/g++.bugs/900211_01.C: Likewise.
* g++.old-deja/g++.jason/lineno5.C: Likewise.
* g++.old-deja/g++.jason/member.C: Likewise.
* g++.old-deja/g++.jason/report.C: Likewise.
* g++.old-deja/g++.jason/scoping12.C: Likewise.
* g++.old-deja/g++.law/visibility20.C: Likewise.
* g++.old-deja/g++.ns/koenig5.C: Likewise.
* g++.old-deja/g++.other/static5.C: Likewise.
* g++.old-deja/g++.pt/overload2.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236896 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
uros [Mon, 30 May 2016 19:06:38 +0000 (19:06 +0000)] 
* config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236895 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoDon't cause ICEs when auto profile file is not found with checking
ak [Mon, 30 May 2016 18:13:12 +0000 (18:13 +0000)] 
Don't cause ICEs when auto profile file is not found with checking

Currently, on a checking enabled compiler when -fauto-profile does
not find the profile feedback file it errors out with assertation
failures. Add proper errors for this case.

gcc/:

2016-05-30  Andi Kleen  <ak@linux.intel.com>

* auto-profile.c (read_profile): Replace asserts with errors
when file does not exist.
* gcov-io.c (gcov_read_words): Dito.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236894 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-cfg.c (print_loop): Print likely upper bounds.
hubicka [Mon, 30 May 2016 17:59:24 +0000 (17:59 +0000)] 
* tree-cfg.c (print_loop): Print likely upper bounds.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236893 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
hubicka [Mon, 30 May 2016 17:58:19 +0000 (17:58 +0000)] 
* doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
* opts.c (default_options): Enable peel loops at -O3.
* tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
(try_peel_loop): Do not re-peel already peeled loops;
use likely upper bounds; fix profile updating.
(pass_complete_unroll::execute): Initialize peeled_loops.

* gcc.dg/tree-ssa/peel1.c: New testcase.
* gcc.dg/tree-ssa/pr61743-1.c: Disable loop peeling.
* gcc.dg/tree-ssa/pr61743-2.c: Disable loop peeling.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236892 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoAdd profiling support for IVOPTS
marxin [Mon, 30 May 2016 16:04:50 +0000 (16:04 +0000)] 
Add profiling support for IVOPTS

* tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
computed costs by frequency of BB they belong to.
(get_scaled_computation_cost_at): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236888 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agoFix pr69067.c testcase
vries [Mon, 30 May 2016 15:50:55 +0000 (15:50 +0000)] 
Fix pr69067.c testcase

2016-05-30  Tom de Vries  <tom@codesourcery.com>

* gcc.dg/graphite/pr69067.c (main): Remove superfluous argument in call
to ce.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236886 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago/cp
paolo [Mon, 30 May 2016 15:10:51 +0000 (15:10 +0000)] 
/cp
2016-05-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71099
* parser.c (cp_parser_function_specifier_opt): Use current_class_type
to improve the diagnostic about wrong uses of 'virtual'.

/testsuite
2016-05-30  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/71099
* g++.dg/parse/virtual1.C: New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236885 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * gcc.target/i386/iamcu/args.h (clear_non_sret_int_hardware_registers):
uros [Mon, 30 May 2016 14:50:44 +0000 (14:50 +0000)] 
* gcc.target/i386/iamcu/args.h (clear_non_sret_int_hardware_registers):
Use correct register when clearing %edx.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236883 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agomatch.pd: optimize unsigned mul overflow check
amonakov [Mon, 30 May 2016 14:37:02 +0000 (14:37 +0000)] 
match.pd: optimize unsigned mul overflow check

gcc/
2016-05-28  Alexander Monakov  <amonakov@ispras.ru>
            Marc Glisse  <marc.glisse@inria.fr>

PR tree-optimization/71289
* match.pd (-1 / B < A, A > -1 / B): New transformations.

gcc/testsuite/
2016-05-28  Alexander Monakov  <amonakov@ispras.ru>

PR tree-optimization/71289
* gcc.dg/pr71289.c: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236882 138bc75d-0d04-0410-961f-82ee72b054a4

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236880 138bc75d-0d04-0410-961f-82ee72b054a4

9 years ago * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
hubicka [Mon, 30 May 2016 13:25:02 +0000 (13:25 +0000)] 
* tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
for peeled copies; avoid underflow when updating estimates; correctly
scale loop profile.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236878 138bc75d-0d04-0410-961f-82ee72b054a4

9 years agogcc/ChangeLog:
kugan [Mon, 30 May 2016 11:01:06 +0000 (11:01 +0000)] 
gcc/ChangeLog:

2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>

* tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix typo from commit
r236875. Corrected oe3 to oe2 as obvious.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@236877 138bc75d-0d04-0410-961f-82ee72b054a4