Paolo Carlini [Mon, 23 May 2016 19:20:41 +0000 (19:20 +0000)]
pt.c (check_for_bare_parameter_packs): Improve error message location for expressions.
/cp
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* pt.c (check_for_bare_parameter_packs): Improve error message
location for expressions.
/testsuite
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/pr31445.C: Test column number too.
* g++.dg/cpp0x/pr32253.C: Likewise.
* g++.dg/cpp0x/variadic-ex13.C: Likewise.
* g++.dg/cpp0x/variadic36.C: Likewise.
From-SVN: r236609
Uros Bizjak [Mon, 23 May 2016 18:59:38 +0000 (20:59 +0200)]
i386.h (IS_STACK_MODE): Enable for TARGET_MIX_SSE_I387.
* config/i386/i386.h (IS_STACK_MODE): Enable for
TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
SSE_FLOAT_MODE_P macros.
* config/i386/i386.c (ix86_preferred_reload_class): Use
IS_STACK_MODE, INTEGER_CLASS_P and FLOAT_CLASS_P macros. Cleanup
regclass processing for CONST_DOUBLE_P.
(ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
(ix86_rtx_costs): Remove redundant TARGET_80387 check
with IS_STACK_MODE macro.
* config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
with TARGET_SSE2.
(*movdf_internal): Use IS_STACK_MODE macro.
(*movsf_internal): Ditto.
From-SVN: r236607
Marc Glisse [Mon, 23 May 2016 17:49:10 +0000 (19:49 +0200)]
match.pd: Relax some tree_nop_conversion_p
2016-05-23 Marc Glisse <marc.glisse@inria.fr>
gcc/
* match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
gcc/testsuite/
* gcc.dg/fold-notshift-2.c: Adjust.
From-SVN: r236601
Jeff Law [Mon, 23 May 2016 16:59:29 +0000 (10:59 -0600)]
tree-ssa-threadbackward.c (profitable_jump_thread_path): New function extracted from ...
* tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
extracted from ...
(fsm_find_control_statement_thread_paths): Call it.
From-SVN: r236599
Martin Jambor [Mon, 23 May 2016 16:31:14 +0000 (18:31 +0200)]
[PR 71234] Avoid valgrind warning in ipa-cp
2016-05-23 Martin Jambor <mjambor@suse.cz>
PR ipa/71234
* ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
from_global_constant if t is not NULL.
From-SVN: r236598
Marek Polacek [Mon, 23 May 2016 15:37:09 +0000 (15:37 +0000)]
re PR c/49859 (gcc could warn about statements between "switch" and first "case")
PR c/49859
* common.opt (Wswitch-unreachable): New option.
* doc/invoke.texi: Document -Wswitch-unreachable.
* gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
warning.
* c-c++-common/Wswitch-unreachable-1.c: New test.
* gcc.dg/Wswitch-unreachable-1.c: New test.
* c-c++-common/goacc/sb-2.c (void foo): Add dg-warning.
* g++.dg/cpp0x/lambda/lambda-switch.C (main): Likewise.
* g++.dg/gomp/block-10.C: Likewise.
* gcc.dg/gomp/block-10.c: Likewise.
* g++.dg/gomp/block-9.C: Likewise.
* gcc.dg/gomp/block-9.c: Likewise.
* g++.dg/gomp/target-1.C: Likewise.
* g++.dg/gomp/target-2.C: Likewise.
* gcc.dg/gomp/target-1.c: Likewise.
* gcc.dg/gomp/target-2.c: Likewise.
* g++.dg/gomp/taskgroup-1.C: Likewise.
* gcc.dg/gomp/taskgroup-1.c: Likewise.
* gcc.dg/gomp/teams-1.c: Likewise.
* g++.dg/gomp/teams-1.C: Likewise.
* g++.dg/overload/error3.C: Likewise.
* g++.dg/tm/jump1.C: Likewise.
* g++.dg/torture/pr40335.C: Likewise.
* gcc.dg/c99-vla-jump-5.c: Likewise.
* gcc.dg/switch-warn-1.c: Likewise.
* gcc.dg/Wjump-misses-init-1.c: Use -Wno-switch-unreachable.
* gcc.dg/nested-func-1.c: Likewise.
* gcc.dg/pr67784-4.c: Likewise.
From-SVN: r236597
Thomas Schwinge [Mon, 23 May 2016 14:54:04 +0000 (16:54 +0200)]
[PR libffi/65567] libffi: Fix, and simply libffi_feature_test
libffi/
PR libffi/65567
* testsuite/lib/libffi.exp (libffi_feature_test): Fix, and simply.
From-SVN: r236594
Bin Cheng [Mon, 23 May 2016 14:44:07 +0000 (14:44 +0000)]
tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when TMR_INDEX is non-NULL.
* tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
TMR_INDEX is non-NULL.
From-SVN: r236593
Richard Biener [Mon, 23 May 2016 14:09:35 +0000 (14:09 +0000)]
re PR tree-optimization/71230 (ICE : in zero_one_operation, at tree-ssa-reassoc.c:1230)
2016-05-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/71230
* tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
(try_special_add_to_ops): ... here. Always test for single-use.
* gfortran.dg/pr71230-1.f90: New testcase.
* gfortran.dg/pr71230-2.f90: Likewise.
From-SVN: r236591
Martin Jambor [Mon, 23 May 2016 11:45:13 +0000 (13:45 +0200)]
[hsa] Avoid segfault in hsa switch expansion
2016-05-23 Martin Jambor <mjambor@suse.cz>
* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
default block if a PHI node in the original one would be resized.
libgomp/
* testsuite/libgomp.hsa.c/switch-sbr-2.c: New test.
From-SVN: r236585
Venkataramanan Kumar [Mon, 23 May 2016 09:48:54 +0000 (09:48 +0000)]
re PR tree-optimization/58135 ([x86] Missed opportunities for partial SLP)
Fix PR58135.
2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
PR tree-optimization/58135
* tree-vect-slp.c: When group size is not multiple
of vector size, allow splitting of store group at
vector boundary.
2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
* gcc.dg/vect/bb-slp-19.c: Remove XFAIL.
* gcc.dg/vect/pr58135.c: Add new.
* gfortran.dg/pr46519-1.f: Adjust test case.
From-SVN: r236582
Paolo Carlini [Mon, 23 May 2016 09:23:42 +0000 (09:23 +0000)]
re PR c++/53401 ([C++11] internal compiler error: Segmentation fault on infinite argument deduction of constexpr templates)
2016-05-23 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53401
* g++.dg/cpp0x/decltype64.C: New.
From-SVN: r236581
Christophe Lyon [Mon, 23 May 2016 09:16:12 +0000 (09:16 +0000)]
[ARM, AArch64] Add missing tests for vreinterpret, operating of fp16 type.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret.c: Add fp16 tests.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: Likewise.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: Likewise.
From-SVN: r236580
Christophe Lyon [Mon, 23 May 2016 09:14:37 +0000 (09:14 +0000)]
[ARM, AArch64] Add missing tests for intrinsics operating on poly64 and poly128 types.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/arm-neon-ref.h (result):
Add poly64x1_t and poly64x2_t cases if supported.
* gcc.target/aarch64/advsimd-intrinsics/compute-ref-data.h
(buffer, buffer_pad, buffer_dup, buffer_dup_pad): Likewise.
* gcc.target/aarch64/advsimd-intrinsics/p64_p128.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p128.c: New file.
* gcc.target/aarch64/advsimd-intrinsics/vreinterpret_p64.c: New file.
From-SVN: r236579
Christophe Lyon [Mon, 23 May 2016 09:05:34 +0000 (09:05 +0000)]
[ARM, AArch64] Add missing vrnd{,a,m,n,p,x} tests.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vrnd.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndX.inc: New.
* gcc.target/aarch64/advsimd-intrinsics/vrnda.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndm.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndn.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndp.c: New.
* gcc.target/aarch64/advsimd-intrinsics/vrndx.c: New.
From-SVN: r236578
Christophe Lyon [Mon, 23 May 2016 09:02:51 +0000 (09:02 +0000)]
[ARM, AArch64] Add missing vstX_lane fp16 tests.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
* gcc.target/aarch64/advsimd-intrinsics/vstX_lane.c: Add fp16 tests.
From-SVN: r236577
Christophe Lyon [Mon, 23 May 2016 08:59:26 +0000 (08:59 +0000)]
[ARM, AArch64] Add missing vtst_p16 and vtstq_p16, and vtst_p{8,16} and vtstq_p{8,16} tests.
2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
gcc/
* config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vtst.c: Add tests for
vtst_p8, vtstq_p8, vtst_p16 and vtstq_p16.
From-SVN: r236576
GCC Administrator [Mon, 23 May 2016 00:16:25 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236575
Jakub Jelinek [Sun, 22 May 2016 18:01:43 +0000 (20:01 +0200)]
avx512bw-kunpckdq-1.c (avx512bw_test): Use "m" constraint instead of "r".
* gcc.target/i386/avx512bw-kunpckdq-1.c (avx512bw_test): Use "m"
constraint instead of "r".
* gcc.target/i386/avx512f-additional-reg-names.c (foo): Use vpxord
insn instead of vxorpd.
* gcc.target/i386/strinline.c: Add dg-require-effective-target ia32.
From-SVN: r236571
Uros Bizjak [Sun, 22 May 2016 17:20:10 +0000 (19:20 +0200)]
revert: re PR target/70738 (Add -mgeneral-regs-only option)
Revert:
gcc/
PR target/70738
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
(ix86_handle_option): Disable MPX, MMX, SSE and x87 instructions
for -mgeneral-regs-only.
* config/i386/i386.c (ix86_option_override_internal): Don't
enable x87 instructions if only the general registers are
allowed.
* config/i386/i386.opt: Add -mgeneral-regs-only.
* doc/invoke.texi: Document -mgeneral-regs-only.
gcc/testsuite/
PR target/70738
* gcc.target/i386/pr70738-1.c: Likewise.
* gcc.target/i386/pr70738-2.c: Likewise.
* gcc.target/i386/pr70738-3.c: Likewise.
* gcc.target/i386/pr70738-4.c: Likewise.
* gcc.target/i386/pr70738-5.c: Likewise.
* gcc.target/i386/pr70738-6.c: Likewise.
* gcc.target/i386/pr70738-7.c: Likewise.
* gcc.target/i386/pr70738-8.c: Likewise.
* gcc.target/i386/pr70738-9.c: Likewise.
From-SVN: r236570
Jakub Jelinek [Sun, 22 May 2016 10:28:06 +0000 (12:28 +0200)]
sse.md (vec_set_lo_<mode><mask_name>, [...]): Add && <mask_avx512dq_condition> condition.
* config/i386/sse.md (vec_set_lo_<mode><mask_name>,
vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
of 64x2.
* gcc.target/i386/avx512dq-vinsert-1.c: New test.
* gcc.target/i386/avx512vl-vinsert-1.c: New test.
From-SVN: r236569
Jakub Jelinek [Sun, 22 May 2016 10:27:27 +0000 (12:27 +0200)]
sse.md (vec_set_lo_v16hi, [...]): Add alternative with v constraint instead of x and vinserti32x4 insn.
* config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
v constraint instead of x and vinserti32x4 insn.
* gcc.target/i386/avx512vl-vinserti32x4-3.c: New test.
From-SVN: r236568
Jakub Jelinek [Sun, 22 May 2016 10:26:52 +0000 (12:26 +0200)]
sse.md (i128vldq): New mode iterator.
* config/i386/sse.md (i128vldq): New mode iterator.
(avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
avx512dq and avx512vl alternatives.
* gcc.target/i386/avx512dq-vbroadcast-2.c: New test.
* gcc.target/i386/avx512vl-vbroadcast-2.c: New test.
From-SVN: r236567
Jakub Jelinek [Sun, 22 May 2016 10:25:55 +0000 (12:25 +0200)]
sse.md (avx2_vec_dupv4df): Use v instead of x constraint, use maybe_evex prefix instead of vex.
* config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
constraint, use maybe_evex prefix instead of vex.
(vec_dupv4sf): Use v constraint instead of x for output
operand except for noavx alternative, use Yv constraint
instead of x for input. Use maybe_evex prefix instead of vex.
(*vec_dupv4si): Likewise.
(*vec_dupv2di): Likewise.
* gcc.target/i386/avx512vl-vbroadcast-1.c: New test.
From-SVN: r236566
Kugan Vivekanandarajah [Sun, 22 May 2016 08:13:13 +0000 (08:13 +0000)]
re PR tree-optimization/40921 (missed optimization: x + (-y * z * z) => x - y * z * z)
gcc/testsuite/ChangeLog:
2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/40921
* gcc.dg/tree-ssa/pr40921.c: New test.
gcc/ChangeLog:
2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/40921
* tree-ssa-reassoc.c (try_special_add_to_ops): New.
(linearize_expr_tree): Call try_special_add_to_ops.
(reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
From-SVN: r236564
GCC Administrator [Sun, 22 May 2016 00:16:19 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236563
Senthil Kumar Selvaraj [Sat, 21 May 2016 10:54:09 +0000 (10:54 +0000)]
avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET to computed stack_usage.
* config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
to computed stack_usage.
From-SVN: r236559
Pitchumani Sivanupandi [Sat, 21 May 2016 10:47:27 +0000 (10:47 +0000)]
re PR target/71103 (avr-gcc crashes with unrecognizable insn error)
PR target/71103
* config/avr/avr.md (define_expand "mov<mode>"): If the source
operand is subreg (symbol_ref) then move the symbol ref to register.
PR target/71103
* gcc.target/avr/pr71103.c: New test.
From-SVN: r236558
Jan Hubicka [Sat, 21 May 2016 09:46:22 +0000 (11:46 +0200)]
* tree.c (array_at_struct_end_p): Look through MEM_REF.
From-SVN: r236557
Kugan Vivekanandarajah [Sat, 21 May 2016 07:09:16 +0000 (07:09 +0000)]
re PR tree-optimization/71179 (ice fold_convert_loc, at fold-const.c:2360)
gcc/testsuite/ChangeLog:
2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71179
* gcc.dg/tree-ssa/pr71179.c: New test.
gcc/ChangeLog:
2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
PR middle-end/71179
* tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
VECTOR type.
From-SVN: r236554
GCC Administrator [Sat, 21 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236553
Martin Sebor [Fri, 20 May 2016 22:23:10 +0000 (22:23 +0000)]
PR c/71115 - [4.9/5/6/7 Regression] Missing warning: excess elements
PR c/71115 - [4.9/5/6/7 Regression] Missing warning: excess elements
in struct initializer
gcc/c/ChangeLog:
2016-05-20 Martin Sebor <msebor@redhat.com>
PR c/71115
* c-typeck.c (error_init): Use
expansion_point_location_if_in_system_header.
(warning_init): Same.
gcc/testsuite/ChangeLog:
2016-05-20 Martin Sebor <msebor@redhat.com>
PR c/71115
* gcc.dg/init-excess-2.c: New test.
From-SVN: r236549
Eric Botcazou [Fri, 20 May 2016 21:46:58 +0000 (21:46 +0000)]
tree-vrp.c (compare_values_warnv): Simplify handling of symbolic ranges by calling get_single_symbol and tidy up.
* tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
ranges by calling get_single_symbol and tidy up. Look more closely
into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>:
Make same-sized subtypes of signed base types signed.
* gcc-interface/utils.c (make_type_from_size): Adjust to above change.
(unchecked_convert): Likewise.
From-SVN: r236548
Jeff Law [Fri, 20 May 2016 21:32:56 +0000 (15:32 -0600)]
* bitmap.c (bitmap_find_bit): Remove useless test.
From-SVN: r236546
Segher Boessenkool [Fri, 20 May 2016 21:31:17 +0000 (23:31 +0200)]
This fixes a bug in my r236491: on nvptx, functions without prologue
would not get an epilogue either.
* function.c (thread_prologue_and_epilogue_insns): Commit the
insertion of the epilogue.
From-SVN: r236545
Martin Jambor [Fri, 20 May 2016 21:04:31 +0000 (23:04 +0200)]
[PR 70884] Constant pool SRA fix
2016-05-20 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/70884
* tree-sra.c (initialize_constant_pool_replacements): Do not check
should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
(sort_and_splice_var_accesses): Do not consider multiple scalar reads
of constant pool data as a reason for scalarization.
testsuite/
* gcc.dg/tree-ssa/pr70919.c: New test.
From-SVN: r236544
Nathan Sidwell [Fri, 20 May 2016 20:58:21 +0000 (20:58 +0000)]
constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if ...
* constexpr.c (cxx_bind_parameters_in_call): Avoid gratuitous if
... goto.
(cxx_eval_call_expression): Fix comment grammar.
From-SVN: r236543
Eric Botcazou [Fri, 20 May 2016 20:49:33 +0000 (20:49 +0000)]
arm.c (arm_expand_prologue): Set the stack usage to 0 for naked functions.
* config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
for naked functions.
(thumb1_expand_prologue): Likewise.
From-SVN: r236539
Bill Seurer [Fri, 20 May 2016 20:31:52 +0000 (20:31 +0000)]
This patch changes some of the dejagnu options to better restrict where the...
This patch changes some of the dejagnu options to better restrict
where the test cases run so that they will no longer cause failures on
power7 machines.
Based on a subsequent patch I also updated the code formatting (indentation,
etc.) for the code from the original patch (r235577) in both the test cases
and in rs6000-c.c.
[gcc]
2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com>
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Fix
code formatting in ALTIVEC_BUILTIN_VEC_ADDE section.
[gcc/testsuite]
2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com>
* gcc.target/powerpc/vec-adde.c: Change dejagnu options, fix code
formatting.
* gcc.target/powerpc/vec-adde-int128.c: Change dejagnu options, fix code
formatting.
From-SVN: r236537
Nathan Sidwell [Fri, 20 May 2016 19:52:50 +0000 (19:52 +0000)]
nptx.c (nvptx_option_override): Only set flag_toplevel_reorder, if not explicitly specified.
* config/nvptx/nptx.c (nvptx_option_override): Only set
flag_toplevel_reorder, if not explicitly specified. Set
flag_no_common, unless explicitly specified.
testsuite/
* gcc.target/nvptx/uninit-decl.c: Force common storage, add
non-common cases.
* gcc.dg/tree-ssa/ssa-store-ccp-2.c: Add -fcommon.
From-SVN: r236532
David Malcolm [Fri, 20 May 2016 19:12:49 +0000 (19:12 +0000)]
jit: implement gcc_jit_rvalue_set_bool_require_tail_call
This implements the libgccjit support for must-tail-call via
a new:
gcc_jit_rvalue_set_bool_require_tail_call
API entrypoint.
(I didn't implement a wrapper for this within the C++ bindings)
gcc/jit/ChangeLog:
* docs/topics/compatibility.rst: Add LIBGCCJIT_ABI_6.
* docs/topics/expressions.rst (Function calls): Add documentation
of gcc_jit_rvalue_set_bool_require_tail_call.
* docs/_build/texinfo/libgccjit.texi: Regenerate.
* jit-common.h (gcc::jit::recording::base_call): Add forward decl.
* jit-playback.c: Within namespace gcc::jit::playback...
(context::build_call) Add "require_tail_call" param and use it
to set CALL_EXPR_MUST_TAIL_CALL.
(context::new_call): Add "require_tail_call" param.
(context::new_call_through_ptr): Likewise.
* jit-playback.h: Within namespace gcc::jit::playback...
(context::new_call: Add "require_tail_call" param.
(context::new_call_through_ptr): Likewise.
(context::build_call): Likewise.
* jit-recording.c: Within namespace gcc::jit::recording...
(base_call::base_call): New constructor.
(base_call::write_reproducer_tail_call): New method.
(call::call): Update for inheritance from base_call.
(call::replay_into): Provide m_require_tail_call to call
to new_call.
(call::write_reproducer): Call write_reproducer_tail_call.
(call_through_ptr::call_through_ptr): Update for inheritance from
base_call.
(call_through_ptr::replay_into): Provide m_require_tail_call to call
to new_call_through_ptr.
(recording::call_through_ptr::write_reproducer): Call
write_reproducer_tail_call.
* jit-recording.h: Within namespace gcc::jit::recording...
(rvalue::dyn_cast_base_call): New virtual function.
(class base_call): New subclass of class rvalue.
(class call): Inherit from base_call rather than directly from
rvalue, moving get_precedence and m_args to base_call.
(class call_through_ptr): Likewise.
* libgccjit.c (gcc_jit_rvalue_set_bool_require_tail_call): New
function.
* libgccjit.h
(LIBGCCJIT_HAVE_gcc_jit_rvalue_set_bool_require_tail_call): New
macro.
(gcc_jit_rvalue_set_bool_require_tail_call): New function.
* libgccjit.map (LIBGCCJIT_ABI_6): New.
(gcc_jit_rvalue_set_bool_require_tail_call): Add.
gcc/testsuite/ChangeLog:
* jit.dg/all-non-failing-tests.h: Add
test-factorial-must-tail-call.c.
* jit.dg/test-error-impossible-must-tail-call.c: New test case.
* jit.dg/test-factorial-must-tail-call.c: New test case.
From-SVN: r236531
David Malcolm [Fri, 20 May 2016 18:52:56 +0000 (18:52 +0000)]
calls.c: fix warning on targets without REG_PARM_STACK_SPACE
gcc/ChangeLog:
* calls.c (can_implement_as_sibling_call_p): Mark param
reg_parm_stack_space with ATTRIBUTE_UNUSED.
From-SVN: r236527
Jakub Jelinek [Fri, 20 May 2016 18:49:24 +0000 (20:49 +0200)]
re PR fortran/71204 (ICE with -O0 in expand_expr_real_1, at expr.c:9651)
PR fortran/71204
* frontend-passes.c (realloc_string_callback): Clear inserted_block
and changed_statement before calling create_var.
* gfortran.dg/pr71204.f90: New test.
From-SVN: r236525
Uros Bizjak [Fri, 20 May 2016 17:44:29 +0000 (19:44 +0200)]
i386.c (ix86_rtx_costs): Use IS_STACK_MODE when calculating cost of standard 80387 constants.
* gcc/config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
Use IS_STACK_MODE when calculating cost of standard 80387 constants.
Fallthru to CONST_VECTOR case to calculate cost of standard SSE
constants.
<case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
(ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
and CASE_CONST_ANY.
From-SVN: r236524
Cesar Philippidis [Fri, 20 May 2016 17:33:44 +0000 (10:33 -0700)]
nvptx.md (sincossf3): New pattern.
gcc/
* config/nvptx/nvptx.md (sincossf3): New pattern.
gcc/testsuite/
* gcc.target/nvptx/sincos.c: New test.
From-SVN: r236523
Paolo Carlini [Fri, 20 May 2016 16:24:58 +0000 (16:24 +0000)]
re PR c++/70572 (ICE on code with decltype (auto) in digest_init_r, at cp/typeck2.c:1103 with -std=c++14)
/cp
2016-05-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70572
* decl.c (cp_finish_decl): Check do_auto_deduction return value
and return immediately in case of erroneous code.
/testsuite
2016-05-20 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/70572
* g++.dg/cpp1y/auto-fn31.C: New.
From-SVN: r236522
H.J. Lu [Fri, 20 May 2016 16:06:39 +0000 (16:06 +0000)]
Add -mgeneral-regs-only option
X86 Linux kernel is compiled only with integer instructions. Currently,
-mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -mno-80387
-mno-fp-ret-in-387 -mskip-rax-setup
is used to compile kernel. If we add another non-integer feature, it
has to be turned off. We can add a -mgeneral-regs-only option, similar
to AArch64, to disable all non-integer features so that kernel doesn't
need a long list and the same option will work for future compilers.
It can also be used to compile interrupt handler.
gcc/
PR target/70738
* common/config/i386/i386-common.c
(OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
(ix86_handle_option): Disable MPX, MMX, SSE and x87 instructions
for -mgeneral-regs-only.
* config/i386/i386.c (ix86_option_override_internal): Don't
enable x87 instructions if only the general registers are
allowed.
* config/i386/i386.opt: Add -mgeneral-regs-only.
* doc/invoke.texi: Document -mgeneral-regs-only.
gcc/testsuite/
PR target/70738
* gcc.target/i386/pr70738-1.c: Likewise.
* gcc.target/i386/pr70738-2.c: Likewise.
* gcc.target/i386/pr70738-3.c: Likewise.
* gcc.target/i386/pr70738-4.c: Likewise.
* gcc.target/i386/pr70738-5.c: Likewise.
* gcc.target/i386/pr70738-6.c: Likewise.
* gcc.target/i386/pr70738-7.c: Likewise.
* gcc.target/i386/pr70738-8.c: Likewise.
* gcc.target/i386/pr70738-9.c: Likewise.
From-SVN: r236520
Bill Seurer [Fri, 20 May 2016 15:25:04 +0000 (15:25 +0000)]
This patch adds support for the signed and unsigned int versions of the...
This patch adds support for the signed and unsigned int versions of the
vec_addec altivec builtins from the Power Architecture 64-Bit ELF V2 ABI
OpenPOWER ABI for Linux Supplement (16 July 2015 Version 1.1). There are
many of the builtins that are missing and this is part of a series
of patches to add them.
There aren't instructions for the int versions of vec_addec so the
output code is built from other built-ins that do have instructions
which in this case is the following.
vec_addec (va, vb, carryv) == vec_or (vec_addc (va, vb),
vec_addc(vec_add(va, vb),
vec_and (carryv, 0x1)))
The new test cases are executable tests which verify that the generated
code produces expected values. C macros were used so that the same
test case could be used for both the signed and unsigned versions. An
extra executable test case is also included to ensure that the modified
support for the __int128 versions of vec_addec is not broken. The same
test case could not be used for both int and __int128 because of some
differences in loading and storing the vectors.
Bootstrapped and tested on powerpc64le-unknown-linux-gnu and
powerpc64-unknown-linux-gnu with no regressions. Is this ok for trunk?
[gcc]
2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com>
* config/rs6000/rs6000-builtin.def (vec_addec): Change vec_addec to a
special case builtin.
* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
support for ALTIVEC_BUILTIN_VEC_ADDEC.
* config/rs6000/rs6000.c (altivec_init_builtins): Add definition
for __builtin_vec_addec.
[gcc/testsuite]
2016-05-20 Bill Seurer <seurer@linux.vnet.ibm.com>
* gcc.target/powerpc/vec-addec.c: New test.
* gcc.target/powerpc/vec-addec-int128.c: New test.
From-SVN: r236515
David Malcolm [Fri, 20 May 2016 14:20:03 +0000 (14:20 +0000)]
Implement CALL_EXPR_MUST_TAIL_CALL
This patch implements support for marking CALL_EXPRs
as being mandatory for tail-call-optimization. expand_call
tries harder to perform the optimization on such CALL_EXPRs,
and issues an error if it fails.
Currently this flag isn't accessible from any frontend,
so the patch uses a plugin for testing the functionality.
gcc/ChangeLog:
* calls.c (maybe_complain_about_tail_call): New function.
(initialize_argument_information): Call
maybe_complain_about_tail_call when clearing *may_tailcall.
(can_implement_as_sibling_call_p): Call
maybe_complain_about_tail_call when returning false.
(expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
ensure try_tail_call is set. Call maybe_complain_about_tail_call
if tail-call optimization fails.
* cfgexpand.c (expand_call_stmt): Initialize
CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
* gimple-pretty-print.c (dump_gimple_call): Dump
gimple_call_must_tail_p.
* gimple.c (gimple_build_call_from_tree): Call
gimple_call_set_must_tail with the value of
CALL_EXPR_MUST_TAIL_CALL.
* gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
(gimple_call_set_must_tail): New function.
(gimple_call_must_tail_p): New function.
* print-tree.c (print_node): Update printing of TREE_STATIC
to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
* tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
trailing comment listing applicable flags.
* tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
gcc/testsuite/ChangeLog:
* gcc.dg/plugin/must-tail-call-1.c: New test case.
* gcc.dg/plugin/must-tail-call-2.c: New test case.
* gcc.dg/plugin/must_tail_call_plugin.c: New file.
* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the above.
From-SVN: r236514
David Malcolm [Fri, 20 May 2016 14:07:56 +0000 (14:07 +0000)]
Introduce can_implement_as_sibling_call_p
gcc/ChangeLog:
* calls.c (expand_call): Move "Rest of purposes for tail call
optimizations to fail" to...
(can_implement_as_sibling_call_p): ...this new function, and
split into multiple "if" statements.
From-SVN: r236513
Jan Hubicka [Fri, 20 May 2016 13:19:59 +0000 (15:19 +0200)]
cfgloop.h (expected_loop_iterations_unbounded, [...]): Unconstify.
* cfgloop.h (expected_loop_iterations_unbounded,
expected_loop_iterations): Unconstify.
* cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
profile with known upper bound; return 3 when profile is absent.
(expected_loop_iterations): Update.
From-SVN: r236511
Jan Hubicka [Fri, 20 May 2016 12:59:08 +0000 (14:59 +0200)]
loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int and get_max_loop_iterations_int.
* loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
and get_max_loop_iterations_int.
From-SVN: r236509
Jan Hubicka [Fri, 20 May 2016 12:41:45 +0000 (14:41 +0200)]
prefetch-5.c: xfail.
* gcc.dg/tree-ssa/prefetch-5.c: xfail.
* tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
realistic upper bounds here.
From-SVN: r236508
Thomas Preud'homme [Fri, 20 May 2016 12:36:57 +0000 (12:36 +0000)]
re PR libstdc++/71081 (experimental/memory_resource/1.cc run for targets without atomics)
2016-05-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
PR libstdc++/71081
* testsuite/experimental/memory_resource/1.cc: Add required argument
to dg-require-atomic-builtins.
From-SVN: r236507
Jakub Jelinek [Fri, 20 May 2016 11:58:49 +0000 (13:58 +0200)]
re PR c++/71210 (internal compiler error: in assign_temp, at function.c:961)
PR c++/71210
* gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
calls if the LHS is variable length or has addressable type.
If targets[0]->decl is a noreturn call with void return type and
zero arguments, adjust fntype and remove lhs in that case.
* g++.dg/opt/pr71210-1.C: New test.
* g++.dg/opt/pr71210-2.C: New test.
From-SVN: r236506
Jakub Jelinek [Fri, 20 May 2016 11:55:58 +0000 (13:55 +0200)]
re PR target/29756 (SSE intrinsics hard to use without redundant temporaries appearing)
PR tree-optimization/29756
gcc.dg/tree-ssa/vector-6.c: Add -Wno-psabi -w to dg-options.
Add -msse2 for x86 and -maltivec for powerpc. Use scan-tree-dump-times
only on selected targets where V4SImode vectors are known to be
supported.
From-SVN: r236505
Marc Glisse [Fri, 20 May 2016 09:44:50 +0000 (11:44 +0200)]
PR71206: inconsistent types after match.pd transformation
2016-05-20 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/71079
PR tree-optimization/71206
gcc/
* match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
gcc/testsuite/
* gcc.dg/tree-ssa/pr71206.c: New testcase.
From-SVN: r236504
Prathamesh Kulkarni [Fri, 20 May 2016 09:39:32 +0000 (09:39 +0000)]
Add test-cases mentioned in r236502.
From-SVN: r236503
Prathamesh Kulkarni [Fri, 20 May 2016 09:35:46 +0000 (09:35 +0000)]
tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
* tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
(get_vec_alignment_for_array_decl): Likewise.
(get_vec_alignment_for_record_decl): Likewise.
(increase_alignment::execute): Move code to find alignment to
get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
(type_align_map): New hash_map.
testsuite/
* gcc.dg/vect/section-anchors-vect-70.c: New test-case.
* gcc.dg/vect/section-anchors-vect-71.c: Likewise.
* gcc.dg/vect/section-anchors-vect-72.c: Likewise.
From-SVN: r236502
Richard Guenther [Fri, 20 May 2016 09:17:16 +0000 (09:17 +0000)]
re PR target/29756 (SSE intrinsics hard to use without redundant temporaries appearing)
2016-05-20 Richard Guenther <rguenther@suse.de>
PR tree-optimization/29756
* tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
* expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
* fold-const.c (operand_equal_p): Likewise.
(fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
* gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
* tree-inline.c (estimate_operator_cost): Likewise.
* tree-pretty-print.c (dump_generic_node): Likewise.
* tree-ssa-operands.c (get_expr_operands): Likewise.
* cfgexpand.c (expand_debug_expr): Likewise.
* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
* gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
* tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
* tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
(execute_update_addresses_taken): Do it.
* gcc.dg/tree-ssa/vector-6.c: New testcase.
From-SVN: r236501
Richard Biener [Fri, 20 May 2016 09:09:28 +0000 (09:09 +0000)]
re PR target/71185 (ice in gimplify_modify_expr, at gimplify.c:4873)
2016-05-20 Richard Biener <rguenther@suse.de>
PR tree-optimization/71185
* tree-ssa-loop-prefetch.c (gather_memory_references): Drop
register operations.
* gcc.dg/tree-ssa/pr71185.c: New testcase.
From-SVN: r236499
Richard Biener [Fri, 20 May 2016 09:01:23 +0000 (09:01 +0000)]
tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use gimple_seq_add_seq_without_update.
2016-05-20 Richard Biener <rguenther@suse.de>
* tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
gimple_seq_add_seq_without_update.
(release_bb_predicate): Assert we have no operands to free.
(if_convertible_loop_p_1): Calculate post dominators later.
Do not free BB predicates here.
(combine_blocks): Do not recompute BB predicates.
(version_loop_for_if_conversion): Save BB predicates around
loop versioning.
* gcc.dg/tree-ssa/ifc-cd.c: Adjust.
From-SVN: r236498
Martin Liska [Fri, 20 May 2016 08:03:25 +0000 (10:03 +0200)]
Change ENABLE_VALGRIND_CHECKING to
* config.in: Regenerated.
* configure: Likewise.
* configure.ac: Handle --enable-valgrind-annotations.
* lex.c (new_buff): Use ENABLE_VALGRIND_ANNOTATIONS instead
of ENABLE_VALGRIND_CHECKING.
(_cpp_free_buff): Likewise.
From-SVN: r236496
GCC Administrator [Fri, 20 May 2016 00:16:24 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236495
Segher Boessenkool [Thu, 19 May 2016 22:17:53 +0000 (00:17 +0200)]
function: Restructure *logue insertion
This patch restructures how the prologues/epilogues are inserted. Sibcalls
that run without prologue are now handled in shrink-wrap.c; it communicates
what is already handled by setting the EDGE_IGNORE flag. The
try_shrink_wrapping function then doesn't need to be passed the bb_flags
anymore.
* function.c (make_epilogue_seq): Remove epilogue_end parameter.
(thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
code. Ignore sibcalls on EDGE_IGNORE edges.
* shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
on edges for sibcalls that run without prologue. The rest of the
function is combined from...
(fix_fake_fallthrough_edge): ... this, and ...
(try_shrink_wrapping): ... a part of this. Remove the bb_with
function argument, make it a local variable.
From-SVN: r236491
Sandra Loosemore [Thu, 19 May 2016 21:59:45 +0000 (17:59 -0400)]
cygming.h (DWARF2_UNWIND_INFO): Allow --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH for...
2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
gcc/
* config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
--disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
for 32-bit mode and SEH for 64-bit.
* config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
TARGET_64BIT_DEFAULT.
libgcc/
* config.host [x86_64-*-cygwin*]: Handle tmake_eh_file for mixed
dw2/seh configuration.
[x86_64-*-mingw*]: Likewise.
From-SVN: r236490
David Malcolm [Thu, 19 May 2016 20:29:07 +0000 (20:29 +0000)]
PR c/71171: Fix uninitialized source_range in c_parser_postfix_expression
A common way for a c_expr to have an uninitialized src_range is in
error-handling, where the "value" field is set to error_mark_node
without touching the src_range, leading to complaints from valgrind.
This patch introduces a new method c_expr::set_error which sets
the value to error_mark_node whilst initializing the src_range to
UNKNOWN_LOCATION.
This fixes the valgrind issue seen in PR c/71171, along with various
other related issues seen when running the testsuite using the
checker patch I posted here:
https://gcc.gnu.org/ml/gcc-patches/2015-12/msg00887.html
(this checker still doesn't fully work yet, but it seems to be good
for easily detecting these issues without needing Valgrind).
gcc/c/ChangeLog:
PR c/71171
* c-parser.c (c_parser_generic_selection): Use c_expr::set_error
in error-handling.
(c_parser_postfix_expression): Likewise.
* c-tree.h (c_expr::set_error): New method.
* c-typeck.c (parser_build_binary_op): In error-handling, ensure
that result's range is initialized.
From-SVN: r236488
Marek Polacek [Thu, 19 May 2016 20:23:52 +0000 (20:23 +0000)]
re PR c++/71075 (Broken diagnostic: 'integer_cst' not supported by 'dump_decl')
PR c++/71075
* pt.c (unify_template_argument_mismatch): Use %qE instead of %qD.
* g++.dg/diagnostic/pr71075.C: New test.
From-SVN: r236487
Jason Merrill [Thu, 19 May 2016 19:20:40 +0000 (15:20 -0400)]
Fix handling of non-dependent calls with default template args.
PR c++/10200
* pt.c (fn_type_unification): Add outer template args if needed.
(type_unification_real): Handle getting full args.
From-SVN: r236486
David Malcolm [Thu, 19 May 2016 18:10:30 +0000 (18:10 +0000)]
PR c++/71184: Fix NULL dereference in cp_parser_operator
The source-range handling for the array form of operator
new/delete erroneously assumed that the "]" was present,
leading to a dereference of NULL when it's absent.
Fix it thusly.
gcc/cp/ChangeLog:
PR c++/71184
* parser.c (cp_parser_operator): For array new/delete, check that
cp_parser_require returned a non-NULL token before dereferencing
it.
gcc/testsuite/ChangeLog:
PR c++/71184
* g++.dg/pr71184.C: New test case.
From-SVN: r236483
Ryan Burn [Thu, 19 May 2016 18:03:30 +0000 (18:03 +0000)]
Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
2016-05-16 Ryan Burn <contact@rnburn.com>
* Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
* gengtype.c (open_base_files): Add cilk.h to ifiles.
From-SVN: r236482
Uros Bizjak [Thu, 19 May 2016 17:52:56 +0000 (19:52 +0200)]
sched-deps.c (sched_analyze_2): Also force pending loads from memory.
* sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
force pending loads from memory.
From-SVN: r236481
Kelvin Nilsen [Thu, 19 May 2016 17:47:40 +0000 (17:47 +0000)]
darn-0.c: New test.
gcc/testsuite/ChangeLog:
2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
* gcc.target/powerpc/darn-0.c: New test.
* gcc.target/powerpc/darn-1.c: New test.
* gcc.target/powerpc/darn-2.c: New test.
gcc/ChangeLog:
2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
* config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
(UNSPEC_DARN_32): New unspec constant.
(UNSPEC_DARN_RAW): New unspec constant.
(darn_32): New instruction.
(darn_raw): New instruction.
(darn): New instruction.
* config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
support and documentation for this macro.
(BU_P9_MISC_1): New macro definition.
(BU_P9_64BIT_MISC_0): New macro definition.
(BU_P9_MISC_0): New macro definition.
(darn_32): New builtin definition.
(darn_raw): New builtin definition.
(darn): New builtin definition.
* config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
RS6000_BUILTIN_0 directives to surround each occurrence of
#include "rs6000-builtin.def".
(rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
RS6000_BTM_64BIT flags to the returned mask, depending on
configuration.
(def_builtin): Correct an error in the assignments made to the
debugging variable attr_string.
(rs6000_expand_builtin): Add support for no-operand built-in
functions.
(builtin_function_type): Remove fatal_error assertion that is no
longer valid.
(rs6000_common_init_builtins): Add support for no-operand built-in
functions.
* config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
definition.
(RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
definition.
(RS6000_BTM_64BIT): New macro definition.
* doc/extend.texi: Document __builtin_darn (void),
__builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
functions.
From-SVN: r236480
Jan Hubicka [Thu, 19 May 2016 15:50:56 +0000 (17:50 +0200)]
tree-vect-loop.c (vect_analyze_loop_2): Use also max_loop_iterations_int.
* tree-vect-loop.c (vect_analyze_loop_2): Use also
max_loop_iterations_int.
From-SVN: r236478
Marek Polacek [Thu, 19 May 2016 15:45:35 +0000 (15:45 +0000)]
re PR tree-optimization/71031 (ICE in extract_range_from_binary_expr_1, at tree-vrp.c:2535 w/ -Os)
PR tree-optimization/71031
* tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
condition and adjust the code a bit.
* gcc.dg/tree-ssa/vrp100.c: New test.
From-SVN: r236477
Martin Liska [Thu, 19 May 2016 15:08:02 +0000 (17:08 +0200)]
Fix memory leak in tree-vect-stmts.c
* tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
auto_vec instead of vec.
From-SVN: r236472
Martin Liska [Thu, 19 May 2016 15:07:28 +0000 (17:07 +0200)]
Fix memory leak in tree-parloops.c
* tree-parloops.c (oacc_entry_exit_ok): Release a vector.
From-SVN: r236471
Martin Liska [Thu, 19 May 2016 15:06:47 +0000 (17:06 +0200)]
Fix memory leak in tree-if-conv.c
* tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
From-SVN: r236470
Martin Liska [Thu, 19 May 2016 15:06:17 +0000 (17:06 +0200)]
Fix memory leak in ipa-pure-const
* ipa-pure-const.c (set_function_state): Remove an existing
funct_state.
(remove_node_data): Do not free it as it's released
in set_function_state.
From-SVN: r236469
Martin Liska [Thu, 19 May 2016 15:05:53 +0000 (17:05 +0200)]
Fix memory leak in tree-vect-slp.c
* tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
bitmap.
From-SVN: r236468
Martin Liska [Thu, 19 May 2016 15:05:26 +0000 (17:05 +0200)]
Fix memory leak in omp-simd-clone.c
* omp-simd-clone.c (simd_clone_adjust): Release vector.
From-SVN: r236467
Martin Liska [Thu, 19 May 2016 15:05:07 +0000 (17:05 +0200)]
Fix leak in gcc/tree-ssa-reassoc.c.
* tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
an auto_vec instead of re-creating it.
From-SVN: r236466
Martin Liska [Thu, 19 May 2016 15:04:42 +0000 (17:04 +0200)]
Fix leak in tree-ssa-loop-prefetch.c
* tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
auto_vec instead of vec.
From-SVN: r236465
Martin Liska [Thu, 19 May 2016 15:02:30 +0000 (17:02 +0200)]
LTO: display file name if LTO version check fails
* lto-section-in.c (lto_get_section_data): Call
lto_check_version with additional argument.
* lto-streamer.c (lto_check_version): Add new argument.
* lto-streamer.h (lto_check_version): Likewise.
From-SVN: r236464
Kyrylo Tkachov [Thu, 19 May 2016 13:54:31 +0000 (13:54 +0000)]
[ARM] Fix costing of sign-extending load in rtx costs
* config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
Don't add cost of inner memory when handling sign-extended
loads.
From-SVN: r236461
Ilya Enkovich [Thu, 19 May 2016 13:50:22 +0000 (13:50 +0000)]
cse.c (cse_main): Free dominance info.
gcc/
* cse.c (cse_main): Free dominance info.
(rest_of_handle_cse): Don't free dominance info.
(rest_of_handle_cse2): Likewise.
(rest_of_handle_cse_after_global_opts): Likewise.
gcc/testsuite/
* gcc.dg/pr71148.c: New test.
From-SVN: r236460
Kyrylo Tkachov [Thu, 19 May 2016 13:43:58 +0000 (13:43 +0000)]
[ARM] PR target/71056: Don't use vectorized builtins when NEON is not available
PR target/71056
* config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
NULL_TREE early if NEON is not available. Remove now redundant check
in ARM_CHECK_BUILTIN_MODE.
* gcc.target/arm/pr71056.c: New test.
From-SVN: r236459
Bernd Edlinger [Thu, 19 May 2016 12:27:31 +0000 (12:27 +0000)]
decl.c (finish_enum_value_list): Use the specified mode.
2016-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
* decl.c (finish_enum_value_list): Use the specified mode.
testsuite:
2016-05-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
* c-c++-common/pr69669.c: Check the used mode.
From-SVN: r236458
Maxim Ostapenko [Thu, 19 May 2016 12:05:59 +0000 (12:05 +0000)]
re PR sanitizer/64354 (no preprocessor symbol __SANITIZE_THREAD__)
2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
PR sanitizer/64354
* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
* doc/cpp.texi: Document new macros.
* c-c++-common/tsan/sanitize-thread-macro.c: New test.
From-SVN: r236457
Jakub Jelinek [Thu, 19 May 2016 09:55:01 +0000 (11:55 +0200)]
Move ChangeLog entry to the right file.
PR other/61321
PR other/61233
* demangle.h (enum demangle_component_type)
<DEMANGLE_COMPONENT_CONVERSION>: New value.
From-SVN: r236449
Jakub Jelinek [Thu, 19 May 2016 09:27:57 +0000 (11:27 +0200)]
Remove libiberty/ path prefixes.
From-SVN: r236448
Bin Cheng [Thu, 19 May 2016 09:03:36 +0000 (09:03 +0000)]
re PR tree-optimization/69848 (poor vectorization of a loop from SPEC2006 464.h264ref)
PR tree-optimization/69848
* tree-vect-loop.c (vectorizable_reduction): Don't factor
comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
From-SVN: r236447
Jakub Jelinek [Thu, 19 May 2016 08:49:30 +0000 (10:49 +0200)]
re PR c++/70498 (Libiberty Demangler segfaults (3))
PR c++/70498
* cp-demangle.c (d_expression_1): Formatting fix.
From-SVN: r236445
Jakub Jelinek [Thu, 19 May 2016 08:34:39 +0000 (10:34 +0200)]
Fix up 2 ChangeLog entries.
From-SVN: r236443
Segher Boessenkool [Thu, 19 May 2016 07:51:48 +0000 (09:51 +0200)]
function: A fix for my previous commit
It failed for targets that have an eh_return pattern with a splitter
gated by epilogue_done.
* function.c (thread_prologue_and_epilogue_insn): Move the
"goto epilogue_done" one block later.
From-SVN: r236441
Richard Biener [Thu, 19 May 2016 07:39:52 +0000 (07:39 +0000)]
re PR tree-optimization/70729 (Loop marked with omp simd pragma is not vectorized)
2016-05-19 Richard Biener <rguenther@suse.de>
PR tree-optimization/70729
* passes.def: Move LIM pass before PRE. Remove no longer
required copyprop and move first DCE out of the loop pipeline.
* gcc.dg/autopar/outer-6.c: Adjust to avoid redundant store.
* gcc.dg/graphite/scop-18.c: Likewise.
* gcc.dg/pr41783.c: Disable LIM.
* gcc.dg/tree-ssa/loadpre10.c: Likewise.
* gcc.dg/tree-ssa/loadpre23.c: Likewise.
* gcc.dg/tree-ssa/loadpre24.c: Likewise.
* gcc.dg/tree-ssa/loadpre25.c: Likewise.
* gcc.dg/tree-ssa/loadpre4.c: Likewise.
* gcc.dg/tree-ssa/loadpre8.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-16.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-18.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-20.c: Likewise.
* gcc.dg/tree-ssa/ssa-pre-3.c: Likewise.
* gfortran.dg/pr42108.f90: Likewise.
From-SVN: r236440
David Malcolm [Thu, 19 May 2016 00:52:08 +0000 (00:52 +0000)]
PR driver/69265: add hint for options with misspelled arguments
opts-common.c's cmdline_handle_error handles invalid arguments
for options with CL_ERR_ENUM_ARG by building a string listing the
valid arguments. By also building a vec of valid arguments, we
can use find_closest_string and provide a hint if we see a close
misspelling.
gcc/ChangeLog:
PR driver/69265
* Makefile.in (GCC_OBJS): Move spellcheck.o to...
(OBJS-libcommon-target): ...here.
* opts-common.c: Include spellcheck.h.
(cmdline_handle_error): Build a vec of valid options and use it
to suggest provide hints for misspelled arguments.
gcc/testsuite/ChangeLog:
PR driver/69265
* gcc.dg/spellcheck-options-11.c: New test case.
From-SVN: r236439
GCC Administrator [Thu, 19 May 2016 00:16:21 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r236438
Artemiy Volkov [Wed, 18 May 2016 21:52:26 +0000 (21:52 +0000)]
cplus-dem.c (enum type_kind_t): Add tk_rvalue_reference constant.
* cplus-dem.c (enum type_kind_t): Add tk_rvalue_reference
constant.
(demangle_template_value_parm): Handle tk_rvalue_reference
type kind.
(do_type): Support 'O' type id (rvalue references).
* testsuite/demangle-expected: Add tests.
From-SVN: r236434
Jakub Jelinek [Wed, 18 May 2016 21:23:07 +0000 (23:23 +0200)]
re PR c++/71100 (Internal compiler error while calling a pointer to member function that throws)
PR c++/71100
* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
lhs if it has TREE_ADDRESSABLE type.
* g++.dg/opt/pr71100.C: New test.
From-SVN: r236430