gcc.git
9 years agoS/390: Clobber VRs in __builtin_tbegin.
Andreas Krebbel [Thu, 6 Aug 2015 10:21:41 +0000 (10:21 +0000)]
S/390: Clobber VRs in __builtin_tbegin.

gcc/ChangeLog:
    * config/s390/s390.c (s390_expand_tbegin): Expand either
    tbegin_1_z13 or tbegin_1 depending on VX flag.
    * config/s390/s390.md ("tbegin_1_z13"): New expander.

gcc/testsuite/ChangeLog:
    * gcc.target/s390/htm-builtins-z13-1.c: New test.

From-SVN: r226672

9 years agoS/390: Doc: Add documentation for -mhtm, -mvx, and -mzvector.
Andreas Krebbel [Thu, 6 Aug 2015 10:18:20 +0000 (10:18 +0000)]
S/390: Doc: Add documentation for -mhtm, -mvx, and -mzvector.

gcc/ChangeLog:
    * config/s390/s390.opt: Clarify description for -mzvector
    * doc/invoke.texi: Add documentation for -mhtm, -mvx, and
    -mzvector.

From-SVN: r226671

9 years agore PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and...
Francois-Xavier Coudert [Thu, 6 Aug 2015 09:22:30 +0000 (09:22 +0000)]
re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)

PR fortran/64022
* gfortran.dg/ieee/large_2.f90: New test.
* gfortran.dg/ieee/large_3.F90: New test.

From-SVN: r226670

9 years agogimple.h (gimple_call_set_fn): Access op member directly.
Richard Biener [Thu, 6 Aug 2015 08:51:59 +0000 (08:51 +0000)]
gimple.h (gimple_call_set_fn): Access op member directly.

2015-08-06  Richard Biener  <rguenther@suse.de>

* gimple.h (gimple_call_set_fn): Access op member directly.
(gimple_call_chain_ptr): Likewise.
(gimple_call_set_chain): Likewise.
(gimple_cond_lhs_ptr): Likewise.
(gimple_cond_set_lhs): Likewise.
(gimple_cond_rhs_ptr): Likewise.
(gimple_cond_set_rhs): Likewise.
(gimple_cond_true_label): Likewise.
(gimple_cond_set_true_label): Likewise.
(gimple_cond_set_false_label): Likewise.
(gimple_cond_false_label): Likewise.
(gimple_label_label): Likewise.
(gimple_label_set_label): Likewise.
(gimple_goto_set_dest): Likewise.
(gimple_asm_input_op): Likewise.
(gimple_asm_input_op_ptr): Likewise.
(gimple_asm_set_input_op): Likewise.
(gimple_asm_output_op): Likewise.
(gimple_asm_output_op_ptr): Likewise.
(gimple_asm_set_output_op): Likewise.
(gimple_asm_clobber_op): Likewise.
(gimple_asm_set_clobber_op): Likewise.
(gimple_asm_label_op): Likewise.
(gimple_asm_set_label_op): Likewise.
(gimple_switch_index): Likewise.
(gimple_switch_index_ptr): Likewise.
(gimple_return_retval_ptr): Likewise.
(gimple_return_retval): Likewise.
(gimple_return_set_retval): Likewise.
(gimple_switch_set_index): Likewise.  Remove superfluous GIMPLE_CHECK.
(gimple_switch_label): Likewise.
(gimple_switch_set_label): Likewise.

From-SVN: r226669

9 years agogimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify bool comparison canonicaliza...
Richard Biener [Thu, 6 Aug 2015 08:45:52 +0000 (08:45 +0000)]
gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify bool comparison canonicalization and restrict to integers.

2015-08-06  Richard Biener  <rguenther@suse.de>

* gimple-fold.c (gimple_fold_stmt_to_constant_1): Simplify
bool comparison canonicalization and restrict to integers.

From-SVN: r226668

9 years agore PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and...
Francois-Xavier Coudert [Thu, 6 Aug 2015 08:38:59 +0000 (08:38 +0000)]
re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)

PR fortran/64022
* gfortran.dg/ieee/large_1.f90: Adjust test.

From-SVN: r226665

9 years agopt.c (determine_specialization): Print candidates after 'no match' error.
Jason Merrill [Thu, 6 Aug 2015 01:33:32 +0000 (21:33 -0400)]
pt.c (determine_specialization): Print candidates after 'no match' error.

* pt.c (determine_specialization): Print candidates after 'no
match' error.

From-SVN: r226653

9 years agodecl.c (cp_finish_decl): Tidy.
Jason Merrill [Thu, 6 Aug 2015 01:33:27 +0000 (21:33 -0400)]
decl.c (cp_finish_decl): Tidy.

* decl.c (cp_finish_decl): Tidy.
* typeck.c (finish_class_member_access_expr): Use
type_dependent_expression_p.
* semantics.c (finish_id_expression): Use
type_dependent_expression_p.  Don't build_qualified_name for a
decl in non-dependent scope.
* pt.c (type_dependent_expression_p): A TEMPLATE_ID_EXPR of an
identifier is dependent.  Remove variable_template_p check.

From-SVN: r226652

9 years agoDaily bump.
GCC Administrator [Thu, 6 Aug 2015 00:16:14 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r226651

9 years agocoretypes.h (enum symbol_visibility): Relocate here.
Andrew MacLeod [Wed, 5 Aug 2015 23:18:09 +0000 (23:18 +0000)]
coretypes.h (enum symbol_visibility): Relocate here.

2015-08-05  Andrew MacLeod  <amacleod@redhat.com>

* coretypes.h (enum symbol_visibility): Relocate here.
* flag-types.h (enum symbol_visibility): Remove.
* tree-core.h (enum symbol_visibility): Remove.

From-SVN: r226648

9 years agoconstexpr.cc: Remove redundant -save-temps option.
Nikolai Bozhenov [Wed, 5 Aug 2015 20:57:03 +0000 (20:57 +0000)]
constexpr.cc: Remove redundant -save-temps option.

2015-08-05  Nikolai Bozhenov  <n.bozhenov@samsung.com>

* testsuite/20_util/enable_shared_from_this/cons/constexpr.cc: Remove
redundant -save-temps option.
* testsuite/20_util/shared_ptr/cons/constexpr.cc: Likewise.
* testsuite/20_util/unique_ptr/cons/constexpr.cc: Likewise.
* testsuite/20_util/weak_ptr/cons/constexpr.cc: Likewise.
* testsuite/30_threads/future/cons/constexpr.cc: Likewise.
* testsuite/30_threads/shared_future/cons/constexpr.cc: Likewise.

From-SVN: r226647

9 years agore PR go/66870 (split stack issues on ppc64le and ppc64)
Lynn Boger [Wed, 5 Aug 2015 18:07:16 +0000 (13:07 -0500)]
re PR go/66870 (split stack issues on ppc64le and ppc64)

2015-08-15 Lynn Boger <laboger@linux.vnet.ibm.com>

PR target/66870
* gcc/config/rs6000/rs6000.c (rs6000_emit_prologue): Check
for no_split_stack function attribute along with
flag_split_stack.
(rs6000_expand_split_stack_prologue): Likewise.

From-SVN: r226643

9 years agore PR c++/66260 ([C++14] Failure to compile variable template with recursively define...
Jason Merrill [Wed, 5 Aug 2015 17:56:14 +0000 (13:56 -0400)]
re PR c++/66260 ([C++14] Failure to compile variable template with recursively defined partial specialization)

PR c++/66260
PR c++/66596
PR c++/66649
PR c++/66923
* pt.c (lookup_template_variable): Use NULL_TREE for type.
(instantiate_template_1): Also set DECL_TI_ARGS based on
the immediate parent.
(tsubst_copy_and_build) [TEMPLATE_ID_EXPR]: Handle variable templates.
(finish_template_variable): Add complain parm.
* cp-tree.h: Adjust.

From-SVN: r226642

9 years agore PR c++/65195 (Variable template cannot be used as a function)
Jason Merrill [Wed, 5 Aug 2015 17:51:29 +0000 (13:51 -0400)]
re PR c++/65195 (Variable template cannot be used as a function)

PR c++/65195
PR c++/66619
* semantics.c (finish_id_expression): Call convert_from_reference
for variable template.

From-SVN: r226641

9 years agore PR c/16351 (NULL dereference warnings)
Manuel López-Ibáñez [Wed, 5 Aug 2015 17:36:29 +0000 (17:36 +0000)]
re PR c/16351 (NULL dereference warnings)

gcc/ChangeLog:

2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
    Jeff Law  <law@redhat.com>

PR c/16351
* doc/invoke.texi (Wnull-dereference): New.
* tree-vrp.c (infer_value_range): Update call to infer_nonnull_range.
* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
Warn for potential NULL dereferences.
(find_explicit_erroneous_behaviour): Warn for NULL dereferences.
* ubsan.c (instrument_nonnull_arg): Call
infer_nonnull_range_by_attribute.
(instrument_nonnull_return): Likewise.
* common.opt (Wnull-dereference); New.
* gimple.c (infer_nonnull_range): Remove bool arguments.
(infer_nonnull_range_by_dereference): New.
(infer_nonnull_range_by_attribute): New.
* gimple.h: Update declarations.

gcc/testsuite/ChangeLog:

2015-08-05  Manuel López-Ibáñez  <manu@gcc.gnu.org>
    Jeff Law  <law@redhat.com>

PR c/16351
* gcc.dg/tree-ssa/isolate-2.c: Close comment.
* gcc.dg/tree-ssa/isolate-4.c: Likewise.
* gcc.dg/tree-ssa/wnull-dereference.c: New test.
* gcc.dg/tree-ssa/isolate-1.c: Test warnings with -Wnull-dereference.
* gcc.dg/tree-ssa/isolate-3.c: Likewise.
* gcc.dg/tree-ssa/isolate-5.c: Likewise.

Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r226640

9 years agogensupport.c (sequence_num): Replace with...
Richard Sandiford [Wed, 5 Aug 2015 15:47:31 +0000 (15:47 +0000)]
gensupport.c (sequence_num): Replace with...

gcc/
* gensupport.c (sequence_num): Replace with...
(insn_sequence_num, split_sequence_num, peephole2_sequence_num):
...these new variables.
(init_rtx_reader_args_cb): Update accordingly.
(get_num_code_insns): Likewise.
(read_md_rtx): Rework to use a while loop and get_c_test.
Use the new counters.  Remove redundant DEFINE_SUBST case.
* genoutput.c (gen_split): Delete.
(main): Don't call it.

From-SVN: r226635

9 years agogensupport.h (get_c_test): Declare.
Richard Sandiford [Wed, 5 Aug 2015 15:46:02 +0000 (15:46 +0000)]
gensupport.h (get_c_test): Declare.

gcc/
* gensupport.h (get_c_test): Declare.
* gensupport.c (get_c_test): New function.
* genconditions.c (main): Use it.
* genrecog.c (validate_pattern): Likewise.
(match_pattern_1): Likewise.  Remove c_test argument.
(match_pattern): Update accordingly and remove c_test argument.
(main): Update accordingly.

From-SVN: r226634

9 years agogensupport.h (get_num_insn_codes): Declare.
Richard Sandiford [Wed, 5 Aug 2015 15:44:23 +0000 (15:44 +0000)]
gensupport.h (get_num_insn_codes): Declare.

gcc/
* gensupport.h (get_num_insn_codes): Declare.
* gensupport.c (get_num_insn_codes): New function.
* genattrtab.c (optimize_attrs): Rename max_insn_code to
num_insn_codes.
(main): Likewise.  Use get_num_insn_codes.
* gencodes.c (main): Remove "last" and use get_num_insn_codes.

From-SVN: r226633

9 years agore PR middle-end/66311 (Problems with some integer(16) values)
Richard Sandiford [Wed, 5 Aug 2015 14:23:42 +0000 (14:23 +0000)]
re PR middle-end/66311 (Problems with some integer(16) values)

gcc/
PR middle-end/66311
* wide-int.cc (wi::from_mpz): Make sure that absolute mpz value
is zero- rather than sign-extended.

gcc/testsuite/
2015-08-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

PR middle-end/66311
* gfortran.dg/pr66311.f90: New file.

From-SVN: r226632

9 years agotarget-insns.def (can_extend): Delete.
Richard Sandiford [Wed, 5 Aug 2015 14:21:11 +0000 (14:21 +0000)]
target-insns.def (can_extend): Delete.

gcc/
* target-insns.def (can_extend): Delete.

From-SVN: r226631

9 years agore PR tree-optimization/67121 (wrong code at -O3 on x86_64-linux-gnu)
Richard Biener [Wed, 5 Aug 2015 14:16:51 +0000 (14:16 +0000)]
re PR tree-optimization/67121 (wrong code at -O3 on x86_64-linux-gnu)

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

PR tree-optimization/67121
* tree-if-conv.c (combine_blocks): Clear range-info produced
by stmts no longer executed conditionally.

* gcc.dg/torture/pr67121.c: New testcase.

From-SVN: r226630

9 years agogcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
Nick Clifton [Wed, 5 Aug 2015 13:09:43 +0000 (13:09 +0000)]
gcc * config/rl78/rl78.c (rl78_force_nonfar_3): Remove optimization
to allow identical far pointers to remain.

tests * gcc.target/rl78: New directory.
        * gcc.target/rl78/rl78.exp: New file: Test driver.
        * gcc.target/rl78/test_addm3.c: New file: Test adds.

From-SVN: r226624

9 years agore PR middle-end/67120 (wrong code for volatile pointers at -O1 and above on x86_64...
Richard Biener [Wed, 5 Aug 2015 12:47:59 +0000 (12:47 +0000)]
re PR middle-end/67120 (wrong code for volatile pointers at -O1 and above on x86_64-linux-gnu)

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

PR middle-end/67120
* match.pd: Compare address bases with == if they are decls
or SSA names, not operand_equal_p.  Otherwise fail.

* gcc.dg/torture/pr67120.c: New testcase.

From-SVN: r226623

9 years agore PR fortran/52846 ([F2008] Support submodules)
Paul Thomas [Wed, 5 Aug 2015 12:06:25 +0000 (12:06 +0000)]
re PR fortran/52846 ([F2008] Support submodules)

2015-08-05  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/52846
* module.c (check_access): Return true if new static flag
'dump_smod' is true..
(gfc_dump_module): Rename original 'dump_module' and call from
new version. Use 'dump_smod' rather than the stack state to
determine if a submodule is being processed. The new version of
this procedure sets 'dump_smod' depending on the stack state and
then writes both the mod and smod files if a module is being
processed or just the smod for a submodule.
(gfc_use_module): Eliminate the check for module_name and
submodule_name being the same.
* trans-decl.c (gfc_finish_var_decl, gfc_build_qualified_array,
get_proc_pointer_decl): Set TREE_PUBLIC unconditionally and use
the conditions to set DECL_VISIBILITY as hidden and to set as
true DECL_VISIBILITY_SPECIFIED.

2015-08-05  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/52846

* lib/fortran-modules.exp: Call cleanup-submodules from
cleanup-modules.
* gfortran.dg/public_private_module_2.f90: Add two XFAILS to
cover the cases where private entities are no longer optimized
away.
* gfortran.dg/public_private_module_6.f90: Add an XFAIL for the
same reason.
* gfortran.dg/submodule_1.f08: Change cleanup module names.
* gfortran.dg/submodule_5.f08: The same.
* gfortran.dg/submodule_9.f08: The same.
* gfortran.dg/submodule_10.f08: New test

From-SVN: r226622

9 years agore PR c++/66595 ([C++14] ICE in partial specialization template variables)
Paolo Carlini [Wed, 5 Aug 2015 10:07:57 +0000 (10:07 +0000)]
re PR c++/66595 ([C++14] ICE in partial specialization template variables)

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

PR c++/66595
* g++.dg/cpp1y/var-templ35.C: New.

From-SVN: r226617

9 years agore PR tree-optimization/67055 (Segmentation fault in fold_builtin_alloca_with_align...
Richard Biener [Wed, 5 Aug 2015 10:01:12 +0000 (10:01 +0000)]
re PR tree-optimization/67055 (Segmentation fault in fold_builtin_alloca_with_align in tree-ssa-ccp.c)

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

PR tree-optimization/67055
* tree-ssa-ccp.c (fold_builtin_alloca_with_align): Handle
NULL gimple_block.

* g++.dg/torture/pr67055.C: New testcase.

From-SVN: r226616

9 years agoDisable AVX-512VL insns for scalar mode operands on -march=knl.
Kirill Yukhin [Wed, 5 Aug 2015 08:01:19 +0000 (08:01 +0000)]
Disable AVX-512VL insns for scalar mode operands on -march=knl.

gcc/
* config/i386/i386.md (define_attr "isa"): Addd avx512vl and
noavx512vl.
(define_attr "enabled"): Handle avx521vl and noavx512vl.
* config/i386/sse.md (define_insn "vec_dupv2df<mask_name>"): Split
AVX-512 alternative out of SSE.
(define_insn "*vec_concatv2df"): Ditto.

From-SVN: r226612

9 years agoMerge SSE and AVX ptest patterns.
Kirill Yukhin [Wed, 5 Aug 2015 07:58:54 +0000 (07:58 +0000)]
Merge SSE and AVX ptest patterns.

gcc/
* config/i386/i386.c (bdesc_args): Rename CODE_FOR_sse4_1_ptest into
CODE_FOR_sse4_1_ptestv2di and CODE_FOR_avx_vtestps256 into
CODE_FOR_avx_ptestv4di.
* config/i386/sse.md (define_mode_iterator V_AVX): New.
(define_mode_attr sse4_1): Extend to other 128/256-bit modes.
(define_insn "avx_ptest256"): Merge this ...
(define_insn "sse4_1_ptest"): And this ...
(define_insn "<sse4_1>_ptest<mode>"): Into this. Use V_AVX iterator.

From-SVN: r226611

9 years agore PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in vect_analyze_slp_ins...
Richard Biener [Wed, 5 Aug 2015 07:48:34 +0000 (07:48 +0000)]
re PR tree-optimization/67109 (ICE at -O3 on x86_64-linux-gnu in vect_analyze_slp_instance, at tree-vect-slp.c:1793)

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

PR tree-optimization/67109
* tree-vect-data-refs.c (vect_analyze_group_access_1): Check
against too big groups.  Print whether this is a load or store
group.  Rename from ...
(vect_analyze_group_access): ... this which is now a wrapper
dissolving an invalid group.
(vect_analyze_data_ref_accesses): Print whether this is a load
or store group.

* gcc.dg/torture/pr67109.c: New testcase.
* gcc.dg/vect/vect-119.c: Adjust.

From-SVN: r226610

9 years agore PR c/67107 (ICE: SIGSEGV in tree_class_check with -frounding-math -funsafe-math...
Richard Biener [Wed, 5 Aug 2015 07:42:54 +0000 (07:42 +0000)]
re PR c/67107 (ICE: SIGSEGV in tree_class_check with -frounding-math -funsafe-math-optimizations)

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

PR middle-end/67107
* match.pd: Guard const_binop result checking against NULL_TREE
result.

* gcc.dg/pr67107.c: New testcase.

From-SVN: r226609

9 years agocse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the...
Kugan Vivekanandarajah [Wed, 5 Aug 2015 01:08:49 +0000 (01:08 +0000)]
cse.c (cse_insn): Restoring old behaviour for src_eqv when dest and value in the REG_EQUAL are...

gcc/ChangeLog:

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

* cse.c (cse_insn): Restoring old behaviour for src_eqv
 when dest and value in the REG_EQUAL are same and dest
 is STRICT_LOW_PART.

From-SVN: r226606

9 years agoDaily bump.
GCC Administrator [Wed, 5 Aug 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r226601

9 years agocompiler: Verify pointer type's underlying type.
Ian Lance Taylor [Tue, 4 Aug 2015 23:46:09 +0000 (23:46 +0000)]
compiler: Verify pointer type's underlying type.

    Fixes golang/go#11547.

    Reviewed-on: https://go-review.googlesource.com/13031

From-SVN: r226598

9 years agocompiler: Use context to determine types of complex expressions.
Ian Lance Taylor [Tue, 4 Aug 2015 22:27:48 +0000 (22:27 +0000)]
compiler: Use context to determine types of complex expressions.

    When determining the type of a complex expression, it is important
    to recognize cases where a complex value can be represented as a
    real number.

    Fixes golang/go#11572.

    Reviewed-on: https://go-review.googlesource.com/12541

From-SVN: r226596

9 years ago[MOXIE] Hookize PRINT_OPERAND and PRINT_OPERAND_ADDRESS
Anatoly Sokolov [Tue, 4 Aug 2015 19:51:28 +0000 (22:51 +0300)]
[MOXIE] Hookize PRINT_OPERAND and PRINT_OPERAND_ADDRESS

From-SVN: r226594

9 years agore PR c++/66197 (c++1z generic function wrong type for auto)
Paolo Carlini [Tue, 4 Aug 2015 17:22:05 +0000 (17:22 +0000)]
re PR c++/66197 (c++1z generic function wrong type for auto)

2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66197
* g++.dg/cpp1z/abbrev2.C: New.

2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

* g++.dg/cpp1z/static_assert-nomsg.C: Fix DejaGnu directive.

From-SVN: r226591

9 years ago[AArch64] PR target/66731 Fix fnmul insn with -frounding-math (rtx costs)
Szabolcs Nagy [Tue, 4 Aug 2015 16:22:32 +0000 (16:22 +0000)]
[AArch64] PR target/66731 Fix fnmul insn with -frounding-math (rtx costs)

2015-08-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>

PR target/66731
* config/aarch64/aarch64.c (aarch64_rtx_costs): Fix NEG cost for FNMUL.
(aarch64_rtx_mult_cost): Fix MULT cost with -frounding-math.

From-SVN: r226586

9 years agotexi2pod.pl: Escape braces in regexp involving @strong{...}.
Uros Bizjak [Tue, 4 Aug 2015 16:15:45 +0000 (18:15 +0200)]
texi2pod.pl: Escape braces in regexp involving @strong{...}.

* texi2pod.pl: Escape braces in regexp involving @strong{...}.

From-SVN: r226585

9 years ago* pt.c (lookup_template_class_1): Clear elt.spec.
Jason Merrill [Tue, 4 Aug 2015 15:18:45 +0000 (11:18 -0400)]
* pt.c (lookup_template_class_1): Clear elt.spec.

From-SVN: r226581

9 years ago* tree.c (build_target_expr): Copy the location from value.
Jason Merrill [Tue, 4 Aug 2015 15:18:40 +0000 (11:18 -0400)]
* tree.c (build_target_expr): Copy the location from value.

From-SVN: r226580

9 years agore PR c++/66392 (rejects-valid: copy-initialization through user-defined conversion...
Paolo Carlini [Tue, 4 Aug 2015 14:54:07 +0000 (14:54 +0000)]
re PR c++/66392 (rejects-valid: copy-initialization through user-defined conversion sequence fails)

2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66392
* g++.dg/init/explicit4.C: New.

From-SVN: r226579

9 years agovec-cmp-sel.c: Avoid test failure on machines without VSX an Power8 vector support.
Bill Schmidt [Tue, 4 Aug 2015 14:09:23 +0000 (14:09 +0000)]
vec-cmp-sel.c: Avoid test failure on machines without VSX an Power8 vector support.

2015-08-04  Bill Schmidt  <wschmidt@vnet.linux.ibm.com>

* gcc.target/powerpc/vec-cmp-sel.c: Avoid test failure on machines
without VSX an Power8 vector support.

From-SVN: r226578

9 years agogenmatch.c (dt_node::gen_kids_1): Use gassign and gcall in generated code.
Richard Biener [Tue, 4 Aug 2015 13:55:26 +0000 (13:55 +0000)]
genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in generated code.

2015-08-04  Richard Biener  <rguenther@suse.de>

* genmatch.c (dt_node::gen_kids_1): Use gassign and gcall in
generated code.
(dt_operand::gen_gimple_expr): Adjust.

From-SVN: r226577

9 years agogimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize bool compares on RHS.
Richard Biener [Tue, 4 Aug 2015 13:51:50 +0000 (13:51 +0000)]
gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize bool compares on RHS.

2015-08-04  Richard Biener  <rguenther@suse.de>

* gimple-fold.c (gimple_fold_stmt_to_constant_1): Canonicalize
bool compares on RHS.
* match.pd: Add X ==/!= !X is false/true pattern.

* gcc.dg/tree-ssa/ssa-ccp-38.c: New testcase.

From-SVN: r226576

9 years agoaarch64.c: Change inner loop statement cost to be consistent with other targets.
Pawel Kupidura [Tue, 4 Aug 2015 13:44:41 +0000 (13:44 +0000)]
aarch64.c: Change inner loop statement cost to be consistent with other targets.

gcc/
2015-08-04  Pawel Kupidura  <pawel.kupidura@arm.com>

* config/aarch64/aarch64.c: Change inner loop statement cost
to be consistent with other targets.

From-SVN: r226575

9 years agoneon.md (neon_vget_lanev2di): Handle big-endian targets.
Christophe Lyon [Tue, 4 Aug 2015 13:24:26 +0000 (13:24 +0000)]
neon.md (neon_vget_lanev2di): Handle big-endian targets.

2015-08-04  Christophe Lyon  <christophe.lyon@linaro.org>

* config/arm/neon.md (neon_vget_lanev2di): Handle big-endian
targets.

From-SVN: r226574

9 years agonvptx.h (struct nvptx_pseudo_info): Delete.
Nathan Sidwell [Tue, 4 Aug 2015 13:14:14 +0000 (13:14 +0000)]
nvptx.h (struct nvptx_pseudo_info): Delete.

* config/nvptx/nvptx.h (struct nvptx_pseudo_info): Delete.
(machine_function): Remove pseudos field.

From-SVN: r226573

9 years agoFix incorrect date in 2015-07-28 change.
Ben Elliston [Tue, 4 Aug 2015 12:59:57 +0000 (22:59 +1000)]
Fix incorrect date in 2015-07-28 change.

From-SVN: r226572

9 years agoCompile IAMCU tests with -fno-pie -no-pie
H.J. Lu [Tue, 4 Aug 2015 11:54:20 +0000 (11:54 +0000)]
Compile IAMCU tests with -fno-pie -no-pie

Since IAMCU tests clear all scratch integer registers with:

  asm __volatile__ ("xor %%eax, %%eax\n\t" \
                    "xor %%edx, %%edx\n\t" \
                    "xor %%ecx, %%ecx\n\t" \
                    ::: "eax", "edx", "ecx");

PIC register may be trashed between setting PIC register and using it.
This patch compiles AMCU tests with -fno-pie -no-pie.

PR target/67110
* gcc.target/i386/iamcu/abi-iamcu.exp (additional_flags): Add
-fno-pie -no-pie.

From-SVN: r226570

9 years agore PR c++/66427 (The compiler rejects too complex variable templates)
Paolo Carlini [Tue, 4 Aug 2015 11:05:02 +0000 (11:05 +0000)]
re PR c++/66427 (The compiler rejects too complex variable templates)

2015-08-04  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/66427
* g++.dg/cpp1y/var-templ34.C: New.

From-SVN: r226568

9 years ago[AArch64][14/14] Reuse target_option_current_node when passing pragma string to targe...
Kyrylo Tkachov [Tue, 4 Aug 2015 10:45:48 +0000 (10:45 +0000)]
[AArch64][14/14] Reuse target_option_current_node when passing pragma string to target attribute

* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Exit early and use target_option_current_node if processing current
pragma.

From-SVN: r226567

9 years ago[doc][13/14] Document AArch64 target attributes and pragmas
Kyrylo Tkachov [Tue, 4 Aug 2015 10:43:15 +0000 (10:43 +0000)]
[doc][13/14] Document AArch64 target attributes and pragmas

* doc/extend.texi (AArch64 Function Attributes): New node.
(AArch64 Pragmas): Likewise.

From-SVN: r226566

9 years ago[AArch64][12/14] Target attributes and target pragmas tests
Kyrylo Tkachov [Tue, 4 Aug 2015 10:41:31 +0000 (10:41 +0000)]
[AArch64][12/14] Target attributes and target pragmas tests

* gcc.target/aarch64/pragma_cpp_predefs_1.c: New test.
* gcc.target/aarch64/target_attr_1.c: Likewise.
* gcc.target/aarch64/target_attr_2.c: Likewise.
* gcc.target/aarch64/target_attr_3.c: Likewise.
* gcc.target/aarch64/target_attr_4.c: Likewise.
* gcc.target/aarch64/target_attr_5.c: Likewise.
* gcc.target/aarch64/target_attr_6.c: Likewise.
* gcc.target/aarch64/target_attr_7.c: Likewise.
* gcc.target/aarch64/target_attr_8.c: Likewise.
* gcc.target/aarch64/target_attr_9.c: Likewise.
* gcc.target/aarch64/target_attr_10.c: Likewise.
* gcc.target/aarch64/target_attr_11.c: Likewise.
* gcc.target/aarch64/target_attr_12.c: Likewise.
* gcc.target/aarch64/target_attr_13.c: Likewise.
* gcc.target/aarch64/target_attr_14.c: Likewise.
* gcc.target/aarch64/target_attr_15.c: Likewise.

From-SVN: r226565

9 years ago[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion
Kyrylo Tkachov [Tue, 4 Aug 2015 10:39:42 +0000 (10:39 +0000)]
[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion

* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Initialize simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
Make sure that the builtins are initialized only once no matter how
many times the function is called.
(aarch64_init_builtins): Unconditionally initialize crc builtins.
(aarch64_relayout_simd_param): New function.
(aarch64_simd_expand_args): Use above during argument expansion.
* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
prototype.
(aarch64_relayout_simd_types): Likewise.

* gcc.target/aarch64/target_attr_crypto_ice_1.c: New test.

From-SVN: r226564

9 years ago[AArch64][10/14] Implement target pragmas
Kyrylo Tkachov [Tue, 4 Aug 2015 10:35:16 +0000 (10:35 +0000)]
[AArch64][10/14] Implement target pragmas

* config.gcc (aarch64*-*-*): Specify c_target_objs and cxx_target_objs.
* config/aarch64/aarch64.h (REGISTER_TARGET_PRAGMAS): Define.
(TARGET_CPU_CPP_BUILTINS): Redefine to call aarch64_cpu_cpp_builtins.
* config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
static keyword.
(aarch64_reset_previous_fndecl): New function.
(aarch64_handle_attr_isa_flags): Handle "+nothing" in the beginning of
the string.
* config/aarch64/aarch64-c.c: New file.
* config/aarch64/arm_acle.h: Add pragma +crc+nofp at the top.
Push and pop options at beginning and end.  Remove ifdef
__ARM_FEATURE_CRC32.
* config/aarch64/arm_neon.h: Remove #ifdef check on __ARM_NEON.
Add pragma +nothing+simd and +nothing+crypto where appropriate.
* config/aarch64/t-aarch64 (aarch64-c.o): New rule.
* config/aarch64/aarch64-protos.h (aarch64_cpu_cpp_builtins):
Define prototype.
(aarch64_register_pragmas): Likewise.
(aarch64_reset_previous_fndecl): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_override_options_internal): Likewise.

* gcc.target/aarch64/arm_neon-nosimd-error.c: Delete.

From-SVN: r226563

9 years ago[AArch64][9/14] Implement TARGET_CAN_INLINE_P
Kyrylo Tkachov [Tue, 4 Aug 2015 10:17:13 +0000 (10:17 +0000)]
[AArch64][9/14] Implement TARGET_CAN_INLINE_P

* config/aarch64/aarch64.c (aarch64_tribools_ok_for_inlining_p):
New function.
(aarch64_can_inline_p): Likewise.
(TARGET_CAN_INLINE_P): Define.

From-SVN: r226561

9 years ago[AArch64][8/14] Implement TARGET_OPTION_VALID_ATTRIBUTE_P
Kyrylo Tkachov [Tue, 4 Aug 2015 10:14:00 +0000 (10:14 +0000)]
[AArch64][8/14] Implement TARGET_OPTION_VALID_ATTRIBUTE_P

* common/config/aarch64/aarch64-common.c (aarch64_handle_option):
Remove static.  Handle OPT_mgeneral_regs_only,
OPT_mfix_cortex_a53_835769, OPT_mstrict_align,
OPT_momit_leaf_frame_pointer.
* config/aarch64/aarch64.c: Include opts.h and diagnostic.h
(aarch64_attr_opt_type): New enum.
(aarch64_attribute_info): New struct.
(aarch64_handle_attr_arch): New function.
(aarch64_handle_attr_cpu): Likewise.
(aarch64_handle_attr_tune): Likewise.
(aarch64_handle_attr_isa_flags): Likewise.
(aarch64_attributes): New table.
(aarch64_process_one_target_attr): New function.
(num_occurences_in_str): Likewise.
(aarch64_process_target_attr): Likewise.
(aarch64_option_valid_attribute_p): Likewise.
(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
* config/aarch64/aarch64-protos.h: Include input.h
(aarch64_handle_option): Declare prototype.

From-SVN: r226560

9 years ago[AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION
Kyrylo Tkachov [Tue, 4 Aug 2015 10:10:28 +0000 (10:10 +0000)]
[AArch64][7/14] Implement TARGET_SET_CURRENT_FUNCTION

* config/aarch64/aarch64.h (SWITCHABLE_TARGET): Define.
* config/aarch64/aarch64.c: Include target-globals.h
(aarch64_previous_fndecl): New variable.
(aarch64_set_current_function): New function.
(TARGET_SET_CURRENT_FUNCTION): Define.

From-SVN: r226559

9 years ago[AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE
Kyrylo Tkachov [Tue, 4 Aug 2015 10:06:51 +0000 (10:06 +0000)]
[AArch64][6/14] Implement TARGET_OPTION_SAVE/TARGET_OPTION_RESTORE

* config/aarch64/aarch64.opt (explicit_tune_core): New TargetVariable.
(explicit_arch): Likewise.
(x_aarch64_isa_flags): Likewise.
(mgeneral-regs-only): Mark as Save.
(mfix-cortex-a53-835769): Likewise.
(mcmodel=): Likewise.
(mstrict-align): Likewise.
(momit-leaf-frame-pointer): Likewise.
(mtls-dialect): Likewise.
(master=): Likewise.
* config/aarch64/aarch64.h (ASM_DECLARE_FUNCTION_NAME): Define.
(aarch64_isa_flags): Remove extern declaration.
* config/aarch64/aarch64.c (aarch64_validate_mcpu): Return a bool
to indicate success or failure.
(aarch64_validate_march): Likewise.
(aarch64_validate_mtune): Likewise.
(aarch64_isa_flags): Delete.
(aarch64_override_options_internal): Access opts->x_aarch64_isa_flags
instead of aarch64_isa_flags.
(aarch64_get_tune_cpu): New function.
(aarch64_get_arch): Likewise.
(aarch64_override_options): Use above and set up explicit_tune_core
and explicit_arch.
(aarch64_print_extension): Move earlier in file.  Add isa_flags
argument and use that instead of the global aarch64_isa_flags.
(aarch64_option_save): New function.
(aarch64_option_restore): Likewise.
(aarch64_option_print): Likewise.
(aarch64_declare_function_name): Likewise.
(aarch64_start_file): Delete.
(TARGET_ASM_FILE_START): Do not define.
(TARGET_OPTION_RESTORE, TARGET_OPTION_PRINT): Define.
* config/aarch64/aarch64-protos.h (aarch64_declare_function_name):
Declare prototype.

From-SVN: r226558

9 years ago[AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use...
Kyrylo Tkachov [Tue, 4 Aug 2015 10:02:56 +0000 (10:02 +0000)]
[AArch64][5/14] Make flag_omit_leaf_frame_pointer intialize to 2. Define and use TARGET_OMIT_LEAF_FRAME_POINTER

* config/aarch64/aarch64.opt (momit-leaf-frame-pointer): Initialize
flag_omit_leaf_frame_pointer to 2.

From-SVN: r226557

9 years ago[AArch64][4/14] Create TARGET_FIX_ERR_A53_835769 and use that instead of aarch64_fix_...
Kyrylo Tkachov [Tue, 4 Aug 2015 10:01:06 +0000 (10:01 +0000)]
[AArch64][4/14] Create TARGET_FIX_ERR_A53_835769 and use that instead of aarch64_fix_a53_err835769

        * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_835769_DEFAULT): Always
        define to 0 or 1.
        (TARGET_FIX_ERR_A53_835769): New macro.
        * config/aarch64/aarch64.c (aarch64_override_options_internal): Remove
        handling of opts->x_aarch64_fix_a53_err835769.
        (aarch64_madd_needs_nop): Check for TARGET_FIX_ERR_A53_835769 rather
        than aarch64_fix_a53_err835769.
        * config/aarch64/aarch64-elf-raw.h: Update for above changes.
        * config/aarch64/aarch64-linux.h: Likewise.

From-SVN: r226556

9 years agoi386.c (ix86_expand_int_movcc): Check result of ix86_expand_int_movcc as boolean.
Uros Bizjak [Tue, 4 Aug 2015 09:54:08 +0000 (11:54 +0200)]
i386.c (ix86_expand_int_movcc): Check result of ix86_expand_int_movcc as boolean.

* config/i386/i386.c (ix86_expand_int_movcc): Check result of
ix86_expand_int_movcc as boolean.

From-SVN: r226555

9 years ago[AArch64][3/14] Refactor option override code
Kyrylo Tkachov [Tue, 4 Aug 2015 09:52:52 +0000 (09:52 +0000)]
[AArch64][3/14] Refactor option override code

* config/aarch64/aarch64.opt (aarch64_arch_string): Delete.
(aarch64_cpu_string): Likewise.
(aarch64_tune_string): Likewise.
* config/aarch64/aarch64.c (aarch64_parse_opt_result): New enum.
(aarch64_parse_extension): Return aarch64_parse_opt_result.
Add extra argument to put result into.
(aarch64_parse_arch): Likewise.  Do not set selected_cpu.
(aarch64_parse_cpu): Add arguments to put results into. Return
aarch64_parse_opt_result.
(aarch64_parse_tune): Likewise.
(aarch64_override_options_after_change_1): New function.
(aarch64_override_options_internal): New function.
(aarch64_validate_mcpu): Likewise.
(aarch64_validate_march): Likewise.
(aarch64_validate_mtune): Likewise.
(aarch64_override_options): Update to reflect above changes.
Move some logic into aarch64_override_options_internal.
Initialize target_option_default_node and target_option_current_node.
(aarch64_override_options_after_change): Move logic into
aarch64_override_options_after_change_1 and call it with global_options.
(initialize_aarch64_code_model): Take a gcc_options pointer and use the
flag values from that.

* gcc.target/aarch64/cpu-diagnostics-3.c: Update expected error
message.

From-SVN: r226554

9 years ago[AArch64][2/14] Refactor arches handling, add arch enum identifier
Kyrylo Tkachov [Tue, 4 Aug 2015 09:47:49 +0000 (09:47 +0000)]
[AArch64][2/14] Refactor arches handling, add arch enum identifier

* config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
__ARM_ARCH_8A directly rather than with cpp_define_formatted.
* config/aarch64/aarch64.c (struct processor): Add arch field.
(all_architectures): Handle above, move above all_cores.
(all_cores): Handle above.
(aarch64_parse_arch): Handle above changes.
* config/aarch64/aarch64-arches.def (armv8-a): Extend according to
above.  Update comments.
(armv8.1-a): Likewise.
* config/aarch64/aarch64-cores.def: Update according to above.
* config/aarch64/aarch64-opts.h (aarch64_arch): New enum.
* config/aarch64/driver-aarch64.c (struct aarch64_arch): Rename to
aarch64_arch_driver_info.

From-SVN: r226553

9 years ago[AArch64][1/14] Add ident field to struct processor
Kyrylo Tkachov [Tue, 4 Aug 2015 09:44:18 +0000 (09:44 +0000)]
[AArch64][1/14] Add ident field to struct processor

        * config/aarch64/aarch64.c (struct processor): Add ident field.
        Rename core sched_core.
        (all_cores): Handle above changes.
        (all_architectures): Likewise.
        (aarch64_parse_arch): Likewise.
        (aarch64_override_options): Likewise.

From-SVN: r226552

9 years agogimple-fold.c (gimple_fold_stmt_to_constant_1): Remove dispatching to fold_binary...
Richard Biener [Tue, 4 Aug 2015 09:40:54 +0000 (09:40 +0000)]
gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove dispatching to fold_binary for GIMPLE_BINARY_RHS and for comparisons...

2015-08-04  Richard Biener  <rguenther@suse.de>

* gimple-fold.c (gimple_fold_stmt_to_constant_1): Remove
dispatching to fold_binary for GIMPLE_BINARY_RHS and for
comparisons embedded in [VEC_]COND_EXPRs.

From-SVN: r226551

9 years ago* config/fpu-387.h: Remove unwanted whitespace.
Uros Bizjak [Tue, 4 Aug 2015 09:24:15 +0000 (11:24 +0200)]
* config/fpu-387.h: Remove unwanted whitespace.

From-SVN: r226550

9 years agofpu-387.h (get_fpu_trap_exceptions): Add temporary variable to improve generated...
Uros Bizjak [Tue, 4 Aug 2015 09:16:52 +0000 (11:16 +0200)]
fpu-387.h (get_fpu_trap_exceptions): Add temporary variable to improve generated code.

* config/fpu-387.h (get_fpu_trap_exceptions): Add temporary variable
to improve generated code.

From-SVN: r226549

9 years agore PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and...
Francois-Xavier Coudert [Tue, 4 Aug 2015 07:27:19 +0000 (07:27 +0000)]
re PR fortran/64022 ([F2003][IEEE] ieee_support_flag does not handle kind=10 and kind=16 REAL variables)

PR fortran/64022

* simplify.c (gfc_simplify_ieee_selected_real_kind): Extend IEEE
support to all real kinds.

* ieee/ieee_exceptions.F90: Support all real kinds.
* ieee/ieee_arithmetic.F90: Likewise.
* ieee/ieee_helper.c (ieee_class_helper_10,
ieee_class_helper_16): New functions
* gfortran.map (GFORTRAN_1.7): Add entries.

* gfortran.dg/ieee/ieee_7.f90: Adjust test.
* gfortran.dg/ieee/large_1.f90: New test.

From-SVN: r226548

9 years agotree-if-conv.c: Fix various typos in comments.
Abe Skolnik [Tue, 4 Aug 2015 03:53:10 +0000 (03:53 +0000)]
tree-if-conv.c: Fix various typos in comments.

* tree-if-conv.c: Fix various typos in comments.
* tree-vect-stmts.c: Likewise.

From-SVN: r226544

9 years agoruntime: initialize variable to avoid compiler warning
Ian Lance Taylor [Tue, 4 Aug 2015 03:39:21 +0000 (03:39 +0000)]
runtime: initialize variable to avoid compiler warning

    Reviewed-on: https://go-review.googlesource.com/13095

From-SVN: r226543

9 years agore PR debug/67043 (-fcompare-debug failure with -O3)
Thomas Preud'homme [Tue, 4 Aug 2015 02:11:58 +0000 (02:11 +0000)]
re PR debug/67043 (-fcompare-debug failure with -O3)

2015-08-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    gcc/
    PR tree-optimization/67043
    * loop-invariant.c (move_invariant_reg): Recompute luids in loop
    preheader after hoisting invariant in it.
    (find_defs): Force recomputation of all luids.

    gcc/testsuite/
    PR tree-optimization/67043
    * gcc.dg/pr67043.c: New test.

From-SVN: r226540

9 years agoplugin-nvptx.c: Don't include dlfcn.h.
Nathan Sidwell [Tue, 4 Aug 2015 00:40:18 +0000 (00:40 +0000)]
plugin-nvptx.c: Don't include dlfcn.h.

* plugin/plugin-nvptx.c: Don't include dlfcn.h.
(cuda_errlist): Constify.
(errmsg):  Move into ...
(cuda_error): ... here.  Make smaller.
(_XSTR, _STR): Delete.
(cuda_synames): Delete.
(verify_device_library): Delete.
(nvptx_init): Don't call it.

From-SVN: r226539

9 years agoDaily bump.
GCC Administrator [Tue, 4 Aug 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r226538

9 years agosyscall: RawSockaddr fix for ppc64, ppc64le
Ian Lance Taylor [Mon, 3 Aug 2015 21:18:56 +0000 (21:18 +0000)]
syscall:  RawSockaddr fix for ppc64, ppc64le

    The struct RawSockaddr contains a field Data which
    should be uint8 on ppc64 and ppc64le, but is declared
    as int8 in gccgo.  This change adds a two new files
    which contain the structure declaration for
    RawSockaddr, one with the correct types for for ppc64
    and ppc64le, and the other for non-ppc64 platforms.

    Fixes golang/go#11469

    Reviewed-on: https://go-review.googlesource.com/11946

From-SVN: r226533

9 years agohtm.md (tabort.): Restrict the source operand to using a base register.
Peter Bergner [Mon, 3 Aug 2015 21:11:20 +0000 (16:11 -0500)]
htm.md (tabort.): Restrict the source operand to using a base register.

gcc/
* config/rs6000/htm.md (tabort.): Restrict the source operand to
using a base register.

gcc/testsuite/
* gcc.target/powerpc/htm-tabort-no-r0.c: New test.

From-SVN: r226532

9 years agoRefactoring of timevar API
David Malcolm [Mon, 3 Aug 2015 20:14:21 +0000 (20:14 +0000)]
Refactoring of timevar API

gcc/ChangeLog:
* main.c (main): Pass in NULL for toplev's external_timer.
* timevar.c: Include coretypes.h.
(class timer::named_items): New.
(timer::named_items::named_items): New.
(timer::named_items::~named_items): New.
(timer::named_items::push): New.
(timer::named_items::pop): New.
(timer::named_items::print): New.
(timer::timer): Initialize field "m_jit_client_items".
(timer::~timer): New.
(timer::push): Move bulk of implementation to...
(timer::push_internal): ...here.  New function.
(timer::pop): Move bulk of implementation to...
(timer::pop_internal): ...here.  New function.
(timer::push_client_item): New.
(timer::pop_client_item): New.
(timer::print_row): New function, taken from timer::print.
(timer::print): Print "GCC items" header if we also have client
items.  Move row-printing to timer::print_row.  Print any client
items.
(timer::get_topmost_item_name): New method.
* timevar.def (TV_JIT_ACQUIRING_MUTEX): New.
(TV_JIT_CLIENT_CODE): New.
* timevar.h (timer::push_client_item): New declaration.
(timer::pop_client_item): New declaration.
(timer::get_topmost_item_name): New method.
(timer::push_internal): New declaration.
(timer::pop_internal): New declaration.
(timer::print_row): New declaration.
(timer::named_items): New declaration.
(timer::m_jit_client_items): New field.
(timer): Add friend class named_items.
(auto_timevar::auto_timevar): Add timer param.
(auto_timevar::~auto_timevar): Use field "m_timer".
(auto_timevar::m_timer): New field.
* toplev.c (initialize_rtl): Add g_timer as param when
constructing auto_timevar instance.
(toplev::toplev): Add "external_timer" param, and use it to
initialize the "g_timer" global if non-NULL.
(toplev::~toplev): If this created "g_timer", delete it.
* toplev.h (toplev::toplev): Replace "use_TV_TOTAL" bool param
with "external_timer" timer *.

gcc/jit/ChangeLog:
* docs/topics/compatibility.rst (LIBGCCJIT_ABI_4): New.
* docs/topics/contexts.rst (GCC_JIT_BOOL_OPTION_DUMP_SUMMARY):
We no longer show a profile.
* docs/topics/index.rst (Topic Reference): Add performance.rst.
* docs/topics/performance.rst: New file.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-playback.c (gcc::jit::playback::context::compile): Add timer
param when constructing the "toplev" instance.
(gcc::jit::playback::context::acquire_mutex): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::make_fake_args): If we have a timer,
add "-ftime-report".
(gcc::jit::playback::context::invoke_driver): Add timer param when
constructing auto_timevar instance.
(gcc::jit::playback::context::dlopen_built_dso): Likewise.
* jit-playback.h (gcc::jit::playback::context::get_timer): New accessor.
* jit-recording.c: Include timevar.h.
(gcc::jit::recording::context::context): Initialize field "m_timer".
* jit-recording.h: Add forward declaration of class timer.
(gcc::jit::recording::context::set_timer): New method.
(gcc::jit::recording::context::get_timer): New method.
(gcc::jit::recording::context::m_timer): New field.
* libgccjit++.h (gccjit::timer): New class.
(gccjit::auto_time): New class.
(gccjit::context::set_timer): New method.
(gccjit::context::get_timer): New.
(gccjit::timer::timer): New.
(gccjit::timer::push): New.
(gccjit::timer::pop): New.
(timer::print): New.
(timer::get_inner_timer): New.
(timer::release): New.
(auto_time::auto_time): New.
(auto_time::~auto_time): New.
* libgccjit.c: Include timevar.h.
(struct gcc_jit_timer): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.h (LIBGCCJIT_HAVE_TIMING_API): New macro.
(gcc_jit_timer): New typedef.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.
* libgccjit.map (LIBGCCJIT_ABI_4): New.
(gcc_jit_timer_new): New function.
(gcc_jit_timer_release): New function.
(gcc_jit_context_set_timer): New function.
(gcc_jit_context_get_timer): New function.
(gcc_jit_timer_push): New function.
(gcc_jit_timer_pop): New function.
(gcc_jit_timer_print): New function.

gcc/testsuite/ChangeLog:
* jit.dg/test-benchmark.c (test_jit): Add param "timer" and use
it to push/pop timing items.
(main): For each optimization level, create a gcc_jit_timer, and
time all of the iteration within that level cumulatively.
* jit.dg/test-error-gcc_jit_timer_pop-mismatch.c: New test case.
* jit.dg/test-error-gcc_jit_timer_pop-too-many.c: New test case.

From-SVN: r226530

9 years agocompiler: Don't allow multiple function declarations.
Ian Lance Taylor [Mon, 3 Aug 2015 19:55:00 +0000 (19:55 +0000)]
compiler: Don't allow multiple function declarations.

    Fixes golang/go#11573.

    Reviewed-on: https://go-review.googlesource.com/12508

From-SVN: r226529

9 years agore PR middle-end/64744 (ARM: gcc internal compiler error: in store_field, at expr...
Alexander Basov [Mon, 3 Aug 2015 19:34:31 +0000 (19:34 +0000)]
re PR middle-end/64744 (ARM: gcc internal compiler error: in store_field, at expr.c:6659)

PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* cfgexpand.c (expand_one_var): Add check if stack is going to
be used in naked function.
* expr.c (expand_expr_addr_expr_1): Remove excess checking
whether expression should not reside in MEM.
* function.c (use_register_for_decl): Do not use registers for
non-register things (volatile, float, BLKMode) in naked functions.

PR middle-end/64744
PR middle-end/48470
PR middle-end/43404
* gcc.target/arm/pr43404.c : New testcase.
* gcc.target/arm/pr48470.c : New testcase.
* gcc.target/arm/pr64744-1.c : New testcase.
* gcc.target/arm/pr64744-2.c : New testcase.

From-SVN: r226528

9 years agocompiler: Don't make erroneous type descriptors.
Ian Lance Taylor [Mon, 3 Aug 2015 18:53:56 +0000 (18:53 +0000)]
compiler: Don't make erroneous type descriptors.

    There is no need to make type descriptors for named types when there
    are errors during package compilation.  Particularly, if the error in
    package compilation is from a malformed named type, there is no
    guarantee a type descriptor can be created.

    Fixes golang/go#11560.

    Reviewed-on: https://go-review.googlesource.com/12792

From-SVN: r226527

9 years agolibgo/testsuite: kill sleep process in gotest
Ian Lance Taylor [Mon, 3 Aug 2015 18:23:42 +0000 (18:23 +0000)]
libgo/testsuite: kill sleep process in gotest

    This change modifies the "gotest" shell script
    to kill all processes, including "sleep", spawned
    by the timeout subshell. This prevents the sleep
    process from living beyond the gotest process.

    BACKGROUND

    The "gotest" shell script spawns "sleep" processes
    in the background to kill off test cases that run
    past their specified timeout. There are commands
    included that appear to kill the sleep process,
    but they only kill the parent shell, causing the
    sleep process to reparent.

    The orphaned sleep process can cause issues when
    gotest is run under some build systems, such as
    Ninja [0]. The particular issue with Ninja is the
    method it uses to identify terminated processes:
    it creates a pipe, passes the write end to the
    child process, and waits for EOF. In the case of
    libgo/gotest, the orphaned sleep process inherits
    the pipe FD and keeps it open for 4 minutes by
    default.

    [0] https://github.com/martine/ninja

    Reviewed-on: https://go-review.googlesource.com/12227

From-SVN: r226526

9 years agore PR go/67101 (mprof.goc:408:5: error: calling ‘__builtin_frame_address’ with a...
Ian Lance Taylor [Mon, 3 Aug 2015 17:54:50 +0000 (17:54 +0000)]
re PR go/67101 (mprof.goc:408:5: error: calling ‘__builtin_frame_address’ with a nonzero argument is unsafe [-Werror=frame-address])

PR go/67101

    runtime: Remove call to __builtin_frame_address.

    __builtin_frame_address was only supposed to use nonzero arguments
    for debugging purposes.  Calling it with nonzero arguments can have
    unpredictable results and uses are now marked unsafe when
    -Wframe-address is enabled.

    Reviewed-on: https://go-review.googlesource.com/13063

From-SVN: r226525

9 years agore PR target/67060 (FAIL: gcc.dg/pr56228.c (test for excess errors))
John David Anglin [Mon, 3 Aug 2015 17:26:19 +0000 (17:26 +0000)]
re PR target/67060 (FAIL: gcc.dg/pr56228.c (test for excess errors))

PR target/67060
* config/pa/pa.md (call_reg_64bit): Remove reg:DI 1 clobber.
Adjust splits to match new pattern.

From-SVN: r226522

9 years agovector.md (VEC_L): Add KFmode and TFmode.
Michael Meissner [Mon, 3 Aug 2015 17:06:24 +0000 (17:06 +0000)]
vector.md (VEC_L): Add KFmode and TFmode.

2015-08-03  Michael Meissner  <meissner@linux.vnet.ibm.com>

* config/rs6000/vector.md (VEC_L): Add KFmode and TFmode.
(VEC_M): Likewise.
(VEC_N): Likewise.
(mov<mode>, VEC_M iterator): Add support for IEEE 128-bit floating
point in VSX registers.

* config/rs6000/constraints.md (wb constraint): Document unused
w<x> constraint.
(we constraint): Likewise.
(wo constraint): Likewise.
(wp constraint): New constraint for IEEE 128-bit floating point in
VSX registers.
(wq constraint): Likewise.

* config/rs6000/predicates.md (easy_fp_constant): Add support for
IEEE 128-bit floating point in VSX registers.
(easy_scalar_constant): Likewise.

* config/rs6000/rs6000.c (rs6000_debug_reg_global): Add new
constraints (wp, wq) for IEEE 128-bit floating point in VSX
registers.
(rs6000_init_hard_regno_mode_ok): Likewise.

* config/rs6000/vsx.md (VSX_LE_128): Add support for IEEE 128-bit
floating point in VSX registers.
(VSX_L): Likewise.
(VSX_M): Likewise.
(VSX_M2): Likewise.
(VSm): Likewise.
(VSs): Likewise.
(VSr): Likewise.
(VSa): Likewise.
(VSv): Likewise.
(vsx_le_permute_<mode>): Add support to properly swap bytes for
IEEE 128-bit floating point in VSX registers on little endian.
(vsx_le_undo_permute_<mode>): Likewise.
(vsx_le_perm_load_<mode>): Likewise.
(vsx_le_perm_store_<mode>): Likewise.
(splitters for IEEE 128-bit fp moves): Likewise.

* config/rs6000/rs6000.h (enum r6000_reg_class_enum): Add wp and
wq constraints.

* config/rs6000/altivec.md (VM): Add support for IEEE 128-bit
floating point in VSX registers.
(VM2): Likewise.

* doc/md.text (Machine Constraints): Document wp and wq
constraints on PowerPC.

From-SVN: r226520

9 years agoAdd a testcase for PR tree-optimization/67077
H.J. Lu [Mon, 3 Aug 2015 16:58:03 +0000 (16:58 +0000)]
Add a testcase for PR tree-optimization/67077

PR tree-optimization/67077
* gcc.dg/pr67077.c: New test.

From-SVN: r226518

9 years agore PR fortran/66942 (trans-expr.c:5701 runtime error: member call on null pointer...
Steven G. Kargl [Mon, 3 Aug 2015 16:56:39 +0000 (16:56 +0000)]
re PR fortran/66942 (trans-expr.c:5701 runtime error: member call on null pointer of type 'struct vec')

2015-08-03  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/66942
* trans-expr.c (gfc_conv_procedure_call): Avoid NULL pointer reference

From-SVN: r226517

9 years agore PR middle-end/66314 (ice in verify_loop_structure)
Jeff Law [Mon, 3 Aug 2015 16:26:13 +0000 (10:26 -0600)]
re PR middle-end/66314 (ice in verify_loop_structure)

PR middle-end/66314
PR gcov-profile/66899
* tree-ssa-threadupdate.c (mark_threaded_blocks): Correctly
iterate over the jump threading paths when an element in the
jump threading paths array is eliminated.

PR middle-end/66314
PR gcov-profile/66899
* gcc.dg/pr66899.c: New test.
* gcc.dg/pr66314.c: New test.

From-SVN: r226516

9 years agore PR libstdc++/67078 (FAIL: 24_iterators/container_access.cc (test for excess errors...
Jonathan Wakely [Mon, 3 Aug 2015 15:56:17 +0000 (16:56 +0100)]
re PR libstdc++/67078 (FAIL: 24_iterators/container_access.cc (test for excess errors) on aarch64-none-elf)

PR libstdc++/67078
* include/bits/range_access.h (size, empty, data): Fix _N bad name.

From-SVN: r226515

9 years ago* Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.
Segher Boessenkool [Mon, 3 Aug 2015 15:33:45 +0000 (17:33 +0200)]
* Makefile.in (OBJS): Put gimple-match.o and generic-match.o first.

From-SVN: r226514

9 years agoAvoid recomputing the defining predicate chains for the same PHI
Patrick Palka [Mon, 3 Aug 2015 14:57:25 +0000 (14:57 +0000)]
Avoid recomputing the defining predicate chains for the same PHI

gcc/ChangeLog:

* tree-ssa-uninit.c (find_uninit_use): Declare and pass to
is_use_properly_guarded the variable def_preds.  Free its
contents before returning.
(prune_uninit_phi_opnds_in_unrealizable_paths): Same.
(is_use_properly_guarded): Replace local variable def_preds with
a parameter.  Adjust accordingly.  Only update *def_preds if it's
the empty vector.

From-SVN: r226511

9 years agore PR c/67088 (Incorrect location of error on invalid type used in bit-field declaration)
Marek Polacek [Mon, 3 Aug 2015 13:55:28 +0000 (13:55 +0000)]
re PR c/67088 (Incorrect location of error on invalid type used in bit-field declaration)

PR c/67088
* c-decl.c (check_bitfield_type_and_width): Add location parameter.
Use it.
(grokdeclarator): Pass LOC down to check_bitfield_type_and_width.

* gcc.dg/pr67088.c: New test.

From-SVN: r226506

9 years agogenmatch.c (simplify::for_subst_vec): New member.
Richard Biener [Mon, 3 Aug 2015 13:45:22 +0000 (13:45 +0000)]
genmatch.c (simplify::for_subst_vec): New member.

2015-08-03  Richard Biener  <rguenther@suse.de>

* genmatch.c (simplify::for_subst_vec): New member.
(binary_ok): New helper for for lowering.
(lower_for): Delay substituting operators into result expressions
if we can merge the results eventually again.
(capture_info::walk_result): Adjust for user_id appearing as
result expression operator.
(expr::gen_transform): Likewise.
(dt_simplify::gen_1): Likewise.
(dt_simplify::gen): Pass not substituted operators to tail
functions or initialize local variable with it.
(decision_tree::gen): Adjust function signature.
* match.pd: Fix tests against global code and add default
cases to switch stmts.

From-SVN: r226505

9 years agogenmatch.c (simplify::for_subst_vec): New member.
Richard Biener [Mon, 3 Aug 2015 13:28:46 +0000 (13:28 +0000)]
genmatch.c (simplify::for_subst_vec): New member.

2015-08-03  Richard Biener  <rguenther@suse.de>

* genmatch.c (simplify::for_subst_vec): New member.
(binary_ok): New helper for for lowering.
(lower_for): Delay substituting operators into result expressions
if we can merge the results eventually again.
(capture_info::walk_result): Adjust for user_id appearing as
result expression operator.
(expr::gen_transform): Likewise.
(dt_simplify::gen_1): Likewise.
(dt_simplify::gen): Pass not substituted operators to tail
functions or initialize local variable with it.
(decision_tree::gen): Adjust function signature.
* match.pd: Fix tests against global code and add default
cases to switch stmts.

From-SVN: r226504

9 years agogenmatch.c (dt_simplify::gen): Create captures array with an initializer.
Richard Biener [Mon, 3 Aug 2015 13:20:22 +0000 (13:20 +0000)]
genmatch.c (dt_simplify::gen): Create captures array with an initializer.

2015-08-03  Richard Biener  <rguenther@suse.de>

* genmatch.c (dt_simplify::gen): Create captures array
with an initializer.

From-SVN: r226503

9 years agoconfigure.ac: Set aliasing_flags to -fno-strict-aliasing if...
Ulrich Weigand [Mon, 3 Aug 2015 11:48:57 +0000 (11:48 +0000)]
configure.ac: Set aliasing_flags to -fno-strict-aliasing if...

gcc/ChangeLog:

* configure.ac: Set aliasing_flags to -fno-strict-aliasing if
the host compiler is affected by placement new aliasing bug.
* configure: Regenerate.
* Makefile.in (ALIASING_FLAGS): New variable.
(ALL_CXXFLAGS): Add $(ALIASING_FLAGS).

From-SVN: r226499

9 years ago[ARM] PR target/66731 Fix vnmul insn with -frounding-math
Szabolcs Nagy [Mon, 3 Aug 2015 11:12:00 +0000 (11:12 +0000)]
[ARM] PR target/66731 Fix vnmul insn with -frounding-math

gcc:

PR target/66731
* config/arm/vfp.md (negmuldf3_vfp): Add new pattern.
(negmulsf3_vfp): Likewise.
(muldf3negdf_vfp): Disable for -frounding-math.
(mulsf3negsf_vfp): Likewise.
* config/arm/arm.c (arm_new_rtx_costs): Fix NEG cost for VNMUL,
fix MULT cost with -frounding-math.

gcc/testsuite:

PR target/66731
* gcc.target/arm/vnmul-1.c: New.
* gcc.target/arm/vnmul-2.c: New.
* gcc.target/arm/vnmul-3.c: New.
* gcc.target/arm/vnmul-4.c: New.

From-SVN: r226496

9 years agoFix random class_allocate_18.f90 failure
Mikael Morin [Mon, 3 Aug 2015 10:03:55 +0000 (10:03 +0000)]
Fix random class_allocate_18.f90 failure

PR fortran/64921
gcc/fortran/
* class.c (generate_finalization_wrapper): Set finalization
procedure symbol's always_explicit attribute.
gcc/testsuite/
* gfortran.dg/class_allocate_20.f90: New.

From-SVN: r226493

9 years ago[RTL-ifcvt] Improve conditional select ops on immediates
Kyrylo Tkachov [Mon, 3 Aug 2015 08:14:42 +0000 (08:14 +0000)]
[RTL-ifcvt] Improve conditional select ops on immediates

* ifcvt.c (noce_try_store_flag_constants): Make logic of the case
when diff == STORE_FLAG_VALUE or diff == -STORE_FLAG_VALUE more
explicit.  Prefer to add the flag whenever possible.
(noce_process_if_block): Try noce_try_store_flag_constants before
noce_try_cmove.

* gcc.target/aarch64/csel_bfx_1.c: New test.
* gcc.target/aarch64/csel_imms_inc_1.c: Likewise.

From-SVN: r226491

9 years agogenmatch.c (struct sinfo, [...]): New hash-map to record equivalent transforms.
Richard Biener [Mon, 3 Aug 2015 07:39:12 +0000 (07:39 +0000)]
genmatch.c (struct sinfo, [...]): New hash-map to record equivalent transforms.

2015-08-03  Richard Biener  <rguenther@suse.de>

* genmatch.c (struct sinfo, struct sinfo_hashmap_traits, sinfo_map_t):
New hash-map to record equivalent transforms.
(dt_node::analyze): Populate the equivalent transforms hash-map.
(dt_simplify::info): Add reference to hash-map entry.
(dt_simplify::gen): If we have split out a function for the
transform, generate a call to it.
(sinfo_hashmap_traits::hash): New function.
(compare_op): New helper function for ...
(sinfo_hashmap_traits::equal_keys): ... this new function.
(decision_tree::gen): Split out common equivalent transforms
into functions.

From-SVN: r226490

9 years agogimple-fold.c (fold_gimple_assign): Remove folding of the comparison in COND_EXPRs.
Richard Biener [Mon, 3 Aug 2015 07:28:11 +0000 (07:28 +0000)]
gimple-fold.c (fold_gimple_assign): Remove folding of the comparison in COND_EXPRs.

2015-08-03  Richard Biener  <rguenther@suse.de>

* gimple-fold.c (fold_gimple_assign): Remove folding of
the comparison in COND_EXPRs.

From-SVN: r226489