]> git.ipfire.org Git - thirdparty/gcc.git/log
thirdparty/gcc.git
10 years agoalways define STACK_GROWS_DOWNWARD
Trevor Saunders [Fri, 22 May 2015 01:03:11 +0000 (01:03 +0000)] 
always define STACK_GROWS_DOWNWARD

gcc/c-family/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* c-cppbuiltin.c (c_cpp_builtins): Check the value of
STACK_GROWS_DOWNWARD rather than if it is defined.

gcc/ChangeLog:

2015-05-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* *.c: Check the value of STACK_GROWS_DOWNWARD rather than if it
is defined.
* config/**/*.h: Define STACK_GROWS_DOWNWARD to an integer.
* defaults.h: Provide default for STACK_GROWS_DOWNWARD.
* doc/tm.texi.in: Update references to STACK_GROWS_DOWNWARD.
* doc/tm.texi: Regenerate.

From-SVN: r223513

10 years agoDaily bump.
GCC Administrator [Fri, 22 May 2015 00:16:18 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r223512

10 years agosimd.exp: Skip all tests if no arm_neon_ok effective target support.
Sandra Loosemore [Thu, 21 May 2015 23:02:18 +0000 (19:02 -0400)] 
simd.exp: Skip all tests if no arm_neon_ok effective target support.

2015-05-21  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* gcc.target/arm/simd/simd.exp: Skip all tests if no arm_neon_ok
effective target support.  If no arm_neon_hw support, do not attempt
to execute the tests; only compile them.
* gcc.target/arm/simd/vextf32_1.c: Remove explicit "dg-do run"
and "dg-require-effective-target arm_neon_ok".
* gcc.target/arm/simd/vextp16_1.c: Likewise.
* gcc.target/arm/simd/vextp64_1.c: Likewise.
* gcc.target/arm/simd/vextp8_1.c: Likewise.
* gcc.target/arm/simd/vextQf32_1.c: Likewise.
* gcc.target/arm/simd/vextQp16_1.c: Likewise.
* gcc.target/arm/simd/vextQp64_1.c: Likewise.
* gcc.target/arm/simd/vextQp8_1.c: Likewise.
* gcc.target/arm/simd/vextQs16_1.c: Likewise.
* gcc.target/arm/simd/vextQs32_1.c: Likewise.
* gcc.target/arm/simd/vextQs64_1.c: Likewise.
* gcc.target/arm/simd/vextQs8_1.c: Likewise.
* gcc.target/arm/simd/vextQu16_1.c: Likewise.
* gcc.target/arm/simd/vextQu32_1.c: Likewise.
* gcc.target/arm/simd/vextQu64_1.c: Likewise.
* gcc.target/arm/simd/vextQu8_1.c: Likewise.
* gcc.target/arm/simd/vexts16_1.c: Likewise.
* gcc.target/arm/simd/vexts32_1.c: Likewise.
* gcc.target/arm/simd/vexts64_1.c: Likewise.
* gcc.target/arm/simd/vexts8_1.c: Likewise.
* gcc.target/arm/simd/vextu16_1.c: Likewise.
* gcc.target/arm/simd/vextu32_1.c: Likewise.
* gcc.target/arm/simd/vextu64_1.c: Likewise.
* gcc.target/arm/simd/vextu8_1.c: Likewise.
* gcc.target/arm/simd/vrev16p8_1.c: Likewise.
* gcc.target/arm/simd/vrev16qp8_1.c: Likewise.
* gcc.target/arm/simd/vrev16qs8_1.c: Likewise.
* gcc.target/arm/simd/vrev16qu8_1.c: Likewise.
* gcc.target/arm/simd/vrev16s8_1.c: Likewise.
* gcc.target/arm/simd/vrev16u8_1.c: Likewise.
* gcc.target/arm/simd/vrev32p16_1.c: Likewise.
* gcc.target/arm/simd/vrev32p8_1.c: Likewise.
* gcc.target/arm/simd/vrev32qp16_1.c: Likewise.
* gcc.target/arm/simd/vrev32qp8_1.c: Likewise.
* gcc.target/arm/simd/vrev32qs16_1.c: Likewise.
* gcc.target/arm/simd/vrev32qs8_1.c: Likewise.
* gcc.target/arm/simd/vrev32qu16_1.c: Likewise.
* gcc.target/arm/simd/vrev32qu8_1.c: Likewise.
* gcc.target/arm/simd/vrev32s16_1.c: Likewise.
* gcc.target/arm/simd/vrev32s8_1.c: Likewise.
* gcc.target/arm/simd/vrev32u16_1.c: Likewise.
* gcc.target/arm/simd/vrev32u8_1.c: Likewise.
* gcc.target/arm/simd/vrev64f32_1.c: Likewise.
* gcc.target/arm/simd/vrev64p16_1.c: Likewise.
* gcc.target/arm/simd/vrev64p8_1.c: Likewise.
* gcc.target/arm/simd/vrev64qf32_1.c: Likewise.
* gcc.target/arm/simd/vrev64qp16_1.c: Likewise.
* gcc.target/arm/simd/vrev64qp8_1.c: Likewise.
* gcc.target/arm/simd/vrev64qs16_1.c: Likewise.
* gcc.target/arm/simd/vrev64qs32_1.c: Likewise.
* gcc.target/arm/simd/vrev64qs8_1.c: Likewise.
* gcc.target/arm/simd/vrev64qu16_1.c: Likewise.
* gcc.target/arm/simd/vrev64qu32_1.c: Likewise.
* gcc.target/arm/simd/vrev64qu8_1.c: Likewise.
* gcc.target/arm/simd/vrev64s16_1.c: Likewise.
* gcc.target/arm/simd/vrev64s32_1.c: Likewise.
* gcc.target/arm/simd/vrev64s8_1.c: Likewise.
* gcc.target/arm/simd/vrev64u16_1.c: Likewise.
* gcc.target/arm/simd/vrev64u32_1.c: Likewise.
* gcc.target/arm/simd/vrev64u8_1.c: Likewise.
* gcc.target/arm/simd/vtrnf32_1.c: Likewise.
* gcc.target/arm/simd/vtrnp16_1.c: Likewise.
* gcc.target/arm/simd/vtrnp8_1.c: Likewise.
* gcc.target/arm/simd/vtrnqf32_1.c: Likewise.
* gcc.target/arm/simd/vtrnqp16_1.c: Likewise.
* gcc.target/arm/simd/vtrnqp8_1.c: Likewise.
* gcc.target/arm/simd/vtrnqs16_1.c: Likewise.
* gcc.target/arm/simd/vtrnqs32_1.c: Likewise.
* gcc.target/arm/simd/vtrnqs8_1.c: Likewise.
* gcc.target/arm/simd/vtrnqu16_1.c: Likewise.
* gcc.target/arm/simd/vtrnqu32_1.c: Likewise.
* gcc.target/arm/simd/vtrnqu8_1.c: Likewise.
* gcc.target/arm/simd/vtrns16_1.c: Likewise.
* gcc.target/arm/simd/vtrns32_1.c: Likewise.
* gcc.target/arm/simd/vtrns8_1.c: Likewise.
* gcc.target/arm/simd/vtrnu16_1.c: Likewise.
* gcc.target/arm/simd/vtrnu32_1.c: Likewise.
* gcc.target/arm/simd/vtrnu8_1.c: Likewise.
* gcc.target/arm/simd/vuzpf32_1.c: Likewise.
* gcc.target/arm/simd/vuzpp16_1.c: Likewise.
* gcc.target/arm/simd/vuzpp8_1.c: Likewise.
* gcc.target/arm/simd/vuzpqf32_1.c: Likewise.
* gcc.target/arm/simd/vuzpqp16_1.c: Likewise.
* gcc.target/arm/simd/vuzpqp8_1.c: Likewise.
* gcc.target/arm/simd/vuzpqs16_1.c: Likewise.
* gcc.target/arm/simd/vuzpqs32_1.c: Likewise.
* gcc.target/arm/simd/vuzpqs8_1.c: Likewise.
* gcc.target/arm/simd/vuzpqu16_1.c: Likewise.
* gcc.target/arm/simd/vuzpqu32_1.c: Likewise.
* gcc.target/arm/simd/vuzpqu8_1.c: Likewise.
* gcc.target/arm/simd/vuzps16_1.c: Likewise.
* gcc.target/arm/simd/vuzps32_1.c: Likewise.
* gcc.target/arm/simd/vuzps8_1.c: Likewise.
* gcc.target/arm/simd/vuzpu16_1.c: Likewise.
* gcc.target/arm/simd/vuzpu32_1.c: Likewise.
* gcc.target/arm/simd/vuzpu8_1.c: Likewise.
* gcc.target/arm/simd/vzipf32_1.c: Likewise.
* gcc.target/arm/simd/vzipp16_1.c: Likewise.
* gcc.target/arm/simd/vzipp8_1.c: Likewise.
* gcc.target/arm/simd/vzipqf32_1.c: Likewise.
* gcc.target/arm/simd/vzipqp16_1.c: Likewise.
* gcc.target/arm/simd/vzipqp8_1.c: Likewise.
* gcc.target/arm/simd/vzipqs16_1.c: Likewise.
* gcc.target/arm/simd/vzipqs32_1.c: Likewise.
* gcc.target/arm/simd/vzipqs8_1.c: Likewise.
* gcc.target/arm/simd/vzipqu16_1.c: Likewise.
* gcc.target/arm/simd/vzipqu32_1.c: Likewise.
* gcc.target/arm/simd/vzipqu8_1.c: Likewise.
* gcc.target/arm/simd/vzips16_1.c: Likewise.
* gcc.target/arm/simd/vzips32_1.c: Likewise.
* gcc.target/arm/simd/vzips8_1.c: Likewise.
* gcc.target/arm/simd/vzipu16_1.c: Likewise.
* gcc.target/arm/simd/vzipu32_1.c: Likewise.
* gcc.target/arm/simd/vzipu8_1.c: Likewise.

From-SVN: r223508

10 years agobb-slp-pr65935.c: Remove explicit "dg-do run".
Sandra Loosemore [Thu, 21 May 2015 23:00:32 +0000 (19:00 -0400)] 
bb-slp-pr65935.c: Remove explicit "dg-do run".

2015-05-21  Sandra Loosemore  <sandra@codesourcery.com>

gcc/testsuite/
* gcc.dg/vect/bb-slp-pr65935.c: Remove explicit "dg-do run".
* gcc.dg/vect/pr59354.c: Likewise.
* gcc.dg/vect/pr64252.c: Likewise.
* gcc.dg/vect/pr64404.c: Likewise.
* gcc.dg/vect/pr64493.c: Likewise.
* gcc.dg/vect/pr64495.c: Likewise.
* gcc.dg/vect/pr64844.c: Likewise.
* gcc.dg/vect/pr65518.c: Likewise.
* gcc.dg/vect/vect-aggressive-1.c: Likewise.

From-SVN: r223507

10 years agore PR c++/66210 (Variable template specialization does not work with alias-declarations)
Paolo Carlini [Thu, 21 May 2015 22:39:32 +0000 (22:39 +0000)] 
re PR c++/66210 (Variable template specialization does not work with alias-declarations)

2015-05-21  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66210
* g++.dg/cpp1y/var-templ28.C: New.

From-SVN: r223506

10 years agoAllow indirect branch via GOT slot for x32
H.J. Lu [Thu, 21 May 2015 21:58:57 +0000 (21:58 +0000)] 
Allow indirect branch via GOT slot for x32

X32 doesn't support indirect branch via 32-bit memory slot since
indirect branch will load 64-bit address from 64-bit memory slot.
Since x32 GOT slot is 64-bit, we should allow indirect branch via GOT
slot for x32.

gcc/

PR target/66232
* config/i386/constraints.md (Bg): New constraint for GOT memory
operand.
* config/i386/i386.md (*call_got_x32): New pattern.
(*call_value_got_x32): Likewise.
* config/i386/predicates.md (GOT_memory_operand): New predicate.

gcc/testsuite/

PR target/66232
* gcc.target/i386/pr66232-1.c: New test.
* gcc.target/i386/pr66232-2.c: Likewise.
* gcc.target/i386/pr66232-3.c: Likewise.
* gcc.target/i386/pr66232-4.c: Likewise.
* gcc.target/i386/pr66232-5.c: Likewise.

From-SVN: r223505

10 years agore PR c++/60943 ([C++14] Return type deduction interferes with ref-qualifiers)
Nathan Sidwell [Thu, 21 May 2015 20:50:45 +0000 (20:50 +0000)] 
re PR c++/60943 ([C++14] Return type deduction interferes with ref-qualifiers)

cp/
PR c++/60943
* decl2.c (change_return_type): Propagate FUNCTION_REF_QUALIFIED.

testsuite/
* g++.dg/cpp1y/pr60943.C: New.

From-SVN: r223502

10 years agore PR tree-optimization/66233 (internal compiler error: in expand_fix, at optabs...
Jakub Jelinek [Thu, 21 May 2015 19:17:28 +0000 (21:17 +0200)] 
re PR tree-optimization/66233 (internal compiler error: in expand_fix, at optabs.c:5358)

PR tree-optimization/66233
* match.pd (ocvt (icvt@1 @0)): Don't handle vector types.
Simplify.

* gcc.c-torture/execute/pr66233.c: New test.

From-SVN: r223500

10 years agore PR fortran/66176 (Handle conjg() in inline matmul)
Thomas Koenig [Thu, 21 May 2015 19:00:45 +0000 (19:00 +0000)] 
re PR fortran/66176 (Handle conjg() in inline matmul)

2015-05-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66176
* frontend-passes.c (check_conjg_variable):  New function.
(inline_matmul_assign):  Use it to keep track of conjugated
variables.

2015-05-21  Thomas Koenig  <tkoenig@gcc.gnu.org>

PR fortran/66176
* gfortran.dg/inline_matmul_11.f90:  New test

From-SVN: r223499

10 years agopr32219-1.c: Use 'dg-require-effective-target pie' instead of listing several targets...
Andreas Tobler [Thu, 21 May 2015 18:13:06 +0000 (20:13 +0200)] 
pr32219-1.c: Use 'dg-require-effective-target pie' instead of listing several targets on its own.

2015-05-21  Andreas Tobler  <andreast@gcc.gnu.org>

    * gcc.target/i386/pr32219-1.c: Use 'dg-require-effective-target pie'
    instead of listing several targets on its own.
    * gcc.target/i386/pr32219-2.c: Likewise.
    * gcc.target/i386/pr32219-3.c: Likewise.
    * gcc.target/i386/pr32219-4.c: Likewise.
    * gcc.target/i386/pr32219-5.c: Likewise.
    * gcc.target/i386/pr32219-6.c: Likewise
    * gcc.target/i386/pr32219-7.c: Likewise.
    * gcc.target/i386/pr32219-8.c: Likewise.
    * gcc.target/i386/pr39013-1.c: Likewise.
    * gcc.target/i386/pr39013-2.c: Likewise.
    * gcc.target/i386/pr64317.c: Likewise.

From-SVN: r223498

10 years agoinclhack.def (aix_externc): New fix.
David Edelsohn [Thu, 21 May 2015 17:25:00 +0000 (17:25 +0000)] 
inclhack.def (aix_externc): New fix.

* inclhack.def (aix_externc): New fix.
(aix_externcpp[12]): New fix.
* fixincl.x: Regenerate.
* test/base/ctype.h [AIX_EXTERNC_CHECK]: New test.
* test/base/sys/socket.h [AIX_EXTERNCPP[12]_CHECK]: New test.
* test/base/fcntl.h: New file.

From-SVN: r223497

10 years agore PR target/66224 (PowerPC _GLIBCXX_READ_MEM_BARRIER too weak)
David Edelsohn [Thu, 21 May 2015 17:18:25 +0000 (13:18 -0400)] 
re PR target/66224 (PowerPC _GLIBCXX_READ_MEM_BARRIER too weak)

        PR target/66224
        * config/cpu/powerpc/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER):
        Don't use isync. Use lwsync if available.
        * configure.host (atomic_word_dir) [aix[56789]*]: Delete to use
        powerpc cpu definition.

From-SVN: r223496

10 years agopa.md (add-with-constant splitter): Use ASHIFT rather than MULT for shadd sequences.
Jeff Law [Thu, 21 May 2015 17:18:16 +0000 (11:18 -0600)] 
pa.md (add-with-constant splitter): Use ASHIFT rather than MULT for shadd sequences.

* config/pa/pa.md (add-with-constant splitter): Use ASHIFT rather
than MULT for shadd sequences.

* gcc.target/hppa/shadd-4.c: New test.

From-SVN: r223495

10 years agorevert: configure.ac: Add -std=c++98 to stage1_cxxflags.
Jason Merrill [Thu, 21 May 2015 17:05:33 +0000 (13:05 -0400)] 
revert: configure.ac: Add -std=c++98 to stage1_cxxflags.

Revert:
       * configure.ac: Add -std=c++98 to stage1_cxxflags.
       * Makefile.tpl (STAGE1_CXXFLAGS): And substitute it.
       * Makefile.in, configure: Regenerate.

From-SVN: r223494

10 years agoalias.c (alias_stats): New static var.
Jan Hubicka [Thu, 21 May 2015 15:51:59 +0000 (17:51 +0200)] 
alias.c (alias_stats): New static var.

* alias.c (alias_stats): New static var.
(alias_sets_conflict_p, alias_sets_must_conflict_p): Update stats.
(dump_alias_stats_in_alias_c): New function.
* alias.h (dump_alias_stats_in_alias_c): Declare.
* tree-ssa-alias.c (dump_alias_stats): Call it.

From-SVN: r223491

10 years agoSee <https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01977.html> for
Marek Polacek [Thu, 21 May 2015 15:30:09 +0000 (15:30 +0000)] 
See <https://gcc.gnu.org/ml/gcc-patches/2015-05/msg01977.html> for
the rationale.

Bootstrapped/regtested on x86_64-linux, applying to trunk.

2015-05-21  Marek Polacek  <polacek@redhat.com>

* c-typeck.c (inform_declaration): Use DECL_IS_BUILTIN instead of
DECL_BUILT_IN.

diff --git gcc/c/c-typeck.c gcc/c/c-typeck.c
index ba8797b..f55d4c6 100644
--- gcc/c/c-typeck.c
+++ gcc/c/c-typeck.c
@@ -2853,9 +2853,10 @@ build_function_call (location_t loc, tree function, tree params)

 /* Give a note about the location of the declaration of DECL.  */

-static void inform_declaration (tree decl)
+static void
+inform_declaration (tree decl)
 {
-  if (decl && (TREE_CODE (decl) != FUNCTION_DECL || !DECL_BUILT_IN (decl)))
+  if (decl && (TREE_CODE (decl) != FUNCTION_DECL || !DECL_IS_BUILTIN (decl)))
     inform (DECL_SOURCE_LOCATION (decl), "declared here");
 }

From-SVN: r223490

10 years ago* typeck.c (warn_args_num): Don't print "declare here" for builtins.
Marek Polacek [Thu, 21 May 2015 15:27:12 +0000 (15:27 +0000)] 
* typeck.c (warn_args_num): Don't print "declare here" for builtins.

From-SVN: r223489

10 years agodel_opv.cc: Suppress -Wsized-deallocation.
Jason Merrill [Thu, 21 May 2015 15:12:40 +0000 (11:12 -0400)] 
del_opv.cc: Suppress -Wsized-deallocation.

* libsupc++/del_opv.cc: Suppress -Wsized-deallocation.
* libsupc++/del_op.cc: Likewise.

From-SVN: r223488

10 years agoconfigure.ac: Add -std=c++98 to stage1_cxxflags.
Jason Merrill [Thu, 21 May 2015 15:12:35 +0000 (11:12 -0400)] 
configure.ac: Add -std=c++98 to stage1_cxxflags.

* configure.ac: Add -std=c++98 to stage1_cxxflags.
* Makefile.tpl (STAGE1_CXXFLAGS): And substitute it.
* Makefile.in, configure: Regenerate.

From-SVN: r223487

10 years agotree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p to strided_p.
Michael Matz [Thu, 21 May 2015 14:36:04 +0000 (14:36 +0000)] 
tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p to strided_p.

* tree-vectorizer.h (struct _stmt_vec_info): Rename stride_load_p
to strided_p.
(STMT_VINFO_STRIDE_LOAD_P): Rename to ...
(STMT_VINFO_STRIDED_P): ... this.
* tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust.
(vect_verify_datarefs_alignment): Likewise.
(vect_enhance_data_refs_alignment): Likewise.
(vect_analyze_data_ref_access): Likewise.
(vect_analyze_data_refs): Accept strided stores.
* tree-vect-stmts.c (vect_model_store_cost): Count strided stores.
(vect_model_load_cost): Adjust for macro rename.
(vectorizable_mask_load_store): Likewise.
(vectorizable_load): Likewise.
(vectorizable_store): Open code strided stores.

testsuite/
* gcc.dg/vect/vect-strided-store.c: New test.
* gfortran.dg/vect/fast-math-pr37021.f90: Adjust.
* gfortran.dg/vect/fast-math-rnflow-trs2a2.f90: Adjust.

From-SVN: r223486

10 years agoTestsuite check for sqrt_insn. Move pow/sqrt synth test from gcc.target/aarch64/...
Kyrylo Tkachov [Thu, 21 May 2015 13:30:24 +0000 (13:30 +0000)] 
Testsuite check for sqrt_insn. Move pow/sqrt synth test from gcc.target/aarch64/ to to gcc.dg/

* lib/target-supports.exp (check_effective_target_sqrt_insn): New check.
* gcc.dg/pow-sqrt-synth-1.c: New test.
* gcc.target/aarch64/pow-sqrt-synth-1.c: Delete.

* doc/sourcebuild.texi (7.2.3.9 Other hardware attributes):
Document sqrt_insn.

From-SVN: r223485

10 years agoeinfo.adb (Contract): This attribute now applies to constants.
Hristian Kirtchev [Thu, 21 May 2015 13:26:51 +0000 (13:26 +0000)] 
einfo.adb (Contract): This attribute now applies to constants.

2015-05-21  Hristian Kirtchev  <kirtchev@adacore.com>

* einfo.adb (Contract): This attribute now applies to constants.
(Set_Contract): This attribute now applies to constants.
(Write_Field34_Name): Add output for constants.
* einfo.ads Attribute Contract now applies to constants.
* sem_ch3.adb (Analyze_Object_Contract): Constants now have
their Part_Of indicator verified.
* sem_prag.adb (Analyze_Constituent): A constant is now a valid
constituent.
(Analyze_Global_Item): A constant cannot act as an output.
(Analyze_Initialization_Item): Constants are now a valid
initialization item.
(Analyze_Initializes_In_Decl_Part): Rename
global variable States_And_Vars to States_And_Objs and update
all its occurrences.
(Analyze_Input_Item): Constants are now a
valid initialization item. Remove SPARM RM references from error
messages.
(Analyze_Pragma): Indicator Part_Of can now apply to a constant.
(Collect_Body_States): Collect both source constants
and variables.
(Collect_States_And_Objects): Collect both source constants and
variables.
(Collect_States_And_Variables): Rename
to Collect_States_And_Objects and update all its occurrences.
(Collect_Visible_States): Do not collect constants and variables
used to map generic formals to actuals.
(Find_Role): The role of a constant is that of an input. Separate the
role of a variable from that of a constant.
(Report_Unused_Constituents): Add specialized wording for constants.
(Report_Unused_States): Add specialized wording for constants.
* sem_util.adb (Add_Contract_Item): Add processing for constants.
* sem_util.ads (Add_Contract_Item): Update the comment on usage.
(Find_Placement_In_State_Space): Update the comment on usage.

From-SVN: r223484

10 years agore PR c++/66211 (Rvalue conversion in ternary operator causes internal compiler error)
Richard Biener [Thu, 21 May 2015 13:23:41 +0000 (13:23 +0000)] 
re PR c++/66211 (Rvalue conversion in ternary operator causes internal compiler error)

2015-05-21  Richard Biener  <rguenther@suse.de>

PR c++/66211
* match.pd: Guard pattern optimzing (int)(float)int
conversions to apply only on GIMPLE.

* g++.dg/conversion/pr66211.C: New testcase.
* gcc.dg/tree-ssa/forwprop-18.c: Adjust.

From-SVN: r223483

10 years ago[multiple changes]
Arnaud Charlet [Thu, 21 May 2015 13:12:18 +0000 (15:12 +0200)] 
[multiple changes]

2015-05-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb: minor reformatting.

2015-05-21  Robert Dewar  <dewar@adacore.com>

* freeze.adb (Freeze_Entity): Properly tag -gnatw.z messages.

From-SVN: r223482

10 years agocombine.c (find_split_point): Handle ASHIFT like MULT to encourage multiply-accumulat...
Jeff Law [Thu, 21 May 2015 12:44:44 +0000 (06:44 -0600)] 
combine.c (find_split_point): Handle ASHIFT like MULT to encourage multiply-accumulate/shift-add insn generation.

* combine.c (find_split_point): Handle ASHIFT like MULT to encourage
multiply-accumulate/shift-add insn generation.

* gcc.target/hppa/shadd-2.c: New test.

From-SVN: r223481

10 years agopa.c (pa_print_operand): New 'o' output modifier.
Jeff Law [Thu, 21 May 2015 12:44:35 +0000 (06:44 -0600)] 
pa.c (pa_print_operand): New 'o' output modifier.

2015-05-20  Jeff Law  <law@redhat.com>

* config/pa/pa.c (pa_print_operand): New 'o' output modifier.
(pa_mem_shadd_constant_p): Renamed from pa_shadd_constant_p.
(pa_shadd_constant_p): Allow constants for shadd insns rather
than valid scaling constants for memory addresses.
* config/pa/pa-protos.h (pa_mem_shadd_constant_p): Add prototype.
* config/pa/predicates.md (mem_shadd_operand): New predicate.
* config/pa/pa.md (shift-add insns using MULT): Use mem_shadd_operand.
(shift-add insns using ASHIFT): New patterns.

* gcc.target/hppa/hppa.exp: New target test driver.
* gcc.target/hppa/shadd-1.c: New test.

From-SVN: r223480

10 years agore PR target/54236 ([SH] Improve addc and subc insn utilization)
Oleg Endo [Thu, 21 May 2015 12:36:35 +0000 (12:36 +0000)] 
re PR target/54236 ([SH] Improve addc and subc insn utilization)

gcc/
PR target/54236
* config/sh/sh.md (*round_int_even): Reject pattern if operands[0] and
operands[1] are the same.

gcc/testsuite/
PR target/54236
* gcc.target/sh/pr54236-2.c: Fix typo in comment.

From-SVN: r223479

10 years ago[multiple changes]
Arnaud Charlet [Thu, 21 May 2015 10:51:22 +0000 (12:51 +0200)] 
[multiple changes]

2015-05-21  Robert Dewar  <dewar@adacore.com>

* freeze.adb: Minor reformatting.
* cstand.adb (Print_Standard): Fix bad printing of Duration
low bound.
* a-reatim.adb (Time_Of): Complete rewrite to properly detect
out of range args.

2015-05-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch5.adb: add (useless) initial value.
* sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram):
Check whether the procedure has parameters before processing
formals in ASIS mode.

From-SVN: r223477

10 years agoMinor reformatting.
Arnaud Charlet [Thu, 21 May 2015 10:47:50 +0000 (12:47 +0200)] 
Minor reformatting.

From-SVN: r223476

10 years agosem_ch13.adb (Check_Iterator_Functions): Emit error on Iterator aspect as well when...
Ed Schonberg [Thu, 21 May 2015 10:47:34 +0000 (10:47 +0000)] 
sem_ch13.adb (Check_Iterator_Functions): Emit error on Iterator aspect as well when indexing function is illegal.

2015-05-21  Ed Schonberg  <schonberg@adacore.com>

* sem_ch13.adb (Check_Iterator_Functions): Emit error on Iterator
aspect as well when indexing function is illegal.
(Valid_Default_Iterator): Handle properly somme illegal cases
to prevent compilation abandoned messages.
(Check_Primitive_Function): Verify that type and indexing function
are in the same scope.
* freeze.adb (Freeze_Record): Extend patch on the presence of
indexing aspects to aspect Default_Iterator.

From-SVN: r223475

10 years agore PR target/26702 (.size is not emitted for BSS variables)
Ramana Radhakrishnan [Thu, 21 May 2015 09:23:14 +0000 (09:23 +0000)] 
re PR target/26702 (.size is not emitted for BSS variables)

Fix PR target/26702

For Kwok Cheung Yeung.

From-SVN: r223473

10 years agore PR middle-end/66221 (lto1: error: type variant has different TYPE_ARG_TYPES)
Ilya Enkovich [Thu, 21 May 2015 08:32:52 +0000 (08:32 +0000)] 
re PR middle-end/66221 (lto1: error: type variant has different TYPE_ARG_TYPES)

gcc/

PR middle-end/66221
* ipa-chkp.c (chkp_copy_function_type_adding_bounds): Use
build_distinct_type_copy to copy bounds.

gcc/testsuite/

PR middle-end/66221
* gcc.dg/lto/pr66221_0.c: New test.
* gcc.dg/lto/pr66221_1.c: New test.

From-SVN: r223471

10 years agore PR c/52952 (Wformat location info is bad (wrong column number))
Manuel López-Ibáñez [Thu, 21 May 2015 06:49:38 +0000 (06:49 +0000)] 
re PR c/52952 (Wformat location info is bad (wrong column number))

gcc/testsuite/ChangeLog:

2015-05-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/52952
* gcc.dg/redecl-4.c: Update column numbers.
* gcc.dg/format/bitfld-1.c: Likewise.
* gcc.dg/format/attr-2.c: Likewise.
* gcc.dg/format/attr-6.c: Likewise.
* gcc.dg/format/attr-7.c (baz): Likewise.
* gcc.dg/format/asm_fprintf-1.c: Likewise.
* gcc.dg/format/attr-4.c: Likewise.
* gcc.dg/format/branch-1.c: Likewise.
* gcc.dg/format/c90-printf-1.c: Likewise. Add tests for column
locations within strings with embedded escape sequences.

gcc/c-family/ChangeLog:

2015-05-21  Manuel López-Ibáñez  <manu@gcc.gnu.org>

PR c/52952
* c-format.c (location_column_from_byte_offset): New.
(location_from_offset): New.
(struct format_wanted_type): Add offset_loc field.
(check_format_info): Move handling of location for extra arguments
closer to the point of warning.
(check_format_info_main): Pass the result of location_from_offset
to warning_at.
(format_type_warning): Pass the result of location_from_offset
to warning_at.

From-SVN: r223470

10 years agogenrecog: Address -Wsign-compare diagnostics.
Thomas Schwinge [Thu, 21 May 2015 06:46:55 +0000 (08:46 +0200)] 
genrecog: Address -Wsign-compare diagnostics.

    g++-4.6 [...] [...]/gcc/genrecog.c
    [...]/gcc/genrecog.c: In function 'state_size find_subroutines(routine_type, state*, vec<state*>&)':
    [...]/gcc/genrecog.c:3338:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    [...]/gcc/genrecog.c:3347:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    [...]/gcc/genrecog.c:3359:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    [...]/gcc/genrecog.c:3365:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]

    3305   state_size size;
         [...]
    3337           state_size to_size = find_subroutines (type, trans->to, procs);
    3338           if (d->next && to_size.depth > MAX_DEPTH)
         [...]
    3347               if (to_size.num_statements < MIN_NUM_STATEMENTS)
         [...]
    3359   if (size.num_statements > MAX_NUM_STATEMENTS)
         [...]
    3365              && size.num_statements > MAX_NUM_STATEMENTS)

     175 static const int MAX_DEPTH = 6;
         [...]
     179 static const int MIN_NUM_STATEMENTS = 5;
         [...]
     185 static const int MAX_NUM_STATEMENTS = 200;
         [...]
    3258 struct state_size
    3259 {
         [...]
    3261   unsigned int num_statements;
         [...]
    3265   unsigned int depth;
    3266 };

gcc/
* genrecog.c (MAX_DEPTH, MIN_NUM_STATEMENTS, MAX_NUM_STATEMENTS):
Change to unsigned int.

From-SVN: r223469

10 years agoDaily bump.
GCC Administrator [Thu, 21 May 2015 00:16:15 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r223468

10 years agore PR libgcc/66225 (libgcc/config/rs6000/morecore.S will not build on systems with...
Alan Modra [Wed, 20 May 2015 23:55:08 +0000 (09:25 +0930)] 
re PR libgcc/66225 (libgcc/config/rs6000/morecore.S will not build on systems with an older assembler)

PR libgcc/66225
* config/rs6000/morestack.S: Remove ".abiversion 1".

From-SVN: r223464

10 years agopt.c (tsubst_decl): SET_DECL_IMPLICIT_INSTANTIATION before register_specialization.
Jason Merrill [Wed, 20 May 2015 21:32:52 +0000 (17:32 -0400)] 
pt.c (tsubst_decl): SET_DECL_IMPLICIT_INSTANTIATION before register_specialization.

* pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
before register_specialization.

From-SVN: r223461

10 years agodecl.c (grok_op_properties): Don't complain about size_t placement delete here.
Jason Merrill [Wed, 20 May 2015 21:32:46 +0000 (17:32 -0400)] 
decl.c (grok_op_properties): Don't complain about size_t placement delete here.

* decl.c (grok_op_properties): Don't complain about size_t
placement delete here.
* call.c (second_parm_is_size_t): Split out from...
(non_placement_deallocation_fn_p): ...here.
(build_op_delete_call): Warn about size_t placement delete with
-Wc++14-compat.

From-SVN: r223460

10 years agoformatter.h (_GLIBCXX_TYPEID): New macro to simplify usage of typeid.
François Dumont [Wed, 20 May 2015 19:44:25 +0000 (19:44 +0000)] 
formatter.h (_GLIBCXX_TYPEID): New macro to simplify usage of typeid.

2015-05-20  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/formatter.h (_GLIBCXX_TYPEID): New macro to simplify
usage of typeid.
(_Error_formatter::_M_print_type): New.
* src/c++11/debug.cc
(_Error_formatter::_Parameter::_M_print_field): Use latter.
(_Error_formatter::_M_print_type): Implement latter using
__cxaabiv1::__cxa_demangle to print demangled type name.

From-SVN: r223455

10 years agoPromote types of RTL expressions to more derived ones.
Mikhail Maltsev [Wed, 20 May 2015 19:39:42 +0000 (19:39 +0000)] 
Promote types of RTL expressions to more derived ones.

* bb-reorder.c (set_edge_can_fallthru_flag): Use rtx_jump_insn where
feasible.
(fix_up_fall_thru_edges): Likewise.
(fix_crossing_conditional_branches): Likewise. Promote jump targets
from to rtx_insn to rtx_code_label where feasible.
* bt-load.c (move_btr_def): Remove as-a cast of the value returned by
gen_move_insn (returned type changed to rtx_insn).
* builtins.c (expand_errno_check): Fix arguments of
do_compare_rtx_and_jump (now expects rtx_code_label).
(expand_builtin_acc_on_device): Likewise.
* cfgcleanup.c (try_simplify_condjump): Add cast when calling
invert_jump (now exprects rtx_jump_insn).
* cfgexpand.c (label_rtx_for_bb): Promote return type to rtx_code_label.
(construct_init_block): Use rtx_code_label.
* cfgrtl.c (block_label): Promote return type to rtx_code_label.
(try_redirect_by_replacing_jump): Use cast to rtx_jump_insn when
calling redirect_jump.
(patch_jump_insn): Likewise.
(redirect_branch_edge): Likewise.
(force_nonfallthru_and_redirect): Likewise.
(fixup_reorder_chain): Explicitly use rtx_jump_insn instead of rtx_insn
when suitable.
(rtl_lv_add_condition_to_bb): Update call of do_compare_rtx_and_jump.
* cfgrtl.h: Promote return type of block_label to rtx_code_label.
* config/bfin/bfin.c (hwloop_optimize): Fix call of emit_label_before.
* config/i386/i386.c (ix86_emit_cmove): Explicitly use rtx_code_label
to store the value retured by gen_label_rtx.
* config/mips/mips.c (mips16_split_long_branches): Promote rtx_insn to
rtx_jump_insn.
* config/sh/sh.c (gen_far_branch): Likewise. Fix call of invert_jump.
(split_branches): Fix calls of redirect_jump.
* dojump.c (jumpifnot): Promote argument type from rtx to rtx_code_label.
(jumpifnot_1): Likewise.
(jumpif): Likewise.
(jumpif_1): Likewise.
(do_jump_1): Likewise.
(do_jump): Likewise. Use rtx_code_label when feasible.
(do_jump_by_parts_greater_rtx): Likewise.
(do_jump_by_parts_zero_rtx): Likewise.
(do_jump_by_parts_equality_rtx): Likewise.
(do_compare_rtx_and_jump): Likewise.
* dojump.h: Update function prototypes.
* dse.c (emit_inc_dec_insn_before): Remove case (gen_move_insn now
returns rtx_insn).
* emit-rtl.c (emit_jump_insn_before_noloc): Promote return type to
rtx_jump_insn.
(emit_label_before): Likewise.
(emit_jump_insn_after_noloc): Likewise.
(emit_jump_insn_after_setloc): Likewise.
(emit_jump_insn_after): Likewise
(emit_jump_insn_before_setloc): Likewise.
(emit_jump_insn_before): Likewise.
(emit_label_before): Promote return type to rtx_code_label.
(emit_label): Likewise.
* except.c (sjlj_emit_dispatch_table): Use jump_target_rtx.
* explow.c (emit_stack_save): Use gen_move_insn_uncast instead of
gen_move_insn.
(emit_stack_restore): Likewise.
* expmed.c (emit_store_flag_force): Fix calls of do_compare_rtx_and_jump.
(do_cmp_and_jump): Likewise.
* expr.c (expand_expr_real_2): Likewise. Promote some local variables
from rtx to rtx_code_label.
(gen_move_insn_uncast): New function.
* expr.h: Update return type of gen_move_insn (promote to rtx_insn).
* function.c (convert_jumps_to_returns): Fix call of redirect_jump.
* gcse.c (pre_insert_copy_insn): Use rtx_insn instead of rtx.
* ifcvt.c (dead_or_predicable): Use rtx_jump_insn when calling
invert_jump_1 and redirect_jump_1.
* internal-fn.c (expand_arith_overflow_result_store): Fix call of
do_compare_rtx_and_jump.
(expand_addsub_overflow): Likewise.
(expand_neg_overflow): Likewise.
(expand_mul_overflow): Likewise.
* ira.c (split_live_ranges_for_shrink_wrap): Use rtx_insn for
return value of gen_move_insn.
* jump.c (redirect_jump): Promote argument from rtx to rtx_jump_insn.
* loop-doloop.c (add_test): Use rtx_code_label.
(doloop_modify): Likewise.
(doloop_optimize): Likewise.
* loop-unroll.c (compare_and_jump_seq): Promote rtx to rtx_code_label.
* lra-constraints.c (emit_spill_move): Remove cast of value returned
by gen_move_insn.
(inherit_reload_reg): Add cast when calling dump_insn_slim.
(split_reg): Likewise.
* modulo-sched.c (schedule_reg_moves): Remove cast of value returned by
gen_move_insn.
* optabs.c (expand_binop_directly): Remove casts of values returned by
maybe_gen_insn.
(expand_unop_direct): Likewise.
(expand_abs): Likewise.
(maybe_emit_unop_insn): Likewise.
(maybe_gen_insn): Promote return type to rtx_insn.
* optabs.h: Update prototype of maybe_gen_insn.
* postreload-gcse.c (eliminate_partially_redundant_load): Remove
redundant cast.
* recog.c (struct peep2_insn_data): Promote type of insn field to
rtx_insn.
(peep2_reinit_state): Use NULL instead of NULL_RTX.
(peep2_attempt): Remove casts of insn in peep2_insn_data.
(peep2_fill_buffer): Promote argument from rtx to rtx_insn
* recog.h (struct insn_gen_fn): Promote return types of function
pointers and operator ().from rtx to rtx_insn.
* reorg.c (fill_simple_delay_slots): Promote rtx_insn to rtx_jump_insn.
(fill_eager_delay_slots): Likewise.
(relax_delay_slots): Likewise.
(make_return_insns): Likewise.
(dbr_schedule): Likewise.
(optimize_skips): Likewise.
(reorg_redirect_jump): Likewise.
(fill_slots_from_thread): Likewise.
* reorg.h: Update prototypes.
* resource.c (find_dead_or_set_registers): Use dyn_cast to
rtx_jump_insn instead of check.  Use it's jump_target method.
* rtl.h (rtx_jump_insn::jump_label): Define new method.
(rtx_jump_insn::jump_target): Define new method.
(rtx_jump_insn::set_jump_target): Define new method.
* rtlanal.c (tablejump_p): Promote type of one local variable.
* sched-deps.c (sched_analyze_2): Promote rtx to rtx_insn_list.
(sched_analyze_insn): Likewise.
* sched-vis.c (print_insn_with_notes): Promote rtx to rtx_insn.
(print_insn): Likewise.
* stmt.c (label_rtx): Promote return type to rtx_insn.
(force_label_rtx): Likewise.
(jump_target_rtx): Define new function.
(expand_label): Use it, get rid of one cast.
(expand_naked_return): Promote rtx to rtx_code_label.
(do_jump_if_equal): Fix do_compare_rtx_and_jump call.
(expand_case): Use rtx_code_label instread of rtx where feasible.
(expand_sjlj_dispatch_table): Likewise.
(emit_case_nodes): Likewise.
* stmt.h: Declare jump_target_rtx.  Update prototypes.  Fix comments.
* store-motion.c (insert_store): Make use of new return type of
gen_move_insn and remove a cast.
(replace_store_insn): Likewise.

From-SVN: r223454

10 years ago2015-05-20 François Dumont <fdumont@gcc.gnu.org>
François Dumont [Wed, 20 May 2015 19:02:22 +0000 (19:02 +0000)] 
2015-05-20  François Dumont  <fdumont@gcc.gnu.org>

* include/bits/cpp_type_traits.h
(std::move_iterator): Delete declaration.
(std::__is_move_iterator<move_iterator>): Move partial specialization...
* include/bits/stl_iterator.h: ... here.
(std::__miter_base): Overloads for std::reverse_iterator and
std::move_iterator.
* include/bits/stl_algobase.h (std::__miter_base): Provide default
implementation.

From-SVN: r223453

10 years agore PR target/65730 (xtensa: ICE in libstdc++-v3/include/bits/atomic_base.h: In functi...
Max Filippov [Wed, 20 May 2015 18:56:14 +0000 (18:56 +0000)] 
re PR target/65730 (xtensa: ICE in libstdc++-v3/include/bits/atomic_base.h: In function ‘bool std::atomic_flag_test_and_set_explicit(std::__atomic_flag_base*, std::memory_order)’)

Fix PR target/65730

2015-05-20  Max Filippov  <jcmvbkbc@gmail.com>
gcc/
* config/xtensa/xtensa.c (init_alignment_context): Replace MULT
by BITS_PER_UNIT with ASHIFT by exact_log2 (BITS_PER_UNIT).

From-SVN: r223452

10 years agothumb1-far-jump-2.c (r4): Added int in definition.
Alex Velenko [Wed, 20 May 2015 18:04:41 +0000 (18:04 +0000)] 
thumb1-far-jump-2.c (r4): Added int in definition.

gcc/testsuite

2015-05-20  Alex Velenko  <Alex.Velenko@arm.com>

        * gcc.target/arm/thumb1-far-jump-2.c (r4): Added int in definition.

From-SVN: r223451

10 years ago* testsuite/util/testsuite_fs.h (nonexistent_path): Don't use tempnam.
Jonathan Wakely [Wed, 20 May 2015 17:28:04 +0000 (18:28 +0100)] 
* testsuite/util/testsuite_fs.h (nonexistent_path): Don't use tempnam.

From-SVN: r223450

10 years agore PR libstdc++/66078 (20_util/specialized_algorithms/uninitialized_copy/808590.cc...
Jonathan Wakely [Wed, 20 May 2015 17:11:03 +0000 (18:11 +0100)] 
re PR libstdc++/66078 (20_util/specialized_algorithms/uninitialized_copy/808590.cc fails with -std=c++11)

PR libstdc++/66078
* include/bits/stl_iterator.h (__make_move_if_noexcept_iterator): Add
overload for pointers.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
808590.cc: Add -std=gnu++03 switch.
* testsuite/20_util/specialized_algorithms/uninitialized_copy/
808590-cxx11.cc: Copy of 808590.cc to test with -std=gnu++11.
* testsuite/23_containers/vector/modifiers/push_back/
strong_guarantee.cc: New.

From-SVN: r223449

10 years agotree-ssa-threadupdate.c (mark_threaded_blocks): Properly dispose of the jump thread...
Jeff Law [Wed, 20 May 2015 16:36:30 +0000 (10:36 -0600)] 
tree-ssa-threadupdate.c (mark_threaded_blocks): Properly dispose of the jump thread path when...

       * tree-ssa-threadupdate.c (mark_threaded_blocks): Properly
        dispose of the jump thread path when the jump threading
        opportunity is cancelled.

From-SVN: r223448

10 years ago-Wmisleading-indentation: Increase test coverage
David Malcolm [Wed, 20 May 2015 16:09:19 +0000 (16:09 +0000)] 
-Wmisleading-indentation: Increase test coverage

gcc/testsuite/ChangeLog:
* c-c++-common/Wmisleading-indentation.c (fn_32): New.
(fn_33_k_and_r_style): New.
(fn_33_stroustrup_style): New.
(fn_33_allman_style): New.
(fn_33_whitesmiths_style): New.
(fn_33_horstmann_style): New.
(fn_33_ratliff_banner_style): New.
(fn_33_lisp_style): New.
(fn_34_indent_dash_gnu): New.
(fn_34_indent_dash_kr): New.
(fn_34_indent_dash_orig): New.
(fn_34_indent_linux_style): New.

From-SVN: r223447

10 years agodiagnostic.c (diagnostic_print_caret_line): Fix off-by-one error when printing the...
Manuel López-Ibáñez [Wed, 20 May 2015 15:58:15 +0000 (15:58 +0000)] 
diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error when printing the caret character.

gcc/ChangeLog

2015-05-20  Manuel López-Ibáñez  <manu@gcc.gnu.org>

       * diagnostic.c (diagnostic_print_caret_line): Fix off-by-one error
       when printing the caret character.

From-SVN: r223446

10 years agore PR fortran/65548 (gfc_conv_procedure_call)
Andre Vehreschild [Wed, 20 May 2015 14:56:47 +0000 (16:56 +0200)] 
re PR fortran/65548 (gfc_conv_procedure_call)

gcc/fortran/ChangeLog:

2015-05-19  Andre Vehreschild  <vehre@gmx.de>

PR fortran/65548
* trans-stmt.c (gfc_trans_allocate): Always retrieve the
descriptor or a reference to a source= expression for
arrays and non-arrays, respectively.  Use a temporary
symbol and gfc_trans_assignment for all source=
assignments to allocated objects besides for class and
derived types.

gcc/testsuite/ChangeLog:

2015-05-19  Andre Vehreschild  <vehre@gmx.de>

PR fortran/65548
* gfortran.dg/allocate_with_source_5.f90: Extend test.

From-SVN: r223445

10 years agocfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.
Marek Polacek [Wed, 20 May 2015 11:47:18 +0000 (11:47 +0000)] 
cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.

* cfgexpand.c (expand_debug_expr): Use UNARY_CLASS_P.

* c-omp.c (check_omp_for_incr_expr): Use BINARY_CLASS_P.

From-SVN: r223442

10 years agoexpr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
Marek Polacek [Wed, 20 May 2015 11:46:00 +0000 (11:46 +0000)] 
expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.

* expr.c (expand_cond_expr_using_cmove): Use COMPARISON_CLASS_P.
* gimple-expr.c (gimple_cond_get_ops_from_tree): Likewise.
* gimple-fold.c (canonicalize_bool): Likewise.
(same_bool_result_p): Likewise.
* tree-if-conv.c (parse_predicate): Likewise.

From-SVN: r223441

10 years agogimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
Marek Polacek [Wed, 20 May 2015 11:45:07 +0000 (11:45 +0000)] 
gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.

* gimple-fold.c (fold_const_aggregate_ref_1): Use DECL_P.
* gimplify.c (gimplify_modify_expr_rhs): Likewise.

* c-ada-spec.c (dump_sloc): Use DECL_P.

From-SVN: r223440

10 years ago[AArch64][obvious] In aarch64_class_max_nregs use UNITS_PER_VREG and UNITS_PER_WORD
Kyrylo Tkachov [Wed, 20 May 2015 11:41:45 +0000 (11:41 +0000)] 
[AArch64][obvious] In aarch64_class_max_nregs use UNITS_PER_VREG and UNITS_PER_WORD

* config/aarch64/aarch64.c (aarch64_class_max_nregs):
Use UNITS_PER_VREG and UNITS_PER_WORD instead of their direct
values.

From-SVN: r223439

10 years agoAdd missing declaration.
Robert Suchanek [Wed, 20 May 2015 10:35:21 +0000 (10:35 +0000)] 
Add missing declaration.

gcc/
* config/mips/mips.h (micromips_globals): Declare.

From-SVN: r223438

10 years agoc-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
Marek Polacek [Wed, 20 May 2015 10:10:07 +0000 (10:10 +0000)] 
c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.

* c-pragma.c: Use VAR_OR_FUNCTION_DECL_P throughout.
* c-common.c: Likewise.

* c-decl.c: Use VAR_OR_FUNCTION_DECL_P throughout.
* c-typeck.c: Likewise.

From-SVN: r223437

10 years agoIntroduce TV_INITIALIZE_RTL
David Malcolm [Wed, 20 May 2015 09:23:36 +0000 (09:23 +0000)] 
Introduce TV_INITIALIZE_RTL

gcc/ChangeLog:
* timevar.def (TV_INITIALIZE_RTL): New.
* toplev.c (initialize_rtl): Use an auto_timevar to account this
function's time to TV_INITIALIZE_RTL.

From-SVN: r223436

10 years agolibcpp: Eliminate most of the non-const/reference-returning inline fns
David Malcolm [Wed, 20 May 2015 09:13:19 +0000 (09:13 +0000)] 
libcpp: Eliminate most of the non-const/reference-returning inline fns

gcc/java/ChangeLog:
* jcf-parse.c (set_source_filename): Replace write through
ORDINARY_MAP_FILE_NAME with direct access to "to_file".

libcpp/ChangeLog:
* include/line-map.h (MAP_START_LOCATION): Eliminate the non-const
variant, and tweak comment for the const variant.
(ORDINARY_MAP_STARTING_LINE_NUMBER): Drop the non-const variant.
(ORDINARY_MAP_INCLUDER_FILE_INDEX): Likewise.
(ORDINARY_MAP_IN_SYSTEM_HEADER_P): Likewise.
(SET_ORDINARY_MAP_NUMBER_OF_COLUMN_BITS): Delete.
(ORDINARY_MAP_FILE_NAME): Drop the non-const variant.
(MACRO_MAP_MACRO): Likewise.
(MACRO_MAP_NUM_MACRO_TOKENS): Likewise.
(MACRO_MAP_LOCATIONS): Likewise.
(MACRO_MAP_EXPANSION_POINT_LOCATION): Likewise.
* line-map.c (linemap_add): Replace writes through macros with
direct field accesses.
(linemap_enter_macro): Likewise.
(linemap_line_start): Likewise.

From-SVN: r223435

10 years agotree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless gimple_build_nop...
Ilya Enkovich [Wed, 20 May 2015 08:23:00 +0000 (08:23 +0000)] 
tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless gimple_build_nop calls.

* tree-chkp.c (chkp_maybe_copy_and_register_bounds): Remove useless
gimple_build_nop calls.
(chkp_find_bounds_for_elem): Likewise.
(chkp_get_zero_bounds): Likewise.
(chkp_get_none_bounds): Likewise.
(chkp_get_bounds_by_definition): Likewise.
(chkp_generate_extern_var_bounds): Likewise.
(chkp_get_bounds_for_decl_addr): Likewise.
(chkp_get_bounds_for_string_cst): Likewise.

From-SVN: r223434

10 years agore PR tree-optimization/65447 (AArch64: iv-opt causes bad addressing)
Bin Cheng [Wed, 20 May 2015 05:15:56 +0000 (05:15 +0000)] 
re PR tree-optimization/65447 (AArch64: iv-opt causes bad addressing)

PR tree-optimization/65447
* tree-ssa-loop-ivopts.c (struct iv_use): New fields.
(dump_use, dump_uses): Support to dump sub use.
(record_use): New parameters to support sub use.  Remove call to
dump_use.
(record_sub_use, record_group_use): New functions.
(compute_max_addr_offset, split_all_small_groups): New functions.
(group_address_uses, rewrite_use_address): New functions.
(strip_offset): New declaration.
(find_interesting_uses_address): Call record_group_use.
(add_candidate): New assertion.
(infinite_cost_p): Move definition forward.
(add_costs): Check INFTY cost and return immediately.
(get_computation_cost_at): Clear setup cost and dependent bitmap
for sub uses.
(determine_use_iv_cost_address): Compute cost for sub uses.
(rewrite_use_address_1): Rename from old rewrite_use_address.
(free_loop_data): Free sub uses.
(tree_ssa_iv_optimize_loop): Call group_address_uses.

gcc/testsuite
PR tree-optimization/65447
* gcc.dg/tree-ssa/pr65447.c: New test.

From-SVN: r223433

10 years agoaarch-common-protos.h (struct mem_cost_table): Added new fields loadv and storev.
Kugan Vivekanandarajah [Wed, 20 May 2015 03:05:10 +0000 (03:05 +0000)] 
aarch-common-protos.h (struct mem_cost_table): Added new fields loadv and storev.

gcc/ChangeLog:

2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
    Jim Wilson  <jim.wilson@linaro.org>

* config/arm/aarch-common-protos.h (struct mem_cost_table): Added
new  fields loadv and storev.
* config/aarch64/aarch64-cost-tables.h (thunderx_extra_costs):
Initialize loadv and storev.
* config/arm/aarch-cost-tables.h (generic_extra_costs): Likewise.
(cortexa53_extra_costs): Likewise.
(cortexa57_extra_costs): Likewise.
(xgene1_extra_costs): Likewise.
* config/aarch64/aarch64.c (aarch64_rtx_costs): Update vector
rtx_costs.

2015-05-20  Kugan Vivekanandarajah  <kuganv@linaro.org>

* config/arm/arm.c (cortexa9_extra_costs): Initialize loadv and
 storev.
(cortexa8_extra_costs): Likewise.
(cortexa5_extra_costs): Likewise.
(cortexa7_extra_costs): Likewise.
(cortexa12_extra_costs): Likewise.
(cortexa15_extra_costs): Likewise.
(v7m_extra_costs): Likewise.

Co-Authored-By: Jim Wilson <jim.wilson@linaro.org>
From-SVN: r223432

10 years agotree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread instead of open...
Jeff Law [Wed, 20 May 2015 02:21:29 +0000 (20:21 -0600)] 
tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread instead of open-coded version.

       * tree-ssa-threadupdate.c (thread_single_edge): Use delete_jump_thread
        instead of open-coded version.  Also delete the jump thread created
        within this function.

From-SVN: r223431

10 years agore PR c++/65954 (gcc segfaults on the following input with a syntax error)
Nathan Sidwell [Wed, 20 May 2015 01:54:09 +0000 (01:54 +0000)] 
re PR c++/65954 (gcc segfaults on the following input with a syntax error)

cp/
PR c++/65954
* typeck.c (finish_class_member_access_expr): Diagnose failed
lookup of enum class member.

testsuite/
* g++.dg/cpp0x/pr65954.C: New.

From-SVN: r223430

10 years agors6000.c (rs6000_emit_allocate_stack): Return stack adjusting insn.
Alan Modra [Wed, 20 May 2015 01:30:48 +0000 (11:00 +0930)] 
rs6000.c (rs6000_emit_allocate_stack): Return stack adjusting insn.

* config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Return
stack adjusting insn.  Formatting.
(rs6000_emit_prologue): Track stack adjusting insn, and use of
r12.  If possible, emit first -fsplit-stack arg pointer insn
before stack adjust.  Don't use r12 to save cr if split-stack.

From-SVN: r223427

10 years agors6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.
Alan Modra [Wed, 20 May 2015 01:26:28 +0000 (10:56 +0930)] 
rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK): Define.

gcc/
* common/config/rs6000/rs6000-common.c (TARGET_SUPPORTS_SPLIT_STACK):
Define.
(rs6000_supports_split_stack): New function.
* gcc/config/rs6000/rs6000.c (machine_function): Add
split_stack_arg_pointer.
(TARGET_EXTRA_LIVE_ON_ENTRY, TARGET_INTERNAL_ARG_POINTER): Define.
(setup_incoming_varargs): Use crtl->args.internal_arg_pointer
rather than virtual_incoming_args_rtx.
(rs6000_va_start): Likewise.
(split_stack_arg_pointer_used_p): New function.
(rs6000_emit_prologue): Set up arg pointer for -fsplit-stack.
(morestack_ref): New var.
(gen_add3_const, rs6000_expand_split_stack_prologue,
rs6000_internal_arg_pointer, rs6000_live_on_entry,
rs6000_split_stack_space_check): New functions.
(rs6000_elf_file_end): Call file_end_indicate_split_stack.
* gcc/config/rs6000/rs6000.md (UNSPEC_STACK_CHECK): Define.
(UNSPECV_SPLIT_STACK_RETURN): Define.
(split_stack_prologue, load_split_stack_limit,
load_split_stack_limit_di, load_split_stack_limit_si,
split_stack_return, split_stack_space_check): New expands and insns.
* gcc/config/rs6000/rs6000-protos.h
(rs6000_expand_split_stack_prologue): Declare.
(rs6000_split_stack_space_check): Declare.
libgcc/
* config/rs6000/morestack.S: New.
* config/rs6000/t-stack-rs6000: New.
* config.host (powerpc*-*-linux*): Add t-stack and t-stack-rs6000
to tmake_file.
* generic-morestack.c: Don't build for powerpc 32-bit.

From-SVN: r223426

10 years agors6000.c (struct rs6000_stack): Correct comments.
Alan Modra [Wed, 20 May 2015 01:17:45 +0000 (10:47 +0930)] 
rs6000.c (struct rs6000_stack): Correct comments.

* config/rs6000/rs6000.c (struct rs6000_stack): Correct comments.
(rs6000_stack_info): Don't zero offsets when not saving registers.
(debug_stack_info): Adjust to omit printing unused offsets,
as before.
(direct_return): Test vrsave_size rather than vrsave_mask.
(rs6000_emit_prologue): Likewise.  Remove redundant altivec tests.
(rs6000_emit_epilogue): Likewise.

From-SVN: r223425

10 years agors6000.c (rs6000_stack_info): Don't zero offsets when not saving registers.
Alan Modra [Wed, 20 May 2015 01:15:59 +0000 (10:45 +0930)] 
rs6000.c (rs6000_stack_info): Don't zero offsets when not saving registers.

* config/rs6000/rs6000.c (rs6000_stack_info): Don't zero offsets
when not saving registers.
(debug_stack_info): Adjust to omit printing unused offsets,
as before.
(rs6000_emit_epilogue): Adjust use_backchain_to_restore_sp
expression.

From-SVN: r223424

10 years agofixup hash table descriptor in winnt.c
Trevor Saunders [Wed, 20 May 2015 01:03:51 +0000 (01:03 +0000)] 
fixup hash table descriptor in winnt.c

gcc/ChangeLog:

2015-05-19  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

PR c++/65835
* config/i386/winnt.c (struct wrapped_symbol_hasher): Change
value_type to const char *.

From-SVN: r223423

10 years agoDaily bump.
GCC Administrator [Wed, 20 May 2015 00:16:17 +0000 (00:16 +0000)] 
Daily bump.

From-SVN: r223422

10 years agoconfig.gcc [...]: Allow --enable-targets=all to build a biarch toolchain again.
Sandra Loosemore [Wed, 20 May 2015 00:02:13 +0000 (20:02 -0400)] 
config.gcc [...]: Allow --enable-targets=all to build a biarch toolchain again.

2015-05-19  Sandra Loosemore  <sandra@codesourcery.com>

gcc/
* config.gcc [powerpc*-*-linux*]: Allow --enable-targets=all
to build a biarch toolchain again.

From-SVN: r223418

10 years agopr64366.c: Remove -m4 -ml from dg-options.
Oleg Endo [Tue, 19 May 2015 22:30:19 +0000 (22:30 +0000)] 
pr64366.c: Remove -m4 -ml from dg-options.

gcc/testsuite/
* gcc.target/sh/pr64366.c: Remove -m4 -ml from dg-options.

From-SVN: r223417

10 years agostl_list.h (_M_resize_pos(size_type&)): Declare.
Jonathan Wakely [Tue, 19 May 2015 22:24:50 +0000 (23:24 +0100)] 
stl_list.h (_M_resize_pos(size_type&)): Declare.

* include/bits/stl_list.h (_M_resize_pos(size_type&)): Declare.
(operator==(const list&, const list&)): If size() is O(1) compare
sizes before comparing each element.
* include/bits/list.tcc (list::_M_resize_pos(size_type&)): Define.
(list::resize): Use _M_resize_pos.

From-SVN: r223416

10 years agoipa-devirt.c (type_in_anonymous_namespace_p): Return true or implicit declarations.
Jan Hubicka [Tue, 19 May 2015 21:02:06 +0000 (23:02 +0200)] 
ipa-devirt.c (type_in_anonymous_namespace_p): Return true or implicit declarations.

* ipa-devirt.c (type_in_anonymous_namespace_p): Return true
or implicit declarations.
(odr_type_p): Check that TYPE_NAME is TYPE_DECL before looking
into it.
(get_odr_type): Check type has linkage before adding bases.
(register_odr_type): Check that type has linkage before adding it.
(type_known_to_have_no_deriavations_p): Rename to ..
(type_known_to_have_no_derivations_p): This one.
* ipa-utils.h (type_known_to_have_no_deriavations_p): Rename to ..
(type_known_to_have_no_derivations_p): This one.
* ipa-polymorphic-call.c
(ipa_polymorphic_call_context::restrict_to_inner_type): Check that
type has linkage.

From-SVN: r223415

10 years ago* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.
Marek Polacek [Tue, 19 May 2015 20:08:21 +0000 (20:08 +0000)] 
* c-typeck.c (start_init): Use AGGREGATE_TYPE_P.

From-SVN: r223414

10 years ago66055.cc: Add constructor invocations.
François Dumont [Tue, 19 May 2015 19:57:09 +0000 (19:57 +0000)] 
66055.cc: Add constructor invocations.

2015-05-19  François Dumont  <fdumont@gcc.gnu.org>

* testsuite/23_containers/unordered_map/cons/66055.cc: Add constructor
invocations.
* testsuite/23_containers/unordered_multimap/cons/66055.cc: Likewise.
* testsuite/23_containers/unordered_multiset/cons/66055.cc: Likewise.
* testsuite/23_containers/unordered_set/cons/66055.cc: Likewise.

From-SVN: r223413

10 years agoMakefile.in (LIBUNWIND): Move dependency for shared libgcc.
Eric Botcazou [Tue, 19 May 2015 19:02:55 +0000 (19:02 +0000)] 
Makefile.in (LIBUNWIND): Move dependency for shared libgcc.

* Makefile.in (LIBUNWIND): Move dependency for shared libgcc.
Remove useless endif/ifneq ($(enable_shared),yes) pair.

From-SVN: r223412

10 years agostor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
Eric Botcazou [Tue, 19 May 2015 18:06:46 +0000 (18:06 +0000)] 
stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.

* stor-layout.c (finalize_type_size): Use AGGREGATE_TYPE_P.
(layout_type): Use RECORD_OR_UNION_TYPE_P.

From-SVN: r223407

10 years agoS/390 Invalid vector binary ops
Andreas Krebbel [Tue, 19 May 2015 17:41:21 +0000 (17:41 +0000)] 
S/390 Invalid vector binary ops

This is a first try to implement at least some of the requirements
regarding the vector bool type documented for IBM XLC.

With this patch error messages will be issued for invalid uses of
vector bool types in binary operators.

vector bool types are being marked opaque in order to prevent the
front-end from complaining about "vector bool long" vs "vector bool
long long" combinations on 64 bit.  The opaque flag basically
suppresses any type checking. However, we still want vector bool to be
accepted only in contexts specified in the documentation (to be
published soon).  Implementing the invalid binary op hook does this
for binary operators at least.  But this is far from being complete :(

gcc/
* config/s390/s390.c (s390_vector_bool_type_p): New function.
(s390_invalid_binary_op): New function.
(TARGET_INVALID_BINARY_OP): Define macro.

From-SVN: r223404

10 years agoS/390 vector types are only 8 byte aligned.
Andreas Krebbel [Tue, 19 May 2015 17:39:42 +0000 (17:39 +0000)] 
S/390 vector types are only 8 byte aligned.

gcc/testsuite/
* lib/target-supports.exp: Vector do not always have natural
          alignment on s390*.

From-SVN: r223403

10 years agoloop-invariant.c (create_new_invariant): Don't calculate address cost if mode is...
David Sherwood [Tue, 19 May 2015 17:37:45 +0000 (17:37 +0000)] 
loop-invariant.c (create_new_invariant): Don't calculate address cost if mode is not a scalar integer.

2015-05-19  David Sherwood  <david.sherwood@arm.com>

* loop-invariant.c (create_new_invariant): Don't calculate address cost
if mode is not a scalar integer.
(get_inv_cost): Increase computational cost for unused invariants.

* gcc.dg/loop-invariant.c: New testcase.

From-SVN: r223402

10 years agoThese testcases require disabling hardware vector support on S/390.
Andreas Krebbel [Tue, 19 May 2015 17:36:19 +0000 (17:36 +0000)] 
These testcases require disabling hardware vector support on S/390.

gcc/testsuite/
* gcc.dg/tree-ssa/gen-vect-11b.c: Disable vector
  instructions on s390*.
  * gcc.dg/tree-ssa/gen-vect-11c.c: Likewise.

From-SVN: r223400

10 years agoS/390 Add zvector testcases.
Andreas Krebbel [Tue, 19 May 2015 17:35:08 +0000 (17:35 +0000)] 
S/390 Add zvector testcases.

gcc/testsuite/
* gcc.target/s390/zvector/vec-dbl-math-compile-1.c: New test.
* gcc.target/s390/zvector/vec-genbytemask-1.c: New test.
* gcc.target/s390/zvector/vec-genmask-1.c: New test.
* gcc.target/s390/zvector/vec-lcbb-1.c: New test.
* gcc.target/s390/zvector/vec-overloading-1.c: New test.
* gcc.target/s390/zvector/vec-overloading-2.c: New test.
* gcc.target/s390/zvector/vec-overloading-3.c: New test.
* gcc.target/s390/zvector/vec-overloading-4.c: New test.
* gcc.target/s390/zvector/vec-test-mask-1.c: New test.
* gcc.target/s390/zvector/vec-elem-1.c: New test.

From-SVN: r223399

10 years agoS/390 zvector builtin support.
Andreas Krebbel [Tue, 19 May 2015 17:32:07 +0000 (17:32 +0000)] 
S/390 zvector builtin support.

With this patch GCC implements an Altivec style set of builtins to
make use of vector instructions in C/C++ code.  This is provided for
compatibility with the IBM XL compiler.

gcc/
* config.gcc: Add vecintrin.h to extra_headers.  Add s390-c.o to
c_target_objs and cxx_target_objs.  Add t-s390 to tmake_file.
* config/s390/s390-builtin-types.def: New file.
* config/s390/s390-builtins.def: New file.
* config/s390/s390-builtins.h: New file.
* config/s390/s390-c.c: New file.
* config/s390/s390-modes.def: Add modes CCVEQANY, CCVH,
CCVHANY, CCVHU, CCVHUANY, CCVFHANY, CCVFHEANY.
* config/s390/s390-protos.h (s390_expand_vec_compare_cc)
(s390_cpu_cpp_builtins, s390_register_target_pragmas): Add
prototypes.
* config/s390/s390.c (s390-builtins.h, s390-builtins.def):
Include.
(flags_builtin, flags_overloaded_builtin_var, s390_builtin_types)
(s390_builtin_fn_types, s390_builtin_decls, code_for_builtin): New
variable definitions.
(s390_const_operand_ok): New function.
(s390_expand_builtin): Rewrite.
(s390_init_builtins): New function.
(s390_handle_vectorbool_attribute): New function.
(s390_attribute_table): Add s390_vector_bool attribute.
(s390_match_ccmode_set): Handle new cc modes CCVH, CCVHU.
(s390_branch_condition_mask): Generate masks for new modes.
(s390_expand_vec_compare_cc): New function.
(s390_mangle_type): Add mangling for vector bool types.
(enum s390_builtin): Remove.
(s390_atomic_assign_expand_fenv): Rename constants for sfpc and
efpc builtins.
* config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): Call
s390_cpu_cpp_builtins.
(REGISTER_TARGET_PRAGMAS): New macro.
* config/s390/s390.md: Define more UNSPEC_VEC_* constants.
(insn_cmp mode attribute): Add new CC modes.
(s390_sfpc, s390_efpc): Rename patterns to sfpc and efpc.
(lcbb): New pattern definition.
* config/s390/s390intrin.h: Include vecintrin.h.
* config/s390/t-s390: New file.
* config/s390/vecintrin.h: New file.
* config/s390/vector.md: Include vx-builtins.md.
* config/s390/vx-builtins.md: New file.S/390 zvector builtin support.

From-SVN: r223398

10 years agoS/390 Add vector scalar instruction support.
Andreas Krebbel [Tue, 19 May 2015 17:30:25 +0000 (17:30 +0000)] 
S/390 Add vector scalar instruction support.

With this patch GCC makes use of the vector instruction which are
available in single element mode.  By using these instructions scalar
double operations can use 32 registers.

gcc/
* config/s390/s390-modes.def: Add new modes CCVEQ, CCVFH, and
CCVFHE.
* config/s390/s390.c (s390_match_ccmode_set): Handle new modes.
(s390_select_ccmode): Likewise.
(s390_canonicalize_comparison): Swap operands if necessary.
(s390_expand_vec_compare_scalar): Expand DFmode compare using
single element vector instructions.
(s390_emit_compare): Call s390_expand_vec_compare_scalar.
(s390_branch_condition_mask): Generate CC masks for the new modes.
* config/s390/s390.md (v0, vf, vd): New mode attributes.
(VFCMP, asm_fcmp, insn_cmp): New mode iterator and attributes.
(*vec_cmp<insn_cmp>df_cconly, *fixuns_truncdfdi2_z13)
(*fix_trunc<BFP:mode><GPR:mode>2_bfp, *floatunsdidf2_z13)
(*floatuns<GPR:mode><FP:mode>2, *extendsfdf2_z13)
(*extend<DSF:mode><BFP:mode>2): New insn definition.
(fix_trunc<BFP:mode><GPR:mode>2_bfp, loatuns<GPR:mode><FP:mode>2)
(extend<DSF:mode><BFP:mode>2): Turn into expander.
(floatdi<mode>2, truncdfsf2, add<mode>3, sub<mode>3, mul<mode>3)
(div<mode>3, *neg<mode>2, *abs<mode>2, *negabs<mode>2)
(sqrt<mode>2): Add vector instruction.

gcc/testsuite/
* gcc.target/s390/vector/vec-scalar-cmp-1.c: New test.

From-SVN: r223397

10 years agoS/390: Vector base support - testcases
Andreas Krebbel [Tue, 19 May 2015 17:28:42 +0000 (17:28 +0000)] 
S/390: Vector base support - testcases

gcc/testsuite/
* gcc.target/s390/s390.exp
(check_effective_target_vector): New check.
* gcc.target/s390/vector/vec-abi-1.c: New test.
* gcc.target/s390/vector/vec-abi-2.c: New test.
* gcc.target/s390/vector/vec-abi-3.c: New test.
* gcc.target/s390/vector/vec-abi-4.c: New test.
* gcc.target/s390/vector/vec-abi-align-1.c: New test.
* gcc.target/s390/vector/vec-abi-single-1.c: New test.
* gcc.target/s390/vector/vec-abi-single-2.c: New test.
* gcc.target/s390/vector/vec-abi-struct-1.c: New test.
* gcc.target/s390/vector/vec-abi-vararg-1.c: New test.
* gcc.target/s390/vector/vec-abi-vararg-2.c: New test.
* gcc.target/s390/vector/vec-clobber-1.c: New test.
* gcc.target/s390/vector/vec-cmp-1.c: New test.
* gcc.target/s390/vector/vec-cmp-2.c: New test.
* gcc.target/s390/vector/vec-dbl-math-compile-1.c: New test.
* gcc.target/s390/vector/vec-genbytemask-1.c: New test.
* gcc.target/s390/vector/vec-genbytemask-2.c: New test.
* gcc.target/s390/vector/vec-genmask-1.c: New test.
* gcc.target/s390/vector/vec-genmask-2.c: New test.
* gcc.target/s390/vector/vec-init-1.c: New test.
* gcc.target/s390/vector/vec-int-math-compile-1.c: New test.
* gcc.target/s390/vector/vec-shift-1.c: New test.
* gcc.target/s390/vector/vec-sub-1.c: New test.

From-SVN: r223396

10 years agoS/390 Vector base support.
Andreas Krebbel [Tue, 19 May 2015 17:26:35 +0000 (17:26 +0000)] 
S/390 Vector base support.

gcc/
* config/s390/constraints.md (j00, jm1, jxx, jyy, v): New
constraints.
* config/s390/predicates.md (const0_operand, constm1_operand)
(constable_operand): Accept vector operands.
* config/s390/s390-modes.def: Add supported vector modes.
* config/s390/s390-protos.h (s390_cannot_change_mode_class)
(s390_function_arg_vector, s390_contiguous_bitmask_vector_p)
(s390_bytemask_vector_p, s390_expand_vec_strlen)
(s390_expand_vec_compare, s390_expand_vcond)
(s390_expand_vec_init): Add prototypes.
* config/s390/s390.c (VEC_ARG_NUM_REG): New macro.
(s390_vector_mode_supported_p): New function.
(s390_contiguous_bitmask_p): Mask out the irrelevant bits.
(s390_contiguous_bitmask_vector_p): New function.
(s390_bytemask_vector_p): New function.
(s390_split_ok_p): Vector regs don't work either.
(regclass_map): Add VEC_REGS.
(s390_legitimate_constant_p): Handle vector constants.
(s390_cannot_force_const_mem): Handle CONST_VECTOR.
(legitimate_reload_vector_constant_p): New function.
(s390_preferred_reload_class): Handle CONST_VECTOR.
(s390_reload_symref_address):  Likewise.
(s390_secondary_reload): Vector memory instructions only support
short displacements.  Rename reload*_nonoffmem* to reload*_la*.
(s390_emit_ccraw_jump): New function.
(s390_expand_vec_strlen): New function.
(s390_expand_vec_compare): New function.
(s390_expand_vcond): New function.
(s390_expand_vec_init): New function.
(s390_dwarf_frame_reg_mode): New function.
(print_operand): Handle addresses with 'O' and 'R' constraints.
(NR_C_MODES, constant_modes): Add vector modes.
(s390_output_pool_entry): Handle vector constants.
(s390_hard_regno_mode_ok): Handle vector registers.
(s390_class_max_nregs): Likewise.
(s390_cannot_change_mode_class): New function.
(s390_invalid_arg_for_unprototyped_fn): New function.
(s390_function_arg_vector): New function.
(s390_function_arg_float): Remove size variable.
(s390_pass_by_reference): Handle vector arguments.
(s390_function_arg_advance): Likewise.
(s390_function_arg): Likewise.
(s390_return_in_memory): Vector values are returned in a VR if
possible.
(s390_function_and_libcall_value): Handle vector arguments.
(s390_gimplify_va_arg): Likewise.
(s390_call_saved_register_used): Consider the arguments named.
(s390_conditional_register_usage): Disable v16-v31 for non-vec
targets.
(s390_preferred_simd_mode): New function.
(s390_support_vector_misalignment): New function.
(s390_vector_alignment): New function.
(TARGET_STRICT_ARGUMENT_NAMING, TARGET_DWARF_FRAME_REG_MODE)
(TARGET_VECTOR_MODE_SUPPORTED_P)
(TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN)
(TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
(TARGET_VECTORIZE_SUPPORT_VECTOR_MISALIGNMENT)
(TARGET_VECTOR_ALIGNMENT): Define target macro.
* config/s390/s390.h (FUNCTION_ARG_PADDING): Define macro.
(FIRST_PSEUDO_REGISTER): Increase value.
(VECTOR_NOFP_REGNO_P, VECTOR_REGNO_P, VECTOR_NOFP_REG_P)
(VECTOR_REG_P): Define macros.
(FIXED_REGISTERS, CALL_USED_REGISTERS)
(CALL_REALLY_USED_REGISTERS, REG_ALLOC_ORDER)
(HARD_REGNO_CALL_PART_CLOBBERED, REG_CLASS_NAMES)
(FUNCTION_ARG_REGNO_P, FUNCTION_VALUE_REGNO_P, REGISTER_NAMES):
Add vector registers.
(CANNOT_CHANGE_MODE_CLASS): Call C function.
(enum reg_class): Add VEC_REGS, ADDR_VEC_REGS, GENERAL_VEC_REGS.
(SECONDARY_MEMORY_NEEDED): Allow SF<->SI mode moves without
memory.
(DBX_REGISTER_NUMBER, FIRST_VEC_ARG_REGNO, LAST_VEC_ARG_REGNO)
(SHORT_DISP_IN_RANGE, VECTOR_STORE_FLAG_VALUE): Define macro.
* config/s390/s390.md (UNSPEC_VEC_*): New constants.
(VR*_REGNUM): New constants.
(ALL): New mode iterator.
(INTALL): Remove mode iterator.
Include vector.md.
(movti): Implement TImode moves for VRs.
Disable TImode splitter for VR targets.
Implement splitting TImode GPR<->VR moves.
(reload*_tomem_z10, reload*_toreg_z10): Replace INTALL with ALL.
(reload<mode>_nonoffmem_in, reload<mode>_nonoffmem_out): Rename to
reload<mode>_la_in, reload<mode>_la_out.
(*movdi_64, *movsi_zarch, *movhi, *movqi, *mov<mode>_64dfp)
(*mov<mode>_64, *mov<mode>_31): Add vector instructions.
(TD/TF mode splitter): Enable for GPRs only (formerly !FP).
(mov<mode> SF SD): Prefer lder, lde for loading.
Add lrl and strl instructions.
Add vector instructions.
(strlen<mode>): Rename old strlen<mode> to strlen_srst<mode>.
Call s390_expand_vec_strlen on z13.
(*cc_to_int): Change predicate to nonimmediate_operand.
(addti3): Rename to *addti3.  New expander.
(subti3): Rename to *subti3.  New expander.
* config/s390/vector.md: New file.

From-SVN: r223395

10 years agoS/390 Add -march/-mtune=z13 option.
Andreas Krebbel [Tue, 19 May 2015 17:24:24 +0000 (17:24 +0000)] 
S/390 Add -march/-mtune=z13 option.

gcc/
* common/config/s390/s390-common.c (processor_flags_table): Add
z13.
* config.gcc: Add z13.
* config/s390/s390-opts.h (enum processor_type): Add
PROCESSOR_2964_Z13.
* config/s390/s390.c (s390_adjust_priority): Check for
PROCESSOR_2964_Z13.
(s390_reorg): Likewise.
(s390_sched_reorder): Likewise.
(s390_sched_variable_issue): Likewise.
(s390_loop_unroll_adjust): Likewise.
(s390_option_override): Likewise. Default to -mvx when available.
* config/s390/s390.h (enum processor_flags): Add PF_Z13 and PF_VX.
(TARGET_CPU_Z13, TARGET_CPU_VX, TARGET_Z13, TARGET_VX)
(TARGET_VX_ABI): Define macros.
macros.
(TARGET_DEFAULT): Add MASK_OPT_VX.
* config/s390/s390.md ("cpu" attribute): Add z13.
("cpu_facility" attribute): Add vec.
* config/s390/s390.opt (processor_type): Add z13.
(mvx): New options.
* doc/invoke.texi: Add z13 option for -march.

From-SVN: r223393

10 years agoS/390: Make shift_count_or_setmem_operand predicate to check for mode.
Andreas Krebbel [Tue, 19 May 2015 17:21:56 +0000 (17:21 +0000)] 
S/390: Make shift_count_or_setmem_operand predicate to check for mode.

gcc/
* config/s390/predicates.md (shift_count_or_setmem_operand):
        Add mode check to make sure that only scalar integer values
        are accepted.

From-SVN: r223392

10 years agotree.c (verify_type_variant): Fix #undef.
Jan Hubicka [Tue, 19 May 2015 17:17:21 +0000 (19:17 +0200)] 
tree.c (verify_type_variant): Fix #undef.

* tree.c (verify_type_variant): Fix #undef.
(gimple_canonical_types_compatible_p): Move here from lto.c
(verify_type): Verify TYPE_CANONICAL compatibility.
* tree.h (gimple_canonical_types_compatible_p): Declare.

* lto.c (gimple_canonical_types_compatible_p): Move to tree.c

From-SVN: r223391

10 years agore PR middle-end/66199 (lastprivate/linear clause issues on combined constructs)
Jakub Jelinek [Tue, 19 May 2015 16:16:15 +0000 (18:16 +0200)] 
re PR middle-end/66199 (lastprivate/linear clause issues on combined constructs)

PR middle-end/66199
* tree.h (OMP_TEAMS_COMBINED): Define.
* gimplify.c (enum gimplify_omp_var_data): Add
GOVD_LINEAR_LASTPRIVATE_NO_OUTER.
(enum omp_region_type): Add ORT_COMBINED_TEAMS.
(omp_notice_variable): Accept both ORT_TEAMS
and ORT_COMBINED_TEAMS.  Don't recurse if
GOVD_LINEAR_LASTPRIVATE_NO_OUTER is set and either
GOVD_LINEAR is set, or GOVD_LASTPRIVATE without
GOVD_FIRSTPRIVATE.
(omp_no_lastprivate): New function.
(gimplify_scan_omp_clauses): For OMP_CLAUSE_LASTPRIVATE
and OMP_CLAUSE_LINEAR, if omp_no_lastprivate, don't
notice_outer and set appropriate bits, otherwise make
sure default(none) combined constructs won't complain.
(gimplify_adjust_omp_clauses): Remove OMP_CLAUSE_LINEAR
outer special casing, for OMP_CLAUSE_LASTPRIVATE if
omp_no_lastprivate either remove the clause or turn it
into OMP_CLAUSE_PRIVATE.
(gimplify_omp_for): Fix up handling of implicit
lastprivate or linear iterators.
(gimplify_omp_workshare): For OMP_TEAMS_COMBINED use
ORT_COMBINED_TEAMS.
* omp-low.c (lower_omp_for_lastprivate): For combined
for simd use fd.loop.n2 from the for rather than simd.
gcc/c/
* c-parser.c (c_parser_omp_for_loop): Don't add
OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
(c_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
constructs.
gcc/cp/
* parser.c (cp_parser_omp_for_loop): Don't add
OMP_CLAUSE_SHARED to OMP_PARALLEL_CLAUSES when moving
OMP_CLAUSE_LASTPRIVATE clause to OMP_FOR_CLAUSES.
(cp_parser_omp_teams): Set OMP_TEAMS_COMBINED for combined
constructs.
gcc/fortran/
* trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
combined constructs.
(gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
BIND_EXPR_BLOCK.
libgomp/
* testsuite/libgomp.c/pr66199-1.c: New test.
* testsuite/libgomp.c/pr66199-2.c: New test.
* testsuite/libgomp.c++/pr66199-1.C: New test.
* testsuite/libgomp.c++/pr66199-2.C: New test.
* testsuite/libgomp.fortran/pr66199-1.f90: New test.
* testsuite/libgomp.fortran/pr66199-2.f90: New test.

From-SVN: r223387

10 years agovqshrun_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:56:35 +0000 (15:56 +0000)] 
vqshrun_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshrun_n.c: New file.

From-SVN: r223386

10 years agovqshrn_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:55:19 +0000 (15:55 +0000)] 
vqshrn_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshrn_n.c: New file.

From-SVN: r223385

10 years agovqshlu_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:53:46 +0000 (15:53 +0000)] 
vqshlu_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshlu_n.c: New file.

From-SVN: r223384

10 years agocris.c (cris_expand_prologue): Use gen_raw_REG instead of gen_rtx_raw_REG.
Richard Sandiford [Tue, 19 May 2015 15:52:28 +0000 (15:52 +0000)] 
cris.c (cris_expand_prologue): Use gen_raw_REG instead of gen_rtx_raw_REG.

gcc/
* config/cris/cris.c (cris_expand_prologue): Use gen_raw_REG
instead of gen_rtx_raw_REG.
(cris_expand_epilogue): Likewise.
* config/microblaze/microblaze.c (microblaze_classify_address):
Likewise.
* config/sparc/sparc.md: Likewise.

From-SVN: r223383

10 years agovqshl_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:52:01 +0000 (15:52 +0000)] 
vqshl_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshl_n.c: New file.

From-SVN: r223382

10 years agovqshl.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:50:39 +0000 (15:50 +0000)] 
vqshl.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqshl.c: New file.

From-SVN: r223381

10 years agovqrshrun_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:49:29 +0000 (15:49 +0000)] 
vqrshrun_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshrun_n.c: New file.

From-SVN: r223380

10 years agovqrshrn_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:48:15 +0000 (15:48 +0000)] 
vqrshrn_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshrn_n.c: New file.

From-SVN: r223379

10 years agovqrshl.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:46:48 +0000 (15:46 +0000)] 
vqrshl.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrshl.c: New file.

From-SVN: r223377

10 years agovqrdmulh_n.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:45:15 +0000 (15:45 +0000)] 
vqrdmulh_n.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_n.c: New file.

From-SVN: r223376

10 years agovqrdmulh_lane.c: New file.
Christophe Lyon [Tue, 19 May 2015 15:43:58 +0000 (15:43 +0000)] 
vqrdmulh_lane.c: New file.

2015-05-19  Christophe Lyon  <christophe.lyon@linaro.org>

* gcc.target/aarch64/advsimd-intrinsics/vqrdmulh_lane.c: New file.

From-SVN: r223375