gcc.git
8 years agore PR tree-optimization/65337 (LTO bootstrap failure with Ada enabled)
Eric Botcazou [Mon, 21 Dec 2015 15:15:50 +0000 (15:15 +0000)]
re PR tree-optimization/65337 (LTO bootstrap failure with Ada enabled)

PR tree-optimization/65337
* tree-ssa-pre.c (eliminate): Also clean up abnormal edges if need be.

From-SVN: r231882

8 years agoRename test file that had incorrect bug number
Jonathan Wakely [Mon, 21 Dec 2015 14:16:36 +0000 (14:16 +0000)]
Rename test file that had incorrect bug number

PR libstdc++/68982
testsuite/20_util/function_objects/mem_fn/68276.cc: Rename to ...
testsuite/20_util/function_objects/mem_fn/68982.cc: Correct bug number.

From-SVN: r231881

8 years agolibstdc++/68995 qualify calls to __callable_functor
Jonathan Wakely [Mon, 21 Dec 2015 13:02:18 +0000 (13:02 +0000)]
libstdc++/68995 qualify calls to __callable_functor

PR libstdc++/68995
* include/std/functional (_function_handler, function): Qualify
__callable_functor.
* testsuite/20_util/function/68995.cc: New.

From-SVN: r231880

8 years agolibstdc++/68276 consistently qualify std::forward
Jonathan Wakely [Mon, 21 Dec 2015 13:02:12 +0000 (13:02 +0000)]
libstdc++/68276 consistently qualify std::forward

PR libstdc++/68276
* include/std/functional (__invoke_impl, _Mem_fn::operator()): Qualify
std::forward.
testsuite/20_util/function_objects/mem_fn/68276.cc: New.

From-SVN: r231879

8 years agoFix typo
Eric Botcazou [Mon, 21 Dec 2015 11:41:34 +0000 (11:41 +0000)]
Fix typo

From-SVN: r231877

8 years agoS/390: Fix base reg condition.
Dominik Vogt [Mon, 21 Dec 2015 11:40:42 +0000 (11:40 +0000)]
S/390: Fix base reg condition.

2015-12-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

* config/s390/s390.c (s390_emit_prologue): Fix base reg condition.

From-SVN: r231876

8 years agore PR libstdc++/66693 ([C++17] std::tuple_size fails with const std::array)
Ville Voutilainen [Mon, 21 Dec 2015 11:22:16 +0000 (13:22 +0200)]
re PR libstdc++/66693 ([C++17] std::tuple_size fails with const std::array)

PR libstdc++/66693.

* include/std/tuple (tuple_element, tuple_size, tuple_element_t,
__tuple_element_t): Move to...
* include/std/utility: ...here.
* testsuite/20_util/pair/astuple/astuple.cc: Adjust.
* testsuite/20_util/pair/astuple/astuple_cpp14.cc: New.
* testsuite/20_util/tuple/tuple_element.cc: Adjust.
* testsuite/20_util/tuple/tuple_element_t.cc: Likewise.
* testsuite/20_util/tuple/tuple_size.cc: Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element.cc:
Likewise.
* testsuite/23_containers/array/tuple_interface/tuple_element_cpp14.cc:
New.
* testsuite/23_containers/array/tuple_interface/tuple_size.cc: Adjust.

From-SVN: r231875

8 years ago[ARC] Add and refurbish the builtins related functions.
Claudiu Zissulescu [Mon, 21 Dec 2015 09:53:01 +0000 (10:53 +0100)]
[ARC] Add and refurbish the builtins related functions.

gcc/
2015-12-21  Claudiu Zissulescu  <claziss@synopsys.com>

* config/arc/builtins.def: New file.
* config/arc/arc.c (arc_init_simd_builtins): Remove.
(arc_builtins): Likewise.
(TARGET_BUILTIN_DECL): Define.
(arc_builtin_id): New enum.
(arc_builtin_description): New structure.
(arc_bdesc): New variable.
(arc_tolower): New function.
(def_mbuiltin): Remove.
(arc_builtin_decl): New function.
(arc_expand_builtin_aligned ): Likewise.
(apply_GEN_FCN): Likewise.
(arc_init_builtins): Refurbish.
(arc_expand_builtin): Likewise.
(simd_insn_args_type): Remove.
(builtin_description): Likewise
(arc_simd_builtin_desc_list): Likewise.
(arc_expand_simd_builtin): Likewise.
(arc_process_double_reg_moves): Use the new builtin name format.
* config/arc/arc.md (unspec): New builtin function UNSPEC codes.
(vunspec): New builtin function VUNSPEC codes.
(UNSPEC_SWAP, UNSPEC_MUL64, UNSPEC_MULU64, UNSPEC_DIVAW)
(UNSPEC_DIRECT, UNSPEC_LP, UNSPEC_CASESI, VUNSPEC_RTIE)
(VUNSPEC_SYNC, VUNSPEC_BRK, VUNSPEC_FLAG, VUNSPEC_SLEEP)
(VUNSPEC_SWI, VUNSPEC_CORE_READ, VUNSPEC_CORE_WRITE, VUNSPEC_LR)
(VUNSPEC_SR, VUNSPEC_TRAP_S, VUNSPEC_UNIMP_S, VUNSPEC_NOP)
(UNSPEC_ARC_MEMBAR,VUNSPEC_ARC_CAS, VUNSPEC_ARC_LL)
(VUNSPEC_ARC_SC, VUNSPEC_ARC_EX, VUNSPEC_DEXCL)
(VUNSPEC_DEXCL_NORES, VUNSPEC_LR_HIGH): Remove.
(mul64, mulu64): Remove patterns.
(store_direct, *movdf_insn_nolrsr, casesi, casesi_load)
(casesi_compact_jump, nopv, swap, divaw, flag, brk, rtie, sync)
(swi, sleep, core_read, core_write, lr, sr, trap_s, unimp_s)
(doloop_begin_i): Use new builtin function code naming.
(kflag, clri, ffs, ffs_f, ffssi2, fls, seti): New patterns.
* config/arc/builtins.def: New file.
* config/arc/fpx.md: Use new builtin function code naming.
* config/arc/simdext.md: New SIMD builtin function UNSPEC
codes. Use them in the SIMD patterns.

gcc/testsuite
2015-12-21  Claudiu Zissulescu  <claziss@synopsys.com>

* gcc.target/arc/builtin_general.c: New test.
* gcc.target/arc/builtin_simd.c: Likewise.
* gcc.target/arc/builtin_special.c: Likewise.

From-SVN: r231874

8 years agore PR other/66827 (left shifts of negative value warnings due to C++14 switch)
Nick Clifton [Mon, 21 Dec 2015 08:23:35 +0000 (08:23 +0000)]
re PR other/66827 (left shifts of negative value warnings due to C++14 switch)

PR 66827
* regex.c (EXTRACT_NUMBER): Cast sign byte to unsigned before left
shifting.

From-SVN: r231873

8 years agoThis series of patches fix PR61441.
Sujoy Saraswati [Mon, 21 Dec 2015 07:59:30 +0000 (07:59 +0000)]
This series of patches fix PR61441.

This series of patches fix PR61441. This patch makes resulting NaN values
to be quiet NaN for real value operations, irrespective of the flag_signaling_nans
flag. The caller has the responsibility to avoid the operation if flag_signaling_nans
is on.

gcc/
* real.c (do_add): Make resulting NaN value to be qNaN.
(do_multiply, do_divide, do_fix_trunc): Same.
(real_arithmetic, real_ldexp, real_convert): Same.
(real_isinteger): Updated comment stating it returns false for sNaN.

From-SVN: r231872

8 years agore PR tree-optimization/64910 (tree reassociation results in poor code)
Jeff Law [Mon, 21 Dec 2015 04:49:02 +0000 (21:49 -0700)]
re PR tree-optimization/64910 (tree reassociation results in poor code)

PR tree-optimization/64910
* config/i386/i386.md (testqi_ext_3): Allow HImode.

PR tree-optimization/64910
* gcc.target/i386/bittest.c: New test.

From-SVN: r231871

8 years agore PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)
Jason Merrill [Mon, 21 Dec 2015 03:04:08 +0000 (22:04 -0500)]
re PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)

PR c++/67411
* decl2.c (decl_maybe_constant_var_p): Use DECL_HAS_VALUE_EXPR_P.

From-SVN: r231869

8 years agoDaily bump.
GCC Administrator [Mon, 21 Dec 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231867

8 years ago2015-12-20 Andrew Pinsi <apinski@cavium.com>
Andrew Pinski [Sun, 20 Dec 2015 22:01:32 +0000 (14:01 -0800)]
2015-12-20  Andrew Pinsi  <apinski@cavium.com>

        * config/aarch64/atomics.md
        (aarch64_atomic_<atomic_optab>_fetch<mode>_lse): Add early clobber
        to the scratch register.

From-SVN: r231864

8 years agore PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)
Jason Merrill [Sun, 20 Dec 2015 18:38:37 +0000 (13:38 -0500)]
re PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)

PR c++/67411

* lambda.c (generic_lambda_fn_p): Split out from...
(maybe_add_lambda_conv_op): ...here.
* semantics.c (process_outer_var_ref): Don't defer maybe-constant
variables in a generic lambda.
* pt.c (instantiate_non_dependent_or_null): New.
* init.c (constant_value_1): Use it.
* cp-tree.h: Declare it and generic_lambda_fn_p.

From-SVN: r231863

8 years agore PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)
Jason Merrill [Sun, 20 Dec 2015 18:38:30 +0000 (13:38 -0500)]
re PR c++/67411 (internal compiler error: in tsubst_copy, at cp/pt.c:13473)

PR c++/67411

* decl2.c (decl_maybe_constant_var_p): A proxy isn't constant.

From-SVN: r231862

8 years agoutils2.c (gnat_rewrite_reference): New case identical to FLOAT_EXPR.
Eric Botcazou [Sun, 20 Dec 2015 10:38:09 +0000 (10:38 +0000)]
utils2.c (gnat_rewrite_reference): New case identical to FLOAT_EXPR.

* gcc-interface/utils2.c (gnat_rewrite_reference) <REALPART_EXPR>: New
case identical to FLOAT_EXPR.
<IMAGPART_EXPR>: Likewise.

From-SVN: r231861

8 years agodecl.c (gnat_to_gnu_entity): During layout in type_annotate_only mode...
Eric Botcazou [Sun, 20 Dec 2015 10:30:27 +0000 (10:30 +0000)]
decl.c (gnat_to_gnu_entity): During layout in type_annotate_only mode...

* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: During
layout in type_annotate_only mode, skip discriminants of derived
tagged types renaming those of the parent type.
In type_annotate_only mode, if the type is tagged, do not override a
size clause but take into account the alignment of the tag.
(annotate_rep): In type_annotate_only mode, deal with  discriminants
of derived tagged types renaming those of the parent type.

From-SVN: r231860

8 years agoutils.c (maybe_pad_type): In type_annotate_only mode...
Eric Botcazou [Sun, 20 Dec 2015 10:27:37 +0000 (10:27 +0000)]
utils.c (maybe_pad_type): In type_annotate_only mode...

* gcc-interface/utils.c (maybe_pad_type): In type_annotate_only mode,
retrieve the component type if this is an array and do not issue the
warning for concurrent types.

From-SVN: r231859

8 years agoThis series of patches fix PR61441.
Sujoy Saraswati [Sun, 20 Dec 2015 09:20:57 +0000 (09:20 +0000)]
This series of patches fix PR61441.

This series of patches fix PR61441. This patch removes flag_errno_math check
for RINT, treating it similar to nearbyint.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
* match.pd (f(x) -> x): Removed flag_errno_math check for RINT.

From-SVN: r231858

8 years agoThis series of patches are for fixing PR61441.
Sujoy Saraswati [Sun, 20 Dec 2015 09:13:51 +0000 (09:13 +0000)]
This series of patches are for fixing PR61441.

This series of patches are for fixing PR61441. This patch modifies code to use
REAL_VALUE_ISSIGNALING_NAN instead of REAL_VALUE_ISNAN to avoid the operatins
only for sNaN operands.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
* fold-const.c (const_binop): Use REAL_VALUE_ISSIGNALING_NAN instead
of REAL_VALUE_ISNAN to avoid the operation for sNaN operands.
* simplify-rtx.c (simplify_const_binary_operation): Same.

From-SVN: r231857

8 years agore PR tree-optimization/65337 (LTO bootstrap failure with Ada enabled)
Jan Hubicka [Sun, 20 Dec 2015 05:50:29 +0000 (06:50 +0100)]
re PR tree-optimization/65337 (LTO bootstrap failure with Ada enabled)

PR middle-end/65337
* tree-ssa-dce.c (bb_postorder): New static var.
(forward_edge_to_pdom): Remove.
(remove_dead_stmt): Instead of redirecting edges only keep an edge
on a path to nearest live BB.
(eliminate_unnecessary_stmts): Free bb_postorder.
* cfganal.c (dfs_find_deadend): Add START_POINTES.
* cfganal.h (inverted_post_order_compute): Update prototype.

From-SVN: r231856

8 years agoDaily bump.
GCC Administrator [Sun, 20 Dec 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231855

8 years agore PR rtl-optimization/68910 (huge stack frame and poor code with instruction schedul...
Eric Botcazou [Sat, 19 Dec 2015 21:58:02 +0000 (21:58 +0000)]
re PR rtl-optimization/68910 (huge stack frame and poor code with instruction scheduling at -O2)

PR rtl-optimization/68910
* emit-rtl.c (set_unique_reg_note) <>REG_EQUAL>: Add bypass for USEs.
* config/sparc/sparc.md (anddi3): Enable only in 64-bit mode.
(iordi3): Likewise.
(xordi3): Likewise.
(one_cmpldi2): Likewise.
(*anddi3_sp32): Delete.
(*and_not_di_sp32): Likewise.
(*iordi3_sp32): Likewise.
(*or_not_di_sp32): Likewise.
(*xordi3_sp32): Likewise.
(*xor_not_di_sp32): Likewise.
(32-bit DImode logical operations splitter): Likewise.
(*one_cmpldi2_sp32): Likewise.

From-SVN: r231851

8 years agoarc.md (*storeqi_update): Use 'memory_operand' and fix RTL pattern to include the...
Andrew Burgess [Sat, 19 Dec 2015 19:29:12 +0000 (19:29 +0000)]
arc.md (*storeqi_update): Use 'memory_operand' and fix RTL pattern to include the plus.

2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*storeqi_update): Use 'memory_operand' and
        fix RTL pattern to include the plus.
        (*storehi_update): Likewise.
        (*storesi_update): Likewise.
        (*storesf_update): Likewise.
        * config/arc/predicates.md (store_update_operand): Delete.

From-SVN: r231850

8 years agoarc.md (*loadqi_update): Use new 'any_mem_operand' and fix RTL pattern to include...
Andrew Burgess [Sat, 19 Dec 2015 19:22:51 +0000 (19:22 +0000)]
arc.md (*loadqi_update): Use new 'any_mem_operand' and fix RTL pattern to include the plus.

gcc:

        2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

        * config/arc/arc.md (*loadqi_update): Use new 'any_mem_operand'
        and fix RTL pattern to include the plus.
        (*load_zeroextendqisi_update): Likewise.
        (*load_signextendqisi_update): Likewise.
        (*loadhi_update): Likewise.
        (*load_zeroextendhisi_update): Likewise.
        (*load_signextendhisi_update): Likewise.
        (*loadsi_update): Likewise.
        (*loadsf_update): Likewise.
        * config/arc/predicates.md (load_update_operand): Delete.
        (any_mem_operand): New predicate.

gcc/testsuite:

        2015-12-19  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/load-update.c: New file.

From-SVN: r231849

8 years agoThis series of patches fix PR61441. This patch adds REAL_VALUE_ISSIGNALING_NAN.
Sujoy Saraswati [Sat, 19 Dec 2015 04:57:57 +0000 (04:57 +0000)]
This series of patches fix PR61441. This patch adds REAL_VALUE_ISSIGNALING_NAN.

Bootstrapped & regression-tested on x86_64-linux-gnu.

gcc/
* real.c (real_issignaling_nan): New.
* real.h (real_issignaling_nan, REAL_VALUE_ISSIGNALING_NAN): New.

From-SVN: r231848

8 years agore PR target/68729 (../Xbae/Methods.c:1772:1: ICE: in extract_insn, at recog.c:2343)
John David Anglin [Sat, 19 Dec 2015 01:50:00 +0000 (01:50 +0000)]
re PR target/68729 (../Xbae/Methods.c:1772:1: ICE: in extract_insn, at recog.c:2343)

PR target/68729
* config/pa/pa.c (pa_emit_move_sequence): Reorganize handling of
floating-point reloads. Only reload operands that are not valid
floating-point memory operands.

From-SVN: r231845

8 years agoDaily bump.
GCC Administrator [Sat, 19 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231844

8 years agoFix PR c++/68978 (bogus error: lvalue required as left operand of assignment)
Patrick Palka [Fri, 18 Dec 2015 23:16:33 +0000 (23:16 +0000)]
Fix PR c++/68978 (bogus error: lvalue required as left operand of assignment)

gcc/cp/ChangeLog:

PR c++/68978
* tree.c (lvalue_kind) [MODOP_EXPR]: New case.

gcc/testsuite/ChangeLog:

PR c++/68978
* g++.dg/template/pr68978.C: New test.

From-SVN: r231841

8 years agore PR debug/68860 (FAIL: gcc.dg/guality/pr36728-1.c -flto -O3 -g line 17 arg1...
Jakub Jelinek [Fri, 18 Dec 2015 22:16:24 +0000 (23:16 +0100)]
re PR debug/68860 (FAIL: gcc.dg/guality/pr36728-1.c   -flto -O3 -g  line 17 arg1 == 1)

PR debug/68860
* ipa-split.c (split_function): Only perform caller side
modifications for decl_debug_args here.
* cgraph.c: Include gimplify.h.
(cgraph_edge::redirect_call_stmt_to_callee): Add caller side
debug stmts for decl_debug_args.  Spelling fix in a comment.
* tree-inline.c (tree_function_versioning): Populate decl_debug_args
for args_to_skip arguments and add callee side debug stmts.
Formatting fixes.  Avoid shadowing i variable.

* gcc.dg/guality/pr68860-1.c: New test.
* gcc.dg/guality/pr68860-2.c: New test.

From-SVN: r231840

8 years agoFix a regression introduced by the fix of libstdc++/68276.
Ville Voutilainen [Fri, 18 Dec 2015 21:27:53 +0000 (23:27 +0200)]
Fix a regression introduced by the fix of libstdc++/68276.

2015-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

Fix a regression introduced by the fix of libstdc++/68276.
* src/c++11/ios.cc (_M_grow_words): Catch bad_alloc again so that
bad_array_new_length is handled properly.

From-SVN: r231839

8 years agotarget-supports.exp (check_effective_target_cilkplus): Not nvptx.
Nathan Sidwell [Fri, 18 Dec 2015 21:14:58 +0000 (21:14 +0000)]
target-supports.exp (check_effective_target_cilkplus): Not nvptx.

* lib/target-supports.exp (check_effective_target_cilkplus): Not nvptx.
* c-c++-common/attr-simd-3.c: Require cilkplus.
* gcc.dg/graphite/id-28.c: Likewise.

From-SVN: r231838

8 years agonvptx.c (nvptx_maybe_convert_symbolic_operand): Remove UNSPEC_TO_GENERIC generation.
Nathan Sidwell [Fri, 18 Dec 2015 20:18:42 +0000 (20:18 +0000)]
nvptx.c (nvptx_maybe_convert_symbolic_operand): Remove UNSPEC_TO_GENERIC generation.

* config/nvptx/nvptx.c (nvptx_maybe_convert_symbolic_operand):
Remove UNSPEC_TO_GENERIC generation.
(nvptx_output_mov_insn): Generate cvta for symbolic src.
* config/nvptx/nvptx.md (nvptx_register_operand): Allow hard reg.
(nvptx_reg_or_mem_operand): Likewise.
(nvptx_nonmemory_operand): Likewise.
(nvptx_general_operand): Delete.
(*mov<mode>_insn): Use nonimmediate_operand, permit hardregs.
(oacc_fork, oacc_join): Use general_operand.

From-SVN: r231837

8 years agoIgnore -fdebug-prefix-map in producer string (by Daniel Kahn Gillmor)
Bernd Schmidt [Fri, 18 Dec 2015 19:48:26 +0000 (19:48 +0000)]
Ignore -fdebug-prefix-map in producer string (by Daniel Kahn Gillmor)

* dwarf2out.c (gen_producer_string): Ignore -fdebug-prefix-map.

testsuite/
* gcc.dg/debug/dwarf2/prod-options.c: New test.

From-SVN: r231835

8 years ago* gnat.dg/specs/debug1.ads: Bump final count to 18.
Eric Botcazou [Fri, 18 Dec 2015 18:21:18 +0000 (18:21 +0000)]
* gnat.dg/specs/debug1.ads: Bump final count to 18.

From-SVN: r231825

8 years agore PR c++/67592 (A virtual member function declared constexpr fails to trigger a...
Paolo Carlini [Fri, 18 Dec 2015 18:18:47 +0000 (18:18 +0000)]
re PR c++/67592 (A virtual member function declared constexpr fails to trigger a diagnostic)

/cp
2015-12-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67592
* decl.c (grokdeclarator): Reject constexpr virtual member functions;
in error messages, prefer %<virtual%> and %<constexpr%> to virtual
and constexpr, respectively.

/testsuite
2015-12-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR c++/67592
* g++.dg/cpp0x/constexpr-virtual5.C: New.
* g++.dg/cpp0x/pr51463.C: Adjust dg-error string.
* g++.dg/inherit/pure1.C: Likewise.

From-SVN: r231824

8 years ago* gcc-interface/ada-tree.h (TYPE_DEBUG_TYPE): Remove duplicate.
Eric Botcazou [Fri, 18 Dec 2015 18:04:03 +0000 (18:04 +0000)]
* gcc-interface/ada-tree.h (TYPE_DEBUG_TYPE): Remove duplicate.

From-SVN: r231823

8 years agonvptx.c (nvptx_option_override): Emit sorry for stabs debug.
Nathan Sidwell [Fri, 18 Dec 2015 17:43:11 +0000 (17:43 +0000)]
nvptx.c (nvptx_option_override): Emit sorry for stabs debug.

* config/nvptx/nvptx.c (nvptx_option_override): Emit sorry for
stabs debug.
(nvptx_assemble_undefined_decl): Use nvptx_assemble_decl_end.

From-SVN: r231822

8 years ago[PATCH] [PR rtl-optimization/49847] Fix ICE in CSE due to cc0-setter and cc0-user...
Jeff Law [Fri, 18 Dec 2015 17:17:14 +0000 (10:17 -0700)]
[PATCH] [PR rtl-optimization/49847] Fix ICE in CSE due to cc0-setter and cc0-user in different blocks

PR rtl-optimization/49847
* cse.c (record_jump_equiv): Handle fold_rtx returning NULL_RTX.

PR rtl-optimization/49847
* g++.dg/pr49847-2.C: New test.

From-SVN: r231821

8 years agoCompile gcc.dg/vect/pr68305.c with -mavx2 for x86 target
H.J. Lu [Fri, 18 Dec 2015 16:51:00 +0000 (16:51 +0000)]
Compile gcc.dg/vect/pr68305.c with -mavx2 for x86 target

Since gcc.dg/vect/pr68305.c is a compile test, we should add -mavx2 for
x86 target.

* gcc.dg/vect/pr68305.c (dg-additional-options): Add -mavx2
for x86 target.

From-SVN: r231820

8 years agore PR libstdc++/68276 (ios_base::_M_grow_words should use new (std::nothrow))
Ville Voutilainen [Fri, 18 Dec 2015 15:17:09 +0000 (17:17 +0200)]
re PR libstdc++/68276 (ios_base::_M_grow_words should use new (std::nothrow))

2015-12-18  Ville Voutilainen  <ville.voutilainen@gmail.com>

PR libstdc++/68276

* src/c++11/ios.cc (_M_grow_words): Use nothrow new.
* testsuite/27_io/ios_base/storage/11584.cc: Adjust.

From-SVN: r231819

8 years agonvptx.c (worker_bcast_name, [...]): Delete.
Nathan Sidwell [Fri, 18 Dec 2015 14:39:52 +0000 (14:39 +0000)]
nvptx.c (worker_bcast_name, [...]): Delete.

* config/nvptx/nvptx.c (worker_bcast_name, worker_red_name): Delete.
(nvptx_option_override): Adjust worker symbol creation.
(nvptx_gen_wcast): Wrap worker address in UNSPEC_TO_GENERIC.
(write_worker_buffer): New.
(nvptx_file_end): Call write_worker_buffer.
* config/nvptx/nvptx.md (UNSPEC_SHARED_DATA): Delete.
(worker_load<mode>, worker_store<mode>): Delete.

From-SVN: r231818

8 years ago* c-c++-common/attr-simd-3.c: Requires pthreads.
Nathan Sidwell [Fri, 18 Dec 2015 14:27:45 +0000 (14:27 +0000)]
* c-c++-common/attr-simd-3.c: Requires pthreads.

From-SVN: r231816

8 years agore PR testsuite/68776 (gcc.dg/vect/vect-widen-mult-const-[su]16.c failures since...
Richard Biener [Fri, 18 Dec 2015 13:52:11 +0000 (13:52 +0000)]
re PR testsuite/68776 (gcc.dg/vect/vect-widen-mult-const-[su]16.c failures since r226675)

2015-12-18  Richard Biener  <rguenther@suse.de>

PR testsuite/68776
* tree-vect-patterns.c (struct vect_recog_func): New.
(vect_vect_recog_func_ptrs): Make an array of function name pairs.
(vect_pattern_recog_1): Print the recognized pattern name.  Return
true if a pattern was recognized.
(vect_pattern_recog): Adjust.  Stop iterating over pattern recognition
functions on a stmt if a pattern was recognized.

* gcc.dg/vect/vect-widen-mult-const-s16.c: Adjust.
* gcc.dg/vect/vect-widen-mult-const-u16.c: Likewise.

From-SVN: r231815

8 years agoIRA: Fix % constraint modifier handling on disabled alternatives.
Andreas Krebbel [Fri, 18 Dec 2015 10:39:52 +0000 (10:39 +0000)]
IRA: Fix % constraint modifier handling on disabled alternatives.

gcc/ChangeLog:

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* ira.c (ira_setup_alts): Move the scan for commutative modifier
to the first loop to make it work even with disabled alternatives.

From-SVN: r231814

8 years agoS/390: Allow to use r2 to r4 as literal pool base.
Dominik Vogt [Fri, 18 Dec 2015 10:36:57 +0000 (10:36 +0000)]
S/390: Allow to use r2 to r4 as literal pool base.

gcc/ChangeLog

* config/s390/s390.c (s390_init_frame_layout): Try r4 to r2 for the
literal pool pointer.

gcc/testsuite/ChangeLog

* gcc.target/s390/litpool-r3-1.c: New test.

From-SVN: r231813

8 years agore PR tree-optimization/68906 (ICE at -O3 on x86_64-linux-gnu: verify_ssa failed)
Yuri Rumyantsev [Fri, 18 Dec 2015 10:16:56 +0000 (10:16 +0000)]
re PR tree-optimization/68906 (ICE at -O3 on x86_64-linux-gnu: verify_ssa failed)

gcc/

2015-12-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/68906
* tree-ssa-loop-unswitch.c (tree_unswitch_outer_loop): Add check
that an exit block belongs to LOOP.

gcc/testsuite/

2015-12-18  Yuri Rumyantsev  <ysrumyan@gmail.com>

PR tree-optimization/68906
* gcc.dg/torture/pr68906.c: New test.

From-SVN: r231812

8 years agore PR tree-optimization/68956 (Vectorizer miscompilation of 416.gamess)
Ilya Enkovich [Fri, 18 Dec 2015 10:01:02 +0000 (10:01 +0000)]
re PR tree-optimization/68956 (Vectorizer miscompilation of 416.gamess)

gcc/

PR tree-optimization/68956
* tree-vect-stmts.c (vect_init_vector): Fix constants
used for boolean vectors.

gcc/testsuite

PR tree-optimization/68956
* gcc.target/i386/pr68956.c: New test.

From-SVN: r231811

8 years ago[AArch64] PR rtl-optimization/68796 Add compare-of-zero_extract pattern
Kyrylo Tkachov [Fri, 18 Dec 2015 09:58:07 +0000 (09:58 +0000)]
[AArch64] PR rtl-optimization/68796 Add compare-of-zero_extract pattern

PR rtl-optimization/68796
* config/aarch64/aarch64.md (*and<mode>3nr_compare0_zextract):
New pattern.
* config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle
ZERO_EXTRACT comparison with zero.
(aarch64_mask_from_zextract_ops): New function.
* config/aarch64/aarch64-protos.h (aarch64_mask_from_zextract_ops):
New prototype.

* gcc.target/aarch64/tst_3.c: New test.
* gcc.target/aarch64/tst_4.c: Likewise.

From-SVN: r231810

8 years agoS/390: Turn constm1_operand into all_ones_operand
Robin Dapp [Fri, 18 Dec 2015 09:53:23 +0000 (09:53 +0000)]
S/390: Turn constm1_operand into all_ones_operand

gcc/ChangeLog:

2015-12-18 Robin Dapp <rdapp@linux.vnet.ibm.com>

* config/s390/predicates.md: Change and rename
constm1_operand to all_ones_operand
* config/s390/s390.c (s390_expand_vcond): Use all_ones_operand
* config/s390/vector.md: Likewise

From-SVN: r231809

8 years agoS/390: Simplify vector conditionals
Robin Dapp [Fri, 18 Dec 2015 09:50:02 +0000 (09:50 +0000)]
S/390: Simplify vector conditionals

gcc/ChangeLog:

2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* config/s390/s390.c (s390_expand_vcond): Convert vector
conditional into shift.
* config/s390/vector.md: Change operand predicate.

gcc/testsuite/ChangeLog:

2015-12-18  Robin Dapp  <rdapp@linux.vnet.ibm.com>

* gcc.target/s390/vcond-shift.c: New test to check vcond
simplification.

From-SVN: r231808

8 years agore PR fortran/68196 (ICE on function result with procedure pointer component)
Paul Thomas [Fri, 18 Dec 2015 09:34:13 +0000 (09:34 +0000)]
re PR fortran/68196 (ICE on function result with procedure pointer component)

2015-12-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68196
*expr.c (gfc_has_default_initializer): Prevent infinite recursion
through this function for procedure pointer components.
* trans-array.c (structure_alloc_comps): Ditto twice.

2015-12-18  Paul Thomas  <pault@gcc.gnu.org>

PR fortran/68196
* gfortran.dg/proc_ptr_48.f90: New test.

From-SVN: r231807

8 years agoS/390: Deprecate g5 and g6 CPU levels
Andreas Krebbel [Fri, 18 Dec 2015 09:20:53 +0000 (09:20 +0000)]
S/390: Deprecate g5 and g6 CPU levels

gcc/ChangeLog:

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
z900 -march -mtune even on g5 and g6 machines.
* config/s390/s390.c (s390_option_override_internal): New argument
to distingiush between options and target attributes.  Emit
deprecation warning for g5 and g6 arch/tune options.
(s390_option_override): Set new s390_option_override_internal
argument to true.
(s390_valid_target_attribute_tree): Set new
s390_option_override_internal argument to false.
* config/s390/s390.h: Default to z900 in the driver.
* doc/invoke.texi: Document the deprecation of g5 and g6.

gcc/testsuite/ChangeLog:

2015-12-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* gcc.target/s390/hotpatch-8.c: Add -Wno-deprecated to options.
* gcc.target/s390/hotpatch-9.c: Likewise.

From-SVN: r231806

8 years agoAdd myself to MAINTAINERS (Write After Approval)
Sujoy Saraswati [Fri, 18 Dec 2015 05:14:15 +0000 (05:14 +0000)]
Add myself to MAINTAINERS (Write After Approval)

From-SVN: r231805

8 years agoUpdate typedefs for integer types in config/i386/djgpp-stdint.h
Andris Pavenis [Fri, 18 Dec 2015 04:54:40 +0000 (06:54 +0200)]
Update typedefs for integer types in config/i386/djgpp-stdint.h

* config/i386/djgpp-stdint.h: update typedefs for integer types

From-SVN: r231804

8 years agoAdd *-*-msdosdjgpp to lists of i[34567]86-*-* soft-fp targets
Andris Pavenis [Fri, 18 Dec 2015 04:46:11 +0000 (06:46 +0200)]
Add *-*-msdosdjgpp to lists of i[34567]86-*-* soft-fp targets

* config.host: Add *-*-msdosdjgpp to lists of i[34567]86-*-*
soft-fp targets

From-SVN: r231803

8 years agoSpecify that DJGPP do not have mmap even when sys/mman.h exists
Andris Pavenis [Fri, 18 Dec 2015 04:36:11 +0000 (06:36 +0200)]
Specify that DJGPP do not have mmap even when sys/mman.h exists

* configure.ac: Specify that DJGPP do not have mmap even when sys/mman.h exists
* configure: Regenerate

From-SVN: r231802

8 years ago[DJGPP] Update config/os/djgpp/error_constants.h
Andris Pavenis [Fri, 18 Dec 2015 04:28:01 +0000 (06:28 +0200)]
[DJGPP] Update config/os/djgpp/error_constants.h

       * config/os/djgpp/error_constants.h: update according to DJGPP errno
       macros.

From-SVN: r231801

8 years ago[PATCH] Move split-path pass next to the tracer pass
Jeff Law [Fri, 18 Dec 2015 04:04:20 +0000 (21:04 -0700)]
[PATCH] Move split-path pass next to the tracer pass

* passes.def: Put the split-paths pass immediately before the
tracer pass.

From-SVN: r231800

8 years agoFix PR c++/68831 (superfluous -Waddress warning for C++ delete)
Patrick Palka [Fri, 18 Dec 2015 02:25:39 +0000 (02:25 +0000)]
Fix PR c++/68831 (superfluous -Waddress warning for C++ delete)

gcc/cp/ChangeLog:

PR c++/68831
* init.c (build_delete): Use a warning sentinel to disable
-Waddress warnings when building the conditional that tests
if the operand is NULL.

gcc/testsuite/ChangeLog:

PR c++/68831
* g++.dg/pr68831.C: New test.

From-SVN: r231798

8 years agosyscall: Add definition for NLA_HDRLEN
Ian Lance Taylor [Fri, 18 Dec 2015 01:15:37 +0000 (01:15 +0000)]
syscall: Add definition for NLA_HDRLEN

    This change updates mksysinfo.sh so it correctly
    includes the define NLA_HDRLEN in the syscall package.

    Fixes golang/go/#13629

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

From-SVN: r231796

8 years agoMark recently obsoleted targets (openbsd3 and knetbsd)
Jan-Benedict Glaw [Fri, 18 Dec 2015 00:17:52 +0000 (00:17 +0000)]
Mark recently obsoleted targets (openbsd3 and knetbsd)

2015-12-17  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

* config-list.mk (LIST): Add --enable-obsolete to recently obsoleted
targets x86_64-knetbsd-gnu, i686-knetbsd-gnu and i686-openbsd3.0 .

From-SVN: r231794

8 years agoDaily bump.
GCC Administrator [Fri, 18 Dec 2015 00:16:12 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r231793

8 years ago[PATCH] Limit path splitting to loops we optimize for speed
Jeff Law [Thu, 17 Dec 2015 23:33:44 +0000 (16:33 -0700)]
[PATCH] Limit path splitting to loops we optimize for speed

* doc/invoke.texi (-O2 options): Remove -fsplit-paths.
(-O3 options): Add -fsplit-paths.
* gimple-ssa-split-paths.c: Include predict.h
(split_paths): Only split paths in a loop that should be
optimized for speed.
* opts.c (default_options_table): Move -fsplit-paths from -O2 to
-O3.

* gcc.dg/tree-ssa/split-path-1.c: Explicitly ask for path
splitting optimizations.

From-SVN: r231790

8 years agoipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the source function.
Nathan Sidwell [Thu, 17 Dec 2015 21:29:30 +0000 (21:29 +0000)]
ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the source function.

gcc/
* ipa-icf.c (sem_item_optimizer::merge): Don't pick 'main' as the
source function.

gcc/testsuite/
* gcc.dg/ipa/ipa-icf-merge-1.c: New.

From-SVN: r231787

8 years agoC FE: improvements to ranges of bad return values
David Malcolm [Thu, 17 Dec 2015 21:25:36 +0000 (21:25 +0000)]
C FE: improvements to ranges of bad return values

gcc/c/ChangeLog:
* c-parser.c (c_parser_statement_after_labels): When calling
c_finish_return, Use the return expression's location if it has
one, falling back to the location of the first token within it.
* c-typeck.c (c_finish_return): When issuing warnings about
the incorrect presence/absence of a return value, issue a note
showing the declaration of the function.

gcc/testsuite/ChangeLog:
* gcc.dg/diagnostic-range-bad-return.c: New test case.

From-SVN: r231786

8 years agoreplace ISL with isl
Sebastian Pop [Thu, 17 Dec 2015 18:50:05 +0000 (18:50 +0000)]
replace ISL with isl

From-SVN: r231784

8 years agomove all isl include files to graphite.h
Sebastian Pop [Thu, 17 Dec 2015 17:52:17 +0000 (17:52 +0000)]
move all isl include files to graphite.h

* graphite-dependences.c: Move all isl include files to...
* graphite-isl-ast-to-gimple.c: Same.
* graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-scop-detection.c: Same.
* graphite.c: Same.
* graphite.h: ... here.

From-SVN: r231783

8 years agoavr.h (MOVE_MAX): Set value to 1.
Senthil Kumar Selvaraj [Thu, 17 Dec 2015 16:55:39 +0000 (19:55 +0300)]
avr.h (MOVE_MAX): Set value to 1.

        * config/avr/avr.h (MOVE_MAX): Set value to 1.
        (MOVE_MAX_PIECES): Define.
        (MOVE_RATIO): Define.
        * config/avr/avr.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P):
        Provide target hook.
        (avr_use_by_pieces_infrastructure_p): New function.

From-SVN: r231782

8 years agore PR c++/67550 (Initialization of local struct array with elements of global array...
Jason Merrill [Thu, 17 Dec 2015 16:51:58 +0000 (11:51 -0500)]
re PR c++/67550 (Initialization of local struct array with elements of global array yields zeros instead of initializer values)

PR c++/67550

* init.c (constant_value_1): Don't return a CONSTRUCTOR missing
non-constant elements.

From-SVN: r231777

8 years agore PR c++/67576 (expression of typeid( expression ) is evaluated twice)
Jason Merrill [Thu, 17 Dec 2015 16:51:52 +0000 (11:51 -0500)]
re PR c++/67576 (expression of typeid( expression ) is evaluated twice)

PR c++/67576

PR c++/25466
* rtti.c (build_typeid): Use save_expr, not stabilize_reference.

From-SVN: r231776

8 years agoMAINTAINERS (Write After Approval): Add Myself.
Andris Pavenis [Thu, 17 Dec 2015 16:42:21 +0000 (18:42 +0200)]
MAINTAINERS (Write After Approval): Add Myself.

2015-12-17  Andris Pavenis  <andris.pavenis@iki.fi>

        * MAINTAINERS (Write After Approval): Add Myself.

From-SVN: r231775

8 years agoobsolete the interix target
Trevor Saunders [Thu, 17 Dec 2015 15:21:29 +0000 (15:21 +0000)]
obsolete the interix target

gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config.gcc: mark *-interix* as obsolete.

From-SVN: r231774

8 years agoobsolete openbsd 2.0 and 3.X
Trevor Saunders [Thu, 17 Dec 2015 15:21:24 +0000 (15:21 +0000)]
obsolete openbsd 2.0 and 3.X

gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config.gcc: Mark openbsd 2.0 and 3.X as obsolete.

From-SVN: r231773

8 years agomark *-knetbsd-* as obsolete
Trevor Saunders [Thu, 17 Dec 2015 15:21:18 +0000 (15:21 +0000)]
mark *-knetbsd-* as obsolete

gcc/ChangeLog:

2015-12-17  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

* config.gcc: Mark knetbsd targets as obsolete.

From-SVN: r231772

8 years agonvptx.h (NVPTX_RETURN_REGNUM, [...]): Renumber.
Nathan Sidwell [Thu, 17 Dec 2015 15:06:03 +0000 (15:06 +0000)]
nvptx.h (NVPTX_RETURN_REGNUM, [...]): Renumber.

* config/nvptx/nvptx.h (NVPTX_RETURN_REGNUM, FRAME_POINTER_REGNUM,
ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Renumber.
(REGISTER_NAMES): Update and rename.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Update.
(enum_reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Reformat.

From-SVN: r231771

8 years agore PR tree-optimization/68946 (ICE at -O3 on x86_64-linux-gnu in both 32- and 64...
Richard Biener [Thu, 17 Dec 2015 14:30:53 +0000 (14:30 +0000)]
re PR tree-optimization/68946 (ICE at -O3 on x86_64-linux-gnu in both 32- and 64-bit modes (in vect_analyze_stmt, at tree-vect-stmts.c:8013))

2015-12-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68946
* tree-vect-slp.c (vect_slp_analyze_node_operations): Push
SLP def type to stmt operands one stmt at a time.

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

From-SVN: r231770

8 years agoWunused-var-13.c: Requires label values.
Nathan Sidwell [Thu, 17 Dec 2015 14:21:57 +0000 (14:21 +0000)]
Wunused-var-13.c: Requires label values.

* c-c++-common/Wunused-var-13.c: Requires label values.
* gcc.dg/torture/pr46216.c: Likewise.

From-SVN: r231769

8 years agoDWARF: describe properly Ada packed arrays
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:10:32 +0000 (14:10 +0000)]
DWARF: describe properly Ada packed arrays

gcc/ada/ChangeLog:

* gcc-interface/ada-tree.h
(TYPE_IMPLEMENTS_PACKED_ARRAY_P, TYPE_CAN_HAVE_DEBUG_TYPE_P,
TYPE_ORIGINAL_PACKED_ARRAY, SET_TYPE_ORIGINAL_PACKED_ARRAY): New
macros.
* gcc-interface/decl.c (add_parallel_type_for_packed_array):
Rename to associate_original_type_to_packed_array.  When
-fgnat-encodings=minimal, set original packed array type as so
instead of as a parallel type to the implementation type.  In
this case, also rename the implementation type to the name of
the original array type.
(gnat_to_gnu_entity): Update invocations to
add_parallel_type_for_packed_array.  Tag ARRAY_TYPE nodes for
packed arrays with the TYPE_PACKED flag.
When -fgnat-encodings=minimal:
  - strip ___XP suffixes in packed arrays' names;
  - set the debug type for padding records around packed arrays
    to the packed array;
  - do not attach ___XUP types as parallel types of constrained
    array types.
* gcc-interface/misc.c (gnat_print_type): Update to handle
orignal packed arrays.
(gnat_get_debug_type): Update to reject packed arrays
implementation types.
(get_array_bit_stride): New.
(gnat_get_array_descr_info): Add packed arrays handling.
* gcc-interface/utils.c (maybe_pad_type): When
-fgnat-encodings=minimal, set the name of the padding type to
the one of the original packed type, if any.  Fix TYPE_DECL
peeling around the name of the input type.

From-SVN: r231768

8 years agoDWARF: add a language hook for scalar biased types
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:10:24 +0000 (14:10 +0000)]
DWARF: add a language hook for scalar biased types

Front-ends like GNAT for Ada sometimes use biased encodings for integral
types.  This change creates a new language hook so that the bias
information can make it into the debugging information back-end and
introduces an experimental DWARF attribute to hold it.

gcc/ada/ChangeLog:

* gcc-interface/misc.c (gnat_get_type_bias): New.
(LANG_HOOKS_GET_TYPE_BIAS): Redefine macro to implement the
get_type_bias language hook.

gcc/ChangeLog:

* langhooks.h (struct lang_hooks_for_types): New get_bias_field.
* langhooks-def.h (LANG_HOOKS_GET_TYPE_BIAS): New.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
get_bias_field.
* dwarf2out.c
(base_type_die): In non-strict DWARF mode, invoke the
get_type_bias language hook for INTEGER_TYPE nodes.  If it
returns a bias, emit an attribute for it.
(subrange_type_die): Change signature to handle bias.  If
non-strict DWARF mode, emit an attribute for it, if one passed.
(modified_type_die): For subrange types, invoke the
get_type_bias langage hook and pass the bias to
subrange_type_die.

From-SVN: r231767

8 years agoDWARF: create a macro for max dimensions for array descr. lang. hook
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:10:12 +0000 (14:10 +0000)]
DWARF: create a macro for max dimensions for array descr. lang. hook

The array descriptor language hook can hold the description of a limited
number of array dimensions.  This macro will ease preventing overflow in
front-ends.

gcc/ada/ChangeLog:

* gcc-interface/misc.c (gnat_get_array_descr_info): When the
array has more dimensions than the language hook can handle,
fall back to a nested arrays description.  Handle context-less
array types.

gcc/ChangeLog:

* dwarf2out.h (DWARF2OUT_ARRAY_DESCR_INFO_MAX_DIMEN): New macro.
(struct array_descr_info): Use it for the dimensions array's
size.
* dwarf2out.c (gen_type_die_with_usage): Check that the array
descr. language hook does not return an array with more
dimensions that it should.

From-SVN: r231766

8 years agoDWARF: describe Ada dynamic arrays as proper arrays
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:10:03 +0000 (14:10 +0000)]
DWARF: describe Ada dynamic arrays as proper arrays

gcc/ada/ChangeLog:

* gcc-interface/decl.c (gnat_to_gnu_entity): When
-fgnat-encodings-minimal, do not add ___XUP/XUT suffixes to type
names and do not generate ___XA parallel types.
* gcc-interface/misc.c (gnat_get_array_descr_info): Match fat
and thin pointers and generate the corresponding array type
descriptions.

From-SVN: r231765

8 years agoDWARF: add a language hook for fixed-point types
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:09:55 +0000 (14:09 +0000)]
DWARF: add a language hook for fixed-point types

Support for fixed-point types in GCC is not powerful enough for Ada
fixed-point types: GNAT uses regular scalar types to implement them.
This new language hook makes it possible to output the desired debugging
information anyway.

gcc/ada/ChangeLog:

* gcc-interface/ada-tree.def (POWER_EXPR): New binary operation.
* gcc-interface/ada-tree.h (TYPE_FIXED_POINT_P): New macro.
(TYPE_IS_FIXED_POINT_P): New macro.
(TYPE_SCALE_FACTOR): New macro.
(SET_TYPE_SCALE_FACTOR): New macro.
* gcc-interface/decl.c: Include urealp.h
(gnat_to_gnu_entity): Attach trees to encode scale factors to
fixed-point types.
* gcc-interface/misc.c (gnat_print_type): Print scale factors
for fixed-point types.
(gnat_get_fixed_point_type_info): New.
(gnat_init_ts): Initialize data for the POWER_EXPR binary
operation.
(LANG_HOOKS_GET_FIXED_POINT_INFO): Redefine macro to implement
the get_fixed_point_type_info language hook.

gcc/ChangeLog:

* langhooks.h (struct lang_hooks_for_types): Add a
get_fixed_point_type_info field.
* langhooks-def.h (LANG_HOOKS_GET_FIXED_POINT_TYPE_INFO): New
macro.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
get_fixed_point_type_info field.
* dwarf2out.h (enum fixed_point_scale_factor): New.
(struct fixed_point_type_info): New.
* dwarf2out.c (base_type_die): In DWARFv3 or non-strict DWARF
mode, get fixed-point type information using the debugging hook
and describe it in DWARF, if any.

From-SVN: r231764

8 years agoDWARF: add a language hook to override types in debugging information
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:09:45 +0000 (14:09 +0000)]
DWARF: add a language hook to override types in debugging information

Many artificial types are introduced by GNAT in order to satisfy
constraints in GCC's internal trees or to generate optimal code.  These
hide original types from sources and miss useful information in the
debugging information or add noise to it and make debugging confusing.
This change introduces a new language hook to give a chance to
front-ends to restore the source types in the debugging information.

This change also enhance the array descriptor language hook to handle
array-wide bit/byte stride.  Some arrays may contain dynamically-sized
objects.  Debuggers need for these a hint to know the size allocated for
each element, hence the need for the array-wide bit/byte stride.

The Ada front-end is enhanced to take advantage of both hooks when
-fgnat-encodings=minimal, in order to keep compatibility with GDB.

gcc/ada/ChangeLog:

* gcc-interface/ada-tree.h (struct lang_type): Rename the t
field as t1 and add a t2 one.
(get_lang_specific): New.
(GET_TYPE_LANG_SPECIFIC): Refactor to use get_lang_specific.
(SET_TYPE_LANG_SPECIFIC): Likewise.
(GET_TYPE_LANG_SPECIFIC2): New macro.
(SET_TYPE_LANG_SPECIFIC2): New macro.
(TYPE_DEBUG_TYPE): New macro.
(SET_TYPE_DEBUG_TYPE): New macro.
* gcc-interface/decl.c (gnat_to_gnu_entity): When
-fgnat-encodings=minimal, set padding types' debug type to the
padded one (i.e. strip ___PAD GNAT encodings) and set
constrained record subtypes's debug type to the base type.
* gcc-interface/misc.c (gnat_print_type): Print debug types.
(gnat_get_debug_type): New.
(gnat_get_array_descr_info): When -fgnat-encodings=minimal, set
a byte stride for arrays that contain a type whose debug type
has variable length.
(LANG_HOOKS_GET_DEBUG_TYPE): Redefine macro to implement the
debug type language hook.
* gcc-interface/utils.c (maybe_pad_type): When
-fgnat-encodings=minimal, set padding types' debug type to the
padded one.  Restore XVZ variables creation when
-fgnat-encodings-minimal and use them to hold padding types'
byte size.  For library-level padding types, share this variable
across translation units.  Tag XVZ variables as artificial.

gcc/ChangeLog:

* langhooks.h (struct lang_hooks_for_types): Add a
get_debug_type field.
* langhooks-def.h (LANG_HOOKS_GET_DEBUG_TYPE): New macro.
(LANG_HOOKS_FOR_TYPES_INITIALIZER): Initialize the
get_debug_type field.
* dwarf2out.h (struct array_descr_info): Add an array-wide
stride field.
* dwarf2out.c (modified_type_die): Invoke the get_debug_type
language hook, process its result instead, if any.
(gen_descr_array_type_die): Add array-wide stride processing.

From-SVN: r231763

8 years agoDWARF: handle variable-length records and variant parts
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:09:36 +0000 (14:09 +0000)]
DWARF: handle variable-length records and variant parts

Enhance the DWARF back-end to emit proper descriptions for
variable-length records as well as variant parts in records.

In order to achieve this, generate DWARF expressions ("location
descriptions" in dwarf2out's parlance) for size and data member location
attributes.  Also match QUAL_UNION_TYPE data types as variant parts,
assuming the formers appear only to implement the latters (which is the
case at the moment: only the Ada front-end emits them).

Note that very few debuggers can handle these descriptions (GDB does not
yet), so in order to ease the the transition enable these only when
-fgnat-encodings=minimal.

gcc/ada/ChangeLog:

* gcc-interface/decl.c (gnat_to_gnu_entity): Disable ___XVS GNAT
encodings when -fgnat-encodings=minimal.
(components_to_record): Disable ___XVE, ___XVN, ___XVU and
___XVZ GNAT encodings when -fgnat-encodings=minimal.
* gcc-interface/utils.c (maybe_pad_type): Disable __XVS GNAT
encodings when -fgnat-encodings=minimal.

gcc/ChangeLog:

* debug.h (struct gcc_debug_hooks): Add a new size_function
hook.
* debug.c (do_nothing_debug_hooks): Set the size_function field
to no-op.
* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise.
* sdbout.c (sdb_debug_hooks): Likewise.
* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
* stor-layout.c (finalize_size_functions): Let the debug info
back-end know about the implementation of size functions.
* dwarf2out.h (dw_discr_list_ref): New typedef.
(enum dw_val_class): Add value classes for discriminant values
and discriminant lists.
(struct dw_discr_value): New structure.
(struct dw_val_node): Add discriminant values and discriminant
lists to the union.
(struct dw_loc_descr_node): Add frame_offset_rel and
dw_loc_frame_offset (only for checking) fields to handle DWARF
procedures generation.
(struct dw_discr_list_node): New structure.
* dwarf2out.c (dwarf2out_size_function): New.
(dwarf2_debug_hooks): Set the size_function field to
dwarf2out_size_function.
(dwarf2_lineno_debug_hooks): Set the size_function field to
no-op.
(new_loc_descr): Initialize the
dw_loc_frame_offset field.
(dwarf_proc_stack_usage_map): New.
(dw_val_equal_p): Handle discriminants.
(size_of_discr_value): New.
(size_of_discr_list): New.
(size_of_die): Handle discriminants.
(add_loc_descr_to_each): New.
(add_loc_list): New.
(print_discr_value): New.
(print_dw_val): Handle discriminants.
(value_format): Handle discriminants.
(output_discr_value): New.
(output_die): Handle discriminants.
(output_loc_operands): Handle DW_OP_call2 and DW_OP_call4.
(uint_loc_descriptor): New.
(uint_comparison_loc_list): New.
(loc_list_from_uint_comparison): New.
(add_discr_value): New.
(add_discr_list): New.
(AT_discr_list): New.
(loc_descr_to_next_no_op): New.
(free_loc_descr): New.
(loc_descr_without_nops): New.
(struct loc_descr_context): Add a dpi field.
(struct dwarf_procedure_info): New helper structure.
(new_dwarf_proc_die): New.
(is_handled_procedure_type): New.
(resolve_args_picking_1): New.
(resolve_args_picking): New.
(function_to_dwarf_procedure): New.
(copy_dwarf_procedure): New.
(copy_dwarf_procs_ref_in_attrs): New.
(copy_dwarf_procs_ref_in_dies): New.
(break_out_comdat_types): Copy DWARF procedures along with the
types that reference them.
(loc_list_from_tree): Rename into loc_list_from_tree_1.  Handle
CALL_EXPR in the cases suitable for DWARF procedures.  Handle
for PARM_DECL when generating a location description for a DWARF
procedure.  Handle big unsigned INTEGER_CST nodes.  Handle
NON_LVALUE_EXPR, EXACT_DIV_EXPR and all unsigned comparison
operators.  Add a wrapper for loc_list_from_tree that strips
DW_OP_nop operations from the result.
(type_byte_size): New.
(struct vlr_context): New helper structure.
(field_byte_offset): Change signature to return either a
constant offset or a location description for dynamic ones.
Handle dynamic byte offsets with constant bit offsets and handle
fields in variant parts.
(add_data_member_location): Change signature to handle dynamic
member offsets and fields in variant parts.  Update call to
field_byte_offset.  Handle location lists.  Emit a variable data
member location only when -fgnat-encodings=minimal.
(add_bound_info): Emit self-referential bounds only when
-fgnat-encodings=minimal.
(add_byte_size_attribute): Use type_byte_size in order to handle
dynamic type sizes.  Emit variable byte size only when
-fgnat-encodings=minimal and when the target DWARF version
allows them.
(add_bit_offset_attribute): Change signature to handle
variable-length records.  Update call to field_byte_offset.
(gen_descr_array_type_die): Update call to gen_field_die.
Update loc_descr_context literal.
(gen_type_die_for_member): Likewise.
(gen_subprogram_die): Update calls to get_decl_die.
(gen_field_die): Change signature to handle variable-length
records.  Update calls to add_bit_offset_attribute and
add_data_member_location_attribute.
(gen_inheritance_die): Update call to
add_data_member_location_attribute.
(gen_decl_die): Change signature to handle variable-length
records.  Update call to gen_field_die.
(gen_inheritance_die): Change signature to handle
variable-length records.  Update call to
add_data_member_location_attribute.
(is_variant_part): New.
(analyze_discr_in_predicate): New.
(get_discr_value): New.
(analyze_variants_discr): New.
(gen_variant_part): New.
(gen_member_die): Update calls to gen_decl_die.  Call instead
gen_variant_part for variant parts.
(gen_type_die_with_usage): Update calls to gen_decl_die.
(process_scope_var): Likewise.
(force_decl_die): Likewise.
(declare_in_namespace): Likewise.
(dwarf2out_decl): Likewise.
(prune_unused_types_walk_loc_descr): New.
(prune_unused_types_walk_attribs): Mark DIEs referenced by
location descriptions and loc. descr. lists.
(prune_unused_types_walk): Don't mark DWARF procedures by
default.  Mark variant parts since nothing is supposed to
reference them.
(dwarf2out_init): Allocate dwarf_proc_stack_usage_map.
(dwarf2out_c_finalize): Deallocate and reset
dwarf_proc_stack_usage_map.

gcc/testsuite/ChangeLog:

* gnat.dg/specs/debug1.ads: Update the expected number of
DW_AT_artificial attribute in compiler output.

From-SVN: r231762

8 years agoAdd a flag to control the balance between GNAT encodings and std. DWARF
Pierre-Marie de Rodat [Thu, 17 Dec 2015 14:09:26 +0000 (14:09 +0000)]
Add a flag to control the balance between GNAT encodings and std. DWARF

In order to accomodate the debugger's support evolution for "new" DWARF
constructs, we need to have an flag that controls the amount of GNAT
encodings/standard DWARF information that is emitted in the debug info.
Propagate this new parameter into the Ada front-end.

gcc/ChangeLog:

* common.opt (gnat_encodings): New variable
(dwarf_gnat_encodings): New enum type.
(fgnat_encodings): New option.
* flag-types.h (enum dwarf_gnat_encodings): New.

gcc/ada/ChangeLog:

* gcc-interface/misc.c (gnat_encodings): Undefine macro and
declare a global variable.
(gnat_post_options): Initialize this global from options.

From-SVN: r231761

8 years agoisl.m4 (ISL_CHECK_VERSION): Add gmp libs.
Nathan Sidwell [Thu, 17 Dec 2015 13:56:45 +0000 (13:56 +0000)]
isl.m4 (ISL_CHECK_VERSION): Add gmp libs.

* config/isl.m4 (ISL_CHECK_VERSION): Add gmp libs.
* configure: Regenerate.

From-SVN: r231759

8 years agotree.h (TYPE_MODE_RAW): New macro.
Christian Bruel [Thu, 17 Dec 2015 13:56:05 +0000 (14:56 +0100)]
tree.h (TYPE_MODE_RAW): New macro.

2015-12-17  Christian Bruel  <christian.bruel@st.com>

* tree.h (TYPE_MODE_RAW): New macro.
* tree-streamer-out.c (pack_ts_type_common_value_fields):
Replace TYPE_MODE by TYPE_MODE_RAW.

From-SVN: r231758

8 years agore PR tree-optimization/68835 (ICE in set_value_range, at tree-vrp.c:387, with __int1...
Jakub Jelinek [Thu, 17 Dec 2015 13:52:25 +0000 (14:52 +0100)]
re PR tree-optimization/68835 (ICE in set_value_range, at tree-vrp.c:387, with __int128 bit field)

PR tree-optimization/68835
* tree.c (get_int_cst_ext_nunits): Return
cst.get_precision () / HOST_BITS_PER_WIDE_INT + 1
for all unsigned wi::neg_p (cst) constants.
(build_new_int_cst): If cst.get_precision is not a multiple
of HOST_BITS_PER_WIDE_INT, zero extend -1 to the precision
% HOST_BITS_PER_WIDE_INT.

* gcc.dg/pr68835-1.c: New test.
* gcc.dg/pr68835-2.c: New test.

From-SVN: r231757

8 years agoFix wrong PR references
Patrick Palka [Thu, 17 Dec 2015 13:30:04 +0000 (13:30 +0000)]
Fix wrong PR references

PR c++/59878 -> PR c++/59879

From-SVN: r231755

8 years agore PR tree-optimization/68951 (ICE in vect_update_misalignment_for_peel)
Richard Biener [Thu, 17 Dec 2015 12:34:27 +0000 (12:34 +0000)]
re PR tree-optimization/68951 (ICE in vect_update_misalignment_for_peel)

2015-12-17  Richard Biener  <rguenther@suse.de>

PR tree-optimization/68951
* tree-vect-data-refs.c (vect_peeling_hash_get_lowest_cost):
Ignore strided non-group accesses.

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

From-SVN: r231754

8 years agoarc.c (arc_loop_hazard): Don't convert the jump label rtx to an rtx_insn until we...
Andrew Burgess [Thu, 17 Dec 2015 10:53:43 +0000 (10:53 +0000)]
arc.c (arc_loop_hazard): Don't convert the jump label rtx to an rtx_insn until we confirm it's not a...

2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>
gcc:
        * config/arc/arc.c (arc_loop_hazard): Don't convert the jump label
        rtx to an rtx_insn until we confirm it's not a return rtx.
gcc/testsuite:
        * gcc.target/arc/loop-hazard-1.c: New file

From-SVN: r231752

8 years agogimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls field.
Richard Biener [Thu, 17 Dec 2015 10:15:03 +0000 (10:15 +0000)]
gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls field.

2015-12-17  Richard Biener  <rguenther@suse.de>

* gimple-ssa.h (struct gimple_df): Remove modified_noreturn_calls
field.
* tree-ssa.c (delete_tree_ssa): Do not zero it.

From-SVN: r231751

8 years agoOnly support -gstabs on Mac OS X if assember supports it (PR target/67973)
Rainer Orth [Thu, 17 Dec 2015 09:23:08 +0000 (09:23 +0000)]
Only support -gstabs on Mac OS X if assember supports it (PR target/67973)

gcc:
PR target/67973
* configure.ac (gcc_cv_as_stabs_directive): New test.
* configure: Regenerate.
* config.in: Regenerate.
* config/darwin.h (DBX_DEBUGGING_INFO): Wrap in
HAVE_AS_STABS_DIRECTIVE.
(PREFERRED_DEBUGGING_TYPE): Likewise.
* config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Only include
DBX_DEBUG if HAVE_AS_STABS_DIRECTIVE.

* doc/sourcebuild.texi (Effective-Target Keywords, Environment
attributes): Document stabs.

gcc/testsuite:
PR target/67973
* lib/target-supports.exp (check_effective_target_stabs): New
proc.
* g++.dg/cpp0x/alias-decl-debug-0.C: Restrict to stabs targets.
* g++.dg/other/PR23205.C: Likewise.
* g++.dg/other/pr23205-2.C: Likewise.
* gcc.dg/20040813-1.c: Likewise.
* gcc.dg/darwin-20040809-2.c: Likewise.
* objc.dg/stabs-1.m: Likewise.

From-SVN: r231747

8 years agojump-around-jump.c (rtc_set_time): Declare.
Andrew Burgess [Thu, 17 Dec 2015 09:04:35 +0000 (09:04 +0000)]
jump-around-jump.c (rtc_set_time): Declare.

2015-12-17  Andrew Burgess  <andrew.burgess@embecosm.com>

        * gcc.target/arc/jump-around-jump.c (rtc_set_time): Declare.

From-SVN: r231746

8 years agorevert: re PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)
Thomas Preud'homme [Thu, 17 Dec 2015 08:43:48 +0000 (08:43 +0000)]
revert: re PR testsuite/68629 (FAIL: c-c++-common/attr-simd-3.c)

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    Revert:
    2015-12-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>

    PR testsuite/68629
    * lib/target-supports.exp (check_effective_target_cilkplus): Also
    check that compiling with -fcilkplus does not give an error.
    * c-c++-common/attr-simd-3.c: Require cilkplus effective target.

From-SVN: r231745

8 years agoFix some blockers of PR c++/24666 (arrays decay to pointers too early)
Patrick Palka [Thu, 17 Dec 2015 04:01:47 +0000 (04:01 +0000)]
Fix some blockers of PR c++/24666 (arrays decay to pointers too early)

gcc/cp/ChangeLog:

PR c++/16333
PR c++/41426
PR c++/59878
PR c++/66895
* typeck.c (convert_for_initialization): Don't perform an early
decaying conversion if converting to a class type.

gcc/testsuite/ChangeLog:

PR c++/16333
PR c++/41426
PR c++/59878
PR c++/66895
* g++.dg/conversion/pr16333.C: New test.
* g++.dg/conversion/pr41426.C: New test.
* g++.dg/conversion/pr59878.C: New test.
* g++.dg/conversion/pr66895.C: New test.

From-SVN: r231736

8 years agoAvoid code duplication in cp_tree_[operand|code]_length
Patrick Palka [Thu, 17 Dec 2015 03:46:27 +0000 (03:46 +0000)]
Avoid code duplication in cp_tree_[operand|code]_length

gcc/cp/ChangeLog:

* tree.c (cp_tree_operand_length): Define in terms of
cp_tree_code_length.

From-SVN: r231735

8 years agoCorrect ChangeLogs for PR c++/42121 and related.
Martin Sebor [Thu, 17 Dec 2015 01:38:35 +0000 (18:38 -0700)]
Correct ChangeLogs for PR c++/42121 and related.

From-SVN: r231734