Jan Hubicka [Wed, 25 Nov 2015 18:12:51 +0000 (19:12 +0100)]
varasm.c (default_elf_asm_output_limited_string, [...]): Replace fprintf by putc.
* varasm.c (default_elf_asm_output_limited_string,
default_elf_asm_output_ascii): Replace fprintf by putc.
From-SVN: r230895
Vladimir Makarov [Wed, 25 Nov 2015 17:58:35 +0000 (17:58 +0000)]
re PR rtl-optimization/67954 (internal compiler error: in patch_jump_insn, at cfgrtl.c:1303)
2015-11-25 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/67954
* lra-constraints.c (curr_insn_transform): Add check on scratch
pseudo when change class to NO_REGS. Add an assert.
From-SVN: r230894
Nathan Sidwell [Wed, 25 Nov 2015 17:33:30 +0000 (17:33 +0000)]
nvptx.md (load_arg_reg<mode>): Arg number constraint is 'n'.
* config/nvptx/nvptx.md (load_arg_reg<mode>): Arg number
constraint is 'n'.
* config/nvptx/nvptx.c (write_one_arg): Use 'i' directly as arg
number.
(nvptx_write_function_decl): Number args from 0.
(nvptx_declare_function_name): Likewise.
(nvptx_function_incoming_arg): Likewise.
(nvptx_output_call_insn): Correct formatting.
From-SVN: r230889
David Sherwood [Wed, 25 Nov 2015 17:12:28 +0000 (17:12 +0000)]
optabs.def: Add new optabs fmax_optab/fmin_optab.
2015-11-25 David Sherwood <david.sherwood@arm.com>
* optabs.def: Add new optabs fmax_optab/fmin_optab.
* internal-fn.def: Add new fmax/fmin internal functions.
* doc/md.texi: Add fmin and fmax patterns.
From-SVN: r230888
Markus Trippelsdorf [Wed, 25 Nov 2015 16:40:16 +0000 (16:40 +0000)]
re PR c++/68087 (ICE with constexpr in array with negative index)
/cp
2015-11-25 Markus Trippelsdorf <markus@trippelsdorf.de>
Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68087
* constexpr.c (cxx_eval_array_reference): Use tree_fits_shwi_p before
tree_to_shwi to avoid ICEs.
/testsuite
2015-11-25 Markus Trippelsdorf <markus@trippelsdorf.de>
Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68087
* g++.dg/cpp0x/constexpr-array13.C: New.
Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r230886
Arnaud Charlet [Wed, 25 Nov 2015 15:30:09 +0000 (16:30 +0100)]
[multiple changes]
2015-11-25 Eric Botcazou <ebotcazou@adacore.com>
* gnatlink.adb (Gnatlink): Do not reinstate -fsjlj for the linker
from the switches saved in the ALI file but from the exception
settings.
2015-11-25 Arnaud Charlet <charlet@adacore.com>
* lib-xref-spark_specific.adb
(Add_SPARK_Scope): Take entry families into account.
* a-exetim.ads, a-exetim-default.ads, a-exetim-mingw.ads (Clock,
Clock_For_Interrupts): preconditions added.
* a-extiin.ads (Clock): preconditions added.
* par-ch3.adb (P_Declarative_Items): In case of misplaced
aspect specifications, ensure that flag Done is properly set to
continue parsing.
From-SVN: r230879
Arnaud Charlet [Wed, 25 Nov 2015 15:16:44 +0000 (16:16 +0100)]
[multiple changes]
2015-11-25 Arnaud Charlet <charlet@adacore.com>
* exp_util.adb (Remove_Side_Effects): Minimize extra temporaries
and use of 'Reference when needed.
2015-11-25 Doug Rupp <rupp@adacore.com>
* sigtramp-vxworks-target.inc (__x86_64__): Restore context for the
sake of uniformity.
* init.c (__gnat_inum_to_ivec): Add some casting to avoid
warnings when sizeof(long) != sizeof(int)
2015-11-25 Yannick Moy <moy@adacore.com>
* lib-xref-spark_specific.adb (SPARK_Entities): Add entries for
consideration.
(Add_SPARK_Scope): Take tasks into account.
(Detect_And_Add_SPARK_Scope): Take tasks into account.
(Enclosing_Subprogram_Or_Library_Package): Take tasks into account.
From-SVN: r230878
Arnaud Charlet [Wed, 25 Nov 2015 15:14:27 +0000 (16:14 +0100)]
[multiple changes]
2015-11-25 Bob Duff <duff@adacore.com>
* sem_elab.adb (Check_Internal_Call_Continue): Code clean ups.
2015-11-25 Eric Botcazou <ebotcazou@adacore.com>
* sem_util.ads (Has_Compatible_Alignment): Add Layout_Done
parameter.
* sem_util.adb (Has_Compatible_Alignment): Likewise.
(Has_Compatible_Alignment_Internal): Likewise. Do not set the
result to Unknown for packed types if Layout_Done is true.
* checks.adb (Apply_Address_Clause_Check): Adjust call and
pass False to Has_Compatible_Alignment.
* sem_ch13.adb (Validate_Address_Clauses): Likewise but pass True.
From-SVN: r230877
Arnaud Charlet [Wed, 25 Nov 2015 15:10:52 +0000 (16:10 +0100)]
[multiple changes]
2015-11-25 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: When <target>-gnat is called with switch -P
and a GPR tool is invoked, invoke the GPR tool with switch
--target=<target>.
2015-11-25 Hristian Kirtchev <kirtchev@adacore.com>
* opt.adb, bcheck.adb: Minor reformatting.
From-SVN: r230876
Arnaud Charlet [Wed, 25 Nov 2015 15:09:38 +0000 (16:09 +0100)]
[multiple changes]
2015-11-25 Jerome Lambourg <lambourg@adacore.com>
* init.c: Enable the signal trampoline on x86_64-vx7
* sigtramp-vxworks-target.inc: Implement the signal trampoline
for x86_64
* tracebak.c: Remove the hook to use the generic
unwinder on x86_64-vx7.
2015-11-25 Vincent Celier <celier@adacore.com>
* gnatcmd.adb: When "gnat name -P" is called, invoke gprname
directly if available.
From-SVN: r230875
Tristan Gingold [Wed, 25 Nov 2015 15:07:12 +0000 (15:07 +0000)]
init.c (__gnat_is_stack_guard): Do not use mach calls for IOS simulator.
2015-11-25 Tristan Gingold <gingold@adacore.com>
* init.c (__gnat_is_stack_guard): Do not use mach calls for
IOS simulator.
From-SVN: r230874
Steven G. Kargl [Wed, 25 Nov 2015 15:04:33 +0000 (15:04 +0000)]
re PR fortran/68227 (ICE on using variable limit in forall header (gfc_do_allocate))
2015-11-25 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/68227
* trans-stmt.c (gfc_do_allocate): Convert gcc_assert argument into
into part of conditional statement.
From-SVN: r230873
Ilmir Usmanov [Wed, 25 Nov 2015 14:37:36 +0000 (14:37 +0000)]
re PR fortran/63858 (fixed form OpenACC directive ICE with -fopenacc -fopenmp)
PR fortran/63858
gcc/fortran/
* scanner.c (skip_oacc_attribute): Remove continue_flag parameter.
Rename as ...
(skip_free_oacc_sentinel): ... this.
(skip_omp_attribute): Remove continue_flag parameter. Rename as ...
(skip_free_omp_sentinel): ... this.
(skip_free_comments): Update to call skip_free_oacc_sentinel and
skip_free_omp_sentinel.
(skip_fixed_omp_sentinel): New function.
(skip_fixed_oacc_sentinel): New function.
(skip_fixed_comments): Fix mix of OpenACC and OpenMP sentinels in
continuation.
gcc/testsuite/
* goacc/omp-fixed.f: New test.
* goacc/omp.f95: Add check for mis-matched omp and acc continuations.
Co-Authored-By: Cesar Philippidis <cesar@codesourcery.com>
From-SVN: r230872
Jason Merrill [Wed, 25 Nov 2015 14:35:24 +0000 (09:35 -0500)]
re PR c++/68385 (ICE building libstdc++ on arm-none-eabi)
PR c++/68385
* tree.c (integer_zerop, integer_onep, integer_each_onep)
(integer_all_onesp, integer_minus_onep, integer_pow2p)
(integer_nonzerop, integer_truep, tree_log2, tree_floor_log2)
(real_zerop, real_onep, real_minus_onep): Remove STRIP_NOPS.
From-SVN: r230871
Richard Biener [Wed, 25 Nov 2015 14:21:25 +0000 (14:21 +0000)]
re PR middle-end/68528 ([5 Only] Wrong constant folding)
2015-11-25 Richard Biener <rguenther@suse.de>
PR middle-end/68528
* fold-const.c (fold_binary_loc): Do not call negate_expr_p
on stripped operands.
* gcc.dg/torture/pr68528.c: New testcase.
From-SVN: r230870
Nathan Sidwell [Wed, 25 Nov 2015 14:03:44 +0000 (14:03 +0000)]
nvptx.c (walk_args_for_params): Delete.
* config/nvptx/nvptx.c (walk_args_for_params): Delete.
(nvptx_declare_function_name): Move assignments next to register
declarations, and process params here.
From-SVN: r230869
Jonathan Wakely [Wed, 25 Nov 2015 13:49:06 +0000 (13:49 +0000)]
Improve tests for valid values of iostream bitmask types
* testsuite/27_io/ios_base/types/fmtflags/case_label.cc: Explicitly
check minimum and maximum values, and size of underlying type.
* testsuite/27_io/ios_base/types/iostate/case_label.cc: Likewise.
* testsuite/27_io/ios_base/types/openmode/case_label.cc: Likewise.
From-SVN: r230868
David Edelsohn [Wed, 25 Nov 2015 12:52:50 +0000 (12:52 +0000)]
rs6000.c (rs6000_declare_alias): Rename and globalize both the symbol and the "dot" symbol for function descriptors.
* config/rs6000/rs6000.c (rs6000_declare_alias): Rename and globalize
both the symbol and the "dot" symbol for function descriptors. Fix
inversion for rename of symbols with dollar sign.
From-SVN: r230867
Tom de Vries [Wed, 25 Nov 2015 11:28:49 +0000 (11:28 +0000)]
Improve verification of loop->latch in verify_loop_structure
2015-11-25 Tom de Vries <tom@codesourcery.com>
* cfgloop.c (find_single_latch): New function, factored out of ...
(flow_loops_find): ... here.
(verify_loop_structure): Improve verification of loop->latch.
* cfgloop.h (find_single_latch): Declare.
* omp-low.c (expand_omp_for_generic): Initialize latch of orig_loop.
From-SVN: r230866
Rainer Orth [Wed, 25 Nov 2015 10:30:25 +0000 (10:30 +0000)]
Port libvtv to Solaris
libstdc++-v3:
* acinclude.m4 (GLIBCXX_ENABLE_VTABLE_VERIFY) <solaris2*>: Use
-Wl,-R in VTV_CXXLINKFLAGS.
* configure: Regenerate.
* testsuite/18_support/bad_exception/23591_thread-1.c: Use
-fvtable-verify=none on Solaris 12+.
libgcc:
* Makefile.in (VTV_CFLAGS): New variable.
(vtv_start$(objext), vtv_end$(objext), vtv_end$(objext))
(vtv_start_preinit$(objext), vtv_end_preinit$(objext)): Use it.
* config.host (*-*-solaris2*): Add t-crtstuff-pic to tmake_file.
Add vtv_start.o, vtv_end.o, vtv_start_preinit.o, vtv_end_preinit.o
to extra_parts if $enable_vtable_verify = yes.
libvtv:
* configure.tgt (*-*-solaris2.[1-9]*): Declare supported.
* configure.ac: Call AC_USE_SYSTEM_EXTENSIONS.
<*-*-solaris2*>: Check for init priority support.
Check for getexecname, __fortify_fail, _obstack_begin.
(VTV_NO_OBSTACK): New conditional.
* configure: Regenerate.
* Makefile.am [VTV_NO_OBSTACK] (obstack.c): Use new condition.
Create empty config.h
* Makefile.in: Regenerate.
* vtv_rts.cc [HAVE_GETEXECNAME] (program_invocation_name): New
variable.
(read_section_offset_and_length) [HAVE_GETEXECNAME]: Set it.
(dl_iterate_phdr_callback) [HAVE_GETEXECNAME]: Set it.
(__fortify_fail): Wrap in HAVE___FORTIFY_FAIL
[!HAVE___FORTIFY_FAIL]: Provide non-Cygwin implementation.
(read_section_offset_and_length): Assert sh_size >= VTV_PAGE_SIZE.
(iterate_modules): Fix typo.
Use VTV_PAGE_SIZE.
(dl_iterate_phdr_callback): Fix typo.
Use VTV_PAGE_SIZE.
(__VLTChangePermission): Fix typos.
include:
* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
__sparc__]: Define.
gcc:
* config/sol2.h (SUPPORTS_INIT_PRIORITY): Move up.
(STARTFILE_VTV_SPEC, ENDFILE_VTV_SPEC): Define.
(STARTFILE_SPEC): Use %(startfile_vtv).
(ENDFILE_SPEC): Use %(endfile_vtv).
(SUBTARGET_EXTRA_SPECS): Handle STARTFILE_VTV_SPEC,
ENDFILE_VTV_SPEC.
* gcc.c (LINK_COMMAND_SPEC): Move VTABLE_VERIFICATION_SPEC after %{L*}.
From-SVN: r230865
Bernd Schmidt [Wed, 25 Nov 2015 10:23:28 +0000 (10:23 +0000)]
Remove broken ifcvt code for speculating memory writes
* ifcvt.c (noce_mem_write_may_trap_or_fault_p,
noce_can_store_speculate): Delete.
(noce_process_if_block): Don't try to handle single MEM stores.
* rtl.h (memory_must_be_modified_in_insn_p): Don't declare.
* alias.c (memory_must_be_modified_in_insn_p): Delete.
From-SVN: r230864
Paolo Carlini [Wed, 25 Nov 2015 10:00:02 +0000 (10:00 +0000)]
re PR c++/58910 (std::Tuple_impl is non constexpr when using identical userdefined structs as template-args)
2015-11-25 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/58910
* g++.dg/cpp0x/constexpr-tuple2.C: New.
From-SVN: r230860
Kyrylo Tkachov [Wed, 25 Nov 2015 09:48:29 +0000 (09:48 +0000)]
[RTL-ifcvt] PR rtl-optimization/68435 Allow (c ? x++ : x--) form
PR rtl-optimization/68435
* ifcvt.c (noce_try_cmove_arith): Skip final insn when checking
for conflicts between a, b and the set destinations.
* gcc.dg/pr68435.c: New test.
From-SVN: r230859
Richard Biener [Wed, 25 Nov 2015 09:22:47 +0000 (09:22 +0000)]
re PR tree-optimization/68517 (ICE in tree-vect-data-refs.c:2751)
2015-11-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/68517
* tree-vect-data-refs.c (vect_analyze_data_ref_accesses):
Properly handle zero-sized types.
* gcc.dg/torture/pr68517.c: New testcase.
From-SVN: r230858
Jan Hubicka [Wed, 25 Nov 2015 09:08:20 +0000 (10:08 +0100)]
ipa-inline-analysis.c: Include gimplify.h (set_cond_stmt_execution_predicate...
* ipa-inline-analysis.c: Include gimplify.h
(set_cond_stmt_execution_predicate,
set_switch_stmt_execution_predicate): Be sure to not leak locations
to function body.
From-SVN: r230857
Jakub Jelinek [Wed, 25 Nov 2015 08:58:32 +0000 (09:58 +0100)]
re PR target/67089 (Integer overflow checks not optimized on x86/x86_64)
PR target/67089
* tree-ssa-math-opts.c (uaddsub_overflow_check_p,
match_uaddsub_overflow): New functions.
(pass_optimize_widening_mul::execute): Call match_uaddsub_overflow.
* gcc.dg/pr67089-1.c: New test.
* gcc.dg/pr67089-2.c: New test.
* gcc.dg/pr67089-3.c: New test.
* gcc.dg/pr67089-4.c: New test.
* gcc.dg/pr67089-5.c: New test.
* gcc.dg/pr67089-6.c: New test.
* gcc.dg/pr67089-7.c: New test.
From-SVN: r230856
Richard Biener [Wed, 25 Nov 2015 08:53:22 +0000 (08:53 +0000)]
re PR tree-optimization/68492 (internal compiler error: in vect_is_simple_use, at tree-vect-stmts.c:8266)
2015-11-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/68492
* tree-vect-slp.c (vect_build_slp_tree): Consistently build up
op from scalars after operand swapping.
From-SVN: r230855
Richard Biener [Wed, 25 Nov 2015 08:46:34 +0000 (08:46 +0000)]
re PR tree-optimization/68502 ([i686] spec2000/179.art runfails after r222914)
2015-11-25 Richard Biener <rguenther@suse.de>
PR tree-optimization/68502
* tree-vect-data-refs.c (vect_analyze_group_access_1): Restore
check that the step is a multiple of the type size.
* gcc.dg/vect/pr68502-1.c: New testcase.
* gcc.dg/vect/pr68502-2.c: Likewise.
From-SVN: r230854
Michael Collison [Wed, 25 Nov 2015 06:51:55 +0000 (06:51 +0000)]
2015-11-24 Michael Collison <michael.collison@linaro.org>
* config/aarch64/aarch64-simd.md (widen_ssum, widen_usum)
(aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): New patterns
* config/aarch64/iterators.md (Vhalf, VDBLW): New mode attributes.
* gcc.target/aarch64/saddw-1.c: New test.
* gcc.target/aarch64/saddw-2.c: New test.
* gcc.target/aarch64/uaddw-1.c: New test.
* gcc.target/aarch64/uaddw-2.c: New test.
* gcc.target/aarch64/uaddw-3.c: New test.
* lib/target-support.exp
(check_effective_target_vect_widen_sum_hi_to_si_pattern):
Add aarch64 to list of support targets.
From-SVN: r230853
GCC Administrator [Wed, 25 Nov 2015 00:16:11 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r230850
Steve Ellcey [Tue, 24 Nov 2015 22:12:25 +0000 (22:12 +0000)]
Fix typos from last checkin.
From-SVN: r230847
Steve Ellcey [Tue, 24 Nov 2015 22:11:27 +0000 (22:11 +0000)]
frame-header-4.c: New test.
2015-11-24 Steve Ellcey <sellcey@imgtec.com>
* gcc.target/mips/frame-header-4.c: New test.
From-SVN: r230846
Steve Ellcey [Tue, 24 Nov 2015 22:09:17 +0000 (22:09 +0000)]
frame-header-opt.c (gate): Check for optimize > 0.
2015-11-24 Steve Ellcey <sellcey@imgtec.com>
* frame-header-opt.c (gate): Check for optimize > 0.
(has_inlined_assembly): New function.
(needs_frame_header_p): Remove is_leaf_function check,
add argument type check.
(callees_functions_use_frame_header): Add is_leaf_function
and has_inlined_assembly calls..
(set_callers_may_not_allocate_frame): New function.
(frame_header_opt): Add is_leaf_function call, add
set_callers_may_not_allocate_frame call.
* config/mips/mips.c (mips_compute_frame_info): Add check
to see if callee saved regs can be put in frame header.
(mips_expand_prologue): Add check to see if step1 is zero,
fix cfa restores when using frame header to store regs.
(mips_can_use_return_insn): Check to see if registers are
stored in frame header.
* config/mips/mips.h (machine_function): Add
callers_may_not_allocate_frame and
use_frame_header_for_callee_saved_regs fields.
From-SVN: r230845
Segher Boessenkool [Tue, 24 Nov 2015 21:23:25 +0000 (22:23 +0100)]
shrink-wrap: Fix thinko (PR68520)
Part of the shrink-wrapping algorithm has this comment:
/* Now see if we can put the prologue at the start of PRO. Putting it
there might require duplicating a block that cannot be duplicated,
or in some cases we cannot insert the prologue there at all. If PRO
wont't do, try again with the immediate dominator of PRO, and so on.
The blocks that need duplicating are those reachable from PRO but
not dominated by it. We keep in BB_WITH a bitmap of the blocks
reachable from PRO that we already found, and in VEC a stack of
those we still need to consider (to find successors). */
Two of the cases that push to that stack do not actually check the
bitmap first. Either I thought those blocks could not be on the stack
already, or more likely I didn't think and it just didn't crash during
any testing. But of course those blocks *can* already be on the stack
(if you have a hideous loop structure), and then we end up with the
same block on the stack more than once. This is harmless, except that
(like in the PR) this can overflow the stack.
This fixes it, by doing the necessary bitmap checks before pushing.
PR rtl-optimization/68520
* shrink-wrap.c (try_shrink_wrapping): Don't push a block to VEC if
its bit was already set in BB_WITH.
From-SVN: r230843
Ilya Verbin [Tue, 24 Nov 2015 21:04:47 +0000 (21:04 +0000)]
c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING" with "if (ENABLE_OFFLOADING)".
gcc/c/
* c-parser.c (c_parser_oacc_declare): Replace "ifdef ENABLE_OFFLOADING"
with "if (ENABLE_OFFLOADING)".
gcc/cp/
* parser.c (cp_parser_oacc_declare): replace "ifdef enable_offloading"
with "if (enable_offloading)".
From-SVN: r230842
Jan Hubicka [Tue, 24 Nov 2015 20:35:16 +0000 (21:35 +0100)]
alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P double check that type is main variant.
* alias.c (get_alias_set): Before checking TYPE_ALIAS_SET_KNOWN_P
double check that type is main variant.
* tree.c (build_variant_type_copy): Clear TYPE_ALIAS_SET when producing
variant.
(verify_type_variant): Verify that variants have no
TYPE_ALIAS_SET_KNOWN_P set
* tree-streamer-out.c (pack_ts_type_common_value_fields): Reorder
streaming so constant fields come first; stream TYPE_ALIAS_SET==0
only for main variants; stream TYPE_ALIAS_SET as a bit.
* tree-streamer-in.c (unpack_ts_type_common_value_fields): Update
accordingly.
From-SVN: r230838
Jan Hubicka [Tue, 24 Nov 2015 20:26:48 +0000 (21:26 +0100)]
tree.c (make_vector_type): Properly compute canonical type of the main variant.
* tree.c (make_vector_type): Properly compute canonical type of the
main variant.
(verify_type): Verify that TYPE_CANONICAL of TYPE_MAIN_VARIANT is
a main variant.
From-SVN: r230837
Nathan Sidwell [Tue, 24 Nov 2015 20:15:44 +0000 (20:15 +0000)]
nvptx.c (maybe_split_mode): Return new mode or VOIDmode, don't alter incoming mode.
* config/nvptx/nvptx.c (maybe_split_mode): Return new mode or
VOIDmode, don't alter incoming mode.
(nvptx_split_reg_p): Delete.
(write_one_arg, walk_args_for_param, nvptx_declare_function_name,
write_func_decl_from_insn, nvptx_output_call_insn): Adjust
maybe_split_mode calls.
(nvptx_print_operand): Use maybe_split_mode.
From-SVN: r230836
Jan Hubicka [Tue, 24 Nov 2015 19:35:38 +0000 (20:35 +0100)]
lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL only for types where LTO sets them.
* lto-streamer-in.c (lto_read_body_or_constructor): Set TYPE_CANONICAL
only for types where LTO sets them.
* tree.c (build_array_type_1): Do ont set TYPE_CANONICAL for LTO.
(make_vector_type): Likewise.
(gimple_canonical_types_compatible_p): Use canonical_type_used_p.
* tree.h (canonical_type_used_p): New inline.
* alias.c (get_alias_set): Handle structural equality for all
types that pass canonical_type_used_p.
(record_component_aliases): Look through all types with
record_component_aliases for possible pointers; sanity check that
the alias sets match.
* lto.c (iterative_hash_canonical_type): Recruse for all types
which pass !canonical_type_used_p.
(gimple_register_canonical_type_1): Sanity check we do not compute
canonical type of anything with !canonical_type_used_p.
(gimple_register_canonical_type): Skip all types that are
!canonical_type_used_p
From-SVN: r230835
Michael Meissner [Tue, 24 Nov 2015 19:16:18 +0000 (19:16 +0000)]
rs6000.md (lround<mode>di2): Remove constraints.
2015-11-24 Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.md (lround<mode>di2): Remove constraints.
From-SVN: r230834
Jan Hubicka [Tue, 24 Nov 2015 19:04:04 +0000 (20:04 +0100)]
tree.c (free_node): New function.
* tree.c (free_node): New function.
(type_hash_canon): Use it.
* tree.h (free_node): Declare.
* lto.c (unify_scc): Use free_node.
From-SVN: r230833
Steven G. Kargl [Tue, 24 Nov 2015 18:58:28 +0000 (18:58 +0000)]
re PR fortran/68486 (187.facerec in SPEC CPU 2000 failed to build)
2015-11-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/68486
* simplify.c (gfc_simplify_cshift): Allow all EXPR_*.
2015-11-24 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/68486
* gfortran.dg/simplify_cshift_3.f90
From-SVN: r230832
Michael Meissner [Tue, 24 Nov 2015 18:54:34 +0000 (18:54 +0000)]
fix ChangeLog
From-SVN: r230831
Michael Meissner [Tue, 24 Nov 2015 18:47:49 +0000 (18:47 +0000)]
fix ChangeLog
From-SVN: r230830
David Edelsohn [Tue, 24 Nov 2015 18:46:07 +0000 (18:46 +0000)]
rs6000.md (UNSPEC_XSRDPI): New unspec.
2015-11-24 David Edelsohn <dje.gcc@gmail.com>
Michael Meissner <meissner@linux.vnet.ibm.com>
* config/rs6000/rs6000.md (UNSPEC_XSRDPI): New unspec.
(Fv2): New mode attribute to be used when ISA 2.06 instructions
are used on SF/DF values.
(abs<mode>2_fpr): Use <Fv2> instead of <Fv>.
(nabs<mode>2_fpr): Likewise.
(neg<mode>2_fpr): Likewise.
(copysign<mode>3_fcpsgn): Likewise.
(smax<mode>3_vsx): Likewise.
(smin<mode>3_vsx): Likewise.
(floatsi<mode>2_lfiwax): Likewise.
(floatunssi<mode>2_lfiwz): Likewise.
(fctiwz_<mode>): Likewise.
(fctiwuz_<mode>): Likewise.
(btrunc<mode>2): Likewise.
(ceil<mode>2): Likewise.
(floor<mode>2): Likewise.
(xsrdpi<mode>): Add support for the lround function.
(lround<mode>2): Likewise.
Co-Authored-By: Michael Meissner <meissner@linux.vnet.ibm.com>
From-SVN: r230829
Paolo Carlini [Tue, 24 Nov 2015 18:30:02 +0000 (18:30 +0000)]
re PR c++/68278 (internal compiler error with C++14 polymorphic lambda and type alias)
2015-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68278
* g++.dg/cpp1y/pr68278.C: New.
From-SVN: r230828
Paolo Carlini [Tue, 24 Nov 2015 18:16:26 +0000 (18:16 +0000)]
re PR c++/68388 (incomplete type bug when using decltype)
2015-11-24 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/68388
* g++.dg/cpp1y/pr68388.C: New.
From-SVN: r230827
Aditya Kumar [Tue, 24 Nov 2015 18:00:52 +0000 (18:00 +0000)]
fix PR67984: check for constants in rename map
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230826
Aditya Kumar [Tue, 24 Nov 2015 17:57:45 +0000 (17:57 +0000)]
move all declarations to a same .h file
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230825
Pierre-Marie de Rodat [Tue, 24 Nov 2015 16:59:43 +0000 (16:59 +0000)]
DWARF: materialize subprogram renamings in Ada as imported declarations
... so that debugger users can reference them instead of the renamed
subprograms. This is in accordance with the DWARF specification: the
section 3.2.3 (Imported (or Renamed) Declaration Entities) allows
DW_TAG_imported_declaration DIEs to be used "as a general means to
rename or provide an alias for an entity regardless of the context in
which the importing declaration or the imported entity occur." (wording
from the DWARFv3 and DWARFv4 specifications, allowed in DWARFv2).
gcc/ada/ChangeLog:
* gcc-interface/utils.c (gnat_write_global_declarations): Output
debugging information for top-level imported declarations.
gcc/ChangeLog:
* dwarf2out.c (gen_decl_die): Generate DW_TAG_imported_* instead
of DW_TAG_namespace for IMPORTED_DECL declarations. Call
dwarf2out_imported_module_or_decl_1 for all DWARF versions as
this function already takes care of checking what it can emit.
Bootstrapped, regtested and checked with GDB's testsuite on
x86_64-linux.
From-SVN: r230821
Szabolcs Nagy [Tue, 24 Nov 2015 16:06:30 +0000 (16:06 +0000)]
[AArch64] Documentation fix for -fpic
gcc/
* doc/invoke.texi (-fpic): Add the AArch64 limit.
(-fPIC): Add AArch64.
From-SVN: r230819
Michael Matz [Tue, 24 Nov 2015 16:00:51 +0000 (16:00 +0000)]
re PR rtl-optimization/68392 (ICE: SIGSEGV in update_uses (fwprop.c:896) with -fno-checking)
PR rtl-optimization/68392
* g++.dg/pr68392.C: New test.
From-SVN: r230818
Tom de Vries [Tue, 24 Nov 2015 14:47:55 +0000 (14:47 +0000)]
Allow pass_lim to run outside pass_tree_loop
2015-11-24 Tom de Vries <tom@codesourcery.com>
* tree-ssa-loop-im.c (tree_ssa_lim): Make static.
(pass_lim::execute): Allow to run outside pass_tree_loop.
From-SVN: r230815
Wilco Dijkstra [Tue, 24 Nov 2015 14:46:05 +0000 (14:46 +0000)]
[PATCH][AArch64] Improve add immediate expansion
gcc/
* gcc/config/aarch64/aarch64.md (add<mode>3):
Block early expansion into 2 add instructions.
(add<mode>3_pluslong): New pattern to combine complex
immediates into 2 additions.
From-SVN: r230814
Segher Boessenkool [Tue, 24 Nov 2015 14:04:11 +0000 (15:04 +0100)]
rs6000: Fix for and_operand oversight (PR68332, PR67677)
Calling rs6000_is_valid_and_mask on a reg instead of on a const_int is
not a good idea, as PR68332 and PR67677 as well as testing with
--enable-checking=yes,rtl show. Fix this.
PR target/66217
PR target/67677
PR target/68332
* config/rs6000/predicates.md (and_operand): Check that the operand
is a const_int before calling rs6000_is_valid_and_mask.
From-SVN: r230811
Nathan Sidwell [Tue, 24 Nov 2015 13:53:31 +0000 (13:53 +0000)]
* gcc.dg/sso/dump.h: Force IO to be putchar function call on nvptx.
From-SVN: r230810
Kyrylo Tkachov [Tue, 24 Nov 2015 13:35:56 +0000 (13:35 +0000)]
Testcase for PR rtl-optimization/68381
PR rtl-optimization/68381
* gcc.c-torture/execute/pr68381.c: New test.
From-SVN: r230809
Rainer Orth [Tue, 24 Nov 2015 13:15:43 +0000 (13:15 +0000)]
Handle C++11 <math.h> overloads on Solaris 12
* acinclude.m4 (GLIBCXX_CHECK_MATH11_PROTO): New test.
* configure.ac: Use it.
* configure: Regenerate.
* config.h.in: Regenerate.
* include/c_global/cmath [__cplusplus >= 201103L]
(std::fpclassify): Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
(std::isfinite): Likewise.
(std::isinf): Likewise.
(std::isnan): Likewise.
(std::isnormal): Likewise.
(std::signbit): Likewise.
(std::isgreater): Likewise.
(std::isgreaterequal): Likewise.
(std::isless): Likewise.
(std::islessequal): Likewise.
(std::islessgreater): Likewise.
(std::isunordered): Likewise.
(std::acosh): Likewise.
(std::asinh): Likewise.
(std::atanh): Likewise.
(std::cbrt): Likewise.
(std::copysign): Likewise.
(std::erf): Likewise.
(std::erfc): Likewise.
(std::exp2): Likewise.
(std::expm1): Likewise.
(std::fdim): Likewise.
(std::fma): Likewise.
(std::fmax): Likewise.
(std::fmin): Likewise.
(std::hypot): Likewise.
(std::ilogb): Likewise.
(std::lgamma): Likewise.
(std::llrint): Likewise.
(std::llround): Likewise.
(std::log1p): Likewise.
(std::log2): Likewise.
(std::logb): Likewise.
(std::lrint): Likewise.
(std::lround): Likewise.
(std::nearbyint): Likewise.
(std::nextafter): Likewise.
(std::nexttoward): Likewise.
(std::remainder): Likewise.
(std::remquo): Likewise.
(std::rint): Likewise.
(std::round): Likewise.
(std::scalbln): Likewise.
(std::scalbn): Likewise.
(std::tgamma): Likewise.
(std::trunc): Likewise.
* include/tr1/cmath [_GLIBCXX_USE_C99_MATH_TR1] (std::tr1::acosh):
Wrap in !__CORRECT_ISO_CPP11_MATH_H_PROTO.
(std::tr1::asinh): Likewise.
(std::tr1::atanh): Likewise.
(std::tr1::cbrt): Likewise.
(std::tr1::copysign): Likewise.
(std::tr1::erf): Likewise.
(std::tr1::erfc): Likewise.
(std::tr1::exp2): Likewise.
(std::tr1::expm1): Likewise.
(std::tr1::fabs): Likewise.
(std::tr1::fdim): Likewise.
(std::tr1::fma): Likewise.
(std::tr1::fmax): Likewise.
(std::tr1::fmin): Likewise.
(std::tr1::hypot): Likewise.
(std::tr1::ilogb): Likewise.
(std::tr1::lgamma): Likewise.
(std::tr1::llrint): Likewise.
(std::tr1::llround): Likewise.
(std::tr1::log1p): Likewise.
(std::tr1::log2): Likewise.
(std::tr1::logb): Likewise.
(std::tr1::lrint): Likewise.
(std::tr1::lround): Likewise.
(std::tr1::nearbyint): Likewise.
(std::tr1::nextafter): Likewise.
(std::tr1::nexttoward): Likewise.
(std::tr1::remainder): Likewise.
(std::tr1::remquo): Likewise.
(std::tr1::rint): Likewise.
(std::tr1::scalbln): Likewise.
(std::tr1::scalbn): Likewise.
(std::tr1::tgamma): Likewise.
(std::tr1::trunc): Likewise.
(std::tr1::pow): Likewise.
* testsuite/26_numerics/headers/cmath/c99_classification_macros_c.cc:
Restrict dg-xfail-if, dg-excess-errors to *-*-solaris2.1[01]*.
From-SVN: r230807
Kyrylo Tkachov [Tue, 24 Nov 2015 13:08:56 +0000 (13:08 +0000)]
[AArch64][v2] Improve comparison with complex immediates followed by branch/cset
* config/aarch64/aarch64.md (*condjump): Rename to...
(condjump): ... This.
(*compare_condjump<mode>): New define_insn_and_split.
(*compare_cstore<mode>_insn): Likewise.
(*cstore<mode>_insn): Rename to...
(cstore<mode>_insn): ... This.
* config/aarch64/iterators.md (CMP): Handle ne code.
* config/aarch64/predicates.md (aarch64_imm24): New predicate.
* gcc.target/aarch64/cmpimm_branch_1.c: New test.
* gcc.target/aarch64/cmpimm_cset_1.c: Likewise.
From-SVN: r230805
Max Ostapenko [Tue, 24 Nov 2015 12:24:46 +0000 (14:24 +0200)]
Move ptrace.h to appropriate place.
libsanitizer/
* include/system/linux/asm/ptrace.h: Move to ...
* include/system/asm/ptrace.h: ... this.
From-SVN: r230804
Mikhail Maltsev [Tue, 24 Nov 2015 12:18:21 +0000 (12:18 +0000)]
Fix PR68497 (ICE with -fno-checking)
gcc/
PR target/68497
* config/i386/i386.c (output_387_binary_op): Fix assertion for
-fno-checking case.
gcc/testsuite/
PR target/68497
* gcc.target/i386/pr68497.c: New test.
From-SVN: r230803
Trevor Saunders [Tue, 24 Nov 2015 11:46:18 +0000 (11:46 +0000)]
remove val_ssa_equiv_hash_traits
gcc/ChangeLog:
2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* tree-ssa-uncprop.c (struct val_ssa_equiv_hash_traits): Remove.
(val_ssa_equiv_hash_traits::remove): Likewise.
(pass_uncprop::execute): Adjust.
From-SVN: r230802
Trevor Saunders [Tue, 24 Nov 2015 11:46:10 +0000 (11:46 +0000)]
destroy values as well as keys when removing them from hash maps
gcc/ChangeLog:
2015-11-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* hash-map-traits.h (simple_hashmap_traits ::remove): call
destructors on values that are being removed.
* mem-stats.h (hash_map): Pass type of values to
simple_hashmap_traits.
* tree-sra.c (sra_deinitialize): Remove work around for hash
maps not destructing values.
* genmatch.c (sinfo_hashmap_traits): Adjust.
* tree-ssa-uncprop.c (val_ssa_equiv_hash_traits): Likewise.
From-SVN: r230801
Bilyan Borisov [Tue, 24 Nov 2015 11:22:48 +0000 (11:22 +0000)]
[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out of...
[AARCH64][PATCH 3/3] Adding tests to check proper error reporting of out
of bounds accesses to vmulx_lane* NEON intrinsics
gcc/testsuite/
* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulx_lane_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulx_laneq_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxd_lane_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxd_laneq_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_lane_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxq_laneq_f64_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxs_lane_f32_indices_1.c:
New.
* gcc.target/aarch64/advsimd-intrinsics/vmulxs_laneq_f32_indices_1.c:
New.
From-SVN: r230800
Kyrylo Tkachov [Tue, 24 Nov 2015 11:03:51 +0000 (11:03 +0000)]
[cfgloop] PR middle-end/68375: Restructure get_loop_body_in_bfs_order to handle loops with only a header
PR middle-end/68375
* cfgloop.c (get_loop_body_in_bfs_order): Restructure loop to avoid
bogus assertion.
* gcc.dg/pr68375.c: New test.
From-SVN: r230798
Jakub Jelinek [Tue, 24 Nov 2015 10:45:52 +0000 (11:45 +0100)]
re PR target/68483 (gcc 5.2: suboptimal code compared to 4.9)
PR target/68483
* tree-vect-generic.c (lower_vec_perm): If VEC_PERM_EXPR
is valid vec_shr pattern, don't lower it even if can_vec_perm_p
returns false.
* optabs.c (shift_amt_for_vec_perm_mask): Return NULL_RTX
whenever first is nelt or above. Don't mask expected with
2 * nelt - 1.
* gcc.target/i386/pr68483-1.c: New test.
* gcc.target/i386/pr68483-2.c: New test.
From-SVN: r230797
Ilya Enkovich [Tue, 24 Nov 2015 09:45:20 +0000 (09:45 +0000)]
re PR c/68337 ([MPX] memcpy() for arrays with function pointers results in huge resource usage and binaries)
gcc/
PR c/68337
* gimple-fold.c: Include ipa-chkp.h.
(gimple_fold_builtin_memory_op): Don't fold call if we
are going to instrument it and it may copy pointers.
gcc/testsuite/
PR c/68337
* gcc.target/i386/mpx/pr68337-1.c: New test.
* gcc.target/i386/mpx/pr68337-2.c: New test.
From-SVN: r230796
Kyrylo Tkachov [Tue, 24 Nov 2015 09:31:57 +0000 (09:31 +0000)]
[RTL-ree] PR rtl-optimization/68194: Restrict copy instruction in presence of conditional moves
PR rtl-optimization/68194
PR rtl-optimization/68328
PR rtl-optimization/68185
* ree.c (combine_reaching_defs): Reject copy_needed case if
copies_list is not empty.
* gcc.c-torture/execute/pr68185.c: New test.
* gcc.c-torture/execute/pr68328.c: Likewise.
From-SVN: r230795
Gary Dismukes [Tue, 24 Nov 2015 09:22:24 +0000 (09:22 +0000)]
sem_ch3.adb, [...]: Minor reformatting, rewording, and typo corrections.
2015-11-24 Gary Dismukes <dismukes@adacore.com>
* sem_ch3.adb, sem_type.adb, sem_ch7.adb, sem_ch9.adb, checks.adb,
sem_prag.adb, contracts.adb, g-strhas.ads, sem_ch6.adb: Minor
reformatting, rewording, and typo corrections.
From-SVN: r230794
Richard Biener [Tue, 24 Nov 2015 09:17:40 +0000 (09:17 +0000)]
re PR middle-end/68221 (libgomp reduction-11/12 failures)
2015-11-24 Richard Biener <rguenther@suse.de>
PR middle-end/68221
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Properly
use mem_ref_offset.
From-SVN: r230793
Eric Botcazou [Tue, 24 Nov 2015 09:00:45 +0000 (09:00 +0000)]
decl.c (gnat_to_gnu_entity): In ASIS mode, do a minimal translation for root types with discriminants.
* gcc-interface/decl.c (gnat_to_gnu_entity) <Concurrent types>: In
ASIS mode, do a minimal translation for root types with discriminants.
* gcc-interface/trans.c (gnat_to_gnu) <N_Subunit>: Move around.
<N_Entry_Body, N_Protected_Body, N_Task_Body>: Likewise. In ASIS mode,
process the declarations attached to the body.
From-SVN: r230792
Eric Botcazou [Tue, 24 Nov 2015 08:52:54 +0000 (08:52 +0000)]
trans.c (gnat_to_gnu): In type_annotate_only mode, do not build a NULL_EXPR for an N_Expanded_Name.
* gcc-interface/trans.c (gnat_to_gnu): In type_annotate_only mode, do
not build a NULL_EXPR for an N_Expanded_Name.
From-SVN: r230791
Max Ostapenko [Tue, 24 Nov 2015 08:44:39 +0000 (10:44 +0200)]
Fix libsanitizer build with old kernel headers on ARM after r230739.
libsanitizer/
* include/system/linux/asm/ptrace.h: New header.
From-SVN: r230790
Eric Botcazou [Tue, 24 Nov 2015 08:42:37 +0000 (08:42 +0000)]
decl.c (is_cplusplus_method): Check that the type of the first parameter (indirectly) has C++ convention too.
* gcc-interface/decl.c (is_cplusplus_method): Check that the type of
the first parameter (indirectly) has C++ convention too.
From-SVN: r230788
Segher Boessenkool [Tue, 24 Nov 2015 06:43:20 +0000 (07:43 +0100)]
combine: Handle aborts in is_parallel_of_n_reg_sets (PR68381)
Some users of is_parallel_of_n_reg_sets disregard the clobbers in a
parallel after it has returned "yes, this is a parallel of N sets and
maybe some clobbers". But combine uses a clobber of const0_rtx to
indicate substitution failure, so this leads to disaster.
Fix this by checking for such special clobbers in is_parallel_of_n_reg_sets.
PR rtl-optimization/68381
* combine.c (is_parallel_of_n_reg_sets): Return false if the pattern
is poisoned.
From-SVN: r230786
Nick Clifton [Tue, 24 Nov 2015 05:11:15 +0000 (05:11 +0000)]
[PATCH] Fix invalid redundant extension elimination for rl78 port
* ree.c (add_removable_extension): Avoid mis-optimizing cases where
the source/dest of the target extension require a different number of
hard registers.
(combine_set_extension): Remove #if 0 code.
Co-Authored-By: Jeff Law <law@redhat.com>
From-SVN: r230785
Jan Hubicka [Tue, 24 Nov 2015 03:58:47 +0000 (04:58 +0100)]
* gcc.c-torture/execute/lto-tbaa-1.c: New testcase.
From-SVN: r230784
GCC Administrator [Tue, 24 Nov 2015 00:16:13 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r230783
David Edelsohn [Tue, 24 Nov 2015 00:12:21 +0000 (19:12 -0500)]
Fix missing ChangeLog entry for Graphite head files fix.
From-SVN: r230780
Aditya Kumar [Mon, 23 Nov 2015 23:28:42 +0000 (23:28 +0000)]
fix PR68314: revert all patches touching the construction of the original schedule
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230778
Ian Lance Taylor [Mon, 23 Nov 2015 21:17:45 +0000 (21:17 +0000)]
re PR go/68496 ([libgo] reflect test fails on Linux x86-64)
PR go/68496
reflect: Allocate space for FFI functions returning a zero-sized type.
The libffi library does not understand zero-sized types. We represent
them as a struct with a single field of type void. If such a type is
returned from a function, libffi will copy 1 byte of data. Allocate
space for that byte, although we won't use it.
Fixes https://gcc.gnu.org/PR68496.
Reviewed-on: https://go-review.googlesource.com/17175
From-SVN: r230776
David Malcolm [Mon, 23 Nov 2015 21:00:13 +0000 (21:00 +0000)]
Fix PR objc/68438 (uninitialized source ranges)
gcc/c/ChangeLog:
PR objc/68438
* c-parser.c (c_parser_postfix_expression): Set up source ranges
for various Objective-C constructs: Class.name syntax,
@selector(), @protocol(), @encode(), and [] message syntax.
gcc/testsuite/ChangeLog:
PR objc/68438
* objc.dg/plugin: New subdirectory.
* objc.dg/plugin/diagnostic-test-expressions-1.m: New test file.
* objc.dg/plugin/plugin.exp: New file, based on
gcc.dg/plugin/plugin.exp.
From-SVN: r230775
Matthias Klose [Mon, 23 Nov 2015 20:27:57 +0000 (20:27 +0000)]
2015-11-23 Matthias Klose <doko@ubuntu.com>
* Imported zlib 1.2.8; merged local changes.
From-SVN: r230774
Aditya Kumar [Mon, 23 Nov 2015 19:31:00 +0000 (19:31 +0000)]
fix PR68493: bail out when codegen_error is set
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230772
Aditya Kumar [Mon, 23 Nov 2015 19:28:13 +0000 (19:28 +0000)]
fix PR68279: bail out when scev gets instantiated to not_known
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230771
Aditya Kumar [Mon, 23 Nov 2015 19:28:06 +0000 (19:28 +0000)]
call update_ssa once
Co-Authored-By: Sebastian Pop <s.pop@samsung.com>
From-SVN: r230770
Marek Polacek [Mon, 23 Nov 2015 17:18:36 +0000 (17:18 +0000)]
re PR tree-optimization/68455 (ICE: tree check: expected integer_cst, have plus_expr in decompose, at tree.h:5123)
PR tree-optimization/68455
* tree-vrp.c (extract_range_from_binary_expr_1): Don't call
extract_range_from_multiplicative_op_1 on symbolic ranges.
* gcc.dg/tree-ssa/pr68455.c: New test.
From-SVN: r230768
Richard Henderson [Mon, 23 Nov 2015 15:55:58 +0000 (07:55 -0800)]
Add uaddv4_optab and usubv4_optab
PR target/67089
* optabs.def (uaddv4_optab, usubv4_optab): New.
* internal-fn.c (expand_addsub_overflow): Use uaddv4_optab
and usubv4_optab in the u +- u -> u case.
* doc/md.texi (Standard Names): Document addv{m}4, subv{m}4,
mulv{m}4, uaddv{m}4, usubv{m}4, umulv{m}4.
* config/i386/i386.md (uaddv<SWI>4, usubv<SWI>4): New.
From-SVN: r230767
Richard Biener [Mon, 23 Nov 2015 15:21:32 +0000 (15:21 +0000)]
re PR tree-optimization/68465 (pass_lim doesn't detect identical loop entry conditions)
2015-11-23 Richard Biener <rguenther@suse.de>
PR tree-optimization/68465
* tree-ssa-sccvn.c (sccvn_dom_walker::before_dom_children):
Also record equalities from multiple predecessor blocks if
only one non-backedge exists.
* gcc.dg/tree-ssa/ssa-fre-52.c: New testcase.
From-SVN: r230764
Szabolcs Nagy [Mon, 23 Nov 2015 15:17:55 +0000 (15:17 +0000)]
[ARM] PR target/68059 libgcc should not use __write for printing fatal error
libgcc/
PR target/68059
* config/arm/linux-atomic-64bit.c (__write): Rename to...
(write): ...this and fix the return type.
From-SVN: r230762
Kyrylo Tkachov [Mon, 23 Nov 2015 14:56:03 +0000 (14:56 +0000)]
[AArch64] PR target/68363 Check that argument is real INSN in aarch64_madd_needs_nop
PR target/68363
* config/aarch64/aarch64.c (aarch64_madd_needs_nop): Reject arguments
that are not INSN_P.
* gcc.target/aarch64/pr68363_1.c: New test.
From-SVN: r230760
David Edelsohn [Mon, 23 Nov 2015 14:23:59 +0000 (09:23 -0500)]
Correct graphite*.c ISL header file inclusion order.
* system.h: Don't poison calloc and strdup if USES_ISL is defined.
* graphite-dependences.c: Define USES_ISL. Include ISL header files
after GCC header files and before graphite header files.
* graphite-dependences.c: Same.
* graphite-isl-ast-to-gimple.c: Same.
* graphite-optimize-isl.c: Same.
* graphite-poly.c: Same.
* graphite-scop-detection.c: Same.
* graphite-sese-to-poly.c: Same.
* graphite.c: Same.
From-SVN: r230759
Bilyan Borisov [Mon, 23 Nov 2015 14:23:20 +0000 (14:23 +0000)]
[AARCH64] Adding constant folding for __builtin_fmulx* with scalar 32 and 64 bit arguments
gcc/
* config/aarch64/aarch64-builtins.c (aarch64_gimple_fold_builtin): Added
constant folding.
gcc/testsuite/
* gcc.target/aarch64/simd/vmulx.x: New.
* gcc.target/aarch64/simd/vmulx_f64_2.c: Likewise.
* gcc.target/aarch64/simd/vmulxd_f64_2.c: Likewise.
* gcc.target/aarch64/simd/vmulxs_f32_2.c: Likewise.
From-SVN: r230758
Igor Zamyatin [Mon, 23 Nov 2015 12:58:12 +0000 (12:58 +0000)]
re PR c++/68001 ([cilkplus] ICE in cp_gimplify_expr, at cp/cp-gimplify.c:760)
PR c++/68001
gcc/c-family
PR c++/68001
* c-gimplify.c (c_gimplify_expr): Stop the process if see an error.
* cilk.c (recognize_spawn): Determine location in a more precise
way.
gcc/cp
* cp-gimplify.c (cp_gimplify_expr): Stop the process if see an error.
gcc/testsuite
* g++.dg/cilk-plus/CK/pr68001.cc: New test.
From-SVN: r230755
Jiong Wang [Mon, 23 Nov 2015 12:14:05 +0000 (12:14 +0000)]
[Patch] Drop constant overflow flag in adjust_range_with_scev when possible
2015-11-23 Richard Biener <rguenth@gcc.gnu.com>
Jiong Wang <jiong.wang@arm.com>
gcc/
PR tree-optimization/68317
PR tree-optimization/68326
* tree-vrp.c (adjust_range_with_scev): Call drop_tree_overflow if the
final min and max are not infinity.
gcc/testsuite/
* gcc.dg/pr68317.c: New testcase.
From-SVN: r230754
Olivier Hainque [Mon, 23 Nov 2015 11:31:24 +0000 (11:31 +0000)]
system-aix.ads: Add Frontend_Exceptions flag.
2015-11-23 Olivier Hainque <hainque@adacore.com>
* system-aix.ads: Add Frontend_Exceptions flag.
* system-aix64.ads: Likewise.
* system-darwin-ppc.ads: Likewise.
* system-darwin-ppc64.ads: Likewise.
* system-darwin-x86.ads: Likewise.
* system-darwin-x86_64.ads: Likewise.
* system-dragonfly-x86_64.ads: Likewise.
* system-freebsd-x86.ads: Likewise.
* system-freebsd-x86_64.ads: Likewise.
* system-hpux-ia64.ads: Likewise.
* system-hpux.ads: Likewise.
* system-linux-alpha.ads: Likewise.
* system-linux-armeb.ads: Likewise.
* system-linux-armel.ads: Likewise.
* system-linux-hppa.ads: Likewise.
* system-linux-ia64.ads: Likewise.
* system-linux-mips.ads: Likewise.
* system-linux-mips64el.ads: Likewise.
* system-linux-mipsel.ads: Likewise.
* system-linux-ppc.ads: Likewise.
* system-linux-ppc64.ads: Likewise.
* system-linux-s390.ads: Likewise.
* system-linux-s390x.ads: Likewise.
* system-linux-sh4.ads: Likewise.
* system-linux-sparc.ads: Likewise.
* system-linux-sparcv9.ads: Likewise.
* system-linux-x86.ads: Likewise.
* system-linux-x86_64.ads: Likewise.
* system-mingw-x86_64.ads: Likewise.
* system-mingw.ads: Likewise.
* system-rtems.ads: Likewise.
* system-solaris-sparc.ads: Likewise.
* system-solaris-sparcv9.ads: Likewise.
* system-solaris-x86.ads: Likewise.
* system-solaris-x86_64.ads: Likewise.
* system-vxworks-arm.ads: Likewise.
* system-vxworks-m68k.ads: Likewise.
* system-vxworks-mips.ads: Likewise.
* system-vxworks-ppc.ads: Likewise.
* system-vxworks-sparcv9.ads: Likewise.
* system-vxworks-x86.ads: Likewise.
* system.ads: Likewise.
From-SVN: r230753
Olivier Hainque [Mon, 23 Nov 2015 11:20:34 +0000 (11:20 +0000)]
opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ, Back_End_SJLJ and Back_End_ZCX.
2015-11-23 Olivier Hainque <hainque@adacore.com>
Eric Botcazou <botcazou@adacore.com>
* opt.ads (Exception_Mechanism): Now three values: Front_End_SJLJ,
Back_End_SJLJ and Back_End_ZCX.
(Back_End_Exceptions, Front_End_Exceptions, ZCX_Exceptions,
SJLJ_Exceptions): New functions, reflecting properties of the current
Exception_Mechanism.
* opt.adb: Implement the new functions.
* fe.h: Bind the new Exception_Mechanism and helper functions for gigi.
* exp_ch11.adb (Expand_At_End_Handler): Replace test on mechanism by
use of property helper and update comments.
(Expand_Exception_Handlers): Replace tests on mechanism by use of
helper. Restrict Abort_Defer to ZCX specifically.
* exp_ch9.adb (Expand_N_Asynchronous_Select): Replace tests on
mechanism by calls to helper functions. Abort_Undefer for ZCX only,
paired with Expand_Exception_Handlers.
* exp_sel.adb (Build_Abort_Block_Handler): Replace tests on mechanism
by calls to helper functions. Abort_Undefer for ZCX only, paired with
Expand_Exception_Handlers.
* lib-writ.ads (P line documentation): Add entry for "FX",
representative of unit compiled with Frontend_Exceptions True.
* lib-writ.adb (Output_Main_Program_Line): Add "FX" on P line if
compiled with Frontend_Exceptions True.
* ali.ads (ALIs_Record): Ada a Frontend_Exceptions component, to reflect
whether the ALI file contained an "FX" indication on the P line.
(Frontend_Exceptions_Specified): New boolean, to keep track of whether
at least an FX ALI file is in the closure.
* ali.adb (Scan_ALI): Handle "FX" on the P line.
(Initialize_ALI): Initialize Frontend_Exceptions_Specified to False.
* targparm.ads: Update desription of exception schemes.
(Frontend_Exceptions_On_Target): New flag, reflect Frontend_Exceptions
set to True in system.ads, or not set at all.
* targparm.adb (Targparm_Tags): Add FEX to convey Frontend_Exceptions.
Rename ZCD to ZCX for consistency.
(FEX_Str, Targparm_Str, Get_Target_Parameters): Adjust accordingly.
* gnat1drv.adb (Adjust_Global_Switches): Adjust Exception_Mechanism
setting, now from combination of Frontend_Exceptions and ZCX_By_Default.
* bcheck.adb (Check_Consistent_Zero_Cost_Exception_Handling): Rename
as ...
(Check_Consistent_Exception_Handling): Check consistency of both
ZCX_By_Default and Frontend_Exceptions.
(Check_Configuration_Consistency): Check_Consistent_Exception_Handling
if either flag was set at least once.
* make.adb (Check): Remove processing of a possible -fsjlj coming from
lang-specs.h.
* gnatlink.adb (Gnatlin): Likewise.
* gcc-interface/Makefile.in (gnatlib-sjlj/zcx): Now set
both ZCX_By_Default and Frontend_Exceptions.
* gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable):
Use eh property helper to test for back-end exceptions. Adjust
mechanism name when testing for front-end sjlj.
(case E_Procedure): Likewise.
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu):
Likewise, and rename local variables.
(Exception_Handler_to_gnu_sjlj): Rename as
Exception_Handler_to_gnu_fe_sjlj.
(Exception_Handler_to_gnu_zcx): Rename as
Exception_Handler_to_gnu_gcc and adjust tests on eh mechanisms
to use property helpers or correct mechanism name.
Co-Authored-By: Eric Botcazou <ebotcazou@adacore.com>
From-SVN: r230752
Joseph Myers [Mon, 23 Nov 2015 11:03:21 +0000 (11:03 +0000)]
* zh_CN.po: Update.
From-SVN: r230750
Ilya Enkovich [Mon, 23 Nov 2015 10:01:51 +0000 (10:01 +0000)]
re PR tree-optimization/68327 (ICE on valid code at -O3 on x86_64-linux-gnu in vect_is_simple_use, at tree-vect-stmts.c:8562)
gcc/
PR tree-optimization/68327
* tree-vect-loop.c (vect_determine_vectorization_factor): Don't
compute vectype for non-relevant mask producers.
* gcc/tree-vect-stmts.c (vectorizable_comparison): Check stmt
relevance earlier.
gcc/testsuite/
PR tree-optimization/68327
* gcc.dg/pr68327.c: New test.
Co-Authored-By: Richard Biener <rguenther@suse.de>
From-SVN: r230743
Tom de Vries [Mon, 23 Nov 2015 09:45:38 +0000 (09:45 +0000)]
Always call free_stmt_vec_info_vec in gather_scalar_reductions
2015-11-23 Tom de Vries <tom@codesourcery.com>
PR tree-optimization/68460
* tree-parloops.c (gather_scalar_reductions): Also call
free_stmt_vec_info_vec if simple_loop_info == NULL.
* gcc.dg/autopar/pr68460.c: New test.
From-SVN: r230742