Add -fprofile-update option juggling
[official-gcc.git] / gcc / ChangeLog
blobaa41f37050c192968d9f3f45b9fba27d16897d85
1 2016-10-06  Martin Liska  <mliska@suse.cz>
3         * gcc.c: Set -fprofile-update=atomic when profiling is
4         enabled and -pthread is set.  Warn when one combines
5         -pthread and -fprofile-update=single for an app using
6         profiling code.
8 2016-10-06  Martin Liska  <mliska@suse.cz>
10         PR bootstrap/77788
11         * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
12         * gimple-ssa-strength-reduction.c (slsr_process_cast):
13         Initialize a pointer to NULL.
14         (slsr_process_copy): Likewise.
15         * input.c (location_get_source_line): Likewise.
16         * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
18 2016-10-05  Andrew Senkevich  <andrew.senkevich@intel.com>
20         * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
21         OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
22         (ix86_handle_option): Deleted handle of OPT_mpcommit.
23         * config.gcc: Deleted pcommitintrin.h
24         * config/i386/pcommitintrin.h: Deleted file.
25         * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
26         * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
27         detection.
28         * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
29         __PCOMMIT__.
30         * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
31         (PTA_PCOMMIT): Deleted define.
32         (ix86_option_override_internal): Deleted handle of option.
33         (ix86_valid_target_attribute_inner_p): Deleted pcommit.
34         * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
35         __builtin_ia32_pcommit): Deleted.
36         * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
37         * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
38         (pcommit): Deleted instruction.
39         * config/i386/i386.opt: Mention -mpcommit deprecation.
40         * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
42 2016-10-05  Uros Bizjak  <ubizjak@gmail.com>
44         PR target/77874
45         * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
46         Remove wrong assert.
47         (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
48         Use <round_constraint> as operand 1 constraint.
50 2016-10-05  Jakub Jelinek  <jakub@redhat.com>
52         PR sanitizer/66343
53         * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
54         (ubsan_instrument_float_cast): And not here.
56         PR sanitizer/66343
57         * ubsan.c (ubsan_ids): New GTY(()) array.
58         (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
59         instead of static local counters.
61 2016-10-05  Martin Sebor  <msebor@redhat.com>
63         PR bootstrap/77819
64         * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
65         * config/linux.c (gnu_libc_printf_pointer_format): Remove.
66         * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
67         (default_printf_pointer_format): Define function.
68         * targhooks.c (linux_printf_pointer_format): Define new function.
69         * targhooks.h (linux_printf_pointer_format): Declare.
70         (gnu_libc_printf_pointer_format): Remove declaration.
72 2016-10-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
74         * fold-const.c (native_encode_real): Fix logic for selecting offset
75         to write to when BYTES_BIG_ENDIAN.
77 2016-10-05  Wilco Dijkstra  <wdijkstr@arm.com>
79         * builtins.c (fold_builtin_strchr): Remove function.
80         (fold_builtin_strrchr): Likewise.
81         (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
82         * gimple-fold.c (target_char_cst_p): New function.
83         (gimple_fold_builtin_strchr) Add more foldings.
84         (gimple_fold_builtin): Add index, strrchr, rindex cases.
86 2016-10-05  Richard Biener  <rguenther@suse.de>
88         PR middle-end/77863
89         * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
90         capture ids in c-exprs.
92 2016-10-05  Richard Biener  <rguenther@suse.de>
94         PR middle-end/77826
95         * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
96         with types_match for GIMPLE code gen to handle type mismatched
97         constants properly.
98         (dt_operand::gen): Adjust.
99         * match.pd ((X /[ex] A) * A -> X): Properly handle converted
100         and constant A.
102 2016-10-05  Richard Biener  <rguenther@suse.de>
104         * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
106 2016-10-05  Richard Biener  <rguenther@suse.de>
108         PR middle-end/77842
109         * genmatch.c (parser::parse_c_expr): Handle premature EOF.
111 2016-10-05  Pierre-Marie de Rodat  <derodat@adacore.com>
113         * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
114         version check to protect only DW_TAG_imported_module generation.
116 2016-10-05  Richard Biener  <rguenther@suse.de>
118         PR middle-end/55152
119         * match.pd (min(a,-a) -> -abs(a)): New pattern.
121 2016-10-04  Ian Lance Taylor  <iant@golang.org>
123         * explow.c (allocate_dynamic_stack_space): Call
124         do_pending_stack_adjust before handling flag_split_stack.
126 2016-10-04  David Malcolm  <dmalcolm@redhat.com>
128         * genattrtab.c (make_internal_attr): Supply dummy column number to
129         file_location ctor.
130         (main): Likewise.
131         * genoutput.c (init_insn_for_nothing): Likewise.
132         * gensupport.c (add_define_attr): Likewise.
133         * read-md.c (message_at_1): Print column number.
134         (fatal_with_file_and_line): Likewise.
135         (rtx_reader::read_char): Track column numbers.
136         (rtx_reader::unread_char): Likewise.
137         (rtx_reader::rtx_reader): Initialize m_read_md_colno.
138         (rtx_reader::handle_include): Stash and restore m_read_md_colno.
139         (rtx_reader::handle_file): Initialize m_read_md_colno.
140         (rtx_reader::get_current_location): Supply column number to
141         file_location ctor.
142         * read-md.h (struct file_location): Add field "colno".
143         (file_location::file_location): Likewise.
144         (rtx_reader::get_colno): New accessor.
145         (rtx_reader::m_read_md_colno): New field.
146         (rtx_reader::m_last_line_colno): New field.
148 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
150         * doc/extend.texi (Java Exceptions): Remove.
151         (java_interface): Remove.
153 2016-10-04  Doug Gilmore  <doug.gilmore@imgtec.com>
155         PR tree-optimization/77808
156         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
157         and addr are different before copying points-to information.
159 2016-10-04  Uros Bizjak  <ubizjak@gmail.com>
161         * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
162         * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
163         * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
164         of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
166 2016-10-04  Richard Biener  <rguenther@suse.de>
168         PR tree-optimization/77399
169         * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
170         verify the target can convert.
172 2016-10-04  Richard Biener  <rguenther@suse.de>
174         PR middle-end/77833
175         * explow.c (plus_constant): Verify the mode of the constant
176         pool offset before calling plus_constant.
178 2016-10-04  Richard Biener  <rguenther@suse.de>
180         PR middle-end/77407
181         * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
182         type support, mark with :C.
183         (X / -X -> -1): Mark with :C.
185 2016-10-04  Jakub Jelinek  <jakub@redhat.com>
187         * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
188         * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
189         * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
190         * doc/tm.texi: Regenerated.
191         * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
192         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
193         * config/darwin.h (JCR_SECTION_NAME): Remove.
194         * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
195         * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
196         * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
197         * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
198         * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
199         * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
201 2016-10-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
203         * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
204         between "because" and "param" in dump message in call to fprintf.
206 2016-10-03  Jeff Law  <law@redhat.com>
208         PR tree-optimization/71550
209         PR tree-optimization/71403
210         * tree-ssa-threadbackward.c: Include tree-vectorizer.h
211         (profitable_jump_thread_path): Also return boolean indicating if
212         the realized path will create an irreducible loop.
213         Remove loop depth tests from 71403.
214         (fsm_find_control_statement_thread_paths): Remove loop depth tests
215         from 71403.  If threading will create an irreducible loop, then
216         throw away loop iteration and related information.
218 2016-10-03  Uros Bizjak  <ubizjak@gmail.com>
220         * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
221         -Woverloaded-virtual checks for warning options.
222         * configure: Regenerate.
224 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
226         PR preprocessor/77699
227         * input.c (maybe_grow): Don't allocate one byte extra headroom.
228         (get_next_line): Return false on error.
229         (read_next_line): Removed, use get_next_line instead.
230         (read_line_num): Don't copy the line.
231         (location_get_source_line): Don't use static data.
232         (selftest::test_reading_source_line): Add more test cases.
234 2016-10-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
236         Revert
237         2016-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
239         * ifcvt.c (noce_try_avoid_const_materialization): New function.
240         (noce_process_if_block): Use it.
242 2016-10-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
244         * doc/invoke.texi: Update -Wint-in-bool-context.
246 2016-10-02  Jakub Jelinek  <jakub@redhat.com>
248         * dwarf2out.c (output_fde, output_call_frame_info,
249         dwarf2out_do_cfi_startproc, set_indirect_string,
250         gen_internal_sym, output_die, output_line_info): Use
251         MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
252         ASM_GENERATE_INTERNAL_LABEL output.
254 2016-10-01  Richard Biener  <rguenther@suse.de>
256         PR middle-end/77798
257         * genmatch.c (get_operand_type): Add operand position arg
258         and handle COND_EXPR comparison operand with fixed boolean_type_node.
259         (expr::gen_transform): Adjust.
260         (dt_simplify::gen_1): Likewise.
262 2016-10-01  Jakub Jelinek  <jakub@redhat.com>
264         * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
265         comments.  Simplify asserts, remove unnecessary conditions.
266         Formatting fixes.
267         (*<code><mode>3): Likewise.
269 2016-09-30  Jakub Jelinek  <jakub@redhat.com>
271         * doc/invoke.texi (-Wregister): Document.
273 2016-09-30  Bernd Edlinger  <bernd.edlinger@hotmail.de>
275         * configure.ac: Split CHECKING_P into CHECKING_P and
276         ENABLE_EXTRA_CHECKING.
277         * configure: Regenerated.
278         * config.in: Adjust commment of CHECKING_P.  Add ENABLE_EXTRA_CHECKING.
279         * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
281 2016-09-30  Prasad Ghangal  <prasad.ghangal@gmail.com>
283         PR other/31566
284         * gcc.c (process_command): For @filename handling, output
285         the correct name if the file does not exist.
287 2016-09-30  Marek Polacek  <polacek@redhat.com>
289         * config/aarch64/aarch64-simd.md: Adjust fall through comments.
290         * config/alpha/predicates.md: Likewise.
292 2016-09-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
294         * ifcvt.c (noce_try_avoid_const_materialization): New function.
295         (noce_process_if_block): Use it.
297 2016-09-30  Martin Liska  <mliska@suse.cz>
299         * doc/invoke.texi: Document asan-use-after-return that
300         it's disabled by default in runtime.
302 2016-09-30  Richard Biener  <rguenther@suse.de>
304         * tree-vrp.c (intersect_ranges): If we failed to handle
305         the intersection choose a constant singleton range if available.
307 2016-09-30  Richard Biener  <rguenther@suse.de>
309         PR tree-optimization/77399
310         * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
311         float <-> int conversions.
313 2016-09-30  Alan Modra  <amodra@gmail.com>
315         * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
317 2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
319         * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
320         ext_level before calling CPUID with 0x80000008.
321         Simplify xgetbv checks.
323 2016-09-29  David Malcolm  <dmalcolm@redhat.com>
325         * Makefile.in (OBJS): Add print-rtl-function.o.
326         * print-rtl-function.c: New file.
327         * print-rtl.h (print_rtx_function): New decl.
329 2016-09-29  Uros Bizjak  <ubizjak@gmail.com>
331         PR target/77756
332         * config/i386/cpuid.h (__get_cpuid_count): New.
333         (__get_cpuid): Rename __level to __leaf.
335 2016-09-29  Marek Polacek  <polacek@redhat.com>
337         * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
339 2016-09-29  Bernd Schmidt  <bschmidt@redhat.com>
341         * builtins.c (expand_builtin_memcmp): don't swap args unless
342         result is only being compared with zero.
344 2016-09-29  Marek Polacek  <polacek@redhat.com>
346         * dwarf2out.c (loc_descriptor): Add fall through comment.
347         (add_const_value_attribute): Likewise.
349 2016-09-29  Matthew Wahab  <matthew.wahab@arm.com>
351         * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
352         with "v6t2".  Move "arch" attribute above "pool_range".
353         * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
354         with "v6t2".
355         (*thumb2_movhi_vfp): Likewise.
356         (*arm_movhi_fp16): Likewise.
357         (*thumb2_movhi_fp16): Likewise.
358         (*arm_movsi_vfp): Remove "arch" attribute.
359         (*thumb2_movsi_vfp): Likewise.
361 2016-09-29  Martin Liska  <mliska@suse.cz>
363         * doc/extend.texi: Remove limitation of Objective C for
364         __attribute__((constructor)) and __attribute__((destructor)).
366 2016-09-29  Richard Biener  <rguenther@suse.de>
368         PR tree-optimization/77768
369         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
370         Handle stores to readonly memory when removing redundant stores.
372 2016-09-29  Richard Biener  <rguenther@suse.de>
374         PR middle-end/77407
375         * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
376         X / -X -> -1 simplifications.
378 2016-09-29  Richard Biener  <rguenther@suse.de>
380         PR middle-end/55152
381         * match.pd: Add max(a,-a) -> abs(a) pattern.
382         * tree-ssa-phiopt.c (minmax_replacement): Disable for
383         HONOR_SIGNED_ZEROS types.
385 2016-09-29  James Greenhalgh  <james.greenhalgh@arm.com>
387         * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
388         * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
390 2016-09-29  Richard Biener  <rguenther@suse.de>
392         * tree-vrp.c (set_defs_to_varying): New helper avoiding
393         writing to vr_const_varying.
394         (vrp_initialize): Call it.
395         (vrp_visit_stmt): Likewise.
396         (evrp_dom_walker::before_dom_children): Likewise.
398 2016-09-29  Richard Biener  <rguenther@suse.de>
400         * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
401         constructors with vector elements.
403 2016-09-29  Richard Biener  <rguenther@suse.de>
405         PR tree-optimization/77768
406         * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
407         with stores to a place we know has a constant value.
409 2016-09-29  Alan Modra  <amodra@gmail.com>
411         * config/rs6000/sysv4.opt (mgnu-attribute): New option.
412         * doc/invoke.texi: Document it.
413         * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
414         (rs6000_passes_float): Comment.
415         (rs6000_passes_long_double): New static var.
416         (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
417         (init_cumulative_args): Set up to emit fp .gnu_attribute for
418         ELF 64-bit ABIs as well as 32-bit ELF.  Correct rs6000_passes_float
419         to include fp values returned in vectors.
420         Set rs6000_passes_long_double.
421         (rs6000_function_arg_advance_1): Likewise for function args.
422         (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
423         and SPE.  Emit long double tag value too.
424         (rs6000_opt_vars): Add gnu-attr.
425         * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
426         * configure: Regenerate.
427         * config.in: Regenerate.
429 2016-09-28  Jakub Jelinek  <jakub@redhat.com>
431         * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
432         of 0 < x.
433         (format_floating, format_string, format_directive,
434         get_destination_size, pass_sprintf_length::handle_gimple_call):
435         Likewise.
437 2016-09-28  Jakub Jelinek  <jakub@redhat.com>
439         * gimple-ssa-sprintf.c: Fix comment formatting.
440         (format_integer): Use is_gimple_assign.
441         (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
442         and gimple_call_fndecl.  Reorder case BUILT_IN_SPRINTF_CHK.  Fix up
443         BUILT_IN_SNPRINTF_CHK comment.  Replace "to to" with "to" in comment.
444         (pass_sprintf_length::execute): Use is_gimple_call.
446 2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>
448         * gimple-fold.c (gimple_fold_builtin): After failing to fold
449         strchr, also try the generic folding.
451 2016-09-28  Martin Sebor  <msebor@redhat.com>
453         PR c/77762
454         * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
455         Fix typos.
457 2016-09-28  Martin Sebor  <msebor@redhat.com>
459         PR middle-end/77683
460         * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
461         length modifier is not expected.
462         (format_floating): Ignore l length modifier and fail gracefuly
463         when it isn't one of the other expected ones.
465 2016-09-28  Martin Sebor  <msebor@redhat.com>
467         PR bootstrap/77753
468         * varasm.c (assemble_addr_to_section): Increase local buffer size.
470 2016-09-27  Richard Biener  <rguenther@suse.de>
472         * dwarf2out.c (cu_die_list): New global.
473         (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs.  Add
474         main_comp_unit_die to cu_die_list if we created it.
475         Move break_out_includes ...
476         (dwarf2out_early_finish): ... here.  Push created CU DIEs onto
477         the cu_die_list.
479 2016-09-28  Richard Biener  <rguenther@suse.de>
481         * dwarf2out.c (struct die_struct): Add removed flag.
482         (lookup_type_die): If the DIE is marked as removed, clear
483         TYPE_SYMTAB_DIE and return NULL.
484         (lookup_decl_die): If the DIE is marked as removed, remove it
485         from the hash and return NULL.
486         (mark_removed): New helper.
487         (prune_unused_types_prune): Call it for removed DIEs.
488         (gen_subprogram_die): Move the premark_used_types call to after
489         DIEs for the functions scopes are generated.
490         (process_scope_var): Do not re-create pruned types or type decls.
491         Make sure to also re-parent type decls.
492         (dwarf2out_finish): Move unused type pruning and debug_types
493         handling ...
494         (dwarf2out_early_finish): ... here.
496 2016-09-29  Claudiu Zissulescu  <claziss@synopsys.com>
498         * config/arc/arc-c.c: New file.
499         * config/arc/arc-c.def: Likewise.
500         * config/arc/t-arc: Likewise.
501         * config.gcc: Include arc-c.o as c and cpp object.
502         * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
503         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
504         arc_cpu_cpp_builtins.
506 2016-09-29  Claudiu Zissulescu  <claziss@synopsys.com>
508         * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
509         (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
511 2016-09-28  Nathan Sidwell  <nathan@acm.org>
513         * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
514         printing.
516 2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>
518         PR tree-optimization/61056
519         * gimple-fold.c (gimple_fold_builtin_strchr):
520         New function to optimize strchr (s, 0) to strlen.
521         (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
523 2016-09-27  Robin Dapp  <rdapp@linux.vnet.ibm.com>
525         PR tree-optimization/77724
526         * tree-vect-loop-manip.c (create_intersect_range_checks_index):
527         Add tree_fits_shwi_p check.
529 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
531         * auto-inc-dec.c (try_merge): Remove break after return.
532         * cselib.c (autoinc_split): Likewise.
533         * explow.c (promote_mode): Likewise.
534         * fixed-value.c (fixed_arithmetic): Likewise.
535         * hsa.c (hsa_internal_fn::get_arity): Likewise.
536         * rtlanal.c (modified_between_p, modified_in_p): Likewise.
537         * trans-mem.c (get_attrs_for): Likewise.
538         * tree-if-conv.c (if_convertible_stmt_p): Likewise.
539         * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
540         * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
541         * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
542         * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
543         * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
544         * config/cris/cris.c (cris_op_str): Likewise.
545         * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
546         * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
548 2016-09-27  Nathan Sidwell  <nathan@codesourcery.com>
550         * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
551         IFN_GOACC_REDUCTION_CODES): New.
552         (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
553         ifn_goacc_reduction_kind): Use them.
554         * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
555         of internal functions, when applicable.
557 2016-09-27  Maciej W. Rozycki  <macro@imgtec.com>
559         * config/mips/constraints.md (d): Fix documentation.
560         * doc/md.texi (Machine Constraints): Update accordingly.
562 2016-09-27  Richard Biener  <rguenther@suse.de>
564         * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
565         cur_line_info_table initialization ...
566         (dwarf2out_assembly_start): ... here.
568 2016-09-27  Matthew Wahab  <matthew.wahab@arm.com>
570         * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
571         * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
572         (*thumb2_movhi_vfp): Likewise.
573         (*arm_movhi_fp16): Remove predication operand from VMOV.F16
574         template.  Expand predicable attribute to mark VMOV.F16 as not
575         predicable.  Add "arch" attribute.
576         (*thumb2_movhi_fp16): Likewise.
577         (*arm_movsi_vfp): Break a long line.  Add "arch" attribute.
578         (*thumb2_movsi_vfp): Add "arch" attribute.
580 2016-09-27  David Edelsohn  <dje.gcc@gmail.com>
582         * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
583         VAR_DECL string.
585 2016-09-27  Marek Polacek  <polacek@redhat.com>
587         * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
588         comment.
590         * config/c6x/c6x.h: Adjust fall through comment.
591         * config/sh/sh.c (final_prescan_insn): Likewise.
592         * config/visium/visium.c (visium_expand_int_cstore): Likewise.
593         (visium_expand_fp_cstore): Likewise.
595 2016-09-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
597         * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
598         expected by -Wimplicit-fallthrough.
599         (thumb1_size_rtx_costs): Likewise.
600         (thumb2_reorg): Likewise.
601         (tls_mentioned_p): Add "Fall through" comment.
602         (thumb2_reorg): Likewise.
603         * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
604         comment form expected by -Wimplicit-fallthrough.
606 2016-09-27  Martin Liska  <mliska@suse.cz>
608         PR gcov-profile/46266
609         * input.h (RESERVED_LOCATION_P): New macro.
610         * profile.c (branch_prob): Use RESERVED_LOCATION_P and
611         instread of comparison with UNKNOWN_LOCATION.
613 2016-09-27  Richard Biener  <rguenther@suse.de>
615         PR tree-optimization/77745
616         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
617         When removing redundant stores make sure to check compatibility
618         of the TBAA state for downstream accesses.
619         * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
620         value-numbering virtual operands for store matches.
622 2016-09-27  Oleg Endo  <olegendo@gcc.gnu.org>
624         PR target/51244
625         * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
626         movrt patterns.  Match them before anything else in the SET case.
628 2016-09-27  Martin Liska  <mliska@suse.cz>
630         PR gcov-profile/7970
631         PR gcov-profile/16855
632         PR gcov-profile/44779
633         * coverage.c (build_gcov_exit_decl): New function.
634         (coverage_obj_init): Call the function and generate __gcov_exit
635         destructor.
636         * doc/gcov.texi: Document when __gcov_exit function is called.
638 2016-09-27  Marek Polacek  <polacek@redhat.com>
640         PR bootstrap/77751
641         * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
642         insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
643         -Wno-error instead of -Wno-implicit-fallthrough.
645 2016-09-27  Martin Liska  <mliska@suse.cz>
647         PR bootstrap/77749
648         * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
650 2016-09-27  Jakub Jelinek  <jakub@redhat.com>
652         * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
653         * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
654         comments.  Remove break after return.
655         (ix86_fp_compare_code_to_integer, has_dispatch,
656         ix86_simd_clone_usable): Remove break after return.
658 2016-09-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
660         PR rlt-optimization/77714
661         * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
662         REG_EQUAL note.
664 2016-09-27  Kugan Vivekanandarajah  <kuganv@linaro.org>
666         PR ipa/77677
667         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
668         extract_range_from_unary_expr to convert value_range.
669         * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
670         (extract_range_from_unary_expr): This.
671         * tree-vrp.h (extract_range_from_unary_expr): Declare.
673 2016-09-27  Segher Boessenkool  <segher@kernel.crashing.org>
675         * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
677 2016-09-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
679         * config/i386/i386.c (ix86_print_operand)
680         [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
681         * config/sparc/sparc.c (check_pic): Add fallthrough comment.
682         (epilogue_renumber): Likewise.
684 2016-09-26  Kugan Vivekanandarajah  <kuganv@linaro.org>
686         PR middle-end/77719
687         * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
688         to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
690 2016-09-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>
692         * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
693         is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
694         is_mm_seq_cst, is_mm_sync): Move to ...
695         * memmodel.h: This.  New file.
696         * builtins.c: Include memmodel.h.
697         * optabs.c: Likewise.
698         * tsan.c: Likewise.
699         * config/aarch64/aarch64.c: Likewise.
700         * config/alpha/alpha.c: Likewise.
701         * config/arm/arm.c: Likewise.
702         * config/i386/i386.c: Likewise.
703         * config/ia64/ia64.c: Likewise.
704         * config/mips/mips.c: Likewise.
705         * config/rs6000/rs6000.c: Likewise.
706         * config/sparc/sparc.c: Likewise.
707         * genconditions.c: Include memmodel.h in generated file.
708         * genemit.c: Likewise.
709         * genoutput.c: Likewise.
710         * genpeep.c: Likewise.
711         * genpreds.c: Likewise.
712         * genrecog.c: Likewise.
714 2016-09-26  David Malcolm  <dmalcolm@redhat.com>
716         * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
717         "c" instead when parsing characters.  Move operand parsing into...
718         (read_rtx_operand): ...this new function, renaming "i" to "idx",
719         and tightening the scope of various locals.
721 2016-09-26  Liu Hao  <lh_mouse@126.com>
723         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
725 2016-09-26  Marek Polacek  <polacek@redhat.com>
727         * system.h: Use __has_attribute to check whether the fallthrough
728         attribute is supported.
730 2016-09-26  Marek Polacek  <polacek@redhat.com>
732         * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
733         gimple_call_internal_p.
734         * ipa-split.c (find_return_bb): Likewise.
735         (execute_split_functions): Likewise.
736         * omp-low.c (dump_oacc_loop_part): Likewise.
737         (oacc_loop_xform_head_tail): Likewise.
738         * predict.c (predict_loops): Likewise.
739         * sanopt.c (pass_sanopt::execute): Likewise.
740         * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
741         * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
742         * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
743         (expand_ifn_va_arg_1): Use gimple_call_internal_p.
744         (expand_ifn_va_arg): Likewise.
745         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
746         (optimize_mask_stores): Likewise.
747         * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
748         (vect_transform_stmt): Likewise.
749         * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
750         * tsan.c (instrument_memory_accesses): Likewise.
752 2016-09-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
753             Alexander Monakov  <amonakov@ispras.ru>
755         * regrename.c (rename_chains): Check
756         HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
757         HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
758         * sel-sched.c (mark_unavailable_hard_regs): Likewise.
760 2016-09-26  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
762         * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
763         (s390_sched_score): Likewise.
765 2016-09-26  Martin Liska  <mliska@suse.cz>
767         * doc/gcov.texi: Update program output of gcov tool.
769 2016-09-26  Martin Liska  <mliska@suse.cz>
771         PR gcov-profile/23332
772         * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
773         * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
774         * value-prof.c (dump_histogram_value): Do not handle
775         HIST_TYPE_CONST_DELTA.
776         (stream_in_histogram_value): Likewise.
777         (gimple_find_values_to_profile): Likewise.
778         * value-prof.h (enum hist_type): Likewise.
780 2016-09-26  Martin Liska  <mliska@suse.cz>
782         * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
783         from default sanitize recover values.
784         * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
785         -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
786         * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
787         consistent.
788         * opts.c (finish_options): Do a generic loop over options
789         that can be recovered.
790         (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
791         SANITIZE_RETURN.
792         (common_handle_option): Likewise.
793         * opts.h: Declare can_recover to sanitizer_opts_s.
795 2016-09-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>
797         * target.def(elf_flags_numeric): Change documentation to present tense.
798         * doc/tm.texi: Regenerate.
800 2016-09-26  Marek Polacek  <polacek@redhat.com>
802         PR c/7652
803         * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
804         insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
805         -Wno-switch-fallthrough.
806         * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
807         (expand_builtin): Likewise.
808         * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
809         * convert.c (convert_to_real_1): Likewise.
810         (convert_to_integer_1): Likewise.
811         * final.c (output_alternate_entry_point): Likewise.
812         * genattrtab.c (make_canonical): Likewise.
813         (write_test_expr): Likewise.
814         * genpreds.c (validate_exp): Likewise.
815         * gimple-ssa-strength-reduction.c
816         (find_candidates_dom_walker::before_dom_children): Likewise.
817         * godump.c (go_format_type): Likewise.
818         * reload1.c (elimination_effects): Likewise.
819         * resource.c (mark_referenced_resources): Likewise.
820         (mark_set_resources): Likewise.
821         * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
822         * varasm.c (output_addressed_constants): Likewise.
824 2016-09-26  Marek Polacek  <polacek@redhat.com>
826         PR c/7652
827         * common.opt (Wimplicit-fallthrough): New option.
828         * doc/extend.texi: Document statement attributes and the fallthrough
829         attribute.
830         * doc/invoke.texi: Document -Wimplicit-fallthrough.
831         * gimple.h (gimple_call_internal_p): New function.
832         * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
833         (struct label_entry): New struct.
834         (find_label_entry): New function.
835         (case_label_p): New function.
836         (collect_fallthrough_labels): New function.
837         (last_stmt_in_scope): New function.
838         (should_warn_for_implicit_fallthrough): New function.
839         (warn_implicit_fallthrough_r): New function.
840         (maybe_warn_implicit_fallthrough): New function.
841         (expand_FALLTHROUGH_r): New function.
842         (expand_FALLTHROUGH): New function.
843         (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
844         expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
845         (gimplify_label_expr): New function.
846         (gimplify_case_label_expr): Set location.
847         (gimplify_expr): Call gimplify_label_expr.
848         * internal-fn.c (expand_FALLTHROUGH): New function.
849         * internal-fn.def (FALLTHROUGH): New internal function.
850         * langhooks.c (lang_GNU_OBJC): New function.
851         * langhooks.h (lang_GNU_OBJC): Declare.
852         * system.h (gcc_fallthrough): Define.
853         * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
854         * tree.h (FALLTHROUGH_LABEL_P): Define.
856 2016-09-26  Richard Biener  <rguenther@suse.de>
858         * dwarf2out.c (stripattributes): Remove unused function.
859         (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
860         Push dwarf_split_debug_info handling into init_sections_and_labels.
861         (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
862         (DEBUG_MACRO_SECTION_FLAGS): Remove.
863         (debug_macinfo_section_name): New global.
864         (output_macinfo): Use debug_macinfo_section_name.
865         (init_sections_and_labels): Split out section and label generation
866         from dwarf2out_init.  Set debug_macinfo_section_name.
867         (dwarf2out_init): Move text section label generation and emission
868         to ...
869         (dwarf2out_assembly_start): ... here.
870         (dwarf2out_finish): Call init_sections_and_labels before DWARF
871         output starts.
873 2016-09-26  Richard Biener  <rguenther@suse.de>
875         PR debug/77692
876         * cgraphunit.c (analyze_functions): Before early removing
877         global vars calls the late_global_decl debug handler mark
878         the variable as readonly.
880 2016-09-25  Oleg Endo  <olegendo@gcc.gnu.org>
882         PR target/51244
883         * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
884         (sh_rtx_costs): Handle SET of movt and movrt patterns.
885         * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
886         declare new overloads.
887         * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
888         operand.
890 2016-09-24  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
892         * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
893         Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
895 2016-09-24  David Edelsohn  <dje.gcc@gmail.com>
897         * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
898         * configure: Regenerate.
900 2016-09-24  Marek Polacek  <polacek@redhat.com>
902         PR c/77490
903         * doc/invoke.texi: Document -Wbool-operation.
905 2016-09-23  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
907         * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
908         * config/rs6000/rs6000.c (expand_block_compare): New function used by
909         cmpmemsi pattern to do builtin expansion of memcmp ().
910         (compute_current_alignment): Add helper function for
911         expand_block_compare used to compute alignment as the compare proceeds.
912         (select_block_compare_mode): Used by expand_block_compare to select
913         the mode used for reading the next chunk of bytes in the compare.
914         (do_load_for_compare): Used by expand_block_compare to emit the load
915         insns for the compare.
916         (rs6000_emit_dot_insn): Moved this function to avoid a forward
917         reference from expand_block_compare ().
918         * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
919         prototype for this function.
920         * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
921         target option for controlling how much code inline expansion of
922         memcmp() will be allowed to generate.
924 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
926         * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
927         hook_bool_mode_false, hook_bool_mode_true,
928         hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
929         hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
930         hook_bool_const_rtx_insn_const_rtx_insn_true,
931         hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
932         hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
933         hook_bool_const_tree_hwi_hwi_const_tree_false,
934         hook_bool_const_tree_hwi_hwi_const_tree_true,
935         default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
936         hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
937         hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
938         hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
939         hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
940         hook_bool_const_tree_true, hook_bool_tree_tree_false,
941         hook_bool_tree_tree_true, hook_bool_tree_bool_false,
942         hook_bool_rtx_insn_true, hook_bool_rtx_false,
943         hook_bool_uintp_uintp_false,
944         hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
945         hook_rtx_tree_int_null, hook_uint_mode_0,
946         hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
947         hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
948         hook_constcharptr_const_rtx_insn_null,
949         hook_constcharptr_const_tree_const_tree_null,
950         hook_constcharptr_int_const_tree_null,
951         hook_constcharptr_int_const_tree_const_tree_null,
952         hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
953         hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
954         ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
956         * vec.h (vNULL): Extend comment to say = vNULL initialization
957         isn't needed for static vars.
959         * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
960         loop_nests, s_i_d, last_added_blocks): Remove unnecessary
961         = vNULL initialization of file scope vec.
962         * passes.c (pass_tab, enabled_pass_uid_range_tab,
963         disabled_pass_uid_range_tab): Likewise.
964         * haifa-sched.c (sched_luids, h_i_d): Likewise.
965         * tree-chkp-opt.c (check_infos): Likewise.
966         * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
968         * vec.h (vnull::operator vec): Add constexpr keyword for
969         C++11 and later.
971 2016-09-23  Doug Gilmore  <doug.gilmore@imgtec.com>
973         PR tree-optimization/77654
974         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
975         to duplicate_ssa_name_ptr_info.
977 2016-09-23  David Malcolm  <dmalcolm@redhat.com>
979         PR preprocessor/77672
980         * input.c (selftest::test_lexer_string_locations_simple): Update
981         test to expect location information of the terminator character
982         at the location of the final closing quote.
983         (selftest::test_lexer_string_locations_hex): Likewise.
984         (selftest::test_lexer_string_locations_oct): Likewise.
985         (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
986         (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
987         (selftest::test_lexer_string_locations_ucn4): Likewise.
988         (selftest::test_lexer_string_locations_ucn8): Likewise.
989         (selftest::test_lexer_string_locations_u8): Likewise.
990         (selftest::test_lexer_string_locations_utf8_source): Likewise.
991         (selftest::test_lexer_string_locations_concatenation_1): Likewise.
992         (selftest::test_lexer_string_locations_concatenation_2): Likewise.
993         (selftest::test_lexer_string_locations_concatenation_3): Likewise.
994         (selftest::test_lexer_string_locations_macro): Likewise.
995         (selftest::test_lexer_string_locations_long_line): Likewise.
997 2016-09-23  Richard Biener  <rguenther@suse.de>
999         * tree-ssa-sccvn.c (visit_reference_op_call): Value number
1000         virtual definition to virtual use if the call devirtualizes
1001         to a const or pure function.
1002         (visit_use): Also visit calls we can devirtualize to a
1003         const or pure function.
1005 2016-09-23  Richard Biener  <rguenther@suse.de>
1007         PR tree-optimization/77697
1008         * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
1009         signal error if we have sth ternary or unhandled.
1011 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1013         * config/arm/arm_neon.h (vabd_f16): New.
1014         (vabdq_f16): New.
1015         (vabs_f16): New.
1016         (vabsq_f16): New.
1017         (vadd_f16): New.
1018         (vaddq_f16): New.
1019         (vcage_f16): New.
1020         (vcageq_f16): New.
1021         (vcagt_f16): New.
1022         (vcagtq_f16): New.
1023         (vcale_f16): New.
1024         (vcaleq_f16): New.
1025         (vcalt_f16): New.
1026         (vcaltq_f16): New.
1027         (vceq_f16): New.
1028         (vceqq_f16): New.
1029         (vceqz_f16): New.
1030         (vceqzq_f16): New.
1031         (vcge_f16): New.
1032         (vcgeq_f16): New.
1033         (vcgez_f16): New.
1034         (vcgezq_f16): New.
1035         (vcgt_f16): New.
1036         (vcgtq_f16): New.
1037         (vcgtz_f16): New.
1038         (vcgtzq_f16): New.
1039         (vcle_f16): New.
1040         (vcleq_f16): New.
1041         (vclez_f16): New.
1042         (vclezq_f16): New.
1043         (vclt_f16): New.
1044         (vcltq_f16): New.
1045         (vcltz_f16): New.
1046         (vcltzq_f16): New.
1047         (vcvt_f16_s16): New.
1048         (vcvt_f16_u16): New.
1049         (vcvt_s16_f16): New.
1050         (vcvt_u16_f16): New.
1051         (vcvtq_f16_s16): New.
1052         (vcvtq_f16_u16): New.
1053         (vcvtq_s16_f16): New.
1054         (vcvtq_u16_f16): New.
1055         (vcvta_s16_f16): New.
1056         (vcvta_u16_f16): New.
1057         (vcvtaq_s16_f16): New.
1058         (vcvtaq_u16_f16): New.
1059         (vcvtm_s16_f16): New.
1060         (vcvtm_u16_f16): New.
1061         (vcvtmq_s16_f16): New.
1062         (vcvtmq_u16_f16): New.
1063         (vcvtn_s16_f16): New.
1064         (vcvtn_u16_f16): New.
1065         (vcvtnq_s16_f16): New.
1066         (vcvtnq_u16_f16): New.
1067         (vcvtp_s16_f16): New.
1068         (vcvtp_u16_f16): New.
1069         (vcvtpq_s16_f16): New.
1070         (vcvtpq_u16_f16): New.
1071         (vcvt_n_f16_s16): New.
1072         (vcvt_n_f16_u16): New.
1073         (vcvtq_n_f16_s16): New.
1074         (vcvtq_n_f16_u16): New.
1075         (vcvt_n_s16_f16): New.
1076         (vcvt_n_u16_f16): New.
1077         (vcvtq_n_s16_f16): New.
1078         (vcvtq_n_u16_f16): New.
1079         (vfma_f16): New.
1080         (vfmaq_f16): New.
1081         (vfms_f16): New.
1082         (vfmsq_f16): New.
1083         (vmax_f16): New.
1084         (vmaxq_f16): New.
1085         (vmaxnm_f16): New.
1086         (vmaxnmq_f16): New.
1087         (vmin_f16): New.
1088         (vminq_f16): New.
1089         (vminnm_f16): New.
1090         (vminnmq_f16): New.
1091         (vmul_f16): New.
1092         (vmul_lane_f16): New.
1093         (vmul_n_f16): New.
1094         (vmulq_f16): New.
1095         (vmulq_lane_f16): New.
1096         (vmulq_n_f16): New.
1097         (vneg_f16): New.
1098         (vnegq_f16): New.
1099         (vpadd_f16): New.
1100         (vpmax_f16): New.
1101         (vpmin_f16): New.
1102         (vrecpe_f16): New.
1103         (vrecpeq_f16): New.
1104         (vrnd_f16): New.
1105         (vrndq_f16): New.
1106         (vrnda_f16): New.
1107         (vrndaq_f16): New.
1108         (vrndm_f16): New.
1109         (vrndmq_f16): New.
1110         (vrndn_f16): New.
1111         (vrndnq_f16): New.
1112         (vrndp_f16): New.
1113         (vrndpq_f16): New.
1114         (vrndx_f16): New.
1115         (vrndxq_f16): New.
1116         (vrsqrte_f16): New.
1117         (vrsqrteq_f16): New.
1118         (vrecps_f16): New.
1119         (vrecpsq_f16): New.
1120         (vrsqrts_f16): New.
1121         (vrsqrtsq_f16): New.
1122         (vsub_f16): New.
1123         (vsubq_f16): New.
1125 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1127         * config.gcc (extra_headers): Add arm_fp16.h
1128         * config/arm/arm_fp16.h: New.
1129         * config/arm/arm_neon.h: Include "arm_fp16.h".
1131 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1133         * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
1134         variants).
1135         (vmulf): New (v8hf, v4hf variants).
1136         (vfma): New (v8hf, v4hf variants).
1137         (vfms): New (v8hf, v4hf variants).
1138         (vsub): New (v8hf, v4hf variants).
1139         (vcage): New (v8hf, v4hf variants).
1140         (vcagt): New (v8hf, v4hf variants).
1141         (vcale): New (v8hf, v4hf variants).
1142         (vcalt): New (v8hf, v4hf variants).
1143         (vceq): New (v8hf, v4hf variants).
1144         (vcgt): New (v8hf, v4hf variants).
1145         (vcge): New (v8hf, v4hf variants).
1146         (vcle): New (v8hf, v4hf variants).
1147         (vclt): New (v8hf, v4hf variants).
1148         (vceqz): New (v8hf, v4hf variants).
1149         (vcgez): New (v8hf, v4hf variants).
1150         (vcgtz): New (v8hf, v4hf variants).
1151         (vcltz): New (v8hf, v4hf variants).
1152         (vclez): New (v8hf, v4hf variants).
1153         (vabd): New (v8hf, v4hf variants).
1154         (vmaxf): New (v8hf, v4hf variants).
1155         (vmaxnm): New (v8hf, v4hf variants).
1156         (vminf): New (v8hf, v4hf variants).
1157         (vminnm): New (v8hf, v4hf variants).
1158         (vpmaxf): New (v4hf variant).
1159         (vpminf): New (v4hf variant).
1160         (vpadd): New (v4hf variant).
1161         (vrecps): New (v8hf, v4hf variants).
1162         (vrsqrts): New (v8hf, v4hf variants).
1163         (vabs): New (v8hf, v4hf variants).
1164         (vneg): New (v8hf, v4hf variants).
1165         (vrecpe): New (v8hf, v4hf variants).
1166         (vrnd): New (v8hf, v4hf variants).
1167         (vrnda): New (v8hf, v4hf variants).
1168         (vrndm): New (v8hf, v4hf variants).
1169         (vrndn): New (v8hf, v4hf variants).
1170         (vrndp): New (v8hf, v4hf variants).
1171         (vrndx): New (v8hf, v4hf variants).
1172         (vrsqrte): New (v8hf, v4hf variants).
1173         (vmul_lane): Add v4hf and v8hf variants.
1174         (vmul_n): Add v4hf and v8hf variants.
1175         (vext): New (v8hf, v4hf variants).
1176         (vcvts): New (v8hi, v4hi variants).
1177         (vcvts): New (v8hf, v4hf variants).
1178         (vcvtu): New (v8hi, v4hi variants).
1179         (vcvtu): New (v8hf, v4hf variants).
1180         (vcvts_n): New (v8hf, v4hf variants).
1181         (vcvtu_n): New (v8hi, v4hi variants).
1182         (vcvts_n): New (v8hi, v4hi variants).
1183         (vcvtu_n): New (v8hf, v4hf variants).
1184         (vbsl): New (v8hf, v4hf variants).
1185         (vcvtas): New (v8hf, v4hf variants).
1186         (vcvtau): New (v8hf, v4hf variants).
1187         (vcvtms): New (v8hf, v4hf variants).
1188         (vcvtmu): New (v8hf, v4hf variants).
1189         (vcvtns): New (v8hf, v4hf variants).
1190         (vcvtnu): New (v8hf, v4hf variants).
1191         (vcvtps): New (v8hf, v4hf variants).
1192         (vcvtpu): New (v8hf, v4hf variants).
1194 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1196         * config/arm/arm-builtins.c (hf_UP): New.
1197         (si_UP): New.
1198         (vfp_builtin_data): New.  Update comment.
1199         (enum arm_builtins): Include "arm_vfp_builtins.def".
1200         (ARM_BUILTIN_VFP_PATTERN_START): New.
1201         (arm_init_vfp_builtins): New.
1202         (arm_init_builtins): Add arm_init_vfp_builtins.
1203         (arm_expand_vfp_builtin): New.
1204         (arm_expand_builtins): Update for arm_expand_vfp_builtin.  Fix
1205         long line.
1206         * config/arm/arm_vfp_builtins.def: New file.
1207         * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
1208         (arm-builtins.o): Likewise.
1210 2016-09-23  Kugan Vivekanandarajah  <kuganv@linaro.org>
1212         PR ipa/77677
1213         * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
1214         from constant while creating value range.
1216 2016-09-23  Renlin Li  <renlin.li@arm.com>
1218         * ira.c (ira): Move ira_use_lra_p initialization code to ...
1219         (ira_init_once): Here.
1221 2016-09-23  Uros Bizjak  <ubizjak@gmail.com>
1222             Jakub Jelinek  <jakub@redhat.com>
1224         * hooks.h (hook_uint_uintp_false): Rename to...
1225         (hook_bool_uint_uintp_false): ... this.
1226         * hooks.c (hook_uint_uintp_false): Rename to...
1227         (hook_bool_uint_uintp_false): ... this.
1228         * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
1229         instead of hook_uint_uintp_false.
1231 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1233         * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
1234         (arm_init_builtins): Move body of a loop to the standalone
1235         function arm_init_neon_builtin.
1236         (arm_expand_neon_builtin_1): New.  Update comment.  Function body
1237         moved from arm_neon_builtin with some white-space fixes.
1238         (arm_expand_neon_builtin): Move code into the standalone function
1239         arm_expand_neon_builtin_1.
1241 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1243         * config/arm/iterators.md (VCVTHI): New.
1244         (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE.  Fix a long line.
1245         (NEON_VAGLTE): New.
1246         (VFM_LANE_AS): New.
1247         (VH_CVTTO): New.
1248         (V_reg): Add HF, V4HF and V8HF.  Fix white-space.
1249         (V_HALF): Add V4HF.  Fix white-space.
1250         (V_if_elem): Add HF, V4HF and V8HF.  Fix white-space.
1251         (V_s_elem): Likewise.
1252         (V_sz_elem): Fix white-space.
1253         (V_elem_ch): Likewise.
1254         (VH_elem_ch): New.
1255         (scalar_mul_constraint): Add V8HF and V4HF.
1256         (Is_float_mode): Fix white-space.
1257         (Is_d_reg): Add V4HF and V8HF.  Fix white-space.
1258         (q): Add HF.  Fix white-space.
1259         (float_sup): New.
1260         (float_SUP): New.
1261         (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
1262         (neon_vfm_lane_as): New.
1263         * config/arm/neon.md (add<mode>3_fp16): New.
1264         (sub<mode>3_fp16): New.
1265         (mul<mode>3add<mode>_neon): New.
1266         (fma<VH:mode>4_intrinsic): New.
1267         (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
1268         (fmsub<VH:mode>4_intrinsic): New.
1269         (<absneg_str><mode>2): New.
1270         (neon_v<absneg_str><mode>): New.
1271         (neon_v<fp16_rnd_str><mode>): New.
1272         (neon_vrsqrte<mode>): New.
1273         (neon_vpaddv4hf): New.
1274         (neon_vadd<mode>): New.
1275         (neon_vsub<mode>): New.
1276         (neon_vmulf<mode>): New.
1277         (neon_vfma<VH:mode>): New.
1278         (neon_vfms<VH:mode>): New.
1279         (neon_vc<cmp_op><mode>): New.
1280         (neon_vc<cmp_op><mode>_fp16insn): New
1281         (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
1282         (neon_vca<cmp_op><mode>): New.
1283         (neon_vca<cmp_op><mode>_fp16insn): New.
1284         (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
1285         (neon_vc<cmp_op>z<mode>): New.
1286         (neon_vabd<mode>): New.
1287         (neon_v<maxmin>f<mode>): New.
1288         (neon_vp<maxmin>fv4hf: New.
1289         (neon_<fmaxmin_op><mode>): New.
1290         (neon_vrecps<mode>): New.
1291         (neon_vrsqrts<mode>): New.
1292         (neon_vrecpe<mode>): New (VH variant).
1293         (neon_vdup_lane<mode>_internal): New.
1294         (neon_vdup_lane<mode>): New.
1295         (neon_vcvt<sup><mode>): New (VCVTHI variant).
1296         (neon_vcvt<sup><mode>): New (VH variant).
1297         (neon_vcvt<sup>_n<mode>): New (VH variant).
1298         (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
1299         (neon_vcvt<vcvth_op><sup><mode>): New.
1300         (neon_vmul_lane<mode>): New.
1301         (neon_vmul_n<mode>): New.
1302         * config/arm/unspecs.md (UNSPEC_VCALE): New
1303         (UNSPEC_VCALT): New.
1304         (UNSPEC_VFMA_LANE): New.
1305         (UNSPECS_VFMS_LANE): New.
1307 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1309         * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
1310         ("*extzv<mode><clobbercc_or_nocc>"):
1311         Correct a typo in a comment.
1312         Merged patterns.
1313         ("*insv<mode>_zEC12", "*insv<mode>_z10")
1314         ("*insv<mode><clobbercc_or_nocc>"): Ditto.
1315         ("*insv<mode>_zEC12_appendbitsleft")
1316         ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
1317         ("*insv<mode>_z10_appendbitsleft"): Ditto.
1318         ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
1319         ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
1320         Provide pattern with operands switched.
1321         ("*pre_z10_extv<mode>"):
1322         Use new subst patterns.
1323         ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
1324         ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
1325         ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
1326         ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
1327         ("*<risbg_n>_<mode>_ior_and_lshiftrt")
1328         ("*<risbg_n>_sidi_ior_and_lshiftrt")
1329         ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
1330         New patterns.
1331         ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
1332         ("*extzv_<mode>_srl<clobbercc_or_nocc>")
1333         ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
1334         on zEC12.
1335         ("SINT"): New mode_iterator with SI, HI, QI.
1336         * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
1337         ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
1338         duplication.
1340 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1342         * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
1343         new interface of s390_contiguous_bitmask_p.
1344         ("contiguous_bitmask_nowrap_operand"): New predicate.
1345         ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
1346         * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
1347         of s390_contiguous_bitmask_p.
1348         ("NxxDw"): Rename NxxDq constraint to NxxDw.
1349         ("NxxSw"): New constraint.
1350         * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
1351         * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
1352         interface.
1353         (s390_contiguous_bitmask_nowrap_p): Export.
1354         * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
1355         former s390_contiguous_bitmask_p.
1356         (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
1357         detect contiguous bit ranges with wraparound.  Change signature to
1358         return START and END position instead of POS and LENGTH.
1359         (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
1360         ranges with wraparound.
1361         (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
1362         (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
1363         Adapt to new signature of s390_contiguous_bitmask_p.
1365 2016-09-23  Bin Cheng  <bin.cheng@arm.com>
1367         * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
1368         (create_intersect_range_checks): New.
1369         (vect_create_cond_for_alias_checks): Call above function.
1371 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1373         * config/arm/iterators.md (Code iterators): Fix some white-space
1374         in the comments.
1375         (GLTE): New.
1376         (ABSNEG): New
1377         (FCVT): Moved from vfp.md.
1378         (VCVT_HF_US_N): New.
1379         (VCVT_SI_US_N): New.
1380         (VCVT_HF_US): New.
1381         (VCVTH_US): New.
1382         (FP16_RND): New.
1383         (absneg_str): New.
1384         (FCVTI32typename): Moved from vfp.md.
1385         (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
1386         UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
1387         UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
1388         UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N,  UNSPEC_VCVTH_S_N,
1389         UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
1390         (vcvth_op): New.
1391         (fp16_rnd_str): New.
1392         (fp16_rnd_insn): New.
1393         * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
1394         (UNSPEC_VCVT_HF_U_N): New.
1395         (UNSPEC_VCVT_SI_S_N): New.
1396         (UNSPEC_VCVT_SI_U_N): New.
1397         (UNSPEC_VCVTH_S): New.
1398         (UNSPEC_VCVTH_U): New.
1399         (UNSPEC_VCVTA_S): New.
1400         (UNSPEC_VCVTA_U): New.
1401         (UNSPEC_VCVTM_S): New.
1402         (UNSPEC_VCVTM_U): New.
1403         (UNSPEC_VCVTN_S): New.
1404         (UNSPEC_VCVTN_U): New.
1405         (UNSPEC_VCVTP_S): New.
1406         (UNSPEC_VCVTP_U): New.
1407         (UNSPEC_VCVTP_S): New.
1408         (UNSPEC_VCVTP_U): New.
1409         (UNSPEC_VRND): New.
1410         (UNSPEC_VRNDA): New.
1411         (UNSPEC_VRNDI): New.
1412         (UNSPEC_VRNDM): New.
1413         (UNSPEC_VRNDN): New.
1414         (UNSPEC_VRNDP): New.
1415         (UNSPEC_VRNDX): New.
1416         * config/arm/vfp.md (<absneg_str>hf2): New.
1417         (neon_vabshf): New.
1418         (neon_v<fp16_rnd_str>hf): New.
1419         (neon_vrndihf): New.
1420         (addhf3): New.
1421         (subhf3): New.
1422         (divhf3): New.
1423         (mulhf3): New.
1424         (*mulsf3neghf_vfp): New.
1425         (*negmulhf3_vfp): New.
1426         (*mulsf3addhf_vfp): New.
1427         (*mulhf3subhf_vfp): New.
1428         (*mulhf3neghfaddhf_vfp): New.
1429         (*mulhf3neghfsubhf_vfp): New.
1430         (fmahf4): New.
1431         (neon_vfmahf): New.
1432         (fmsubhf4_fp16): New.
1433         (neon_vfmshf): New.
1434         (*fnmsubhf4): New.
1435         (*fnmaddhf4): New.
1436         (neon_vsqrthf): New.
1437         (neon_vrsqrtshf): New.
1438         (FCVT): Move to iterators.md.
1439         (FCVTI32typename): Likewise.
1440         (neon_vcvth<sup>hf): New.
1441         (neon_vcvth<sup>si): New.
1442         (neon_vcvth<sup>_nhf_unspec): New.
1443         (neon_vcvth<sup>_nhf): New.
1444         (neon_vcvth<sup>_nsi_unspec): New.
1445         (neon_vcvth<sup>_nsi): New.
1446         (neon_vcvt<vcvth_op>h<sup>si): New.
1447         (neon_<fmaxmin_op>hf): New.
1449 2016-09-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
1451         * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
1452         ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
1453         ("*insv<mode>_zEC12_appendbitsleft")
1454         ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
1455         ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
1457 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
1459         * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
1460         * sreal.h (sreal::min, sreal::max): Avoid static local vars,
1461         construct values without normalization.
1462         * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
1463         static local lhs_ops to vNULL.
1465 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1466             Jiong Wang <jiong.wang@arm.com>
1468         * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
1469         available when FP16 instructions are available.
1470         (output_move_vfp): Add support for 16-bit data moves.
1471         (arm_validize_comparison): Fix some white-space.  Support HFmode
1472         by conversion to SFmode.
1473         * config/arm/arm.md (truncdfhf2): Fix a comment.
1474         (extendhfdf2): Likewise.
1475         (cstorehf4): New.
1476         (movsicc): Fix some white-space.
1477         (movhfcc): New.
1478         (movsfcc): Fix some white-space.
1479         (*cmovhf): New.
1480         * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
1481         instructions are available.
1482         (*thumb2_movhi_vfp): Likewise.
1483         (*arm_movhi_fp16): New.
1484         (*thumb2_movhi_fp16): New.
1485         (*movhf_vfp_fp16): New.
1486         (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
1487         (*movhf_vfp): Likewise.
1488         (extendhfsf2): Enable when VFP FP16 instructions are available.
1489         (truncsfhf2):  Enable when VFP FP16 instructions are available.
1491 2016-09-23  Martin Liska  <mliska@suse.cz>
1493         * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
1495 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1497         * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
1498         V4HF modes.
1499         (arm_evpc_neon_vtrn): Likewise.
1500         (arm_evpc_neon_vrev): Likewise.
1501         (arm_evpc_neon_vext): Likewise.
1502         * config/arm/arm_neon.h (vbsl_f16): New.
1503         (vbslq_f16): New.
1504         (vdup_n_f16): New.
1505         (vdupq_n_f16): New.
1506         (vdup_lane_f16): New.
1507         (vdupq_lane_f16): New.
1508         (vext_f16): New.
1509         (vextq_f16): New.
1510         (vmov_n_f16): New.
1511         (vmovq_n_f16): New.
1512         (vrev64_f16): New.
1513         (vrev64q_f16): New.
1514         (vtrn_f16): New.
1515         (vtrnq_f16): New.
1516         (vuzp_f16): New.
1517         (vuzpq_f16): New.
1518         (vzip_f16): New.
1519         (vzipq_f16): New.
1520         * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
1521         (vdup_lane): New (v8hf, v4hf variants).
1522         (vext): New (v8hf, v4hf variants).
1523         (vbsl): New (v8hf, v4hf variants).
1524         * config/arm/iterators.md (VDQWH): New.
1525         (VH): New.
1526         (V_double_vector_mode): Add V8HF and V4HF.  Fix white-space.
1527         (Scalar_mul_8_16): Fix white-space.
1528         (Is_d_reg): Add V4HF and V8HF.
1529         * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
1530         (neon_vdup_lane<mode>): New.
1531         (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
1532         (*neon_vtrn<mode>_insn): Likewise.
1533         (neon_vzip<mode>_internal): Likewise. Also fix white-space.
1534         (*neon_vzip<mode>_insn): Likewise
1535         (neon_vuzp<mode>_internal): Likewise.
1536         (*neon_vuzp<mode>_insn): Likewise
1537         * config/arm/vec-common.md (vec_perm_const<mode>): New.
1539 2016-09-23  Jiong Wang  <jiong.wang@arm.com>
1540             Matthew Wahab  <matthew.wahab@arm.com>
1542         * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
1543         (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
1544         * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
1545         available.  Also fix some white-space.
1546         * config/arm/vfp.md (*arm_movhi_vfp): New.
1547         (*thumb2_movhi_vfp): New.
1549 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1551         * config/arm/arm-c.c (arm_cpu_builtins): Define
1552         "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
1553         "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
1555 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1557         * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
1558         arm_v8_1a_neon_ok.  Add entries for arm_v8_2a_fp16_scalar_ok,
1559         arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
1560         arm_v8_2a_fp16_neon_hw.
1561         (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
1562         arm_v8_2a_neon.
1564 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1566         * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
1567         arm_fp16_alternative_ok and arm_fp16_none_ok.
1569 2016-09-23  Martin Liska  <mliska@suse.cz>
1571         * ipa-icf.c (sem_variable::merge): Replace adress with address.
1573 2016-09-23  Matthew Wahab  <matthew.wahab@arm.com>
1575         * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
1576         ("armv8.2-a"): New.
1577         ("armv8.2-a+fp16"): New.
1578         * config/arm/arm-protos.h (FL2_ARCH8_2): New.
1579         (FL2_FP16INST): New.
1580         (FL2_FOR_ARCH8_2A): New.
1581         * config/arm/arm-tables.opt: Regenerate.
1582         * config/arm/arm.c (arm_arch8_2): New.
1583         (arm_fp16_inst): New.
1584         (arm_option_override): Set arm_arch8_2 and arm_fp16_inst.  Check
1585         for incompatible fp16-format settings.
1586         * config/arm/arm.h (TARGET_VFP_FP16INST): New.
1587         (TARGET_NEON_FP16INST): New.
1588         (arm_arch8_2): Declare.
1589         (arm_fp16_inst): Declare.
1590         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
1591         march=armv8.2-a and march=armv8.2-a+fp16.
1592         * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
1593         and armv8.2-a+fp16.
1594         * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
1595         "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
1597 2016-09-23  Martin Liska  <mliska@suse.cz>
1599         * doc/extend.texi: Remove fused-madd from i386 target options.
1601 2016-09-23  Martin Liska  <mliska@suse.cz>
1603         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1604         Handle movbe.
1606 2016-09-23  Martin Liska  <mliska@suse.cz>
1608         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1609         Handle crc32.
1611 2016-09-23  Martin Liska  <mliska@suse.cz>
1613         PR target/71652
1614         * config/i386/i386.c (ix86_option_override_internal): Change
1615         signature and return false when there's an error related to
1616         arch string.
1617         (release_options_strings): New function.
1618         (ix86_valid_target_attribute_tree): Call the function.
1620 2016-09-23  Jakub Jelinek  <jakub@redhat.com>
1622         * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
1623         instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
1624         (gen_hsa_ctor_assignment): Likewise.
1625         * print-tree.c (print_node): Likewise.
1626         * tree-dump.c (dequeue_and_dump): Likewise.
1627         * tree-sra.c (sra_modify_constructor_assign): Likewise.
1628         * expr.c (store_constructor): Likewise.
1629         * fold-const.c (operand_equal_p): Likewise.
1630         * tree-pretty-print.c (dump_generic_node): Likewise.
1631         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
1632         * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
1634 2016-09-23  Richard Biener  <rguenther@suse.de>
1636         * hooks.h (hook_uint_uintp_false): Declare.
1638 2016-09-22  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
1640         * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
1641         (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
1643 2016-09-22  Martin Sebor  <msebor@redhat.com>
1645         PR target/77676
1646         * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
1647         HOST_BITS_PER_WIDE_INT, make a static local variable auto.
1648         (target_int_min): Correct computation.
1649         (format_integer): Use long long as the argument for the ll length
1650         modifier.
1651         (format_floating): Use target_int_max().
1652         (get_string_length): Same.
1653         (format_string): Avoid setting the bounded flag for strings
1654         of unknown length.
1655         (try_substitute_return_value): Avoid setting range info when
1656         the result isn't bounded.
1657         * varasm.c (assemble_name): Increase buffer size.
1659 2016-09-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>
1660             Terry Guo  <terry.guo@arm.com>
1662         * target.def (elf_flags_numeric): New target hook.
1663         * targhooks.h (default_asm_elf_flags_numeric): New.
1664         * varasm.c (default_asm_elf_flags_numeric): New.
1665         (default_elf_asm_named_section): Use new target hook.
1666         * config/arm/arm.opt (mpure-code): New.
1667         * config/arm/arm.h (SECTION_ARM_PURECODE): New.
1668         * config/arm/arm.c (arm_asm_init_sections): Add section
1669         attribute to default text section if -mpure-code.
1670         (arm_option_check_internal): Diagnose use of option with
1671         non supported targets and/or options.
1672         (arm_asm_elf_flags_numeric): New.
1673         (arm_function_section): New.
1674         (arm_elf_section_type_flags): New.
1675         * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
1676         for -mpure-code.
1677         * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
1678         * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
1680 2016-09-22  Jan Hubicka  <hubicka@ucw.cz>
1682         * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
1684 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1686         * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
1687         * rtl.h: Adjust prototype.
1689 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1691         * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
1692         (prev_active_insn): Likewise.
1693         (active_insn_p): Likewise.
1694         * rtl.h: Adjust prototypes.
1695         * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
1696         * config/arc/arc.md: Likewise.
1697         * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
1698         (branch_needs_nop_p): Likewise.
1699         (use_skip_p): Likewise.
1700         * config/sh/sh.c (gen_block_redirect): Likewise.
1701         (split_branches): Likewise.
1702         * reorg.c (optimize_skip): Likewise.
1703         (fill_simple_delay_slots): Likewise.
1704         (fill_slots_from_thread): Likewise.
1705         (relax_delay_slots): Likewise.
1706         * resource.c (mark_target_live_regs): Likewise.
1708 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1710         * config/cris/cris.c (cris_asm_output_case_end): Change argument
1711         type to rtx_insn *.
1712         * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
1713         (prev_nonnote_nondebug_insn): Likewise.
1714         * config/cris/cris-protos.h: Adjust prototype.
1715         * rtl.h: Likewise.
1716         * jump.c (rtx_renumbered_equal_p): Adjust.
1718 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1720         * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
1721         * rtl.h: Adjust prototype.
1722         * config/sh/sh.md: Adjust.
1723         * dwarf2out.c (add_var_loc_to_decl): Likewise.
1725 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1727         * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
1728         (prev_nondebug_insn): Likewise.
1729         * loop-doloop.c (doloop_condition_get): Likewise.
1730         * rtl.h: Adjust prototype.
1731         * cfgloop.h: Likewise.
1733 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1735         * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
1736         (prev_nonnote_insn): Likewise.
1737         * jump.c (reversed_comparison_code_parts): Likewise.
1738         (reversed_comparison): Likewise.
1739         * rtl.h: Adjust prototypes.
1740         * config/arc/arc.md: Adjust.
1741         * cse.c (find_comparison_args): Likewise.
1742         * reorg.c (redundant_insn): Change return type to rtx_insn *.
1743         (fix_reg_dead_note): Change argument type to rtx_insn *.
1744         (delete_prior_computation): Likewise.
1745         (delete_computation): Likewise.
1746         (fill_slots_from_thread): Adjust.
1747         (relax_delay_slots): Likewise.
1748         * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1749         (simplify_relational_operation_1): Likewise.
1750         (simplify_ternary_operation): Likewise.
1752 2016-09-22  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
1754         * config/arc/arc-protos.h (arc_label_align): Change type of
1755         variables from rtx to rtx_insn *.
1756         * config/arc/arc.c (arc_label_align): Likewise.
1757         * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
1758         * config/bfin/bfin.c (workaround_speculation): Likewise.
1759         * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
1760         (find_last_same_clock): Likewise.
1761         (reorg_split_calls): Likewise.
1762         * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
1763         * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
1764         * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
1765         (same_cmp_following_p): Likewise.
1766         * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
1767         (same_cmp_following_p): Likwise.
1768         * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
1769         * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
1770         * config/nds32/nds32.c (nds32_target_alignment): Likewise.
1771         * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
1772         (rl78_alloc_physical_registers_cmp): Likewise.
1773         (rl78_alloc_physical_registers_umul): Likewise.
1774         (rl78_calculate_death_notes): Likewise.
1775         * config/s390/s390-protos.h (s390_label_align): Likewise.
1776         * config/s390/s390.c (s390_label_align): Likewise.
1777         * config/sh/sh.c (barrier_align): Likewise.
1778         * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
1779         * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
1780         (emit_cbcond_nop): Likewise.
1782 2016-09-22  Martin Liska  <mliska@suse.cz>
1784         PR ipa/77653
1785         * ipa-icf.c (sem_variable::merge): Yield merge operation if
1786         alias address matters, not necessarily address of original.
1788 2016-09-22  Richard Biener  <rguenther@suse.de>
1790         PR middle-end/77697
1791         * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
1792         fold fails.
1794 2016-09-22  Richard Biener  <rguenther@suse.de>
1796         PR middle-end/77677
1797         * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
1798         from constant folding results.
1799         (gimple_resimplify2): Likewise.
1800         (gimple_resimplify3): Likewise.
1802 2016-09-22  Richard Biener  <rguenther@suse.de>
1804         PR middle-end/77678
1805         * expr.c (expand_expr_real_1): Guard array access against negative
1806         offset.
1808 2016-09-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1810         * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
1811         of MPFR_RNDN.
1812         (format_floating): Likewise.
1814 2016-09-22  Jakub Jelinek  <jakub@redhat.com>
1816         PR fortran/77665
1817         * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
1818         for all IFN_GOMP_SIMD_* internal fns, not just for
1819         IFN_GOMP_SIMD_ORDERED_*.
1821 2016-09-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
1823         PR target/77670
1824         * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
1825         New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
1826         instructions when you want to invert the test.
1827         * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
1828         correct order for XXSEL.
1829         (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
1830         for using XSCMP{EQ,GT,GE}DP.
1832 2016-09-21  David Malcolm  <dmalcolm@redhat.com>
1834         * genconstants.c (main): Introduce noop_reader and convert call
1835         to read_md_files to a method call.
1836         * genenums.c (main): Likewise.
1837         * genmddeps.c (main): Likewise.
1838         * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
1839         rtx_reader_ptr->get_top_level_filename ().
1840         (write_tm_preds_h): Likewise.
1841         (write_insn_preds_c): Likewise.
1842         * gensupport.c (class gen_reader): New subclass of rtx_reader.
1843         (rtx_handle_directive): Convert to...
1844         (gen_reader::handle_unknown_directive): ...this.
1845         (init_rtx_reader_args_cb): Convert return type from bool to
1846         rtx_reader *.  Create a gen_reader instance, using it for the
1847         call to read_md_files.  Return it if no errors occur.
1848         (init_rtx_reader_args): Convert return type from bool to
1849         rtx_reader *.
1850         * gensupport.h (init_rtx_reader_args_cb): Likewise.
1851         (init_rtx_reader_args_cb): Likewise.
1852         * read-md.c (struct file_name_list): Move to class rtx_reader.
1853         (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
1854         (read_md_filename): Delete in favor of
1855         rtx_reader::m_read_md_filename.
1856         (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
1857         (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
1858         (base_dir): Delete in favor of rtx_reader::m_base_dir.
1859         (first_dir_md_include): Delete in favor of
1860         rtx_reader::m_first_dir_md_include.
1861         (last_dir_md_include_ptr): Delete in favor of
1862         rtx_reader::m_last_dir_md_include_ptr.
1863         (max_include_len): Delete.
1864         (rtx_reader_ptr): New.
1865         (fatal_with_file_and_line): Use get_filename and get_lineno
1866         accessors of rtx_reader_ptr.
1867         (require_char_ws): Likewise.
1868         (rtx_reader::read_char): New method, based on ::read_char.
1869         (rtx_reader::unread_char): New method, based on ::unread_char.
1870         (read_escape): Use get_filename and get_lineno accessors of
1871         rtx_reader_ptr.
1872         (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
1873         (read_string): Use get_filename and get_lineno accessors of
1874         rtx_reader_ptr.
1875         (rtx_reader::rtx_reader): New ctor.
1876         (rtx_reader::~rtx_reader): New dtor.
1877         (handle_include): Convert from a function to...
1878         (rtx_reader::handle_include): ...this method, converting
1879         handle_directive from a callback to a virtual function.
1880         (handle_file): Likewise, converting to...
1881         (rtx_reader::handle_file): ...this method.
1882         (handle_toplevel_file): Likewise, converting to...
1883         (rtx_reader::handle_toplevel_file): ...this method.
1884         (rtx_reader::get_current_location): New method.
1885         (parse_include): Convert from a function to...
1886         (rtx_reader::add_include_path): ...this method, dropping redundant
1887         update to unused max_include_len.
1888         (read_md_files): Convert from a function to...
1889         (rtx_reader::read_md_files): ...this method, converting
1890         handle_directive from a callback to a virtual function.
1891         (noop_reader::handle_unknown_directive): New method.
1892         * read-md.h (directive_handler_t): Delete this typedef.
1893         (in_fname): Delete.
1894         (read_md_file): Delete.
1895         (read_md_lineno): Delete.
1896         (read_md_filename): Delete.
1897         (class rtx_reader): New class.
1898         (rtx_reader_ptr): New decl.
1899         (class noop_reader): New subclass of rtx_reader.
1900         (read_char): Reimplement in terms of rtx_reader::read_char.
1901         (unread_char): Reimplement in terms of rtx_reader::unread_char.
1902         (read_md_files): Delete.
1903         * read-rtl.c (read_rtx_code): Update for deletion of globals
1904         read_md_filename and read_md_lineno.
1906 2016-09-21  Jason Merrill  <jason@redhat.com>
1908         * input.h (from_macro_definition_at): New.
1910 2016-09-21  Segher Boessenkool  <segher@kernel.crashing.org>
1912         * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
1914 2016-09-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1916         PR tree-optimization/77550
1917         * tree-vect-stmts.c (create_array_ref): Change parameters.
1918         (get_group_alias_ptr_type): New function.
1919         (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
1921 2016-09-21  Marek Polacek  <polacek@redhat.com>
1923         * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
1924         Add falls through comment.
1926 2016-09-21  Richard Biener  <rguenther@suse.de>
1928         * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
1929         (replace_child): Likewise.
1930         (remove_child_TAG): Adjust.
1931         (move_marked_base_types): Likewise.
1932         (prune_unused_types_prune): Clear die_sib of removed children.
1934 2016-09-21  Georg-Johann Lay  <avr@gjlay.de>
1936         PR target/77326
1937         * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
1938         touches some regs mentioned in cc_status, do CC_STATUS_INIT.
1940 2016-09-21  Richard Biener  <rguenther@suse.de>
1942         PR tree-optimization/77648
1943         * tree-ssa-structalias.c (process_constraint): Handle all DEREF
1944         with complex RHS.
1945         (make_transitive_closure_constraints): Adjust comment.
1946         (make_any_offset_constraints): New function.
1947         (handle_rhs_call): Make sure to first expand a pointer to all
1948         subfields before transitively closing it.
1949         (handle_const_call): Likewise.  Properly expand returned
1950         pointers as well.
1951         (handle_pure_call): Likewise.
1953 2016-09-21  Richard Biener  <rguenther@suse.de>
1954             Jakub Jelinek  <jakub@redhat.com>
1956         PR tree-optimization/77621
1957         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
1958         group at non-vectorizable stmts.
1960 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
1962         PR tree-optimization/72835
1963         * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
1964         (make_new_ssa_for_all_defs): Likewise.
1965         (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
1967 2016-09-20  Martin Sebor  <msebor@redhat.com>
1969         PR middle-end/49905
1970         * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
1971         * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
1972         * config/linux.c (gnu_libc_printf_pointer_format): New function.
1973         * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
1974         * config/sol2.c (solaris_printf_pointer_format): New function.
1975         * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
1976         options.
1977         * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
1978         * doc/tm.texi: Regenerate.
1979         * gimple-fold.h (get_range_strlen): New function.
1980         (get_maxval_strlen): Declare existing function.
1981         * gimple-fold.c (get_range_strlen): Add arguments and compute both
1982         maximum and minimum.
1983          (get_range_strlen): Define overload.
1984         (get_maxval_strlen): Adjust.
1985         * gimple-ssa-sprintf.c: New file and pass.
1986         * passes.def (pass_sprintf_length): Add new pass.
1987         * targhooks.h (default_printf_pointer_format): Declare new function.
1988         (gnu_libc_printf_pointer_format): Same.
1989         (solaris_libc_printf_pointer_format): Same.
1990         * targhooks.c (default_printf_pointer_format): Define new function.
1991         * tree-pass.h (make_pass_sprintf_length): Declare new function.
1992         * print-tree.c: Increase buffer size.
1994 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
1996         * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
1998 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
2000         * common.opt: New option -fipa-vrp.
2001         * ipa-cp.c (ipa_get_vr_lat): New.
2002         (ipcp_vr_lattice::print): Likewise.
2003         (print_all_lattices): Call ipcp_vr_lattice::print.
2004         (ipcp_vr_lattice::meet_with): New.
2005         (ipcp_vr_lattice::meet_with_1): Likewise.
2006         (ipcp_vr_lattice::top_p): Likewise.
2007         (ipcp_vr_lattice::bottom_p): Likewsie.
2008         (ipcp_vr_lattice::set_to_bottom): Likewise.
2009         (set_all_contains_variable): Call VR set_to_bottom.
2010         (initialize_node_lattices): Init VR lattices.
2011         (propagate_vr_accross_jump_function): New.
2012         (propagate_constants_accross_call): Call
2013         propagate_vr_accross_jump_function.
2014         (ipcp_store_vr_results): New.
2015         (ipcp_driver): Handle VR.
2016         * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
2017         (ipa_set_jf_unknown): Likewise.
2018         (ipa_compute_jump_functions_for_edge): Likewise.
2019         (ipa_node_params_t::duplicate): Likewise.
2020         (ipa_write_jump_function): Likewise.
2021         (ipa_read_jump_function): Likewise.
2022         (write_ipcp_transformation_info): Likewise.
2023         (read_ipcp_transformation_info): Likewise.
2024         (ipcp_update_vr): New.
2025         (ipcp_transform_function): Handle VR.
2026         * ipa-prop.h (struct ipa_vr): New.
2027         * cgraph.c: Include tree-vrp.h.
2028         * cgraphunit.c: Likewise.
2029         * ipa-utils.c: Likewise.
2030         * ipa.c: Likewise.
2031         * opts.c: Likewise.
2032         * toplev.c: Likewise.
2033         * ipa-devirt.c: Likewise.
2034         * ipa-inline-transform.c: Likewise.
2035         * ipa-inline.c: Likewise.
2036         * ipa-profile.c: Likewise.
2038 2016-09-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
2040         * doc/invoke.texi: Document -fdump-tree-evrp.
2041         * passes.def: Define new pass_early_vrp.
2042         * timevar.def: Define new TV_TREE_EARLY_VRP.
2043         * tree-pass.h (make_pass_early_vrp): New.
2044         * tree-ssa-propagate.c: Make replace_uses_in non static.
2045         * tree-ssa-propagate.h: Export replace_uses_in.
2046         * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
2047         (extract_range_from_assert): Factor out
2048         extract_range_for_var_from_comparison_expr.
2049         (vrp_initialize_lattice): New.
2050         (vrp_initialize): Factor out vrp_initialize_lattice.
2051         (vrp_valueize): Fix it to reject complex value ranges.
2052         (vrp_free_lattice): New.
2053         (evrp_dom_walker::before_dom_children): Likewise.
2054         (evrp_dom_walker::after_dom_children): Likewise.
2055         (evrp_dom_walker::push_value_range): Likewise.
2056         (evrp_dom_walker::pop_value_range): Likewise.
2057         (execute_early_vrp): Likewise.
2058         (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
2059         (make_pass_early_vrp): New.
2061 2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
2063         * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
2064         instead of exact_log2.
2066 2016-09-20  Uros Bizjak  <ubizjak@gmail.com>
2068         PR target/77621
2069         * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
2070         Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
2071         (ix86_add_stmt_cost): Penalize DFmode vector operations
2072         for !TARGET_VECTORIZE_DOUBLE.
2074 2016-09-20  Gerald Pfeifer  <gerald@pfeifer.com>
2076         * doc/invoke.texi (Warning Options): Simplify language.
2077         (Optimize Options): Complete sentence.
2079 2016-09-20  David Edelsohn  <dje.gcc@gmail.com>
2081         * dbxout.c (xcoff_debug_hooks):  Add filename parameter to
2082         early_finish hook.
2084 2016-09-20  Michael Meissner  <meissner@linux.vnet.ibm.com>
2086         PR target/71395
2087         * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
2088         inits on power8 and above, use the VMRGEW instruction instead of a
2089         permute.
2091         * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
2092         (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
2093         initialization.
2095 2016-09-20  Tamar Christina  <tamar.christina@arm.com>
2097         * config/aarch64/arm_neon.h
2098         (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
2099         (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
2100         (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
2102 2016-09-20  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2104         * config/var/vax.h (ELIMINABLE_REGS): Define.
2105         (INITIAL_ELIMINATION_OFFSET): Define.
2107 2016-09-20  Jakub Jelinek  <jakub@redhat.com>
2109         PR middle-end/77624
2110         * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
2111         cast to void * if the cast is from some other pointer type.
2113 2016-09-20  Richard Biener  <rguenther@suse.de>
2115         PR tree-optimization/77646
2116         * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
2117         a VDEF.
2119 2016-09-20  Tamar Christina  <tamar.christina@arm.com>
2121         * config/aarch64/arm_neon.h: Add gnu_inline and artificial
2122         attributes to all inlined functions and make them extern.
2124 2016-09-20  Richard Biener  <rguenther@suse.de>
2126         * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
2127         hook.
2128         * debug.c (do_nothing_debug_hooks): Adjust.
2129         * dbxout.c (dbx_debug_hooks): Likewise.
2130         * sdbout.c (sdb_debug_hooks): Likewise.
2131         * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
2132         (dwarf2out_finish): Move producer, filename and
2133         path annotation ...
2134         (dwarf2out_early_finish): ... here.  Remove in_lto_p special-casing.
2135         * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
2137 2016-09-19  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2139         PR c++/77434
2140         * doc/invoke.texi: Document -Wint-in-bool-context.
2142         PR middle-end/77421
2143         * dwarf2out.c (output_loc_operands): Fix an assertion.
2145 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
2147         * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
2148         (CR_DECIMAL_DIG): New macro.
2150 2016-09-19  Joseph Myers  <joseph@codesourcery.com>
2152         * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
2153         element.
2155 2016-09-19  Vladimir Makarov  <vmakarov@redhat.com>
2157         PR rtl-optimization/77416
2158         * lra-remat.c (operand_to_remat): Process hard coded insn
2159         registers.
2161 2016-09-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2163         * simplify-rtx.c (simplify_relational_operation_1): Add transformation
2164         (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
2166 2016-09-19  Segher Boessenkool  <segher@kernel.crashing.org>
2168         * target.def (lra_p): Wordsmithing.
2169         * doc/tm.texi: Regenerate.
2171 2016-09-19  Jakub Jelinek  <jakub@redhat.com>
2172             Jan Hubicka  <jh@suse.cz>
2174         PR target/77587
2175         * cgraph.c (cgraph_node::rtl_info): Pass &avail to
2176         ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
2177         Call ultimate_alias_target just once, not up to 4 times.
2179 2016-09-19  Richard Biener  <rguenther@suse.de>
2181         * dwarf2out.c (early_dwarf_finished): New global.
2182         (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
2183         is false.
2184         (dwarf2out_early_finish): Set early_dwarf_finished at the end,
2185         if called from LTO exit early.
2186         (dwarf2out_late_global_decl): When being during the early
2187         debug phase do not add locations but only const value attributes.
2188         Adjust the way we generate early DIEs for LTO.
2190 2016-09-19  Richard Biener  <rguenther@suse.de>
2192         PR middle-end/77605
2193         * tree-data-ref.c (analyze_subscript_affine_affine): Use the
2194         proper niter to bound the loops.
2196 2016-09-19  Richard Biener  <rguenther@suse.de>
2198         PR tree-optimization/77514
2199         * tree-ssa-pre.c (create_expression_by_pieces): Optimize
2200         search for folded stmt.
2202 2016-09-17  Jan Hubicka  <hubicka@ucw.cz>
2204         * passes.def (pass_early_thread_jumps): Schedule after forwprop.
2205         * tree-pass.h (make_pass_early_thread_jumps): Declare.
2206         * tree-ssa-threadbackward.c (fsm_find_thread_path,
2207         fsm_find_thread_path, profitable_jump_thread_path,
2208         fsm_find_control_statement_thread_paths,
2209         find_jump_threads_backwards): Add speed_p parameter.
2210         (pass_data_early_thread_jumps): New pass.
2211         (make_pass_early_thread_jumps): New function.
2213 2016-09-17  Andreas Schwab  <schwab@suse.de>
2215         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
2216         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2218 2016-09-16  Eric Botcazou  <ebotcazou@adacore.com>
2220         * recog.c (rest_of_handle_split_after_reload): Delete.
2221         (pass_split_after_reload::gate): New method.
2222         (pass_split_after_reload::execute): Call split_all_insns directly.
2224 2016-09-16  Jonathan Wakely  <jwakely@redhat.com>
2226         * doc/extend.texi (Integer Overflow Builtins): Fix type of out
2227         parameters for functions taking long long arguments.
2229 2016-09-16  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
2231         PR target/77613
2232         * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
2233         splat with truncate.
2235 2016-09-16  Jason Merrill  <jason@redhat.com>
2237         * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
2238         New.
2239         * hwint.c (exact_log2): Use pow2p_hwi.
2240         (ctz_hwi, ffs_hwi): Use least_bit_hwi.
2241         * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
2242         * builtins.c (get_object_alignment_2, get_object_alignment)
2243         (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
2244         least_bit_hwi.
2245         * calls.c (compute_argument_addresses, store_one_arg): Use
2246         least_bit_hwi.
2247         * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
2248         * combine.c (force_to_mode): Use least_bit_hwi.
2249         (contains_muldiv, find_split_point, combine_simplify_rtx)
2250         (simplify_if_then_else, simplify_set, force_to_mode)
2251         (if_then_else_cond, simplify_and_const_int_1)
2252         (simplify_compare_const): Use pow2p_hwi.
2253         * cse.c (fold_rtx): Use pow2p_hwi.
2254         * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
2255         Use least_bit_hwi.
2256         * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
2257         (init_expmed_one_conv): Use pow2p_hwi.
2258         * expr.c (is_aligning_offset): Use pow2p_hwi.
2259         * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
2260         (fold_binary_loc): Use pow2p_hwi.
2261         * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
2262         * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
2263         * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
2264         * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
2265         Use least_bit_hwi.
2266         * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
2267         * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
2268         * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
2269         * omp-low.c (oacc_loop_fixed_partitions)
2270         (oacc_loop_auto_partitions): Use least_bit_hwi.
2271         * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
2272         * stor-layout.c (place_field): Use least_bit_hwi.
2273         * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
2274         * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
2275         * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
2276         * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
2277         * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
2278         * tree-vect-data-refs.c (vect_analyze_group_access_1)
2279         (vect_grouped_store_supported, vect_grouped_load_supported)
2280         (vect_permute_load_chain, vect_shift_permute_load_chain)
2281         (vect_transform_grouped_load): Use pow2p_hwi.
2282         * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
2283         * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
2284         * tree-vect-stmts.c (vectorizable_mask_load_store): Use
2285         least_bit_hwi.
2286         * tsan.c (instrument_expr): Use least_bit_hwi.
2287         * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
2289 2016-09-16  Andreas Schwab  <schwab@suse.de>
2291         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
2292         OFFSET, not offset.
2293         * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2295 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
2297         PR target/77526
2298         * combine.c (rest_of_handle_combine): If any edges have been purged,
2299         free dominators if available.
2301 2016-09-16  Jakub Jelinek  <jakub@redhat.com>
2302             Eric Botcazou  <ebotcazou@adacore.com>
2304         PR middle-end/77594
2305         * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
2306         through into expand_addsub_overflow after expand_neg_overflow.
2308 2016-09-15  David Malcolm  <dmalcolm@redhat.com>
2310         * diagnostic-show-locus.c
2311         (selftest::test_fixit_insert_containing_newline): New function.
2312         (selftest::test_fixit_replace_containing_newline): New function.
2313         (selftest::diagnostic_show_locus_c_tests): Call the above.
2315 2016-09-15  Bin Cheng  <bin.cheng@arm.com>
2317         PR tree-optimization/77503
2318         * tree-vect-loop.c (vectorizable_reduction): Record reduction
2319         code for CONST_COND_REDUCTION at analysis stage and use it at
2320         transform stage.
2321         * tree-vectorizer.h (struct _stmt_vec_info): New field.
2322         (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
2323         * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
2324         field.
2326 2016-09-15  Richard Biener  <rguenther@suse.de>
2328         PR middle-end/77544
2329         * fold-const.c (split_tree): Do not split constant ~X.
2331 2016-09-15  Jakub Jelinek  <jakub@redhat.com>
2333         PR rtl-optimization/77425
2334         * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
2335         is NULL.
2337         PR middle-end/77475
2338         * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
2339         use %qs instead of %s where desirable, use argument instead of arg in
2340         the diagnostic wording, add list of supported strategies and
2341         spellcheck hint.
2342         (ix86_option_override_internal): Emit target("m...") instead of
2343         option("m...") in the diagnostic.  Use %qs instead of %s in invalid
2344         -march/-mtune option diagnostic.  Add list of supported arches/tunings
2345         and spellcheck hint.  Remove prefix, suffix and sw variables, use
2346         main_args_p ? "..." : "..." in diagnostics to make translation
2347         possible.
2349 2016-09-15  Richard Biener  <rguenther@suse.de>
2351         * dwarf2asm.h (dw2_asm_output_offset): Add overload with
2352         extra offset argument.
2353         * dwarf2asm.c (dw2_asm_output_offset): Implement that.
2354         * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
2355         to reflect new offset parameter.
2356         * doc/tm.texi: Regenerate.
2357         * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
2358         * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
2359         offset argument.
2360         (darwin_asm_output_dwarf_offset): Likewise.
2361         * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
2362         argument.
2363         (darwin_asm_output_dwarf_offset): Pass offset argument through.
2364         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
2365         * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2367 2016-09-15  Chung-Lin Tang  <cltang@codesourcery.com>
2369         PR fortran/72743
2370         * ipa-icf.c (set_alias_uids): New function.
2371         (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
2372         all the merged variable's referring aliases.
2374 2016-09-15  Richard Biener  <rguenther@suse.de>
2376         PR tree-optimization/77514
2377         * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
2378         only forced_stmts sequence.
2380 2016-09-15  Kugan Vivekanandarajah  <kuganv@linaro.org>
2382         * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
2383         * cfgexpand.c (update_alias_info_with_stack_vars): Use
2384         FOR_EACH_SSA_NAME to iterate over SSA variables.
2385         (pass_expand::execute): Likewise.
2386         * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
2387         * tree-cfg.c (dump_function_to_file): Likewise.
2388         * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
2389         (update_ssa): Likewise.
2390         * tree-ssa-alias.c (dump_alias_info): Likewise.
2391         * tree-ssa-ccp.c (ccp_finalize): Likewise.
2392         * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
2393         (create_outofssa_var_map): Likewise.
2394         (coalesce_ssa_name): Likewise.
2395         * tree-ssa-operands.c (dump_immediate_uses): Likewise.
2396         * tree-ssa-pre.c (compute_avail): Likewise.
2397         * tree-ssa-sccvn.c (init_scc_vn): Likewise.
2398         (scc_vn_restore_ssa_info): Likewise.
2399         (free_scc_vn): Likwise.
2400         (run_scc_vn): Likewise.
2401         * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
2402         * tree-ssa-ter.c (new_temp_expr_table): Likewise.
2403         * tree-ssa-copy.c (fini_copy_prop): Likewise.
2404         * tree-ssa.c (verify_ssa): Likewise.
2406 2016-09-14  Matthew Fortune  <matthew.fortune@imgtec.com>
2408         * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
2409         and mips64r2 as default 32-bit and 64-bit architectures.
2410         (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
2411         as default 32-bit and 64-bit architectures.
2413 2016-09-14  Pat Haugen  <pthaugen@us.ibm.com>
2415         * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
2416         of succ edge.
2418 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
2420         * target.def (lra_p): Change commentary (for the manual) for the
2421         new default.
2422         * doc/tm.texi: Regenerate.
2424 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
2426         * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
2427         * config/arm/arm.c (TARGET_LRA_P): Delete macro.
2428         * config/i386/i386.c (TARGET_LRA_P): Delete macro.
2429         * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
2431 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
2433         * targhooks.c (default_lra_p): Return true instead of false.
2435 2016-09-14  Segher Boessenkool  <segher@kernel.crashing.org>
2437         * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
2438         hook_bool_void_false.
2439         * config/avr/avr.c: Ditto.
2440         * config/bfin/bfin.c: Ditto.
2441         * config/c6x/c6x.c: Ditto.
2442         * config/cr16/cr16.c: Ditto.
2443         * config/cris/cris.c: Ditto.
2444         * config/epiphany/epiphany.c: Ditto.
2445         * config/fr30/fr30.c: Ditto.
2446         * config/frv/frv.c: Ditto.
2447         * config/h8300/h8300.c: Ditto.
2448         * config/ia64/ia64.c: Ditto.
2449         * config/iq2000/iq2000.c: Ditto.
2450         * config/lm32/lm32.c: Ditto.
2451         * config/m32c/m32c.c: Ditto.
2452         * config/m32r/m32r.c: Ditto.
2453         * config/m68k/m68k.c: Ditto.
2454         * config/mcore/mcore.c: Ditto.
2455         * config/microblaze/microblaze.c: Ditto.
2456         * config/mmix/mmix.c: Ditto.
2457         * config/mn10300/mn10300.c: Ditto.
2458         * config/moxie/moxie.c: Ditto.
2459         * config/msp430/msp430.c: Ditto.
2460         * config/nios2/nios2.c: Ditto.
2461         * config/nvptx/nvptx.c: Ditto.
2462         * config/pa/pa.c: Ditto.
2463         * config/pdp11/pdp11.c: Ditto.
2464         * config/rl78/rl78.c: Ditto.
2465         * config/sparc/sparc.c: Ditto.
2466         * config/spu/spu.c: Ditto.
2467         * config/stormy16/stormy16.c: Ditto.
2468         * config/tilegx/tilegx.c: Ditto.
2469         * config/tilepro/tilepro.c: Ditto.
2470         * config/v850/v850.c: Ditto.
2471         * config/vax/vax.c: Ditto.
2472         * config/visium/visium.c: Ditto.
2473         * config/xtensa/xtensa.c: Ditto.
2475 2016-09-14  Jakub Jelinek  <jakub@redhat.com>
2477         PR sanitizer/68260
2478         * tsan.c: Include target.h.
2479         (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
2480         (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
2481         (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
2482         BUILT_IN_ATOMIC_TEST_AND_SET entries.
2483         (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
2485 2016-09-14  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2486             Martin Liska  <mliska@suse.cz>
2488         PR middle-end/77574
2489         * predict.c (force_edge_cold): Add braces to a condition.
2491 2016-09-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2493         PR rtl-optimization/77289
2494         * lra-constraints.c (get_final_hard_regno): Removed.
2495         (get_hard_regno): Add new parameter final_p.
2496         (get_reg_class): Directly call lra_get_elimination_hard_regno.
2497         (operands_match_p): Adjust call to get_hard_regno.
2498         (uses_hard_regs_p): Likewise.
2499         (process_alt_operands): Likewise.
2501 2016-09-13  Joe Seymour  <joe.s@somniumtech.com>
2503         PR target/70713
2504         * config/msp430/msp430.c (msp430_start_function): Emit an error
2505         if a function is both weak and specifies an interrupt number.
2507 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
2509         PR tree-optimization/77454
2510         * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
2511         changing GIMPLE_COND.  Move update_stmt_if_modified call after this.
2512         Formatting fix.
2514 2016-09-13  Tamar Christina  <tamar.christina@arm.com>
2516         * config/aarch64/aarch64-builtins.c
2517         (aarch64_init_simd_builtins): Fix builtin type signature printing.
2519 2016-09-13  Uros Bizjak  <ubizjak@gmail.com>
2521         * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
2522         SFmode and SCmode arguments by reference.
2524 2016-09-13  David Malcolm  <dmalcolm@redhat.com>
2526         * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
2527         Rename to...
2528         (selftest::test_one_liner_fixit_insert_before): ...this, and update
2529         for renaming of add_fixit_insert to add_fixit_insert_before.
2530         (selftest::test_one_liner_fixit_insert_after): New function.
2531         (selftest::test_one_liner_fixit_validation_adhoc_locations):
2532         Update for renaming of add_fixit_insert to add_fixit_insert_before.
2533         (selftest::test_one_liner_many_fixits): Likewise.
2534         (selftest::test_diagnostic_show_locus_one_liner): Update for
2535         renaming, call new test function.
2536         (selftest::test_diagnostic_show_locus_fixit_lines): Update for
2537         renaming of add_fixit_insert to add_fixit_insert_before.
2538         (selftest::test_fixit_consolidation): Likewise.
2539         * diagnostic.c (selftest::test_print_parseable_fixits_insert):
2540         Likewise.
2541         * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
2542         (selftest::test_applying_fixits_insert_before): ...this.
2543         (selftest::test_applying_fixits_insert): Update for renaming of
2544         add_fixit_insert to add_fixit_insert_before.
2545         (selftest::test_applying_fixits_insert_after): New function.
2546         (selftest::test_applying_fixits_insert_after_at_line_end): New
2547         function.
2548         (selftest::test_applying_fixits_insert_after_failure): New function.
2549         (selftest::test_applying_fixits_multiple): Update for renaming of
2550         add_fixit_insert to add_fixit_insert_before.
2551         (selftest::change_line): Likewise.
2552         (selftest::test_applying_fixits_unreadable_file): Likewise.
2553         (selftest::test_applying_fixits_line_out_of_range): Likewise.
2554         (selftest::test_applying_fixits_column_validation): Likewise.
2555         (selftest::test_applying_fixits_column_validation): Likewise.
2556         (selftest::edit_context_c_tests): Update for renamed test function;
2557         call new test functions.
2559 2016-09-13  Pat Haugen  <pthaugen@us.ibm.com>
2561         PR tree-optimization/77536
2562         PR rtl-optimization/68212
2563         * config/rs6000/rs6000.md (div->recip splitter): Remove
2564         optimize_insn_for_speed_p condition.
2566 2016-09-13  Maciej W. Rozycki  <macro@imgtec.com>
2568         * optabs.c (prepare_cmp_insn): Update documentation comment.
2570 2016-09-13  Jakub Jelinek  <jakub@redhat.com>
2571             Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
2573         PR middle-end/77475
2574         * opts.h (candidates_list_and_hint): Declare.
2575         * opts-common.c (candidates_list_and_hint): New function.
2576         (cmdline_handle_error): Use it.
2578 2016-09-12  David Malcolm  <dmalcolm@redhat.com>
2580         * edit-context.c (edited_line::get_len): New accessor.
2581         (edited_file::print_diff): Split out hunk-printing into...
2582         (edited_file::print_diff_hunk): New method.
2583         (edited_file::print_diff_line): New method.
2585 2016-09-12  Andrew Pinski  <apinski@cavium.com>
2587         * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
2588         New tuning option.
2589         * config/aarch64/aarch64.c (thunderx_tunings): Enable
2590         AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
2591         (aarch64_operands_ok_for_ldpstp): Return false if
2592         AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
2593         was SImode and the alignment is less than 8 byte.
2594         (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2596 2016-09-12  Orlando Arias  <oarias@knights.ucf.edu>
2598         PR target/77570
2599         * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
2601 2016-09-12  Marek Polacek  <polacek@redhat.com>
2603         * doc/extend.texi: Use lowercase "boolean".
2604         * doc/invoke.texi: Likewise.
2605         * doc/md.texi: Likewise.
2606         * target.def: Likewise.
2607         * doc/tm.texi: Regenerated.
2609 2016-09-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2611         PR middle-end/77426
2612         * expmed.c (synth_mult): Delete duplicate mode check.
2614 2016-09-10  Tom de Vries  <tom@codesourcery.com>
2616         PR C/71602
2617         * builtins.c (std_canonical_va_list_type): Strictly return non-null for
2618         va_list type only.
2619         * config/i386/i386.c (ix86_canonical_va_list_type): Same.
2620         * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
2622 2016-09-09  Peter Bergner  <bergner@vnet.ibm.com>
2624         PR rtl-optimization/77289
2625         * lra-constraints.c (get_final_hard_regno): Add support for non hard
2626         register numbers.  Remove support for subregs.
2627         (get_hard_regno): Use SUBREG_P.  Don't call get_final_hard_regno().
2628         (get_reg_class): Delete removed get_final_hard_regno() argument.
2629         (uses_hard_regs_p): Call get_final_hard_regno().
2631 2016-09-09  Martin Sebor  <msebor@redhat.com>
2633         PR c/77520
2634         PR c/77521
2635         * pretty-print.c (pp_quoted_string): New function.
2636         (pp_format): Call it for %c and %s directives.
2638 2016-09-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2640         * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
2641         (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
2642         INITIAL_ELIMINATION_OFFSET) : Update documentation.
2643         * target.def (frame_pointer_required, can_eliminate): Likewise.
2644         * doc/tm.texi: Regenerated.
2645         * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
2646         ELIMINABLE_REGS.
2647         * df-scan.c (df_hard_reg_init): Likewise.
2648         * ira.c (ira_setup_eliminable_regset): Likewise.
2649         * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
2650         init_elim_table): Likewise.
2651         * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
2652         set_initial_elim_offsets, update_eliminables,
2653         init_elim_table): Likewise.
2654         * rtlanal.c (get_initial_register_offset): Likewise.
2655         * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
2656         * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2657         * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2658         * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2659         * config/fr30/fr30.h: Fix comment.
2660         * config/frv/frv.c: Likewise.
2661         * config/frv/frv.h: Likewise.
2662         * config/ft32/ft32.h: Likewise.
2663         * config/visium/visium.h: Likewise.
2664         * config/pa/pa64-linux.h: Likewise.
2665         * config/v850/v850.h: Likewise.
2666         * config/cris/cris.c: Likewise.
2667         * config/ia64/ia64.h: Likewise.
2668         * config/moxie/moxie.h: Likewise.
2669         * config/m32r/m32r.h: Likewise.
2671 2016-09-10  Alexander Ivchenko  <alexander.ivchenko@intel.com>
2673         PR target/77267
2674         * config.in: Regenerate.
2675         * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
2676         New macro.
2677         (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
2678         (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
2679         static-libmpxwrappers case.
2680         (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
2681         MPX_LD_AS_NEEDED_GUARD_POP.
2682         * configure: Regenerate.
2683         * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
2684         defined if linker support "--push-state"/"--pop-state".
2686 2016-09-09  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2688         * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
2690 2016-09-09  Joseph Myers  <joseph@codesourcery.com>
2692         * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
2693         (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
2694         (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
2695         (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
2696         (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
2697         (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
2698         (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
2699         Document.
2700         * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
2701         width macros from TS 18661-1.
2702         * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
2704 2016-09-08  Jakub Jelinek  <jakub@redhat.com>
2706         PR fortran/77516
2707         * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
2708         OMP_CLAUSE_SAFELEN_EXPR.
2710 2016-09-07  David Malcolm  <dmalcolm@redhat.com>
2712         * Makefile.in (OBJS): Add substring-locations.o.
2713         * langhooks-def.h (class substring_loc): New forward decl.
2714         (lhd_get_substring_location): New decl.
2715         (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
2716         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
2717         * langhooks.c (lhd_get_substring_location): New function.
2718         * langhooks.h (class substring_loc): New forward decl.
2719         (struct lang_hooks): Add field get_substring_location.
2720         * substring-locations.c: New file, taking definition of
2721         format_warning_va and format_warning_at_substring from
2722         c-family/c-format.c, making them non-static.
2723         * substring-locations.h (class substring_loc): Move class here
2724         from c-family/c-common.h.  Add and rewrite comments.
2725         (format_warning_va): New decl.
2726         (format_warning_at_substring): New decl.
2727         (get_source_location_for_substring): Add comment.
2729 2016-09-07  Eric Gallager  <egall@gwmail.gwu.edu>
2731         * config/i386/i386.c: Add 'U' suffix to processor feature bits
2732         to avoid -Wnarrowing warning.
2733         * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
2734         * opts.c: Likewise for SANITIZER_OPT bitmasks.
2736 2016-09-07  Wilco Dijkstra  <wdijkstr@arm.com>
2738         * config/aarch64/aarch64.c (aarch64_legitimize_address):
2739         Avoid use of base_offset if offset already in range.
2741 2016-09-07  Kaz Kojima  <kkojima@gcc.gnu.org>
2743         * config/sh/sh-protos.h (struct sh_atomic_model,
2744         selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
2745         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
2746         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
2747         * config/sh/sh.h (struct sh_atomic_model,
2748         selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
2749         TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
2750         TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
2751         Guard with __cplusplus.
2753 2016-09-06  Jakub Jelinek  <jakub@redhat.com>
2755         PR target/69255
2756         * config/i386/i386.c (ix86_expand_builtin): For builtin with
2757         unsupported or unknown ISA, use expand_call.
2759 2016-09-06  Martin Liska  <mliska@suse.cz>
2761         PR gcov-profile/77378
2762         PR gcov-profile/77466
2763         * tree-profile.c (tree_profiling): Detect whether target can use
2764         -fprofile-update=atomic.
2766 2016-09-06  Richard Biener  <rguenther@suse.de>
2768         PR tree-optimization/77479
2769         * tree-vrp.c (update_value_range): Extend overflow handling to
2770         VARYING.
2772 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
2774         PR target/77476
2775         * config/i386/i386.md (isa): Add x64_avx512bw.
2776         (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
2777         (kmov_isa): New mode attr.
2778         (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
2779         (*zero_extend<mode>si2): Likewise.
2780         (*zero_extendqihi2): Use avx512dq isa for the last alternative.
2782 2016-09-05  Gerald Pfeifer  <gerald@pfeifer.com>
2784         * doc/invoke.texi (SPU Options): nops -> NOPs.
2785         (x86 Options): Ditto.
2787 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
2789         PR middle-end/77475
2790         * toplev.c (process_options): Temporarily set input_location
2791         to UNKNOWN_LOCATION around targetm.target_option.override () call.
2793 2016-09-05  Uros Bizjak  <ubizjak@gmail.com>
2795         PR rtl-optimization/77452
2796         * explow.c (plus_constant) <case MEM>: Extract scalar constant from
2797         inner-mode reference to a CONST_VECTOR constant in the constant pool.
2799 2016-09-05  Marek Polacek  <polacek@redhat.com>
2801         PR c/77423
2802         * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
2804 2016-09-05  Jakub Jelinek  <jakub@redhat.com>
2806         PR other/77421
2807         * gensupport.c (alter_output_for_subst_insn): Remove redundant
2808         *insn_out == '*' test.  Don't copy unnecessary to yet another
2809         memory buffer, and don't leak it.
2811         PR rtl-optimization/77425
2812         * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
2814 2016-09-03  Kirill Yukhin  <kirill.yukhin@intel.com>
2816         * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
2818 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
2820         * common.opt (fdiagnostics-generate-patch): New option.
2821         * diagnostic.c: Include "edit-context.h".
2822         (diagnostic_initialize): Initialize context->edit_context_ptr.
2823         (diagnostic_finish): Delete context->edit_context_ptr.
2824         (diagnostic_report_diagnostic): Add fix-it hints from the
2825         diagnostic to context->edit_context_ptr, if any.
2826         * diagnostic.h (class edit_context): Add forward decl.
2827         (struct diagnostic_context): Add field "edit_context_ptr".
2828         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
2829         -fdiagnostics-generate-patch.
2830         (-fdiagnostics-generate-patch): New item.
2831         * toplev.c: Include "edit-context.h".
2832         (process_options): Set global_dc->edit_context_ptr to a new
2833         edit_context if the options need one.
2834         (toplev::main): Handle -fdiagnostics-generate-patch by using
2835         global_dc->edit_context_ptr.
2837 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
2839         PR c/65467
2840         * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
2841         map and firstprivate clauses on target construct for _Atomic
2842         qualified decls.
2843         (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
2844         on target construct for _Atomic qualified decls.
2845         * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
2846         decls.
2847         * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
2848         _Atomic qualified arguments not mentioned in uniform clause.
2850 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
2852         * Makefile.in (OBJS-libcommon): Add edit-context.o.
2853         * diagnostic-color.c (color_dict): Add "diff-filename",
2854         "diff-hunk", "diff-delete", and "diff-insert".
2855         (parse_gcc_colors): Update default value of GCC_COLORS in comment
2856         to reflect above changes.
2857         * doc/invoke.texi (-fdiagnostics-color): Update description of
2858         default GCC_COLORS, and of the supported capabilities.
2859         * edit-context.c: New file.
2860         * edit-context.h: New file.
2861         * input.c (struct fcache): Add field "missing_trailing_newline".
2862         (diagnostics_file_cache_forcibly_evict_file): Initialize it to
2863         true.
2864         (add_file_to_cache_tab): Likewise.
2865         (fcache::fcache): Likewise.
2866         (get_next_line): Update c->missing_trailing_newline.
2867         (location_missing_trailing_newline): New function.
2868         * input.h (location_missing_trailing_newline): New decl.
2869         * selftest-run-tests.c (selftest::run_tests): Call
2870         edit_context_c_tests.
2871         * selftest.h (edit_context_c_tests): New decl.
2873 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
2874             Richard Biener  <rguenth@suse.de>
2876         PR tree-optimization/77444
2877         * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
2878         as steptype, remove redundant initialization.
2880 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
2882         PR sanitizer/77396
2883         * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
2884         (sanopt_optimize_walker): Optimize away
2885         __asan_before_dynamic_init (...) followed by
2886         __asan_after_dynamic_init () without intervening memory loads/stores.
2887         * ipa-pure-const.c (special_builtin_state): Handle
2888         BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
2889         BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
2891 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2893         * cfg.c (free_original_copy_tables): Replace second assignment of
2894         bb_copy = NULL by bb_original = NULL. 
2896 2016-09-02  Jakub Jelinek  <jakub@redhat.com>
2898         PR other/77421
2899         * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
2900         assignment added in r216794.
2902 2016-09-02  David Malcolm  <dmalcolm@redhat.com>
2904         * Makefile.in (OBJS): Add typed-splay-tree.o.
2905         * selftest-run-tests.c (selftest::run_tests): Call
2906         typed_splay_tree_c_tests.
2907         * selftest.h (typed_splay_tree_c_tests): New decl.
2908         * typed-splay-tree.c: New file.
2909         * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
2910         (typed_splay_tree::max): New method.
2911         (typed_splay_tree::min): New method.
2912         (typed_splay_tree::foreach): New method.
2913         (typed_splay_tree::closure): New struct.
2914         (typed_splay_tree::inner_foreach_fn): New function.
2916 2016-09-02  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2918         * ipa-cp.c (ipcp_store_bits_results): Change option name from
2919         -fipa-cp-bit to -fipa-bit-cp.
2921 2016-09-01  Martin Sebor  <msebor@redhat.com>
2923         PR tree-optimization/71831
2924         * tree-object-size.h: Return bool instead of the size and add
2925         argument for the size.
2926         * tree-object-size.c (compute_object_offset): Update signature.
2927         (addr_object_size): Same.
2928         (compute_builtin_object_size): Return bool instead of the size
2929         and add argument for the size.  Handle POINTER_PLUS_EXPR when
2930         optimization is disabled.
2931         (expr_object_size): Adjust.
2932         (plus_stmt_object_size): Adjust.
2933         (pass_object_sizes::execute): Adjust.
2934         * builtins.c (fold_builtin_object_size): Adjust.
2935         * doc/extend.texi (Object Size Checking): Update.
2936         * ubsan.c (instrument_object_size): Adjust.
2938 2016-09-01  Martin Sebor  <msebor@redhat.com>
2940         * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
2941         it fits the output of the formatted function regardless of its
2942         arguments.
2943         * gcc/genmodes.c (parser::parse_expr): Same.
2944         * gimplify.c (gimplify_asm_expr): Same.
2945         * passes.c (pass_manager::register_one_dump_file): Same.
2946         * print-tree.c (print_node): Same.
2948 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2950         * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
2952 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2954         * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
2956 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2958         * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
2959         * config/rs6000/vector.md: Ditto.
2960         * config/rs6000/vsx.md: Ditto.
2962 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
2964         * ipa-inline-analysis.c (param_change_prob): Get to the base object
2965         first in all cases.
2967 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2969         * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
2970         *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
2971         *return_and_restore_gpregs_<mode>_r11,
2972         *return_and_restore_gpregs_<mode>_r12,
2973         *return_and_restore_gpregs_<mode>_r1,
2974         *return_and_restore_fpregs_<mode>_r11,
2975         *return_and_restore_fpregs_<mode>_r12,
2976         *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
2977         directly instead of via the "l" constraint.  Renumber operands.
2978         Fix whitespace.
2980 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
2982         * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
2983         save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
2984         *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
2985         * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
2986         load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
2987         *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
2988         *call_value_nonlocal_darwin64, reload_macho_picbase,
2989         reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
2990         * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
2991         * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
2992         *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
2993         *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
2994         *save_fpregs_<mode>_r1): Ditto.
2995         * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
2996         *return_and_restore_gpregs_spe): Ditto.
2998 2016-09-01  Segher Boessenkool  <segher@kernel.crashing.org>
3000         * config/rs6000/rs6000.md
3001         (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
3002         the use of the link register.
3003         (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
3005 2016-09-01  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
3006             Michael Meissner  <meissner@linux.vnet.ibm.com>
3008         PR target/72827
3009         * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
3010         reg+reg addressing for TImode.
3011         (rs6000_legitimate_address_p): Only allow register indirect
3012         addressing for TImode, even without TARGET_QUAD_MEMORY.
3014 2016-09-01  Richard Biener  <rguenther@suse.de>
3016         PR middle-end/77436
3017         * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
3018         check whether the result fits the desired result type.
3020 2016-09-01  Nathan Sidwell  <nathan@acm.org>
3022         * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
3024 2016-09-01  Wilco Dijkstra  <wdijkstr@arm.com>
3026         * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
3027         New function.
3028         (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
3030 2016-09-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3032         * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
3033         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
3034         for comparisons of integer ZERO_EXTEND against zero.
3036 2016-09-01  Eric Botcazou  <ebotcazou@adacore.com>
3038         * config/i386/i386.c (ix86_option_override_internal): Also disable the
3039         STV pass if -mstackrealign is enabled.
3041 2016-08-31  Ilya Verbin  <iverbin@gmail.com>
3043         * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
3044         AVX512IFMA.
3046 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
3048         * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
3049         (layout_range::intersects_line_p): New method.
3050         (test_range_contains_point_for_single_point): Rename to...
3051         (test_layout_range_for_single_point): ...this, and add testing
3052         for layout_range::intersects_line_p.
3053         (test_range_contains_point_for_single_line): Rename to...
3054         (test_layout_range_for_single_line): ...this,  and add testing
3055         for layout_range::intersects_line_p.
3056         (test_range_contains_point_for_multiple_lines): Rename to...
3057         (test_layout_range_for_multiple_lines): ...this,  and add testing
3058         for layout_range::intersects_line_p.
3059         (layout::layout): Populate m_fixit_hints.
3060         (layout::get_expanded_location): Handle the case of a line-span
3061         for a fix-it hint.
3062         (layout::validate_fixit_hint_p): New method.
3063         (get_line_span_for_fixit_hint): New function.
3064         (layout::calculate_line_spans): Add spans for fixit-hints.
3065         (layout::should_print_annotation_line_p): New method.
3066         (layout::print_any_fixits): Drop param "richloc", instead using
3067         validated fixits in m_fixit_hints.  Add "const" to hint pointers.
3068         (diagnostic_show_locus): Avoid printing blank annotation lines.
3069         (selftest::test_diagnostic_context::test_diagnostic_context):
3070         Initialize show_column and start_span.
3071         (selftest::test_diagnostic_context::start_span_cb): New static
3072         function.
3073         (selftest::test_diagnostic_show_locus_fixit_lines): New function.
3074         (selftest::diagnostic_show_locus_c_tests): Update for function
3075         renamings.  Call test_diagnostic_show_locus_fixit_lines.
3077 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
3079         PR tree-optimization/73714
3080         * match.pd (a * (1 << b)): Revert change from 2016-05-23.
3082 2016-08-31  David Malcolm  <dmalcolm@redhat.com>
3084         * selftest.c: Move "namespace selftest {" to top of file,
3085         removing explicit "selftest::" qualifiers throughout.
3087 2016-08-31  Marc Glisse  <marc.glisse@inria.fr>
3089         * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
3090         New types.
3091         (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
3092         _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
3093         Replace builtin with vector extension.
3094         * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
3095         New types.
3096         (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
3097         _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
3098         Replace builtin with vector extension.
3099         * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
3100         (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
3101         Replace builtin with vector extension.
3102         * config/i386/xmmintrin.h (__m128_u): New type.
3103         (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
3104         (_mm_load_ps, _mm_store_ps): Simplify.
3106 2016-08-31  Eric Botcazou  <ebotcazou@adacore.com>
3108         * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
3110 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
3112         * diagnostic-show-locus.c (colorizer::begin_state): Support more
3113         than 3 ranges per diagnostic by alternating between color 1 and
3114         color 2.
3115         (layout::layout): Replace use of rich_location::MAX_RANGES
3116         with richloc->get_num_locations ().
3117         (layout::calculate_line_spans): Replace use of
3118         rich_location::MAX_RANGES with m_layout_ranges.length ().
3119         (layout::print_annotation_line): Handle arbitrary numbers of
3120         ranges in caret-printing by defaulting to '^'.
3121         (selftest::test_one_liner_many_fixits): New function.
3122         (test_diagnostic_show_locus_one_liner): Call it.
3123         * diagnostic.c (diagnostic_initialize): Update for renaming
3124         of rich_location::MAX_RANGES to
3125         rich_location::STATICALLY_ALLOCATED_RANGES.
3126         * diagnostic.h (struct diagnostic_context): Likewise.
3128 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
3130         * selftest.c (selftest::named_temp_file::named_temp_file): New
3131         ctor.
3132         (selftest::temp_source_file::~temp_source_file): Move to...
3133         (selftest::named_temp_file::~named_temp_file): ...here.
3134         (selftest::test_named_temp_file): New function.
3135         (selftest::selftest_c_tests): Call test_named_temp_file.
3136         * selftest.h (class named_temp_file): New class.
3137         (class temp_source_file): Convert to a subclass of named_temp_file.
3139 2016-08-30  Segher Boessenkool  <segher@kernel.crashing.org>
3141         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
3142         USEs of LR_REGNO in returns and sibcalls.
3143         (rs6000_output_mi_thunk): Similar.
3144         (rs6000_sibcall_aix): Similar.
3145         * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
3146         sibcall_local64, sibcall_value_local32, sibcall_value_local64,
3147         sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
3148         Remove the USE of LR_REGNO from the patterns as well.  Delete an
3149         obsolete comment.
3150         (return_internal_<mode>): Delete.
3152 2016-08-30  Tamar Christina  <tamar.christina@arm.com>
3154         * gcc/config/aarch64/aarch64-simd.md
3155         (aarch64_ld2<mode>_dreg_le): New.
3156         (aarch64_ld2<mode>_dreg_be): New.
3157         (aarch64_ld2<mode>_dreg): Removed.
3158         (aarch64_ld3<mode>_dreg_le): New.
3159         (aarch64_ld3<mode>_dreg_be): New.
3160         (aarch64_ld3<mode>_dreg): Removed.
3161         (aarch64_ld4<mode>_dreg_le): New.
3162         (aarch64_ld4<mode>_dreg_be): New.
3163         (aarch64_ld4<mode>_dreg): Removed.
3164         (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
3166 2016-08-30  David Malcolm  <dmalcolm@redhat.com>
3168         * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
3169         redundant location param.
3170         (test_one_liner_fixit_remove): Likewise.
3171         (test_one_liner_fixit_replace): Likewise.
3172         (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
3173         * gcc-rich-location.c
3174         (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
3175         get_range_from_loc.  Drop overload taking a const char *.
3176         * gcc-rich-location.h
3177         (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
3178         a const char *.
3180 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3182         * config/linux.c (linux_libc_has_function): Return true on musl.
3184 2016-08-30  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3186         * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
3188 2016-08-30  Eric Botcazou  <ebotcazou@adacore.com>
3190         * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
3191         used for abnormal egdes.
3193 2016-08-30  Jakub Jelinek  <jakub@redhat.com>
3195         PR tree-optimization/72866
3196         * tree-vect-patterns.c (search_type_for_mask): Turn into
3197         a small wrapper, move all code to ...
3198         (search_type_for_mask_1): ... this new function.  Add caching
3199         and adjust recursive calls.
3201         PR debug/77363
3202         * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
3203         instead of lookup_type_die (type_main_variant (type)) even for array
3204         types.
3206         PR middle-end/77377
3207         * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
3208         constant pool reference return x instead of c.
3210 2016-08-29  Segher Boessenkool  <segher@kernel.crashing.org>
3212         * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
3213         include MQ.
3215 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
3217         * input.c
3218         (selftest::test_make_location_nonpure_range_endpoints): Fix
3219         header comment.
3221 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
3223         * diagnostic-show-locus.c
3224         (selftest::test_one_liner_fixit_validation_adhoc_locations): New
3225         function.
3226         (selftest::test_diagnostic_show_locus_one_liner): Call it.
3227         * input.c (get_pure_location): Move to libcpp/line-map.c.
3228         * input.h (get_pure_location): Convert decl to an inline function
3229         calling implementation in libcpp.
3231 2016-08-29  Uros Bizjak  <ubizjak@gmail.com>
3233         PR target/77403
3234         * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
3235         template for intel asm dialect.
3236         (vec_set_hi_<mode><mask_name>): Ditto.
3238 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
3240         * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
3241         (selftest::fail_formatted): Likewise.
3243 2016-08-29  David Malcolm  <dmalcolm@redhat.com>
3245         * input.c (make_location): Call get_start and get_finish
3246         on the endpoints to avoid storing packed ranges or ad-hoc
3247         ranges in them.
3248         (selftest::test_make_location_nonpure_range_endpoints): New function.
3249         (selftest::input_c_tests): Call it.
3250         * input.h (get_start): New inline function.
3252 2016-08-29  Tom de Vries  <tom@codesourcery.com>
3254         PR c/77398
3255         * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
3256         with assert.
3258 2016-08-29  Eric Botcazou  <ebotcazou@adacore.com>
3260         * Makefile.in (gcov-iov.h): Add dummy recipe.
3262 2016-08-29  Nathan Sidwell  <nathan@acm.org>
3264         * config/nvptx/nvptx.c: #include tree-vrp.h.
3266 2016-08-28  Eric Botcazou  <ebotcazou@adacore.com>
3268         PR target/77324
3269         * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
3270         HIGH+LO construct during reload.
3272 2016-08-28  Tom de Vries  <tom@codesourcery.com>
3274         PR lto/70955
3275         * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
3276         'sysv_abi va_list' attribute.
3277         (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
3278         (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
3279         attributes.
3281 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3283         * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
3284         * emit-rtl.c (unshare_all_rtl_1): Adjust.
3285         (unshare_all_rtl_again): Likewise.
3286         * function.c (assign_stack_local_1): Likewise.
3287         (assign_stack_temp_for_type): Likewise.
3289 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3291         * cfgbuild.c (make_edges): Adjust.
3292         * cfgrtl.c (can_delete_label_p): Likewise.
3293         * dwarf2cfi.c (create_trace_edges): Likewise.
3294         * except.c (sjlj_emit_dispatch_table): Likewise.
3295         * function.h (struct expr_status): make x_forced_labels a vector.
3296         * jump.c (rebuild_jump_labels_1): Adjust.
3297         * reload1.c (set_initial_label_offsets): Likewise.
3298         * stmt.c (force_label_rtx): Likewise.
3299         (expand_label): Likewise.
3301 2016-08-27  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
3303         * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
3305 2016-08-27  Patrick Palka  <ppalka@gcc.gnu.org>
3307         PR tree-optimization/71077
3308         PR tree-optimization/68542
3309         * fold-const.c (fold_relational_const): Fix folding of
3310         VECTOR_CST comparisons that have a scalar boolean result type.
3311         (selftest::test_vector_folding): New static function.
3312         (selftest::fold_const_c_tests): Call it.
3314 2016-08-27  Gerald Pfeifer  <gerald@pfeifer.com>
3316         * doc/extend.texi (SPU Built-in Functions): Remove stale
3317         references to material formerly at IBM and Sony.
3319 2016-08-26  David Edelsohn  <dje.gcc@gmail.com>
3321         PR target/77349
3322         * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
3324 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
3326         * diagnostic-show-locus.c
3327         (selftest::test_fixit_consolidation): New function.
3328         (selftest::diagnostic_show_locus_c_tests): Call it.
3329         * gcc-rich-location.h (gcc_rich_location): Eliminate unused
3330         constructor based on source_range.
3332 2016-08-26  David Malcolm  <dmalcolm@redhat.com>
3334         * diagnostic-color.c (color_dict): Add "fixit-insert" and
3335         "fixit-delete".
3336         (parse_gcc_colors): Update description of default GCC_COLORS.
3337         * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
3338         (colorizer::set_fixit_insert): New method.
3339         (colorizer::set_fixit_delete): New method.
3340         (colorizer::get_color_by_name): New method.
3341         (colorizer::STATE_FIXIT_INSERT): New constant.
3342         (colorizer::STATE_FIXIT_DELETE): New constant.
3343         (class colorizer): Drop "_cs" suffix from fields.  Delete "_ce"
3344         fields in favor of new field "m_stop_color".  Add fields
3345         "m_fixit_insert" and "m_fixit_delete".
3346         (colorizer::colorizer): Update for above changes.  Replace
3347         colorize_start calls with calls to get_color_by_name.
3348         (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
3349         STATE_FIXIT_DELETE.  Update for field renamings.
3350         (colorizer::finish_state): Simplify by using m_stop_color,
3351         rather than multiple identical "*_ce" fields.
3352         (colorizer::get_color_by_name): New method.
3353         (layout::print_any_fixits): Print insertions and replacements
3354         using the "fixit-insert" color, and deletions using the
3355         "fixit-delete" color.
3356         * doc/invoke.texi (-fdiagnostics-color): Update description of
3357         default GCC_COLORS, and of the supported capabilities.
3359 2016-08-26  Max Filippov  <jcmvbkbc@gmail.com>
3361         * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
3362         current_function_static_stack_size variable with the static
3363         stack frame size of the current function when
3364         flag_stack_usage_info is enabled.
3366 2016-08-26  Nathan Sidwell  <nathan@acm.org>
3368         * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
3369         assignment inside if condition.
3371 2016-08-26  Richard Biener  <rguenther@suse.de>
3373         PR tree-optimization/69047
3374         * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
3375         extracts similar to what FRE does.
3376         (non_rewritable_mem_ref_base): Likewise.
3378 2016-08-26  Joseph Myers  <joseph@codesourcery.com>
3380         * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
3381         (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
3382         * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3383         * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3384         * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
3385         Likewise.
3386         * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3387         * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3388         * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3389         * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
3390         * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3392 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3394         PR target/70473
3395         * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
3396         reservation duration to 15 cycles.
3397         (cortex_a8_vfp_macs): Likewise.
3398         (cortex_a8_vfp_macd): Likewise.
3399         (cortex_a8_vfp_divs): Likewise.
3400         (cortex_a8_vfp_divd): Likewise.
3402 2016-08-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3404         * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
3405         (aarch_macro_fusion_pair_p): Use above to avoid early return.
3407 2016-08-26  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3408             Martin Jambhor  <mjambor@suse.cz>
3410         * common.opt: New option -fipa-bit-cp.
3411         * doc/invoke.texi: Document -fipa-bit-cp.
3412         * opts.c (default_options_table): Add entry for -fipa-bit-cp.
3413         (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
3414         * tree-ssa-ccp.h: New header file.
3415         * tree-ssa-ccp.c: Include tree-ssa-ccp.h
3416         (bit_value_binop_1): Change to bit_value_binop_1 and export it.
3417         Replace all occurences of tree parameter by two new params: signop, int.
3418         (bit_value_unop_1): Change to bit_value_unop and export it.
3419         Replace all occurences of tree parameter by two new params: signop,
3420         int.
3421         (bit_value_binop): Change call from bit_value_binop_1 to
3422         bit_value_binop.
3423         (bit_value_assume_aligned): Likewise.
3424         (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
3425         (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
3426         to ccp_finalize.
3427         (ccp_finalize): Skip processing if val->mask == 0.
3428         * ipa-cp.c: Include tree-ssa-ccp.h
3429         (ipcp_bits_lattice): New class.
3430         (ipcp_param_lattice (bits_lattice): New member.
3431         (print_all_lattices): Call ipcp_bits_lattice::print.
3432         (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
3433         (initialize_node_lattices): Likewise.
3434         (propagate_bits_accross_jump_function): New function.
3435         (propagate_constants_accross_call): Call
3436         propagate_bits_accross_jump_function.
3437         (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
3438         (ipcp_store_bits_results): New function.
3439         (ipcp_driver): Call ipcp_store_bits_results.
3440         * ipa-prop.h (ipa_bits): New struct.
3441         (ipa_jump_func): Add new member bits of type ipa_bits.
3442         (ipa_param_descriptor): Change decl to decl_or_type.
3443         (ipa_get_param): Change decl to decl_or_type and assert on
3444         PARM_DECL.
3445         (ipa_get_type): New function.
3446         (ipcp_transformation_summary): New member bits.
3447         * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
3448         (ipa_populate_param_decls): Likewise.
3449         (ipa_dump_param): Likewise.
3450         (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
3451         function.
3452         (ipa_set_jf_unknown): Set ipa_bits::known to false.
3453         (ipa_compute_jump_functions_for_edge): Compute jump function for bits
3454         propagation.
3455         (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
3456         (ipa_write_jump_function): Add streaming for ipa_bits.
3457         (ipa_read_jump_function): Add support for reading streamed ipa_bits.
3458         (write_ipcp_transformation_info): Add streaming for ipa_bits
3459         summary for ltrans.
3460         (read_ipcp_transfomration_info): Add support for reading streamed
3461         ipa_bits.
3462         (ipcp_update_bits): New function.
3463         (ipcp_transform_function): Call ipcp_update_bits.
3465 2016-08-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3467         * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
3468         (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
3470 2016-08-25  David Edelsohn  <dje.gcc@gmail.com>
3472         * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
3474 2016-08-25  Richard Biener  <rguenther@suse.de>
3476         * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
3477         Only add locations in late dwarf.
3478         (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
3479         (dwarf2out_early_finish): But do it here.
3481 2016-08-24  Michael Collison  <michael.collison@linaro.org>
3482             Michael Collison  <michael.collison@arm.com>
3484         * config/arm/arm-modes.def: Add new condition code mode CC_V
3485         to represent the overflow bit.
3486         * config/arm/arm.c (maybe_get_arm_condition_code):
3487         Add support for CC_Vmode.
3488         (arm_gen_unlikely_cbranch): New function to generate common
3489         rtl conditional branches for overflow patterns.
3490         * config/arm/arm-protos.h: Add prototype for
3491         arm_gen_unlikely_cbranch.
3492         * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
3493         addsi3_compareV_upper): New patterns to support signed
3494         builtin overflow add operations.
3495         (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
3496         New patterns to support unsigned builtin add overflow operations.
3497         (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
3498         builtin overflow subtract operations,
3499         (usubv<mode>4): New patterns to support unsigned builtin subtract
3500         overflow operations.
3501         (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
3502         to support builtin overflow negate operations.
3504 2016-08-24  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
3506         Revert
3507         2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3509         * explow.c (get_dynamic_stack_size): Take known alignment of stack
3510         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
3511         needed.
3513 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3515         * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
3516         MULTILIB_OPTIONS should be used.  Small wording fixes.
3517         * genmultilib: Memorize set of all option combinations in
3518         combination_space.  Detect if RHS of MULTILIB_REUSE uses an option not
3519         found in MULTILIB_OPTIONS by checking if option set is listed in
3520         combination_space.  Output new and existing error message to stderr.
3522 2016-08-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>
3524         * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
3525         -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
3526         Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
3527         (MULTILIB_REUSE): Remove reuse rules for option set including
3528         -mfpu=fp-armv8 and -mfpu=vfpv4
3530 2016-08-24  Sebastian Huber  <sebastian.huber@embedded-brains.de>
3532         * config/arm/t-rtems: Add vfp multilib.
3534 2016-08-23  Ian Lance Taylor  <iant@golang.org>
3536         * config/s390/s390.c (s390_asm_file_start): Call
3537         default_file_start.
3539 2016-08-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
3541         * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
3542         initialization of all 0's to the 0 constant, instead of directly
3543         generating XOR.  Add support for V4SImode vector initialization on
3544         64-bit systems with direct move, and rework the ISA 3.0 V4SImode
3545         initialization.  Change variables used in V4SFmode vector
3546         intialization.  For V4SFmode vector splat on ISA 3.0, make sure
3547         any memory addresses are in index form.  Add support for using
3548         VSPLTH/VSPLTB to initialize vector short and vector char vectors
3549         with all of the same element.
3550         (regno_or_subregno): New helper function to return a register
3551         number for either REG or SUBREG.
3552         (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
3553         Use regno_or_subregno where possible.
3554         (rs6000_split_v4si_init_di_reg): New helper function to build up a
3555         DImode value from two SImode values in order to generate V4SImode
3556         vector initialization on 64-bit systems with direct move.
3557         (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
3558         initialization.
3559         (rtx_is_swappable_p): V4SImode vector initialization insn is not
3560         swappable.
3561         * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
3562         declaration.
3563         * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
3564         attributes to initialize V8HImode and V16QImode vectors with the
3565         same element.
3566         (VSX_SPLAT_COUNT): Likewise.
3567         (VSX_SPLAT_SUFFIX): Likewise.
3568         (UNSPEC_VSX_VEC_INIT): New unspec.
3569         (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
3570         Allow SFmode values to come from Altivec registers.
3571         (vsx_init_v4si): New insn/split for V4SImode vector initialization
3572         on 64-bit systems with direct move.
3573         (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
3574         vector initializations, to allow V4SImode vector initializations
3575         on 64-bit systems with direct move.
3576         (vsx_splat_v4si): Likewise.
3577         (vsx_splat_v4si_di): Likewise.
3578         (vsx_splat_v4sf): Likewise.
3579         (vsx_splat_v4sf_internal): Likewise.
3580         (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
3581         register classes.
3582         (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
3583         (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
3584         initializing V8HImode and V16QImode vectors with the same
3585         element.
3586         * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
3587         optimization if -maltivec=be.
3589 2016-08-23  Christophe Lyon  <christophe.lyon@linaro.org>
3591         * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
3592         attribute for alternatives 3 and 4.
3594 2016-08-23  David Malcolm  <dmalcolm@redhat.com>
3596         * selftest.c (selftest::assert_str_contains): New function.
3597         (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
3598         * selftest.h (selftest::assert_str_contains): New decl.
3599         (ASSERT_STR_CONTAINS): New macro.
3601 2016-08-23  Richard Biener  <rguenther@suse.de>
3603         PR tree-optimization/77286
3604         * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
3605         the CFG here.
3606         (vect_transform_loop): Split exit edges of loop and scalar
3607         loop if required and at the appropriate time.
3609 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3611         * explow.c (get_dynamic_stack_size): Take known alignment of stack
3612         pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
3613         needed.
3614         Correct a typo in a comment.
3616 2016-08-23  Dominik Vogt  <vogt@linux.vnet.ibm.com>
3618         * config/s390/s390.md ("*andc_split"): New splitter for and with
3619         complement.
3621 2016-08-23  Richard Biener  <rguenther@suse.de>
3623         PR tree-optimization/27336
3624         * tree-vrp.c (infer_value_range): Handle stmts that can throw
3625         by looking for a non-EH edge.
3626         (process_assert_insertions_for): Likewise.
3628 2016-08-23  Richard Biener  <rguenther@suse.de>
3630         PR middle-end/77305
3631         * statistics.c (statistics_counter_event): Robustify against
3632         NULL current_pass.
3634 2016-08-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
3636         * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
3637         for targets amdfam10 and barcelona.
3639 2016-08-22  Uros Bizjak  <ubizjak@gmail.com>
3641         * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
3642         (zero_extend<mode>di2): Ditto.
3643         (*zero_extend<mode>si2): Ditto.
3644         (*zero_extendqihi2): Ditto.
3646 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
3648         PR middle-end/77269
3649         * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
3650         (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
3652 2016-08-22  Patrick Palka  <ppalka@gcc.gnu.org>
3654         * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
3655         identical consecutive elements.
3656         [SSA_NAME]: Print the name's def stmt on its own line.  When printing
3657         the node's def stmt, avoid printing an unwanted trailing newline by
3658         replacing the call to print_gimple_stmt() with its inlined body and
3659         adjusting it to not set pp_needs_newline and to call pp_flush()
3660         instead of pp_newline_and_flush().
3662 2016-08-22  Joseph Myers  <joseph@codesourcery.com>
3664         * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
3665         (float32_type_node, float64_type_node, float32x_type_node)
3666         (float128x_type_node): New macros.
3667         * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
3668         (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
3669         (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
3670         (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
3671         (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
3672         (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
3673         (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
3674         (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
3675         (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
3676         (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
3677         (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
3678         (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
3679         (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
3680         (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
3681         (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
3682         (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
3683         * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
3684         (copysign, fabs, huge_val, inf, nan, nans): Use it.
3685         * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
3686         and copysign.
3687         (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
3688         (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
3689         * doc/extend.texi (Other Builtins): Document these built-in
3690         functions.
3691         * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
3692         for nan and nans.
3694 2016-08-22  Gerald Pfeifer  <gerald@pfeifer.com>
3696         * doc/install.texi (Binaries): www.opencsw.org now uses https.
3698 2016-08-22  Richard Biener  <rguenther@suse.de>
3700         * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
3702 2016-08-21  Uros Bizjak  <ubizjak@gmail.com>
3704         PR target/77270
3705         * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
3706         TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
3707         non-SSE2 athlons only, otherwise prefer SSE prefetches.
3709 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
3711         * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
3712         (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
3713         (vrp_visit_switch_stmt): Likewise.
3714         (extract_range_from_stmt): Factored out from vrp_visit_stmt.
3715         (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
3716         (vrp_visit_stmt): Use extract_range_from_stmt.
3717         (vrp_visit_phi_node): Use extract_range_from_phi_node.
3719 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
3721         * Makefile.in: Add tree-vrp.h to GTFILES.
3722         * gengtype.c (open_base_files): Add tree-vrp.h.
3723         * asan.c: Add tree-vrp.h which now has the definition value_range_type.
3724         * builtins.c: Likewise.
3725         * fold-const.c: Likewise.
3726         * gimple-builder.c: Likewise.
3727         * gimple-laddress.c: Likewise.
3728         * hsa-gen.c: Likewise.
3729         * internal-fn.c: Likewise.
3730         * ssa.h: Likewise.
3731         * targhooks.c: Liewise,
3732         * tree-ssa-address.c: Likewise.
3733         * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
3734         * tree-vrp.c (struct value_range): Move to tree-vrp.h
3735         * tree-vrp.h: New file.
3737 2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
3739         PR tree-optimization/61839
3740         * tree-vrp.c (two_valued_val_range_p): New.
3741         (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
3742         two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
3743         Also Convert VAR BINOP CST where VAR is two-valued to
3744         VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
3746 2016-08-19  David Malcolm  <dmalcolm@redhat.com>
3748         * diagnostic-show-locus.c
3749         (layout::annotation_line_showed_range_p): New method.
3750         (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
3751         Reimplement case fixit_hint::REPLACE to cover removals, and
3752         replacements where the range of the replacement isn't one
3753         of the ranges in the rich_location.
3754         (test_one_liner_fixit_replace): Likewise.
3755         (selftest::test_one_liner_fixit_replace_non_equal_range): New
3756         function.
3757         (selftest::test_one_liner_fixit_replace_equal_secondary_range):
3758         New function.
3759         (selftest::test_diagnostic_show_locus_one_liner): Call the new
3760         functions.
3761         * diagnostic.c (print_parseable_fixits): Remove case
3762         fixit_hint::REMOVE.
3764 2016-08-19  Uros Bizjak  <ubizjak@gmail.com>
3766         PR target/77270
3767         * config/i386/i386.c (ix86_option_override_internal): Remove
3768         PTA_PRFCHW from entries that also have PTA_3DNOW flag.
3769         Enable SSE prefetch also for TARGET_PREFETCHWT1.
3770         Do not try to enable TARGET_PRFCHW ISA flag here.
3771         * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
3772         Rewrite expander function body.
3773         (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
3775 2016-08-19  Joseph Myers  <joseph@codesourcery.com>
3777         PR c/32187
3778         * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
3779         (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
3780         (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
3781         (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
3782         (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
3783         (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
3784         (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
3785         (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
3786         (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
3787         tree_index values.
3788         (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
3789         macros.
3790         (struct floatn_type_info): New structure type.
3791         (floatn_nx_types): New variable declaration.
3792         * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
3793         (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
3794         (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
3795         * tree.c (floatn_nx_types): New variable.
3796         (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
3797         corresponding complex types.
3798         * target.def (floatn_mode): New hook.
3799         * targhooks.c: Include "real.h".
3800         (default_floatn_mode): New function.
3801         * targhooks.h (default_floatn_mode): New prototype.
3802         * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
3803         types.
3804         * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
3805         effective-target and dg-add-options keywords.
3806         (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
3807         Document new effective-target keywords.
3808         * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
3809         * doc/tm.texi: Regenerate.
3810         * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
3811         __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
3812         [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
3813         18661-3.
3814         * real.h (struct real_format): Add field ieee_bits.
3815         * real.c (ieee_single_format, mips_single_format)
3816         (motorola_single_format, spu_single_format, ieee_double_format)
3817         (mips_double_format, motorola_double_format)
3818         (ieee_extended_motorola_format, ieee_extended_intel_96_format)
3819         (ieee_extended_intel_128_format)
3820         (ieee_extended_intel_96_round_53_format, ibm_extended_format)
3821         (mips_extended_format, ieee_quad_format, mips_quad_format)
3822         (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
3823         (decimal_double_format, decimal_quad_format, ieee_half_format)
3824         (arm_half_format, real_internal_format: Initialize ieee_bits
3825         field.
3826         * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
3827         float128_type_node.  Set float80_type_node to float64x_type_node
3828         if appropriate and long_double_type_node not appropriate.
3829         * config/ia64/ia64.c (ia64_init_builtins): Likewise.
3830         * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
3831         Initialize ieee_bits field.
3832         * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
3833         (rs6000_init_builtins): Set ieee128_float_type_node to
3834         float128_type_node.
3835         (rs6000_floatn_mode): New function.
3837 2016-08-19  Jakub Jelinek  <jakub@redhat.com>
3839         * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
3840         _rdseed64_step): Uglify argument names and/or local variable names
3841         in inline functions.
3842         * config/i386/rtmintrin.h (_xabort): Likewise.
3843         * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
3844         _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
3845         _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
3846         _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
3847         _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
3848         _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
3849         _mm_maskz_ternarylogic_epi32): Likewise.
3850         * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
3851         __lwpins32, __lwpins64): Likewise.
3852         * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
3853         _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
3854         _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
3855         _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
3856         _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
3857         _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
3858         _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
3859         _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
3860         _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
3861         _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
3862         _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
3863         _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
3864         _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
3865         _mm256_mask_i64gather_epi32): Likewise.
3866         * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
3867         * config/i386/ia32intrin.h (__writeeflags): Likewise.
3868         * config/i386/pkuintrin.h (_wrpkru): Likewise.
3869         * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
3870         _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
3871         _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
3872         _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
3873         _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
3874         _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
3875         _mm512_mask_prefetch_i64scatter_ps): Likewise.
3876         * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
3877         * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
3878         _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
3879         _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
3880         _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
3881         _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
3882         _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
3883         _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
3885         * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
3886         returning void.
3887         (_fxrstor, _fxsave64, _fxrstor64): Likewise.
3888         * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
3889         Likewise.
3890         * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
3891         * config/i386/pkuintrin.h (_wrpkru): Likewise.  Add space after
3892         function name.
3893         (_rdpkru_u32): Add space after function name.
3895         * config/i386/t-i386 (i386-c.o): Don't depend on
3896         i386-builtin-types.inc.
3897         (i386.o): Depend on i386-builtin-types.inc.
3899 2016-08-19  Matthew Wahab  <matthew.wahab@arm.com>
3901         PR target/77281
3902         * config/arm/arm.c (neon_valid_immediate): Delete declaration.
3903         Use const_vec_duplicate to check for duplicated elements.
3905 2016-08-19  Richard Biener  <rguenther@suse.de>
3907         PR tree-optimization/77290
3908         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
3909         Fix flag_tree_parallelize_loops check.
3911 2016-08-19  Richard Biener  <rguenther@suse.de>
3913         * match.pd (x | 0 -> x): Add.
3915 2016-08-19  Richard Biener  <rguenther@suse.de>
3917         PR tree-optimization/77286
3918         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
3919         Deal with virtual PHIs being out-of-order.
3921 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
3923         * doc/invoke.texi (fverbose-asm): Note that source code lines
3924         are emitted, and provide an example.
3925         * final.c (asm_show_source): New function.
3926         (final_scan_insn): Call asm_show_source.
3928 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
3930         * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
3931         param with diagnostic_kind.
3932         (class colorizer): Similarly replace field m_diagnostic with
3933         m_diagnostic_kind.
3934         (colorizer::colorizer): Replace diagnostic
3935         param with diagnostic_kind.
3936         (colorizer::begin_state): Update for above field change.
3937         (layout::layout): Replace diagnostic param with rich_location *
3938         and diagnostic_kind.
3939         (diagnostic_show_locus): Replace diagnostic param with richloc
3940         and diagnostic_kind.
3941         (class selftest::test_diagnostic_context): New class.
3942         (selftest::test_diagnostic_show_locus_unknown_location): New
3943         function.
3944         (selftest::test_one_liner_simple_caret): New function.
3945         (selftest::test_one_liner_caret_and_range): New function.
3946         (selftest::test_one_liner_multiple_carets_and_ranges): New
3947         function.
3948         (selftest::test_one_liner_fixit_remove): New function.
3949         (selftest::test_one_liner_fixit_replace): New function.
3950         (selftest::test_diagnostic_show_locus_one_liner): New function.
3951         (selftest::diagnostic_show_locus_c_tests): Call the new test
3952         functions.
3953         * diagnostic.c (diagnostic_initialize): Initialize
3954         colorize_source_p, show_ruler_p and parseable_fixits_p.
3955         (default_diagnostic_finalizer): Update for change to
3956         diagnostic_show_locus.
3957         (diagnostic_append_note): Likewise.
3958         * diagnostic.h (diagnostic_show_locus): Replace
3959         const diagnostic_info * param with location * and diagnostic_t.
3961 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
3963         * input.c (saved_line_table): New global.
3964         (class selftest::temp_line_table): Rename to line_table_test and
3965         move declaration to selftest.h, and drop field m_old_line_table.
3966         (selftest::temp_line_table::temp_line_table): Rename ctor to...
3967         (selftest::line_table_test::line_table_test): ...this.  Add a
3968         default ctor.  Store current value of line_table within
3969         saved_line_table.
3970         (selftest::temp_line_table::~temp_line_table): Rename dtor to...
3971         (selftest::line_table_test::~line_table_test): ...this, and
3972         restore line_table from the saved_line_table, rather than
3973         m_old_line_table.
3974         (selftest::test_accessing_ordinary_linemaps): Update for above
3975         renaming.
3976         (selftest::test_lexer): Likewise.
3977         (struct selftest::lexer_test): Likewise.
3978         (selftest::lexer_test::lexer_test): Likewise.
3979         (selftest::input_c_tests): Move the looping over test cases from
3980         here into...
3981         (selftest::for_each_line_table_case): New function.
3982         * input.h (saved_line_table): New decl.
3983         * selftest.h (struct selftest::line_table_case): New forward decl.
3984         (class selftest::line_table_test): New class, moved here from
3985         selftest::temp_line_table in input.c, and renamed.
3986         (selftest::for_each_line_table_case): New decl.
3988 2015-08-18  H.J. Lu  <hongjiu.lu@intel.com>
3990         PR target/72839
3991         * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
3993 2016-08-18  Chung-Lin Tang  <cltang@codesourcery.com>
3995         PR middle-end/70895
3996         * gimplify.c (omp_add_variable): Adjust/add variable mapping on
3997         enclosing parallel construct for reduction variables on OpenACC loop
3998         directives.
4000 2016-08-18  Pierre-Marie de Rodat  <derodat@adacore.com>
4002         * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
4003         (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
4004         -gdwarf-3.
4005         (function_to_dwarf_procedure): Update comment.
4007 2016-08-18  David Malcolm  <dmalcolm@redhat.com>
4009         * input.c (diagnostics_file_cache_forcibly_evict_file): New
4010         function.
4011         * input.h (diagnostics_file_cache_forcibly_evict_file): New
4012         declaration.
4013         * selftest.c (selftest::temp_source_file::~temp_source_file):
4014         Evict m_filename from the diagnostic file cache.
4016 2016-08-18  Richard Biener  <rguenther@suse.de>
4018         * tree-pass.h (make_pass_materialize_all_clones): Declare.
4019         * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
4020         make_pass_materialize_all_clones): New simple IPA pass encapsulating
4021         clone materialization.
4022         * passes.def (all_late_ipa_passes): Start with
4023         pass_materialize_all_clones.
4024         * cgraphunit.c (symbol_table::compile): Remove call to
4025         materialize_all_clones.
4026         * tree-into-ssa.c: Include statistics.h.
4027         (update_ssa): Count number of times we do incremental/rewrite
4028         SSA update.
4030 2016-08-18  Richard Biener  <rguenther@suse.de>
4032         PR tree-optimization/77282
4033         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4034         When doing auto-parallelizing also prevent use of PHIs that
4035         carry dependences across loop backedges.
4037 2016-08-18  Tamar Christina  <tamar.christina@arm.com>
4038             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
4040         * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
4042 2016-08-18  Richard Biener  <rguenther@suse.de>
4044         * ssa-iterators.h (ssa_vuse_operand): New inline.
4045         * tree-if-conv.c (ifc_temp_var): Update virtual operand.
4046         (predicate_all_scalar_phis): Use remove_phi_node to remove
4047         phi nodes predicated.  Delay removing virtual PHIs.
4048         (predicate_mem_writes): Update virtual operands.
4049         (combine_blocks): Likewise.  Propagate out remaining virtual PHIs.
4050         (tree_if_conversion): Do not rewrite virtual SSA form.
4051         * tree-phinodes.c (release_phi_node): Make static.
4052         * tree-phinodes.h (release_phi_node): Remove.
4054 2016-08-18  Jakub Jelinek  <jakub@redhat.com>
4056         * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
4057         codes that appear in bdesc_* arrays, instead include i386-builtin.def
4058         twice to define those.
4059         (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
4060         bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
4061         bdesc_multi_arg): Define by including i386-builtin.def the third time.
4062         * config/i386/i386-builtin.def: New file.
4064 2016-08-17  David Malcolm  <dmalcolm@redhat.com>
4066         * input.c (get_source_range_for_char): Rename to...
4067         (selftest::get_source_range_for_char): ...this, and move within
4068         the #if CHECKING_P guard.
4069         (get_num_source_ranges_for_substring): Rename to...
4070         (selftest::get_num_source_ranges_for_substring): ...this, move
4071         within the #if CHECKING_P guard, and make static.
4072         (selftest::assert_num_substring_ranges): Initialize
4073         actual_num_ranges.
4075 2016-08-18  Alan Modra  <amodra@gmail.com>
4077         PR rtl-optimization/72771
4078         * reload.c (find_reloads): Don't assume that a subreg mem is OK
4079         when find_reloads_toplev returns address_reloaded==-1.
4080         (alternative_allows_const_pool_ref): Update comment.
4082 2015-08-17  Alan Hayward  <alan.hayward@arm.com>
4084         PR tree-optimization/71752
4085         * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
4086         * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
4088 2016-08-17  Jakub Jelinek  <jakub@redhat.com>
4090         * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
4091         instead of testing ECF_NORETURN bit in gimple_call_flags.
4092         * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
4093         * predict.c (tree_bb_level_predictions): Likewise.
4094         * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
4096         PR middle-end/77259
4097         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
4098         turning a call into __builtin_unreachable-like noreturn call, adjust
4099         gimple_call_set_fntype.
4100         * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
4101         gimple_call_fntype has void return type.
4103 2016-08-17  Chung-Lin Tang  <cltang@codesourcery.com>
4105         * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
4106         maybe_lookup_decl, to handle nested acc loop directives.
4108 2016-08-17  Richard Biener  <rguenther@suse.de>
4110         PR tree-optimization/76490
4111         * tree-vrp.c (update_value_range): Preserve overflow infinities
4112         when intersecting with ranges from get_range_info.
4113         (operand_less_p): Handle overflow infinities correctly.
4114         (value_range_constant_singleton): Use vrp_operand_equal_p
4115         to handle overflow max/min correctly.
4116         (vrp_valueize): Likewise.
4117         (union_ranges): Likewise.
4118         (intersect_ranges): Likewise.
4119         (vrp_visit_phi_node): Improve iteration limitation to only
4120         apply when we'll possibly re-visit the PHI via a changed argument
4121         on the backedge.
4123 2016-08-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>
4125         * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
4126         (MULTILIB_REQUIRED): This by specifying multilib needing to be built
4127         rather than those that should not be built.
4129 2016-08-17  Stanislaw Halik  <sthalik@misaki.pl>
4131         PR target/66488
4132         * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
4134 2016-08-17  Richard Biener  <rguenther@suse.de>
4136         * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
4137         (verify_vssa): New function verifying virtual SSA form.
4138         (verify_ssa): Call it.
4139         * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
4140         Do not apply loop-closed SSA handling to virtuals.
4141         * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
4142         * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
4143         when rewriting their symbol.
4144         (prepare_def_site_for): Likewise.
4145         * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
4146         operands of moved stmts.
4148 2016-08-17  Richard Biener  <rguenther@suse.de>
4150         PR tree-optimization/23855
4151         * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
4152         (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
4153         find guards to hoist.  Do not update SSA form but rewrite virtuals
4154         into loop closed SSA.
4155         (find_loop_guard): Adjust to skip already hoisted guards.  Do
4156         not mark virtuals for renaming or update SSA form.
4158 2016-08-17  Martin Liska  <mliska@suse.cz>
4160         * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
4161         a LONG_LONG_TYPE_SIZE comparison.
4162         * gcov-io.h: Remove macro definitions.
4163         * tree-profile.c (gimple_gen_edge_profiler): Replace usage
4164         of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
4165         comparison.
4167 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
4169         * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
4170         that builtins not mentioned in bdesc_* arrays come first, then
4171         the ones mentioned in bdesc_* arrays in the order they appear in
4172         the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
4173         IX86_BUILTIN__BDESC_*_LAST enumerator.
4174         (bdesc_mpx): Fix up a comment typo.
4175         (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
4176         __builtin_ia32_vpcomneu[bwdq] builtins.
4177         (BDESC_VERIFY, BDESC_VERIFYS): Define.
4178         (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
4179         enum ix86_builtins ordering.
4180         (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
4181         for direct bdesc_* array member access instead of searching all the
4182         arrays until an fcode match is found.
4184 2016-08-16  Uros Bizjak  <ubizjak@gmail.com>
4186         * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
4187         pattern as define_insn_and_split.  Split insn before reload to
4188         ashl<mode>3_1.
4189         (*<shift_insn><mode>3_mask): Ditto.  Split insn before reload to
4190         <shift_insn><mode>3_1.
4191         (*<rotate_insn><mode>3_mask): Ditto.  Split insn before reload to
4192         <rotate_insn><mode>3_1.
4194 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
4196         PR c/72857
4197         * input.c (get_source_range_for_substring): Rename to...
4198         (get_source_location_for_substring): ...this, adding param
4199         "caret_idx", and converting output param from source_range * to
4200         location_t *.
4201         (get_source_range_for_char): New function.
4202         (get_num_source_ranges_for_substring): Update comment to reflect
4203         above renaming.
4204         (assert_char_at_range): Update to use get_source_range_for_char
4205         rather than get_source_range_for_substring.
4206         (test_lexer_string_locations_concatenation_2): Likewise.
4207         * substring-locations.h (get_source_range_for_substring): Rename
4208         to...
4209         (get_source_location_for_substring): ...this, and adding param
4210         "caret_idx", and converting output param from source_range * to
4211         location_t *.
4213 2016-08-16  David Malcolm  <dmalcolm@redhat.com>
4215         * input.c (class selftest::temp_source_file): Move to
4216         selftest.h.
4217         (selftest::temp_source_file::temp_source_file): Move to
4218         selftest.c.
4219         (selftest::temp_source_file::~temp_source_file): Likewise.
4220         * selftest.c (selftest::temp_source_file::temp_source_file): Move
4221         here from input.c.
4222         (selftest::temp_source_file::~temp_source_file): Likewise.
4223         * selftest.h (class selftest::temp_source_file): Move here from
4224         input.c
4226 2016-08-16  Jakub Jelinek  <jakub@redhat.com>
4228         PR target/71910
4229         * tree-cfg.c (execute_fixup_cfg): Add node variable, use it.  Before
4230         inlining, add cgraph edge for the added __builtin_unreachable call.
4232         PR middle-end/67485
4233         * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
4234         only cast it to SHWI for the final comparison.
4236 2016-08-16  Martin Liska  <mliska@suse.cz>
4238         PR gcov-profile/36412
4239         * doc/gcov.texi: Document --hash-filenames(-x).
4240         * gcov.c (print_usage): Add the option.
4241         (process_args): Process the option, sort options alphabetically.
4242         (md5sum_to_hex): New function.
4243         (make_gcov_file_name): Do the md5sum and append it to a
4244         filename.
4246 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
4248         PR tree-optimization/69848
4249         * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
4250         and swtich operands to avoid additional NOT instruction.
4251         (vcond<v_cmp_mixed><mode>): Ditto.
4252         (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4254 2016-08-16  Eric Botcazou  <ebotcazou@adacore.com>
4256         * doc/install.texi (*-*-solaris2*): Adjust latest change.
4258 2016-08-16  Richard Biener  <rguenther@suse.de>
4260         PR tree-optimization/76783
4261         * tree-ssa-propagate.c (ssa_prop_init): Use RPO order.  Clear
4262         BB visited flags at start.
4264 2016-08-16  Bin Cheng  <bin.cheng@arm.com>
4266         PR tree-optimization/72817
4267         PR tree-optimization/73450
4268         * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
4269         multiple_of_p for adjusted IV.base.
4271 2016-08-15  Uros Bizjak  <ubizjak@gmail.com>
4273         PR target/72867
4274         * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
4275         Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
4276         for !flag_finite_math_only or flag_signed_zeros.
4277         (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
4278         *<code><mode>3_finite<mask_name><round_saeonly_name>.  Do not
4279         depend on flag_finite_math_only.
4280         (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
4281         New insn pattern.
4282         (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
4283         (*ieee_smin<mode>3): Ditto.
4284         (*ieee_smax<mode>3): Ditto.
4285         * config/i386/mmx.md (mmx_<code>v2sf3): Emit
4286         mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
4287         flag_signed_zeros.
4288         (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite.  Do not
4289         depend on flag_finite_math_only.
4290         (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
4291         (*mmx_<code>v2sf3): Remove.
4292         * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
4293         * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
4294         flag_signed_zeros instead of !flag_unsafe_math_optimizations.
4296 2016-08-15  Segher Boessenkool  <segher@kernel.crashing.org>
4298         PR rtl-optimization/73650
4299         * lra-constraints.c (simple_move_p): If the insn is multiple_sets
4300         it is not a simple move.
4302 2016-08-15  Martin Liska  <mliska@suse.cz>
4304         PR driver/72765
4305         * gcc.c (do_spec_1): Call save_string with the right size.
4306         (save_string): Do an assert about string we copy.
4308 2016-08-15  Richard Biener  <rguenther@suse.de>
4310         * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
4311         * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
4312         TV_MACH_DEP.
4313         (pass_data_stv): Likewise.
4315 2016-08-15  Richard Biener  <rguenther@suse.de>
4317         PR tree-optimization/73434
4318         * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
4319         TBAA info on the base when forwarding a non-invariant address.
4321 2016-08-15  Jakub Jelinek  <jakub@redhat.com>
4323         * dwarf2out.c (struct checksum_attributes): Add
4324         at_string_length_bit_size and at_string_length_byte_size fields.
4325         (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
4326         and DW_AT_string_length_byte_size.
4327         (die_checksum_ordered): Handle at_string_length_bit_size and
4328         at_string_length_byte_size.
4329         (gen_array_type_die): For dwarf_version >= 5 emit
4330         DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4331         (adjust_string_types): For dwarf_version >= 5 remove
4332         DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4333         (resolve_addr): Likewise.
4335         PR debug/71906
4336         * dwarf2out.c (string_types): New variable.
4337         (gen_array_type_die): Change early_dwarf handling of
4338         DW_AT_string_length, create DW_OP_call4 referencing the
4339         length var temporarily.  Handle parameters that are pointers
4340         to string length.
4341         (adjust_string_types): New function.
4342         (gen_subprogram_die): Temporarily set string_types to local var,
4343         call adjust_string_types if needed.
4344         (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
4345         New functions.
4346         (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
4348 2016-08-15  Eric Botcazou  <ebotcazou@adacore.com>
4350         * doc/install.texi (*-*-solaris2*): Fix version number and document
4351         requirement on GNU make for building libjava with the Solaris linker.
4353 2016-08-15  Martin Liska  <mliska@suse.cz>
4354             Jakub Jelinek  <jakub@redhat.com>
4356         PR tree-optimization/72824
4357         * tree-loop-distribution.c (const_with_all_bytes_same)
4358         <case VECTOR_CST>: Fix a typo.
4360 2016-08-14  Uros Bizjak  <ubizjak@gmail.com>
4362         PR target/76342
4363         * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
4364         Renamed from _mm512_undefined_si512.
4365         (_mm_undefined_si512): New definition.
4367 2016-08-13  Richard Biener  <rguenther@suse.de>
4369         * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
4370         into PHIs and update the lattice for its def.
4372 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
4374         PR c/71512
4375         * ubsan.c (instrument_si_overflow): Pass true instead of false
4376         to gsi_replace.
4377         (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
4378         of bbs.  Return TODO_cleanup_cfg if any returned true.
4380 2016-08-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
4382         * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
4383         ISA 3.0 MTVSRDD instruction.
4384         (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
4385         vecperm.
4387 2016-08-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4389         PR tree-optimization/71083
4390         * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
4391         bitfield access when possible.
4393 2016-08-12  Patrick Palka  <ppalka@gcc.gnu.org>
4395         PR middle-end/71654
4396         * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
4397         sign-changing cast from a shorter unsigned type to a wider
4398         signed type.
4400 2016-08-12  Jakub Jelinek  <jakub@redhat.com>
4402         * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
4403         vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
4404         vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
4406 2016-08-12  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4408         * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
4409         Correct costs for vec_construct.
4411 2016-08-12  Bin Cheng  <bin.cheng@arm.com>
4413         PR tree-optimization/69848
4414         * tree-vectorizer.h (enum vect_def_type): New condition reduction
4415         type CONST_COND_REDUCTION.
4416         * tree-vect-loop.c (vectorizable_reduction): Support new condition
4417         reudction type CONST_COND_REDUCTION.
4419 2016-08-12  Richard Biener  <rguenther@suse.de>
4421         PR tree-optimization/57326
4422         * tree-ssa-pre.c (fully_constant_expression): Handle simplification
4423         returning an SSA name.
4424         (phi_translate_1): When fully_constant_expression returns a NAME
4425         make sure we have a leader for it.
4427 2016-08-12  Martin Liska  <mliska@suse.cz>
4428             Adam Fineman  <afineman@afineman.com>
4430         * gcov.c (process_file): Create .gcov file when .gcda
4431         file is missing.
4433 2016-08-12  Marek Polacek  <polacek@redhat.com>
4435         PR c/7652
4436         * alias.c (find_base_value): Adjust fall through comment.
4437         * cfgexpand.c (expand_debug_expr): Likewise.
4438         * combine.c (find_split_point): Likewise.
4439         (expand_compound_operation): Likewise.  Add FALLTHRU.
4440         (make_compound_operation): Adjust fall through comment.
4441         (canon_reg_for_combine): Add FALLTHRU.
4442         (force_to_mode): Adjust fall through comment.
4443         (simplify_shift_const_1): Likewise.
4444         (simplify_comparison): Likewise.
4445         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
4446         FALLTHRU.
4447         * config/aarch64/predicates.md: Likewise.
4448         * config/i386/i386.c (function_arg_advance_32): Likewise.
4449         (ix86_gimplify_va_arg): Likewise.
4450         (print_reg): Likewise.
4451         (ix86_print_operand): Likewise.
4452         (ix86_build_const_vector): Likewise.
4453         (ix86_expand_branch): Likewise.
4454         (ix86_sched_init_global): Adjust fall through comment.
4455         (ix86_expand_args_builtin): Add FALLTHRU.
4456         (ix86_expand_builtin): Likewise.
4457         (ix86_expand_vector_init_one_var): Likewise.
4458         * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
4459         (rs6000_adjust_cost): Likewise.
4460         (insn_must_be_first_in_group): Likewise.
4461         * config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
4462         * dbxout.c (dbxout_symbol): Adjust fall through comment.
4463         * df-scan.c (df_uses_record): Likewise.
4464         * dojump.c (do_jump): Add FALLTHRU.
4465         * dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
4466         comment.
4467         (resolve_args_picking_1): Adjust fall through comment.
4468         (loc_list_from_tree_1): Likewise.
4469         * expmed.c (make_tree): Likewise.
4470         * expr.c (expand_expr_real_2): Add FALLTHRU.
4471         (expand_expr_real_1): Likewise.  Adjust fall through comment.
4472         * fold-const.c (const_binop): Adjust fall through comment.
4473         (fold_truth_not_expr): Likewise.
4474         (fold_cond_expr_with_comparison): Add FALLTHRU.
4475         (fold_binary_loc): Likewise.
4476         (contains_label_1): Adjust fall through comment.
4477         (multiple_of_p): Likewise.
4478         * gcov-tool.c (process_args): Add FALLTHRU.
4479         * genattrtab.c (check_attr_test): Likewise.
4480         (write_test_expr): Likewise.
4481         * genconfig.c (walk_insn_part): Likewise.
4482         * genpreds.c (validate_exp): Adjust fall through comment.
4483         (needs_variable): Likewise.
4484         * gensupport.c (get_alternatives_number): Add FALLTHRU.
4485         (subst_dup): Likewise.
4486         * gimple-pretty-print.c (dump_gimple_assign): Likewise.
4487         * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
4488         (gimplify_scan_omp_clauses): Add FALLTHRU.
4489         (goa_stabilize_expr): Likewise.
4490         * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
4491         through comment.
4492         * hsa-gen.c (get_address_from_value): Likewise.
4493         * ipa-icf.c (sem_function::hash_stmt): Likewise.
4494         * ira.c (ira_setup_alts): Add FALLTHRU.
4495         * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
4496         comment.
4497         * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
4498         * opts.c (common_handle_option): Likewise.
4499         * read-rtl.c (read_rtx_code): Likewise.
4500         * real.c (round_for_format): Likewise.
4501         * recog.c (asm_operand_ok): Likewise.
4502         * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
4503         * reload1.c (set_label_offsets): Likewise.
4504         (eliminate_regs_1): Likewise.
4505         (reload_reg_reaches_end_p): Likewise.
4506         * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
4507         (rtx_cost): Likewise.
4508         * sched-rgn.c (is_exception_free): Likewise.
4509         * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
4510         * stor-layout.c (int_mode_for_mode): Likewise.
4511         * toplev.c (print_to_asm_out_file): Likewise.
4512         (print_to_stderr): Likewise.
4513         * tree-cfg.c (gimple_verify_flow_info): Likewise.
4514         * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
4515         (chrec_fold_multiply): Likewise.
4516         (evolution_function_is_invariant_rec_p): Likewise.
4517         (for_each_scev_op): Likewise.
4518         * tree-data-ref.c (siv_subscript_p): Likewise.
4519         (get_references_in_stmt): Likewise.
4520         * tree.c (find_placeholder_in_expr): Adjust fall through comment.
4521         (substitute_in_expr): Likewise.
4522         (type_cache_hasher::equal): Likewise.
4523         (walk_type_fields): Likewise.
4524         * var-tracking.c (adjust_mems): Add FALLTHRU.
4525         (set_dv_changed): Adjust fall through comment.
4526         * varasm.c (default_function_section): Add FALLTHRU.
4528 2016-08-12  Marek Polacek  <polacek@redhat.com>
4530         PR c/7652
4531         * tree-complex.c (expand_complex_division): Add missing break.
4533 2016-08-12  Richard Biener  <rguenther@suse.de>
4535         * passes.c (execute_todo): Do not push/pop TV_TODO.
4536         (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
4537         (execute_one_pass): Likewise.
4538         * common.opt (ftime-report-details): New switch.
4539         * doc/invoke.texi (ftime-report-details): Document.
4540         * timevar.h (timer::print_row): Adjust signature.
4541         (timer::all_zero): New static helper.
4542         (timer::child_map_t): New typedef.
4543         (timer::time_var_def): Add children field.
4544         * timevar.c (timer::named_items::print): Adjust.
4545         (timer::~timer): Free timevar recorded children.
4546         (timer::pop_internal): When -ftime-report-details record
4547         time spent in sub-timevars.
4548         (timer::print_row): Adjust.
4549         (timer::print): Print sub-timevar stats, use all_zero.
4550         * timevar.def (TV_TODO): Remove.
4552 2016-08-12  Richard Biener  <rguenther@suse.de>
4554         PR tree-optimization/72851
4555         * tree-ssa-propagate.c: Include cfganal.h.  Rewrite block and stmt
4556         worklists to use bitmaps indexed in execution order.
4557         (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
4558         bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
4559         (cfg_blocks): Make a bitmap.
4560         (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
4561         New globals.
4562         (cfg_blocks_empty_p): Adjust.
4563         (cfg_blocks_add): Likewise.
4564         (cfg_blocks_get): Likewise.
4565         (add_ssa_edge): Likewise.
4566         (add_control_edge): Likewise.
4567         (simulate_stmt): Likewise.
4568         (process_ssa_edge_worklist): Likewise.
4569         (simulate_block): Likewise.
4570         (ssa_prop_init): Compute PRE order and stmt UIDs.
4571         (ssa_prop_fini): Adjust.
4572         (ssa_propagate): Adjust.
4574 2016-08-12  Richard Biener  <rguenther@suse.de>
4576         * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
4577         the currently executable edges have fixed ranges.  Always
4578         go through update_value_range.
4580 2016-08-12  Alexandre Oliva  <aoliva@redhat.com>
4582         PR debug/63240
4583         * langhooks-def.h
4584         (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
4585         (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
4586         (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
4587         (LANG_HOOKS_DECLS): Add it.
4588         * langhooks.h (struct lang_hooks_for_decls): Add
4589         function_decl_defaulted.  Const_tree-ify
4590         function_decl_explicit_p and function_decl_deleted_p.
4591         * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
4592         attribute.  Add DW_AT_deleted instead of DW_AT_GNU_deleted,
4593         also at strict DWARF v5.
4595         PR debug/55641
4596         * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
4597         TYPE_QUAL_CONST in reference-typed decls.
4599         PR debug/49366
4600         * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
4601         in DW_OP_pieces, just enough to handle pointers to member
4602         functions.
4603         (gen_remaining_tmpl_value_param_die_attribute): Use a location
4604         expression on DWARFv5 if a constant value doesn't work.
4606 2016-08-11  David Malcolm  <dmalcolm@redhat.com>
4608         * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
4609         * selftest.c (selftest::test_assertions): New function.
4610         (selftest::selftest_c_tests): New function.
4611         * selftest.h (selftest::selftest_c_tests): New declaration.
4613 2016-08-11  Richard Biener  <rguenther@suse.de>
4614             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4616         PR rtl-optimization/72855
4617         * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
4619 2016-08-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
4621         PR target/72863
4622         * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
4623         (vsx_store_<mode>): Likewise.
4625 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
4627         * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
4628         TImode CONST_WIDE_INT store.
4629         (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
4631 2015-08-11  H.J. Lu  <hongjiu.lu@intel.com>
4633         * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
4634         mode if unaligned SSE load and store are optimal.
4636 2016-08-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
4638         PR tree-optimization/71083
4639         * tree-predcom.c (ref_at_iteration): Correctly align the
4640         reference type.
4642 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4644         * config/s390/s390-builtin-types.def: Add INT128 types.
4645         * config/s390/s390-builtins.def: Add INT128 variants for the add
4646         sub low-level builtins dealing with TImode.
4647         * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
4648         via subreg when expanding a builtin.
4649         * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
4650         UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
4651         Fix comment.
4652         * config/s390/vecintrin.h: Adjust builtin names accordingly.
4653         * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
4654         ("vec_addc<mode>", "vec_addc_u128"): Merge to
4655         "vacc<bhfgq>_<mode>".
4656         ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
4657         ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
4658         ("vec_subc<mode>", "vec_subc_u128"): Merge to
4659         "vscbi<bhfgq>_<mode>".
4660         ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
4661         ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
4663 2016-08-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
4665         * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
4667 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
4669         * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
4670         unused declaration.
4671         (vcond<v_cmp_mixed><mode>): Ditto.
4672         (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4674 2016-08-11  Bin Cheng  <bin.cheng@arm.com>
4676         * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
4677         variable explicitly, also assert on it before use.
4679 2016-08-11  Richard Biener  <rguenther@suse.de>
4681         PR tree-optimization/72772
4682         * cfgloopmanip.c (create_preheader): Use split_edge if there
4683         is a single loop entry, avoiding degenerate PHIs.
4685 2016-08-11  Richard Biener  <rguenther@suse.de>
4687         * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
4688         unconditional TODO_cleanup_cfg.
4689         (pass_thread_jumps::execute): Initialize loops, perform a CFG
4690         cleanup only if we threaded a jump.
4692 2016-08-11  Alan Modra  <amodra@gmail.com>
4694         PR target/71680
4695         * lra-constraints.c (simplify_operand_subreg): Allow subreg
4696         mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
4697         slow.  Emit two reloads for slow mem case, first loading in
4698         fast innermode, then converting to required mode.
4700 2016-08-10  Kelvin Nilsen  <kelvin@gcc.gnu.org>
4702         * config/rs6000/altivec.h (vec_extract_exp): New macro.
4703         (vec_extract_sig): New macro.
4704         (vec_insert_exp): New macro.
4705         (vec_test_data_class): New macro.
4706         (scalar_extract_exp): New macro.
4707         (scalar_extract_sig): New macro.
4708         (scalar_insert_exp): New macro.
4709         (scalar_test_data_class): New macro.
4710         (scalar_test_neg): New macro.
4711         (scalar_cmp_exp_gt): New macro.
4712         (scalar_cmp_exp_lt): New macro.
4713         (scalar_cmp_exp_eq): New macro.
4714         (scalar_cmp_exp_unordered): New macro.
4715         * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
4716         to enforce constraint that operand is a 7-bit unsigned literal.
4717         * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
4718         for power9 built-ins.
4719         (BU_P9V_VSX_2): Likewise.
4720         (BU_P9V_64BIT_VSX_2): Likewise.
4721         (VSEEDP): Add scalar extract exponent support.
4722         (VSEESP): Add scalar extract signature support.
4723         (VSTDCNDP): Add scalar test negative support.
4724         (VSTDCNSP): Likewise.
4725         (VSIEDP): Add scalar insert exponent support.
4726         (VSCEDPGT): Add scalar compare exponent greater than support.
4727         (VSCEDPLT): Add scalar compare exponent less than support.
4728         (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
4729         (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
4730         (VSTDCDP): Add scalar test data class support.
4731         (VSTDCSP): Likewise.
4732         (VSEEDP): Add overload support for scalar extract exponent
4733         operation.
4734         (VSESDP): Add overload support for scalar extract signature
4735         operation.
4736         (VSTDCN): Add overload support for scalar test negative
4737         operation.
4738         (VSTDCNDP): Add overload support for scalar test negative
4739         operation.
4740         (VSTDCNSP): Add overload support for scalar test negative
4741         operation.
4742         (VSIEDP): Add overload support for scalar insert exponent
4743         operation.
4744         (VSTDC): Add overload support for scalar test data class
4745         operation.
4746         (VSTDCDP): Add overload support for scalar test data class
4747         operation.
4748         (VSTDCSP): Add overload support for scalar test data class
4749         opreation.
4750         (VSCEDPGT): Add overload support for scalar compare exponent
4751         greater than operation.
4752         (VSCEDPLT): Add overload support for scalar compare exponent
4753         less than operation.
4754         (VSCEDPEQ): Add overload support for scalar compare exponent
4755         test-for-equality operation.
4756         (VSCEDPUO): Add overload support for scalar compare exponent
4757         test-for-unordered operation.
4758         (VEEDP): Add vector extract exponent support.
4759         (VEESP): Likewise.
4760         (VESDP): Add vector extract significand support.
4761         (VESSP): Likewise.
4762         (VIEDP): Add vector insert exponent support.
4763         (VIESP): Likewise.
4764         (VTDCDP): Add vector test data class support.
4765         (VTDCSP): Likewise.
4766         (VES): Add overload support for vector extract significand operation.
4767         (VESDP): Likewise.
4768         (VESSP): Likewise
4769         (VEE): Add overload support for vector extract exponent operation.
4770         (VEEDP): Likewise.
4771         (VEESP): Likewise.
4772         (VTDC): Add overload support for vector test data class operation.
4773         (VTDCDP): Likewise.
4774         (VTDCSP): Likewise.
4775         (VIE): Add overload support for vector insert exponent operation.
4776         (VIEDP): Likewise.
4777         (VIESP): Likewise.
4778         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4779         overloaded binary floating point functions.
4780         (altivec_resolve_overloaded_builtin): Improve error messages to
4781         distinguish between functions not supported in the current
4782         compiler configuration and functions that were invoked with an
4783         invalid parameter combination, and include the built-in function
4784         name in both error messages.
4785         * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
4786         New prototype.
4787         * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
4788         function.
4789         (rs6000_expand_binop_builtin): Add check to enforce that argument
4790         2 of the test data class operations is a 7-bit unsigned literal.
4791         (rs6000_invalid_builtin): Add code to issue an error message if a
4792         built-in function that requires the power9_vector and -m32
4793         command-line options is compiled without these options.
4794         * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
4795         (UNSPEC_VSX_SXSIGDP): New value.
4796         (UNSPEC_VSX_SXSIGPDP): New value.
4797         (UNSPEC_VSX_SIEXPDP): New value.
4798         (UNSPEC_VSX_SCMPEXPDP): New value.
4799         (UNSPEC_VSX_STSTDC): New value.
4800         (UNSPEC_VSX_VXEXP): New value.
4801         (UNSPEC_VSX_VXSIG): New value.
4802         (UNSPEC_VSX_VIEXP): New value.
4803         (UNSPEC_VSX_VTSTDC): New value.
4804         (xsxexpdp): New insn for scalar extract exponent.
4805         (xsxsigdp): New insn for scalar extract significand.
4806         (xsiexpdp): New insn for scalar insert exponent.
4807         (xscmpexpdp_<code>): New expansion for scalar compare exponents.
4808         (*xscmpexpdp): New insn for scalar compare exponents.
4809         (xststdc<Fvsx): New expansion for both single- and
4810         double-precision scalar test data class operations.
4811         (xststdcneg<Fvsx>): New expansion for both single- and
4812         double-precision scalar test for negative value operations.
4813         (*xststdc<Fvsx>): New insn for scalar test data class
4814         operation.
4815         (xvxexp<VSs>): New insn for single- and double-precision
4816         vector extract exponent operation.
4817         (xvxsig<VSs>): New insn for single- and double-precision
4818         vector extract significand operation.
4819         (xviexp<VSs>): New insn for single- and double-precision
4820         vector insert exponent operation.
4821         (xvtstdc<VSs>): New insn for single- and double-precision
4822         vector test data class operation.
4823         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4824         built-in functions to represent the Power9 binary floating-point
4825         support instructions.
4827 2016-08-10  bin cheng  <bin.cheng@arm.com>
4829         * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
4831 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
4832             Renlin Li  <renlin.li@arm.com>
4833             Bin Cheng  <bin.cheng@arm.com>
4835         * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
4836         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
4837         gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
4838         (aarch64_vcond_internal<mode><mode>): Delete pattern.
4839         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
4840         (vcond<v_cmp_result><mode>): Ditto.
4841         (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
4842         (vcondu<mode><mode>): Ditto.
4843         (vcond<v_cmp_mixed><mode>): New pattern.
4844         (vcondu<mode><v_cmp_mixed>): New pattern.
4845         (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
4846         of aarch64_vcond_internal.
4848 2016-08-10  Alan Lawrence  <alan.lawrence@arm.com>
4849             Renlin Li  <renlin.li@arm.com>
4850             Bin Cheng  <bin.cheng@arm.com>
4852         * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
4853         (vec_cmp<mode><v_cmp_result>): New pattern.
4854         (vec_cmpu<mode><mode>): New pattern.
4855         (vcond_mask_<mode><v_cmp_result>): New pattern.
4857 2016-08-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
4859         PR tree-optimization/71734
4860         * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
4861         REF_LOOP, invoke ref_indep_loop_p_1.
4862         (outermost_indep_loop): Pass LOOP argumnet where REF was defined
4863         to ref_indep_loop_p.
4864         (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
4865         combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
4866         is inside LOOP, do not cache dpendence value for loops with
4867         non-zero SAFELEN.
4868         (ref_indep_loop_p_2): Delete function.
4869         (can_sm_ref_p): Pass LOOP as additional argument to
4870         ref_indep_loop_p.
4872 2016-08-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
4874         PR target/72853
4875         * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
4876         being an offsettable address.
4878 2016-08-10  Martin Liska  <mliska@suse.cz>
4880         PR gcov-profile/58306
4881         * tree-profile.c (gimple_init_edge_profiler): Create conditionally
4882         atomic variants of profile update functions.
4884 2016-08-10  Martin Liska  <mliska@suse.cz>
4886         Cherry picked (and modified) from google-4_7 branch
4887         2012-12-26  Rong Xu  <xur@google.com>
4888         * common.opt (fprofile-update): Add new flag.
4889         * coretypes.h: Define enum profile_update.
4890         * doc/invoke.texi: Document -fprofile-update.
4891         * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
4892         GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
4893         * tree-profile.c (gimple_init_edge_profiler): Generate
4894         also atomic profiler update.
4895         (gimple_gen_edge_profiler): Likewise.
4897 2016-08-10  David Malcolm  <dmalcolm@redhat.com>
4899         * toplev.c (finalize): Set aux_info_file, asm_out_file, and
4900         stack_usage_file to NULL after fclose calls.
4902 2016-08-10  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
4904         PR target/71873
4905         * reload.c (push_reload): Compute subreg_in_class for
4906         subregs of constants and plus expressions. Remove special
4907         handling of SYMBOL_REFs.
4909 2016-08-10  Alan Modra  <amodra@gmail.com>
4911         PR target/71680
4912         * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
4913         SImode for TARGET_E500_DOUBLE when given SImode.
4915 2016-08-09  David Wohlferd  <dw@LimeGreenSocks.com>
4917         * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
4918         unused variable __O.
4920 2016-08-09  Martin Liska  <mliska@suse.cz>
4922         * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
4923         _gcov_reset to __gcov_reset.
4924         * doc/gcov-tool.texi: Fix typo.
4926 2016-08-09  Martin Liska  <mliska@suse.cz>
4928         * value-prof.c (gimple_divmod_values_to_profile): Do not
4929         instrument MOD histogram if a value is not a SSA name.
4931 2016-08-09  Martin Liska  <mliska@suse.cz>
4933         * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
4934         values.
4936 2016-08-09  Renlin Li  <renlin.li@arm.com>
4938         PR middle-end/64971
4939         * calls.c (prepare_call_address): Convert funexp to Pmode when
4940         necessary.
4941         * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
4942         (sibcall_value): Likewise.
4944 2016-08-09  Marek Polacek  <polacek@redhat.com>
4946         PR c/7652
4947         * cselib.c (cselib_expand_value_rtx_1): Add return.
4948         * gengtype.c (dbgprint_count_type_at): Likewise.
4949         * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
4950         * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
4952 2016-08-09  Martin Jambor  <mjambor@suse.cz>
4954         PR ipa/71981
4955         * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
4956         if instance is a MEM_REF.
4958 2016-08-09  Uros Bizjak  <ubizjak@gmail.com>
4960         PR target/72843
4961         * config/i386/i386.md (*movtf_internal): Use
4962         lra_in_progress || reload_completed instead of !can_create_pseudo_p
4963         in the insn constraint.
4964         (*movxf_internal): Ditto.
4965         (*movdf_internal): Ditto.
4966         (*movsf_internal): Ditto.
4968 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
4970         PR tree-optimization/72772
4971         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
4972         for expanded base.
4974 2016-08-09  Bin Cheng  <bin.cheng@arm.com>
4976         PR tree-optimization/72772
4977         * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
4978         parameter STOP.
4979         * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
4980         parameter STOP and update calls.  Move expand_simple_operations
4981         function call from here...
4982         (simplify_using_initial_conditions): ...to here.  Delete parameter
4983         STOP.
4984         (tree_simplify_using_condition): Delete parameter STOP.
4985         * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
4986         simplify_using_initial_conditions.
4988 2016-08-09  Matthew Fortune  <matthew.fortune@imgtec.com>
4990         PR c/65345
4991         * config/mips/mips.c (mips_atomic_assign_expand_fenv):
4992         Use create_tmp_var_raw instead of create_tmp_var.
4994 2016-08-09  Richard Biener  <rguenther@suse.de>
4996         * tree-ssa-threadbackward.c (profitable_jump_thread_path):
4997         Treat same SSA names related.
4999 2016-08-09  Jakub Jelinek  <jakub@redhat.com>
5001         PR tree-optimization/72824
5002         * tree-loop-distribution.c (const_with_all_bytes_same): Verify
5003         real_zerop is not negative.
5005 2016-08-09  Richard Biener  <rguenther@suse.de>
5007         PR tree-optimization/71802
5008         * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
5009         all merge opportunities with the predecessor.
5011 2016-08-09  Richard Biener  <rguenther@suse.de>
5013         PR ipa/68273
5014         * ipa-prop.c (ipa_modify_formal_parameters): Build
5015         parameter types with natural alignment also for the
5016         over-aligned case.
5018 2016-08-08  Andi Kleen  <ak@linux.intel.com>
5020         * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
5022 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
5024         PR c/64955
5025         * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
5026         do-nothing langhook.
5027         (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
5028         * langhooks.h (struct lang_hooks): Add run_lang_selftests.
5029         * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
5030         (selftest::run_tests): Call lang_hooks.run_lang_selftests.
5032 2016-08-08  David Malcolm  <dmalcolm@redhat.com>
5034         PR bootstrap/72844
5035         * input.c: Ensure that HAVE_ICONV is defined.
5037 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
5039         PR middle-end/72781
5040         * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
5041         private vars for lastprivate and for linear iterator.
5043         PR middle-end/68762
5044         * omp-simd-clone.c: Include varasm.h.
5045         (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
5046         DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
5047         DECL_ONE_ONLY call make_decl_one_only.  Fix up spelling in comment and
5048         update function name.
5050 2016-07-29  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
5052         * config/avr/driver-avr.c (specfiles_doc_url): Remove.
5053         (avr_diagnose_devicespecs_error): Remove.
5054         (avr_devicespecs_file): Remove composing absolute path for specfile
5055         and its verbose info. Remove conditions to check specs-file,
5057 2016-08-08  Jakub Jelinek  <jakub@redhat.com>
5059         PR rtl-optimization/72821
5060         * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
5061         just return false for them.
5063 2016-08-08  Alan Modra  <amodra@gmail.com>
5065         PR target/72771
5066         * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
5067         toc refs created during reload.  Update function comment.
5069 2016-08-08  Alan Modra  <amodra@gmail.com>
5071         PR target/72802
5072         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
5073         alternatives.  Put loads first, then stores, and reg/reg moves
5074         within same class later.  Delete attr length.
5076 2016-08-08  Alan Modra  <amodra@gmail.com>
5078         PR target/72802
5079         * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
5080         (mem_operand_ds_form): New predicate.
5081         * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
5082         * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
5083         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
5084         * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
5085         (extendsfdf2_fpr): Replace o constraint with wY.
5087 2016-08-07  Jan Hubicka  <hubicka@ucw.cz>
5089         * tree-ssa-threadbackward.c: Include tree-inline.h
5090         (profitable_jump_thread_path): Use estimate_num_insns to estimate
5091         size of copied block; for cold paths reduce duplication.
5092         (find_jump_threads_backwards): Remove redundant tests.
5093         (pass_thread_jumps::gate): Enable for -Os.
5095 2016-08-07  Jakub Jelinek  <jakub@redhat.com>
5097         PR c/72816
5098         * stor-layout.c (layout_decl): Fix up formatting.
5099         (relayout_decl): Allow DECL to be FIELD_DECL.
5101 2016-08-07  Alan Modra  <amodra@gmail.com>
5103         * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
5105 2016-08-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
5107         * data-streamer-in.c (streamer_read_wide_int): New.
5108         (streamer_read_widest_int): Renamed function.
5109         * data-streamer-out.c (streamer_write_wide_int): New
5110         (streamer_write_widest_int): Renamed function.
5111         * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
5112         data-stream-in.c.
5113         (input_cfg): Call renamed function.
5114         * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
5115         data-stream-out.c.
5116         (output_cfg): Call renamed function.
5117         * data-streamer.h: Add declarations.
5119 2016-08-08  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5121         * tree-ssa-ccp.c (extend_mask): New param sgn.
5122         Remove ORing with wi::mask.
5123         (get_default_value): Adjust call to extend_mask to pass sign.
5124         (evaluate_stmt): Likewise.
5126 2016-08-06  Jakub Jelinek  <jakub@redhat.com>
5128         * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
5129         INT64_MAX.
5131 2016-08-06  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5133         * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
5134         transform if operand's type is pointer to function or method.
5136 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
5138         PR tree-optimization/18046
5139         * tree-ssa-threadedge.c: Include cfganal.h.
5140         (simplify_control_statement_condition): If simplifying a
5141         GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
5142         with the dominating ASSERT_EXPR before handing it off to VRP.
5143         Mention that a CASE_LABEL_EXPR may be returned.
5144         (thread_around_empty_blocks): Adjust to handle
5145         simplify_control_statement_condition() returning a
5146         CASE_LABEL_EXPR.
5147         (thread_through_normal_block): Likewise.
5148         * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
5149         a switch statement by trying to determine which case label
5150         will be taken.
5152 2016-08-05  Vladimir Makarov  <vmakarov@redhat.com>
5154         PR rtl-optimization/69847
5155         * lra-constraints.c (process_invariant_for_inheritance): Save
5156         pattern instead of src.
5157         (remove_inheritance_pseudos): Use the pattern.  Add assert.
5159 2016-08-05  David Malcolm  <dmalcolm@redhat.com>
5161         * input.c (string_concat::string_concat): New constructor.
5162         (string_concat_db::string_concat_db): New constructor.
5163         (string_concat_db::record_string_concatenation): New method.
5164         (string_concat_db::get_string_concatenation): New method.
5165         (string_concat_db::get_key_loc): New method.
5166         (class auto_cpp_string_vec): New class.
5167         (get_substring_ranges_for_loc): New function.
5168         (get_source_range_for_substring): New function.
5169         (get_num_source_ranges_for_substring): New function.
5170         (class selftest::lexer_test_options): New class.
5171         (struct selftest::lexer_test): New struct.
5172         (class selftest::ebcdic_execution_charset): New class.
5173         (selftest::ebcdic_execution_charset::s_singleton): New variable.
5174         (selftest::lexer_test::lexer_test): New constructor.
5175         (selftest::lexer_test::~lexer_test): New destructor.
5176         (selftest::lexer_test::get_token): New method.
5177         (selftest::assert_char_at_range): New function.
5178         (ASSERT_CHAR_AT_RANGE): New macro.
5179         (selftest::assert_num_substring_ranges): New function.
5180         (ASSERT_NUM_SUBSTRING_RANGES): New macro.
5181         (selftest::assert_has_no_substring_ranges): New function.
5182         (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
5183         (selftest::test_lexer_string_locations_simple): New function.
5184         (selftest::test_lexer_string_locations_ebcdic): New function.
5185         (selftest::test_lexer_string_locations_hex): New function.
5186         (selftest::test_lexer_string_locations_oct): New function.
5187         (selftest::test_lexer_string_locations_letter_escape_1): New function.
5188         (selftest::test_lexer_string_locations_letter_escape_2): New function.
5189         (selftest::test_lexer_string_locations_ucn4): New function.
5190         (selftest::test_lexer_string_locations_ucn8): New function.
5191         (selftest::uint32_from_big_endian): New function.
5192         (selftest::test_lexer_string_locations_wide_string): New function.
5193         (selftest::uint16_from_big_endian): New function.
5194         (selftest::test_lexer_string_locations_string16): New function.
5195         (selftest::test_lexer_string_locations_string32): New function.
5196         (selftest::test_lexer_string_locations_u8): New function.
5197         (selftest::test_lexer_string_locations_utf8_source): New function.
5198         (selftest::test_lexer_string_locations_concatenation_1): New
5199         function.
5200         (selftest::test_lexer_string_locations_concatenation_2): New
5201         function.
5202         (selftest::test_lexer_string_locations_concatenation_3): New
5203         function.
5204         (selftest::test_lexer_string_locations_macro): New function.
5205         (selftest::test_lexer_string_locations_stringified_macro_argument):
5206         New function.
5207         (selftest::test_lexer_string_locations_non_string): New function.
5208         (selftest::test_lexer_string_locations_long_line): New function.
5209         (selftest::test_lexer_char_constants): New function.
5210         (selftest::input_c_tests): Call the new test functions once per
5211         case within the line_table test matrix.
5212         * input.h (struct string_concat): New struct.
5213         (struct location_hash): New struct.
5214         (class string_concat_db): New class.
5215         * substring-locations.h: New header.
5217 2016-08-05  Patrick Palka  <ppalka@gcc.gnu.org>
5219         PR tree-optimization/72810
5220         * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
5221         the type of the case labels when truncating.
5223 2016-08-05  James Greenhalgh  <james.greenhalgh@arm.com>
5225         PR Target/72819
5226         * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
5227         (aarch64_fp16_ptr_type_node): Likewise.
5228         * config/aarch64/aarch64-simd-builtins.c
5229         (aarch64_fp16_ptr_type_node): Define.
5230         (aarch64_init_fp16_types): New, refactored out of...
5231         (aarch64_init_builtins): ...here, update to call
5232         aarch64_init_fp16_types.
5233         * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
5234         HFmode.
5235         (aapcs_vfp_sub_candidate): Likewise.
5237 2016-08-05  Martin Liska  <mliska@suse.cz>
5238             Joshua Cranmer  <Pidgeot18@gmail.com>
5240         * gcov.c (line_t::has_block): New function.
5241         (enum loop_type): New enum.
5242         (handle_cycle): New function.
5243         (unblock): Likewise.
5244         (circuit): Likewise.
5245         (get_cycles_count): Likewise.
5246         (accumulate_line_counts): Use new loop detection algorithm.
5248 2016-08-05  Martin Liska  <mliska@suse.cz>
5250         * gcov.c (output_intermediate_file): Rename
5251         function_info::line_next to next_file_fn.
5252         (process_file): Likewise.
5253         (read_graph_file): Likewise.
5254         (accumulate_line_counts): Likewise.
5255         (output_lines): Likewise.
5257 2016-08-05  Richard Biener  <rguenther@suse.de>
5259         * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
5260         restriction on threading to a loop header.
5262 2016-08-05  Richard Biener  <rguenther@suse.de>
5264         * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
5265         * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
5266         adjust loop info accordingly.
5268 2016-08-05  Kugan Vivekanandarajah  <kuganv@linaro.org>
5270         * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
5271         before folding call to __builtin_constant_p with parameters to false.
5273 2016-08-05  Alan Modra  <amodra@gmail.com>
5275         * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
5276         code accidentally committed 2016-05-02 providing class when given
5277         NO_REGS.
5279 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
5281         * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
5282         the case label ranges that partially overlap with OP's value
5283         range.
5285 2016-08-04  Uros Bizjak  <ubizjak@gmail.com>
5287         PR target/72805
5288         * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
5289         Cast builtin function result to __mmask16 instead of __mmask8.
5290         (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5291         (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
5292         (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5294 2016-08-04  David Malcolm  <dmalcolm@redhat.com>
5296         * selftest.h (ASSERT_TRUE): Reimplement in terms of...
5297         (ASSERT_TRUE_AT): New macro.
5298         (ASSERT_FALSE): Reimplement in terms of...
5299         (ASSERT_FALSE_AT): New macro.
5300         (ASSERT_STREQ_AT): Fix typo in comment.
5302 2016-08-04  Patrick Palka  <ppalka@gcc.gnu.org>
5304         * gimple.c (preprocess_case_label_vec_for_gimple): When the case
5305         labels are exhaustive, designate the label with the widest
5306         range to be the default label.
5308 2016-08-04  Andrew Pinski  <apinski@cavium.com>
5310         * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
5311         (thunderx_tunings): Use thunderx_vector_cost instead of
5312         generic_vector_cost.
5314 2016-08-04  Martin Liska  <mliska@suse.cz>
5316         * gcov.c (main): Fix GNU coding style.
5317         (output_intermediate_file): Likewise.
5318         (process_file): Likewise.
5319         (generate_results): Likewise.
5320         (release_structures): Likewise.
5321         (create_file_names): Likewise.
5322         (find_source): Likewise.
5323         (read_graph_file): Likewise.
5324         (find_exception_blocks): Likewise.
5325         (canonicalize_name): Likewise.
5326         (make_gcov_file_name): Likewise.
5327         (mangle_name): Likewise.
5328         (accumulate_line_counts): Likewise.
5329         (output_branch_count): Likewise.
5330         (read_line): Likewise.
5332 2016-08-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5334         PR rtl-optimization/71779
5335         * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
5336         if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
5337         or if it was truncated.
5339         PR rtl-optimization/70903
5340         * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
5342 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
5344         * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
5345         accessing SSA_NAME_PTR_INFO.
5347 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
5349         PR 70677
5350         * common/config/avr/avr-common.c (avr_option_optimization_table)
5351         [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
5353 2016-08-04  Georg-Johann Lay  <avr@gjlay.de>
5355         PR 55181
5356         * config/avr/avr.md: New pattern to work around do_store_flag
5357         generating shift instructions for bit extractions.
5359 2016-08-04  Kugan Vivekanandarajah  <kuganv@linaro.org>
5361         * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
5362         BITMAP_ALLOC.
5363         (add_equivalence): Likewise.
5364         (get_value_range): Allocate value range with vrp_value_range_pool.
5365         (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
5366         (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
5368 2016-08-03  Peter Bergner  <bergner@vnet.ibm.com>
5370         * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
5371         the default for the rs6000 port.
5373 2016-08-03  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5375         PR middle-end/71876
5376         * calls.c (special_function_p): Remove special handling of
5377         "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
5378         prefix "__x".  Recognize "savectx", "vfork" and "getcontext" only
5379         without prefix.  Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
5381 2016-08-03  Vladimir Makarov  <vmakarov@redhat.com>
5383         PR middle-end/72778
5384         * lra-spills.c (regno_in_use_p): Check bb and regno modification.
5385         Don't stop on regular insns.
5387 2016-08-03  Nathan Sidwell  <nathan@codesourcery.com>
5389         * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
5390         size to DImode boundary.
5391         (nvptx_propagate): Likewise.
5393 2016-08-03  Alan Modra  <amodra@gmail.com>
5395         * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
5396         float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
5397         * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
5398         from -mefficient-unaligned-vector.  Note that this affects fp too.
5400 2016-08-03  Alan Modra  <amodra@gmail.com>
5402         * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
5403         cost more.
5405 2016-08-03  Alan Modra  <amodra@gmail.com>
5407         * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
5408         to a reg.  Localize vars.
5410 2016-08-03  Alan Modra  <amodra@gmail.com>
5412         * config/rs6000/rs6000.opt: Remove negatives from help strings
5413         and comments.
5415 2016-08-03  Alan Modra  <amodra@gmail.com>
5417         * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
5418         Delete duplicated code.
5420 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
5422         PR middle-end/72778
5423         * lra-spills.c (regno_in_use_p): New.
5424         (lra_final_code_change): Use it.
5426 2016-08-02  Vladimir Makarov  <vmakarov@redhat.com>
5428         PR rtl-optimization/69847
5429         * lra-int.h (struct lra-reg): Use restore_rtx instead of
5430         restore_regno.
5431         (lra_rtx_hash): New.
5432         * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
5433         of restore_regno.
5434         (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
5435         * lra-remat.c (rtx_hash): Rename and Move to lra.c.
5436         * lra-spills.c (lra_final_code_change): Don't delete insn when the
5437         next insn is USE with the same reg as the current insn source.
5438         * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
5439         of restore_regno.
5440         (lra_constraints_init): Call initiate_invariants.
5441         (lra_constraints_finish): Call finish_invariants.
5442         (struct invariant, invariant_t, invariant_ptr_t): New.
5443         (const_invariant_ptr_t, invariants, invariants_pool): New.
5444         (invariant_table, invariant_hash, invariant_eq_p): New.
5445         (insert_invariant, initiate_invariants, finish_invariants): New.
5446         (clear_invariants, invalid_invariant_regs): New.
5447         (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
5448         instead of restore_regno.
5449         (invariant_p, process_invariant_for_inheritance): New.
5450         (inherit_in_ebb): Implement invariant inheritance.
5451         (lra_inheritance): Initialize and finalize invalid_invariant_regs.
5452         (remove_inheritance_pseudos): Implement undoing invariant
5453         inheritance.
5454         (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
5455         instead of restore_regno.
5456         * lra-assigns.c (regno_live_length): New.
5457         (reload_pseudo_compare_func): Use regno_live_length.
5458         (assign_by_spills): Use restore_rtx instead of restore_regno.
5459         (lra_assign): Ditto.  Initiate regno_live_length.
5461 2016-02-08  James Greenhalgh  <james.greenhalgh@arm.com>
5463         * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
5464         __builtin_aarch64_fmindf.
5466 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
5468         PR tree-optimization/34114
5469         * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
5470         information for more control IVs.
5472 2016-08-02  Bin Cheng  <bin.cheng@arm.com>
5474         PR tree-optimization/34114
5475         * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
5476         PLUS_EXPR case.  Handle SSA_NAME case.
5478 2016-08-02  Tamar Christina  <tamar.christina@arm.com>
5480         * config/aarch64/aarch64-simd-builtins.def
5481         (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
5482         (__builtin_aarch64_fmaxdf): Likewise.
5483         (__builtin_aarch64_smin_nandf): Likewise.
5484         (__builtin_aarch64_smax_nandf): Likewise.
5485         * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
5486         * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
5487         (<fmaxmin><mode>3): ...this.
5488         * config/aarch64/arm_neon.h (vmaxnm_f64): New.
5489         (vminnm_f64): Likewise.
5490         (vmin_f64): Likewise.
5491         (vmax_f64): Likewise.
5492         * config/aarch64/iterators.md (FMAXMIN): Merge with...
5493         (FMAXMIN_UNS): ...this.
5494         (fmaxmin): Merged with
5495         (fmaxmin_op): ...this...
5496         (maxmin_uns_op): ...in to this.
5498 2016-08-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
5500         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5501         Add support for vec_extract on vector float, vector int, vector
5502         short, and vector char vector types.
5503         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5504         vector float, vector int, vector short, and vector char
5505         optimizations on 64-bit ISA 2.07 systems for both constant and
5506         variable element numbers.
5507         (rs6000_split_vec_extract_var): Likewise.
5508         * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
5509         Altivec registers on ISA 2.07 and above.
5510         (vsx_extract_v4sf): Delete alternative that hard coded element 0,
5511         which never was matched due to the split occuring before register
5512         allocation (and the code would not have worked on little endian
5513         systems if it did match).  Allow extracts to go to the Altivec
5514         registers if ISA 2.07 (power8).  Change from using "" around the
5515         C++ code to using {}'s.
5516         (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
5517         vec_extracts when the vector is in memory.
5518         (vsx_extract_v4sf_var): New insn to optimize vector float
5519         vec_extracts when the element number is variable on 64-bit ISA
5520         2.07 systems.
5521         (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
5522         for 64-bit ISA 2.07 as well as ISA 3.0.
5523         (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
5524         (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
5525         (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
5526         optimize vector int, vector short, and vector char vec_extracts
5527         when the vector is in memory.
5528         (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
5529         optimize vector int, vector short, and vector char vec_extracts
5530         when the element number is variable.
5532 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
5534         PR target/71948
5535         * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
5536         does not overlap with other symbol flags.
5538 2016-08-01  Wilco Dijkstra  <wdijkstr@arm.com>
5540         * config/aarch64/aarch64.h (aarch64_frame):
5541         Remove padding0 and hardfp_offset.  Add locals_offset,
5542         initial_adjust, callee_adjust, callee_offset and final_adjust.
5543         * config/aarch64/aarch64.c (aarch64_layout_frame):
5544         Remove unused padding0 and hardfp_offset initializations.
5545         Choose frame layout and set frame variables accordingly.
5546         Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
5547         (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
5548         (aarch64_pop_regs): Likewise.
5549         (aarch64_expand_prologue): Remove all decision code, just emit
5550         prolog according to frame variables.
5551         (aarch64_expand_epilogue): Remove all decision code, just emit
5552         epilog according to frame variables.
5553         (aarch64_initial_elimination_offset): Use offset to local/arg area.
5555 2015-08-01  H.J. Lu  <hongjiu.lu@intel.com>
5557         PR target/72748
5558         * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
5559         fix_debug_reg_uses after changing source register mode to
5560         V1TImode if source register is undefined.
5562 2015-08-01  Alan Hayward  <alan.hayward@arm.com>
5564         PR tree-optimization/71818
5565         * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
5566         with non invariant evolutions
5568 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
5570         PR target/72767
5571         * config/avr/avr.md (length) [branch]: Correct insn length
5572         attribute for forward branches.
5574 2016-08-01  Georg-Johann Lay  <avr@gjlay.de>
5576         * doc/extend.texi (AVR Built-in Functions): Document
5577         __builtin_avr_nops.
5578         * config/avr/builtins.def (NOPS): New.
5579         * config/avr/avr.c (avr_expand_nops): New static function.
5580         (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
5582 2016-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
5584         * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
5585         performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
5586         addresses.
5588 2016-08-01  Virendra Pathak  <virendra.pathak@broadcom.com>
5590         * config/aarch64/aarch64.c (vulcan_tunings): Update
5591         vulcan L1 cache_line_size.
5593 2016-07-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
5595         * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
5596         function that takes a vector memory address, a hard register, an
5597         element number and a temporary base register, and recreates an
5598         address that points to the appropriate element within the vector.
5599         * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
5600         (rs6000_split_vec_extract_var): Add support for the target of a
5601         vec_extract with variable element number being a scalar memory
5602         location.
5603         (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
5604         swappable.
5605         * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
5606         vsx_extract_<mode>_load insn with a new insn that optimizes
5607         storing either element to a memory location, using scratch
5608         registers to pick apart the vector and reconstruct the address.
5609         (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
5610         (vsx_extract_<mode>_store): Rework alternatives to more correctly
5611         support Altivec registers.  Add support for ISA 3.0 Altivec d-form
5612         store instruction.
5613         (vsx_extract_<mode>_var): Add support for extracting a variable
5614         element number from memory.
5616 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
5618         * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
5619         when testing for compares against constants of the form 0xabab.
5621 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
5623         PR tree-optimization/57558
5624         * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
5625         function.
5626         (vect_loop_versioning): Support versioning with niter assumptions.
5627         * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
5628         (vect_get_loop_niters): New parameter.  Reimplement to support
5629         assumptions in loop niter info.
5630         (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
5631         (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
5632         (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
5633         Support loop versioning for niters.
5634         * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
5635         (vect_free_loop_info_assumptions): New function.
5636         (vectorize_loops): Free loop niter info for loops with flag
5637         LOOP_F_ASSUMPTIONS set if vectorization failed.
5638         * tree-vectorizer.h (struct _loop_vec_info): New field
5639         num_iters_assumptions.
5640         (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
5641         (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
5642         (LOOP_REQUIRES_VERSIONING): New macro.
5643         (vect_free_loop_info_assumptions): New decl.
5645 2016-07-29  Bin Cheng  <bin.cheng@arm.com>
5647         * cfgloop.h (struct loop): New field constraints.
5648         (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
5649         (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
5650         functions.
5651         * cfgloop.c (alloc_loop): Initialize new field.
5652         * cfgloopmanip.c (copy_loop_info): Copy constraints.
5653         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
5654         Adjust niter analysis wrto loop constraints.
5655         * doc/loop.texi (@node Number of iterations): Add description for loop
5656         constraints.
5658 2016-07-29  Marek Polacek  <polacek@redhat.com>
5660         PR c/7652
5661         * config/i386/i386.c (ix86_expand_args_builtin): Add break.
5662         (ix86_expand_round_builtin): Likewise.
5664 2016-07-29  Segher Boessenkool  <segher@kernel.crashing.org>
5665             Georg-Johann Lay  <avr@gjlay.de>
5667         PR rtl-optimization/71976
5668         * combine.c (get_last_value): Return 0 if the argument for which
5669         the function is called has a wider mode than the recorded value.
5671 2016-07-29  Marek Polacek  <polacek@redhat.com>
5673         PR c/7652
5674         * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
5675         (altivec_expand_st_builtin): Likewise.
5677 2016-07-29  Georg-Johann Lay  <avr@gjlay.de>
5679         * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
5680         introduced in r238381.
5682 2016-07-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
5684         PR middle-end/68217
5685         * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
5686         & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
5688 2016-07-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
5690         * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
5691         New declaration.
5692         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5693         Add support for vec_extract of vector double or vector long having
5694         a variable element number on 64-bit ISA 2.07 systems or newer.
5695         * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
5696         Likewise.
5697         (rs6000_split_vec_extract_var): New function to split a
5698         vec_extract built-in function with variable element number.
5699         (rtx_is_swappable_p): Variable vec_extracts and shifts are not
5700         swappable.
5701         * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
5702         (UNSPEC_VSX_EXTRACT): Likewise.
5703         (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
5704         direct move instructions to be generated on 64-bit ISA 2.07
5705         systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
5706         instruction.
5707         (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
5708         arguments for vec_extract variable element.
5709         (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
5710         vec_extract with variable element on V2DFmode and V2DImode
5711         vectors.
5712         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
5713         -mupper-regs-df requirement, since it isn't needed.
5714         (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
5715         do direct moves on 64-bit systems, which allows optimization of
5716         vec_extract on 64-bit ISA 2.07 systems and newer.
5718 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
5719 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
5721          * config/aarch64/aarch64.md
5722         (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
5723         statement and type.
5724         (<optab>qihi2_aarch64): Likewise, and split into two.
5725         (extendqihi2_aarch64): New.
5726         (zero_extendqihi2_aarch64): New.
5727         * config/aarch64/iterators.md (ldrxt): Remove.
5728         * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
5729         uxtb/uxth.
5731 2016-07-28  Kristina Martsenko  <kristina.martsenko@arm.com>
5733         * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
5735 2016-07-28  Wilco Dijkstra  <wdijkstr@arm.com>
5737         * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
5738         (aarch64_push_reg): New function to push 1 or 2 registers.
5739         (aarch64_pop_reg): New function to pop 1 or 2 registers.
5740         (aarch64_expand_prologue): Use aarch64_push_regs.
5741         (aarch64_expand_epilogue): Use aarch64_pop_regs.
5743 2016-07-28  Yuri Rumyantsev  <ysrumyan@gmail.com>
5745         PR tree-optimization/71734
5746         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
5747         attribute instead of REF_LOOP and use it.
5748         (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
5749         set it for Loops having non-zero safelen attribute.
5750         (ref_indep_loop_p): Pass zero as initial value for safelen.
5752 2016-07-28  Ilya Enkovich  <ilya.enkovich@intel.com>
5754         PR middle-end/72657
5755         PR target/72683
5756         * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
5757         call using chkp_gimple_call_builtin_p.
5758         (chkp_copy_bounds_for_assign): Likewise.
5760 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5762         * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
5763         * config/arm/arm-protos.h (struct tune_params): Likewise.
5764         * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
5765         (cortex_a9_sched_adjust_cost): Likewise.
5766         (fa726te_sched_adjust_cost): Likewise.
5767         (arm_adjust_cost): Likewise.
5768         * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
5769         * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
5770         * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
5771         * config/i386/i386.c (ix86_adjust_cost): Likewise.
5772         * config/ia64/ia64.c: Likewise.
5773         * config/m68k/m68k.c: Likewise.
5774         * config/mep/mep.c (mep_adjust_cost): Likewise.
5775         * config/microblaze/microblaze.c (microblaze_adjust_cost):
5776         * Likewise.
5777         * config/mips/mips.c (mips_adjust_cost): Likewise.
5778         * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
5779         * Likewise.
5780         * config/pa/pa.c (pa_adjust_cost): Likewise.
5781         * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
5782         (rs6000_debug_adjust_cost): Likewise.
5783         * config/sh/sh.c (sh_adjust_cost): Likewise.
5784         * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
5785         (hypersparc_adjust_cost): Likewise.
5786         (sparc_adjust_cost): Likewise.
5787         * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
5788         * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
5789         * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
5790         * Likewise.
5791         * config/visium/visium.c (visium_adjust_cost): Likewise.
5792         * doc/tm.texi: Regenerate.
5793         * haifa-sched.c (dep_cost_1): Adjust.
5794         * target.def: Merge adjust_cost and adjust_cost_2.
5796 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5798         * haifa-sched.c (add_to_speculative_block): Make twins a vector.
5800 2016-07-28  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5802         * store-motion.c (struct st_expr): Make pattern_regs a vector.
5803         (extract_mentioned_regs): Append to a vector instead of
5804         returning a rtx_expr_list.
5805         (st_expr_entry): Adjust.
5806         (free_st_expr_entry): Likewise.
5807         (store_ops_ok): Likewise.
5808         (store_killed_in_insn): Likewise.
5809         (find_moveable_store): Likewise.
5811 2016-07-28  Martin Liska  <mliska@suse.cz>
5813         PR gcov-profile/68025
5814         * tree-profile.c (tree_profiling): Respect
5815         no_profile_instrument_function attribute.
5816         * doc/extend.texi: Document no_profile_instrument_function
5817         attribute.
5819 2016-07-28  Martin Liska  <mliska@suse.cz>
5821         PR rtl-optimization/70944
5822         * combine.c (make_compound_operation):
5823         Do not allow make_compound_operation for vector mode
5825 2016-07-28  Kugan Vivekanandarajah  <kuganv@linaro.org>
5827         PR middle-end/71994
5828         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
5829          before calling get_ops.
5831 2016-07-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
5833         * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
5834         * tree.h (LOG2_BITS_PER_UNIT): ...to here.
5835         (BITS_PER_UNIT_LOG): Remove.
5836         (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
5837         * expr.c (expand_assignment): Likewise.
5838         * stor-layout.c (initialize_sizetypes): Likewise.
5840 2016-07-27  Michael Meissner  <meissner@linux.vnet.ibm.com>
5842         * config/rs6000/vector.md (vec_extract<mode>): Change the calling
5843         signature of rs6000_expand_vector_extract so that the element
5844         number is a RTX instead of a constant integer.
5845         * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
5846         Likewise.
5847         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
5848         (altivec_expand_vec_ext_builtin): Likewise.
5849         * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
5850         * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
5851         MFVSRLD instruction.
5853 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
5855         * input.c (get_pure_location): Move here from tree.c.
5856         (make_location): Likewise.  Add header comment.
5857         (selftest::test_accessing_ordinary_linemaps): Verify
5858         pure_location_p, make_location, get_location_from_adhoc_loc and
5859         get_range_from_loc.
5860         * input.h (get_pure_location): Move declaration here from tree.h.
5861         (get_finish): Likewise for inline function.
5862         (make_location): Likewise for declaration.
5863         * tree.c (get_pure_location): Move to input.c.
5864         (make_location): Likewise.
5865         * tree.h (get_pure_location): Move declaration to tree.h.
5866         (get_finish): Likewise for inline function.
5867         (make_location): Likewise for declaration.
5869 2016-07-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5871         PR middle-end/71078
5872         * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
5874 2016-07-27  David Malcolm  <dmalcolm@redhat.com>
5876         * system.h (STATIC_ASSERT): Use static_assert if building
5877         with C++11 onwards.
5879 2016-07-27  Richard Biener  <rguenther@suse.de>
5881         PR tree-optimization/72517
5882         * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
5883         Revert change to not compute read-read dependences.
5885 2016-07-27  Richard Biener  <rguenther@suse.de>
5887         * predict.c (set_even_probabilities): Make nedges unsigned.
5889 2016-07-27  Martin Liska  <mliska@suse.cz>
5891         * predict.c (set_even_probabilities): Handle unlikely edges.
5892         (combine_predictions_for_bb): Likewise.
5894 2016-07-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
5896         PR target/71869
5897         * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
5898         __float128 support when we don't have hardware support, so that
5899         the IEEE built-in functions like isgreater, first call __unordkf3
5900         to make sure neither operand is a NaN, and if both operands are
5901         ordered, do the normal comparison.
5903 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
5905         * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
5906         name.
5907         (extract_code_and_val_from_cond_with_ops): Verify that name is
5908         either cond_op0 or cond_op1.
5910 2016-07-26  Patrick Palka  <ppalka@gcc.gnu.org>
5912         PR tree-optimization/18046
5913         * genmodes.c (emit_mode_size_inline): Emit an assert that
5914         verifies that mode is a valid array index.
5915         (emit_mode_nuinits_inline): Likewise.
5916         (emit_mode_inner_inline): Likewise.
5917         (emit_mode_unit_size_inline): Likewise.
5918         (emit_mode_unit_precision_inline): Likewise.
5919         * tree-vrp.c: Include params.h.
5920         (find_switch_asserts): Register edge assertions for the default
5921         label which correspond to the anti-ranges of each case label.
5922         * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
5923         * doc/invoke.texi: Document it.
5925 2016-07-26  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
5927         * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
5928         and unnecessary call to gimple_bb.
5930 2016-07-26  Richard Biener  <rguenther@suse.de>
5932         PR rtl-optimization/71984
5933         * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
5934         for VOIDmode.
5936 2016-07-26  Richard Biener  <rguenther@suse.de>
5938         PR middle-end/72517
5939         * expmed.c (extract_bit_field_1): Constrain the vector mode
5940         with element size matching the extraction mode size when
5941         choosing a better vector mode to do the extraction from.
5943 2016-07-26  Richard Biener  <rguenther@suse.de>
5944             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
5946         PR middle-end/70920
5947         * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
5948         pattern.
5950 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5952         * tree-ssa-structalias.c (struct scc_info): Change types of
5953         members to auto_sbitmap and auto_vec.
5954         (scc_info::scc_info): New constructor.
5955         (scc_info::~scc_info): New destructor.
5956         (init_scc_info): Remove.
5957         (free_scc_info): Remove.
5958         (find_indirect_cycles): Adjust.
5959         (perform_var_substitution): Likewise.
5960         (free_var_substitution_info): Likewise.
5962 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5964         * tree-outof-ssa.c (struct elim_graph): Change type of members
5965         to auto_vec and auto_sbitmap.
5966         (elim_graph::elim_graph): New constructor.
5967         (delete_elim_graph): Remove.
5968         (expand_phi_nodes): Adjust.
5970 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5972         * tree-outof-ssa.c (struct elim_graph): Remove typedef.
5973         (new_elim_graph): Adjust.
5974         (clear_elim_graph): Likewise.
5975         (delete_elim_graph): Likewise.
5976         (elim_graph_size): Likewise.
5977         (elim_graph_add_node): Likewise.
5978         (elim_graph_add_edge): Likewise.
5979         (elim_graph_remove_succ_edge): Likewise.
5980         (eliminate_name): Likewise.
5981         (eliminate_build): Likewise.
5982         (elim_forward): Likewise.
5983         (elim_unvisited_predecessor): Likewise.
5984         (elim_backward): Likewise.
5985         (elim_create): Likewise.
5986         (eliminate_phi): Likewise.
5987         (expand_phi_nodes): Likewise.
5989 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
5991         * bt-load.c (compute_out): Use auto_sbitmap class.
5992         (link_btr_uses): Likewise.
5993         * cfganal.c (mark_dfs_back_edges): Likewise.
5994         (post_order_compute): Likewise.
5995         (inverted_post_order_compute): Likewise.
5996         (pre_and_rev_post_order_compute_fn): Likewise.
5997         (single_pred_before_succ_order): Likewise.
5998         * cfgexpand.c (pass_expand::execute): Likewise.
5999         * cfgloop.c (verify_loop_structure): Likewise.
6000         * cfgloopmanip.c (fix_bb_placements): Likewise.
6001         (remove_path): Likewise.
6002         (update_dominators_in_loop): Likewise.
6003         * cfgrtl.c (break_superblocks): Likewise.
6004         * ddg.c (check_sccs): Likewise.
6005         (create_ddg_all_sccs): Likewise.
6006         * df-core.c (df_worklist_dataflow): Likewise.
6007         * dse.c (dse_step3): Likewise.
6008         * except.c (eh_region_outermost): Likewise.
6009         * function.c (thread_prologue_and_epilogue_insns): Likewise.
6010         * gcse.c (prune_expressions): Likewise.
6011         (prune_insertions_deletions): Likewise.
6012         * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
6013         * graph.c (draw_cfg_nodes_no_loops): Likewise.
6014         * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
6015         * lcm.c (compute_earliest): Likewise.
6016         (compute_farthest): Likewise.
6017         * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
6018         (unroll_loop_runtime_iterations): Likewise.
6019         (unroll_loop_stupid): Likewise.
6020         * lower-subreg.c (decompose_multiword_subregs): Likewise.
6021         * lra-lives.c: Likewise.
6022         * lra.c (lra): Likewise.
6023         * modulo-sched.c (schedule_reg_moves): Likewise.
6024         (optimize_sc): Likewise.
6025         (get_sched_window): Likewise.
6026         (sms_schedule_by_order): Likewise.
6027         (check_nodes_order): Likewise.
6028         (order_nodes_of_sccs): Likewise.
6029         (order_nodes_in_scc): Likewise.
6030         * recog.c (split_all_insns): Likewise.
6031         * regcprop.c (pass_cprop_hardreg::execute): Likewise.
6032         * reload1.c (reload): Likewise.
6033         * sched-rgn.c (haifa_find_rgns): Likewise.
6034         (split_edges): Likewise.
6035         (compute_trg_info): Likewise.
6036         * sel-sched.c (init_seqno): Likewise.
6037         * store-motion.c (remove_reachable_equiv_notes): Likewise.
6038         * tree-into-ssa.c (update_ssa): Likewise.
6039         * tree-ssa-live.c (live_worklist): Likewise.
6040         * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
6041         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6042         * Likewise.
6043         (try_peel_loop): Likewise.
6044         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
6045         * Likewise.
6046         * tree-ssa-pre.c (compute_antic): Likewise.
6047         * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6048         * tree-stdarg.c (reachable_at_most_once): Likewise.
6049         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
6050         * var-tracking.c (vt_find_locations): Likewise.
6052 2016-07-26  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
6054         * sbitmap.h (auto_sbitmap): New class.
6056 2016-07-26  Alan Modra  <amodra@gmail.com>
6058         PR target/72103
6059         * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
6060         sri->t_icode.
6062 2016-07-25  David Malcolm  <dmalcolm@redhat.com>
6064         * input.c (selftest::temp_source_file::temp_source_file): Fix
6065         missing "%s" in fprintf.
6067 2016-07-25  John David Anglin  <danglin@gcc.gnu.org>
6069         PR middle-end/71732
6070         * cselib.c (cselib_process_insn): Invalidate argument slots for
6071         const/pure calls.
6073 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6075         * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
6076         vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
6077         vmulxh_lane_f16, vmulxh_laneq_f16): New.
6079 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6081         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6082         * config/aarch64/aarch64.md (fma, fnma): Support HF.
6083         * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
6085 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6087         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6088         * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
6089         New.
6090         (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
6091         (add<mode>3): Likewise.
6092         (sub<mode>3): Likewise.
6093         (mul<mode>3): Likewise.
6094         (div<mode>3): Likewise.
6095         (*div<mode>3): Likewise.
6096         (<fmaxmin><mode>3): Extend to HF.
6097         * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
6098         (fabd<mode>3): Likewise.
6099         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
6100         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
6101         (aarch64_fmulx<mode>): Likewise.
6102         (aarch64_fac<optab><mode>): Likewise.
6103         (aarch64_frecps<mode>): Likewise.
6104         (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
6105         (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
6106         * config/aarch64/iterators.md (VHSDF_SDF): Delete.
6107         (VSDQ_HSDI): Support HI.
6108         (fcvt_target, FCVT_TARGET): Likewise.
6109         * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
6110         vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
6111         vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
6112         vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
6113         vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
6114         vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
6115         vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
6116         vrsqrtsh_f16): New.
6118 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6120         * config.gcc (aarch64*-*-*): Install arm_fp16.h.
6121         * config/aarch64/aarch64-builtins.c (hi_UP): New.
6122         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6123         * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
6124         mode.
6125         (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
6126         (aarch64_cm<optab><mode>): Likewise.
6127         * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
6128         (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
6129         (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6130         (sqrt<mode>2): Likewise.
6131         (*sqrt<mode>2): Likewise.
6132         (abs<mode>2): Likewise.
6133         (<optab><mode>hf2): New pattern for HF mode.
6134         (<optab>hihf2): Likewise.
6135         * config/aarch64/arm_neon.h: Include arm_fp16.h.
6136         * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
6137         (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
6138         Support HF mode.
6139         * config/aarch64/arm_fp16.h: New file.
6140         (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
6141         vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
6142         vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
6143         vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
6144         vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
6145         vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
6146         vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
6147         vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
6148         vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
6149         vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
6150         vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
6151         vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
6152         vsqrth_f16): New.
6154 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6156         * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
6157         reduc_smin_scal_): Use VDQIF_F16.
6158         (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
6159         * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
6160         Use VHSDF.
6161         (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
6162         * config/aarch64/iterators.md (VDQIF_F16): New.
6163         (vp): Support HF modes.
6164         * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
6165         vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
6167 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6169         * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
6170         "*aarch64_mulx_elt_from_dup<mode>".
6171         (*aarch64_mul3_elt<mode>): Update schedule type.
6172         (*aarch64_mul3_elt_from_dup<mode>): Likewise.
6173         (*aarch64_fma4_elt_from_dup<mode>): Likewise.
6174         (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
6175         * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
6176         (f, fp): Support HF modes.
6177         * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
6178         vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
6179         vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
6180         vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
6181         vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
6182         vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
6184 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6186         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6187         * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
6188         modes.
6189         * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
6190         vfmsq_f16): New.
6192 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6194         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6195         * config/aarch64/aarch64-simd.md
6196         (aarch64_rsqrts<mode>): Extend to HF modes.
6197         (fabd<mode>3): Likewise.
6198         (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
6199         (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
6200         (aarch64_<maxmin_uns>p<mode>): Likewise.
6201         (<su><maxmin><mode>3): Likewise.
6202         (<maxmin_uns><mode>3): Likewise.
6203         (<fmaxmin><mode>3): Likewise.
6204         (aarch64_faddp<mode>): Likewise.
6205         (aarch64_fmulx<mode>): Likewise.
6206         (aarch64_frecps<mode>): Likewise.
6207         (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
6208         (add<mode>3): Extend to HF modes.
6209         (sub<mode>3): Likewise.
6210         (mul<mode>3): Likewise.
6211         (div<mode>3): Likewise.
6212         (*div<mode>3): Likewise.
6213         * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
6214         HF, V4HF and V8HF.
6215         * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
6216         * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
6217         vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
6218         vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
6219         vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
6220         vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
6221         vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
6222         vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
6223         vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
6224         vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
6225         vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
6226         vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
6227         vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
6228         vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
6230 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6232         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
6233         * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6234         * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
6235         (neg<mode>2): Likewise.
6236         (abs<mode>2): Likewise.
6237         (<frint_pattern><mode>2): Likewise.
6238         (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
6239         (<optab><VDQF:mode><fcvt_target>2): Likewise.
6240         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
6241         (ftrunc<VDQF:mode>2): Likewise.
6242         (<optab><fcvt_target><VDQF:mode>2): Likewise.
6243         (sqrt<mode>2): Likewise.
6244         (*sqrt<mode>2): Likewise.
6245         (aarch64_frecpe<mode>): Likewise.
6246         (aarch64_cm<optab><mode>): Likewise.
6247         * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
6248         HF, V4HF and V8HF.
6249         * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
6250         (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
6251         (stype): New.
6252         * config/aarch64/arm_neon.h (vdup_n_f16): New.
6253         (vdupq_n_f16): Likewise.
6254         (vld1_dup_f16): Use vdup_n_f16.
6255         (vld1q_dup_f16): Use vdupq_n_f16.
6256         (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
6257         vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
6258         vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
6259         vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
6260         vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
6261         vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
6262         vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
6263         vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
6264         vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
6265         vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
6266         vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
6267         vsqrt_f16, vsqrtq_f16): New.
6269 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6271         * config/aarch64/aarch64-simd.md
6272         (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
6273         (aarch64_ext<mode>): Likewise.
6274         (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
6275         * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
6276         aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
6277         and V8HFmode.
6278         * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
6279         float16x8_t.
6280         (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
6281         __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
6282         vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
6283         vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
6284         vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
6285         vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
6286         vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
6287         New.
6288         (vmov_n_f16): Reimplement using vdup_n_f16.
6289         (vmovq_n_f16): Reimplement using vdupq_n_f16..
6291 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6293         * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
6294         "frame_related_p".  Generate CFA annotation when it's necessary.
6295         (aarch64_expand_prologue): Use aarch64_add_constant.
6296         (aarch64_expand_epilogue): Likewise.
6297         (aarch64_output_mi_thunk): Pass "false" when calling
6298         aarch64_add_constant.
6300 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6302         * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
6303         sequences.
6305 2016-07-25  Jiong Wang  <jiong.wang@arm.com>
6307         * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
6308         Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
6309         (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
6310         (aarch64_build_constant): Delete.
6312 2016-07-25  Alexander Monakov  <amonakov@ispras.ru>
6314         Revert
6315         2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
6317         * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6318         flag_toplevel_reorder.
6320 2016-07-25  Richard Biener  <rguenther@suse.de>
6322         * cgraph.c (cgraph_node::verify_node): Compare against builtin
6323         by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
6324         * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
6325         * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
6326         (streamer_get_builtin_tree): Likewise.
6327         (streamer_write_builtin): Likewise.
6328         * lto-streamer.h (LTO_builtin_decl): Remove.
6329         * lto-streamer-in.c (lto_read_tree_1): Remove assert.
6330         (lto_input_scc): Remove LTO_builtin_decl handling.
6331         (lto_input_tree_1): Liekwise.
6332         * lto-streamer-out.c (lto_output_tree_1): Remove special
6333         handling of builtins.
6334         (DFS::DFS): Likewise.
6335         * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
6336         * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
6337         assert.
6338         (streamer_write_builtin): Remove.
6340 2016-07-25  Martin Liska  <mliska@suse.cz>
6342         * lto-cgraph.c (input_symtab): Don't call get_working_sets
6343         if flag_auto_profile is set to true.
6345 2016-07-25  Martin Liska  <mliska@suse.cz>
6347         PR gcov-profile/71868
6348         * cfgloopanal.c (expected_loop_iterations_unbounded): When we
6349         have a function with multiple latches, count them all.
6351 2016-07-25  Martin Liska  <mliska@suse.cz>
6353         * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
6355 2016-07-25  Martin Liska  <mliska@suse.cz>
6357         PR tree-optimization/71987
6358         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
6359         just for SSA_NAMEs. Fix GNU coding style.
6361 2016-07-25  Martin Liska  <mliska@suse.cz>
6363         PR gcov-profile/64874
6364         * gcov-io.h: Update command about file format.
6365         * gcov-iov.c (main): Adapt the numbering scheme.
6367 2016-07-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
6369         PR middle-end/66726
6370         * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
6371         whose result is used in PHI.
6372         (final_range_test_p): Likewise.
6373         (maybe_optimize_range_tests): Likewise.
6375 2016-07-22  Michael Meissner  <meissner@linux.vnet.ibm.com>
6377         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6378         Reformat two multi-line strings.
6380 2016-07-22  Martin Sebor  <msebor@redhat.com>
6382         * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
6384 2016-07-22  Martin Sebor  <msebor@redhat.com>
6386         PR c/71560
6387         * doc/extend.texi (Compound Literals): Correct and clarify.
6388         (Cast to Union): Same.
6390 2016-07-22  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6392         * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6393         comments to explain why certain error messages make mention of
6394         undocumented options.
6395         (rs6000_invalid_builtin): Change error messages to replace mention
6396         of undocumented options with mention of the -mcpu=power9 option
6397         that enables those undocumented options.
6398         * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
6399         (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
6400         definition of this macro to correct an existing error.
6401         * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
6402         mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
6403         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
6404         descriptions of built-in functions so that they depend on
6405         -mcpu=power9 instead of on the corresponding undocumented flags.
6406         * doc/invoke.texi (Option Summary):  Remove all mention of newly
6407         undocumented flags.
6408         (IBM RS/6000 and PowerPC Options): Likewise.
6409         * doc/md.texi (Constraints for Particuliar Machines): Remove all
6410         mention of newly undocumented flags.
6412 2016-07-22  Evgeny Stupachenko  <evstupac@gmail.com>
6414         * ipa-cp.c (determine_versionability): Do not create constprop clones,
6415         when target_clones attribute is set.
6417 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
6419         * common.opt (funsafe-loop-optimizations): Mark ignore.
6420         * doc/invoke.texi (funsafe-loop-optimizations): Remove.
6421         * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
6422         related code.
6423         * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
6424         * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
6426 2016-07-22  Bin Cheng  <bin.cheng@arm.com>
6428         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
6429         Parameter.
6430         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
6431         Parameter.
6432         (number_of_iterations_exit): Warn missed loop optimization for
6433         possible infinite loops.
6435 2016-07-22  Segher Boessenkool  <segher@kernel.crashing.org>
6437         PR target/71216
6438         * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
6439         when to emit a ".machine" pseudo-op.
6441 2016-07-22  Martin Liska  <mliska@suse.cz>
6443         PR gcov-profile/69028
6444         PR gcov-profile/62047
6445         * coverage.c (coverage_compute_lineno_checksum): Do not
6446         calculate checksum for fns w/o xloc.file.
6447         (coverage_compute_profile_id): Likewise.
6449 2016-07-22  Georg-Johann Lay  <avr@gjlay.de>
6451         * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
6452         (avr_secondary_reload): ...and implementation.
6453         (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
6454         * config/avr/avr.md (reload_in<mode>): Remove insns.
6455         (adjust_len) [lpm]: Remove insn attribute value.
6456         * config/avr/predicates.md (flash_operand): Remove insn predicate.
6458 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6460         PR middle-end/71876
6461         * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
6462         attribute.
6463         * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
6464         * calls.c (special_function_p): Remove the special handling of the
6465         "__builtin_" prefix.
6467 2016-07-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
6469         PR middle-end/71876
6470         * calls.c (gimple_maybe_alloca_call_p): New function.  Return true
6471         if STMT may be an alloca call.
6472         (gimple_alloca_call_p, alloca_call_p): Return only true for the
6473         builtin alloca call.
6474         * calls.h (gimple_maybe_alloca_call_p): New function.
6475         * tree-inline.c (inline_forbidden_p_stmt): Use
6476         gimple_maybe_alloca_call_p here.
6478 2016-07-21  David Malcolm  <dmalcolm@redhat.com>
6480         * spellcheck-tree.c (best_macro_match::best_macro_match):
6481         Explictly specify the template arguments when invoking the base
6482         class constructor, to help older C++ compilers.
6484 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
6486         PR sanitizer/71953
6487         * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
6488         before builtin_decl_implicit.
6490 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
6492         * optabs.c (emit_condiitonal_move): Short circuit for identical
6493         sources.
6495 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
6497         * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
6498         max_seq_cost.  Removed fields: then_cost, else_cost, branch_cost.
6499         (noce_conversion_profitable_p): New.
6500         (noce_try_store_flag_constants): Use it.
6501         (noce_try_addcc): Likewise.
6502         (noce_try_store_flag_mask): Likewise.
6503         (noce_try_cmove): Likewise.
6504         (noce_try_cmove_arith): Likewise.
6505         (bb_valid_for_noce_process_p): Add to the cost parameter rather than
6506         overwriting it.
6507         (noce_convert_multiple_sets): Move cost model to here, from...
6508         (bb_ok_for_noce_convert_multiple_sets) ...here.
6509         (noce_process_if_block): Update calls for above changes.
6510         (noce_find_if_block): Record new noce_if_info parameters.
6512 2016-07-21  James Greenhalgh  <james.greenhalgh@arm.com>
6514         * target.def (max_noce_ifcvt_seq_cost): New.
6515         * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
6516         * doc/tm.texi: Regenerate.
6517         * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
6518         * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
6519         * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
6520         (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
6521         * doc/invoke.texi: Document new params.
6523 2016-07-21  Richard Biener  <rguenther@suse.de>
6525         PR tree-optimization/71947
6526         * tree-vrp.c (extract_range_from_assert): Singleton symbolic
6527         ranges have useful limit_vr information.
6529 2016-07-21  Richard Biener  <rguenther@suse.de>
6531         * function-tests.c (build_trivial_generic_function): Set
6532         BLOCK_SUPERCONTEXT of DECL_INITIAL.
6533         * omp-low.c (create_omp_child_function): Likewise.
6534         (grid_expand_target_grid_body): Likewise.
6535         * cgraphunit.c (init_lowered_empty_function): Likewise.
6536         (cgraph_node::expand_thunk): Likewise.
6537         * tree-parloops.c (create_loop_fn): Likewise.
6538         * ipa.c (cgraph_build_static_cdtor_1): Likewise.
6540 2016-07-21  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
6542         * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
6543         in comment.
6545 2016-07-21  Georg-Johann Lay  <avr@gjlay.de>
6547         * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
6548         (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
6549         (*insv.xor-extract, *insv.xor1-bit.0): New insns.
6550         (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
6551         values for insn attribute.
6552         * config/avr/avr.c (avr_out_insert_notbit): New function.
6553         (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
6554         ADJUST_LEN_INSV_NOTBIT_0/_7.
6555         * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
6557 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
6559         * tree-chrec.c (convert_affine_scev): New parameter.  Pass new arg.
6560         (chrec_convert_1, chrec_convert): Ditto.
6561         * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
6562         * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
6563         * tree-vrp.c (adjust_range_with_scev): Ditto.
6564         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
6565         (scev_var_range_cant_overflow): New function.
6566         (scev_probably_wraps_p): New parameter.  Call above function.
6567         * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
6569 2016-07-21  Bin Cheng  <bin.cheng@arm.com>
6571         * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
6572         by removing computation of may_be_zero.
6574 2016-07-21  Jakub Jelinek  <jakub@redhat.com>
6576         * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
6578 2016-07-21  Andrew Sutton  <andrew.n.sutton@gmail.com>
6580         Improving concepts performance and diagnostics.
6581         * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
6582         for constraint satisfaction and subsumption.
6583         * timevar.h (auto_timevar): New constructor that matches the push/pop
6584         pattern of usage in pt.c.
6586 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
6588         * hwint.h (HOST_WIDE_INT_0): New define.
6589         (HOST_WIDE_INT_0U): Ditto.
6590         * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
6591         * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
6592         * simplify-rtx.c: Ditto.
6593         * tree-object-size.c: Ditto.
6595 2016-07-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6597         * config/s390/s390.c (s390_encode_section_info): Remove mode size
6598         check.
6600 2016-07-20  Uros Bizjak  <ubizjak@gmail.com>
6602         * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
6603         * combine.c: Use HOST_WIDE_INT_M1U instead of
6604         ~(unsigned HOST_WIDE_INT) 0.
6605         * double-int.h: Ditto.
6606         * dse.c: Ditto.
6607         * dwarf2asm.c:Ditto.
6608         * expmed.c: Ditto.
6609         * genmodes.c: Ditto.
6610         * match.pd: Ditto.
6611         * read-rtl.c: Ditto.
6612         * tree-ssa-loop-ivopts.c: Ditto.
6613         * tree-ssa-loop-prefetch.c: Ditto.
6614         * tree-vect-generic.c: Ditto.
6615         * tree-vect-patterns.c: Ditto.
6616         * tree.c: Ditto.
6618 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
6620         * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
6621         constant addresses outside [0,0xc0] into a register.
6622         (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn.  And handle
6623         cases where the base address register is unused after.
6624         (avr_out_movhi_r_mr_reg_disp_tiny): Same.
6625         (avr_out_movhi_mr_r_reg_disp_tiny): Same.
6626         (avr_out_store_psi_reg_disp_tiny): Same.
6628 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
6630         Implement attribute progmem on reduced Tiny cores by adding
6631         flash offset 0x4000 to respective symbols.
6633         PR target/71948
6634         * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
6635         documentation how it works on reduced Tiny cores.
6636         (AVR Named Address Spaces): No support for reduced Tiny.
6637         * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
6638         (avr_address_tiny_pm_p): New static function.
6639         (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
6640         if the address is in progmem.
6641         (avr_assemble_integer): Same.
6642         (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
6643         for symbol_ref in progmem.
6644         * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
6645         * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
6646         magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
6648 2016-07-20  Patrick Palka  <ppalka@gcc.gnu.org>
6650         * configure.ac (thin_archive_support): New variable.  AC_SUBST it.
6651         * configure: Regenerate.
6652         * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
6653         (USE_THIN_ARCHIVES): New variable.
6654         (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
6655         this archive as a thin archive.
6657 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
6659         * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
6660         same location as last time, don't skip if we have fix-it hints.
6661         Clarify the skipping logic by converting it from one "if" clause
6662         to repeated "if" clauses.
6663         * spellcheck-tree.c: Include "cpplib.h".
6664         (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
6665         (best_macro_match::best_macro_match): New constructor.
6666         * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
6667         Move here from c/c-decl.c.
6668         (class best_macro_match): Move here from c/c-decl.c, converting
6669         from a typedef to a subclass, gaining a ctor.
6671 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
6673         * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
6674         * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
6675         define...
6676         (avr_addr_space_diagnose_usage): ...and implementation.
6677         (avr_addr_space_supported_p): New function.
6678         (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
6679         report bad address space usage if that space is supported.
6680         (avr_insert_attributes): Same.  No more complain about unsupported
6681         address spaces.
6682         * config/avr/avr-c.c (tm_p.h): Include it.
6683         (avr_cpu_cpp_builtins): Only define addr-space related built-in
6684         macro if avr_addr_space_supported_p.
6686 2016-07-20  Alexander Monakov  <amonakov@ispras.ru>
6688         * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6689         flag_toplevel_reorder.
6691 2016-07-20  David Malcolm  <dmalcolm@redhat.com>
6693         * gcc-rich-location.c
6694         (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
6695         a const char *.
6696         * gcc-rich-location.h
6697         (gcc_rich_location::add_fixit_misspelled_id): Likewise.
6699 2016-07-20  Georg-Johann Lay  <avr@gjlay.de>
6701         * target.def (addr_space): Add new diagnose_usage to hook vector.
6702         * targhooks.c (default_addr_space_diagnose_usage): Add default
6703         implementation and...
6704         * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
6705         * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
6706         is some address space, call targetm.addr_space.diagnose_usage.
6707         * doc/tm.texi.in (Named Address Spaces): Add anchor for
6708         TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
6709         * doc/tm.texi: Regenerate.
6711 2016-07-20  Martin Liska  <mliska@suse.cz>
6713         PR middle-end/71898
6714         * graphite-isl-ast-to-gimple.c (later_of_the_two):
6715         Properly handly PHI stmts.
6717 2016-07-20  Bin Cheng  <bin.cheng@arm.com>
6719         PR tree-optimization/71503
6720         PR tree-optimization/71683
6721         * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
6722         and break.
6724 2016-07-20  Martin Liska  <mliska@suse.cz>
6726         * doc/invoke.texi (-fipa-ra): Document when the option is
6727         disabled. Fix a typo.
6729 2016-07-20  Martin Liska  <mliska@suse.cz>
6731         * Makefile.in: Include fibonacci_heap.c
6732         * fibonacci_heap.c: New file.
6733         * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
6734         (fibonacci_heap::union_with): Fix deletion of the second heap.
6735         * selftest-run-tests.c (selftest::run_tests): Incorporate
6736         fibonacci heap tests.
6737         * selftest.h: Declare fibonacci_heap_c_tests.
6739 2016-07-20  Martin Liska  <mliska@suse.cz>
6741         * selftest-run-tests.c (selftest::run_tests): New function.
6742         * selftest.h (sreal_c_tests): Declare.
6743         * sreal.c (sreal_verify_basics): New function.
6744         (verify_aritmetics): Likewise.
6745         (sreal_verify_arithmetics): Likewise.
6746         (verify_shifting): Likewise.
6747         (sreal_verify_shifting): Likewise.
6748         (void sreal_c_tests): Likewise.
6750 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
6752         PR rtl-optimization/71916
6753         * cfgrtl.c (contains_no_active_insn_p): Return false also for
6754         bb which have a single succ fake edge.
6756 2016-07-19  Aldy Hernandez  <aldyh@redhat.com>
6758         PR debug/71855
6759         * dwarf2out.c (gen_subprogram_die): Only call
6760         gen_unspecified_parameters_die while dumping early dwarf.
6762 2016-07-19  Jakub Jelinek  <jakub@redhat.com>
6764         PR middle-end/71874
6765         * gimple-fold.c (fold_builtin_memory_op): Use
6766         get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
6768 2016-07-19  Uros Bizjak  <ubizjak@gmail.com>
6770         * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
6771         HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
6772         HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
6773         HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
6774         * combine.c: Ditto.
6775         * cse.c: Ditto.
6776         * dojump.c: Ditto.
6777         * double-int.c: Ditto.
6778         * dse.c: Ditto.
6779         * dwarf2out.c: Ditto.
6780         * expmed.c: Ditto.
6781         * expr.c: Ditto.
6782         * fold-const.c: Ditto.
6783         * function.c: Ditto.
6784         * fwprop.c: Ditto.
6785         * genmodes.c: Ditto.
6786         * hwint.c: Ditto.
6787         * hwint.h: Ditto.
6788         * ifcvt.c: Ditto.
6789         * loop-doloop.c: Ditto.
6790         * loop-invariant.c: Ditto.
6791         * loop-iv.c: Ditto.
6792         * match.pd: Ditto.
6793         * optabs.c: Ditto.
6794         * real.c: Ditto.
6795         * reload.c: Ditto.
6796         * rtlanal.c: Ditto.
6797         * simplify-rtx.c: Ditto.
6798         * stor-layout.c: Ditto.
6799         * toplev.c: Ditto.
6800         * tree-ssa-loop-ivopts.c: Ditto.
6801         * tree-vect-generic.c: Ditto.
6802         * tree-vect-patterns.c: Ditto.
6803         * tree.c: Ditto.
6804         * tree.h: Ditto.
6805         * ubsan.c: Ditto.
6806         * varasm.c: Ditto.
6807         * wide-int-print.cc: Ditto.
6808         * wide-int.cc: Ditto.
6809         * wide-int.h: Ditto.
6811 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
6813         * selftest.c (selftest::assert_streq): Handle NULL values of
6814         val_actual and val_expected.
6816 2016-07-19  Martin Jambor  <mjambor@suse.cz>
6818         PR fortran/71688
6819         * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
6820         rather than cgraph_create_node to get a call graph node.
6822 2016-07-19  Richard Biener  <rguenther@suse.de>
6824         * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
6825         handle all tcc_constant bases and valueize SSA names.
6826         * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
6827         tcc_constant bases.
6829 2016-07-19  David Malcolm  <dmalcolm@redhat.com>
6831         * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
6832         the flags of the exit block and bb2, not just the entry block.
6834 2016-07-19  Richard Biener  <rguenther@suse.de>
6836         PR tree-optimization/71901
6837         * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
6838         align member, group stuff with the bitfield.
6839         (vn_ref_op_align_unit): New inline.
6840         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
6841         record element alignment and operand 3 unchanged.
6842         (ao_ref_init_from_vn_reference): Adjust.
6843         (valueize_refs_1): Likewise.
6844         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6846 2016-07-19  Richard Biener  <rguenther@suse.de>
6848         PR tree-optimization/71908
6849         * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
6850         symbolic constants in a more reliable way.
6852 2016-07-19  Ilya Enkovich  <ilya.enkovich@intel.com>
6854         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
6855         comment.
6856         (vect_update_inits_of_drs): Likewise.
6857         (vect_create_cond_for_alias_checks): Likewise.
6858         * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
6860 2016-07-19  Richard Biener  <rguenther@suse.de>
6862         PR lto/71907
6863         * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
6864         with an abstract origin that is not an inlined function outer
6865         scope add a self-reference as abstract origin.
6866         * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
6868 2016-07-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
6870         PR target/71493
6871         * config/rs6000/rs6000.c (rs6000_function_value): Fix
6872         unintentional System V.4 structure return breakage for structures
6873         with a single floating point element.
6875 2016-07-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
6877         PR tree-optimization/71734
6878         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
6879         contains REF, use it to check safelen, assume that safelen value
6880         must be greater 1, fix style.
6881         (ref_indep_loop_p_2): Add REF_LOOP argument.
6882         (ref_indep_loop_p): Pass LOOP as additional argument to
6883         ref_indep_loop_p_2.
6885 2016-07-18  Dominik Vogt  <vogt@linux.vnet.ibm.com>
6887         * cfgexpand.c (expand_stack_vars): Implement synamic stack space
6888         allocation in the prologue.
6889         * explow.c (get_dynamic_stack_base): New function to return an address
6890         expression for the dynamic stack base.
6891         (get_dynamic_stack_size): New function to do the required dynamic stack
6892         space size calculations.
6893         (allocate_dynamic_stack_space): Use new functions.
6894         (align_dynamic_address): Move some code from
6895         allocate_dynamic_stack_space to new function.
6896         * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
6898 2016-07-18  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
6900         * config/s390/s390.c (s390_encode_section_info): Always set
6901         notaligned marker if mode size is 0 or no MEM_ALIGN info could be
6902         found.
6904 2016-07-18  Richard Biener  <rguenther@suse.de>
6906         PR tree-optimization/71893
6907         * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
6908         for sizetype cast added by array_ref_element_size.
6909         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6911 2016-07-16  John David Anglin  <danglin@gcc.gnu.org>
6913         * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
6914         register parameters.  Remove code to initialize argument pointer
6915         on TARGET_64BIT.  Optimize call to _mcount when it can be reached
6916         using a pc-relative branch.  Cleanup conditional code.
6917         * config/pa/pa.md (call_mcount): New expander.
6918         (call_mcount_nonpic): New insn.
6919         (call_mcount_pic): New insn and split.
6920         (call_mcount_pic_post_reload): New insn.
6921         (call_mcount_64bit): New insn and split.
6922         (call_mcount_64bit_post_reload): New insn.
6924 2016-07-15  Georg-Johann Lay  <avr@gjlay.de>
6926         * config/avr/predicates.md (const_m255_to_m1_operand): New.
6927         * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
6928         * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
6929         (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
6930         (*usum_widenqihi3, *udiff_widenqihi3)
6931         (*addhi3_zero_extend.const): New combiner insns.
6932         (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
6933         just 1 bit is affected.
6934         * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
6935         (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
6937 2016-07-15  Cesar Philippidis  <cesar@codesourcery.com>
6939         * omp-low.c (lower_omp_target): Mark data clauses with
6940         GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
6941         zero-length subarrays.
6943 2016-07-15  Richard Biener  <rguenther@suse.de>
6945         PR tree-optimization/71881
6946         * tree-loop-distribution.c (destroy_loop): Remove blocks in
6947         reverse DOM order to make debug temp generation happy.
6949 2016-07-15  Richard Biener  <rguenther@suse.de>
6951         PR tree-optimization/71887
6952         * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
6953         verify it is not zero for division / modulo handling.
6954         (value_replacement): Adjust.
6956 2016-07-15  Virendra Pathak  <virendra.pathak@broadcom.com>
6957             Julian Brown  <julian@codesourcery.com>
6959         * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
6960         * config/aarch64/aarch64-cost-tables.h
6961         (vulcan_extra_costs): New variable.
6962         * config/aarch64/aarch64.c
6963         (vulcan_addrcost_table): Likewise.
6964         (vulcan_regmove_cost): Likewise.
6965         (vulcan_vector_cost): Likewise.
6966         (vulcan_branch_cost): Likewise.
6967         (vulcan_tunings): Likewise.
6969 2016-07-15  Alexander Monakov  <amonakov@ispras.ru>
6971         * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
6972         (output_in_order): Loop over undefined variables too.  Output them
6973         via assemble_undefined_decl.  Skip variables that correspond to hard
6974         registers or have value-exprs.
6975         * varpool.c (symbol_table::output_variables): Handle undefined
6976         variables together with defined ones.
6978 2016-07-15  Richard Biener  <rguenther@suse.de>
6980         * tree-ssa-pre.c (get_representative_for): Make sure to return
6981         the value number of SSA names.
6982         (phi_translate_1): get_representative_for cannot return NULL.
6983         (do_pre_regular_insertion): Remove redundant call to
6984         fully_constant_expression.
6985         (do_pre_partial_partial_insertion): Likewise.
6987 2016-07-15  Bin Cheng  <bin.cheng@arm.com>
6989         * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
6990         (derive_simple_iv_with_niters): New function.
6991         (simple_iv): Rewrite using simple_iv_with_niters.
6992         * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
6993         * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
6994         function.
6995         (number_of_iterations_exit): Rewrite using above function.
6996         * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
6997         Decl.
6999 2016-07-15  Richard Biener  <rguenther@suse.de>
7001         * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
7002         vec_construct cost.
7004 2016-07-14  Jakub Jelinek  <jakub@redhat.com>
7006         PR tree-optimization/71872
7007         * tree-data-ref.c (get_references_in_stmt): Ignore references
7008         with is_gimple_constant get_base_address.
7010 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7012         * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
7013         (TARGET_HAVE_LDACQD): New macro.
7014         * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
7015         than TARGET_HAVE_LDACQ.
7016         (arm_load_acquire_exclusivedi): Likewise.
7017         (arm_store_release_exclusivedi): Likewise.
7019 2016-07-14  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7021         PR rtl-optimization/71878
7022         * lra-constraints.c (match_reload): Pass information about other
7023         output operands.  Create new unique register value if matching input
7024         operand shares same register value as output operand being considered.
7025         (curr_insn_transform): Record output operands already processed.
7027 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7029         PR target/65951
7030         PR tree-optimization/70923
7031         * tree-vect-patterns.c: Include mult-synthesis.h.
7032         (target_supports_mult_synth_alg): New function.
7033         (synth_lshift_by_additions): Likewise.
7034         (apply_binop_and_append_stmt): Likewise.
7035         (vect_synth_mult_by_constant): Likewise.
7036         (target_has_vecop_for_code): Likewise.
7037         (vect_recog_mult_pattern): Use above functions to synthesize vector
7038         multiplication by integer constants.
7040 2016-07-14  Alan Modra  <amodra@gmail.com>
7042         * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
7043         gpr alternatives.  Correct '*' placement on Y,r alternative.
7044         Add '*' on operand 1 of r,r alternative.
7046 2016-07-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7048         * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
7049         * expmed.h: ... Here.
7051 2016-07-14  Jan Hubicka  <hubicka@ucw.cz>
7053         * gimple.h (stmt_can_terminate_bb_p): New function.
7054         * tree-cfg.c (need_fake_edge_p): Rename to ...
7055         (stmt_can_terminate_bb_p): ... this; return true if stmt can
7056         throw external; handle const and pure calls.
7057         * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
7059 2016-07-14  Richard Biener  <rguenther@suse.de>
7061         PR tree-optimization/71866
7062         * tree-ssa-pre.c (get_constant_for_value_id): Remove.
7063         (do_hoist_insertion): Avoid endless recursion when we
7064         didn't insert anything because we managed to simplify
7065         things down to a constant or SSA name.
7066         (fully_constant_expression): Re-write in terms of ...
7067         * tree-ssa-sccvn.h (vn_nary_simplify): ... this.  Declare.
7068         * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
7069         vn_nary_build_or_lookup_1.
7070         (vn_nary_build_or_lookup_1): Added flag and renamed from ...
7071         (vn_nary_build_or_lookup): ... this which now wraps it.
7073 2016-07-14  Alan Modra  <amodra@gmail.com>
7075         PR target/71733
7076         * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
7077         with p9_vector override before power9-dform override.
7079 2016-07-13  Andi Kleen  <ak@linux.intel.com>
7081         * value-prof.c (gimple_value_profile_transformations): Don't run
7082         when auto_profile is on.
7084 2016-07-13  Andi Kleen  <ak@linux.intel.com>
7086         * auto-profile.c (update_inlined_ind_target,
7087         afdo_indirect_call): Print information to dump file.
7089 2016-07-13  Andrew Burgess  <andrew.burgess@embecosm.com>
7091         * genrecog.c (special_predicate_operand_p): New function.
7092         (predicate_name): Move function.
7093         (validate_pattern): Don't warn about missing mode for all
7094         define_special_predicate predicates.
7096 2016-07-13  Bin Cheng  <bin.cheng@arm.com>
7098         * tree-vect-data-refs.c (vect_no_alias_p): New function.
7099         (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
7100         resolve alias checks which are known at compilation time.
7101         Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
7102         alias checks are resolved.  Move dump info for too many runtime
7103         alias checks to here...
7104         * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
7106 2016-07-13  Richard Biener  <rguenther@suse.de>
7108         PR tree-optimization/24574
7109         * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
7110         position and add shift, rotate, divison and modulo support
7111         for left zero.
7112         (value_replacement): Pass in argument position to absorbing_element_p.
7114 2016-07-13  Ilya Enkovich  <ilya.enkovich@intel.com>
7116         PR ipa/71633
7117         * ipa-inline-transform.c (inline_call): Support
7118         instrumented thunks.
7120 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7122         * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
7123         (TARGET_IDIV): Set for all Thumb targets provided they have hardware
7124         divide feature.
7125         * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
7126         Baseline.  Make initial alternative TARGET_32BIT only.
7127         (udivsi3): Likewise.
7128         * config/arm/thumb1.md (thumb1_cbz): New define_insn.
7129         * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
7130         target.
7132 2016-07-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7134         * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
7135         * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
7136         availability with TARGET_HAVE_MOVT.
7137         (thumb_legitimate_constant_p): Strip the high part of a label_ref.
7138         (thumb1_rtx_costs): Also return 0 if setting a half word constant and
7139         MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
7140         UINTVAL.
7141         (thumb1_size_rtx_costs): Make set of half word constant also cost 1
7142         extra instruction if MOVW is available.  Use a cost variable
7143         incremented by COSTS_N_INSNS (1) when the condition match rather than
7144         returning an arithmetic expression based on COSTS_N_INSNS.  Make
7145         constant with bottom half word zero cost 2 instruction if MOVW is
7146         available.
7147         * config/arm/arm.md (define_attr "arch"): Add v8mb.
7148         (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
7149         target is ARMv8-M Baseline.
7150         (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
7151         (arm_movtas_ze): Likewise.
7152         * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
7153         alternative for constants satisfying j constraint.
7154         (thumb1_movsi_insn): Likewise.
7155         (movsi splitter for K alternative): Tighten condition to not trigger
7156         if movt is available and j constraint is satisfied.
7157         (Pe immediate splitter): Likewise.
7158         (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
7159         constant fitting in an halfword to use MOVW.
7160         * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
7161         effective target.
7163 2016-07-13  Richard Biener  <rguenther@suse.de>
7165         PR middle-end/71104
7166         * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
7167         gimplifying the LHS.  Make sure to gimplify a returning twice
7168         call LHS without using SSA names.
7170 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7172         * tree-data-ref.c (find_data_references_in_stmt): Remove
7173         unnecessary call to vec::release.
7174         (graphite_find_data_references_in_stmt): Likewise.
7175         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
7176         * tree-vect-stmts.c (vectorizable_condition): Likewise.
7178 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7180         * cfgexpand.c (expand_used_vars): Make the type of a local
7181         variable auto_vec.
7182         * genmatch.c (lower_for): Likewise.
7183         * haifa-sched.c (haifa_sched_init): Likewise.
7184         (add_to_speculative_block): Likewise.
7185         (create_check_block_twin): Likewise.
7186         * predict.c (handle_missing_profiles): Likewise.
7187         * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
7188         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
7189         * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
7190         Likewise.
7191         (maybe_lower_iteration_bound): Likewise.
7192         * tree-ssa-sccvn.c (DFS): Likewise.
7193         * tree-stdarg.c (reachable_at_most_once): Likewise.
7194         * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7195         (vectorizable_store): Likewise.
7197 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7199         * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
7200         (sccvn_dom_walker): make cond_stack an auto_vec.
7202 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7204         * ree.c (struct ext_state): Make type of members auto_vec.
7205         (find_and_remove_re): Adjust.
7207 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7209         * cfgexpand.c (struct stack_vars_data): Make type of fields
7210         auto_vec.
7211         (expand_used_vars): Adjust.
7213 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7215         * ipa.c (record_cdtor_fn): Adjust.
7216         (build_cdtor_fns): Likewise.
7217         (ipa_cdtor_merge): Make static_ctors and static_dtors local
7218         variables.
7220 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7222         * genextract.c (struct accum_extract): Add constructor and make
7223         members auto_vec.
7224         (gen_insn): Adjust.
7226 2016-07-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7228         * tree.c (struct free_lang_data_d): Add constructor and change
7229         types of members to ones that automatically manage resources.
7230         (fld_worklist_push): Adjust.
7231         (find_decls_types): Likewise.
7232         (find_decls_types_in_eh_region): Likewise.
7233         (free_lang_data_in_cgraph): Stop manually creating and
7234         destroying members of free_lang_data_d.
7236 2016-07-13  Uros Bizjak  <ubizjak@gmail.com>
7238         PR rtl-optimization/68961
7239         * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
7240         peephole variant.  Use sse_reg_operand predicates.
7242 2016-07-12  Uros Bizjak  <ubizjak@gmail.com>
7244         * config/i386/predicates.md (x86_64_immediate_operand)
7245         <case CONST_INT>: Remove unneeded truncation to DImode.
7246         <case CONST>: Ditto.
7247         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7249 2016-07-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
7251         PR target/71805
7252         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
7253         The xxperm and xxpermr instructions require that the 2nd input
7254         operand overlap with the output operand, and not the 1st.
7255         (altivec_vperm_v8hiv16qi): Likewise.
7256         (altivec_vperm_<mode>_uns_internal): Likewise.
7257         (altivec_vpermr_<mode>_internal): Likewise.
7258         (vperm_v8hiv4si): Likewise.
7259         (vperm_v16qiv8hi): Likewise.
7261 2016-07-12  Nathan Sidwell  <nathan@acm.org>
7263         * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
7264         when -mno-pic-data-is-text-relative is in effect, by default.
7265         * doc/invoke.texi (mpic-data-is-text-relative): Document new
7266         behavior and clarify.
7268 2016-07-12  Martin Liska  <mliska@suse.cz>
7270         * params.def: Add avg-loop niter.
7271         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
7272         * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
7273         * doc/invoke.texi: Document the new parameter.
7275 2016-07-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7277         PR middle-end/71700
7278         * expr.c (store_constructor): Mask sign-extended bits when widening
7279         sub-word constructor element at the start of a word.
7281 2016-07-12  Martin Liska  <mliska@suse.cz>
7283         * Makefile.in: Append rule for params-options.h.
7284         * params-options.h: New file.
7286 2016-07-12  Martin Liska  <mliska@suse.cz>
7288         * ira-build.c (mark_loops_for_removal): Properly iterate
7289         loops.
7291 2016-07-12  Steven Bosscher  <steven@gcc.gnu.org>
7292             Richard Biener  <rguenther@suse.de>
7294         PR tree-optimization/23286
7295         PR tree-optimization/70159
7296         * doc/invoke.texi: Document -fcode-hoisting.
7297         * common.opt (fcode-hoisting): New flag.
7298         * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
7299         * tree-ssa-pre.c (pre_stats): Add hoist_insert.
7300         (do_regular_insertion): Rename to ...
7301         (do_pre_regular_insertion): ... this and amend general comments
7302         on insertion strathegy.
7303         (do_partial_partial_insertion): Rename to ...
7304         (do_pre_partial_partial_insertion): ... this.
7305         (do_hoist_insertion): New function.
7306         (insert_aux): Take flags on whether to do PRE and/or hoist insertion
7307         and call do_hoist_insertion properly.
7308         (insert): Adjust.
7309         (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
7310         (pass_pre::execute): Register hoist_insert stats.
7312 2016-07-12  Jakub Jelinek  <jakub@redhat.com>
7314         PR middle-end/71716
7315         * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
7316         for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
7317         is different from mode's bitsize.  Small cleanup.
7319 2016-07-12  Richard Biener  <rguenther@suse.de>
7321         PR rtl-optimization/68961
7322         * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
7323         to simplify to a non-constant.
7325 2016-07-11  Jakub Jelinek  <jakub@redhat.com>
7327         PR middle-end/71758
7328         * omp-low.c (expand_omp_target): Gimplify device.
7330         PR tree-optimization/71823
7331         * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
7332         to get vec_oprnds2 from op2.
7334 2016-07-11  Uros Bizjak  <ubizjak@gmail.com>
7336         * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
7337         Hoist common subexpressions.
7338         (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7340 2016-07-11  Pat Haugen  <pthaugen@us.ibm.com>
7342         PR target/71800
7343         * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
7344         prevent generation of 'stxsiwx' on pre Power8 hardware.
7346 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
7348         * input.c: Include cpplib.h.
7349         (selftest::temp_source_file): New class.
7350         (selftest::temp_source_file::temp_source_file): New ctor.
7351         (selftest::temp_source_file::~temp_source_file): New dtor.
7352         (selftest::should_have_column_data_p): New function.
7353         (selftest::test_should_have_column_data_p): New function.
7354         (selftest::temp_line_table): New class.
7355         (selftest::temp_line_table::temp_line_table): New ctor.
7356         (selftest::temp_line_table::~temp_line_table): New dtor.
7357         (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
7358         it to create a temp_line_table.
7359         (selftest::assert_loceq): Only verify LOCATION_COLUMN for
7360         locations that are known to have column data.
7361         (selftest::line_table_case): New struct.
7362         (selftest::test_reading_source_line): Move tempfile handling
7363         to class temp_source_file.
7364         (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
7365         (selftest::assert_token_loc_eq): New function.
7366         (ASSERT_TOKEN_LOC_EQ): New macro.
7367         (selftest::test_lexer): New function.
7368         (selftest::boundary_locations): New array.
7369         (selftest::input_c_tests): Call test_should_have_column_data_p.
7370         Loop over a test matrix of interesting values of location and
7371         default_range_bits, calling test_lexer on each case in the matrix.
7372         Move call to test_accessing_ordinary_linemaps into the matrix.
7373         * selftest.h (ASSERT_EQ): Reimplement in terms of...
7374         (ASSERT_EQ_AT): New macro.
7376 2016-07-11  H.J. Lu  <hongjiu.lu@intel.com>
7378         PR target/71801
7379         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
7380         Don't convert TImode in debug insn.
7382 2016-07-11  Bernd Edlinger  <bernd.edlinger@hotmail.de>
7384         Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
7385         * tree-core.h (tree_base::nothrow_flag): Adjust comment.
7386         (tree_type_common::lang_flag_7): New.
7387         (tree_type_common::spare): Reduce size.
7388         * tree.h (TYPE_ALIGN_OK): Remove.
7389         (TYPE_LANG_FLAG_7): New.
7390         (get_inner_reference): Adjust header.
7391         * print-tree.c (print_node): Adjust.
7392         * expr.c (get_inner_reference): Remove parameter keep_aligning.
7393         (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
7394         calls to get_inner_reference.
7395         (expand_expr_real_1): Adjust call to get_inner_reference.  Remove
7396         handling of TYPE_ALIGN_OK.
7397         * builtins.c (get_object_alignment_2): Adjust call to
7398         get_inner_reference.  Remove handling of VIEW_CONVERT_EXPR.
7399         * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
7400         TYPE_ALIGN_OK.
7401         * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
7402         * cfgexpand.c (expand_debug_expr): Likewise.
7403         * dbxout.c (dbxout_expand_expr): Likewise.
7404         * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
7405         loc_list_from_tree, fortran_common): Likewise.
7406         * fold-const.c (optimize_bit_field_compare,
7407         decode_field_reference, fold_unary_loc, fold_comparison,
7408         split_address_to_core_and_offset): Likewise.
7409         * gimple-laddress.c (execute): Likewise.
7410         * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
7411         * gimplify.c (gimplify_scan_omp_clauses): Likewise.
7412         * hsa-gen.c (gen_hsa_addr): Likewise.
7413         * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
7414         * tsan.c (instrument_expr): Likewise.
7415         * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
7416         * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
7417         * tree-affine.c (tree_to_aff_combination,
7418         get_inner_reference_aff): Adjust calls to get_inner_reference.
7419         * tree-data-ref.c (split_constant_offset_1,
7420         dr_analyze_innermost): Likewise.
7421         * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
7422         * tree-sra.c (ipa_sra_check_caller): Likewise.
7423         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
7424         * tree-ssa-math-opts.c (find_bswap_or_nop_load,
7425         bswap_replace): Likewise.
7426         * tree-vect-data-refs.c (vect_check_gather,
7427         vect_analyze_data_refs): Likewise.
7428         * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
7429         * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
7430         TYPE_ALIGN_OK.
7432 2016-07-11  David Malcolm  <dmalcolm@redhat.com>
7434         * Makefile.in (selftest-valgrind): New phony target.
7435         * function-tests.c (selftest::build_cfg): Delete pass instances
7436         created by the test.
7437         (selftest::convert_to_ssa): Likewise.
7438         (selftest::test_expansion_to_rtl): Likewise.
7439         * tree-cfg.c (selftest::test_linear_chain): Release dominator
7440         vectors.
7441         (selftest::test_diamond): Likewise.
7443 2016-07-11  Richard Biener  <rguenther@suse.de>
7445         PR tree-optimization/71816
7446         * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
7447         than replacing all of its operands.
7449 2016-07-11  Alan Modra  <amodra@gmail.com>
7451         * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
7452         (ctr<mode>): Add unspec.
7453         (ctr<mode>_internal*): Likewise.
7455 2016-07-08  James Bowman  <james.bowman@ftdichip.com>
7457         * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
7458         * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
7460 2016-07-08  Vladimir Makarov  <vmakarov@redhat.com>
7462         PR rtl-optimization/71621
7463         * lra-constraints.c (process_alt_operands): Check combination of
7464         reg class and mode.
7466 2016-07-08  Jason Merrill  <jason@redhat.com>
7467             Richard Biener  <rguenther@suse.de>
7469         P0145: Refining Expression Order for C++.
7470         * gimplify.c (initial_rhs_predicate_for): New.
7471         (gimplfy_modify_expr): Gimplify RHS before LHS.
7473 2016-07-08  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7475         PR target/71297
7476         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7477         Allow standard error handling to take over when a wrong number
7478         of arguments is presented to __builtin_vec_ld () or
7479         __builtin_vec_st ().
7481 2016-07-08  Jiong Wang  <jiong.wang@arm.com>
7483         * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
7484         variants.
7485         (smin): Likewise.
7486         (fmax): New entry.
7487         (fmin): Likewise.
7488         * config/aarch64/arm_neon.h (vmaxnm_f32): Use
7489         __builtin_aarch64_fmaxv2sf.
7490         (vmaxnmq_f32): Likewise.
7491         (vmaxnmq_f64): Likewise.
7492         (vminnm_f32): Likewise.
7493         (vminnmq_f32): Likewise.
7494         (vminnmq_f64): Likewise.
7496 2016-07-08  Michael Meissner  <meissner@linux.vnet.ibm.com>
7498         PR target/71806
7499         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
7500         enable -mfloat128-hardware by default.
7501         (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
7502         that IEEE 128-bit hardware support needs.
7503         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7504         -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
7505         Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
7506         floating point requires.
7507         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7508         -mfloat128 and -mfloat128-hardware changes.
7510 2016-07-08  Alan Hayward  <alan.hayward@arm.com>
7512         PR tree-optimization/71667
7513         * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
7515 2016-07-08  Martin Liska  <mliska@suse.cz>
7517         PR middle-end/71606
7518         * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
7519         folding produces SAVE_EXPRs, thus return false for the type.
7521 2016-07-07  Martin Liska  <mliska@suse.cz>
7523         * file-find.c (remove_prefix): New function.
7524         * file-find.h (remove_prefix): Declare the function.
7525         * gcc-ar.c (main): Skip a folder of the wrapper if
7526         a wrapped binary would point to the same file.
7528 2016-07-07  Jan Hubicka  <jh@suse.cz>
7530         * tree-scalar-evolution.c (iv_can_overflow_p): export.
7531         * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
7532         * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
7534 2016-07-07  Ilya Enkovich  <ilya.enkovich@intel.com>
7536         PR ipa/71624
7537         * ipa-inline-analysis.c (compute_inline_parameters): Set
7538         local.can_change_signature to false for intrumentation
7539         thunk callees.
7541 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7543         * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
7544         with TARGET_HAVE_MOVT.
7545         (TARGET_HAVE_MOVT): Define.
7546         * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
7547         availability with TARGET_HAVE_MOVT.
7548         * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
7549         availability.
7550         (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
7551         TARGET_THUMB2.
7552         (symbol_refs movsi splitter): Remove TARGET_32BIT check.
7553         (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
7554         * config/arm/constraints.md (define_constraint "j"): Use
7555         TARGET_HAVE_MOVT to check MOVT availability.
7557 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7559         * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
7561 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7563         * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
7564         (armv8-m.main): Likewise.
7565         (armv8-m.main+dsp): Likewise.
7566         * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
7567         (FL_FOR_ARCH8M_MAIN): Likewise.
7568         * config/arm/arm-tables.opt: Regenerate.
7569         * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
7570         armv8-m.main+dsp to BE8_LINK_SPEC.
7571         * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
7572         (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
7573         * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
7574         Baseline and Mainline.
7575         (arm_option_override_internal): Also disable arm_restrict_it when
7576         !arm_arch_notm.  Update comment for -munaligned-access to also cover
7577         ARMv8-M Baseline.
7578         (arm_file_start): Increase buffer size for printing architecture name.
7579         * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
7580         and armv8-m.main+dsp.
7581         (mno-unaligned-access): Clarify that this is disabled by default for
7582         ARMv8-M Baseline architectures as well.
7584 2016-07-07  Thomas Preud'homme  <thomas.preudhomme@arm.com>
7586         * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
7587         decide whether to prevent some libgcc routines being included for some
7588         multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
7589         link between this condition and the one in
7590         libgcc/config/arm/lib1func.S.
7592 2016-07-07  Richard Biener  <rguenther@suse.de>
7594         * tree-ssa-pre.c: Include alias.h.
7595         (compute_avail): If we have multiple VN_REFERENCEs with the
7596         same hashtable entry adjust that to make it a valid replacement
7597         for all of them with respect to alignment and aliasing
7598         when doing insertion.
7599         * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
7600         * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
7602 2016-07-06  Segher Boessenkool  <segher@kernel.crashing.org>
7604         PR target/70098
7605         PR target/71763
7606         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7607         *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
7608         constraint.
7610 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7612         * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
7613         (adjust_mems): Adjust.
7614         (adjust_insn): Likewise.
7615         (prepare_call_arguments): Likewise.
7617 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7619         * gcse.c (struct ls_expr): Make stores field a vector.
7620         (ldst_entry): Adjust.
7621         (free_ldst_entry): Likewise.
7622         (print_ldst_list): Likewise.
7623         (compute_ld_motion_mems): Likewise.
7624         (update_ld_motion_stores): Likewise.
7626 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7628         * gcse.c (struct ls_expr): Remove loads field.
7629         (ldst_entry): Adjust.
7630         (free_ldst_entry): Likewise.
7631         (print_ldst_list): Likewise.
7632         (compute_ld_motion_mems): Likewise.
7634 2016-07-06  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
7636         * store-motion.c (struct st_expr): Make antic_stores a vector.
7637         (st_expr_entry): Adjust.
7638         (free_st_expr_entry): Likewise.
7639         (print_store_motion_mems): Likewise.
7640         (find_moveable_store): Likewise.
7641         (compute_store_table): Likewise.
7642         (remove_reachable_equiv_notes): Likewise.
7643         (replace_store_insn): Likewise.
7644         (build_store_vectors): Likewise.
7646 2016-07-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7648         * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
7649         cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
7651 2016-07-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
7653         PR tree-optimization/71518
7654         * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
7655         misalign also for outer loops with negative step.
7657 2016-07-06  Wilco Dijkstra  <wdijkstr@arm.com>
7659         * config/arm/cortex-a53.md: Use final_presence_set for in-order.
7660         (cortex_a53_shift): Add mov_shift.
7661         (cortex_a53_shift_reg): Add new reservation for register shifts.
7662         (cortex_a53_alu): Remove bfm.
7663         (cortex_a53_alu_shift): Add bfm, remove mov_shift.
7664         (cortex_a53_alu_extr): Add new reservation for EXTR.
7665         (bypasses): Improve bypass modelling.
7667 2016-07-06  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
7669         PR target/50739
7670         * config/avr/avr.c (avr_asm_select_section): Strip off
7671         SECTION_DECLARED from flags when calling get_section.
7673 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7675         * tree-vectorizer.h (vect_memory_access_type): Add
7676         VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
7677         * tree-vect-stmts.c (compare_step_with_zero): New function.
7678         (perm_mask_for_reverse): Move further up file.
7679         (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
7680         step is negative.
7681         (get_negative_load_store_type): New function.
7682         (get_load_store_type): Call it.  Add an ncopies argument.
7683         (vectorizable_mask_load_store): Update call accordingly and
7684         remove tests for negative steps.
7685         (vectorizable_store, vectorizable_load): Likewise.  Handle new
7686         memory_access_types.
7688 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7690         * tree-vectorizer.h (vect_memory_access_type): New enum.
7691         (_stmt_vec_info): Add a memory_access_type field.
7692         (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
7693         (vect_model_store_cost): Take an access type instead of a boolean.
7694         (vect_model_load_cost): Likewise.
7695         * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
7696         vect_model_store_cost and vect_model_load_cost.
7697         * tree-vect-stmts.c (vec_load_store_type): New enum.
7698         (vect_model_store_cost): Take an access type instead of a
7699         store_lanes_p boolean.  Simplify tests.
7700         (vect_model_load_cost): Likewise, but for load_lanes_p.
7701         (get_group_load_store_type, get_load_store_type): New functions.
7702         (vectorizable_store): Use get_load_store_type.  Record the access
7703         type in STMT_VINFO_MEMORY_ACCESS_TYPE.
7704         (vectorizable_load): Likewise.
7705         (vectorizable_mask_load_store): Likewise.  Replace is_store
7706         variable with vls_type.
7708 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7710         * tree-vectorizer.h (vect_grouped_load_supported): Add a
7711         single_element_p parameter.
7712         * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
7713         Check the PR65518 case here rather than in vectorizable_load.
7714         * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
7715         * tree-vect-stmts.c (vectorizable_load): Likewise.
7717 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7719         * tree-vectorizer.h (gather_scatter_info): New structure.
7720         (vect_check_gather_scatter): Return a bool rather than a decl.
7721         Replace return-by-pointer arguments with a single
7722         gather_scatter_info *.
7723         * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
7724         (vect_analyze_data_refs): Update call accordingly.
7725         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
7726         (vectorizable_mask_load_store): Likewise.  Also record the
7727         offset dt and vectype in the gather_scatter_info.
7728         (vectorizable_store): Likewise.
7729         (vectorizable_load): Likewise.
7731 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7733         * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
7734         strided groups, use the cost of N scalar accesses instead
7735         of ncopies vector accesses.
7736         (vect_model_load_cost): Likewise.
7738 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7740         * tree-vect-stmts.c (vect_cost_group_size): Delete.
7741         (vect_model_store_cost): Avoid calling it.  Use first_stmt_p
7742         variable to indicate when once-per-group costs are being used.
7743         (vect_model_load_cost): Likewise.  Fix comment and misindented code.
7745 2016-07-06  Richard Sandiford  <richard.sandiford@arm.com>
7747         * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
7748         peeling-for-gaps condition.
7750 2016-07-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
7752         * config/s390/s390.c (s390_expand_vec_init): Force initializer
7753         element to register if it doesn't match general_operand.
7755 2016-07-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
7756             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
7758         * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
7759         prototype.
7760         * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
7761         * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
7762         (SIGNBIT): New mode iterator.
7763         (Fsignbit): New mode attribute.
7764         (signbit<mode>2): Change operand1 to match FLOAT128 instead of
7765         IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
7766         when direct moves are available.
7767         (signbit<mode>2_dm): New define_insn_and_split).
7768         (signbit<mode>2_dm2): New define_insn.
7770 2016-07-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7772         PR rtl-optimization/71594
7773         * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
7774         into subregs of appropriate mode before trying to emit a conditional
7775         move.
7777 2016-07-05  Jan Hubicka  <jh@suse.cz>
7779         * tree-scalar-evolution.c (iv_can_overflow_p): New function.
7780         (simple_iv): Use it.
7782 2016-07-05  Jan Hubicka  <jh@suse.cz>
7784         * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
7786 2016-07-05  Jiong Wang  <jiong.wang@arm.com>
7788         * lra-constraints.c (process_alt_operands): Don't add spilling cost for
7789         "offmemok".
7791 2016-07-05  Jan Hubicka  <jh@suse.cz>
7793         * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
7794         IV can overflow.
7796 2016-07-05  Richard Biener  <rguenther@suse.de>
7798         * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
7799         Handle empty else block.
7800         (is_feasible_trace): Likewise.
7801         (split_paths): Likewise.
7803 2016-07-05  Richard Biener  <rguenther@suse.de>
7805         * tree-loop-distribution.c (distribute_loop): Fix issue with
7806         the cost model loop.
7808 2016-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
7810         * config/arm/neon-testgen.ml: Delete.
7811         * config/arm/neon.ml: Delete.
7813 2016-07-04  Jakub Jelinek  <jakub@redhat.com>
7815         PR c++/71739
7816         * tree.c (attribute_value_equal): Use get_attribute_name instead of
7817         directly using TREE_PURPOSE.
7819 2016-07-04  Jiong Wang  <jiong.wang@arm.com>
7821         * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
7822         * config/aarch64/aarch64_neon.h: Likewise.
7823         * config/aarch64/arm_neon.h: Likewise.
7824         * config/aarch64/atomics.md: Likewise.
7825         * config/aarch64/aarch64-simd-builtins.def: Likewise.
7826         * doc/invoke.texi: Likewise.
7828 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7830         * config/s390/s390.md: Add "z13" cpu_facility.
7831         ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
7832         * config/s390/predicates.md ("loc_operand"): New predicate for "load on
7833         condition" type instructions.
7835 2016-07-04  Dominik Vogt  <vogt@linux.vnet.ibm.com>
7836             Jeff Law  <law@redhat.com>
7838         * explow.c (allocate_dynamic_stack_space): Simplify knowing that
7839         MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
7841 2016-07-04  Yuri Rumyantsev  <ysrumyan@gmail.com>
7843         * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
7844         permutation for TARGET_AVX512F.
7845         (ix86_expand_vec_one_operand_perm_avx512): New function.
7846         (expand_vec_perm_1): Invoke introduced function.
7847         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
7848         it may be not valid after vectorization.
7850 2016-07-04  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
7852         PR target/63874
7853         * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
7854         typo in comment.  Only force to memory if it is a weak
7855         external reference.
7857 2016-07-04  Matthew Wahab  <matthew.wahab@arm.com>
7858             Jiong Wang  <jiong.wang@arm.com>
7860         * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
7861         * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
7862         (AARCH64_FL_F16): New.
7863         (AARCH64_FL_FOR_ARCH8_2): New.
7864         (AARCH64_ISA_8_2): New.
7865         (AARCH64_ISA_F16): New.
7866         (TARGET_FP_F16INST): New.
7867         (TARGET_SIMD_F16INST): New.
7868         * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
7869         ("fp"): Disabling "fp" also disables "fp16".
7870         * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
7871         Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
7872         and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
7873         * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
7875 2016-07-04  Jan Beulich  <jbeulich@suse.com>
7877         * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
7879 2016-07-01  Michael Meissner  <meissner@linux.vnet.ibm.com>
7881         PR target/71720
7882         * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
7883         the insns, use an insn form that does not adjust the offset on
7884         little endian systems.
7886 2016-07-01  Jan Beulich  <jbeulich@suse.com>
7888         * varasm.c (get_variable_section): Validate initializer in
7889         named .bss-like sections.
7891 2016-07-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7893         * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
7894         Exchange the order of the second and third operands in the vpermr
7895         instruction tmeplate.
7897 2016-07-01  Peter Bergner  <bergner@vnet.ibm.com>
7899         PR target/71698
7900         * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
7901         Disallow TDmode values.
7903 2016-07-01  Alan Modra  <amodra@gmail.com>
7905         PR rtl-optimization/71709
7906         * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
7907         being set, not referenced.
7909 2016-07-01  Yuri Rumyantsev  <ysrumyan@gmail.com>
7911         PR tree-optimization/70729
7912         * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
7913         of loop since it can be not valid after transformation.
7915 2016-07-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
7917         * config/arm/arm.c (thumb_reload_in_hi): Delete.
7918         * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
7920 2016-07-01  Eric Botcazou  <ebotcazou@adacore.com>
7922         * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
7923         for NULL decl.
7925 2016-06-30  Michael Meissner  <meissner@linux.vnet.ibm.com>
7927         PR target/71677
7928         * config/rs6000/constraints.md (wY constraint): New constraint to
7929         match the requirements for the LXSD and STXSD instructions.
7930         * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
7931         predicate to match the requirements for the LXSD and STXSD
7932         instructions.
7933         * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
7934         Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
7935         to make sure that the bottom 2 bits of offset are 0, the address
7936         form is offsettable, and no updating is done in the address mode.
7937         (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
7938         (movdi_internal32): Likewise
7939         (movdi_internal64): Likewise.
7941 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
7943         PR tree-optimization/71707
7944         * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
7945         strinfo even for ADDR_EXPR ptr.
7947 2016-06-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7949         * config/rs6000/altivec.md (darn_32): Change the condition to
7950         TARGET_P9_MISC instead of TARGET_MODULO.
7951         (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
7952         condition expression.
7953         (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
7954         condition expression.
7955         * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
7956         (DFP_TEST): New code iterator.
7957         (dfptstsfi_<code>_mode>): New define_expand.
7958         (*dfp_sgnfcnc_<mode>): New define_insn.
7959         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
7960         definition next to BU_P9_MISC_1 definition and change the MASK
7961         value to RS6000_BTM_P9_MISC.
7962         (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
7963         (BU_P9_64BIT_MISC_0): Likewise.
7964         (BU_P9_DFP_MISC_0): New macro definition.
7965         (BU_P9_DFP_MISC_1): New macro definition.
7966         (BU_P9_DFP_MISC_2): New macro definition.
7967         (BU_P9_DFP_OVERLOAD_1): New macro definition.
7968         (BU_P9_DFP_OVERLOAD_2): New macro definition.
7969         (BU_P9_DFP_OVERLOAD_3): New macro definition.
7970         (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
7971         (TSTSFI_LT_TD): Likewise.
7972         (TSTSFI_EQ_DD): Likewise.
7973         (TSTSFI_EQ_TD): Likewise.
7974         (TSTSFI_GT_DD): Likewise.
7975         (TSTSFI_GT_TD): Likewise.
7976         (TSTSFI_OV_DD): Likewise.
7977         (TSTSFI_OV_TD): Likewise.
7978         (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
7979         (TSTSFI_LT_DD): Likewise.
7980         (TSTSFI_LT_TD): Likewise.
7981         (TSTSFI_EQ): Likewise.
7982         (TSTSFI_EQ_DD): Likewise.
7983         (TSTSFI_EQ_TD): Likewise.
7984         (TSTSFI_GT): Likewise.
7985         (TSTSFI_GT_DD): Likewise.
7986         (TSTSFI_GT_TD): Likewise.
7987         (TSTSFI_OV): Likewise.
7988         (TSTSFI_OV_DD): Likewise.
7989         (TSTSFI_OV_TD): Likewise.
7990         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
7991         overloaded test significance functions.
7992         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
7993         OPTION_MASK_P9_MISC into the representation of this mask.
7994         (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
7995         of this mask.
7996         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
7997         RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
7998         non-zero.
7999         (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
8000         argument is a 6-bit unsigned literal value if the icode argument
8001         represents a DFP test significance built-in call.
8002         (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
8003         flag used independently and in combination with the
8004         RS6000_BTM_64BIT flag.
8005         (rs6000_opt_masks): Add entry for power9-misc command-line option.
8006         (rs6000_builtin_mask_names): Add entry for power9-misc
8007         command-line option.
8008         * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
8009         HAVE_AS_POWER9 is not a defined macro.  Define MASK_P9_MISC and
8010         RS6000_BTM_P9_MISC macros.
8011         * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
8012         option and change the description of the -mpower9-vector option to
8013         enable only vector instructions, removing its erroneously claimed
8014         support for scalar instructions.
8015         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
8016         the ISA 3.0 digital floating point test significance built-in
8017         functions.
8019 2016-06-30  Wilco Dijkstra  <wdijkstr@arm.com>
8021         * config/aarch64/aarch64.c (cortexa35_tunings):
8022         Enable AES fusion.  Use cortexa57_branch_cost.
8023         (cortexa53_tunings): Use cortexa57_branch_cost.
8024         (cortexa72_tunings): Use cortexa57_branch_cost.
8025         Use AUTOPREFETCHER_WEAK.
8026         (cortexa73_tunings): Use cortexa57_branch_cost.
8028 2016-06-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8029             James Greenhalgh  <james.greenhalgh@arm.com>
8031         * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
8032         vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
8033         vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
8034         vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
8035         (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
8036         vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
8037         vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
8038         vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
8039         vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
8040         vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
8041         vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
8042         vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
8043         vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
8044         New intrinsics.
8046 2016-06-30  James Greenhalgh  <james.greenhalgh@arm.com>
8047             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8049         * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
8050         New define_insn.
8051         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
8053 2016-06-30  David Malcolm  <dmalcolm@redhat.com>
8055         PR driver/71651
8056         * gcc.c (driver::build_option_suggestions): Pass "option" to
8057         add_misspelling_candidates.
8058         * opts-common.c (add_misspelling_candidates): Add "option" param;
8059         use it to avoid adding negated forms for options marked with
8060         RejectNegative.
8061         * opts.h (add_misspelling_candidates): Add "option" param.
8063 2016-06-30  Jakub Jelinek  <jakub@redhat.com>
8065         PR middle-end/71693
8066         * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
8067         TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
8068         first when permuting bitwise operation with rotate.  Cast
8069         TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
8071 2016-06-29  David Malcolm  <dmalcolm@redhat.com>
8073         * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
8074         for misspelled param names.
8075         * params.c: Include spellcheck.h.
8076         (find_param_fuzzy): New function.
8077         * params.h (find_param_fuzzy): New prototype.
8078         * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
8079         * spellcheck.h (struct edit_distance_traits<const char *>):
8080         ...here.
8082 2016-06-29  Michael Meissner  <meissner@linux.vnet.ibm.com>
8084         * config/rs6000/predicates.md (const_0_to_7_operand): New
8085         predicate, recognize 0..7.
8086         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
8087         support for doing extracts from V16QImode, V8HImode, V4SImode
8088         under ISA 3.0.
8089         * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
8090         vector extract support.
8091         (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
8092         for ISA 3.0 vector extract.
8093         (VSX_EX): Constraints to use for ISA 3.0 vector extract.
8094         (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
8095         extracts of a constant element number from small integer vectors
8096         on 64-bit ISA 3.0 systems.
8097         (vsx_extract_<mode>_di): Likewise.
8098         * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
8099         say when we can do ISA 3.0 vector extracts.
8100         * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
8101         registers, using the stxsiwx instruction.
8103 2016-06-29  Jim Wilson  <jim.wilson@linaro.org>
8105         * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
8106         * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
8107         qdf24xx_regmove_cost, qdf24xx_tunings): New.
8108         * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
8109         * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
8110         * config/arm/arm.c (arm_qdf24xx_tune): New.
8112 2016-06-29  Wilco Dijkstra  <wdijkstr@arm.com>
8114         * config/aarch64/aarch64.c (cortexa53_tunings):
8115         Increase loop alignment to 8.  Set function alignment to 16.
8116         (cortexa35_tunings): Likewise.
8117         (cortexa57_tunings): Increase loop alignment to 8.
8118         (cortexa72_tunings): Likewise.
8119         (cortexa73_tunings): Likewise.
8121 2016-06-29  Matthew Wahab  <matthew.wahab@arm.com>
8123         * doc/sourcebuild.texi (Effective-Target keywords): Add entries
8124         for arm_fp16_ok and arm_fp16_hw.
8125         (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
8126         arm_fp16_alternative.
8128 2016-06-29  Ilya Enkovich  <ilya.enkovich@intel.com>
8130         PR tree-optimization/71655
8131         * tree-vect-stmts.c (vectorizable_comparison): Swap definition
8132         types when swapping operands.
8134 2016-06-29  Martin Liska  <mliska@suse.cz>
8136         PR middle-end/71585
8137         * common.opt (flag_stack_protect): Mark the flag as optimization flag.
8138         * ipa-inline-transform.c (inline_call): Remove unnecessary call
8139         of build_optimization_node.
8141 2016-06-29  Yuri Rumyantsev  <ysrumyan@gmail.com>
8143         PR tree-optimization/70729
8144         * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
8145         independent in loops having positive safelen value.
8146         * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8147         it may be not valid after vectorization.
8149 2016-06-29  Jakub Jelinek  <jakub@redhat.com>
8151         PR tree-optimization/71625
8152         * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
8153         is sorted by ascending list->offset.  If PTR is non-NULL and there is
8154         previous strinfo, call get_stridx_plus_constant.
8155         (get_stridx): Pass exp as second argument to get_addr_stridx.
8156         (addr_stridxptr): Add missing list = list->next, so that there can be
8157         more than one entries in the list.  Bump limit from 16 to 32.  Ensure
8158         the list is sorted by ascending list->offset.
8159         (get_stridx_plus_constant): Adjust so that it can be also called with
8160         ADDR_EXPR instead of SSA_NAME as PTR.
8161         (handle_char_store): Pass NULL_TREE as second argument to
8162         get_addr_stridx.
8164 2016-06-29  Richard Biener  <rguenther@suse.de>
8166         PR rtl-optimization/68961
8167         * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
8169 2016-06-29  Richard Biener  <rguenther@suse.de>
8171         PR middle-end/71002
8172         * alias.c (component_uses_parent_alias_set_from): Handle
8173         type punning through union accesses by using the union alias set.
8174         * gimple.c (gimple_get_alias_set): Remove union type punning case.
8176 2016-07-29  Richard Biener  <rguenther@suse.de>
8178         * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
8179         precision not matching mode precision.
8181 2016-06-28  John David Anglin  <danglin@gcc.gnu.org>
8183         * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
8184         pa_output_arg_descriptor.
8185         (call_val_symref_64bit_post_reload): Likewise.
8186         (call_val_powf_64bit_post_reload): Likewise.
8187         (sibcall_internal_symref_64bit): Likewise.
8188         (sibcall_value_internal_symref_64bit): Likewise.
8190 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
8192         PR middle-end/71626
8193         * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
8194         a constant, force its SUBREG_REG into memory or register instead
8195         of whole op1.
8197 2016-06-28  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
8199         PR target/58655
8200         * config/avr/avr.opt (-mfract-convert-truncate): Update description.
8201         * doc/invoke.texi (AVR Options): Document it.
8203 2016-06-28  Walter Lee  <walt@tilera.com>
8205         * config/tilegx/linux.h: Do not include arch/icache.h
8206         (CLEAR_INSN_CACHE): Provide inlined definition directly.
8207         * config/tilepro/linux.h: Do not include arch/icache.h
8208         (CLEAR_INSN_CACHE): Provide inlined definition directly.
8210 2016-06-28  Wilco Dijkstra  <wdijkstr@arm.com>
8212         * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
8213         for big-endian BIT_FIELD_REF.
8215 2016-06-28  Pat Haugen  <pthaugen@us.ibm.com>
8217         * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
8218         ('size' attribute): Add '128'.
8219         Include power9.md.
8220         (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
8221         *movdi_internal64, *movdf_update1): Set size attribute to '64'.
8222         (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
8223         copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
8224         *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
8225         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
8226         *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
8227         *trunc<mode>df2_odd): Set size attribute to '128'.
8228         (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
8229         * config/rs6000/power6.md (power6-fp): Include dfp type.
8230         * config/rs6000/power7.md (power7-fp): Likewise.
8231         * config/rs6000/power8.md (power8-fp): Likewise.
8232         * config/rs6000/power9.md: New file.
8233         * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
8234         * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
8235         *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
8236         htmsimple.
8237         * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
8238         trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
8239         divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
8240         ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
8241         dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
8242         dfp_dscri_<mode>): Change type attribute to dfp.
8243         * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
8244         attribute to vecsimple.
8245         * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
8246         and prefetch streams.
8247         (rs6000_option_override_internal): Remove temporary code setting
8248         tuning to power8.  Don't set rs6000_sched_groups for power9.
8249         (last_scheduled_insn): Change to rtx_insn *.
8250         (divide_cnt, vec_load_pendulum): New variables.
8251         (rs6000_adjust_cost): Add Power9 to test for store->load separation.
8252         (rs6000_issue_rate): Set issue rate for Power9.
8253         (is_power9_pairable_vec_type): New.
8254         (power9_sched_reorder2): New.
8255         (rs6000_sched_reorder2): Call new function for Power9 specific
8256         reordering.
8257         (insn_must_be_first_in_group): Remove Power9.
8258         (insn_must_be_last_in_group): Likewise.
8259         (force_new_group): Likewise.
8260         (rs6000_sched_init): Fix initialization of last_scheduled_insn.
8261         Initialize divide_cnt/vec_load_pendulum.
8262         (_rs6000_sched_context, rs6000_init_sched_context,
8263         rs6000_set_sched_context): Handle context save/restore of new
8264         variables.
8266 2016-06-28  Richard Biener  <rguenther@suse.de>
8268         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
8269         Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
8270         COMPONENT_REF operand.
8271         (nonoverlapping_component_refs_p): Likewise.
8272         * stor-layout.c (start_bitfield_representative): Mark
8273         DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
8275 2016-06-28  Jakub Jelinek  <jakub@redhat.com>
8277         * Makefile.in: Don't cat ../stage_current if it does not exist.
8279         * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
8280         last argument is a bit-field.
8282         PR rtl-optimization/71673
8283         * internal-fn.c (expand_arith_overflow_result_store): Use
8284         OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
8285         expand_simple_binop.
8287         PR middle-end/66867
8288         * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
8289         expand_ifn_atomic_compare_exchange): New functions.
8290         * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
8291         * tree.h (build_call_expr_internal_loc): Rename to ...
8292         (build_call_expr_internal_loc_array): ... this.  Fix up type of
8293         last argument.
8294         * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
8295         * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
8296         ATOMIC_COMPARE_EXCHANGE result.
8297         * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
8298         * gimple-fold.h (optimize_atomic_compare_exchange_p,
8299         fold_builtin_atomic_compare_exchange): New prototypes.
8300         * gimple-fold.c (optimize_atomic_compare_exchange_p,
8301         fold_builtin_atomic_compare_exchange): New functions..
8302         * tree-ssa.c (execute_update_addresses_taken): If
8303         optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
8304         of call when finding addressable vars, and if such var becomes
8305         non-addressable, call fold_builtin_atomic_compare_exchange.
8307 2016-06-27  Segher Boessenkool  <segher@kernel.crashing.org>
8309         PR target/71670
8310         * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
8311         gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
8313 2016-06-27  Pat Haugen  <pthaugen@us.ibm.com>
8315         * config/rs6000/rs6000.md ('type' attribute): Add
8316         veclogical,veccmpfx,vecexts,vecmove insn types.
8317         (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
8318         copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
8319         p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
8320         (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
8321         *nabs<mode>2_hw): Change type to vecmove.
8322         (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
8323         *boolcc<mode>3_internal, *eqv<mode>3_internal,
8324         *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
8325         *ieee_128bit_vsx_abs<mode>2_internal,
8326         *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
8327         *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
8328         *ieee128_mtvsrd_32bit): Change type to veclogical.
8329         (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
8330         *movdi_internal32, *movdi_internal64): Update insn types.
8331         * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
8332         vsx_extract_<mode>): Change type to veclogical.
8333         (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
8334         (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
8335         *vsx_sign_extend_si_v2di): Change type to vecexts.
8336         * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
8337         type to veclogical.
8338         (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
8339         *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
8340         *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
8341         (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
8342         * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
8343         negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
8344         * config/rs6000/40x.md (ppc405-float): Add fpsimple.
8345         * config/rs6000/440.md (ppc440-fp): Add fpsimple.
8346         * config/rs6000/476.md (ppc476-fp): Add fpsimple.
8347         * config/rs6000/601.md (ppc601-fp): Add fpsimple.
8348         * config/rs6000/603.md (ppc603-fp): Add fpsimple.
8349         * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
8350         * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
8351         (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
8352         * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
8353         (ppc7450-vecsimple): Add veclogical, vecmove.
8354         (ppc7450-veccmp): Add veccmpfx.
8355         * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
8356         vecmove.
8357         (ppc8540_vector_compare): Add veccmpfx.
8358         * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
8359         * config/rs6000/cell.md (cell-fp): Add fpsimple.
8360         (cell-vecsimple): Add veclogical, vecmove.
8361         (cell-veccmp): Add veccmpfx.
8362         * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
8363         * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
8364         veccmpfx.
8365         * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
8366         * config/rs6000/power4.md (power4-fp): Add fpsimple.
8367         (power4-vecsimple): Add veclogical, vecmove.
8368         (power4-veccmp): Add veccmpfx.
8369         * config/rs6000/power5.md (power5-fp): Add fpsimple.
8370         * config/rs6000/power6.md (power6-fp): Add fpsimple.
8371         (power6-vecsimple): Add veclogical, vecmove.
8372         (power6-veccmp): Add veccmpfx.
8373         * config/rs6000/power7.md (power7-fp): Add fpsimple.
8374         (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
8375         * config/rs6000/power8.md (power8-fp): Add fpsimple.
8376         (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
8377         * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
8378         * config/rs6000/titan.md (titan_fp): Add fpsimple.
8379         * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
8380         fpsimple.
8381         * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
8383 2016-06-27  Peter Bergner  <bergner@vnet.ibm.com>
8385         PR target/71656
8386         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
8387         OPTION_MASK_P9_DFORM_VECTOR.
8388         * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8389         disable -mpower9-dform-vector when using reload.
8390         (quad_address_p): Remove 'gpr_p' argument and all associated code.
8391         New 'strict' argument.  Update all callers.  Add strict addressing
8392         support.
8393         (rs6000_legitimate_offset_address_p): Remove call to
8394         virtual_stack_registers_memory_p.
8395         (rs6000_legitimize_reload_address): Add quad address support.
8396         (rs6000_legitimate_address_p): Move call to quad_address_p above
8397         call to virtual_stack_registers_memory_p.  Adjust quad_address_p args
8398         to account for new strict usage.
8399         (rs6000_output_move_128bit): Adjust quad_address_p args to account
8400         for new strict usage.
8401         * config/rs6000/predicates.md (quad_memory_operand): Likewise.
8403 2016-06-26  Uros Bizjak  <ubizjak@gmail.com>
8405         PR target/70902
8406         PR target/71453
8407         PR target/71555
8408         PR target/71596
8409         PR target/71657
8410         * config/i386/i386.c (ix86_spill_class): Disable condition to
8411         always return NO_REGS.
8413 2016-06-26  Jan Hubicka  <hubicka@ucw.cz>
8415         * predict.c: Include gimple-pretty-print.h
8416         (predicted_by_loop_heuristics_p): Check also
8417         PRED_LOOP_EXIT_WITH_RECURSION
8418         (predict_loops): Find self recursive calls and use special purpose
8419         predictors for them; dump log about decisions.
8420         (pass_profile::execute): Dump info about #of iterations.
8421         * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
8422         (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
8424 2016-06-26  John David Anglin  <danglin@gcc.gnu.org>
8426         * config/pa/pa.c (pa_output_indirect_call): Rework to combine
8427         output_asm_insn calls and shorten long lines.  Output .CALL
8428         argument descriptor using pa_output_arg_descriptor.  Add various
8429         inline $$dyncall and other optimizations.
8430         (pa_attr_length_indirect_call): Adjust ordering and lengths.
8432 2016-06-25  Jakub Jelinek  <jakub@redhat.com>
8434         PR tree-optimization/71643
8435         * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
8436         EH preds.
8438         * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
8439         leak a bitmap if dep_bb is NULL.
8441         PR tree-optimization/71631
8442         * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
8443         to rewrite_expr_tree even if negate_result, move new_lhs var
8444         declaration and initialization earlier, for powi_result set afterwards
8445         new_lhs to lhs.  For negate_result, use new_lhs instead of tmp
8446         if new_lhs != lhs, and don't shadow gsi var.
8448 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
8450         * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
8451         Add in_loop parameter.
8452         (predict_loops): Add loop guard heuristics.
8453         * predict.def (PRED_LOOP_GUARD): New heuristics.
8455 2016-06-24  Jan Hubicka  <hubicka@ucw.cz>
8457         * predict.c: Include ipa-utils.h
8458         (tree_bb_level_prediction): Predict recursive calls.
8459         (tree_estimate_probability_bb): Skip inexpensive calls for call
8460         predictor.
8461         * predict.def (PRED_RECURSIVE_CALL): New.
8463 2016-06-24  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8465         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
8466         (BU_FLOAT128_1): Likewise.
8467         (FABSQ): Likewise.
8468         (COPYSIGNQ): Likewise.
8469         (RS6000_BUILTIN_NANQ): Likewise.
8470         (RS6000_BUILTIN_NANSQ): Likewise.
8471         (RS6000_BUILTIN_INFQ): Likewise.
8472         (RS6000_BUILTIN_HUGE_VALQ): Likewise.
8473         * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
8474         (TARGET_FOLD_BUILTIN): New #define.
8475         (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
8476         (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
8477         (rs6000_fold_builtin): New target hook implementation, handling
8478         folding of 128-bit NaNs and infinities.
8479         (rs6000_init_builtins): Initialize const_str_type_node; ensure all
8480         entries are filled in to avoid problems during bootstrap
8481         self-test; define builtins for 128-bit NaNs and infinities.
8482         (rs6000_opt_mask): Add entry for float128.
8483         * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
8484         (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
8485         (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
8486         (const_str_type_node): New #define.
8487         * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
8488         to a define_expand that dispatches to either copysign<mode>3_soft
8489         or copysign<mode>3_hard.
8490         (copysign<mode>3_hard): Rename from copysign<mode>3.
8491         (copysign<mode>3_soft): New define_insn.
8492         * doc/extend.texi: Document new builtins.
8494 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
8496         * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
8497         PRIu64 instead of lu.
8499 2016-06-24  Eric Botcazou  <ebotcazou@adacore.com>
8501         PR debug/71642
8502         * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
8503         copy the type name.
8505 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
8507         PR tree-optimization/71647
8508         * omp-low.c (lower_rec_input_clauses): Convert
8509         omp_clause_aligned_alignment (c) to size_type_node for the
8510         last argument of __builtin_assume_aligned.
8512 2016-06-24  H.J. Lu  <hongjiu.lu@intel.com>
8514         * configure.ac (calling ___tls_get_addr via GOT): New
8515         assembler/linker check.
8516         (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New.  Defined to 1 if 32-bit
8517         assembler and linker supports calling ___tls_get_addr via GOT.
8518         Otherise, defined to 0.
8519         * config.in: Regenerated.
8520         * configure: Likewise.
8521         * config/i386/constraints.md (Yb): New constraint.
8522         * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
8523         (REG_CLASS_NAMES): Likewise.
8524         (REG_CLASS_CONTENTS): Likewise.
8525         * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
8526         the b constraint with the Yb constraint.  Call ___tls_get_addr
8527         via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
8528         is 1.
8529         (*tls_local_dynamic_base_32_gnu): Likewise.
8530         (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
8531         GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
8532         (*tls_local_dynamic_base_64_<mode>): Likewise.
8534 2016-06-24  Martin Liska  <mliska@suse.cz>
8536         * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
8537         * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
8538         few functions.
8539         * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
8540         argument to true if the expected number of iterations is
8541         loop-based.
8543 2016-06-24  Uros Bizjak  <ubizjak@gmail.com>
8545         * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
8546         assemble for 32bit target.
8547         (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
8548         and $ld_ix86_gld_32_opt to link for 32bit target.
8549         (HAVE_AS_IX86_TLSLDMPLT): Ditto.
8550         * configure: Regenerate.
8552 2016-06-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8554         * config/arm/arm.c (int_log2): Delete definition and prototype.
8555         (shift_op): Use exact_log2 instead of int_log2.
8556         (vfp3_const_double_for_fract_bits): Likewise.
8558 2016-06-24  Jakub Jelinek  <jakub@redhat.com>
8560         * internal-fn.c (expand_arith_set_overflow): New function.
8561         (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
8562         Use it.
8563         (expand_arith_overflow_result_store): Likewise.  Handle precision
8564         smaller than mode precision.
8565         * tree-vrp.c (extract_range_basic): For imag part, handle
8566         properly signed 1-bit precision result.
8567         * doc/extend.texi (__builtin_add_overflow): Document that last
8568         argument can't be pointer to enumerated or boolean type.
8569         (__builtin_add_overflow_p): Document that last argument can't
8570         have enumerated or boolean type.
8572 2016-06-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
8573             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
8575         * config/rs6000/predicates.md (splat_input_operand): Rework.
8576         Don't allow constants, since the insns that use this predicate
8577         don't support constants.  Constants are handled by other insns
8578         that are created via combine.  During and after register
8579         allocation, only allow indexed or indirect addresses, and not
8580         general addresses.  Only allow modes supported by the hardware.
8581         * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
8582         comment.  Move check for using VSPLTIS<x> to a common location,
8583         instead of doing it in two different places.
8585 2016-06-23  Jocelyn Mayer  <l_indien@magic.fr>
8587         * config/i386/driver-i386.c (host_detect_local_cpu): Set
8588         PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
8589         <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
8590         signature_CENTAUR_ebx.
8592 2016-06-23  H.J. Lu  <hongjiu.lu@intel.com>
8594         PR target/66232
8595         PR target/67400
8596         * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
8597         (as_ix86_gas_32_opt): This.
8598         (ld_ix86_tls_ldm_opt): Renamed to ...
8599         (ld_ix86_gld_32_opt): This.
8600         (R_386_TLS_LDM reloc): Updated.
8601         (R_386_GOT32X reloc): New assembler/linker check.
8602         (HAVE_AS_IX86_GOT32X): New.  Defined to 1 if 32-bit assembler and
8603         linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT".  Otherise,
8604         defined to 0.
8605         * config.in: Regenerated.
8606         * configure: Likewise.
8607         * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
8608         true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
8609         (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
8610         if ix86_force_load_from_GOT_p returns true.
8611         (ix86_print_operand_address_as): Also support UNSPEC_GOT if
8612         ix86_force_load_from_GOT_p returns true.
8613         (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
8614         the external function address via the GOT slot.
8615         (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
8616         HAVE_AS_IX86_GOT32X before returning false.
8617         (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
8618         32-bit mode if ix86_nopic_noplt_attribute_p returns true.
8620 2016-06-23  Eric Botcazou  <ebotcazou@adacore.com>
8622         * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
8624 2016-06-23  Andi Kleen  <ak@linux.intel.com>
8626         * Makefile.in: Regenerate.
8627         * doc/install.texi: Document autoprofiledbootstrap.
8629 2016-06-23  Andi Kleen  <ak@linux.intel.com>
8631         * config/i386/gcc-auto-profile: New file.
8633 2016-06-23  Martin Liska  <mliska@suse.cz>
8635         PR middle-end/71619
8636         * predict.c (predict_loops): Revert the hunk that was removed
8637         in r237103.
8639 2016-06-23  Jakub Sejdak  <jakub.sejdak@phoesys.com>
8641         * config.gcc: Add support for arm*-*-phoenix* targets.
8642         * config/arm/t-phoenix: New.
8643         * config/phoenix.h: New.
8645 2016-06-23  Uros Bizjak  <ubizjak@gmail.com>
8646             H.J. Lu  <hongjiu.lu@intel.com>
8648         PR target/67400
8649         * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
8650         * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
8651         (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
8652         ix86_force_load_from_GOT_p returns true.
8653         (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
8654         ix86_force_load_from_GOT_p returns true.
8655         (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
8656         ix86_force_load_from_GOT_p returns true.
8657         (ix86_expand_move): Load the external function address via the
8658         GOT slot if ix86_force_load_from_GOT_p returns true.
8659         * config/i386/predicates.md (x86_64_immediate_operand): Return
8660         false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
8661         (x86_64_zext_immediate_operand): Ditto.
8663 2016-06-22  Uros Bizjak  <ubizjak@gmail.com>
8665         * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
8667 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
8669         PR c/70339
8670         * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
8671         * diagnostic.c (pedwarn_at_rich_loc): New function.
8672         * spellcheck.h (best_match::best_match): Add a
8673         "best_distance_so_far" optional parameter.
8674         (best_match::set_best_so_far): New method.
8675         (best_match::get_best_distance): New accessor.
8676         (best_match::get_best_candidate_length): New accessor.
8678 2016-06-22  Nick Clifton  <nickc@redhat.com>
8680         * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
8681         place of GET_MODE_CLASS() == MODE_INT, so that partial integer
8682         modes are accepted as well.
8683         (ucompare_loc_descriptor): Likewise.
8684         (minmax_loc_descriptor): Likewise.
8685         (clz_loc_descriptor): Likewise.
8686         (popcount_loc_descriptor): Likewise.
8687         (bswap_loc_descriptor): Likewise.
8688         (rotate_loc_descriptor): Likewise.
8689         (mem_loc_descriptor): Likewise.
8690         (loc_descriptor): Likewise.
8692 2016-06-22  David Malcolm  <dmalcolm@redhat.com>
8694         * common.opt (fdiagnostics-parseable-fixits): New option.
8695         * diagnostic.c: Include "selftest.h".
8696         (print_escaped_string): New function.
8697         (print_parseable_fixits): New function.
8698         (diagnostic_report_diagnostic): Call print_parseable_fixits.
8699         (selftest::assert_print_escaped_string): New function.
8700         (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
8701         (selftest::test_print_escaped_string): New function.
8702         (selftest::test_print_parseable_fixits_none): New function.
8703         (selftest::test_print_parseable_fixits_insert): New function.
8704         (selftest::test_print_parseable_fixits_remove): New function.
8705         (selftest::test_print_parseable_fixits_replace): New function.
8706         (selftest::diagnostic_c_tests): New function.
8707         * diagnostic.h (struct diagnostic_context): Add field
8708         "parseable_fixits_p".
8709         * doc/invoke.texi (Diagnostic Message Formatting Options): Add
8710         -fdiagnostics-parseable-fixits.
8711         (-fdiagnostics-parseable-fixits): New option.
8712         * opts.c (common_handle_option): Handle
8713         -fdiagnostics-parseable-fixits.
8714         * selftest-run-tests.c (selftest::run_tests): Call
8715         selftest::diagnostic_c_tests.
8716         * selftest.h (selftest::diagnostic_c_tests): New prototype.
8718 2016-06-22  Ilya Enkovich  <ilya.enkovich@intel.com>
8720         PR tree-optimization/71488
8721         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
8722         comparison of boolean vectors.
8723         * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
8724         of boolean vectors using bitwise operations.
8726 2016-06-22  Andreas Schwab  <schwab@suse.de>
8728         * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
8729         Remove declaration.
8731 2016-06-22  Eric Botcazou  <ebotcazou@adacore.com>
8733         * function.c (assign_parm_setup_reg): Prevent sharing in another case.
8735 2016-06-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
8737         * config/i386/i386.c (print_reg): Emit an error message on attempt to
8738         print FLAGS_REG.
8740 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8742         * config/arm/arm.c (arm_cortex_a73_tune): New struct.
8743         * config/arm/arm-cores.def (cortex-a73): New entry.
8744         (cortex-a73.cortex-a35): Likewise.
8745         (cortex-a73.cortex-a53): Likewise.
8746         * config/arm/arm-tables.opt: Regenerate.
8747         * config/arm/arm-tune.md: Likewise.
8748         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
8749         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
8750         * config/arm/t-aprofile: Handle mcpu=cortex-a73,
8751         mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
8752         * doc/invoke.texi (ARM Options): Document cortex-a73,
8753         cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
8755 2016-06-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
8757         * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
8758         * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
8759         (cortex-a73.cortex-a35): Likewise.
8760         (cortex-a73.cortex-a53): Likewise.
8761         * config/aarch64/aarch64-tune.md: Regenerate.
8762         * doc/invoke.texi (AArch64 Options): Document cortex-a73,
8763         cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
8764         -mcpu and -mtune.
8766 2016-06-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
8768         * configure.ac (gcc_cv_as_compress_debug): Remove
8769         --compress-debug-sections as extra as switch.
8770         Handle gas --compress-debug-sections=type.
8771         (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
8772         Handle gld --compress-debug-sections=type.
8773         * configure: Regenerate.
8775 2016-06-21  Andrew Burgess  <andrew.burgess@embecosm.com>
8777         * bb-reorder.c (pass_partition_blocks::gate): Update comment.
8779 2016-06-21  John David Anglin  <danglin@gcc.gnu.org>
8781         * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
8782         (do_rewrite): likewise.
8784 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8786         * common/config/mep/mep-common.c: Remove.
8787         * config.gcc: Remove mep-* support.
8788         * config/mep/constraints.md: Remove.
8789         * config/mep/default.h: Remove.
8790         * config/mep/intrinsics.h: Remove.
8791         * config/mep/intrinsics.md: Remove.
8792         * config/mep/ivc2-template.h: Remove.
8793         * config/mep/mep-c5.cpu: Remove.
8794         * config/mep/mep-core.cpu: Remove.
8795         * config/mep/mep-default.cpu: Remove.
8796         * config/mep/mep-ext-cop.cpu: Remove.
8797         * config/mep/mep-intrin.h: Remove.
8798         * config/mep/mep-ivc2.cpu: Remove.
8799         * config/mep/mep-pragma.c: Remove.
8800         * config/mep/mep-protos.h: Remove.
8801         * config/mep/mep.c: Remove.
8802         * config/mep/mep.cpu: Remove.
8803         * config/mep/mep.h: Remove.
8804         * config/mep/mep.md: Remove.
8805         * config/mep/mep.opt: Remove.
8806         * config/mep/predicates.md: Remove.
8807         * config/mep/t-mep: Remove.
8808         * doc/install.texi: Remove mep-* documentation.
8809         * doc/md.texi: Likewise.
8811 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8813         * config.gcc: Remove support for avr-rtems.
8814         * config/avr/gen-avr-mmcu-specs.c: Likewise.
8815         * config/avr/rtems.h: Remove.
8816         * config/avr/t-rtems: Remove.
8818 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8820         * config.gcc: Remove m32r-rtems support.
8821         * config/m32r/rtems.h: Remove.
8823 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8825         * config.gcc: Remove h8300-rtems support.
8826         * config/h8300/rtems.h: Remove.
8827         * config/h8300/t-rtems: Remove.
8829 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8831         * config.gcc: Remove support for knetbsd.
8832         * configure.ac: Likewise.
8833         * config/i386/knetbsd-gnu.h: Remove.  * config/i386/knetbsd-gnu64.h: Remove.
8834         * config/knetbsd-gnu.h: Remove.
8835         * configure: Regenerate.
8837 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8839         * config.gcc: Remove support for openbsd 2 and 3.
8840         * config/openbsd-oldgas.h: Remove.
8842 2016-06-21  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
8844         * config.gcc: Remove interix support.
8845         * config/i386/i386-interix.h: Remove.
8846         * config/i386/interix.opt: Remove.
8847         * config/i386/t-interix: Remove.
8848         * configure: Regenerate.
8849         * configure.ac: Remove interix support.
8850         * doc/install.texi: Remove interix documentation.
8852 2016-06-21  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8854         * config/rs6000/rs6000.h: Add conditional preprocessing directives
8855         to disable Power9-specific compiler features if HAVE_AS_POWER9 is
8856         not defined.
8858 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
8860         * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
8861         they are both PLACEHOLDER_EXPRs.
8863 2016-06-21  Michael Meissner  <meissner@linux.vnet.ibm.com>
8865         * stor-layout.c (layout_type): Move setting complex MODE to
8866         layout_type, instead of setting it ahead of time by the caller.
8867         * tree.c (build_complex_type): Likewise.
8869 2016-06-21  Martin Liska  <mliska@suse.cz>
8871         * predict.c (force_edge_cold): Replace imposisble with
8872         impossible.
8874 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
8876         * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
8877         * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
8879 2016-06-21  Ilya Verbin  <ilya.verbin@intel.com>
8881         * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
8883 2016-06-21  H.J. Lu  <hongjiu.lu@intel.com>
8884             Ilya Enkovich  <ilya.enkovich@intel.com>
8886         PR target/71549
8887         * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8888         New member function to convert V1TImode register to SUBREG
8889         TImode in debug insn.
8890         (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
8891         after changing register mode to V1TImode.
8893 2016-06-21  Virendra Pathak  <virendra.pathak@broadcom.com>
8895         * config/aarch64/aarch64-cores.def (vulcan): New core.
8896         * config/aarch64/aarch64-tune.md: Regenerate.
8897         * doc/invoke.texi: Document vulcan as an available option.
8899 2016-06-21  Eric Botcazou  <ebotcazou@adacore.com>
8901         * cse.c (canon_asm_operands): New function extracted from...
8902         (canonicalize_insn): ...here.  Call it to canonicalize an ASM_OPERANDS
8903         either standalone or member of a PARALLEL.
8905 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
8907         PR target/30417
8908         * config/avr/gen-avr-mmcu-specs.c (print_mcu):
8909         [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
8910         [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
8912 2016-06-21  Georg-Johann Lay  <avr@gjlay.de>
8914         PR target/71103
8915         * config/avr/avr.md (movqi): Only handle loading subreg:qi of
8916         constant addresses if can_create_pseudo_p.
8918 2016-06-21  Jakub Jelinek  <jakub@redhat.com>
8920         PR tree-optimization/71588
8921         * tree-ssa-strlen.c (valid_builtin_call): New function.
8922         (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
8923         it.
8925 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
8927         PR middle-end/71581
8928         * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
8929         see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
8930         for conversion of scalar user var to complex type and use the
8931         underlying SSA_NAME_VAR in that case.  If EXPR is still NULL,
8932         punt.
8934         PR rtl-optimization/71591
8935         * toplev.c (toplev::run_self_tests): If no_backend, complain and
8936         don't run any tests.
8938 2016-06-20  Hans-Peter Nilsson  <hp@axis.com>
8940         PR target/71571
8941         * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
8942         delay-slot "nop" for PIC with CRIS v32.  Also add missing leading
8943         space for PIC with non-v32 and the common non-PIC "jump".
8945 2016-06-20  Jakub Jelinek  <jakub@redhat.com>
8947         PR target/71559
8948         * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
8949         returned values and add UN*/LTGT/*ORDERED cases with values matching
8950         D operand modifier on vcmp for AVX.
8952 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
8954         * config/aarch64/aarch64.opt
8955         (mpc-relative-literal-loads): Rename internal option name.
8956         * config/aarch64/aarch64.c
8957         (aarch64_nopcrelative_literal_loads): Rename to
8958         aarch64_pcrelative_literal_loads.
8959         (aarch64_expand_mov_immediate): Likewise.
8960         (aarch64_secondary_reload): Likewise.
8961         (aarch64_can_use_per_function_literal_pools_p): Likewise.
8962         (aarch64_override_options_after_change_1): Rename and simplify logic.
8963         (aarch64_classify_symbol): Merge large model checks into switch,
8964         remove pc-relative load check.
8966 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
8968         * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
8969         costs relative to the cost of a register move.
8971 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
8973         * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
8974         (vcvt_n_f64_u64): Likewise.
8975         (vcvt_n_s64_f64): Likewise.
8976         (vcvt_n_u64_f64): Likewise.
8977         (vcvt_f64_s64): Likewise.
8978         (vrecpe_f64): Likewise.
8979         (vcvt_f64_u64): Likewise.
8980         (vrecps_f64): Likewise.
8982 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
8984         * config/aarch64/aarch64.md
8985         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
8986         iterators.
8987         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise.  Correct
8988         attributes.
8989         * config/aarch64/aarch64-builtins.c
8990         (aarch64_types_binop_uss_qualifiers): Delete.
8991         (TYPES_BINOP_USS): Likewise.
8992         (aarch64_types_binop_sus_qualifiers): Likewise.
8993         (TYPES_BINOP_SUS): Likewise.
8994         (aarch64_types_fcvt_from_unsigned_qualifiers): New.
8995         (TYPES_FCVTIMM_SUS): Likewise.
8996         * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
8997         rather than BINOP.
8998         (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
8999         (fcvtzs): Use SHIFTIMM rather than BINOP.
9000         (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
9002 2016-06-20  James Greenhalgh  <james.greenhalgh@arm.com>
9004         * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
9005         costs relative to the cost of a register move.
9007 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
9009         * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
9010         Allow scalar/single vector modes to be tieable.
9012 2016-06-20  Wilco Dijkstra  <wdijkstr@arm.com>
9014         * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
9016 2016-06-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9018         * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
9019         "alignement".
9020         * tree.h (TYPE_ALIGN): Likewise.
9022 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
9024         PR target/71103
9025         * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
9027 2016-06-20  Georg-Johann Lay  <avr@gjlay.de>
9029         * config/avr/avr.c (avr_print_operand): Fix "format not a string
9030         literal" build warnings.
9031         (avr_print_operand_address): Dito.
9033 2016-06-19  David Edelsohn  <dje.gcc@gmail.com>
9035         PR target/71375
9036         * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
9037         * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
9039 2016-06-18  John David Anglin  <danglin@gcc.gnu.org>
9041         * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
9043 2016-06-18  Eric Botcazou  <ebotcazou@adacore.com>
9045         PR bootstrap/71435
9046         * reload1.c (reload): Pass 0 to finish_spills when called because
9047         update_eliminables_and_spill returns true and remove did_spill.
9048         (finish_spills): Adjust comment and document GLOBAL parameter.
9050 2016-06-17  DJ Delorie  <dj@redhat.com>
9052         PR target/71338
9053         * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
9054         * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
9055         (umulqihi3_virt): Likewise.
9056         * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
9057         (umulqihi3_real): Likewise.
9059 2016-06-17  Martin Liska  <mliska@suse.cz>
9061         * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
9063 2016-06-17  Martin Liska  <mliska@suse.cz>
9065         * predict.def: PRED_LOOP_EXIT from 92 to 85.
9067 2016-06-17  James Greenhalgh  <james.greenhalgh@arm.com>
9069         * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
9070         __FAST_MATH__.
9071         (vaddq_f32): Likewise.
9072         (vmul_f32): Likewise.
9073         (vmulq_f32): Likewise.
9074         (vsub_f32): Likewise.
9075         (vsubq_f32): Likewise.
9077 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
9079         PR tree-optimization/71347
9080         * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
9081         cost for all uses in group.
9083 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
9085         * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
9086         insert gimple seq if it's not empty.
9088 2016-06-17  Bin Cheng  <bin.cheng@arm.com>
9090         * tree-vectorizer.h (struct dr_with_seg_len): Remove class
9091         member OFFSET.
9092         * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
9093         rather than OFFSET.
9094         (comp_dr_with_seg_len_pair): Ditto.
9095         (vect_prune_runtime_alias_test_list): Ditto.  Also Canonicalize
9096         struct dr_with_seg_len_pair against DR_OFFSET.
9097         * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
9098         DR_OFFSET directly.
9100 2016-06-17  Szabolcs Nagy  <szabolcs.nagy@arm.com>
9102         * config/aarch64/geniterators.sh: Handle parenthesised conditions.
9104 2016-06-16  John David Anglin  <danglin@gcc.gnu.org>
9106         * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
9107         (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
9108         (pa_output_millicode_call): Likewise.
9109         (pa_output_call): Likewise.
9110         (pa_output_indirect_call): Likewise.
9111         (pa_asm_output_mi_thunk): Likewise.
9113 2016-06-16  Bernhard Reutner-Fischer  <aldot@gcc.gnu.org>
9115         * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
9117 2016-06-16  Martin Liska  <mliska@suse.cz>
9119         * predict.c (combine_predictions_for_insn): When we find a first
9120         match predictor, we should consider just predictors with
9121         PRED_FLAG_FIRST_MATCH.  Print either first match (if any) or
9122         DS theory predictor.
9123         (combine_predictions_for_bb): Likewise.
9125 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
9127         * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
9128         with base of reference to struct.
9130 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
9132         * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
9134 2016-06-16  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
9136         PR target/71151
9137         * config/avr/avr.c (avr_asm_init_sections): Remove setup of
9138         progmem_swtable_section.
9139         (progmem_swtable_section): Remove.
9140         (avr_asm_function_rodata_section): Remove.
9141         (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
9142         * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
9144 2016-06-16  Jocelyn Mayer  <l_indien@magic.fr>
9146         * config/i386/driver-i386.c (host_detect_local_cpu): Set
9147         PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
9148         <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
9149         signature_CENTAUR_ebx.
9150         * config/i386/i386.c (ix86_option_override_internal): Add
9151         definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
9152         nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
9153         * doc/invoke.texi (x86 Options): Document new VIA -march entries.
9155 2016-06-16  Martin Liska  <mliska@suse.cz>
9157         * predict.def: Add fortran loop preheader predictor.
9158         * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
9159         fold IFN_BUILTIN_EXPECT with a known constant argument.
9161 2016-06-16  Martin Liska  <mliska@suse.cz>
9163         * predict.def: Add 'Fortran' to display text of all
9164         PRED_FORTRAN_* predictors.
9166 2016-06-16  Uros Bizjak  <ubizjak@gmail.com>
9168         PR target/71242
9169         * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
9170         [IA64_BUILTIN_NANSQ]: Ditto.
9171         (ia64_fold_builtin): New function.
9172         (TARGET_FOLD_BUILTIN): New define.
9173         (ia64_init_builtins) Declare const_string_type node.
9174         Add __builtin_nanq and __builtin_nansq builtin functions.
9175         (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
9177 2016-06-16  Nick Clifton  <nickc@redhat.com>
9179         * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
9180         MSP430_HWMULT_ prefix to enum values.
9181         (msp430_regions): Add MSP430_REGION_ prefix to enum values.
9182         * config/msp430/msp430.c: Update use of enum values.
9183         * config/msp430/msp430.md: Likewise.
9184         * config/msp430/msp430.opt: Likewise.
9186 2016-06-16  Jan Hubicka  <hubicka@ucw.cz>
9188         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
9189         of comparsions in the last iteration.
9191 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
9192             Joern Rennecke  <joern.rennecke@embecosm.com>
9194         * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
9195         addresses.
9196         (arc_needs_pcl_p): Add GOTOFFPC.
9197         (arc_legitimate_pic_addr_p): Likewise.
9198         (arc_output_pic_addr_const): Likewise.
9199         (arc_legitimize_pic_address): Generate a pc-relative address using
9200         GOTOFFPC.
9201         (arc_output_libcall): Use @pcl syntax.
9202         (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
9203         * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
9204         (*movsi_insn): Use @pcl syntax.
9205         (doloop_begin_i): Likewise.
9207 2016-06-16  Martin Liska  <mliska@suse.cz>
9209         * predict.def: Define a new predictor.
9211 2016-06-16  Claudiu Zissulescu  <claziss@synopsys.com>
9213         * config/arc/arc.opt (mtp-regno): Update text.
9215 2016-06-16  Renlin Li  <renlin.li@arm.com>
9217         * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
9219 2016-06-16  Jakub Jelinek  <jakub@redhat.com>
9221         PR target/71554
9222         * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
9223         (setcc + and peephole2): Likewise.
9225         PR rtl-optimization/71532
9226         * cse.c (cse_insn): For const/pure calls, invalidate argument passing
9227         memory slots.
9229 2016-06-15  Michael Meissner  <meissner@linux.vnet.ibm.com>
9231         * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
9232         DImode constants with XXSPLTIB in vector registers.
9233         (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
9234         vsx_extract_<mode>_internal{1,2} into a single insn that handles
9235         direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
9236         extraction of the element at the top of the register as a scalar
9237         value.
9238         (vsx_extract_<mode>_internal1): Likewise.
9239         (vsx_extract_<mode>_internal2): Likewise.
9240         * config/rs6000/constraints.md (wi constraint): Remove a comment
9241         about DImode not being allowed in Altivec registers.
9242         (wB constraint): New constraint for constants that can be
9243         generated in Altivec registers with VSPLTISW/VUPKHSW.
9244         * config/rs6000/predicates.md (xxspltib_constant_split): Update
9245         comments.
9246         (xxspltib_constant_nosplit): Likewise.
9247         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
9248         support for -mupper-regs-di to enable DImode to go into Altivec
9249         registers.
9250         (POWERPC_MASKS): Likewise.
9251         (power7 cpu): Likewise.
9252         * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
9253         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
9254         for DImode being allowed in Altivec registers.  Update wi/wj
9255         constraints.  Set scalar_in_vmx_p flag.
9256         (rs6000_option_override_internal): Add checks for -mupper-regs-di.
9257         (xxspltib_constant_p): Allow CONST_INT's with VOIDmode.  Don't
9258         return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
9259         (rs6000_opt_masks): Add -mupper-regs-di.
9260         * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
9261         direct move to use wi and not wj.
9262         (lfiwzx): Likewise.
9263         (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
9264         alternative.
9265         (floatunssi<mode>2_lfiwzx_mem): Likewise.
9266         (fix_trunc<mode>di2_fctidz): Change second alternative to allow
9267         any VSX register, instead of just Altivec registers, to allow
9268         either operand to be an Altivec register or both.
9269         (fixuns_trunc<mode>di2_fctiduz): Likewise.
9270         (movdi_internal32): Add support for -mupper-regs-di.  Add support
9271         to load constants via XXSPLTIB or VSPLTISW.  Add spacing to allow
9272         the alternatives and attributes to be lined up to be easier to
9273         read.
9274         (movdi_internal64): Likewise.
9275         (64-bit DImode splitters): Change predicates to only split loading
9276         up GPR registers.  Add splits for using XXSPLTIB or VSPLTISW to
9277         load constants in ISA 3.0 or ISA 2.07 respectively.
9278         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9279         -mupper-regs-di.  Update -mupper-regs-df and -mupper-regs-sf to
9280         mention -mcpu=power9 sets these options.
9281         * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
9282         wB constraint.
9284 2016-06-15  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
9286         PR target/67353
9287         * config/avr/avr.c (avr_set_current_function): Warn misspelled
9288         interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
9289         * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
9290         by default to warn misspelled interrupt/ signal handler.
9291         * doc/invoke.texi (AVR Options): Document it. Update description
9292         for -nodevicelib option.
9294 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9296         * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
9297         up parentheses.  Use GET_MODE_UNIT_BITSIZE.
9298         (aarch64_<sur>shll2_n<mode>): Likewise.
9300 2016-06-15  Ilya Enkovich  <ilya.enkovich@intel.com>
9302         PR middle-end/71529
9303         * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
9304         DECL_CONTEXT for copied arguments.
9306 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
9308         PR tree-optimization/71483
9309         * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
9310         for slp
9312 2016-06-15  Martin Liska  <mliska@suse.cz>
9314         * predict.c (tree_predict_by_opcode): Call predict_edge_def
9315         instead of predict_edge w/o a probability.
9317 2016-06-15  Alan Hayward  <alan.hayward@arm.com>
9319         PR tree-optimization/71439
9320         * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
9321         live PHIs.
9323 2016-06-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9325         * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
9326         register subregs in SET_SRC.
9328 2016-06-15  Richard Biener  <rguenther@suse.de>
9330         * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
9331         store restrictions.
9333 2016-06-15  Richard Biener  <rguenther@suse.de>
9335         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
9336         not consider dependences between accesses that belong to the
9337         same group.
9338         (vect_analyze_data_ref_dependences): Do not analyze read-read
9339         or self-dependences.
9341 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
9343         * spellcheck-tree.c: Include spellcheck-tree.h rather than
9344         spellcheck.h.
9345         (find_closest_identifier): Reimplement in terms of
9346         best_match<tree,tree>.
9347         * spellcheck-tree.h: New file.
9348         * spellcheck.c (struct edit_distance_traits<const char *>): New
9349         struct.
9350         (find_closest_string): Reimplement in terms of
9351         best_match<const char *, const char *>.
9352         * spellcheck.h (levenshtein_distance): Move prototype of tree-based
9353         overload to spellcheck-tree.h.
9354         (find_closest_identifier): Likewise.
9355         (struct edit_distance_traits<T>): New template.
9356         (class best_match): New class.
9358 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
9360         * selftest-run-tests.c (selftest::run_tests): Call
9361         selftest::spellcheck_tree_c_tests.
9362         * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
9363         * spellcheck-tree.c: Include selftest.h and stringpool.h.
9364         (selftest::test_find_closest_identifier): New function.
9365         (selftest::spellcheck_tree_c_tests): New function.
9366         * spellcheck.c (selftest::test_find_closest_string): Verify that
9367         the order of the vec does not affect the results for this case.
9368         (selftest::test_data): New array.
9369         (selftest::test_metric_conditions): New function.
9370         (selftest::spellcheck_c_tests): Add a test of case-comparison.
9371         Call selftest::test_metric_conditions.
9373 2016-06-14  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
9375         * config/rs6000/rs6000-builtin.def (commentary): Typo.
9376         (BU_P9_MISC_1): Likewise.
9377         (BU_P9_64BIT_MISC_0): Likewise.
9378         (BU_P9_MISC_0): Likewise.
9380 2016-06-14  David Malcolm  <dmalcolm@redhat.com>
9382         * gcc-rich-location.c
9383         (gcc_rich_location::add_fixit_misspelled_id): New method.
9384         * gcc-rich-location.h
9385         (gcc_rich_location::add_fixit_misspelled_id): Add decl.
9387 2016-06-14  Andreas Tobler  <andreast@gcc.gnu.org>
9389         * config/arm/freebsd.h: Only enable unaligned access for armv6 on
9390         FreeBSD 11 and above.
9392 2016-06-14  Uros Bizjak  <ubizjak@gmail.com>
9394         * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
9396 2016-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9398         * expmed.h: Close parenthesis in "at your option" in copyright
9399         boilerplate.
9400         * lower-subreg.h: Likewise.
9402 2016-06-14  Richard Biener  <rguenther@suse.de>
9404         PR middle-end/71526
9405         * genmatch.c (expr::gen_transform): Use in_type for comparisons
9406         if available.
9408 2015-06-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9410         * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
9411         New function.
9412         (aarch64_rtx_costs): Use it.  Rewrite CONST_INT_P (op1) case to handle
9413         mask+shift version.
9414         * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
9415         New prototype.
9416         * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
9417         matching condition with aarch64_mask_and_shift_for_ubfiz_p.
9419 2016-06-14  Richard Biener  <rguenther@suse.de>
9421         PR tree-optimization/71522
9422         * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
9423         copying into float copying.
9425 2016-06-14  Jakub Jelinek  <jakub@redhat.com>
9427         PR tree-optimization/71520
9428         * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
9429         (replace_block_by): Move user labels from bb1 to bb2.
9431 2016-06-14  Richard Biener  <rguenther@suse.de>
9433         PR middle-end/71310
9434         PR bootstrap/71510
9435         * expr.h (get_bit_range): Declare.
9436         * expr.c (get_bit_range): Export.
9437         * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
9438         word_mode again to constrain the bitfield access.
9440 2016-06-14  Richard Biener  <rguenther@suse.de>
9442         PR tree-optimization/71521
9443         * tree-vrp.c (extract_range_from_binary_expr_1): Guard
9444         division int_const_binop against zero divisor.
9446 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
9448         * config/i386/i386.md (signbittf2): New expander.
9449         * config/i386/sse.md (ptesttf2): New insn pattern.
9451 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
9453         PR bootstrap/71481
9454         * input.c (selftest::test_reading_source_line): Avoid reading from
9455         __FILE__ by creating a tempfile with known content and reading
9456         from that instead.
9458 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
9460         * pretty-print.c (assert_pp_format_colored): Skip the test if
9461         GCC_COLORS is set.
9462         (test_pp_format): Remove comment about GCC_COLORS.
9464 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
9466         * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
9467         * pretty-print.c (assert_pp_format_va): Add location param and use
9468         it with ASSERT_STREQ_AT.
9469         (assert_pp_format): Add location param and pass it to
9470         assert_pp_format_va.
9471         (assert_pp_format_colored): Likewise.
9472         (ASSERT_PP_FORMAT_1): New.
9473         (ASSERT_PP_FORMAT_2): New.
9474         (ASSERT_PP_FORMAT_3): New.
9475         (test_pp_format): Provide SELFTEST_LOCATION throughout, either
9476         explicitly, or implicitly via the above macros.
9477         * selftest.c (selftest::pass): Use a selftest::location rather
9478         than file and line.
9479         (selftest::fail): Likewise.  Print the function name.
9480         (selftest::fail_formatted): Likewise.
9481         (selftest::assert_streq): Use a selftest::location rather than
9482         file and line.
9483         * selftest.h (selftest::location): New struct.
9484         (SELFTEST_LOCATION): New macro.
9485         (selftest::pass): Accept a const location & rather than file
9486         and line.
9487         (selftest::fail): Likewise.
9488         (selftest::fail_formatted): Likewise.
9489         (selftest::assert_streq): Likewise.
9490         (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
9491         (ASSERT_FALSE): Likewise.
9492         (ASSERT_EQ): Likewise.
9493         (ASSERT_NE): Likewise.
9494         (ASSERT_STREQ): Likewise.
9495         (ASSERT_PRED1): Likewise.
9496         (ASSERT_STREQ_AT): New macro.
9498 2016-06-13  David Malcolm  <dmalcolm@redhat.com>
9500         * selftest.c (selftest::fail_formatted): New function.
9501         (selftest::assert_streq): New function.
9502         * selftest.h (selftests::fail_formatted): New decl.
9503         (selftest::assert_streq): New decl.
9504         (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
9506 2016-06-13  Jeff Law  <law@redhat.com>
9508         PR tree-optimization/71403
9509         * tree-ssa-threadbackward.c
9510         (convert_and_register_jump_thread_path): No longer accept reference
9511         to path.  Do not pop items off the path anymore.
9512         (fsm_find_control_statement_thread_paths): Do not allow threading
9513         to a deeper loop nest.  Pop the last item off the path here rather
9514         than in convert_and_register_jump_thread_path.
9516 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
9517             Wilco Dijkstra  <Wilco.Dijkstra@arm.com>
9519         [AArch64] Emit division using the Newton series
9521         * config/aarch64/aarch64-protos.h
9522         (cpu_approx_modes): Add new member "division".
9523         (aarch64_emit_approx_div): Declare new function.
9524         * config/aarch64/aarch64.c
9525         (generic_approx_modes): New member "division".
9526         (exynosm1_approx_modes): Likewise.
9527         (xgene1_approx_modes): Likewise.
9528         (aarch64_emit_approx_div): Define new function.
9529         * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
9530         * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
9531         * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
9532         * doc/invoke.texi (-mlow-precision-div): Describe new option.
9534 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
9535             Wilco Dijkstra  <wilco.dijkstra@arm.com>
9537         [AArch64] Emit square root using the Newton series
9539         * config/aarch64/aarch64-protos.h
9540         (aarch64_emit_approx_rsqrt): Replace with new function
9541         "aarch64_emit_approx_sqrt".
9542         (cpu_approx_modes): New member "sqrt".
9543         * config/aarch64/aarch64.c
9544         (generic_approx_modes): New member "sqrt".
9545         (exynosm1_approx_modes): Likewise.
9546         (xgene1_approx_modes): Likewise.
9547         (aarch64_emit_approx_rsqrt): Replace with new function
9548         "aarch64_emit_approx_sqrt".
9549         (aarch64_override_options_after_change_1): Handle new option.
9550         * config/aarch64/aarch64-simd.md
9551         (rsqrt<mode>2): Use new function instead.
9552         (sqrt<mode>2): New expansion and insn definitions.
9553         * config/aarch64/aarch64.md: Likewise.
9554         * config/aarch64/aarch64.opt
9555         (mlow-precision-sqrt): Add new option description.
9556         * doc/invoke.texi (mlow-precision-sqrt): Likewise.
9558 2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
9560         [AArch64] Add more choices for the reciprocal square root approximation
9562         Allow a target to prefer such operation depending on the operation mode.
9564         * config/aarch64/aarch64-protos.h
9565         (AARCH64_APPROX_MODE): New macro.
9566         (AARCH64_APPROX_{NONE,ALL}): Likewise.
9567         (cpu_approx_modes): New structure.
9568         (tune_params): New member "approx_modes".
9569         * config/aarch64/aarch64-tuning-flags.def
9570         (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
9571         * config/aarch64/aarch64.c
9572         (generic_approx_modes): New core "cpu_approx_modes" structure.
9573         (exynosm1_approx_modes): Likewise.
9574         (xgene1_approx_modes): Likewise.
9575         (generic_tunings): New member "approx_modes".
9576         (cortexa35_tunings): Likewise.
9577         (cortexa53_tunings): Likewise.
9578         (cortexa57_tunings): Likewise.
9579         (cortexa72_tunings): Likewise.
9580         (exynosm1_tunings): Likewise.
9581         (thunderx_tunings): Likewise.
9582         (xgene1_tunings): Likewise.
9583         (use_rsqrt_p): New argument for the mode and use new member from
9584         "tune_params".
9585         (aarch64_builtin_reciprocal): Devise mode from builtin.
9586         (aarch64_optab_supported_p): New argument for the mode.
9587         * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
9589 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9591         * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
9592         RS6000_BTM_MODULO flag into the set of flags that are considered
9593         to be part of the common configuration.
9595 2016-06-13  Kelvin Nilsen  <kelvin@gcc.gnu.org>
9597         * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
9598         difference unsigned.
9599         (vec_absdb): New macro for vector absolute difference unsigned
9600         byte.
9601         (vec_absdh): New macro for vector absolute difference unsigned
9602         half-word.
9603         (vec_absdw): New macro for vector absolute difference unsigned word.
9604         * config/rs6000/altivec.md (UNSPEC_VADU): New value.
9605         (vadu<mode>3): New insn.
9606         (*p9_vadu<mode>3): New insn.
9607         * config/rs6000/rs6000-builtin.def (vadub): New built-in
9608         definition.
9609         (vaduh): New built-in definition.
9610         (vaduw): New built-in definition.
9611         (vadu): New overloaded built-in definition.
9612         (vadub): New overloaded built-in definition.
9613         (vaduh): New overloaded built-in definition.
9614         (vaduw): New overloaded built-in definition.
9615         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9616         overloaded vector absolute difference unsigned functions.
9617         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9618         the ISA 3.0 vector absolute difference unsigned built-in functions.
9620 2016-06-13  Eric Botcazou  <ebotcazou@adacore.com>
9622         * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
9623         update shared_lookup_references only once after changing operands.
9625 2016-06-13  Thomas Schwinge  <thomas@codesourcery.com>
9627         PR middle-end/71373
9628         * tree-nested.c (convert_nonlocal_omp_clauses)
9629         (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
9631         * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
9632         * tree.def (CASE_LABEL_EXPR): Likewise.
9634 2016-06-13  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9636         PR bootstrap/71481
9637         * input.c (test_builtins): Fix an assertion.
9639 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
9641         * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
9642         (paritysi2): Ditto.
9643         (isinfxf2): Ditto.
9644         (isinf<mode>2): Ditto.
9646 2016-06-13  Uros Bizjak  <ubizjak@gmail.com>
9648         * ggc-tests.c (test_finalization): Only test need_finalization_p
9649         for GCC_VERSION >= 4003.
9651 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9653         * config/s390/vecintrin.h: Fix file description in comment.
9655 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9657         * config/s390/s390-builtin-types.def: Change builtin type naming
9658         scheme to match builtin-types.def.
9660 2016-06-13  Marc Glisse  <marc.glisse@inria.fr>
9662         * fold-const.c (optimize_minmax_comparison): Remove.
9663         (fold_comparison): Remove call to the above.
9664         * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
9665         New transformations.
9667 2016-06-13  Alan Hayward  <alan.hayward@arm.com>
9669         PR tree-optimization/71416
9670         * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
9671         multiple entries
9673 2016-06-13  Martin Liska  <mliska@suse.cz>
9675         * predict.c (enum predictor_reason): Prefix enum with REASON_.
9676         (combine_predictions_for_insn): Likewise.
9677         (prune_predictions_for_bb): Likewise.
9678         (combine_predictions_for_bb): Likewise.
9680 2016-06-13  Richard Biener  <rguenther@suse.de>
9682         PR tree-optimization/71505
9683         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
9684         assert match comment.
9686 2016-06-13  Marek Polacek  <polacek@redhat.com>
9688         PR middle-end/71476
9689         * gimplify.c (maybe_warn_switch_unreachable): Factored out of
9690         gimplify_switch_expr.
9691         (warn_switch_unreachable_r): New function.
9693 2016-06-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
9695         PR target/71379
9696         * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
9697         one.
9699 2016-06-13  Richard Biener  <rguenther@suse.de>
9701         PR middle-end/64516
9702         * fold-const.c (fold_unary_loc): Preserve alignment when
9703         folding a VIEW_CONVERT_EXPR into a MEM_REF.
9705 2016-06-13  Martin Liska  <mliska@suse.cz>
9707         PR sanitizer/71458
9708         * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
9709         w/ -fsanitize=bounds.
9711 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
9713         * config/i386/i386.c (ix86_init_builtins): Calculate
9714         FLOAT128_FTYPE_CONST_STRING function type only once.
9715         * doc/extend.texi (x86 Built-in Functions): Update text, __float128
9716         built-in functions are available for x86-32 and x86-64 targets.
9718 2016-06-12  Uros Bizjak  <ubizjak@gmail.com>
9720         PR target/71241
9721         * config/i386/i386.i386-builtin-types.def (CONST_STRING):
9722         New primitive type.
9723         (FLOAT128_FTYPE_CONST_STRING): New function type.
9724         * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
9725         [IX86_BUILTIN_NANSQ]: Ditto.
9726         (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
9727         (ix86_init_builtin_types): Declare const_string_type_node.
9728         (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
9729         builtin functions.
9730         (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
9731         * doc/extend.texi (x86 Built-in Functions): Document
9732         __builtin_nanq and __builtin_nansq.
9734 2016-06-11  Jiong Wang  <jiong.wang@arm.com>
9736         PR target/71061
9737         * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
9738         * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
9739         length for pop patterns.
9740         (arm_attr_length_push_multi): Update comments.
9741         * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
9742         attribute.
9743         (*pop_multiple_with_writeback_and_return): Likewise.
9744         (*pop_multiple_with_return): Likewise.
9746 2016-06-11  Segher Boessenkool  <segher@kernel.crashing.org>
9748         PR middle-end/71310
9749         * fold-const.c (optimize_bit_field_compare): Don't try to use
9750         word_mode unconditionally for reading the bit field, look at
9751         DECL_BIT_FIELD_REPRESENTATIVE instead.
9753 2016-06-11  Kugan Vivekanandarajah  <kuganv@linaro.org>
9755         PR middle-end/71478
9756         * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
9757         vector integer type.
9759 2016-06-10  Jakub Jelinek  <jakub@redhat.com>
9761         PR middle-end/71494
9762         * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
9763         without LABEL_DECL, set *handled_ops_p to false instead of true.
9765 2016-06-10  Martin Sebor  <msebor@redhat.com>
9767         PR c/71392
9768         * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
9769         (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
9770         * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
9771         them.
9772         (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
9773         (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
9774         (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
9775         (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
9776         (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
9777         (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
9778         (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
9779         (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
9781 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9783         * config/arm/arm.h (pool_vector_label,
9784         return_used_this_function): Remove.
9786 2016-06-10  Jeff Law  <law@redhat.com>
9788         PR tree-optimization/71335
9789         * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
9790         zero length paths here.
9791         (convert_and_register_jump_thread_path): Remove hacks related to
9792         duplicated blocks in the jump thread path.
9793         (fsm_find_control_statement_thread_paths): Avoid putting the same
9794         block on the thread path twice, but ensure the thread path is
9795         unchanged from the caller's point of view.
9797 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
9799         * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
9800         * predict.def (PRED_LOOP_BRANCH): Remove.
9802 2016-06-10  David Malcolm  <dmalcolm@redhat.com>
9804         * Makefile.in (OBJS): Add ggc-tests.o.
9805         (GTFILES): Add ggc-tests.c.
9806         * ggc-tests.c: New file.
9807         * selftest-run-tests.c (selftest::run_tests): Call
9808         selftest::ggc_tests_c_tests.
9809         * selftest.h (selftest::ggc_tests_c_tests): New prototype.
9811 2016-06-10  Alexander Monakov  <amonakov@ispras.ru>
9813         * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
9815 2016-06-10  Maxim Ostapenko  <m.ostapenko@samsung.com>
9817         PR sanitizer/71480
9818         * varasm.c (place_block_symbol): Adjust alignment for asan protected
9819         STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
9821 2016-06-10  Jan Hubicka  <hubicka@ucw.cz>
9823         * profile.c: Include cfgloop.h.
9824         (branch_prob): Compute estimated number of iterations.
9825         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
9826         recompute estimate number of iterations from profile.
9828 2016-06-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9830         PR inline-asm/68843
9831         * reg-stack.c (check_asm_stack_operands): Explicit input arguments
9832         must be grouped on top of stack.  Don't force early clobber
9833         on ordinary reg outputs.
9835 2016-06-10  Richard Biener  <rguenther@suse.de>
9837         * targhooks.c (default_builtin_vectorization_cost): Adjust
9838         vec_construct cost.
9840 2016-06-10  Richard Biener  <rguenther@suse.de>
9842         * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
9843         to fold the RHS to a constant if possible.
9845 2016-06-10  Thomas Schwinge  <thomas@codesourcery.com>
9847         PR middle-end/71373
9848         * tree-nested.c (convert_nonlocal_omp_clauses)
9849         (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
9850         OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
9851         OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
9853         * gimplify.c (gimplify_adjust_omp_clauses): Discard
9854         OMP_CLAUSE_TILE.
9855         * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
9857         * omp-low.c (scan_sharing_clauses): Don't expect
9858         OMP_CLAUSE__CACHE_.
9860 2016-06-10  Alan Hayward  <alan.hayward@arm.com>
9862         PR tree-optimization/71407
9863         PR tree-optimization/71416
9864         * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
9865         BIT_FIELD_REF type.
9867 2016-06-10  Richard Biener  <rguenther@suse.de>
9869         PR middle-end/71477
9870         * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
9872 2016-06-09  Eric Botcazou  <ebotcazou@adacore.com>
9874         * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
9876 2016-06-09  Vladimir Makarov  <vmakarov@redhat.com>
9877             Jiong Wang  <jiong.wang@arm.com>
9879         PR rtl-optimization/70751
9880         * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
9881         spilled into memory.
9883 2016-06-09  Jonathan Yong  <10walls@gmail.com>
9885         Revert:
9886         2015-09-21  Jonathan Yong  <10walls@gmail.com>
9888         * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
9889         sysroot/usr/lib/32api for additional win32 libraries,
9890         fixes failing Cygwin bootstrapping.
9892 2016-06-09  Marcin Baczyński  <marbacz@gmail.com>
9894         * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
9895         Delete.
9897 2016-06-09  David Malcolm  <dmalcolm@redhat.com>
9899         PR bootstrap/71471
9900         * pretty-print.c (pp_indent): Specify that %p is printed in a
9901         host-dependent manner.
9902         (test_pp_format): Remove the test for %p.
9904 2016-06-09  Maciej W. Rozycki  <macro@imgtec.com>
9906         * config/mips/mips.c (mips_output_jump): Fix formatting.
9908 2016-06-09  Richard Biener  <rguenther@suse.de>
9910         PR tree-optimization/71462
9911         * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
9912         removed blocks.
9914 2016-06-09  Martin Liska  <mliska@suse.cz>
9916         * predict.c (dump_prediction): Add new argument.
9917         (enum predictor_reason): New enum.
9918         (struct predictor_hash): New struct.
9919         (predictor_hash::hash): New function.
9920         (predictor_hash::equal): Likewise.
9921         (not_removed_prediction_p): New function.
9922         (prune_predictions_for_bb): Likewise.
9923         (combine_predictions_for_bb): Prune predictions.
9925 2016-06-09  Martin Liska  <mliska@suse.cz>
9927         * predict.c (filter_predictions): New function.
9928         (remove_predictions_associated_with_edge): Use the filter
9929         function.
9930         (equal_edge_p): New function.
9932 2016-06-09  Stefan Bruens  <stefan.bruens@rwth-aachen.de>
9934         * doc/invoke.texi (ARM Options): Use lexicographical ordering.
9935         Correct usage of @samp vs @option, add @samp where appropriate.
9936         Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
9937         Add armv6s-m and document it, as it is no official ARM name.
9939 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9941         * ifcvt.c (struct noce_if_info): Add transform_name field.
9942         (noce_try_move): Set if_info->transform_name to the function name.
9943         (noce_try_ifelse_collapse): Likewise.
9944         (noce_try_store_flag): Likewise.
9945         (noce_try_inverse_constants): Likewise.
9946         (noce_try_store_flag_constants): Likewise.
9947         (noce_try_addcc): Likewise.
9948         (noce_try_store_flag_mask): Likewise.
9949         (noce_try_cmove): Likewise.
9950         (noce_try_cmove_arith): Likewise.
9951         (noce_try_minmax): Likewise.
9952         (noce_try_abs): Likewise.
9953         (noce_try_sign_mask): Likewise.
9954         (noce_try_bitop): Likewise.
9955         (noce_convert_multiple_sets): Likewise.
9956         (noce_process_if_block): Print if_info->transform_name to
9957         dump_file if transformation succeeded.
9959 2016-06-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9961         * config/arm/cortex-a57.md (cortex_a57_alu):
9962         Handle csel type.
9964 2016-06-08  Martin Sebor  <msebor@redhat.com>
9965             Jakub Jelinek  <jakub@redhat.com>
9967         PR c++/70507
9968         PR c/68120
9969         * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
9970         BUILT_IN_MUL_OVERFLOW_P): New builtins.
9971         * builtins.c: Include gimple-fold.h.
9972         (fold_builtin_arith_overflow): Handle
9973         BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
9974         (fold_builtin_3): Likewise.
9975         * doc/extend.texi (Integer Overflow Builtins): Document
9976         __builtin_{add,sub,mul}_overflow_p.
9978 2016-06-08  Jose E. Marchesi  <jose.marchesi@oracle.com>
9980         * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
9981         SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
9983 2016-06-08  Alan Lawrence  <alan.lawrence@arm.com>
9985         * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
9986         Rewrite, looking one level down for records and arrays.
9988 2016-06-08  David Malcolm  <dmalcolm@redhat.com>
9990         * pretty-print.c: Include "selftest.h".
9991         (pp_format): Fix comment.
9992         (identifier_to_locale): Likewise.
9993         (selftest::test_basic_printing): New function.
9994         (selftest::assert_pp_format): New function.
9995         (selftest::test_pp_format): New function.
9996         (selftest::pretty_print_c_tests): New function.
9997         * selftest-run-tests.c (selftest::run_tests): Call
9998         selftest::pretty_print_c_tests.
9999         * selftest.h (pretty_print_c_tests): New declaration.
10001 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
10003         * invoke.texi (max-loop-headers-insns): Document.
10004         * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
10005         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
10006         (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
10008 2016-06-08  Richard Biener  <rguenther@suse.de>
10010         * tree-vect-stmts.c (vectorizable_load): Remove restrictions
10011         on strided SLP loads and fall back to scalar loads in case
10012         we can't chunk them.
10014 2016-06-08  Richard Biener  <rguenther@suse.de>
10016         PR tree-optimization/71452
10017         * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
10018         type used for the SSA rewrite has enough precision to cover
10019         the dynamic type of the location.
10021 2016-06-08  Jakub Jelinek  <jakub@redhat.com>
10022             Richard Biener  <rguenther@suse.de>
10024         PR c++/71448
10025         * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
10026         the same as DECL_P (base0) for indirect_base0.  Use equality_code
10027         in one further place.
10029 2016-06-08  Richard Sandiford  <richard.sandiford@arm.com>
10031         * expmed.c (store_bit_field_1): Do not restrict a multiword op0
10032         to one word if the field is known to overlap other words.
10033         (extract_bit_field_1): Likewise.
10034         (store_split_bit_field): Remove compensating code.
10035         (extract_split_bit_field): Likewise.
10037 2016-06-08  Bernd Schmidt  <bschmidt@redhat.com>
10039         PR debug/71432
10040         PR ada/71413
10041         * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
10043 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
10045         * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
10046         VDQF.
10047         * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
10048         (arch64_addpv4sf): Delete.
10049         (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
10050         "gen_aarch64_addpv4sf".
10051         * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly.  Use
10052         builtin.
10053         (vpadds_f32): Likewise.
10054         (vpaddq_f32): Likewise.
10055         (vpaddq_f64): Likewise.
10057 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
10059         * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
10060         VALLF.
10061         * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
10062         to VALLF.  Rename to "fabd<mode>3".
10063         "*fabd_scalar<mode>3): Delete.
10064         * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
10065         Use builtin.
10066         (vabdd_f64): Likewise.
10067         (vabd_f32): Likewise.
10068         (vabd_f64): Likewise.
10069         (vabdq_f32): Likewise.
10070         (vabdq_f64): Likewise.
10072 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
10074         * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
10075         VALLF.
10076         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
10077         "aarch64_rsqrts<mode>".
10078         * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
10079         * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly.  Use
10080         builtin.
10081         (vrsqrtsd_f64): Likewise.
10082         (vrsqrts_f32): Likewise.
10083         (vrsqrts_f64): Likewise.
10084         (vrsqrtsq_f32): Likewise.
10085         (vrsqrtsq_f64): Likewise.
10087 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
10089         * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
10090         VALLF.
10091         * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
10092         "aarch64_rsqrte<mode>".
10093         * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
10094         * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly.  Use
10095         builtin.
10096         (vrsqrted_f64): Likewise.
10097         (vrsqrte_f32): Likewise.
10098         (vrsqrte_f64): Likewise.
10099         (vrsqrteq_f32): Likewise.
10100         (vrsqrteq_f64): Likewise.
10102 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
10104         * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
10105         (ucvtf): Likewise.
10106         (fcvtzs): Likewise.
10107         (fcvtzu): Likewise.
10108         * config/aarch64/aarch64-simd.md
10109         (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
10110         (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
10111         * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
10112         Use builtin.
10113         (vcvt_n_f32_u32): Likewise.
10114         (vcvt_n_s32_f32): Likewise.
10115         (vcvt_n_u32_f32): Likewise.
10116         (vcvtq_n_f32_s32): Likewise.
10117         (vcvtq_n_f32_u32): Likewise.
10118         (vcvtq_n_f64_s64): Likewise.
10119         (vcvtq_n_f64_u64): Likewise.
10120         (vcvtq_n_s32_f32): Likewise.
10121         (vcvtq_n_s64_f64): Likewise.
10122         (vcvtq_n_u32_f32): Likewise.
10123         (vcvtq_n_u64_f64): Likewise.
10124         * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
10125         (VSDQ_SDI): Likewise.
10126         (fcvt_target): Support V4DI, V4SI and V2SI.
10127         (FCVT_TARGET): Likewise.
10129 2016-06-08  Jiong Wang  <jiong.wang@arm.com>
10131         * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
10132         (TYPES_BINOP_SUS): Likewise.
10133         (aarch64_simd_builtin_data): Update include file name.
10134         (aarch64_builtins): Likewise.
10135         * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
10136         for conversion between scalar float-point and fixed-point.
10137         (ucvtf): Likewise.
10138         (fcvtzs): Likewise.
10139         (fcvtzu): Likewise.
10140         * config/aarch64/aarch64.md
10141         (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
10142         pattern for conversion between scalar float to fixed-pointer.
10143         (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
10144         (UNSPEC_FCVTZS): New UNSPEC enumeration.
10145         (UNSPEC_FCVTZU): Likewise.
10146         (UNSPEC_SCVTF): Likewise.
10147         (UNSPEC_UCVTF): Likewise.
10148         * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
10149         Use builtin.
10150         (vcvtd_n_f64_u64): Likewise.
10151         (vcvtd_n_s64_f64): Likewise.
10152         (vcvtd_n_u64_f64): Likewise.
10153         (vcvtd_n_f32_s32): Likewise.
10154         (vcvts_n_f32_u32): Likewise.
10155         (vcvtd_n_s32_f32): Likewise.
10156         (vcvts_n_u32_f32): Likewise.
10157         * config/aarch64/iterators.md (fcvt_target): Support integer to float
10158         mapping.
10159         (FCVT_TARGET): Likewise.
10160         (FCVT_FIXED2F): New iterator.
10161         (FCVT_F2FIXED): Likewise.
10162         (fcvt_fixed_insn): New define_int_attr.
10164 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
10166         * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
10167         some statements was removed.
10169 2016-06-08  Alan Hayward  <alan.hayward@arm.com>
10171         * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
10172         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
10173         (vect_can_advance_ivs_p): likewise.
10174         (vect_update_ivs_after_vectorizer): likewise.
10175         * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
10176         (vect_analyze_scalar_cycles_1): likewise.
10177         (vect_analyze_loop_operations): likewise.
10178         (report_vect_op): likewise.
10179         (vect_is_slp_reduction): likewise.
10180         (vect_is_simple_reduction): likewise.
10181         (get_initial_def_for_induction): likewise.
10182         (vect_transform_loop): likewise.
10183         * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
10184         (vect_recog_sad_pattern): likewise.
10185         (vect_recog_widen_sum_pattern): likewise.
10186         (vect_recog_widening_pattern): likewise.
10187         (vect_recog_divmod_pattern): likewise.
10188         * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
10189         (vect_analyze_slp_instance): likewise.
10190         (vect_transform_slp_perm_load): likewise.
10191         (vect_schedule_slp_instance): likewise.
10193 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
10195         * predict.c (predict_iv_comparison): Mention that heuristics is broken.
10196         (return_prediction): PRED_CONST_RETURN predict return as not taken.
10197         * predict.def (PRED_CONTINUE): Change hitrate 50->67
10198         (PRED_LOOP_BRANCH): Document predictor as broken.
10199         (PRED_LOOP_EXIT): Change hitrate 91->92.
10200         (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
10201         (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
10202         (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
10203         (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
10204         (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
10205         (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
10206         (PRED_CALL): Chane hitrate 71->67.
10207         (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
10208         (PRED_GOTO): Document as unused right now.
10209         (PRED_CONST_RETURN): Change hitrate 67->69
10210         (PRED_NEGATIVE_RETURN): Change hitrate 96->98
10211         (PRED_NULL_RETURN): Change hitrate 91->90.
10212         (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
10213         (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
10214         (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
10216 2016-06-07  Bill Seurer  <seurer@linux.vnet.ibm.com>
10218         * config/rs6000/altivec.h: Add __builtin_vec_mul.
10219         * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
10220         special case Altivec builtin.
10221         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10222         VSX_BUILTIN_VEC_MUL (replaced with special case code).
10223         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
10224         code for ALTIVEC_BUILTIN_VEC_MUL.
10225         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
10226         for __builtin_vec_mul.
10228 2016-06-07  Peter Bergner  <bergner@vnet.ibm.com>
10230         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
10231         -mno-htm.
10233 2016-06-07  David Malcolm  <dmalcolm@redhat.com>
10235         * spellcheck.c (selftest::test_find_closest_string): New function.
10236         (spellcheck_c_tests): Call the above.
10238 2016-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10240         * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
10242 2016-06-07  Jakub Jelinek  <jakub@redhat.com>
10244         * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
10245         Yv=Yv,C alternatives.
10247 2016-06-07  Richard Biener  <rguenther@suse.de>
10249         PR c/61564
10250         * common.opt (ffast-math): Make Optimization.
10252 2016-06-07  Simon Dardis  <simon.dardis@imgtec.com>
10253             Prachi Godbole  <prachi.godbole@imgtec.com>
10255         * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
10256         `fabs' and `fneg' type attributes.
10257         (p5600_fpu_fabs): Add `fmove' to the comment.
10259 2016-06-07  Jan Hubicka  <hubicka@ucw.cz>
10261         * gimple.c: Include builtins.h
10262         (gimple_inexpensive_call_p): New function.
10263         * gimple.h (gimple_inexpensive_call_p): Declare.
10264         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
10265         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
10266         fix formatting.
10268 2016-06-07  Paolo Carlini  <paolo.carlini@oracle.com>
10270         * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
10271         (inform, inform_at_rich_loc, inform_n, warning, warning_at,
10272         warning_at_rich_loc, warning_n, pedwarn, permerror,
10273         permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
10274         sorry, fatal_error, internal_error, internal_error_no_backtrace):
10275         Use the above.
10277 2016-06-07  Richard Biener  <rguenther@suse.de>
10279         PR tree-optimization/71428
10280         * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
10281         BIT_FIELD_REF op vs. load.
10283 2016-06-07  Richard Biener  <rguenther@suse.de>
10285         PR middle-end/71423
10286         * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
10287         for signed ops.
10289 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
10291         * config/pa/pa.md (call): Generate indirect long calls to non-local
10292         functions on TARGET_64BIT.
10293         (call_value): Likewise.
10295 2016-06-06  John David Anglin  <danglin@gcc.gnu.org>
10297         * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
10298         pattern and subsequent splitters.
10299         (call_val_reg_64bit_post_reload): Likewise.
10301 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
10303         PR middle-end/71408
10304         * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
10305         propagate_op_to_single_use.
10307 2016-06-07  Kugan Vivekanandarajah  <kuganv@linaro.org>
10309         PR middle-end/71281
10310         * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
10312 2016-06-07  Uros Bizjak  <ubizjak@gmail.com>
10314         * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
10315         (enum x86_dirflag_state): New enum.
10316         (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
10317         (machine_function): Remove needs_cld.
10318         (ix86_current_function_needs_cld): Remove.
10319         * config/i386/i386.c (ix86_set_func_type): Set
10320         ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
10321         (ix86_expand_prologue): Do not emit CLD here.
10322         (ix86_dirflag_mode_needed): New function.
10323         (ix86_dirflag_mode_entry): Ditto.
10324         (ix86_mode_needed): Handle X86_DIRFLAG entity.
10325         (ix86_mode_after): Ditto.
10326         (ix86_mode_entry): Ditto.
10327         (ix86_mode_exit): Ditto.
10328         (ix86_emit_mode_set): Ditto.
10329         * config/i386/i386.md (strmov_singleop): Set
10330         ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
10331         Do not set ix86_current_function_needs_cld.
10332         (rep_mov): Ditto.
10333         (strset_singleop): Ditto.
10334         (rep_stos): Ditto.
10335         (cmpstrnqi_nz_1): Ditto.
10336         (cmpstrnqi_1): Ditto.
10337         (strlenqi_1): Ditto.
10339 2016-06-06  Jakub Jelinek  <jakub@redhat.com>
10341         PR tree-optimization/71259
10342         * tree-vect-slp.c (vect_get_constant_vectors): For
10343         VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
10344         one for constant op, and use COND_EXPR for non-constant.
10346 2016-06-06  David Malcolm  <dmalcolm@redhat.com>
10348         * Makefile.in (OBJS): Add function-tests.o,
10349         hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
10350         selftest-run-tests.o.
10351         (OBJS-libcommon): Add selftest.o.
10352         (OBJS-libcommon-target): Add selftest.o.
10353         (all.internal): Add "selftest".
10354         (all.cross): Likewise.
10355         (selftest): New phony target.
10356         (s-selftest): New target.
10357         (selftest-gdb): New phony target.
10358         (COLLECT2_OBJS): Add selftest.o.
10359         * bitmap.c: Include "selftest.h".
10360         (selftest::test_gc_alloc): New function.
10361         (selftest::test_set_range): New function.
10362         (selftest::test_clear_bit_in_middle): New function.
10363         (selftest::test_copying): New function.
10364         (selftest::test_bitmap_single_bit_set_p): New function.
10365         (selftest::bitmap_c_tests): New function.
10366         * common.opt (fself-test): New.
10367         * diagnostic-show-locus.c: Include "selftest.h".
10368         (make_range): New function.
10369         (test_range_contains_point_for_single_point): New function.
10370         (test_range_contains_point_for_single_line): New function.
10371         (test_range_contains_point_for_multiple_lines): New function.
10372         (assert_eq): New function.
10373         (test_get_line_width_without_trailing_whitespace): New function.
10374         (selftest::diagnostic_show_locus_c_tests): New function.
10375         * et-forest.c: Include "selftest.h".
10376         (selftest::test_single_node): New function.
10377         (selftest::test_simple_tree): New function.
10378         (selftest::test_disconnected_nodes): New function.
10379         (selftest::et_forest_c_tests): New function.
10380         * fold-const.c: Include "selftest.h".
10381         (selftest::assert_binop_folds_to_const): New function.
10382         (selftest::assert_binop_folds_to_nonlvalue): New function.
10383         (selftest::test_arithmetic_folding): New function.
10384         (selftest::fold_const_c_tests): New function.
10385         * function-tests.c: New file.
10386         * gimple.c: Include "selftest.h".
10387         Include "gimple-pretty-print.h".
10388         (selftest::verify_gimple_pp): New function.
10389         (selftest::test_assign_single): New function.
10390         (selftest::test_assign_binop): New function.
10391         (selftest::test_nop_stmt): New function.
10392         (selftest::test_return_stmt): New function.
10393         (selftest::test_return_without_value): New function.
10394         (selftest::gimple_c_tests): New function.
10395         * hash-map-tests.c: New file.
10396         * hash-set-tests.c: New file.
10397         * input.c: Include "selftest.h".
10398         (selftest::assert_loceq): New function.
10399         (selftest::test_accessing_ordinary_linemaps): New function.
10400         (selftest::test_unknown_location): New function.
10401         (selftest::test_builtins): New function.
10402         (selftest::test_reading_source_line): New function.
10403         (selftest::input_c_tests): New function.
10404         * rtl-tests.c: New file.
10405         * selftest-run-tests.c: New file.
10406         * selftest.c: New file.
10407         * selftest.h: New file.
10408         * spellcheck.c: Include "selftest.h".
10409         (selftest::levenshtein_distance_unit_test_oneway): New function,
10410         adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
10411         (selftest::levenshtein_distance_unit_test): Likewise.
10412         (selftest::spellcheck_c_tests): Likewise.
10413         * toplev.c: Include selftest.h.
10414         (toplev::run_self_tests): New.
10415         (toplev::main): Handle -fself-test.
10416         * toplev.h (toplev::run_self_tests): New.
10417         * tree.c: Include "selftest.h".
10418         (selftest::test_integer_constants): New function.
10419         (selftest::test_identifiers): New function.
10420         (selftest::test_labels): New function.
10421         (selftest::tree_c_tests): New function.
10422         * tree-cfg.c: Include "selftest.h".
10423         (selftest::push_fndecl): New function.
10424         (selftest::test_linear_chain): New function.
10425         (selftest::test_diamond): New function.
10426         (selftest::test_fully_connected): New function.
10427         (selftest::tree_cfg_c_tests): New function.
10428         * vec.c: Include "selftest.h".
10429         (selftest::safe_push_range): New function.
10430         (selftest::test_quick_push): New function.
10431         (selftest::test_safe_push): New function.
10432         (selftest::test_truncate): New function.
10433         (selftest::test_safe_grow_cleared): New function.
10434         (selftest::test_pop): New function.
10435         (selftest::test_safe_insert): New function.
10436         (selftest::test_ordered_remove): New function.
10437         (selftest::test_unordered_remove): New function.
10438         (selftest::test_block_remove): New function.
10439         (selftest::reverse_cmp): New function.
10440         (selftest::test_qsort): New function.
10441         (selftest::vec_c_tests): New function.c.
10442         * wide-int.cc: Include selftest.h and wide-int-print.h.
10443         (selftest::from_int <wide_int>): New function.
10444         (selftest::from_int <offset_int>): New function.
10445         (selftest::from_int <widest_int>): New function.
10446         (selftest::assert_deceq): New function.
10447         (selftest::assert_hexeq): New function.
10448         (selftest::test_printing <VALUE_TYPE>): New function template.
10449         (selftest::test_ops <VALUE_TYPE>): New function template.
10450         (selftest::test_comparisons <VALUE_TYPE>): New function template.
10451         (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
10452         template.
10453         (selftest::wide_int_cc_tests): New function.
10455 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10457         PR middle-end/37780
10458         * ifcvt.c (noce_try_ifelse_collapse): New function.
10459         Declare prototype.
10460         (noce_process_if_block): Call noce_try_ifelse_collapse.
10461         * simplify-rtx.c (simplify_cond_clz_ctz): New function.
10462         (simplify_ternary_operation): Use the above to simplify
10463         conditional CLZ/CTZ expressions.
10465 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10467         PR middle-end/37780
10468         * config/aarch64/aarch64.md (ctz<mode>2): Convert to
10469         define_insn_and_split.
10471 2016-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10473         PR middle-end/37780
10474         * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
10476 2016-06-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>
10478         PR c/24414
10479         * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
10480         Implicitly clobber memory for basic asm with non-empty assembler
10481         string.  Use targetm.md_asm_adjust also here.
10482         * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
10483         * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
10484         * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
10485         non-empty assembler string.
10486         * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
10487         * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
10488         (decode_asm_operands): Handle basic asm in PARALLEL block.
10489         (extract_insn): Handle basic asm in PARALLEL block.
10490         * doc/extend.texi: Mention new behavior of basic asm.
10491         * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
10492         * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
10493         branch_needs_nop_p): Use asm_noperands.
10495 2016-06-06  Jose E. Marchesi  <jose.marchesi@oracle.com>
10497         * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
10498         Include the M7 SPARC DFA scheduler.
10499         New attribute v3pipe.
10500         Annotate insns with v3pipe where appropriate.
10501         Define cpu_feature vis4.
10502         Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
10503         Add (V8QI "8") to vbits.
10504         Add insns {add,sub}v8qi3
10505         Add insns ss{add,sub}v8qi3
10506         Add insns us{add,sub}{v8qi,v4hi}3
10507         Add insns {min,max}{v8qi,v4hi,v2si}3
10508         Add insns {minu,maxu}{v8qi,v4hi,v2si}3
10509         Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
10510         * config/sparc/niagara4.md: Add a comment explaining the
10511         discrepancy between the documented latenty numbers and the
10512         implemented ones.
10513         * config/sparc/niagara7.md: New file.
10514         * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
10515         supports SPARC5 and VIS 4.0 instructions.
10516         * configure: Regenerate.
10517         * config.in: Likewise.
10518         * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
10519         * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
10520         TARGET_CPU_niagara7.
10521         (ASM_CPU64_DEFAULT_SPEC): Likewise.
10522         (CPP_CPU_SPEC): Handle niagara7.
10523         (ASM_CPU_SPEC): Likewise.
10524         * config/sparc/sparc-opts.h (processor_type): Add
10525         PROCESSOR_NIAGARA7.
10526         (mvis4): New option.
10527         * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
10528         (AS_NIAGARA7_FLAG): Define.
10529         (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
10530         (CPP_CPU64_DEFAULT_SPEC): Likewise.
10531         (CPP_CPU_SPEC): Handle niagara7.
10532         (ASM_CPU_SPEC): Likewise.
10533         * config/sparc/sparc.c (niagara7_costs): Define.
10534         (sparc_option_override): Handle niagara7 and adjust cache-related
10535         parameters with better values for niagara cpus.  Also support VIS4.
10536         (sparc32_initialize_trampoline): Likewise.
10537         (sparc_use_sched_lookahead): Likewise.
10538         (sparc_issue_rate): Likewise.
10539         (sparc_register_move_cost): Likewise.
10540         (dump_target_flag_bits): Support VIS4.
10541         (sparc_vis_init_builtins): Likewise.
10542         (sparc_builtins): Likewise.
10543         * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
10544         VIS4 4.0.
10545         * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
10546         UltraSparc M7.
10547         * config/sparc/sparc.opt (sparc_processor_type): New value
10548         niagara7.
10549         * config/sparc/visintrin.h (__attribute__): Prototypes for the
10550         VIS4 builtins.
10551         * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
10552         -mvis4.
10553         * doc/extend.texi (SPARC VIS Built-in Functions): Document the
10554         VIS4 builtins.
10556 2016-06-06  Jonathan Wakely  <jwakely@redhat.com>
10558         * doc/sourcebuild.texi (Directives): Remove extra closing braces.
10560 2016-06-06  Richard Biener  <rguenther@suse.de>
10562         PR tree-optimization/71398
10563         * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
10564         remove edges.
10566 2016-06-05  James Bowman  <james.bowman@ftdichip.com>
10568         * config/ft32/ft32.c (ft32_setup_incoming_varargs,
10569         ft32_expand_prolog, ft32_expand_epilogue):
10570         Handle pretend_args.
10571         * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
10572         * config/ft32/ft32.md: Add pretend_returner.
10574 2016-06-06  Uros Bizjak  <ubizjak@gmail.com>
10576         PR target/71389
10577         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
10578         Copy op1 RTX to avoid invalid sharing.
10579         (ix86_expand_vector_move_misalign): Ditto.
10581 2016-06-05  John David Anglin  <danglin@gcc.gnu.org>
10583         * expr.c (move_by_pieces_d::generate): Mark mode parameter with
10584         ATTRIBUTE_UNUSED.
10586 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
10588         * predict.c (predicted_by_loop_heuristics_p): New function.
10589         (predict_iv_comparison): Use it.
10590         (predict_loops): Walk from innermost loops; do not predict edges
10591         leaving multiple loops multiple times; implement
10592         PRED_LOOP_ITERATIONS_MAX heuristics.
10593         * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
10595 2016-06-05  Jan Hubicka  <hubicka@ucw.cz>
10597         * cfg.c (check_bb_profile): Do not report mismatched profiles when
10598         only edges out of BB are EH edges.
10600 2016-06-04  Martin Sebor  <msebor@redhat.com>
10601             Marcin Baczyński  <marbacz@gmail.com>
10603         PR c/48116
10604         * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
10605         a void expression in a void function.
10607 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
10609         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
10610         aux; dump reasons of decisions.
10611         (should_duplicate_loop_header_p): Likewise.
10612         (do_while_loop_p): Likewise.
10613         (ch_base::copy_headers): Dump asi num insns duplicated.
10615 2016-06-04  Jakub Jelinek  <jakub@redhat.com>
10617         PR tree-optimization/71405
10618         * tree-ssa.c (execute_update_addresses_taken): For clobber with
10619         incompatible type, build a new clobber with the right type instead
10620         of building a VIEW_CONVERT_EXPR around it.
10622 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
10624         PR tree-optimization/52171
10625         * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
10626         by_pieces_ninsns instead of move_by_pieces_ninsns.
10628 2016-06-04  Oleg Endo  <olegendo@gcc.gnu.org>
10630         * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
10631         for reg+reg addressing mode.
10633 2016-06-03  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
10635         * rs6000-c.c (c/c-tree.h): Add #include.
10636         (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
10637         in C++ when found in the base position of vec_ld or vec_st.
10639 2016-06-03  Jan Hubicka  <hubicka@ucw.cz>
10641         * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
10642         use of profile unless profile status is PROFILE_READ.
10643         * profile.c (compute_branch_probabilities): Set profile status
10644         only after reporting predictor hitrates.
10646 2016-06-03  Joseph Myers  <joseph@codesourcery.com>
10648         PR target/71276
10649         PR target/71277
10650         * common.opt (ffp-int-builtin-inexact): New option.
10651         * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
10652         * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
10653         (ceil@var{m}2): Document dependence on this option.
10654         * ipa-inline-transform.c (inline_call): Handle
10655         flag_fp_int_builtin_inexact.
10656         * ipa-inline.c (can_inline_edge_p): Likewise.
10657         * config/i386/i386.md (rintxf2): Do not test
10658         flag_unsafe_math_optimizations.
10659         (rint<mode>2_frndint): New define_insn.
10660         (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
10661         or !flag_trapping_math for SSE.  Just use gen_rint<mode>2_frndint
10662         for 387 instead of extending and truncating.
10663         (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
10664         !flag_trapping_math instead of flag_unsafe_math_optimizations.
10665         Change to frndint<mode>2_<rounding>.
10666         (frndintxf2_<rounding>_i387): Likewise.  Change to
10667         frndint<mode>2_<rounding>_i387.
10668         (<rounding_insn>xf2): Likewise.
10669         (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
10670         !flag_trapping_math instead of flag_unsafe_math_optimizations for
10671         x87.  Test TARGET_ROUND || !flag_trapping_math ||
10672         flag_fp_int_builtin_inexact instead of !flag_trapping_math for
10673         SSE.  Use ROUND_NO_EXC in constant operand of
10674         gen_sse4_1_round<mode>2.  Just use gen_frndint<mode>2_<rounding>
10675         for 387 instead of extending and truncating.
10677 2016-06-03  H.J. Lu  <hongjiu.lu@intel.com>
10678             Julia Koval  <julia.koval@intel.com>
10680         PR target/66960
10681         PR target/67630
10682         PR target/67634
10683         PR target/67841
10684         PR target/68037
10685         PR target/68618
10686         PR target/68661
10687         PR target/69575
10688         PR target/69596
10689         PR target/69734
10690         * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
10691         * config/i386/i386.c (ix86_conditional_register_usage): Preserve
10692         all registers, except for function return registers if there are
10693         no caller-saved registers.
10694         (ix86_set_func_type): New function.
10695         (ix86_set_current_function): Call ix86_set_func_type to set
10696         no_caller_saved_registers and func_type.  Call reinit_regs if
10697         caller-saved registers are changed.  Don't allow MPX, SSE, MMX
10698         nor x87 instructions in interrupt handler nor function with
10699         no_caller_saved_registers attribute.
10700         (ix86_function_ok_for_sibcall): Return false if there are no
10701         caller-saved registers.
10702         (type_natural_mode): Don't warn ABI change for MMX in interrupt
10703         handler.
10704         (ix86_function_arg_advance): Skip for callee in interrupt handler.
10705         (ix86_function_arg): Return special arguments in interrupt handler.
10706         (ix86_promote_function_mode): Promote pointer to word_mode only
10707         for normal functions.
10708         (ix86_can_use_return_insn_p): Don't use `ret' instruction in
10709         interrupt handler.
10710         (ix86_epilogue_uses): New function.
10711         (ix86_hard_regno_scratch_ok): Likewise.
10712         (ix86_save_reg): Preserve all registers in interrupt handler
10713         after reload.  Preserve all registers, except for function return
10714         registers, if there are no caller-saved registers after reload.
10715         (find_drap_reg): Always use callee-saved register if there are
10716         no caller-saved registers.
10717         (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
10718         for interrupt handler.
10719         (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
10720         Emit cld instruction if stringops are used in interrupt handler
10721         or interrupt handler isn't a leaf function.
10722         (ix86_expand_epilogue): Generate interrupt return for interrupt
10723         handler and pop the 'ERROR_CODE' off the stack before interrupt
10724         return in exception handler.
10725         (ix86_expand_call): Disallow calling interrupt handler directly.
10726         If there are no caller-saved registers, mark all registers that
10727         are clobbered by the call which returns as clobbered.
10728         (ix86_handle_no_caller_saved_registers_attribute): New function.
10729         (ix86_handle_interrupt_attribute): Likewise.
10730         (ix86_attribute_table): Add interrupt and no_caller_saved_registers
10731         attributes.
10732         (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
10733         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
10734         accumulation in interrupt function if stack may be realigned to
10735         avoid DRAP.
10736         (EPILOGUE_USES): New.
10737         (function_type): New enum.
10738         (machine_function): Add func_type and no_caller_saved_registers.
10739         * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
10740         (interrupt_return): New pattern.
10741         * doc/extend.texi: Document x86 interrupt and
10742         no_caller_saved_registers attributes.
10744 2016-06-03  Bernd Schmidt  <bschmidt@redhat.com>
10746         PR tree-optimization/52171
10747         * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
10748         (expand_builtin_memcmp): New arg RESULT_EQ.  All callers changed.
10749         Look for constant strings.  Move some code to emit_block_cmp_hints
10750         and use it.
10751         * builtins.def (BUILT_IN_MEMCMP_EQ): New.
10752         * defaults.h (COMPARE_MAX_PIECES): New macro.
10753         * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
10754         (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
10755         (clear_by_pieces_1): Don't declare.  Move definition before use.
10756         (can_do_by_pieces): New static function.
10757         (can_move_by_pieces): Use it.  Return bool.
10758         (by_pieces_ninsns): Renamed from move_by_pieces_ninsns.  New arg
10759         OP.  All callers changed.  Handle COMPARE_BY_PIECES.
10760         (class pieces_addr); New.
10761         (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
10762         pieces_addr::adjust, pieces_addr::increment_address,
10763         pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
10764         functions for it.
10765         (class op_by_pieces_d): New.
10766         (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
10767         functions for it.
10768         (class move_by_pieces_d, class compare_by_pieces_d,
10769         class store_by_pieces_d): New subclasses of op_by_pieces_d.
10770         (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
10771         move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
10772         store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
10773         compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
10774         compare_by_pieces_d::finish_mode): New member functions.
10775         (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
10776         functions.
10777         (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
10778         (emit_block_cmp_hints): New function.
10779         (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
10780         use the newly defined classes.
10781         * expr.h (by_pieces_constfn): New typedef.
10782         (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
10783         (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
10784         (move_by_pieces_ninsns): Don't declare.
10785         (can_move_by_pieces): Change return value to bool.
10786         * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
10787         (compare_by_pieces_branch_ratio): New hook.
10788         * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
10789         (by_pieces_ninsns): Declare.
10790         * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
10791         COMPARE_BY_PIECES.
10792         (default_compare_by_pieces_branch_ratio): New function.
10793         * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
10794         * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
10795         * doc/tm.texi: Regenerate.
10796         * tree-ssa-strlen.c: Include "builtins.h".
10797         (handle_builtin_memcmp): New static function.
10798         (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
10799         * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
10801 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
10803         * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
10804         relevant stmts which are simple and invariant.
10805         * tree-vect-loop.c (vectorizable_live_operation): Check relevance
10806         instead of simple and invariant
10808 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
10810         * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
10811         (vectorizable_reduction): Check for new relevant state.
10812         (vectorizable_live_operation): vectorize live stmts using
10813         BIT_FIELD_REF.  Remove special case for gimple assigns stmts.
10814         * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
10815         (vect_stmt_relevant_p): Check for stmts which are only used live.
10816         (process_use): Use of a stmt does not inherit it's live value.
10817         (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
10818         (vect_analyze_stmt): Check for new relevant state.
10819         * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
10820         outside the loop, but not inside it.
10822 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
10824         * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
10825         * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
10826         (vect_get_vec_def_for_operand): Split out code.
10828 2016-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
10830         * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
10832 2016-06-03  Alan Hayward  <alan.hayward@arm.com>
10834         * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
10836 2016-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10838         * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
10840 2016-06-03  Jakub Jelinek  <jakub@redhat.com>
10842         PR middle-end/71387
10843         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
10844         to noreturn e->callee->decl that has void return type and void
10845         arguments, adjust gimple_call_fntype and remove lhs even if it had
10846         previously addressable type.
10848 2016-06-02  Jeff Law  <law@redhat.com>
10850         PR tree-optimization/71328
10851         * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
10852         error when checking for a jump back onto the copied path.
10854 2016-06-02  David Malcolm  <dmalcolm@redhat.com>
10856         * config/microblaze/microblaze.c (get_branch_target): Add return
10857         NULL_RTX for the non-CALL_P case.
10858         (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
10859         (insert_wic): Remove unused local "j".
10861 2016-06-02  Martin Liska  <mliska@suse.cz>
10863         * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
10865 2016-06-02  H.J. Lu  <hongjiu.lu@intel.com>
10866             Julia Koval  <julia.koval@intel.com>
10868         * function.c (assign_parm_setup_stack): Force source into a
10869         register if needed.
10870         * target.def (function_incoming_arg): Update documentation to
10871         allow arbitrary address computation based on hard register.
10872         * doc/tm.texi: Regenerated.
10874 2016-06-02  Martin Liska  <mliska@suse.cz>
10876         * predict.c (combine_predictions_for_bb): Fix first match in
10877         cases where a first predictor contains more than one occurence
10878         in list of predictors.  Take the best value in such case.
10880 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10882         PR rtl-optimization/71295
10883         * rtlanal.c (subreg_get_info): If taking a subreg at the requested
10884         offset would go over the size of the inner mode reject it.
10886 2016-06-02  Jakub Jelinek  <jakub@redhat.com>
10888         * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
10889         x=x,x and v=v,m instead of x=x,m.
10891         * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
10892         alternative.  Change x=x,x alternative to v=Yv,Yv and x=rm,C
10893         alternative to v=rm,C.
10895         * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
10896         alternative.  Change x=xm,C alternative to v=vm,C, x=x,x alternative
10897         to v=Yv,Yv and x=x,m to v=v,m.  Use maybe_evex prefix attribute
10898         instead of vex for the last two above mentioned alternatives.
10900 2016-06-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10902         PR target/70830
10903         * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
10905 2016-06-02  Segher Boessenkool  <segher@kernel.crashing.org>
10907         * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
10909 2016-06-01  David Malcolm  <dmalcolm@redhat.com>
10911         * config/rl78/rl78.c (rl78_expand_prologue): Convert local
10912         from int to unsigned.
10914 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
10916         * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
10917         alternatives, eliminating preferred register class.  Add support
10918         for the MTVSRDD instruction in ISA 3.0.
10919         (vsx_splat_v4si_internal): Use splat_input_operand instead of
10920         reg_or_indexed_operand.
10921         (vsx_splat_v4sf_internal): Likewise.
10923 2016-05-31  Michael Meissner  <meissner@linux.vnet.ibm.com>
10925         PR target/71186
10926         * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
10927         for loading up all 0's or all 1's.
10929 2016-06-01  Thomas Preud'homme  <thomas.preudhomme@arm.com>
10931         * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
10933 2016-06-01  Eduard Sanou  <dhole@openmailbox.org>
10935         * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
10936         extension.
10937         * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
10938         * gcc.c (set_source_date_epoch_envvar): New function, sets
10939         the SOURCE_DATE_EPOCH environment variable to the current time.
10941 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
10943         * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
10944         the factor for live Phi nodes.
10946 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
10948         * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
10949         * tree-parloops.c (parallelize_loops): likewise.
10950         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
10951         tree_unswitch_outer_loop): likewise.
10953 2016-06-01  Jakub Jelinek  <jakub@redhat.com>
10955         PR middle-end/71371
10956         * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
10957         around creation of the temporary.
10959 2016-06-01  Richard Biener  <rguenther@suse.de>
10961         PR tree-optimization/71366
10962         * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
10963         (unloop_loops): Move removing edges here ...
10964         (try_unroll_loop_completely): ... from here.
10965         (try_peel_loop): ... and here.
10966         (tree_unroll_loops_completely_1): Track parent loops via
10967         bitmap of header BBs.
10968         (tree_unroll_loops_completely): Adjust for that.
10970 2016-06-01  Kelvin Nilsen  <kelvin@gcc.gnu.org>
10972         * config/rs6000/altivec.h (vec_slv): New macro.
10973         (vec_srv): New macro.
10974         * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
10975         (UNSPEC_VSRV): New value.
10976         (vslv): New insn.
10977         (vsrv): New insn.
10978         * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
10979         (vsrv): New builtin definition.
10980         * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
10981         define argument types for new builtin.
10982         (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
10983         new builtin.
10984         * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
10985         functions.
10987 2016-06-01  Uros Bizjak  <ubizjak@gmail.com>
10988             Jocelyn Mayer  <l_indien@magic.fr>
10990         PR target/67310
10991         * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
10992         detect processor family for signature_CENTAUR_ebx.
10993         <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
10994         signature_CENTAUR_ebx.
10995         <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
10996         <default>: Pass x86-64 for has_longmode.
10998 2016-06-01  Nathan Sidwell  <nathan@acm.org>
11000         * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
11001         undefined weak.
11003 2016-06-01  Richard Biener  <rguenther@suse.de>
11005         PR tree-optimization/71261
11006         * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
11007         of stmts successfully put in the bool pattern.  Remove
11008         single-use restriction.
11009         (adjust_bool_pattern_cast): Add cast at the use site via the
11010         pattern def sequence.
11011         (adjust_bool_pattern): Remove recursion, maintain a hash-map
11012         of patterned defs.  Use the pattern def seqence instead of
11013         multiple independent patterns.
11014         (sort_after_uid): New qsort compare function.
11015         (adjust_bool_stmts): New function to process stmts in the bool
11016         pattern in IL order.
11017         (vect_recog_bool_pattern): Adjust.
11018         * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
11019         (ifcvt_walk_pattern_tree): Likewise.
11020         (stmt_is_root_of_bool_pattern): Likewise.
11021         (ifcvt_repair_bool_pattern): Likewise.
11022         (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
11024 2016-06-01  Jan Hubicka  <hubicka@ucw.cz>
11026         * loop-unroll.c (decide_unroll_constant_iterations,
11027         decide_unroll_runtime_iterations, decide_unroll_stupid): Use
11028         likely upper bounds.
11029         * loop-iv.c (find_simple_exit): Dump likely upper bounds.
11031 2016-06-01  Thomas Schwinge  <thomas@codesourcery.com>
11033         * tree-core.h (enum omp_clause_code): Remove
11034         OMP_CLAUSE_DEVICE_RESIDENT.  Adjust all users.
11036 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11038         * config/arm/sync.md (arm_store_exclusive<mode>):
11039         Use 'H' output modifier on operands[2] rather than creating a new
11040         entry in out-of-bounds memory of the operands array.
11041         (arm_store_release_exclusivedi): Likewise.
11043 2016-06-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11045         * config/arm/arm.c (arm_fusion_enabled_p): New function.
11046         * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
11047         * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
11048         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
11050 2016-06-01  Eric Botcazou  <ebotcazou@adacore.com>
11052         * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
11053         into account live statements for mask producers.
11055 2016-06-01  Richard Biener  <rguenther@suse.de>
11057         PR tree-optimization/71311
11058         * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
11059         restrict to non-INTEGER_CST @0.
11061 2016-06-01  Richard Biener  <rguenther@suse.de>
11063         * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
11064         (relational patterns): Use :c to avoid pattern duplications.
11066 2016-06-01  Richard Biener  <rguenther@suse.de>
11068         * genmatch.c (comparison_code_p): New predicate.
11069         (swap_tree_comparison): New function.
11070         (commutate): Add for_vec parameter to append new for entries.
11071         Support commutating relational operators by swapping it alongside
11072         operands.
11073         (lower_commutative): Adjust.
11074         (dt_simplify::gen): Do not pass artificial operators to gen
11075         functions.
11076         (decision_tree::gen): Do not add artificial operators as parameters.
11077         (parser::parse_expr): Verify operator commutativity when :c is
11078         applied.  Allow :C to override this.
11079         * match.pd: Adjust patterns to use :C instead of :c where required.
11081 2016-06-01  Patrick Palka  <ppalka@gcc.gnu.org>
11083         PR tree-optimization/71077
11084         * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
11085         the combining step, use boolean_false_node and boolean_true_node
11086         as the designated false/true return values.
11088 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
11090         * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
11091         * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
11092         (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
11093         PRED_LOOP_EXIT.
11095 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
11097         * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
11098         of flags impliying the register renaming.
11099         * toplev.c (process_options): Do not imply flag_rename_registers with
11100         loop peeling.
11102 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
11104         * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
11105         default implementation.
11107 2016-05-31  Nathan Sidwell  <nathan@acm.org>
11109         * dwarf2out.c (cur_line_info_table): Add GTY marker.
11111 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
11113         * config/sh/constraints.md (b): Remove constraint.
11114         * config/sh/predicates.md (arith_reg_operand): Remove
11115         TARGET_REGISTER_P.
11116         * config/sh/sh-modes.def (PDI): Remove.
11117         * config/sh/sh.c (sh_target_reg_class,
11118         sh_optimize_target_register_callee_saved): Remove functions.
11119         (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
11120         (sh_expand_epilogue): Update comment.
11121         (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
11122         sh_secondary_reload): Remove TARGET_REGS related code.
11123         * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
11124         TARGET_REGISTER_P): Remove macros.
11125         (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
11126         * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
11127         TR1_REG, TR2_REG): Remove constants.
11128         * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
11130 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
11132         * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
11133         define_expand patterns.
11134         (adddi3_compact): Rename to adddi3.
11135         (subdi3_compact): Rename to subdi3.
11136         (*negdi2): Rename to negdi2.
11137         (*abs<mode>2): Rename to abs<mode>2.
11139 2016-05-31  Oleg Endo  <olegendo@gcc.gnu.org>
11141         * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
11142         (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
11143         (atomic_sub_fetchsi): ... this new pattern.
11144         (mvtc): Add CC_REG clobber.
11146 2016-05-31  Marek Polacek  <polacek@redhat.com>
11148         * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
11150 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11152         * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
11153         aarch64_fusion_enabled_p to check for fusion capabilities.
11155 2016-05-31  Richard Biener  <rguenther@suse.de>
11157         PR tree-optimization/71352
11158         * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
11159         minus one and a negate.
11161 2016-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11163         * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
11164         * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
11165         Delete prototype.
11166         * config/aarch64/iterators.md (insn_count): Add descriptive comment.
11167         * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
11168         Remove use of aarch64_simd_attr_length_move, set length attribute
11169         directly.
11170         (*aarch64_be_movoi): Likewise.
11171         (*aarch64_be_movci): Likewise.
11172         (*aarch64_be_movxi): Likewise.
11174 2016-05-31  Jan Hubicka  <hubicka@ucw.cz>
11176         * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
11177         It no longer does that.
11178         * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
11180 2016-05-31  Wladimir J. van der Laan  <laanwj@gmail.com>
11182         * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
11183         attribute __unused__.
11185 2016-05-31  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11187         * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
11188         * config/arm/arm.c (arm_arch_thumb1): Define.
11189         (arm_option_override): Initialize arm_arch_thumb1.
11190         * config/arm/arm.h (arm_arch_thumb1): Declare.
11191         (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
11192         support Thumb-1 ISA.
11194 2016-05-31  Kirill Yukhin  <kirill.yukhin@intel.com>
11196         PR target/71346
11197         * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
11198         `Yv' for scalar operand.
11200 2016-05-31  Tom de Vries  <tom@codesourcery.com>
11202         PR tree-optimization/69068
11203         * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
11204         phis with more than two args.
11206 2016-05-30  Andreas Tobler  <andreast@gcc.gnu.org>
11208         * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
11209         armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
11210         target.
11212 2016-05-30  Jose E. Marchesi  <jose.marchesi@oracle.com>
11214         * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
11215         tune_64.
11216         * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
11217         support on SPARC.
11218         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
11219         cpu_32, cpu_64, tune_32 and tune_64.
11220         * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
11222 2016-05-30  Uros Bizjak  <ubizjak@gmail.com>
11224         * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
11226 2016-05-30  Andi Kleen  <ak@linux.intel.com>
11228         * auto-profile.c (read_profile): Replace asserts with errors
11229         when file does not exist.
11230         * gcov-io.c (gcov_read_words): Dito.
11232 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
11234         * tree-cfg.c (print_loop): Print likely upper bounds.
11236 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
11238         * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
11239         * opts.c (default_options): Enable peel loops at -O3.
11240         * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
11241         (try_peel_loop): Do not re-peel already peeled loops;
11242         use likely upper bounds; fix profile updating.
11243         (pass_complete_unroll::execute): Initialize peeled_loops.
11245 2016-05-30  Martin Liska  <mliska@suse.cz>
11247         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
11248         computed costs by frequency of BB they belong to.
11249         (get_scaled_computation_cost_at): New function.
11251 2016-05-30  Alexander Monakov  <amonakov@ispras.ru>
11252             Marc Glisse  <marc.glisse@inria.fr>
11254         PR tree-optimization/71289
11255         * match.pd (-1 / B < A, A > -1 / B): New transformations.
11257 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
11259         * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
11261 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
11263         * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
11264         for peeled copies; avoid underflow when updating estimates; correctly
11265         scale loop profile.
11267 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
11269         * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
11270         r236875. Corrected oe3 to oe2 as obvious.
11272 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
11274         PR middle-end/71269
11275         PR middle-end/71252
11276         * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
11277         that inserted stmt will not dominate stmts that defines its operand.
11278         (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
11279         (rewrite_expr_tree_parallel): Likewise.
11281 2016-05-30  Kugan Vivekanandarajah  <kuganv@linaro.org>
11283         PR middle-end/71252
11284         * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
11285         all fields including stmt_to_insert are swapped.
11287 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
11289         * predict.h (force_edge_cold): Declare.
11290         * predict.c (force_edge_cold): New function.
11291         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
11292         updating.
11293         (canonicalize_loop_induction_variables): Fix formating.
11295 2016-05-30  Eric Botcazou  <ebotcazou@adacore.com>
11297         * config/visium/visium.c (visium_split_double_add): Minor tweaks.
11298         (visium_expand_copysign): Use gen_int_mode directly.
11299         (visium_compute_frame_size): Minor tweaks.
11301 2016-05-30  Jan Hubicka  <hubicka@ucw.cz>
11303         * tree-vect-loop.c (vect_analyze_loop_2): Use
11304         likely_max_stmt_executions_int.
11306 2016-05-30  Tom de Vries  <tom@codesourcery.com>
11308         PR tree-optimization/69067
11309         * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
11311 2016-05-29  Uros Bizjak  <ubizjak@gmail.com>
11313         PR target/71245
11314         * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
11315         New peepholes to remove unneeded fild/fistp pairs.
11316         (define_peephole2 atomic_loaddi_fpu): Ditto.
11318 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11320         * predict.c (maybe_hot_frequency_p): Avoid division.
11322 2016-05-28  Gerald Pfeifer  <gerald@pfeifer.com>
11324         * doc/install.texi: Use https for shop.fsf.org.
11326 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11328         * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
11329         likely_max_stmt_executions_int.
11331 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11333         * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
11334         likely_max_stmt_executions_int.
11336 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11338         * profile.c (compute_branch_probabilities): Do not report hitrates
11339         here.
11340         (branch_prob): Report hitrates here.
11341         * predict.c (gimple_predict_edge): Do not assert profile status;
11342         fix formatting issues.
11344 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11346         * predict.c (edge_predicted_by_p): New function.
11347         (predict_paths_for_bb): Do not put multiple predictions of the same type
11348         on one edge.
11350 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11352         * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
11353         commit.
11355 2016-05-28  Alan Modra  <amodra@gmail.com>
11357         * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
11359 2016-05-28  Alan Modra  <amodra@gmail.com>
11361         PR rtl-optimization/71275
11362         * ira.c (ira): Free dominance info.
11364 2016-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
11366         * doc/sourcebuild.texi: New address for upstream Go repository.
11368 2016-05-27  Thomas Preud'homme  <thomas.preudhomme@arm.com>
11370         * config/arm/arm.h (TARGET_ARM_V6M): Remove.
11371         (TARGET_ARM_V7M): Likewise.
11373 2016-05-26  Jeff Law  <law@redhat.com>
11375         * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
11376         (thread_across_edge): Remove calls to find_jump_threads_backwards.
11377         * passes.def: Add jump threading passes before DOM/VRP.
11378         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
11379         argument to a basic block from an edge.  Remove tests which are
11380         handled elsewhere.
11381         (pass_data_thread_jumps, class pass_thread_jumps): New.
11382         (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
11383         (make_pass_thread_jumps): Likewise.
11384         * tree-pass.h (make_pass_thread_jumps): Declare.
11386 2016-05-27  Eric Botcazou  <ebotcazou@adacore.com>
11388         * config/visium/visium-protos.h (split_double_move): Rename into...
11389         (visium_split_double_move): ...this.
11390         (visium_split_double_add): Declare.
11391         * config/visium/visium.c (split_double_move): Rename into...
11392         (visium_split_double_move): ...this.
11393         (visium_split_double_add): New function.
11394         (visium_expand_copysign): Renumber operands for consistency.
11395         * config/visium/visium.md (DImode move splitter): Adjust to renaming.
11396         (DFmode move splitter): Likewise.
11397         (*addi3_insn): Split by means of visium_split_double_add.
11398         (*adddi3_insn_flags): Delete.
11399         (*plus_plus_sltu<subst_arith>): New insn.
11400         (*subdi3_insn): Split by means of visium_split_double_add.
11401         (subdi3_insn_flags): Delete.
11402         (*minus_minus_sltu<subst_arith>): New insn.
11403         (*negdi2_insn): Split by means of visium_split_double_add.
11404         (*negdi2_insn_flags): Delete.
11406 2016-05-27  Ulrich Weigand  <uweigand@de.ibm.com>
11408         * configure.ac: Treat a --with-headers option without argument
11409         the same as the default (i.e. consult sys-include directory).
11410         * configure: Regenerate.
11412 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11414         * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
11415         * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
11416         prototype.
11417         * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
11418         Add "=w,0" alternative.  Enable it when AES/AESMC fusion is enabled.
11420 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
11422         PR target/63596
11423         * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
11424         tree-stdarg analysis results.
11425         (aarch64_setup_incoming_varargs): Likewise.
11427 2016-05-27  Jiong Wang  <jiong.wang@arm.com>
11429         * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
11430         va_list_gpr_counter_field and va_list_fpr_counter_field.
11432 2016-05-27  Wilco Dijkstra  <wdijkstr@arm.com>
11434         PR67609
11435         * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
11436         * config/aarch64/aarch64.c
11437         (aarch64_cannot_change_mode_class): Remove function.
11438         * config/aarch64/aarch64-protos.h
11439         (aarch64_cannot_change_mode_class): Remove.
11441 2016-05-27  Jan Hubicka  <hubicka@ucw.cz>
11443         * cfgloop.c (record_niter_bound): Record likely upper bounds.
11444         (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
11445         get_likely_max_loop_iterations_int): New.
11446         * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
11447         any_likely_upper_bound.
11448         (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
11449         Declare.
11450         * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
11451         * loop-unroll.c (unroll_loop_constant_iterations): Update likely
11452         upper bound.
11453         (unroll_loop_constant_iterations): Likewise.
11454         (unroll_loop_runtime_iterations): Likewise.
11455         * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
11456         * lto-streamer-out.c (output_cfg): Likewise.
11457         * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
11458         bounds.
11459         (canonicalize_loop_induction_variables): Dump likely upper bounds.
11460         * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
11461         (likely_max_loop_iterations): New.
11462         (likely_max_loop_iterations_int): New.
11463         (likely_max_stmt_executions): New.
11464         * tree-ssa-loop-niter.h (likely_max_loop_iterations,
11465         likely_max_loop_iterations_int, likely_max_stmt_executions_int,
11466         likely_max_stmt_executions): Declare.
11468 2016-05-27  Marek Polacek  <polacek@redhat.com>
11470         PR middle-end/71308
11471         * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
11473 2016-05-27  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
11475         * config/s390/s390.md (2x risbg splitters): Use
11476         reg_overlap_mentioned_p instead of rtx_equal_p.
11478 2016-05-27  Dominik Vogt  <vogt@linux.vnet.ibm.com>
11480         * combine.c (make_compound_operation): Take known zero bits into
11481         account when checking for possible zero_extend.
11483 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11485         * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
11486         Use const_int_operand for operand 2 predicate.  Simplify expand code
11487         as a result.
11489 2016-05-27  Ilya Enkovich  <ilya.enkovich@intel.com>
11491         PR middle-end/71279
11492         * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
11493         into comparison.
11495 2016-05-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11497         * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
11498         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
11499         that returns CC_SESWPmode and CC_ZESWPmode.
11500         (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
11501         and CC_SESWPmode.
11502         (aarch64_rtx_costs): Likewise.
11504 2016-05-26  Michael Meissner  <meissner@linux.vnet.ibm.com>
11506         * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
11507         for ISA 3.0 min/max support.
11508         (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
11509         conditional move support.
11510         (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
11511         rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
11512         available.
11513         * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
11514         conditional moves where the comparison type is different from move
11515         type.
11516         (fp_minmax): New code iterator for smin/smax.
11517         (minmax): New code attributes for min/max.
11518         (SMINMAX): Likewise.
11519         (smax<mode>3): Combine min, max insns into one insn using the
11520         fp_minmax code iterator.  Add support for ISA 3.0 min/max
11521         instructions that don't need -ffast-math.
11522         (s<minmax><mode>3): Likewise.
11523         (smax<mode>3_vsx): Likewise.
11524         (smin<mode>3): Likewise.
11525         (s<minmax><mode>3_vsx): Likewise.
11526         (smin<mode>3_vsx): Likewise.
11527         (pre-VSX min/max splitters): Likewise.
11528         (s<minmax><mode>3_fpr): Likewise.
11529         (movsfcc): Rewrite floating point conditional moves to combine
11530         SFmode/DFmode into a single insn.
11531         (mov<mode>cc): Likewise.
11532         (movdfcc): Likewise.
11533         (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
11534         SFDF2 iterators to handle all combinations.
11535         (fseldfsf4): Likewise.
11536         (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
11537         (fseldfdf4): Likewise.
11538         (fselsfdf4): Likewise.
11539         (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
11540         comparison instructions that set a 0/-1 mask, and use it for
11541         floating point conditional move via XXSEL.
11542         (fpmask<mode>): Likewise.
11543         (xxsel<mode>): Likewise.
11544         * config/rs6000/predicates.md (min_max_operator): Delete, no
11545         longer used.
11546         (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
11547         instructions that generate a 0/-1 mask for use with XXSEL.
11548         * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
11549         say whether floating point min/max is available, either through
11550         FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
11551         (TARGET_MINMAX_DF): Likewise.
11553 2016-05-27  Alan Modra  <amodra@gmail.com>
11555         PR rtl-optimization/71275
11556         * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
11557         for update_equiv_regs and combine_and_move_insns.
11559 2016-05-26  Uros Bizjak  <ubizjak@gmail.com>
11561         * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
11562         if_then_else or cond RTXes to calculate attribute value.
11563         * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
11564         <attr "length_immediate>: Ditto.
11565         (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
11566         * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
11567         (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
11568         <attr "type">: Ditto.
11569         <attr "prefix_data16">: Ditto.
11570         <attr "prefix_extra">: Ditto.
11571         <attr "length_immediate">: Ditto.
11572         <attr "prefix">: Ditto.
11573         (vec_set<mode>_0) <attr "isa">: Ditto.
11574         <attr "prefix_extra">: Ditto.
11575         <attr "length_immediate">: Ditto.
11576         <attr "prefix">: Ditto.
11577         (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
11578         (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
11579         (sse2_storelpd) <attr "prefix_data16">: Ditto.
11580         (sse2_loadhpd) <attr "prefix_data16">: Ditto.
11581         (sse2_loadlpd) <attr "prefix_data16">: Ditto.
11582         <attr "length_immediate">: Ditto.
11583         <attr "prefix">: Ditto.
11584         (sse2_movsd) <attr "length_immediate">: Ditto.
11585         <attr "prefix">: Ditto.
11586         (vec_concatv2df)  <attr "isa">: Ditto.
11587         <attr "prefix">: Ditto.
11588         (*vec_extractv4si) <attr "prefix_extra">: Ditto.
11589         (*vec_extractv2di_1) <attr "isa">: Ditto.
11590         <attr "type">: Ditto.
11591         <attr "length_immediate">: Ditto.
11592         <attr "prefix_rex">: Ditto.
11593         <attr "prefix_extra">: Ditto.
11594         (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
11595         <attr "prefix_extra">: Ditto.
11596         <attr "length_immediate">: Ditto.
11597         (vec_concatv2di) <attr "isa">: Ditto.
11598         <attr "prefix_extra">: Ditto.
11599         <attr "length_immediate">: Ditto.
11600         <attr "prefix">: Ditto.
11602 2016-05-26  Martin Liska  <mliska@suse.cz>
11604         * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
11605         function.
11606         (operator+): Likewise.
11607         (operator-): Likewise.
11608         (comp_cost::operator+=): Likewise.
11609         (comp_cost::operator-=): Likewise.
11610         (comp_cost::operator/=): Likewise.
11611         (comp_cost::operator*=): Likewise.
11612         (operator<): Likewise.
11613         (operator==): Likewise.
11614         (operator<=): Likewise.
11615         (new_cost): Remove.
11616         (infinite_cost_p): Likewise.
11617         (add_costs): Likewise.
11618         (sub_costs): Likewise.
11619         (compare_costs): Likewise.
11620         (set_group_iv_cost): Use the newly introduced functions.
11621         (get_address_cost): Likewise.
11622         (get_shiftadd_cost): Likewise.
11623         (force_expr_to_var_cost): Likewise.
11624         (split_address_cost): Likewise.
11625         (ptr_difference_cost): Likewise.
11626         (difference_cost): Likewise.
11627         (get_computation_cost_at): Likewise.
11628         (determine_group_iv_cost_generic): Likewise.
11629         (determine_group_iv_cost_address): Likewise.
11630         (determine_group_iv_cost_cond): Likewise.
11631         (autoinc_possible_for_pair): Likewise.
11632         (determine_group_iv_costs): Likewise.
11633         (cheaper_cost_pair): Likewise.
11634         (iv_ca_recount_cost): Likewise.
11635         (iv_ca_set_no_cp): Likewise.
11636         (iv_ca_set_cp): Likewise.
11637         (iv_ca_cost): Likewise.
11638         (iv_ca_new): Likewise.
11639         (iv_ca_dump): Likewise.
11640         (iv_ca_narrow): Likewise.
11641         (iv_ca_prune): Likewise.
11642         (iv_ca_replace): Likewise.
11643         (try_add_cand_for): Likewise.
11644         (try_improve_iv_set): Likewise.
11645         (find_optimal_iv_set): Likewise.
11647 2016-05-26  Richard Sandiford  <richard.sandiford@arm.com>
11649         * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
11650         that internal functions will clobber all caller-saved registers.
11652 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
11654         * config/aarch64/aarch64.c (aarch64_case_values_threshold):
11655         Return a better case_values_threshold when optimizing.
11657 2016-05-26  Wilco Dijkstra  <wdijkstr@arm.com>
11659         * config/aarch64/aarch64-simd.md (aarch64_combinez):
11660         Add ? to integer variant.
11661         (aarch64_combinez_be): Likewise.
11663 2016-05-26  Jakub Jelinek  <jakub@redhat.com>
11665         * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
11666         instead of x constraint.
11667         (vcvtps2ph256<mask_name>): Likewise.
11669         * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
11670         alternative.  Formatting fix.
11672         * config/i386/sse.md
11673         (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
11674         to ...
11675         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
11676         (*avx_vperm_broadcast_v4sf): Use v constraint instead of x.  Use
11677         maybe_evex prefix instead of vex.
11678         (*avx_vperm_broadcast_<mode>): Use v constraint instead of x.  Handle
11679         EXT_REX_SSE_REG_P (op0) case in the splitter.
11681 2016-05-25  Jeff Law  <law@redhat.com>
11683         PR tree-optimization/71272
11684         * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
11685         Update comments.  Add test for empty path.
11687 2016-05-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
11689         * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
11690         * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
11691         special case builtin.
11692         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11693         code for ALTIVEC_BUILTIN_VEC_CMPNE.
11694         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11695         for __builtin_vec_cmpne.
11697 2016-05-25  Eric Botcazou  <ebotcazou@adacore.com>
11699         * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
11700         redundant test and bail out if the type of the new operand is not
11701         a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
11703 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
11705         * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
11706         (x_ix86_target_flags_explicit): Remove.
11707         * config/i386/i386.c (ix86_function_specific_save): Do not copy
11708         x_ix86_target_flags_explicit.
11709         (ix86_function_specific_restore): Ditto.
11711 2016-05-25  Uros Bizjak  <ubizjak@gmail.com>
11712             H.J. Lu  <hongjiu.lu@intel.com>
11714         PR target/70738
11715         * common/config/i386/i386-common.c
11716         (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
11717         (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
11718         MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
11719         * config/i386/i386.opt (ix86_target_flags): Add new Variable.
11720         (-mgeneral-regs-only): Add new option.
11721         * config/i386/i386.c (ix86_option_override_internal): Don't enable
11722         x87 instructions if only general registers are allowed.
11723         (ix86_target_string): Add ix86_flags argument. Handle additional
11724         flags options through ix86_flags argument.  Update all callers.
11725         * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
11727 2016-05-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11729         PR rtl-optimization/66940
11730         * ifcvt.c (noce_get_alt_condition): Check that incrementing or
11731         decrementing desired_val will not overflow before performing these
11732         operations.
11734 2016-05-25  Ilya Verbin  <ilya.verbin@intel.com>
11736         * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
11737         V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
11738         * config/i386/i386.c (enum ix86_builtins): Add
11739         IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
11740         IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
11741         IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
11742         IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
11743         IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
11744         IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
11745         (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
11746         __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
11747         __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
11748         __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
11749         __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
11750         __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
11751         Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
11752         __builtin_ia32_cvtps2dq512_mask.
11753         (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
11754         V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
11755         (ix86_builtin_vectorized_function): Handle builtins mentioned above.
11756         * config/i386/sse.md
11757         (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
11758         Rename to ...
11759         (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
11760         (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
11761         to ...
11762         (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
11763         (avx512f_vec_pack_sfix_v8df): New define_expand.
11764         (avx512f_roundpd512): Rename to ...
11765         (avx512f_round<castmode>512): ... this.  Change iterator.
11766         (avx512f_roundps512_sfix): New define_expand.
11767         (round<mode>2_sfix): Change iterator.
11769 2016-05-25  Nick Clifton  <nickc@redhat.com>
11771         * config/msp430/msp430.c (msp430_attr): Produce an error if a
11772         static interrupt handler is detected.
11773         * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
11774         default linker script.
11775         * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
11776         the low part of a symbolic pointer.
11778 2016-05-25  Richard Biener  <rguenther@suse.de>
11780         PR tree-optimization/71261
11781         * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
11782         interesting stmt instead of immediate uses when looking
11783         for the use operand to replace.
11785 2016-05-25  Martin Liska  <mliska@suse.cz>
11787         * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
11789 2016-05-25  Richard Biener  <rguenther@suse.de>
11791         PR tree-optimization/71264
11792         * tree-vect-stmts.c (vect_init_vector): Properly deal with
11793         vector type val.
11795 2016-05-25  Martin Liska  <mliska@suse.cz>
11797         PR tree-optimization/71239
11798         * tree.c (array_at_struct_end_p): Do not call operand_equal_p
11799         if DECL_SIZE is NULL.
11801 2016-05-25  Richard Biener  <rguenther@suse.de>
11803         * timevar.def (TV_TREE_LOOP_IFCVT): Add.
11804         * tree-if-conv.c (pass_data_if_conversion): Use it.
11806 2016-05-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11808         * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
11809         * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
11810         * varpool.c (varpool_node::get_availability): Likewise.
11812 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
11814         * config/rs6000/altivec.md (VNEG iterator): New iterator for
11815         VNEGW/VNEGD instructions.
11816         (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
11817         (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
11818         support for ISA 3.0 VNEGW/VNEGD instructions.
11820 2016-05-24  Cesar Philippidis  <cesar@codesourcery.com>
11822         * gimplify.c (omp_notice_variable): Use zero-length arrays for data
11823         pointers inside OACC_DATA regions.
11824         (gimplify_scan_omp_clauses): Prune firstprivate clause associated
11825         with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
11826         (gimplify_adjust_omp_clauses): Fix typo in comment.
11828 2016-05-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
11830         * config/rs6000/altivec.md (VParity): New mode iterator for vector
11831         parity built-in functions.
11832         (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
11833         zeros.
11834         (p9v_parity<mode>2): Likewise.
11835         * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
11836         parity.
11837         (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
11838         (parity<mode>2): ISA 3.0 expander for vector parity.
11839         * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
11840         power9 built-ins.
11841         (BU_P9_64BIT_MISC_0): Likewise.
11842         (BU_P9_MISC_0): Likewise.
11843         (BU_P9V_AV_1): Likewise.
11844         (BU_P9V_AV_2): Likewise.
11845         (BU_P9V_AV_3): Likewise.
11846         (BU_P9V_AV_P): Likewise.
11847         (BU_P9V_VSX_1): Likewise.
11848         (BU_P9V_OVERLOAD_1): Likewise.
11849         (BU_P9V_OVERLOAD_2): Likewise.
11850         (BU_P9V_OVERLOAD_3): Likewise.
11851         (VCTZB): Add vector count trailing zeros support.
11852         (VCTZH): Likewise.
11853         (VCTZW): Likewise.
11854         (VCTZD): Likewise.
11855         (VPRTYBD): Add vector parity support.
11856         (VPRTYBQ): Likewise.
11857         (VPRTYBW): Likewise.
11858         (VCTZ): Add overloaded vector count trailing zeros support.
11859         (VPRTYB): Add overloaded vector parity support.
11860         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11861         overloaded vector count trailing zeros and parity instructions.
11862         * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
11863         vector parity support.
11864         * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
11865         trailing zeros support.
11866         (vec_cntlz): Likewise.
11867         (vec_vctzb): Likewise.
11868         (vec_vctzd): Likewise.
11869         (vec_vctzh): Likewise.
11870         (vec_vctzw): Likewise.
11871         (vec_vprtyb): Add ISA 3.0 vector parity support.
11872         (vec_vprtybd): Likewise.
11873         (vec_vprtybw): Likewise.
11874         (vec_vprtybq): Likewise.
11875         * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11876         the ISA 3.0 vector count trailing zeros and vector parity built-in
11877         functions.
11879 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
11881         * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
11882         when there is stmt_to_insert.
11884 2016-05-24  Martin Sebor  <msebor@redhat.com>
11886         PR c++/71147
11887         * tree.h (complete_or_array_type_p): New inline function.
11889 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
11891         * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
11892         * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
11893         rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
11895         * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
11896         Limit 1st alternative to noavx isa, split 2nd alternative into one
11897         noavx and one avx alternative, use *x and Bm in the former and
11898         x and m in the latter.
11900         * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
11901         of sse4 for the first alternative, drop %v from the template
11902         and d operand modifier.  Split second alternative into one sse4_noavx
11903         and one avx alternative, use *x instead of *v in the former and v
11904         instead of *v in the latter.
11905         (*sse4_1_extractps): Use noavx isa instead of * for the first
11906         alternative, drop %v from the template.  Split second alternative into
11907         one noavx and one avx alternative, use *x instead of *v in the
11908         former and v instead of *v in the latter.
11909         (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
11910         with noavx and the last one with avx.
11911         (sse4_1_phminposuw): Guard first alternative with noavx isa,
11912         split the second one into one noavx and one avx alternative,
11913         use *x and Bm in the former and x and m in the latter one.
11914         (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
11915         alternatives.
11917         * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
11918         first two alternatives to noavx, use *x instead of *v in the second
11919         one, add avx alternative without *.
11920         (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
11921         sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
11922         sse4_1_<code>v2siv2di2<mask_name>): Likewise.
11924 2016-05-24  Jeff Law  <law@redhat.com>
11926         * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
11927         New function, extracted from...
11928         (fsm_find_control_statement_thread_paths): Here.  Use the new function.
11929         Allow simple copies and constant initializations in the SSA chain.
11931 2016-05-24  Marek Polacek  <polacek@redhat.com>
11933         PR c/71249
11934         * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
11935         scope.
11937 2016-05-24  Jakub Jelinek  <jakub@redhat.com>
11939         PR c++/71257
11940         * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
11941         SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
11942         SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP.  Add
11943         SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
11944         SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
11946 2016-05-24  Richard Biener  <rguenther@suse.de>
11948         PR tree-optimization/71240
11949         * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
11950         has integral type.
11952 2016-05-24  Richard Biener  <rguenther@suse.de>
11954         PR tree-optimization/71230
11955         * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
11957 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
11959         * tree-vectorizer.h (vectorizable_comparison): Delete.
11960         * tree-vect-loop.c (vectorizable_reduction): Remove redundant
11961         PURE_SLP_STMT check.
11962         * tree-vect-stmts.c (vectorizable_call): Likewise.
11963         (vectorizable_simd_clone_call): Likewise.
11964         (vectorizable_conversion): Likewise.
11965         (vectorizable_assignment): Likewise.
11966         (vectorizable_shift): Likewise.
11967         (vectorizable_operation): Likewise.
11968         (vectorizable_load): Likewise.
11969         (vectorizable_condition): Likewise.
11970         (vectorizable_store): Likewise.  Assert that we don't have
11971         hybrid SLP.
11972         (vectorizable_comparison): Make static.  Remove redundant
11973         PURE_SLP_STMT check.
11974         (vect_transform_stmt): Assert that we always have an slp_node
11975         if PURE_SLP_STMT.
11977 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11979         * config/arm/neon.md (ashldi3_neon):  Replace comparison of INTVAL of
11980         operands[2] against 1 with comparison against CONST1_RTX.
11981         (<shift>di3_neon): Likewise.
11982         * config/arm/predicates.md (const0_operand): Replace with comparison
11983         against CONST0_RTX.
11985 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11987         * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
11988         operands[2] against 1 with comparison against CONST1_RTX.
11989         (ashrdi3): Likewise.
11990         (lshrdi3): Likewise.
11991         (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
11992         UINTVAL.
11993         (ashrsi3): Likewise.
11994         (lshrsi3): Likewise.
11995         (rotrsi3): Likewise.
11996         (define_split above *compareqi_eq0): Likewise.
11997         (define_split above "prologue"): Likewise.
11998         * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
11999         * config/arm/predicates.md (shift_operator): Likewise.
12000         (shift_nomul_operator): Likewise.
12001         (sat_shift_operator): Likewise.
12002         (thumb1_cmp_operand): Likewise.
12003         (const_neon_scalar_shift_amount_operand): Replace manual range
12004         check with IN_RANGE.
12005         * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
12006         Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
12008 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12010         * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
12011         with HOST_WIDE_INT_1.
12012         (insv): Likewise.
12013         * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
12014         1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
12015         (arm_canonicalize_comparison): Likewise.
12016         (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
12017         HOST_WIDE_INT_1.
12018         (thumb1_size_rtx_costs): Likewise.
12019         (vfp_const_double_index): Replace cast of 1 to unsigned
12020         HOST_WIDE_INT with HOST_WIDE_INT_1U.
12021         (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
12022         HOST_WIDE_INT_1.
12023         (arm_asan_shadow_offset): Replace cast of 1 to unsigned
12024         HOST_WIDE_INT with HOST_WIDE_INT_1U.
12025         * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
12026         HOST_WIDE_INT with HOST_WIDE_INT_1.
12028 2016-05-24  Marek Polacek  <polacek@redhat.com>
12030         * tree-cfg.h (should_remove_lhs_p): New predicate.
12031         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
12032         * gimplify.c (gimplify_modify_expr): Likewise.
12033         * tree-cfg.c (verify_gimple_call): Likewise.
12034         * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
12035         * gimple-fold.c: Include "tree-cfg.h".
12036         (gimple_fold_call): Use should_remove_lhs_p.
12038 2016-05-24  Richard Biener  <rguenther@suse.de>
12040         PR tree-optimization/71253
12041         * cfganal.h (control_dependences): Make robust against edge
12042         and BB removal.
12043         (control_dependences::control_dependences): Remove edge_list argument.
12044         (control_dependences::get_edge): Remove.
12045         (control_dependences::get_edge_src): Add.
12046         (control_dependences::get_edge_dest): Likewise.
12047         (control_dependences::m_el): Make a vector of edge src/dest index.
12048         * cfganal.c (control_dependences::find_control_dependence): Adjust.
12049         (control_dependences::control_dependences): Likewise.
12050         (control_dependences::~control_dependence): Likewise.
12051         (control_dependences::get_edge): Remove.
12052         (control_dependences::get_edge_src): Add.
12053         (control_dependences::get_edge_dest): Likewise.
12054         * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
12055         get_edge_src.
12056         (perform_tree_ssa_dce): Adjust.
12057         * tree-loop-distribution.c (create_edge_for_control_dependence): Use
12058         get_edge_src.
12059         (pass_loop_distribution::execute): Adjust.  Do loop destroying
12060         conditional on changed.
12062 2016-05-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12064         PR target/69857
12065         * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
12066         return.  Reindent transformation comment and mention the ARM state
12067         behavior.
12069 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
12071         PR middle-end/71252
12072         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
12073         after build_and_add_sum creates new use stmt.
12075 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
12077         * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
12078         load_lanes/grouped_load classification comes first.  Don't check
12079         whether the vectorization factor is a multiple of the group size
12080         for load_lanes.
12082 2016-05-24  Richard Sandiford  <richard.sandiford@arm.com>
12084         * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
12085         GROUP_GAP for single-element interleaving.
12086         * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
12087         variable.
12089 2016-05-24  Richard Biener  <rguenther@suse.de>
12091         PR middle-end/70434
12092         PR c/69504
12093         * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
12094         bases which are accessed with non-invariant indices.
12095         * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
12096         constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
12098 2016-05-24  Kugan Vivekanandarajah  <kuganv@linaro.org>
12100         PR middle-end/71170
12101         * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
12102         (add_to_ops_vec): Add stmt_to_insert.
12103         (add_repeat_to_ops_vec): Init stmt_to_insert.
12104         (insert_stmt_before_use): New.
12105         (transform_add_to_multiply): Remove mult_stmt insertion and add it
12106         to ops vector.
12107         (get_ops): Init stmt_to_insert.
12108         (maybe_optimize_range_tests): Likewise.
12109         (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
12110         (rewrite_expr_tree_parallel): Likewise.
12111         (reassociate_bb): Likewise.
12113 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12115         PR target/71201
12116         * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
12117         ISA 3.0 xxperm fusion alternative.
12118         (altivec_vperm_v8hiv16qi): Likewise.
12119         (altivec_vperm_<mode>_uns_internal): Likewise.
12120         (vperm_v8hiv4si): Likewise.
12121         (vperm_v16qiv8hi): Likewise.
12123 2016-05-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
12124             Kelvin Nilsen  <kelvin@gcc.gnu.org>
12126         * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
12127         vpermr/xxpermr on ISA 3.0.
12128         (altivec_expand_vec_perm_le): Likewise.
12129         * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
12130         (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
12131         ISA 3.0.
12133 2016-05-23  Uros Bizjak  <ubizjak@gmail.com>
12135         * config/i386/i386.h (IS_STACK_MODE): Enable for
12136         TARGET_MIX_SSE_I387.  Rewrite using X87_FLOAT_MODE_P and
12137         SSE_FLOAT_MODE_P macros.
12138         * config/i386/i386.c (ix86_preferred_reload_class): Use
12139         IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
12140         Cleanup regclass processing for CONST_DOUBLE_P.
12141         (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
12142         (ix86_rtx_costs): Remove redundant TARGET_80387 check
12143         with IS_STACK_MODE macro.
12144         * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
12145         with TARGET_SSE2.
12146         (*movdf_internal): Use IS_STACK_MODE macro.
12147         (*movsf_internal): Ditto.
12149 2016-05-23  Marc Glisse  <marc.glisse@inria.fr>
12151         * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
12152         ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
12154 2016-05-23  Jeff Law  <law@redhat.com>
12156         * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
12157         extracted from ...
12158         (fsm_find_control_statement_thread_paths): Call it.
12160 2016-05-23  Martin Jambor  <mjambor@suse.cz>
12162         PR ipa/71234
12163         * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
12164         from_global_constant if t is not NULL.
12166 2016-05-23  Marek Polacek  <polacek@redhat.com>
12168         PR c/49859
12169         * common.opt (Wswitch-unreachable): New option.
12170         * doc/invoke.texi: Document -Wswitch-unreachable.
12171         * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
12172         warning.
12174 2016-05-23  Bin Cheng  <bin.cheng@arm.com>
12176         * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
12177         TMR_INDEX is non-NULL.
12179 2016-05-23  Richard Biener  <rguenther@suse.de>
12181         PR tree-optimization/71230
12182         * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
12183         (try_special_add_to_ops): ... here.  Always test for single-use.
12185 2016-05-23  Martin Jambor  <mjambor@suse.cz>
12187         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
12188         default block if a PHI node in the original one would be resized.
12190 2016-05-23  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
12192         PR tree-optimization/58135
12193         * tree-vect-slp.c: When group size is not multiple
12194         of vector size, allow splitting of store group at
12195         vector boundary.
12197 2016-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
12199         * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
12201 2016-05-22  Jakub Jelinek  <jakub@redhat.com>
12203         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12204         vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
12205         condition.  For !TARGET_AVX512DQ, emit 32x4 instruction instead
12206         of 64x2.
12208         * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
12209         vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
12210         v constraint instead of x and vinserti32x4 insn.
12212         * config/i386/sse.md (i128vldq): New mode iterator.
12213         (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
12214         avx512dq and avx512vl alternatives.
12216         * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
12217         constraint, use maybe_evex prefix instead of vex.
12218         (vec_dupv4sf): Use v constraint instead of x for output
12219         operand except for noavx alternative, use Yv constraint
12220         instead of x for input.  Use maybe_evex prefix instead of vex.
12221         (*vec_dupv4si): Likewise.
12222         (*vec_dupv2di): Likewise.
12224 2016-05-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
12226         PR middle-end/40921
12227         * tree-ssa-reassoc.c (try_special_add_to_ops): New.
12228         (linearize_expr_tree): Call try_special_add_to_ops.
12229         (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
12231 2016-05-21  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
12233         * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
12234         to computed stack_usage.
12236 2016-05-21  Pitchumani Sivanupandi  <pitchumani.s@atmel.com>
12238         PR target/71103
12239         * config/avr/avr.md (define_expand "mov<mode>"): If the source
12240         operand is subreg (symbol_ref) then move the symbol ref to register.
12242 2016-05-21  Jan Hubicka  <hubicka@ucw.cz>
12244         * tree.c (array_at_struct_end_p): Look through MEM_REF.
12246 2016-05-21  Kugan Vivekanandarajah  <kuganv@linaro.org>
12248         PR middle-end/71179
12249         * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
12250         VECTOR type.
12252 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
12254         * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
12255         ranges by calling get_single_symbol and tidy up.  Look more closely
12256         into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
12258 2016-05-20  Jeff Law  <law@redhat.com>
12260         * bitmap.c (bitmap_find_bit): Remove useless test.
12262 2016-05-20  Segher Boessenkool  <segher@kernel.crashing.org>
12264         * function.c (thread_prologue_and_epilogue_insns): Commit the
12265         insertion of the epilogue.
12267 2016-05-20  Martin Jambor  <mjambor@suse.cz>
12269         PR tree-optimization/70884
12270         * tree-sra.c (initialize_constant_pool_replacements): Do not check
12271         should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
12272         (sort_and_splice_var_accesses): Do not consider multiple scalar reads
12273         of constant pool data as a reason for scalarization.
12275 2016-05-20  Eric Botcazou  <ebotcazou@adacore.com>
12277         * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
12278         for naked functions.
12279         (thumb1_expand_prologue): Likewise.
12281 2016-05-20  Nathan Sidwell  <nathan@acm.org>
12283         * config/nvptx/nptx.c (nvptx_option_override): Only set
12284         flag_toplevel_reorder, if not explicitly specified.  Set
12285         flag_no_common, unless explicitly specified.
12287 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
12289         * calls.c (can_implement_as_sibling_call_p): Mark param
12290         reg_parm_stack_space with ATTRIBUTE_UNUSED.
12292 2016-05-20  Uros Bizjak  <ubizjak@gmail.com>
12294         * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
12295         Use IS_STACK_MODE when calculating cost of standard 80387 constants.
12296         Fallthru to CONST_VECTOR case to calculate cost of standard SSE
12297         constants.
12298         <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
12299         (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
12300         and CASE_CONST_ANY.
12302 2016-05-20  Cesar Philippidis  <cesar@codesourcery.com>
12304         * config/nvptx/nvptx.md (sincossf3): New pattern.
12306 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
12308         * calls.c (maybe_complain_about_tail_call): New function.
12309         (initialize_argument_information): Call
12310         maybe_complain_about_tail_call when clearing *may_tailcall.
12311         (can_implement_as_sibling_call_p): Call
12312         maybe_complain_about_tail_call when returning false.
12313         (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
12314         ensure try_tail_call is set.  Call maybe_complain_about_tail_call
12315         if tail-call optimization fails.
12316         * cfgexpand.c (expand_call_stmt): Initialize
12317         CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
12318         * gimple-pretty-print.c (dump_gimple_call): Dump
12319         gimple_call_must_tail_p.
12320         * gimple.c (gimple_build_call_from_tree): Call
12321         gimple_call_set_must_tail with the value of
12322         CALL_EXPR_MUST_TAIL_CALL.
12323         * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
12324         (gimple_call_set_must_tail): New function.
12325         (gimple_call_must_tail_p): New function.
12326         * print-tree.c (print_node): Update printing of TREE_STATIC
12327         to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
12328         * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
12329         trailing comment listing applicable flags.
12330         * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
12332 2016-05-20  David Malcolm  <dmalcolm@redhat.com>
12334         * calls.c (expand_call): Move "Rest of purposes for tail call
12335         optimizations to fail" to...
12336         (can_implement_as_sibling_call_p): ...this new function, and
12337         split into multiple "if" statements.
12339 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
12341         * cfgloop.h (expected_loop_iterations_unbounded,
12342         expected_loop_iterations): Unconstify.
12343         * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
12344         profile with known upper bound; return 3 when profile is absent.
12345         (expected_loop_iterations): Update.
12347 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
12349         * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
12350         and get_max_loop_iterations_int.
12352 2016-05-20  Jan Hubicka  <hubicka@ucw.cz>
12354         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
12355         realistic upper bounds here.
12357 2016-05-20  Jakub Jelinek  <jakub@redhat.com>
12359         PR c++/71210
12360         * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
12361         calls if the LHS is variable length or has addressable type.
12362         If targets[0]->decl is a noreturn call with void return type and
12363         zero arguments, adjust fntype and remove lhs in that case.
12365 2016-05-20  Marc Glisse  <marc.glisse@inria.fr>
12367         PR tree-optimization/71079
12368         PR tree-optimization/71206
12369         * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
12371 2016-05-20  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12373         * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
12374         (get_vec_alignment_for_array_decl): Likewise.
12375         (get_vec_alignment_for_record_decl): Likewise.
12376         (increase_alignment::execute): Move code to find alignment to
12377         get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
12378         (type_align_map): New hash_map.
12380 2016-05-20  Richard Guenther  <rguenther@suse.de>
12382         PR tree-optimization/29756
12383         * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
12384         * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
12385         * fold-const.c (operand_equal_p): Likewise.
12386         (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
12387         * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
12388         * tree-inline.c (estimate_operator_cost): Likewise.
12389         * tree-pretty-print.c (dump_generic_node): Likewise.
12390         * tree-ssa-operands.c (get_expr_operands): Likewise.
12391         * cfgexpand.c (expand_debug_expr): Likewise.
12392         * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
12393         * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
12394         * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
12395         * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
12396         vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
12397         (execute_update_addresses_taken): Do it.
12399 2016-05-20  Richard Biener  <rguenther@suse.de>
12401         PR tree-optimization/71185
12402         * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
12403         register operations.
12405 2016-05-20  Richard Biener  <rguenther@suse.de>
12407         * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
12408         gimple_seq_add_seq_without_update.
12409         (release_bb_predicate): Assert we have no operands to free.
12410         (if_convertible_loop_p_1): Calculate post dominators later.
12411         Do not free BB predicates here.
12412         (combine_blocks): Do not recompute BB predicates.
12413         (version_loop_for_if_conversion): Save BB predicates around
12414         loop versioning.
12416 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12418         * function.c (make_epilogue_seq): Remove epilogue_end parameter.
12419         (thread_prologue_and_epilogue_insns): Remove bb_flags.  Restructure
12420         code.  Ignore sibcalls on EDGE_IGNORE edges.
12421         * shrink-wrap.c (handle_simple_exit): New function.  Set EDGE_IGNORE
12422         on edges for sibcalls that run without prologue.  The rest of the
12423         function is combined from...
12424         (fix_fake_fallthrough_edge): ... this, and ...
12425         (try_shrink_wrapping): ... a part of this.  Remove the bb_with
12426         function argument, make it a local variable.
12428 2016-05-19  Sandra Loosemore  <sandra@codesourcery.com>
12430         * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
12431         --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
12432         for 32-bit mode and SEH for 64-bit.
12433         * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
12434         TARGET_64BIT_DEFAULT.
12436 2016-05-19  Ryan Burn  <contact@rnburn.com>
12438         * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
12439         * gengtype.c (open_base_files): Add cilk.h to ifiles.
12441 2016-05-19  Uros Bizjak  <ubizjak@gmail.com>
12443         * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
12444         force pending loads from memory.
12446 2016-05-19  Kelvin Nilsen  <kelvin@gcc.gnu.org>
12448         * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
12449         (UNSPEC_DARN_32): New unspec constant.
12450         (UNSPEC_DARN_RAW): New unspec constant.
12451         (darn_32): New instruction.
12452         (darn_raw): New instruction.
12453         (darn): New instruction.
12454         * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
12455         support and documentation for this macro.
12456         (BU_P9_MISC_1): New macro definition.
12457         (BU_P9_64BIT_MISC_0): New macro definition.
12458         (BU_P9_MISC_0): New macro definition.
12459         (darn_32): New builtin definition.
12460         (darn_raw): New builtin definition.
12461         (darn): New builtin definition.
12462         * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
12463         RS6000_BUILTIN_0 directives to surround each occurrence of
12464         #include "rs6000-builtin.def".
12465         (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
12466         RS6000_BTM_64BIT flags to the returned mask, depending on
12467         configuration.
12468         (def_builtin): Correct an error in the assignments made to the
12469         debugging variable attr_string.
12470         (rs6000_expand_builtin): Add support for no-operand built-in
12471         functions.
12472         (builtin_function_type): Remove fatal_error assertion that is no
12473         longer valid.
12474         (rs6000_common_init_builtins): Add support for no-operand built-in
12475         functions.
12476         * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
12477         definition.
12478         (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
12479         definition.
12480         (RS6000_BTM_64BIT): New macro definition.
12481         * doc/extend.texi: Document __builtin_darn (void),
12482         __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
12483         functions.
12485 2016-05-19  Jan Hubicka  <hubicka@ucw.cz>
12487         * tree-vect-loop.c (vect_analyze_loop_2): Use also
12488         max_loop_iterations_int.
12490 2016-05-19  Marek Polacek  <polacek@redhat.com>
12492         PR tree-optimization/71031
12493         * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
12494         condition and adjust the code a bit.
12496 2016-05-19  Martin Liska  <mliska@suse.cz>
12498         * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
12499         auto_vec instead of vec.
12501 2016-05-19  Martin Liska  <mliska@suse.cz>
12503         * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
12505 2016-05-19  Martin Liska  <mliska@suse.cz>
12507         * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
12509 2016-05-19  Martin Liska  <mliska@suse.cz>
12511         * ipa-pure-const.c (set_function_state): Remove an existing
12512         funct_state.
12513         (remove_node_data): Do not free it as it's released
12514         in set_function_state.
12516 2016-05-19  Martin Liska  <mliska@suse.cz>
12518         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
12519         bitmap.
12521 2016-05-19  Martin Liska  <mliska@suse.cz>
12523         * omp-simd-clone.c (simd_clone_adjust): Release vector.
12525 2016-05-19  Martin Liska  <mliska@suse.cz>
12527         * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
12528         an auto_vec instead of re-creating it.
12530 2016-05-19  Martin Liska  <mliska@suse.cz>
12532         * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
12533         auto_vec instead of vec.
12535 2016-05-19  Martin Liska  <mliska@suse.cz>
12537         * lto-section-in.c (lto_get_section_data): Call
12538         lto_check_version with additional argument.
12539         * lto-streamer.c (lto_check_version): Add new argument.
12540         * lto-streamer.h (lto_check_version): Likewise.
12542 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12544         * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
12545         Don't add cost of inner memory when handling sign-extended loads.
12547 2016-05-19  Ilya Enkovich  <ilya.enkovich@intel.com>
12549         PR rtl-optimization/71148
12550         * cse.c (cse_main): Free dominance info.
12551         (rest_of_handle_cse): Don't free dominance info.
12552         (rest_of_handle_cse2): Likewise.
12553         (rest_of_handle_cse_after_global_opts): Likewise.
12555 2016-05-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
12557         PR target/71056
12558         * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
12559         NULL_TREE early if NEON is not available.  Remove now redundant check
12560         in ARM_CHECK_BUILTIN_MODE.
12562 2016-05-19  Maxim Ostapenko  <m.ostapenko@samsung.com>
12564         PR sanitizer/64354
12565         * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
12566         builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
12567         * doc/cpp.texi: Document new macros.
12569 2016-05-19  Bin Cheng  <bin.cheng@arm.com>
12571         PR tree-optimization/69848
12572         * tree-vect-loop.c (vectorizable_reduction): Don't factor
12573         comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
12575 2016-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
12577         * function.c (thread_prologue_and_epilogue_insn): Move the
12578         "goto epilogue_done" one block later.
12580 2016-05-19  Richard Biener  <rguenther@suse.de>
12582         PR tree-optimization/70729
12583         * passes.def: Move LIM pass before PRE.  Remove no longer
12584         required copyprop and move first DCE out of the loop pipeline.
12586 2016-05-18  David Malcolm  <dmalcolm@redhat.com>
12588         PR driver/69265
12589         * Makefile.in (GCC_OBJS): Move spellcheck.o to...
12590         (OBJS-libcommon-target): ...here.
12591         * opts-common.c: Include spellcheck.h.
12592         (cmdline_handle_error): Build a vec of valid options and use it
12593         to suggest provide hints for misspelled arguments.
12595 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
12597         PR c++/71100
12598         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
12599         lhs if it has TREE_ADDRESSABLE type.
12601 2016-05-18  Uros Bizjak  <ubizjak@gmail.com>
12603         PR target/71145
12604         * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
12605         (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
12607 2016-05-18  Martin Jambor  <mjambor@suse.cz>
12609         PR ipa/69708
12610         * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
12611         input for NOP_EXPR pass-through functions.
12612         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
12613         aggregate global constant VAR_DECLs in constant jump functions.
12615 2016-05-18  Martin Jambor  <mjambor@suse.cz>
12617         PR ipa/69708
12618         * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
12619         from TREE_READONLY parameters.
12621 2016-05-18  Martin Jambor  <mjambor@suse.cz>
12623         PR ipa/69708
12624         * cgraph.h (cgraph_indirect_call_info): New field
12625         guaranteed_unmodified.
12626         * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
12627         to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
12628         appropriate.
12629         * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
12630         pass the parameter value to ipa_find_agg_cst_for_param.
12631         * ipa-prop.c (ipa_load_from_parm_agg): New parameter
12632         guaranteed_unmodified, store AA results there instead of bailing out
12633         if present.
12634         (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
12635         (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
12636         (find_constructor_constant_at_offset): New function.
12637         (ipa_find_agg_cst_from_init): Likewise.
12638         (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
12639         static initializers of contants, report back through a new paameter
12640         from_global_constant if that was the case.
12641         (try_make_edge_direct_simple_call): Also pass parameter value to
12642         ipa_find_agg_cst_for_param, check guaranteed_unmodified when
12643         appropriate.
12644         (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
12645         (ipa_read_indirect_edge_info): Likewise.
12646         * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
12647         (ipa_load_from_parm_agg): Likewise.
12649 2016-05-18  Jiong Wang  <jiong.wang@arm.com>
12651         PR rtl-optimization/71150
12652         * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
12653         check.
12655 2016-05-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
12657         PR target/70915
12658         * config/rs6000/constraints.md (wE constraint): New constraint
12659         for a vector constant that can be loaded with XXSPLTIB.
12660         (wM constraint): New constraint for a vector constant of a 1's.
12661         (wS constraint): New constraint for a vector constant that can be
12662         loaded with XXSPLTIB and a vector sign extend instruction.
12663         * config/rs6000/predicates.md (xxspltib_constant_split): New
12664         predicates for wE/wS constraints.
12665         (xxspltib_constant_nosplit): Likewise.
12666         (easy_vector_constant): Add support for constants that can be
12667         loaded via XXSPLTIB.
12668         (all_ones_constant): New predicate for vector constant with all
12669         1's set.
12670         (splat_input_operand): Add support for ISA 3.0 word splat operations.
12671         * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
12672         return if a constant can be loaded with the ISA 3.0 XXSPLTIB
12673         instruction and possibly with a sign extension.
12674         (output_vec_const_move): Add support for XXSPLTIB. If we are
12675         loading up 0/-1 into Altivec registers, prefer using VSPLTISW
12676         instead of XXLXOR/XXLORC.
12677         (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
12678         operations.
12679         (rs6000_legitimize_reload_address): Likewise.
12680         (rs6000_output_move_128bit): Use output_vec_const_move to emit
12681         constants.
12682         * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
12683         combine VSX_M and VSX_M2 into one iterator.
12684         (VSX_M2): Likewise.
12685         (VSINT_84): New iterators for loading constants with XXSPLTIB.
12686         (VSINT_842): Likewise.
12687         (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
12688         (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
12689         XXSPLTIB instruction.
12690         (xxspltib_<mode>_nosplit): Likewise.
12691         (xxspltib_<mode>_split): New insn to load up constants with
12692         XXSPLTIB and a sign extend instruction.
12693         (vsx_mov<mode>): Replace single move that handled all vector types
12694         with separate 32-bit and 64-bit moves.  Combine the movti_<bit>
12695         moves (when -mvsx-timode is in effect) into the main vector
12696         moves.  Eliminate separate moves for <VSr> <VSa>, where the
12697         preferred register class (<VSr>) is listed first, and the
12698         secondary register class (<VSa>) is listed second with a '?' to
12699         discourage use.  Prefer loading 0/-1 in any VSX register for ISA
12700         3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
12701         that if the register was involved in a slow operation, the
12702         clear/set operation does not wait for the slow operation to
12703         finish.  Adjust the length attributes for 32-bit mode.  Use
12704         rs6000_output_move_128bit and drop the use of the string
12705         instructions for 32-bit movti when -mvsx-timode is in effect.  Use
12706         spacing so that the alternatives and attributes don't generate
12707         long lines, and put things in columns, so that it is easier to
12708         match up the operands and attributes with the insn alternatives.
12709         (vsx_mov<mode>_64bit): Likewise.
12710         (vsx_mov<mode>_32bit): Likewise.
12711         (vsx_movti_64bit): Fold movti into normal vector moves.
12712         (vsx_movti_32bit): Likewise.
12713         (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
12714         splat instructions.
12715         (vsx_splat_v4si_internal): Likewise.
12716         (vsx_splat_v4sf_internal): Likewise.
12717         (vector fusion peepholes): Use VSX_M instead of VSX_M2.
12718         (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
12719         extend vector elements.
12720         (vsx_sign_extend_hi_<mode>): Likewise.
12721         (vsx_sign_extend_si_v2di): Likewise.
12722         * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
12723         declaration.
12724         * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
12725         constraints.  Add trailing period to wL documentation.
12727 2016-05-18  Richard Sandiford  <richard.sandiford@arm.com>
12729         PR middle-end/71020
12730         * tree-dfa.h (replace_abnormal_ssa_names): Declare.
12731         * tree-dfa.c (replace_abnormal_ssa_names): New function.
12732         * tree-call-cdce.c: Include tree-dfa.h.
12733         (can_guard_call_p): New function, extracted from...
12734         (can_use_internal_fn): ...here.
12735         (shrink_wrap_one_built_in_call_with_conds): Remove failure path
12736         and return void.
12737         (shrink_wrap_one_built_in_call): Likewise.
12738         (use_internal_fn): Likewise.
12739         (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
12740         and return void.  Call replace_abnormal_ssa_names.
12741         (pass_call_cdce::execute): Check can_guard_call_p during the
12742         initial walk.  Assume shrink_wrap_conditional_dead_built_in_calls
12743         will always change something.
12745 2016-05-18  Martin Jambor  <mjambor@suse.cz>
12747         PR ipa/70646
12748         * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
12749         if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
12751 2016-05-18  Martin Jambor  <mjambor@suse.cz>
12753         PR ipa/70646
12754         * ipa-inline.h (condition): New field size.
12755         * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
12756         for comaprison and store it into the new condition.
12757         (evaluate_conditions_for_known_args): Use condition size to check
12758         access sizes for all but CHANGED conditions.
12759         (unmodified_parm_1): New parameter size_p, store access size into it.
12760         (unmodified_parm): Likewise.
12761         (unmodified_parm_or_parm_agg_item): Likewise.
12762         (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
12763         (set_cond_stmt_execution_predicate): Extract access sizes and store
12764         them to conditions.
12765         (set_switch_stmt_execution_predicate): Likewise.
12766         (will_be_nonconstant_expr_predicate): Likewise.
12767         (will_be_nonconstant_predicate): Likewise.
12768         (inline_read_section): Stream condition size.
12769         (inline_write_summary): Likewise.
12771 2016-05-18  Richard Biener  <rguenther@suse.de>
12773         * tree-ssa-loop-im.c (determine_max_movement): Properly add
12774         condition cost to PHI cost instead of total_cost.
12776 2016-05-18  Martin Liska  <mliska@suse.cz>
12778         PR fortran/70856
12779         * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
12780         merged variables.
12782 2016-05-18  Richard Biener  <rguenther@suse.de>
12784         * lto-streamer.h (LTO_major_version): Bump to 6.
12786 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
12788         * function.c (make_split_prologue_seq, make_prologue_seq,
12789         make_epilogue_seq): New functions, factored out from...
12790         (thread_prologue_and_epilogue_insns): Here.
12792 2016-05-18  Segher Boessenkool  <segher@kernel.crashing.org>
12794         * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12795         cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
12796         of before.  Add a comment.
12798 2016-05-18  Bin Cheng  <bin.cheng@arm.com>
12800         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
12801         expression pointer, not pointer to the pointer.
12803 2016-05-18  Jakub Jelinek  <jakub@redhat.com>
12805         * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
12806         (avx2_pbroadcast<mode>): Add another alternative with v instead
12807         of x constraints in it, using <pbroadcast_evex_isa> isa.
12808         (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
12810         * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
12811         constraint x instead of v in second alternative, add avx512bw
12812         alternative.
12814         * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
12815         constraint x instead of v in second alternative, add avx512bw
12816         alternative.
12818         * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
12819         constraint x instead of v in second alternative, add avx512bw
12820         alternative.
12822         * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
12823         avx512bw alternative.
12825 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
12827         * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
12828         array to 128 chars.
12829         (define_insn "*andnottf3"): Ditto.
12830         (define_insn "*<code><mode>3"/any_logic): Ditto.
12831         (define_insn "*<code>tf3"/any_logic): Ditto.
12832         (define_insn "sse2_storehpd"): Use Yv constraint for scalar
12833         operand to block AVX-512VL insn variant emit when it is not enabled.
12835 2016-05-18  Kirill Yukhin  <kirill.yukhin@intel.com>
12837         * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
12838         constraint fot SF mode.
12840 2016-05-18  Petr Murzin  <petr.murzin@intel.com>
12841             Kirill Yukhin  <kirill.yukhin@intel.com>
12843         * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
12844         modifiers.
12845         (define_insn "rsqrt14<mode>"): Ditto.
12846         (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
12847         (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
12848         (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
12849         (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
12850         (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
12851         Ditto.
12852         (define_insn "*avx512f_gatherdi<mode>"): Ditto.
12853         (define_insn "*avx512f_scatterdi<mode>"): Ditto.
12854         * config/i386/i386.c (ix86_print_operand): Expand check for size
12855         override codes for Intel syntax.
12857 2016-05-18  Richard Biener  <rguenther@suse.de>
12859         PR tree-optimization/71168
12860         * tree-loop-distribution.c (distribute_loop): Move *destroy_p
12861         initialization earlier.
12863 2016-05-18  James Greenhalgh  <james.greenhalgh@arm.com>
12865         * config/aarch64/aarch64-simd.md
12866         (aarch64_reduc_plus_internal<mode>): Rename to...
12867         (reduc_plus_scal): ...This, and remove previous implementation.
12869 2016-05-18  Richard Biener  <rguenther@suse.de>
12871         * passes.def: Put late dse and cd_dce in canonical order.
12873 2016-05-17  Jan Hubicka  <hubicka@ucw.cz>
12875         * ipa-inline-transform.c (preserve_function_body_p): Look for
12876         first non-thunk clone.
12877         (save_function_body): Save into first non-thunk.
12878         * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
12879         up call stmt id.
12880         (lto_output_node): Inline thunks don't need body in every
12881         partition.
12882         * lto-streamer-in.c: Do not fixup thunk clones.
12883         * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
12884         thunks.
12885         * tree-inline.c (copy_bb): Be prepared for target node to be new after
12886         folding suceeds.
12888 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
12890         PR middle-end/63586
12891         * tree-ssa-reassoc.c (transform_add_to_multiply): New.
12892         (reassociate_bb): Call transform_add_to_multiply.
12894 2016-05-17  Kugan Vivekanandarajah  <kuganv@linaro.org>
12896         * config/aarch64/aarch64.c (all_extensions): Removed unused
12897         static variable.
12899 2016-05-17  Nathan Sidwell  <nathan@acm.org>
12901         * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
12902         (TARGET_FUNCTION_ARG_BOUNDARY): Override.
12904 2016-05-17  Mikhail Maltsev  <maltsevm@gmail.com>
12906         PR tree-optimization/54579
12907         PR middle-end/55299
12908         * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
12910 2016-05-17  Marek Polacek  <polacek@redhat.com>
12912         PR ipa/71146
12913         * tree-inline.c (expand_call_inline): Call
12914         maybe_remove_unused_call_args.
12916 2016-05-17  Jim Wilson  <jim.wilson@linaro.org>
12918         * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
12919         * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
12920         * doc/md.texi (fmin@var{m}3): Likewise.
12922 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
12924         * match.pd (X & C): New transformation.
12926 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
12928         * match.pd (~X & Y): New transformation.
12930 2016-05-17  Marc Glisse  <marc.glisse@inria.fr>
12932         * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
12933         information for new SSA_NAME.
12934         (simplify_conversion_using_ranges): Get range through get_range_info
12935         instead of get_value_range.
12937 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
12939         * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
12940         Remove inline assembly.
12941         (vmvn_s16): Likewise.
12942         (vmvn_s32): Likewise.
12943         (vmvn_u8): Likewise.
12944         (vmvn_u16): Likewise.
12945         (vmvn_u32): Likewise.
12946         (vmvnq_s8): Likewise.
12947         (vmvnq_s16): Likewise.
12948         (vmvnq_s32): Likewise.
12949         (vmvnq_u8): Likewise.
12950         (vmvnq_u16): Likewise.
12951         (vmvnq_u32): Likewise.
12952         (vmvn_p8): Likewise.
12953         (vmvnq_p16): Likewise.
12955 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
12957         * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
12958         Use builtin.
12959         (vmul_n_s16): Likewise.
12960         (vmul_n_s32): Likewise.
12961         (vmul_n_u16): Likewise.
12962         (vmul_n_u32): Likewise.
12963         (vmulq_n_f32): Likewise.
12964         (vmulq_n_f64): Likewise.
12965         (vmulq_n_s16): Likewise.
12966         (vmulq_n_s32): Likewise.
12967         (vmulq_n_u16): Likewise.
12968         (vmulq_n_u32): Likewise.
12970 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
12972         * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
12973         to all supported modes.  Rename to "*aarch64_mul3_elt_from_dup".
12975 2016-05-17  Jiong Wang  <jiong.wang@arm.com>
12977         * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
12978         to *aarch64_fma4_elt_from_dup<mode>.
12979         (*aarch64_fnma4_elt_to_128df): Rename to
12980         *aarch64_fnma4_elt_from_dup<mode>.
12981         * config/aarch64/arm_neon.h (vfma_n_f64): New.
12982         (vfms_n_f32): Likewise.
12983         (vfms_n_f64): Likewise.
12984         (vfmsq_n_f32): Likewise.
12985         (vfmsq_n_f64): Likewise.
12987 2016-05-17  Gerald Pfeifer  <gerald@pfeifer.com>
12989         * wide-int.h: Change fixed_wide_int_storage from class to struct.
12991 2016-05-17  Richard Biener  <rguenther@suse.de>
12993         PR tree-optimization/71132
12994         * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
12995         Only add control dependences for blocks in the loop.
12996         (build_rdg): Adjust.
12997         (generate_code_for_partition): Return whether loop should
12998         be destroyed and delay that.
12999         (distribute_loop): Likewise.
13000         (pass_loop_distribution::execute): Record loops to be destroyed
13001         and perform delayed destroying of loops.
13003 2016-05-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13005         PR target/70809
13006         * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
13008 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
13010         * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
13012 2016-05-17  Ilya Enkovich  <ilya.enkovich@intel.com>
13014         PR target/71114
13015         * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
13016         insertion point for instructions generated by validize_mem.
13018 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
13020         * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
13021         in brackets.
13023 2016-05-17  James Greenhalgh  <james.greenhalgh@arm.com>
13025         * config/aarch64/aarch64.c
13026         (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
13027         rather than a macro.
13029 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
13031         * doc/invoke.texi (AArch64 Options): Various updates.
13033 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
13035         * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
13036         into instrumentation thunks.
13037         * cif-code.def (CIF_CHKP): New.
13039 2016-05-16  Uros Bizjak  <ubizjak@gmail.com>
13041         * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
13043 2016-05-16  Martin Jambor  <mjambor@suse.cz>
13045         * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
13046         (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
13048 2016-05-16  Marek Polacek  <polacek@redhat.com>
13050         * gimple.c (maybe_remove_unused_call_args): Fix typos in the
13051         commentary.
13053 2016-05-16  Martin Jambor  <mjambor@suse.cz>
13055         PR hsa/70857
13056         * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
13057         the outlined kernel function.
13059 2016-05-16  Robert Suchanek  <robert.suchanek@imgtec.com>
13061         * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
13062         (ISA_HAS_DLSA): Ditto.
13064 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
13066         * config/mips/m5100.md (m51_int_load): Update the latency to 2.
13068 2016-05-16  Nathan Sidwell  <nathan@acm.org>
13070         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
13071         (nvptx_name_replacement): Restore.  Add comment.
13072         (write_fn_proto, write_fn_proto_from_insn,
13073         nvptx_output_call_insn): Restore
13074         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
13076 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
13078         * config/aarch64/aarch64.md
13079         (add<mode>3_compareC_cconly_imm): Remove use of %w.
13080         (add<mode>3_compareC_imm): Likewise.
13081         (<optab>si3_uxtw): Split into register and immediate variants.
13082         (andsi3_compare0_uxtw): Likewise.
13083         (and<mode>3_compare0): Likewise.
13084         (and<mode>3nr_compare0): Likewise.
13085         (stack_protect_test_<mode>): Don't use %x for memory operands.
13087 2016-05-16  Matthew Fortune  <matthew.fortune@imgtec.com>
13089         * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
13091 2016-05-16  Wilco Dijkstra  <wdijkstr@arm.com>
13093         * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
13094         Split integer shifts into shift_reg and bfm.
13095         (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
13096         (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
13097         (ror<mode>3_insn): Likewise.
13098         (<optab>si3_insn_uxtw): Likewise.
13099         (<optab><mode>3_insn): Change to rotate_imm.
13100         (extr<mode>5_insn_alt): Likewise.
13101         (extrsi5_insn_uxtw): Likewise.
13102         (extrsi5_insn_uxtw_alt): Likewise.
13104 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
13106         * doc/tm.texi: Regenerate.
13107         * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
13108         (TARGET_INVALID_RETURN_TYPE): Remove.
13109         * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
13110         TARGET_INVALID_RETURN_TYPE.
13111         * target.def (invalid_parameter_type): Remove.
13112         (invalid_return_type): Remove.
13114 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
13116         * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
13117         on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
13118         calls from thunk.
13119         * ipa-inline-transform.c (inline_call): When inlining into thunk produce
13120         gimple body.
13121         (preserve_function_body_p): No need to preserve function body
13122         * cif-codes.def (CIF_THUNK): Remove.
13123         * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
13125 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
13127         * tree-inline.c (expand_call_inline): recurse after inlining thunk.
13129 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
13131         * tree.c (free_lang_data_in_decl): Also set target/optimization flags
13132         for thunks.
13134 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
13136         * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
13137         (inline_small_functions): Do not look for function symbol when
13138         resetting caches.
13140 2016-05-16  Jan Hubicka  <hubicka@ucw.cz>
13142         * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
13143         of inline thunks
13145 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
13146             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13147             Jiong Wang  <jiong.wang@arm.com>
13149         * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
13150         for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
13151         Define __ARM_FP16_ARGS when appropriate.
13152         * config/arm/arm.c (arm_invalid_parameter_type): Remove
13153         declaration.
13154         (arm_invalid_return_type): Likewise.
13155         (TARGET_INVALID_PARAMETER_TYPE): Remove.
13156         (TARGET_INVALID_RETURN_TYPE): Remove.
13157         (aapcs_vfp_sub_candidate): Allow HFmode.
13158         (aapcs_vfp_allocate): Add comment.  Support HFmode.
13159         (aapcs_vfp_allocate_return_reg): Likewise.
13160         (struct aapcs_cp_arg_layout): Slightly reword comments for
13161         is_return_candidate and allocate_return_reg.
13162         (output_mov_vfp): Update assert.
13163         (arm_hard_regno_mode_ok): Remove comment, update HF-mode
13164         condition.
13165         (arm_invalid_parameter_type): Remove.
13166         (amr_invalid_return_type): Remove.
13167         * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
13168         * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
13169         * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
13171 2016-05-16  Matthew Wahab  <matthew.wahab@arm.com>
13173         * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13174         * config/aarch64/arch64-protos.h
13175         (aarch64_legitimize_reload_address): Remove.
13176         * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
13177         Remove.
13179 2016-05-16  Eric Botcazou  <ebotcazou@adacore.com>
13181         * configure.ac: Add ACX_NONCANONICAL_HOST.
13182         * configure: Regenerate.
13183         * Makefile.in: Set host_noncanonical.
13185 2016-05-14  Uros Bizjak  <ubizjak@gmail.com>
13187         PR target/71097
13188         * config/i386/i386.md (*movtf_internal): Before register allocation,
13189         do not allow FP constants for CM_MEDIUM memory model, allow only
13190         standard FP constants for CM_LARGE and CM_LARGE_PIC models.
13191         (*movxf_internal): Ditto.
13192         (*movdf_internal): Ditto.
13193         (*movsf_internal): Ditto.
13195 2016-05-13  Segher Boessenkool  <segher@kernel.crashing.org>
13197         PR rtl-optimization/67483
13198         * combine.c (make_compound_operation): Don't call extract_left_shift
13199         with negative shift amounts.
13201 2016-05-13  Jakub Jelinek  <jakub@redhat.com>
13203         PR bootstrap/71071
13204         * fold-const.c (fold_checksum_tree): Allow modification
13205         of TYPE_ALIAS_SET during folding.
13207         * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
13208         ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
13209         (ix86_split_to_parts): Likewise.  Fix up formatting.
13211 2016-05-13  H.J. Lu  <hongjiu.lu@intel.com>
13213         * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
13214         unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
13215         printf format.
13217 2016-05-13  Nathan Sidwell  <nathan@acm.org>
13219         * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
13220         (nvptx_name_replacement): Delete.
13221         (write_fn_proto, write_fn_proto_from_insn,
13222         nvptx_output_call_insn): Remove nvptx_name_replacement call.
13223         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
13224         * langhooks.c (add_builtin_funcction_common): Call
13225         targetm.mangle_decl_assembler_name.
13227         * config/nvptx/nvptx.c (write_fn_proto): Handle
13228         BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
13230 2016-05-13  Martin Liska  <mliska@suse.cz>
13232         * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
13233         and PRIu64 in printf format.
13235 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13237         * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
13238         comment.
13240 2016-05-13  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13242         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
13243         Change --param max-completely-peeled-times to
13244         --param max-completely-peel-times in dump file printing.
13246 2016-05-13  Richard Biener  <rguenther@suse.de>
13248         PR tree-optimization/42587
13249         * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
13250         (find_bswap_or_nop_1): Likewise.
13251         (bswap_replace): Likewise.
13253 2016-05-13  Martin Liska  <mliska@suse.cz>
13255         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
13256         Initialize a variable with default value.
13258 2016-05-13  Martin Liska  <mliska@suse.cz>
13260         * doc/invoke.texi: Enhance explanation of error recovery
13261         of sanitizers.
13263 2016-05-13  Martin Liska  <mliska@suse.cz>
13265         * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
13266         (struct cost_pair): Change inv_expr_id (int) to inv_expr
13267         (iv_inv_expr_ent *).
13268         (struct iv_inv_expr_ent): Comment struct fields.
13269         (sort_iv_inv_expr_ent): New function.
13270         (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
13271         (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
13272         a hash_map between iv_inv_expr_ent and number of usages.
13273         (niter_for_exit): Fix coding style.
13274         (tree_ssa_iv_optimize_init): Use renamed variable.
13275         (determine_base_object): Fix coding style.
13276         (alloc_iv): Likewise.
13277         (find_interesting_uses_outside): Likewise.
13278         (add_candidate_1): Likewise.
13279         (add_standard_iv_candidates): Likewise.
13280         (set_group_iv_cost): Replace inv_expr_id with inv_expr.
13281         (prepare_decl_rtl): Fix coding style.
13282         (get_address_cost): Likewise.
13283         (get_shiftadd_cost): Likewise.
13284         (force_expr_to_var_cost): Likewise.
13285         (compare_aff_trees): Likewise.
13286         (get_expr_id): Restructure the function.
13287         (get_loop_invariant_expr_id): Renamed to
13288         get_loop_invariant_expr.
13289         (get_computation_cost_at): Replace usage of inv_expr_id with
13290         inv_expr.
13291         (get_computation_cost): Likewise.
13292         (determine_group_iv_cost_generic): Likewise.
13293         (determine_group_iv_cost_address): Likewise.
13294         (iv_period): Fix coding style.
13295         (iv_elimination_compare_lt): Likewise.
13296         (may_eliminate_iv): Likewise.
13297         (determine_group_iv_cost_cond):  Replace usage of inv_expr_id with
13298         inv_expr.
13299         (determine_group_iv_costs): Dump invariant expressions.
13300         (iv_ca_recount_cost): Use the newly added hash_map.
13301         (iv_ca_set_remove_invariants): Fix coding style.
13302         (iv_ca_set_add_invariants): Fix coding style.
13303         (iv_ca_set_no_cp): Utilize the newly added hash_map for used
13304         invariants.
13305         (iv_ca_set_cp): Likewise.
13306         (iv_ca_new): Initialize the newly added hash_map and remove
13307         initialization of fields.
13308         (iv_ca_free): Delete the hash_map.
13309         (iv_ca_dump): Dump invariant expressions.
13310         (iv_ca_extend): Fix coding style.
13311         (try_add_cand_for): Likewise.
13312         (create_new_ivs): Dump information about # of avg iterations and
13313         # of used invariant expressions.
13314         (rewrite_use_compare): Fix coding style.
13315         (free_loop_data): Set default value for max_inv_expr_id.
13317 2016-05-13  Ilya Enkovich  <ilya.enkovich@intel.com>
13319         * cse.c (rest_of_handle_cse): Use cleanup_cfg
13320         returned value cse_cfg_altered computation.
13321         (rest_of_handle_cse2): Likewise.
13322         (rest_of_handle_cse_after_global_opts): Likewise.
13324 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13326         PR target/53440
13327         * config/arm/arm.c (arm32_output_mi_thunk): New.
13328         (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
13329         to split Thumb1 vs TARGET_32BIT functionality.
13330         (arm_thumb1_mi_thunk): New.
13332 2016-05-13  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
13334         * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
13335         to true.
13337 2016-05-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
13339         PR target/71080
13340         * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
13342 2016-05-13  Eric Botcazou  <ebotcazou@adacore.com>
13344         * builtins.c (expand_builtin_memcmp): Do not emit the call here.
13345         (expand_builtin_trap): Emit a regular call.
13346         (set_builtin_user_assembler_name): Remove obsolete cases.
13347         * dse.c (scan_insn): Adjust.
13348         * except.c: Include calls.h.
13349         (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
13350         emit a regular call to setjmp.
13351         * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
13352         (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
13353         (emit_block_move_via_libcall): Delete.
13354         (block_move_fn): Delete.
13355         (init_block_move_fn): Likewise.
13356         (emit_block_move_libcall_fn): Likewise.
13357         (emit_block_op_via_libcall): New function.
13358         (set_storage_via_libcall): Tidy up and use memset builtin.
13359         (block_clear_fn): Delete.
13360         (init_block_clear_fn): Likewise.
13361         (clear_storage_libcall_fn): Likewise.
13362         (expand_assignment): Call emit_block_move_via_libcall.
13363         Do not include gt-expr.h.
13364         * expr.h (emit_block_op_via_libcall): Declare.
13365         (emit_block_copy_via_libcall): New inline function.
13366         (emit_block_move_via_libcall): Likewise.
13367         (emit_block_comp_via_libcall): Likewise.
13368         (block_clear_fn): Delete.
13369         (init_block_move_fn): Likewise.
13370         (init_block_clear_fn): Likewise.
13371         (emit_block_move_via_libcall): Likewise.
13372         (set_storage_via_libcall): Add default parameter value.
13373         * libfuncs.h (enum libfunc_index): Remove obsolete values.
13374         (abort_libfunc): Delete.
13375         (memcpy_libfunc): Likewise.
13376         (memmove_libfunc): Likewise.
13377         (memcmp_libfunc): Likewise.
13378         (memset_libfunc): Likewise.
13379         (setbits_libfunc): Likewise.
13380         (setjmp_libfunc): Likewise.
13381         (longjmp_libfunc): Likewise.
13382         (profile_function_entry_libfunc): Likewise.
13383         (profile_function_exit_libfunc): Likewise.
13384         (gcov_flush_libfunc): Likewise.
13385         * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
13386         and DECL_VISIBILITY on the declaration.
13387         (init_optabs): Do not initialize obsolete libfuncs.
13388         * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
13389         * tree-core.h (ECF_RET1): Define.
13390         (ECF_TM_PURE): Adjust.
13391         (ECF_TM_BUILTIN): Likewise.
13392         * tree.c (set_call_expr_flags): Deal with ECF_RET1.
13393         (build_common_builtin_nodes): Initialize abort builtin.
13394         Add ECF_RET1 on memcpy, memmove and memset builtins.
13395         Pass final flags for alloca and alloca_with_align builtins.
13396         * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
13397         obsolete builtins.
13398         * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
13399         * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
13400         set_storage_via_libcall and call emit_block_copy_via_libcall.
13402 2016-05-12  Uros Bizjak  <ubizjak@gmail.com>
13404         * config/i386/i386.md (*call_got_x32): Change operand 0 to
13405         DImode before it is passed to ix86_output_call_operand.
13406         (*call_value_got_x32): Ditto for operand 1.
13408 2016-05-12  Jiong Wang  <jiong.wang@arm.com>
13410         PR rtl-optimization/70904
13411         * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
13412         reload for wide mode.
13414 2016-05-12  Marek Polacek  <polacek@redhat.com>
13416         PR c/70756
13417         * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
13418         * langhooks.c (lhd_incomplete_type_error): Add location parameter.
13419         * langhooks.h (incomplete_type_error): Likewise.
13420         * tree.c (size_in_bytes_loc): Renamed from size_in_bytes.  Add location
13421         parameter, pass it down to incomplete_type_error.
13422         * tree.h (size_in_bytes): New inline overload.
13423         (size_in_bytes_loc): Renamed from size_in_bytes.
13425 2016-05-12  Richard Biener  <rguenther@suse.de>
13427         PR tree-optimization/71059
13428         * tree-ssa-pre.c (phi_translate_1): Fully fold translated
13429         nary before looking up or entering the expression into the VN
13430         hashes.
13431         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
13432         Make sure to re-use NARYs without result as inserted by
13433         phi-translation.
13435 2016-05-12  Richard Biener  <rguenther@suse.de>
13437         PR tree-optimization/71062
13438         * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
13439         field.
13440         * tree-ssa-structalias.c (set_uids_in_ptset): Set
13441         vars_contains_restrict if the var is a restrict tag.
13442         * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
13443         do not disambiguate pointers against it.
13444         (dump_points_to_solution): Re-structure and adjust for new
13445         vars_contains_restrict flag.
13446         * gimple-pretty-print.c (pp_points_to_solution): Likewise.
13448 2016-05-12  Martin Liska  <mliska@suse.cz>
13450         * doc/invoke.texi: Explain connection between
13451         -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
13453 2016-05-12  Ilya Enkovich  <ilya.enkovich@intel.com>
13455         PR tree-optimization/71006
13456         * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
13457         consider COND_EXPR as a mask producer.
13459 2016-05-12  Marek Polacek  <polacek@redhat.com>
13461         PR driver/71063
13462         * opts.c (common_handle_option): Detect missing argument for --help^.
13464 2016-05-12  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
13466         PR target/70830
13467         * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
13468         when popping the PC and within an interrupt handler routine.
13469         Add missing tab to output of "ldmfd".
13470         (output_return_instruction): Output LDMFD with SP update rather
13471         than POP when returning from interrupt handler.
13473 2016-05-12  Jakub Jelinek  <jakub@redhat.com>
13475         * config/i386/i386.md (isa): Add x64_avx512dq, enable if
13476         TARGET_64BIT && TARGET_AVX512DQ.
13477         * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
13478         (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
13479         (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
13480         *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
13481         (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
13482         (*vec_extractv4si_zext): Add avx512dq alternative.
13483         (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
13484         use v instead of x constraint in other alternatives where possible.
13486         * config/i386/sse.md (sse2_loadld): Use v instead of x
13487         constraint in alternatives 0,1,4.
13489         * config/i386/sse.md (pinsr_evex_isa): New mode attr.
13490         (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
13491         v constraints instead of x and <pinsr_evex_isa> isa attribute.
13493         PR target/71019
13494         * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
13495         <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
13496         is not emitted unless TARGET_AVX512BW.
13497         (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
13498         Likewise.  For TARGET_AVX512BW, use "=v" constraint instead of "=x"
13499         for the result operand.
13501         * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
13502         constraint instead of x in avx alternatives.  Use maybe_evex instead
13503         of vex prefix.
13505         * config/i386/constraints.md (Yv): New constraint.
13506         * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
13507         TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
13508         * config/i386/i386.md (avx512fvecmode): New mode attr.
13509         (*pushtf): Use v constraint instead of x.
13510         (*movtf_internal): Likewise.  For TARGET_AVX512VL and
13511         xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
13512         (*absneg<mode>2): Use Yv constraint instead of x constraint.
13513         (*absnegtf2_sse): Likewise.
13514         (copysign<mode>3_const, copysign<mode>3_var): Likewise.
13515         * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
13516         avx512f alternatives.
13517         (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
13519 2016-05-12  Richard Biener  <rguenther@suse.de>
13521         PR tree-optimization/71060
13522         * tree-data-ref.c (initialize_data_dependence_relation): Do not
13523         require exact match of DR_BASE_OBJECT but only matching address and
13524         type.
13526 2016-05-12  Richard Biener  <rguenther@suse.de>
13528         PR tree-optimization/70986
13529         * cfganal.c: Include cfgloop.h.
13530         (dfs_find_deadend): Prefer to take edges exiting loops.
13532 2016-05-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13534         * gcc.target/powerpc/pr70963.c: Require at least power8 at both
13535         compile and run time.
13537 2016-05-11  Mikhail Maltsev  <maltsevm@gmail.com>
13539         PR c/43651
13540         * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
13542 2016-05-11  Uros Bizjak  <ubizjak@gmail.com>
13544         * config/i386/i386.c (legitimize_pic_address): Use
13545         copy_to_suggested_reg instead of gen_movsi.
13547 2016-05-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
13549         * config/rs6000/predicates.md (quad_memory_operand): Move most of
13550         the code into quad_address_p and call it to share code with
13551         vsx_quad_dform_memory_operand.
13552         (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
13553         d-form support.
13554         * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
13555         bit instead of being a separate word.  Split -mpower9-dform into
13556         two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
13557         * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
13558         for the register class supporting 128-bit quad word memory offsets.
13559         (mode_supports_vsx_dform_quad): Helper function to return if the
13560         register class uses quad word memory offsets.
13561         (rs6000_debug_addr_mask): Add support for quad word memory offsets.
13562         (rs6000_debug_reg_global): Always print if we are using LRA or not.
13563         (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
13564         instructions are enabled, set up the appropriate addr_masks for
13565         128-bit types.
13566         (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
13567         -mpower9-dform-scalar, instead of -mpower9-dform.
13568         (rs6000_option_override_internal): Split -mpower9-dform into two
13569         switches, -mpower9-dform-scalar and -mpower9-dform-vector.  The
13570         -mpower9-dform switch sets or clears both.  If we are not using
13571         the LRA register allocator, do not enable -mpower9-dform-vector by
13572         default.  If we are using LRA, enable -mpower9-dform-vector and
13573         -mvsx-timode if it is appropriate.  Issue a warning if either
13574         -mpower9-dform-vector or -mvsx-timode are explicitly used without
13575         enabling LRA.
13576         (quad_address_offset_p): New helper function to return if the
13577         offset is legal for quad word memory instructions.
13578         (quad_address_p): New function to determin if GPR or vector
13579         register quad word memory addresses are legal.
13580         (mem_operand_gpr): Validate quad word address offsets.
13581         (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
13582         d-form (register + offset) instructions.
13583         (offsettable_ok_by_alignment): Likewise.
13584         (rs6000_legitimate_offset_address_p): Likewise.
13585         (legitimate_lo_sum_address_p): Likewise.
13586         (rs6000_legitimize_address): Likewise.
13587         (rs6000_legitimize_reload_address): Add more debug statements for
13588         -mdebug=addr.
13589         (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
13590         d-form instructions.
13591         (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
13592         d-form instructions.  Distinguish different cases in debug
13593         output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
13594         d-form instructions.
13595         (rs6000_preferred_reload_class): Likewise.
13596         (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
13597         instructions.  If ISA 3.0 is available, generate lxvx/stxvx instead
13598         of the ISA 2.06 indexed memory instructions.
13599         (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
13600         use them to save/restore the saved vector registers instead of
13601         using Altivec instructions.
13602         (rs6000_emit_epilogue): Likewise.
13603         (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
13604         (rs6000_opt_masks): Split -mpower9-dform into
13605         -mpower9-dform-scalar and -mpower9-dform-vector.
13606         (rs6000_print_options_internal): Print -mno-<switch> if <switch>
13607         was not selected.
13608         * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
13609         ISA 3.0 vector indexed memory instructions, and fold the code into
13610         the normal mov<mode> patterns.
13611         (p9_vecstore_<mode>): Likewise.
13612         (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
13613         instructions.
13614         (vsx_movti_64bit): Likewise.
13615         (vsx_movti_32bit): Likewise.
13616         * config/rs6000/constraints.md (wO constraint): New constraint for
13617         ISA 3.0 vector d-form support.
13618         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
13619         -mpower9-dform-scalar instead of -mpower9-dform.  Add note not to
13620         include -mpower9-dform-vector until we switch over to LRA.
13621         (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
13622         switches, -mpower9-dform-scalar and -mpower9-dform-vector.
13623         * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
13624         * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
13625         for -mpower9-dform and -mlra.
13626         * doc/md.texi (wO constraint): Document wO constraint.
13628 2016-05-11  Alexander Monakov  <amonakov@ispras.ru>
13630         * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
13631         'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
13632         * genautomata.c (output_internal_insn_code_evaluation): Simplify.
13633         Move handling of non-insn arguments inline into the sole user:
13634         (output_trans_func): ...here.
13635         (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
13636         in emitted function prototype.
13637         (output_internal_insn_latency_func): Ditto.  Simplify.
13638         (output_internal_maximal_insn_latency_func): Ditto.  Delete
13639         always-unused argument.
13640         (output_insn_latency_func): Ditto.
13641         (output_maximal_insn_latency_func): Ditto.
13643 2016-05-11  Richard Biener  <rguenther@suse.de>
13645         PR tree-optimization/71055
13646         * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
13647         sth with precision not equal to access size verify we don't chop
13648         off bits.
13650 2016-05-11  Richard Biener  <rguenther@suse.de>
13652         PR debug/71057
13653         * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
13654         (dwarf2out_finish): Move retry_incomplete_types call ...
13655         (dwarf2out_early_finish): ... here.
13657 2016-05-11  Richard Biener  <rguenther@suse.de>
13659         PR middle-end/71002
13660         * alias.c (reference_alias_ptr_type): Preserve alias-set zero
13661         if the langhook insists on it.
13662         * fold-const.c (make_bit_field_ref): Add arg for the original
13663         reference and preserve its alias-set.
13664         (decode_field_reference): Take exp by reference and adjust it
13665         to the original memory reference.
13666         (optimize_bit_field_compare): Adjust callers.
13667         (fold_truth_andor_1): Likewise.
13668         * gimplify.c (gimplify_expr): Adjust in-SSA form test.
13670 2016-05-11  Ilya Enkovich  <ilya.enkovich@intel.com>
13672         PR middle-end/70807
13673         * cfgrtl.h (delete_insn_and_edges): Now return bool.
13674         * cfgrtl.c (delete_insn_and_edges): Likewise.
13675         * config/i386/i386.c (convert_scalars_to_vector): Remove
13676         redundant code.
13677         * cse.c (cse_insn): Compute cse_cfg_altered.
13678         (delete_trivially_dead_insns): Likewise.
13679         (cse_cc_succs): Likewise.
13680         (rest_of_handle_cse): Free dominance info if required.
13681         (rest_of_handle_cse2): Likewise.
13682         (rest_of_handle_cse_after_global_opts): Likewise.
13684 2016-05-11  Alan Modra  <amodra@gmail.com>
13686         * config/rs6000/rs6000.c (is_complex_IBM_long_double,
13687         abi_v4_pass_in_fpr): New functions.
13688         (rs6000_function_arg_boundary): Exclude complex IBM long double
13689         from 64-bit alignment when ABI_V4.
13690         (rs6000_function_arg, rs6000_function_arg_advance_1,
13691         rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
13693 2016-05-10  Segher Boessenkool  <segher@kernel.crashing.org>
13695         PR rtl-optimization/71028
13696         * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
13697         jump with just a return in the fallthrough block if the branch
13698         block contains just a return as well.
13700 2016-05-10  Marc Glisse  <marc.glisse@inria.fr>
13702         * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
13703         * match.pd ((X & Y) ^ Y): ... this.
13704         ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
13705         | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
13707 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
13709         * read-md.c (require_char_ws): New function.
13710         (read_string): Simplify using require_char_ws.
13711         (handle_constants): Likewise.
13712         (handle_enum): Likewise.
13713         (handle_file): Likewise.
13714         * read-md.h (require_char_ws): New declaration.
13715         * read-rtl.c (read_conditions): Simplify using require_char_ws.
13716         (read_mapping): Likewise.
13717         (read_rtx_code): Likewise.
13718         (read_nested_rtx): Likewise.
13720 2016-05-10  James Norris  <jnorris@codesourcery.com>
13722         * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
13723         if offloading is enabled and -fopenacc or -fopenmp is specified.
13724         (CRTOFFLOADEND): Likewise.
13725         (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
13726         (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
13728 2016-05-10  Uros Bizjak  <ubizjak@gmail.com>
13730         * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
13731         gotoff_operand code paths.  Use copy_to_suggested_regs and
13732         expand_simple_binop where appropriate.  Cleanup.
13734 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
13736         PR target/70799
13737         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
13738         integer constants.
13739         (dimode_scalar_chain::vector_const_cost): New.
13740         (dimode_scalar_chain::compute_convert_gain): Handle constants.
13741         (dimode_scalar_chain::convert_op): Likewise.
13742         (dimode_scalar_chain::convert_insn): Likewise.
13744 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
13746         * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
13747         unary operation, not a binary one.
13749 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
13751         PR middle-end/70877
13752         * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
13753         calls with type casted fndecl.
13755 2016-05-10  Ilya Enkovich  <ilya.enkovich@intel.com>
13757         PR tree-optimization/70786
13758         * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
13759         * calls.c (initialize_argument_information): Bind bounds
13760         with corresponding args passed by reference.
13762 2016-05-10  Jakub Jelinek  <jakub@redhat.com>
13764         PR target/70927
13765         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
13766         *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
13767         use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
13768         accordingly.
13770 2016-05-10  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
13772         PR target/70963
13773         * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
13774         code for a zero scale factor.
13775         (vsx_xvcvdpuxds_scale): Likewise.
13777 2016-05-10  David Malcolm  <dmalcolm@redhat.com>
13779         * diagnostic-show-locus.c (layout::layout): Call show_ruler
13780         if show_ruler_p was set on the context.
13781         (layout::show_ruler): New method.
13782         * diagnostic.h (struct diagnostic_context): Add field
13783         "show_ruler_p".
13785 2016-05-10  Richard Biener  <rguenther@suse.de>
13787         PR tree-optimization/71039
13788         * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
13789         (chk_uses): New function.
13790         (propagate_with_phi): Verify we can safely replicate the lhs of an
13791         aggregate assignment on all incoming edges.
13793 2016-05-10  Oleg Endo  <olegendo@gcc.gnu.org>
13795         * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
13796         Forward declare.
13797         (rx_atomic_sequence): New class.
13798         * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
13799         (is_interrupt_func, is_fast_interrupt_func): Make non-static and
13800         non-inline.
13801         (rx_atomic_sequence::rx_atomic_sequence,
13802         rx_atomic_sequence::~rx_atomic_sequence): New functions.
13803         * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
13804         CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
13805         CTRLREG_INTB): New constants.
13806         (FETCHOP): New code iterator.
13807         (fethcop_name, fetchop_name2): New iterator code attributes.
13808         (QIHI): New mode iterator.
13809         (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
13810         atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
13811         atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
13813 2016-05-10  Martin Liska  <mliska@suse.cz>
13815         * tree-inline.c (remap_dependence_clique): Do not remap
13816         debugging statements.
13818 2016-05-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
13820         * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
13821         ("*fixuns_truncdfdi2_z13")
13822         ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
13823         ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
13824         ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
13826 2016-05-10  Richard Biener  <rguenther@suse.de>
13828         PR tree-optimization/70497
13829         PR tree-optimization/28367
13830         * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
13831         split out from ...
13832         (visit_reference_op_load): ... here.
13833         (vn_reference_lookup_3): Use it to handle subreg-like accesses
13834         with simplified BIT_FIELD_REFs.
13835         * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
13836         * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
13837         correctly.
13839 2016-05-10  Pierre-Marie de Rodat  <derodat@adacore.com>
13841         * dwarf2out.c (add_abstract_origin_attribute): Adjust
13842         documentation comment.  For BLOCK nodes, add a
13843         DW_AT_abstract_origin attribute that points to the DIE generated
13844         for the origin BLOCK.
13845         (gen_lexical_block_die): Call add_abstract_origin_attribute for
13846         blocks from inlined functions.
13848 2016-05-10  Alan Modra  <amodra@gmail.com>
13850         PR target/70947
13851         * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
13852         regrename modifying insns saving lr before __morestack call.
13853         * config/rs6000/rs6000.md (split_stack_return): Similarly for
13854         insns restoring lr after __morestack call.
13856 2016-05-09  Jakub Jelinek  <jakub@redhat.com>
13858         * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
13859         lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
13860         expanders.
13861         * config/i386/sse.md (vec_interleave_high<mode>,
13862         vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
13863         <avx512>_vpermt2var<mode>3_maskz): Likewise.
13865 2016-05-04  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>
13867         * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
13868         function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
13869         parallel reassociation for power8 and forward.
13871 2016-05-09  Uros Bizjak  <ubizjak@gmail.com>
13873         * config/i386/i386.md (absneg splitters with general regs): Use
13874         general_reg_operand predicate.
13875         (btsq peephole2): Use x86_64_immediate_operand to check if new
13876         value is suitable for immediate operand.  Generate emitted insn
13877         using RTL expressions.
13878         (btcq peephole2): Ditto.
13879         (btrq peephole2): Ditto.  Generate correct immediate operand
13880         for AND masking.
13882 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
13884         * cfgexpand.c (expand_debug_expr): Fix address offset for negative
13885         bitpos.
13887 2016-05-09  Richard Sandiford  <richard.sandiford@arm.com>
13889         * tree-affine.c (wide_int_constant_multiple_p): Add missing
13890         pointer dereference.
13892 2016-05-09  Richard Biener  <rguenther@suse.de>
13894         PR tree-optimization/70985
13895         * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
13896         op0 isn't a gimple register.
13898 2016-05-09  Prachi Godbole  <prachi.godbole@imgtec.com>
13900         * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
13901         (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
13902         (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
13903         (i6400_fpu_mult): New cpu units.
13904         (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
13905         (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
13906         (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
13907         (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
13908         (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
13909         (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
13910         (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
13911         (i6400_msa_long_float4, i6400_msa_long_float5)
13912         (i6400_msa_long_float8, i6400_msa_fdiv_df)
13913         (i6400_msa_fdiv_sf): New reservations.
13914         * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
13915         (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
13916         (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
13917         (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
13918         (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
13919         (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
13920         (msa_short_cmp, msa_short_float2, msa_short_logic3)
13921         (msa_short_store4, msa_long_load, msa_short_store)
13922         (msa_long_logic, msa_long_float2, msa_long_float4)
13923         (msa_long_float5, msa_long_float8, msa_long_mult)
13924         (msa_long_fdiv, msa_long_div): New reservations.
13926 2016-05-09  Robert Suchanek  <robert.suchanek@imgtec.com>
13927             Sameera Deshpande  <sameera.deshpande@imgtec.com>
13928             Matthew Fortune  <matthew.fortune@imgtec.com>
13929             Graham Stott  <graham.stott@imgtec.com>
13930             Chao-ying Fu  <chao-ying.fu@imgtec.com>
13932         * config.gcc: Add MSA header file for mips*-*-* target.
13933         * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
13934         (Ubv8i, Urv8):  New constraints.
13935         * config/mips/mips-ftypes.def: Add function types for MSA
13936         builtins.
13937         * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
13938         (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
13939         * config/mips/mips-msa.md: New file.
13940         * config/mips/mips-protos.h
13941         (mips_split_128bit_const_insns): New prototype.
13942         (mips_msa_idiv_insns): Likewise.
13943         (mips_split_128bit_move): Likewise.
13944         (mips_split_128bit_move_p): Likewise.
13945         (mips_split_msa_copy_d): Likewise.
13946         (mips_split_msa_insert_d): Likewise.
13947         (mips_split_msa_fill_d): Likewise.
13948         (mips_expand_msa_branch): Likewise.
13949         (mips_const_vector_same_val_p): Likewise.
13950         (mips_const_vector_same_bytes_p): Likewise.
13951         (mips_const_vector_same_int_p): Likewise.
13952         (mips_const_vector_shuffle_set_p): Likewise.
13953         (mips_const_vector_bitimm_set_p): Likewise.
13954         (mips_const_vector_bitimm_clr_p): Likewise.
13955         (mips_msa_vec_parallel_const_half): Likewise.
13956         (mips_msa_output_division): Likewise.
13957         (mips_ldst_scaled_shift): Likewise.
13958         (mips_expand_vec_cond_expr): Likewise.
13959         * config/mips/mips.c (enum mips_builtin_type): Add
13960         MIPS_BUILTIN_MSA_TEST_BRANCH.
13961         (mips_gen_const_int_vector_shuffle): New prototype.
13962         (mips_const_vector_bitimm_set_p): New function.
13963         (mips_const_vector_bitimm_clr_p): Likewise.
13964         (mips_const_vector_same_val_p): Likewise.
13965         (mips_const_vector_same_bytes_p): Likewise.
13966         (mips_const_vector_same_int_p): Likewise.
13967         (mips_const_vector_shuffle_set_p): Likewise.
13968         (mips_symbol_insns): Forbid loading symbols via immediate for
13969         MSA.
13970         (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
13971         stores.
13972         (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
13973         MSA.
13974         (mips_lx_address_p): Add support load indexed address for MSA.
13975         (mips_address_insns): Add calculation of instructions needed for
13976         stores and loads for MSA.
13977         (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR.  Handle
13978         CONST_VECTOR for MSA and let it fall through.
13979         (mips_ldst_scaled_shift): New function.
13980         (mips_subword_at_byte): Likewise.
13981         (mips_msa_idiv_insns): Likewise.
13982         (mips_legitimize_move): Validate MSA moves.
13983         (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases.  Add
13984         calculation of costs for MSA division.
13985         (mips_split_move_p): Check if MSA moves need splitting.
13986         (mips_split_move): Split MSA moves if necessary.
13987         (mips_split_128bit_move_p): New function.
13988         (mips_split_128bit_move): Likewise.
13989         (mips_split_msa_copy_d): Likewise.
13990         (mips_split_msa_insert_d): Likewise.
13991         (mips_split_msa_fill_d): Likewise.
13992         (mips_output_move): Handle MSA moves.
13993         (mips_expand_msa_branch): New function.
13994         (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
13995         Reinstate 'y' modifier.
13996         (mips_file_start): Add MSA .gnu_attribute.
13997         (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
13998         FPRs.
13999         (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
14000         (mips_class_max_nregs): Add register size for MSA supported mode.
14001         (mips_cannot_change_mode_class): Allow conversion between MSA
14002         vector modes and TImode.
14003         (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
14004         instruction.
14005         (mips_secondary_reload_class): Force MSA loads/stores via memory.
14006         (mips_preferred_simd_mode): Add preffered modes for MSA.
14007         (mips_vector_mode_supported_p): Add MSA supported modes.
14008         (mips_autovectorize_vector_sizes): New function.
14009         (mips_msa_output_division): Likewise.
14010         (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
14011         (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
14012         (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
14013         (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
14014         (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
14015         (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
14016         (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
14017         (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
14018         (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
14019         (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
14020         (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
14021         (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
14022         (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
14023         (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
14024         (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
14025         (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
14026         (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
14027         (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
14028         (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
14029         (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
14030         (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
14031         (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
14032         (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
14033         (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
14034         (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
14035         (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
14036         (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
14037         (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
14038         (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
14039         (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
14040         (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
14041         (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
14042         (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
14043         (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
14044         (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
14045         (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
14046         (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
14047         (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
14048         (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
14049         (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
14050         (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
14051         (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
14052         (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
14053         (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
14054         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14055         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14056         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14057         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14058         (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14059         (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14060         (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14061         (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14062         (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
14063         (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
14064         (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
14065         (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
14066         (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
14067         (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
14068         (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
14069         (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
14070         (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
14071         (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
14072         (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
14073         (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
14074         (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
14075         (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
14076         (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
14077         (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
14078         (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
14079         (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
14080         (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
14081         (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
14082         (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
14083         (CODE_FOR_msa_ldi_d): New code_aliasing macros.
14084         (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
14085         slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
14086         srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
14087         srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
14088         srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
14089         srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
14090         bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
14091         bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
14092         bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
14093         binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
14094         binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
14095         binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
14096         addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
14097         subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
14098         max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
14099         max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
14100         maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
14101         mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
14102         mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
14103         min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
14104         ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
14105         clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
14106         clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
14107         clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
14108         clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
14109         clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
14110         st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
14111         sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
14112         adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
14113         adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
14114         ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
14115         aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
14116         aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
14117         subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
14118         subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
14119         subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
14120         asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
14121         maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
14122         msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
14123         div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
14124         hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
14125         hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
14126         mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
14127         dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
14128         dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
14129         dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
14130         sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
14131         splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
14132         pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
14133         ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
14134         ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
14135         ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
14136         ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
14137         bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
14138         fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
14139         pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
14140         nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
14141         copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
14142         insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
14143         bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
14144         fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
14145         fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
14146         fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
14147         fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
14148         fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
14149         fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
14150         fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
14151         fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
14152         fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
14153         fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
14154         mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
14155         msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
14156         fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
14157         flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
14158         ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
14159         ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
14160         ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
14161         move_v builtins.
14162         (mips_get_builtin_decl_index): New array.
14163         (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
14164         (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
14165         (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
14166         (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
14167         (mips_init_builtins): Initialize mips_get_builtin_decl_index
14168         array.
14169         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
14170         hook.
14171         (mips_expand_builtin_insn): Prepare operands for
14172         CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
14173         CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
14174         CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
14175         CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
14176         CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
14177         CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
14178         CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
14179         CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
14180         CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
14181         CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
14182         CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
14183         CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
14184         CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
14185         CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
14186         CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
14187         CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
14188         CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
14189         CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
14190         CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
14191         CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
14192         CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
14193         CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
14194         CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
14195         CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
14196         CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
14197         CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
14198         CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
14199         CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
14200         CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
14201         CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
14202         CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
14203         CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
14204         CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
14205         CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
14206         CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
14207         CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
14208         CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
14209         CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
14210         CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
14211         CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
14212         CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
14213         (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
14214         (mips_set_compression_mode): Disallow MSA with MIPS16 code.
14215         (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
14216         These are set implicitly and an error is reported if overridden.
14217         (mips_expand_builtin_msa_test_branch): New function.
14218         (mips_expand_msa_shuffle): Likewise.
14219         (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
14220         (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
14221         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
14222         (mips_expand_vec_unpack): Add support for MSA.
14223         (mips_expand_vector_init): Likewise.
14224         (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
14225         instead of const0_rtx.
14226         (mips_msa_vec_parallel_const_half): New function.
14227         (mips_gen_const_int_vector): Likewise.
14228         (mips_gen_const_int_vector_shuffle): Likewise.
14229         (mips_expand_msa_cmp): Likewise.
14230         (mips_expand_vec_cond_expr): Likewise.
14231         * config/mips/mips.h
14232         (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
14233         (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
14234         specified.
14235         (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
14236         (ISA_HAS_MSA): New macro.
14237         (UNITS_PER_MSA_REG): Likewise.
14238         (BITS_PER_MSA_REG): Likewise.
14239         (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
14240         (MSA_REG_FIRST): New macro.
14241         (MSA_REG_LAST): Likewise.
14242         (MSA_REG_NUM): Likewise.
14243         (MSA_REG_P): Likewise.
14244         (MSA_REG_RTX_P): Likewise.
14245         (MSA_SUPPORTED_MODE_P): Likewise.
14246         (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
14247         (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
14248         * config/mips/mips.md: Include mips-msa.md.
14249         (alu_type): Add simd_add.
14250         (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
14251         (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
14252         simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
14253         simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
14254         simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
14255         simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
14256         simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
14257         simd_move, simd_load, simd_store.  Choose "multi" for moves
14258         for "qword_mode".
14259         (qword_mode): New attribute.
14260         (insn_count): Add instruction count for quad moves.
14261         Increase the count for MIPS SIMD division.
14262         (UNITMODE): Add UNITMODEs for vector types.
14263         (addsub): New code iterator.
14264         * config/mips/mips.opt (mmsa): New option.
14265         * config/mips/msa.h: New file.
14266         * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
14267         specified.
14268         * config/mips/mti-linux.h: Likewise.
14269         * config/mips/predicates.md
14270         (const_msa_branch_operand): New constraint.
14271         (const_uimm3_operand): Likewise.
14272         (const_uimm4_operand): Likewise.
14273         (const_uimm5_operand): Likewise.
14274         (const_uimm8_operand): Likewise.
14275         (const_imm5_operand): Likewise.
14276         (aq10b_operand): Likewise.
14277         (aq10h_operand): Likewise.
14278         (aq10w_operand): Likewise.
14279         (aq10d_operand): Likewise.
14280         (const_m1_operand): Likewise.
14281         (reg_or_m1_operand): Likewise.
14282         (const_exp_2_operand): Likewise.
14283         (const_exp_4_operand): Likewise.
14284         (const_exp_8_operand): Likewise.
14285         (const_exp_16_operand): Likewise.
14286         (const_vector_same_val_operand): Likewise.
14287         (const_vector_same_simm5_operand): Likewise.
14288         (const_vector_same_uimm5_operand): Likewise.
14289         (const_vector_same_uimm6_operand): Likewise.
14290         (const_vector_same_uimm8_operand): Likewise.
14291         (par_const_vector_shf_set_operand): Likewise.
14292         (reg_or_vector_same_val_operand): Likewise.
14293         (reg_or_vector_same_simm5_operand): Likewise.
14294         (reg_or_vector_same_uimm6_operand): Likewise.
14295         * doc/extend.texi (MIPS SIMD Architecture Functions): New
14296         section.
14297         * doc/invoke.texi (-mmsa): Document new option.
14299 2016-05-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
14301         * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
14302         * configure: Regenerate.
14303         * config.in: Regenerate.
14304         * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
14305         on -fvtable-verify.
14306         * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
14307         (ENDFILE_VTV_SPEC): Define.
14309 2016-05-09  Kaushik Phatak  <kaushik.phatak@kpit.com>
14311         * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
14312         registers in all interrupt handlers if necessary.
14313         (rl78_option_override): Add warning.
14314         (MUST_SAVE_MDUC_REGISTERS): New macro.
14315         (rl78_expand_epilogue): Restore the MDUC registers if necessary.
14316         * config/rl78/rl78.c (check_mduc_usage): New function.
14317         (mduc_regs): New structure to hold MDUC register data.
14318         * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
14319         (mulsi3_g13): Add is_g13_muldiv_insn attribute.
14320         (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
14321         (mulhi3_g13): Add is_g13_muldiv_insn attribute.
14322         * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
14323         * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
14325 2016-05-09  Bin Cheng  <bin.cheng@arm.com>
14327         * tree-if-conv.c (tree-ssa-loop.h): Include header file.
14328         (tree-ssa-loop-niter.h): Ditto.
14329         (idx_within_array_bound, ref_within_array_bound): New functions.
14330         (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
14331         Factor out check on writable base object to ...
14332         (base_object_writable): ... here.
14334 2016-05-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
14336         * config/arm/arm.md (probe_stack): Add modes to set source
14337         and destination.
14339 2016-05-09  Bernd Schmidt  <bschmidt@redhat.com>
14341         * regrename.c (base_reg_class_for_rename): New static function.
14342         (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
14344 2016-05-08  Jan Hubicka  <hubicka@ucw.cz>
14346         * cgraph.c (thunk_adjust): Export.
14347         * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
14348         * cgraphunit.c (thunk_adjust): Export.
14349         (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
14350         thunks.
14351         * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
14352         inlinable.
14353         * tree-inline.c (expand_call_inline): Expand thunks inline.
14355 2016-05-08  Uros Bizjak  <ubizjak@gmail.com>
14357         PR target/70998
14358         * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
14359         (*sse2_vd_cvtss2sd): Ditto.
14360         * config/i386/i386.md
14361         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
14362         Generate *sse2_vd_cvtsd2ss pattern.
14363         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
14364         Generate *sse2_vd_cvtss2sd pattern.
14366 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
14368         * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
14369         * config/sh/sh.c (get_sh_arg_class): ... this new function.  Update its
14370         users.
14372 2016-05-08  Oleg Endo  <olegendo@gcc.gnu.org>
14374         * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
14375         * config/sh/sh.c: Define and declare variables on first use throughout
14376         the file.
14377         (current_function_interrupt): Change to bool type.
14378         (frame_insn): Rename to emit_frame_insn and update users.
14379         (push_regs): Use bool for 'interrupt_handler' argument.
14380         (save_schedule_s): Remove.
14381         (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
14382         (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
14383         targetm.asm_out.unaligned_op.di.
14384         (gen_far_branch): Remove redundant forward declaration.
14385         (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
14386         MAX_TEMPS, save_schedule_ssave_schedule): Remove.
14387         (sh_set_return_address, sh_function_ok_for_sibcall,
14388         scavenge_reg): Update comments.
14389         (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
14390         (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
14391         (sh_attr_renesas_p): Remove unnecessary parentheses.
14392         (branch_dest): Simplify.
14393         * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
14394         Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
14395         (CUMULATIVE_ARGS): Change macro to typedef.
14396         (current_function_interrupt): Change to bool type.
14397         (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
14398         Surround with __cplusplus ifdef.
14399         (sh_compare_op0, sh_compare_op1): Remove.
14400         (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
14402 2016-05-07  Jim Wilson  <jim.wilson@linaro.org>
14404         * config/arm/arm.md: (arch): Add neon.
14405         (arch_enabled): Return yes for arch neon when TARGET_NEON.
14406         * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3.  Add
14407         neon_move as type for alt 3.  Add arch attr enabling alt 3 for neon.
14408         Emit vmov.i64 for alt 3.  Renumber alternatives 3 to 8.  Adjust
14409         attributes for alt renumbering.  Mark alt 3 as non-predicable.
14410         (thumb2_movdf_vfp): Likewise.
14412 2016-05-07  Uros Bizjak  <ubizjak@gmail.com>
14414         * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
14415         to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
14416         (*andqi_1): Add preferred_for_speed attribute to disparage
14417         alternative 2 for TARGET_PARTIAL_REG_STALL targets.
14418         (*<code>qi_1): Ditto.
14419         (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
14420         alternative 1 for TARGET_PARTIAL_REG_STALL targets.
14421         (*ashlqi3_1): Ditto.
14422         (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
14423         Add preferred_for_size attribute to disparage alternative 0 and
14424         preferred_for_speed attribute to disparage alternative 1 for
14425         TARGET_PARTIAL_REG_STALL targets.
14427 2016-05-07  Tom de Vries  <tom@codesourcery.com>
14429         PR tree-optimization/70956
14430         * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
14431         def.
14433 2016-05-07  Oleg Endo  <olegendo@gcc.gnu.org>
14435         * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
14436         * config/sh/sh.c (sh_cbranch_distance): Implement it.
14437         * config/sh/sh.md (branch_zero): Remove define_attr.
14438         (define_delay): Disable delay slot if branch distance is one insn.
14440 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
14442         * config/i386/i386.md (LEAMODE): New mode attribute.
14443         (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
14444         (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
14445         and LEAMODE mode attribute.  Use VOIDmode const_0_to_3_operand as
14446         operand 2 predicate.
14447         (*lea<mode>_general_2): Use VOIDmode for const248_operand.
14448         (*lea<mode>_general_3): Ditto.
14449         (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
14451 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
14453         * genmddump.c (main): Convert argv from char ** to const char **.
14455 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
14457         * coretypes.h (OVERRIDE): New macro.
14458         (FINAL): New macro.
14460 2016-05-06  Eric Botcazou  <ebotcazou@adacore.com>
14462         * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
14463         allow coalescing if the types are compatible.
14465 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
14467         * pass_manager.h (pass_manager::register_pass_name): New method.
14468         (pass_manager::get_pass_by_name): New method.
14469         (pass_manager::create_pass_tab): New method.
14470         (pass_manager::m_name_to_pass_map): New field.
14471         * passes.c (name_to_pass_map): Delete global in favor of field
14472         "m_name_to_pass_map" of pass_manager.
14473         (register_pass_name): Rename from a function to...
14474         (pass_manager::register_pass_name): ...this method, updating
14475         for renaming of global "name_to_pass_map" to field
14476         "m_name_to_pass_map".
14477         (create_pass_tab): Rename from a function to...
14478         (pass_manager::create_pass_tab): ...this method, updating
14479         for renaming of global "name_to_pass_map" to field.
14480         (get_pass_by_name): Rename from a function to...
14481         (pass_manager::get_pass_by_name): ...this method.
14482         (enable_disable_pass): Convert use of get_pass_by_name to
14483         a method call, locating the pass_manager singleton.
14485 2016-05-06  David Malcolm  <dmalcolm@redhat.com>
14487         * genattr-common.c (main): Convert argv from char ** to const char **.
14488         * genattr.c (main): Likewise.
14489         * genattrtab.c (main): Likewise.
14490         * genautomata.c (initiate_automaton_gen): Likewise.
14491         (main): Likewise.
14492         * gencodes.c (main): Likewise.
14493         * genconditions.c (main): Likewise.
14494         * genconfig.c (main): Likewise.
14495         * genconstants.c (main): Likewise.
14496         * genemit.c (main): Likewise.
14497         * genenums.c (main): Likewise.
14498         * genextract.c (main): Likewise.
14499         * genflags.c (main): Likewise.
14500         * genmddeps.c (main): Likewise.
14501         * genopinit.c (main): Likewise.
14502         * genoutput.c (main): Likewise.
14503         * genpeep.c (main): Likewise.
14504         * genpreds.c (main): Likewise.
14505         * genrecog.c (main): Likewise.
14506         * gensupport.c (init_rtx_reader_args_cb): Likewise.
14507         (init_rtx_reader_args): Likewise.
14508         * gensupport.h (init_rtx_reader_args_cb): Likewise.
14509         (init_rtx_reader_args): Likewise.
14510         * gentarget-def.c (main): Likewise.
14511         * read-md.c (read_md_files): Likewise.
14512         * read-md.h (read_md_files): Likewise.
14514 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
14516         * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
14517         instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
14518         * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
14519         Remove unused predicate.
14520         (register_and_not_fp_reg_operand): Ditto.
14522 2016-05-06  Martin Liska  <mliska@suse.cz>
14524         * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
14525         instead of vec as the vector is local to the function.
14527 2016-05-06  Jakub Jelinek  <jakub@redhat.com>
14529         * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
14530         avx512bw alternative.
14532         * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
14533         before the ashr<mode>3 pattern.
14535         * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
14536         v instead of x in vex or maybe_vex alternatives, use
14537         maybe_evex instead of vex in prefix.
14539         * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
14540         *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
14541         vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
14542         in vex or maybe_vex alternatives, use maybe_evex instead of vex
14543         in prefix.
14545         * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
14546         v instead of x in vex or maybe_vex alternatives, use
14547         maybe_evex instead of vex in prefix.
14549         * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
14550         sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
14551         sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
14552         sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
14553         alternatives, use maybe_evex instead of vex in prefix.
14555         * config/i386/sse.md (vec_interleave_lowv4sf,
14556         *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
14557         v instead of x in vex or maybe_vex alternatives, use
14558         maybe_evex instead of vex in prefix.
14560         * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
14561         v instead of x in vex or maybe_vex alternatives, use
14562         maybe_evex instead of vex in prefix.
14564         * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
14565         v constraint instead of x.
14567 2016-05-06  Nathan Sidwell  <nathan@codesourcery.com>
14569         * gimple.c (gimple_call_same_target_p): Unique functions are eq.
14570         * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
14571         equality first.
14573 2016-05-06  Richard Biener  <rguenther@suse.de>
14575         PR tree-optimization/70948
14576         * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14577         Properly clobber all fields of va_list for __builtin_va_start.
14579 2016-05-06  Yuri Rumyantsev  <ysrumyan@gmail.com>
14581         PR debug/70935
14582         * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
14583         loop latch destination.
14585 2016-05-06  Martin Liska  <mliska@suse.cz>
14587         * tree-ssa-uninit.c: Apply manual changes
14588         to the GNU coding style.
14589         (prune_uninit_phi_opnds): Rename from
14590         prune_uninit_phi_opnds_in_unrealizable_paths.
14592 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
14594         * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
14595         mspace): Remove deprecated options.
14596         * doc/invoke.texi (SH options): Remove -mspace.
14598 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
14600         * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
14602 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
14604         * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
14605         corresponding combine split pattern.
14607 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
14609         PR target/58219
14610         * config/sh/predicates.md (long_displacement_mem_operand): New.
14611         * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
14612         Add movi20, movi20s alternatives.  Adjust length attribute for
14613         alternatives.
14614         (movsi_ie): Allow for any FPU.  Adjust length attribute for
14615         alternatives.
14616         (movsi_i_lowpart): Add movi20, movi20s alternatives.  Adjust length
14617         attribute for alternatives.
14618         (*mov<mode>): Use long_displacement_mem_operand for length attribute.
14619         (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
14620         length attribute for alternatives.
14622 2016-05-06  Richard Biener  <rguenther@suse.de>
14624         PR tree-optimization/70960
14625         * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
14627 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
14629         PR target/52933
14630         * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
14631         * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
14633 2016-05-06  Marek Polacek  <polacek@redhat.com>
14635         PR sanitizer/70875
14636         * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
14638 2016-05-06  Oleg Endo  <olegendo@gcc.gnu.org>
14640         PR target/54089
14641         * config/sh/sh.md (*rotcr): Add another variant.
14643 2016-05-06  Richard Biener  <rguenther@suse.de>
14645         PR middle-end/70931
14646         * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
14648 2016-05-06  Richard Biener  <rguenther@suse.de>
14650         PR middle-end/70941
14651         * fold-const.c (split_tree): Always convert to the original type
14652         before negating.
14654 2016-05-06  Richard Biener  <rguenther@suse.de>
14656         * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
14657         (fwprop_addr): Likewise.
14659 2016-05-06  Uros Bizjak  <ubizjak@gmail.com>
14661         PR target/70873
14662         * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
14663         New prototype.
14664         * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
14665         * config/i386/i386.md (push mem splitter): Use find_constant_src in
14666         the splitter condition.
14667         (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
14668         the splitter condition.
14669         (FP float_extend load splitter): Ditto.
14671 2016-05-05  Uros Bizjak  <ubizjak@gmail.com>
14673         * config/i386/i386.md (peehole2 patterns): Change true_regnum
14674         to REGNO in all peephole2 patterns.
14675         (post-reload splitters): Change true_regnum to REGNO in
14676         post-reload splitters.
14677         (zero_extend splitters): Use general_reg_operand and
14678         nonimmediate_gr_operand predicates.
14680 2016-05-05  Jakub Jelinek  <jakub@redhat.com>
14682         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
14683         v constraint instead of x.
14685 2016-05-05  Alan Modra  <amodra@gmail.com>
14687         PR target/68662
14688         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
14689         set OPTION_MASK_RELOCATABLE when flag_pic == 2.  Set
14690         TARGET_NO_FP_IN_TOC for -mrelocatable.
14691         (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
14692         TARGET_RELOCATABLE test.
14693         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14694         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14695         * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
14696         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14697         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14698         * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
14699         (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14700         (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14701         * config/rs6000/predicates.md (easy_fp_constant): Likewise.
14702         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
14703         Likewise.
14704         (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
14705         (rs6000_stack_info): Likewise.
14706         (rs6000_elf_asm_out_constructor): Likewise.
14707         (rs6000_elf_asm_out_destructor): Likewise.
14708         (rs6000_elf_declare_function_name): Likewise.
14709         * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
14710         * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
14711         Don't define.
14713 2016-05-05  Alan Modra  <amodra@gmail.com>
14715         * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
14717 2016-05-05  Alan Modra  <amodra@gmail.com>
14719         * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
14720         out-of-line gpr restore for one or two regs if that would add
14721         a save of lr.
14723 2016-05-04  Uros Bizjak  <ubizjak@gmail.com>
14725         PR target/70873
14726         * config/i386/i386.md
14727         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
14728         Change to post-epilogue_completed late splitter.  Use sse_reg_operand
14729         as operand 0 predicate.
14730         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
14731         Ditto.
14732         (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
14733         Ditto.  Emit the pattern using RTX.
14735         (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
14736         Use sse_reg_opreand as operand 0 predicate.  Do not use true_regnum in
14737         the post-reload splitter.  Use lowpart_subreg instead of gen_rtx_REG.
14738         (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
14739         Ditto.
14740         (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
14741         sse_reg_operand as operand 0 predicate.
14743         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
14744         Use sse_reg_opreand as operand 0 predicate.  Use lowpart_subreg
14745         instead of gen_rtx_REG.
14746         (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
14747         Ditto.
14749 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
14751         * function.c (emit_use_return_register_into_block): Delete.
14752         (gen_return_pattern): Delete.
14753         (emit_return_into_block): Delete.
14754         (active_insn_between): Delete.
14755         (convert_jumps_to_returns): Delete.
14756         (emit_return_for_exit): Delete.
14757         (thread_prologue_and_epilogue_insns): Delete all code dealing with
14758         simple_return for shrink-wrapped blocks.
14759         * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
14760         end of blocks that need one.
14761         (get_unconverted_simple_return): Delete.
14762         (convert_to_simple_return): Delete.
14763         * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
14764         (convert_to_simple_return): Ditto.
14766 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
14768         * cfgcleanup.c (bb_is_just_return): New function.
14769         (try_optimize_cfg): Simplify jumps to return, branches to return,
14770         and branches around return.
14772 2016-05-04  Segher Boessenkool  <segher@kernel.crashing.org>
14774         * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
14775         branch to a return.
14777 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
14779         PR c++/70906
14780         PR c++/70933
14781         * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
14782         * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
14783         assert flags & OEP_HASH_CHECK, instead of asserting it
14784         never happens.  Handle TARGET_EXPR.
14785         * fold-const.c (operand_equal_p): For hash verification,
14786         or in OEP_HASH_CHECK into flags.
14788 2016-05-04  Eric Botcazou  <ebotcazou@adacore.com>
14790         * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
14791         comment.
14792         (compute_samebase_partition_bases): Fix typo.
14794 2016-05-04  Jakub Jelinek  <jakub@redhat.com>
14796         * config/i386/sse.md (vec_interleave_highv8sf,
14797         vec_interleave_lowv8sf, vec_interleave_highv4df,
14798         vec_interleave_lowv4df): Remove constraints from expanders.
14800         * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
14802 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
14804         * tree-inline.c (expand_call_inline): Fix path dealing with
14805         making lhs of call statement undefined.
14807 2016-05-04  Jan Hubicka  <hubicka@ucw.cz>
14809         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
14810         Check availability on NODE, too.
14811         * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
14812         (cgraph_node::call_for_symbol_and_aliases): Likewise.
14813         (varpool_node::call_for_symbol_and_aliase): Likewise.
14814         * ipa-pure-const.c (add_new_function): Analyze all bodies.
14815         (propagate_pure_const): Propagate across interposable functions, too.
14816         (skip_function_for_local_pure_const): Do not skip interposable bodies
14817         with aliases.
14818         (pass_local_pure_const::execute): Update.
14820 2016-05-04  Marek Polacek  <polacek@redhat.com>
14822         * doc/invoke.texi: Document -Wdangling-else.
14824 2016-05-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
14826         * config.gcc: Error out when conflicting multilib is detected.  Do not
14827         loop over multilibs since no combination is legal.
14829 2016-05-04  Alan Modra  <amodra@gmail.com>
14831         * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
14832         * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
14833         * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
14834         Align .toc.
14836 2016-05-04  Matthew Fortune  <matthew.fortune@imgtec.com>
14838         * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
14839         Clean up p5600 comments.
14841 2016-05-04  Richard Biener  <rguenther@suse.de>
14843         * match.pd: Add BIT_FIELD_REF canonicalizations and vector
14844         constructor simplifications.
14845         * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
14847 2016-05-04  Oleg Endo  <olegendo@gcc.gnu.org>
14849         * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
14850         * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
14851         result.set_rtx is null instead of aborting.
14852         * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
14853         Always enable.
14854         (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
14855         * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
14856         *mov<mode>_store_postinc): New patterns.
14858 2016-05-04  Marc Glisse  <marc.glisse@inria.fr>
14860         * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR.  Mark
14861         as commutative.  Check both conversions are NOP.
14862         ((A & B) OP (C & B)): Remove.
14864 2016-05-04  Alan Modra  <amodra@gmail.com>
14866         * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
14868 2016-05-04  Alan Modra  <amodra@gmail.com>
14870         PR target/70866
14871         * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
14872         when cr2,3,4 are all fixed regs.
14874 2016-05-04  Bernd Schmidt  <bschmidt@redhat.com>
14876         PR rtl-optimization/57193
14877         * opts.c (default_options_table): Revert OPT_frename_registers change.
14878         * doc/invoke.texi (-frename-registers, -O2): Likewise.
14880 2016-05-03  Martin Sebor  <msebor@redhat.com>
14882         PR c++/66561
14883         * builtins.c (fold_builtin_FILE): New function.
14884         (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
14885         (fold_builtin_0): Call them.
14886         * gimplify.c (gimplify_call_expr): Remove the handling of
14887         BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
14889         PR c++/66561
14890         * doc/extend.texi (Other Builtins): Update __builtin_FILE,
14891         __builtin_FUNCTION, and __builtin_LINE to reflect they yield
14892         constants.
14894         PR c++/66639
14895         * doc/extend.texi (Function Names as Strings): Update __func__,
14896         __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
14897         constants.
14899 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
14900             Richard Biener  <rguenther@suse.de>
14902         PR tree-optimization/70916
14903         * tree-if-conv.c: Include cfganal.h.
14904         (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
14905         and remove_fake_exit_edges around the optimization pass.
14907 2016-05-03  Jan Hubicka  <hubicka@ucw.cz>
14909         * cgraph.c (symbol_table::create_edge): Set inline_failed.
14910         (cgraph_edge::make_direct): Likewise.
14911         (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
14912         * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
14913         * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
14914         (CIF_THUNK): New code.
14915         * ipa-inline-analysis.c (initialize_inline_failed): Preserve
14916         CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
14917         (compute_inline_parameters): Set inline_failed for thunks.
14918         (inline_analyze_function): Cleanup.
14919         * ipa-inline.c (can_inline_edge_p): Do not deal with
14920         call_stmt_cannot_inline_p.
14921         (can_early_inline_edge_p): Likewise.
14922         (early_inliner): Initialize inline_failed.
14923         * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
14925 2016-05-03  Uros Bizjak  <ubizjak@gmail.com>
14927         * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
14928         from nonimm_ssenomem_operand.
14929         (nonimm_ssenomem_operand): New predicate.
14930         * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
14931         as operand 0 predicate.
14932         (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
14933         Disable unsupported alternatives using "enabled" attribute.
14934         Use register_ssemem_operand as operand 0 predicate.
14935         (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
14937 2016-05-03  Marek Polacek  <polacek@redhat.com>
14939         PR c/70859
14940         * input.c (expansion_point_location): New function.
14941         * input.h (expansion_point_location): Declare.
14943 2016-05-03  Pierre-Marie de Rodat  <derodat@adacore.com>
14945         * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
14946         occurence with frame_offset_ ones.
14948 2016-05-03  Alan Modra  <amodra@gmail.com>
14950         PR rtl-optimization/70890
14951         * ira.c (combine_and_move_insns): When moving def_insn, remove
14952         equivs on use_insn.
14954 2016-05-03  Dominik Vogt  <vogt@linux.vnet.ibm.com>
14956         * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
14957         ("*r<noxa>sbg_<mode>_srl"): New define_insns.
14958         ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
14959         ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
14961 2016-05-03  Alan Modra  <amodra@gmail.com>
14963         * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
14964         for SAVE_MULTIPLE/STORE_MULTIPLE.
14966 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
14968         * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
14969         *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
14971 2016-05-03  Richard Biener  <rguenther@suse.de>
14973         * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
14974         default true.
14975         (gimplify_arg): Likewise.
14976         * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
14977         re-writing the result to a decl if required.
14978         (internal_get_tmp_var): Add allow_ssa parameter
14979         and override into_ssa with it.
14980         (get_formal_tmp_var): Adjust.
14981         (get_initialized_tmp_var): Add allow_ssa parameter.
14982         (gimplify_arg): Add allow_ssa parameter and avoid generating
14983         SSA names for the result false.
14984         (gimplify_call_expr): If the call may return twice do not
14985         gimplify parameters into SSA.
14986         (prepare_gimple_addressable): Do not allow an SSA name as temporary.
14987         (gimplify_modify_expr): Adjust assert.  For noreturn calls
14988         with a SSA name LHS adjust its def.
14989         (gimplify_save_expr): Do not allow an SSA name as save-expr result.
14990         (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
14991         (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
14992         (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
14993         an SSA name.  Likewise for OMP_CLAUSE_REDUCTION operands.
14994         (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL.  Likewise
14995         for OMP_FOR_COND,  OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
14996         (optimize_target_teams): Do not allow SSA names for clause operands.
14997         (gimplify_expr): Likewise for where we mark the result addressable.
14998         * passes.def (pass_init_datastructures): Remove.
14999         * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
15000         (rewrite_stmt): Likewise.
15001         * tree-inline.c (initialize_cfun): Properly transfer SSA state.
15002         (replace_locals_op): Replace SSA names.
15003         (copy_gimple_seq_and_replace_locals): Init src_cfun.
15004         * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
15005         * cgraph.c (release_function_body): Free CFG annotations only
15006         when we have a CFG.  Simplify.
15007         * gimple-fold.c (gimplify_and_update_call_from_tree): Use
15008         force_gimple_operand instead of get_initialized_tmp_var.
15009         * tree-pass.h (make_pass_init_datastructures): Remove.
15010         * tree-ssa.c (execute_init_datastructures): Remove.
15011         (pass_data_init_datastructures): Likewise.
15012         (class pass_init_datastructures): Likewise.
15013         (make_pass_init_datastructures): Likewise.
15014         * omp-low.c (create_omp_child_function): Init SSA data structures.
15015         (grid_expand_target_grid_body): Likewise.
15016         * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
15017         name before adding it to names_to_release.
15018         (remove_bb): Always release SSA defs.
15019         * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
15020         before dereferencing it.
15021         * cgraphunit.c (init_lowered_empty_function): Always
15022         int SSA data structures.
15023         * tree-ssanames.c (release_defs): Remove assert that we are in
15024         SSA form.
15025         * trans-mem.c (diagnose_tm_1): Handle SSA name function.
15027 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
15028             Uros Bizjak  <ubizjak@gmail.com>
15030         PR rtl-optimization/70467
15031         * config/i386/predicates.md (x86_64_hilo_int_operand,
15032         x86_64_hilo_general_operand): New predicates.
15033         * config/i386/constraints.md (Wd): New constraint.
15034         * config/i386/i386.md (mode attr di): Use Wd instead of e.
15035         (general_hilo_operand): New mode attr.
15036         (add<mode>3, sub<mode>3): Use <general_hilo_operand>
15037         instead of <general_operand>.
15038         (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
15039         x86_64_hilo_general_operand instead of <general_operand>.
15041 2016-05-03  Jakub Jelinek  <jakub@redhat.com>
15043         PR tree-optimization/70916
15044         * tree-if-conv.c (constant_or_ssa_name): Removed.
15045         (fold_build_cond_expr): Use is_gimple_val instead of
15046         constant_or_ssa_name.
15048         PR tree-optimization/70916
15049         * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
15050         if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
15052         PR target/49244
15053         * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
15054         (optimize_atomic_bit_test_and): New function.
15055         (pass_fold_builtins::execute): Use it.
15056         * optabs.def (atomic_bit_test_and_set_optab,
15057         atomic_bit_test_and_complement_optab,
15058         atomic_bit_test_and_reset_optab): New optabs.
15059         * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
15060         ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
15061         * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
15062         * builtins.c (expand_ifn_atomic_bit_test_and): New function.
15063         * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
15064         expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
15065         expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
15066         * doc/md.texi (atomic_bit_test_and_set@var{mode},
15067         atomic_bit_test_and_complement@var{mode},
15068         atomic_bit_test_and_reset@var{mode}): Document.
15069         * config/i386/sync.md (atomic_bit_test_and_set<mode>,
15070         atomic_bit_test_and_complement<mode>,
15071         atomic_bit_test_and_reset<mode>): New expanders.
15072         (atomic_bit_test_and_set<mode>_1,
15073         atomic_bit_test_and_complement<mode>_1,
15074         atomic_bit_test_and_reset<mode>_1): New insns.
15076 2016-05-03  Richard Sandiford  <richard.sandiford@arm.com>
15078         PR rtl-optimization/70687
15079         * combine.c (change_zero_ext): Check for scalar modes.  Use wide_int
15080         instead of unsigned HOST_WIDE_INT.
15082 2016-05-03  Bernd Schmidt  <bschmidt@redhat.com>
15084         PR rtl-optimization/44281
15085         * hard-reg-set.h (struct target_hard_regs): New field
15086         x_fixed_nonglobal_reg_set.
15087         (fixed_nonglobal_reg_set): New macro.
15088         * reginfo.c (init_reg_sets_1): Initialize it.
15089         * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
15090         of fixed_reg_set.
15091         * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
15093 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
15095         PR tree-optimization/56541
15096         * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
15097         * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
15098         * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
15099         (any_complicated_phi): new static variable.
15100         (aggressive_if_conv): delete.
15101         (if_convertible_phi_p): support phis with more than two arguments.
15102         (if_convertible_bb_p): remvoe check on aggressive_if_conv and
15103         critical pred edges.
15104         (ifcvt_split_critical_edges): support phis with more than two
15105         arguments by checking new parameter.  only split critical edges
15106         if needed.
15107         (tree_if_conversion): handle simd pragma marked loop using new
15108         local variable aggressive_if_conv.  check any_complicated_phi.
15110 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
15112         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
15113         before using it.
15115 2016-05-03  Bin Cheng  <bin.cheng@arm.com>
15117         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
15118         cbase.
15120 2016-05-03  Oleg Endo  <olegendo@gcc.gnu.org>
15122         * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
15123         (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
15124         define_insn_and_split.
15125         (mulsi3_i): New define_insn_and_split.
15126         (mulsi3_call): Convert to define_insn.
15127         (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
15128         Remove constraints.
15130 2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>
15132         * machmode.h (mode_complex): Add support to give the complex mode
15133         for a given mode.
15134         (GET_MODE_COMPLEX_MODE): Likewise.
15135         * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
15136         stored by build_complex_type and gfc_build_complex_type instead of
15137         trying to figure out the appropriate mode based on the size. Raise
15138         an assertion error, if the type was not set.
15139         * genmodes.c (struct mode_data): Add field for the complex type of
15140         the given type.
15141         (blank_mode): Likewise.
15142         (make_complex_modes): Remember the complex mode created in the
15143         base type.
15144         (emit_mode_complex): Write out the mode_complex array to map a
15145         type mode to the complex version.
15146         (emit_insn_modes_c): Likewise.
15147         * tree.c (build_complex_type): Set the complex type to use before
15148         calling layout_type.
15149         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
15150         support for __float128 complex datatypes.
15151         (rs6000_hard_regno_mode_ok): Likewise.
15152         (rs6000_setup_reg_addr_masks): Likewise.
15153         (rs6000_complex_function_value): Likewise.
15154         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
15155         __float128 and __ibm128 complex.
15156         (FLOAT128_IBM_P): Likewise.
15157         (ALTIVEC_ARG_MAX_RETURN): Likewise.
15158         * doc/extend.texi (Additional Floating Types): Document that
15159         -mfloat128 must be used to enable __float128.  Document complex
15160         __float128 and __ibm128 support.
15162 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
15164         PR target/49244
15165         * gimple.c (gimple_builtin_call_types_compatible_p): Allow
15166         char/short arguments promoted to int because of promote_prototypes.
15168 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
15170         * config/i386/predicates.md (register_ssemem_operand): New predicate.
15171         * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
15172         *cmpi<FPCMP:unord><MODEF:mode>_mixed and
15173         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.  Disable unsupported
15174         alternatives using "enabled" attribute.  Use register_ssemem_operand
15175         as operand 1 predicate.
15176         (*cmpi<unord>xf_i387): Split XFmode pattern from
15177         *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
15178         (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
15179         *absneg<mode>2_i387.  Disable unsupported alternatives using
15180         "enabled" attribute.
15181         (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
15183 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
15185         * omp-low.c (lower_oacc_head_tail): Assert there is at least one
15186         marker.
15187         (oacc_loop_process): Check mask for loop termination.
15189 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
15191         * cif-code.def (CIF_THUNK): Add.
15192         * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
15193         accidental change.
15195 2016-05-02  Jan Hubicka  <hubicka@ucw.cz>
15197         * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
15198         (dump_inline_summary): Dump it.
15199         (fp_expression_p): New predicate.
15200         (estimate_function_body_sizes): Use it.
15201         (inline_merge_summary): Merge fp_expressions.
15202         (inline_read_section): Read fp_expressions.
15203         (inline_write_summary): Write fp_expressions.
15204         * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
15205         codegen boundary if either caller or callee is !fp_expressions.
15206         * ipa-inline.h (inline_summary): Add fp_expressions.
15207         * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
15208         to fp_expressions be sure the fp generation flags are updated.
15210 2016-05-02  Jakub Jelinek  <jakub@redhat.com>
15212         PR rtl-optimization/70467
15213         * cse.c (cse_insn): Handle no-op MEM moves after folding.
15215         PR rtl-optimization/70467
15216         * ipa-pure-const.c (check_call): Handle internal calls even in
15217         ipa mode like in local mode.
15219 2016-05-02  Bernd Edlinger  <bernd.edlinger@hotmail.de>
15221         * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
15223 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
15225         * match.pd (X u< X, X u> X): New transformations.
15227 2016-05-02  Marc Glisse  <marc.glisse@inria.fr>
15229         * flag-types.h (enum warn_strict_overflow_code): Move ...
15230         * coretypes.h: ... here.
15231         * fold-const.h (fold_overflow_warning): Declare.
15232         * fold-const.c (fold_overflow_warning): Make non-static.
15233         (fold_comparison): Move the transformation of X +- C1 CMP C2
15234         into X CMP C2 -+ C1 ...
15235         * match.pd: ... here.
15236         * gimple-fold.c (fold_stmt_1): Protect with
15237         fold_defer_overflow_warnings.
15239 2016-05-02  Nathan Sidwell  <nathan@codesourcery.com>
15241         * omp-low.c (struct oacc_loop): Add 'inner' field.
15242         (new_oacc_loop_raw): Initialize it to zero.
15243         (oacc_loop_fixed_partitions): Initialize it.
15244         (oacc_loop_auto_partitions): Partition outermost loop to outermost
15245         available partitioning.
15247 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
15249         * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
15250         register_operand.
15251         (umulsidi3): Likewise.
15252         (indirect_jump): Fix jump instruction assembly patterns.
15254 2016-05-02  Thomas Schwinge  <thomas@codesourcery.com>
15256         PR target/70860
15257         * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
15258         (nvptx_function_value): Assert non-NULL cfun.
15260 2016-05-02  Eric Botcazou  <ebotcazou@adacore.com>
15262         PR rtl-optimization/70886
15263         * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
15265         * cselib.h (rtx_equal_for_cselib_1): Declare.
15266         (rtx_equal_for_cselib_p: New inline function.
15267         * cselib.c (rtx_equal_for_cselib_p): Delete.
15268         (rtx_equal_for_cselib_1): Make public.
15270 2016-05-02  Uros Bizjak  <ubizjak@gmail.com>
15272         * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
15273         (register_mixssei387nonimm_operand): Remove predicate.
15274         * config/i386/i386.md (*fop_<mode>_comm): Merge from
15275         *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387.  Disable unsupported
15276         alternatives using "enabled" attribute.  Also check X87_ENABLE_ARITH
15277         for TARGET_MIX_SSE_I387 alternatives.
15278         (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
15279         Disable unsupported alternatives using "enabled" attribute.  Use
15280         nonimm_ssenomem_operand as operand 1 predicate.  Also check
15281         X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
15283 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
15285         * tree.c (cst_and_fits_in_hwi): Simplify.
15287 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
15289         * tree.h (wi::to_wide): New function.
15290         * expr.c (expand_expr_real_1): Use wi::to_wide.
15291         * fold-const.c (int_const_binop_1): Likewise.
15292         (extract_muldiv_1): Likewise.
15294 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
15296         * wide-int.h: Update offset_int and widest_int documentation.
15297         (WI_SIGNED_SHIFT_RESULT): New macro.
15298         (wi::binary_shift): Define signed_shift_result_type for
15299         shifts on offset_int- and widest_int-like types.
15300         (generic_wide_int): Support <<= and >>= if << and >> are supported.
15301         * tree.h (int_bit_position): Use shift operators instead of wi::
15302          shifts.
15303         * alias.c (adjust_offset_for_component_ref): Likewise.
15304         * expr.c (get_inner_reference): Likewise.
15305         * fold-const.c (fold_comparison): Likewise.
15306         * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
15307         * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
15308         * tree-dfa.c (get_ref_base_and_extent): Likewise.
15309         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
15310         (stmt_kills_ref_p): Likewise.
15311         * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
15312         * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
15313         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15314         (ao_ref_init_from_vn_reference): Likewise.
15316 2016-05-02  Richard Sandiford  <richard.sandiford@arm.com>
15318         * wide-int.h: Update offset_int and widest_int documentation.
15319         (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
15320         (wi::binary_traits): Allow ordered comparisons between offset_int and
15321         offset_int, between widest_int and widest_int, and between either
15322         of these types and basic C types.
15323         (operator <, <=, >, >=): Define for the same combinations.
15324         * tree.h (tree_int_cst_lt): Use comparison operators instead
15325         of wi:: comparisons.
15326         (tree_int_cst_le): Likewise.
15327         * gimple-fold.c (fold_array_ctor_reference): Likewise.
15328         (fold_nonarray_ctor_reference): Likewise.
15329         * gimple-ssa-strength-reduction.c (record_increment): Likewise.
15330         * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
15331         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
15332         * tree-sra.c (completely_scalarize): Likewise.
15333         * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
15334         * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
15335         * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
15336         (check_for_binary_op_overflow): Likewise.
15337         (search_for_addr_array): Likewise.
15338         * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
15340 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
15342         * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
15343         (arc_save_restore): Likewise.
15344         (arc_dwarf_register_span): Likewise.
15345         (arc_output_pic_addr_const): Initialize suffix variable.
15347 2016-05-02  Martin Liska  <mliska@suse.cz>
15349         * symbol-summary.h (function_summary::function_summary):
15350         Remove checking assert for all cgraph nodes.
15351         (function_summary::get): Check summary_uid.
15352         (symtab_insertion): Check summary_uid.
15354 2016-05-02  Claudiu Zissulescu  <claziss@synopsys.com>
15356         * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
15357         * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
15358         bmaskn instruction.
15359         (arc_dwarf_register_span): Remove enum keyword.
15360         (compact_memory_operand_p): New function.
15361         * config/arc/arc.h (reg_class): Add code density register classes.
15362         (REG_CLASS_NAMES): Likewise.
15363         (REG_CLASS_CONTENTS): Likewise.
15364         * config/arc/arc.md (*movqi_insn): Add code density instructions.
15365         (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
15366         (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
15367         (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
15368         * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
15369         constraints.
15370         (h, Rcd, Rsd, Rzd): New register constraints.
15371         (T): Use compact_memory_operand_p function.
15372         * config/arc/predicates.md (compact_load_memory_operand): Remove.
15374 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
15376         * config/sh/sh.md (*negnegt, *movtt): Remove.
15378 2016-05-02  Marek Polacek  <polacek@redhat.com>
15379             Tom de Vries  <tom@codesourcery.com>
15381         PR tree-optimization/70700
15382         * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
15383         bigger than FIRST_REF_NODE.
15385 2016-05-02  Oleg Endo  <olegendo@gcc.gnu.org>
15387         PR target/52898
15388         * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
15389         TARGET_CMPEQDI_T.
15390         (prepare_cbranch_operands): Don't use scratch register.  Assume that
15391         function is used when pseudos can be created.
15392         (expand_cbranchdi4): Likewise.  Remove unused TARGET_CMPEQDI_T paths.
15393         * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
15394         (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
15395         define_expand.  Allow it only when pseudos can be created.
15396         * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
15398 2016-05-01  Uros Bizjak  <ubizjak@gmail.com>
15400         * config/i386/constraints.md (BC): Only allow -1 operands.
15401         * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
15402         Add "enabled" attribute.  Update XI mode attribute calculation.
15403         * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
15404         (*movoi_internal_avx): Update XI mode attribute calculation.
15405         (*movti_internal): Ditto.
15407 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
15409         * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
15410         cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
15412 2016-05-01  Eric Botcazou  <ebotcazou@adacore.com>
15414         * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
15415         statement on instruction code.  Remove trailing spaces.
15416         (altivec_expand_stv_builtin): Likewise.
15418 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
15420         * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
15421         (TARGET_FPU_DOUBLE): Simplify.
15422         (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
15423         'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
15424         * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
15425         with 'TARGET_FPU_DOUBLE'.
15426         * config/sh/sh.md: Likewise.
15428 2016-05-01  Yoshinori Sato  <ysato@users.sourceforge.jp>
15430         * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
15431         SH_DIV_STR_FOR_SIZE): Remove.
15432         * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
15433         SH_DIV_STR_FOR_SIZE): Remove.
15435 2016-05-01  Oleg Endo  <olegendo@gcc.gnu.org>
15437         * config/sh/predicates.md (any_register_operand, zero_extend_operand,
15438         logical_reg_operand): Delete.
15439         (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
15440         arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
15441         logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
15442         match_operand and match_test.
15443         (sh_const_vec, sh_1el_vec): Remove redundant checks.  Declare local
15444         variables on their first use.  Return bool values.
15445         * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
15446         * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
15447         arith_reg_operand for input operand.  Remove empty constraints.
15448         (xorsi3): Delete.
15449         (*xorsi3_compact): Rename to xorsi3.
15450         (zero_extend<mode>si2): Use arith_reg_operand for input operand.
15451         (*zero_extend<mode>si2_disp_mem): Update comment.
15452         (mov_nop): Delete.
15454 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
15456         * config/sh/t-sh: Remove SH5 support.
15457         * config.gcc: Likewise.
15458         * configure: Likewise.
15460 2016-04-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15462         * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
15464 2016-04-30  Oleg Endo  <olegendo@gcc.gnu.org>
15466         * config/sh/sh.c (register_sh_passes, sh_option_override,
15467         sh_print_operand, prepare_move_operands,
15468         sh_can_follow_jump): Remove TARGET_SH1 checks.
15469         * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
15470         PROMOTE_MODE): Likewise.
15471         * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
15472         movdi): Likewise.
15474 2016-04-30  Alan Modra  <amodra@gmail.com>
15476         * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
15477         restoring when fixed_reg_p, but allow out-of-line or stmw save.
15478         Check for user regs later to avoid unnecessary looping over regs.
15479         Merge user reg check with non-saved reg check.  Don't force
15480         inline VR restore when static chain used.
15481         (rs6000_frame_related): Omit eh_frame info for user regs when
15482         saving.
15483         (fixed_regs_p): Delete.
15485 2016-04-30  Alan Modra  <amodra@gmail.com>
15487         * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
15488         (SAVE_STRATEGY, REST_STRATEGY): ..this.  Renumber and sort enum.
15489         Update all uses.
15491 2016-04-30  Alan Modra  <amodra@gmail.com>
15493         PR target/69645
15494         * config/rs6000/rs6000.c (fixed_reg_p): New function.
15495         (fixed_regs_p): Rename from global_regs_p.  Call fixed_reg_p.
15496         Update all uses.
15498 2016-04-30  Alan Modra  <amodra@gmail.com>
15500         * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
15501         Remove redundant PIC_OFFSET_TABLE_REGNUM test.  Replace with
15502         flag_pic test for Darwin.
15504 2016-04-30  Alan Modra  <amodra@gmail.com>
15506         * regs.h (struct reg_info_t): Delete freq_calls_crossed and
15507         throw_calls_crossed.
15508         (REG_FREQ_CALLS_CROSSED): Delete.
15509         (REG_N_THROWING_CALLS_CROSSED): Delete.
15510         * regstat.c (regstat_bb_compute_ri): Don't calculate
15511         REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
15512         (dump_reg_info): Don't print call cross frequency.
15513         * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
15514         and REG_N_THROWING_CALLS_CROSSED.
15516 2016-04-30  Alan Modra  <amodra@gmail.com>
15518         * regs.h (struct reg_info_t): Delete live_length.
15519         (REG_LIVE_LENGTH): Delete macro.
15520         * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
15521         local_live, local_processed and local_live_last_luid params.
15522         Replace bb_index param with bb.  Don't set REG_LIVE_LENGTH.
15523         Formatting fixes.
15524         (regstat_compute_ri): Adjust for above.  Don't set
15525         REG_LIVE_LENGTH.
15526         (dump_reg_info): Don't print live length.
15527         * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
15528         with test of setjmp_crosses.  Don't set REG_LIVE_LENGTH.
15529         Localize loop_depth var.
15531 2016-04-30  Alan Modra  <amodra@gmail.com>
15533         * ira.c (enum valid_equiv): New.
15534         (validate_equiv_mem): Return enum.
15535         (update_equiv_mem): Create replacement in more cases.
15536         (add_store_equivs): Update validate_equiv_mem call.
15538 2016-04-30  Alan Modra  <amodra@gmail.com>
15540         * ira.c (combine_and_move_insns): Rather than scanning insns,
15541         use DF infrastucture to find use and def insns.
15543 2016-04-30  Alan Modra  <amodra@gmail.com>
15545         ira.c (combine_and_move_insns): Move invariant conditions..
15546         (ira.c): ..to here.  Call combine_and_move_insns before
15547         add_store_equivs.  Call grow_reg_equivs later.  Allocate
15548         req_equiv later using max_reg_num() rather than global max_regno.
15549         (contains_replace_regs): Delete.
15550         (add_store_equivs): Remove contains_replace_regs test.
15552 2016-04-30  Alan Modra  <amodra@gmail.com>
15554         * ira.c (struct equiv_mem_data): New.
15555         (equiv_mem, equiv_mem_modified): Delete static vars.
15556         (validate_equiv_mem_from_store): Use "data" param to communicate..
15557         (validate_equiv_mem): ..from here.
15559 2016-04-30  Alan Modra  <amodra@gmail.com>
15561         * ira.c (add_store_equivs, combine_and_move_insns): New functions,
15562         split out from..
15563         (update_reg_equivs): ..here.  Move allocation and freeing of
15564         reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
15565         end_alias_analysis to..
15566         (ira): ..here.
15568 2016-04-30  Alan Modra  <amodra@gmail.com>
15570         * ira.c (pdx_subregs): Delete.
15571         (struct equivalence): Add pdx_subregs field.
15572         (set_paradoxical_subreg): Remove pdx_subregs param.  Update
15573         pdx_subregs access.
15574         (update_equiv_regs): Don't create or free pdx_subregs.  Update
15575         pdx_subregs access.
15577 2016-04-29  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
15579         * config/rs6000/altivec.h: Change definitions of vec_xl and
15580         vec_xst.
15581         * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
15582         (LD_ELEMREV_V2DI): New.
15583         (LD_ELEMREV_V4SF): New.
15584         (LD_ELEMREV_V4SI): New.
15585         (LD_ELEMREV_V8HI): New.
15586         (LD_ELEMREV_V16QI): New.
15587         (ST_ELEMREV_V2DF): New.
15588         (ST_ELEMREV_V2DI): New.
15589         (ST_ELEMREV_V4SF): New.
15590         (ST_ELEMREV_V4SI): New.
15591         (ST_ELEMREV_V8HI): New.
15592         (ST_ELEMREV_V16QI): New.
15593         (XL): New.
15594         (XST): New.
15595         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15596         descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
15597         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
15598         TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
15599         (altivec_expand_builtin): Add handling for
15600         VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
15601         (rs6000_invalid_builtin): Add error-checking for
15602         RS6000_BTM_P9_VECTOR.
15603         (altivec_init_builtins): Define builtins used to implement vec_xl
15604         and vec_xst.
15605         (rs6000_builtin_mask_names): Define power9-vector.
15606         * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
15607         (RS6000_BTM_P9_VECTOR): Define.
15608         (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
15609         * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
15610         (vsx_ld_elemrev_v2df): Likewise.
15611         (vsx_ld_elemrev_v4sf): Likewise.
15612         (vsx_ld_elemrev_v4si): Likewise.
15613         (vsx_ld_elemrev_v8hi): Likewise.
15614         (vsx_ld_elemrev_v16qi): Likewise.
15615         (vsx_st_elemrev_v2df): Likewise.
15616         (vsx_st_elemrev_v2di): Likewise.
15617         (vsx_st_elemrev_v4sf): Likewise.
15618         (vsx_st_elemrev_v4si): Likewise.
15619         (vsx_st_elemrev_v8hi): Likewise.
15620         (vsx_st_elemrev_v16qi): Likewise.
15621         * doc/extend.texi: Add prototypes for vec_xl and vec_xst.  Correct
15622         grammar.
15624 2016-04-29  Patrick Palka  <ppalka@gcc.gnu.org>
15626         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
15627         out into ...
15628         (simplify_control_stmt_condition_1): ... here.  Recurse into
15629         BIT_AND_EXPRs and BIT_IOR_EXPRs.
15631 2016-04-29  David Edelsohn  <dje.gcc@gmail.com>
15633         PR target/69810
15634         * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
15635         (zero_extendqi<mode>2_dot): Revert earlier conversion from
15636         define_insn_and_split to define_insn.
15637         (zero_extendqi<mode>2_dot2): Same.
15638         (extendqi<mode>2_dot): Same.
15639         (extendqi<mode>2_dot2): Same.
15641 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
15643         * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
15644         (probe_stack): New expander.
15645         (probe_stack_<mode>): New insn pattern.
15647 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
15649         * config/i386/i386.md
15650         (operations with memory inputs setting flags peephole2):
15651         Remove uneeded REG_P checks.  Cleanup pattern generation.
15653 2016-04-29  Ilya Enkovich  <ilya.enkovich@intel.com>
15655         * tree-vect-loop.c (vect_transform_loop): Fix
15656         nb_iterations_upper_bound computation for vectorized loop.
15658 2016-04-29  Marek Polacek  <polacek@redhat.com>
15659             Jakub Jelinek  <jakub@redhat.com>
15661         PR sanitizer/70342
15662         * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
15663         TARGET_EXPR_SLOT as a base.
15665 2016-04-29  Andrew Burgess  <andrew.burgess@embecosm.com>
15667         * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
15668         with 'rCm2' constraints to limit possible immediate size.
15669         (*load_zeroextendqisi_update): Likewise.
15670         (*load_signextendqisi_update): Likewise.
15671         (*loadhi_update): Likewise.
15672         (*load_zeroextendhisi_update): Likewise.
15673         (*load_signextendhisi_update): Likewise.
15674         (*loadsi_update): Likewise.
15675         (*loadsf_update): Likewise.
15677 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
15679         * config/i386/predicates.md (constm1_operand): Fix comparison.
15681 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
15683         * testsuite/gcc.target/arc/ieee_eq.c: New test.
15685 2016-04-29  Oleg Endo  <olegendo@gcc.gnu.org>
15687         * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
15688         remaining SH5 related settings.
15689         * config/sh/sh-protos.h (shmedia_cleanup_truncate,
15690         shmedia_prepare_call_address): Delete.
15691         * config/sh/sh.c (sh_print_operand, output_stack_adjust,
15692         DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
15693         * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
15694         UNSUPPORTED_SH2A): Remove m5 checks.
15695         (sh_divide_strategy_e): Remove SH5 division strategies.
15696         (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
15697         * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
15699 2016-04-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
15701         * config/s390/s390.c (s390_rtx_costs): Update documentation.
15703 2016-04-29  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
15705         * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
15706         * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
15707         Change lder to ldr.
15708         * config/s390/vector.md ("mov<mode>"): Likewise.
15710 2016-04-29  Ulrich Weigand  <uweigand@de.ibm.com>
15712         * config/s390/constraints.md ("U", "W"): Invoke
15713         s390_mem_constraint with "ZR" and "ZT".
15714         * config/s390/s390.c (s390_check_qrst_address): Reject invalid
15715         addresses when using LRA.  Accept also short displacements for S
15716         and T constraints.  Do not check for long displacement target for
15717         S and T constraints.
15718         (s390_mem_constraint): Remove handling of U and W constraints.
15719         * config/s390/s390.md (various patterns): Remove the short
15720         displacement constraints (Q and R) if a long displacement
15721         constraint is present.  Add longdisp as required CPU capability.
15722         * config/s390/vector.md: Likewise.
15723         * config/s390/vx-builtins.md: Likewise.
15725 2016-04-29  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
15727         PR target/60040
15728         * reload1.c (reload): Call finish_spills before
15729         restarting reload loop. Skip select_reload_regs
15730         if update_eliminables_and_spill returns true.
15732 2016-04-29  Claudiu Zissulescu  <claziss@synopsys.com>
15734         * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
15735         * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
15736         (umulhisi3_imm): Update predicates and constraint letters.
15737         (umulhisi3_reg): Declare instruction as commutative.
15738         * config/arc/constraints.md (J12, J16): New constraints.
15739         * config/arc/predicates.md (short_unsigned_const_operand): New
15740         predicate.
15741         (arc_short_operand): Likewise.
15742         * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
15744 2016-04-29  Richard Biener  <rguenther@suse.de>
15746         PR tree-optimization/13962
15747         PR tree-optimization/65686
15748         * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
15749         * tree-ssa-alias.c (ptrs_compare_unequal): New function
15750         using PTA to compare pointers.
15751         * match.pd: Add pattern for pointer equality compare simplification
15752         using ptrs_compare_unequal.
15754 2016-04-29  Richard Biener  <rguenther@suse.de>
15756         * stor-layout.c (layout_type): Do not build a pointer-to-element
15757         type for arrays.
15759 2016-04-29  Uros Bizjak  <ubizjak@gmail.com>
15761         * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
15762         Use SWI mode iterator.  Use general_reg_operand predicate.
15763         (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
15764         peephole to MMX and SSE part.  Use mmx_reg_operand and sse_reg_operand
15765         predicates.
15767 2016-04-29  Jakub Jelinek  <jakub@redhat.com>
15769         PR middle-end/70843
15770         * fold-const.c (operand_equal_p): Don't verify hash value equality
15771         if arg0 == arg1.
15772         * tree.c (inchash::add_expr): Handle STATEMENT_LIST.  Ignore BLOCK
15773         and OMP_CLAUSE.
15775 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
15777         PR target/70858
15778         * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
15779         to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
15780         (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
15781         __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
15782         __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
15784 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
15786         * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
15787         to info.  Don't initialize separate fields to 0.  Clean up
15788         formatting a bit.
15790 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
15792         * config/i386/i386.md (peephole2s for operations with memory inputs):
15793         Use SWI mode iterator.
15794         (peephole2s for operations with memory outputs): Ditto.
15795         Do not check for stack checking probe.
15797         (probe_stack): Remove expander.
15799 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
15800             Andrew Burgess  <andrew.burgess@embecosm.com>
15802         * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
15803         operands as 32-bits.
15805 2016-04-28  Jason Merrill  <jason@redhat.com>
15807         * gdbinit.in: Skip line-map.h.
15809 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
15810             Andrew Burgess  <andrew.burgess@embecosm.com>
15812         * config/arc/arc.c (arc_conditional_register_usage): Take
15813         TARGET_RRQ_CLASS into account.
15814         (arc_print_operand): Support printing 'p' and 's' operands.
15815         * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
15816         as 0.
15817         (TARGET_RRQ_CLASS): Define.
15818         (IS_POWEROF2_OR_0_P): Define.
15819         * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
15820         alternatives.
15821         (*tst_movb): New define_insn.
15822         (*tst): Avoid recognition if it could prevent '*tst_movb'
15823         combination; replace c/CnL with c/Chs alternative.
15824         (*tst_bitfield_tst): New define_insn.
15825         (*tst_bitfield_asr): New define_insn.
15826         (*tst_bitfield): New define_insn.
15827         (andsi3_i): Add Rrq variant.
15828         (extzv): New define_expand.
15829         (insv): New define_expand.
15830         (*insv_i): New define_insn.
15831         (*movb): New define_insn.
15832         (*movb_signed): New define_insn.
15833         (*movb_high): New define_insn.
15834         (*movb_high_signed): New define_insn.
15835         (*movb_high_signed + 1): New define_split pattern.
15836         (*mrgb): New define_insn.
15837         (*mrgb + 1): New define_peephole2 pattern.
15838         (*mrgb + 2): New define_peephole2 pattern.
15839         * config/arc/arc.opt (mbitops): New option for nps400, uses
15840         TARGET_NPS_BITOPS_DEFAULT.
15841         * config/arc/constraints.md (q): Make register class conditional.
15842         (Rrq): New register constraint.
15843         (Chs): New constraint.
15844         (Clo): New constraint.
15845         (Chi): New constraint.
15846         (Cbf): New constraint.
15847         (Cbn): New constraint.
15848         (C18): New constraint.
15849         (Cbi): New constraint.
15851 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
15853         * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
15854         dst->popcount.
15855         (bitmap_intersection_of_preds): Ditto.
15856         (bitmap_union_of_succs): Ditto.
15857         (bitmap_union_of_preds): Ditto.
15858         * sbitmap.c (do_popcount): Delete.
15859         (BITMAP_DEBUGGING): Delete.
15860         (sbitmap_verify_popcount): Delete.
15861         (sbitmap_alloc): Don't initialize the popcount field.
15862         (sbitmap_alloc_with_popcount): Delete.
15863         (sbitmap_resize): Don't resize the popcount array.
15864         (sbitmap_vector_alloc): Don't initialize the popcount field.
15865         (bitmap_copy): Don't copy the popcount array.
15866         (bitmap_clear): Don't clear the popcount array.
15867         (bitmap_clear): Delete the popcount array handling.
15868         (bitmap_ior_and_compl): Delete the popcount assert.
15869         (bitmap_not): Ditto.
15870         (bitmap_and_compl): Ditto.
15871         (bitmap_and): Delete the popcount array handling.
15872         (bitmap_xor): Ditto.
15873         (bitmap_ior): Ditto.
15874         (bitmap_or_and): Delete the popcount assert.
15875         (bitmap_and_or): Ditto.
15876         (popcount_table): Delete.
15877         (sbitmap_elt_popcount): Delete.
15878         * sbitmap.h (simple_bitmap_def): Delete the popcount field.
15879         (bitmap_set_bit): Delete the popcount assert.
15880         (bitmap_clear_bit): Ditto.
15881         (sbitmap_free): Don't free the popcount array.
15882         (sbitmap_alloc_with_popcount): Delete declaration.
15883         (sbitmap_popcount): Ditto.
15885 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
15886             Andrew Burgess  <andrew.burgess@embecosm.com>
15888         * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
15889         (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
15890         * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
15891         (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
15892         * config/arc/arc.opt (mcmem): New option.
15893         * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
15894         supply length for r/m alternative.
15895         (*extendqisi2_ac): Likewise.
15896         (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
15897         r/Uex alternative.
15898         (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
15899         (movhi_insn): Likewise.
15900         (movsi_insn): Add r/Ucm,Ucm/w alternatives.
15901         (*zero_extendqihi2_i): Add r/Ucm alternative.
15902         (*zero_extendqisi2_ac): Likewise.
15903         (*zero_extendhisi2_i): Likewise.
15904         * config/arc/constraints.md (Uex): New memory constraint.
15905         (Ucm): New define_constraint.
15906         * config/arc/predicates.md (long_immediate_loadstore_operand):
15907         Return 0 for MEM with cmem_address address.
15908         (cmem_address_0): New predicates.
15909         (cmem_address_1): Likewise.
15910         (cmem_address_2): Likewise.
15911         (cmem_address): Likewise.
15913 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
15915         * config/rs6000/rs6000.c (machine_function): Rename
15916         insn_chain_scanned_p to spe_insn_chain_scanned_p.
15917         (rs6000_stack_info): Adjust.
15919 2016-04-28  Joern Rennecke  <joern.rennecke@embecosm.com>
15920             Andrew Burgess  <andrew.burgess@embecosm.com>
15922         * config/arc/constraints.md (Usd): Convert to define_constraint.
15923         (Us<): Likewise.
15924         (Us>): Likewise.
15926 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
15928         PR target/70821
15929         * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
15930         Add new peephole2 where the first insn is *mov<mode>_or instead of
15931         *mov<mode>_internal.
15933 2016-04-28  Segher Boesssenkool  <segher@kernel.crashing.org>
15935         * tracer.c (bb_seen): Make static.
15937 2016-04-28  Andrew Burgess  <andrew.burgess@embecosm.com>
15939         * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
15940         support, setup defaults.
15941         * config/arc/arc-opts.h (enum processor_type): Add NPS400.
15942         * config/arc/arc.c (arc_init): Add NPS400 support.
15943         * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
15944         (TARGET_ARC700): NPS400 is also an ARC700.
15945         * config/arc/arc.opt: Add NPS400 options to -mcpu=.
15947 2016-04-28  Segher Boessenkool  <segher@kernel.crashing.org>
15949         PR target/70668
15950         * config/nds32/nds32.md (casesi): Don't access the operands array
15951         out of bounds.
15953 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
15955         * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
15956         (or $-1,reg peephole2): Ditto.
15957         (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
15959 2016-04-28  Markus Trippelsdorf  <markus@trippelsdorf.de>
15961         * doc/extend.texi (Common Function Attributes) [optimize]:
15962         Discourage use of the optimize attribute.
15964 2016-04-28  Bill Seurer  <seurer@linux.vnet.ibm.com>
15966         * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
15967         special case builtin.
15968         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
15969         ALTIVEC_BUILTIN_VEC_ADDE.
15970         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
15971         support for ALTIVEC_BUILTIN_VEC_ADDE.
15972         * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
15973         for __builtin_vec_adde.
15975 2016-04-28  Jakub Jelinek  <jakub@redhat.com>
15977         * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
15978         * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
15980 2016-04-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
15982         PR testsuite/70595
15983         * doc/sourcebuild.texi (Effective-Target Keywords, Other
15984         attributes): Document cilkplus_runtime.
15986 2016-04-28  Martin Jambor  <mjambor@suse.cz>
15988         * tree-cfg.c (verify_expr): Verify that local declarations belong to
15989         this function.  Call verify_expr on MEM_REFs and bases of other
15990         handled_components.
15992 2016-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
15994         * internal-fn.c (expand_arith_overflow): Convert preprocessor check
15995         for WORD_REGISTER_OPERATIONS to runtime check.
15997 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
15999         * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
16001 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
16003         * config/arc/arc.c (arc_process_double_reg_moves): Fix for
16004         big-endian compilation.
16005         * config/arc/arc.md (addf3): Likewise.
16006         (subdf3): Likewise.
16007         (muldf3): Likewise.
16009 2016-04-28  Richard Biener  <rguenther@suse.de>
16011         PR tree-optimization/70840
16012         * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
16013         Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
16014         Mark x * pow(x,c) -> pow(x,c+1) commutative.
16015         Add powi(x,y) * powi(z,y) -> powi(x*z,y).
16017 2015-04-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16019         * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
16020         and explain why in a comment.
16022 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
16024         * config/arc/arc.md (cpu_facility): Add fpx variant.
16025         (subdf3): Prohibit use reverse sub when assist operations option
16026         is enabled.
16027         * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
16028         instructions only when FPX is enabled.
16029         * testsuite/gcc.target/arc/trsub.c: New test.
16031 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
16033         * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
16034         mult_operator when calculating "type" attribute.
16035         (*fop_<mode>_1_i387): Ditto.
16036         (*fop_xf_1_i387): Ditto.
16037         (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
16038         Use std::swap to swap operands.  Use RTL expressions to generate
16039         converted pattern.
16041 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
16042             Joern Rennecke  <joern.rennecke@embecosm.com>
16044         * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
16045         declaration.
16046         (emit_pic_move): Remove.
16047         (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
16048         * config/arc/arc.c (emit_pic_move): Removed.
16049         (TARGET_HAVE_TLS): Define.
16050         (arc_conditional_register_usage): Test for arc_tp_regno.
16051         (arc_print_operand, arc_print_operand_address): Handle TLS
16052         unspecs.
16053         (arc_needs_pcl_p): New function.
16054         (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
16055         (arc_legitimate_pic_addr_p): Handle TLS unspecs.
16056         (arc_raw_symbolic_reference_mentioned_p): Likewise.
16057         (arc_get_tp, arc_emit_call_tls_get_addr): New function.
16058         (arc_legitimize_tls_address): Likewise.
16059         (DTPOFF_ZERO_SYM): Define.
16060         (arc_legitimize_pic_address): Make it static, handle TLS cases.
16061         (arc_output_pic_addr_const): Print TLS unspecs.
16062         (prepare_pic_move): New function, replaces emit_pic_move.
16063         (arc_legitimate_constant_p): Handle TLS unspecs.
16064         (arc_legitimate_address_p): Likewise.
16065         (arc_rewrite_small_data_p): Use assert for TLS constants.
16066         (prepare_move_operands): Use prepare_pic_move.
16067         (arc_legitimize_address): Legitimize tls addresses.
16068         (arc_epilogue_uses): Check for arc_tp_regno.
16069         (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
16070         * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
16071         Define.
16072         [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
16073         Likewise.
16074         [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
16075         %(arc_tls_extra_start_spec).
16076         (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
16077         (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
16078         (EH_USES): Define.
16079         (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
16080         * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
16081         (UNSPEC_TLS_OFF): Add.
16082         (R10_REG): Define.
16083         (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
16084         (get_thread_pointersi): New patterns.
16085         * config/arc/arc.opt (mtp-regno): New option.
16086         * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
16087         (move_dest_operand): Likewise.
16088         * configure: Regenerate.
16089         * configure.ac: Add arc*-*-* case to test for tls.
16090         * doc/invoke.texi (ARC options): Document mtp-regno.
16092 2016-04-28  Claudiu Zissulescu  <claziss@synopsys.com>
16094         * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
16095         the new ARC HS SIMD instructions.
16096         (arc_preferred_simd_mode): New function.
16097         (arc_autovectorize_vector_sizes): Likewise.
16098         (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
16099         (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16100         (arc_init_reg_tables): Accept new ARC HS SIMD modes.
16101         (arc_init_builtins): Add new SIMD builtin types.
16102         (arc_split_move): Handle 64 bit vector moves.
16103         * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
16104         (TARGET_PLUS_QMACW): Define.
16105         * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
16106         (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
16107         (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
16108         (VSUBADD4H): New builtins.
16109         * config/arc/simdext.md: Add new ARC HS SIMD instructions.
16110         * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
16112 2016-04-28  Eduard Sanou  <dhole@openmailbox.org>
16113             Matthias Klose  <doko@debian.org>
16115         * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
16117 2016-04-28  Richard Biener  <rguenther@suse.de>
16119         PR middle-end/70777
16120         * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
16121         canonicalization.
16123 2016-04-28  Oleg Endo  <olegendo@gcc.gnu.org>
16125         * common/config/sh/sh-common.c: Remove SH5 support.
16126         * config/sh/constraints.md: Likewise.
16127         * config/sh/config/sh/elf.h: Likewise.
16128         * config/sh/linux.h: Likewise.
16129         * config/sh/netbsd-elf.h: Likewise.
16130         * config/sh/predicates.md: Likewise.
16131         * config/sh/sh-c.c: Likewise.
16132         * config/sh/sh-protos.h: Likewise.
16133         * config/sh/sh.c: Likewise.
16134         * config/sh/sh.h: Likewise.
16135         * config/sh/sh.md: Likewise.
16136         * config/sh/sh.opt: Likewise.
16137         * config/sh/sync.md: Likewise.
16138         * config/sh/sh64.h: Delete.
16139         * config/sh/shmedia.h: Likewise.
16140         * config/sh/shmedia.md: Likewise.
16141         * config/sh/sshmedia.h: Likewise.
16142         * config/sh/t-netbsd-sh5-64: Likewise.
16143         * config/sh/t-sh64: Likewise.
16144         * config/sh/ushmedia.h: Likewise.
16146 2016-04-28  Uros Bizjak  <ubizjak@gmail.com>
16148         * config/i386/i386.md (sign_extend to memory peephole2s): Use
16149         general_reg_operand instead of register_operand predicate.
16151 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16153         * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
16155 2016-04-27  Marc Glisse  <marc.glisse@inria.fr>
16157         * match.pd (A - B > A, A + B < A): New transformations.
16159 2016-04-27  Patrick Palka  <ppalka@gcc.gnu.org>
16161         * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
16162         which defaults to true.  Emit an outer pair of parentheses only if
16163         EMIT_PARENS.  When continuing a chain of && or || (or & or |),
16164         don't emit parentheses for the right-hand operand.
16166 2016-04-27  Jeff Law  <law@redhat.com>
16168         * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
16170 2016-04-27  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16172         * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
16173         (altivec_lvx_<mode>_internal): Document.
16174         (altivec_lvx_<mode>_2op): New define_insn.
16175         (altivec_lvx_<mode>_1op): Likewise.
16176         (altivec_lvx_<mode>_2op_si): Likewise.
16177         (altivec_lvx_<mode>_1op_si): Likewise.
16178         (altivec_stvx_<mode>): Remove.
16179         (altivec_stvx_<mode>_internal): Document.
16180         (altivec_stvx_<mode>_2op): New define_insn.
16181         (altivec_stvx_<mode>_1op): Likewise.
16182         (altivec_stvx_<mode>_2op_si): Likewise.
16183         (altivec_stvx_<mode>_1op_si): Likewise.
16184         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16185         Expand vec_ld and vec_st during parsing.
16186         * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
16187         changes.
16188         (altivec_expand_stvx_be): Likewise.
16189         (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
16190         address-masking behavior in RTL.
16191         (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
16192         address-masking behavior in RTL.
16193         (altivec_expand_builtin): Change builtin code arguments for calls
16194         to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
16195         (insn_is_swappable_p): Avoid incorrect swap optimization in the
16196         presence of lvx/stvx patterns.
16197         (alignment_with_canonical_addr): New function.
16198         (alignment_mask): Likewise.
16199         (find_alignment_op): Likewise.
16200         (recombine_lvx_pattern): Likewise.
16201         (recombine_stvx_pattern): Likewise.
16202         (recombine_lvx_stvx_patterns): Likewise.
16203         (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
16204         stvx patterns from expand.
16205         * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
16206         expansions.
16207         (vector_altivec_store_<mode>): Likewise.
16209 2016-04-26  Evandro Menezes  <e.menezes@samsung.com>
16211         * config/aarch64/aarch64.md
16212         (*movhf_aarch64): Add "movi %0, #0" to zero up register and
16213         remove the "fp" attributes.
16214         (*movsf_aarch64): Add "movi %0, #0" to zero up register and
16215         add the "simd" attributes.
16216         (*movdf_aarch64): Likewise.
16217         (*movtf_aarch64): Remove the "fp" attributes.
16218         * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
16219         * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
16221 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
16223         * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
16224         rtx to rtx_code_label *.
16225         * rtl.h (maybe_set_first_label_num): Likewise.
16227 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
16229         * df-core.c (df_add_problem): Make the problem param be const.
16230         (df_remove_problem): Make local "problem" be const.
16231         * df-problems.c (problem_RD): Make const.
16232         (problem_LR): Likewise.
16233         (problem_LIVE): Likewise.
16234         (problem_MIR): Likewise.
16235         (problem_CHAIN): Likewise.
16236         (problem_WORD_LR): Likewise.
16237         (problem_NOTE): Likewise.
16238         (problem_MD): Likewise.
16239         * df-scan.c (problem_SCAN): Likewise.
16240         * df.h (struct df_problem): Make field "dependent_problem" be
16241         const.
16242         (struct dataflow): Likewise for field "problem".
16243         (df_add_problem): Make param const.
16245 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
16247         * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
16248         inter-unit moves to/from vector registers are enabled.  Do not disable
16249         for TARGET_MMX.
16251 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
16253         * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
16254         DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
16255         #define to...
16256         (enum df_problem_id): ...this new enum.
16257         (struct df_problem): Convert field "id" from "int" to
16258         enum df_problem_id.
16260 2016-04-27  David Malcolm  <dmalcolm@redhat.com>
16262         * rtl.def: Update comment for "things in the instruction chain" to
16263         reflect the removal of the leading "i" field for INSN_UID in
16264         r210360.  Fix bogus apostrophe.
16266 2016-04-27  Uros Bizjak  <ubizjak@gmail.com>
16268         * config/i386/i386.md
16269         (lea arith with mem operand + setcc peephole2): Set operator mode.
16271 2016-04-27  H.J. Lu  <hongjiu.lu@intel.com>
16273         PR target/70155
16274         * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
16275         (dimode_scalar_to_vector_candidate_p): This.
16276         (timode_scalar_to_vector_candidate_p): New function.
16277         (scalar_to_vector_candidate_p): Likewise.
16278         (timode_check_non_convertible_regs): Likewise.
16279         (timode_remove_non_convertible_regs): Likewise.
16280         (remove_non_convertible_regs): Likewise.
16281         (remove_non_convertible_regs): Renamed to ...
16282         (dimode_remove_non_convertible_regs): This.
16283         (scalar_chain::~scalar_chain): Make it virtual.
16284         (scalar_chain::compute_convert_gain): Make it pure virtual.
16285         (scalar_chain::mark_dual_mode_def): Likewise.
16286         (scalar_chain::convert_insn): Likewise.
16287         (scalar_chain::convert_registers): Likewise.
16288         (scalar_chain::add_to_queue): Make it protected.
16289         (scalar_chain::emit_conversion_insns): Likewise.
16290         (scalar_chain::replace_with_subreg): Likewise.
16291         (scalar_chain::replace_with_subreg_in_insn): Likewise.
16292         (scalar_chain::convert_op): Likewise.
16293         (scalar_chain::convert_reg): Likewise.
16294         (scalar_chain::make_vector_copies): Likewise.
16295         (scalar_chain::convert_registers): New pure virtual function.
16296         (class dimode_scalar_chain): New class.
16297         (class timode_scalar_chain): Likewise.
16298         (scalar_chain::mark_dual_mode_def): Renamed to ...
16299         (dimode_scalar_chain::mark_dual_mode_def): This.
16300         (timode_scalar_chain::mark_dual_mode_def): New function.
16301         (timode_scalar_chain::convert_insn): Likewise.
16302         (dimode_scalar_chain::convert_registers): Likewise.
16303         (scalar_chain::compute_convert_gain): Renamed to ...
16304         (dimode_scalar_chain::compute_convert_gain): This.
16305         (scalar_chain::replace_with_subreg): Renamed to ...
16306         (dimode_scalar_chain::replace_with_subreg): This.
16307         (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
16308         (dimode_scalar_chain::replace_with_subreg_in_insn): This.
16309         (scalar_chain::make_vector_copies): Renamed to ...
16310         (dimode_scalar_chain::make_vector_copies): This.
16311         (scalar_chain::convert_reg): Renamed to ...
16312         (dimode_scalar_chain::convert_reg ): This.
16313         (scalar_chain::convert_op): Renamed to ...
16314         (dimode_scalar_chain::convert_op): This.
16315         (scalar_chain::convert_insn): Renamed to ...
16316         (dimode_scalar_chain::convert_insn): This.
16317         (scalar_chain::convert): Call convert_registers.
16318         (convert_scalars_to_vector): Change to scalar_chain pointer to
16319         use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
16320         in 32-bit mode.  Delete scalar_chain pointer.  Call
16321         free_dominance_info in 64-bit mode.
16322         (pass_stv::gate): Remove TARGET_64BIT check.
16323         (ix86_option_override): Put the 64-bit STV pass before the CSE
16324         pass.
16326 2016-04-27  Pierre-Marie de Rodat  <derodat@adacore.com>
16328         * dwarf2out.h (struct dw_loc_descr_node): Remove the
16329         dw_loc_frame_offset field.
16330         * dwarf2out.c (new_loc_descr): Likewise.
16331         (resolve_args_picking_1): Turn the VISITED hash set into a
16332         FRAME_OFFSET hash map. Use it to associate a frame offset to
16333         visited nodes. Remove uses of the CHECKING_P macro.
16334         (resolve_args_picking): Update call to resolve_args_picking_1.
16336 2016-04-27  Martin Liska  <mliska@suse.cz>
16338         * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
16339         (free_loop_data): Release vuses of groups.
16341 2016-04-27  Bin Cheng  <bin.cheng@arm.com>
16343         * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
16344         instead of redundant use_id and boolean have_use_for.
16345         (struct iv_use): Change sub_id into group_id.  Remove field next.
16346         Move fields: related_cands, n_map_members, cost_map and selected
16347         to ...
16348         (struct iv_group): ... here.  New structure.
16349         (struct iv_common_cand): Use structure declaration directly.
16350         (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
16351         (MAX_CONSIDERED_USES): Rename macro to ...
16352         (MAX_CONSIDERED_GROUPS): ... here.
16353         (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
16354         (dump_iv, dump_use, dump_cand): Refactor format of dump information.
16355         (dump_uses): Rename to ...
16356         (dump_groups): ... here.  Update all uses.
16357         (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
16358         (find_induction_variables): Refactor format of dump information.
16359         (record_sub_use): Delete.
16360         (record_use): Update all uses.
16361         (record_group): New function.
16362         (record_group_use, find_interesting_uses_op): Call above functions.
16363         Update all uses.
16364         (find_interesting_uses_cond): Ditto.
16365         (group_compare_offset): New function.
16366         (split_all_small_groups): Rename to ...
16367         (split_small_address_groups_p): ... here.  Update all uses.
16368         (split_address_groups):  Update all uses.
16369         (find_interesting_uses): Refactor format of dump information.
16370         (add_candidate_1): Update all uses.  Remove redundant check on iv,
16371         base and step.
16372         (add_candidate, record_common_cand): Remove redundant assert.
16373         (add_iv_candidate_for_biv): Update use.
16374         (add_iv_candidate_derived_from_uses): Update all uses.
16375         (add_iv_candidate_for_groups, record_important_candidates): Ditto.
16376         (alloc_use_cost_map): Ditto.
16377         (set_use_iv_cost, get_use_iv_cost): Rename to ...
16378         (set_group_iv_cost, get_group_iv_cost): ... here.  Update all uses.
16379         (determine_use_iv_cost_generic): Ditto.
16380         (determine_group_iv_cost_generic): Ditto.
16381         (determine_use_iv_cost_address): Ditto.
16382         (determine_group_iv_cost_address): Ditto.
16383         (determine_use_iv_cost_condition): Ditto.
16384         (determine_group_iv_cost_cond): Ditto.
16385         (determine_use_iv_cost): Ditto.
16386         (determine_group_iv_cost): Ditto.
16387         (set_autoinc_for_original_candidates): Update all uses.
16388         (find_iv_candidates): Update all uses.  Refactor dump information.
16389         (determine_use_iv_costs): Ditto.
16390         (determine_iv_costs): Ditto.
16391         (iv_ca_cand_for_use): Rename to ...
16392         (iv_ca_cand_for_group): ... here.  Update all uses.
16393         (iv_ca_add_use, iv_ca_add_group): Ditto.
16394         (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
16395         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
16396         (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
16397         (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
16398         (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
16399         (create_new_iv, adjust_iv_update_pos): Ditto.
16400         (rewrite_use_address): Delete.
16401         (rewrite_use_address_1): Rename to ...
16402         (rewrite_use_address): ... here.
16403         (rewrite_use_compare): Update all uses.
16404         (rewrite_use): Delete.
16405         (rewrite_uses): Rename to ...
16406         (rewrite_groups): ... here.  Update all uses.
16407         (remove_unused_ivs, free_loop_data): Update all uses.
16408         (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
16410 2016-04-27  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16412         * rtlanal.c (nonzero_bits1): Convert preprocessor check
16413         for WORD_REGISTER_OPERATIONS to runtime check.
16415 2016-04-27  Richard Biener  <rguenther@suse.de>
16417         PR ipa/70760
16418         * tree-ssa-structalias.c (find_func_aliases_for_call): Use
16419         aggregate_value_p to determine if a function result is
16420         returned by reference.
16421         (ipa_pta_execute): Functions having their address taken are
16422         not automatically nonlocal.
16424 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
16426         PR sanitizer/70683
16427         * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
16428         * fold-const.c (operand_equal_p): If flag_checking and
16429         OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
16430         and if it returns non-zero, assert iterative_hash_expr on both
16431         args is the same.
16433 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
16435         * doc/invoke.texi (-frename-registers): Also enabled at -Os.
16437 2016-04-27  Nick Clifton  <nickc@redhat.com>
16439         PR middle-end/49889
16440         * varasm.c (merge_weak): Generate an error if an attempt is made
16441         to convert a non-weak static function into a weak, public function.
16443 2016-04-27  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
16445         * params.def (MAX_PARTITION_SIZE): New param.
16446         * doc/invoke.texi: Document lto-max-partition.
16448 2016-04-27  Richard Biener  <rguenther@suse.de>
16450         PR ipa/70785
16451         * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
16452         function cummulating used_from_other_partition, externally_visible
16453         and force_output from aliases.
16454         (refered_from_nonlocal_var): Likewise.
16455         (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
16456         node flags properly.
16458 2016-04-27  Bernd Schmidt  <bschmidt@redhat.com>
16460         * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
16461         (-Wmemset-elt-size): New item.
16463 2016-04-27  Eric Botcazou  <ebotcazou@adacore.com>
16465         PR ada/70759
16466         * stor-layout.h (internal_reference_types): Delete.
16467         * stor-layout.c (reference_types_internal): Likewise.
16468         (internal_reference_types): Likewise.
16469         (layout_type) <REFERENCE_TYPE>: Adjust.
16471 2016-04-27  Jakub Jelinek  <jakub@redhat.com>
16473         PR sanitizer/70683
16474         * tree.h (inchash::add_expr): Add FLAGS argument.
16475         * tree.c (inchash::add_expr): Likewise.  If not OEP_ADDRESS_OF,
16476         use STRIP_NOPS first.  For INTEGER_CST assert not OEP_ADDRESS_OF.
16477         For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
16478         Formatting fix.  Adjust recursive calls.  For tcc_comparison,
16479         if swap_tree_comparison (code) is smaller than code, hash that
16480         and arguments in the other order.  Hash CONVERT_EXPR the same
16481         as NOP_EXPR.  For OEP_ADDRESS_OF hash MEM_REF with 0 offset
16482         of ADDR_EXPR of decl as the decl itself.  Add or remove
16483         OEP_ADDRESS_OF from recursive flags as needed.  For
16484         FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
16485         operands commutatively and only the third one normally.
16486         For internal CALL_EXPR hash in CALL_EXPR_IFN.
16488 2016-04-27  Sebastian Huber  <sebastian.huber@embedded-brains.de>
16490         * config/rtems.h (LIB_SPEC): Add -latomic.
16492 2016-04-27  Joel Sherrill  <joel@rtems.org>
16494         * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
16495         xilink.ld and flags not relevant to RTEMS.
16497 2016-04-26  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
16499         * toplev.c (backend_init_target): Avoid calling init_reload when using
16500         LRA.
16502 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
16504         * reorg.c (try_merge_delay_insns): Declare i and j inside the
16505         for loops rather than one for the whole function.
16507 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
16509         * match.pd (X + CST CMP X): New transformation.
16511 2016-04-26  Marc Glisse  <marc.glisse@inria.fr>
16513         * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
16514         * fold-const.c (fold_binary_loc): Remove 2 transformations
16515         superseded by match.pd.
16516         * match.pd (x+x -> x*2): Generalize to integers.
16518 2016-04-26  Bernd Schmidt  <bschmidt@redhat.com>
16520         * config/i386/i386.md (operation on memory peephole): Duplicate an
16521         existing peephole and adapt it to match lea rather than an operation
16522         that clobbers CC.
16524         PR rtl-optimization/57193
16525         * opts.c (default_options_table): Add OPT_frename_registers at -O2
16526         and above.
16527         * doc/invoke.texi (-frename-registers, -O2): Update documentation.
16529 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
16531         * tree-if-conv.c (any_pred_load_store): New static variable.
16532         (if_convertible_gimple_assign_stmt_p): Remove parameter.  Use
16533         any_pred_load_store instead of and_mask_load_store.
16534         (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
16535         (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
16536         (combine_blocks, tree_if_conversion): Ditto.
16538 2016-04-26  Bin Cheng  <bin.cheng@arm.com>
16540         PR tree-optimization/70771
16541         PR tree-optimization/70775
16542         * tree-if-conv.c (if_convertible_phi_p): Remove check on special
16543         virtual PHI nodes.  Delete parameter.
16544         (if_convertible_loop_p_1): Delete argument to above function.
16545         (predicate_all_scalar_phis): Delete code handling single-argument
16546         PHIs.
16547         (tree_if_conversion): Mark and update virtual SSA.
16549 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16551         PR target/61821
16552         * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
16553         (x86_elf_aligned_common): Rename to ...
16554         (x86_elf_aligned_decl_common): ... this.
16555         Add decl arg.  Switch to .lbss for largecomm object.  Use
16556         LARGECOMM_SECTION_ASM_OP.
16557         * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
16558         renaming.
16559         * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
16560         (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
16561         Pass new decl arg.
16562         * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16563         [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
16565 2016-04-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
16567         PR target/59407
16568         * config/i386/i386.c (SECTION_LARGE): Define.
16569         (x86_64_elf_select_section): Set it for large data/bss sections.
16570         Only clear SECTION_WRITE for .lrodata.
16571         (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
16572         data/bss sections.
16573         * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
16574         * varasm.c (default_elf_asm_named_section): Grow flagchars.
16575         [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
16576         SECTION_MACH_DEP.
16577         * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
16578         * doc/tm.texi: Regenerate.
16580 2016-04-26  Jakub Jelinek  <jakub@redhat.com>
16582         PR bootstrap/70704
16583         * configure.ac (--enable-checking): Document extra flag, for
16584         non-release builds default to --enable-checking=yes,extra.
16585         If misc checking and extra checking, define CHECKING_P to 2 instead
16586         of 1.
16587         * common.opt (fchecking=): Add.
16588         * doc/invoke.texi (-fchecking=): Document.
16589         * doc/install.texi: Document --enable-checking changes.
16590         * configure: Regenerated.
16591         * config.in: Regenerated.
16593 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
16595         * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
16596         attribute instead of which_alternative.
16597         * config/i386/sse.md (*mov<mode>_internal): Ditto.
16598         Use EXT_REX_SSE_REG_P where appropriate.
16600 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
16602         * config/i386/predicates.md (const0_operand): Do not match
16603         const_wide_int code.
16604         (const1_operand): Ditto.
16606 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
16608         * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
16609         for SSE constm1 operands and TARGET_AVX512VL.
16610         (*movti_internal): Ditto.
16611         (*mov<mode>_or): Use constm1_operand predicate.
16612         * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
16613         for SSE vector_all_ones operands and TARGET_AVX512VL.
16614         * config/i386/predicates.md (constm1_operand): New predicate.
16615         * config/i386/i386.c (standard_sse_constant_opcode): Simplify
16616         emission of constant -1 load.
16618 2016-04-25  Jason Merrill  <jason@redhat.com>
16620         * gdbinit.in: Skip is-a.h.
16622         * attribs.c (register_scoped_attributes): Fix logic.
16623         * attribs.h: Declare register_scoped_attributes.
16625 2016-04-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
16627         * config/rs6000/rs6000-builtin.def: Correct pasto error for
16628         stxvd2x and stxvw4x built-in functions.
16630 2016-04-25  DJ Delorie  <dj@redhat.com>
16632         * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
16633         (ashrhi3): Likewise.
16634         (lshrhi3): Likewise.
16636 2016-04-25  Richard Biener  <rguenther@suse.de>
16638         PR tree-optimization/70780
16639         * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
16640         wasn't visited yet.
16641         (compute_antic): Mark blocks with abnormal preds as visited as
16642         they have a final empty antic-in solution already.
16644 2016-04-25  Michael Collison  <michael.collison@linaro.org>
16646         * ChangeLog(2016-04-25): Fix ChangeLog formatting.
16648 2016-04-25  Michael Collison  <michael.collison@linaro.org>
16650         * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
16651         mode is VQI to improve mixed mode vectorization.
16652         * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
16653         define_insn to match low half of signed vaddw.
16654         * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
16655         define_insn to match high half of signed vaddw.
16656         * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
16657         define_insn to match low half of unsigned vaddw.
16658         * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
16659         define_insn to match high half of unsigned vaddw.
16660         * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
16661         (arm_simd_check_vect_par_cnst_half_p): Likewise.
16662         * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
16663         for new function.
16664         (arm_simd_check_vect_par_cnst_half_p): Likewise.
16665         * config/arm/predicates.md (vect_par_constant_high): Support
16666         big endian and simplify by calling
16667         arm_simd_check_vect_par_cnst_half
16668         (vect_par_constant_low): Likewise.
16670 2016-04-25  Uros Bizjak  <ubizjak@gmail.com>
16672         * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
16673         predicate for operand 2.
16675 2016-04-24  Uros Bizjak  <ubizjak@gmail.com>
16676             H.J. Lu  <hongjiu.lu@intel.com>
16678         * config/i386/i386-protos.h (standard_sse_constant_p): Add
16679         machine_mode argument.
16680         * config/i386/i386.c (standard_sse_constant_p): Return 2 for
16681         constm1_rtx operands.  For VOIDmode constants, get mode from
16682         pred_mode.  Check mode size if the mode is supported by ABI.
16683         (standard_sse_constant_opcode): Do not use standard_constant_p.
16684         Strictly check ABI support for all-ones operands.
16685         (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
16686         immediates. Update calls to standard_sse_constant_p.
16687         (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
16688         (ix86_rtx_costs): Ditto.
16689         * config/i386/i386.md (*movxi_internal_avx512f): Use
16690         nonimmediate_or_sse_const_operand instead of vector_move_operand.
16691         Use (v,BC) alternative instead of (v,C). Use register_operand
16692         checks instead of MEM_P.
16693         (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
16694         of vector_move_operand.  Add (v,BC) alternative and corresponding avx2
16695         isa attribute.  Use register_operand checks instead of MEM_P.
16696         (*movti_internal): Use nonimmediate_or_sse_const_operand for
16697         TARGET_SSE.  Improve TARGET_SSE insn constraint.  Add (v,BC)
16698         alternative and corresponding sse2 isa attribute.
16699         (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
16700         to standard_sse_constant_p.
16701         (FP constant splitters): Ditto.
16702         * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
16703         (C): Ditto.
16704         * config/i386/predicates.md (constm1_operand): Remove.
16705         (nonimmediate_or_sse_const_operand): Rewrite using RTX.
16706         * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
16707         vector_all_ones_operand instead of constm1_operand.
16709 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16711         * print-rtl.c (print_rtx_insn_vec): New function.
16712         * print-rtl.h: New prototype.
16713         * store-motion.c (struct st_expr): Make avail_stores a vector.
16714         (st_expr_entry): Adjust.
16715         (free_st_expr_entry): Likewise.
16716         (print_store_motion_mems): Likewise.
16717         (find_moveable_store): Likewise.
16718         (compute_store_table): Likewise.
16719         (delete_store): Likewise.
16720         (build_store_vectors): Likewise.
16722 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16724         * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
16726 2016-04-24  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
16728         * vec.h (vec_safe_contains): New function.
16729         (vec::contains): Likewise.
16730         (vec::begin): Likewise.
16731         (vec::end): Likewise.
16733 2016-04-23  Jakub Jelinek  <jakub@redhat.com>
16735         PR sanitizer/70712
16736         * cfgexpand.c (expand_stack_vars): Fix typo.
16738 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16740         * system.h (list, map, set, vector): Include conditionally.
16741         * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
16742         * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
16743         * ipa-icf.c (INCLUDE_LIST): Define.
16744         * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
16745         * config/sh/sh.c (INCLUDE_VECTOR): Define.
16746         * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
16747         (INCLUDE_LIST, INCLUDE_VECTOR): Define.
16748         * cp/logic.cc (INCLUDE_LIST): Define.
16749         * fortran/trans-common.c (INCLUDE_MAP): Define.
16751 2016-04-22  Szabolcs Nagy  <szabolcs.nagy@arm.com>
16753         * auto-profile.c: Remove <string.h> include.
16754         * ipa-icf-gimple.c: Remove <list> include.
16755         * diagnostic.c: Remove <new> include.
16756         * genmatch.c: Likewise.
16757         * pretty-print.c: Likewise.
16758         * toplev.c: Likewise
16759         * c/c-objc-common.c: Likewise.
16760         * cp/error.c: Likewise.
16761         * fortran/error.c: Likewise.
16763 2016-04-22  Richard Biener  <rguenther@suse.de>
16765         * lto-streamer-in.c (input_ssa_names): Do not allocate
16766         GIMPLE_NOP for all SSA names.
16767         * lto-streamer-out.c (output_ssa_names): Do not output
16768         SSA names that should have been released.
16770 2016-04-22  Richard Biener  <rguenther@suse.de>
16772         PR tree-optimization/70740
16773         * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
16774         VDEF.
16776 2016-04-21  H.J. Lu  <hongjiu.lu@intel.com>
16778         PR target/70750
16779         * config/i386/predicates.md (call_insn_operand): Replace
16780         sibcall_memory_operand with memory_operand.
16782 2016-04-21  Patrick Palka  <ppalka@gcc.gnu.org>
16784         * tree-vrp.c (register_edge_assert_for_2): Remove redundant
16785         has_single_use() tests.
16786         (register_edge_assert_for_1): Likewise.
16787         (find_assert_locations_1): Check the liveness bitmap instead of
16788         checking has_single_use().
16790 2016-04-21  Kirill Yukhin  <kirill.yukhin@intel.com>
16792         PR target/70728
16793         * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
16794         Extract AVX-512BW constraint from AVX.
16796 2016-04-21  Richard Biener  <rguenther@suse.de>
16798         PR tree-optimization/70725
16799         * tree-if-conv.c (if_convertible_phi_p): Adjust guard
16800         for phi_convertible_by_degenerating_args.
16801         (predicate_all_scalar_phis): Handle single-argument PHIs.
16803 2016-04-21  Richard Biener  <rguenther@suse.de>
16805         PR middle-end/70747
16806         * fold-const.c (fold_comparison): Return properly typed
16807         constant boolean.
16809 2016-04-21  Bin Cheng  <bin.cheng@arm.com>
16811         PR tree-optimization/70715
16812         * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
16813         after expanding BASE using expand_simple_operations.
16815 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
16817         * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
16818         New transformations.
16820 2016-04-21  Marc Glisse  <marc.glisse@inria.fr>
16822         * match.pd (min(int_max, x), max(int_min, x)): New transformations.
16824 2016-04-20  Jan Hubicka  <jh@suse.cz>
16826         * ipa-inline.c (can_inline_edge_p): Pass caller info to
16827         ultiimate_alias_target.
16828         (update_callee_keys): Likewise.
16829         (lookup_recursive_calls): Likewise.
16830         (speculation_useful_p): Likewise.
16832 2016-04-20  Jan Hubicka  <jh@suse.cz>
16834         PR ipa/70018
16835         * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
16836         (set_nothrow_flag_1): ... this; handle interposition correctly;
16837         recurse on aliases and thunks.
16838         (cgraph_node::set_nothrow_flag): New.
16839         * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
16840         functions compiled with non-call exceptions that binds to current
16841         def.
16842         (propagate_nothrow): Be safe WRT interposition.
16843         * cgraph.h (set_nothrow_flag): Update prototype.
16845 2016-04-18  Jan Hubicka  <jh@suse.cz>
16847         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
16848         max_loop_iterations_int.
16849         (tree_unswitch_outer_loop): Likewise.
16851 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
16853         PR tree-optimization/69489
16854         * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
16855         (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
16856         Revise dump message.
16857         (if_convertible_bb_p): Remove check on edge count of basic block's
16858         predecessors.
16860 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
16862         PR tree-optimization/56625
16863         PR tree-optimization/69489
16864         * tree-data-ref.h (DR_INNERMOST): New macro.
16865         * tree-if-conv.c (innermost_loop_behavior_hash): New class for
16866         hashing struct innermost_loop_behavior.
16867         (ref_DR_map): Remove.
16868         (innermost_DR_map): New map.
16869         (baseref_DR_map): Revise comment.
16870         (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
16871         to innermost_DR_map accroding to its innermost loop behavior.
16872         (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
16873         to its innermost loop behavior.
16874         (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
16875         Add initialization for innermost_DR_map.  Record memory reference
16876         in DR_BASE_ADDRESS if the reference is compound one or it doesn't
16877         have innermost loop behavior.
16878         (if_convertible_loop_p): Remove release for ref_DR_map.  Release
16879         innermost_DR_map.
16881 2016-04-20  Uros Bizjak  <ubizjak@gmail.com>
16883         * config/i386/i386.md (*lea<mode>_general_1): Rename from
16884         *lea_general_1.  Use explicit SWI12 mode interator.
16885         (*lea<mode>_general_2): Rename from *lea_general_2.
16886         Use explicit SWI12 mode interator.
16887         (*lea<mode>_general_3): Rename from *lea_general_3.
16888         Use explicit SWI12 mode interator.
16889         (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
16890         Use explicit SWI12 mode interator.
16891         (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
16892         Use explicit SWI48 mode interator.
16894 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
16896         * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
16897         Short-cut unaligned load and store cases.  Handle all integer
16898         vector modes.
16899         (ix86_expand_vector_move_misalign): Short-cut unaligned load
16900         and store cases.  Call ix86_avx256_split_vector_move_misalign
16901         directly without checking mode class.
16903 2016-04-20  Andrew Pinski  <apinski@cavium.com>
16904             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
16906         PR target/64971
16907         * config/aarch64/aarch64.md (sibcall): Force call
16908         address to be DImode for ILP32.
16909         (sibcall_value): Likewise.
16911 2016-04-20  H.J. Lu  <hongjiu.lu@intel.com>
16913         * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
16915 2016-04-20  Richard Biener  <rguenther@suse.de>
16917         * gimple-match.h (maybe_build_generic_op): Adjust prototype.
16918         * gimple-match-head.c (maybe_build_generic_op): Pass all ops
16919         by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
16920         (maybe_push_res_to_seq): Adjust.
16921         * gimple-fold.c (maybe_build_generic_op): Likewise.
16923 2016-04-20  Marek Polacek  <polacek@redhat.com>
16925         * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
16926         rather than true.
16928 2016-04-20  Ilya Enkovich  <ilya.enkovich@intel.com>
16930         * config/i386/sse.md (vec_unpacks_lo_hi): Always
16931         use kmovw to support AVX512F target.
16933 2016-04-20  Bin Cheng  <bin.cheng@arm.com>
16935         * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
16937 2016-04-20  Marek Polacek  <polacek@redhat.com>
16939         PR tree-optimization/70725
16940         * tree-if-conv.c (is_false_predicate): New function.
16941         (predicate_mem_writes): Use it.
16943 2016-04-20  Richard Biener  <rguenther@suse.de>
16945         PR tree-optimization/70726
16946         * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
16947         shift amounts from a pattern stmt operand.
16949 2016-04-20  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
16951         PR target/70674
16952         * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
16953         stack_restore_from_fpr pattern when restoring r15.
16954         (s390_optimize_prologue): Strip away the memory barrier in the
16955         parallel when trying to get rid of restore insns.
16956         * config/s390/s390.md ("stack_restore_from_fpr"): New insn
16957         definition for loading the stack pointer from an FPR.  Compared to
16958         the normal move insn this pattern includes a full memory barrier.
16960 2016-04-19  Jakub Jelinek  <jakub@redhat.com>
16962         PR middle-end/70680
16963         * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
16964         implicitly linear or lastprivate iterator on the outer context.
16966 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
16968         * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
16969         alignment check.
16970         * config/i386/i386.md (ssememalign): Removed.
16971         * config/i386/sse.md: Remove ssememalign attribute from patterns.
16973 2016-04-19  H.J. Lu  <hongjiu.lu@intel.com>
16975         PR target/69201
16976         * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
16977         const short * to __builtin_ia32_loaddquhi512_mask.
16978         (_mm512_maskz_loadu_epi16): Likewise.
16979         (_mm512_mask_storeu_epi16): Pass short * to
16980         __builtin_ia32_storedquhi512_mask.
16981         (_mm512_mask_loadu_epi8): Pass const char * to
16982         __builtin_ia32_loaddquqi512_mask.
16983         (_mm512_maskz_loadu_epi8): Likewise.
16984         (_mm512_mask_storeu_epi8): Pass char * to
16985         __builtin_ia32_storedquqi512_mask.
16986         * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
16987         const double * to __builtin_ia32_loadupd512_mask.
16988         (_mm512_mask_loadu_pd): Likewise.
16989         (_mm512_maskz_loadu_pd): Likewise.
16990         (_mm512_storeu_pd): Pass double * to
16991         __builtin_ia32_storeupd512_mask.
16992         (_mm512_mask_storeu_pd): Likewise.
16993         (_mm512_loadu_ps): Pass const float * to
16994         __builtin_ia32_loadups512_mask.
16995         (_mm512_mask_loadu_ps): Likewise.
16996         (_mm512_maskz_loadu_ps): Likewise.
16997         (_mm512_storeu_ps): Pass float * to
16998         __builtin_ia32_storeups512_mask.
16999         (_mm512_mask_storeu_ps): Likewise.
17000         (_mm512_mask_loadu_epi64): Pass const long long * to
17001         __builtin_ia32_loaddqudi512_mask.
17002         (_mm512_maskz_loadu_epi64): Likewise.
17003         (_mm512_mask_storeu_epi64): Pass long long *
17004         to __builtin_ia32_storedqudi512_mask.
17005         (_mm512_loadu_si512): Pass const int * to
17006         __builtin_ia32_loaddqusi512_mask.
17007         (_mm512_mask_loadu_epi32): Likewise.
17008         (_mm512_maskz_loadu_epi32): Likewise.
17009         (_mm512_storeu_si512): Pass int * to
17010         __builtin_ia32_storedqusi512_mask.
17011         (_mm512_mask_storeu_epi32): Likewise.
17012         * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
17013         char * to __builtin_ia32_storedquqi256_mask.
17014         (_mm_mask_storeu_epi8): Likewise.
17015         (_mm256_mask_loadu_epi16): Pass const short * to
17016         __builtin_ia32_loaddquhi256_mask.
17017         (_mm256_maskz_loadu_epi16): Likewise.
17018         (_mm_mask_loadu_epi16): Pass const short * to
17019         __builtin_ia32_loaddquhi128_mask.
17020         (_mm_maskz_loadu_epi16): Likewise.
17021         (_mm256_mask_loadu_epi8): Pass const char * to
17022         __builtin_ia32_loaddquqi256_mask.
17023         (_mm256_maskz_loadu_epi8): Likewise.
17024         (_mm_mask_loadu_epi8): Pass const char * to
17025         __builtin_ia32_loaddquqi128_mask.
17026         (_mm_maskz_loadu_epi8): Likewise.
17027         (_mm256_mask_storeu_epi16): Pass short * to.
17028         __builtin_ia32_storedquhi256_mask.
17029         (_mm_mask_storeu_epi16): Pass short * to.
17030         __builtin_ia32_storedquhi128_mask.
17031         * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
17032         const double * to __builtin_ia32_loadupd256_mask.
17033         (_mm256_maskz_loadu_pd): Likewise.
17034         (_mm_mask_loadu_pd): Pass onst double * to
17035         __builtin_ia32_loadupd128_mask.
17036         (_mm_maskz_loadu_pd): Likewise.
17037         (_mm256_mask_storeu_pd): Pass double * to
17038         __builtin_ia32_storeupd256_mask.
17039         (_mm_mask_storeu_pd): Pass double * to
17040         __builtin_ia32_storeupd128_mask.
17041         (_mm256_mask_loadu_ps): Pass const float * to
17042         __builtin_ia32_loadups256_mask.
17043         (_mm256_maskz_loadu_ps): Likewise.
17044         (_mm_mask_loadu_ps): Pass const float * to
17045         __builtin_ia32_loadups128_mask.
17046         (_mm_maskz_loadu_ps): Likewise.
17047         (_mm256_mask_storeu_ps): Pass float * to
17048         __builtin_ia32_storeups256_mask.
17049         (_mm_mask_storeu_ps): ass float * to
17050         __builtin_ia32_storeups128_mask.
17051         (_mm256_mask_loadu_epi64): Pass const long long * to
17052         __builtin_ia32_loaddqudi256_mask.
17053         (_mm256_maskz_loadu_epi64): Likewise.
17054         (_mm_mask_loadu_epi64): Pass const long long * to
17055         __builtin_ia32_loaddqudi128_mask.
17056         (_mm_maskz_loadu_epi64): Likewise.
17057         (_mm256_mask_storeu_epi64): Pass long long * to
17058         __builtin_ia32_storedqudi256_mask.
17059         (_mm_mask_storeu_epi64): Pass long long * to
17060         __builtin_ia32_storedqudi128_mask.
17061         (_mm256_mask_loadu_epi32): Pass const int * to
17062         __builtin_ia32_loaddqusi256_mask.
17063         (_mm256_maskz_loadu_epi32): Likewise.
17064         (_mm_mask_loadu_epi32): Pass const int * to
17065         __builtin_ia32_loaddqusi128_mask.
17066         (_mm_maskz_loadu_epi32): Likewise.
17067         (_mm256_mask_storeu_epi32): Pass int * to
17068         __builtin_ia32_storedqusi256_mask.
17069         (_mm_mask_storeu_epi32): Pass int * to
17070         __builtin_ia32_storedqusi128_mask.
17071         * config/i386/i386-builtin-types.def (PCSHORT): New.
17072         (PINT64): Likewise.
17073         (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
17074         (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
17075         (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
17076         (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
17077         (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
17078         (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
17079         (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
17080         (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
17081         (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
17082         (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
17083         (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
17084         (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
17085         (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
17086         (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
17087         (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
17088         (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
17089         (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
17090         (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
17091         (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
17092         (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
17093         (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
17094         (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
17095         (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
17096         (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
17097         (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
17098         (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
17099         (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
17100         (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
17101         (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
17102         (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
17103         (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
17104         (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
17105         (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
17106         (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
17107         (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
17108         (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
17109         (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
17110         (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
17111         (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
17112         (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
17113         (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
17114         (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
17115         (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
17116         (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
17117         (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
17118         (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
17119         (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
17120         (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
17121         * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
17122         use UNSPEC_STOREU.
17123         (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
17124         (ix86_avx256_split_vector_move_misalign): Don't use unaligned
17125         load nor store.
17126         (ix86_expand_vector_move_misalign): Likewise.
17127         (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
17128         to scalar function prototype for unaligned load/store builtins.
17129         (ix86_expand_special_args_builtin): Updated.
17130         * config/i386/sse.md (UNSPEC_LOADU): Removed.
17131         (UNSPEC_STOREU): Likewise.
17132         (VI_ULOADSTORE_BW_AVX512VL): Likewise.
17133         (VI_ULOADSTORE_F_AVX512VL): Likewise.
17134         (ssescalarsize): Handle V4TI, V2TI and V1TI.
17135         (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17136         (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17137         (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
17138         (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
17139         (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
17140         (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
17141         (sse2_avx_avx512f>_storedqu<mode>): Likewise.
17142         (<avx512>_storedqu<mode>_mask): Likewise.
17143         (*sse4_2_pcmpestr_unaligned): Likewise.
17144         (*sse4_2_pcmpistr_unaligned): Likewise.
17145         (*mov<mode>_internal): Renamed to ...
17146         (mov<mode>_internal): This.  Remove check of AVX and IAMCU on
17147         misaligned operand.  Replace vmovdqu64 with vmovdqu<ssescalarsize>.
17148         (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
17149         (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
17151 2016-04-19  Richard Biener  <rguenther@suse.de>
17153         PR tree-optimization/70171
17154         * tree-ssa-phiprop.c: Include stor-layout.h.
17155         (phiprop_insert_phi): Handle the aggregate copy case.
17156         (propagate_with_phi): Likewise.
17158 2016-04-19  Uros Bizjak  <ubizjak@gmail.com>
17160         * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
17161         instead of simplify_gen_subreg (... , 0).
17162         (ix86_delegitimize_address): Ditto.
17163         (ix86_split_divmod): Ditto.
17164         (ix86_split_copysign_const): Ditto.
17165         (ix86_split_copysign_var): Ditto.
17166         (ix86_expand_args_builtin): Ditto.
17167         (ix86_expand_round_builtin): Ditto.
17168         (ix86_expand_special_args_builtin): Ditto.
17169         * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
17170         (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
17171         (udivmodqi4): Ditto.
17172         (absneg splitters): Ditto.
17173         (*jcc_bt<mode>_1): Ditto.
17175 2016-04-19  Richard Biener  <rguenther@suse.de>
17177         PR tree-optimization/70724
17178         * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
17179         restoring out from ...
17180         (free_scc_vn): ... here.
17181         * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
17182         * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
17183         tail merging.
17184         (pass_fre::execute): Restore SSA info.
17186 2016-04-19  Richard Biener  <rguenther@suse.de>
17188         * gimple-walk.h (struct walk_stmt_info): Add stmt member.
17189         * gimple-walk.c (walk_gimple_op): Initialize it.
17190         (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
17191         * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
17192         remapping SSA names of defs.
17193         (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
17194         adjustment.
17196 2016-04-18  Vladimir Makarov  <vmakarov@redhat.com>
17198         PR middle-end/70689
17199         * lra-constraints.c (equiv_substition_p): New.
17200         (process_alt_operands): Use it.
17201         (swap_operands): Swap it.
17202         (curr_insn_transform): Update it.
17204 2016-04-18  Michael Matz  <matz@suse.de>
17206         * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
17207         (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
17208         * tree-core.h (tree_type_common.align): Use bit-field.
17209         (tree_type_common.spare): New.
17210         (tree_decl_common.off_align): Make smaller.
17211         (tree_decl_common.align): Use bit-field.
17213         * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
17214         * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
17215         (scan_sharing_clauses): Ditto.
17216         (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17217         (omp_finish_file): Ditto.
17218         * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
17219         (layout_decl): Ditto.
17220         (relayout_decl): Ditto.
17221         (finalize_record_size): Use SET_TYPE_ALIGN.
17222         (finalize_type_size): Ditto.
17223         (finish_builtin_struct): Ditto.
17224         (layout_type): Ditto.
17225         (initialize_sizetypes): Ditto.
17226         * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
17227         * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
17228         (lookup_field_for_decl): Use SET_DECL_ALIGN.
17229         (get_chain_field): Ditto.
17230         (get_trampoline_type): Ditto.
17231         (get_nl_goto_field): Ditto.
17232         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
17233         SET_DECL_ALIGN.
17234         (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
17235         * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
17236         * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17237         (build_qualified_type): Use SET_TYPE_ALIGN.
17238         (build_aligned_type, build_range_type_1): Ditto.
17239         (build_atomic_base): Ditto.
17240         (build_common_tree_nodes): Ditto.
17241         * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
17242         (expand_one_stack_var_at): Ditto.
17243         * coverage.c (build_var): Use SET_DECL_ALIGN.
17244         * except.c (init_eh): Ditto.
17245         * function.c (assign_parm_setup_block): Ditto.
17246         * symtab.c (increase_alignment_1): Ditto.
17247         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
17248         * tree-vect-stmts.c (ensure_base_align): Ditto.
17249         * varasm.c (align_variable): Ditto.
17250         (assemble_variable): Ditto.
17251         (build_constant_desc): Ditto.
17252         (output_constant_def_contents): Ditto.
17254         * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
17255         * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
17256         * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
17257         * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
17258         * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
17260 2016-04-18  H.J. Lu  <hongjiu.lu@intel.com>
17262         PR target/70708
17263         * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
17264         replace %vmovsd with "%vmovq".
17265         (vec_concatv2df): Likewise.
17267 2016-04-18  Uros Bizjak  <ubizjak@gmail.com>
17269         * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
17270         (*vec_extractv2si_0): Ditto.
17271         * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
17272         (zero_extended_scalar_load_operand splitters): Ditto.
17273         (vec_extract splitters): Ditto.
17274         (*vec_extractv4si_0_zext): Ditto.
17275         (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
17276         and lowpart_subreg.
17277         (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
17278         (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
17279         (*sse4_1_extractps): Use lowpart_subreg.
17280         * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
17282 2016-04-18  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
17284         * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
17285         gld requirements.
17286         (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
17287         Mention Solaris 11 packaging changes.
17288         Update gas and gld requirements.
17289         Remove reference to pre-Solaris 10 bug.
17290         (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
17291         systems and bugs.
17292         (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
17293         with cc.
17295 2016-04-17  Jan Hubicka  <jh@suse.cz>
17297         * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
17298         max_loop_iterations_int.
17300 2016-04-18  Richard Biener  <rguenther@suse.de>
17302         PR tree-optimization/43434
17303         * tree-ssa-structalias.c (struct vls_data): New.
17304         (visit_loadstore): Handle all pointer-based accesses.
17305         (compute_dependence_clique): Compute a bitmap of restrict tags
17306         assigned bases and pass it to visit_loadstore.
17308 2016-04-18  Matthew Wahab  <matthew.wahab@arm.com>
17310         PR target/70711
17311         * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
17312         armv8.1-a and armv8.1-a+crc.
17314 2016-04-18  Richard Biener  <rguenther@suse.de>
17316         PR tree-optimization/70701
17317         * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
17318         references after translating through a memcpy.
17320 2016-04-18  Richard Biener  <rguenther@suse.de>
17322         * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
17323         (compute_antic): ... here.  For partial antic use regular
17324         postorder and scrap iteration.
17325         (compute_partial_antic_aux): Remove unused return value.
17326         (init_pre): Do not allocate postorder.
17327         (fini_pre): Do not free postorder.
17329 2016-04-18  Richard Biener  <rguenther@suse.de>
17331         PR middle-end/37870
17332         * expmed.c (extract_bit_field_1): Remove broken case
17333         using a wider MODE_INT mode.
17335 2016-04-18  Segher Boessenkool  <segher@kernel.crashing.org>
17337         * has-brig.c (lendian16): Don't try to use __builtin_bswap16
17338         unless compiling with at least GCC-4.8.
17340 2016-04-17  Jan Hubicka  <jh@suse.cz>
17342         PR bootstrap/70706
17343         * graphite.c (graphite_finalize): Update call to
17344         tree_estimate_probability.
17345         * predict.h (tree_estimate_probability): Update prototype.
17347 2016-04-17  Jan Hubicka  <jh@suse.cz>
17349         * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
17350         (tree_estimate_probability): Likewise.
17351         (pass_profile::execute): Update.
17352         (report_predictor_hitrates): New function.
17353         * profile.c (compute_branch_probabilities): Use it.
17354         * predict.h (report_predictor_hitrates): Declare.
17356 2016-04-17  Jan Hubicka  <jh@suse.cz>
17358         PR ipa/70018
17359         * cgraph.h (cgraph_node::set_const_flag,
17360         cgraph_node::set_pure_flag): Update prototype to return bool;
17361         update comment.
17362         * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
17363         of interposable symbol are interposable, too.
17364         (cgraph_set_const_flag_1): Rename to ...
17365         (set_const_flag_1): ... this one; change to self recursive function
17366         instead of call_for_symbol_thunks_and_aliases. Handle correctly
17367         clearnig the flag in all variants and also virtual thunks of const
17368         functions are pure; track if any change was done.
17369         (cgraph_node::set_const_flag): Update.
17370         (struct set_pure_flag_info): New struct.
17371         (cgraph_set_pure_flag_1): Rename to ...
17372         (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
17373         rather than pointer encoded flags; track if any changes was done;
17374         handle correctly clearning flag and setting flag of aliases already
17375         declared const.
17376         (cgraph_node::set_pure_flag): Update.
17377         (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
17379 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17381         PR other/70433
17382         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
17383         backslash in label.
17385 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17387         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
17388         '{}<> ' as escape-for-record.
17390 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17392         * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
17393         structure.
17395 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17397         PR other/70185
17398         * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
17399         * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
17400         * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
17401         * passes.c (finish_optimization_passes): Only call
17402         finish_graph_dump_file if dfi->graph_dump_initialized.
17403         (execute_function_dump, pass_init_dump_file): Use
17404         dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
17406 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17408         PR tree-optimization/70256
17409         * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
17410         (debug_varmap): New function.
17412 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17414         PR other/70183
17415         * passes.c (pass_manager::register_pass): Propagate pflags.
17417 2016-04-17  Tom de Vries  <tom@codesourcery.com>
17419         PR other/68875
17420         * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
17421         * passes.c (pass_manager::pass_manager): Declare and init p_start in
17422         INSERT_PASSES_AFTER.  Add pass parameter to TERMINATE_PASS_LIST, and
17423         check if it's equal to p_start.
17424         * passes.def: Add arguments to TERMINATE_PASS_LISTs.
17426 2016-04-15  Jan Hubicka  <jh@suse.cz>
17428         PR ipa/70018
17429         * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
17430         function does not bind to current def.
17431         * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
17432         handle conservatively calls to functions that does not need to bind
17433         to current def.
17434         (check_call): Update call of worse_state.
17435         (ignore_edge_for_nothrow): Update.
17436         (ignore_edge_for_pure_const): Likewise.
17437         (propagate_pure_const): Update calls to worse_state.
17438         (skip_function_for_local_pure_const): Reformat comments.
17440 2016-04-15  Jan Hubicka  <jh@suse.cz>
17442         PR ipa/70018
17443         * cgraph.c (cgraph_node::get_availability): Add REF parameter.
17444         (cgraph_node::function_symbol): Likewise.
17445         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
17446         * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
17447         (symtab_node::ultimate_alias_target): Add REF parameter.
17448         (symtab_node::binds_to_current_def_p): Declare.
17449         (symtab_node;:ultimate_alias_target_1): Add REF parameter.
17450         (cgraph_node::function_symbol): Likewise.
17451         (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
17452         (cgraph_node::get_availability): Likewise.
17453         (cgraph_edge::binds_to_current_def_p): New inline function.
17454         (varpool_node::get_availability): Add REF parameter.
17455         (varpool_node::ultimate_alias_target): Likewise.
17456         * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
17457         (symtab_node::binds_to_current_def_p): Likewise.
17458         * varpool.c (varpool_node::get_availability): Likewise.
17460 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
17462         PR target/70662
17463         * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
17464         Fix mode size check.
17466 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
17468         * BASE-VER: Set to 7.0.0.
17470 2016-04-15  Alexander Monakov  <amonakov@ispras.ru>
17472         * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
17474 2016-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17476         * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
17477         architecture revisions.
17479 2016-04-15  Bernd Schmidt  <bschmidt@redhat.com>
17481         * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
17482         * config/i386/i386.c (ix86_using_red_zone): No longer static.
17483         * config/i386/i386.md (stack decrement to push peepholes): Guard
17484         with !x86_using_red_zone ().
17486 2016-04-15  Jakub Jelinek  <jakub@redhat.com>
17488         PR c++/70675
17489         * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
17490         to dump_generic_node.
17491         (NIY): Pass also flags to do_niy.
17493 2016-04-15  Thomas Schwinge  <thomas@codesourcery.com>
17495         * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
17496         (simd_clone_vector_of_formal_parm_types)
17497         (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
17498         (simd_clone_mangle, simd_clone_create)
17499         (simd_clone_adjust_return_type, create_tmp_simd_array)
17500         (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
17501         (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
17502         (ipa_simd_modify_function_body, simd_clone_linear_addend)
17503         (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
17504         (pass_data_omp_simd_clone, class pass_omp_simd_clone)
17505         (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
17506         * omp-simd-clone.c: ... this new file.
17507         (simd_clone_vector_of_formal_parm_types): Make it static.
17508         * Makefile.in (OBJS): Add omp-simd-clone.o.
17510 2016-04-15  Kirill Yukhin  <kirill.yukhin@intel.com>
17512         PR target/70662
17513         * config/i386/sse.md: Use proper memory operand modifiers.
17516 2016-04-15  Richard Biener  <rguenther@suse.de>
17517         Alan Modra  <amodra@gmail.com>
17519         PR tree-optimization/70130
17520         * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
17521         when alignment stays not the same and no not use the realign
17522         scheme then.
17524 2016-04-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
17526         PR target/70669
17527         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
17528         direct move handlers for KFmode. Change TFmode handlers test from
17529         FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
17531 2016-04-14  Jakub Jelinek  <jakub@redhat.com>
17533         PR c++/70594
17534         * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
17535         * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
17536         (inlined_polymorphic_ctor_dtor_block_p): Use it.
17537         * tree-ssa-live.c (remove_unused_scope_block_p): When
17538         in_ctor_dtor_block, avoid discarding not just BLOCKs with
17539         BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
17540         block_ultimate_origin is FUNCTION_DECL.
17541         (remove_unused_locals): If current_function_decl is
17542         polymorphic_ctor_dtor_p, pass initial true to
17543         remove_unused_scope_block_p' is_ctor_dtor_block.
17545 2016-04-14  Martin Sebor  <msebor@redhat.com>
17547         PR c++/69517
17548         PR c++/70019
17549         PR c++/70588
17550         * doc/extend.texi (Variable Length): Revert.
17552 2016-04-14  Marek Polacek  <polacek@redhat.com>
17553             Jan Hubicka  <hubicka@ucw.cz>
17555         PR c++/70029
17556         * tree.c (verify_type): Disable the canonical type of main variant
17557         check.
17559 2016-04-14  Jason Merrill  <jason@redhat.com>
17561         * cfgexpand.c, expr.c: Revert previous change.
17563 2016-04-14  Cesar Philippidis  <cesar@codesourcery.com>
17565         PR middle-end/70643
17566         * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
17567         when building a mem ref for the incoming reduction variable.
17569 2016-04-14  Richard Biener  <rguenther@suse.de>
17571         PR tree-optimization/70614
17572         * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
17573         loop if the evolution dropped to chrec_dont_know.
17574         (interpret_condition_phi): Likewise.
17576 2016-04-14  Richard Biener  <rguenther@suse.de>
17578         PR tree-optimization/70623
17579         * tree-ssa-pre.c (changed_blocks): Make global ...
17580         (compute_antic): ... local here.  Move and fix worklist
17581         handling here.  Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
17582         (compute_antic_aux): Add dumping for MAX assumed succs.  Remove
17583         worklist handling, dump when ANTIC_IN changed.
17584         (compute_partial_antic_aux): Remove worklist handling.
17585         (init_pre): Do not compute post dominators.  Add a comment about
17586         the CFG order chosen.
17587         (fini_pre): Do not free post dominators.
17589 2016-04-13  Martin Sebor  <msebor@redhat.com>
17591         PR c++/69517
17592         PR c++/70019
17593         PR c++/70588
17594         * doc/extend.texi (Variable Length): Document C++ specifics.
17596 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
17598         PR c++/70641
17599         * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
17600         on all recursive call stmts.  Return TODO_cleanup_cfg if any dead
17601         eh edges have been purged.
17603         PR c++/70594
17604         * tree-sra.c (create_access_replacement,
17605         get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
17606         gets fancy name.
17607         * tree-pretty-print.c (dump_fancy_name): New function.
17608         (dump_decl_name, dump_generic_node): Use it.
17610 2016-04-13  Jason Merrill  <jason@redhat.com>
17612         * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
17613         * expr.c (expand_expr_real_1): Likewise.
17615 2016-04-13  Ilya Enkovich  <ilya.enkovich@intel.com>
17617         * config/i386/i386.md (kunpckhi): Swap operands.
17618         (kunpcksi): Likewise.
17619         (kunpckdi): Likewise.
17620         * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
17621         (vec_pack_trunc_<mode>): Likewise.
17623 2016-04-13  Jakub Jelinek  <jakub@redhat.com>
17625         PR debug/70628
17626         * explow.c (convert_memory_address_addr_space_1): Formatting fix.
17628         PR middle-end/70633
17629         * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
17630         gimplification turns some element into non-constant.
17632         PR debug/70628
17633         * rtl.h (convert_memory_address_addr_space_1): New prototype.
17634         * explow.c (convert_memory_address_addr_space_1): No longer static,
17635         add NO_EMIT argument and don't call convert_modes if true, pass
17636         it down recursively, remove break after return.
17637         (convert_memory_address_addr_space): Adjust caller.
17638         * simplify-rtx.c (simplify_unary_operation_1): Call
17639         convert_memory_address_addr_space_1 instead of convert_memory_address,
17640         if it returns NULL, don't simplify.
17642 2016-04-12  Eric Botcazou  <ebotcazou@adacore.com>
17644         PR target/70630
17645         * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
17647 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
17649         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17650         Bump the upper SIMDLEN limits, so that if the return type or
17651         characteristic type if the return type is void can be passed in
17652         all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
17653         allowed.
17655 2016-04-12  Michael Meissner  <meissner@linux.vnet.ibm.com>
17657         PR target/70640
17658         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
17659         Do not use "=" constraint on an input constraint.
17660         (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
17661         (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
17662         (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
17663         generates (neg (abs ...)) instead of (abs ...).
17665 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
17667         PR rtl-optimization/70596
17668         * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
17669         just invalidate LRA data and reset them.  Adjust dump wording.
17671 2016-04-12  Martin Liska  <mliska@suse.cz>
17673         Revert
17674         2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
17676         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
17677         estimates here.
17678         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17679         max_loop_iterations_int.
17680         (tree_unswitch_outer_loop): Likewise.
17681         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
17682         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17684 2016-04-12  Tom de Vries  <tom@codesourcery.com>
17686         PR tree-optimization/68756
17687         * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
17688         instead of new_name.
17690 2016-04-12  Jakub Jelinek  <jakub@redhat.com>
17692         PR tree-optimization/70602
17693         * tree-sra.c (generate_subtree_copies): Don't write anything into
17694         constant pool decls.
17696         * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
17697         regardless whether there are depend clauses or not.
17699 2016-04-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
17701         PR target/70381
17702         * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
17703         target attribute and pragma from changing the -mfloat128
17704         and -mfloat128-hardware options.
17706         * doc/extend.texi (Additional Floating Types): Document PowerPC
17707         __float128 restrictions.
17709 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
17711         PR target/70133
17712         * config/aarch64/driver-aarch64.c
17713         (aarch64_get_extension_string_for_isa_flags): New.
17714         (arch_extension): Rename to...
17715         (aarch64_arch_extension): ...This.
17716         (ext_to_feat_string): Rename to...
17717         (aarch64_extensions): ...This.
17718         (aarch64_core_data): Keep track of architecture extension flags.
17719         (cpu_data): Rename to...
17720         (aarch64_cpu_data): ...This.
17721         (aarch64_arch_driver_info): Keep track of architecture extension
17722         flags.
17723         (get_arch_name_from_id): Rename to...
17724         (get_arch_from_id): ...This, change return type.
17725         (host_detect_local_cpu): Update and reformat for renames, handle
17726         extensions through common infrastructure.
17728 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
17730         PR target/70133
17731         * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
17732         track of a canonical flag name.
17733         (all_extensions): Likewise.
17734         (arch_to_arch_name): Also track extension flags enabled by the arch.
17735         (all_architectures): Likewise.
17736         (aarch64_parse_extension): Move to here.
17737         (aarch64_get_extension_string_for_isa_flags): Take a new argument,
17738         rework.
17739         (aarch64_rewrite_selected_cpu): Update for above change.
17740         * config/aarch64/aarch64-option-extensions.def: Rework the way flags
17741         are handled, such that the single explicit value enabled by an
17742         extension is kept seperate from the implicit values it also enables.
17743         * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
17744         to here.
17745         (aarch64_parse_extension): New.
17746         * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
17747         here to config/aarch64/aarch64-protos.h.
17748         (aarch64_parse_extension): Move from here to
17749         common/config/aarch64/aarch64-common.c.
17750         (aarch64_option_print): Update.
17751         (aarch64_declare_function_name): Likewise.
17752         (aarch64_start_file): Likewise.
17753         * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
17754         the canonical flag for extensions.
17755         * config.gcc (aarch64*-*-*): Extend regex for capturing extension
17756         flags.
17758 2016-04-11  James Greenhalgh  <james.greenhalgh@arm.com>
17760         * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
17761         AARCH64_FL_CRC.
17763 2016-04-09  Tom de Vries  <tom@codesourcery.com>
17765         PR tree-optimization/68953
17766         * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
17767         first to last subscript.
17769 2016-04-09  Jakub Jelinek  <jakub@redhat.com>
17771         PR tree-optimization/70586
17772         * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
17773         for any calls.
17775 2016-04-08  Cesar Philippidis  <cesar@codesourcery.com>
17777         PR lto/70289
17778         PR ipa/70348
17779         PR tree-optimization/70373
17780         PR middle-end/70533
17781         PR middle-end/70534
17782         PR middle-end/70535
17783         * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
17784         clauses for acc parallel reductions as necessary.  Error on those
17785         that are private.
17786         * omp-low.c (scan_sharing_clauses): Don't install variables which
17787         are used in acc parallel reductions.
17788         (lower_rec_input_clauses): Remove dead code.
17789         (lower_oacc_reductions): Add support for reference reductions.
17790         (lower_reduction_clauses): Remove dead code.
17791         (lower_omp_target): Don't remap variables appearing in acc parallel
17792         reductions.
17793         * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
17795 2016-04-08  Jakub Jelinek  <jakub@redhat.com>
17797         PR middle-end/70593
17798         * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
17799         with multiple SSA_NAME defs, force the outputs other than first
17800         to be live before calling live_track_process_def on each output.
17802         PR rtl-optimization/70574
17803         * fwprop.c (forward_propagate_and_simplify): Don't add
17804         REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
17805         (try_fwprop_subst): Don't add REG_EQUAL note if there are any
17806         paradoxical subregs within *loc.
17808 2016-04-08  Thomas Schwinge  <thomas@codesourcery.com>
17810         * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
17811         -ftree-parallelize-loops={0,1}.
17812         * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
17813         * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
17814         * config/ia64/hpux.h (LIB_SPEC): Likewise.
17815         * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
17816         * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
17818 2016-04-08  Maxim Ostapenko  <m.ostapenko@samsung.com>
17820         PR sanitizer/70541
17821         * asan.c (instrument_derefs): If we get unknown location, extract it
17822         with EXPR_LOCATION.
17823         (maybe_instrument_call): Instrument gimple_call's arguments if needed.
17825 2016-04-08  Tom de Vries  <tom@codesourcery.com>
17827         * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
17828         implicit firstprivate clause.
17830 2016-04-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
17832         PR target/70566
17833         * config/arm/thumb2.md (tst + branch-> lsls + branch
17834         peephole below *orsi_not_shiftsi_si): Require that condition
17835         register is dead after the peephole.
17836         (second peephole after the above): Likewise.
17838 2016-04-08  Alan Modra  <amodra@gmail.com>
17840         PR target/70117
17841         * builtins.c (fold_builtin_classify): For IBM extended precision,
17842         look at just the high-order double to test for NaN.
17843         (fold_builtin_interclass_mathfn): Similarly for Inf.  For isnormal
17844         test just the high double for Inf but both doubles for subnormal
17845         limit.
17847 2016-04-07  Jakub Jelinek  <jakub@redhat.com>
17849         * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
17850         * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
17851         node->simdclone->mask_mode != VOIDmode masks.
17852         (simd_clone_adjust_argument_types): Likewise.  Move sc var definition
17853         earlier, use it instead of node->simdclone.
17854         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17855         Set clonei->mask_mode.
17857 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
17859         PR c/70436
17860         * parser.c (cp_parser_iteration_statement): New parameter IF_P.
17861         Pass it through to cp_parser_already_scoped_statement.
17862         (cp_parser_already_scoped_statement): New parameter IF_P.  Pass
17863         it through to cp_parser_statement.
17864         (cp_parser_statement): Pass IF_P through to
17865         cp_parser_iteration_statement.
17866         (cp_parser_pragma): Adjust call to
17867         cp_parser_iteration_statement.
17869 2016-04-06  Patrick Palka  <ppalka@gcc.gnu.org>
17871         PR c/70436
17872         * gimplify.c (gimplify_omp_ordered): Add explicit braces to
17873         resolve a future -Wparentheses warning.
17874         * omp-low.c (scan_sharing_clauses): Likewise.
17875         * tree-parloops.c (eliminate_local_variables): Likewise.
17877 2016-04-06  Vladimir Makarov  <vmakarov@redhat.com>
17879         PR rtl-optimization/70398
17880         * lra-constraints.c (process_address_1): Check zero scale and code
17881         for reloading with zero scale.
17883 2016-04-06  Uros Bizjak  <ubizjak@gmail.com>
17885         * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
17886         (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
17888 2016-04-06  Jakub Jelinek  <jakub@redhat.com>
17890         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17891         Add support for AVX512F clones, include them by default for
17892         exported OpenMP declare simd functions.  For AVX2 allow simdlen 32
17893         and use it if charasteric type is 8-bit, for AVX512F allow simdlen
17894         up to 128.
17896         PR middle-end/70550
17897         * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
17898         * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
17899         firstprivate clauses.
17900         * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
17901         OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
17902         (lower_omp_target): Set TREE_NO_WARNING for
17903         non-addressable possibly uninitialized vars which are copied into
17904         addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
17906 2016-04-05  John David Anglin  <danglin@gcc.gnu.org>
17908         * config/pa/predicates.md (integer_store_memory_operand): Accept
17909         REG+D operands with a large offset when reload_in_progress is true.
17910         (floating_point_store_memory_operand): Likewise.
17912 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
17914         PR c++/70336
17915         * match.pd (nested int casts): Limit to GIMPLE.
17917 2016-04-05  Jan Hubicka  <hubicka@ucw.cz>
17919         PR ipa/66223
17920         * ipa-devirt.c (maybe_record_node): Fix comment; use
17921         SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
17923 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
17925         PR rtl-optimization/70542
17926         * ree.c (add_removable_extension): For VECTOR_MODE_P punt
17927         if there are any uses other than insn or debug insns.
17929 2016-04-05  Marc Glisse  <marc.glisse@inria.fr>
17930             Jakub Jelinek  <jakub@redhat.com>
17932         PR tree-optimization/70509
17933         * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
17934         Shift HOST_WIDE_INT_1U instead of 1.
17936 2016-04-05  Zdenek Sojka  <zsojka@seznam.cz>
17938         PR tree-optimization/70509
17939         * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
17940         of the vector base type for index.
17942 2016-04-05  Uros Bizjak  <ubizjak@gmail.com>
17944         PR target/70510
17945         * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
17947 2016-04-05  Richard Biener  <rguenther@suse.de>
17949         PR tree-optimization/70526
17950         * tree-sra.c (build_ref_for_offset): Use prev_base to
17951         extract the alias pointer type.
17953 2016-04-05  Richard Biener  <rguenther@suse.de>
17955         * dse.c (struct store_info): Remove alias_set member.
17956         (struct read_info_type): Likewise.
17957         (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
17958         spill_deleted, clear_alias_set_lookup): Remove.
17959         (get_group_info): Remove dead base == NULL_RTX case.
17960         (dse_step0): Remove initialization of removed variables.
17961         (delete_dead_store_insn): Reomve alias set dumping.
17962         (free_read_records): Remove alias_set handling.
17963         (canon_address): Remove alias_set_out parameter.
17964         (record_store): Remove spill_alias_set, it's always zero.
17965         (check_mem_read_rtx): Likewise.
17966         (dse_step2): Rename from ...
17967         (dse_step2_nospill): ... this.  Adjust.
17968         (scan_stores): Rename from ...
17969         (scan_stores_nospill): ... this.
17970         (scan_reads): Rename from ...
17971         (scan_reads_nospill): ... this.
17972         (scan_stores_spill, scan_reads_spill): Remove.
17973         (dse_step3_scan): Remove for_spills argument which is always false.
17974         (dse_step3): Likewise.
17975         (dse_step5): Rename from ...
17976         (dse_step5_nospill): ... this.  Remove alias_set handling.
17977         (rest_of_handle_dse): Adjust.
17979 2016-04-05  Jakub Jelinek  <jakub@redhat.com>
17981         PR target/70525
17982         * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
17983         Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
17984         V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
17985         (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
17987 2016-04-05  Richard Biener  <rguenther@suse.de>
17989         PR middle-end/70499
17990         * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
17991         non-register type temporaries into SSA.
17993 2016-04-04  Jan Hubicka  <hubicka@ucw.cz>
17995         PR ipa/66223
17996         * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
17997         calls when sanitizing.
17998         (possible_polymorphic_call_target_p): Fix formatting.
18000 2016-04-04  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
18001             Jakub Jelinek  <jakub@redhat.com>
18003         PR middle-end/70457
18004         * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
18005         to ensure a call statement is compatible with a built-in's
18006         prototype.
18007         * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
18008         Likewise.
18010 2016-04-04  Richard Biener  <rguenther@suse.de>
18012         PR rtl-optimization/70484
18013         * rtl.h (canon_output_dependence): Declare.
18014         * alias.c (canon_output_dependence): New function.
18015         * dse.c (record_store): Use canon_output_dependence rather
18016         than canon_true_dependence.
18018 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
18020         PR ipa/68881
18021         * cgraph.h (symtab_node::copy_visibility_from): New function.
18022         * symtab.c (symtab_node::copy_visibility_from): New function.
18023         * ipa-visibility.c (optimize_weakref): New function.
18024         (function_and_variable_visibility): Use it.
18026 2016-04-04  Martin Liska  <mliska@suse.cz>
18028         PR hsa/70402
18029         * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
18030         value that is really in range handled by SBR instruction.
18031         * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
18032         * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
18033         * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
18035 2016-04-03  Oleg Endo  <olegendo@gcc.gnu.org>
18037         PR target/70416
18038         PR target/67391
18039         * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
18040         set, but not for SP_REG operands.
18042 2016-04-02  Martin Sebor  <msebor@redhat.com>
18044         PR c++/67376
18045         * fold-const.c (maybe_nonzero_address): New function.
18046         (fold_comparison): Call it.  Fold equality and relational
18047         expressions involving null pointers.
18048         (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
18050 2016-03-31  Evandro Menezes  <e.menezes@samsung.com>
18052         Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
18053         the "Y" constraint (scalar FP 0.0 immediate).
18055         * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
18056         Add the "const_double" to the list of operand constraints.
18058 2016-04-01  Jakub Jelinek  <jakub@redhat.com>
18060         PR rtl-optimization/70467
18061         * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
18062         If low word of the last operand is 0, just emit addition/subtraction
18063         for the high word.
18065 2016-04-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
18067         PR target/70404
18068         * config/s390/s390.c (s390_expand_insv): Check for everything
18069         constant instead of just VOIDmode stuff.
18071 2016-04-01  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
18073         PR target/70496
18074         * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
18076 2016-04-01  Nathan Sidwell  <nathan@acm.org>
18078         * tree.def (TRY_CATCH_EXPR): Correct documentation.
18080 2016-03-31  Vladimir Makarov  <vmakarov@redhat.com>
18082         PR rtl-optimization/70461
18083         * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
18084         is necessary.
18086 2016-03-31  Martin Liska  <mliska@suse.cz>
18088         PR hsa/70399
18089         * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
18090         a tree value or an immediate integer value to a buffer
18091         that is eventually copied to a BRIG section.
18092         (emit_immediate_operand): Call the function here.
18093         * hsa-dump.c (dump_hsa_immed): Remove checking assert.
18094         * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
18095         of class' fields that are removed.
18096         (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
18097         * hsa.h (class hsa_op_immed): Remove m_brig_repr and
18098         m_brig_repr_size fields.
18100 2016-03-31  Martin Liska  <mliska@suse.cz>
18102         PR hsa/70391
18103         * hsa-gen.c (hsa_function_representation::update_dominance): New
18104         function.
18105         (convert_addr_to_flat_segment): Likewise.
18106         (gen_hsa_memory_set): New alignment argument.
18107         (gen_hsa_ctor_assignment): Likewise.
18108         (gen_hsa_insns_for_single_assignment): Provide alignment
18109         to gen_hsa_ctor_assignment.
18110         (gen_hsa_insns_for_direct_call): Add new argument.
18111         (expand_lhs_of_string_op): New function.
18112         (expand_string_operation_builtin): Likewise.
18113         (expand_memory_copy): New function.
18114         (expand_memory_set): New function.
18115         (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
18116         (convert_switch_statements): Change signature.
18117         (generate_hsa): Use a return value of the function.
18118         (pass_gen_hsail::execute): Do not call
18119         convert_switch_statements here.
18120         * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
18121         * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
18122         (hsa_function_representation::update_dominance): New function.
18124 2016-03-31  Martin Liska  <mliska@suse.cz>
18126         PR hsa/70391
18127         * hsa-brig.c (emit_directive_variable): Emit alignment
18128         according to hsa_symbol::m_align.
18129         * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
18130         (dump_hsa_symbol): Dump alignment of HSA symbols.
18131         * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
18132         (gen_hsa_addr_with_align): New function.
18133         (hsa_bitmemref_alignment): Use newly added function.
18134         (gen_hsa_insns_for_load): Likewise.
18135         (gen_hsa_insns_for_store): Likewise.
18136         (gen_hsa_memory_copy): New argument added.
18137         (gen_hsa_insns_for_single_assignment): Respect
18138         alignment for assignments processed via gen_hsa_memory_copy.
18139         (gen_hsa_insns_for_direct_call): Likewise.
18140         (gen_hsa_insns_for_return): Likewise.
18141         (gen_function_def_parameters): Set default alignment.
18142         * hsa.c (hsa_object_alignment): New function.
18143         (hsa_byte_alignment): Pasted function.
18144         * hsa.h (hsa_symbol::m_align): New field.
18146 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
18148         * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
18149         scratch field for goto case.
18151 2016-03-31  James Greenhalgh  <james.greenhalgh@arm.com>
18153         * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
18155 2016-03-31  Ilya Enkovich  <enkovich.gnu@gmail.com>
18157         PR target/70442
18158         * config/i386/i386.c (scalar_chain::convert_op): Fix description.
18159         (scalar_chain::convert_insn): Call convert_op for reg
18160         moves to handle undefined registers.
18162 2016-03-31  Nathan Sidwell  <nathan@acm.org>
18164         PR c++/70393
18165         * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
18166         Assert we don't want to move backwards.
18168 2016-03-31  Kirill Yukhin  <kirill.yukhin@intel.com>
18170         PR target/70453
18171         * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
18173 2016-03-31  Jakub Jelinek  <jakub@redhat.com>
18175         PR rtl-optimization/70460
18176         * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
18177         with operand from REG_LABEL_OPERAND, instead substitute
18178         SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
18179         Don't do anything for REG_NON_LOCAL_GOTO jumps.
18181 2016-03-31  Martin Liska  <mliska@suse.cz>
18183         * passes.c (execute_one_pass): Do not call
18184         todo_after for a discarded function.
18186 2016-03-31  Bin Cheng  <bin.cheng@arm.com>
18188         * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
18189         (no_cost, infinite_cost): Initialize the new field.
18190         (get_computation_cost_at): Record setup cost.
18191         (determine_use_iv_cost_address): Skip cost computation for sub
18192         uses if we can estimate it without losing accuracy.
18194 2016-03-30  Jan Hubicka  <hubicka@ucw.cz>
18196         * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18197         estimates here.
18198         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18199         max_loop_iterations_int.
18200         (tree_unswitch_outer_loop): Likewise.
18201         * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18202         * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18204 2016-03-30  Richard Biener  <rguenther@suse.de>
18206         PR middle-end/70450
18207         * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
18209 2016-03-30  Jakub Jelinek  <jakub@redhat.com>
18211         PR target/70421
18212         * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
18213         in gen_blendm expander.
18215 2016-03-30  Nick Clifton  <nickc@redhat.com>
18217         PR target/62254
18218         * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
18219         case where we are already provided with an SImode SUBREG.
18221 2016-03-30  H.J. Lu  <hongjiu.lu@intel.com>
18223         PR target/70439
18224         * config/i386/i386.c (ix86_expand_epilogue): Properly check
18225         conflict between DRAP register and __builtin_eh_return.
18227 2016-03-30  Michael Matz  <matz@suse.de>
18228             Richard Biener  <rguenther@suse.de>
18230         PR ipa/12392
18231         * ipa-polymorphic-call.c (struct type_change_info): Change
18232         speculative to an unsigned allowing to limit the work we do.
18233         (csftc_abort_walking_p): New inline function..
18234         (check_stmt_for_type_change): Limit the number of may-defs
18235         skipped for speculative devirtualization to
18236         max-speculative-devirt-maydefs.
18237         * params.def (max-speculative-devirt-maydefs): New param.
18238         * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
18240 2016-03-30  Mike Stump  <mrs@gcc.gnu.org>
18242         PR target/63890
18243         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
18244         and TARGET_MACHO.
18246 2016-03-30  Patrick Palka  <ppalka@gcc.gnu.org>
18248         PR tree-optimization/59124
18249         * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
18250         where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
18252 2016-03-29  Jeff Law  <law@redhat.com>
18254         * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
18256 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
18258         * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
18259         to HOST_WIDE_INT.
18261 2016-03-29  Thomas Schwinge  <thomas@codesourcery.com>
18263         * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
18264         * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
18265         gcrt0.o if linking dynamically.
18267 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
18269         PR ipa/70283
18270         * ipa-devirt.c (methods_equal_p): New function.
18271         (compare_virtual_tables): Use it.
18272         * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
18273         * cgraphclones.c (clone_function_name_1): Use
18274         symbol_table::symbol_suffix_separator.
18275         * coverage.c (build_var): Likewise.
18276         * symtab.c (symbol_table::symbol_suffix_separator): New.
18278 2016-03-29  Jakub Jelinek  <jakub@redhat.com>
18280         PR rtl-optimization/70429
18281         * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
18282         (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
18283         mode != result_mode.
18285         PR c++/70353
18286         * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
18288         PR tree-optimization/70405
18289         * ssa-iterators.h (num_imm_uses): Add missing braces.
18291 2016-03-29  Vladimir Makarov  <vmakarov@redhat.com>
18293         PR rtl-optimization/68695
18294         * ira-color.c (allocno_copy_cost_saving): New.
18295         (improve_allocation): Use it.
18297 2016-03-29  Richard Henderson  <rth@redhat.com>
18299         PR middle-end/70355
18300         * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
18302 2016-03-29  Richard Biener  <rguenther@suse.de>
18304         PR middle-end/70424
18305         * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
18306         use alignment returned by get_pointer_alignment_1 if it is
18307         bigger than BITS_PER_UNIT.
18308         * builtins.c (get_pointer_alignment_1): Do not return true
18309         for alignment extracted from SSA info.
18311 2016-03-28  James Bowman  <james.bowman@ftdichip.com>
18313         * config/ft32/ft32.opt (mnodiv): New.
18314         * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
18315         * doc/invoke.texi (FT32 Options -mnodiv): New.
18317 2016-03-28  Kirill Yukhin  <kirill.yukhin@intel.com>
18319         PR target/70406
18320         * config/i386/i386.md (define_split, andn): Fix modes.
18322 2016-03-26  Richard Biener  <rguenther@suse.de>
18323             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
18325         PR ipa/70366
18326         * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
18327         instead of
18328         TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
18329         as 2nd argument to cl_optimization_restore().
18331 2016-03-25  Richard Henderson  <rth@redhat.com>
18333         PR target/70120
18334         * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
18335         * config/aarch64/aarch64-protos.h: Declare it.
18336         * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
18338 2016-03-25  Alan Modra  <amodra@gmail.com>
18340         PR target/70052
18341         * config/rs6000/constraints.md (j): Simplify.
18342         * config/rs6000/predicates.md (easy_fp_constant): Exclude
18343         decimal float 0.D.
18344         * config/rs6000/rs6000.md (zero_fp): New mode_attr.
18345         (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
18346          mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
18347         in all constraint alternatives.
18348         (movtd_64bit_nodm): Delete "j" constraint alternative.
18350 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
18352         * tree-ssa-propagate.c: Enhance docs for
18353         SSA_PROP_NOT_INTERESTING.
18355 2016-03-24  Aldy Hernandez  <aldyh@redhat.com>
18357         * doc/extend.texi: Fix typo in documentation to pure attribute.
18359 2016-03-24  John David Anglin  <danglin@gcc.gnu.org>
18361         PR target/70319
18362         * config/pa/pa.md (bswapdi2): Use a scratch register.
18364 2016-03-24  Richard Henderson  <rth@redhat.com>
18366         PR middle-end/69845
18367         * fold-const.c (extract_muldiv_1): Correct test for multiplication
18368         overflow.
18370 2016-03-24  Uros Bizjak  <ubizjak@gmail.com>
18372         * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
18373         using ix86_expand_binary_operator instead of gen_andsi3.
18375 2016-03-24  Richard Biener  <rguenther@suse.de>
18377         PR tree-optimization/70396
18378         * tree-vect-stmts.c (vectorizable_comparison): Use
18379         get_vectype_for_scalar_type.
18381 2016-03-24  Richard Biener  <rguenther@suse.de>
18383         PR middle-end/70370
18384         * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
18385         with register bases.
18387 2016-03-24  Richard Biener  <rguenther@suse.de>
18389         PR tree-optimization/70372
18390         * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
18391         build_all_ones_cst to also handle vector types correctly.
18393 2016-03-23  Michael Meissner  <meissner@linux.vnet.ibm.com>
18395         PR target/70381
18396         * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
18397         -mfloat128 here.
18399 2016-03-23  Marek Polacek  <polacek@redhat.com>
18401         PR c++/69884
18402         * doc/invoke.texi: Document -Wignored-attributes.
18404 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
18406         PR tree-optimization/69042
18407         * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
18408         parameter from 30 to 40.
18410 2016-03-23  Bin Cheng  <bin.cheng@arm.com>
18412         PR tree-optimization/69042
18413         * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
18414         for use with constant offset stripped in base.
18416 2016-03-23  Richard Biener  <rguenther@suse.de>
18418         PR middle-end/70251
18419         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
18420         mode compatibility check.
18421         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18423 2016-03-23  Jeff Law  <law@redhat.com>
18425         PR tree-optimization/64058
18426         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
18427         CONFLICT_COUNT.
18428         (struct ssa_conflicts): Move up earlier in the file.
18429         (conflicts_, var_map_): New static variables.
18430         (initialize_conflict_count): New function to initialize the
18431         CONFLICT_COUNT field for each conflict pair.
18432         (compare_pairs): Lazily initialize the conflict count and use it
18433         as the first tie-breaker.
18434         (sort_coalesce_list): Add new arguments conflicts, map.  Initialize
18435         and wipe conflicts_ and map_ around the call to qsort.  Remove
18436         special case for 2 coalesce pairs.
18437         * bitmap.c (bitmap_count_unique_bits): New function.
18438         (bitmap_count_bits_in_word): New function, extracted from
18439         bitmap_count_bits.
18440         (bitmap_count_bits): Use bitmap_count_bits_in_word.
18441         * bitmap.h (bitmap_count_unique_bits): Declare it.
18443 2016-03-23  Ilya Enkovich  <enkovich.gnu@gmail.com>
18445         PR target/69917
18446         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
18447         transparent alias chain for decl assembler name.
18448         * config/sol2.c (solaris_assemble_visibility): Likewise.
18450 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18452         * config/arm/arm1020e.md (1020call_op): Reduce reservation
18453         duration.
18454         (v10_fdivs): Likewise.
18455         (v10_fdivd): Likewise.
18457 2016-03-23  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
18459         PR driver/70132
18460         * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
18461         to not call fclose twice on file.
18463 2016-03-23  Jakub Jelinek  <jakub@redhat.com>
18465         PR tree-optimization/70354
18466         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
18467         oprnd0 is wider than oprnd1 and there is a cast from the wider
18468         type to oprnd1, mask it with the mask of the narrower type.
18470         PR target/70321
18471         * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
18472         Optimize TARGET_STV splitters, if high or low word of last argument
18473         is 0 or -1.
18475 2016-03-22  Jeff Law  <law@redhat.com>
18477         PR target/70232
18478         tree-ssa-threadbackward.c
18479         (fsm_find_control_statement_thread_paths): Correctly distinguish
18480         between old style jump threads vs FSM jump threads.
18482 2016-03-22  Ilya Enkovich  <enkovich.gnu@gmail.com>
18484         PR target/70302
18485         * config/i386/i386.c (scalar_chain::convert_op): Support
18486         uninitialized register usage case.
18488 2016-03-22  Richard Biener  <rguenther@suse.de>
18490         PR middle-end/70251
18491         * genmatch.c (gen_transform): Adjust last parameter to a three-state
18492         int...
18493         (capture::gen_transform): ... to change behavior when substituting
18494         a condition into cond or not-cond expr context.
18495         (dt_simplify::gen_1): Adjust.
18496         * gimple-match-head.c: Include gimplify.h for unshare_expr.
18497         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
18498         last change and instead change to
18499         A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
18500         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18502 2016-03-22  Anthony Green  <green@moxielogic.com>
18504         * config/moxie/moxiebox.h (CC1_SPEC): Define.  Fix endianness
18505         issue for moxiebox targets.
18506         (CC1PLUS_SPEC): Ditto.
18508 2016-03-22  Richard Biener  <rguenther@suse.de>
18510         PR middle-end/70333
18511         * fold-const.c (extract_muldiv_1): Properly perform multiplication
18512         in the wide type.
18514 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
18516         * config/i386/i386.c (def_builtin): Remove duplicated functionality.
18518 2016-03-22  Kirill Yukhin  <kirill.yukhin@intel.com>
18520         PR target/70325
18521         * config/i386/i386.c (def_builtin): Handle
18522         OPTION_MASK_ISA_AVX512VL to be and-ed with other
18523         bits.
18524         (const struct builtin_description bdesc_special_args[]):
18525         Remove duplicate ISA bits.
18527 2016-03-22  Jakub Jelinek  <jakub@redhat.com>
18529         PR target/70329
18530         * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
18531         d.perm[i] for i >= d.nelt.  If not full_interleave, compute d.perm[i]
18532         in a way that works also for AVX512BW.
18534         PR target/70300
18535         * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
18536         instead of source if operands[1] is xmm16 and above and
18537         !TARGET_AVX512VL.  Use avx512f_vec_dupv16sf_1 instead of
18538         vec_interleave_lowv4sf if we need to unpack xmm16 and above.
18540         PR c++/70295
18541         * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
18542         on assign if (*from_p) is a comparison, set it to
18543         TREE_NO_WARNING (*from_p).
18545 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
18547         PR middle-end/70326
18548         * lra.c (restore_scratches): Ignore deleted insns.
18550 2016-03-21  Marc Glisse  <marc.glisse@inria.fr>
18551             Jakub Jelinek  <jakub@redhat.com>
18553         PR tree-optimization/70317
18554         * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
18555         to HONOR_NANS.
18557 2016-03-21  Uros Bizjak  <ubizjak@gmail.com>
18559         PR target/70327
18560         * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
18561         of ix86_expand_move.
18562         (movoi): Ditto.
18563         (movti): Use general_operand for operand 1 predicate.
18565 2016-03-21  Martin Liska  <mliska@suse.cz>
18567         * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
18568         insns.
18569         (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
18571 2016-03-21  Martin Liska  <mliska@suse.cz>
18573         PR ipa/70306
18574         * ipa-icf.c (sem_function::parse): Skip static
18575         constructors and destructors.
18577 2016-03-21  Jakub Jelinek  <jakub@redhat.com>
18579         PR target/70296
18580         * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
18581         function-like macro, peek following token(s) if it is followed
18582         by CPP_OPEN_PAREN token with optional padding in between, and
18583         if not, don't treat it like a macro.
18585 2016-03-21  Thomas Schwinge  <thomas@codesourcery.com>
18586             Alexander Monakov  <amonakov@ispras.ru>
18588         * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
18589         for the stabs debug format.
18591 2016-03-21  Richard Biener  <rguenther@suse.de>
18593         PR tree-optimization/70310
18594         * tree-vect-generic.c (expand_vector_condition): Fold the built
18595         condition.
18597 2016-03-21  Kirill Yukhin  <kirill.yukhin@intel.com>
18599         PR target/70293
18600         * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
18601         Block third alternative for AVX-512VL target,
18603 2016-03-21  Martin Liska  <mliska@suse.cz>
18605         PR hsa/70234
18606         * hsa-brig.c (emit_function_directives): Mark unemitted
18607         global variables for emission.
18608         * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
18609         (get_symbol_for_decl): Likewise.
18610         * hsa.h (struct hsa_symbol): New flag.
18612 2016-03-21  Richard Biener  <rguenther@suse.de>
18614         PR tree-optimization/70288
18615         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
18616         we do not estimate unsimplified all-constant conditionals or
18617         switches as optimized away.
18619 2016-03-21  Andrey Belevantsev  <abel@ispras.ru>
18621         PR rtl-optimization/69102
18622         * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
18623         when we have a readonly dependency context.
18625 2016-03-18  Jeff Law  <law@redhat.com>
18627         PR rtl-optimization/70263
18628         * ira.c (memref_used_between_p): Assert we found END in the insn chain.
18629         (update_equiv_regs): When trying to move a store to after the insn
18630         that sets the source of the store, make sure the store occurs after
18631         the insn that sets the source of the store.  When successful note
18632         the REG_EQUIV note created in the dump file.
18634 2016-03-16  David Wohlferd  <dw@LimeGreenSocks.com>
18635             Bernd Schmidt  <bschmidt@redhat.com>
18637         * doc/extend.texi: Document more potential problems with basic asms.
18639 2016-03-18  Bernd Schmidt  <bschmidt@redhat.com>
18641         PR rtl-optimization/70278
18642         * lra-constraints.c (split_reg): Handle the case where biggest_mode is
18643         VOIDmode.
18645 2016-03-18  Jason Merrill  <jason@redhat.com>
18647         * calls.c (load_register_parameters): Fix zero size sibcall logic.
18649 2016-03-18  Kirill Yukhin  <kirill.yukhin@intel.com>
18651         * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
18652         values to 128b regs.
18654 2016-03-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
18656         PR tree-optimization/70252
18657         * tree-vect-stmts.c (supportable_widening_operation): Check resulting
18658         boolean vector has a proper number of elements.
18659         (supportable_narrowing_operation): Likewise.
18661 2016-03-18  Tom de Vries  <tom@codesourcery.com>
18663         PR ipa/70269
18664         * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
18666 2016-03-18  Jakub Jelinek  <jakub@redhat.com>
18668         * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
18669         instead of replace_rtx for DEBUG_INSNs.
18671 2016-03-18  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
18673         * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
18674         load type reservations.
18676 2016-03-17  John David Anglin  <danglin@gcc.gnu.org>
18678         PR target/70188
18679         * config/pa/constraints.md: Revert 2015-02-13 change.  Use
18680         define_constraint for "Q" and "T" constraints.
18682 2016-03-17  Evandro Menezes  <e.menezes@samsung.com>
18684         Tweak the pipeline model for Exynos M1
18686         * config/aarch64/aarch64.c (exynosm1_tunings):  Enable weak prefetching
18687         model.
18689 2016-03-17  David Malcolm  <dmalcolm@redhat.com>
18691         PR c/70264
18692         * diagnostic-show-locus.c (compatible_locations_p): Handle the case
18693         where one or both locations aren't within a line_map.
18695 2016-03-17  H.J. Lu  <hongjiu.lu@intel.com>
18697         PR driver/70192
18698         * opts.c (finish_options): Don't set flag_pie to the default if
18699         -fpic, -fPIC, -fno-pic or -fno-PIC is used.  Set flag_pic to 0
18700         if it is -1.
18702 2016-03-17  Joern Rennecke  <joern.rennecke@embecosm.com>
18704         * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
18705         true as ALL_REGS argument to replace_rtx.
18707 2016-03-17  Richard Biener  <rguenther@suse.de>
18709         PR debug/70271
18710         * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
18711         last.
18713 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
18715         PR target/70245
18716         * rtl.h (replace_rtx): Add ALL_REGS argument.
18717         * rtlanal.c (replace_rtx): Likewise.  If true, use REGNO
18718         equality and assert mode is the same, instead of just rtx pointer
18719         equality.
18720         * config/i386/i386.md (mov + arithmetics with load peephole): Pass
18721         true as ALL_REGS argument to replace_rtx.
18723 2016-03-17  Ilya Enkovich  <enkovich.gnu@gmail.com>
18725         * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
18726         for boolean vector with vector mode only.
18727         (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18729 2016-03-17  Nick Clifton  <nickc@redhat.com>
18731         PR target/70162
18732         * config/rx/rx.c (rx_print_integer): Print negative constants in
18733         decimal.
18735 2016-03-17  Jakub Jelinek  <jakub@redhat.com>
18737         PR target/70261
18738         * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
18740 2016-03-16  Richard Henderson  <rth@redhat.com>
18741             Richard Biener  <rguenth@suse.de>
18743         PR middle-end/70240
18744         PR middle-end/68215
18745         PR tree-opt/68714
18746         * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
18747         first operand as is_gimple_condexpr.
18749         PR middle-end/70240
18750         PR middle-end/68215
18751         Revert r231575
18752         2015-12-11  Eric Botcazou  <ebotcazou@adacore.com>
18753         * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
18754         Do not gimplify the result.
18755         (do_unop): Adjust call to tree_vec_extract.
18756         (do_binop): Likewise.
18757         (do_compare): Likewise.
18758         (do_plus_minus): Likewise.
18759         (do_negate): Likewise.
18760         (expand_vector_condition): Likewise.
18761         (do_cond): Likewise.
18763 2016-03-16  Richard Henderson  <rth@redhat.com>
18765         PR target/70048
18766         * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
18767         (aarch64_classify_address): Use it.
18768         (aarch64_legitimize_address): Force all subexpressions of PLUS
18769         into registers.  Simplify as (sfp+const)+reg or (reg+reg)+const.
18771 2016-03-16  Jakub Jelinek  <jakub@redhat.com>
18772             Richard Biener  <rguenth@suse.de>
18774         PR target/70245
18775         * rtlanal.c (replace_rtx): For REG, if from is a REG,
18776         return to even if only REGNO is equal, and assert
18777         mode is the same.
18779 2016-03-11  Jeff Law  <law@redhat.com>
18781         PR rtl-optimization/70224
18782         * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
18784 2016-03-16  Richard Henderson  <rth@redhat.com>
18786         PR middle-end/70199
18787         * function.h (struct function): Add has_forced_label_in_static.
18788         * gimplify.c (force_labels_r): Set it.
18789         * lto-streamer-in.c (input_struct_function_base): Read it.
18790         * lto-streamer-out.c (output_struct_function_base): Write it.
18791         * tree-inline.c (has_label_address_in_static_1): Remove.
18792         (copy_forbidden): Remove fndecl parameter; test
18793         has_forced_label_in_static.
18794         (inline_forbidden_p): Update call to copy_forbidden.
18795         (tree_versionable_function_p): Likewise.
18796         * ipa-chkp.c (chkp_instrumentable_p): Likewise.
18797         (chkp_versioning): Likewise.
18798         * tree-inline.h (copy_forbidden): Update decl.
18800 2016-03-16  Marek Polacek  <polacek@redhat.com>
18802         PR c/70093
18803         * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
18804         function being thunked if the result type doesn't have fixed size.
18805         * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
18806         doesn't have fixed size.
18808 2016-03-16  Bin Cheng  <bin.cheng@arm.com>
18810         * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
18811         reporting malformed loop nest.
18813 2016-03-16  Tom de Vries  <tom@codesourcery.com>
18815         PR lto/70187
18816         * ipa-devirt.c (possible_polymorphic_call_targets): Move
18817         nodes.length () == 1 test to before first nodes[0] access.
18819 2016-03-16  Tom de Vries  <tom@codesourcery.com>
18821         PR tree-optimization/68715
18822         * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
18823         single_pred_p test.
18825 2016-03-16  Tom de Vries  <tom@codesourcery.com>
18827         PR tree-optimization/68809
18828         * graphite-scop-detection.c (same_close_phi_node): Test if result types
18829         are the same.
18831 2016-03-16  Carlos O'Donell  <carlos@redhat.com>
18832             Sandra Loosemore  <sandra@codesourcery.com>
18834         * doc/extend.texi (Common Function Attributes): Describe ifunc impact
18835         on leaf attribute. Mention ELF interposition problems.
18837 2016-03-16  Alan Modra  <amodra@gmail.com>
18839         PR rtl-optimization/69195
18840         PR rtl-optimization/47992
18841         * ira.c (indirect_jump_optimize): Ignore artificial defs.
18842         Add comments.
18844 2016-03-15  Eric Botcazou  <ebotcazou@adacore.com>
18846         PR bootstrap/69513
18847         * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
18849 2016-03-15  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
18851         * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
18853 2016-03-15  Jakub Jelinek  <jakub@redhat.com>
18855         PR rtl-optimization/70222
18856         * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
18857         optimization if mode is different from result_mode, queue up masking
18858         of the result in outer_op.  Formatting fix.
18860         PR middle-end/70239
18861         * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
18862         of safe_grow.
18864 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
18866         PR rtl-optimization/69032
18867         * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
18868         looping backwards over basic block insns.
18870 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
18872         PR target/66660
18873         * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
18874         to non-speculative when propagating trap bits.
18876 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
18878         PR rtl-optimization/63384
18879         * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
18880         DEBUG_INSN_P insns.
18882 2016-03-15  Andrey Belevantsev  <abel@ispras.ru>
18884         PR target/64411
18885         * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
18886         factored out from ...
18887         (sched_analyze_insn): ... here.
18888         * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
18889         * sel-sched-ir.c (setup_id_implicit_regs): New function, use
18890         get_implicit_reg_pending_clobbers in it.
18891         (setup_id_reg_sets): Use setup_id_implicit_regs.
18892         (deps_init_id): Ditto.
18894 2016-03-15  Tom de Vries  <tom@codesourcery.com>
18896         PR ipa/70161
18897         * cgraph.c (cgraph_node::get_body): Save, reset and restore
18898         dump_file_name.
18899         * passes.c (execute_one_ipa_transform_pass): Add missing argument to
18900         execute_function_dump.
18901         (execute_one_pass): Don't dump function if it will be dumped after ipa
18902         transform.
18904 2016-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
18906         * genrecog.c (match_pattern_2): If pred is NULL don't call
18907         safe_predicate_mode on it.
18909 2016-03-14  Jakub Jelinek  <jakub@redhat.com>
18911         PR middle-end/70219
18912         * lra-constraints.c (delete_move_and_clobber): Change assertion
18913         to also allow dregno == 0.
18915 2016-03-14  Richard Henderson  <rth@redhat.com>
18917         PR tree-opt/68714
18918         * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
18919         (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
18920         (reassociate_bb): Use optimize_vec_cond_expr; avoid
18921         optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
18922         on vectors.
18924 2016-03-14  Bernd Schmidt  <bschmidt@redhat.com>
18926         PR target/70083
18927         * lra-lives.c (process_bb_lives): Also update biggest mode for hard
18928         regs.
18929         (lra_create_live_ranges_1): initialize hard register biggest_mode to
18930         VOIDmode.
18931         * lra-constraints.c (split_reg): For hard regs, try to find the
18932         biggest single-register mode used in the function.
18934 2016-03-14  Richard Biener  <rguenther@suse.de>
18936         PR tree-optimization/56365
18937         * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
18938         constants to compare against.
18940 2016-03-14  Segher Boessenkool  <segher@kernel.crashing.org>
18942         PR target/70098
18943         * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
18944         *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
18945         (define_split for the GPR case): Use int_reg_operand instead of
18946         gpc_reg_operand for the output.
18948 2016-03-14  Tom de Vries  <tom@codesourcery.com>
18950         PR tree-optimization/70045
18951         * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
18952         create_empty_if_region_on_edge argument.
18954 2016-03-13  Eric Botcazou  <ebotcazou@adacore.com>
18956         * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
18957         (STACK_CHECK_PROTECT): Likewise.
18958         * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
18959         (STACK_CHECK_PROTECT): Likewise.
18960         * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
18961         (STACK_CHECK_PROTECT): Likewise.
18962         * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
18963         * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18964         (STACK_CHECK_PROTECT): Likewise.
18966 2016-03-12  Andrey Belevantsev  <abel@ispras.ru>
18968         PR rtl-optimization/69307
18969         * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
18970         registers in modes that span more than one register.
18972 2016-03-12  Vladimir Makarov  <vmakarov@redhat.com>
18974         PR target/69614
18975         * lra-constraints.c (delete_move_and_clobber): New.
18976         (remove_inheritance_pseudos): Use it.
18978 2016-03-12  Eric Botcazou  <ebotcazou@adacore.com>
18980         PR ada/70017
18981         * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
18982         the libcall is LCT_THROW.
18983         * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
18984         for the checking routine.
18986 2016-03-11  Michael Meissner  <meissner@linux.vnet.ibm.com>
18988         PR target/70131
18989         * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
18990         optimization if we have direct move.
18991         (roundu32<mode>2_fprs): Likewise.
18993 2016-03-11  Bernd Schmidt  <bschmidt@redhat.com>
18995         PR target/70123
18996         * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
18997         be rematerialized.
18998         (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
18999         Arguments swapped.  All callers changed.  Take reg_renumber into
19000         account, and Calculate and compare register ranges for hard regs.
19002 2016-03-11  Jeff Law  <law@redhat.com>
19004         PR tree-optimization/70190
19005         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19006         Handle cases where we can not extract the taken edge, even though we
19007         found a constant value.
19009         PR tree-optimization/64058
19010         * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
19011         (num_coalesce_pairs): Move up earlier in file.
19012         (find_coalesce_pair): Initialize the INDEX field for each pair
19013         discovered.
19014         (compare_pairs): No longer sort on the elements in each pair.
19015         Instead break ties with the index of the coalesce pair.
19017 2016-03-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19019         PR target/70002
19020         * config/aarch64/aarch64-protos.h
19021         (aarch64_save_restore_target_globals): New prototype.
19022         * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
19023         Call the above when popping pragma.
19024         * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
19025         New function.
19026         (aarch64_set_current_function): Rewrite using the above.
19028 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
19030         PR tree-optimization/70177
19031         * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
19032         (extract_ops_from_tree): ... this.  In the 2 argument
19033         overload remove _1 suffix.
19034         * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
19035         (extract_ops_from_tree): ... this.
19036         * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
19037         Adjust callers.
19038         * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19039         * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
19040         extract_ops_from_tree instead of 2 operand one.
19042 2016-03-11  Alan Lawrence  <alan.lawrence@arm.com>
19044         PR tree-optimization/70013
19045         * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
19046         for constant-pool entries.
19048 2016-03-11  Jakub Jelinek  <jakub@redhat.com>
19050         PR rtl-optimization/70174
19051         * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
19052         followed by gen_lowpart on force_reg instead of just gen_lowpart.
19054         PR tree-optimization/70169
19055         * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
19056         LABEL_DECL like VAR_DECL.  Emit nothing instead of gcc_unreachable
19057         for unknown codes.
19059 2016-03-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
19060             Jakub Jelinek  <jakub@redhat.com>
19062         PR target/70160
19063         * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
19064         of uninitialized values.
19066 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19068         * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
19069         define_expand.
19070         ("*trunctddd2"): New pattern definition.
19071         ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
19072         TD->DD truncation.
19074 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19076         * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
19077         definitions for BFP and DFP rounding modes.
19078         ("fixuns_truncdddi2", "fixuns_trunctddi2")
19079         ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
19080         ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
19081         ("fix_trunctf<mode>2"): Use the new constants instead of magic
19082         numbers.
19084 2016-03-11  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19086         * config/s390/constraints.md: Adjust comment.
19087         ("Y"): Adjust comment.  Rename s390_decompose_shift_count to
19088         s390_decompose_addrstyle_without_index.
19089         * config/s390/predicates.md (shift_count_or_setmem_operand):
19090         Rename to setmem_operand.
19091         * config/s390/s390-protos.h
19092         (s390_decompose_shift_count): Rename to
19093         s390_decompose_addrstyle_without_index.
19094         * config/s390/s390.c (s390_decompose_shift_count)
19095         (s390_mem_constraint, print_shift_count_operand)
19096         (print_operand_address, print_operand): Rename
19097         s390_decompose_shift_count to
19098         s390_decompose_addrstyle_without_index and rename
19099         print_shift_count_operand to print_addrstyle_operand troughout the
19100         file.
19101         * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
19102         ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
19103         Rename shift_count_or_setmem_operand to setmem_operand.
19104         * config/s390/vx-builtins.md ("vec_insert<mode>")
19105         ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
19106         nonmemory_operand.
19108 2016-03-10  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
19110         PR target/70168
19111         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19112         Handle overlapping retval and newval.
19114 2016-03-10  Nick Clifton  <nickc@redhat.com>
19116         PR target/7044
19117         * config/aarch64/aarch64.c
19118         (aarch64_override_options_after_change_1): When forcing
19119         flag_omit_frame_pointer to be true, use a special value that can
19120         be detected if this function is called again, thus preventing
19121         flag_omit_leaf_frame_pointer from being forced to be false.
19123 2016-03-10  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19125         * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
19126         Set x_flag_omit_leaf_frame_pointer when handling
19127         -momit-leaf-frame-pointer.
19129 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
19131         PR lto/69589
19132         * cgraph.c (cgraph_node::dump): Dump split_part and
19133         indirect_call_target.
19134         * cgraph.h (cgraph_node): Add indirect_call_target flag.
19135         * ipa.c (has_addr_references_p): Cleanup.
19136         (is_indirect_call_target_p): New.
19137         (walk_polymorphic_call_targets): Do not mark virtuals that may be
19138         called indirectly as local.
19139         (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
19141 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
19143         PR ipa/69630
19144         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
19145         on cxa_pure_virtual.
19147 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
19149         PR lto/69589
19150         * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
19152 2016-03-10  Jan Hubicka  <hubicka@ucw.cz>
19154         PR lto/69589
19155         * tree.c (need_assembler_name_p): Only record main variant type names.
19157 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
19159         PR target/70113.
19160         * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
19161         Always define to 0 or 1.
19162         (TARGET_FIX_ERR_A53_843419): New macro.
19163         * config/aarch64/aarch64-elf-raw.h
19164         (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
19165         * config/aarch64/aarch64-linux.h: Likewise.
19166         * config/aarch64/aarch64.c
19167         (aarch64_override_options_after_change_1): Do not default
19168         aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
19169         843419 is on.
19170         (aarch64_attributes): Handle fix-cortex-a53-843419.
19171         (aarch64_can_inline_p): Likewise.
19172         * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
19174 2016-03-10  Alan Lawrence  <alan.lawrence@arm.com>
19175             Jakub Jelinek  <jakub@redhat.com>
19177         * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
19178         * tree.c (array_at_struct_end_p): Do not limit to size of decl for
19179         DECL_COMMONS if flag_unconstrained_commons is set.
19180         * tree-dfa.c (get_ref_base_and_extent): Likewise.
19181         * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
19182         (funconstrained-commons): Document.
19184 2016-03-10  Christophe Lyon  <christophe.lyon@linaro.org>
19186         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
19187         aarch64-fusion-pairs.def and aarch64-tuning-flags.def
19189 2016-03-10  Ilya Enkovich  <enkovich.gnu@gmail.com>
19191         * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
19192         has a proper number of elements.
19194 2016-03-10  Alan Modra  <amodra@gmail.com>
19196         PR rtl-optimization/69195
19197         PR rtl-optimization/47992
19198         * ira.c (recorded_label_ref): Delete.
19199         (update_equiv_regs): Return void.
19200         (indirect_jump_optimize): New function.
19201         (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
19202         before regstat_compute_ri.  Don't rebuild_jump_labels here.
19203         Delete update_regstat.
19205 2016-03-10  Richard Biener  <rguenther@suse.de>
19207         PR tree-optimization/70128
19208         * tree-ssa-structalias.c (set_uids_in_ptset): Set
19209         vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
19211 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
19213         PR tree-optimization/70152
19214         * tree-sra.c (replace_removed_params_ssa_names): Copy over
19215         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
19217         PR target/70086
19218         * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
19219         instead of gen_sse2_loadlpd.
19220         * config/i386/sse.md (*vec_concatv2df): Rename to...
19221         (vec_concatv2df): ... this.
19223         PR tree-optimization/70127
19224         * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
19226 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
19228         PR c/68473
19229         PR c++/70105
19230         * diagnostic-show-locus.c (compatible_locations_p): New function.
19231         (layout::layout): Sanitize ranges using compatible_locations_p.
19233 2016-03-09  David Malcolm  <dmalcolm@redhat.com>
19235         PR c/68473
19236         PR c++/70105
19237         * diagnostic-show-locus.c (layout_range::layout_range): Replace
19238         location_range param with three const expanded_locations * and a
19239         bool.
19240         (layout::layout): Replace call to
19241         rich_location::lazily_expand_location with get_expanded_location.
19242         Extract the range and perform location expansion here, passing
19243         the results to the layout_range ctor.
19244         * diagnostic.c (source_range::debug): Delete.
19245         * diagnostic.h (diagnostic_expand_location): Reimplement in terms
19246         of rich_location::get_expanded_location.
19247         * gcc-rich-location.c (get_range_for_expr): Delete.
19248         (gcc_rich_location::add_expr): Reimplement to avoid the
19249         rich_location::add_range overload that took a location_range,
19250         passing a location_t instead.
19252 2016-03-09  Richard Biener  <rguenther@suse.de>
19253         Jakub Jelinek  <jakub@redhat.com>
19255         PR tree-optimization/70138
19256         * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
19257         Also skip vect_double_reduction_def.
19259 2016-03-09  Jakub Jelinek  <jakub@redhat.com>
19261         PR target/70049
19262         * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
19263         if the operand is "m".
19265 2016-03-09  Nathan Sidwell  <nathan@acm.org>
19267         * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
19269 2016-03-09  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
19271         * config/i386/i386.c (processor_target_table): Fix cost table
19272         intialization order for znver1.
19274 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
19276         * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
19277         - becuase -> because.
19278         * ipa-reference.c (ignore_module_statics): Likewise.
19279         * cgraph.c (cgraph_node::get_body): Likewise.
19280         * ipa-inline.c (early_inliner): Likewise.
19281         * ipa-devirt.c (types_same_for_odr): Likewise.
19282         * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
19283         * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
19285 2016-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19287         * tree-ssa-math-opts.c: Fix typo in comment.
19289 2016-03-08  Jakub Jelinek  <jakub@redhat.com>
19291         PR target/70110
19292         * config/i386/i386.c (scalar_chain::make_vector_copies,
19293         scalar_chain::convert_reg): Call end_sequence in between
19294         get_insns and emit_conversion_insns rather than after both
19295         calls.
19297 2016-03-07  Uros Bizjak  <ubizjak@gmail.com>
19299         PR target/70064
19300         * config/i386/i386.h (machine_function): Add
19301         pc_thunk_call_expanded flag.
19302         (ix86_pc_thunk_call_expanded): New define.
19303         * config/i386/i386.md (set_got, set_got_labelled): New expanders.
19304         (*set_got): Rename insn pattern from set_got.
19305         (*set_got_labelled): Rename inst pattern from set_got_labelled.
19306         * config/i386/i386.c (ix86_compute_frame_layout): Use
19307         ix86_pc_thunk_call_expanded to prevent red-zone.
19309 2016-03-07  Martin Jambor  <mjambor@suse.cz>
19311         * hsa.h (hsa_get_ctor_statements): Declare.
19312         (hsa_get_dtor_statements): Likewise.
19313         (hsa_get_kernel_dispatch_type): Likewise.
19314         * hsa.c (hsa_get_ctor_statements): New function.
19315         (hsa_get_dtor_statements): Likewise.
19316         (hsa_get_kernel_dispatch_type): Likewise.
19317         * hsa-brig.c (hsa_cdtor_statements): Removed.
19318         (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
19319         hsa_get_dtor_statements.
19320         * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
19321         (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
19323 2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
19325         * config/arm/arm-cores.def (cortex-r8): New.
19326         * config/arm/arm-tables.opt (cortex-r8): Regenerate.
19327         * config/arm/arm-tune.md: Likewise.
19328         * doc/invoke.texi: Add cortex-r8 to list of cpu values.
19330 2016-03-07  Martin Sebor  <msebor@redhat.com>
19332         PR rtl-optimization/19705
19333         * doc/invoke.texi (Options That Control Optimization): Clarify
19334         -fno-branch-count-reg.
19336 2016-02-26  Richard Biener  <rguenther@suse.de>
19337             Jeff Law  <law@redhat.com>
19339         PR tree-optimization/69740
19340         * cfghooks.c (remove_edge): Request loop fixups if we delete
19341         an edge that might turn an irreducible loop into a natural
19342         loop.
19343         * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
19344         Move after definition of loops_state_clear.
19346 2016-03-07  Bin Cheng  <bin.cheng@arm.com>
19348         PR rtl-optimization/69052
19349         * rtlanal.c (commutative_operand_precedence): Set higher precedence
19350         to CONST_WIDE_INT.
19352 2016-03-07  Tom de Vries  <tom@codesourcery.com>
19354         PR tree-optimization/70116
19355         * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
19356         is_tm_ending stmts and ubsan/asan internal functions.
19357         (find_duplicate): Use it.  Don't test is_tm_ending here.
19359 2016-03-07  Richard Biener  <rguenther@suse.de>
19361         PR tree-optimization/70115
19362         * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
19363         (propagate_constants_for_unrolling): Use replace_uses_by.
19365 2016-03-07  Nathan Sidwell  <nathan@codesourcery.com>
19367         PR middle-end/69916
19368         * omp-low.c (struct oacc_loop): Add ifns.
19369         (new_oacc_loop_raw): Initialize it.
19370         (finish_oacc_loop): Clear mask & flags if no ifns.
19371         (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
19372         (oacc_loop_xform_loop): Add ifns arg & adjust.
19373         (oacc_loop_process): Adjust oacc_loop_xform_loop call.
19375 2016-03-07  Richard Henderson  <rth@redhat.com>
19377         PR rtl-opt/70061
19378         * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
19379         (insert_value_copy_on_edge): Likewise.
19381 2016-03-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19383         * config/arm/arm_neon.h: Show error if using with soft-float ABI.
19385 2016-03-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
19387         PR target/62281
19388         * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
19390 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
19392         * config/i386/i386.c (znver1_cost): Fix Multiply cost.
19394 2016-03-05  Venkataramanan Kumar  <Venkataramanan.kumar@amd.com>
19396         Fix sseimul type attribute.
19397         * config/i386/znver1.md
19398         (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
19399         znver1_sseimul_avx256_load) : Fix the type attribute.
19400         (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
19401         pipe usage and latency.
19403 2016-03-05  Jakub Jelinek  <jakub@redhat.com>
19405         PR c++/70084
19406         * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
19407         of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
19408         to the right type.
19410 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
19412         PR c/69973
19413         * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
19415         PR rtl-optimization/69941
19416         * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
19417         the reg share its mode.
19419 2016-03-04  Jeff Law  <law@redhat.com>
19421         PR tree-optimization/69196
19422         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19423         If the both SSA_NAMEs are anonymous, then consider them unassociated
19424         and include the PHI in the statement count.
19426 2016-03-05  Tom de Vries  <tom@codesourcery.com>
19428         * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
19429         construct in oacc routine.  Check for oacc region in oacc routine.
19431 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
19433         PR target/70062
19434         * config/i386/i386.c (decide_alg): Add RECUR argument.  Revert
19435         2016-02-22 changes, instead don't recurse if RECUR is already true.
19436         Don't change *dynamic_check if RECUR.  Adjust recursive caller
19437         to pass true to the new argument.
19438         (ix86_expand_set_or_movmem): Adjust decide_alg caller.
19440         PR target/70059
19441         * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
19442         <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
19443         fixes.
19444         (vec_set_hi_<mode><mask_name>): Likewise.  Swap VEC_CONCAT operands.
19446 2016-03-04  Bernd Schmidt  <bschmidt@redhat.com>
19448         PR rtl-optimization/57676
19449         * lra-assigns.c (lra_assign): Guard test for maximum iterations
19450         with flag_checking.
19452 2016-03-04  Ilya Enkovich  <enkovich.gnu@gmail.com>
19454         * tree-vect-patterns.c (search_type_for_mask): Handle
19455         comparison of booleans.
19457 2016-03-04  Jakub Jelinek  <jakub@redhat.com>
19459         * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
19460         Fix @xref usage.
19462         PR debug/69947
19463         * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
19464         all other ops that have dw_val_class_die_ref operands,
19465         and DW_OP_GNU_entry_value.
19467 2016-03-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
19469         PR rtl-optimization/69904
19470         * config/arm/arm.c (arm_cannot_copy_insn_p):
19471         Return true for load-exclusive instructions.
19473 2016-03-03  Jakub Jelinek  <jakub@redhat.com>
19475         PR target/70021
19476         * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
19477         argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
19478         the pattern no matter if it is used just by non-pattern, pattern
19479         or mix thereof.
19480         (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
19481         * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
19482         oprnd1 def_stmt is in pattern, don't look through it.
19484 2016-03-03  Marek Polacek  <polacek@redhat.com>
19486         PR middle-end/70050
19487         * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
19489 2016-03-03  Martin Liska  <mliska@suse.cz>
19491         PR tree-optimization/70043
19492         * tree-vect-loop.c (optimize_mask_stores): Move iterator to
19493         previous statement if we see a debug statement.
19495 2016-03-03  Richard Biener  <rguenther@suse.de>
19497         PR tree-optimization/55936
19498         * tree-vrp.c (compare_name_with_value): Add use_equiv_p
19499         parameter and guard unsafe equivalence use.
19500         (vrp_evaluate_conditional_warnv_with_ops): Always use
19501         safe equivalences but not via the quadratic compare_names
19502         helper.
19504 2016-03-03  Michael Collison  <michael.collison@linaro.org>
19506         PR target/70014
19507         * config/arm/arm.md (*subsi3_carryin_const): Change predicate
19508         for operand 1 to s_register_operand. Change predicate for operand
19509         2 to arm_not_immediate_operand.
19511 2016-03-02  H.J. Lu  <hongjiu.lu@intel.com>
19513         * doc/tm.texi: Regenerated.
19515 2016-03-02  Richard Henderson  <rth@redhat.com>
19517         PR rtl-opt/67145
19518         * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
19519         simplification when all args are positive non-fixed registers.
19521 2016-03-02  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
19523         * target.def (lra_p): Specify that new ports should use LRA.
19525 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
19527         PR libgomp/69555
19528         * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
19529         gimplify_type_sizes the type they refer to.
19530         (omp_notice_variable): Handle reference vars to VLAs.
19531         * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
19532         reference to VLA decls in the second pass instead of first pass.
19534 2016-03-02  Tom de Vries  <tom@codesourcery.com>
19536         PR tree-optimization/68659
19537         * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
19538         new_expr == NULL_TREE.
19539         (get_new_name): Handle ADDR_EXPR.
19541 2016-03-02  Bin Cheng  <bin.cheng@arm.com>
19543         PR rtl-optimization/69052
19544         * loop-invariant.c (canonicalize_address): New function.
19545         (inv_can_prop_to_addr_use): Check validity of address expression
19546         which is canonicalized by above function.
19548 2016-03-02  Alan Modra  <amodra@gmail.com>
19550         PR ipa/69990
19551         * ipa-icf.c (sem_variable::merge): Do not merge an alias with
19552         larger alignment.
19554 2016-03-02  Jakub Jelinek  <jakub@redhat.com>
19556         PR target/70028
19557         * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
19558         (*movhi_internal): Put mask moves from and to memory separately
19559         from moves from/to GPRs.
19561 2016-03-02  Richard Biener  <rguenther@suse.de>
19563         * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
19564         GENERIC expressions in GIMPLE.
19566 2016-03-02  Richard Biener  <rguenther@suse.de>
19568         * config/i386/i386.c (type_natural_mode): Fix typo.
19570 2016-03-02  Nick Clifton  <nickc@redhat.com>
19572         * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
19574 2016-03-02  Richard Biener  <rguenther@suse.de>
19575             Uros Bizjak  <ubizjak@gmail.com>
19577         PR target/67278
19578         * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
19580 2016-03-02  Richard Biener  <rguenther@suse.de>
19582         PR middle-end/67278
19583         * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
19585 2016-03-02  Marek Polacek  <polacek@redhat.com>
19587         PR c/67854
19588         * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
19589         "is promoted to" warning.
19591 2016-03-01  DJ Delorie  <dj@redhat.com>
19593         * config.gcc: Deprecate mep-*.
19595 2016-03-01  Vladimir Makarov  <vmakarov@redhat.com>
19597         PR middle-end/70025
19598         * lra-constraints.c (regno_val_use_in): New.
19599         (match_reload): Use it instead of regno_use_in.
19601 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
19603         PR rtl-optimization/70007
19604         * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
19605         references present in REG_EQUAL notes attached to non-SET patterns.
19607 2016-03-01  Jeff Law  <law@redhat.com>
19609         PR tree-optimization/69196
19610         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19611         Appropriately clamp the number of statements to copy when the
19612         thread path does not traverse a loop backedge.
19614         PR tree-optimization/69196
19615         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19616         Do count some PHIs in the thread path against the insn count.  Decrease
19617         final statement count by one as the control statement in the last
19618         block will get removed.  Remove special cased code for handling PHIs
19619         in the last block.
19621 2016-03-01  Uros Bizjak  <ubizjak@gmail.com>
19623         PR target/70027
19624         * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
19625         asm dialect alternatives to explicit GOTPCREL calls.
19627 2016-03-01  Eric Botcazou  <ebotcazou@adacore.com>
19629         PR ada/70017
19630         * ira.c (do_reload): Issue warning for generic stack checking here...
19631         * reload1.c (reload): ...instead of here and streamline it.
19633 2016-03-01  Nick Clifton  <nickc@redhat.com>
19635         * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
19637 2016-03-01  Richard Biener  <rguenther@suse.de>
19639         PR tree-optimization/69983
19640         * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
19641         types and fall back to operand_equal_p.
19643 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19645         Revert
19646         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19648         * config/s390/constraints.md ("jm8"): New constraint.
19649         * config/s390/predicates.md ("const_int_8bitset_operand"): New
19650         predicate.
19651         * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
19652         into ...
19653         ("*setmem_long<setmem_and>"): New pattern.
19654         ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
19655         into ...
19656         ("*setmem_long_31z<setmem_and>"): New pattern.
19657         * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
19658         New substitution rules with the required attributes.
19661 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19663         Revert
19664         2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19666         * gensupport.c (process_substs_on_one_elem): Split loop to
19667         complete mark_operands_used_in_match_dup on all expressions in the
19668         vector first.
19669         (adjust_operands_numbers): Inline into process_substs_on_one_elem
19670         and remove function.
19672 2016-03-01  Richard Biener  <rguenther@suse.de>
19674         PR middle-end/70022
19675         * fold-const.c (fold_indirect_ref_1): Fix range checking for
19676         vector BIT_FIELD_REF extract.
19678 2016-03-01  Richard Biener  <rguenther@suse.de>
19680         PR tree-optimization/69994
19681         * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
19683 2016-03-01  Ilya Enkovich  <enkovich.gnu@gmail.com>
19685         PR tree-optimization/69956
19686         * tree-vect-stmts.c (supportable_widening_operation): Support
19687         multi-step conversion of boolean vectors.
19688         (supportable_narrowing_operation): Likewise.
19690 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19692         * config/s390/s390.c (s390_decompose_address): Don't accept SImode
19693         anymore.
19695 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19697         * config/s390/subst.md (DSI_VI): New mode iterator.
19698         ("addr_style_op_subst"): Use DSI_VI instead of DSI.
19699         * config/s390/vector.md ("vec_set<mode>"): Move expander before
19700         the insn definition.
19701         ("*vec_set<mode>"): Change predicate and add alternative to
19702         support only either register or const_int operands as element
19703         selector.
19704         ("*vec_set<mode>_plus"): New pattern to support reg + const_int
19705         operands.
19706         ("vec_extract<mode>"): New expander.
19707         ("*vec_extract<mode>"): New insn definition supporting reg and
19708         const_int element selectors.
19709         ("*vec_extract<mode>_plus"): New insn definition supporting
19710         reg+const_int element selectors.
19711         ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
19712         following expander+insn definition.
19713         ("<vec_shifts_name><mode>3"): New expander.
19714         ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
19716 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19718         * config/s390/s390.md ("*tabort_1"): Change predicate to
19719         nonmemory_operand.  Add a second alternative to cover
19720         register as well as const int operands.
19721         ("*tabort_1_plus"): New pattern definition.
19723 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19725         * config/s390/s390.md ("*ashrdi3_cc_31")
19726         ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
19727         ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
19728         Merge insn definitions into ...
19729         ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
19730         New pattern definition.
19731         ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
19732         ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
19733         ("*ashr<mode>3_and"): Merge insn definitions into ...
19734         ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
19735         New pattern definition.
19736         * config/s390/subst.md ("addr_style_op_cc_subst")
19737         ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
19738         substitutions patterns plus attributes.
19739         Add ashiftrt to SUBST iterator.
19741 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19743         * config/s390/s390.md ("<shift><mode>3"): Change predicate of
19744         op2 to nonmemory_operand.
19745         ("*<shift>di3_31", "*<shift>di3_31_and"):
19746         Merge into single pattern definition ...
19747         ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
19748         ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
19749         pattern definition ...
19750         ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
19751         * config/s390/subst.md: Add ashift and lshiftrt to SUBST
19752         iterator.
19754 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19756         * config/s390/predicates.md (const_int_6bitset_operand): New
19757         predicate.
19758         * config/s390/s390.md: Include subst.md.
19759         ("rotl<mode>3"): New expander.
19760         ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
19761         ...
19762         ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
19763         * config/s390/subst.md: New file.
19765 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19767         * config/s390/s390.md ("op_type", "atype", "length" attributes):
19768         Remove RRR type.  It doesn't really exist.
19769         ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
19770         attributes.
19771         ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
19772         ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
19773         ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
19774         ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
19775         ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
19776         ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
19777         `enabled' attribute.
19779 2016-03-01  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
19781         * gensupport.c (process_substs_on_one_elem): Split loop to
19782         complete mark_operands_used_in_match_dup on all expressions in the
19783         vector first.
19784         (adjust_operands_numbers): Inline into process_substs_on_one_elem
19785         and remove function.
19787 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
19789         PR target/69706
19790         * config/sparc/sparc.c (NWORDS_UP): Rename to...
19791         (CEIL_NWORDS): ...this.  Use CEIL macro.
19792         (compute_fp_layout): Adjust to above renaming.
19793         (function_arg_union_value): Likewise.
19794         (sparc_arg_partial_bytes): Likewise.
19795         (sparc_function_arg_advance): Likewise.
19797 2016-02-29  Jeff Law  <law@redhat.com>
19799         PR tree-optimization/70005
19800         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
19801         where an object with a boolean range is compared against a value
19802         outside [0..1].
19804         PR tree-optimization/69999
19805         * gimple-ssa-split-paths.c (split_paths): When duplicating a block
19806         with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
19807         loop cleanups.
19809 2016-02-29  Richard Biener  <rguenther@suse.de>
19811         PR tree-optimization/69994
19812         * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
19813         (get_unary_op): Look through nop conversions.
19814         (ops_equal_values_p): New function, look for equality diregarding
19815         nop conversions.
19816         (eliminate_plus_minus_pair): Use ops_equal_values_p
19817         (repropagate_negates): Do not use get_unary_op here.
19819 2016-02-29  Martin Liska  <mliska@suse.cz>
19821         * system.h: Poison ENABLE_CHECKING macro.
19823 2016-02-29  Martin Liska  <mliska@suse.cz>
19825         * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
19826         is presented in dump flags.
19827         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
19828         (hsa_regalloc): Likewise.
19830 2016-02-19  Richard Biener  <rguenther@suse.de>
19832         PR tree-optimization/69980
19833         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
19834         permutation of those we need to keep.
19836 2016-02-29  Eric Botcazou  <ebotcazou@adacore.com>
19838         PR target/69706
19839         * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
19840         (NWORDS_UP): ...this
19841         (init_cumulative_args): Minor tweaks.
19842         (sparc_promote_function_mode): Likewise.
19843         (scan_record_type): Delete.
19844         (traverse_record_type): New function template.
19845         (classify_data_t): New structure type.
19846         (classify_registers): New inline function.
19847         (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
19848         exhausted.  Instantiate traverse_record_type on classify_registers and
19849         deal with the case of a structure passed in slot #15 with no FP field
19850         in the first word.
19851         (assign_data_t): New structure type.
19852         (compute_int_layout): New static function.
19853         (compute_fp_layout): Likewise.
19854         (count_registers): New inline function.
19855         (assign_int_registers): New static function.
19856         (assign_fp_registers): Likewise.
19857         (assign_registers): New inline function.
19858         (function_arg_record_value_1): Delete.
19859         (function_arg_record_value_2): Likewise.
19860         (function_arg_record_value_3): Likewise.
19861         (function_arg_record_value): Adjust to above changes.  Instantiate
19862         traverse_record_type on count_registers to first count the number of
19863         registers to be used and then on assign_registers to assign them.
19864         (function_arg_union_value): Adjust to above renaming.
19865         (sparc_function_arg_1); Minor tweaks.  Remove commented out code.
19866         (sparc_arg_partial_bytes): Adjust to above renaming.  Deal with the
19867         case of a structure passed in slot #15
19868         (sparc_function_arg_advance): Likewise.
19869         (function_arg_padding): Minor tweak.
19871 2016-02-29  Richard Biener  <rguenther@suse.de>
19873         PR tree-optimization/69720
19874         * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
19875         the adjustment_def path for possibly vectorized defs.
19876         (vect_create_epilog_for_reduction): Handle vectorized initial
19877         defs properly.
19879 2016-02-28  Eric Botcazou  <ebotcazou@adacore.com>
19881         * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
19883 2016-02-27  Jeff Law  <law@redhat.com>
19885         Revert
19886         2016-02-26  Richard Biener  <rguenther@suse.de>
19887                     Jeff Law  <law@redhat.com>
19889         PR tree-optimization/69740
19890         * cfghooks.c (remove_edge): Request loop fixups if we delete
19891         an edge that might turn an irreducible loop into a natural
19892         loop.
19894 2016-02-27  Jakub Jelinek  <jakub@redhat.com>
19896         PR rtl-optimization/69896
19897         * tree-vect-generic.c (get_compute_type): Avoid single element
19898         vector types.
19900 2016-02-26  Evandro Menezes  <e.menezes@samsung.com>
19902         Rename the AArch64 tuning option and related functions to enable the
19903         Newton series for the reciprocal square root to reflect its
19904         approximative characteristic.
19906         * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
19907         function to "aarch64_emit_approx_rsqrt".
19908         * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
19909         AARCH64_EXTRA_TUNE_APPROX_RSQRT.
19910         * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
19911         (xgene1_tunings): Likewise.
19912         (use_rsqrt_p): Likewise.
19913         (aarch64_emit_swrsqrt): Use new function name.
19914         * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
19915         * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
19916         text explaining this option.
19917         * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
19919 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
19921         PR target/69969
19922         * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
19923         complain about -mallow-movmisalign without -mvsx if
19924         TARGET_ALLOW_MOVMISALIGN was not set explicitly.
19926 2016-02-26  Joel Sherrill  <joel@rtems.org>
19928         * config.gcc: Add x86_64-*-rtems*.
19929         * config/i386/rtems-64.h: New file.
19931 2016-02-26  Joel Sherrill  <joel@rtems.org>
19933         * config.gcc: Add aarch64-*-rtems*.
19934         * config/aarch64/rtems.h: New file.
19936 2016-02-26  Segher Boessenkool  <segher@kernel.crashing.org>
19938         PR target/69946
19939         * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
19940         shift amount using %h.  Add comment.
19942 2016-02-26  Richard Biener  <rguenther@suse.de>
19943             Jeff Law  <law@redhat.com>
19945         PR tree-optimization/69740
19946         * cfghooks.c (remove_edge): Request loop fixups if we delete
19947         an edge that might turn an irreducible loop into a natural
19948         loop.
19950 2016-02-26  Martin Jambor  <mjambor@suse.cz>
19952         PR middle-end/69920
19953         * tree-sra.c (sra_modify_assign): Do not remove loads of
19954         uninitialized aggregates to SSA_NAMEs.
19956 2016-02-26  Richard Henderson  <rth@redhat.com>
19958         PR target/69709
19959         * config/s390/s390.md (risbg and risbgn splitters): Allocate new
19960         pseudo in case the target rtx matches the source of the left
19961         shift.
19963 2016-02-26  Martin Jambor  <mjambor@suse.cz>
19965         PR hsa/69568
19966         * hsa.h (hsa_type_packed_p): Declare.
19967         * hsa.c (hsa_type_packed_p): New function.
19968         * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
19969         loads.
19970         (gen_hsa_insns_for_store): Use hsa_type_packed_p.
19971         * hsa-brig.c (emit_basic_insn): Likewise.
19973 2016-02-26  Martin Jambor  <mjambor@suse.cz>
19975         pr hsa/69674
19976         * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
19977         pointers.
19978         (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
19980 2016-02-26  Martin Jambor  <mjambor@suse.cz>
19982         * hsa.h (is_a_helper): New overload for hsa_op_immed for
19983         hsa_op_with_type operands.
19984         (hsa_unsigned_type_for_type): Declare.
19985         * hsa.c (hsa_unsigned_type_for_type): New function.
19986         * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
19987         (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
19988         the finalizer.  Do not emit extra move.
19990 2016-02-26  Martin Jambor  <mjambor@suse.cz>
19992         * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
19993         atomic operations in private segment.
19995 2016-02-26  Martin Jambor  <mjambor@suse.cz>
19997         * omp-low.c (grid_find_ungridifiable_statement): Store problematic
19998         statements to wi->info.  Also disallow omp simd constructs.
19999         (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
20000         for not gridifying.  Dump special string for omp_for.
20002 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20004         PR target/69245
20005         * config/aarch64/aarch64.c (aarch64_set_current_function):
20006         Save/restore target globals when switching to
20007         target_option_default_node.
20009 2016-02-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20011         PR target/69613
20012         * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
20013         Return 0 if !SHIFT_COUNT_TRUNCATED.
20015 2016-02-26  Jakub Jelinek  <jakub@redhat.com>
20016             Eric Botcazou  <ebotcazou@adacore.com>
20018         PR rtl-optimization/69891
20019         * dse.c (scan_insn): If we can't figure out memset arguments
20020         or they are non-constant, call clear_rhs_from_active_local_stores.
20022 2016-02-26  Martin Liska  <mliska@suse.cz>
20024         * doc/extend.texi: Mention clog10, clog10f an clog10l
20025         in Builtins section.
20027 2016-02-26  Martin Liska  <mliska@suse.cz>
20029         * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
20030         CHECKING_P.
20031         (resolve_args_picking_1): Likewise.
20032         * dwarf2out.h (struct GTY): Likewise.
20034 2016-02-26  Martin Liska  <mliska@suse.cz>
20036         * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
20037         with flag_checking.
20038         * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20040 2016-02-26  Markus Trippelsdorf  <markus@trippelsdorf.de>
20041             Martin Liska  <mliska@suse.cz>
20043         * doc/install.texi: Mention --enable-valgrind-annotations.
20045 2016-02-26  Richard Biener  <rguenther@suse.de>
20047         PR tree-optimization/69551
20048         * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
20049         looking through aliases adjust DECL_PT_UID to refer to the
20050         ultimate alias target.
20052 2016-02-25  Martin Liska  <mliska@suse.cz>
20054         PR middle-end/69919
20055         * alloc-pool.c (after_memory_report): New variable.
20056         * alloc-pool.h (base_pool_allocator ::release): Do not use
20057         the infrastructure if after_memory_report.
20058         * toplev.c (toplev::main): Mark after memory report.
20060 2016-02-25  Richard Biener  <rguenther@suse.de>
20062         PR tree-optimization/48795
20063         * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
20065 2016-02-25  Ilya Verbin  <ilya.verbin@intel.com>
20067         PR driver/68463
20068         * config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
20069         offloading is enabled and -fopenacc or -fopenmp is specified.
20070         (CRTOFFLOADEND): Likewise.
20071         (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
20072         (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
20073         * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
20074         (offload_objects_file_name): New static var.
20075         (tool_cleanup): Remove offload_objects_file_name file.
20076         (find_offloadbeginend): Replace with ...
20077         (find_crtoffloadtable): ... this.
20078         (run_gcc): Remove offload_argc and offload_argv.
20079         Get offload_objects_file_name from -foffload-objects=... option.
20080         Read names of object files with offload from this file, pass them to
20081         compile_images_for_offload_targets.  Don't call find_offloadbeginend and
20082         don't pass offloadbegin and offloadend to the linker.  Don't pass
20083         offload non-LTO files to the linker, because now they're not claimed.
20085 2016-02-25  Jan Hubicka  <hubicka@ucw.cz>
20087         PR ipa/69630
20088         * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20089         on builtin_unreachable.
20091 2016-02-25  Jakub Jelinek  <jakub@redhat.com>
20093         PR rtl-optimization/69896
20094         * regcprop.c: Include cfgrtl.h.
20095         (copyprop_hardreg_forward_1): If noop_p insn uses narrower
20096         than remembered mode, either delete it (if noop_move_p), or
20097         treat like copy_p but not noop_p instruction.
20099 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
20101         PR debug/69705
20102         * dwarf2out.c (gen_variable_die): Work around buggy LTO
20103         - allow NULL decl for Fortran DW_TAG_common_block variables.
20105 2016-02-24  Jason Merrill  <jason@redhat.com>
20107         * common.opt (flifetime-dse): Add -flifetime-dse=1.
20109 2016-02-24  Richard Biener  <rguenther@suse.de>
20110             Jakub Jelinek  <jakub@redhat.com>
20112         PR middle-end/69760
20113         * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
20114         conditionally executed ops to well-defined overflow behavior.
20116 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
20118         PR middle-end/69915
20119         * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
20120         elements.
20122 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20124         PR rtl-optimization/69886
20125         * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
20126         argument.  Use it when checking validity of set instructions.
20127         (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
20128         (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
20129         callsite.
20130         * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
20131         * store-motion.c (find_moveable_store): Update
20132         can_assign_to_reg_without_clobbers_p callsite.
20134 2016-02-24  Richard Biener  <rguenther@suse.de>
20136         PR middle-end/68963
20137         * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
20138         bogus check.
20139         (record_nonwrapping_iv): Do not fall back to the low/high bound
20140         for non-constant IV bases if the stmt is not always executed.
20142 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20144         * config/arm/arm-cores.def (cortex-a32): New entry.
20145         * config/arm/arm-tables.opt: Regenerate.
20146         * config/arm/arm-tune.md: Regenerate.
20147         * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
20148         * config/arm/t-aprofile: Handle mcpu=cortex-a32.
20149         * doc/invoke.texi (ARM Options): Document cortex-a32 as value
20150         for -mcpu and -mtune.
20152 2016-02-24  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20154         PR target/69875
20155         * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
20156         * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
20157         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
20158         (atomic_loaddi_1): Delete.
20159         (atomic_loaddi): Rewrite expander using the above changes.
20161 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
20163         PR c/69918
20164         * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
20165         2 to 3.
20167 2016-02-24  Jakub Jelinek  <jakub@redhat.com>
20168             Richard Biener  <rguenth@suse.de>
20170         PR middle-end/69909
20171         * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
20172         set_mem_attributes if tem is SSA_NAME which got expanded
20173         as a MEM.
20175 2016-02-24  Richard Biener  <rguenther@suse.de>
20177         PR tree-optimization/69907
20178         * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
20179         end of permutations for BB vectorization.
20181 2016-02-24  Christian Bruel  <christian.bruel@st.com>
20183         * config/arm/arm-c.c (arm_option_override): Initialize
20184         target_option_current_node.
20185         * config/arm/arm.c (arm_pragma_target_parse): Replace
20186         build_target_option_node call by target_option_current_node.
20187         Set target_option_current_node.
20188         Fix comments.
20190 2016-02-23  David Edelsohn  <dje.gcc@gmail.com>
20192         PR target/69810
20193         * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
20194         define_insn_and_split to define_insn.
20195         (zero_extendqi<mode>2_dot2): Same.
20196         (extendqi<mode>2_dot): Same.
20197         (extendqi<mode>2_dot2): Same.
20199 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
20201         * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
20202         and add bypass for AES{D,E} and AESMC pairs.
20203         * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
20204         and AESMC pairs.
20206 2016-02-23  Evandro Menezes  <e.menezes@samsung.com>
20208         * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
20209         series for reciprocal square root in Exynos M1.
20211 2016-02-23  Martin Sebor  <msebor@redhat.com>
20213         PR c/69759
20214         * doc/extend.texi (Other Builtins): Document __builtin_alloca and
20215         __builtin_alloca_with_align.
20217 2016-02-23  Richard Henderson  <rth@redhat.com>
20219         * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
20220         (ix86_register_pragmas): Remove __seg_tls.
20221         * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
20222         * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
20223         (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
20224         (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
20225         (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
20226         * doc/extend.texi (__seg_tls): Remove item.
20228 2016-02-23  Richard Biener  <rguenther@suse.de>
20230         * alloc-pool.h (struct allocation_object): Make id member
20231         conditional on CHECKING_P again.
20232         (get_instance): Adjust.
20233         (base_pool_allocator): Likewise.
20235 2016-02-23  Thomas Schwinge  <thomas@codesourcery.com>
20237         * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
20238         (parallelize_loops): In OpenACC kernels mode, set n_threads to
20239         zero.
20240         (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
20241         flag_openacc.
20242         * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
20244 2016-02-23  Richard Biener  <rguenther@suse.de>
20246         * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
20247         * bitmap.h (struct bitmap_usage): Likewise.
20248         (bitmap_move): Declare.
20249         * bitmap.c (register_overhead): Take size_t argument.
20250         (bitmap_move): New function.
20251         * df-problems.c (df_rd_transfer_function): Use bitmap_move
20252         to properly account overhead.
20253         * tree.c (free_node): Use tree_size.
20255 2016-02-23  Jakub Jelinek  <jakub@redhat.com>
20257         PR c++/69902
20258         * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
20259         when inverting comparison.
20261         PR c/69900
20262         * common.opt (Wunreachable-code): Add Warning flag.
20264 2016-02-23  Mark Wielaard  <mjw@redhat.com>
20265             Jakub Jelinek  <jakub@redhat.com>
20267         PR c/69911
20268         * cgraphunit.c (check_global_declaration): Check main_input_filename
20269         and DECL_SOURCE_FILE are not NULL.
20271 2016-02-23  Martin Jambor  <mjambor@suse.cz>
20273         PR tree-optimization/69666
20274         * tree-sra.c (sra_modify_assign): Do not attempt to create
20275         default_def replacements for unscalarizable regions.
20277 2016-02-20  Mark Wielaard  <mjw@redhat.com>
20279         PR c/28901
20280         * cgraphunit.c (check_global_declaration): Check level of
20281         warn_unused_const_variable and main_input_filename.
20282         * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
20283         (-Wunused-variable): For C implies -Wunused-const-variable=1.
20284         (-Wunused-const-variable): Explain levels 1 and 2.
20286 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
20288         PR target/69888
20289         * config/i386/i386.c (decide_alg): Ensure we don't recurse with
20290         identical arguments.  Formatting and spelling fixes.
20292         PR target/69885
20293         * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
20294         be specified.
20296         PR target/69894
20297         PR target/69895
20298         * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
20299         and m68k-devices.def.
20300         * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
20301         * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
20303 2016-02-22  Cesar Philippidis  <cesar@codesourcery.com>
20305         * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
20306         and HImode registers.
20308 2016-02-22  Richard Biener  <rguenther@suse.de>
20310         PR tree-optimization/69882
20311         * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
20312         preserve permutations present because of gaps.
20313         (vect_supported_load_permutation_p): Always continue checking
20314         permutations after vect_attempt_slp_rearrange_stmts.
20316 2016-02-22  Bin Cheng  <bin.cheng@arm.com>
20318         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
20319         min_profitable_estimate, rather than min_profitable_iters.
20321 2016-02-22  Jakub Jelinek  <jakub@redhat.com>
20323         PR target/69885
20324         * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
20325         SImode for last match_operand.
20327 2016-02-22  Martin Liska  <mliska@suse.cz>
20329         * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
20330         return bitsize - 1 as the return value.
20332 2016-02-22  Oleg Endo  <olegendo@gcc.gnu.org>
20334         PR target/69806
20335         PR target/54089
20336         * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
20337         Handle negative shift counts.
20338         * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
20339         force_reg on the shift constant.
20340         (lshrsi3): Likewise.  Expand into lshrsi3_n* instead of lshrsi3_d.
20341         (lshrsi3_d): Handle negative shift counts.
20343 2016-02-22  Richard Biener  <rguenther@suse.de>
20344             Tom de Vries  <tom@codesourcery.com>
20346         * graph.c: Include dumpfile.h.
20347         (print_graph_cfg): Split into three overloads.
20348         * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
20350 2016-02-22  Tom de Vries  <tom@codesourcery.com>
20352         * gdbhooks.py (class DumpFn): Add and instantiate, adding command
20353         dump-fn.
20355 2016-02-22  Richard Biener  <rguenther@suse.de>
20357         PR ipa/37448
20358         * ipa-inline-transform.c (inline_call): When not updating
20359         overall summaries adjust self size by the growth estimate.
20360         * ipa-inline.c (inline_to_all_callers_1): Add to the callers
20361         hash-set, do not update overall summaries here.  Renamed from ...
20362         (inline_to_all_callers): ... this which is now wrapping the
20363         above and performing delayed overall summary update.
20364         (early_inline_small_functions): Delay updating of the overall
20365         summary.
20367 2016-02-21  Markus Trippelsdorf  <markus@trippelsdorf.de>
20369         * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
20370         variable.
20372 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
20374         PR driver/69805
20375         * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
20376         :%* in %:gt() argument.
20377         (greater_than_spec_func): Adjust for expecting only numbers,
20378         if there are more than two numbers, compare the last two.
20380 2016-02-19  Jonathan Wakely  <jwakely@redhat.com>
20382         * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
20383         -Wnarrowing with -std.
20385 2016-02-19  Jakub Jelinek  <jakub@redhat.com>
20387         PR c++/69851
20388         * expr.c (store_field): Don't use bit-field path if exp is
20389         COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
20390         different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
20391         and the assignment can be performed by bitwise copy.  Formatting
20392         fix.
20394         PR middle-end/69838
20395         * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
20396         call copy_reg_eh_region_note_forward on before and/or after sequences
20397         and remove note from insn if it no longer can throw.
20399         PR target/69820
20400         * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
20401         if TARGET_AVX512BW.
20403 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20405         * config/s390/vector.md: Add missing commutative operand markers
20406         to the patterns which qualify for one.
20407         * config/s390/vx-builtins.md: Likewise.
20409 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20411         * config/s390/vector.md (VI, VI_QHS): Add single element vector
20412         types to mode iterators.
20413         (vec_double): ... and mode attribute.
20414         * config/s390/vx-builtins.md (non_vec_int): Likewise.
20416 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20418         * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
20419         Change the predicate of op2 from nonimmediate to general and let
20420         reload fix it if necessary.
20422 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20424         * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
20426 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20428         * config/s390/s390.c (s390_expand_vcond): Use the compare operand
20429         mode.
20431 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20433         * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
20434         * config/s390/s390.c (s390_expand_vec_movstr): New function.
20435         * config/s390/s390.md ("movstr<P:mode>"): Call
20436         s390_expand_vec_movstr.
20438 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20440         * config/s390/s390.md: Add missing output modifier for operand 1
20441         to print it as address properly.
20443 2016-02-19  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
20445         * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
20446         * config/s390/2964.md: New file.
20447         * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
20448         of insn grouping attributes depending on the CPU level.
20449         (s390_get_unit_mask): New function.
20450         (s390_sched_score): Remove the OOO from the scheduling macros.
20451         Add loop to calculate a score for the instruction mix.
20452         (s390_sched_reorder): Likewise plus improve debug output.
20453         (s390_sched_variable_issue): Rename macros as above.  Calculate
20454         the unit distances after actually scheduling an insn.  Improve
20455         debug output.
20456         (s390_sched_init): Clear last_scheduled_unit_distance array.
20457         * config/s390/s390.md: Include 2964.md.
20459 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
20461         PR target/69671
20462         * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
20463         *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
20464         *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
20465         *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
20466         *avx512f_<code>v8div16qi2_mask_1): New insns.
20468 2016-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
20470         PR target/68404
20471         * config/rs6000/predicates.md (fusion_gpr_addis): Revert
20472         2016-02-09 change.
20474         * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
20475         earlyclobber from target.  Use wF constraint for fused memory
20476         address.
20477         (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
20479 2016-02-18  Jakub Jelinek  <jakub@redhat.com>
20480             Martin Liska  <mliska@suse.cz>
20482         PR sanitizer/69863
20483         * cfgexpand.c (asan_sanitize_stack_p): New function.
20484         (partition_stack_vars): Use the function.
20485         (expand_stack_vars): Likewise.
20486         (defer_stack_allocation): Likewise.
20487         (expand_used_vars): Likewise.
20489 2016-02-18  Richard Biener  <rguenther@suse.de>
20491         PR middle-end/69553
20492         * fold-const.c (operand_equal_p): Properly compare offsets for
20493         IMAGPART_EXPR and ARRAY_REF.
20495 2016-02-18  Nick Clifton  <nickc@redhat.com>
20497         PR target/62254
20498         PR target/69610
20499         * config/arm/arm.c (arm_option_override_internal): Disable
20500         interworking if the target does not support thumb instructions.
20501         (arm_reload_in_hi): Handle the case where a register to register
20502         move needs reloading because there is no simple pattern to handle
20503         it.
20504         (arm_reload_out_hi): Likewise.
20506 2016-02-18  Richard Biener  <rguenther@suse.de>
20508         PR middle-end/69854
20509         * match.pd: Don't use fold_binary or fold_unary for folding
20510         constants.
20512 2016-02-17  Jakub Jelinek  <jakub@redhat.com>
20514         PR c++/69850
20515         * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
20516         on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
20517         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
20518         warn on gimple_no_warning_p statements.
20520 2016-02-17  Jonathan Wakely  <jwakely@redhat.com>
20522         * doc/extend.texi (C++ Attributes): Correct description of
20523         warn_unused type attribute.
20525 2016-02-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
20527         * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
20528         correct instruction.
20530 2016-02-17  Richard Biener  <rguenther@suse.de>
20532         PR rtl-optimization/69609
20533         * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
20534         (find_traces_1_round): When ending a trace update cached priority
20535         of successors.
20536         (bb_to_key): Use cached priority when available.
20537         (copy_bb): Initialize cached priority.
20538         (reorder_basic_blocks_software_trace_cache): Likewise.
20540 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20542         PR target/69161
20543         * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
20544         New predicate.
20545         (aarch64_comparison_operator): Break overly long line into two.
20546         (aarch64_comparison_operation): Likewise.
20547         * config/aarch64/aarch64.md (cstorecc4): Use
20548         aarch64_comparison_operator_mode instead of
20549         aarch64_comparison_operator.
20550         (cstore<mode>4): Likewise.
20551         (aarch64_cstore<mode>): Likewise.
20552         (*cstoresi_insn_uxtw): Likewise.
20553         (cstore<mode>_neg): Likewise.
20554         (*cstoresi_neg_uxtw): Likewise.
20556 2016-02-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
20558         PR target/69161
20559         * config/arm/predicates.md (arm_comparison_operator_mode):
20560         New predicate.
20561         * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
20562         instead of arm_comparison_operator.
20563         (*mov_negscc): Likewise.
20564         (*mov_notscc): Likewise.
20565         * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
20566         (*thumb2_mov_negscc): Likewise.
20567         (*thumb2_mov_negscc_strict_it): Likewise.
20568         (*thumb2_mov_notscc): Likewise.
20569         (*thumb2_mov_notscc_strict_it): Likewise.
20571 2016-02-17  Wilco Dijkstra  <wdijkstr@arm.com>
20573         * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
20574         Add missing return.
20576 2016-02-17  Eric Botcazou  <ebotcazou@adacore.com>
20578         * config/visium/visium.c (machine_libfunc_index): New enum.
20579         (machine_libfuncs): New structure.
20580         (visium_libfuncs): New static variable.
20581         (TARGET_INIT_LIBFUNCS): Define to...
20582         (visium_init_libfuncs): ...this.  New function.
20583         (expand_block_move_4): Use the appropriate libfunc.
20584         (expand_block_move_2): Likewise.
20585         (expand_block_move_1): Likewise.
20586         (expand_block_set_4): Likewise.
20587         (expand_block_set_2): Likewise.
20588         (expand_block_set_1): Likewise.
20589         (visium_trampoline_init): Likewise.
20591 2016-02-17  Nick Clifton  <nickc@redhat.com>
20593         * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
20594         TI's devices.csv file as of March 2016.
20596 2016-02-16  Kelvin Nilsen  <kelvin@gcc.gnu.org>
20598         PR Target/48344
20599         * opts-global.c (handle_common_deferred_options): Introduce and
20600         initialize two global variables to remember command-line options
20601         specifying a stack-limiting register.
20602         * opts.h: Add extern declarations of the two new global variables.
20603         * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
20604         variable based on the values of the two new global variables.
20606 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
20608         PR c/69835
20609         * common.opt (Wnonnull-compare): New warning.
20610         * doc/invoke.texi (-Wnonnull): Remove text about comparison
20611         of arguments against NULL.
20612         (-Wnonnull-compare): Document.
20613         * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
20614         * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
20615         * passes.def (pass_warn_nonnull_compare): Add.
20616         * gimple-ssa-nonnull-compare.c: New file.
20618 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
20620         * config/aarch64/aarch64.c (cortexa57_tunings): Remove
20621         AARCH64_EXTRA_TUNE_RECIP_SQRT.
20623 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
20625         * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
20626         reciprocal sqrt for -mlow-precision-recip-sqrt.
20628 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
20629             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
20631         * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
20632         always use lane loads to construct non-constant vectors.
20634 2016-02-16  James Greenhalgh  <james.greenhalgh@arm.com>
20636         * config/aarch64/aarch64.md
20637         (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
20638         constraints for operand 3.
20639         (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
20641 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
20642             Richard Biener  <rguenther@suse.de>
20644         PR tree-optimization/69820
20645         * tree-vect-patterns.c (type_conversion_p): Return false if
20646         *orig_type is unsigned single precision or boolean.
20647         (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
20648         Formatting fix.
20650 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
20652         PR rtl-optimization/69764
20653         PR rtl-optimization/69771
20654         * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
20655         op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
20657 2016-02-16  Richard Biener  <rguenther@suse.de>
20659         PR tree-optimization/69776
20660         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
20661         sets from caller.
20662         (indirect_refs_may_alias_p): Likewise.
20663         (refs_may_alias_p_1): Pass alias sets as from ao_ref.
20664         * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
20665         according to tbaa_p.
20666         * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
20667         (optimize_stmt): For redundant store discovery do not allow tbaa.
20669 2016-02-16  Bernd Schmidt  <bschmidt@redhat.com>
20671         PR tree-optimization/69714
20672         * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
20673         Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
20675 2016-02-16  Claudiu Zissulescu  <claziss@synopsys.com>
20677         * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
20678         * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
20679         (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
20680         * config/arc/arc.c (arc_init): Check FPU options.
20681         (get_arc_condition_code): Handle new CC_FPU* modes.
20682         (arc_select_cc_mode): Likewise.
20683         (arc_conditional_register_usage): Allow 64 bit datum into even-odd
20684         register pair only. Allow access for ARCv2 accumulator.
20685         (gen_compare_reg): Whenever we have FPU support use FPU compare
20686         instructions.
20687         (arc_reorg): Don't generate brcc insns when FPU compare
20688         instructions are involved.
20689         * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
20690         (TARGET_OPTFPE): Add condition when ARC EM can use optimized
20691         floating point emulation.
20692         (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
20693         (REVERSE_CONDITION): Add new CC_FPU* modes.
20694         (TARGET_FP_SP_BASE): Define.
20695         (TARGET_FP_DP_BASE): Likewise.
20696         (TARGET_FP_SP_FUSED): Likewise.
20697         (TARGET_FP_DP_FUSED): Likewise.
20698         (TARGET_FP_SP_CONV): Likewise.
20699         (TARGET_FP_DP_CONV): Likewise.
20700         (TARGET_FP_SP_SQRT): Likewise.
20701         (TARGET_FP_DP_SQRT): Likewise.
20702         (TARGET_FP_DP_AX): Likewise.
20703         * config/arc/arc.md (ARCV2_ACC): New constant.
20704         (type): New fpu type attribute.
20705         (SDF): Conditional iterator.
20706         (cstore<mode>, cbranch<mode>): Change expand condition.
20707         (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
20708         handles FPU/FPX cases as well.
20709         * config/arc/arc.opt (mfpu): New option.
20710         * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
20711         Renamed.
20712         (adddf3, muldf3, subdf3): Removed.
20713         * config/arc/predicates.md (proper_comparison_operator): Recognize
20714         CC_FPU* modes.
20715         * config/arc/fpu.md: New file.
20716         * doc/invoke.texi (ARC Options): Document mfpu option.
20718 2016-02-16  Richard Biener  <rguenther@suse.de>
20720         PR rtl-optimization/69291
20721         * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
20722         noce_operand_ok check.
20724 2016-02-16  Tom de Vries  <tom@codesourcery.com>
20726         PR lto/67709
20727         * omp-low.c (simd_clone_create): Remove call to
20728         symtab->call_cgraph_insertion_hooks.
20730 2016-02-16  Jakub Jelinek  <jakub@redhat.com>
20732         PR tree-optimization/69802
20733         * tree-ssa-reassoc.c (update_range_test): If op is
20734         SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
20735         op == 1 test of precision 1 integral op, otherwise handle
20736         that case as op itself.  Fix up formatting.
20737         (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
20738         up formatting.
20740 2016-02-16  Richard Biener  <rguenther@suse.de>
20742         PR tree-optimization/69586
20743         * tree-vrp.c (register_edge_assert_for_2): Handle all integral
20744         types for conversion sources.
20746 2016-02-16  Richard Biener  <rguenther@suse.de>
20748         PR middle-end/69801
20749         * fold-const.c (operand_equal_p): For COND_EXPR zero operand
20750         mask OEP_ADDRESS_OF.
20752 2016-02-16  Alan Modra  <amodra@gmail.com>
20754         PR target/68973
20755         * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
20756         (p8_mtvsrd_df, p8_mtvsrd_sf): New.
20757         (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
20758         (p8_mtvsrwz): New.
20759         (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
20760         (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
20761         (p8_fmrgow_<mode>): Likewise.
20762         (reload_vsx_from_gpr<mode>): Make clobber IF.  Adjust for above
20763         changes.
20764         (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
20765         (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
20766         to use movdi_internal64.  Remove op0_di.
20767         * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
20769 2016-02-15  Evandro Menezes  <e.menezes@samsung.com>
20771         Add support for the FCCMP insn types
20773         * config/aarch64/aarch64.md (fccmp): Change insn type.
20774         (fccmpe): Likewise.
20775         * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
20776         * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
20777         * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
20778         * config/arm/xgene1.md (xgene1_fcmp): Likewise.
20779         * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
20780         * config/arm/types.md (fccmps): Add new insn type.
20781         (fccmpd): Likewise.
20783 2016-02-15  Bernd Edlinger  <bernd.edlinger@hotmail.de>
20785         * alias.c (get_alias_set): Fix a typo in comment.
20787 2016-02-15  Richard Biener  <rguenther@suse.de>
20789         PR tree-optimization/69595
20790         * match.pd: Complete range test simplification to true.
20792 2016-02-15  Bernd Schmidt  <bschmidt@redhat.com>
20794         PR rtl-optimization/69648
20795         * lra-constraints.c (update_ebb_live_info): Don't remove sets of
20796         pic_offset_table_rtx.
20798         PR rtl-optimization/69752
20799         * ira.c (update_equiv_regs): When looking for more than a single SET,
20800         also take other side effects into account.
20802 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
20804         * config/s390/s390.c (s390_function_profiler): Add a new sequence
20805         for z900+ CPUs in 31-bit mode.
20807 2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
20809         * common/config/s390/s390-common.c (s390_supports_split_stack):
20810         New function.
20811         (TARGET_SUPPORTS_SPLIT_STACK): New macro.
20812         * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
20813         * config/s390/s390.c (struct machine_function): New field
20814         split_stack_varargs_pointer.
20815         (s390_register_info): Mark r12 as clobbered if it'll be used as temp
20816         in s390_emit_prologue.
20817         (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
20818         vararg pointer.
20819         (morestack_ref): New global.
20820         (SPLIT_STACK_AVAILABLE): New macro.
20821         (s390_expand_split_stack_prologue): New function.
20822         (s390_live_on_entry): New function.
20823         (s390_va_start): Use split-stack vararg pointer if appropriate.
20824         (s390_asm_file_end): Emit the split-stack note sections.
20825         (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
20826         * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
20827         (UNSPECV_SPLIT_STACK_CALL): New unspec.
20828         (UNSPECV_SPLIT_STACK_DATA): New unspec.
20829         (split_stack_prologue): New expand.
20830         (split_stack_space_check): New expand.
20831         (split_stack_data): New insn.
20832         (split_stack_call): New expand.
20833         (split_stack_call_*): New insn.
20834         (split_stack_cond_call): New expand.
20835         (split_stack_cond_call_*): New insn.
20837 2016-02-15  Richard Biener  <rguenther@suse.de>
20839         PR tree-optimization/69783
20840         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
20841         Add trivially correct cases.
20843 2016-02-15  Tom de Vries  <tom@codesourcery.com>
20845         PR lto/69655
20846         * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
20847         do_force_output.
20848         * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
20850 2016-02-15  Richard Biener  <rguenther@suse.de>
20852         PR tree-optimization/69776
20853         * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
20854         * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
20855         indicate whether we can use TBAA to disambiguate against stores.
20856         Use alias-set zero if not.
20857         (visit_reference_op_store): Do not use TBAA when looking up
20858         redundant stores.
20859         * tree-ssa-pre.c (compute_avail): Use TBAA here.
20860         (eliminate_dom_walker::before_dom_children): But not when looking
20861         up redundant stores.
20863 2016-02-14  John David Anglin  <danglin@gcc.gnu.org>
20865         * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
20867 2016-02-14  Venkataramanan Kumar  <venkataramanan.kumar@amd.com>
20869         *  config/i386/znver1.md
20870         (znver1_pop, znver1_pop_mem,
20871         znver1_load_imov_double_store,
20872         znver1_load_imov_direct_store,
20873         znver1_load_imov_direct_load,
20874         znver1_load_imov_double_load): Add new.
20875         (znver1_insn, znver1_insn_load): Add icmov type.
20876         (znver1_sseavx_fma,
20877         znver1_sseavx_fma_load,
20878         znver1_avx256_fma,
20879         znver1_avx256_fma_load): Fix pipe usage.
20881 2016-02-14  Alan Modra  <amodra@gmail.com>
20883         PR target/68973
20884         * reload.c (find_reloads_address_1): For pre/post-inc/dec
20885         with an invalid hard reg, reload just the reg not the entire
20886         pre/post-inc/dec address expression.
20888 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
20890         PR target/67260
20891         * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
20892         fixed R1_REG scratch reg.
20893         (sibcall_value_pcrel_fdpic): Likewise.
20895 2016-02-13  Oleg Endo  <olegendo@gcc.gnu.org>
20897         PR target/67636
20898         PR target/64345
20899         * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
20901 2016-02-12  Walter Lee  <walt@tilera.com>
20903         * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
20904         * config/tilegx/t-tilegx: Likewise.
20906 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
20908         PR other/69554
20909         * diagnostic-show-locus.c (struct line_span): New struct.
20910         (layout::get_first_line): Delete.
20911         (layout::get_last_line): Delete.
20912         (layout::get_num_line_spans): New member function.
20913         (layout::get_line_span): Likewise.
20914         (layout::print_heading_for_line_span_index_p): Likewise.
20915         (layout::get_expanded_location): Likewise.
20916         (layout::calculate_line_spans): Likewise.
20917         (layout::m_first_line): Delete.
20918         (layout::m_last_line): Delete.
20919         (layout::m_line_spans): New field.
20920         (layout::layout): Update comment.  Replace m_first_line and
20921         m_last_line with m_line_spans, replacing their initialization
20922         with a call to calculate_line_spans.
20923         (diagnostic_show_locus): When printing source lines and
20924         annotations, rather than looping over a single span
20925         of lines, instead loop over each line_span within
20926         the layout, with an inner loop over the lines within them.
20927         Call the context's start_span callback when changing line spans.
20928         * diagnostic.c (diagnostic_initialize): Initialize start_span.
20929         (diagnostic_build_prefix): Break out the building of the location
20930         part of the string into...
20931         (diagnostic_get_location_text): ...this new function, rewriting
20932         it from nested ternary expressions to a sequence of "if"
20933         statements.
20934         (default_diagnostic_start_span_fn): New function.
20935         * diagnostic.h (diagnostic_start_span_fn): New typedef.
20936         (diagnostic_context::start_span): New field.
20937         (default_diagnostic_start_span_fn): New prototype.
20939 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
20941         PR driver/69779
20942         * gcc.c (driver::finalize): Fix cleanup of "specs".
20944 2016-02-12  David Malcolm  <dmalcolm@redhat.com>
20946         PR driver/69265
20947         PR driver/69453
20948         * gcc.c (driver::driver): Initialize m_option_suggestions.
20949         (driver::~driver): Clean up m_option_suggestions.
20950         (suggest_option): Convert to...
20951         (driver::suggest_option): ...this, and split out into
20952         driver::build_option_suggestions and find_closest_string.
20953         (driver::build_option_suggestions): New function, from
20954         first half of suggest_option.  Special-case
20955         OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
20956         the sanitizer_opts array.  For options of enum types, add the
20957         various enum values to the candidate strings.
20958         (driver::handle_unrecognized_options): Remove "const".
20959         * gcc.h (driver::handle_unrecognized_options): Likewise.
20960         (driver::build_option_suggestions): New decl.
20961         (driver::suggest_option): New decl.
20962         (driver::m_option_suggestions): New field.
20963         * opts-common.c (add_misspelling_candidates): New function.
20964         * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
20965         and make non-static.
20966         * opts.h (sanitizer_opts): New array decl.
20967         (add_misspelling_candidates): New function decl.
20968         * spellcheck.c (find_closest_string): New function.
20969         * spellcheck.h (find_closest_string): New function decl.
20971 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
20973         PR rtl-optimization/69764
20974         PR rtl-optimization/69771
20975         * optabs.c (expand_binop_directly): For shift_optab_p, force
20976         convert_modes with VOIDmode if xop1 has VOIDmode.
20978 2016-02-12  Ilya Enkovich  <enkovich.gnu@gmail.com>
20980         PR target/69729
20981         * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
20982         to correctly determine instrumentation thunks.
20984 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
20986         PR ipa/69241
20987         * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
20988         type by reference, force lhs on the call.
20990         PR ipa/68672
20991         * ipa-split.c (split_function): Don't compute/use main_part_return_p.
20992         Compute retval and retbnd early in all cases if split_part_return_p
20993         and return_bb is not EXIT.  Remove all clobber stmts and reset
20994         all debug stmts that refer to SSA_NAMEs defined in split part,
20995         except if it is retval, in that case replace the old retval with the
20996         lhs of the call to the split part.
20998 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
21000         revert:
21001         2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
21003         PR middle-end/66726
21004         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21005         whose result is used in PHI.
21006         (maybe_optimize_range_tests): Likewise.
21007         (final_range_test_p): Likweise.
21009 2016-02-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
21011         PR middle-end/66726
21012         * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21013         whose result is used in PHI.
21014         (maybe_optimize_range_tests): Likewise.
21015         (final_range_test_p): Likweise.
21017 2016-02-12  Jakub Jelinek  <jakub@redhat.com>
21019         * cgraph.c: Spelling fixes - behaviour -> behavior and
21020         neighbour -> neighbor.
21021         * target.def: Likewise.
21022         * sel-sched.c: Likewise.
21023         * config/mips/mips.c: Likewise.
21024         * config/arc/arc.md: Likewise.
21025         * config/arm/cortex-a57.md: Likewise.
21026         * config/arm/arm.c: Likewise.
21027         * config/arm/neon.md: Likewise.
21028         * config/arm/arm-c.c: Likewise.
21029         * config/vms/vms-c.c: Likewise.
21030         * config/s390/s390.c: Likewise.
21031         * config/i386/znver1.md: Likewise.
21032         * config/i386/i386.c: Likewise.
21033         * config/ia64/hpux-unix2003.h: Likewise.
21034         * config/msp430/msp430.md: Likewise.
21035         * config/rx/rx.c: Likewise.
21036         * config/rx/rx.md: Likewise.
21037         * config/aarch64/aarch64-simd.md: Likewise.
21038         * config/aarch64/aarch64.c: Likewise.
21039         * config/nvptx/nvptx.c: Likewise.
21040         * config/bfin/bfin.c: Likewise.
21041         * config/cris/cris.opt: Likewise.
21042         * config/rs6000/rs6000.c: Likewise.
21043         * target.h: Likewise.
21044         * spellcheck.c: Likewise.
21045         * ira-build.c: Likewise.
21046         * tree-inline.c: Likewise.
21047         * builtins.c: Likewise.
21048         * lra-constraints.c: Likewise.
21049         * explow.c: Likewise.
21050         * hwint.h: Likewise.
21051         * targhooks.c: Likewise.
21052         * tree-vect-data-refs.c: Likewise.
21053         * expr.c: Likewise.
21054         * doc/tm.texi: Likewise.
21055         * doc/extend.texi: Likewise.
21056         * doc/install.texi: Likewise.
21057         * doc/md.texi: Likewise.
21058         * tree-ssa-tail-merge.c: Likewise.
21059         * sched-int.h: Likewise.
21060         * match.pd: Likewise.
21061         * sched-ebb.c: Likewise.
21062         * target.def (omit_struct_return_reg): Likewise.
21063         * gimple-ssa-isolate-paths.c: Likewise.
21064         (find_implicit_erroneous_behaviour): Renamed to...
21065         (find_implicit_erroneous_behavior): ... this.
21066         (find_explicit_erroneous_behaviour): Renamed to...
21067         (find_explicit_erroneous_behavior): ... this.
21068         (gimple_ssa_isolate_erroneous_paths): Adjust caller.
21070 2016-02-11  Segher Boessenkool  <segher@kernel.crashing.org>
21072         PR rtl-optimization/64682
21073         PR rtl-optimization/69567
21074         PR rtl-optimization/69737
21075         * combine.c (distribute_notes) <REG_DEAD>: If the register is set
21076         in I2 as well, just lose it.
21078 2016-02-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21080         * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
21081         New variable.
21082         (aarch64_last_printed_tune_string): Likewise.
21083         (aarch64_declare_function_name): Only output .arch assembler
21084         directive if it will be different from the previously output
21085         directive.  Same for .tune comment but only if -dA is set.
21086         (aarch64_start_file): New function.
21087         (TARGET_ASM_FILE_START): Define.
21089 2016-02-11  David Malcolm  <dmalcolm@redhat.com>
21091         PR plugins/69758
21092         * Makefile.in (PLUGIN_HEADERS): Add params.list.
21094 2016-02-11  Jakub Jelinek  <jakub@redhat.com>
21096         PR target/65313
21097         * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
21098         -Wmaybe-uninitialized warning.
21100 2016-02-11  Oleg Endo  <olegendo@gcc.gnu.org>
21102         PR target/69713
21103         * config/sh/sh.md (casesi_worker_0): Add T_REG use.
21105 2016-02-11  Richard Biener  <rguenther@suse.de>
21107         PR rtl-optimization/69291
21108         * ifcvt.c (noce_try_store_flag_constants): Do not allow
21109         subexpressions affected by changing the result.
21111 2016-02-10  Vladimir Makarov  <vmakarov@redhat.com>
21113         PR target/69148
21114         * lra-constraints.c (curr_insn_transform): Find in/out operands
21115         for secondary memory moves.  Update dups.
21117 2016-02-10  Yuri Rumyantsev  <ysrumyan@gmail.com>
21119         PR tree-optimization/69652
21120         * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
21121         to nested loop, did source re-formatting, skip debug statements,
21122         add check on statement with volatile operand, remove dead scalar
21123         statements.
21125 2016-02-10  Jakub Jelinek  <jakub@redhat.com>
21126             Patrick Palka  <ppalka@gcc.gnu.org>
21128         PR ipa/69241
21129         PR c++/69649
21130         * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
21131         calls if the return type is TREE_ADDRESSABLE.
21132         * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
21133         * ipa-split.c (split_function): Fix doubled "we" in comment.
21134         Use void return type for the split part even if
21135         !split_point->split_part_set_retval.
21137 2016-02-10  Bin Cheng  <bin.cheng@arm.com>
21139         PR tree-optimization/68021
21140         * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
21141         when computing the value of biv cand by itself.
21143 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
21145         * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
21146         (cortexa57_tunings): Likewise.
21147         (cortexa72_tunings): Likewise.
21148         (arch_macro_fusion_pair_p): Add support for AES fusion.
21149         * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
21150         * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
21151         Allow virtual registers before reload so early scheduling works.
21152         * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
21153         correct latency and pipeline.
21154         (cortex_a57_crypto_complex): Likewise.
21155         (cortex_a57_crypto_xor): Likewise.
21156         (define_bypass): Add AES bypass.
21158 2016-02-10  Richard Biener  <rguenther@suse.de>
21160         PR tree-optimization/69726
21161         * passes.def: Add DCE pass before late uninit.
21162         * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
21163         really fixup if-conversions job.
21165 2016-02-10  Wilco Dijkstra  <wdijkstr@arm.com>
21167         * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
21168         (arm_cortex_a57_tune): Likewise.
21169         (aarch_macro_fusion_pair_p): Add support for AES fusion.
21170         * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
21172 2016-02-10  Eric Botcazou  <ebotcazou@adacore.com>
21174         * timevar.def (TV_PHASE_DBGINFO): Delete.
21175         (TV_PHASE_CHECK_DBGINFO): Likewise.
21176         * varpool.c (varpool_node::assemble_decl): Do not change timevar.
21178 2016-02-10  Richard Biener  <rguenther@suse.de>
21180         PR tree-optimization/69719
21181         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21182         Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
21184 2016-02-09  Andrew Pinski  <apinski@cavium.com>
21186         PR tree-opt/69282
21187         * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
21188         get_vcond_mask_icode returns false.
21190 2016-02-09  Michael Meissner  <meissner@linux.vnet.ibm.com>
21192         PR target/68404
21193         * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
21194         an ADDIS that adds a pointer to a large constant that sets the
21195         upper16 bits with a load operation.
21197 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
21199         PR target/68532
21200         * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
21201         order.
21202         * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
21203         endian.
21204         (vzipq_s16): Likewise.
21205         (vzipq_s32): Likewise.
21206         (vzipq_f32): Likewise.
21207         (vzipq_u8): Likewise.
21208         (vzipq_u16): Likewise.
21209         (vzipq_u32): Likewise.
21210         (vzipq_p8): Likewise.
21211         (vzipq_p16): Likewise.
21213 2016-02-09  Charles Baylis  <charles.baylis@linaro.org>
21215         PR target/68532
21216         * config/arm/arm.c (neon_endian_lane_map): New function.
21217         (neon_vector_pair_endian_lane_map): New function.
21218         (arm_evpc_neon_vuzp): Allow for big endian lane order.
21219         * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
21220         endian.
21221         (vuzpq_s16): Likewise.
21222         (vuzpq_s32): Likewise.
21223         (vuzpq_f32): Likewise.
21224         (vuzpq_u8): Likewise.
21225         (vuzpq_u16): Likewise.
21226         (vuzpq_u32): Likewise.
21227         (vuzpq_p8): Likewise.
21228         (vuzpq_p16): Likewise.
21230 2016-02-11  Alexandre Oliva  <aoliva@redhat.com>
21232         PR target/69634
21233         * regstat.c (regstat_bb_compute_calls_crossed): Disregard
21234         debug insns.
21236 2016-02-09  Uros Bizjak  <ubizjak@gmail.com>
21238         * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
21239         truncate const_int operand 1 to QImode.
21241 2016-02-09  Eric Botcazou  <ebotcazou@adacore.com>
21243         * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
21244         corresponding to an abnormal edge.
21246 2016-02-09  Tom de Vries  <tom@codesourcery.com>
21248         PR tree-optimization/69599
21249         * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
21250         function.
21251         (find_func_aliases_for_builtin_call, find_func_clobbers)
21252         (ipa_pta_execute):  Handle case that foo and foo._0 are not in same lto
21253         partition.
21255 2016-02-09  Richard Biener  <rguenther@suse.de>
21257         PR tree-optimization/69715
21258         * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
21259         LHS on calls as non-rewritable.
21261 2016-02-09  Tom de Vries  <tom@codesourcery.com>
21263         PR lto/69707
21264         * lto-wrapper.c (append_diag_options): New function.
21265         (compile_offload_image): Call append_diag_options.
21267 2016-02-08  Sandra Loosemore  <sandra@codesourcery.com>
21269         PR other/69722
21270         * doc/extend.texi (Flag Output Operands): Correct sectioning.
21271         Minor copy-edit to fix verb tenses.
21273 2016-02-08  Jakub Jelinek  <jakub@redhat.com>
21275         PR tree-optimization/69209
21276         * ipa-split.c (split_function): If split part is not
21277         returning retval, retval has gimple type but is not
21278         gimple value, force it into a SSA_NAME first.
21280 2016-02-08  Nicklas Bo Jensen  <nbjensen@gmail.com>
21282         * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
21283         outdated section.
21285 2016-02-08  Jason Merrill  <jason@redhat.com>
21287         PR c++/69631
21288         * convert.c (convert_to_integer_1): Check dofold on truncation
21289         distribution.
21290         (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
21291         (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
21292         Rename from *_nofold.
21293         * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
21294         (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
21296 2016-02-08  Bernd Schmidt  <bschmidt@redhat.com>
21298         PR target/60410
21299         * tree.c (build_common_tree_nodes): Remove short_double argument.
21300         All callers changed.
21301         * tree.h (build_common_tree_nodes): Adjust declaration.
21302         * doc/invoke.texi (-fshort-double): Remove documentation.
21303         * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
21304         MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
21305         * lto-wrapper.c (merge_and_complain, append_compiler_options)
21306         (append_linker_options): Don't handle OPT_fshort_double.
21308         PR rtl-optimization/68730
21309         * lra-remat.c (insn_to_cand_activation): New static variable.
21310         (lra_remat): Allocate and free it.
21311         (create_cand): New arg activation. Initialize a field in
21312         insn_to_cand_activation if it is nonnull.
21313         (create_cands): Pass the activation insn to create_cand when making
21314         a candidate involving an output reload.  Reorganize code a little.
21315         (do_remat): Keep track of active status of candidates in a separate
21316         bitmap.
21318 2016-02-08  Richard Biener  <rguenther@suse.de>
21320         PR tree-optimization/69719
21321         * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21322         Properly use absolute of the difference of the two offsets to
21323         compare or adjust the segment length.
21325 2016-02-08  Richard Biener  <rguenther@suse.de>
21326             Jeff Law  <law@redhat.com>
21328         PR target/68273
21329         * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
21330         types for anonymous SSA names.
21332 2016-02-08   Richard Biener  <rguenther@suse.de>
21334         PR rtl-optimization/69274
21335         * ira.c (ira_setup_alts): Do not change recog_data.operand order.
21337 2016-02-08  Jeff Law  <law@redhat.com>
21339         PR tree-optimization/65917
21340         * tree-ssa-dom.c (record_temporary_equivalences): Record both
21341         equivalences from if (x == y) style conditionals.
21342         (loop_depth_of_name): Remove.
21343         (record_equality): Remove loop depth check.
21344         * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
21345         (const_and_copies::record_const_or_copy_raw): New member function.
21346         * tree-ssa-scopedtables.c
21347         (const_and_copies::record_const_or_copy_raw): New, factored out of
21348         (const_and_copies::record_const_or_copy): Call new member function.
21350 2016-02-05  Jeff Law  <law@redhat.com>
21352         PR tree-optimization/68541
21353         * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
21354         (count_stmts_in_block): New function.
21355         (poor_ifcvt_candidate_code): Likewise.
21356         (is_feasible_trace): Add some heuristics to determine when path
21357         splitting is profitable.
21358         (find_block_to_duplicate_for_splitting_paths): Make sure the graph
21359         is a diamond with a single exit.
21361 2016-02-05  Martin Sebor  <msebor@redhat.com>
21363         PR c++/69662
21364         * doc/invoke.texi: Update -Wplacement-new to take an optional
21365         argument.
21367 2016-02-06  Richard Henderson  <rth@redhat.com>
21369         PR c/69643
21370         * tree.c (tree_nop_conversion_p): Do not strip casts into or
21371         out of non-standard address spaces.
21373 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
21375         PR rtl-optimization/69691
21376         * lra-eliminations.c (move_plus_up): Don't add the addend twice.
21378 2016-02-05  Pat Haugen  <pthaugen@us.ibm.com>
21380         * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
21381         * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
21382         (*ieee128_mfvsrd_64bit): Likewise.
21383         (*ieee128_mfvsrd_32bit): Likewise.
21385 2016-02-05  Ilya Enkovich  <enkovich.gnu@gmail.com>
21387         PR target/69369
21388         Revert r232560:
21389         2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
21391         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
21392         instrumented_version.
21394 2016-01-05  Jeremy Bennett  <jeremy.bennett@embecosm.com>
21396         * doc/invoke.texi (Optimize Options): In table of --param options
21397         rename second occurrence of tracer-min-branch-ratio to
21398         tracer-min-branch-probability, rename
21399         tracer-min-branch-ratio-feedback to
21400         tracer-min-branch-probability-feedback and clarify description,
21401         rename sched-spec-state-edge-prob-cutoff to
21402         sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
21403         to selsched-insns-to-rename, rename lto-minpartition to
21404         lto-min-partition, delete reorder-blocks-duplicate and
21405         reorder-blocks-duplicate-feedback.
21407 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21409         * config/s390/s390.c (s390_register_info_set_ranges): Remove
21410         superfluous loops.
21412 2016-02-05  Dominik Vogt  <vogt@linux.vnet.ibm.com>
21414         * doc/extend.texi: S/390: Correct some typos.
21416 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21418         * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
21420 2016-02-05  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
21422         PR target/69625
21423         * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
21424         (s390_register_info_gprtofpr): Use new macros above.
21425         (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
21426         its name.
21427         (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
21428         its name.  Adjust restore and save gpr ranges.
21429         (s390_register_info_set_ranges): New function.
21430         (s390_register_info): Use new macros above.  Call
21431         s390_register_info_set_ranges.
21432         (s390_optimize_register_info): Likewise.
21433         (s390_hard_regno_rename_ok): Use new macros.
21434         (s390_hard_regno_scratch_ok): Likewise.
21435         (s390_emit_epilogue): Likewise.
21436         (s390_can_use_return_insn): Likewise.
21437         (s390_optimize_prologue): Likewise.
21438         * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
21440 2016-02-05  Jakub Jelinek  <jakub@redhat.com>
21442         PR bootstrap/69677
21443         * config/i386/i386.c (convert_scalars_to_vector): Readd stack
21444         alignment fixes.
21445         (ix86_option_override_internal): Disable TARGET_STV even for
21446         -m{incoming,preferred}-stack-boundary=3.
21448 2016-02-03  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
21450         * config.gcc: Mark deprecated rtems targets as obsolete.
21452 2016-02-04  Segher Boessenkool  <segher@kernel.crashing.org>
21454         PR rtl-optimization/64682
21455         PR rtl-optimization/69567
21456         * combine.c (distribute_notes) <REG_DEAD>: Place the death note
21457         before I2 only if the register is both used and set in I2.
21459 2016-02-04  DJ Delorie  <dj@redhat.com>
21461         * config/msp430/msp430.c (msp430_start_function): Add function type.
21463 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
21465         PR fortran/69368
21466         * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
21468 2016-02-04  Uros Bizjak  <ubizjak@gmail.com>
21470         PR rtl-optimization/69577
21471         Revert:
21472         2015-10-29  Richard Henderson  <rth@redhat.com>
21474         PR target/68124
21475         PR rtl-opt/67609
21476         * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
21477         sse check to the exact conditions of PR 67609.
21479 2016-02-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
21481         PR target/69667
21482         * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
21483         instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
21484         not allowed into the traditional Altivec registers.
21485         (movtd_64bit_nodm): Likewise.
21486         (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
21488 2016-02-04  David Malcolm  <dmalcolm@redhat.com>
21490         * config/aarch64/cortex-a57-fma-steering.c
21491         (aarch64_register_fma_steering): Remove "static" from arguments
21492         to register_pass.
21494 2016-02-04  Wilco Dijkstra  <wdijkstr@arm.com>
21496         PR target/69619
21497         * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
21498         twice when complex.
21500 2016-02-04  Mike Frysinger  <vapier@gentoo.org>
21502         * doc/invoke.texi: Delete -mno-fma4.
21504 2016-02-04  Richard Sandiford  <richard.sandiford@arm.com>
21506         PR rtl-optimization/69577
21507         * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
21508         (find_subregs_of_mode): Update accordingly.  Iterate over partial
21509         definitions.
21511 2016-02-04  Alan Lawrence  <alan.lawrence@arm.com>
21513         * config/arm/arm-protos.h (neon_reinterpret): Remove.
21514         * config/arm/arm.c (neon_reinterpret): Remove.
21515         * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
21516         vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
21517         vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
21518         vreinterpretti): Remove.
21519         * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
21520         neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
21521         neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
21522         neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
21523         neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
21524         neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
21525         * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
21526         vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
21527         vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
21528         vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
21529         vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
21530         vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
21531         vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
21532         vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
21533         vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
21534         vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
21535         vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
21536         vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
21537         vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
21538         vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
21539         vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
21540         vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
21541         vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
21542         vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
21543         vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
21544         vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
21545         vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
21546         vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
21547         vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
21548         vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
21549         vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
21550         vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
21551         vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
21552         vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
21553         vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
21554         vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
21555         vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
21556         vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
21557         vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
21558         vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
21559         vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
21560         vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
21561         vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
21562         vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
21563         vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
21564         vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
21565         vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
21566         vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
21567         vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
21568         vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
21569         vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
21570         vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
21571         vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
21572         vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
21573         vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
21574         vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
21575         vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
21576         vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
21577         vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
21578         vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
21579         vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
21580         vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
21581         vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
21582         vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
21583         vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
21584         vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
21585         vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
21586         vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
21587         vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
21588         vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
21589         vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
21590         vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
21591         vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
21592         vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
21593         vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
21594         vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
21595         vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
21596         vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
21597         vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
21598         vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
21599         vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
21600         vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
21601         vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
21602         vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
21603         vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
21604         vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
21605         vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
21606         vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
21607         vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
21608         vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
21609         vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
21610         vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
21611         vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
21612         vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
21613         vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
21614         vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
21615         vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
21616         vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
21617         vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
21618         vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
21619         vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
21620         vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
21621         vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
21623 2016-02-04  Martin Liska  <mliska@suse.cz>
21625         PR sanitizer/69276
21626         * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
21627         that are gimple_store_p.
21628         (maybe_instrument_call): Likewise.
21630 2016-02-04  Bin Cheng  <bin.cheng@arm.com>
21632         * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
21633         register scaling out of memory reference and comment why.
21635 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21637         PR target/65932
21638         PR target/67714
21639         * cse.c (cse_insn): Pass NULL to fold_rtx when initially
21640         folding the source of a SET.
21642 2016-02-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
21644         PR target/65932
21645         PR target/67714
21646         * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
21647         the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
21649 2016-02-04  Jim Wilson  <jim.wilson@linaro.org>
21651         PR target/65932
21652         PR target/67714
21653         * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
21654         HImode.
21656 2016-02-04  Christian Bruel  <christian.bruel@st.com>
21658         * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
21659         * config/arm/arm.c (arm_set_current_function): Likewise.
21661 2016-02-04  Jakub Jelinek  <jakub@redhat.com>
21662             Ilya Enkovich  <enkovich.gnu@gmail.com>
21663             H.J. Lu  <hongjiu.lu@intel.com>
21665         PR target/69454
21666         * config/i386/i386.c (convert_scalars_to_vector): Remove
21667         stack alignment fixes.
21668         (ix86_option_override_internal): Disable TARGET_STV if stack
21669         might not be aligned enough.
21670         (ix86_minimum_alignment): Assert that TARGET_STV is false.
21672 2016-02-04  Victoria Stepanyan  <victoria.stepanyan@amd.com>
21674         * config/i386/x86-tune.def: Disable default prefetching
21675         for -march=znver1.
21677 2016-02-03  Michael Meissner  <meissner@linux.vnet.ibm.com>
21678             Vladimir Makarov  <vmakarov@redhat.com>
21680         PR target/69461
21681         * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
21682         in validating fused toc addresses.
21684 2016-02-03  Jakub Jelinek  <jakub@redhat.com>
21686         PR c/69627
21687         * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
21688         range->m_caret fields if range->m_show_caret_p is false.
21690         PR target/69644
21691         * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
21692         Force oldval into register if it does not satisfy reg_or_short_operand
21693         predicate.  Fix up formatting.
21695 2016-02-03  Vladimir Makarov  <vmakarov@redhat.com>
21696             Alexandre Oliva  <aoliva@redhat.com>
21698         PR target/69461
21699         * lra-constraints.c (simplify_operand_subreg): Check additionally
21700         address validity after potential reloading.
21701         (process_address_1): Check insns validity.  In case of failure do
21702         nothing.
21704 2016-02-03  Kirill Yukhin  <kirill.yukhin@intel.com>
21706         PR target/69118
21707         * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
21708         Fix target.
21710 2016-02-02  Jakub Jelinek  <jakub@redhat.com>
21712         * wide-int.cc (canonize_uhwi): New function.
21713         (wi::divmod_internal): Use it.
21715 2016-02-02  James Norris  <jnorris@codesourcery.com>
21717         * gimplify.c (omp_notice_variable): Add usage check.
21719 2016-02-02  Alexander Monakov  <amonakov@ispras.ru>
21721         * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
21722         like LE, GE, LT, GT when emitting relational operator.
21724 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
21726         * ira-costs.c (find_costs_and_classes): Add extra argument.
21727         * target.def (ira_change_pseudo_allocno_class): Add parameter.
21728         * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
21729         * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
21730         * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
21731         Add best_class parameter, and return it if not ALL_REGS.
21732         * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
21733         Add parameter.
21734         * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
21735         Update target hook.
21737 2016-02-02  Wilco Dijkstra  <wdijkstr@arm.com>
21739         * config/aarch64/aarch64.c
21740         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
21741         (aarch64_ira_change_pseudo_allocno_class): New function.
21743 2016-02-02  Uros Bizjak  <ubizjak@gmail.com>
21745         PR target/67032
21746         * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
21748 2016-02-02  Senthil Kumar Selvaraj  <senthil_kumar.selvaraj@atmel.com>
21750         * config/avr/avr.c (avr_option_override): Set
21751         PARAM_ALLOW_STORE_DATA_RACES to 1.
21753 2016-02-02  Richard Biener  <rguenther@suse.de>
21755         PR tree-optimization/69595
21756         * match.pd: Add range test simplifications to true/false.
21758 2016-02-02  Thomas Schwinge  <thomas@codesourcery.com>
21760         * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
21761         * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
21762         instead.
21764 2016-02-02  Richard Biener  <rguenther@suse.de>
21766         PR tree-optimization/69606
21767         * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
21768         info on the result before moving a stmt.
21770 2016-02-02  Yuri Rumyantsev  <ysrumyan@gmail.com>
21772         PR middle-end/68542
21773         * config/i386/i386.c (ix86_expand_branch): Add support for conditional
21774         branch with vector comparison.
21775         * config/i386/sse.md (VI48_AVX): New mode iterator.
21776         (define_expand "cbranch<mode>4): Add support for conditional branch
21777         with vector comparison.
21778         * tree-vect-loop.c (optimize_mask_stores): New function.
21779         * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
21780         has_mask_store field of vect_info.
21781         * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
21782         vectorized loops having masked stores after vec_info destroy.
21783         * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
21784         correspondent macros.
21785         (optimize_mask_stores): Add prototype.
21787 2016-02-02  Alan Modra  <amodra@gmail.com>
21789         PR target/69548
21790         * config/rs6000/predicates.md (quad_int_reg_operand): Don't
21791         allow subregs.
21793 2016-02-02  Alan Modra  <amodra@gmail.com>
21795         PR target/68662
21796         * config/rs6000/rs6000.c (need_toc_init): New var, set it
21797         whenever toc_label_name used.
21798         (rs6000_file_start): Don't set up toc section here,
21799         (rs6000_output_function_epilogue): do so here instead,
21800         (rs6000_xcoff_file_start): and here.
21801         * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
21802         (load_toc_aix_di): Likewise.
21804 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
21806         PR rtl-optimization/69592
21807         * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
21808         (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
21809         (num_sign_bit_copies_binary_arith_p): New inline function.
21810         (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
21812 2016-02-01  Jeff Law  <law@redhat.com>
21814         PR tree-optimization/69580
21815         * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
21816         * tree-ssa-threadbackward.c
21817         (fsm_find_control_statement_thread_paths): Do not try to walk
21818         through large PHI nodes.
21820 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
21822         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
21823         when count is incremented above limit, don't analyze further
21824         insns afterwards.
21826         * omp-low.c (oacc_parse_default_dims): Avoid
21827         -Wsign-compare warning, make sure value fits into int
21828         rather than just unsigned int.
21830 2016-02-01  Bin Cheng  <bin.cheng@arm.com>
21832         PR tree-optimization/67921
21833         * fold-const.c (split_tree): New parameters.  Convert pointer
21834         type variable part to proper type before negating.
21835         (fold_binary_loc): Pass new arguments to split_tree.
21837 2016-02-01  Nathan Sidwell  <nathan@codesourcery.com>
21839         * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
21840         (nvptx_goacc_validate_dims): Extend to handle global defaults.
21841         * target.def (OACC_VALIDATE_DIMS): Extend documentation.
21842         * doc/tm.texti: Rebuilt.
21843         * doc/invoke.texi (fopenacc-dim): Document.
21844         * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
21845         (append_compiler_options): Likewise.
21846         * omp-low.c (oacc_default_dims, oacc_min_dims): New.
21847         (oacc_parse_default_dims): New.
21848         (oacc_validate_dims): Add USED arg.  Select non-unity default when
21849         possible.
21850         (oacc_loop_fixed_partitions): Return mask of used partitions.
21851         (oacc_loop_auto_partitions): Emit dump info.
21852         (oacc_loop_partition): Return mask of used partitions.
21853         (execute_oacc_device_lower): Parse default dimension arg.  Adjust
21854         loop partitioning and validation calls.
21856 2016-02-01  Richard Biener  <rguenther@suse.de>
21858         PR middle-end/69556
21859         * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
21861 2016-02-01  Richard Biener  <rguenther@suse.de>
21863         PR tree-optimization/69574
21864         * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
21865         of asserting return chrec_dont_know.
21867 2016-02-01  Martin Liska  <mliska@suse.cz>
21869         * mem-stats-traits.h: Add copyright header.
21870         * mem-stats.h: Likewise.
21872 2016-02-01  Richard Biener  <rguenther@suse.de>
21874         PR tree-optimization/69579
21875         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
21876         Do not propagate through abnormal PHI results.
21878 2016-02-01  Eric Botcazou  <ebotcazou@adacore.com>
21880         * postreload.c (reload_cse_simplify): Remove dead code.
21882 2016-02-01  Jakub Jelinek  <jakub@redhat.com>
21884         PR rtl-optimization/69570
21885         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
21886         if there is more than one set, not if there is a single set.
21888 2016-02-01  Richard Henderson  <rth@redhat.com>
21890         PR rtl-opt/69535
21891         * combine.c (make_compound_operation): When looking through a
21892         subreg, make sure to re-extend to the width of the outer mode.
21894 2016-01-30  Jakub Jelinek  <jakub@redhat.com>
21896         PR tree-optimization/69546
21897         * wide-int.cc (wi::divmod_internal): For unsigned division
21898         where both operands fit into uhwi, if o1 is 1 and o0 has
21899         msb set, if divident_prec is larger than bits per hwi,
21900         clear another quotient word and return 2 instead of 1.
21901         Similarly for remainder with msb in HWI set, if dividend_prec
21902         is larger than bits per hwi.
21904 2016-01-29  Martin Jambor  <mjambor@suse.cz>
21906         * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
21907         Use short lowercase names.
21908         (get_memory_order): Mask with MEMMODEL_BASE_MASK.  Support
21909         MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
21910         acq_rel one.  Protect warning agains segfaults if
21911         get_memory_order_name returns NULL.
21912         (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
21913         with release semantics.  Do not warn if get_memory_order already did.
21914         (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
21915         semantics.  Fix check for relaxed or acquire semantics.  Do not warn
21916         if get_memory_order already did.
21918 2016-01-29  Sebastian Pop  <s.pop@samsung.com>
21920         * doc/install.texi: Document that isl-0.16 is supported.
21922 2016-01-29  Vladimir Makarov  <vmakarov@redhat.com>
21924         PR target/69299
21925         * config/i386/constraints.md (Bm): Describe as special memory
21926         constraint.
21927         * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
21928         * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
21929         * genpreds.c (struct constraint_data): Add is_special_memory.
21930         (have_special_memory_constraints, special_memory_start): New
21931         static vars.
21932         (special_memory_end): Ditto.
21933         (add_constraint): Add new arg is_special_memory.  Add code to
21934         process its true value.  Update have_special_memory_constraints.
21935         (process_define_constraint): Pass the new arg.
21936         (process_define_register_constraint): Ditto.
21937         (choose_enum_order): Process special memory.
21938         (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
21939         function insn_extra_special_memory_constraint.
21940         (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
21941         * gensupport.c (process_rtx): Process
21942         DEFINE_SPECIAL_MEMORY_CONSTRAINT.
21943         * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
21944         * ira-lives.c (single_reg_class): Use
21945         insn_extra_special_memory_constraint.
21946         * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
21947         * lra-constraints.c (process_alt_operands): Ditto.
21948         (curr_insn_transform): Use insn_extra_special_memory_constraint.
21949         * recog.c (asm_operand_ok, preprocess_constraints): Process
21950         CT_SPECIAL_MEMORY.
21951         * reload.c (find_reloads): Ditto.
21952         * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
21953         * stmt.c (parse_input_constraint): Use
21954         insn_extra_special_memory_constraint.
21956 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
21958         PR target/69530
21959         * lra-splill.c (lra_final_code_change): Revert r229087 by
21960         removing all sub-registers.
21962 2016-01-29  Steve Ellcey  <sellcey@imgtec.com>
21964         PR target/65604
21965         * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
21967 2016-01-29  Jakub Jelinek  <jakub@redhat.com>
21969         PR target/69551
21970         * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
21971         SSE1, copy target into the temporary reg first before recursing
21972         on it.
21974 2016-01-29  H.J. Lu  <hongjiu.lu@intel.com>
21976         * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
21977         with vm.
21979 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
21981         * ginclude/stdarg.h: Test __cplusplus instead of
21982         __GXX_EXPERIMENTAL_CXX0X__.
21984 2016-01-29  Richard Biener  <rguenther@suse.de>
21986         PR tree-optimization/69547
21987         * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
21988         Do not mark clobbers necessary.
21989         (mark_all_reaching_defs_necessary_1): Likewise.
21991 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
21993         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
21994         declaration name with %qs and print it in both error messages.
21995         Also fix indentation.
21997 2016-01-29  Dominik Vogt  <vogt@linux.vnet.ibm.com>
21999         PR other/69006
22000         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
22001         trailing blank line from error message.
22003 2016-01-29  Jonathan Wakely  <jwakely@redhat.com>
22005         PR c++/69462
22006         * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
22007         for C++-11.
22009 2016-01-29  Richard Biener  <rguenther@suse.de>
22011         PR middle-end/69537
22012         * match.pd: Allow all integral types when simplifying a
22013         widening or sign-changing conversion.
22015 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
22017         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
22018         back to setting codegen_error to fail codegen.
22020 2016-01-28  Uros Bizjak  <ubizjak@gmail.com>
22022         PR target/69459
22023         * config/i386/constraints.md (C): Only accept constant zero operand.
22024         (BC): New constraint.
22025         * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
22026         instead of C constraint.
22027         * doc/md.texi (Machine Constraints): Update description
22028         of C constraint.
22030 2016-01-28  Steve Ellcey  <sellcey@imgtec.com>
22032         PR target/68400
22033         * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
22035 2016-01-28  Jakub Jelinek  <jakub@redhat.com>
22037         PR middle-end/69542
22038         * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
22039         non-debug insns.
22041 2016-01-28  Pat Haugen  <pthaugen@us.ibm.com>
22043         * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
22044         branches if using guessed profile.
22046 2016-01-28  H.J. Lu  <hongjiu.lu@intel.com>
22048         * graphite-optimize-isl.c (optimize_isl): Fix dump.
22050 2016-01-28  Richard Henderson  <rth@redhat.com>
22052         PR target/69305
22053         * config/aarch64/aarch64-modes.def (CC_Cmode): New
22054         * config/aarch64/aarch64-protos.h: Update.
22055         * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
22056         (aarch64_select_cc_mode): Add check for use of CC_Cmode.
22057         (aarch64_get_condition_code_1): Handle CC_Cmode.
22058         * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
22059         (*add<mode>3_compareC_cconly_imm): New.
22060         (*add<mode>3_compareC_cconly): New.
22061         (*add<mode>3_compareC_imm): New.
22062         (add<mode>3_compareC): New.
22063         (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
22064         to be first.  Use aarch64_carry_operation.
22065         (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
22066         (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
22067         (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
22068         (subti3): Use subdi3_compare1.
22069         (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
22070         (sub<mode>3_compare1): New.
22071         (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
22072         (*sub<mode>3_carryin): Use aarch64_borrow_operation.
22073         (*subsi3_carryin_uxtw): Likewise.
22074         (*ngc<mode>, *ngcsi_uxtw): Likewise.
22075         (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
22076         * config/aarch64/iterators.md (DWI): New.
22077         * config/aarch64/predicates.md (aarch64_carry_operation): New.
22078         (aarch64_borrow_operation): New.
22080 2016-01-28  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
22082         * graphite-optimize-isl.c (optimize_isl): Print a different debug
22083         message when isl does not return a valid schedule.
22085 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
22087         * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
22088         Remove comments from class declarations: they are already in the code
22089         close by the defs.
22091 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
22093         * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
22094         codegen_error_p.
22095         (ternary_op_to_tree): Same.
22096         (unary_op_to_tree): Same.
22097         (nary_op_to_tree): Same.
22098         (gcc_expression_from_isl_expr_op): Same.
22099         (gcc_expression_from_isl_expression): Same.
22100         (graphite_create_new_loop): Same.
22101         (graphite_create_new_loop_guard): Same.
22102         (build_iv_mapping): Same.
22103         (graphite_create_new_guard): Same.
22104         (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
22105         (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
22107 2016-01-28  Sebastian Pop  <s.pop@samsung.com>
22109         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
22110         instead of setting codegen_error to fail codegen.
22112 2016-01-28  Jason Merrill  <jason@redhat.com>
22114         * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
22116 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
22118         * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
22119         Remove CONST_INT_P check in CCMP cost calculation.
22121 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
22123         * config/aarch64/aarch64.c (generic_vector_cost):
22124         Set vec_permute_cost.
22125         (cortexa57_vector_cost): Likewise.
22126         (exynosm1_vector_cost): Likewise.
22127         (xgene1_vector_cost): Likewise.
22128         (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
22129         * config/aarch64/aarch64-protos.h (cpu_vector_cost):
22130         Add vec_permute_cost entry.
22132 2016-01-28  Wilco Dijkstra  <wdijkstr@arm.com>
22134         * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
22135         immediate as %1.
22136         (add<mode>3_compare0): Likewise.
22137         (addsi3_compare0_uxtw): Likewise.
22138         (add<mode>3nr_compare0): Likewise.
22139         (compare_neg<mode>): Likewise.
22140         (<optab><mode>3): Likewise.
22142 2016-01-28  Ilya Enkovich  <enkovich.gnu@gmail.com>
22144         * tree-vect-stmts.c (vectorizable_comparison): Add
22145         NULL check for vectype.
22147 2016-01-28  Richard Biener  <rguenther@suse.de>
22149         PR tree-optimization/69466
22150         * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
22151         Account for PHIs we couldn't duplicate.
22153 2016-01-28  Martin Liska  <mliska@suse.cz>
22155         PR pch/68758
22156         * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
22157         instead of ENABLE_VALGRIND_CHECKING.
22159 2016-01-27  Richard Henderson  <rth@redhat.com>
22161         PR rtl-opt/69447
22162         * lra-remat.c (subreg_regs): New.
22163         (dump_candidates_and_remat_bb_data): Dump it.
22164         (operand_to_remat): Reject if operand in subreg_regs.
22165         (set_bb_regs): Collect subreg_regs.
22166         (lra_remat): Init and free subreg_regs.  Compute
22167         calculate_local_reg_remat_bb_data before create_cands.
22169 2016-01-27  H.J. Lu  <hongjiu.lu@intel.com>
22171         PR target/68986
22172         * config/i386/i386.c (ix86_update_stack_boundary): Don't
22173         change stack_alignment_needed for __tls_get_addr call.
22175 2016-01-27  Segher Boessenkool  <segher@kernel.crashing.org>
22177         * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
22179 2016-01-27  Jeff Law  <law@redhat.com>
22181         PR tree-optimization/68398
22182         PR tree-optimization/69196
22183         * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
22184         (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
22185         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22186         Only count PHIs in the last block in the path.  The others will
22187         const/copy propagate away.  Add heuristic to allow more irreducible
22188         subloops to be created when it is likely profitable to do so.
22190         * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22191         Fix typo in comment.  Use gsi_after_labels and remove the GIMPLE_LABEL
22192         check from within the loop.  Use gsi_next_nondebug rather than gsi_next.
22194 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
22196         PR lto/69254
22197         * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
22198         END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
22199         * asan.c (DEF_BUILTIN_STUB): Temporarily define.
22200         * tree-streamer-in.c: Include asan.h.
22201         (streamer_get_builtin_tree): For builtins in sanitizer
22202         range call initialize_sanitizer_builtins and retry.
22204 2016-01-27  Ian Lance Taylor  <iant@google.com>
22206         * common.opt (fkeep-gc-roots-live): New undocumented option.
22207         * tree-ssa-loop-ivopts.c (add_candidate_1): If
22208         -fkeep-gc-roots-live, skip pointers.
22209         (add_iv_candidate_for_biv): Handle add_candidate_1 returning
22210         NULL.
22212 2016-01-27  Uros Bizjak  <ubizjak@gmail.com>
22214         PR target/69512
22215         * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
22216         (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
22218 2016-01-27  Thomas Klausner  <wiz@NetBSD.org>
22220         PR target/68380
22221         * configure.ac: NetBSD provides SSP in its C library.
22222         * configure: Updated.
22224 2016-01-27  Richard Biener  <rguenther@suse.de>
22226         PR tree-optimization/69166
22227         * tree-vect-loop.c (vect_is_simple_reduction): Always check
22228         reduction code for commutativity / associativity.
22230 2016-01-27  Martin Jambor  <mjambor@suse.cz>
22232         PR tree-optimization/69355
22233         * tree-sra.c (analyze_access_subtree): Correct hole detection when
22234         total_scalarization fails.
22236 2016-01-27  David Edelsohn  <dje.gcc@gmail.com>
22238         * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
22239         power9.
22241 2016-01-27  Christian Bruel  <christian.bruel@st.com>
22243         PR target/69245
22244         * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
22245         Move arm_reset_previous_fndecl and set_target_option_current_node in
22246         the conditional part.  Call save_restore_target_globals.
22247         * config/arm/arm.c (arm_set_current_function):
22248         Refactor to better support #pragma target and attribute mix.
22249         Call save_restore_target_globals.
22250         * config/arm/arm-protos.h (save_restore_target_globals): New function.
22252 2016-01-27  Martin Liska  <mliska@suse.cz>
22254         * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
22255         reference for an HSA kernel and its host function.
22257 2016-01-27  Jakub Jelinek  <jakub@redhat.com>
22259         PR tree-optimization/69399
22260         * wide-int.h (wi::lrshift): For larger precisions, only
22261         use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
22263 2016-01-27  Claudiu Zissulescu  <claziss@synopsys.com>
22265         * config/arc/predicates.md (proper_comparison_operator): Reject
22266         constant-constant comparison.
22268 2016-01-26  Tom de Vries  <tom@codesourcery.com>
22270         PR tree-optimization/69110
22271         * tree-data-ref.c (initialize_data_dependence_relation): Handle
22272         DR_NUM_DIMENSIONS == 0.
22274 2016-01-26  Abderrazek Zaafrani  <a.zaafrani@samsung.com>
22275             Sebastian Pop  <s.pop@samsung.com>
22277         * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
22278         isl_ast_op_cond and isl_ast_op_select.
22279         (gcc_expression_from_isl_expr_op): Same.
22281 2016-01-26  Jason Merrill  <jason@redhat.com>
22283         PR c++/68782
22284         * tree.c (recompute_constructor_flags): Split out from
22285         build_constructor.
22286         (verify_constructor_flags): New.
22287         * tree.h: Declare them.
22289 2016-01-26  Iain Buclaw  <ibuclaw@gdcproject.org>
22291         PR rtl-optimization/69217
22292         * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
22293         are no TYPE_FIELDS set for the record type.
22295 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
22297         PR target/68662
22298         * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
22299         toc_label_name unconditionally.
22300         (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
22301         SYMBOL_REF string.  Use toc_label_name instead of constructing
22302         LCTOC1.
22303         (rs6000_elf_declare_function_name): Use toc_label_name instead of
22304         constructing LCTOC1.
22306 2016-01-26  Martin Sebor  <msebor@redhat.com>
22308         PR other/69477
22309         * doc/extend.texi (Common Type Attributes): Move text that talks about
22310         attribute packed from attribute aligned to the section discussing
22311         the former attribute for clarity.
22313 2016-01-26  Richard Henderson  <rth@redhat.com>
22315         PR middle-end/60908
22316         * trans-mem.c (tm_region_init): Mark entry block as visited.
22318 2016-01-26  David Malcolm  <dmalcolm@redhat.com>
22320         PR other/69006
22321         * diagnostic-show-locus.c (layout::print_source_line): Replace
22322         call to pp_newline with call to layout::print_newline.
22323         (layout::print_annotation_line): Likewise.
22324         (layout::move_to_column): Likewise.
22325         (layout::print_any_fixits): After printing any fixits, print a
22326         trailing newline, if necessary.
22327         (layout::print_newline): New method, resetting any colorization
22328         before a newline.
22329         (diagnostic_show_locus): Move the pp_newline to before the
22330         early bailout.  Remove dummy block enclosing the layout instance.
22331         * diagnostic.c (default_diagnostic_finalizer): Replace invocation
22332         of pp_newline_and_flush with pp_flush.
22333         (diagnostic_append_note): Delete use of pp_newline.
22334         (diagnostic_append_note_at_rich_loc): Delete.
22335         * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
22336         * pretty-print.h (output_buffer_append_r): Reset buff->line_length
22337         when newline characters are added to the buffer.
22339 2016-01-26  Michael Matz  <matz@suse.de>
22341         * configure.ac (ac_cv_std_swap_in_utility): New test.
22342         * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
22343         * configure: Regenerate.
22344         * config.in: Regenerate.
22346 2016-01-26  Claudiu Zissulescu  <claziss@synopsys.com>
22348         * config/arc/arc.md (cstoresi4): Force operand into register.
22349         (arcset<code>): Fix predicate.
22350         (arcsetltu): Likewise.
22351         (arcsetgeu): Likewise.
22352         (arcsethi): Likewise.
22353         (arcsetls): Likewise.
22355 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
22357         PR tree-optimization/69483
22358         * gimple-fold.c (canonicalize_constructor_val): Return NULL
22359         if base has error_mark_node type.
22361 2016-01-26  Christophe Lyon  <christophe.lyon@linaro.org>
22363         PR target/68620
22364         * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
22365         * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
22366         New helper macros.
22367         (vget_lane_f16): Handle big-endian.
22368         (vgetq_lane_f16): Likewise.
22369         (vset_lane_f16): Likewise.
22370         (vsetq_lane_f16): Likewise.
22371         * config/arm/iterators.md (VQXMOV): Add V8HF.
22372         (VDQ): Add V4HF and V8HF.
22373         (V_reg): Handle V4HF and V8HF.
22374         (Is_float_mode): Likewise.
22375         * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
22376         neon_vdup_nv8hf): New patterns.
22377         (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
22378         Use VD_LANE iterator.
22379         (neon_vld1_dup<mode>): Use VQ2 iterator.
22381 2016-01-26  Nathan Sidwell  <nathan@acm.org>
22383         * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
22384         (set_oacc_fn_attrib): Add IS_KERNEL arg.
22385         * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
22386         (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
22387         (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
22388         (oacc_validate_dims): Add LEVEL arg, don't return level.
22389         (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
22390         oacc_validate_dims.
22391         (execute_oacc_device_lower): Adjust, add more dump output.
22392         * tree-ssa-loop.c (gate_oacc_kernels): Use
22393         oacc_fn_attrib_kernels_p.
22394         * tree-parloops.c (create_parallel_loop): Adjust
22395         set_oacc_fn_attrib call.
22397 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
22399         PR lto/69254
22400         * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
22401         (append_compiler_options): Handle -fcilkplus.
22402         (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
22404 2016-01-26  Nick Clifton  <nickc@redhat.com>
22406         PR target/66655
22407         * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
22408         been marked as DECL_ONE_ONLY but we do not the means to make it
22409         so, then do not allow it to bind locally.
22411 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
22413         PR lto/69254
22414         * opts.h (parse_sanitizer_options): New prototype.
22415         * opts.c (sanitizer_opts): New array.
22416         (parse_sanitizer_options): New function.
22417         (common_handle_option): Use parse_sanitizer_options.
22419 2016-01-26  H.J. Lu  <hongjiu.lu@intel.com>
22421         PR target/68986
22422         * config/i386/i386.c (ix86_compute_frame_layout): Move stack
22423         alignment adjustment to ...
22424         (ix86_update_stack_boundary): Here.  Don't over-align stack for
22425         __tls_get_addr.
22426         (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
22427         if __tls_get_addr is called.
22429 2016-01-26  Christian Bruel  <christian.bruel@st.com>
22431         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
22433 2016-01-26  Eric Botcazou  <ebotcazou@adacore.com>
22435         * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
22437 2016-01-26  Richard Biener  <rguenther@suse.de>
22439         PR middle-end/69467
22440         * match.pd: Guard X * CST CMP 0 pattern with single_use.
22442 2016-01-26  Richard Biener  <rguenther@suse.de>
22444         PR tree-optimization/69452
22445         * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
22446         (move_computations_dom_walker::before_dom_children): Rename
22447         to ...
22448         (move_computations_worker): This.
22449         (move_computations): Perform an RPO rather than a DOM walk.
22451 2016-01-26  Jakub Jelinek  <jakub@redhat.com>
22453         PR target/69442
22454         * combine.c (combine_instructions): For REG_EQUAL note with
22455         SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
22456         to the underlying register.
22457         * doc/rtl.texi (REG_EQUAL): Document the behavior of
22458         REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
22460 2016-01-26  Roger Ferrer Ibáñez  <rofirrim@gmail.com>
22462         PR target/67896
22463         * config/aarch64/aarch64-builtins.c
22464         (aarch64_init_simd_builtin_types): Do not set structural
22465         equality to __Poly{8,16,64,128}_t types.
22467 2016-01-26  Richard Sandiford  <richard.sandiford@arm.com>
22469         PR tree-optimization/69400
22470         * wide-int.cc (wi_pack): Take the precision as argument and
22471         perform canonicalization here rather than in the callers.
22472         Use the main loop to handle all full-width HWIs.  Add a
22473         zero HWI if in_len isn't a full result.
22474         (wi::divmod_internal): Update accordingly.
22475         (wi::mul_internal): Likewise.  Simplify.
22477 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
22478             Sebastian Pop  <s.pop@samsung.com>
22480         * graphite-poly.c (apply_poly_transforms): Simplify.
22481         (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
22482         (print_isl_map): Same.
22483         (print_isl_union_map): Same.
22484         (print_isl_schedule): New.
22485         (debug_isl_schedule): New.
22486         * graphite-dependences.c (scop_get_reads): Do not call
22487         isl_union_map_add_map that is undocumented isl functionality.
22488         (scop_get_must_writes): Same.
22489         (scop_get_may_writes): Same.
22490         (scop_get_original_schedule): Remove.
22491         (scop_get_dependences): Do not call isl_union_map_compute_flow that
22492         is deprecated in isl 0.15.  Instead, use isl_union_access_* interface.
22493         (compute_deps): Remove.
22494         * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
22495         (debug_schedule_ast): New.
22496         (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
22497         set_separate_option.
22498         (graphite_regenerate_ast_isl): Add dump.
22499         (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
22500         from scop->transformed_schedule.
22501         (graphite_regenerate_ast_isl): Add more dump.
22502         * graphite-optimize-isl.c (optimize_isl): Set
22503         scop->transformed_schedule.  Check whether schedules are equal.
22504         (apply_poly_transforms): Move here.
22505         * graphite-poly.c (apply_poly_transforms): ... from here.
22506         (free_poly_bb): Static.
22507         (free_scop): Static.
22508         (pbb_number_of_iterations_at_time): Remove.
22509         (print_isl_ast): New.
22510         (debug_isl_ast): New.
22511         (debug_scop_pbb): New.
22512         * graphite-scop-detection.c (print_edge): Move.
22513         (print_sese): Move.
22514         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
22515         (build_scop_scattering): Remove.
22516         (create_pw_aff_from_tree): Assert instead of bailing out.
22517         (add_condition_to_pbb): Remove unused code, do not fail.
22518         (add_conditions_to_domain): Same.
22519         (add_conditions_to_constraints): Remove.
22520         (build_scop_context): New.
22521         (add_iter_domain_dimension): New.
22522         (build_iteration_domains): Initialize pbb->iterators.
22523         Call add_conditions_to_domain.
22524         (nested_in): New.
22525         (loop_at): New.
22526         (index_outermost_in_loop): New.
22527         (index_pbb_in_loop): New.
22528         (outermost_pbb_in): New.
22529         (add_in_sequence): New.
22530         (add_outer_projection): New.
22531         (outer_projection_mupa): New.
22532         (add_loop_schedule): New.
22533         (build_schedule_pbb): New.
22534         (build_schedule_loop): New.
22535         (embed_in_surrounding_loops): New.
22536         (build_schedule_loop_nest): New.
22537         (build_original_schedule): New.
22538         (build_poly_scop): Call build_original_schedule.
22539         * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
22540         (free_poly_dr): Remove.
22541         (struct poly_bb): Add iterators.  Remove schedule, transformed, saved.
22542         (free_poly_bb): Remove.
22543         (debug_loop_vec): Remove.
22544         (print_isl_ast): Declare.
22545         (debug_isl_ast): Declare.
22546         (scop_do_interchange): Remove.
22547         (scop_do_strip_mine): Remove.
22548         (scop_do_block): Remove.
22549         (flatten_all_loops): Remove.
22550         (optimize_isl): Remove.
22551         (pbb_number_of_iterations_at_time): Remove.
22552         (debug_scop_pbb): Declare.
22553         (print_schedule_ast): Declare.
22554         (debug_schedule_ast): Declare.
22555         (struct scop): Remove schedule.  Add original_schedule,
22556         transformed_schedule.
22557         (free_gimple_poly_bb): Remove.
22558         (print_generated_program): Remove.
22559         (debug_generated_program): Remove.
22560         (unify_scattering_dimensions): Remove.
22561         * sese.c (print_edge): ... here.
22562         (print_sese): ... here.
22563         (debug_edge): ... here.
22564         (debug_sese): ... here.
22565         * sese.h (print_edge): Declare.
22566         (print_sese): Declare.
22567         (dump_edge): Declare.
22568         (dump_sese): Declare.
22570 2016-01-25  Aditya Kumar  <aditya.k7@samsung.com>
22571             Sebastian Pop  <s.pop@samsung.com>
22573         * Makefile.in: Set ISLVER in site.exp.
22575 2016-01-25  Jakub Jelinek  <jakub@redhat.com>
22577         * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
22578         DECL_VALUE_EXPR of new_var even for the non-array case.  Look
22579         through DECL_VALUE_EXPR for expansion.
22581 2016-01-25  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22583         * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
22584         the frame info after reload completed.
22586 2016-01-25  Jeff Law  <law@redhat.com>
22588         PR tree-optimization/69196
22589         PR tree-optimization/68398
22590         * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
22591         tree-ssa-threadupdate.c.
22592         (determine_bb_domination_status): Prototype
22593         * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
22594         (determine_bb_domination_status): No longer static.
22595         (valid_jump_thread_path): Remove code to detect characteristics
22596         of the jump thread path not associated with correctness.
22597         * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
22598         Correct test for thread path length.  Count PHIs for real operands as
22599         statements that need to be copied.  Do not count ASSERT_EXPRs.
22600         Look at all the blocks in the thread path.  Compute and selectively
22601         filter thread paths based on threading through the latch, threading
22602         a multiway branch or crossing a multiway branch.
22604 2016-01-25  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22606         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled):  Add
22607         decl with __attribute__ ((unused)) annotation.
22609 2016-01-25  Ilya Enkovich  <enkovich.gnu@gmail.com>
22611         PR target/69421
22612         * tree-vect-stmts.c (vectorizable_condition): Check vectype
22613         of operands is compatible with a statement vectype.
22615 2016-01-25  Eric Botcazou  <ebotcazou@adacore.com>
22617         * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
22618         improve wording for mixed storage order support.
22620 2016-01-25  Bilyan Borisov  <bilyan.borisov@arm.com>
22622         * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
22623         (vcvt_u64_f64): Likewise.
22624         (vcvta_s64_f64): Likewise.
22625         (vcvta_u64_f64): Likewise.
22626         (vcvtm_s64_f64): Likewise.
22627         (vcvtm_u64_f64): Likewise.
22628         (vcvtn_s64_f64): Likewise.
22629         (vcvtn_u64_f64): Likewise.
22630         (vcvtp_s64_f64): Likewise.
22631         (vcvtp_u64_f64): Likewise.
22633 2016-01-25  Claudiu Zissulescu  <claziss@synopsys.com>
22635         * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
22636         (arc_init): Check validity mll64 option.
22637         (arc_save_restore): Use double load/store instruction.
22638         (arc_expand_movmem): Likewise.
22639         (arc_split_move): Don't split if we have double load/store
22640         instructions. Returns a boolean.
22641         (arc_process_double_reg_moves): Change function to return boolean
22642         instead of a sequence of instructions.
22643         (arc_dwarf_register_span): New function.
22644         * config/arc/arc-protos.h (arc_split_move): Change prototype.
22645         * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
22646         * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
22647         (*movdf_insn): Likewise.
22648         * config/arc/arc.opt (mll64): New option.
22649         * config/arc/predicates.md (even_register_operand): New predicate.
22650         * doc/invoke.texi (ARC Options): Add mll64 documentation.
22652 2016-01-25  Richard Biener  <rguenther@suse.de>
22654         PR lto/69393
22655         * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
22656         * tree-streamer-out.c (pack_ts_base_value_fields): Stream
22657         DECL_NAMELESS.
22658         * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
22660 2016-01-25  Richard Biener  <rguenther@suse.de>
22662         PR tree-optimization/69376
22663         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
22664         flag.
22665         (VN_INFO_ANTI_RANGE_P): New inline.
22666         (VN_INFO_RANGE_TYPE): Likewise.
22667         * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
22668         SSA_NAME_ANTI_RANGE_P.
22669         (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
22670         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
22671         Properly query VN_INFO_RANGE_TYPE.
22673 2016-01-25  Nick Clifton  <nickc@redhat.com>
22675         PR target/66655
22676         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
22678 2016-01-23  Tom de Vries  <tom@codesourcery.com>
22680         PR tree-optimization/69426
22681         * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
22682         removed clobber.
22684 2016-01-23  Jakub Jelinek  <jakub@redhat.com>
22686         * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
22687         "the the" with "the" in the comments.
22688         * ipa-devirt.c (build_type_inheritance_graph,
22689         update_type_inheritance_graph): Likewise.
22690         * tree.c (build_function_type_list_1): Likewise.
22691         * cfgloopmanip.c (scale_loop_profile): Likewise.
22692         * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
22693         * gimple-ssa-split-paths.c
22694         (find_block_to_duplicate_for_splitting_paths): Likewise.
22695         * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
22696         * expr.c (convert_move): Likewise.
22697         * var-tracking.c (vt_stack_adjustments): Likewise.
22698         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
22699         * tree-vrp.c (test_for_singularity): Likewise.
22701         * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
22702         directly instead of building a temporary tree.
22704         PR bootstrap/69434
22705         * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
22706         remove <algorithm> include.
22708 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
22710         PR target/69432
22711         * config/i386/i386.c: Include dojump.h.
22712         (expand_small_movmem_or_setmem,
22713         expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
22714         fixes.
22715         (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
22716         if dynamic_check != -1.
22718 2016-01-21  Jeff Law  <law@redhat.com>
22720         PR middle-end/69347
22721         * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
22722         record_temporary_equivalences.  Rewritten to avoid unnecessary calls
22723         into dominated_by_p.
22724         (cprop_into_successor_phis): Avoid unnecessary tests.
22726 2016-01-22  Richard Henderson  <rth@redhat.com>
22728         PR target/69416
22729         * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
22730         (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
22732 2016-01-22  Michael Matz  <matz@suse.de>
22734         * system.h (string, algorithm): Include only conditionally.
22735         (new): Include always under C++.
22736         * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
22737         * final.c (toplevel): Ditto.
22738         * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
22739         * genconditions.c (write_header): Make gencondmd.c define
22740         INCLUDE_STRING.
22741         * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
22743         * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
22744         * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
22746 2016-01-22  Christian Bruel  <christian.bruel@st.com>
22748         PR target/68674
22749         * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
22751 2016-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
22753         PR target/69403
22754         * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
22755         define_insn_and_split.  Ensure operands[1] and operands[0] do not
22756         get assigned the same register.
22758 2016-01-22  Kugan Vivekanandarajah  <kuganv@linaro.org>
22760         * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
22762 2016-01-22  Christian Bruel  <christian.bruel@st.com>
22764         * config/arm/arm-c.c (arm_pragma_target_parse):
22765         Remove warn_builtin_macro_redefined overwrite.
22767 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
22769         * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
22770         flag_non_call_exceptions compatibility.
22772 2016-01-22  Jakub Jelinek  <jakub@redhat.com>
22774         PR debug/66668
22775         * dwarf2out.c (add_child_die_after): New function.
22776         (dwarf_qual_info_t): New type.
22777         (dwarf_qual_info): New variable.
22778         (qualified_die_p): New function.
22779         (modified_type_die): For -fdebug-types-section, ensure
22780         canonical order of qualifiers.  Put qualified DIEs adjacent
22781         to the corresponding non-qualified type DIE and search there
22782         for existing qualified DIEs.
22784 2016-01-22  Eric Botcazou  <ebotcazou@adacore.com>
22786         * doc/extend.texi (scalar_storage_order type attribute): Document
22787         restriction on type punning and aliasing, and remove future tense.
22789 2016-01-21  Roman Zhuykov  <zhroma@ispras.ru>
22791         PR target/69252
22792         * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
22793         first stage.
22795 2016-01-21  Jeff Law  <law@redhat.com>
22797         PR middle-end/69347
22798         * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
22799         useless call to record_temporary_equivalences.
22800         * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
22801         allocate 10 slots in the bb_path vector and let it grow as needed.
22802         (fsm_find_control_statement_thread_paths): Similarly for the next_path
22803         vector.
22805 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
22807         * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
22808         Detangle.
22809         * configure: Regenerate.
22811 2016-01-21  Pat Haugen  <pthaugen@us.ibm.com>
22813         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
22814         * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
22816 2016-01-21  Bernd Schmidt  <bschmidt@redhat.com>
22818         PR middle-end/66178
22819         * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
22820         drop EXPAND_INITIALIZER.
22821         * rtl.h (contains_symbolic_reference_p): Declare.
22822         * rtlanal.c (contains_symbolic_reference_p): New function.
22823         * simplify-rtx.c (simplify_binary_operation_1): Don't turn
22824         a subtraction into a NOT if symbolic constants are involved.
22826 2016-01-21  Anton Blanchard  <anton@samba.org>
22827             Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
22829         PR target/63354
22830         * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
22831         #define.
22832         * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
22833         function.
22835 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
22837         * config/microblaze/microblaze.c
22838         (get_branch_target): New.
22839         (insert_wic_for_ilb_runout): New.
22840         (insert_wic): New.
22841         (microblaze_machine_dependent_reorg): New.
22842         (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
22843         * config/microblaze/microblaze.md
22844         (UNSPEC_IPREFETCH): Define.
22845         (iprefetch): New pattern
22846         * config/microblaze/microblaze.opt
22847         (mxl-prefetch): New flag.
22849 2016-01-21  Ajit Agarwal  <ajitkum@xilinx.com>
22851         * config/microblaze/microblaze.h
22852         (FIXED_REGISTERS): Update in macro.
22853         (CALL_USED_REGISTERS): Update in macro.
22855 2016-01-21  Yuri Rumyantsev  <ysrumyan@gmail.com>
22857         PR rtl-optimization/68920
22858         * ifcvt.c (cond_move_process_if_block): Limit number of conditional
22859         moves.
22861 2016-01-21  Vladimir Makarov  <vmakarov@redhat.com>
22863         PR rtl-optimization/68990
22864         * lra-coalesce.c (lra_coalesce): Invalidate value for the result
22865         pseudo instead of inheritance ones.
22867 2016-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
22868             Nick Clifton  <nickc@redhat.com>
22870         PR target/69129
22871         PR target/69012
22872         * config/mips/mips.c (mips_compute_frame_info): Initialise
22873         args_size and hard_frame_pointer_offset fields of the frame
22874         structure before calling mips_global_pointer.
22876 2016-01-21  David Edelsohn  <dje.gcc@gmail.com>
22878         * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
22879         label reference.
22880         * configure: Regenerate.
22882 2016-01-21  Richard Biener  <rguenther@suse.de>
22884         * graphite-optimize-isl.c (get_schedule_map): Fix typo.
22886 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
22888         * config/s390/s390.c (s390_asm_declare_function_size): Add code
22889         to actually emit the .size directive.
22891 2016-01-21   Stefan Sørensen  <stefan.sorensen@spectralink.com>
22892              Jakub Jelinek  <jakub@redhat.com>
22894         PR target/69187
22895         PR target/65624
22896         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
22897         args array size by one to avoid buffer overflow.
22899 2016-01-21  Marcin Kościelnicki  <koriakin@0x04.net>
22901         * config/s390/s390.md (pool_section_start): Use switch_to_section
22902         to select proper read-only data section instead of hardcoding
22903         .rodata.
22904         (pool_section_end): Use switch_to_section to match the above.
22906 2016-01-21  Richard Biener  <rguenther@suse.de>
22908         PR tree-optimization/69378
22909         * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
22910         (set_ssa_val_to): Use it for dominance checks taking into
22911         account not executable edges.
22913 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
22915         PR c++/69355
22916         * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
22917         for bitsize instead of GET_MODE_PRECISION (mode).
22919 2016-01-20  Martin Sebor  <msebor@redhat.com>
22921         PR c/52291
22922         * extend.texi (__sync Builtins): Clarify the semantics of
22923         __sync_fetch_and_OP built-ins on pointers.
22924         (__atomic Builtins): Same.
22926 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22927             Sebastian Pop  <s.pop@samsung.com>
22929         * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
22930         (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
22931         (is_valid_rename): Same.
22932         (translate_isl_ast_to_gimple::get_rename): Same.
22933         (translate_isl_ast_to_gimple::rename_all_uses): Same.
22934         (translate_isl_ast_to_gimple::rename_uses): Same.
22935         (get_new_name): Check for close_phi nodes.
22936         (copy_loop_phi_args): Use phi_node_kind.
22937         (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
22938         (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
22940 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22941             Sebastian Pop  <s.pop@samsung.com>
22943         Revert commit r229783.
22944         * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
22945         Remove use of parameter_rename_map.
22946         (copy_def): Remove.
22947         (copy_internal_parameters): Remove.
22948         (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
22949         * sese.c (new_sese_info): Do not initialize parameter_rename_map.
22950         (free_sese_info): Do not free parameter_rename_map.
22951         (set_rename): Do not use parameter_rename_map.
22952         (rename_uses): Update call to set_rename.
22953         (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
22954         * sese.h (parameter_rename_map_t): Remove.
22955         (struct sese_info_t): Remove field parameter_rename_map.
22957 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22958             Sebastian Pop  <s.pop@samsung.com>
22960         * graphite-isl-ast-to-gimple.c: Fix comment.
22961         * graphite-scop-detection.c (defined_in_loop_p): New.
22962         (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
22963         names defined in loop.
22965 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22966             Sebastian Pop  <s.pop@samsung.com>
22968         * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
22969         Discard unstructured if-then-else regions.
22971 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22972             Sebastian Pop  <s.pop@samsung.com>
22974         * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
22975         (cleanup_loop_iter_dom): Remove.
22976         (build_loop_iteration_domains): Remove.
22977         (build_scop_context): Remove.
22978         (build_scop_iteration_domain): Remove.
22979         (add_loop_constraints): New.
22980         (build_iteration_domains): New.
22981         (build_poly_scop): Call build_iteration_domains.
22983 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22984             Sebastian Pop  <s.pop@samsung.com>
22986         * graphite-scop-detection.c
22987         (scop_detection::harmful_loop_in_region): Free dom and loops.
22988         (scop_detection::loop_body_is_valid_scop): Free bbs.
22990 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
22991             Sebastian Pop  <s.pop@samsung.com>
22993         * graphite-scop-detection.c (record_loop_in_sese): New.
22994         (gather_bbs::before_dom_children): Call record_loop_in_sese.
22995         (build_scops): Remove call to build_sese_loop_nests.
22996         * sese.c (sese_record_loop): Remove.
22997         (build_sese_loop_nests): Remove.
22998         (new_sese_info): Remove region->loops.
22999         (free_sese_info): Same.
23000         * sese.h (sese_contains_loop): Same.
23001         (build_sese_loop_nests): Remove.
23002         (sese_contains_loop): Remove.
23004 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
23005             Sebastian Pop  <s.pop@samsung.com>
23007         * graphite-scop-detection.c (loop_is_valid_scop): Renamed
23008         loop_is_valid_in_scop.
23009         (scop_detection::harmful_stmt_in_region): Renamed
23010         harmful_loop_in_region.
23011         Call loop_is_valid_in_scop.
23013 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
23014             Sebastian Pop  <s.pop@samsung.com>
23016         * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
23017         isl_ast_node_mark.
23019 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
23020             Sebastian Pop  <s.pop@samsung.com>
23022         * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
23023         * graphite.h (struct poly_bb): Remove field is_reduction.
23024         (PBB_IS_REDUCTION): Remove.
23026 2016-01-21  Aditya Kumar  <aditya.k7@samsung.com>
23027             Sebastian Pop  <s.pop@samsung.com>
23029         * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
23030         (add_pdr_constraints): Same.
23031         (scop_get_reads): Same.
23032         (scop_get_must_writes): Same.
23033         (scop_get_may_writes): Same.
23034         (scop_get_original_schedule): Same.
23035         (extend_schedule): Same.
23036         (apply_schedule_on_deps): Same.
23037         (carries_deps): Same.
23038         (compute_deps): Same.
23039         (scop_get_dependences): Same.
23040         * graphite-isl-ast-to-gimple.c
23041         (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
23042         * graphite-optimize-isl.c (get_schedule_for_band): Same.
23043         (get_schedule_for_band_list): Same.
23044         (get_schedule_map): Same.
23045         (apply_schedule_map_to_scop): Same.
23046         * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
23047         (build_loop_iteration_domains): Same.
23048         (add_condition_to_pbb): Same.
23049         (add_param_constraints): Same.
23050         (pdr_add_memory_accesses): Same.
23051         (pdr_add_data_dimensions): Same.
23053 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
23055         * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
23056         requirements.
23058 2016-01-20  Sandra Loosemore  <sandra@codesourcery.com>
23060         * common.opt (feliminate-dwarf2-dups): Replace references to
23061         "DWARF 2" with just "DWARF".
23062         * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
23063         * doc/extend.texi: Likewise.
23064         * doc/cpp.texi: Likewise.
23065         * doc/invoke.texi: Likewise.
23066         (Option Summary): Add -gdwarf to list of Debugging Options.
23067         (Debugging Options): Document -gdwarf.
23068         * doc/contrib.texi: Spell "DWARF" like that.
23070 2016-01-21  Jakub Jelinek  <jakub@redhat.com>
23072         * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
23073         warning.  Fix up formatting.
23075         PR middle-end/67653
23076         * gimplify.c (gimplify_asm_expr): Warn if it is too late to
23077         attempt to mark memory input operand addressable and
23078         call prepare_gimple_addressable in that case.  Don't adjust
23079         input_location for diagnostics, use error_at instead.
23081 2016-01-20  Peter Bergner  <bergner@vnet.ibm.com>
23083         * config/rs6000/ppc-auxv.h: New file.
23084         * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
23085         (cpu_is): Likewise.
23086         (cpu_supports): Likewise.
23087         * config/rs6000/rs6000.c: include "ppc-auxv.h".
23088         (cpu_is_info): New variable.
23089         (cpu_supports_info): Likewise.
23090         (tcb_verification_symbol): Likewise.
23091         (cpu_builtin_p): Likewise.
23092         (cpu_expand_builtin): New function.
23093         (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
23094         (rs6000_init_builtins): Likewise.
23095         (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
23096         * config/rs6000/rs6000.h (TLS_REGNUM): New define.
23097         * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
23098         * configure: Regenerate.
23099         * config.in: Likewise.
23100         * doc/extend.texi (PowerPC Built-in Functions): Document
23101         __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
23103 2016-01-20  David Edelsohn  <dje.gcc@gmail.com>
23105         PR target/68609
23106         * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
23107         domain check.
23108         * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
23109         for V4SFmode.
23111 2016-01-20  Richard Henderson  <rth@redhat.com>
23113         PR bootstrap/69343
23114         PR bootstrap/69339
23115         PR tree-opt/68964
23116         Revert:
23117         * tree.c (tm_define_builtin): New.
23118         (find_tm_vector_type): New.
23119         (build_tm_vector_builtins): New.
23120         (build_common_builtin_nodes): Call it.
23122 2016-01-20  Christophe Lyon  <christophe.lyon@linaro.org>
23124         * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
23125         (arm_fp_ok): Likewise.
23126         (arm_fp): Likewise.
23127         (arm_crypto): Likewise.
23129 2016-01-20  Ilya Enkovich  <enkovich.gnu@gmail.com>
23130             Richard Biener  <rguenther@suse.de>
23132         PR tree-optimization/69328
23133         * tree-vect-stmts.c (vect_is_simple_cond): Check compared
23134         vectors have same number of elements.
23135         (vectorizable_condition): Fix masked version recognition.
23137 2016-01-20  Richard Biener  <rguenther@suse.de>
23139         PR tree-optimization/69345
23140         * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
23141         (VN_INFO_PTR_INFO): Likewise.
23142         * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
23143         info when it is equal between non-dominating SSA names.
23144         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23145         Make sure to look at original SSA infos.
23147 2016-01-20  Jeff Law  <law@redhat.com>
23149         PR target/25114
23150         * config/m68k/predicates.md (pow2_m1_operand): New predicate
23151         extracted from ...
23152         (reg_or_pow2_m1_operand): Call pow2_m1_operand.
23153         (pc_or_label_operand): New predicate.
23154         * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
23155         tests for small integers that are 2^n - 1.
23157 2016-01-20  Jonathan Wakely  <jwakely@redhat.com>
23159         * doc/invoke.texi (Options Summary): Add '.' after @xref.
23161 2016-01-19  Jeff Law  <law@redhat.com>
23163         PR middle-end/69347
23164         * tree-ssa-threadbackwards.c
23165         (fsm_find_control_statement_thread_paths): Do not try to lookup
23166         FSM paths for SSA_NAMEs appearing in abnormal PHIs.
23168 2016-01-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
23170         * doc/lto.texi: Remove text that says only Gold has linker plugin
23171         support.
23173 2016-01-19  Eric Botcazou  <ebotcazou@adacore.com>
23175         * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
23176         (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
23177         the DIE accordingly.
23178         (modified_type_die): Add REVERSE parameter and pass it recursively,
23179         as well as to base_type_die.  Adjust presence check accordingly.
23180         (base_type_for_mode): Adjust call to modified_type_die.
23181         (add_type_attribute): Add REVERSE parameter and pass it to
23182         modified_type_die.
23183         (generic_parameter_die): Adjust call to add_type_attribute.
23184         (add_scalar_info): Likewise.
23185         (add_subscript_info): Likewise.
23186         (gen_array_type_die): Likewise.
23187         (gen_descr_array_type_die): Likewise.
23188         (gen_entry_point_die): Likewise.
23189         (gen_enumeration_type_die): Likewise.
23190         (gen_formal_parameter_die): Likewise.
23191         (gen_subprogram_die): Likewise.
23192         (gen_variable_die ): Likewise.
23193         (gen_const_die): Likewise.
23194         (gen_field_die): Likewise.
23195         (gen_pointer_type_die): Likewise.
23196         (gen_reference_type_die): Likewise.
23197         (gen_ptr_to_mbr_type_die): Likewise.
23198         (gen_inheritance_die): Likewise.
23199         (gen_subroutine_type_die): Likewise.
23200         (gen_typedef_die): Likewise.
23201         (force_type_die): Adjust call to modified_type_die.
23203 2016-01-19  Sandra Loosemore  <sandra@codesourcery.com>
23205         * doc/standards.texi: Copy-editing for grammar, markup, and sentence
23206         flow throughout the file.  Fix broken link to Objective-C 2.0
23207         documentation.
23208         * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
23209         errors.
23211 2016-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
23213         * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
23215 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
23217         PR ipa/66223
23218         * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
23219         (maybe_record_node): Record cxa_pure_virtual as the only possible
23220         target if there are not ohter candidates.
23221         (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
23223 2016-01-19  Richard Biener  <rguenther@suse.de>
23225         * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
23226         (get_memory_order): Likewise.
23228 2016-01-19  Kirill Yukhin  <kirill.yukhin@intel.com>
23230         * tree-vect-stmts.c (vectorizable_store): Check
23231         rhs vectype.
23233 2016-01-19  David Malcolm  <dmalcolm@redhat.com>
23235         PR jit/68446
23236         * gcc.c (driver::decode_argv): Add call to
23237         init_opts_obstack before init_options_struct.
23238         * opts.c (init_opts_obstack): Remove idempotency.
23239         (init_options_struct): Replace call to init_opts_obstack
23240         with a gcc_assert to verify that it has already been called.
23241         * toplev.c (toplev::main): Add call to init_opts_obstack before
23242         calls to init_options_struct.
23243         (toplev::finalize): Move cleanup of opts_obstack next to
23244         cleanup of save_decoded_options, clearing the latter, and
23245         save_decoded_options_count.
23247 2016-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23249         PR target/69135
23250         * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
23251         attribute to unconditional.  Remove %? from output template.
23253 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
23254             Jiong Wang  <jiong.wang@arm.com>
23256         * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
23257         generated from different expand order.
23259 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
23261         * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23262         Add support for CCMP costing.
23264 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
23266         * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
23267         * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
23268         (fccmpe<mode>): Likewise.
23269         (fcmp): Rename to fcmp and globalize pattern.
23270         (fcmpe): Likewise.
23271         * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
23272         (aarch64_gen_ccmp_next): Add FP support.
23274 2015-01-19  Wilco Dijkstra  <wdijkstr@arm.com>
23276         * target.def (gen_ccmp_first): Update documentation.
23277         (gen_ccmp_next): Likewise.
23278         * doc/tm.texi (gen_ccmp_first): Update documentation.
23279         (gen_ccmp_next): Likewise.
23280         * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
23281         expand_ccmp_expr_1.  Improve comments.
23282         * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
23283         (ccmp_ior<mode>): Remove pattern.
23284         (cmp<mode>): Remove expand.
23285         (cmp): Globalize pattern.
23286         (cstorecc4): Use cc_register.
23287         (mov<mode>cc): Remove ccmp_cc_register check.
23288         * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
23289         Simplify after removal of CC_DNE/* modes.
23290         (aarch64_ccmp_mode_to_code): Remove.
23291         (aarch64_print_operand): Remove 'K' case.  Merge 'm' and 'M' cases.
23292         In 'k' case use integer as condition.
23293         (aarch64_nzcv_codes): Remove inverted cases.
23294         (aarch64_code_to_ccmode): Remove.
23295         (aarch64_gen_ccmp_first): Use cmp pattern directly.  Return the correct
23296         comparison with CC register to be used in folowing CCMP/branch/CSEL.
23297         (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
23298         pattern.  Return the comparison with CC register.  Invert conditions
23299         when bitcode is OR.
23300         * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
23301         * config/aarch64/predicates.md (ccmp_cc_register): Remove.
23303 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
23305         * cgraphunit.c (cgraph_node::reset): Clear thunk info and
23306         instrumented_version.
23308 2016-01-19  Richard Biener  <rguenther@suse.de>
23310         PR tree-optimization/69336
23311         * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
23312         handled components with get_ref_base_and_extent.
23313         (equal_mem_array_ref_p): Adjust.
23315 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
23317         PR debug/65779
23318         * shrink-wrap.c: Include valtrack.h.
23319         (move_insn_for_shrink_wrap): Add DEBUG argument.  If
23320         MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
23321         in between insn and where it will be moved to.  Call
23322         dead_debug_insert_temp.
23323         (prepare_shrink_wrap): Adjust caller.  Call dead_debug_local_init
23324         first and dead_debug_local_finish at the end.
23325         For uses and defs bitmap, handle all regs in between REGNO and
23326         END_REGNO, not just the first one.
23328 2016-01-19  Richard Biener  <rguenther@suse.de>
23330         PR tree-optimization/69352
23331         * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
23332         (equal_mem_array_ref_p): Constrain size and max size properly.
23333         Compare the reverse flag.
23335 2016-01-19  Bernd Schmidt  <bschmidt@redhat.com>
23337         * ira.c (ira): Update regstat data if we deleted insns.
23339 2016-01-19  Jakub Jelinek  <jakub@redhat.com>
23341         PR rtl-optimization/68955
23342         PR rtl-optimization/64557
23343         * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
23344         here.  Fix up formatting.
23345         * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
23347 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
23349         PR lto/69133
23350         * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
23351         assume that the node has body.
23352         * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
23353         check.
23355 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
23357         * lto-streamer-out.c (lto_output): Do not stream instrumentation
23358         thunks.
23360 2016-01-19  Jan Hubicka  <hubicka@ucw.cz>
23362         * symtab.c (symtab_node::asm_name): Do not call printable name directly.
23363         (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
23365 2016-01-19  Martin Jambor  <mjambor@suse.cz>
23366             Martin Liska  <mliska@suse.cz>
23367             Michael Matz  <matz@suse.de>
23369         * Makefile.in (OBJS): Add new source files.
23370         (GTFILES): Add hsa.c.
23371         * common.opt (disable_hsa): New variable.
23372         (-Whsa): New warning.
23373         * config.in (ENABLE_HSA): New.
23374         * configure.ac: Treat hsa differently from other accelerators.
23375         (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
23376         $enable_offloading.
23377         (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
23378         * doc/install.texi (Configuration): Document --with-hsa-runtime,
23379         --with-hsa-runtime-include, --with-hsa-runtime-lib and
23380         --with-hsa-kmt-lib.
23381         * doc/invoke.texi (-Whsa): Document.
23382         (hsa-gen-debug-stores): Likewise.
23383         * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
23384         to invoke offload compiler for hsa acclerator.
23385         * opts.c (common_handle_option): Determine whether HSA offloading
23386         should be performed.
23387         * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
23388         * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
23389         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
23390         (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
23391         * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
23392         * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
23393         GF_OMP_FOR_KIND_GRID_LOOP.
23394         (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
23395         (pp_gimple_stmt_1): Likewise.
23396         * gimple-walk.c (walk_gimple_stmt): Likewise.
23397         * gimple.c (gimple_build_omp_grid_body): New function.
23398         (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
23399         * gimple.def (GIMPLE_OMP_GRID_BODY): New.
23400         * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
23401         GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
23402         GF_OMP_TEAMS_GRID_PHONY.
23403         (gimple_statement_omp_single_layout): Updated comments.
23404         (gimple_build_omp_grid_body): New function.
23405         (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
23406         (gimple_omp_for_grid_phony): New function.
23407         (gimple_omp_for_set_grid_phony): Likewise.
23408         (gimple_omp_parallel_grid_phony): Likewise.
23409         (gimple_omp_parallel_set_grid_phony): Likewise.
23410         (gimple_omp_teams_grid_phony): Likewise.
23411         (gimple_omp_teams_set_grid_phony): Likewise.
23412         (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
23413         * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
23414         (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
23415         (BUILT_IN_GOMP_TARGET): Updated type.
23416         * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
23417         (adjust_for_condition): New function.
23418         (get_omp_for_step_from_incr): Likewise.
23419         (extract_omp_for_data): Moved parts to adjust_for_condition and
23420         get_omp_for_step_from_incr.
23421         (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
23422         (fixup_child_record_type): Bail out if receiver_decl is NULL.
23423         (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
23424         (scan_omp_parallel): Do not create child functions for phony
23425         constructs.
23426         (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
23427         (scan_omp_1_op): Checking assert we are not remapping to
23428         ERROR_MARK.  Also also handle GIMPLE_OMP_GRID_BODY.
23429         (parallel_needs_hsa_kernel_p): New function.
23430         (expand_parallel_call): Register apprpriate parallel child
23431         functions as HSA kernels.
23432         (grid_launch_attributes_trees): New type.
23433         (grid_attr_trees): New variable.
23434         (grid_create_kernel_launch_attr_types): New function.
23435         (grid_insert_store_range_dim): Likewise.
23436         (grid_get_kernel_launch_attributes): Likewise.
23437         (get_target_argument_identifier_1): Likewise.
23438         (get_target_argument_identifier): Likewise.
23439         (get_target_argument_value): Likewise.
23440         (push_target_argument_according_to_value): Likewise.
23441         (get_target_arguments): Likewise.
23442         (expand_omp_target): Call get_target_arguments instead of looking
23443         up for teams and thread limit.
23444         (grid_expand_omp_for_loop): New function.
23445         (grid_arg_decl_map): New type.
23446         (grid_remap_kernel_arg_accesses): New function.
23447         (grid_expand_target_kernel_body): New function.
23448         (expand_omp): Call it.
23449         (lower_omp_for): Do not emit phony constructs.
23450         (lower_omp_taskreg): Do not emit phony constructs but create for them
23451         a temporary variable receiver_decl.
23452         (lower_omp_taskreg): Do not emit phony constructs.
23453         (lower_omp_teams): Likewise.
23454         (lower_omp_grid_body): New function.
23455         (lower_omp_1): Call it.
23456         (grid_reg_assignment_to_local_var_p): New function.
23457         (grid_seq_only_contains_local_assignments): Likewise.
23458         (grid_find_single_omp_among_assignments_1): Likewise.
23459         (grid_find_single_omp_among_assignments): Likewise.
23460         (grid_find_ungridifiable_statement): Likewise.
23461         (grid_target_follows_gridifiable_pattern): Likewise.
23462         (grid_remap_prebody_decls): Likewise.
23463         (grid_copy_leading_local_assignments): Likewise.
23464         (grid_process_kernel_body_copy): Likewise.
23465         (grid_attempt_target_gridification): Likewise.
23466         (grid_gridify_all_targets_stmt): Likewise.
23467         (grid_gridify_all_targets): Likewise.
23468         (execute_lower_omp): Call grid_gridify_all_targets.
23469         (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
23470         * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
23471         (tree_omp_clause): Added union field dimension.
23472         * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
23473         * tree.c (omp_clause_num_ops): Added number of arguments of
23474         OMP_CLAUSE__GRIDDIM_.
23475         (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
23476         (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
23477         * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
23478         (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
23479         (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
23480         (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
23481         * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
23482         * tree-pass.h (make_pass_gen_hsail): Declare.
23483         (make_pass_ipa_hsa): Likewise.
23484         * ipa-hsa.c: New file.
23485         * lto-section-in.c (lto_section_name): Add hsa section name.
23486         * lto-streamer.h (lto_section_type): Add hsa section.
23487         * timevar.def (TV_IPA_HSA): New.
23488         * hsa-brig-format.h: New file.
23489         * hsa-brig.c: New file.
23490         * hsa-dump.c: Likewise.
23491         * hsa-gen.c: Likewise.
23492         * hsa.c: Likewise.
23493         * hsa.h: Likewise.
23494         * toplev.c (compile_file): Call hsa_output_brig.
23495         * hsa-regalloc.c: New file.
23497 2016-01-18  Jeff Law  <law@redhat.com>
23499         PR tree-optimization/69320
23500         * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
23501         ranged object, do nothing if the RHS constant is not [0..1].
23502         (optimize_stmt): Comparing a boolean ranged object against a
23503         constant outside [0..1] results in a compile-time constant.
23505         * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
23506         test.
23508 2016-01-18  Sandra Loosemore  <sandra@codesourcery.com>
23510         * doc/invoke.texi (Invoking GCC): Add new section to menu.
23511         (Option Summary): Update to reflect new section and moved options.
23512         (C++ Dialect Options): Move -fstats to new section.
23513         (Debugging Options): Move all dump, statistics, and other GCC
23514         developer options to new section.  Rewrite section introduction
23515         and re-order remaining options to put the more basic ones first.
23516         (Optimization Options): Move -fira-verbose and -flto-report* to
23517         new section.
23518         (Developer Options): New section incorporating moved options.
23519         * doc/cppopts.texi (-dM): Update cross-reference.
23521 2016-01-18  Richard Henderson  <rth@redhat.com>
23523         PR target/69176
23524         * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
23525         operands to pseudo only if CSE is expected.  Split long immediate
23526         operands only after reload, and for the stack pointer.
23527         (*add<GPI>3_pluslong): Remove.
23528         (*addsi3_aarch64, *adddi3_aarch64): Merge into...
23529         (*add<GPI>3_aarch64): ... here.  Add r/rk/Upl alternative.
23530         (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
23531         (*add<GPI>3 peepholes): New.
23532         (*add<GPI>3 splitters): New.
23533         * config/aarch64/constraints.md (Upl): New.
23534         * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
23536 2016-01-18  Richard Biener  <rguenther@suse.de>
23538         PR tree-optimization/69297
23539         * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
23540         stmt at most once.
23541         (vect_bb_vectorization_profitable_p): Clear visited flag again.
23543 2016-01-18  Yuri Rumyantsev  <ysrumyan@gmail.com>
23545         PR middle-end/68542
23546         * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
23547         of mixind vector and scalar types.
23548         (fold_relational_const): Add handling of vector
23549         comparison with boolean result.
23550         * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
23551         comparison of vector operands with boolean result for EQ/NE only.
23552         (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
23553         (verify_gimple_cond): Likewise.
23554         * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
23555         valid type of VAL.
23557 2016-01-18  Joseph Myers  <joseph@codesourcery.com>
23559         * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
23560         !TARGET_OCTEON.
23562 2016-01-18  Richard Biener  <rguenther@suse.de>
23564         PR middle-end/69308
23565         * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
23567 2016-01-18  Tom de Vries  <tom@codesourcery.com>
23569         * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
23571 2016-01-18  Tom de Vries  <tom@codesourcery.com>
23573         * omp-low.c (set_oacc_fn_attrib): Make extern.
23574         * omp-low.h (set_oacc_fn_attrib): Declare.
23575         * tree-parloops.c (struct reduction_info): Add reduc_addr field.
23576         (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
23577         (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
23578         Add and handle function parameter oacc_kernels_p.
23579         (find_reduc_addr, get_omp_data_i_param): New function.
23580         (ref_conflicts_with_region, oacc_entry_exit_ok_1)
23581         (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
23582         (parallelize_loops): Add and handle function parameter oacc_kernels_p.
23583         Calculate dominance info.  Skip loops that are not in a kernels region
23584         in oacc_kernels_p mode.  Skip inner loops of parallelized loops.
23585         (pass_parallelize_loops::execute): Call parallelize_loops with
23586         oacc_kernels_p argument.
23587         (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
23588         New member function.
23589         (pass_parallelize_loops::bool oacc_kernels_p): New member var.
23590         * passes.def: Add argument to pass_parallelize_loops instantation.
23592 2016-01-18  Tom de Vries  <tom@codesourcery.com>
23594         * tree-parloops.c (pass_parallelize_loops::execute): Allow
23595         pass_parallelize_loops to be run outside the loop pipeline.
23597 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
23599         * tree-scalar-evolution.c (follow_copies_to_constant): New.
23600         (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
23602 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
23604         PR target/63679
23605         * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
23606         using get_ref_base_and_extent.
23607         (equal_mem_array_ref_p): New.
23608         (hashable_expr_equal_p): Add call to previous.
23610 2016-01-18  Alan Lawrence  <alan.lawrence@arm.com>
23612         PR target/63679
23613         * tree-sra.c (disqualified_constants, constant_decl_p): New.
23614         (sra_initialize): Allocate disqualified_constants.
23615         (sra_deinitialize): Free disqualified_constants.
23616         (disqualify_candidate): Update disqualified_constants when appropriate.
23617         (create_access): Scan for constant-pool entries as we go along.
23618         (scalarizable_type_p): Add check against type_contains_placeholder_p.
23619         (maybe_add_sra_candidate): Allow constant-pool entries.
23620         (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
23621         (initialize_constant_pool_replacements): New.
23622         (sra_modify_assign): Avoid mangling assignments created by previous,
23623         and don't generate writes into constant pool.
23624         (sra_modify_function_body): Call initialize_constant_pool_replacements.
23626 2016-01-18  Ilya Enkovich  <enkovich.gnu@gmail.com>
23628         * config/i386/i386.c (scalar_to_vector_candidate_p): Support
23629         andnot instruction.
23630         (scalar_chain::convert_op): Likewise.
23631         * config/i386/i386.md (*andndi3_doubleword): New.
23633 2016-01-18  Richard Biener  <rguenther@suse.de>
23635         PR tree-optimization/69170
23636         * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
23637         building a vector from scalar results of a pattern stmt.
23639 2016-01-18  Jakub Jelinek  <jakub@redhat.com>
23641         * haifa-sched.c (autopref_multipass_init): Work around
23642         -Wmaybe-uninitialized warning.
23644 2016-01-18  Thomas Preud'homme  <thomas.preudhomme@arm.com>
23646         * config/arm/arm.c (thumb1_reorg): Check that the comparison is
23647         against the constant 0.
23649 2016-01-17  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
23651         PR tree-optimization/68799
23652         * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
23653         look up phi candidates in the statement-candidate map.
23654         (phi_add_costs): Likewise.
23655         (record_phi_increments): Likewise.
23656         (phi_incr_cost): Likewise.
23657         (ncd_with_phi): Likewise.
23658         (all_phi_incrs_profitable): Likewise.
23660 2016-01-17  Jakub Jelinek  <jakub@redhat.com>
23662         * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
23663         -Wmaybe-uninitialized warning.
23665 2016-01-16  Sandra Loosemore  <sandra@codesourcery.com>
23667         * doc/invoke.texi (Invoking GCC): Add new section to menu.
23668         (Option Summary): Update to reflect new section and moved options.
23669         (C++ Dialect Options): Move -fvtable-verify and related options.
23670         (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
23671         and profiling-related options.
23672         (Optimization Options): Move profile generation options and
23673         -fstack-protector and related options.
23674         (Instrumentation Options): New section incorporating moved options.
23675         (Code Generation Options): Move -finstrument-functions and
23676         related options, -fstack-check, -fstack-limit*, and -fbounds-check.
23678 2016-01-16  Tom de Vries  <tom@codesourcery.com>
23680         * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
23682 2016-01-16  Tom de Vries  <tom@codesourcery.com>
23684         * omp-low.c (expand_omp_atomic_fetch_op):  Release defs of update stmt.
23686 2016-01-16  Richard Sandiford  <richard.sandiford@arm.com>
23688         * hash-table.h (hash_table::empty): Turn into an inline wrapper
23689         that checks whether the table is already empty.  Rename the
23690         original implementation to...
23691         (hash_table::empty_slot): ...this new private function.
23693 2016-01-15  David Malcolm  <dmalcolm@redhat.com>
23695         PR diagnostic/68899
23696         * diagnostic-show-locus.c (layout::print_source_line): Move x
23697         offset of line until after call to
23698         get_line_width_without_trailing_whitespace.
23700 2016-01-15  Jeff Law  <law@redhat.com>
23702         PR tree-optimization/69270
23703         * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
23704         tree-ssa-dom.c.  Improve test for [0..1] ranve from VRP.
23705         * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
23706         * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
23707         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
23708         ssa_name_has_boolean_range and constant_boolean_node.
23710 2016-01-15  Vladimir Makarov  <vmakarov@redhat.com>
23712         PR rtl-optimization/69030
23713         * lra-spills.c (remove_pseudos): Check nrefs and make the function
23714         returning bool.
23715         (spill_pseudos): Delete debug insn for dead pseudo.
23716         (lra_spill): Initiate spill_hard_reg and slots memory separately.
23718 2016-01-15  Jiong Wang  <jiong.wang@arm.com>
23720         * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
23721         New.
23722         (TYPES_UNOPUS): Likewise.
23723         * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
23724         builtin type, from UNOP to UNOPUS.
23725         (lbtruncuv4sf): Likewise.
23726         (lbtruncuv2df): Likewise.
23727         (lrounduv2sf): Likewise.
23728         (lrounduv4sf): Likewise.
23729         (lrounduv2df): Likewise.
23730         (lroundusf): Likewise.
23731         (lroundusf): Likewise.
23732         (lceiluv2sf): Likewise.
23733         (lceiluv4sf): Likewise.
23734         (lceiluv2df): Likewise.
23735         (lceilusf): Likewise.
23736         (lceiludf): Likewise.
23737         (lflooruv2sf): Likewise.
23738         (lflooruv4sf): Likewise.
23739         (lflooruv2df): Likewise.
23740         (lfloorusf): Likewise.
23741         (lfloorudf): Likewise.
23742         (lfrintnuv2sf): Likewise.
23743         (lfrintnuv4sf): Likewise.
23744         (lfrintnuv2df): Likewise.
23745         (lfrintnusf): Likewise.
23746         (lfrintnudf): Likewise.
23747         * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
23748         conversion.
23749         (vcvtq_u32_f32): Likewise.
23750         (vcvtq_u64_f64): Likewise.
23751         (vcvta_u32_f32): Likewise.
23752         (vcvtaq_u32_f32): Likewise.
23753         (vcvtaq_u64_f64): Likewise.
23754         (vcvtm_u32_f32): Likewise.
23755         (vcvtmq_u32_f32): Likewise.
23756         (vcvtmq_u64_f64): Likewise.
23757         (vcvtn_u32_f32): Likwise.
23758         (vcvtnq_u32_f32): Likewise.
23759         (vcvtnq_u64_f64): Likewise.
23760         (vcvtp_u32_f32): Likewise.
23761         (vcvtpq_u32_f32): Likewise.
23762         (vcvtpq_u64_f64): Likewise.
23763         (vcvtmd_u64_f64): Likewise.
23764         (vcvtms_u32_f32): Likewise.
23765         (vcvtad_u64_f64): Likewise.
23766         (vcvtas_u32_f32): Likewise.
23767         (vcvtnd_u64_f64): Likewise.
23768         (vcvtns_u32_f32): Likewise.
23769         (vcvtpd_u64_f64): Likewise.
23770         (vcvtps_u32_f32): Likewise.
23772 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23774         * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
23775         CSEL of zero_extended registers.
23777 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23779         * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23780         Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
23782 2016-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
23784         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
23785         false when argument string is not found in the attributes table
23786         at all.
23788 2016-01-15  David Edelsohn  <dje.gcc@gmail.com>
23790         PR target/68609
23791         * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
23792         (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
23793         * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
23794         precision estimate.
23796 2016-01-15  Richard Biener  <rguenther@suse.de>
23798         PR tree-optimization/66856
23799         * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
23800         * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
23801         (vect_create_new_slp_node): Increment stmt reference count.
23802         (vect_get_and_check_slp_defs): Make sure stmts are nor already in
23803         an SLP tree before swapping operands.
23804         (vect_build_slp_tree): Likewise.
23805         (destroy_bb_vec_info): Free stmt info after SLP instances.
23806         * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
23807         * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
23808         (STMT_VINFO_NUM_SLP_USES): New macro.
23810 2016-01-15  Richard Biener  <rguenther@suse.de>
23812         PR debug/69137
23813         * dwarf2out.c (add_linkage_name_raw): New function split out from ...
23814         (add_linkage_name): ... here.
23815         (gen_typedef_die): Use add_linkage_name_raw instead of
23816         add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
23817         if necessary.
23819 2016-01-15  Cesar Philippidis  <cesar@codesourcery.com>
23821         * gimplify.c (oacc_default_clause): Decode reference and pointer
23822         types for both kernels and parallel regions.
23824 2016-01-15  Richard Sandiford  <richard.sandiford@arm.com>
23826         PR middle-end/69246
23827         * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
23829 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
23831         * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
23832         (convert_scalars_to_vector): Likewise.
23834 2016-01-15  Jonathan Wakely  <jwakely@redhat.com>
23836         * doc/extend.texi (Type Traits): Fix grammar.
23838 2016-01-15  Martin Jambor  <mjambor@suse.cz>
23840         * tree-inline.c (remap_decl): Use existing dclarations if
23841         remapping a type and prevent_decl_creation_for_types.
23842         (replace_locals_stmt): Do an initial remapping of non-VLA typed
23843         decls first.  Do real remapping with
23844         prevent_decl_creation_for_types set.
23845         * tree-inline.h (copy_body_data): New field
23846         prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
23847         padding.
23849 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23851         * config/s390/s390.opt (mmvcle): More verbose help text.
23853 2016-01-15  Dominik Vogt  <vogt@linux.vnet.ibm.com>
23855         * config/s390/s390.opt: Add period to -mzvector option text.
23857 2016-01-15  Richard Biener  <rguenther@suse.de>
23859         PR tree-optimization/68961
23860         * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
23861         of invariants in stores again.
23863 2016-01-15  Sebastian Huber  <sebastian.huber@embedded-brains.de>
23865         * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
23867 2016-01-15  Ilya Enkovich  <enkovich.gnu@gmail.com>
23869         * config/i386/i386.c (ix86_expand_branch): Don't split
23870         DI mode xor instruction to SI mode.
23872 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
23874         PR ipa/68148
23875         * ipa-icf.c (sem_function::merge): Virtual functions may become
23876         reachable even if they address is not taken and there are no
23877         idrect calls.
23879 2016-01-15  Jan Hubicka  <hubicka@ucw.cz>
23881         * lto-streamer-out.c (subtract_estimated_size): New function.
23882         (get_symbol_initial_value): Use it.
23884 2016-01-15  Christian Bruel  <christian.bruel@st.com>
23886         PR target/65837
23887         * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
23888         (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
23889         (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
23890         use add_builtin_function_ext_scope instead of add_builtin_function.
23891         (neon_set_p, neon_crypto_set_p): Remove.
23892         (arm_init_builtins): Always call arm_init_neon_builtins and
23893         arm_init_crypto_builtins.
23894         (arm_expand_builtin): Check that builtins are allowed for the arch.
23895         * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
23896         * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
23897         arm_init_neon_builtins call.
23899 2016-01-15  Richard Biener  <rguenther@suse.de>
23901         PR tree-optimization/69117
23902         * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
23903         * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
23904         of the leader conservatively.
23905         (free_scc_vn): Restore original SSA name infos.
23907 2016-01-14  Jeff Law  <law@redhat.com>
23909         PR tree-optimization/69270
23910         * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
23911         single bit of precision, verify it's also unsigned.
23912         (record_edge_info): Use constant_boolean_node rather than fold_convert
23913         to convert boolean_true/boolean_false to the right type.
23915 2016-01-14  Richard Henderson  <rth@redhat.com>
23917         PR rtl-opt/69014
23918         * loop-doloop.c (record_reg_sets): New.
23919         (doloop_optimize): Reject the transform if the sequence
23920         clobbers registers live at the end of the loop block.
23921         (doloop_optimize_loops): Enable df_live if needed.
23923 2016-01-14  Michael Meissner  <meissner@linux.vnet.ibm.com>
23925         * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
23926         * config/rs6000/rs6000.c: Likewise.
23927         * config/rs6000/rs6000.h: Likewise.
23928         * config/rs6000/rs6000.md: Likewise.
23929         * doc/extend.texi: Likewsie.
23931 2016-01-14  Jeff Law  <law@redhat.com>
23933         * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
23934         typo.
23936 2016-01-14  Richard Henderson  <rth@redhat.com>
23938         PR c/69272
23939         PR tree-opt/68964
23940         * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
23941         * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
23942         instead of builtin_decl_declared_p to test for declaration.
23944 2016-01-14  Nicklas Bo Jensen  <nbjensen@gmail.com>
23946         * doc/loop.texi (Loop Analysis and Representation): Document
23947         loop_depth function.
23949 2016-01-14  Tom de Vries  <tom@codesourcery.com>
23951         PR tree-optimization/68773
23952         * omp-low.c (expand_omp_target): Don't set force_output.
23953         * varpool.c (varpool_node::get_create): Same.
23954         * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
23955         offload_funcs with force_output.
23957 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
23959         PR debug/69244
23960         * lra-eliminations.c (move_plus_up): Don't change anything if either
23961         the outer or inner subreg mode is not MODE_INT.
23962         * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
23963         integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
23965 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
23967         * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
23968         reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
23969         reduc_uplus_@var{m}): Remove.
23970         * expr.c (expand_expr_real_2): Remove expansion path for
23971         reduc_[us](min|max|plus) optabs.
23972         * optabs-tree.c (scalar_reduc_to_vector): Remove.
23973         * optabs-tree.h (scalar_reduc_to_vector): Remove.
23974         * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
23975         reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
23976         * tree-vect-loop.c (vectorizable_reduction): Remove test for
23977         reduc_[us](min|max|plus) optabs.
23979 2016-01-14  Alan Lawrence  <alan.lawrence@arm.com>
23981         * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
23982         (reduc_plus_scal_v2sf): New.
23983         (reduc_smax_v2sf): Rename to...
23984         (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
23985         (reduc_smin_v2sf): Rename to...
23986         (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
23988 2016-01-14  Jan Hubicka  <hubicka@ucw.cz>
23990         * alias.c (compare_base_symbol_refs): New function.
23991         (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
23992         it.
23994 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
23996         PR middle-end/68146
23997         PR tree-optimization/69155
23998         * tree-complex.c: Include cfganal.h.
23999         (phis_to_revisit): New variable.
24000         (extract_component): Add phiarg_p argument.  Assert that returned
24001         SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
24002         (update_phi_components): Partly rewrite to use loop over real/imag
24003         components instead of code duplication.  If extract_component returns
24004         SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
24005         create_tmp_reg into the PHI node instead, and mention the phi triplet
24006         in phis_to_revisit.
24007         (tree_lower_complex): Walk bbs in rpo order.  Adjust phis recorded
24008         in phis_to_revisit at the end.
24010 2016-01-14  Richard Biener  <rguenther@suse.de>
24012         PR tree-optimization/68060
24013         * tree-vect-loop.c (vect_is_simple_reduction): Check the
24014         outer loop reduction is only used in the inner loop before
24015         detecting a double reduction.
24017 2016-01-14  Jakub Jelinek  <jakub@redhat.com>
24019         PR target/68269
24020         * combine.c (expand_field_assignment): Punt if compute_mode is
24021         unsupported scalar mode.
24023 2016-01-14  Richard Biener  <rguenther@suse.de>
24025         PR tree-optimization/66856
24026         * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
24027         SLP node only if it built successfully.
24028         (vect_analyze_slp_instance): Adjust.
24030 2016-01-14  Jeff Law  <law@redhat.com>
24032         PR tree-optimization/69270
24033         * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
24034         (record_edge_info): Use it.  Convert boolean_{true,false}_node
24035         to the type of op0.
24037 2016-01-13  Jan Hubicka  <hubicka@ucw.cz>
24039         PR ipa/66487
24040         * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
24041         use block_ultimate_origin
24042         (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
24044 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
24046         * doc/invoke.texi (Submodel Options): Rename section to
24047         "Machine-Dependent Options" to better reflect its content.
24048         Rewrite introductory text to remove archaic CPU names.
24049         Update references.
24051 2016-01-13  Sandra Loosemore  <sandra@codesourcery.com>
24053         * doc/invoke.texi (Code Gen Options): Move section up in file,
24054         before target-specific options.  Update menu and option summary
24055         to reflect the new section ordering.
24057 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
24059         * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
24060         (C++ Dialect Options): Add cross-reference to -std option.
24061         * doc/standards.texi (C++ Language): Document C++14 support.
24063 2016-01-13  Michael Meissner  <meissner@linux.vnet.ibm.com>
24065         * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
24066         for pack/unpack functions for __ibm128.
24067         (PACK_IF): Likewise.
24068         (UNPACK_IF): Likewise.
24070         * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24071         support for __ibm128 pack/unpack functions.
24072         (rs6000_invalid_builtin): Likewise.
24073         (rs6000_init_builtins): Likewise.
24074         (rs6000_opt_masks): Likewise.
24076         * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
24077         (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
24078         functions
24079         (RS6000_BTM_COMMON): Likewise.
24081         * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
24082         (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
24083         disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
24084         128-bit floating point.  Add support for the double values to be
24085         in Altivec registers for TF/IF packing and unpacking, but restrict
24086         TD packing sub-fields to be FPR registers.  Don't allow overlapped
24087         register support for packing.  Allow pack inputs to be memory
24088         locations.  Don't build generator functions for unpack<mode>_dm
24089         and unpack<mode>_nodm.
24090         (unpack<mode>_dm): Likewise.
24091         (unpack<mode>_nodm): Likewise.
24092         (pack<mode>): Likewise.
24094         * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
24095         built-in functions to pack/unpack explicit __ibm128 values.
24096         (__builtin_unpack_ibm128): Likewise.
24098         * doc/extend.texi (PowerPC Built-in Functions): Document
24099         __builtin_pack_ibm128 and __builtin_unpack_ibm128.
24101 2016-01-13  Bernd Schmidt  <bschmidt@redhat.com>
24103         PR c/66208
24104         * c-common.c (check_function_nonnull): Remove unnecessary declaration.
24105         Add new arg loc and pass it down as context.
24106         (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
24107         to the location to use for the warning.
24108         (check_function_arguments): New arg loc.  All callers changed.  Pass
24109         it to check_function_nonnull.
24110         * c-common.h (check_function_arguments): Adjust declaration.
24112 2016-01-13  Jakub Jelinek  <jakub@redhat.com>
24114         PR tree-optimization/69156
24115         * gimple.c (validate_type): Removed.
24116         (gimple_builtin_call_types_compatible_p): Use
24117         useless_type_conversion_p instead of validate_type.
24118         * value-prof.c (gimple_stringop_fixed_value): Fold
24119         icall_size to correct type.
24121 2016-01-13  Jonathan Wakely  <jwakely@redhat.com>
24123         * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
24124         effects.
24126 2016-01-13  Richard Henderson  <rth@redhat.com>
24128         PR tree-opt/68964
24129         * target.def (builtin_tm_load, builtin_tm_store): Remove.
24130         * config/i386/i386.c (ix86_builtin_tm_load): Remove.
24131         (ix86_builtin_tm_store): Remove.
24132         (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24133         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24134         * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24135         (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24136         * doc/tm.texi: Rebuild.
24138         * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
24139         (BUILT_IN_TM_MEMCPY_RTWN): New.
24140         * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
24141         fallback from vector to integer helpers.
24142         (build_tm_load): Handle vector types directly, instead of
24143         via target hook.
24144         (build_tm_store): Likewise.
24145         (expand_assign_tm): Prepare for register types not handled by
24146         the above.  Copy them to memory and use memcpy.
24147         * tree.c (tm_define_builtin): New.
24148         (find_tm_vector_type): New.
24149         (build_tm_vector_builtins): New.
24150         (build_common_builtin_nodes): Call it.
24152 2016-01-13  Uros Bizjak  <ubizjak@gmail.com>
24154         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
24155         TARGET_SSE_MATH without TARGET_SSE2.  Rewrite.
24157 2016-01-13  Tom de Vries  <tom@codesourcery.com>
24159         PR tree-optimization/69169
24160         * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
24161         handled_struct_type param.
24162         (create_variable_info_for, intra_create_variable_infos): Call
24163         create_variable_info_for_1 with extra arg.
24165 2016-01-13  Yvan Roux  <yvan.roux@linaro.org>
24167         * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
24168         and "armv8.1-a+crc" entries.
24170 2016-01-13  Alexander Fomin  <alexander.fomin@intel.com>
24172         PR target/69228
24173         * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
24174         Change first operand predicate from register_or_constm1_operand
24175         to register_operand.
24176         (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
24177         (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
24178         (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
24179         (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
24180         (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
24181         (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
24182         (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
24183         * config/i386/i386.c (ix86_expand_builtin): Remove first operand
24184         comparison with constm1_rtx from vec_prefetch_gen part.
24186 2016-01-13  Richard Biener  <rguenther@suse.de>
24188         PR tree-optimization/69013
24189         * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
24190         Exchange assert for a test.
24192 2016-01-13  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
24194         PR target/69247
24195         * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
24197 2016-01-13  Richard Biener  <rguenther@suse.de>
24199         PR tree-optimization/69242
24200         * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
24201         assert with a check.
24203 2016-01-13  Richard Biener  <rguenther@suse.de>
24205         PR tree-optimization/69186
24206         * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
24207         Properly guard vect_update_misalignment_for_peel call.
24209 2016-01-12  Jeff Law  <law@redhat.com>
24211         PR tree-optimization/pr67755
24212         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
24213         "need_profile_correction".
24214         (thread_block_1): Initialize new field to false by default.  If we
24215         have multiple thread paths through a common joiner to different
24216         final targets, then set new field to true.
24217         (compute_path_counts): Only do count adjustment when it's really
24218         needed.
24220 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
24222         * doc/invoke.texi (Spec Files): Move section down in file, past
24223         all command-line option descriptions.
24225 2016-01-12  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
24227         PR middle-end/54809
24228         * doc/gty.texi: Remove documentation of mark_hook.
24229         * gengtype.c (struct write_types_data): Remove code to support
24230         mark_hook attribute.
24231         (walk_type): Likewise.
24232         (write_func_for_structure): Likewise.
24234 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
24236         * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
24237         Directory Options, and -specs= to Overall Options.
24238         (Overall Options): Adjust similarly.  Reorder to group related
24239         options together.  Make -specs= cross-reference the spec file details.
24240         (Directory Options): Adjust similarly.
24242 2016-01-12  Jeff Law  <law@redhat.com>
24244         * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
24246 2016-01-12  Olivier Hainque  <hainque@adacore.com>
24248         * gcc.c (spec_undefvar_allowed): New global.
24249         (process_command): Set to true when running for --version or --help,
24250         alone or together.
24251         (getenv_spec_function): When the variable is not defined, use the
24252         variable name as the variable value if we're allowed not to issue
24253         a fatal error.
24255 2016-01-12  Bin Cheng  <bin.cheng@arm.com>
24257         PR tree-optimization/68911
24258         * tree-vrp.c (adjust_range_with_scev): Check overflow in range
24259         information computed for expression "init + nit * step".
24261 2016-01-12  Sandra Loosemore  <sandra@codesourcery.com>
24263         * doc/invoke.texi (Invoking GCC): Copy-edit.  Incorporate information
24264         about name of GCC executable.  Remove deleted node from menu.
24265         (Directory Options) <-B>: Remove cross-reference to deleted node.
24266         (Target Options): Delete section.
24268 2016-01-12  Christian Bruel  <christian.bruel@st.com>
24270         PR target/69180
24271         * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
24272         for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
24274 2016-01-12  Jakub Jelinek  <jakub@redhat.com>
24276         PR target/69198
24277         * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
24278         aligned_mem is properly set for AVX512-VL floating point masked
24279         stores.
24281         PR target/69175
24282         * ifcvt.c (cond_exec_process_if_block): When removing the last
24283         insn from then_bb, remove also any possible barriers that follow it.
24285 2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
24287         PR target/68456
24288         PR target/69226
24289         * config/i386/iamcu.h (SIZE_TYPE): New macro.
24290         (PTRDIFF_TYPE): Likewise.
24291         (WCHAR_TYPE): Likewise.
24292         (WCHAR_TYPE_SIZE): Likewise.
24293         (STDINT_LONG32): Likewise.
24295 2016-01-12  Richard Biener  <rguenther@suse.de>
24297         PR tree-optimization/69053
24298         * tree-vect-loop.c (get_initial_def_for_reduction): Properly
24299         convert initial value for cond reductions.
24301 2016-01-12  Richard Biener  <rguenther@suse.de>
24303         PR tree-optimization/69007
24304         * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
24305         widen_sum after dot_prod and sad.
24307 2016-01-12  Richard Biener  <rguenther@suse.de>
24309         PR tree-optimization/69168
24310         * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
24311         pattern stmt SLP type.
24312         * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
24313         end up unused so cope with that case.
24315 2016-01-12  Richard Biener  <rguenther@suse.de>
24317         PR tree-optimization/69157
24318         * tree-vect-stmts.c (vectorizable_mask_load_store): Check
24319         stmts def type only during analyze phase.
24320         (vectorizable_call): Likewise.
24321         (vectorizable_simd_clone_call): Likewise.
24322         (vectorizable_conversion): Likewise.
24323         (vectorizable_assignment): Likewise.
24324         (vectorizable_shift): Likewise.
24325         (vectorizable_operation): Likewise.
24326         (vectorizable_store): Likewise.
24327         (vectorizable_load): Likewise.
24329 2016-01-12  Richard Biener  <rguenther@suse.de>
24331         PR tree-optimization/69174
24332         * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
24333         space.
24334         (vectorizable_load): Properly compute the number of loads needed
24335         for permuted strided SLP loads and do not spuriously assign
24336         to SLP_TREE_VEC_STMTS.
24338 2016-01-12  Andris Pavenis  <andris.pavenis@iki.fi>
24340         * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
24341         (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
24342         (MD_EXEC_PREFIX): Remove.
24343         (MD_STARTFILE_PREFIX) Removee.
24344         (FILE_NAME_ABSOLUTE_P): Remove.
24345         (CPP_SPEC): Do not read macros from sys/version.h.
24346         (LINK_COMMAND_SPEC): Remove.
24347         (LOCAL_INCLUDE_DIR): Remove.
24348         (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
24349         (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
24350         (POST_LINK_SPEC): Define to invoke stubify after linker
24351         (LIBSTDCXX): Remove define
24352         (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
24353         (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
24354         (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
24355         (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
24356         (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
24357         (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
24358         (i386_djgpp_asm_named_section): Add propotype of new procedure
24360         * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
24361         (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
24362         (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
24363         in config/i386/djgpp.h).
24364         (STANDARD_STARTFILE_PREFIX_2): Define identical to
24365         STANDARD_STARTFILE_PREFIX_1.
24366         (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
24367         (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
24368         installation errors.
24369         (MAX_OFILE_ALIGNMENT): Define to 128.
24370         (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
24372         * config/i386/djgpp.c: New file. Add implementation of
24373         i386_djgpp_asm_named_section.
24375         * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
24377         * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
24378         Add rule for building djgpp.o.
24380 2016-01-11  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24382         * config/rs6000/rs6000.c (v2df_reduction_p): New function.
24383         (rtx_is_swappable_p): Reductions are swappable.
24384         (insn_is_swappable_p): V2DF reductions are swappable.
24386 2016-01-11  John David Anglin  <danglin@gcc.gnu.org>
24388         * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
24389         reloads for other unsupported memory operands.
24391 2016-01-12  Kugan Vivekanandarajah  <kuganv@linaro.org>
24392             Jim Wilson  <jim.wilson@linaro.org>
24394         PR target/69194
24395         * config/arm/arm-builtins.c (arm_expand_neon_args): Call
24396         copy_to_mode_reg instead of force_reg.
24398 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
24400         PR target/69225
24401         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
24402         TARGET_80387 is true.
24404 2016-01-11  Jakub Jelinek  <jakub@redhat.com>
24406         PR target/69071
24407         * lra-eliminations.c (move_plus_up): Only move plus up
24408         if subreg of the constant can be simplified into constant
24409         and use the simplified subreg of the constant instead of
24410         the original constant.
24412         * fold-const.c (fold_convertible_p): Don't return true
24413         for conversion of VECTOR_TYPE to same sized integral type.
24414         (fold_convert_loc): Fix up formatting.  Fold conversion of
24415         VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
24416         instead of NOP_EXPR.
24418         PR tree-optimization/69214
24419         * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
24420         innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
24421         Formatting fix.
24423         PR tree-optimization/69207
24424         * tree-vect-slp.c (vect_get_constant_vectors): For
24425         VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
24426         fold_convertible_p to vector_type's element type, and always
24427         use VCE for non-VECTOR_BOOLEAN_TYPE_P.
24429 2016-01-11  Richard Biener  <rguenther@suse.de>
24431         PR tree-optimization/69173
24432         * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
24433         fixup the cycle if all stmts are in a pattern.
24435 2016-01-11  Uros Bizjak  <ubizjak@gmail.com>
24437         PR middle-end/68999
24438         * alias.c (base_alias_check): Move check for addresses with
24439         alignment ANDs before the call for compare_base_decls.
24440         (memrefs_conflict_p): Return -1 for different decls
24441         that went through alignment adjustments.
24443 2016-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24445         PR rtl-optimization/68796
24446         * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
24447         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
24448         and QImode comparisons against zero with CC_NZmode.
24449         * config/aarch64/iterators.md (short_mask): New mode_attr.
24451 2016-01-11  H.J. Lu  <hongjiu.lu@intel.com>
24453         * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
24454         (<avx512>_store<mode>_mask): Likewise.
24456 2016-01-11  Bernd Schmidt  <bschmidt@redhat.com>
24457             Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24459         PR rtl-optimization/68841
24460         * ifcvt.c (struct noce_if_info): Add orig_x field.
24461         (bbs_ok_for_cmove_arith): Add to_rename parameter.
24462         Don't record conflicts on to_rename if it's present.
24463         Allow memory destinations in sets.
24464         (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
24465         blocks, passing orig_x to the checks.
24466         (noce_process_if_block): Set if_info->orig_x appropriately.
24468 2016-01-11  Tom de Vries  <tom@codesourcery.com>
24470         PR tree-optimization/69069
24471         * tree-parloops.c (create_parallel_loop): Add missing phi args.
24473 2016-01-11  Yuri Rumyantsev  <ysrumyan@gmail.com>
24475         PR rtl-optimization/68920
24476         * config/i386/i386.c (ix86_option_override_internal): Restrict number
24477         of conditional moves for  RTL if-conversion to 1 for
24478         TARGET_ONE_IF_CONV_INSN.
24479         * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
24480         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
24481         * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
24482         parameter to restirct number of conditional moves for
24483         RTL if-conversion.
24484         * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
24485         * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
24486         conditionl moves.
24488 2016-01-11  Alexandre Oliva  <aoliva@redhat.com>
24490         PR bootstrap/69123
24491         * var-tracking.c (drop_overlapping_mem_locs): Operate on all
24492         onepart vars.  Fix typo in comment.  Fix reversed condition in
24493         unshare test.
24494         (dataflow_set_remove_mem_locs): Operate on all onepart vars.
24496         PR bootstrap/69123
24497         * var-tracking.c (dump_onepart_variable_differences): New.
24498         (dataflow_set_different): If a detailed dump is requested,
24499         delay early returns and dump differences between onepart
24500         variables present before and after, and added variables.
24502 2016-01-11  Ilya Enkovich  <enkovich.gnu@gmail.com>
24504         PR target/69010
24505         * expr.c (expand_expr_real_1): For boolean vector constants
24506         with a scalar mode use const_scalar_mask_from_tree.
24507         (const_scalar_mask_from_tree): New.
24508         * optabs.c (expand_vec_cond_mask_expr): Use mask mode
24509         assigned to a mask type to handle constants.
24511 2016-01-11  Martin Jambor  <mjambor@suse.cz>
24513         PR ipa/69044
24514         * ipa-cp.c (estimate_local_effects): Do not clone for removal of
24515         useless parameters if we cannot change function signature.
24517 2016-01-11  Martin Jambor  <mjambor@suse.cz>
24519         PR ipa/66616
24520         * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
24521         flag.
24523 2016-01-11  Tom de Vries  <tom@codesourcery.com>
24525         PR tree-optimization/69109
24526         * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
24527         latch with phi.
24529 2016-01-11  Tom de Vries  <tom@codesourcery.com>
24531         PR tree-optimization/69108
24532         * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
24533         res is not used in a phi.
24535 2016-01-11  Yury Gribov  <y.gribov@samsung.com>
24537         PR 67425
24538         * common.opt (frandom-seed): Fix parameter name.
24539         * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
24541 2016-01-11  Tom de Vries  <tom@codesourcery.com>
24543         PR tree-optimization/69058
24544         * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
24545         not supported.
24547 2016-01-11  Andrew Burgess  <andrew.burgess@embecosm.com>
24549         * config/arc/arc.opt (mdiv-rem): Add period to the end.
24550         (mcode-density): Likewise.
24552 2016-01-10  Tom de Vries  <tom@codesourcery.com>
24554         PR tree-optimization/69062
24555         * tree-parloops.c (loop_has_phi_with_address_arg): New function.
24556         (parallelize_loops): Don't paralelize loop that has phi with address
24557         arg.
24559 2016-01-10  Tom de Vries  <tom@codesourcery.com>
24561         PR tree-optimization/69039
24562         * tree-parloops.c (try_create_reduction_list): Only allow single exit
24563         phi for reduction.
24565 2016-01-09  John David Anglin  <danglin@gcc.gnu.org>
24567         PR middle-end/68743
24568         * match.pd: Require target has function_c99_misc before doing
24569         truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
24571 2016-01-09  Gerald Pfeifer  <gerald@pfeifer.com>
24573         * configure.ac (isl_options_set_schedule_serialize_sccs): Also
24574         use GMPINC.
24575         * configure: Regenerate.
24577 2016-01-09  Jakub Jelinek  <jakub@redhat.com>
24579         PR middle-end/50865
24580         PR tree-optimization/69097
24581         * fold-const.h (expr_not_equal_to): New prototype.
24582         * fold-const.c: Include stringpool.h and tree-ssanames.h.
24583         (expr_not_equal_to): New function.
24584         * match.pd (X % -Y is the same as X % Y): Don't optimize
24585         unless X is known not to be equal to minimum or Y is known
24586         not to be equal to -1.
24587         * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
24588         fold TRUNC_MOD_EXPR if the second argument is not a power of two.
24589         (simplify_stmt_using_ranges): Adjust caller.
24590         (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
24591         substitute_and_fold.
24593 2016-01-09  Jan Hubicka  <hubicka@ucw.cz>
24595         * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
24596         w/o DECL_NAME.
24598 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
24600         PR tree-optimization/69167
24601         * gimple-fold.c (replace_stmt_with_simplification): Also punt if
24602         new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
24603         ops[0] comparison.
24604         * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
24606 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
24607             Richard Biener  <rguenther@suse.de>
24609         PR tree-optimization/68707
24610         * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
24611         instances that can be handled via vect_load_lanes.
24613 2016-01-08  Uros Bizjak  <ubizjak@gmail.com>
24615         * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
24616         if we can't determine address equivalence.
24617         * alias.c (compare_base_decl): Update for changed return value of
24618         symtab_node::equal_address_to.
24620 2016-01-08  Jason Merrill  <jason@redhat.com>
24622         PR c++/68983
24623         PR c++/67557
24624         * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
24625         * expr.c (store_field): Not here.
24626         * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
24627         call with TREE_ADDRESSABLE type.
24628         * tree-cfg.c (verify_gimple_call): Adjust.
24630 2016-01-08  Olivier Hainque  <hainque@adacore.com>
24632         * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
24633         libc_internal.
24635 2016-01-08  Alan Lawrence  <alan.lawrence@arm.com>
24637         * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
24638         (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
24639         (reduc_smin_v2sf): Rename to...
24640         (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
24641         (reduc_splus_v2sf): Rename to...
24642         (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
24644 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
24646         PR tree-optimization/69162
24647         * gimplify.c (gimplify_va_arg_expr): Encode original type of
24648         valist argument in another argument.
24649         (gimplify_modify_expr): Adjust for the above change.  Cleanup.
24650         * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
24651         to determine the va_list type, build a MEM_REF instead of
24652         build_fold_indirect_ref.
24654         PR tree-optimization/69172
24655         * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
24656         gimple_build.
24658 2016-01-08  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24660         PR tree-optimization/67781
24661         * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
24662         and cmpnop in two steps: first the ones not accessed in original
24663         gimple expression in a endian independent way and then the ones not
24664         accessed in the final result in an endian-specific way.
24666 2016-01-08  Jakub Jelinek  <jakub@redhat.com>
24668         PR tree-optimization/69083
24669         * tree-vect-slp.c (vect_get_constant_vectors): For
24670         VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
24671         element type.  If op is fold_convertible_p to vector_type's element
24672         type, use NOP_EXPR instead of VCE.
24674 2016-01-08  Segher Boessenkool  <segher@kernel.crashing.org>
24676         PR rtl-optimization/67778
24677         PR rtl-optimization/68634
24678         PR rtl-optimization/68909
24679         * shrink-wrap.c (try_shrink_wrapping): Add comment.  Don't pop
24680         block from the stack until done with it.  Remove a superfluous
24681         bitmap set.  Remove a superfluous bitmap test.
24683 2016-01-07  Martin Sebor  <msebor@redhat.com>
24685         PR c/68966
24686         * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
24687         constraint on the type of arguments.
24689 2016-01-07  Andreas Tobler  <andreast@gcc.gnu.org>
24691         * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
24692         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
24693         unaligned_access on the gcc_options set.
24694         * config/arm/arm.c (arm_option_override_internal): Use
24695         SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
24697 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
24699         PR target/69140
24700         * config/i386/i386.c (ix86_frame_pointer_required): Enable
24701         frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
24703 2016-01-07  Uros Bizjak  <ubizjak@gmail.com>
24705         Revert
24706         2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
24708         PR target/69140
24709         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
24710         depending on frame_pointer_needed before remaining integer and SSE
24711         registers are saved.
24713 2016-01-07  Sandra Loosemore  <sandra@codesourcery.com>
24715         PR 1078
24716         * doc/extend.texi (Nvidia PDX Function Attributes): New section.
24718 2016-01-07  H.J. Lu  <hongjiu.lu@intel.com>
24720         PR target/69171
24721         * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
24722         Use the "xBm" constraint.
24723         (float<sseintvecmodelower><mode>2<mask_name><round_name):
24724         Likewise.
24725         (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
24726         (sse_cvtsi2ssq<round_name>): Likewise.
24727         (sse_cvtss2si<round_name>): Likewise.
24728         (sse_cvtss2siq<round_name>): Likewise.
24729         (sse2_cvtsi2sdq<round_name>): Likewise.
24730         (sse2_cvtsd2si<round_name>): Likewise.
24731         (sse2_cvtsd2siq<round_name>): Likewise.
24732         * config/i386/subst.md (round_nimm_scalar_predicate): New
24733         predicate.
24735 2015-12-15  Bernd Schmidt  <bschmidt@redhat.com>
24737         PR middle-end/67639
24738         * varasm.c (make_decl_rtl): Mark invalid register vars as
24739         DECL_EXTERNAL.
24741         PR rtl-optimization/66206
24742         * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
24743         All callers changed.
24745 2016-01-07  Jakub Jelinek  <jakub@redhat.com>
24747         PR tree-optimization/69141
24748         * tree-ssa-pre.c: Include langhooks.h.
24749         (eliminate_dom_walker::before_dom_children): Use
24750         lang_hooks.decl_printable_name instead of
24751         cgraph_node::get ()->name ().
24753         PR middle-end/68960
24754         * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
24755         it and DECL_ALIGN too.
24757 2016-01-06  Robert Suchanek  <robert.suchanek@imgtec.com>
24759         * config/mips/mips-ftypes.def: Sort to lexicographical order.
24761 2016-01-06  Uros Bizjak  <ubizjak@gmail.com>
24763         PR target/69140
24764         * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
24765         depending on frame_pointer_needed before remaining integer and SSE
24766         registers are saved.
24768 2015-01-06  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
24770         * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
24771         mode iterator with VSX_M2.
24772         (*p9_vecstore_<mode>): Likewise.
24773         (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
24774         (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
24775         (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
24776         (define_split for VSX_LE128 stores): Likewise.
24777         (define_peephole2 for TImode LE swaps): Likewise.
24778         (define_split for VSX_LE128 post-reload stores): Likewise.
24780 2016-01-06  Marek Polacek  <polacek@redhat.com>
24782         PR sanitizer/69099
24783         * convert.c (convert_to_integer_1): Adjust call to
24784         ubsan_instrument_float_cast.  Use NULL_TREE instead of NULL.
24785         * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter.  Use
24786         EXPR instead of ARG.
24787         * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
24789 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
24791         PR 1078
24792         * doc/extend.texi (RL78 Variable Attributes): New section.
24794 2016-01-05  Marek Polacek  <polacek@redhat.com>
24796         PR c/69104
24797         * builtins.c (get_memmodel): Use expansion point location rather than
24798         the input location.  Call warning_at rather than warning.
24799         (expand_builtin_atomic_compare_exchange): Likewise.
24800         (expand_builtin_atomic_load): Likewise.
24801         (expand_builtin_atomic_store): Likewise.
24802         (expand_builtin_atomic_clear): Likewise.
24804 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
24806         PR target/68991
24807         * config/i386/i386.c (ix86_expand_vector_logical_operator):
24808         Replace nonimmediate_operand with vector_operand.
24809         * config/i386/predicates.md (vector_operand): New predicate.
24810         (general_vector_operand): Replace nonimmediate_operand with
24811         vector_operand.
24812         * config/i386/sse.md: Replace nonimmediate_operand with
24813         vector_operand and m constraint with Bm constraint on SSE
24814         patterns with 16-byte memory operand.
24815         * config/i386/subst.md (round_nimm_predicate): Replace
24816         nonimmediate_operand with vector_operand.
24817         (round_saeonly_nimm_predicate): Likewise.
24818         (round_saeonly_nimm_scalar_predicate): New.
24820 2016-01-05  H.J. Lu  <hongjiu.lu@intel.com>
24822         PR target/68991
24823         * config/i386/constraints.md (Bm): New constraint.
24824         * config/i386/predicates.md (vector_memory_operand): New
24825         predicate.
24826         * config/i386/sse.md: Replace xm with xBm in plusminus and
24827         any_logic patterns.
24829 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
24831         PR 1078
24832         * doc/extend.texi (V850 Function Attributes): New section.
24833         (V850 Variable Attributes): New section.
24835 2016-01-05  Sandra Loosemore  <sandra@codesourcery.com>
24837         PR 1078
24838         * doc/extend.texi (MicroBlaze Function Attributes): Document
24839         interrupt_handler and fast_interrupt attributes.
24841 2016-01-05  Sergei Trofimovich  <siarheit@google.com>
24843         PR other/60465
24844         * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
24845         for local symbolic operands.
24846         * config/ia64/predicates.md (local_symbolic_operand64): New
24847         predicate.
24849 2016-01-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
24851         PR rtl-optimization/68651
24852         * combine.c (combine_simplify_rtx): Canonicalize x + x into
24853         x << 1.
24855 2016-01-05  Nathan Sidwell  <nathan@acm.org>
24857         * alias.c (compare_base_decls): Use symtab_node::get.
24859 2016-01-05  Nick Clifton  <nickc@redhat.com>
24861         PR target/68770
24862         * ira-costs.c (copy_cost): Initialise the t_icode field of the
24863         secondary_reload_info structure.
24865         PR target/66655
24866         * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
24867         decls if weak support is available.
24869 2016-01-04  Martin Sebor  <msebor@redhat.com>
24871         * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
24873 2016-01-04  Michael Meissner  <meissner@linux.vnet.ibm.com>
24875         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
24876         OPTION_MASK_P9_DFORM.
24878         * config/rs6000/constraints.md (wo constraint): New constraint for
24879         ISA 3.0 (power9).
24881         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
24882         for wo constraint.
24883         (rs6000_init_hard_regno_mode_ok): Likewise.
24885         * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
24886         wo constraint.
24888         * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
24889         expanders not to have constraints.  Add support for ISA 3.0 xxperm
24890         instruction.  Add support for fusing xxlor with xxperm.
24891         (altivec_vperm_<mode>_internal): Likewise.
24892         (altivec_vperm_v8hiv16qi): Likewise.
24893         (altivec_vperm_<mode>v16q): Likewise.
24894         (altivec_vperm_<mode>_uns): Likewise.
24895         (vperm_v8hiv4si): Likewise.
24896         (vperm_v16qiv8hi): Likewise.
24898         * doc/md.texi (RS/6000 constraints): Document wo constraint.
24900 2016-01-04  Jakub Jelinek  <jakub@redhat.com>
24902         Update copyright years.
24904         * gcc.c (process_command): Update copyright notice dates.
24905         * gcov-dump.c (print_version): Ditto.
24906         * gcov.c (print_version): Ditto.
24907         * gcov-tool.c (print_version): Ditto.
24908         * gengtype.c (create_file): Ditto.
24909         * doc/cpp.texi: Bump @copying's copyright year.
24910         * doc/cppinternals.texi: Ditto.
24911         * doc/gcc.texi: Ditto.
24912         * doc/gccint.texi: Ditto.
24913         * doc/gcov.texi: Ditto.
24914         * doc/install.texi: Ditto.
24915         * doc/invoke.texi: Ditto.
24917 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24919         * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
24920         modes larger than TImode as TImode if NEON is not enabled.
24922 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24924         PR target/69100
24925         * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
24926         mode for %f0-%f31 only if TARGET_FPU.
24928 2016-01-04  Eric Botcazou  <ebotcazou@adacore.com>
24930         PR target/69072
24931         * config/sparc/sparc.c (scan_record_type): Take into account subfields
24932         to compute the PACKED_P predicate.
24933         (function_arg_record_value): Minor tweaks.
24935 2016-01-04  Thomas Preud'homme  <thomas.preudhomme@arm.com>
24937         * doc/install.texi (--with-multilib-list): Describe the meaning of the
24938         option for arm*-*-* targets.
24940 2016-01-03  Sandra Loosemore  <sandra@codesourcery.com>
24942         * doc/extend.texi (Common Function Attributes): Move docs for
24943         MSP430-specific attributes to....
24944         (MSP430 Function Attributes): ...here.  Delete the redundant
24945         entries and copy-edit the remaining text.
24946         (MSP430 Variable Attributes): Use uniform format for index
24947         entries and add a cross-reference to the corresponding function
24948         attribute docs.
24950 2016-01-03  Vladimír Čunát  <vcunat@gmail.com>
24952         * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
24953         -finite-math typo.
24954         (x86 Options): Likewise.
24956 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
24958         PR 1078
24960         * extend.texi (Common Function Attributes) <no_stack_limit>: New.
24961         * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
24962         to corresponding attribute.
24964 2016-01-01  Sandra Loosemore  <sandra@codesourcery.com>
24966         * doc/extend.texi (Common Function Attributes) <noplt>: Move
24967         to correct alphabetization of table.  Copy-edit and correct
24968         markup.
24969         <stack_protect>: Likewise.
24970         <target_clones>: Likewise.
24971         <simd>: Likewise.
24972         * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
24973         Correct punctuation.
24974         (Code Gen Options) <-fno-plt>: Copy-edit.
24976 2016-01-01  Bernd Edlinger  <bernd.edlinger@hotmail.de>
24978         PR target/68917
24979         * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
24980         SI values.  Explicitly convert SI to DI and vice-versa.
24982 2016-01-01  Jakub Jelinek  <jakub@redhat.com>
24984         PR tree-optimization/69070
24985         * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
24986         REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
24988         PR sanitizer/69055
24989         * ubsan.c (ubsan_instrument_float_cast): Call
24990         initialize_sanitizer_builtins.
24992         PR target/69015
24993         * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
24995 Copyright (C) 2016 Free Software Foundation, Inc.
24997 Copying and distribution of this file, with or without modification,
24998 are permitted in any medium without royalty provided the copyright
24999 notice and this notice are preserved.