postreload.c (reload_cse_simplify): Skip also USE when detecting noop move.
[gcc.git] / gcc / ChangeLog
1 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
2
3 * postreload.c (reload_cse_simplify): Skip also USE when detecting
4 noop move.
5
6 2016-10-06 Richard Biener <rguenther@suse.de>
7
8 PR tree-optimization/77855
9 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
10 instead of removing the current item while iterating over the set
11 which is not safe.
12
13 2016-10-06 James Clarke <jrtc27@jrtc27.com>
14 Eric Botcazou <ebotcazou@adacore.com>
15
16 PR target/77759
17 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
18 (classify_registers): Don't set it
19 (function_arg_slotno): Don't initialize and test it. Tidy up.
20
21 2016-10-06 Richard Biener <rguenther@suse.de>
22
23 PR tree-optimization/77839
24 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
25 lattice transition.
26
27 2016-10-06 Martin Liska <mliska@suse.cz>
28
29 * gcc.c: Set -fprofile-update=atomic when profiling is
30 enabled and -pthread is set. Warn when one combines
31 -pthread and -fprofile-update=single for an app using
32 profiling code.
33
34 2016-10-06 Martin Liska <mliska@suse.cz>
35
36 PR bootstrap/77788
37 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
38 * gimple-ssa-strength-reduction.c (slsr_process_cast):
39 Initialize a pointer to NULL.
40 (slsr_process_copy): Likewise.
41 * input.c (location_get_source_line): Likewise.
42 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
43
44 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
45
46 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
47 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
48 (ix86_handle_option): Deleted handle of OPT_mpcommit.
49 * config.gcc: Deleted pcommitintrin.h
50 * config/i386/pcommitintrin.h: Deleted file.
51 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
52 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
53 detection.
54 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
55 __PCOMMIT__.
56 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
57 (PTA_PCOMMIT): Deleted define.
58 (ix86_option_override_internal): Deleted handle of option.
59 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
60 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
61 __builtin_ia32_pcommit): Deleted.
62 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
63 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
64 (pcommit): Deleted instruction.
65 * config/i386/i386.opt: Mention -mpcommit deprecation.
66 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
67
68 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
69
70 PR target/77874
71 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
72 Remove wrong assert.
73 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
74 Use <round_constraint> as operand 1 constraint.
75
76 2016-10-05 Jakub Jelinek <jakub@redhat.com>
77
78 PR sanitizer/66343
79 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
80 (ubsan_instrument_float_cast): And not here.
81
82 PR sanitizer/66343
83 * ubsan.c (ubsan_ids): New GTY(()) array.
84 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
85 instead of static local counters.
86
87 2016-10-05 Martin Sebor <msebor@redhat.com>
88
89 PR bootstrap/77819
90 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
91 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
92 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
93 (default_printf_pointer_format): Define function.
94 * targhooks.c (linux_printf_pointer_format): Define new function.
95 * targhooks.h (linux_printf_pointer_format): Declare.
96 (gnu_libc_printf_pointer_format): Remove declaration.
97
98 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
99
100 * fold-const.c (native_encode_real): Fix logic for selecting offset
101 to write to when BYTES_BIG_ENDIAN.
102
103 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
104
105 * builtins.c (fold_builtin_strchr): Remove function.
106 (fold_builtin_strrchr): Likewise.
107 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
108 * gimple-fold.c (target_char_cst_p): New function.
109 (gimple_fold_builtin_strchr) Add more foldings.
110 (gimple_fold_builtin): Add index, strrchr, rindex cases.
111
112 2016-10-05 Richard Biener <rguenther@suse.de>
113
114 PR middle-end/77863
115 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
116 capture ids in c-exprs.
117
118 2016-10-05 Richard Biener <rguenther@suse.de>
119
120 PR middle-end/77826
121 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
122 with types_match for GIMPLE code gen to handle type mismatched
123 constants properly.
124 (dt_operand::gen): Adjust.
125 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
126 and constant A.
127
128 2016-10-05 Richard Biener <rguenther@suse.de>
129
130 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
131
132 2016-10-05 Richard Biener <rguenther@suse.de>
133
134 PR middle-end/77842
135 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
136
137 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
138
139 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
140 version check to protect only DW_TAG_imported_module generation.
141
142 2016-10-05 Richard Biener <rguenther@suse.de>
143
144 PR middle-end/55152
145 * match.pd (min(a,-a) -> -abs(a)): New pattern.
146
147 2016-10-04 Ian Lance Taylor <iant@golang.org>
148
149 * explow.c (allocate_dynamic_stack_space): Call
150 do_pending_stack_adjust before handling flag_split_stack.
151
152 2016-10-04 David Malcolm <dmalcolm@redhat.com>
153
154 * genattrtab.c (make_internal_attr): Supply dummy column number to
155 file_location ctor.
156 (main): Likewise.
157 * genoutput.c (init_insn_for_nothing): Likewise.
158 * gensupport.c (add_define_attr): Likewise.
159 * read-md.c (message_at_1): Print column number.
160 (fatal_with_file_and_line): Likewise.
161 (rtx_reader::read_char): Track column numbers.
162 (rtx_reader::unread_char): Likewise.
163 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
164 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
165 (rtx_reader::handle_file): Initialize m_read_md_colno.
166 (rtx_reader::get_current_location): Supply column number to
167 file_location ctor.
168 * read-md.h (struct file_location): Add field "colno".
169 (file_location::file_location): Likewise.
170 (rtx_reader::get_colno): New accessor.
171 (rtx_reader::m_read_md_colno): New field.
172 (rtx_reader::m_last_line_colno): New field.
173
174 2016-10-04 Jakub Jelinek <jakub@redhat.com>
175
176 * doc/extend.texi (Java Exceptions): Remove.
177 (java_interface): Remove.
178
179 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
180
181 PR tree-optimization/77808
182 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
183 and addr are different before copying points-to information.
184
185 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
186
187 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
188 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
189 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
190 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
191
192 2016-10-04 Richard Biener <rguenther@suse.de>
193
194 PR tree-optimization/77399
195 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
196 verify the target can convert.
197
198 2016-10-04 Richard Biener <rguenther@suse.de>
199
200 PR middle-end/77833
201 * explow.c (plus_constant): Verify the mode of the constant
202 pool offset before calling plus_constant.
203
204 2016-10-04 Richard Biener <rguenther@suse.de>
205
206 PR middle-end/77407
207 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
208 type support, mark with :C.
209 (X / -X -> -1): Mark with :C.
210
211 2016-10-04 Jakub Jelinek <jakub@redhat.com>
212
213 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
214 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
215 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
216 * doc/tm.texi: Regenerated.
217 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
218 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
219 * config/darwin.h (JCR_SECTION_NAME): Remove.
220 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
221 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
222 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
223 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
224 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
225 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
226
227 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
228
229 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
230 between "because" and "param" in dump message in call to fprintf.
231
232 2016-10-03 Jeff Law <law@redhat.com>
233
234 PR tree-optimization/71550
235 PR tree-optimization/71403
236 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
237 (profitable_jump_thread_path): Also return boolean indicating if
238 the realized path will create an irreducible loop.
239 Remove loop depth tests from 71403.
240 (fsm_find_control_statement_thread_paths): Remove loop depth tests
241 from 71403. If threading will create an irreducible loop, then
242 throw away loop iteration and related information.
243
244 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
245
246 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
247 -Woverloaded-virtual checks for warning options.
248 * configure: Regenerate.
249
250 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
251
252 PR preprocessor/77699
253 * input.c (maybe_grow): Don't allocate one byte extra headroom.
254 (get_next_line): Return false on error.
255 (read_next_line): Removed, use get_next_line instead.
256 (read_line_num): Don't copy the line.
257 (location_get_source_line): Don't use static data.
258 (selftest::test_reading_source_line): Add more test cases.
259
260 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
261
262 Revert
263 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
264
265 * ifcvt.c (noce_try_avoid_const_materialization): New function.
266 (noce_process_if_block): Use it.
267
268 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
269
270 * doc/invoke.texi: Update -Wint-in-bool-context.
271
272 2016-10-02 Jakub Jelinek <jakub@redhat.com>
273
274 * dwarf2out.c (output_fde, output_call_frame_info,
275 dwarf2out_do_cfi_startproc, set_indirect_string,
276 gen_internal_sym, output_die, output_line_info): Use
277 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
278 ASM_GENERATE_INTERNAL_LABEL output.
279
280 2016-10-01 Richard Biener <rguenther@suse.de>
281
282 PR middle-end/77798
283 * genmatch.c (get_operand_type): Add operand position arg
284 and handle COND_EXPR comparison operand with fixed boolean_type_node.
285 (expr::gen_transform): Adjust.
286 (dt_simplify::gen_1): Likewise.
287
288 2016-10-01 Jakub Jelinek <jakub@redhat.com>
289
290 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
291 comments. Simplify asserts, remove unnecessary conditions.
292 Formatting fixes.
293 (*<code><mode>3): Likewise.
294
295 2016-09-30 Jakub Jelinek <jakub@redhat.com>
296
297 * doc/invoke.texi (-Wregister): Document.
298
299 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
300
301 * configure.ac: Split CHECKING_P into CHECKING_P and
302 ENABLE_EXTRA_CHECKING.
303 * configure: Regenerated.
304 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
305 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
306
307 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
308
309 PR other/31566
310 * gcc.c (process_command): For @filename handling, output
311 the correct name if the file does not exist.
312
313 2016-09-30 Marek Polacek <polacek@redhat.com>
314
315 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
316 * config/alpha/predicates.md: Likewise.
317
318 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
319
320 * ifcvt.c (noce_try_avoid_const_materialization): New function.
321 (noce_process_if_block): Use it.
322
323 2016-09-30 Martin Liska <mliska@suse.cz>
324
325 * doc/invoke.texi: Document asan-use-after-return that
326 it's disabled by default in runtime.
327
328 2016-09-30 Richard Biener <rguenther@suse.de>
329
330 * tree-vrp.c (intersect_ranges): If we failed to handle
331 the intersection choose a constant singleton range if available.
332
333 2016-09-30 Richard Biener <rguenther@suse.de>
334
335 PR tree-optimization/77399
336 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
337 float <-> int conversions.
338
339 2016-09-30 Alan Modra <amodra@gmail.com>
340
341 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
342
343 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
344
345 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
346 ext_level before calling CPUID with 0x80000008.
347 Simplify xgetbv checks.
348
349 2016-09-29 David Malcolm <dmalcolm@redhat.com>
350
351 * Makefile.in (OBJS): Add print-rtl-function.o.
352 * print-rtl-function.c: New file.
353 * print-rtl.h (print_rtx_function): New decl.
354
355 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
356
357 PR target/77756
358 * config/i386/cpuid.h (__get_cpuid_count): New.
359 (__get_cpuid): Rename __level to __leaf.
360
361 2016-09-29 Marek Polacek <polacek@redhat.com>
362
363 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
364
365 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
366
367 * builtins.c (expand_builtin_memcmp): don't swap args unless
368 result is only being compared with zero.
369
370 2016-09-29 Marek Polacek <polacek@redhat.com>
371
372 * dwarf2out.c (loc_descriptor): Add fall through comment.
373 (add_const_value_attribute): Likewise.
374
375 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
376
377 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
378 with "v6t2". Move "arch" attribute above "pool_range".
379 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
380 with "v6t2".
381 (*thumb2_movhi_vfp): Likewise.
382 (*arm_movhi_fp16): Likewise.
383 (*thumb2_movhi_fp16): Likewise.
384 (*arm_movsi_vfp): Remove "arch" attribute.
385 (*thumb2_movsi_vfp): Likewise.
386
387 2016-09-29 Martin Liska <mliska@suse.cz>
388
389 * doc/extend.texi: Remove limitation of Objective C for
390 __attribute__((constructor)) and __attribute__((destructor)).
391
392 2016-09-29 Richard Biener <rguenther@suse.de>
393
394 PR tree-optimization/77768
395 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
396 Handle stores to readonly memory when removing redundant stores.
397
398 2016-09-29 Richard Biener <rguenther@suse.de>
399
400 PR middle-end/77407
401 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
402 X / -X -> -1 simplifications.
403
404 2016-09-29 Richard Biener <rguenther@suse.de>
405
406 PR middle-end/55152
407 * match.pd: Add max(a,-a) -> abs(a) pattern.
408 * tree-ssa-phiopt.c (minmax_replacement): Disable for
409 HONOR_SIGNED_ZEROS types.
410
411 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
412
413 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
414 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
415
416 2016-09-29 Richard Biener <rguenther@suse.de>
417
418 * tree-vrp.c (set_defs_to_varying): New helper avoiding
419 writing to vr_const_varying.
420 (vrp_initialize): Call it.
421 (vrp_visit_stmt): Likewise.
422 (evrp_dom_walker::before_dom_children): Likewise.
423
424 2016-09-29 Richard Biener <rguenther@suse.de>
425
426 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
427 constructors with vector elements.
428
429 2016-09-29 Richard Biener <rguenther@suse.de>
430
431 PR tree-optimization/77768
432 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
433 with stores to a place we know has a constant value.
434
435 2016-09-29 Alan Modra <amodra@gmail.com>
436
437 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
438 * doc/invoke.texi: Document it.
439 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
440 (rs6000_passes_float): Comment.
441 (rs6000_passes_long_double): New static var.
442 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
443 (init_cumulative_args): Set up to emit fp .gnu_attribute for
444 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
445 to include fp values returned in vectors.
446 Set rs6000_passes_long_double.
447 (rs6000_function_arg_advance_1): Likewise for function args.
448 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
449 and SPE. Emit long double tag value too.
450 (rs6000_opt_vars): Add gnu-attr.
451 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
452 * configure: Regenerate.
453 * config.in: Regenerate.
454
455 2016-09-28 Jakub Jelinek <jakub@redhat.com>
456
457 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
458 of 0 < x.
459 (format_floating, format_string, format_directive,
460 get_destination_size, pass_sprintf_length::handle_gimple_call):
461 Likewise.
462
463 2016-09-28 Jakub Jelinek <jakub@redhat.com>
464
465 * gimple-ssa-sprintf.c: Fix comment formatting.
466 (format_integer): Use is_gimple_assign.
467 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
468 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
469 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
470 (pass_sprintf_length::execute): Use is_gimple_call.
471
472 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
473
474 * gimple-fold.c (gimple_fold_builtin): After failing to fold
475 strchr, also try the generic folding.
476
477 2016-09-28 Martin Sebor <msebor@redhat.com>
478
479 PR c/77762
480 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
481 Fix typos.
482
483 2016-09-28 Martin Sebor <msebor@redhat.com>
484
485 PR middle-end/77683
486 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
487 length modifier is not expected.
488 (format_floating): Ignore l length modifier and fail gracefuly
489 when it isn't one of the other expected ones.
490
491 2016-09-28 Martin Sebor <msebor@redhat.com>
492
493 PR bootstrap/77753
494 * varasm.c (assemble_addr_to_section): Increase local buffer size.
495
496 2016-09-27 Richard Biener <rguenther@suse.de>
497
498 * dwarf2out.c (cu_die_list): New global.
499 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
500 main_comp_unit_die to cu_die_list if we created it.
501 Move break_out_includes ...
502 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
503 the cu_die_list.
504
505 2016-09-28 Richard Biener <rguenther@suse.de>
506
507 * dwarf2out.c (struct die_struct): Add removed flag.
508 (lookup_type_die): If the DIE is marked as removed, clear
509 TYPE_SYMTAB_DIE and return NULL.
510 (lookup_decl_die): If the DIE is marked as removed, remove it
511 from the hash and return NULL.
512 (mark_removed): New helper.
513 (prune_unused_types_prune): Call it for removed DIEs.
514 (gen_subprogram_die): Move the premark_used_types call to after
515 DIEs for the functions scopes are generated.
516 (process_scope_var): Do not re-create pruned types or type decls.
517 Make sure to also re-parent type decls.
518 (dwarf2out_finish): Move unused type pruning and debug_types
519 handling ...
520 (dwarf2out_early_finish): ... here.
521
522 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
523
524 * config/arc/arc-c.c: New file.
525 * config/arc/arc-c.def: Likewise.
526 * config/arc/t-arc: Likewise.
527 * config.gcc: Include arc-c.o as c and cpp object.
528 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
529 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
530 arc_cpu_cpp_builtins.
531
532 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
533
534 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
535 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
536
537 2016-09-28 Nathan Sidwell <nathan@acm.org>
538
539 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
540 printing.
541
542 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
543
544 PR tree-optimization/61056
545 * gimple-fold.c (gimple_fold_builtin_strchr):
546 New function to optimize strchr (s, 0) to strlen.
547 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
548
549 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
550
551 PR tree-optimization/77724
552 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
553 Add tree_fits_shwi_p check.
554
555 2016-09-27 Jakub Jelinek <jakub@redhat.com>
556
557 * auto-inc-dec.c (try_merge): Remove break after return.
558 * cselib.c (autoinc_split): Likewise.
559 * explow.c (promote_mode): Likewise.
560 * fixed-value.c (fixed_arithmetic): Likewise.
561 * hsa.c (hsa_internal_fn::get_arity): Likewise.
562 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
563 * trans-mem.c (get_attrs_for): Likewise.
564 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
565 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
566 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
567 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
568 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
569 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
570 * config/cris/cris.c (cris_op_str): Likewise.
571 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
572 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
573
574 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
575
576 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
577 IFN_GOACC_REDUCTION_CODES): New.
578 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
579 ifn_goacc_reduction_kind): Use them.
580 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
581 of internal functions, when applicable.
582
583 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
584
585 * config/mips/constraints.md (d): Fix documentation.
586 * doc/md.texi (Machine Constraints): Update accordingly.
587
588 2016-09-27 Richard Biener <rguenther@suse.de>
589
590 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
591 cur_line_info_table initialization ...
592 (dwarf2out_assembly_start): ... here.
593
594 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
595
596 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
597 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
598 (*thumb2_movhi_vfp): Likewise.
599 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
600 template. Expand predicable attribute to mark VMOV.F16 as not
601 predicable. Add "arch" attribute.
602 (*thumb2_movhi_fp16): Likewise.
603 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
604 (*thumb2_movsi_vfp): Add "arch" attribute.
605
606 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
607
608 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
609 VAR_DECL string.
610
611 2016-09-27 Marek Polacek <polacek@redhat.com>
612
613 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
614 comment.
615
616 * config/c6x/c6x.h: Adjust fall through comment.
617 * config/sh/sh.c (final_prescan_insn): Likewise.
618 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
619 (visium_expand_fp_cstore): Likewise.
620
621 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
622
623 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
624 expected by -Wimplicit-fallthrough.
625 (thumb1_size_rtx_costs): Likewise.
626 (thumb2_reorg): Likewise.
627 (tls_mentioned_p): Add "Fall through" comment.
628 (thumb2_reorg): Likewise.
629 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
630 comment form expected by -Wimplicit-fallthrough.
631
632 2016-09-27 Martin Liska <mliska@suse.cz>
633
634 PR gcov-profile/46266
635 * input.h (RESERVED_LOCATION_P): New macro.
636 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
637 instread of comparison with UNKNOWN_LOCATION.
638
639 2016-09-27 Richard Biener <rguenther@suse.de>
640
641 PR tree-optimization/77745
642 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
643 When removing redundant stores make sure to check compatibility
644 of the TBAA state for downstream accesses.
645 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
646 value-numbering virtual operands for store matches.
647
648 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
649
650 PR target/51244
651 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
652 movrt patterns. Match them before anything else in the SET case.
653
654 2016-09-27 Martin Liska <mliska@suse.cz>
655
656 PR gcov-profile/7970
657 PR gcov-profile/16855
658 PR gcov-profile/44779
659 * coverage.c (build_gcov_exit_decl): New function.
660 (coverage_obj_init): Call the function and generate __gcov_exit
661 destructor.
662 * doc/gcov.texi: Document when __gcov_exit function is called.
663
664 2016-09-27 Marek Polacek <polacek@redhat.com>
665
666 PR bootstrap/77751
667 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
668 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
669 -Wno-error instead of -Wno-implicit-fallthrough.
670
671 2016-09-27 Martin Liska <mliska@suse.cz>
672
673 PR bootstrap/77749
674 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
675
676 2016-09-27 Jakub Jelinek <jakub@redhat.com>
677
678 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
679 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
680 comments. Remove break after return.
681 (ix86_fp_compare_code_to_integer, has_dispatch,
682 ix86_simd_clone_usable): Remove break after return.
683
684 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
685
686 PR rlt-optimization/77714
687 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
688 REG_EQUAL note.
689
690 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
691
692 PR ipa/77677
693 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
694 extract_range_from_unary_expr to convert value_range.
695 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
696 (extract_range_from_unary_expr): This.
697 * tree-vrp.h (extract_range_from_unary_expr): Declare.
698
699 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
700
701 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
702
703 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
704
705 * config/i386/i386.c (ix86_print_operand)
706 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
707 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
708 (epilogue_renumber): Likewise.
709
710 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
711
712 PR middle-end/77719
713 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
714 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
715
716 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
717
718 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
719 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
720 is_mm_seq_cst, is_mm_sync): Move to ...
721 * memmodel.h: This. New file.
722 * builtins.c: Include memmodel.h.
723 * optabs.c: Likewise.
724 * tsan.c: Likewise.
725 * config/aarch64/aarch64.c: Likewise.
726 * config/alpha/alpha.c: Likewise.
727 * config/arm/arm.c: Likewise.
728 * config/i386/i386.c: Likewise.
729 * config/ia64/ia64.c: Likewise.
730 * config/mips/mips.c: Likewise.
731 * config/rs6000/rs6000.c: Likewise.
732 * config/sparc/sparc.c: Likewise.
733 * genconditions.c: Include memmodel.h in generated file.
734 * genemit.c: Likewise.
735 * genoutput.c: Likewise.
736 * genpeep.c: Likewise.
737 * genpreds.c: Likewise.
738 * genrecog.c: Likewise.
739
740 2016-09-26 David Malcolm <dmalcolm@redhat.com>
741
742 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
743 "c" instead when parsing characters. Move operand parsing into...
744 (read_rtx_operand): ...this new function, renaming "i" to "idx",
745 and tightening the scope of various locals.
746
747 2016-09-26 Liu Hao <lh_mouse@126.com>
748
749 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
750
751 2016-09-26 Marek Polacek <polacek@redhat.com>
752
753 * system.h: Use __has_attribute to check whether the fallthrough
754 attribute is supported.
755
756 2016-09-26 Marek Polacek <polacek@redhat.com>
757
758 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
759 gimple_call_internal_p.
760 * ipa-split.c (find_return_bb): Likewise.
761 (execute_split_functions): Likewise.
762 * omp-low.c (dump_oacc_loop_part): Likewise.
763 (oacc_loop_xform_head_tail): Likewise.
764 * predict.c (predict_loops): Likewise.
765 * sanopt.c (pass_sanopt::execute): Likewise.
766 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
767 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
768 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
769 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
770 (expand_ifn_va_arg): Likewise.
771 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
772 (optimize_mask_stores): Likewise.
773 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
774 (vect_transform_stmt): Likewise.
775 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
776 * tsan.c (instrument_memory_accesses): Likewise.
777
778 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
779 Alexander Monakov <amonakov@ispras.ru>
780
781 * regrename.c (rename_chains): Check
782 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
783 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
784 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
785
786 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
787
788 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
789 (s390_sched_score): Likewise.
790
791 2016-09-26 Martin Liska <mliska@suse.cz>
792
793 * doc/gcov.texi: Update program output of gcov tool.
794
795 2016-09-26 Martin Liska <mliska@suse.cz>
796
797 PR gcov-profile/23332
798 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
799 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
800 * value-prof.c (dump_histogram_value): Do not handle
801 HIST_TYPE_CONST_DELTA.
802 (stream_in_histogram_value): Likewise.
803 (gimple_find_values_to_profile): Likewise.
804 * value-prof.h (enum hist_type): Likewise.
805
806 2016-09-26 Martin Liska <mliska@suse.cz>
807
808 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
809 from default sanitize recover values.
810 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
811 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
812 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
813 consistent.
814 * opts.c (finish_options): Do a generic loop over options
815 that can be recovered.
816 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
817 SANITIZE_RETURN.
818 (common_handle_option): Likewise.
819 * opts.h: Declare can_recover to sanitizer_opts_s.
820
821 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
822
823 * target.def(elf_flags_numeric): Change documentation to present tense.
824 * doc/tm.texi: Regenerate.
825
826 2016-09-26 Marek Polacek <polacek@redhat.com>
827
828 PR c/7652
829 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
830 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
831 -Wno-switch-fallthrough.
832 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
833 (expand_builtin): Likewise.
834 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
835 * convert.c (convert_to_real_1): Likewise.
836 (convert_to_integer_1): Likewise.
837 * final.c (output_alternate_entry_point): Likewise.
838 * genattrtab.c (make_canonical): Likewise.
839 (write_test_expr): Likewise.
840 * genpreds.c (validate_exp): Likewise.
841 * gimple-ssa-strength-reduction.c
842 (find_candidates_dom_walker::before_dom_children): Likewise.
843 * godump.c (go_format_type): Likewise.
844 * reload1.c (elimination_effects): Likewise.
845 * resource.c (mark_referenced_resources): Likewise.
846 (mark_set_resources): Likewise.
847 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
848 * varasm.c (output_addressed_constants): Likewise.
849
850 2016-09-26 Marek Polacek <polacek@redhat.com>
851
852 PR c/7652
853 * common.opt (Wimplicit-fallthrough): New option.
854 * doc/extend.texi: Document statement attributes and the fallthrough
855 attribute.
856 * doc/invoke.texi: Document -Wimplicit-fallthrough.
857 * gimple.h (gimple_call_internal_p): New function.
858 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
859 (struct label_entry): New struct.
860 (find_label_entry): New function.
861 (case_label_p): New function.
862 (collect_fallthrough_labels): New function.
863 (last_stmt_in_scope): New function.
864 (should_warn_for_implicit_fallthrough): New function.
865 (warn_implicit_fallthrough_r): New function.
866 (maybe_warn_implicit_fallthrough): New function.
867 (expand_FALLTHROUGH_r): New function.
868 (expand_FALLTHROUGH): New function.
869 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
870 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
871 (gimplify_label_expr): New function.
872 (gimplify_case_label_expr): Set location.
873 (gimplify_expr): Call gimplify_label_expr.
874 * internal-fn.c (expand_FALLTHROUGH): New function.
875 * internal-fn.def (FALLTHROUGH): New internal function.
876 * langhooks.c (lang_GNU_OBJC): New function.
877 * langhooks.h (lang_GNU_OBJC): Declare.
878 * system.h (gcc_fallthrough): Define.
879 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
880 * tree.h (FALLTHROUGH_LABEL_P): Define.
881
882 2016-09-26 Richard Biener <rguenther@suse.de>
883
884 * dwarf2out.c (stripattributes): Remove unused function.
885 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
886 Push dwarf_split_debug_info handling into init_sections_and_labels.
887 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
888 (DEBUG_MACRO_SECTION_FLAGS): Remove.
889 (debug_macinfo_section_name): New global.
890 (output_macinfo): Use debug_macinfo_section_name.
891 (init_sections_and_labels): Split out section and label generation
892 from dwarf2out_init. Set debug_macinfo_section_name.
893 (dwarf2out_init): Move text section label generation and emission
894 to ...
895 (dwarf2out_assembly_start): ... here.
896 (dwarf2out_finish): Call init_sections_and_labels before DWARF
897 output starts.
898
899 2016-09-26 Richard Biener <rguenther@suse.de>
900
901 PR debug/77692
902 * cgraphunit.c (analyze_functions): Before early removing
903 global vars calls the late_global_decl debug handler mark
904 the variable as readonly.
905
906 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
907
908 PR target/51244
909 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
910 (sh_rtx_costs): Handle SET of movt and movrt patterns.
911 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
912 declare new overloads.
913 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
914 operand.
915
916 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
917
918 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
919 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
920
921 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
922
923 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
924 * configure: Regenerate.
925
926 2016-09-24 Marek Polacek <polacek@redhat.com>
927
928 PR c/77490
929 * doc/invoke.texi: Document -Wbool-operation.
930
931 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
932
933 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
934 * config/rs6000/rs6000.c (expand_block_compare): New function used by
935 cmpmemsi pattern to do builtin expansion of memcmp ().
936 (compute_current_alignment): Add helper function for
937 expand_block_compare used to compute alignment as the compare proceeds.
938 (select_block_compare_mode): Used by expand_block_compare to select
939 the mode used for reading the next chunk of bytes in the compare.
940 (do_load_for_compare): Used by expand_block_compare to emit the load
941 insns for the compare.
942 (rs6000_emit_dot_insn): Moved this function to avoid a forward
943 reference from expand_block_compare ().
944 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
945 prototype for this function.
946 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
947 target option for controlling how much code inline expansion of
948 memcmp() will be allowed to generate.
949
950 2016-09-23 Jakub Jelinek <jakub@redhat.com>
951
952 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
953 hook_bool_mode_false, hook_bool_mode_true,
954 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
955 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
956 hook_bool_const_rtx_insn_const_rtx_insn_true,
957 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
958 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
959 hook_bool_const_tree_hwi_hwi_const_tree_false,
960 hook_bool_const_tree_hwi_hwi_const_tree_true,
961 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
962 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
963 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
964 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
965 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
966 hook_bool_const_tree_true, hook_bool_tree_tree_false,
967 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
968 hook_bool_rtx_insn_true, hook_bool_rtx_false,
969 hook_bool_uintp_uintp_false,
970 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
971 hook_rtx_tree_int_null, hook_uint_mode_0,
972 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
973 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
974 hook_constcharptr_const_rtx_insn_null,
975 hook_constcharptr_const_tree_const_tree_null,
976 hook_constcharptr_int_const_tree_null,
977 hook_constcharptr_int_const_tree_const_tree_null,
978 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
979 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
980 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
981
982 * vec.h (vNULL): Extend comment to say = vNULL initialization
983 isn't needed for static vars.
984
985 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
986 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
987 = vNULL initialization of file scope vec.
988 * passes.c (pass_tab, enabled_pass_uid_range_tab,
989 disabled_pass_uid_range_tab): Likewise.
990 * haifa-sched.c (sched_luids, h_i_d): Likewise.
991 * tree-chkp-opt.c (check_infos): Likewise.
992 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
993
994 * vec.h (vnull::operator vec): Add constexpr keyword for
995 C++11 and later.
996
997 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
998
999 PR tree-optimization/77654
1000 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
1001 to duplicate_ssa_name_ptr_info.
1002
1003 2016-09-23 David Malcolm <dmalcolm@redhat.com>
1004
1005 PR preprocessor/77672
1006 * input.c (selftest::test_lexer_string_locations_simple): Update
1007 test to expect location information of the terminator character
1008 at the location of the final closing quote.
1009 (selftest::test_lexer_string_locations_hex): Likewise.
1010 (selftest::test_lexer_string_locations_oct): Likewise.
1011 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
1012 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
1013 (selftest::test_lexer_string_locations_ucn4): Likewise.
1014 (selftest::test_lexer_string_locations_ucn8): Likewise.
1015 (selftest::test_lexer_string_locations_u8): Likewise.
1016 (selftest::test_lexer_string_locations_utf8_source): Likewise.
1017 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
1018 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
1019 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
1020 (selftest::test_lexer_string_locations_macro): Likewise.
1021 (selftest::test_lexer_string_locations_long_line): Likewise.
1022
1023 2016-09-23 Richard Biener <rguenther@suse.de>
1024
1025 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
1026 virtual definition to virtual use if the call devirtualizes
1027 to a const or pure function.
1028 (visit_use): Also visit calls we can devirtualize to a
1029 const or pure function.
1030
1031 2016-09-23 Richard Biener <rguenther@suse.de>
1032
1033 PR tree-optimization/77697
1034 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
1035 signal error if we have sth ternary or unhandled.
1036
1037 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1038
1039 * config/arm/arm_neon.h (vabd_f16): New.
1040 (vabdq_f16): New.
1041 (vabs_f16): New.
1042 (vabsq_f16): New.
1043 (vadd_f16): New.
1044 (vaddq_f16): New.
1045 (vcage_f16): New.
1046 (vcageq_f16): New.
1047 (vcagt_f16): New.
1048 (vcagtq_f16): New.
1049 (vcale_f16): New.
1050 (vcaleq_f16): New.
1051 (vcalt_f16): New.
1052 (vcaltq_f16): New.
1053 (vceq_f16): New.
1054 (vceqq_f16): New.
1055 (vceqz_f16): New.
1056 (vceqzq_f16): New.
1057 (vcge_f16): New.
1058 (vcgeq_f16): New.
1059 (vcgez_f16): New.
1060 (vcgezq_f16): New.
1061 (vcgt_f16): New.
1062 (vcgtq_f16): New.
1063 (vcgtz_f16): New.
1064 (vcgtzq_f16): New.
1065 (vcle_f16): New.
1066 (vcleq_f16): New.
1067 (vclez_f16): New.
1068 (vclezq_f16): New.
1069 (vclt_f16): New.
1070 (vcltq_f16): New.
1071 (vcltz_f16): New.
1072 (vcltzq_f16): New.
1073 (vcvt_f16_s16): New.
1074 (vcvt_f16_u16): New.
1075 (vcvt_s16_f16): New.
1076 (vcvt_u16_f16): New.
1077 (vcvtq_f16_s16): New.
1078 (vcvtq_f16_u16): New.
1079 (vcvtq_s16_f16): New.
1080 (vcvtq_u16_f16): New.
1081 (vcvta_s16_f16): New.
1082 (vcvta_u16_f16): New.
1083 (vcvtaq_s16_f16): New.
1084 (vcvtaq_u16_f16): New.
1085 (vcvtm_s16_f16): New.
1086 (vcvtm_u16_f16): New.
1087 (vcvtmq_s16_f16): New.
1088 (vcvtmq_u16_f16): New.
1089 (vcvtn_s16_f16): New.
1090 (vcvtn_u16_f16): New.
1091 (vcvtnq_s16_f16): New.
1092 (vcvtnq_u16_f16): New.
1093 (vcvtp_s16_f16): New.
1094 (vcvtp_u16_f16): New.
1095 (vcvtpq_s16_f16): New.
1096 (vcvtpq_u16_f16): New.
1097 (vcvt_n_f16_s16): New.
1098 (vcvt_n_f16_u16): New.
1099 (vcvtq_n_f16_s16): New.
1100 (vcvtq_n_f16_u16): New.
1101 (vcvt_n_s16_f16): New.
1102 (vcvt_n_u16_f16): New.
1103 (vcvtq_n_s16_f16): New.
1104 (vcvtq_n_u16_f16): New.
1105 (vfma_f16): New.
1106 (vfmaq_f16): New.
1107 (vfms_f16): New.
1108 (vfmsq_f16): New.
1109 (vmax_f16): New.
1110 (vmaxq_f16): New.
1111 (vmaxnm_f16): New.
1112 (vmaxnmq_f16): New.
1113 (vmin_f16): New.
1114 (vminq_f16): New.
1115 (vminnm_f16): New.
1116 (vminnmq_f16): New.
1117 (vmul_f16): New.
1118 (vmul_lane_f16): New.
1119 (vmul_n_f16): New.
1120 (vmulq_f16): New.
1121 (vmulq_lane_f16): New.
1122 (vmulq_n_f16): New.
1123 (vneg_f16): New.
1124 (vnegq_f16): New.
1125 (vpadd_f16): New.
1126 (vpmax_f16): New.
1127 (vpmin_f16): New.
1128 (vrecpe_f16): New.
1129 (vrecpeq_f16): New.
1130 (vrnd_f16): New.
1131 (vrndq_f16): New.
1132 (vrnda_f16): New.
1133 (vrndaq_f16): New.
1134 (vrndm_f16): New.
1135 (vrndmq_f16): New.
1136 (vrndn_f16): New.
1137 (vrndnq_f16): New.
1138 (vrndp_f16): New.
1139 (vrndpq_f16): New.
1140 (vrndx_f16): New.
1141 (vrndxq_f16): New.
1142 (vrsqrte_f16): New.
1143 (vrsqrteq_f16): New.
1144 (vrecps_f16): New.
1145 (vrecpsq_f16): New.
1146 (vrsqrts_f16): New.
1147 (vrsqrtsq_f16): New.
1148 (vsub_f16): New.
1149 (vsubq_f16): New.
1150
1151 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1152
1153 * config.gcc (extra_headers): Add arm_fp16.h
1154 * config/arm/arm_fp16.h: New.
1155 * config/arm/arm_neon.h: Include "arm_fp16.h".
1156
1157 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1158
1159 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
1160 variants).
1161 (vmulf): New (v8hf, v4hf variants).
1162 (vfma): New (v8hf, v4hf variants).
1163 (vfms): New (v8hf, v4hf variants).
1164 (vsub): New (v8hf, v4hf variants).
1165 (vcage): New (v8hf, v4hf variants).
1166 (vcagt): New (v8hf, v4hf variants).
1167 (vcale): New (v8hf, v4hf variants).
1168 (vcalt): New (v8hf, v4hf variants).
1169 (vceq): New (v8hf, v4hf variants).
1170 (vcgt): New (v8hf, v4hf variants).
1171 (vcge): New (v8hf, v4hf variants).
1172 (vcle): New (v8hf, v4hf variants).
1173 (vclt): New (v8hf, v4hf variants).
1174 (vceqz): New (v8hf, v4hf variants).
1175 (vcgez): New (v8hf, v4hf variants).
1176 (vcgtz): New (v8hf, v4hf variants).
1177 (vcltz): New (v8hf, v4hf variants).
1178 (vclez): New (v8hf, v4hf variants).
1179 (vabd): New (v8hf, v4hf variants).
1180 (vmaxf): New (v8hf, v4hf variants).
1181 (vmaxnm): New (v8hf, v4hf variants).
1182 (vminf): New (v8hf, v4hf variants).
1183 (vminnm): New (v8hf, v4hf variants).
1184 (vpmaxf): New (v4hf variant).
1185 (vpminf): New (v4hf variant).
1186 (vpadd): New (v4hf variant).
1187 (vrecps): New (v8hf, v4hf variants).
1188 (vrsqrts): New (v8hf, v4hf variants).
1189 (vabs): New (v8hf, v4hf variants).
1190 (vneg): New (v8hf, v4hf variants).
1191 (vrecpe): New (v8hf, v4hf variants).
1192 (vrnd): New (v8hf, v4hf variants).
1193 (vrnda): New (v8hf, v4hf variants).
1194 (vrndm): New (v8hf, v4hf variants).
1195 (vrndn): New (v8hf, v4hf variants).
1196 (vrndp): New (v8hf, v4hf variants).
1197 (vrndx): New (v8hf, v4hf variants).
1198 (vrsqrte): New (v8hf, v4hf variants).
1199 (vmul_lane): Add v4hf and v8hf variants.
1200 (vmul_n): Add v4hf and v8hf variants.
1201 (vext): New (v8hf, v4hf variants).
1202 (vcvts): New (v8hi, v4hi variants).
1203 (vcvts): New (v8hf, v4hf variants).
1204 (vcvtu): New (v8hi, v4hi variants).
1205 (vcvtu): New (v8hf, v4hf variants).
1206 (vcvts_n): New (v8hf, v4hf variants).
1207 (vcvtu_n): New (v8hi, v4hi variants).
1208 (vcvts_n): New (v8hi, v4hi variants).
1209 (vcvtu_n): New (v8hf, v4hf variants).
1210 (vbsl): New (v8hf, v4hf variants).
1211 (vcvtas): New (v8hf, v4hf variants).
1212 (vcvtau): New (v8hf, v4hf variants).
1213 (vcvtms): New (v8hf, v4hf variants).
1214 (vcvtmu): New (v8hf, v4hf variants).
1215 (vcvtns): New (v8hf, v4hf variants).
1216 (vcvtnu): New (v8hf, v4hf variants).
1217 (vcvtps): New (v8hf, v4hf variants).
1218 (vcvtpu): New (v8hf, v4hf variants).
1219
1220 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1221
1222 * config/arm/arm-builtins.c (hf_UP): New.
1223 (si_UP): New.
1224 (vfp_builtin_data): New. Update comment.
1225 (enum arm_builtins): Include "arm_vfp_builtins.def".
1226 (ARM_BUILTIN_VFP_PATTERN_START): New.
1227 (arm_init_vfp_builtins): New.
1228 (arm_init_builtins): Add arm_init_vfp_builtins.
1229 (arm_expand_vfp_builtin): New.
1230 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
1231 long line.
1232 * config/arm/arm_vfp_builtins.def: New file.
1233 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
1234 (arm-builtins.o): Likewise.
1235
1236 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
1237
1238 PR ipa/77677
1239 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
1240 from constant while creating value range.
1241
1242 2016-09-23 Renlin Li <renlin.li@arm.com>
1243
1244 * ira.c (ira): Move ira_use_lra_p initialization code to ...
1245 (ira_init_once): Here.
1246
1247 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
1248 Jakub Jelinek <jakub@redhat.com>
1249
1250 * hooks.h (hook_uint_uintp_false): Rename to...
1251 (hook_bool_uint_uintp_false): ... this.
1252 * hooks.c (hook_uint_uintp_false): Rename to...
1253 (hook_bool_uint_uintp_false): ... this.
1254 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
1255 instead of hook_uint_uintp_false.
1256
1257 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1258
1259 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
1260 (arm_init_builtins): Move body of a loop to the standalone
1261 function arm_init_neon_builtin.
1262 (arm_expand_neon_builtin_1): New. Update comment. Function body
1263 moved from arm_neon_builtin with some white-space fixes.
1264 (arm_expand_neon_builtin): Move code into the standalone function
1265 arm_expand_neon_builtin_1.
1266
1267 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1268
1269 * config/arm/iterators.md (VCVTHI): New.
1270 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
1271 (NEON_VAGLTE): New.
1272 (VFM_LANE_AS): New.
1273 (VH_CVTTO): New.
1274 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
1275 (V_HALF): Add V4HF. Fix white-space.
1276 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
1277 (V_s_elem): Likewise.
1278 (V_sz_elem): Fix white-space.
1279 (V_elem_ch): Likewise.
1280 (VH_elem_ch): New.
1281 (scalar_mul_constraint): Add V8HF and V4HF.
1282 (Is_float_mode): Fix white-space.
1283 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
1284 (q): Add HF. Fix white-space.
1285 (float_sup): New.
1286 (float_SUP): New.
1287 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
1288 (neon_vfm_lane_as): New.
1289 * config/arm/neon.md (add<mode>3_fp16): New.
1290 (sub<mode>3_fp16): New.
1291 (mul<mode>3add<mode>_neon): New.
1292 (fma<VH:mode>4_intrinsic): New.
1293 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
1294 (fmsub<VH:mode>4_intrinsic): New.
1295 (<absneg_str><mode>2): New.
1296 (neon_v<absneg_str><mode>): New.
1297 (neon_v<fp16_rnd_str><mode>): New.
1298 (neon_vrsqrte<mode>): New.
1299 (neon_vpaddv4hf): New.
1300 (neon_vadd<mode>): New.
1301 (neon_vsub<mode>): New.
1302 (neon_vmulf<mode>): New.
1303 (neon_vfma<VH:mode>): New.
1304 (neon_vfms<VH:mode>): New.
1305 (neon_vc<cmp_op><mode>): New.
1306 (neon_vc<cmp_op><mode>_fp16insn): New
1307 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
1308 (neon_vca<cmp_op><mode>): New.
1309 (neon_vca<cmp_op><mode>_fp16insn): New.
1310 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
1311 (neon_vc<cmp_op>z<mode>): New.
1312 (neon_vabd<mode>): New.
1313 (neon_v<maxmin>f<mode>): New.
1314 (neon_vp<maxmin>fv4hf: New.
1315 (neon_<fmaxmin_op><mode>): New.
1316 (neon_vrecps<mode>): New.
1317 (neon_vrsqrts<mode>): New.
1318 (neon_vrecpe<mode>): New (VH variant).
1319 (neon_vdup_lane<mode>_internal): New.
1320 (neon_vdup_lane<mode>): New.
1321 (neon_vcvt<sup><mode>): New (VCVTHI variant).
1322 (neon_vcvt<sup><mode>): New (VH variant).
1323 (neon_vcvt<sup>_n<mode>): New (VH variant).
1324 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
1325 (neon_vcvt<vcvth_op><sup><mode>): New.
1326 (neon_vmul_lane<mode>): New.
1327 (neon_vmul_n<mode>): New.
1328 * config/arm/unspecs.md (UNSPEC_VCALE): New
1329 (UNSPEC_VCALT): New.
1330 (UNSPEC_VFMA_LANE): New.
1331 (UNSPECS_VFMS_LANE): New.
1332
1333 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1334
1335 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
1336 ("*extzv<mode><clobbercc_or_nocc>"):
1337 Correct a typo in a comment.
1338 Merged patterns.
1339 ("*insv<mode>_zEC12", "*insv<mode>_z10")
1340 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
1341 ("*insv<mode>_zEC12_appendbitsleft")
1342 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
1343 ("*insv<mode>_z10_appendbitsleft"): Ditto.
1344 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
1345 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
1346 Provide pattern with operands switched.
1347 ("*pre_z10_extv<mode>"):
1348 Use new subst patterns.
1349 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
1350 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
1351 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
1352 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
1353 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
1354 ("*<risbg_n>_sidi_ior_and_lshiftrt")
1355 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
1356 New patterns.
1357 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
1358 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
1359 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
1360 on zEC12.
1361 ("SINT"): New mode_iterator with SI, HI, QI.
1362 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
1363 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
1364 duplication.
1365
1366 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1367
1368 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
1369 new interface of s390_contiguous_bitmask_p.
1370 ("contiguous_bitmask_nowrap_operand"): New predicate.
1371 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
1372 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
1373 of s390_contiguous_bitmask_p.
1374 ("NxxDw"): Rename NxxDq constraint to NxxDw.
1375 ("NxxSw"): New constraint.
1376 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
1377 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
1378 interface.
1379 (s390_contiguous_bitmask_nowrap_p): Export.
1380 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
1381 former s390_contiguous_bitmask_p.
1382 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
1383 detect contiguous bit ranges with wraparound. Change signature to
1384 return START and END position instead of POS and LENGTH.
1385 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
1386 ranges with wraparound.
1387 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
1388 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
1389 Adapt to new signature of s390_contiguous_bitmask_p.
1390
1391 2016-09-23 Bin Cheng <bin.cheng@arm.com>
1392
1393 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
1394 (create_intersect_range_checks): New.
1395 (vect_create_cond_for_alias_checks): Call above function.
1396
1397 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1398
1399 * config/arm/iterators.md (Code iterators): Fix some white-space
1400 in the comments.
1401 (GLTE): New.
1402 (ABSNEG): New
1403 (FCVT): Moved from vfp.md.
1404 (VCVT_HF_US_N): New.
1405 (VCVT_SI_US_N): New.
1406 (VCVT_HF_US): New.
1407 (VCVTH_US): New.
1408 (FP16_RND): New.
1409 (absneg_str): New.
1410 (FCVTI32typename): Moved from vfp.md.
1411 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
1412 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
1413 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
1414 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
1415 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
1416 (vcvth_op): New.
1417 (fp16_rnd_str): New.
1418 (fp16_rnd_insn): New.
1419 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
1420 (UNSPEC_VCVT_HF_U_N): New.
1421 (UNSPEC_VCVT_SI_S_N): New.
1422 (UNSPEC_VCVT_SI_U_N): New.
1423 (UNSPEC_VCVTH_S): New.
1424 (UNSPEC_VCVTH_U): New.
1425 (UNSPEC_VCVTA_S): New.
1426 (UNSPEC_VCVTA_U): New.
1427 (UNSPEC_VCVTM_S): New.
1428 (UNSPEC_VCVTM_U): New.
1429 (UNSPEC_VCVTN_S): New.
1430 (UNSPEC_VCVTN_U): New.
1431 (UNSPEC_VCVTP_S): New.
1432 (UNSPEC_VCVTP_U): New.
1433 (UNSPEC_VCVTP_S): New.
1434 (UNSPEC_VCVTP_U): New.
1435 (UNSPEC_VRND): New.
1436 (UNSPEC_VRNDA): New.
1437 (UNSPEC_VRNDI): New.
1438 (UNSPEC_VRNDM): New.
1439 (UNSPEC_VRNDN): New.
1440 (UNSPEC_VRNDP): New.
1441 (UNSPEC_VRNDX): New.
1442 * config/arm/vfp.md (<absneg_str>hf2): New.
1443 (neon_vabshf): New.
1444 (neon_v<fp16_rnd_str>hf): New.
1445 (neon_vrndihf): New.
1446 (addhf3): New.
1447 (subhf3): New.
1448 (divhf3): New.
1449 (mulhf3): New.
1450 (*mulsf3neghf_vfp): New.
1451 (*negmulhf3_vfp): New.
1452 (*mulsf3addhf_vfp): New.
1453 (*mulhf3subhf_vfp): New.
1454 (*mulhf3neghfaddhf_vfp): New.
1455 (*mulhf3neghfsubhf_vfp): New.
1456 (fmahf4): New.
1457 (neon_vfmahf): New.
1458 (fmsubhf4_fp16): New.
1459 (neon_vfmshf): New.
1460 (*fnmsubhf4): New.
1461 (*fnmaddhf4): New.
1462 (neon_vsqrthf): New.
1463 (neon_vrsqrtshf): New.
1464 (FCVT): Move to iterators.md.
1465 (FCVTI32typename): Likewise.
1466 (neon_vcvth<sup>hf): New.
1467 (neon_vcvth<sup>si): New.
1468 (neon_vcvth<sup>_nhf_unspec): New.
1469 (neon_vcvth<sup>_nhf): New.
1470 (neon_vcvth<sup>_nsi_unspec): New.
1471 (neon_vcvth<sup>_nsi): New.
1472 (neon_vcvt<vcvth_op>h<sup>si): New.
1473 (neon_<fmaxmin_op>hf): New.
1474
1475 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1476
1477 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
1478 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
1479 ("*insv<mode>_zEC12_appendbitsleft")
1480 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
1481 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
1482
1483 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1484
1485 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
1486 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
1487 construct values without normalization.
1488 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
1489 static local lhs_ops to vNULL.
1490
1491 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1492 Jiong Wang <jiong.wang@arm.com>
1493
1494 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
1495 available when FP16 instructions are available.
1496 (output_move_vfp): Add support for 16-bit data moves.
1497 (arm_validize_comparison): Fix some white-space. Support HFmode
1498 by conversion to SFmode.
1499 * config/arm/arm.md (truncdfhf2): Fix a comment.
1500 (extendhfdf2): Likewise.
1501 (cstorehf4): New.
1502 (movsicc): Fix some white-space.
1503 (movhfcc): New.
1504 (movsfcc): Fix some white-space.
1505 (*cmovhf): New.
1506 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
1507 instructions are available.
1508 (*thumb2_movhi_vfp): Likewise.
1509 (*arm_movhi_fp16): New.
1510 (*thumb2_movhi_fp16): New.
1511 (*movhf_vfp_fp16): New.
1512 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
1513 (*movhf_vfp): Likewise.
1514 (extendhfsf2): Enable when VFP FP16 instructions are available.
1515 (truncsfhf2): Enable when VFP FP16 instructions are available.
1516
1517 2016-09-23 Martin Liska <mliska@suse.cz>
1518
1519 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
1520
1521 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1522
1523 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
1524 V4HF modes.
1525 (arm_evpc_neon_vtrn): Likewise.
1526 (arm_evpc_neon_vrev): Likewise.
1527 (arm_evpc_neon_vext): Likewise.
1528 * config/arm/arm_neon.h (vbsl_f16): New.
1529 (vbslq_f16): New.
1530 (vdup_n_f16): New.
1531 (vdupq_n_f16): New.
1532 (vdup_lane_f16): New.
1533 (vdupq_lane_f16): New.
1534 (vext_f16): New.
1535 (vextq_f16): New.
1536 (vmov_n_f16): New.
1537 (vmovq_n_f16): New.
1538 (vrev64_f16): New.
1539 (vrev64q_f16): New.
1540 (vtrn_f16): New.
1541 (vtrnq_f16): New.
1542 (vuzp_f16): New.
1543 (vuzpq_f16): New.
1544 (vzip_f16): New.
1545 (vzipq_f16): New.
1546 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
1547 (vdup_lane): New (v8hf, v4hf variants).
1548 (vext): New (v8hf, v4hf variants).
1549 (vbsl): New (v8hf, v4hf variants).
1550 * config/arm/iterators.md (VDQWH): New.
1551 (VH): New.
1552 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
1553 (Scalar_mul_8_16): Fix white-space.
1554 (Is_d_reg): Add V4HF and V8HF.
1555 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
1556 (neon_vdup_lane<mode>): New.
1557 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
1558 (*neon_vtrn<mode>_insn): Likewise.
1559 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
1560 (*neon_vzip<mode>_insn): Likewise
1561 (neon_vuzp<mode>_internal): Likewise.
1562 (*neon_vuzp<mode>_insn): Likewise
1563 * config/arm/vec-common.md (vec_perm_const<mode>): New.
1564
1565 2016-09-23 Jiong Wang <jiong.wang@arm.com>
1566 Matthew Wahab <matthew.wahab@arm.com>
1567
1568 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
1569 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
1570 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
1571 available. Also fix some white-space.
1572 * config/arm/vfp.md (*arm_movhi_vfp): New.
1573 (*thumb2_movhi_vfp): New.
1574
1575 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1576
1577 * config/arm/arm-c.c (arm_cpu_builtins): Define
1578 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
1579 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
1580
1581 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1582
1583 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
1584 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
1585 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
1586 arm_v8_2a_fp16_neon_hw.
1587 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
1588 arm_v8_2a_neon.
1589
1590 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1591
1592 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
1593 arm_fp16_alternative_ok and arm_fp16_none_ok.
1594
1595 2016-09-23 Martin Liska <mliska@suse.cz>
1596
1597 * ipa-icf.c (sem_variable::merge): Replace adress with address.
1598
1599 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1600
1601 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
1602 ("armv8.2-a"): New.
1603 ("armv8.2-a+fp16"): New.
1604 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
1605 (FL2_FP16INST): New.
1606 (FL2_FOR_ARCH8_2A): New.
1607 * config/arm/arm-tables.opt: Regenerate.
1608 * config/arm/arm.c (arm_arch8_2): New.
1609 (arm_fp16_inst): New.
1610 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
1611 for incompatible fp16-format settings.
1612 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
1613 (TARGET_NEON_FP16INST): New.
1614 (arm_arch8_2): Declare.
1615 (arm_fp16_inst): Declare.
1616 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
1617 march=armv8.2-a and march=armv8.2-a+fp16.
1618 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
1619 and armv8.2-a+fp16.
1620 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
1621 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
1622
1623 2016-09-23 Martin Liska <mliska@suse.cz>
1624
1625 * doc/extend.texi: Remove fused-madd from i386 target options.
1626
1627 2016-09-23 Martin Liska <mliska@suse.cz>
1628
1629 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1630 Handle movbe.
1631
1632 2016-09-23 Martin Liska <mliska@suse.cz>
1633
1634 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1635 Handle crc32.
1636
1637 2016-09-23 Martin Liska <mliska@suse.cz>
1638
1639 PR target/71652
1640 * config/i386/i386.c (ix86_option_override_internal): Change
1641 signature and return false when there's an error related to
1642 arch string.
1643 (release_options_strings): New function.
1644 (ix86_valid_target_attribute_tree): Call the function.
1645
1646 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1647
1648 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
1649 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
1650 (gen_hsa_ctor_assignment): Likewise.
1651 * print-tree.c (print_node): Likewise.
1652 * tree-dump.c (dequeue_and_dump): Likewise.
1653 * tree-sra.c (sra_modify_constructor_assign): Likewise.
1654 * expr.c (store_constructor): Likewise.
1655 * fold-const.c (operand_equal_p): Likewise.
1656 * tree-pretty-print.c (dump_generic_node): Likewise.
1657 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
1658 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
1659
1660 2016-09-23 Richard Biener <rguenther@suse.de>
1661
1662 * hooks.h (hook_uint_uintp_false): Declare.
1663
1664 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1665
1666 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
1667 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
1668
1669 2016-09-22 Martin Sebor <msebor@redhat.com>
1670
1671 PR target/77676
1672 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
1673 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
1674 (target_int_min): Correct computation.
1675 (format_integer): Use long long as the argument for the ll length
1676 modifier.
1677 (format_floating): Use target_int_max().
1678 (get_string_length): Same.
1679 (format_string): Avoid setting the bounded flag for strings
1680 of unknown length.
1681 (try_substitute_return_value): Avoid setting range info when
1682 the result isn't bounded.
1683 * varasm.c (assemble_name): Increase buffer size.
1684
1685 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
1686 Terry Guo <terry.guo@arm.com>
1687
1688 * target.def (elf_flags_numeric): New target hook.
1689 * targhooks.h (default_asm_elf_flags_numeric): New.
1690 * varasm.c (default_asm_elf_flags_numeric): New.
1691 (default_elf_asm_named_section): Use new target hook.
1692 * config/arm/arm.opt (mpure-code): New.
1693 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
1694 * config/arm/arm.c (arm_asm_init_sections): Add section
1695 attribute to default text section if -mpure-code.
1696 (arm_option_check_internal): Diagnose use of option with
1697 non supported targets and/or options.
1698 (arm_asm_elf_flags_numeric): New.
1699 (arm_function_section): New.
1700 (arm_elf_section_type_flags): New.
1701 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
1702 for -mpure-code.
1703 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
1704 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
1705
1706 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
1707
1708 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
1709
1710 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1711
1712 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
1713 * rtl.h: Adjust prototype.
1714
1715 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1716
1717 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
1718 (prev_active_insn): Likewise.
1719 (active_insn_p): Likewise.
1720 * rtl.h: Adjust prototypes.
1721 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
1722 * config/arc/arc.md: Likewise.
1723 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
1724 (branch_needs_nop_p): Likewise.
1725 (use_skip_p): Likewise.
1726 * config/sh/sh.c (gen_block_redirect): Likewise.
1727 (split_branches): Likewise.
1728 * reorg.c (optimize_skip): Likewise.
1729 (fill_simple_delay_slots): Likewise.
1730 (fill_slots_from_thread): Likewise.
1731 (relax_delay_slots): Likewise.
1732 * resource.c (mark_target_live_regs): Likewise.
1733
1734 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1735
1736 * config/cris/cris.c (cris_asm_output_case_end): Change argument
1737 type to rtx_insn *.
1738 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
1739 (prev_nonnote_nondebug_insn): Likewise.
1740 * config/cris/cris-protos.h: Adjust prototype.
1741 * rtl.h: Likewise.
1742 * jump.c (rtx_renumbered_equal_p): Adjust.
1743
1744 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1745
1746 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
1747 * rtl.h: Adjust prototype.
1748 * config/sh/sh.md: Adjust.
1749 * dwarf2out.c (add_var_loc_to_decl): Likewise.
1750
1751 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1752
1753 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
1754 (prev_nondebug_insn): Likewise.
1755 * loop-doloop.c (doloop_condition_get): Likewise.
1756 * rtl.h: Adjust prototype.
1757 * cfgloop.h: Likewise.
1758
1759 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1760
1761 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
1762 (prev_nonnote_insn): Likewise.
1763 * jump.c (reversed_comparison_code_parts): Likewise.
1764 (reversed_comparison): Likewise.
1765 * rtl.h: Adjust prototypes.
1766 * config/arc/arc.md: Adjust.
1767 * cse.c (find_comparison_args): Likewise.
1768 * reorg.c (redundant_insn): Change return type to rtx_insn *.
1769 (fix_reg_dead_note): Change argument type to rtx_insn *.
1770 (delete_prior_computation): Likewise.
1771 (delete_computation): Likewise.
1772 (fill_slots_from_thread): Adjust.
1773 (relax_delay_slots): Likewise.
1774 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1775 (simplify_relational_operation_1): Likewise.
1776 (simplify_ternary_operation): Likewise.
1777
1778 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1779
1780 * config/arc/arc-protos.h (arc_label_align): Change type of
1781 variables from rtx to rtx_insn *.
1782 * config/arc/arc.c (arc_label_align): Likewise.
1783 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
1784 * config/bfin/bfin.c (workaround_speculation): Likewise.
1785 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
1786 (find_last_same_clock): Likewise.
1787 (reorg_split_calls): Likewise.
1788 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
1789 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
1790 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
1791 (same_cmp_following_p): Likewise.
1792 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
1793 (same_cmp_following_p): Likwise.
1794 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
1795 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
1796 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
1797 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
1798 (rl78_alloc_physical_registers_cmp): Likewise.
1799 (rl78_alloc_physical_registers_umul): Likewise.
1800 (rl78_calculate_death_notes): Likewise.
1801 * config/s390/s390-protos.h (s390_label_align): Likewise.
1802 * config/s390/s390.c (s390_label_align): Likewise.
1803 * config/sh/sh.c (barrier_align): Likewise.
1804 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
1805 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
1806 (emit_cbcond_nop): Likewise.
1807
1808 2016-09-22 Martin Liska <mliska@suse.cz>
1809
1810 PR ipa/77653
1811 * ipa-icf.c (sem_variable::merge): Yield merge operation if
1812 alias address matters, not necessarily address of original.
1813
1814 2016-09-22 Richard Biener <rguenther@suse.de>
1815
1816 PR middle-end/77697
1817 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
1818 fold fails.
1819
1820 2016-09-22 Richard Biener <rguenther@suse.de>
1821
1822 PR middle-end/77677
1823 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
1824 from constant folding results.
1825 (gimple_resimplify2): Likewise.
1826 (gimple_resimplify3): Likewise.
1827
1828 2016-09-22 Richard Biener <rguenther@suse.de>
1829
1830 PR middle-end/77678
1831 * expr.c (expand_expr_real_1): Guard array access against negative
1832 offset.
1833
1834 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1835
1836 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
1837 of MPFR_RNDN.
1838 (format_floating): Likewise.
1839
1840 2016-09-22 Jakub Jelinek <jakub@redhat.com>
1841
1842 PR fortran/77665
1843 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
1844 for all IFN_GOMP_SIMD_* internal fns, not just for
1845 IFN_GOMP_SIMD_ORDERED_*.
1846
1847 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1848
1849 PR target/77670
1850 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
1851 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
1852 instructions when you want to invert the test.
1853 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
1854 correct order for XXSEL.
1855 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
1856 for using XSCMP{EQ,GT,GE}DP.
1857
1858 2016-09-21 David Malcolm <dmalcolm@redhat.com>
1859
1860 * genconstants.c (main): Introduce noop_reader and convert call
1861 to read_md_files to a method call.
1862 * genenums.c (main): Likewise.
1863 * genmddeps.c (main): Likewise.
1864 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
1865 rtx_reader_ptr->get_top_level_filename ().
1866 (write_tm_preds_h): Likewise.
1867 (write_insn_preds_c): Likewise.
1868 * gensupport.c (class gen_reader): New subclass of rtx_reader.
1869 (rtx_handle_directive): Convert to...
1870 (gen_reader::handle_unknown_directive): ...this.
1871 (init_rtx_reader_args_cb): Convert return type from bool to
1872 rtx_reader *. Create a gen_reader instance, using it for the
1873 call to read_md_files. Return it if no errors occur.
1874 (init_rtx_reader_args): Convert return type from bool to
1875 rtx_reader *.
1876 * gensupport.h (init_rtx_reader_args_cb): Likewise.
1877 (init_rtx_reader_args_cb): Likewise.
1878 * read-md.c (struct file_name_list): Move to class rtx_reader.
1879 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
1880 (read_md_filename): Delete in favor of
1881 rtx_reader::m_read_md_filename.
1882 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
1883 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
1884 (base_dir): Delete in favor of rtx_reader::m_base_dir.
1885 (first_dir_md_include): Delete in favor of
1886 rtx_reader::m_first_dir_md_include.
1887 (last_dir_md_include_ptr): Delete in favor of
1888 rtx_reader::m_last_dir_md_include_ptr.
1889 (max_include_len): Delete.
1890 (rtx_reader_ptr): New.
1891 (fatal_with_file_and_line): Use get_filename and get_lineno
1892 accessors of rtx_reader_ptr.
1893 (require_char_ws): Likewise.
1894 (rtx_reader::read_char): New method, based on ::read_char.
1895 (rtx_reader::unread_char): New method, based on ::unread_char.
1896 (read_escape): Use get_filename and get_lineno accessors of
1897 rtx_reader_ptr.
1898 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
1899 (read_string): Use get_filename and get_lineno accessors of
1900 rtx_reader_ptr.
1901 (rtx_reader::rtx_reader): New ctor.
1902 (rtx_reader::~rtx_reader): New dtor.
1903 (handle_include): Convert from a function to...
1904 (rtx_reader::handle_include): ...this method, converting
1905 handle_directive from a callback to a virtual function.
1906 (handle_file): Likewise, converting to...
1907 (rtx_reader::handle_file): ...this method.
1908 (handle_toplevel_file): Likewise, converting to...
1909 (rtx_reader::handle_toplevel_file): ...this method.
1910 (rtx_reader::get_current_location): New method.
1911 (parse_include): Convert from a function to...
1912 (rtx_reader::add_include_path): ...this method, dropping redundant
1913 update to unused max_include_len.
1914 (read_md_files): Convert from a function to...
1915 (rtx_reader::read_md_files): ...this method, converting
1916 handle_directive from a callback to a virtual function.
1917 (noop_reader::handle_unknown_directive): New method.
1918 * read-md.h (directive_handler_t): Delete this typedef.
1919 (in_fname): Delete.
1920 (read_md_file): Delete.
1921 (read_md_lineno): Delete.
1922 (read_md_filename): Delete.
1923 (class rtx_reader): New class.
1924 (rtx_reader_ptr): New decl.
1925 (class noop_reader): New subclass of rtx_reader.
1926 (read_char): Reimplement in terms of rtx_reader::read_char.
1927 (unread_char): Reimplement in terms of rtx_reader::unread_char.
1928 (read_md_files): Delete.
1929 * read-rtl.c (read_rtx_code): Update for deletion of globals
1930 read_md_filename and read_md_lineno.
1931
1932 2016-09-21 Jason Merrill <jason@redhat.com>
1933
1934 * input.h (from_macro_definition_at): New.
1935
1936 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1937
1938 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
1939
1940 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
1941
1942 PR tree-optimization/77550
1943 * tree-vect-stmts.c (create_array_ref): Change parameters.
1944 (get_group_alias_ptr_type): New function.
1945 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
1946
1947 2016-09-21 Marek Polacek <polacek@redhat.com>
1948
1949 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
1950 Add falls through comment.
1951
1952 2016-09-21 Richard Biener <rguenther@suse.de>
1953
1954 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
1955 (replace_child): Likewise.
1956 (remove_child_TAG): Adjust.
1957 (move_marked_base_types): Likewise.
1958 (prune_unused_types_prune): Clear die_sib of removed children.
1959
1960 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
1961
1962 PR target/77326
1963 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
1964 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
1965
1966 2016-09-21 Richard Biener <rguenther@suse.de>
1967
1968 PR tree-optimization/77648
1969 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
1970 with complex RHS.
1971 (make_transitive_closure_constraints): Adjust comment.
1972 (make_any_offset_constraints): New function.
1973 (handle_rhs_call): Make sure to first expand a pointer to all
1974 subfields before transitively closing it.
1975 (handle_const_call): Likewise. Properly expand returned
1976 pointers as well.
1977 (handle_pure_call): Likewise.
1978
1979 2016-09-21 Richard Biener <rguenther@suse.de>
1980 Jakub Jelinek <jakub@redhat.com>
1981
1982 PR tree-optimization/77621
1983 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
1984 group at non-vectorizable stmts.
1985
1986 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
1987
1988 PR tree-optimization/72835
1989 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
1990 (make_new_ssa_for_all_defs): Likewise.
1991 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
1992
1993 2016-09-20 Martin Sebor <msebor@redhat.com>
1994
1995 PR middle-end/49905
1996 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
1997 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
1998 * config/linux.c (gnu_libc_printf_pointer_format): New function.
1999 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
2000 * config/sol2.c (solaris_printf_pointer_format): New function.
2001 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
2002 options.
2003 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
2004 * doc/tm.texi: Regenerate.
2005 * gimple-fold.h (get_range_strlen): New function.
2006 (get_maxval_strlen): Declare existing function.
2007 * gimple-fold.c (get_range_strlen): Add arguments and compute both
2008 maximum and minimum.
2009 (get_range_strlen): Define overload.
2010 (get_maxval_strlen): Adjust.
2011 * gimple-ssa-sprintf.c: New file and pass.
2012 * passes.def (pass_sprintf_length): Add new pass.
2013 * targhooks.h (default_printf_pointer_format): Declare new function.
2014 (gnu_libc_printf_pointer_format): Same.
2015 (solaris_libc_printf_pointer_format): Same.
2016 * targhooks.c (default_printf_pointer_format): Define new function.
2017 * tree-pass.h (make_pass_sprintf_length): Declare new function.
2018 * print-tree.c: Increase buffer size.
2019
2020 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2021
2022 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
2023
2024 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2025
2026 * common.opt: New option -fipa-vrp.
2027 * ipa-cp.c (ipa_get_vr_lat): New.
2028 (ipcp_vr_lattice::print): Likewise.
2029 (print_all_lattices): Call ipcp_vr_lattice::print.
2030 (ipcp_vr_lattice::meet_with): New.
2031 (ipcp_vr_lattice::meet_with_1): Likewise.
2032 (ipcp_vr_lattice::top_p): Likewise.
2033 (ipcp_vr_lattice::bottom_p): Likewsie.
2034 (ipcp_vr_lattice::set_to_bottom): Likewise.
2035 (set_all_contains_variable): Call VR set_to_bottom.
2036 (initialize_node_lattices): Init VR lattices.
2037 (propagate_vr_accross_jump_function): New.
2038 (propagate_constants_accross_call): Call
2039 propagate_vr_accross_jump_function.
2040 (ipcp_store_vr_results): New.
2041 (ipcp_driver): Handle VR.
2042 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
2043 (ipa_set_jf_unknown): Likewise.
2044 (ipa_compute_jump_functions_for_edge): Likewise.
2045 (ipa_node_params_t::duplicate): Likewise.
2046 (ipa_write_jump_function): Likewise.
2047 (ipa_read_jump_function): Likewise.
2048 (write_ipcp_transformation_info): Likewise.
2049 (read_ipcp_transformation_info): Likewise.
2050 (ipcp_update_vr): New.
2051 (ipcp_transform_function): Handle VR.
2052 * ipa-prop.h (struct ipa_vr): New.
2053 * cgraph.c: Include tree-vrp.h.
2054 * cgraphunit.c: Likewise.
2055 * ipa-utils.c: Likewise.
2056 * ipa.c: Likewise.
2057 * opts.c: Likewise.
2058 * toplev.c: Likewise.
2059 * ipa-devirt.c: Likewise.
2060 * ipa-inline-transform.c: Likewise.
2061 * ipa-inline.c: Likewise.
2062 * ipa-profile.c: Likewise.
2063
2064 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2065
2066 * doc/invoke.texi: Document -fdump-tree-evrp.
2067 * passes.def: Define new pass_early_vrp.
2068 * timevar.def: Define new TV_TREE_EARLY_VRP.
2069 * tree-pass.h (make_pass_early_vrp): New.
2070 * tree-ssa-propagate.c: Make replace_uses_in non static.
2071 * tree-ssa-propagate.h: Export replace_uses_in.
2072 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
2073 (extract_range_from_assert): Factor out
2074 extract_range_for_var_from_comparison_expr.
2075 (vrp_initialize_lattice): New.
2076 (vrp_initialize): Factor out vrp_initialize_lattice.
2077 (vrp_valueize): Fix it to reject complex value ranges.
2078 (vrp_free_lattice): New.
2079 (evrp_dom_walker::before_dom_children): Likewise.
2080 (evrp_dom_walker::after_dom_children): Likewise.
2081 (evrp_dom_walker::push_value_range): Likewise.
2082 (evrp_dom_walker::pop_value_range): Likewise.
2083 (execute_early_vrp): Likewise.
2084 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
2085 (make_pass_early_vrp): New.
2086
2087 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
2088
2089 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
2090 instead of exact_log2.
2091
2092 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
2093
2094 PR target/77621
2095 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
2096 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
2097 (ix86_add_stmt_cost): Penalize DFmode vector operations
2098 for !TARGET_VECTORIZE_DOUBLE.
2099
2100 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
2101
2102 * doc/invoke.texi (Warning Options): Simplify language.
2103 (Optimize Options): Complete sentence.
2104
2105 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
2106
2107 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
2108 early_finish hook.
2109
2110 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2111
2112 PR target/71395
2113 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
2114 inits on power8 and above, use the VMRGEW instruction instead of a
2115 permute.
2116
2117 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
2118 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
2119 initialization.
2120
2121 2016-09-20 Tamar Christina <tamar.christina@arm.com>
2122
2123 * config/aarch64/arm_neon.h
2124 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
2125 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
2126 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
2127
2128 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
2129
2130 * config/var/vax.h (ELIMINABLE_REGS): Define.
2131 (INITIAL_ELIMINATION_OFFSET): Define.
2132
2133 2016-09-20 Jakub Jelinek <jakub@redhat.com>
2134
2135 PR middle-end/77624
2136 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
2137 cast to void * if the cast is from some other pointer type.
2138
2139 2016-09-20 Richard Biener <rguenther@suse.de>
2140
2141 PR tree-optimization/77646
2142 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
2143 a VDEF.
2144
2145 2016-09-20 Tamar Christina <tamar.christina@arm.com>
2146
2147 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
2148 attributes to all inlined functions and make them extern.
2149
2150 2016-09-20 Richard Biener <rguenther@suse.de>
2151
2152 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
2153 hook.
2154 * debug.c (do_nothing_debug_hooks): Adjust.
2155 * dbxout.c (dbx_debug_hooks): Likewise.
2156 * sdbout.c (sdb_debug_hooks): Likewise.
2157 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
2158 (dwarf2out_finish): Move producer, filename and
2159 path annotation ...
2160 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
2161 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
2162
2163 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
2164
2165 PR c++/77434
2166 * doc/invoke.texi: Document -Wint-in-bool-context.
2167
2168 PR middle-end/77421
2169 * dwarf2out.c (output_loc_operands): Fix an assertion.
2170
2171 2016-09-19 Joseph Myers <joseph@codesourcery.com>
2172
2173 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
2174 (CR_DECIMAL_DIG): New macro.
2175
2176 2016-09-19 Joseph Myers <joseph@codesourcery.com>
2177
2178 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
2179 element.
2180
2181 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
2182
2183 PR rtl-optimization/77416
2184 * lra-remat.c (operand_to_remat): Process hard coded insn
2185 registers.
2186
2187 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2188
2189 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
2190 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
2191
2192 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
2193
2194 * target.def (lra_p): Wordsmithing.
2195 * doc/tm.texi: Regenerate.
2196
2197 2016-09-19 Jakub Jelinek <jakub@redhat.com>
2198 Jan Hubicka <jh@suse.cz>
2199
2200 PR target/77587
2201 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
2202 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
2203 Call ultimate_alias_target just once, not up to 4 times.
2204
2205 2016-09-19 Richard Biener <rguenther@suse.de>
2206
2207 * dwarf2out.c (early_dwarf_finished): New global.
2208 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
2209 is false.
2210 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
2211 if called from LTO exit early.
2212 (dwarf2out_late_global_decl): When being during the early
2213 debug phase do not add locations but only const value attributes.
2214 Adjust the way we generate early DIEs for LTO.
2215
2216 2016-09-19 Richard Biener <rguenther@suse.de>
2217
2218 PR middle-end/77605
2219 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
2220 proper niter to bound the loops.
2221
2222 2016-09-19 Richard Biener <rguenther@suse.de>
2223
2224 PR tree-optimization/77514
2225 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
2226 search for folded stmt.
2227
2228 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
2229
2230 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
2231 * tree-pass.h (make_pass_early_thread_jumps): Declare.
2232 * tree-ssa-threadbackward.c (fsm_find_thread_path,
2233 fsm_find_thread_path, profitable_jump_thread_path,
2234 fsm_find_control_statement_thread_paths,
2235 find_jump_threads_backwards): Add speed_p parameter.
2236 (pass_data_early_thread_jumps): New pass.
2237 (make_pass_early_thread_jumps): New function.
2238
2239 2016-09-17 Andreas Schwab <schwab@suse.de>
2240
2241 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
2242 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2243
2244 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
2245
2246 * recog.c (rest_of_handle_split_after_reload): Delete.
2247 (pass_split_after_reload::gate): New method.
2248 (pass_split_after_reload::execute): Call split_all_insns directly.
2249
2250 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
2251
2252 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
2253 parameters for functions taking long long arguments.
2254
2255 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2256
2257 PR target/77613
2258 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
2259 splat with truncate.
2260
2261 2016-09-16 Jason Merrill <jason@redhat.com>
2262
2263 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
2264 New.
2265 * hwint.c (exact_log2): Use pow2p_hwi.
2266 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
2267 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
2268 * builtins.c (get_object_alignment_2, get_object_alignment)
2269 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
2270 least_bit_hwi.
2271 * calls.c (compute_argument_addresses, store_one_arg): Use
2272 least_bit_hwi.
2273 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
2274 * combine.c (force_to_mode): Use least_bit_hwi.
2275 (contains_muldiv, find_split_point, combine_simplify_rtx)
2276 (simplify_if_then_else, simplify_set, force_to_mode)
2277 (if_then_else_cond, simplify_and_const_int_1)
2278 (simplify_compare_const): Use pow2p_hwi.
2279 * cse.c (fold_rtx): Use pow2p_hwi.
2280 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
2281 Use least_bit_hwi.
2282 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
2283 (init_expmed_one_conv): Use pow2p_hwi.
2284 * expr.c (is_aligning_offset): Use pow2p_hwi.
2285 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
2286 (fold_binary_loc): Use pow2p_hwi.
2287 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
2288 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
2289 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
2290 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
2291 Use least_bit_hwi.
2292 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
2293 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
2294 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
2295 * omp-low.c (oacc_loop_fixed_partitions)
2296 (oacc_loop_auto_partitions): Use least_bit_hwi.
2297 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
2298 * stor-layout.c (place_field): Use least_bit_hwi.
2299 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
2300 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
2301 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
2302 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
2303 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
2304 * tree-vect-data-refs.c (vect_analyze_group_access_1)
2305 (vect_grouped_store_supported, vect_grouped_load_supported)
2306 (vect_permute_load_chain, vect_shift_permute_load_chain)
2307 (vect_transform_grouped_load): Use pow2p_hwi.
2308 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
2309 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
2310 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
2311 least_bit_hwi.
2312 * tsan.c (instrument_expr): Use least_bit_hwi.
2313 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
2314
2315 2016-09-16 Andreas Schwab <schwab@suse.de>
2316
2317 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
2318 OFFSET, not offset.
2319 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2320
2321 2016-09-16 Jakub Jelinek <jakub@redhat.com>
2322
2323 PR target/77526
2324 * combine.c (rest_of_handle_combine): If any edges have been purged,
2325 free dominators if available.
2326
2327 2016-09-16 Jakub Jelinek <jakub@redhat.com>
2328 Eric Botcazou <ebotcazou@adacore.com>
2329
2330 PR middle-end/77594
2331 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
2332 through into expand_addsub_overflow after expand_neg_overflow.
2333
2334 2016-09-15 David Malcolm <dmalcolm@redhat.com>
2335
2336 * diagnostic-show-locus.c
2337 (selftest::test_fixit_insert_containing_newline): New function.
2338 (selftest::test_fixit_replace_containing_newline): New function.
2339 (selftest::diagnostic_show_locus_c_tests): Call the above.
2340
2341 2016-09-15 Bin Cheng <bin.cheng@arm.com>
2342
2343 PR tree-optimization/77503
2344 * tree-vect-loop.c (vectorizable_reduction): Record reduction
2345 code for CONST_COND_REDUCTION at analysis stage and use it at
2346 transform stage.
2347 * tree-vectorizer.h (struct _stmt_vec_info): New field.
2348 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
2349 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
2350 field.
2351
2352 2016-09-15 Richard Biener <rguenther@suse.de>
2353
2354 PR middle-end/77544
2355 * fold-const.c (split_tree): Do not split constant ~X.
2356
2357 2016-09-15 Jakub Jelinek <jakub@redhat.com>
2358
2359 PR rtl-optimization/77425
2360 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
2361 is NULL.
2362
2363 PR middle-end/77475
2364 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
2365 use %qs instead of %s where desirable, use argument instead of arg in
2366 the diagnostic wording, add list of supported strategies and
2367 spellcheck hint.
2368 (ix86_option_override_internal): Emit target("m...") instead of
2369 option("m...") in the diagnostic. Use %qs instead of %s in invalid
2370 -march/-mtune option diagnostic. Add list of supported arches/tunings
2371 and spellcheck hint. Remove prefix, suffix and sw variables, use
2372 main_args_p ? "..." : "..." in diagnostics to make translation
2373 possible.
2374
2375 2016-09-15 Richard Biener <rguenther@suse.de>
2376
2377 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
2378 extra offset argument.
2379 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
2380 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
2381 to reflect new offset parameter.
2382 * doc/tm.texi: Regenerate.
2383 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
2384 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
2385 offset argument.
2386 (darwin_asm_output_dwarf_offset): Likewise.
2387 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
2388 argument.
2389 (darwin_asm_output_dwarf_offset): Pass offset argument through.
2390 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
2391 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2392
2393 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
2394
2395 PR fortran/72743
2396 * ipa-icf.c (set_alias_uids): New function.
2397 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
2398 all the merged variable's referring aliases.
2399
2400 2016-09-15 Richard Biener <rguenther@suse.de>
2401
2402 PR tree-optimization/77514
2403 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
2404 only forced_stmts sequence.
2405
2406 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
2407
2408 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
2409 * cfgexpand.c (update_alias_info_with_stack_vars): Use
2410 FOR_EACH_SSA_NAME to iterate over SSA variables.
2411 (pass_expand::execute): Likewise.
2412 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
2413 * tree-cfg.c (dump_function_to_file): Likewise.
2414 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
2415 (update_ssa): Likewise.
2416 * tree-ssa-alias.c (dump_alias_info): Likewise.
2417 * tree-ssa-ccp.c (ccp_finalize): Likewise.
2418 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
2419 (create_outofssa_var_map): Likewise.
2420 (coalesce_ssa_name): Likewise.
2421 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
2422 * tree-ssa-pre.c (compute_avail): Likewise.
2423 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
2424 (scc_vn_restore_ssa_info): Likewise.
2425 (free_scc_vn): Likwise.
2426 (run_scc_vn): Likewise.
2427 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
2428 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
2429 * tree-ssa-copy.c (fini_copy_prop): Likewise.
2430 * tree-ssa.c (verify_ssa): Likewise.
2431
2432 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
2433
2434 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
2435 and mips64r2 as default 32-bit and 64-bit architectures.
2436 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
2437 as default 32-bit and 64-bit architectures.
2438
2439 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
2440
2441 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
2442 of succ edge.
2443
2444 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2445
2446 * target.def (lra_p): Change commentary (for the manual) for the
2447 new default.
2448 * doc/tm.texi: Regenerate.
2449
2450 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2451
2452 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
2453 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
2454 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
2455 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
2456
2457 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2458
2459 * targhooks.c (default_lra_p): Return true instead of false.
2460
2461 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2462
2463 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
2464 hook_bool_void_false.
2465 * config/avr/avr.c: Ditto.
2466 * config/bfin/bfin.c: Ditto.
2467 * config/c6x/c6x.c: Ditto.
2468 * config/cr16/cr16.c: Ditto.
2469 * config/cris/cris.c: Ditto.
2470 * config/epiphany/epiphany.c: Ditto.
2471 * config/fr30/fr30.c: Ditto.
2472 * config/frv/frv.c: Ditto.
2473 * config/h8300/h8300.c: Ditto.
2474 * config/ia64/ia64.c: Ditto.
2475 * config/iq2000/iq2000.c: Ditto.
2476 * config/lm32/lm32.c: Ditto.
2477 * config/m32c/m32c.c: Ditto.
2478 * config/m32r/m32r.c: Ditto.
2479 * config/m68k/m68k.c: Ditto.
2480 * config/mcore/mcore.c: Ditto.
2481 * config/microblaze/microblaze.c: Ditto.
2482 * config/mmix/mmix.c: Ditto.
2483 * config/mn10300/mn10300.c: Ditto.
2484 * config/moxie/moxie.c: Ditto.
2485 * config/msp430/msp430.c: Ditto.
2486 * config/nios2/nios2.c: Ditto.
2487 * config/nvptx/nvptx.c: Ditto.
2488 * config/pa/pa.c: Ditto.
2489 * config/pdp11/pdp11.c: Ditto.
2490 * config/rl78/rl78.c: Ditto.
2491 * config/sparc/sparc.c: Ditto.
2492 * config/spu/spu.c: Ditto.
2493 * config/stormy16/stormy16.c: Ditto.
2494 * config/tilegx/tilegx.c: Ditto.
2495 * config/tilepro/tilepro.c: Ditto.
2496 * config/v850/v850.c: Ditto.
2497 * config/vax/vax.c: Ditto.
2498 * config/visium/visium.c: Ditto.
2499 * config/xtensa/xtensa.c: Ditto.
2500
2501 2016-09-14 Jakub Jelinek <jakub@redhat.com>
2502
2503 PR sanitizer/68260
2504 * tsan.c: Include target.h.
2505 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
2506 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
2507 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
2508 BUILT_IN_ATOMIC_TEST_AND_SET entries.
2509 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
2510
2511 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
2512 Martin Liska <mliska@suse.cz>
2513
2514 PR middle-end/77574
2515 * predict.c (force_edge_cold): Add braces to a condition.
2516
2517 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
2518
2519 PR rtl-optimization/77289
2520 * lra-constraints.c (get_final_hard_regno): Removed.
2521 (get_hard_regno): Add new parameter final_p.
2522 (get_reg_class): Directly call lra_get_elimination_hard_regno.
2523 (operands_match_p): Adjust call to get_hard_regno.
2524 (uses_hard_regs_p): Likewise.
2525 (process_alt_operands): Likewise.
2526
2527 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
2528
2529 PR target/70713
2530 * config/msp430/msp430.c (msp430_start_function): Emit an error
2531 if a function is both weak and specifies an interrupt number.
2532
2533 2016-09-13 Jakub Jelinek <jakub@redhat.com>
2534
2535 PR tree-optimization/77454
2536 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
2537 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
2538 Formatting fix.
2539
2540 2016-09-13 Tamar Christina <tamar.christina@arm.com>
2541
2542 * config/aarch64/aarch64-builtins.c
2543 (aarch64_init_simd_builtins): Fix builtin type signature printing.
2544
2545 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
2546
2547 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
2548 SFmode and SCmode arguments by reference.
2549
2550 2016-09-13 David Malcolm <dmalcolm@redhat.com>
2551
2552 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
2553 Rename to...
2554 (selftest::test_one_liner_fixit_insert_before): ...this, and update
2555 for renaming of add_fixit_insert to add_fixit_insert_before.
2556 (selftest::test_one_liner_fixit_insert_after): New function.
2557 (selftest::test_one_liner_fixit_validation_adhoc_locations):
2558 Update for renaming of add_fixit_insert to add_fixit_insert_before.
2559 (selftest::test_one_liner_many_fixits): Likewise.
2560 (selftest::test_diagnostic_show_locus_one_liner): Update for
2561 renaming, call new test function.
2562 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
2563 renaming of add_fixit_insert to add_fixit_insert_before.
2564 (selftest::test_fixit_consolidation): Likewise.
2565 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
2566 Likewise.
2567 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
2568 (selftest::test_applying_fixits_insert_before): ...this.
2569 (selftest::test_applying_fixits_insert): Update for renaming of
2570 add_fixit_insert to add_fixit_insert_before.
2571 (selftest::test_applying_fixits_insert_after): New function.
2572 (selftest::test_applying_fixits_insert_after_at_line_end): New
2573 function.
2574 (selftest::test_applying_fixits_insert_after_failure): New function.
2575 (selftest::test_applying_fixits_multiple): Update for renaming of
2576 add_fixit_insert to add_fixit_insert_before.
2577 (selftest::change_line): Likewise.
2578 (selftest::test_applying_fixits_unreadable_file): Likewise.
2579 (selftest::test_applying_fixits_line_out_of_range): Likewise.
2580 (selftest::test_applying_fixits_column_validation): Likewise.
2581 (selftest::test_applying_fixits_column_validation): Likewise.
2582 (selftest::edit_context_c_tests): Update for renamed test function;
2583 call new test functions.
2584
2585 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
2586
2587 PR tree-optimization/77536
2588 PR rtl-optimization/68212
2589 * config/rs6000/rs6000.md (div->recip splitter): Remove
2590 optimize_insn_for_speed_p condition.
2591
2592 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
2593
2594 * optabs.c (prepare_cmp_insn): Update documentation comment.
2595
2596 2016-09-13 Jakub Jelinek <jakub@redhat.com>
2597 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2598
2599 PR middle-end/77475
2600 * opts.h (candidates_list_and_hint): Declare.
2601 * opts-common.c (candidates_list_and_hint): New function.
2602 (cmdline_handle_error): Use it.
2603
2604 2016-09-12 David Malcolm <dmalcolm@redhat.com>
2605
2606 * edit-context.c (edited_line::get_len): New accessor.
2607 (edited_file::print_diff): Split out hunk-printing into...
2608 (edited_file::print_diff_hunk): New method.
2609 (edited_file::print_diff_line): New method.
2610
2611 2016-09-12 Andrew Pinski <apinski@cavium.com>
2612
2613 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
2614 New tuning option.
2615 * config/aarch64/aarch64.c (thunderx_tunings): Enable
2616 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
2617 (aarch64_operands_ok_for_ldpstp): Return false if
2618 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
2619 was SImode and the alignment is less than 8 byte.
2620 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2621
2622 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
2623
2624 PR target/77570
2625 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
2626
2627 2016-09-12 Marek Polacek <polacek@redhat.com>
2628
2629 * doc/extend.texi: Use lowercase "boolean".
2630 * doc/invoke.texi: Likewise.
2631 * doc/md.texi: Likewise.
2632 * target.def: Likewise.
2633 * doc/tm.texi: Regenerated.
2634
2635 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2636
2637 PR middle-end/77426
2638 * expmed.c (synth_mult): Delete duplicate mode check.
2639
2640 2016-09-10 Tom de Vries <tom@codesourcery.com>
2641
2642 PR C/71602
2643 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
2644 va_list type only.
2645 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
2646 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
2647
2648 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
2649
2650 PR rtl-optimization/77289
2651 * lra-constraints.c (get_final_hard_regno): Add support for non hard
2652 register numbers. Remove support for subregs.
2653 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
2654 (get_reg_class): Delete removed get_final_hard_regno() argument.
2655 (uses_hard_regs_p): Call get_final_hard_regno().
2656
2657 2016-09-09 Martin Sebor <msebor@redhat.com>
2658
2659 PR c/77520
2660 PR c/77521
2661 * pretty-print.c (pp_quoted_string): New function.
2662 (pp_format): Call it for %c and %s directives.
2663
2664 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
2665
2666 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
2667 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
2668 INITIAL_ELIMINATION_OFFSET) : Update documentation.
2669 * target.def (frame_pointer_required, can_eliminate): Likewise.
2670 * doc/tm.texi: Regenerated.
2671 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
2672 ELIMINABLE_REGS.
2673 * df-scan.c (df_hard_reg_init): Likewise.
2674 * ira.c (ira_setup_eliminable_regset): Likewise.
2675 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
2676 init_elim_table): Likewise.
2677 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
2678 set_initial_elim_offsets, update_eliminables,
2679 init_elim_table): Likewise.
2680 * rtlanal.c (get_initial_register_offset): Likewise.
2681 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
2682 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2683 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2684 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2685 * config/fr30/fr30.h: Fix comment.
2686 * config/frv/frv.c: Likewise.
2687 * config/frv/frv.h: Likewise.
2688 * config/ft32/ft32.h: Likewise.
2689 * config/visium/visium.h: Likewise.
2690 * config/pa/pa64-linux.h: Likewise.
2691 * config/v850/v850.h: Likewise.
2692 * config/cris/cris.c: Likewise.
2693 * config/ia64/ia64.h: Likewise.
2694 * config/moxie/moxie.h: Likewise.
2695 * config/m32r/m32r.h: Likewise.
2696
2697 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
2698
2699 PR target/77267
2700 * config.in: Regenerate.
2701 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
2702 New macro.
2703 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
2704 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
2705 static-libmpxwrappers case.
2706 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
2707 MPX_LD_AS_NEEDED_GUARD_POP.
2708 * configure: Regenerate.
2709 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
2710 defined if linker support "--push-state"/"--pop-state".
2711
2712 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
2713
2714 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
2715
2716 2016-09-09 Joseph Myers <joseph@codesourcery.com>
2717
2718 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
2719 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
2720 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
2721 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
2722 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
2723 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
2724 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
2725 Document.
2726 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
2727 width macros from TS 18661-1.
2728 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
2729
2730 2016-09-08 Jakub Jelinek <jakub@redhat.com>
2731
2732 PR fortran/77516
2733 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
2734 OMP_CLAUSE_SAFELEN_EXPR.
2735
2736 2016-09-07 David Malcolm <dmalcolm@redhat.com>
2737
2738 * Makefile.in (OBJS): Add substring-locations.o.
2739 * langhooks-def.h (class substring_loc): New forward decl.
2740 (lhd_get_substring_location): New decl.
2741 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
2742 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
2743 * langhooks.c (lhd_get_substring_location): New function.
2744 * langhooks.h (class substring_loc): New forward decl.
2745 (struct lang_hooks): Add field get_substring_location.
2746 * substring-locations.c: New file, taking definition of
2747 format_warning_va and format_warning_at_substring from
2748 c-family/c-format.c, making them non-static.
2749 * substring-locations.h (class substring_loc): Move class here
2750 from c-family/c-common.h. Add and rewrite comments.
2751 (format_warning_va): New decl.
2752 (format_warning_at_substring): New decl.
2753 (get_source_location_for_substring): Add comment.
2754
2755 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
2756
2757 * config/i386/i386.c: Add 'U' suffix to processor feature bits
2758 to avoid -Wnarrowing warning.
2759 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
2760 * opts.c: Likewise for SANITIZER_OPT bitmasks.
2761
2762 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
2763
2764 * config/aarch64/aarch64.c (aarch64_legitimize_address):
2765 Avoid use of base_offset if offset already in range.
2766
2767 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
2768
2769 * config/sh/sh-protos.h (struct sh_atomic_model,
2770 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
2771 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
2772 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
2773 * config/sh/sh.h (struct sh_atomic_model,
2774 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
2775 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
2776 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
2777 Guard with __cplusplus.
2778
2779 2016-09-06 Jakub Jelinek <jakub@redhat.com>
2780
2781 PR target/69255
2782 * config/i386/i386.c (ix86_expand_builtin): For builtin with
2783 unsupported or unknown ISA, use expand_call.
2784
2785 2016-09-06 Martin Liska <mliska@suse.cz>
2786
2787 PR gcov-profile/77378
2788 PR gcov-profile/77466
2789 * tree-profile.c (tree_profiling): Detect whether target can use
2790 -fprofile-update=atomic.
2791
2792 2016-09-06 Richard Biener <rguenther@suse.de>
2793
2794 PR tree-optimization/77479
2795 * tree-vrp.c (update_value_range): Extend overflow handling to
2796 VARYING.
2797
2798 2016-09-05 Jakub Jelinek <jakub@redhat.com>
2799
2800 PR target/77476
2801 * config/i386/i386.md (isa): Add x64_avx512bw.
2802 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
2803 (kmov_isa): New mode attr.
2804 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
2805 (*zero_extend<mode>si2): Likewise.
2806 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
2807
2808 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
2809
2810 * doc/invoke.texi (SPU Options): nops -> NOPs.
2811 (x86 Options): Ditto.
2812
2813 2016-09-05 Jakub Jelinek <jakub@redhat.com>
2814
2815 PR middle-end/77475
2816 * toplev.c (process_options): Temporarily set input_location
2817 to UNKNOWN_LOCATION around targetm.target_option.override () call.
2818
2819 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
2820
2821 PR rtl-optimization/77452
2822 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
2823 inner-mode reference to a CONST_VECTOR constant in the constant pool.
2824
2825 2016-09-05 Marek Polacek <polacek@redhat.com>
2826
2827 PR c/77423
2828 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
2829
2830 2016-09-05 Jakub Jelinek <jakub@redhat.com>
2831
2832 PR other/77421
2833 * gensupport.c (alter_output_for_subst_insn): Remove redundant
2834 *insn_out == '*' test. Don't copy unnecessary to yet another
2835 memory buffer, and don't leak it.
2836
2837 PR rtl-optimization/77425
2838 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
2839
2840 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
2841
2842 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
2843
2844 2016-09-02 David Malcolm <dmalcolm@redhat.com>
2845
2846 * common.opt (fdiagnostics-generate-patch): New option.
2847 * diagnostic.c: Include "edit-context.h".
2848 (diagnostic_initialize): Initialize context->edit_context_ptr.
2849 (diagnostic_finish): Delete context->edit_context_ptr.
2850 (diagnostic_report_diagnostic): Add fix-it hints from the
2851 diagnostic to context->edit_context_ptr, if any.
2852 * diagnostic.h (class edit_context): Add forward decl.
2853 (struct diagnostic_context): Add field "edit_context_ptr".
2854 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
2855 -fdiagnostics-generate-patch.
2856 (-fdiagnostics-generate-patch): New item.
2857 * toplev.c: Include "edit-context.h".
2858 (process_options): Set global_dc->edit_context_ptr to a new
2859 edit_context if the options need one.
2860 (toplev::main): Handle -fdiagnostics-generate-patch by using
2861 global_dc->edit_context_ptr.
2862
2863 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2864
2865 PR c/65467
2866 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
2867 map and firstprivate clauses on target construct for _Atomic
2868 qualified decls.
2869 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
2870 on target construct for _Atomic qualified decls.
2871 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
2872 decls.
2873 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
2874 _Atomic qualified arguments not mentioned in uniform clause.
2875
2876 2016-09-02 David Malcolm <dmalcolm@redhat.com>
2877
2878 * Makefile.in (OBJS-libcommon): Add edit-context.o.
2879 * diagnostic-color.c (color_dict): Add "diff-filename",
2880 "diff-hunk", "diff-delete", and "diff-insert".
2881 (parse_gcc_colors): Update default value of GCC_COLORS in comment
2882 to reflect above changes.
2883 * doc/invoke.texi (-fdiagnostics-color): Update description of
2884 default GCC_COLORS, and of the supported capabilities.
2885 * edit-context.c: New file.
2886 * edit-context.h: New file.
2887 * input.c (struct fcache): Add field "missing_trailing_newline".
2888 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
2889 true.
2890 (add_file_to_cache_tab): Likewise.
2891 (fcache::fcache): Likewise.
2892 (get_next_line): Update c->missing_trailing_newline.
2893 (location_missing_trailing_newline): New function.
2894 * input.h (location_missing_trailing_newline): New decl.
2895 * selftest-run-tests.c (selftest::run_tests): Call
2896 edit_context_c_tests.
2897 * selftest.h (edit_context_c_tests): New decl.
2898
2899 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2900 Richard Biener <rguenth@suse.de>
2901
2902 PR tree-optimization/77444
2903 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
2904 as steptype, remove redundant initialization.
2905
2906 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2907
2908 PR sanitizer/77396
2909 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
2910 (sanopt_optimize_walker): Optimize away
2911 __asan_before_dynamic_init (...) followed by
2912 __asan_after_dynamic_init () without intervening memory loads/stores.
2913 * ipa-pure-const.c (special_builtin_state): Handle
2914 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
2915 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
2916
2917 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2918
2919 * cfg.c (free_original_copy_tables): Replace second assignment of
2920 bb_copy = NULL by bb_original = NULL.
2921
2922 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2923
2924 PR other/77421
2925 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
2926 assignment added in r216794.
2927
2928 2016-09-02 David Malcolm <dmalcolm@redhat.com>
2929
2930 * Makefile.in (OBJS): Add typed-splay-tree.o.
2931 * selftest-run-tests.c (selftest::run_tests): Call
2932 typed_splay_tree_c_tests.
2933 * selftest.h (typed_splay_tree_c_tests): New decl.
2934 * typed-splay-tree.c: New file.
2935 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
2936 (typed_splay_tree::max): New method.
2937 (typed_splay_tree::min): New method.
2938 (typed_splay_tree::foreach): New method.
2939 (typed_splay_tree::closure): New struct.
2940 (typed_splay_tree::inner_foreach_fn): New function.
2941
2942 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2943
2944 * ipa-cp.c (ipcp_store_bits_results): Change option name from
2945 -fipa-cp-bit to -fipa-bit-cp.
2946
2947 2016-09-01 Martin Sebor <msebor@redhat.com>
2948
2949 PR tree-optimization/71831
2950 * tree-object-size.h: Return bool instead of the size and add
2951 argument for the size.
2952 * tree-object-size.c (compute_object_offset): Update signature.
2953 (addr_object_size): Same.
2954 (compute_builtin_object_size): Return bool instead of the size
2955 and add argument for the size. Handle POINTER_PLUS_EXPR when
2956 optimization is disabled.
2957 (expr_object_size): Adjust.
2958 (plus_stmt_object_size): Adjust.
2959 (pass_object_sizes::execute): Adjust.
2960 * builtins.c (fold_builtin_object_size): Adjust.
2961 * doc/extend.texi (Object Size Checking): Update.
2962 * ubsan.c (instrument_object_size): Adjust.
2963
2964 2016-09-01 Martin Sebor <msebor@redhat.com>
2965
2966 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
2967 it fits the output of the formatted function regardless of its
2968 arguments.
2969 * gcc/genmodes.c (parser::parse_expr): Same.
2970 * gimplify.c (gimplify_asm_expr): Same.
2971 * passes.c (pass_manager::register_one_dump_file): Same.
2972 * print-tree.c (print_node): Same.
2973
2974 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2975
2976 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
2977
2978 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2979
2980 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
2981
2982 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2983
2984 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
2985 * config/rs6000/vector.md: Ditto.
2986 * config/rs6000/vsx.md: Ditto.
2987
2988 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
2989
2990 * ipa-inline-analysis.c (param_change_prob): Get to the base object
2991 first in all cases.
2992
2993 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
2994
2995 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
2996 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
2997 *return_and_restore_gpregs_<mode>_r11,
2998 *return_and_restore_gpregs_<mode>_r12,
2999 *return_and_restore_gpregs_<mode>_r1,
3000 *return_and_restore_fpregs_<mode>_r11,
3001 *return_and_restore_fpregs_<mode>_r12,
3002 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
3003 directly instead of via the "l" constraint. Renumber operands.
3004 Fix whitespace.
3005
3006 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3007
3008 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
3009 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
3010 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
3011 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
3012 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
3013 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
3014 *call_value_nonlocal_darwin64, reload_macho_picbase,
3015 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
3016 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
3017 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
3018 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
3019 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
3020 *save_fpregs_<mode>_r1): Ditto.
3021 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
3022 *return_and_restore_gpregs_spe): Ditto.
3023
3024 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3025
3026 * config/rs6000/rs6000.md
3027 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
3028 the use of the link register.
3029 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
3030
3031 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3032 Michael Meissner <meissner@linux.vnet.ibm.com>
3033
3034 PR target/72827
3035 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
3036 reg+reg addressing for TImode.
3037 (rs6000_legitimate_address_p): Only allow register indirect
3038 addressing for TImode, even without TARGET_QUAD_MEMORY.
3039
3040 2016-09-01 Richard Biener <rguenther@suse.de>
3041
3042 PR middle-end/77436
3043 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
3044 check whether the result fits the desired result type.
3045
3046 2016-09-01 Nathan Sidwell <nathan@acm.org>
3047
3048 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
3049
3050 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
3051
3052 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
3053 New function.
3054 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
3055
3056 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3057
3058 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
3059 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
3060 for comparisons of integer ZERO_EXTEND against zero.
3061
3062 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3063
3064 * config/i386/i386.c (ix86_option_override_internal): Also disable the
3065 STV pass if -mstackrealign is enabled.
3066
3067 2016-08-31 Ilya Verbin <iverbin@gmail.com>
3068
3069 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
3070 AVX512IFMA.
3071
3072 2016-08-31 David Malcolm <dmalcolm@redhat.com>
3073
3074 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
3075 (layout_range::intersects_line_p): New method.
3076 (test_range_contains_point_for_single_point): Rename to...
3077 (test_layout_range_for_single_point): ...this, and add testing
3078 for layout_range::intersects_line_p.
3079 (test_range_contains_point_for_single_line): Rename to...
3080 (test_layout_range_for_single_line): ...this, and add testing
3081 for layout_range::intersects_line_p.
3082 (test_range_contains_point_for_multiple_lines): Rename to...
3083 (test_layout_range_for_multiple_lines): ...this, and add testing
3084 for layout_range::intersects_line_p.
3085 (layout::layout): Populate m_fixit_hints.
3086 (layout::get_expanded_location): Handle the case of a line-span
3087 for a fix-it hint.
3088 (layout::validate_fixit_hint_p): New method.
3089 (get_line_span_for_fixit_hint): New function.
3090 (layout::calculate_line_spans): Add spans for fixit-hints.
3091 (layout::should_print_annotation_line_p): New method.
3092 (layout::print_any_fixits): Drop param "richloc", instead using
3093 validated fixits in m_fixit_hints. Add "const" to hint pointers.
3094 (diagnostic_show_locus): Avoid printing blank annotation lines.
3095 (selftest::test_diagnostic_context::test_diagnostic_context):
3096 Initialize show_column and start_span.
3097 (selftest::test_diagnostic_context::start_span_cb): New static
3098 function.
3099 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
3100 (selftest::diagnostic_show_locus_c_tests): Update for function
3101 renamings. Call test_diagnostic_show_locus_fixit_lines.
3102
3103 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
3104
3105 PR tree-optimization/73714
3106 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
3107
3108 2016-08-31 David Malcolm <dmalcolm@redhat.com>
3109
3110 * selftest.c: Move "namespace selftest {" to top of file,
3111 removing explicit "selftest::" qualifiers throughout.
3112
3113 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
3114
3115 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
3116 New types.
3117 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
3118 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
3119 Replace builtin with vector extension.
3120 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
3121 New types.
3122 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
3123 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
3124 Replace builtin with vector extension.
3125 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
3126 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
3127 Replace builtin with vector extension.
3128 * config/i386/xmmintrin.h (__m128_u): New type.
3129 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
3130 (_mm_load_ps, _mm_store_ps): Simplify.
3131
3132 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
3133
3134 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
3135
3136 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3137
3138 * diagnostic-show-locus.c (colorizer::begin_state): Support more
3139 than 3 ranges per diagnostic by alternating between color 1 and
3140 color 2.
3141 (layout::layout): Replace use of rich_location::MAX_RANGES
3142 with richloc->get_num_locations ().
3143 (layout::calculate_line_spans): Replace use of
3144 rich_location::MAX_RANGES with m_layout_ranges.length ().
3145 (layout::print_annotation_line): Handle arbitrary numbers of
3146 ranges in caret-printing by defaulting to '^'.
3147 (selftest::test_one_liner_many_fixits): New function.
3148 (test_diagnostic_show_locus_one_liner): Call it.
3149 * diagnostic.c (diagnostic_initialize): Update for renaming
3150 of rich_location::MAX_RANGES to
3151 rich_location::STATICALLY_ALLOCATED_RANGES.
3152 * diagnostic.h (struct diagnostic_context): Likewise.
3153
3154 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3155
3156 * selftest.c (selftest::named_temp_file::named_temp_file): New
3157 ctor.
3158 (selftest::temp_source_file::~temp_source_file): Move to...
3159 (selftest::named_temp_file::~named_temp_file): ...here.
3160 (selftest::test_named_temp_file): New function.
3161 (selftest::selftest_c_tests): Call test_named_temp_file.
3162 * selftest.h (class named_temp_file): New class.
3163 (class temp_source_file): Convert to a subclass of named_temp_file.
3164
3165 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
3166
3167 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
3168 USEs of LR_REGNO in returns and sibcalls.
3169 (rs6000_output_mi_thunk): Similar.
3170 (rs6000_sibcall_aix): Similar.
3171 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
3172 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
3173 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
3174 Remove the USE of LR_REGNO from the patterns as well. Delete an
3175 obsolete comment.
3176 (return_internal_<mode>): Delete.
3177
3178 2016-08-30 Tamar Christina <tamar.christina@arm.com>
3179
3180 * gcc/config/aarch64/aarch64-simd.md
3181 (aarch64_ld2<mode>_dreg_le): New.
3182 (aarch64_ld2<mode>_dreg_be): New.
3183 (aarch64_ld2<mode>_dreg): Removed.
3184 (aarch64_ld3<mode>_dreg_le): New.
3185 (aarch64_ld3<mode>_dreg_be): New.
3186 (aarch64_ld3<mode>_dreg): Removed.
3187 (aarch64_ld4<mode>_dreg_le): New.
3188 (aarch64_ld4<mode>_dreg_be): New.
3189 (aarch64_ld4<mode>_dreg): Removed.
3190 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
3191
3192 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3193
3194 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
3195 redundant location param.
3196 (test_one_liner_fixit_remove): Likewise.
3197 (test_one_liner_fixit_replace): Likewise.
3198 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
3199 * gcc-rich-location.c
3200 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
3201 get_range_from_loc. Drop overload taking a const char *.
3202 * gcc-rich-location.h
3203 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
3204 a const char *.
3205
3206 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3207
3208 * config/linux.c (linux_libc_has_function): Return true on musl.
3209
3210 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3211
3212 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
3213
3214 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
3215
3216 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
3217 used for abnormal egdes.
3218
3219 2016-08-30 Jakub Jelinek <jakub@redhat.com>
3220
3221 PR tree-optimization/72866
3222 * tree-vect-patterns.c (search_type_for_mask): Turn into
3223 a small wrapper, move all code to ...
3224 (search_type_for_mask_1): ... this new function. Add caching
3225 and adjust recursive calls.
3226
3227 PR debug/77363
3228 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
3229 instead of lookup_type_die (type_main_variant (type)) even for array
3230 types.
3231
3232 PR middle-end/77377
3233 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
3234 constant pool reference return x instead of c.
3235
3236 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
3237
3238 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
3239 include MQ.
3240
3241 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3242
3243 * input.c
3244 (selftest::test_make_location_nonpure_range_endpoints): Fix
3245 header comment.
3246
3247 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3248
3249 * diagnostic-show-locus.c
3250 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
3251 function.
3252 (selftest::test_diagnostic_show_locus_one_liner): Call it.
3253 * input.c (get_pure_location): Move to libcpp/line-map.c.
3254 * input.h (get_pure_location): Convert decl to an inline function
3255 calling implementation in libcpp.
3256
3257 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
3258
3259 PR target/77403
3260 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
3261 template for intel asm dialect.
3262 (vec_set_hi_<mode><mask_name>): Ditto.
3263
3264 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3265
3266 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
3267 (selftest::fail_formatted): Likewise.
3268
3269 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3270
3271 * input.c (make_location): Call get_start and get_finish
3272 on the endpoints to avoid storing packed ranges or ad-hoc
3273 ranges in them.
3274 (selftest::test_make_location_nonpure_range_endpoints): New function.
3275 (selftest::input_c_tests): Call it.
3276 * input.h (get_start): New inline function.
3277
3278 2016-08-29 Tom de Vries <tom@codesourcery.com>
3279
3280 PR c/77398
3281 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
3282 with assert.
3283
3284 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
3285
3286 * Makefile.in (gcov-iov.h): Add dummy recipe.
3287
3288 2016-08-29 Nathan Sidwell <nathan@acm.org>
3289
3290 * config/nvptx/nvptx.c: #include tree-vrp.h.
3291
3292 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
3293
3294 PR target/77324
3295 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
3296 HIGH+LO construct during reload.
3297
3298 2016-08-28 Tom de Vries <tom@codesourcery.com>
3299
3300 PR lto/70955
3301 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
3302 'sysv_abi va_list' attribute.
3303 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
3304 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
3305 attributes.
3306
3307 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3308
3309 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
3310 * emit-rtl.c (unshare_all_rtl_1): Adjust.
3311 (unshare_all_rtl_again): Likewise.
3312 * function.c (assign_stack_local_1): Likewise.
3313 (assign_stack_temp_for_type): Likewise.
3314
3315 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3316
3317 * cfgbuild.c (make_edges): Adjust.
3318 * cfgrtl.c (can_delete_label_p): Likewise.
3319 * dwarf2cfi.c (create_trace_edges): Likewise.
3320 * except.c (sjlj_emit_dispatch_table): Likewise.
3321 * function.h (struct expr_status): make x_forced_labels a vector.
3322 * jump.c (rebuild_jump_labels_1): Adjust.
3323 * reload1.c (set_initial_label_offsets): Likewise.
3324 * stmt.c (force_label_rtx): Likewise.
3325 (expand_label): Likewise.
3326
3327 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3328
3329 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
3330
3331 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
3332
3333 PR tree-optimization/71077
3334 PR tree-optimization/68542
3335 * fold-const.c (fold_relational_const): Fix folding of
3336 VECTOR_CST comparisons that have a scalar boolean result type.
3337 (selftest::test_vector_folding): New static function.
3338 (selftest::fold_const_c_tests): Call it.
3339
3340 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
3341
3342 * doc/extend.texi (SPU Built-in Functions): Remove stale
3343 references to material formerly at IBM and Sony.
3344
3345 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
3346
3347 PR target/77349
3348 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
3349
3350 2016-08-26 David Malcolm <dmalcolm@redhat.com>
3351
3352 * diagnostic-show-locus.c
3353 (selftest::test_fixit_consolidation): New function.
3354 (selftest::diagnostic_show_locus_c_tests): Call it.
3355 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
3356 constructor based on source_range.
3357
3358 2016-08-26 David Malcolm <dmalcolm@redhat.com>
3359
3360 * diagnostic-color.c (color_dict): Add "fixit-insert" and
3361 "fixit-delete".
3362 (parse_gcc_colors): Update description of default GCC_COLORS.
3363 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
3364 (colorizer::set_fixit_insert): New method.
3365 (colorizer::set_fixit_delete): New method.
3366 (colorizer::get_color_by_name): New method.
3367 (colorizer::STATE_FIXIT_INSERT): New constant.
3368 (colorizer::STATE_FIXIT_DELETE): New constant.
3369 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
3370 fields in favor of new field "m_stop_color". Add fields
3371 "m_fixit_insert" and "m_fixit_delete".
3372 (colorizer::colorizer): Update for above changes. Replace
3373 colorize_start calls with calls to get_color_by_name.
3374 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
3375 STATE_FIXIT_DELETE. Update for field renamings.
3376 (colorizer::finish_state): Simplify by using m_stop_color,
3377 rather than multiple identical "*_ce" fields.
3378 (colorizer::get_color_by_name): New method.
3379 (layout::print_any_fixits): Print insertions and replacements
3380 using the "fixit-insert" color, and deletions using the
3381 "fixit-delete" color.
3382 * doc/invoke.texi (-fdiagnostics-color): Update description of
3383 default GCC_COLORS, and of the supported capabilities.
3384
3385 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
3386
3387 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
3388 current_function_static_stack_size variable with the static
3389 stack frame size of the current function when
3390 flag_stack_usage_info is enabled.
3391
3392 2016-08-26 Nathan Sidwell <nathan@acm.org>
3393
3394 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
3395 assignment inside if condition.
3396
3397 2016-08-26 Richard Biener <rguenther@suse.de>
3398
3399 PR tree-optimization/69047
3400 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
3401 extracts similar to what FRE does.
3402 (non_rewritable_mem_ref_base): Likewise.
3403
3404 2016-08-26 Joseph Myers <joseph@codesourcery.com>
3405
3406 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
3407 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
3408 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3409 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3410 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
3411 Likewise.
3412 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3413 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3414 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3415 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
3416 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3417
3418 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3419
3420 PR target/70473
3421 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
3422 reservation duration to 15 cycles.
3423 (cortex_a8_vfp_macs): Likewise.
3424 (cortex_a8_vfp_macd): Likewise.
3425 (cortex_a8_vfp_divs): Likewise.
3426 (cortex_a8_vfp_divd): Likewise.
3427
3428 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3429
3430 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
3431 (aarch_macro_fusion_pair_p): Use above to avoid early return.
3432
3433 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3434 Martin Jambhor <mjambor@suse.cz>
3435
3436 * common.opt: New option -fipa-bit-cp.
3437 * doc/invoke.texi: Document -fipa-bit-cp.
3438 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
3439 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
3440 * tree-ssa-ccp.h: New header file.
3441 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
3442 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
3443 Replace all occurences of tree parameter by two new params: signop, int.
3444 (bit_value_unop_1): Change to bit_value_unop and export it.
3445 Replace all occurences of tree parameter by two new params: signop,
3446 int.
3447 (bit_value_binop): Change call from bit_value_binop_1 to
3448 bit_value_binop.
3449 (bit_value_assume_aligned): Likewise.
3450 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
3451 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
3452 to ccp_finalize.
3453 (ccp_finalize): Skip processing if val->mask == 0.
3454 * ipa-cp.c: Include tree-ssa-ccp.h
3455 (ipcp_bits_lattice): New class.
3456 (ipcp_param_lattice (bits_lattice): New member.
3457 (print_all_lattices): Call ipcp_bits_lattice::print.
3458 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
3459 (initialize_node_lattices): Likewise.
3460 (propagate_bits_accross_jump_function): New function.
3461 (propagate_constants_accross_call): Call
3462 propagate_bits_accross_jump_function.
3463 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
3464 (ipcp_store_bits_results): New function.
3465 (ipcp_driver): Call ipcp_store_bits_results.
3466 * ipa-prop.h (ipa_bits): New struct.
3467 (ipa_jump_func): Add new member bits of type ipa_bits.
3468 (ipa_param_descriptor): Change decl to decl_or_type.
3469 (ipa_get_param): Change decl to decl_or_type and assert on
3470 PARM_DECL.
3471 (ipa_get_type): New function.
3472 (ipcp_transformation_summary): New member bits.
3473 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
3474 (ipa_populate_param_decls): Likewise.
3475 (ipa_dump_param): Likewise.
3476 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
3477 function.
3478 (ipa_set_jf_unknown): Set ipa_bits::known to false.
3479 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
3480 propagation.
3481 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
3482 (ipa_write_jump_function): Add streaming for ipa_bits.
3483 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
3484 (write_ipcp_transformation_info): Add streaming for ipa_bits
3485 summary for ltrans.
3486 (read_ipcp_transfomration_info): Add support for reading streamed
3487 ipa_bits.
3488 (ipcp_update_bits): New function.
3489 (ipcp_transform_function): Call ipcp_update_bits.
3490
3491 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
3492
3493 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
3494 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
3495
3496 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
3497
3498 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
3499
3500 2016-08-25 Richard Biener <rguenther@suse.de>
3501
3502 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
3503 Only add locations in late dwarf.
3504 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
3505 (dwarf2out_early_finish): But do it here.
3506
3507 2016-08-24 Michael Collison <michael.collison@linaro.org>
3508 Michael Collison <michael.collison@arm.com>
3509
3510 * config/arm/arm-modes.def: Add new condition code mode CC_V
3511 to represent the overflow bit.
3512 * config/arm/arm.c (maybe_get_arm_condition_code):
3513 Add support for CC_Vmode.
3514 (arm_gen_unlikely_cbranch): New function to generate common
3515 rtl conditional branches for overflow patterns.
3516 * config/arm/arm-protos.h: Add prototype for
3517 arm_gen_unlikely_cbranch.
3518 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
3519 addsi3_compareV_upper): New patterns to support signed
3520 builtin overflow add operations.
3521 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
3522 New patterns to support unsigned builtin add overflow operations.
3523 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
3524 builtin overflow subtract operations,
3525 (usubv<mode>4): New patterns to support unsigned builtin subtract
3526 overflow operations.
3527 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
3528 to support builtin overflow negate operations.
3529
3530 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3531
3532 Revert
3533 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3534
3535 * explow.c (get_dynamic_stack_size): Take known alignment of stack
3536 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
3537 needed.
3538
3539 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
3540
3541 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
3542 MULTILIB_OPTIONS should be used. Small wording fixes.
3543 * genmultilib: Memorize set of all option combinations in
3544 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
3545 found in MULTILIB_OPTIONS by checking if option set is listed in
3546 combination_space. Output new and existing error message to stderr.
3547
3548 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
3549
3550 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
3551 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
3552 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
3553 (MULTILIB_REUSE): Remove reuse rules for option set including
3554 -mfpu=fp-armv8 and -mfpu=vfpv4
3555
3556 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3557
3558 * config/arm/t-rtems: Add vfp multilib.
3559
3560 2016-08-23 Ian Lance Taylor <iant@golang.org>
3561
3562 * config/s390/s390.c (s390_asm_file_start): Call
3563 default_file_start.
3564
3565 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3566
3567 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
3568 initialization of all 0's to the 0 constant, instead of directly
3569 generating XOR. Add support for V4SImode vector initialization on
3570 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
3571 initialization. Change variables used in V4SFmode vector
3572 intialization. For V4SFmode vector splat on ISA 3.0, make sure
3573 any memory addresses are in index form. Add support for using
3574 VSPLTH/VSPLTB to initialize vector short and vector char vectors
3575 with all of the same element.
3576 (regno_or_subregno): New helper function to return a register
3577 number for either REG or SUBREG.
3578 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
3579 Use regno_or_subregno where possible.
3580 (rs6000_split_v4si_init_di_reg): New helper function to build up a
3581 DImode value from two SImode values in order to generate V4SImode
3582 vector initialization on 64-bit systems with direct move.
3583 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
3584 initialization.
3585 (rtx_is_swappable_p): V4SImode vector initialization insn is not
3586 swappable.
3587 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
3588 declaration.
3589 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
3590 attributes to initialize V8HImode and V16QImode vectors with the
3591 same element.
3592 (VSX_SPLAT_COUNT): Likewise.
3593 (VSX_SPLAT_SUFFIX): Likewise.
3594 (UNSPEC_VSX_VEC_INIT): New unspec.
3595 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
3596 Allow SFmode values to come from Altivec registers.
3597 (vsx_init_v4si): New insn/split for V4SImode vector initialization
3598 on 64-bit systems with direct move.
3599 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
3600 vector initializations, to allow V4SImode vector initializations
3601 on 64-bit systems with direct move.
3602 (vsx_splat_v4si): Likewise.
3603 (vsx_splat_v4si_di): Likewise.
3604 (vsx_splat_v4sf): Likewise.
3605 (vsx_splat_v4sf_internal): Likewise.
3606 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
3607 register classes.
3608 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
3609 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
3610 initializing V8HImode and V16QImode vectors with the same
3611 element.
3612 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
3613 optimization if -maltivec=be.
3614
3615 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
3616
3617 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
3618 attribute for alternatives 3 and 4.
3619
3620 2016-08-23 David Malcolm <dmalcolm@redhat.com>
3621
3622 * selftest.c (selftest::assert_str_contains): New function.
3623 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
3624 * selftest.h (selftest::assert_str_contains): New decl.
3625 (ASSERT_STR_CONTAINS): New macro.
3626
3627 2016-08-23 Richard Biener <rguenther@suse.de>
3628
3629 PR tree-optimization/77286
3630 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
3631 the CFG here.
3632 (vect_transform_loop): Split exit edges of loop and scalar
3633 loop if required and at the appropriate time.
3634
3635 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3636
3637 * explow.c (get_dynamic_stack_size): Take known alignment of stack
3638 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
3639 needed.
3640 Correct a typo in a comment.
3641
3642 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3643
3644 * config/s390/s390.md ("*andc_split"): New splitter for and with
3645 complement.
3646
3647 2016-08-23 Richard Biener <rguenther@suse.de>
3648
3649 PR tree-optimization/27336
3650 * tree-vrp.c (infer_value_range): Handle stmts that can throw
3651 by looking for a non-EH edge.
3652 (process_assert_insertions_for): Likewise.
3653
3654 2016-08-23 Richard Biener <rguenther@suse.de>
3655
3656 PR middle-end/77305
3657 * statistics.c (statistics_counter_event): Robustify against
3658 NULL current_pass.
3659
3660 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
3661
3662 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
3663 for targets amdfam10 and barcelona.
3664
3665 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
3666
3667 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
3668 (zero_extend<mode>di2): Ditto.
3669 (*zero_extend<mode>si2): Ditto.
3670 (*zero_extendqihi2): Ditto.
3671
3672 2016-08-22 Joseph Myers <joseph@codesourcery.com>
3673
3674 PR middle-end/77269
3675 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
3676 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
3677
3678 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
3679
3680 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
3681 identical consecutive elements.
3682 [SSA_NAME]: Print the name's def stmt on its own line. When printing
3683 the node's def stmt, avoid printing an unwanted trailing newline by
3684 replacing the call to print_gimple_stmt() with its inlined body and
3685 adjusting it to not set pp_needs_newline and to call pp_flush()
3686 instead of pp_newline_and_flush().
3687
3688 2016-08-22 Joseph Myers <joseph@codesourcery.com>
3689
3690 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
3691 (float32_type_node, float64_type_node, float32x_type_node)
3692 (float128x_type_node): New macros.
3693 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
3694 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
3695 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
3696 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
3697 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
3698 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
3699 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
3700 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
3701 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
3702 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
3703 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
3704 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
3705 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
3706 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
3707 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
3708 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
3709 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
3710 (copysign, fabs, huge_val, inf, nan, nans): Use it.
3711 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
3712 and copysign.
3713 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
3714 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
3715 * doc/extend.texi (Other Builtins): Document these built-in
3716 functions.
3717 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
3718 for nan and nans.
3719
3720 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
3721
3722 * doc/install.texi (Binaries): www.opencsw.org now uses https.
3723
3724 2016-08-22 Richard Biener <rguenther@suse.de>
3725
3726 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
3727
3728 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
3729
3730 PR target/77270
3731 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
3732 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
3733 non-SSE2 athlons only, otherwise prefer SSE prefetches.
3734
3735 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
3736
3737 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
3738 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
3739 (vrp_visit_switch_stmt): Likewise.
3740 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
3741 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
3742 (vrp_visit_stmt): Use extract_range_from_stmt.
3743 (vrp_visit_phi_node): Use extract_range_from_phi_node.
3744
3745 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
3746
3747 * Makefile.in: Add tree-vrp.h to GTFILES.
3748 * gengtype.c (open_base_files): Add tree-vrp.h.
3749 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
3750 * builtins.c: Likewise.
3751 * fold-const.c: Likewise.
3752 * gimple-builder.c: Likewise.
3753 * gimple-laddress.c: Likewise.
3754 * hsa-gen.c: Likewise.
3755 * internal-fn.c: Likewise.
3756 * ssa.h: Likewise.
3757 * targhooks.c: Liewise,
3758 * tree-ssa-address.c: Likewise.
3759 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
3760 * tree-vrp.c (struct value_range): Move to tree-vrp.h
3761 * tree-vrp.h: New file.
3762
3763 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
3764
3765 PR tree-optimization/61839
3766 * tree-vrp.c (two_valued_val_range_p): New.
3767 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
3768 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
3769 Also Convert VAR BINOP CST where VAR is two-valued to
3770 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
3771
3772 2016-08-19 David Malcolm <dmalcolm@redhat.com>
3773
3774 * diagnostic-show-locus.c
3775 (layout::annotation_line_showed_range_p): New method.
3776 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
3777 Reimplement case fixit_hint::REPLACE to cover removals, and
3778 replacements where the range of the replacement isn't one
3779 of the ranges in the rich_location.
3780 (test_one_liner_fixit_replace): Likewise.
3781 (selftest::test_one_liner_fixit_replace_non_equal_range): New
3782 function.
3783 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
3784 New function.
3785 (selftest::test_diagnostic_show_locus_one_liner): Call the new
3786 functions.
3787 * diagnostic.c (print_parseable_fixits): Remove case
3788 fixit_hint::REMOVE.
3789
3790 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
3791
3792 PR target/77270
3793 * config/i386/i386.c (ix86_option_override_internal): Remove
3794 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
3795 Enable SSE prefetch also for TARGET_PREFETCHWT1.
3796 Do not try to enable TARGET_PRFCHW ISA flag here.
3797 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
3798 Rewrite expander function body.
3799 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
3800
3801 2016-08-19 Joseph Myers <joseph@codesourcery.com>
3802
3803 PR c/32187
3804 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
3805 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
3806 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
3807 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
3808 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
3809 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
3810 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
3811 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
3812 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
3813 tree_index values.
3814 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
3815 macros.
3816 (struct floatn_type_info): New structure type.
3817 (floatn_nx_types): New variable declaration.
3818 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
3819 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
3820 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
3821 * tree.c (floatn_nx_types): New variable.
3822 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
3823 corresponding complex types.
3824 * target.def (floatn_mode): New hook.
3825 * targhooks.c: Include "real.h".
3826 (default_floatn_mode): New function.
3827 * targhooks.h (default_floatn_mode): New prototype.
3828 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
3829 types.
3830 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
3831 effective-target and dg-add-options keywords.
3832 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
3833 Document new effective-target keywords.
3834 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
3835 * doc/tm.texi: Regenerate.
3836 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
3837 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
3838 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
3839 18661-3.
3840 * real.h (struct real_format): Add field ieee_bits.
3841 * real.c (ieee_single_format, mips_single_format)
3842 (motorola_single_format, spu_single_format, ieee_double_format)
3843 (mips_double_format, motorola_double_format)
3844 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
3845 (ieee_extended_intel_128_format)
3846 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
3847 (mips_extended_format, ieee_quad_format, mips_quad_format)
3848 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
3849 (decimal_double_format, decimal_quad_format, ieee_half_format)
3850 (arm_half_format, real_internal_format: Initialize ieee_bits
3851 field.
3852 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
3853 float128_type_node. Set float80_type_node to float64x_type_node
3854 if appropriate and long_double_type_node not appropriate.
3855 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
3856 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
3857 Initialize ieee_bits field.
3858 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
3859 (rs6000_init_builtins): Set ieee128_float_type_node to
3860 float128_type_node.
3861 (rs6000_floatn_mode): New function.
3862
3863 2016-08-19 Jakub Jelinek <jakub@redhat.com>
3864
3865 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
3866 _rdseed64_step): Uglify argument names and/or local variable names
3867 in inline functions.
3868 * config/i386/rtmintrin.h (_xabort): Likewise.
3869 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
3870 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
3871 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
3872 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
3873 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
3874 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
3875 _mm_maskz_ternarylogic_epi32): Likewise.
3876 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
3877 __lwpins32, __lwpins64): Likewise.
3878 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
3879 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
3880 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
3881 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
3882 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
3883 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
3884 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
3885 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
3886 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
3887 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
3888 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
3889 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
3890 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
3891 _mm256_mask_i64gather_epi32): Likewise.
3892 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
3893 * config/i386/ia32intrin.h (__writeeflags): Likewise.
3894 * config/i386/pkuintrin.h (_wrpkru): Likewise.
3895 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
3896 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
3897 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
3898 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
3899 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
3900 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
3901 _mm512_mask_prefetch_i64scatter_ps): Likewise.
3902 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
3903 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
3904 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
3905 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
3906 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
3907 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
3908 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
3909 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
3910
3911 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
3912 returning void.
3913 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
3914 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
3915 Likewise.
3916 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
3917 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
3918 function name.
3919 (_rdpkru_u32): Add space after function name.
3920
3921 * config/i386/t-i386 (i386-c.o): Don't depend on
3922 i386-builtin-types.inc.
3923 (i386.o): Depend on i386-builtin-types.inc.
3924
3925 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
3926
3927 PR target/77281
3928 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
3929 Use const_vec_duplicate to check for duplicated elements.
3930
3931 2016-08-19 Richard Biener <rguenther@suse.de>
3932
3933 PR tree-optimization/77290
3934 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
3935 Fix flag_tree_parallelize_loops check.
3936
3937 2016-08-19 Richard Biener <rguenther@suse.de>
3938
3939 * match.pd (x | 0 -> x): Add.
3940
3941 2016-08-19 Richard Biener <rguenther@suse.de>
3942
3943 PR tree-optimization/77286
3944 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
3945 Deal with virtual PHIs being out-of-order.
3946
3947 2016-08-18 David Malcolm <dmalcolm@redhat.com>
3948
3949 * doc/invoke.texi (fverbose-asm): Note that source code lines
3950 are emitted, and provide an example.
3951 * final.c (asm_show_source): New function.
3952 (final_scan_insn): Call asm_show_source.
3953
3954 2016-08-18 David Malcolm <dmalcolm@redhat.com>
3955
3956 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
3957 param with diagnostic_kind.
3958 (class colorizer): Similarly replace field m_diagnostic with
3959 m_diagnostic_kind.
3960 (colorizer::colorizer): Replace diagnostic
3961 param with diagnostic_kind.
3962 (colorizer::begin_state): Update for above field change.
3963 (layout::layout): Replace diagnostic param with rich_location *
3964 and diagnostic_kind.
3965 (diagnostic_show_locus): Replace diagnostic param with richloc
3966 and diagnostic_kind.
3967 (class selftest::test_diagnostic_context): New class.
3968 (selftest::test_diagnostic_show_locus_unknown_location): New
3969 function.
3970 (selftest::test_one_liner_simple_caret): New function.
3971 (selftest::test_one_liner_caret_and_range): New function.
3972 (selftest::test_one_liner_multiple_carets_and_ranges): New
3973 function.
3974 (selftest::test_one_liner_fixit_remove): New function.
3975 (selftest::test_one_liner_fixit_replace): New function.
3976 (selftest::test_diagnostic_show_locus_one_liner): New function.
3977 (selftest::diagnostic_show_locus_c_tests): Call the new test
3978 functions.
3979 * diagnostic.c (diagnostic_initialize): Initialize
3980 colorize_source_p, show_ruler_p and parseable_fixits_p.
3981 (default_diagnostic_finalizer): Update for change to
3982 diagnostic_show_locus.
3983 (diagnostic_append_note): Likewise.
3984 * diagnostic.h (diagnostic_show_locus): Replace
3985 const diagnostic_info * param with location * and diagnostic_t.
3986
3987 2016-08-18 David Malcolm <dmalcolm@redhat.com>
3988
3989 * input.c (saved_line_table): New global.
3990 (class selftest::temp_line_table): Rename to line_table_test and
3991 move declaration to selftest.h, and drop field m_old_line_table.
3992 (selftest::temp_line_table::temp_line_table): Rename ctor to...
3993 (selftest::line_table_test::line_table_test): ...this. Add a
3994 default ctor. Store current value of line_table within
3995 saved_line_table.
3996 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
3997 (selftest::line_table_test::~line_table_test): ...this, and
3998 restore line_table from the saved_line_table, rather than
3999 m_old_line_table.
4000 (selftest::test_accessing_ordinary_linemaps): Update for above
4001 renaming.
4002 (selftest::test_lexer): Likewise.
4003 (struct selftest::lexer_test): Likewise.
4004 (selftest::lexer_test::lexer_test): Likewise.
4005 (selftest::input_c_tests): Move the looping over test cases from
4006 here into...
4007 (selftest::for_each_line_table_case): New function.
4008 * input.h (saved_line_table): New decl.
4009 * selftest.h (struct selftest::line_table_case): New forward decl.
4010 (class selftest::line_table_test): New class, moved here from
4011 selftest::temp_line_table in input.c, and renamed.
4012 (selftest::for_each_line_table_case): New decl.
4013
4014 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
4015
4016 PR target/72839
4017 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
4018
4019 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
4020
4021 PR middle-end/70895
4022 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
4023 enclosing parallel construct for reduction variables on OpenACC loop
4024 directives.
4025
4026 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
4027
4028 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
4029 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
4030 -gdwarf-3.
4031 (function_to_dwarf_procedure): Update comment.
4032
4033 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4034
4035 * input.c (diagnostics_file_cache_forcibly_evict_file): New
4036 function.
4037 * input.h (diagnostics_file_cache_forcibly_evict_file): New
4038 declaration.
4039 * selftest.c (selftest::temp_source_file::~temp_source_file):
4040 Evict m_filename from the diagnostic file cache.
4041
4042 2016-08-18 Richard Biener <rguenther@suse.de>
4043
4044 * tree-pass.h (make_pass_materialize_all_clones): Declare.
4045 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
4046 make_pass_materialize_all_clones): New simple IPA pass encapsulating
4047 clone materialization.
4048 * passes.def (all_late_ipa_passes): Start with
4049 pass_materialize_all_clones.
4050 * cgraphunit.c (symbol_table::compile): Remove call to
4051 materialize_all_clones.
4052 * tree-into-ssa.c: Include statistics.h.
4053 (update_ssa): Count number of times we do incremental/rewrite
4054 SSA update.
4055
4056 2016-08-18 Richard Biener <rguenther@suse.de>
4057
4058 PR tree-optimization/77282
4059 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4060 When doing auto-parallelizing also prevent use of PHIs that
4061 carry dependences across loop backedges.
4062
4063 2016-08-18 Tamar Christina <tamar.christina@arm.com>
4064 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4065
4066 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
4067
4068 2016-08-18 Richard Biener <rguenther@suse.de>
4069
4070 * ssa-iterators.h (ssa_vuse_operand): New inline.
4071 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
4072 (predicate_all_scalar_phis): Use remove_phi_node to remove
4073 phi nodes predicated. Delay removing virtual PHIs.
4074 (predicate_mem_writes): Update virtual operands.
4075 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
4076 (tree_if_conversion): Do not rewrite virtual SSA form.
4077 * tree-phinodes.c (release_phi_node): Make static.
4078 * tree-phinodes.h (release_phi_node): Remove.
4079
4080 2016-08-18 Jakub Jelinek <jakub@redhat.com>
4081
4082 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
4083 codes that appear in bdesc_* arrays, instead include i386-builtin.def
4084 twice to define those.
4085 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
4086 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
4087 bdesc_multi_arg): Define by including i386-builtin.def the third time.
4088 * config/i386/i386-builtin.def: New file.
4089
4090 2016-08-17 David Malcolm <dmalcolm@redhat.com>
4091
4092 * input.c (get_source_range_for_char): Rename to...
4093 (selftest::get_source_range_for_char): ...this, and move within
4094 the #if CHECKING_P guard.
4095 (get_num_source_ranges_for_substring): Rename to...
4096 (selftest::get_num_source_ranges_for_substring): ...this, move
4097 within the #if CHECKING_P guard, and make static.
4098 (selftest::assert_num_substring_ranges): Initialize
4099 actual_num_ranges.
4100
4101 2016-08-18 Alan Modra <amodra@gmail.com>
4102
4103 PR rtl-optimization/72771
4104 * reload.c (find_reloads): Don't assume that a subreg mem is OK
4105 when find_reloads_toplev returns address_reloaded==-1.
4106 (alternative_allows_const_pool_ref): Update comment.
4107
4108 2015-08-17 Alan Hayward <alan.hayward@arm.com>
4109
4110 PR tree-optimization/71752
4111 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
4112 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
4113
4114 2016-08-17 Jakub Jelinek <jakub@redhat.com>
4115
4116 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
4117 instead of testing ECF_NORETURN bit in gimple_call_flags.
4118 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
4119 * predict.c (tree_bb_level_predictions): Likewise.
4120 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
4121
4122 PR middle-end/77259
4123 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
4124 turning a call into __builtin_unreachable-like noreturn call, adjust
4125 gimple_call_set_fntype.
4126 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
4127 gimple_call_fntype has void return type.
4128
4129 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
4130
4131 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
4132 maybe_lookup_decl, to handle nested acc loop directives.
4133
4134 2016-08-17 Richard Biener <rguenther@suse.de>
4135
4136 PR tree-optimization/76490
4137 * tree-vrp.c (update_value_range): Preserve overflow infinities
4138 when intersecting with ranges from get_range_info.
4139 (operand_less_p): Handle overflow infinities correctly.
4140 (value_range_constant_singleton): Use vrp_operand_equal_p
4141 to handle overflow max/min correctly.
4142 (vrp_valueize): Likewise.
4143 (union_ranges): Likewise.
4144 (intersect_ranges): Likewise.
4145 (vrp_visit_phi_node): Improve iteration limitation to only
4146 apply when we'll possibly re-visit the PHI via a changed argument
4147 on the backedge.
4148
4149 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
4150
4151 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
4152 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
4153 rather than those that should not be built.
4154
4155 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
4156
4157 PR target/66488
4158 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
4159
4160 2016-08-17 Richard Biener <rguenther@suse.de>
4161
4162 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
4163 (verify_vssa): New function verifying virtual SSA form.
4164 (verify_ssa): Call it.
4165 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
4166 Do not apply loop-closed SSA handling to virtuals.
4167 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
4168 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
4169 when rewriting their symbol.
4170 (prepare_def_site_for): Likewise.
4171 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
4172 operands of moved stmts.
4173
4174 2016-08-17 Richard Biener <rguenther@suse.de>
4175
4176 PR tree-optimization/23855
4177 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
4178 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
4179 find guards to hoist. Do not update SSA form but rewrite virtuals
4180 into loop closed SSA.
4181 (find_loop_guard): Adjust to skip already hoisted guards. Do
4182 not mark virtuals for renaming or update SSA form.
4183
4184 2016-08-17 Martin Liska <mliska@suse.cz>
4185
4186 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
4187 a LONG_LONG_TYPE_SIZE comparison.
4188 * gcov-io.h: Remove macro definitions.
4189 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
4190 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
4191 comparison.
4192
4193 2016-08-16 Jakub Jelinek <jakub@redhat.com>
4194
4195 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
4196 that builtins not mentioned in bdesc_* arrays come first, then
4197 the ones mentioned in bdesc_* arrays in the order they appear in
4198 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
4199 IX86_BUILTIN__BDESC_*_LAST enumerator.
4200 (bdesc_mpx): Fix up a comment typo.
4201 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
4202 __builtin_ia32_vpcomneu[bwdq] builtins.
4203 (BDESC_VERIFY, BDESC_VERIFYS): Define.
4204 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
4205 enum ix86_builtins ordering.
4206 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
4207 for direct bdesc_* array member access instead of searching all the
4208 arrays until an fcode match is found.
4209
4210 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
4211
4212 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
4213 pattern as define_insn_and_split. Split insn before reload to
4214 ashl<mode>3_1.
4215 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
4216 <shift_insn><mode>3_1.
4217 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
4218 <rotate_insn><mode>3_1.
4219
4220 2016-08-16 David Malcolm <dmalcolm@redhat.com>
4221
4222 PR c/72857
4223 * input.c (get_source_range_for_substring): Rename to...
4224 (get_source_location_for_substring): ...this, adding param
4225 "caret_idx", and converting output param from source_range * to
4226 location_t *.
4227 (get_source_range_for_char): New function.
4228 (get_num_source_ranges_for_substring): Update comment to reflect
4229 above renaming.
4230 (assert_char_at_range): Update to use get_source_range_for_char
4231 rather than get_source_range_for_substring.
4232 (test_lexer_string_locations_concatenation_2): Likewise.
4233 * substring-locations.h (get_source_range_for_substring): Rename
4234 to...
4235 (get_source_location_for_substring): ...this, and adding param
4236 "caret_idx", and converting output param from source_range * to
4237 location_t *.
4238
4239 2016-08-16 David Malcolm <dmalcolm@redhat.com>
4240
4241 * input.c (class selftest::temp_source_file): Move to
4242 selftest.h.
4243 (selftest::temp_source_file::temp_source_file): Move to
4244 selftest.c.
4245 (selftest::temp_source_file::~temp_source_file): Likewise.
4246 * selftest.c (selftest::temp_source_file::temp_source_file): Move
4247 here from input.c.
4248 (selftest::temp_source_file::~temp_source_file): Likewise.
4249 * selftest.h (class selftest::temp_source_file): Move here from
4250 input.c
4251
4252 2016-08-16 Jakub Jelinek <jakub@redhat.com>
4253
4254 PR target/71910
4255 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
4256 inlining, add cgraph edge for the added __builtin_unreachable call.
4257
4258 PR middle-end/67485
4259 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
4260 only cast it to SHWI for the final comparison.
4261
4262 2016-08-16 Martin Liska <mliska@suse.cz>
4263
4264 PR gcov-profile/36412
4265 * doc/gcov.texi: Document --hash-filenames(-x).
4266 * gcov.c (print_usage): Add the option.
4267 (process_args): Process the option, sort options alphabetically.
4268 (md5sum_to_hex): New function.
4269 (make_gcov_file_name): Do the md5sum and append it to a
4270 filename.
4271
4272 2016-08-16 Bin Cheng <bin.cheng@arm.com>
4273
4274 PR tree-optimization/69848
4275 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
4276 and swtich operands to avoid additional NOT instruction.
4277 (vcond<v_cmp_mixed><mode>): Ditto.
4278 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4279
4280 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
4281
4282 * doc/install.texi (*-*-solaris2*): Adjust latest change.
4283
4284 2016-08-16 Richard Biener <rguenther@suse.de>
4285
4286 PR tree-optimization/76783
4287 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
4288 BB visited flags at start.
4289
4290 2016-08-16 Bin Cheng <bin.cheng@arm.com>
4291
4292 PR tree-optimization/72817
4293 PR tree-optimization/73450
4294 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
4295 multiple_of_p for adjusted IV.base.
4296
4297 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
4298
4299 PR target/72867
4300 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
4301 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
4302 for !flag_finite_math_only or flag_signed_zeros.
4303 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
4304 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
4305 depend on flag_finite_math_only.
4306 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
4307 New insn pattern.
4308 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
4309 (*ieee_smin<mode>3): Ditto.
4310 (*ieee_smax<mode>3): Ditto.
4311 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
4312 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
4313 flag_signed_zeros.
4314 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
4315 depend on flag_finite_math_only.
4316 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
4317 (*mmx_<code>v2sf3): Remove.
4318 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
4319 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
4320 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
4321
4322 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
4323
4324 PR rtl-optimization/73650
4325 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
4326 it is not a simple move.
4327
4328 2016-08-15 Martin Liska <mliska@suse.cz>
4329
4330 PR driver/72765
4331 * gcc.c (do_spec_1): Call save_string with the right size.
4332 (save_string): Do an assert about string we copy.
4333
4334 2016-08-15 Richard Biener <rguenther@suse.de>
4335
4336 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
4337 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
4338 TV_MACH_DEP.
4339 (pass_data_stv): Likewise.
4340
4341 2016-08-15 Richard Biener <rguenther@suse.de>
4342
4343 PR tree-optimization/73434
4344 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
4345 TBAA info on the base when forwarding a non-invariant address.
4346
4347 2016-08-15 Jakub Jelinek <jakub@redhat.com>
4348
4349 * dwarf2out.c (struct checksum_attributes): Add
4350 at_string_length_bit_size and at_string_length_byte_size fields.
4351 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
4352 and DW_AT_string_length_byte_size.
4353 (die_checksum_ordered): Handle at_string_length_bit_size and
4354 at_string_length_byte_size.
4355 (gen_array_type_die): For dwarf_version >= 5 emit
4356 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4357 (adjust_string_types): For dwarf_version >= 5 remove
4358 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4359 (resolve_addr): Likewise.
4360
4361 PR debug/71906
4362 * dwarf2out.c (string_types): New variable.
4363 (gen_array_type_die): Change early_dwarf handling of
4364 DW_AT_string_length, create DW_OP_call4 referencing the
4365 length var temporarily. Handle parameters that are pointers
4366 to string length.
4367 (adjust_string_types): New function.
4368 (gen_subprogram_die): Temporarily set string_types to local var,
4369 call adjust_string_types if needed.
4370 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
4371 New functions.
4372 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
4373
4374 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
4375
4376 * doc/install.texi (*-*-solaris2*): Fix version number and document
4377 requirement on GNU make for building libjava with the Solaris linker.
4378
4379 2016-08-15 Martin Liska <mliska@suse.cz>
4380 Jakub Jelinek <jakub@redhat.com>
4381
4382 PR tree-optimization/72824
4383 * tree-loop-distribution.c (const_with_all_bytes_same)
4384 <case VECTOR_CST>: Fix a typo.
4385
4386 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
4387
4388 PR target/76342
4389 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
4390 Renamed from _mm512_undefined_si512.
4391 (_mm_undefined_si512): New definition.
4392
4393 2016-08-13 Richard Biener <rguenther@suse.de>
4394
4395 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
4396 into PHIs and update the lattice for its def.
4397
4398 2016-08-12 Jakub Jelinek <jakub@redhat.com>
4399
4400 PR c/71512
4401 * ubsan.c (instrument_si_overflow): Pass true instead of false
4402 to gsi_replace.
4403 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
4404 of bbs. Return TODO_cleanup_cfg if any returned true.
4405
4406 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4407
4408 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
4409 ISA 3.0 MTVSRDD instruction.
4410 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
4411 vecperm.
4412
4413 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
4414
4415 PR tree-optimization/71083
4416 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
4417 bitfield access when possible.
4418
4419 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
4420
4421 PR middle-end/71654
4422 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
4423 sign-changing cast from a shorter unsigned type to a wider
4424 signed type.
4425
4426 2016-08-12 Jakub Jelinek <jakub@redhat.com>
4427
4428 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
4429 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
4430 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
4431
4432 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4433
4434 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
4435 Correct costs for vec_construct.
4436
4437 2016-08-12 Bin Cheng <bin.cheng@arm.com>
4438
4439 PR tree-optimization/69848
4440 * tree-vectorizer.h (enum vect_def_type): New condition reduction
4441 type CONST_COND_REDUCTION.
4442 * tree-vect-loop.c (vectorizable_reduction): Support new condition
4443 reudction type CONST_COND_REDUCTION.
4444
4445 2016-08-12 Richard Biener <rguenther@suse.de>
4446
4447 PR tree-optimization/57326
4448 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
4449 returning an SSA name.
4450 (phi_translate_1): When fully_constant_expression returns a NAME
4451 make sure we have a leader for it.
4452
4453 2016-08-12 Martin Liska <mliska@suse.cz>
4454 Adam Fineman <afineman@afineman.com>
4455
4456 * gcov.c (process_file): Create .gcov file when .gcda
4457 file is missing.
4458
4459 2016-08-12 Marek Polacek <polacek@redhat.com>
4460
4461 PR c/7652
4462 * alias.c (find_base_value): Adjust fall through comment.
4463 * cfgexpand.c (expand_debug_expr): Likewise.
4464 * combine.c (find_split_point): Likewise.
4465 (expand_compound_operation): Likewise. Add FALLTHRU.
4466 (make_compound_operation): Adjust fall through comment.
4467 (canon_reg_for_combine): Add FALLTHRU.
4468 (force_to_mode): Adjust fall through comment.
4469 (simplify_shift_const_1): Likewise.
4470 (simplify_comparison): Likewise.
4471 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
4472 FALLTHRU.
4473 * config/aarch64/predicates.md: Likewise.
4474 * config/i386/i386.c (function_arg_advance_32): Likewise.
4475 (ix86_gimplify_va_arg): Likewise.
4476 (print_reg): Likewise.
4477 (ix86_print_operand): Likewise.
4478 (ix86_build_const_vector): Likewise.
4479 (ix86_expand_branch): Likewise.
4480 (ix86_sched_init_global): Adjust fall through comment.
4481 (ix86_expand_args_builtin): Add FALLTHRU.
4482 (ix86_expand_builtin): Likewise.
4483 (ix86_expand_vector_init_one_var): Likewise.
4484 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
4485 (rs6000_adjust_cost): Likewise.
4486 (insn_must_be_first_in_group): Likewise.
4487 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
4488 * dbxout.c (dbxout_symbol): Adjust fall through comment.
4489 * df-scan.c (df_uses_record): Likewise.
4490 * dojump.c (do_jump): Add FALLTHRU.
4491 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
4492 comment.
4493 (resolve_args_picking_1): Adjust fall through comment.
4494 (loc_list_from_tree_1): Likewise.
4495 * expmed.c (make_tree): Likewise.
4496 * expr.c (expand_expr_real_2): Add FALLTHRU.
4497 (expand_expr_real_1): Likewise. Adjust fall through comment.
4498 * fold-const.c (const_binop): Adjust fall through comment.
4499 (fold_truth_not_expr): Likewise.
4500 (fold_cond_expr_with_comparison): Add FALLTHRU.
4501 (fold_binary_loc): Likewise.
4502 (contains_label_1): Adjust fall through comment.
4503 (multiple_of_p): Likewise.
4504 * gcov-tool.c (process_args): Add FALLTHRU.
4505 * genattrtab.c (check_attr_test): Likewise.
4506 (write_test_expr): Likewise.
4507 * genconfig.c (walk_insn_part): Likewise.
4508 * genpreds.c (validate_exp): Adjust fall through comment.
4509 (needs_variable): Likewise.
4510 * gensupport.c (get_alternatives_number): Add FALLTHRU.
4511 (subst_dup): Likewise.
4512 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
4513 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
4514 (gimplify_scan_omp_clauses): Add FALLTHRU.
4515 (goa_stabilize_expr): Likewise.
4516 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
4517 through comment.
4518 * hsa-gen.c (get_address_from_value): Likewise.
4519 * ipa-icf.c (sem_function::hash_stmt): Likewise.
4520 * ira.c (ira_setup_alts): Add FALLTHRU.
4521 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
4522 comment.
4523 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
4524 * opts.c (common_handle_option): Likewise.
4525 * read-rtl.c (read_rtx_code): Likewise.
4526 * real.c (round_for_format): Likewise.
4527 * recog.c (asm_operand_ok): Likewise.
4528 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
4529 * reload1.c (set_label_offsets): Likewise.
4530 (eliminate_regs_1): Likewise.
4531 (reload_reg_reaches_end_p): Likewise.
4532 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
4533 (rtx_cost): Likewise.
4534 * sched-rgn.c (is_exception_free): Likewise.
4535 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
4536 * stor-layout.c (int_mode_for_mode): Likewise.
4537 * toplev.c (print_to_asm_out_file): Likewise.
4538 (print_to_stderr): Likewise.
4539 * tree-cfg.c (gimple_verify_flow_info): Likewise.
4540 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
4541 (chrec_fold_multiply): Likewise.
4542 (evolution_function_is_invariant_rec_p): Likewise.
4543 (for_each_scev_op): Likewise.
4544 * tree-data-ref.c (siv_subscript_p): Likewise.
4545 (get_references_in_stmt): Likewise.
4546 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
4547 (substitute_in_expr): Likewise.
4548 (type_cache_hasher::equal): Likewise.
4549 (walk_type_fields): Likewise.
4550 * var-tracking.c (adjust_mems): Add FALLTHRU.
4551 (set_dv_changed): Adjust fall through comment.
4552 * varasm.c (default_function_section): Add FALLTHRU.
4553
4554 2016-08-12 Marek Polacek <polacek@redhat.com>
4555
4556 PR c/7652
4557 * tree-complex.c (expand_complex_division): Add missing break.
4558
4559 2016-08-12 Richard Biener <rguenther@suse.de>
4560
4561 * passes.c (execute_todo): Do not push/pop TV_TODO.
4562 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
4563 (execute_one_pass): Likewise.
4564 * common.opt (ftime-report-details): New switch.
4565 * doc/invoke.texi (ftime-report-details): Document.
4566 * timevar.h (timer::print_row): Adjust signature.
4567 (timer::all_zero): New static helper.
4568 (timer::child_map_t): New typedef.
4569 (timer::time_var_def): Add children field.
4570 * timevar.c (timer::named_items::print): Adjust.
4571 (timer::~timer): Free timevar recorded children.
4572 (timer::pop_internal): When -ftime-report-details record
4573 time spent in sub-timevars.
4574 (timer::print_row): Adjust.
4575 (timer::print): Print sub-timevar stats, use all_zero.
4576 * timevar.def (TV_TODO): Remove.
4577
4578 2016-08-12 Richard Biener <rguenther@suse.de>
4579
4580 PR tree-optimization/72851
4581 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
4582 worklists to use bitmaps indexed in execution order.
4583 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
4584 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
4585 (cfg_blocks): Make a bitmap.
4586 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
4587 New globals.
4588 (cfg_blocks_empty_p): Adjust.
4589 (cfg_blocks_add): Likewise.
4590 (cfg_blocks_get): Likewise.
4591 (add_ssa_edge): Likewise.
4592 (add_control_edge): Likewise.
4593 (simulate_stmt): Likewise.
4594 (process_ssa_edge_worklist): Likewise.
4595 (simulate_block): Likewise.
4596 (ssa_prop_init): Compute PRE order and stmt UIDs.
4597 (ssa_prop_fini): Adjust.
4598 (ssa_propagate): Adjust.
4599
4600 2016-08-12 Richard Biener <rguenther@suse.de>
4601
4602 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
4603 the currently executable edges have fixed ranges. Always
4604 go through update_value_range.
4605
4606 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
4607
4608 PR debug/63240
4609 * langhooks-def.h
4610 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
4611 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
4612 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
4613 (LANG_HOOKS_DECLS): Add it.
4614 * langhooks.h (struct lang_hooks_for_decls): Add
4615 function_decl_defaulted. Const_tree-ify
4616 function_decl_explicit_p and function_decl_deleted_p.
4617 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
4618 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
4619 also at strict DWARF v5.
4620
4621 PR debug/55641
4622 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
4623 TYPE_QUAL_CONST in reference-typed decls.
4624
4625 PR debug/49366
4626 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
4627 in DW_OP_pieces, just enough to handle pointers to member
4628 functions.
4629 (gen_remaining_tmpl_value_param_die_attribute): Use a location
4630 expression on DWARFv5 if a constant value doesn't work.
4631
4632 2016-08-11 David Malcolm <dmalcolm@redhat.com>
4633
4634 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
4635 * selftest.c (selftest::test_assertions): New function.
4636 (selftest::selftest_c_tests): New function.
4637 * selftest.h (selftest::selftest_c_tests): New declaration.
4638
4639 2016-08-11 Richard Biener <rguenther@suse.de>
4640 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4641
4642 PR rtl-optimization/72855
4643 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
4644
4645 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4646
4647 PR target/72863
4648 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
4649 (vsx_store_<mode>): Likewise.
4650
4651 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
4652
4653 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
4654 TImode CONST_WIDE_INT store.
4655 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
4656
4657 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
4658
4659 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
4660 mode if unaligned SSE load and store are optimal.
4661
4662 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
4663
4664 PR tree-optimization/71083
4665 * tree-predcom.c (ref_at_iteration): Correctly align the
4666 reference type.
4667
4668 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4669
4670 * config/s390/s390-builtin-types.def: Add INT128 types.
4671 * config/s390/s390-builtins.def: Add INT128 variants for the add
4672 sub low-level builtins dealing with TImode.
4673 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
4674 via subreg when expanding a builtin.
4675 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
4676 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
4677 Fix comment.
4678 * config/s390/vecintrin.h: Adjust builtin names accordingly.
4679 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
4680 ("vec_addc<mode>", "vec_addc_u128"): Merge to
4681 "vacc<bhfgq>_<mode>".
4682 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
4683 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
4684 ("vec_subc<mode>", "vec_subc_u128"): Merge to
4685 "vscbi<bhfgq>_<mode>".
4686 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
4687 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
4688
4689 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4690
4691 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
4692
4693 2016-08-11 Bin Cheng <bin.cheng@arm.com>
4694
4695 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
4696 unused declaration.
4697 (vcond<v_cmp_mixed><mode>): Ditto.
4698 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4699
4700 2016-08-11 Bin Cheng <bin.cheng@arm.com>
4701
4702 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
4703 variable explicitly, also assert on it before use.
4704
4705 2016-08-11 Richard Biener <rguenther@suse.de>
4706
4707 PR tree-optimization/72772
4708 * cfgloopmanip.c (create_preheader): Use split_edge if there
4709 is a single loop entry, avoiding degenerate PHIs.
4710
4711 2016-08-11 Richard Biener <rguenther@suse.de>
4712
4713 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
4714 unconditional TODO_cleanup_cfg.
4715 (pass_thread_jumps::execute): Initialize loops, perform a CFG
4716 cleanup only if we threaded a jump.
4717
4718 2016-08-11 Alan Modra <amodra@gmail.com>
4719
4720 PR target/71680
4721 * lra-constraints.c (simplify_operand_subreg): Allow subreg
4722 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
4723 slow. Emit two reloads for slow mem case, first loading in
4724 fast innermode, then converting to required mode.
4725
4726 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
4727
4728 * config/rs6000/altivec.h (vec_extract_exp): New macro.
4729 (vec_extract_sig): New macro.
4730 (vec_insert_exp): New macro.
4731 (vec_test_data_class): New macro.
4732 (scalar_extract_exp): New macro.
4733 (scalar_extract_sig): New macro.
4734 (scalar_insert_exp): New macro.
4735 (scalar_test_data_class): New macro.
4736 (scalar_test_neg): New macro.
4737 (scalar_cmp_exp_gt): New macro.
4738 (scalar_cmp_exp_lt): New macro.
4739 (scalar_cmp_exp_eq): New macro.
4740 (scalar_cmp_exp_unordered): New macro.
4741 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
4742 to enforce constraint that operand is a 7-bit unsigned literal.
4743 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
4744 for power9 built-ins.
4745 (BU_P9V_VSX_2): Likewise.
4746 (BU_P9V_64BIT_VSX_2): Likewise.
4747 (VSEEDP): Add scalar extract exponent support.
4748 (VSEESP): Add scalar extract signature support.
4749 (VSTDCNDP): Add scalar test negative support.
4750 (VSTDCNSP): Likewise.
4751 (VSIEDP): Add scalar insert exponent support.
4752 (VSCEDPGT): Add scalar compare exponent greater than support.
4753 (VSCEDPLT): Add scalar compare exponent less than support.
4754 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
4755 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
4756 (VSTDCDP): Add scalar test data class support.
4757 (VSTDCSP): Likewise.
4758 (VSEEDP): Add overload support for scalar extract exponent
4759 operation.
4760 (VSESDP): Add overload support for scalar extract signature
4761 operation.
4762 (VSTDCN): Add overload support for scalar test negative
4763 operation.
4764 (VSTDCNDP): Add overload support for scalar test negative
4765 operation.
4766 (VSTDCNSP): Add overload support for scalar test negative
4767 operation.
4768 (VSIEDP): Add overload support for scalar insert exponent
4769 operation.
4770 (VSTDC): Add overload support for scalar test data class
4771 operation.
4772 (VSTDCDP): Add overload support for scalar test data class
4773 operation.
4774 (VSTDCSP): Add overload support for scalar test data class
4775 opreation.
4776 (VSCEDPGT): Add overload support for scalar compare exponent
4777 greater than operation.
4778 (VSCEDPLT): Add overload support for scalar compare exponent
4779 less than operation.
4780 (VSCEDPEQ): Add overload support for scalar compare exponent
4781 test-for-equality operation.
4782 (VSCEDPUO): Add overload support for scalar compare exponent
4783 test-for-unordered operation.
4784 (VEEDP): Add vector extract exponent support.
4785 (VEESP): Likewise.
4786 (VESDP): Add vector extract significand support.
4787 (VESSP): Likewise.
4788 (VIEDP): Add vector insert exponent support.
4789 (VIESP): Likewise.
4790 (VTDCDP): Add vector test data class support.
4791 (VTDCSP): Likewise.
4792 (VES): Add overload support for vector extract significand operation.
4793 (VESDP): Likewise.
4794 (VESSP): Likewise
4795 (VEE): Add overload support for vector extract exponent operation.
4796 (VEEDP): Likewise.
4797 (VEESP): Likewise.
4798 (VTDC): Add overload support for vector test data class operation.
4799 (VTDCDP): Likewise.
4800 (VTDCSP): Likewise.
4801 (VIE): Add overload support for vector insert exponent operation.
4802 (VIEDP): Likewise.
4803 (VIESP): Likewise.
4804 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4805 overloaded binary floating point functions.
4806 (altivec_resolve_overloaded_builtin): Improve error messages to
4807 distinguish between functions not supported in the current
4808 compiler configuration and functions that were invoked with an
4809 invalid parameter combination, and include the built-in function
4810 name in both error messages.
4811 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
4812 New prototype.
4813 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
4814 function.
4815 (rs6000_expand_binop_builtin): Add check to enforce that argument
4816 2 of the test data class operations is a 7-bit unsigned literal.
4817 (rs6000_invalid_builtin): Add code to issue an error message if a
4818 built-in function that requires the power9_vector and -m32
4819 command-line options is compiled without these options.
4820 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
4821 (UNSPEC_VSX_SXSIGDP): New value.
4822 (UNSPEC_VSX_SXSIGPDP): New value.
4823 (UNSPEC_VSX_SIEXPDP): New value.
4824 (UNSPEC_VSX_SCMPEXPDP): New value.
4825 (UNSPEC_VSX_STSTDC): New value.
4826 (UNSPEC_VSX_VXEXP): New value.
4827 (UNSPEC_VSX_VXSIG): New value.
4828 (UNSPEC_VSX_VIEXP): New value.
4829 (UNSPEC_VSX_VTSTDC): New value.
4830 (xsxexpdp): New insn for scalar extract exponent.
4831 (xsxsigdp): New insn for scalar extract significand.
4832 (xsiexpdp): New insn for scalar insert exponent.
4833 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
4834 (*xscmpexpdp): New insn for scalar compare exponents.
4835 (xststdc<Fvsx): New expansion for both single- and
4836 double-precision scalar test data class operations.
4837 (xststdcneg<Fvsx>): New expansion for both single- and
4838 double-precision scalar test for negative value operations.
4839 (*xststdc<Fvsx>): New insn for scalar test data class
4840 operation.
4841 (xvxexp<VSs>): New insn for single- and double-precision
4842 vector extract exponent operation.
4843 (xvxsig<VSs>): New insn for single- and double-precision
4844 vector extract significand operation.
4845 (xviexp<VSs>): New insn for single- and double-precision
4846 vector insert exponent operation.
4847 (xvtstdc<VSs>): New insn for single- and double-precision
4848 vector test data class operation.
4849 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4850 built-in functions to represent the Power9 binary floating-point
4851 support instructions.
4852
4853 2016-08-10 bin cheng <bin.cheng@arm.com>
4854
4855 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
4856
4857 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
4858 Renlin Li <renlin.li@arm.com>
4859 Bin Cheng <bin.cheng@arm.com>
4860
4861 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
4862 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
4863 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
4864 (aarch64_vcond_internal<mode><mode>): Delete pattern.
4865 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
4866 (vcond<v_cmp_result><mode>): Ditto.
4867 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
4868 (vcondu<mode><mode>): Ditto.
4869 (vcond<v_cmp_mixed><mode>): New pattern.
4870 (vcondu<mode><v_cmp_mixed>): New pattern.
4871 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
4872 of aarch64_vcond_internal.
4873
4874 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
4875 Renlin Li <renlin.li@arm.com>
4876 Bin Cheng <bin.cheng@arm.com>
4877
4878 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
4879 (vec_cmp<mode><v_cmp_result>): New pattern.
4880 (vec_cmpu<mode><mode>): New pattern.
4881 (vcond_mask_<mode><v_cmp_result>): New pattern.
4882
4883 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
4884
4885 PR tree-optimization/71734
4886 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
4887 REF_LOOP, invoke ref_indep_loop_p_1.
4888 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
4889 to ref_indep_loop_p.
4890 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
4891 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
4892 is inside LOOP, do not cache dpendence value for loops with
4893 non-zero SAFELEN.
4894 (ref_indep_loop_p_2): Delete function.
4895 (can_sm_ref_p): Pass LOOP as additional argument to
4896 ref_indep_loop_p.
4897
4898 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4899
4900 PR target/72853
4901 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
4902 being an offsettable address.
4903
4904 2016-08-10 Martin Liska <mliska@suse.cz>
4905
4906 PR gcov-profile/58306
4907 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
4908 atomic variants of profile update functions.
4909
4910 2016-08-10 Martin Liska <mliska@suse.cz>
4911
4912 Cherry picked (and modified) from google-4_7 branch
4913 2012-12-26 Rong Xu <xur@google.com>
4914 * common.opt (fprofile-update): Add new flag.
4915 * coretypes.h: Define enum profile_update.
4916 * doc/invoke.texi: Document -fprofile-update.
4917 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
4918 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
4919 * tree-profile.c (gimple_init_edge_profiler): Generate
4920 also atomic profiler update.
4921 (gimple_gen_edge_profiler): Likewise.
4922
4923 2016-08-10 David Malcolm <dmalcolm@redhat.com>
4924
4925 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
4926 stack_usage_file to NULL after fclose calls.
4927
4928 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4929
4930 PR target/71873
4931 * reload.c (push_reload): Compute subreg_in_class for
4932 subregs of constants and plus expressions. Remove special
4933 handling of SYMBOL_REFs.
4934
4935 2016-08-10 Alan Modra <amodra@gmail.com>
4936
4937 PR target/71680
4938 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
4939 SImode for TARGET_E500_DOUBLE when given SImode.
4940
4941 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
4942
4943 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
4944 unused variable __O.
4945
4946 2016-08-09 Martin Liska <mliska@suse.cz>
4947
4948 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
4949 _gcov_reset to __gcov_reset.
4950 * doc/gcov-tool.texi: Fix typo.
4951
4952 2016-08-09 Martin Liska <mliska@suse.cz>
4953
4954 * value-prof.c (gimple_divmod_values_to_profile): Do not
4955 instrument MOD histogram if a value is not a SSA name.
4956
4957 2016-08-09 Martin Liska <mliska@suse.cz>
4958
4959 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
4960 values.
4961
4962 2016-08-09 Renlin Li <renlin.li@arm.com>
4963
4964 PR middle-end/64971
4965 * calls.c (prepare_call_address): Convert funexp to Pmode when
4966 necessary.
4967 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
4968 (sibcall_value): Likewise.
4969
4970 2016-08-09 Marek Polacek <polacek@redhat.com>
4971
4972 PR c/7652
4973 * cselib.c (cselib_expand_value_rtx_1): Add return.
4974 * gengtype.c (dbgprint_count_type_at): Likewise.
4975 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
4976 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
4977
4978 2016-08-09 Martin Jambor <mjambor@suse.cz>
4979
4980 PR ipa/71981
4981 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
4982 if instance is a MEM_REF.
4983
4984 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
4985
4986 PR target/72843
4987 * config/i386/i386.md (*movtf_internal): Use
4988 lra_in_progress || reload_completed instead of !can_create_pseudo_p
4989 in the insn constraint.
4990 (*movxf_internal): Ditto.
4991 (*movdf_internal): Ditto.
4992 (*movsf_internal): Ditto.
4993
4994 2016-08-09 Bin Cheng <bin.cheng@arm.com>
4995
4996 PR tree-optimization/72772
4997 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
4998 for expanded base.
4999
5000 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5001
5002 PR tree-optimization/72772
5003 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
5004 parameter STOP.
5005 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
5006 parameter STOP and update calls. Move expand_simple_operations
5007 function call from here...
5008 (simplify_using_initial_conditions): ...to here. Delete parameter
5009 STOP.
5010 (tree_simplify_using_condition): Delete parameter STOP.
5011 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
5012 simplify_using_initial_conditions.
5013
5014 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
5015
5016 PR c/65345
5017 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
5018 Use create_tmp_var_raw instead of create_tmp_var.
5019
5020 2016-08-09 Richard Biener <rguenther@suse.de>
5021
5022 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
5023 Treat same SSA names related.
5024
5025 2016-08-09 Jakub Jelinek <jakub@redhat.com>
5026
5027 PR tree-optimization/72824
5028 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
5029 real_zerop is not negative.
5030
5031 2016-08-09 Richard Biener <rguenther@suse.de>
5032
5033 PR tree-optimization/71802
5034 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
5035 all merge opportunities with the predecessor.
5036
5037 2016-08-09 Richard Biener <rguenther@suse.de>
5038
5039 PR ipa/68273
5040 * ipa-prop.c (ipa_modify_formal_parameters): Build
5041 parameter types with natural alignment also for the
5042 over-aligned case.
5043
5044 2016-08-08 Andi Kleen <ak@linux.intel.com>
5045
5046 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
5047
5048 2016-08-08 David Malcolm <dmalcolm@redhat.com>
5049
5050 PR c/64955
5051 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
5052 do-nothing langhook.
5053 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
5054 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
5055 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
5056 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
5057
5058 2016-08-08 David Malcolm <dmalcolm@redhat.com>
5059
5060 PR bootstrap/72844
5061 * input.c: Ensure that HAVE_ICONV is defined.
5062
5063 2016-08-08 Jakub Jelinek <jakub@redhat.com>
5064
5065 PR middle-end/72781
5066 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
5067 private vars for lastprivate and for linear iterator.
5068
5069 PR middle-end/68762
5070 * omp-simd-clone.c: Include varasm.h.
5071 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
5072 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
5073 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
5074 update function name.
5075
5076 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
5077
5078 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
5079 (avr_diagnose_devicespecs_error): Remove.
5080 (avr_devicespecs_file): Remove composing absolute path for specfile
5081 and its verbose info. Remove conditions to check specs-file,
5082
5083 2016-08-08 Jakub Jelinek <jakub@redhat.com>
5084
5085 PR rtl-optimization/72821
5086 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
5087 just return false for them.
5088
5089 2016-08-08 Alan Modra <amodra@gmail.com>
5090
5091 PR target/72771
5092 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
5093 toc refs created during reload. Update function comment.
5094
5095 2016-08-08 Alan Modra <amodra@gmail.com>
5096
5097 PR target/72802
5098 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
5099 alternatives. Put loads first, then stores, and reg/reg moves
5100 within same class later. Delete attr length.
5101
5102 2016-08-08 Alan Modra <amodra@gmail.com>
5103
5104 PR target/72802
5105 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
5106 (mem_operand_ds_form): New predicate.
5107 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
5108 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
5109 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
5110 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
5111 (extendsfdf2_fpr): Replace o constraint with wY.
5112
5113 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
5114
5115 * tree-ssa-threadbackward.c: Include tree-inline.h
5116 (profitable_jump_thread_path): Use estimate_num_insns to estimate
5117 size of copied block; for cold paths reduce duplication.
5118 (find_jump_threads_backwards): Remove redundant tests.
5119 (pass_thread_jumps::gate): Enable for -Os.
5120
5121 2016-08-07 Jakub Jelinek <jakub@redhat.com>
5122
5123 PR c/72816
5124 * stor-layout.c (layout_decl): Fix up formatting.
5125 (relayout_decl): Allow DECL to be FIELD_DECL.
5126
5127 2016-08-07 Alan Modra <amodra@gmail.com>
5128
5129 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
5130
5131 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
5132
5133 * data-streamer-in.c (streamer_read_wide_int): New.
5134 (streamer_read_widest_int): Renamed function.
5135 * data-streamer-out.c (streamer_write_wide_int): New
5136 (streamer_write_widest_int): Renamed function.
5137 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
5138 data-stream-in.c.
5139 (input_cfg): Call renamed function.
5140 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
5141 data-stream-out.c.
5142 (output_cfg): Call renamed function.
5143 * data-streamer.h: Add declarations.
5144
5145 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5146
5147 * tree-ssa-ccp.c (extend_mask): New param sgn.
5148 Remove ORing with wi::mask.
5149 (get_default_value): Adjust call to extend_mask to pass sign.
5150 (evaluate_stmt): Likewise.
5151
5152 2016-08-06 Jakub Jelinek <jakub@redhat.com>
5153
5154 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
5155 INT64_MAX.
5156
5157 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5158
5159 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
5160 transform if operand's type is pointer to function or method.
5161
5162 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
5163
5164 PR tree-optimization/18046
5165 * tree-ssa-threadedge.c: Include cfganal.h.
5166 (simplify_control_statement_condition): If simplifying a
5167 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
5168 with the dominating ASSERT_EXPR before handing it off to VRP.
5169 Mention that a CASE_LABEL_EXPR may be returned.
5170 (thread_around_empty_blocks): Adjust to handle
5171 simplify_control_statement_condition() returning a
5172 CASE_LABEL_EXPR.
5173 (thread_through_normal_block): Likewise.
5174 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
5175 a switch statement by trying to determine which case label
5176 will be taken.
5177
5178 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
5179
5180 PR rtl-optimization/69847
5181 * lra-constraints.c (process_invariant_for_inheritance): Save
5182 pattern instead of src.
5183 (remove_inheritance_pseudos): Use the pattern. Add assert.
5184
5185 2016-08-05 David Malcolm <dmalcolm@redhat.com>
5186
5187 * input.c (string_concat::string_concat): New constructor.
5188 (string_concat_db::string_concat_db): New constructor.
5189 (string_concat_db::record_string_concatenation): New method.
5190 (string_concat_db::get_string_concatenation): New method.
5191 (string_concat_db::get_key_loc): New method.
5192 (class auto_cpp_string_vec): New class.
5193 (get_substring_ranges_for_loc): New function.
5194 (get_source_range_for_substring): New function.
5195 (get_num_source_ranges_for_substring): New function.
5196 (class selftest::lexer_test_options): New class.
5197 (struct selftest::lexer_test): New struct.
5198 (class selftest::ebcdic_execution_charset): New class.
5199 (selftest::ebcdic_execution_charset::s_singleton): New variable.
5200 (selftest::lexer_test::lexer_test): New constructor.
5201 (selftest::lexer_test::~lexer_test): New destructor.
5202 (selftest::lexer_test::get_token): New method.
5203 (selftest::assert_char_at_range): New function.
5204 (ASSERT_CHAR_AT_RANGE): New macro.
5205 (selftest::assert_num_substring_ranges): New function.
5206 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
5207 (selftest::assert_has_no_substring_ranges): New function.
5208 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
5209 (selftest::test_lexer_string_locations_simple): New function.
5210 (selftest::test_lexer_string_locations_ebcdic): New function.
5211 (selftest::test_lexer_string_locations_hex): New function.
5212 (selftest::test_lexer_string_locations_oct): New function.
5213 (selftest::test_lexer_string_locations_letter_escape_1): New function.
5214 (selftest::test_lexer_string_locations_letter_escape_2): New function.
5215 (selftest::test_lexer_string_locations_ucn4): New function.
5216 (selftest::test_lexer_string_locations_ucn8): New function.
5217 (selftest::uint32_from_big_endian): New function.
5218 (selftest::test_lexer_string_locations_wide_string): New function.
5219 (selftest::uint16_from_big_endian): New function.
5220 (selftest::test_lexer_string_locations_string16): New function.
5221 (selftest::test_lexer_string_locations_string32): New function.
5222 (selftest::test_lexer_string_locations_u8): New function.
5223 (selftest::test_lexer_string_locations_utf8_source): New function.
5224 (selftest::test_lexer_string_locations_concatenation_1): New
5225 function.
5226 (selftest::test_lexer_string_locations_concatenation_2): New
5227 function.
5228 (selftest::test_lexer_string_locations_concatenation_3): New
5229 function.
5230 (selftest::test_lexer_string_locations_macro): New function.
5231 (selftest::test_lexer_string_locations_stringified_macro_argument):
5232 New function.
5233 (selftest::test_lexer_string_locations_non_string): New function.
5234 (selftest::test_lexer_string_locations_long_line): New function.
5235 (selftest::test_lexer_char_constants): New function.
5236 (selftest::input_c_tests): Call the new test functions once per
5237 case within the line_table test matrix.
5238 * input.h (struct string_concat): New struct.
5239 (struct location_hash): New struct.
5240 (class string_concat_db): New class.
5241 * substring-locations.h: New header.
5242
5243 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
5244
5245 PR tree-optimization/72810
5246 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
5247 the type of the case labels when truncating.
5248
5249 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
5250
5251 PR Target/72819
5252 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
5253 (aarch64_fp16_ptr_type_node): Likewise.
5254 * config/aarch64/aarch64-simd-builtins.c
5255 (aarch64_fp16_ptr_type_node): Define.
5256 (aarch64_init_fp16_types): New, refactored out of...
5257 (aarch64_init_builtins): ...here, update to call
5258 aarch64_init_fp16_types.
5259 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
5260 HFmode.
5261 (aapcs_vfp_sub_candidate): Likewise.
5262
5263 2016-08-05 Martin Liska <mliska@suse.cz>
5264 Joshua Cranmer <Pidgeot18@gmail.com>
5265
5266 * gcov.c (line_t::has_block): New function.
5267 (enum loop_type): New enum.
5268 (handle_cycle): New function.
5269 (unblock): Likewise.
5270 (circuit): Likewise.
5271 (get_cycles_count): Likewise.
5272 (accumulate_line_counts): Use new loop detection algorithm.
5273
5274 2016-08-05 Martin Liska <mliska@suse.cz>
5275
5276 * gcov.c (output_intermediate_file): Rename
5277 function_info::line_next to next_file_fn.
5278 (process_file): Likewise.
5279 (read_graph_file): Likewise.
5280 (accumulate_line_counts): Likewise.
5281 (output_lines): Likewise.
5282
5283 2016-08-05 Richard Biener <rguenther@suse.de>
5284
5285 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
5286 restriction on threading to a loop header.
5287
5288 2016-08-05 Richard Biener <rguenther@suse.de>
5289
5290 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
5291 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
5292 adjust loop info accordingly.
5293
5294 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
5295
5296 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
5297 before folding call to __builtin_constant_p with parameters to false.
5298
5299 2016-08-05 Alan Modra <amodra@gmail.com>
5300
5301 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
5302 code accidentally committed 2016-05-02 providing class when given
5303 NO_REGS.
5304
5305 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
5306
5307 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
5308 the case label ranges that partially overlap with OP's value
5309 range.
5310
5311 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
5312
5313 PR target/72805
5314 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
5315 Cast builtin function result to __mmask16 instead of __mmask8.
5316 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5317 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
5318 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5319
5320 2016-08-04 David Malcolm <dmalcolm@redhat.com>
5321
5322 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
5323 (ASSERT_TRUE_AT): New macro.
5324 (ASSERT_FALSE): Reimplement in terms of...
5325 (ASSERT_FALSE_AT): New macro.
5326 (ASSERT_STREQ_AT): Fix typo in comment.
5327
5328 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
5329
5330 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
5331 labels are exhaustive, designate the label with the widest
5332 range to be the default label.
5333
5334 2016-08-04 Andrew Pinski <apinski@cavium.com>
5335
5336 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
5337 (thunderx_tunings): Use thunderx_vector_cost instead of
5338 generic_vector_cost.
5339
5340 2016-08-04 Martin Liska <mliska@suse.cz>
5341
5342 * gcov.c (main): Fix GNU coding style.
5343 (output_intermediate_file): Likewise.
5344 (process_file): Likewise.
5345 (generate_results): Likewise.
5346 (release_structures): Likewise.
5347 (create_file_names): Likewise.
5348 (find_source): Likewise.
5349 (read_graph_file): Likewise.
5350 (find_exception_blocks): Likewise.
5351 (canonicalize_name): Likewise.
5352 (make_gcov_file_name): Likewise.
5353 (mangle_name): Likewise.
5354 (accumulate_line_counts): Likewise.
5355 (output_branch_count): Likewise.
5356 (read_line): Likewise.
5357
5358 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
5359
5360 PR rtl-optimization/71779
5361 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
5362 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
5363 or if it was truncated.
5364
5365 PR rtl-optimization/70903
5366 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
5367
5368 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
5369
5370 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
5371 accessing SSA_NAME_PTR_INFO.
5372
5373 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
5374
5375 PR 70677
5376 * common/config/avr/avr-common.c (avr_option_optimization_table)
5377 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
5378
5379 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
5380
5381 PR 55181
5382 * config/avr/avr.md: New pattern to work around do_store_flag
5383 generating shift instructions for bit extractions.
5384
5385 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
5386
5387 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
5388 BITMAP_ALLOC.
5389 (add_equivalence): Likewise.
5390 (get_value_range): Allocate value range with vrp_value_range_pool.
5391 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
5392 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
5393
5394 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
5395
5396 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
5397 the default for the rs6000 port.
5398
5399 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
5400
5401 PR middle-end/71876
5402 * calls.c (special_function_p): Remove special handling of
5403 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
5404 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
5405 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
5406
5407 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
5408
5409 PR middle-end/72778
5410 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
5411 Don't stop on regular insns.
5412
5413 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
5414
5415 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
5416 size to DImode boundary.
5417 (nvptx_propagate): Likewise.
5418
5419 2016-08-03 Alan Modra <amodra@gmail.com>
5420
5421 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
5422 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
5423 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
5424 from -mefficient-unaligned-vector. Note that this affects fp too.
5425
5426 2016-08-03 Alan Modra <amodra@gmail.com>
5427
5428 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
5429 cost more.
5430
5431 2016-08-03 Alan Modra <amodra@gmail.com>
5432
5433 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
5434 to a reg. Localize vars.
5435
5436 2016-08-03 Alan Modra <amodra@gmail.com>
5437
5438 * config/rs6000/rs6000.opt: Remove negatives from help strings
5439 and comments.
5440
5441 2016-08-03 Alan Modra <amodra@gmail.com>
5442
5443 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
5444 Delete duplicated code.
5445
5446 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
5447
5448 PR middle-end/72778
5449 * lra-spills.c (regno_in_use_p): New.
5450 (lra_final_code_change): Use it.
5451
5452 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
5453
5454 PR rtl-optimization/69847
5455 * lra-int.h (struct lra-reg): Use restore_rtx instead of
5456 restore_regno.
5457 (lra_rtx_hash): New.
5458 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
5459 of restore_regno.
5460 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
5461 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
5462 * lra-spills.c (lra_final_code_change): Don't delete insn when the
5463 next insn is USE with the same reg as the current insn source.
5464 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
5465 of restore_regno.
5466 (lra_constraints_init): Call initiate_invariants.
5467 (lra_constraints_finish): Call finish_invariants.
5468 (struct invariant, invariant_t, invariant_ptr_t): New.
5469 (const_invariant_ptr_t, invariants, invariants_pool): New.
5470 (invariant_table, invariant_hash, invariant_eq_p): New.
5471 (insert_invariant, initiate_invariants, finish_invariants): New.
5472 (clear_invariants, invalid_invariant_regs): New.
5473 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
5474 instead of restore_regno.
5475 (invariant_p, process_invariant_for_inheritance): New.
5476 (inherit_in_ebb): Implement invariant inheritance.
5477 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
5478 (remove_inheritance_pseudos): Implement undoing invariant
5479 inheritance.
5480 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
5481 instead of restore_regno.
5482 * lra-assigns.c (regno_live_length): New.
5483 (reload_pseudo_compare_func): Use regno_live_length.
5484 (assign_by_spills): Use restore_rtx instead of restore_regno.
5485 (lra_assign): Ditto. Initiate regno_live_length.
5486
5487 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
5488
5489 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
5490 __builtin_aarch64_fmindf.
5491
5492 2016-08-02 Bin Cheng <bin.cheng@arm.com>
5493
5494 PR tree-optimization/34114
5495 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
5496 information for more control IVs.
5497
5498 2016-08-02 Bin Cheng <bin.cheng@arm.com>
5499
5500 PR tree-optimization/34114
5501 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
5502 PLUS_EXPR case. Handle SSA_NAME case.
5503
5504 2016-08-02 Tamar Christina <tamar.christina@arm.com>
5505
5506 * config/aarch64/aarch64-simd-builtins.def
5507 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
5508 (__builtin_aarch64_fmaxdf): Likewise.
5509 (__builtin_aarch64_smin_nandf): Likewise.
5510 (__builtin_aarch64_smax_nandf): Likewise.
5511 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
5512 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
5513 (<fmaxmin><mode>3): ...this.
5514 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
5515 (vminnm_f64): Likewise.
5516 (vmin_f64): Likewise.
5517 (vmax_f64): Likewise.
5518 * config/aarch64/iterators.md (FMAXMIN): Merge with...
5519 (FMAXMIN_UNS): ...this.
5520 (fmaxmin): Merged with
5521 (fmaxmin_op): ...this...
5522 (maxmin_uns_op): ...in to this.
5523
5524 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5525
5526 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5527 Add support for vec_extract on vector float, vector int, vector
5528 short, and vector char vector types.
5529 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5530 vector float, vector int, vector short, and vector char
5531 optimizations on 64-bit ISA 2.07 systems for both constant and
5532 variable element numbers.
5533 (rs6000_split_vec_extract_var): Likewise.
5534 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
5535 Altivec registers on ISA 2.07 and above.
5536 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
5537 which never was matched due to the split occuring before register
5538 allocation (and the code would not have worked on little endian
5539 systems if it did match). Allow extracts to go to the Altivec
5540 registers if ISA 2.07 (power8). Change from using "" around the
5541 C++ code to using {}'s.
5542 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
5543 vec_extracts when the vector is in memory.
5544 (vsx_extract_v4sf_var): New insn to optimize vector float
5545 vec_extracts when the element number is variable on 64-bit ISA
5546 2.07 systems.
5547 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
5548 for 64-bit ISA 2.07 as well as ISA 3.0.
5549 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
5550 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
5551 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
5552 optimize vector int, vector short, and vector char vec_extracts
5553 when the vector is in memory.
5554 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
5555 optimize vector int, vector short, and vector char vec_extracts
5556 when the element number is variable.
5557
5558 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
5559
5560 PR target/71948
5561 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
5562 does not overlap with other symbol flags.
5563
5564 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
5565
5566 * config/aarch64/aarch64.h (aarch64_frame):
5567 Remove padding0 and hardfp_offset. Add locals_offset,
5568 initial_adjust, callee_adjust, callee_offset and final_adjust.
5569 * config/aarch64/aarch64.c (aarch64_layout_frame):
5570 Remove unused padding0 and hardfp_offset initializations.
5571 Choose frame layout and set frame variables accordingly.
5572 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
5573 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
5574 (aarch64_pop_regs): Likewise.
5575 (aarch64_expand_prologue): Remove all decision code, just emit
5576 prolog according to frame variables.
5577 (aarch64_expand_epilogue): Remove all decision code, just emit
5578 epilog according to frame variables.
5579 (aarch64_initial_elimination_offset): Use offset to local/arg area.
5580
5581 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
5582
5583 PR target/72748
5584 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
5585 fix_debug_reg_uses after changing source register mode to
5586 V1TImode if source register is undefined.
5587
5588 2015-08-01 Alan Hayward <alan.hayward@arm.com>
5589
5590 PR tree-optimization/71818
5591 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
5592 with non invariant evolutions
5593
5594 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
5595
5596 PR target/72767
5597 * config/avr/avr.md (length) [branch]: Correct insn length
5598 attribute for forward branches.
5599
5600 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
5601
5602 * doc/extend.texi (AVR Built-in Functions): Document
5603 __builtin_avr_nops.
5604 * config/avr/builtins.def (NOPS): New.
5605 * config/avr/avr.c (avr_expand_nops): New static function.
5606 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
5607
5608 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5609
5610 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
5611 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
5612 addresses.
5613
5614 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
5615
5616 * config/aarch64/aarch64.c (vulcan_tunings): Update
5617 vulcan L1 cache_line_size.
5618
5619 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
5620
5621 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
5622 function that takes a vector memory address, a hard register, an
5623 element number and a temporary base register, and recreates an
5624 address that points to the appropriate element within the vector.
5625 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
5626 (rs6000_split_vec_extract_var): Add support for the target of a
5627 vec_extract with variable element number being a scalar memory
5628 location.
5629 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
5630 swappable.
5631 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
5632 vsx_extract_<mode>_load insn with a new insn that optimizes
5633 storing either element to a memory location, using scratch
5634 registers to pick apart the vector and reconstruct the address.
5635 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
5636 (vsx_extract_<mode>_store): Rework alternatives to more correctly
5637 support Altivec registers. Add support for ISA 3.0 Altivec d-form
5638 store instruction.
5639 (vsx_extract_<mode>_var): Add support for extracting a variable
5640 element number from memory.
5641
5642 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
5643
5644 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
5645 when testing for compares against constants of the form 0xabab.
5646
5647 2016-07-29 Bin Cheng <bin.cheng@arm.com>
5648
5649 PR tree-optimization/57558
5650 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
5651 function.
5652 (vect_loop_versioning): Support versioning with niter assumptions.
5653 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
5654 (vect_get_loop_niters): New parameter. Reimplement to support
5655 assumptions in loop niter info.
5656 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
5657 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
5658 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
5659 Support loop versioning for niters.
5660 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
5661 (vect_free_loop_info_assumptions): New function.
5662 (vectorize_loops): Free loop niter info for loops with flag
5663 LOOP_F_ASSUMPTIONS set if vectorization failed.
5664 * tree-vectorizer.h (struct _loop_vec_info): New field
5665 num_iters_assumptions.
5666 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
5667 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
5668 (LOOP_REQUIRES_VERSIONING): New macro.
5669 (vect_free_loop_info_assumptions): New decl.
5670
5671 2016-07-29 Bin Cheng <bin.cheng@arm.com>
5672
5673 * cfgloop.h (struct loop): New field constraints.
5674 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
5675 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
5676 functions.
5677 * cfgloop.c (alloc_loop): Initialize new field.
5678 * cfgloopmanip.c (copy_loop_info): Copy constraints.
5679 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
5680 Adjust niter analysis wrto loop constraints.
5681 * doc/loop.texi (@node Number of iterations): Add description for loop
5682 constraints.
5683
5684 2016-07-29 Marek Polacek <polacek@redhat.com>
5685
5686 PR c/7652
5687 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
5688 (ix86_expand_round_builtin): Likewise.
5689
5690 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
5691 Georg-Johann Lay <avr@gjlay.de>
5692
5693 PR rtl-optimization/71976
5694 * combine.c (get_last_value): Return 0 if the argument for which
5695 the function is called has a wider mode than the recorded value.
5696
5697 2016-07-29 Marek Polacek <polacek@redhat.com>
5698
5699 PR c/7652
5700 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
5701 (altivec_expand_st_builtin): Likewise.
5702
5703 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
5704
5705 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
5706 introduced in r238381.
5707
5708 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
5709
5710 PR middle-end/68217
5711 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
5712 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
5713
5714 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
5715
5716 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
5717 New declaration.
5718 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5719 Add support for vec_extract of vector double or vector long having
5720 a variable element number on 64-bit ISA 2.07 systems or newer.
5721 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
5722 Likewise.
5723 (rs6000_split_vec_extract_var): New function to split a
5724 vec_extract built-in function with variable element number.
5725 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
5726 swappable.
5727 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
5728 (UNSPEC_VSX_EXTRACT): Likewise.
5729 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
5730 direct move instructions to be generated on 64-bit ISA 2.07
5731 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
5732 instruction.
5733 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
5734 arguments for vec_extract variable element.
5735 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
5736 vec_extract with variable element on V2DFmode and V2DImode
5737 vectors.
5738 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
5739 -mupper-regs-df requirement, since it isn't needed.
5740 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
5741 do direct moves on 64-bit systems, which allows optimization of
5742 vec_extract on 64-bit ISA 2.07 systems and newer.
5743
5744 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
5745 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
5746
5747 * config/aarch64/aarch64.md
5748 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
5749 statement and type.
5750 (<optab>qihi2_aarch64): Likewise, and split into two.
5751 (extendqihi2_aarch64): New.
5752 (zero_extendqihi2_aarch64): New.
5753 * config/aarch64/iterators.md (ldrxt): Remove.
5754 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
5755 uxtb/uxth.
5756
5757 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
5758
5759 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
5760
5761 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
5762
5763 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
5764 (aarch64_push_reg): New function to push 1 or 2 registers.
5765 (aarch64_pop_reg): New function to pop 1 or 2 registers.
5766 (aarch64_expand_prologue): Use aarch64_push_regs.
5767 (aarch64_expand_epilogue): Use aarch64_pop_regs.
5768
5769 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
5770
5771 PR tree-optimization/71734
5772 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
5773 attribute instead of REF_LOOP and use it.
5774 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
5775 set it for Loops having non-zero safelen attribute.
5776 (ref_indep_loop_p): Pass zero as initial value for safelen.
5777
5778 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
5779
5780 PR middle-end/72657
5781 PR target/72683
5782 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
5783 call using chkp_gimple_call_builtin_p.
5784 (chkp_copy_bounds_for_assign): Likewise.
5785
5786 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5787
5788 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
5789 * config/arm/arm-protos.h (struct tune_params): Likewise.
5790 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
5791 (cortex_a9_sched_adjust_cost): Likewise.
5792 (fa726te_sched_adjust_cost): Likewise.
5793 (arm_adjust_cost): Likewise.
5794 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
5795 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
5796 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
5797 * config/i386/i386.c (ix86_adjust_cost): Likewise.
5798 * config/ia64/ia64.c: Likewise.
5799 * config/m68k/m68k.c: Likewise.
5800 * config/mep/mep.c (mep_adjust_cost): Likewise.
5801 * config/microblaze/microblaze.c (microblaze_adjust_cost):
5802 * Likewise.
5803 * config/mips/mips.c (mips_adjust_cost): Likewise.
5804 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
5805 * Likewise.
5806 * config/pa/pa.c (pa_adjust_cost): Likewise.
5807 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
5808 (rs6000_debug_adjust_cost): Likewise.
5809 * config/sh/sh.c (sh_adjust_cost): Likewise.
5810 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
5811 (hypersparc_adjust_cost): Likewise.
5812 (sparc_adjust_cost): Likewise.
5813 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
5814 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
5815 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
5816 * Likewise.
5817 * config/visium/visium.c (visium_adjust_cost): Likewise.
5818 * doc/tm.texi: Regenerate.
5819 * haifa-sched.c (dep_cost_1): Adjust.
5820 * target.def: Merge adjust_cost and adjust_cost_2.
5821
5822 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5823
5824 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
5825
5826 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5827
5828 * store-motion.c (struct st_expr): Make pattern_regs a vector.
5829 (extract_mentioned_regs): Append to a vector instead of
5830 returning a rtx_expr_list.
5831 (st_expr_entry): Adjust.
5832 (free_st_expr_entry): Likewise.
5833 (store_ops_ok): Likewise.
5834 (store_killed_in_insn): Likewise.
5835 (find_moveable_store): Likewise.
5836
5837 2016-07-28 Martin Liska <mliska@suse.cz>
5838
5839 PR gcov-profile/68025
5840 * tree-profile.c (tree_profiling): Respect
5841 no_profile_instrument_function attribute.
5842 * doc/extend.texi: Document no_profile_instrument_function
5843 attribute.
5844
5845 2016-07-28 Martin Liska <mliska@suse.cz>
5846
5847 PR rtl-optimization/70944
5848 * combine.c (make_compound_operation):
5849 Do not allow make_compound_operation for vector mode
5850
5851 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
5852
5853 PR middle-end/71994
5854 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
5855 before calling get_ops.
5856
5857 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
5858
5859 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
5860 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
5861 (BITS_PER_UNIT_LOG): Remove.
5862 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
5863 * expr.c (expand_assignment): Likewise.
5864 * stor-layout.c (initialize_sizetypes): Likewise.
5865
5866 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
5867
5868 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
5869 signature of rs6000_expand_vector_extract so that the element
5870 number is a RTX instead of a constant integer.
5871 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
5872 Likewise.
5873 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
5874 (altivec_expand_vec_ext_builtin): Likewise.
5875 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
5876 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
5877 MFVSRLD instruction.
5878
5879 2016-07-27 David Malcolm <dmalcolm@redhat.com>
5880
5881 * input.c (get_pure_location): Move here from tree.c.
5882 (make_location): Likewise. Add header comment.
5883 (selftest::test_accessing_ordinary_linemaps): Verify
5884 pure_location_p, make_location, get_location_from_adhoc_loc and
5885 get_range_from_loc.
5886 * input.h (get_pure_location): Move declaration here from tree.h.
5887 (get_finish): Likewise for inline function.
5888 (make_location): Likewise for declaration.
5889 * tree.c (get_pure_location): Move to input.c.
5890 (make_location): Likewise.
5891 * tree.h (get_pure_location): Move declaration to tree.h.
5892 (get_finish): Likewise for inline function.
5893 (make_location): Likewise for declaration.
5894
5895 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5896
5897 PR middle-end/71078
5898 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
5899
5900 2016-07-27 David Malcolm <dmalcolm@redhat.com>
5901
5902 * system.h (STATIC_ASSERT): Use static_assert if building
5903 with C++11 onwards.
5904
5905 2016-07-27 Richard Biener <rguenther@suse.de>
5906
5907 PR tree-optimization/72517
5908 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
5909 Revert change to not compute read-read dependences.
5910
5911 2016-07-27 Richard Biener <rguenther@suse.de>
5912
5913 * predict.c (set_even_probabilities): Make nedges unsigned.
5914
5915 2016-07-27 Martin Liska <mliska@suse.cz>
5916
5917 * predict.c (set_even_probabilities): Handle unlikely edges.
5918 (combine_predictions_for_bb): Likewise.
5919
5920 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
5921
5922 PR target/71869
5923 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
5924 __float128 support when we don't have hardware support, so that
5925 the IEEE built-in functions like isgreater, first call __unordkf3
5926 to make sure neither operand is a NaN, and if both operands are
5927 ordered, do the normal comparison.
5928
5929 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
5930
5931 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
5932 name.
5933 (extract_code_and_val_from_cond_with_ops): Verify that name is
5934 either cond_op0 or cond_op1.
5935
5936 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
5937
5938 PR tree-optimization/18046
5939 * genmodes.c (emit_mode_size_inline): Emit an assert that
5940 verifies that mode is a valid array index.
5941 (emit_mode_nuinits_inline): Likewise.
5942 (emit_mode_inner_inline): Likewise.
5943 (emit_mode_unit_size_inline): Likewise.
5944 (emit_mode_unit_precision_inline): Likewise.
5945 * tree-vrp.c: Include params.h.
5946 (find_switch_asserts): Register edge assertions for the default
5947 label which correspond to the anti-ranges of each case label.
5948 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
5949 * doc/invoke.texi: Document it.
5950
5951 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5952
5953 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
5954 and unnecessary call to gimple_bb.
5955
5956 2016-07-26 Richard Biener <rguenther@suse.de>
5957
5958 PR rtl-optimization/71984
5959 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
5960 for VOIDmode.
5961
5962 2016-07-26 Richard Biener <rguenther@suse.de>
5963
5964 PR middle-end/72517
5965 * expmed.c (extract_bit_field_1): Constrain the vector mode
5966 with element size matching the extraction mode size when
5967 choosing a better vector mode to do the extraction from.
5968
5969 2016-07-26 Richard Biener <rguenther@suse.de>
5970 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5971
5972 PR middle-end/70920
5973 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
5974 pattern.
5975
5976 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5977
5978 * tree-ssa-structalias.c (struct scc_info): Change types of
5979 members to auto_sbitmap and auto_vec.
5980 (scc_info::scc_info): New constructor.
5981 (scc_info::~scc_info): New destructor.
5982 (init_scc_info): Remove.
5983 (free_scc_info): Remove.
5984 (find_indirect_cycles): Adjust.
5985 (perform_var_substitution): Likewise.
5986 (free_var_substitution_info): Likewise.
5987
5988 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5989
5990 * tree-outof-ssa.c (struct elim_graph): Change type of members
5991 to auto_vec and auto_sbitmap.
5992 (elim_graph::elim_graph): New constructor.
5993 (delete_elim_graph): Remove.
5994 (expand_phi_nodes): Adjust.
5995
5996 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5997
5998 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
5999 (new_elim_graph): Adjust.
6000 (clear_elim_graph): Likewise.
6001 (delete_elim_graph): Likewise.
6002 (elim_graph_size): Likewise.
6003 (elim_graph_add_node): Likewise.
6004 (elim_graph_add_edge): Likewise.
6005 (elim_graph_remove_succ_edge): Likewise.
6006 (eliminate_name): Likewise.
6007 (eliminate_build): Likewise.
6008 (elim_forward): Likewise.
6009 (elim_unvisited_predecessor): Likewise.
6010 (elim_backward): Likewise.
6011 (elim_create): Likewise.
6012 (eliminate_phi): Likewise.
6013 (expand_phi_nodes): Likewise.
6014
6015 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6016
6017 * bt-load.c (compute_out): Use auto_sbitmap class.
6018 (link_btr_uses): Likewise.
6019 * cfganal.c (mark_dfs_back_edges): Likewise.
6020 (post_order_compute): Likewise.
6021 (inverted_post_order_compute): Likewise.
6022 (pre_and_rev_post_order_compute_fn): Likewise.
6023 (single_pred_before_succ_order): Likewise.
6024 * cfgexpand.c (pass_expand::execute): Likewise.
6025 * cfgloop.c (verify_loop_structure): Likewise.
6026 * cfgloopmanip.c (fix_bb_placements): Likewise.
6027 (remove_path): Likewise.
6028 (update_dominators_in_loop): Likewise.
6029 * cfgrtl.c (break_superblocks): Likewise.
6030 * ddg.c (check_sccs): Likewise.
6031 (create_ddg_all_sccs): Likewise.
6032 * df-core.c (df_worklist_dataflow): Likewise.
6033 * dse.c (dse_step3): Likewise.
6034 * except.c (eh_region_outermost): Likewise.
6035 * function.c (thread_prologue_and_epilogue_insns): Likewise.
6036 * gcse.c (prune_expressions): Likewise.
6037 (prune_insertions_deletions): Likewise.
6038 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
6039 * graph.c (draw_cfg_nodes_no_loops): Likewise.
6040 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
6041 * lcm.c (compute_earliest): Likewise.
6042 (compute_farthest): Likewise.
6043 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
6044 (unroll_loop_runtime_iterations): Likewise.
6045 (unroll_loop_stupid): Likewise.
6046 * lower-subreg.c (decompose_multiword_subregs): Likewise.
6047 * lra-lives.c: Likewise.
6048 * lra.c (lra): Likewise.
6049 * modulo-sched.c (schedule_reg_moves): Likewise.
6050 (optimize_sc): Likewise.
6051 (get_sched_window): Likewise.
6052 (sms_schedule_by_order): Likewise.
6053 (check_nodes_order): Likewise.
6054 (order_nodes_of_sccs): Likewise.
6055 (order_nodes_in_scc): Likewise.
6056 * recog.c (split_all_insns): Likewise.
6057 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
6058 * reload1.c (reload): Likewise.
6059 * sched-rgn.c (haifa_find_rgns): Likewise.
6060 (split_edges): Likewise.
6061 (compute_trg_info): Likewise.
6062 * sel-sched.c (init_seqno): Likewise.
6063 * store-motion.c (remove_reachable_equiv_notes): Likewise.
6064 * tree-into-ssa.c (update_ssa): Likewise.
6065 * tree-ssa-live.c (live_worklist): Likewise.
6066 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
6067 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6068 * Likewise.
6069 (try_peel_loop): Likewise.
6070 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
6071 * Likewise.
6072 * tree-ssa-pre.c (compute_antic): Likewise.
6073 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6074 * tree-stdarg.c (reachable_at_most_once): Likewise.
6075 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
6076 * var-tracking.c (vt_find_locations): Likewise.
6077
6078 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6079
6080 * sbitmap.h (auto_sbitmap): New class.
6081
6082 2016-07-26 Alan Modra <amodra@gmail.com>
6083
6084 PR target/72103
6085 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
6086 sri->t_icode.
6087
6088 2016-07-25 David Malcolm <dmalcolm@redhat.com>
6089
6090 * input.c (selftest::temp_source_file::temp_source_file): Fix
6091 missing "%s" in fprintf.
6092
6093 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
6094
6095 PR middle-end/71732
6096 * cselib.c (cselib_process_insn): Invalidate argument slots for
6097 const/pure calls.
6098
6099 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6100
6101 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
6102 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
6103 vmulxh_lane_f16, vmulxh_laneq_f16): New.
6104
6105 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6106
6107 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6108 * config/aarch64/aarch64.md (fma, fnma): Support HF.
6109 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
6110
6111 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6112
6113 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6114 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
6115 New.
6116 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
6117 (add<mode>3): Likewise.
6118 (sub<mode>3): Likewise.
6119 (mul<mode>3): Likewise.
6120 (div<mode>3): Likewise.
6121 (*div<mode>3): Likewise.
6122 (<fmaxmin><mode>3): Extend to HF.
6123 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
6124 (fabd<mode>3): Likewise.
6125 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
6126 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
6127 (aarch64_fmulx<mode>): Likewise.
6128 (aarch64_fac<optab><mode>): Likewise.
6129 (aarch64_frecps<mode>): Likewise.
6130 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
6131 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
6132 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
6133 (VSDQ_HSDI): Support HI.
6134 (fcvt_target, FCVT_TARGET): Likewise.
6135 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
6136 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
6137 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
6138 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
6139 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
6140 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
6141 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
6142 vrsqrtsh_f16): New.
6143
6144 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6145
6146 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
6147 * config/aarch64/aarch64-builtins.c (hi_UP): New.
6148 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6149 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
6150 mode.
6151 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
6152 (aarch64_cm<optab><mode>): Likewise.
6153 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
6154 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
6155 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6156 (sqrt<mode>2): Likewise.
6157 (*sqrt<mode>2): Likewise.
6158 (abs<mode>2): Likewise.
6159 (<optab><mode>hf2): New pattern for HF mode.
6160 (<optab>hihf2): Likewise.
6161 * config/aarch64/arm_neon.h: Include arm_fp16.h.
6162 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
6163 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
6164 Support HF mode.
6165 * config/aarch64/arm_fp16.h: New file.
6166 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
6167 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
6168 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
6169 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
6170 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
6171 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
6172 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
6173 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
6174 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
6175 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
6176 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
6177 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
6178 vsqrth_f16): New.
6179
6180 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6181
6182 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
6183 reduc_smin_scal_): Use VDQIF_F16.
6184 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
6185 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
6186 Use VHSDF.
6187 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
6188 * config/aarch64/iterators.md (VDQIF_F16): New.
6189 (vp): Support HF modes.
6190 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
6191 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
6192
6193 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6194
6195 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
6196 "*aarch64_mulx_elt_from_dup<mode>".
6197 (*aarch64_mul3_elt<mode>): Update schedule type.
6198 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
6199 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
6200 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
6201 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
6202 (f, fp): Support HF modes.
6203 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
6204 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
6205 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
6206 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
6207 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
6208 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
6209
6210 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6211
6212 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6213 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
6214 modes.
6215 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
6216 vfmsq_f16): New.
6217
6218 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6219
6220 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6221 * config/aarch64/aarch64-simd.md
6222 (aarch64_rsqrts<mode>): Extend to HF modes.
6223 (fabd<mode>3): Likewise.
6224 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
6225 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
6226 (aarch64_<maxmin_uns>p<mode>): Likewise.
6227 (<su><maxmin><mode>3): Likewise.
6228 (<maxmin_uns><mode>3): Likewise.
6229 (<fmaxmin><mode>3): Likewise.
6230 (aarch64_faddp<mode>): Likewise.
6231 (aarch64_fmulx<mode>): Likewise.
6232 (aarch64_frecps<mode>): Likewise.
6233 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
6234 (add<mode>3): Extend to HF modes.
6235 (sub<mode>3): Likewise.
6236 (mul<mode>3): Likewise.
6237 (div<mode>3): Likewise.
6238 (*div<mode>3): Likewise.
6239 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
6240 HF, V4HF and V8HF.
6241 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
6242 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
6243 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
6244 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
6245 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
6246 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
6247 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
6248 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
6249 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
6250 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
6251 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
6252 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
6253 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
6254 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
6255
6256 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6257
6258 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
6259 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6260 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
6261 (neg<mode>2): Likewise.
6262 (abs<mode>2): Likewise.
6263 (<frint_pattern><mode>2): Likewise.
6264 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
6265 (<optab><VDQF:mode><fcvt_target>2): Likewise.
6266 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
6267 (ftrunc<VDQF:mode>2): Likewise.
6268 (<optab><fcvt_target><VDQF:mode>2): Likewise.
6269 (sqrt<mode>2): Likewise.
6270 (*sqrt<mode>2): Likewise.
6271 (aarch64_frecpe<mode>): Likewise.
6272 (aarch64_cm<optab><mode>): Likewise.
6273 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
6274 HF, V4HF and V8HF.
6275 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
6276 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
6277 (stype): New.
6278 * config/aarch64/arm_neon.h (vdup_n_f16): New.
6279 (vdupq_n_f16): Likewise.
6280 (vld1_dup_f16): Use vdup_n_f16.
6281 (vld1q_dup_f16): Use vdupq_n_f16.
6282 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
6283 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
6284 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
6285 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
6286 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
6287 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
6288 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
6289 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
6290 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
6291 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
6292 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
6293 vsqrt_f16, vsqrtq_f16): New.
6294
6295 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6296
6297 * config/aarch64/aarch64-simd.md
6298 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
6299 (aarch64_ext<mode>): Likewise.
6300 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
6301 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
6302 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
6303 and V8HFmode.
6304 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
6305 float16x8_t.
6306 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
6307 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
6308 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
6309 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
6310 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
6311 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
6312 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
6313 New.
6314 (vmov_n_f16): Reimplement using vdup_n_f16.
6315 (vmovq_n_f16): Reimplement using vdupq_n_f16..
6316
6317 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6318
6319 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
6320 "frame_related_p". Generate CFA annotation when it's necessary.
6321 (aarch64_expand_prologue): Use aarch64_add_constant.
6322 (aarch64_expand_epilogue): Likewise.
6323 (aarch64_output_mi_thunk): Pass "false" when calling
6324 aarch64_add_constant.
6325
6326 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6327
6328 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
6329 sequences.
6330
6331 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6332
6333 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
6334 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
6335 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
6336 (aarch64_build_constant): Delete.
6337
6338 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
6339
6340 Revert
6341 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
6342
6343 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6344 flag_toplevel_reorder.
6345
6346 2016-07-25 Richard Biener <rguenther@suse.de>
6347
6348 * cgraph.c (cgraph_node::verify_node): Compare against builtin
6349 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
6350 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
6351 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
6352 (streamer_get_builtin_tree): Likewise.
6353 (streamer_write_builtin): Likewise.
6354 * lto-streamer.h (LTO_builtin_decl): Remove.
6355 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
6356 (lto_input_scc): Remove LTO_builtin_decl handling.
6357 (lto_input_tree_1): Liekwise.
6358 * lto-streamer-out.c (lto_output_tree_1): Remove special
6359 handling of builtins.
6360 (DFS::DFS): Likewise.
6361 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
6362 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
6363 assert.
6364 (streamer_write_builtin): Remove.
6365
6366 2016-07-25 Martin Liska <mliska@suse.cz>
6367
6368 * lto-cgraph.c (input_symtab): Don't call get_working_sets
6369 if flag_auto_profile is set to true.
6370
6371 2016-07-25 Martin Liska <mliska@suse.cz>
6372
6373 PR gcov-profile/71868
6374 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
6375 have a function with multiple latches, count them all.
6376
6377 2016-07-25 Martin Liska <mliska@suse.cz>
6378
6379 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
6380
6381 2016-07-25 Martin Liska <mliska@suse.cz>
6382
6383 PR tree-optimization/71987
6384 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
6385 just for SSA_NAMEs. Fix GNU coding style.
6386
6387 2016-07-25 Martin Liska <mliska@suse.cz>
6388
6389 PR gcov-profile/64874
6390 * gcov-io.h: Update command about file format.
6391 * gcov-iov.c (main): Adapt the numbering scheme.
6392
6393 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
6394
6395 PR middle-end/66726
6396 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
6397 whose result is used in PHI.
6398 (final_range_test_p): Likewise.
6399 (maybe_optimize_range_tests): Likewise.
6400
6401 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
6402
6403 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6404 Reformat two multi-line strings.
6405
6406 2016-07-22 Martin Sebor <msebor@redhat.com>
6407
6408 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
6409
6410 2016-07-22 Martin Sebor <msebor@redhat.com>
6411
6412 PR c/71560
6413 * doc/extend.texi (Compound Literals): Correct and clarify.
6414 (Cast to Union): Same.
6415
6416 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
6417
6418 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6419 comments to explain why certain error messages make mention of
6420 undocumented options.
6421 (rs6000_invalid_builtin): Change error messages to replace mention
6422 of undocumented options with mention of the -mcpu=power9 option
6423 that enables those undocumented options.
6424 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
6425 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
6426 definition of this macro to correct an existing error.
6427 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
6428 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
6429 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
6430 descriptions of built-in functions so that they depend on
6431 -mcpu=power9 instead of on the corresponding undocumented flags.
6432 * doc/invoke.texi (Option Summary): Remove all mention of newly
6433 undocumented flags.
6434 (IBM RS/6000 and PowerPC Options): Likewise.
6435 * doc/md.texi (Constraints for Particuliar Machines): Remove all
6436 mention of newly undocumented flags.
6437
6438 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
6439
6440 * ipa-cp.c (determine_versionability): Do not create constprop clones,
6441 when target_clones attribute is set.
6442
6443 2016-07-22 Bin Cheng <bin.cheng@arm.com>
6444
6445 * common.opt (funsafe-loop-optimizations): Mark ignore.
6446 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
6447 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
6448 related code.
6449 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
6450 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
6451
6452 2016-07-22 Bin Cheng <bin.cheng@arm.com>
6453
6454 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
6455 Parameter.
6456 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
6457 Parameter.
6458 (number_of_iterations_exit): Warn missed loop optimization for
6459 possible infinite loops.
6460
6461 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
6462
6463 PR target/71216
6464 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
6465 when to emit a ".machine" pseudo-op.
6466
6467 2016-07-22 Martin Liska <mliska@suse.cz>
6468
6469 PR gcov-profile/69028
6470 PR gcov-profile/62047
6471 * coverage.c (coverage_compute_lineno_checksum): Do not
6472 calculate checksum for fns w/o xloc.file.
6473 (coverage_compute_profile_id): Likewise.
6474
6475 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
6476
6477 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
6478 (avr_secondary_reload): ...and implementation.
6479 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
6480 * config/avr/avr.md (reload_in<mode>): Remove insns.
6481 (adjust_len) [lpm]: Remove insn attribute value.
6482 * config/avr/predicates.md (flash_operand): Remove insn predicate.
6483
6484 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
6485
6486 PR middle-end/71876
6487 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
6488 attribute.
6489 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
6490 * calls.c (special_function_p): Remove the special handling of the
6491 "__builtin_" prefix.
6492
6493 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
6494
6495 PR middle-end/71876
6496 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
6497 if STMT may be an alloca call.
6498 (gimple_alloca_call_p, alloca_call_p): Return only true for the
6499 builtin alloca call.
6500 * calls.h (gimple_maybe_alloca_call_p): New function.
6501 * tree-inline.c (inline_forbidden_p_stmt): Use
6502 gimple_maybe_alloca_call_p here.
6503
6504 2016-07-21 David Malcolm <dmalcolm@redhat.com>
6505
6506 * spellcheck-tree.c (best_macro_match::best_macro_match):
6507 Explictly specify the template arguments when invoking the base
6508 class constructor, to help older C++ compilers.
6509
6510 2016-07-21 Jakub Jelinek <jakub@redhat.com>
6511
6512 PR sanitizer/71953
6513 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
6514 before builtin_decl_implicit.
6515
6516 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
6517
6518 * optabs.c (emit_condiitonal_move): Short circuit for identical
6519 sources.
6520
6521 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
6522
6523 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
6524 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
6525 (noce_conversion_profitable_p): New.
6526 (noce_try_store_flag_constants): Use it.
6527 (noce_try_addcc): Likewise.
6528 (noce_try_store_flag_mask): Likewise.
6529 (noce_try_cmove): Likewise.
6530 (noce_try_cmove_arith): Likewise.
6531 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
6532 overwriting it.
6533 (noce_convert_multiple_sets): Move cost model to here, from...
6534 (bb_ok_for_noce_convert_multiple_sets) ...here.
6535 (noce_process_if_block): Update calls for above changes.
6536 (noce_find_if_block): Record new noce_if_info parameters.
6537
6538 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
6539
6540 * target.def (max_noce_ifcvt_seq_cost): New.
6541 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
6542 * doc/tm.texi: Regenerate.
6543 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
6544 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
6545 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
6546 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
6547 * doc/invoke.texi: Document new params.
6548
6549 2016-07-21 Richard Biener <rguenther@suse.de>
6550
6551 PR tree-optimization/71947
6552 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
6553 ranges have useful limit_vr information.
6554
6555 2016-07-21 Richard Biener <rguenther@suse.de>
6556
6557 * function-tests.c (build_trivial_generic_function): Set
6558 BLOCK_SUPERCONTEXT of DECL_INITIAL.
6559 * omp-low.c (create_omp_child_function): Likewise.
6560 (grid_expand_target_grid_body): Likewise.
6561 * cgraphunit.c (init_lowered_empty_function): Likewise.
6562 (cgraph_node::expand_thunk): Likewise.
6563 * tree-parloops.c (create_loop_fn): Likewise.
6564 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
6565
6566 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6567
6568 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
6569 in comment.
6570
6571 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
6572
6573 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
6574 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
6575 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
6576 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
6577 values for insn attribute.
6578 * config/avr/avr.c (avr_out_insert_notbit): New function.
6579 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
6580 ADJUST_LEN_INSV_NOTBIT_0/_7.
6581 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
6582
6583 2016-07-21 Bin Cheng <bin.cheng@arm.com>
6584
6585 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
6586 (chrec_convert_1, chrec_convert): Ditto.
6587 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
6588 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
6589 * tree-vrp.c (adjust_range_with_scev): Ditto.
6590 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
6591 (scev_var_range_cant_overflow): New function.
6592 (scev_probably_wraps_p): New parameter. Call above function.
6593 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
6594
6595 2016-07-21 Bin Cheng <bin.cheng@arm.com>
6596
6597 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
6598 by removing computation of may_be_zero.
6599
6600 2016-07-21 Jakub Jelinek <jakub@redhat.com>
6601
6602 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
6603
6604 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
6605
6606 Improving concepts performance and diagnostics.
6607 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
6608 for constraint satisfaction and subsumption.
6609 * timevar.h (auto_timevar): New constructor that matches the push/pop
6610 pattern of usage in pt.c.
6611
6612 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
6613
6614 * hwint.h (HOST_WIDE_INT_0): New define.
6615 (HOST_WIDE_INT_0U): Ditto.
6616 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
6617 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
6618 * simplify-rtx.c: Ditto.
6619 * tree-object-size.c: Ditto.
6620
6621 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6622
6623 * config/s390/s390.c (s390_encode_section_info): Remove mode size
6624 check.
6625
6626 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
6627
6628 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
6629 * combine.c: Use HOST_WIDE_INT_M1U instead of
6630 ~(unsigned HOST_WIDE_INT) 0.
6631 * double-int.h: Ditto.
6632 * dse.c: Ditto.
6633 * dwarf2asm.c:Ditto.
6634 * expmed.c: Ditto.
6635 * genmodes.c: Ditto.
6636 * match.pd: Ditto.
6637 * read-rtl.c: Ditto.
6638 * tree-ssa-loop-ivopts.c: Ditto.
6639 * tree-ssa-loop-prefetch.c: Ditto.
6640 * tree-vect-generic.c: Ditto.
6641 * tree-vect-patterns.c: Ditto.
6642 * tree.c: Ditto.
6643
6644 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6645
6646 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
6647 constant addresses outside [0,0xc0] into a register.
6648 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
6649 cases where the base address register is unused after.
6650 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
6651 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
6652 (avr_out_store_psi_reg_disp_tiny): Same.
6653
6654 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6655
6656 Implement attribute progmem on reduced Tiny cores by adding
6657 flash offset 0x4000 to respective symbols.
6658
6659 PR target/71948
6660 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
6661 documentation how it works on reduced Tiny cores.
6662 (AVR Named Address Spaces): No support for reduced Tiny.
6663 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
6664 (avr_address_tiny_pm_p): New static function.
6665 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
6666 if the address is in progmem.
6667 (avr_assemble_integer): Same.
6668 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
6669 for symbol_ref in progmem.
6670 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
6671 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
6672 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
6673
6674 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
6675
6676 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
6677 * configure: Regenerate.
6678 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
6679 (USE_THIN_ARCHIVES): New variable.
6680 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
6681 this archive as a thin archive.
6682
6683 2016-07-20 David Malcolm <dmalcolm@redhat.com>
6684
6685 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
6686 same location as last time, don't skip if we have fix-it hints.
6687 Clarify the skipping logic by converting it from one "if" clause
6688 to repeated "if" clauses.
6689 * spellcheck-tree.c: Include "cpplib.h".
6690 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
6691 (best_macro_match::best_macro_match): New constructor.
6692 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
6693 Move here from c/c-decl.c.
6694 (class best_macro_match): Move here from c/c-decl.c, converting
6695 from a typedef to a subclass, gaining a ctor.
6696
6697 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6698
6699 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
6700 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
6701 define...
6702 (avr_addr_space_diagnose_usage): ...and implementation.
6703 (avr_addr_space_supported_p): New function.
6704 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
6705 report bad address space usage if that space is supported.
6706 (avr_insert_attributes): Same. No more complain about unsupported
6707 address spaces.
6708 * config/avr/avr-c.c (tm_p.h): Include it.
6709 (avr_cpu_cpp_builtins): Only define addr-space related built-in
6710 macro if avr_addr_space_supported_p.
6711
6712 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
6713
6714 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6715 flag_toplevel_reorder.
6716
6717 2016-07-20 David Malcolm <dmalcolm@redhat.com>
6718
6719 * gcc-rich-location.c
6720 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
6721 a const char *.
6722 * gcc-rich-location.h
6723 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
6724
6725 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6726
6727 * target.def (addr_space): Add new diagnose_usage to hook vector.
6728 * targhooks.c (default_addr_space_diagnose_usage): Add default
6729 implementation and...
6730 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
6731 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
6732 is some address space, call targetm.addr_space.diagnose_usage.
6733 * doc/tm.texi.in (Named Address Spaces): Add anchor for
6734 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
6735 * doc/tm.texi: Regenerate.
6736
6737 2016-07-20 Martin Liska <mliska@suse.cz>
6738
6739 PR middle-end/71898
6740 * graphite-isl-ast-to-gimple.c (later_of_the_two):
6741 Properly handly PHI stmts.
6742
6743 2016-07-20 Bin Cheng <bin.cheng@arm.com>
6744
6745 PR tree-optimization/71503
6746 PR tree-optimization/71683
6747 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
6748 and break.
6749
6750 2016-07-20 Martin Liska <mliska@suse.cz>
6751
6752 * doc/invoke.texi (-fipa-ra): Document when the option is
6753 disabled. Fix a typo.
6754
6755 2016-07-20 Martin Liska <mliska@suse.cz>
6756
6757 * Makefile.in: Include fibonacci_heap.c
6758 * fibonacci_heap.c: New file.
6759 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
6760 (fibonacci_heap::union_with): Fix deletion of the second heap.
6761 * selftest-run-tests.c (selftest::run_tests): Incorporate
6762 fibonacci heap tests.
6763 * selftest.h: Declare fibonacci_heap_c_tests.
6764
6765 2016-07-20 Martin Liska <mliska@suse.cz>
6766
6767 * selftest-run-tests.c (selftest::run_tests): New function.
6768 * selftest.h (sreal_c_tests): Declare.
6769 * sreal.c (sreal_verify_basics): New function.
6770 (verify_aritmetics): Likewise.
6771 (sreal_verify_arithmetics): Likewise.
6772 (verify_shifting): Likewise.
6773 (sreal_verify_shifting): Likewise.
6774 (void sreal_c_tests): Likewise.
6775
6776 2016-07-19 Jakub Jelinek <jakub@redhat.com>
6777
6778 PR rtl-optimization/71916
6779 * cfgrtl.c (contains_no_active_insn_p): Return false also for
6780 bb which have a single succ fake edge.
6781
6782 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
6783
6784 PR debug/71855
6785 * dwarf2out.c (gen_subprogram_die): Only call
6786 gen_unspecified_parameters_die while dumping early dwarf.
6787
6788 2016-07-19 Jakub Jelinek <jakub@redhat.com>
6789
6790 PR middle-end/71874
6791 * gimple-fold.c (fold_builtin_memory_op): Use
6792 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
6793
6794 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
6795
6796 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
6797 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
6798 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
6799 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
6800 * combine.c: Ditto.
6801 * cse.c: Ditto.
6802 * dojump.c: Ditto.
6803 * double-int.c: Ditto.
6804 * dse.c: Ditto.
6805 * dwarf2out.c: Ditto.
6806 * expmed.c: Ditto.
6807 * expr.c: Ditto.
6808 * fold-const.c: Ditto.
6809 * function.c: Ditto.
6810 * fwprop.c: Ditto.
6811 * genmodes.c: Ditto.
6812 * hwint.c: Ditto.
6813 * hwint.h: Ditto.
6814 * ifcvt.c: Ditto.
6815 * loop-doloop.c: Ditto.
6816 * loop-invariant.c: Ditto.
6817 * loop-iv.c: Ditto.
6818 * match.pd: Ditto.
6819 * optabs.c: Ditto.
6820 * real.c: Ditto.
6821 * reload.c: Ditto.
6822 * rtlanal.c: Ditto.
6823 * simplify-rtx.c: Ditto.
6824 * stor-layout.c: Ditto.
6825 * toplev.c: Ditto.
6826 * tree-ssa-loop-ivopts.c: Ditto.
6827 * tree-vect-generic.c: Ditto.
6828 * tree-vect-patterns.c: Ditto.
6829 * tree.c: Ditto.
6830 * tree.h: Ditto.
6831 * ubsan.c: Ditto.
6832 * varasm.c: Ditto.
6833 * wide-int-print.cc: Ditto.
6834 * wide-int.cc: Ditto.
6835 * wide-int.h: Ditto.
6836
6837 2016-07-19 David Malcolm <dmalcolm@redhat.com>
6838
6839 * selftest.c (selftest::assert_streq): Handle NULL values of
6840 val_actual and val_expected.
6841
6842 2016-07-19 Martin Jambor <mjambor@suse.cz>
6843
6844 PR fortran/71688
6845 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
6846 rather than cgraph_create_node to get a call graph node.
6847
6848 2016-07-19 Richard Biener <rguenther@suse.de>
6849
6850 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
6851 handle all tcc_constant bases and valueize SSA names.
6852 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
6853 tcc_constant bases.
6854
6855 2016-07-19 David Malcolm <dmalcolm@redhat.com>
6856
6857 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
6858 the flags of the exit block and bb2, not just the entry block.
6859
6860 2016-07-19 Richard Biener <rguenther@suse.de>
6861
6862 PR tree-optimization/71901
6863 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
6864 align member, group stuff with the bitfield.
6865 (vn_ref_op_align_unit): New inline.
6866 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
6867 record element alignment and operand 3 unchanged.
6868 (ao_ref_init_from_vn_reference): Adjust.
6869 (valueize_refs_1): Likewise.
6870 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6871
6872 2016-07-19 Richard Biener <rguenther@suse.de>
6873
6874 PR tree-optimization/71908
6875 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
6876 symbolic constants in a more reliable way.
6877
6878 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
6879
6880 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
6881 comment.
6882 (vect_update_inits_of_drs): Likewise.
6883 (vect_create_cond_for_alias_checks): Likewise.
6884 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
6885
6886 2016-07-19 Richard Biener <rguenther@suse.de>
6887
6888 PR lto/71907
6889 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
6890 with an abstract origin that is not an inlined function outer
6891 scope add a self-reference as abstract origin.
6892 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
6893
6894 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6895
6896 PR target/71493
6897 * config/rs6000/rs6000.c (rs6000_function_value): Fix
6898 unintentional System V.4 structure return breakage for structures
6899 with a single floating point element.
6900
6901 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
6902
6903 PR tree-optimization/71734
6904 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
6905 contains REF, use it to check safelen, assume that safelen value
6906 must be greater 1, fix style.
6907 (ref_indep_loop_p_2): Add REF_LOOP argument.
6908 (ref_indep_loop_p): Pass LOOP as additional argument to
6909 ref_indep_loop_p_2.
6910
6911 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
6912
6913 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
6914 allocation in the prologue.
6915 * explow.c (get_dynamic_stack_base): New function to return an address
6916 expression for the dynamic stack base.
6917 (get_dynamic_stack_size): New function to do the required dynamic stack
6918 space size calculations.
6919 (allocate_dynamic_stack_space): Use new functions.
6920 (align_dynamic_address): Move some code from
6921 allocate_dynamic_stack_space to new function.
6922 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
6923
6924 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6925
6926 * config/s390/s390.c (s390_encode_section_info): Always set
6927 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
6928 found.
6929
6930 2016-07-18 Richard Biener <rguenther@suse.de>
6931
6932 PR tree-optimization/71893
6933 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
6934 for sizetype cast added by array_ref_element_size.
6935 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6936
6937 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
6938
6939 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
6940 register parameters. Remove code to initialize argument pointer
6941 on TARGET_64BIT. Optimize call to _mcount when it can be reached
6942 using a pc-relative branch. Cleanup conditional code.
6943 * config/pa/pa.md (call_mcount): New expander.
6944 (call_mcount_nonpic): New insn.
6945 (call_mcount_pic): New insn and split.
6946 (call_mcount_pic_post_reload): New insn.
6947 (call_mcount_64bit): New insn and split.
6948 (call_mcount_64bit_post_reload): New insn.
6949
6950 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
6951
6952 * config/avr/predicates.md (const_m255_to_m1_operand): New.
6953 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
6954 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
6955 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
6956 (*usum_widenqihi3, *udiff_widenqihi3)
6957 (*addhi3_zero_extend.const): New combiner insns.
6958 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
6959 just 1 bit is affected.
6960 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
6961 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
6962
6963 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
6964
6965 * omp-low.c (lower_omp_target): Mark data clauses with
6966 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
6967 zero-length subarrays.
6968
6969 2016-07-15 Richard Biener <rguenther@suse.de>
6970
6971 PR tree-optimization/71881
6972 * tree-loop-distribution.c (destroy_loop): Remove blocks in
6973 reverse DOM order to make debug temp generation happy.
6974
6975 2016-07-15 Richard Biener <rguenther@suse.de>
6976
6977 PR tree-optimization/71887
6978 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
6979 verify it is not zero for division / modulo handling.
6980 (value_replacement): Adjust.
6981
6982 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
6983 Julian Brown <julian@codesourcery.com>
6984
6985 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
6986 * config/aarch64/aarch64-cost-tables.h
6987 (vulcan_extra_costs): New variable.
6988 * config/aarch64/aarch64.c
6989 (vulcan_addrcost_table): Likewise.
6990 (vulcan_regmove_cost): Likewise.
6991 (vulcan_vector_cost): Likewise.
6992 (vulcan_branch_cost): Likewise.
6993 (vulcan_tunings): Likewise.
6994
6995 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
6996
6997 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
6998 (output_in_order): Loop over undefined variables too. Output them
6999 via assemble_undefined_decl. Skip variables that correspond to hard
7000 registers or have value-exprs.
7001 * varpool.c (symbol_table::output_variables): Handle undefined
7002 variables together with defined ones.
7003
7004 2016-07-15 Richard Biener <rguenther@suse.de>
7005
7006 * tree-ssa-pre.c (get_representative_for): Make sure to return
7007 the value number of SSA names.
7008 (phi_translate_1): get_representative_for cannot return NULL.
7009 (do_pre_regular_insertion): Remove redundant call to
7010 fully_constant_expression.
7011 (do_pre_partial_partial_insertion): Likewise.
7012
7013 2016-07-15 Bin Cheng <bin.cheng@arm.com>
7014
7015 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
7016 (derive_simple_iv_with_niters): New function.
7017 (simple_iv): Rewrite using simple_iv_with_niters.
7018 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
7019 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7020 function.
7021 (number_of_iterations_exit): Rewrite using above function.
7022 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7023 Decl.
7024
7025 2016-07-15 Richard Biener <rguenther@suse.de>
7026
7027 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
7028 vec_construct cost.
7029
7030 2016-07-14 Jakub Jelinek <jakub@redhat.com>
7031
7032 PR tree-optimization/71872
7033 * tree-data-ref.c (get_references_in_stmt): Ignore references
7034 with is_gimple_constant get_base_address.
7035
7036 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
7037
7038 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
7039 (TARGET_HAVE_LDACQD): New macro.
7040 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
7041 than TARGET_HAVE_LDACQ.
7042 (arm_load_acquire_exclusivedi): Likewise.
7043 (arm_store_release_exclusivedi): Likewise.
7044
7045 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
7046
7047 PR rtl-optimization/71878
7048 * lra-constraints.c (match_reload): Pass information about other
7049 output operands. Create new unique register value if matching input
7050 operand shares same register value as output operand being considered.
7051 (curr_insn_transform): Record output operands already processed.
7052
7053 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7054
7055 PR target/65951
7056 PR tree-optimization/70923
7057 * tree-vect-patterns.c: Include mult-synthesis.h.
7058 (target_supports_mult_synth_alg): New function.
7059 (synth_lshift_by_additions): Likewise.
7060 (apply_binop_and_append_stmt): Likewise.
7061 (vect_synth_mult_by_constant): Likewise.
7062 (target_has_vecop_for_code): Likewise.
7063 (vect_recog_mult_pattern): Use above functions to synthesize vector
7064 multiplication by integer constants.
7065
7066 2016-07-14 Alan Modra <amodra@gmail.com>
7067
7068 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
7069 gpr alternatives. Correct '*' placement on Y,r alternative.
7070 Add '*' on operand 1 of r,r alternative.
7071
7072 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7073
7074 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
7075 * expmed.h: ... Here.
7076
7077 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
7078
7079 * gimple.h (stmt_can_terminate_bb_p): New function.
7080 * tree-cfg.c (need_fake_edge_p): Rename to ...
7081 (stmt_can_terminate_bb_p): ... this; return true if stmt can
7082 throw external; handle const and pure calls.
7083 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
7084
7085 2016-07-14 Richard Biener <rguenther@suse.de>
7086
7087 PR tree-optimization/71866
7088 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
7089 (do_hoist_insertion): Avoid endless recursion when we
7090 didn't insert anything because we managed to simplify
7091 things down to a constant or SSA name.
7092 (fully_constant_expression): Re-write in terms of ...
7093 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
7094 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
7095 vn_nary_build_or_lookup_1.
7096 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
7097 (vn_nary_build_or_lookup): ... this which now wraps it.
7098
7099 2016-07-14 Alan Modra <amodra@gmail.com>
7100
7101 PR target/71733
7102 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
7103 with p9_vector override before power9-dform override.
7104
7105 2016-07-13 Andi Kleen <ak@linux.intel.com>
7106
7107 * value-prof.c (gimple_value_profile_transformations): Don't run
7108 when auto_profile is on.
7109
7110 2016-07-13 Andi Kleen <ak@linux.intel.com>
7111
7112 * auto-profile.c (update_inlined_ind_target,
7113 afdo_indirect_call): Print information to dump file.
7114
7115 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
7116
7117 * genrecog.c (special_predicate_operand_p): New function.
7118 (predicate_name): Move function.
7119 (validate_pattern): Don't warn about missing mode for all
7120 define_special_predicate predicates.
7121
7122 2016-07-13 Bin Cheng <bin.cheng@arm.com>
7123
7124 * tree-vect-data-refs.c (vect_no_alias_p): New function.
7125 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
7126 resolve alias checks which are known at compilation time.
7127 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
7128 alias checks are resolved. Move dump info for too many runtime
7129 alias checks to here...
7130 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
7131
7132 2016-07-13 Richard Biener <rguenther@suse.de>
7133
7134 PR tree-optimization/24574
7135 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
7136 position and add shift, rotate, divison and modulo support
7137 for left zero.
7138 (value_replacement): Pass in argument position to absorbing_element_p.
7139
7140 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
7141
7142 PR ipa/71633
7143 * ipa-inline-transform.c (inline_call): Support
7144 instrumented thunks.
7145
7146 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7147
7148 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
7149 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
7150 divide feature.
7151 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
7152 Baseline. Make initial alternative TARGET_32BIT only.
7153 (udivsi3): Likewise.
7154 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
7155 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
7156 target.
7157
7158 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7159
7160 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
7161 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
7162 availability with TARGET_HAVE_MOVT.
7163 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
7164 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
7165 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
7166 UINTVAL.
7167 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
7168 extra instruction if MOVW is available. Use a cost variable
7169 incremented by COSTS_N_INSNS (1) when the condition match rather than
7170 returning an arithmetic expression based on COSTS_N_INSNS. Make
7171 constant with bottom half word zero cost 2 instruction if MOVW is
7172 available.
7173 * config/arm/arm.md (define_attr "arch"): Add v8mb.
7174 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
7175 target is ARMv8-M Baseline.
7176 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
7177 (arm_movtas_ze): Likewise.
7178 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
7179 alternative for constants satisfying j constraint.
7180 (thumb1_movsi_insn): Likewise.
7181 (movsi splitter for K alternative): Tighten condition to not trigger
7182 if movt is available and j constraint is satisfied.
7183 (Pe immediate splitter): Likewise.
7184 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
7185 constant fitting in an halfword to use MOVW.
7186 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
7187 effective target.
7188
7189 2016-07-13 Richard Biener <rguenther@suse.de>
7190
7191 PR middle-end/71104
7192 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
7193 gimplifying the LHS. Make sure to gimplify a returning twice
7194 call LHS without using SSA names.
7195
7196 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7197
7198 * tree-data-ref.c (find_data_references_in_stmt): Remove
7199 unnecessary call to vec::release.
7200 (graphite_find_data_references_in_stmt): Likewise.
7201 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
7202 * tree-vect-stmts.c (vectorizable_condition): Likewise.
7203
7204 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7205
7206 * cfgexpand.c (expand_used_vars): Make the type of a local
7207 variable auto_vec.
7208 * genmatch.c (lower_for): Likewise.
7209 * haifa-sched.c (haifa_sched_init): Likewise.
7210 (add_to_speculative_block): Likewise.
7211 (create_check_block_twin): Likewise.
7212 * predict.c (handle_missing_profiles): Likewise.
7213 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
7214 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
7215 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
7216 Likewise.
7217 (maybe_lower_iteration_bound): Likewise.
7218 * tree-ssa-sccvn.c (DFS): Likewise.
7219 * tree-stdarg.c (reachable_at_most_once): Likewise.
7220 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7221 (vectorizable_store): Likewise.
7222
7223 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7224
7225 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
7226 (sccvn_dom_walker): make cond_stack an auto_vec.
7227
7228 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7229
7230 * ree.c (struct ext_state): Make type of members auto_vec.
7231 (find_and_remove_re): Adjust.
7232
7233 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7234
7235 * cfgexpand.c (struct stack_vars_data): Make type of fields
7236 auto_vec.
7237 (expand_used_vars): Adjust.
7238
7239 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7240
7241 * ipa.c (record_cdtor_fn): Adjust.
7242 (build_cdtor_fns): Likewise.
7243 (ipa_cdtor_merge): Make static_ctors and static_dtors local
7244 variables.
7245
7246 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7247
7248 * genextract.c (struct accum_extract): Add constructor and make
7249 members auto_vec.
7250 (gen_insn): Adjust.
7251
7252 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7253
7254 * tree.c (struct free_lang_data_d): Add constructor and change
7255 types of members to ones that automatically manage resources.
7256 (fld_worklist_push): Adjust.
7257 (find_decls_types): Likewise.
7258 (find_decls_types_in_eh_region): Likewise.
7259 (free_lang_data_in_cgraph): Stop manually creating and
7260 destroying members of free_lang_data_d.
7261
7262 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
7263
7264 PR rtl-optimization/68961
7265 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
7266 peephole variant. Use sse_reg_operand predicates.
7267
7268 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
7269
7270 * config/i386/predicates.md (x86_64_immediate_operand)
7271 <case CONST_INT>: Remove unneeded truncation to DImode.
7272 <case CONST>: Ditto.
7273 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7274
7275 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7276
7277 PR target/71805
7278 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
7279 The xxperm and xxpermr instructions require that the 2nd input
7280 operand overlap with the output operand, and not the 1st.
7281 (altivec_vperm_v8hiv16qi): Likewise.
7282 (altivec_vperm_<mode>_uns_internal): Likewise.
7283 (altivec_vpermr_<mode>_internal): Likewise.
7284 (vperm_v8hiv4si): Likewise.
7285 (vperm_v16qiv8hi): Likewise.
7286
7287 2016-07-12 Nathan Sidwell <nathan@acm.org>
7288
7289 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
7290 when -mno-pic-data-is-text-relative is in effect, by default.
7291 * doc/invoke.texi (mpic-data-is-text-relative): Document new
7292 behavior and clarify.
7293
7294 2016-07-12 Martin Liska <mliska@suse.cz>
7295
7296 * params.def: Add avg-loop niter.
7297 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
7298 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
7299 * doc/invoke.texi: Document the new parameter.
7300
7301 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7302
7303 PR middle-end/71700
7304 * expr.c (store_constructor): Mask sign-extended bits when widening
7305 sub-word constructor element at the start of a word.
7306
7307 2016-07-12 Martin Liska <mliska@suse.cz>
7308
7309 * Makefile.in: Append rule for params-options.h.
7310 * params-options.h: New file.
7311
7312 2016-07-12 Martin Liska <mliska@suse.cz>
7313
7314 * ira-build.c (mark_loops_for_removal): Properly iterate
7315 loops.
7316
7317 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
7318 Richard Biener <rguenther@suse.de>
7319
7320 PR tree-optimization/23286
7321 PR tree-optimization/70159
7322 * doc/invoke.texi: Document -fcode-hoisting.
7323 * common.opt (fcode-hoisting): New flag.
7324 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
7325 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
7326 (do_regular_insertion): Rename to ...
7327 (do_pre_regular_insertion): ... this and amend general comments
7328 on insertion strathegy.
7329 (do_partial_partial_insertion): Rename to ...
7330 (do_pre_partial_partial_insertion): ... this.
7331 (do_hoist_insertion): New function.
7332 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
7333 and call do_hoist_insertion properly.
7334 (insert): Adjust.
7335 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
7336 (pass_pre::execute): Register hoist_insert stats.
7337
7338 2016-07-12 Jakub Jelinek <jakub@redhat.com>
7339
7340 PR middle-end/71716
7341 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
7342 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
7343 is different from mode's bitsize. Small cleanup.
7344
7345 2016-07-12 Richard Biener <rguenther@suse.de>
7346
7347 PR rtl-optimization/68961
7348 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
7349 to simplify to a non-constant.
7350
7351 2016-07-11 Jakub Jelinek <jakub@redhat.com>
7352
7353 PR middle-end/71758
7354 * omp-low.c (expand_omp_target): Gimplify device.
7355
7356 PR tree-optimization/71823
7357 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
7358 to get vec_oprnds2 from op2.
7359
7360 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
7361
7362 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
7363 Hoist common subexpressions.
7364 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7365
7366 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
7367
7368 PR target/71800
7369 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
7370 prevent generation of 'stxsiwx' on pre Power8 hardware.
7371
7372 2016-07-11 David Malcolm <dmalcolm@redhat.com>
7373
7374 * input.c: Include cpplib.h.
7375 (selftest::temp_source_file): New class.
7376 (selftest::temp_source_file::temp_source_file): New ctor.
7377 (selftest::temp_source_file::~temp_source_file): New dtor.
7378 (selftest::should_have_column_data_p): New function.
7379 (selftest::test_should_have_column_data_p): New function.
7380 (selftest::temp_line_table): New class.
7381 (selftest::temp_line_table::temp_line_table): New ctor.
7382 (selftest::temp_line_table::~temp_line_table): New dtor.
7383 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
7384 it to create a temp_line_table.
7385 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
7386 locations that are known to have column data.
7387 (selftest::line_table_case): New struct.
7388 (selftest::test_reading_source_line): Move tempfile handling
7389 to class temp_source_file.
7390 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
7391 (selftest::assert_token_loc_eq): New function.
7392 (ASSERT_TOKEN_LOC_EQ): New macro.
7393 (selftest::test_lexer): New function.
7394 (selftest::boundary_locations): New array.
7395 (selftest::input_c_tests): Call test_should_have_column_data_p.
7396 Loop over a test matrix of interesting values of location and
7397 default_range_bits, calling test_lexer on each case in the matrix.
7398 Move call to test_accessing_ordinary_linemaps into the matrix.
7399 * selftest.h (ASSERT_EQ): Reimplement in terms of...
7400 (ASSERT_EQ_AT): New macro.
7401
7402 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
7403
7404 PR target/71801
7405 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
7406 Don't convert TImode in debug insn.
7407
7408 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
7409
7410 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
7411 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
7412 (tree_type_common::lang_flag_7): New.
7413 (tree_type_common::spare): Reduce size.
7414 * tree.h (TYPE_ALIGN_OK): Remove.
7415 (TYPE_LANG_FLAG_7): New.
7416 (get_inner_reference): Adjust header.
7417 * print-tree.c (print_node): Adjust.
7418 * expr.c (get_inner_reference): Remove parameter keep_aligning.
7419 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
7420 calls to get_inner_reference.
7421 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
7422 handling of TYPE_ALIGN_OK.
7423 * builtins.c (get_object_alignment_2): Adjust call to
7424 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
7425 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
7426 TYPE_ALIGN_OK.
7427 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
7428 * cfgexpand.c (expand_debug_expr): Likewise.
7429 * dbxout.c (dbxout_expand_expr): Likewise.
7430 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
7431 loc_list_from_tree, fortran_common): Likewise.
7432 * fold-const.c (optimize_bit_field_compare,
7433 decode_field_reference, fold_unary_loc, fold_comparison,
7434 split_address_to_core_and_offset): Likewise.
7435 * gimple-laddress.c (execute): Likewise.
7436 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
7437 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
7438 * hsa-gen.c (gen_hsa_addr): Likewise.
7439 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
7440 * tsan.c (instrument_expr): Likewise.
7441 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
7442 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
7443 * tree-affine.c (tree_to_aff_combination,
7444 get_inner_reference_aff): Adjust calls to get_inner_reference.
7445 * tree-data-ref.c (split_constant_offset_1,
7446 dr_analyze_innermost): Likewise.
7447 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
7448 * tree-sra.c (ipa_sra_check_caller): Likewise.
7449 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
7450 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
7451 bswap_replace): Likewise.
7452 * tree-vect-data-refs.c (vect_check_gather,
7453 vect_analyze_data_refs): Likewise.
7454 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
7455 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
7456 TYPE_ALIGN_OK.
7457
7458 2016-07-11 David Malcolm <dmalcolm@redhat.com>
7459
7460 * Makefile.in (selftest-valgrind): New phony target.
7461 * function-tests.c (selftest::build_cfg): Delete pass instances
7462 created by the test.
7463 (selftest::convert_to_ssa): Likewise.
7464 (selftest::test_expansion_to_rtl): Likewise.
7465 * tree-cfg.c (selftest::test_linear_chain): Release dominator
7466 vectors.
7467 (selftest::test_diamond): Likewise.
7468
7469 2016-07-11 Richard Biener <rguenther@suse.de>
7470
7471 PR tree-optimization/71816
7472 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
7473 than replacing all of its operands.
7474
7475 2016-07-11 Alan Modra <amodra@gmail.com>
7476
7477 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
7478 (ctr<mode>): Add unspec.
7479 (ctr<mode>_internal*): Likewise.
7480
7481 2016-07-08 James Bowman <james.bowman@ftdichip.com>
7482
7483 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
7484 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
7485
7486 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
7487
7488 PR rtl-optimization/71621
7489 * lra-constraints.c (process_alt_operands): Check combination of
7490 reg class and mode.
7491
7492 2016-07-08 Jason Merrill <jason@redhat.com>
7493 Richard Biener <rguenther@suse.de>
7494
7495 P0145: Refining Expression Order for C++.
7496 * gimplify.c (initial_rhs_predicate_for): New.
7497 (gimplfy_modify_expr): Gimplify RHS before LHS.
7498
7499 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7500
7501 PR target/71297
7502 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7503 Allow standard error handling to take over when a wrong number
7504 of arguments is presented to __builtin_vec_ld () or
7505 __builtin_vec_st ().
7506
7507 2016-07-08 Jiong Wang <jiong.wang@arm.com>
7508
7509 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
7510 variants.
7511 (smin): Likewise.
7512 (fmax): New entry.
7513 (fmin): Likewise.
7514 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
7515 __builtin_aarch64_fmaxv2sf.
7516 (vmaxnmq_f32): Likewise.
7517 (vmaxnmq_f64): Likewise.
7518 (vminnm_f32): Likewise.
7519 (vminnmq_f32): Likewise.
7520 (vminnmq_f64): Likewise.
7521
7522 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
7523
7524 PR target/71806
7525 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
7526 enable -mfloat128-hardware by default.
7527 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
7528 that IEEE 128-bit hardware support needs.
7529 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7530 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
7531 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
7532 floating point requires.
7533 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7534 -mfloat128 and -mfloat128-hardware changes.
7535
7536 2016-07-08 Alan Hayward <alan.hayward@arm.com>
7537
7538 PR tree-optimization/71667
7539 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
7540
7541 2016-07-08 Martin Liska <mliska@suse.cz>
7542
7543 PR middle-end/71606
7544 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
7545 folding produces SAVE_EXPRs, thus return false for the type.
7546
7547 2016-07-07 Martin Liska <mliska@suse.cz>
7548
7549 * file-find.c (remove_prefix): New function.
7550 * file-find.h (remove_prefix): Declare the function.
7551 * gcc-ar.c (main): Skip a folder of the wrapper if
7552 a wrapped binary would point to the same file.
7553
7554 2016-07-07 Jan Hubicka <jh@suse.cz>
7555
7556 * tree-scalar-evolution.c (iv_can_overflow_p): export.
7557 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
7558 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
7559
7560 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
7561
7562 PR ipa/71624
7563 * ipa-inline-analysis.c (compute_inline_parameters): Set
7564 local.can_change_signature to false for intrumentation
7565 thunk callees.
7566
7567 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7568
7569 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
7570 with TARGET_HAVE_MOVT.
7571 (TARGET_HAVE_MOVT): Define.
7572 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
7573 availability with TARGET_HAVE_MOVT.
7574 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
7575 availability.
7576 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
7577 TARGET_THUMB2.
7578 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
7579 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
7580 * config/arm/constraints.md (define_constraint "j"): Use
7581 TARGET_HAVE_MOVT to check MOVT availability.
7582
7583 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7584
7585 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
7586
7587 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7588
7589 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
7590 (armv8-m.main): Likewise.
7591 (armv8-m.main+dsp): Likewise.
7592 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
7593 (FL_FOR_ARCH8M_MAIN): Likewise.
7594 * config/arm/arm-tables.opt: Regenerate.
7595 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
7596 armv8-m.main+dsp to BE8_LINK_SPEC.
7597 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
7598 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
7599 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
7600 Baseline and Mainline.
7601 (arm_option_override_internal): Also disable arm_restrict_it when
7602 !arm_arch_notm. Update comment for -munaligned-access to also cover
7603 ARMv8-M Baseline.
7604 (arm_file_start): Increase buffer size for printing architecture name.
7605 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
7606 and armv8-m.main+dsp.
7607 (mno-unaligned-access): Clarify that this is disabled by default for
7608 ARMv8-M Baseline architectures as well.
7609
7610 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7611
7612 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
7613 decide whether to prevent some libgcc routines being included for some
7614 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
7615 link between this condition and the one in
7616 libgcc/config/arm/lib1func.S.
7617
7618 2016-07-07 Richard Biener <rguenther@suse.de>
7619
7620 * tree-ssa-pre.c: Include alias.h.
7621 (compute_avail): If we have multiple VN_REFERENCEs with the
7622 same hashtable entry adjust that to make it a valid replacement
7623 for all of them with respect to alignment and aliasing
7624 when doing insertion.
7625 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
7626 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
7627
7628 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
7629
7630 PR target/70098
7631 PR target/71763
7632 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7633 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
7634 constraint.
7635
7636 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7637
7638 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
7639 (adjust_mems): Adjust.
7640 (adjust_insn): Likewise.
7641 (prepare_call_arguments): Likewise.
7642
7643 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7644
7645 * gcse.c (struct ls_expr): Make stores field a vector.
7646 (ldst_entry): Adjust.
7647 (free_ldst_entry): Likewise.
7648 (print_ldst_list): Likewise.
7649 (compute_ld_motion_mems): Likewise.
7650 (update_ld_motion_stores): Likewise.
7651
7652 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7653
7654 * gcse.c (struct ls_expr): Remove loads field.
7655 (ldst_entry): Adjust.
7656 (free_ldst_entry): Likewise.
7657 (print_ldst_list): Likewise.
7658 (compute_ld_motion_mems): Likewise.
7659
7660 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7661
7662 * store-motion.c (struct st_expr): Make antic_stores a vector.
7663 (st_expr_entry): Adjust.
7664 (free_st_expr_entry): Likewise.
7665 (print_store_motion_mems): Likewise.
7666 (find_moveable_store): Likewise.
7667 (compute_store_table): Likewise.
7668 (remove_reachable_equiv_notes): Likewise.
7669 (replace_store_insn): Likewise.
7670 (build_store_vectors): Likewise.
7671
7672 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7673
7674 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
7675 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
7676
7677 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
7678
7679 PR tree-optimization/71518
7680 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
7681 misalign also for outer loops with negative step.
7682
7683 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
7684
7685 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
7686 (cortex_a53_shift): Add mov_shift.
7687 (cortex_a53_shift_reg): Add new reservation for register shifts.
7688 (cortex_a53_alu): Remove bfm.
7689 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
7690 (cortex_a53_alu_extr): Add new reservation for EXTR.
7691 (bypasses): Improve bypass modelling.
7692
7693 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7694
7695 PR target/50739
7696 * config/avr/avr.c (avr_asm_select_section): Strip off
7697 SECTION_DECLARED from flags when calling get_section.
7698
7699 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7700
7701 * tree-vectorizer.h (vect_memory_access_type): Add
7702 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
7703 * tree-vect-stmts.c (compare_step_with_zero): New function.
7704 (perm_mask_for_reverse): Move further up file.
7705 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
7706 step is negative.
7707 (get_negative_load_store_type): New function.
7708 (get_load_store_type): Call it. Add an ncopies argument.
7709 (vectorizable_mask_load_store): Update call accordingly and
7710 remove tests for negative steps.
7711 (vectorizable_store, vectorizable_load): Likewise. Handle new
7712 memory_access_types.
7713
7714 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7715
7716 * tree-vectorizer.h (vect_memory_access_type): New enum.
7717 (_stmt_vec_info): Add a memory_access_type field.
7718 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
7719 (vect_model_store_cost): Take an access type instead of a boolean.
7720 (vect_model_load_cost): Likewise.
7721 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
7722 vect_model_store_cost and vect_model_load_cost.
7723 * tree-vect-stmts.c (vec_load_store_type): New enum.
7724 (vect_model_store_cost): Take an access type instead of a
7725 store_lanes_p boolean. Simplify tests.
7726 (vect_model_load_cost): Likewise, but for load_lanes_p.
7727 (get_group_load_store_type, get_load_store_type): New functions.
7728 (vectorizable_store): Use get_load_store_type. Record the access
7729 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
7730 (vectorizable_load): Likewise.
7731 (vectorizable_mask_load_store): Likewise. Replace is_store
7732 variable with vls_type.
7733
7734 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7735
7736 * tree-vectorizer.h (vect_grouped_load_supported): Add a
7737 single_element_p parameter.
7738 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
7739 Check the PR65518 case here rather than in vectorizable_load.
7740 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
7741 * tree-vect-stmts.c (vectorizable_load): Likewise.
7742
7743 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7744
7745 * tree-vectorizer.h (gather_scatter_info): New structure.
7746 (vect_check_gather_scatter): Return a bool rather than a decl.
7747 Replace return-by-pointer arguments with a single
7748 gather_scatter_info *.
7749 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
7750 (vect_analyze_data_refs): Update call accordingly.
7751 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
7752 (vectorizable_mask_load_store): Likewise. Also record the
7753 offset dt and vectype in the gather_scatter_info.
7754 (vectorizable_store): Likewise.
7755 (vectorizable_load): Likewise.
7756
7757 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7758
7759 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
7760 strided groups, use the cost of N scalar accesses instead
7761 of ncopies vector accesses.
7762 (vect_model_load_cost): Likewise.
7763
7764 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7765
7766 * tree-vect-stmts.c (vect_cost_group_size): Delete.
7767 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
7768 variable to indicate when once-per-group costs are being used.
7769 (vect_model_load_cost): Likewise. Fix comment and misindented code.
7770
7771 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7772
7773 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
7774 peeling-for-gaps condition.
7775
7776 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7777
7778 * config/s390/s390.c (s390_expand_vec_init): Force initializer
7779 element to register if it doesn't match general_operand.
7780
7781 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
7782 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7783
7784 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
7785 prototype.
7786 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
7787 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
7788 (SIGNBIT): New mode iterator.
7789 (Fsignbit): New mode attribute.
7790 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
7791 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
7792 when direct moves are available.
7793 (signbit<mode>2_dm): New define_insn_and_split).
7794 (signbit<mode>2_dm2): New define_insn.
7795
7796 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7797
7798 PR rtl-optimization/71594
7799 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
7800 into subregs of appropriate mode before trying to emit a conditional
7801 move.
7802
7803 2016-07-05 Jan Hubicka <jh@suse.cz>
7804
7805 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
7806 (simple_iv): Use it.
7807
7808 2016-07-05 Jan Hubicka <jh@suse.cz>
7809
7810 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
7811
7812 2016-07-05 Jiong Wang <jiong.wang@arm.com>
7813
7814 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
7815 "offmemok".
7816
7817 2016-07-05 Jan Hubicka <jh@suse.cz>
7818
7819 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
7820 IV can overflow.
7821
7822 2016-07-05 Richard Biener <rguenther@suse.de>
7823
7824 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
7825 Handle empty else block.
7826 (is_feasible_trace): Likewise.
7827 (split_paths): Likewise.
7828
7829 2016-07-05 Richard Biener <rguenther@suse.de>
7830
7831 * tree-loop-distribution.c (distribute_loop): Fix issue with
7832 the cost model loop.
7833
7834 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
7835
7836 * config/arm/neon-testgen.ml: Delete.
7837 * config/arm/neon.ml: Delete.
7838
7839 2016-07-04 Jakub Jelinek <jakub@redhat.com>
7840
7841 PR c++/71739
7842 * tree.c (attribute_value_equal): Use get_attribute_name instead of
7843 directly using TREE_PURPOSE.
7844
7845 2016-07-04 Jiong Wang <jiong.wang@arm.com>
7846
7847 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
7848 * config/aarch64/aarch64_neon.h: Likewise.
7849 * config/aarch64/arm_neon.h: Likewise.
7850 * config/aarch64/atomics.md: Likewise.
7851 * config/aarch64/aarch64-simd-builtins.def: Likewise.
7852 * doc/invoke.texi: Likewise.
7853
7854 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
7855
7856 * config/s390/s390.md: Add "z13" cpu_facility.
7857 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
7858 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
7859 condition" type instructions.
7860
7861 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
7862 Jeff Law <law@redhat.com>
7863
7864 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
7865 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
7866
7867 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
7868
7869 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
7870 permutation for TARGET_AVX512F.
7871 (ix86_expand_vec_one_operand_perm_avx512): New function.
7872 (expand_vec_perm_1): Invoke introduced function.
7873 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
7874 it may be not valid after vectorization.
7875
7876 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7877
7878 PR target/63874
7879 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
7880 typo in comment. Only force to memory if it is a weak
7881 external reference.
7882
7883 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
7884 Jiong Wang <jiong.wang@arm.com>
7885
7886 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
7887 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
7888 (AARCH64_FL_F16): New.
7889 (AARCH64_FL_FOR_ARCH8_2): New.
7890 (AARCH64_ISA_8_2): New.
7891 (AARCH64_ISA_F16): New.
7892 (TARGET_FP_F16INST): New.
7893 (TARGET_SIMD_F16INST): New.
7894 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
7895 ("fp"): Disabling "fp" also disables "fp16".
7896 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
7897 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
7898 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
7899 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
7900
7901 2016-07-04 Jan Beulich <jbeulich@suse.com>
7902
7903 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
7904
7905 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
7906
7907 PR target/71720
7908 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
7909 the insns, use an insn form that does not adjust the offset on
7910 little endian systems.
7911
7912 2016-07-01 Jan Beulich <jbeulich@suse.com>
7913
7914 * varasm.c (get_variable_section): Validate initializer in
7915 named .bss-like sections.
7916
7917 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
7918
7919 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
7920 Exchange the order of the second and third operands in the vpermr
7921 instruction tmeplate.
7922
7923 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
7924
7925 PR target/71698
7926 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
7927 Disallow TDmode values.
7928
7929 2016-07-01 Alan Modra <amodra@gmail.com>
7930
7931 PR rtl-optimization/71709
7932 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
7933 being set, not referenced.
7934
7935 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
7936
7937 PR tree-optimization/70729
7938 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
7939 of loop since it can be not valid after transformation.
7940
7941 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7942
7943 * config/arm/arm.c (thumb_reload_in_hi): Delete.
7944 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
7945
7946 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
7947
7948 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
7949 for NULL decl.
7950
7951 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
7952
7953 PR target/71677
7954 * config/rs6000/constraints.md (wY constraint): New constraint to
7955 match the requirements for the LXSD and STXSD instructions.
7956 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
7957 predicate to match the requirements for the LXSD and STXSD
7958 instructions.
7959 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
7960 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
7961 to make sure that the bottom 2 bits of offset are 0, the address
7962 form is offsettable, and no updating is done in the address mode.
7963 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
7964 (movdi_internal32): Likewise
7965 (movdi_internal64): Likewise.
7966
7967 2016-06-30 Jakub Jelinek <jakub@redhat.com>
7968
7969 PR tree-optimization/71707
7970 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
7971 strinfo even for ADDR_EXPR ptr.
7972
7973 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
7974
7975 * config/rs6000/altivec.md (darn_32): Change the condition to
7976 TARGET_P9_MISC instead of TARGET_MODULO.
7977 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
7978 condition expression.
7979 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
7980 condition expression.
7981 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
7982 (DFP_TEST): New code iterator.
7983 (dfptstsfi_<code>_mode>): New define_expand.
7984 (*dfp_sgnfcnc_<mode>): New define_insn.
7985 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
7986 definition next to BU_P9_MISC_1 definition and change the MASK
7987 value to RS6000_BTM_P9_MISC.
7988 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
7989 (BU_P9_64BIT_MISC_0): Likewise.
7990 (BU_P9_DFP_MISC_0): New macro definition.
7991 (BU_P9_DFP_MISC_1): New macro definition.
7992 (BU_P9_DFP_MISC_2): New macro definition.
7993 (BU_P9_DFP_OVERLOAD_1): New macro definition.
7994 (BU_P9_DFP_OVERLOAD_2): New macro definition.
7995 (BU_P9_DFP_OVERLOAD_3): New macro definition.
7996 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
7997 (TSTSFI_LT_TD): Likewise.
7998 (TSTSFI_EQ_DD): Likewise.
7999 (TSTSFI_EQ_TD): Likewise.
8000 (TSTSFI_GT_DD): Likewise.
8001 (TSTSFI_GT_TD): Likewise.
8002 (TSTSFI_OV_DD): Likewise.
8003 (TSTSFI_OV_TD): Likewise.
8004 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
8005 (TSTSFI_LT_DD): Likewise.
8006 (TSTSFI_LT_TD): Likewise.
8007 (TSTSFI_EQ): Likewise.
8008 (TSTSFI_EQ_DD): Likewise.
8009 (TSTSFI_EQ_TD): Likewise.
8010 (TSTSFI_GT): Likewise.
8011 (TSTSFI_GT_DD): Likewise.
8012 (TSTSFI_GT_TD): Likewise.
8013 (TSTSFI_OV): Likewise.
8014 (TSTSFI_OV_DD): Likewise.
8015 (TSTSFI_OV_TD): Likewise.
8016 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8017 overloaded test significance functions.
8018 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
8019 OPTION_MASK_P9_MISC into the representation of this mask.
8020 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
8021 of this mask.
8022 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
8023 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
8024 non-zero.
8025 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
8026 argument is a 6-bit unsigned literal value if the icode argument
8027 represents a DFP test significance built-in call.
8028 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
8029 flag used independently and in combination with the
8030 RS6000_BTM_64BIT flag.
8031 (rs6000_opt_masks): Add entry for power9-misc command-line option.
8032 (rs6000_builtin_mask_names): Add entry for power9-misc
8033 command-line option.
8034 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
8035 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
8036 RS6000_BTM_P9_MISC macros.
8037 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
8038 option and change the description of the -mpower9-vector option to
8039 enable only vector instructions, removing its erroneously claimed
8040 support for scalar instructions.
8041 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
8042 the ISA 3.0 digital floating point test significance built-in
8043 functions.
8044
8045 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
8046
8047 * config/aarch64/aarch64.c (cortexa35_tunings):
8048 Enable AES fusion. Use cortexa57_branch_cost.
8049 (cortexa53_tunings): Use cortexa57_branch_cost.
8050 (cortexa72_tunings): Use cortexa57_branch_cost.
8051 Use AUTOPREFETCHER_WEAK.
8052 (cortexa73_tunings): Use cortexa57_branch_cost.
8053
8054 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8055 James Greenhalgh <james.greenhalgh@arm.com>
8056
8057 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
8058 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
8059 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
8060 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
8061 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
8062 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
8063 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
8064 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
8065 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
8066 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
8067 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
8068 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
8069 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
8070 New intrinsics.
8071
8072 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
8073 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8074
8075 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
8076 New define_insn.
8077 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
8078
8079 2016-06-30 David Malcolm <dmalcolm@redhat.com>
8080
8081 PR driver/71651
8082 * gcc.c (driver::build_option_suggestions): Pass "option" to
8083 add_misspelling_candidates.
8084 * opts-common.c (add_misspelling_candidates): Add "option" param;
8085 use it to avoid adding negated forms for options marked with
8086 RejectNegative.
8087 * opts.h (add_misspelling_candidates): Add "option" param.
8088
8089 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8090
8091 PR middle-end/71693
8092 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
8093 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
8094 first when permuting bitwise operation with rotate. Cast
8095 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
8096
8097 2016-06-29 David Malcolm <dmalcolm@redhat.com>
8098
8099 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
8100 for misspelled param names.
8101 * params.c: Include spellcheck.h.
8102 (find_param_fuzzy): New function.
8103 * params.h (find_param_fuzzy): New prototype.
8104 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
8105 * spellcheck.h (struct edit_distance_traits<const char *>):
8106 ...here.
8107
8108 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
8109
8110 * config/rs6000/predicates.md (const_0_to_7_operand): New
8111 predicate, recognize 0..7.
8112 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
8113 support for doing extracts from V16QImode, V8HImode, V4SImode
8114 under ISA 3.0.
8115 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
8116 vector extract support.
8117 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
8118 for ISA 3.0 vector extract.
8119 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
8120 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
8121 extracts of a constant element number from small integer vectors
8122 on 64-bit ISA 3.0 systems.
8123 (vsx_extract_<mode>_di): Likewise.
8124 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
8125 say when we can do ISA 3.0 vector extracts.
8126 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
8127 registers, using the stxsiwx instruction.
8128
8129 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
8130
8131 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
8132 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
8133 qdf24xx_regmove_cost, qdf24xx_tunings): New.
8134 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
8135 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
8136 * config/arm/arm.c (arm_qdf24xx_tune): New.
8137
8138 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
8139
8140 * config/aarch64/aarch64.c (cortexa53_tunings):
8141 Increase loop alignment to 8. Set function alignment to 16.
8142 (cortexa35_tunings): Likewise.
8143 (cortexa57_tunings): Increase loop alignment to 8.
8144 (cortexa72_tunings): Likewise.
8145 (cortexa73_tunings): Likewise.
8146
8147 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
8148
8149 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
8150 for arm_fp16_ok and arm_fp16_hw.
8151 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
8152 arm_fp16_alternative.
8153
8154 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
8155
8156 PR tree-optimization/71655
8157 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
8158 types when swapping operands.
8159
8160 2016-06-29 Martin Liska <mliska@suse.cz>
8161
8162 PR middle-end/71585
8163 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
8164 * ipa-inline-transform.c (inline_call): Remove unnecessary call
8165 of build_optimization_node.
8166
8167 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
8168
8169 PR tree-optimization/70729
8170 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
8171 independent in loops having positive safelen value.
8172 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8173 it may be not valid after vectorization.
8174
8175 2016-06-29 Jakub Jelinek <jakub@redhat.com>
8176
8177 PR tree-optimization/71625
8178 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
8179 is sorted by ascending list->offset. If PTR is non-NULL and there is
8180 previous strinfo, call get_stridx_plus_constant.
8181 (get_stridx): Pass exp as second argument to get_addr_stridx.
8182 (addr_stridxptr): Add missing list = list->next, so that there can be
8183 more than one entries in the list. Bump limit from 16 to 32. Ensure
8184 the list is sorted by ascending list->offset.
8185 (get_stridx_plus_constant): Adjust so that it can be also called with
8186 ADDR_EXPR instead of SSA_NAME as PTR.
8187 (handle_char_store): Pass NULL_TREE as second argument to
8188 get_addr_stridx.
8189
8190 2016-06-29 Richard Biener <rguenther@suse.de>
8191
8192 PR rtl-optimization/68961
8193 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
8194
8195 2016-06-29 Richard Biener <rguenther@suse.de>
8196
8197 PR middle-end/71002
8198 * alias.c (component_uses_parent_alias_set_from): Handle
8199 type punning through union accesses by using the union alias set.
8200 * gimple.c (gimple_get_alias_set): Remove union type punning case.
8201
8202 2016-07-29 Richard Biener <rguenther@suse.de>
8203
8204 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
8205 precision not matching mode precision.
8206
8207 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
8208
8209 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
8210 pa_output_arg_descriptor.
8211 (call_val_symref_64bit_post_reload): Likewise.
8212 (call_val_powf_64bit_post_reload): Likewise.
8213 (sibcall_internal_symref_64bit): Likewise.
8214 (sibcall_value_internal_symref_64bit): Likewise.
8215
8216 2016-06-28 Jakub Jelinek <jakub@redhat.com>
8217
8218 PR middle-end/71626
8219 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
8220 a constant, force its SUBREG_REG into memory or register instead
8221 of whole op1.
8222
8223 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8224
8225 PR target/58655
8226 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
8227 * doc/invoke.texi (AVR Options): Document it.
8228
8229 2016-06-28 Walter Lee <walt@tilera.com>
8230
8231 * config/tilegx/linux.h: Do not include arch/icache.h
8232 (CLEAR_INSN_CACHE): Provide inlined definition directly.
8233 * config/tilepro/linux.h: Do not include arch/icache.h
8234 (CLEAR_INSN_CACHE): Provide inlined definition directly.
8235
8236 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
8237
8238 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
8239 for big-endian BIT_FIELD_REF.
8240
8241 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
8242
8243 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
8244 ('size' attribute): Add '128'.
8245 Include power9.md.
8246 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
8247 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
8248 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
8249 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
8250 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
8251 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
8252 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
8253 *trunc<mode>df2_odd): Set size attribute to '128'.
8254 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
8255 * config/rs6000/power6.md (power6-fp): Include dfp type.
8256 * config/rs6000/power7.md (power7-fp): Likewise.
8257 * config/rs6000/power8.md (power8-fp): Likewise.
8258 * config/rs6000/power9.md: New file.
8259 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
8260 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
8261 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
8262 htmsimple.
8263 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
8264 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
8265 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
8266 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
8267 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
8268 dfp_dscri_<mode>): Change type attribute to dfp.
8269 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
8270 attribute to vecsimple.
8271 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
8272 and prefetch streams.
8273 (rs6000_option_override_internal): Remove temporary code setting
8274 tuning to power8. Don't set rs6000_sched_groups for power9.
8275 (last_scheduled_insn): Change to rtx_insn *.
8276 (divide_cnt, vec_load_pendulum): New variables.
8277 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
8278 (rs6000_issue_rate): Set issue rate for Power9.
8279 (is_power9_pairable_vec_type): New.
8280 (power9_sched_reorder2): New.
8281 (rs6000_sched_reorder2): Call new function for Power9 specific
8282 reordering.
8283 (insn_must_be_first_in_group): Remove Power9.
8284 (insn_must_be_last_in_group): Likewise.
8285 (force_new_group): Likewise.
8286 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
8287 Initialize divide_cnt/vec_load_pendulum.
8288 (_rs6000_sched_context, rs6000_init_sched_context,
8289 rs6000_set_sched_context): Handle context save/restore of new
8290 variables.
8291
8292 2016-06-28 Richard Biener <rguenther@suse.de>
8293
8294 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
8295 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
8296 COMPONENT_REF operand.
8297 (nonoverlapping_component_refs_p): Likewise.
8298 * stor-layout.c (start_bitfield_representative): Mark
8299 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
8300
8301 2016-06-28 Jakub Jelinek <jakub@redhat.com>
8302
8303 * Makefile.in: Don't cat ../stage_current if it does not exist.
8304
8305 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
8306 last argument is a bit-field.
8307
8308 PR rtl-optimization/71673
8309 * internal-fn.c (expand_arith_overflow_result_store): Use
8310 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
8311 expand_simple_binop.
8312
8313 PR middle-end/66867
8314 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
8315 expand_ifn_atomic_compare_exchange): New functions.
8316 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
8317 * tree.h (build_call_expr_internal_loc): Rename to ...
8318 (build_call_expr_internal_loc_array): ... this. Fix up type of
8319 last argument.
8320 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
8321 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
8322 ATOMIC_COMPARE_EXCHANGE result.
8323 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
8324 * gimple-fold.h (optimize_atomic_compare_exchange_p,
8325 fold_builtin_atomic_compare_exchange): New prototypes.
8326 * gimple-fold.c (optimize_atomic_compare_exchange_p,
8327 fold_builtin_atomic_compare_exchange): New functions..
8328 * tree-ssa.c (execute_update_addresses_taken): If
8329 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
8330 of call when finding addressable vars, and if such var becomes
8331 non-addressable, call fold_builtin_atomic_compare_exchange.
8332
8333 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
8334
8335 PR target/71670
8336 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
8337 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
8338
8339 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
8340
8341 * config/rs6000/rs6000.md ('type' attribute): Add
8342 veclogical,veccmpfx,vecexts,vecmove insn types.
8343 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
8344 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
8345 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
8346 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
8347 *nabs<mode>2_hw): Change type to vecmove.
8348 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
8349 *boolcc<mode>3_internal, *eqv<mode>3_internal,
8350 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
8351 *ieee_128bit_vsx_abs<mode>2_internal,
8352 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
8353 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
8354 *ieee128_mtvsrd_32bit): Change type to veclogical.
8355 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
8356 *movdi_internal32, *movdi_internal64): Update insn types.
8357 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
8358 vsx_extract_<mode>): Change type to veclogical.
8359 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
8360 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
8361 *vsx_sign_extend_si_v2di): Change type to vecexts.
8362 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
8363 type to veclogical.
8364 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
8365 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
8366 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
8367 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
8368 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
8369 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
8370 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
8371 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
8372 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
8373 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
8374 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
8375 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
8376 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
8377 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
8378 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
8379 (ppc7450-vecsimple): Add veclogical, vecmove.
8380 (ppc7450-veccmp): Add veccmpfx.
8381 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
8382 vecmove.
8383 (ppc8540_vector_compare): Add veccmpfx.
8384 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
8385 * config/rs6000/cell.md (cell-fp): Add fpsimple.
8386 (cell-vecsimple): Add veclogical, vecmove.
8387 (cell-veccmp): Add veccmpfx.
8388 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
8389 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
8390 veccmpfx.
8391 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
8392 * config/rs6000/power4.md (power4-fp): Add fpsimple.
8393 (power4-vecsimple): Add veclogical, vecmove.
8394 (power4-veccmp): Add veccmpfx.
8395 * config/rs6000/power5.md (power5-fp): Add fpsimple.
8396 * config/rs6000/power6.md (power6-fp): Add fpsimple.
8397 (power6-vecsimple): Add veclogical, vecmove.
8398 (power6-veccmp): Add veccmpfx.
8399 * config/rs6000/power7.md (power7-fp): Add fpsimple.
8400 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
8401 * config/rs6000/power8.md (power8-fp): Add fpsimple.
8402 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
8403 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
8404 * config/rs6000/titan.md (titan_fp): Add fpsimple.
8405 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
8406 fpsimple.
8407 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
8408
8409 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
8410
8411 PR target/71656
8412 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
8413 OPTION_MASK_P9_DFORM_VECTOR.
8414 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8415 disable -mpower9-dform-vector when using reload.
8416 (quad_address_p): Remove 'gpr_p' argument and all associated code.
8417 New 'strict' argument. Update all callers. Add strict addressing
8418 support.
8419 (rs6000_legitimate_offset_address_p): Remove call to
8420 virtual_stack_registers_memory_p.
8421 (rs6000_legitimize_reload_address): Add quad address support.
8422 (rs6000_legitimate_address_p): Move call to quad_address_p above
8423 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
8424 to account for new strict usage.
8425 (rs6000_output_move_128bit): Adjust quad_address_p args to account
8426 for new strict usage.
8427 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
8428
8429 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
8430
8431 PR target/70902
8432 PR target/71453
8433 PR target/71555
8434 PR target/71596
8435 PR target/71657
8436 * config/i386/i386.c (ix86_spill_class): Disable condition to
8437 always return NO_REGS.
8438
8439 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
8440
8441 * predict.c: Include gimple-pretty-print.h
8442 (predicted_by_loop_heuristics_p): Check also
8443 PRED_LOOP_EXIT_WITH_RECURSION
8444 (predict_loops): Find self recursive calls and use special purpose
8445 predictors for them; dump log about decisions.
8446 (pass_profile::execute): Dump info about #of iterations.
8447 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
8448 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
8449
8450 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
8451
8452 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
8453 output_asm_insn calls and shorten long lines. Output .CALL
8454 argument descriptor using pa_output_arg_descriptor. Add various
8455 inline $$dyncall and other optimizations.
8456 (pa_attr_length_indirect_call): Adjust ordering and lengths.
8457
8458 2016-06-25 Jakub Jelinek <jakub@redhat.com>
8459
8460 PR tree-optimization/71643
8461 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
8462 EH preds.
8463
8464 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
8465 leak a bitmap if dep_bb is NULL.
8466
8467 PR tree-optimization/71631
8468 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
8469 to rewrite_expr_tree even if negate_result, move new_lhs var
8470 declaration and initialization earlier, for powi_result set afterwards
8471 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
8472 if new_lhs != lhs, and don't shadow gsi var.
8473
8474 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
8475
8476 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
8477 Add in_loop parameter.
8478 (predict_loops): Add loop guard heuristics.
8479 * predict.def (PRED_LOOP_GUARD): New heuristics.
8480
8481 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
8482
8483 * predict.c: Include ipa-utils.h
8484 (tree_bb_level_prediction): Predict recursive calls.
8485 (tree_estimate_probability_bb): Skip inexpensive calls for call
8486 predictor.
8487 * predict.def (PRED_RECURSIVE_CALL): New.
8488
8489 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8490
8491 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
8492 (BU_FLOAT128_1): Likewise.
8493 (FABSQ): Likewise.
8494 (COPYSIGNQ): Likewise.
8495 (RS6000_BUILTIN_NANQ): Likewise.
8496 (RS6000_BUILTIN_NANSQ): Likewise.
8497 (RS6000_BUILTIN_INFQ): Likewise.
8498 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
8499 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
8500 (TARGET_FOLD_BUILTIN): New #define.
8501 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
8502 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
8503 (rs6000_fold_builtin): New target hook implementation, handling
8504 folding of 128-bit NaNs and infinities.
8505 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
8506 entries are filled in to avoid problems during bootstrap
8507 self-test; define builtins for 128-bit NaNs and infinities.
8508 (rs6000_opt_mask): Add entry for float128.
8509 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
8510 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
8511 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
8512 (const_str_type_node): New #define.
8513 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
8514 to a define_expand that dispatches to either copysign<mode>3_soft
8515 or copysign<mode>3_hard.
8516 (copysign<mode>3_hard): Rename from copysign<mode>3.
8517 (copysign<mode>3_soft): New define_insn.
8518 * doc/extend.texi: Document new builtins.
8519
8520 2016-06-24 Jakub Jelinek <jakub@redhat.com>
8521
8522 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
8523 PRIu64 instead of lu.
8524
8525 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
8526
8527 PR debug/71642
8528 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
8529 copy the type name.
8530
8531 2016-06-24 Jakub Jelinek <jakub@redhat.com>
8532
8533 PR tree-optimization/71647
8534 * omp-low.c (lower_rec_input_clauses): Convert
8535 omp_clause_aligned_alignment (c) to size_type_node for the
8536 last argument of __builtin_assume_aligned.
8537
8538 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
8539
8540 * configure.ac (calling ___tls_get_addr via GOT): New
8541 assembler/linker check.
8542 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
8543 assembler and linker supports calling ___tls_get_addr via GOT.
8544 Otherise, defined to 0.
8545 * config.in: Regenerated.
8546 * configure: Likewise.
8547 * config/i386/constraints.md (Yb): New constraint.
8548 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
8549 (REG_CLASS_NAMES): Likewise.
8550 (REG_CLASS_CONTENTS): Likewise.
8551 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
8552 the b constraint with the Yb constraint. Call ___tls_get_addr
8553 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
8554 is 1.
8555 (*tls_local_dynamic_base_32_gnu): Likewise.
8556 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
8557 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
8558 (*tls_local_dynamic_base_64_<mode>): Likewise.
8559
8560 2016-06-24 Martin Liska <mliska@suse.cz>
8561
8562 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
8563 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
8564 few functions.
8565 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
8566 argument to true if the expected number of iterations is
8567 loop-based.
8568
8569 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
8570
8571 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
8572 assemble for 32bit target.
8573 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
8574 and $ld_ix86_gld_32_opt to link for 32bit target.
8575 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
8576 * configure: Regenerate.
8577
8578 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8579
8580 * config/arm/arm.c (int_log2): Delete definition and prototype.
8581 (shift_op): Use exact_log2 instead of int_log2.
8582 (vfp3_const_double_for_fract_bits): Likewise.
8583
8584 2016-06-24 Jakub Jelinek <jakub@redhat.com>
8585
8586 * internal-fn.c (expand_arith_set_overflow): New function.
8587 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
8588 Use it.
8589 (expand_arith_overflow_result_store): Likewise. Handle precision
8590 smaller than mode precision.
8591 * tree-vrp.c (extract_range_basic): For imag part, handle
8592 properly signed 1-bit precision result.
8593 * doc/extend.texi (__builtin_add_overflow): Document that last
8594 argument can't be pointer to enumerated or boolean type.
8595 (__builtin_add_overflow_p): Document that last argument can't
8596 have enumerated or boolean type.
8597
8598 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8599 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8600
8601 * config/rs6000/predicates.md (splat_input_operand): Rework.
8602 Don't allow constants, since the insns that use this predicate
8603 don't support constants. Constants are handled by other insns
8604 that are created via combine. During and after register
8605 allocation, only allow indexed or indirect addresses, and not
8606 general addresses. Only allow modes supported by the hardware.
8607 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
8608 comment. Move check for using VSPLTIS<x> to a common location,
8609 instead of doing it in two different places.
8610
8611 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
8612
8613 * config/i386/driver-i386.c (host_detect_local_cpu): Set
8614 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
8615 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
8616 signature_CENTAUR_ebx.
8617
8618 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
8619
8620 PR target/66232
8621 PR target/67400
8622 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
8623 (as_ix86_gas_32_opt): This.
8624 (ld_ix86_tls_ldm_opt): Renamed to ...
8625 (ld_ix86_gld_32_opt): This.
8626 (R_386_TLS_LDM reloc): Updated.
8627 (R_386_GOT32X reloc): New assembler/linker check.
8628 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
8629 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
8630 defined to 0.
8631 * config.in: Regenerated.
8632 * configure: Likewise.
8633 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
8634 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
8635 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
8636 if ix86_force_load_from_GOT_p returns true.
8637 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
8638 ix86_force_load_from_GOT_p returns true.
8639 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
8640 the external function address via the GOT slot.
8641 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
8642 HAVE_AS_IX86_GOT32X before returning false.
8643 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
8644 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
8645
8646 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
8647
8648 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
8649
8650 2016-06-23 Andi Kleen <ak@linux.intel.com>
8651
8652 * Makefile.in: Regenerate.
8653 * doc/install.texi: Document autoprofiledbootstrap.
8654
8655 2016-06-23 Andi Kleen <ak@linux.intel.com>
8656
8657 * config/i386/gcc-auto-profile: New file.
8658
8659 2016-06-23 Martin Liska <mliska@suse.cz>
8660
8661 PR middle-end/71619
8662 * predict.c (predict_loops): Revert the hunk that was removed
8663 in r237103.
8664
8665 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
8666
8667 * config.gcc: Add support for arm*-*-phoenix* targets.
8668 * config/arm/t-phoenix: New.
8669 * config/phoenix.h: New.
8670
8671 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
8672 H.J. Lu <hongjiu.lu@intel.com>
8673
8674 PR target/67400
8675 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
8676 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
8677 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
8678 ix86_force_load_from_GOT_p returns true.
8679 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
8680 ix86_force_load_from_GOT_p returns true.
8681 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
8682 ix86_force_load_from_GOT_p returns true.
8683 (ix86_expand_move): Load the external function address via the
8684 GOT slot if ix86_force_load_from_GOT_p returns true.
8685 * config/i386/predicates.md (x86_64_immediate_operand): Return
8686 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
8687 (x86_64_zext_immediate_operand): Ditto.
8688
8689 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
8690
8691 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
8692
8693 2016-06-22 David Malcolm <dmalcolm@redhat.com>
8694
8695 PR c/70339
8696 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
8697 * diagnostic.c (pedwarn_at_rich_loc): New function.
8698 * spellcheck.h (best_match::best_match): Add a
8699 "best_distance_so_far" optional parameter.
8700 (best_match::set_best_so_far): New method.
8701 (best_match::get_best_distance): New accessor.
8702 (best_match::get_best_candidate_length): New accessor.
8703
8704 2016-06-22 Nick Clifton <nickc@redhat.com>
8705
8706 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
8707 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
8708 modes are accepted as well.
8709 (ucompare_loc_descriptor): Likewise.
8710 (minmax_loc_descriptor): Likewise.
8711 (clz_loc_descriptor): Likewise.
8712 (popcount_loc_descriptor): Likewise.
8713 (bswap_loc_descriptor): Likewise.
8714 (rotate_loc_descriptor): Likewise.
8715 (mem_loc_descriptor): Likewise.
8716 (loc_descriptor): Likewise.
8717
8718 2016-06-22 David Malcolm <dmalcolm@redhat.com>
8719
8720 * common.opt (fdiagnostics-parseable-fixits): New option.
8721 * diagnostic.c: Include "selftest.h".
8722 (print_escaped_string): New function.
8723 (print_parseable_fixits): New function.
8724 (diagnostic_report_diagnostic): Call print_parseable_fixits.
8725 (selftest::assert_print_escaped_string): New function.
8726 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
8727 (selftest::test_print_escaped_string): New function.
8728 (selftest::test_print_parseable_fixits_none): New function.
8729 (selftest::test_print_parseable_fixits_insert): New function.
8730 (selftest::test_print_parseable_fixits_remove): New function.
8731 (selftest::test_print_parseable_fixits_replace): New function.
8732 (selftest::diagnostic_c_tests): New function.
8733 * diagnostic.h (struct diagnostic_context): Add field
8734 "parseable_fixits_p".
8735 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
8736 -fdiagnostics-parseable-fixits.
8737 (-fdiagnostics-parseable-fixits): New option.
8738 * opts.c (common_handle_option): Handle
8739 -fdiagnostics-parseable-fixits.
8740 * selftest-run-tests.c (selftest::run_tests): Call
8741 selftest::diagnostic_c_tests.
8742 * selftest.h (selftest::diagnostic_c_tests): New prototype.
8743
8744 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
8745
8746 PR tree-optimization/71488
8747 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
8748 comparison of boolean vectors.
8749 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
8750 of boolean vectors using bitwise operations.
8751
8752 2016-06-22 Andreas Schwab <schwab@suse.de>
8753
8754 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
8755 Remove declaration.
8756
8757 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
8758
8759 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
8760
8761 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
8762
8763 * config/i386/i386.c (print_reg): Emit an error message on attempt to
8764 print FLAGS_REG.
8765
8766 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8767
8768 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
8769 * config/arm/arm-cores.def (cortex-a73): New entry.
8770 (cortex-a73.cortex-a35): Likewise.
8771 (cortex-a73.cortex-a53): Likewise.
8772 * config/arm/arm-tables.opt: Regenerate.
8773 * config/arm/arm-tune.md: Likewise.
8774 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
8775 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
8776 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
8777 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
8778 * doc/invoke.texi (ARM Options): Document cortex-a73,
8779 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
8780
8781 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8782
8783 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
8784 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
8785 (cortex-a73.cortex-a35): Likewise.
8786 (cortex-a73.cortex-a53): Likewise.
8787 * config/aarch64/aarch64-tune.md: Regenerate.
8788 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
8789 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
8790 -mcpu and -mtune.
8791
8792 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8793
8794 * configure.ac (gcc_cv_as_compress_debug): Remove
8795 --compress-debug-sections as extra as switch.
8796 Handle gas --compress-debug-sections=type.
8797 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
8798 Handle gld --compress-debug-sections=type.
8799 * configure: Regenerate.
8800
8801 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
8802
8803 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
8804
8805 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
8806
8807 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
8808 (do_rewrite): likewise.
8809
8810 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8811
8812 * common/config/mep/mep-common.c: Remove.
8813 * config.gcc: Remove mep-* support.
8814 * config/mep/constraints.md: Remove.
8815 * config/mep/default.h: Remove.
8816 * config/mep/intrinsics.h: Remove.
8817 * config/mep/intrinsics.md: Remove.
8818 * config/mep/ivc2-template.h: Remove.
8819 * config/mep/mep-c5.cpu: Remove.
8820 * config/mep/mep-core.cpu: Remove.
8821 * config/mep/mep-default.cpu: Remove.
8822 * config/mep/mep-ext-cop.cpu: Remove.
8823 * config/mep/mep-intrin.h: Remove.
8824 * config/mep/mep-ivc2.cpu: Remove.
8825 * config/mep/mep-pragma.c: Remove.
8826 * config/mep/mep-protos.h: Remove.
8827 * config/mep/mep.c: Remove.
8828 * config/mep/mep.cpu: Remove.
8829 * config/mep/mep.h: Remove.
8830 * config/mep/mep.md: Remove.
8831 * config/mep/mep.opt: Remove.
8832 * config/mep/predicates.md: Remove.
8833 * config/mep/t-mep: Remove.
8834 * doc/install.texi: Remove mep-* documentation.
8835 * doc/md.texi: Likewise.
8836
8837 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8838
8839 * config.gcc: Remove support for avr-rtems.
8840 * config/avr/gen-avr-mmcu-specs.c: Likewise.
8841 * config/avr/rtems.h: Remove.
8842 * config/avr/t-rtems: Remove.
8843
8844 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8845
8846 * config.gcc: Remove m32r-rtems support.
8847 * config/m32r/rtems.h: Remove.
8848
8849 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8850
8851 * config.gcc: Remove h8300-rtems support.
8852 * config/h8300/rtems.h: Remove.
8853 * config/h8300/t-rtems: Remove.
8854
8855 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8856
8857 * config.gcc: Remove support for knetbsd.
8858 * configure.ac: Likewise.
8859 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
8860 * config/knetbsd-gnu.h: Remove.
8861 * configure: Regenerate.
8862
8863 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8864
8865 * config.gcc: Remove support for openbsd 2 and 3.
8866 * config/openbsd-oldgas.h: Remove.
8867
8868 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8869
8870 * config.gcc: Remove interix support.
8871 * config/i386/i386-interix.h: Remove.
8872 * config/i386/interix.opt: Remove.
8873 * config/i386/t-interix: Remove.
8874 * configure: Regenerate.
8875 * configure.ac: Remove interix support.
8876 * doc/install.texi: Remove interix documentation.
8877
8878 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
8879
8880 * config/rs6000/rs6000.h: Add conditional preprocessing directives
8881 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
8882 not defined.
8883
8884 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
8885
8886 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
8887 they are both PLACEHOLDER_EXPRs.
8888
8889 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8890
8891 * stor-layout.c (layout_type): Move setting complex MODE to
8892 layout_type, instead of setting it ahead of time by the caller.
8893 * tree.c (build_complex_type): Likewise.
8894
8895 2016-06-21 Martin Liska <mliska@suse.cz>
8896
8897 * predict.c (force_edge_cold): Replace imposisble with
8898 impossible.
8899
8900 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
8901
8902 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
8903 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
8904
8905 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
8906
8907 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
8908
8909 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
8910 Ilya Enkovich <ilya.enkovich@intel.com>
8911
8912 PR target/71549
8913 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8914 New member function to convert V1TImode register to SUBREG
8915 TImode in debug insn.
8916 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
8917 after changing register mode to V1TImode.
8918
8919 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
8920
8921 * config/aarch64/aarch64-cores.def (vulcan): New core.
8922 * config/aarch64/aarch64-tune.md: Regenerate.
8923 * doc/invoke.texi: Document vulcan as an available option.
8924
8925 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
8926
8927 * cse.c (canon_asm_operands): New function extracted from...
8928 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
8929 either standalone or member of a PARALLEL.
8930
8931 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
8932
8933 PR target/30417
8934 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
8935 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
8936 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
8937
8938 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
8939
8940 PR target/71103
8941 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
8942 constant addresses if can_create_pseudo_p.
8943
8944 2016-06-21 Jakub Jelinek <jakub@redhat.com>
8945
8946 PR tree-optimization/71588
8947 * tree-ssa-strlen.c (valid_builtin_call): New function.
8948 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
8949 it.
8950
8951 2016-06-20 Jakub Jelinek <jakub@redhat.com>
8952
8953 PR middle-end/71581
8954 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
8955 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
8956 for conversion of scalar user var to complex type and use the
8957 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
8958 punt.
8959
8960 PR rtl-optimization/71591
8961 * toplev.c (toplev::run_self_tests): If no_backend, complain and
8962 don't run any tests.
8963
8964 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
8965
8966 PR target/71571
8967 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
8968 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
8969 space for PIC with non-v32 and the common non-PIC "jump".
8970
8971 2016-06-20 Jakub Jelinek <jakub@redhat.com>
8972
8973 PR target/71559
8974 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
8975 returned values and add UN*/LTGT/*ORDERED cases with values matching
8976 D operand modifier on vcmp for AVX.
8977
8978 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
8979
8980 * config/aarch64/aarch64.opt
8981 (mpc-relative-literal-loads): Rename internal option name.
8982 * config/aarch64/aarch64.c
8983 (aarch64_nopcrelative_literal_loads): Rename to
8984 aarch64_pcrelative_literal_loads.
8985 (aarch64_expand_mov_immediate): Likewise.
8986 (aarch64_secondary_reload): Likewise.
8987 (aarch64_can_use_per_function_literal_pools_p): Likewise.
8988 (aarch64_override_options_after_change_1): Rename and simplify logic.
8989 (aarch64_classify_symbol): Merge large model checks into switch,
8990 remove pc-relative load check.
8991
8992 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
8993
8994 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
8995 costs relative to the cost of a register move.
8996
8997 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
8998
8999 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
9000 (vcvt_n_f64_u64): Likewise.
9001 (vcvt_n_s64_f64): Likewise.
9002 (vcvt_n_u64_f64): Likewise.
9003 (vcvt_f64_s64): Likewise.
9004 (vrecpe_f64): Likewise.
9005 (vcvt_f64_u64): Likewise.
9006 (vrecps_f64): Likewise.
9007
9008 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9009
9010 * config/aarch64/aarch64.md
9011 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
9012 iterators.
9013 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
9014 attributes.
9015 * config/aarch64/aarch64-builtins.c
9016 (aarch64_types_binop_uss_qualifiers): Delete.
9017 (TYPES_BINOP_USS): Likewise.
9018 (aarch64_types_binop_sus_qualifiers): Likewise.
9019 (TYPES_BINOP_SUS): Likewise.
9020 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
9021 (TYPES_FCVTIMM_SUS): Likewise.
9022 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
9023 rather than BINOP.
9024 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
9025 (fcvtzs): Use SHIFTIMM rather than BINOP.
9026 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
9027
9028 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9029
9030 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
9031 costs relative to the cost of a register move.
9032
9033 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9034
9035 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
9036 Allow scalar/single vector modes to be tieable.
9037
9038 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9039
9040 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
9041
9042 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9043
9044 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
9045 "alignement".
9046 * tree.h (TYPE_ALIGN): Likewise.
9047
9048 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
9049
9050 PR target/71103
9051 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
9052
9053 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
9054
9055 * config/avr/avr.c (avr_print_operand): Fix "format not a string
9056 literal" build warnings.
9057 (avr_print_operand_address): Dito.
9058
9059 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
9060
9061 PR target/71375
9062 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
9063 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
9064
9065 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
9066
9067 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
9068
9069 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
9070
9071 PR bootstrap/71435
9072 * reload1.c (reload): Pass 0 to finish_spills when called because
9073 update_eliminables_and_spill returns true and remove did_spill.
9074 (finish_spills): Adjust comment and document GLOBAL parameter.
9075
9076 2016-06-17 DJ Delorie <dj@redhat.com>
9077
9078 PR target/71338
9079 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
9080 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
9081 (umulqihi3_virt): Likewise.
9082 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
9083 (umulqihi3_real): Likewise.
9084
9085 2016-06-17 Martin Liska <mliska@suse.cz>
9086
9087 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
9088
9089 2016-06-17 Martin Liska <mliska@suse.cz>
9090
9091 * predict.def: PRED_LOOP_EXIT from 92 to 85.
9092
9093 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
9094
9095 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
9096 __FAST_MATH__.
9097 (vaddq_f32): Likewise.
9098 (vmul_f32): Likewise.
9099 (vmulq_f32): Likewise.
9100 (vsub_f32): Likewise.
9101 (vsubq_f32): Likewise.
9102
9103 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9104
9105 PR tree-optimization/71347
9106 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
9107 cost for all uses in group.
9108
9109 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9110
9111 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
9112 insert gimple seq if it's not empty.
9113
9114 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9115
9116 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
9117 member OFFSET.
9118 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
9119 rather than OFFSET.
9120 (comp_dr_with_seg_len_pair): Ditto.
9121 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
9122 struct dr_with_seg_len_pair against DR_OFFSET.
9123 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
9124 DR_OFFSET directly.
9125
9126 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
9127
9128 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
9129
9130 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
9131
9132 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
9133 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
9134 (pa_output_millicode_call): Likewise.
9135 (pa_output_call): Likewise.
9136 (pa_output_indirect_call): Likewise.
9137 (pa_asm_output_mi_thunk): Likewise.
9138
9139 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9140
9141 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
9142
9143 2016-06-16 Martin Liska <mliska@suse.cz>
9144
9145 * predict.c (combine_predictions_for_insn): When we find a first
9146 match predictor, we should consider just predictors with
9147 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
9148 DS theory predictor.
9149 (combine_predictions_for_bb): Likewise.
9150
9151 2016-06-16 Jakub Jelinek <jakub@redhat.com>
9152
9153 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
9154 with base of reference to struct.
9155
9156 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
9157
9158 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
9159
9160 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9161
9162 PR target/71151
9163 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
9164 progmem_swtable_section.
9165 (progmem_swtable_section): Remove.
9166 (avr_asm_function_rodata_section): Remove.
9167 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
9168 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
9169
9170 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
9171
9172 * config/i386/driver-i386.c (host_detect_local_cpu): Set
9173 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
9174 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
9175 signature_CENTAUR_ebx.
9176 * config/i386/i386.c (ix86_option_override_internal): Add
9177 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
9178 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
9179 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
9180
9181 2016-06-16 Martin Liska <mliska@suse.cz>
9182
9183 * predict.def: Add fortran loop preheader predictor.
9184 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
9185 fold IFN_BUILTIN_EXPECT with a known constant argument.
9186
9187 2016-06-16 Martin Liska <mliska@suse.cz>
9188
9189 * predict.def: Add 'Fortran' to display text of all
9190 PRED_FORTRAN_* predictors.
9191
9192 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
9193
9194 PR target/71242
9195 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
9196 [IA64_BUILTIN_NANSQ]: Ditto.
9197 (ia64_fold_builtin): New function.
9198 (TARGET_FOLD_BUILTIN): New define.
9199 (ia64_init_builtins) Declare const_string_type node.
9200 Add __builtin_nanq and __builtin_nansq builtin functions.
9201 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
9202
9203 2016-06-16 Nick Clifton <nickc@redhat.com>
9204
9205 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
9206 MSP430_HWMULT_ prefix to enum values.
9207 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
9208 * config/msp430/msp430.c: Update use of enum values.
9209 * config/msp430/msp430.md: Likewise.
9210 * config/msp430/msp430.opt: Likewise.
9211
9212 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
9213
9214 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
9215 of comparsions in the last iteration.
9216
9217 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
9218 Joern Rennecke <joern.rennecke@embecosm.com>
9219
9220 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
9221 addresses.
9222 (arc_needs_pcl_p): Add GOTOFFPC.
9223 (arc_legitimate_pic_addr_p): Likewise.
9224 (arc_output_pic_addr_const): Likewise.
9225 (arc_legitimize_pic_address): Generate a pc-relative address using
9226 GOTOFFPC.
9227 (arc_output_libcall): Use @pcl syntax.
9228 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
9229 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
9230 (*movsi_insn): Use @pcl syntax.
9231 (doloop_begin_i): Likewise.
9232
9233 2016-06-16 Martin Liska <mliska@suse.cz>
9234
9235 * predict.def: Define a new predictor.
9236
9237 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
9238
9239 * config/arc/arc.opt (mtp-regno): Update text.
9240
9241 2016-06-16 Renlin Li <renlin.li@arm.com>
9242
9243 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
9244
9245 2016-06-16 Jakub Jelinek <jakub@redhat.com>
9246
9247 PR target/71554
9248 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
9249 (setcc + and peephole2): Likewise.
9250
9251 PR rtl-optimization/71532
9252 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
9253 memory slots.
9254
9255 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9256
9257 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
9258 DImode constants with XXSPLTIB in vector registers.
9259 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
9260 vsx_extract_<mode>_internal{1,2} into a single insn that handles
9261 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
9262 extraction of the element at the top of the register as a scalar
9263 value.
9264 (vsx_extract_<mode>_internal1): Likewise.
9265 (vsx_extract_<mode>_internal2): Likewise.
9266 * config/rs6000/constraints.md (wi constraint): Remove a comment
9267 about DImode not being allowed in Altivec registers.
9268 (wB constraint): New constraint for constants that can be
9269 generated in Altivec registers with VSPLTISW/VUPKHSW.
9270 * config/rs6000/predicates.md (xxspltib_constant_split): Update
9271 comments.
9272 (xxspltib_constant_nosplit): Likewise.
9273 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
9274 support for -mupper-regs-di to enable DImode to go into Altivec
9275 registers.
9276 (POWERPC_MASKS): Likewise.
9277 (power7 cpu): Likewise.
9278 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
9279 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
9280 for DImode being allowed in Altivec registers. Update wi/wj
9281 constraints. Set scalar_in_vmx_p flag.
9282 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
9283 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
9284 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
9285 (rs6000_opt_masks): Add -mupper-regs-di.
9286 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
9287 direct move to use wi and not wj.
9288 (lfiwzx): Likewise.
9289 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
9290 alternative.
9291 (floatunssi<mode>2_lfiwzx_mem): Likewise.
9292 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
9293 any VSX register, instead of just Altivec registers, to allow
9294 either operand to be an Altivec register or both.
9295 (fixuns_trunc<mode>di2_fctiduz): Likewise.
9296 (movdi_internal32): Add support for -mupper-regs-di. Add support
9297 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
9298 the alternatives and attributes to be lined up to be easier to
9299 read.
9300 (movdi_internal64): Likewise.
9301 (64-bit DImode splitters): Change predicates to only split loading
9302 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
9303 load constants in ISA 3.0 or ISA 2.07 respectively.
9304 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9305 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
9306 mention -mcpu=power9 sets these options.
9307 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
9308 wB constraint.
9309
9310 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9311
9312 PR target/67353
9313 * config/avr/avr.c (avr_set_current_function): Warn misspelled
9314 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
9315 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
9316 by default to warn misspelled interrupt/ signal handler.
9317 * doc/invoke.texi (AVR Options): Document it. Update description
9318 for -nodevicelib option.
9319
9320 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9321
9322 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
9323 up parentheses. Use GET_MODE_UNIT_BITSIZE.
9324 (aarch64_<sur>shll2_n<mode>): Likewise.
9325
9326 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
9327
9328 PR middle-end/71529
9329 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
9330 DECL_CONTEXT for copied arguments.
9331
9332 2016-06-15 Alan Hayward <alan.hayward@arm.com>
9333
9334 PR tree-optimization/71483
9335 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
9336 for slp
9337
9338 2016-06-15 Martin Liska <mliska@suse.cz>
9339
9340 * predict.c (tree_predict_by_opcode): Call predict_edge_def
9341 instead of predict_edge w/o a probability.
9342
9343 2016-06-15 Alan Hayward <alan.hayward@arm.com>
9344
9345 PR tree-optimization/71439
9346 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
9347 live PHIs.
9348
9349 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9350
9351 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
9352 register subregs in SET_SRC.
9353
9354 2016-06-15 Richard Biener <rguenther@suse.de>
9355
9356 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
9357 store restrictions.
9358
9359 2016-06-15 Richard Biener <rguenther@suse.de>
9360
9361 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
9362 not consider dependences between accesses that belong to the
9363 same group.
9364 (vect_analyze_data_ref_dependences): Do not analyze read-read
9365 or self-dependences.
9366
9367 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9368
9369 * spellcheck-tree.c: Include spellcheck-tree.h rather than
9370 spellcheck.h.
9371 (find_closest_identifier): Reimplement in terms of
9372 best_match<tree,tree>.
9373 * spellcheck-tree.h: New file.
9374 * spellcheck.c (struct edit_distance_traits<const char *>): New
9375 struct.
9376 (find_closest_string): Reimplement in terms of
9377 best_match<const char *, const char *>.
9378 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
9379 overload to spellcheck-tree.h.
9380 (find_closest_identifier): Likewise.
9381 (struct edit_distance_traits<T>): New template.
9382 (class best_match): New class.
9383
9384 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9385
9386 * selftest-run-tests.c (selftest::run_tests): Call
9387 selftest::spellcheck_tree_c_tests.
9388 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
9389 * spellcheck-tree.c: Include selftest.h and stringpool.h.
9390 (selftest::test_find_closest_identifier): New function.
9391 (selftest::spellcheck_tree_c_tests): New function.
9392 * spellcheck.c (selftest::test_find_closest_string): Verify that
9393 the order of the vec does not affect the results for this case.
9394 (selftest::test_data): New array.
9395 (selftest::test_metric_conditions): New function.
9396 (selftest::spellcheck_c_tests): Add a test of case-comparison.
9397 Call selftest::test_metric_conditions.
9398
9399 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9400
9401 * config/rs6000/rs6000-builtin.def (commentary): Typo.
9402 (BU_P9_MISC_1): Likewise.
9403 (BU_P9_64BIT_MISC_0): Likewise.
9404 (BU_P9_MISC_0): Likewise.
9405
9406 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9407
9408 * gcc-rich-location.c
9409 (gcc_rich_location::add_fixit_misspelled_id): New method.
9410 * gcc-rich-location.h
9411 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
9412
9413 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
9414
9415 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
9416 FreeBSD 11 and above.
9417
9418 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
9419
9420 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
9421
9422 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9423
9424 * expmed.h: Close parenthesis in "at your option" in copyright
9425 boilerplate.
9426 * lower-subreg.h: Likewise.
9427
9428 2016-06-14 Richard Biener <rguenther@suse.de>
9429
9430 PR middle-end/71526
9431 * genmatch.c (expr::gen_transform): Use in_type for comparisons
9432 if available.
9433
9434 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9435
9436 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
9437 New function.
9438 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
9439 mask+shift version.
9440 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
9441 New prototype.
9442 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
9443 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
9444
9445 2016-06-14 Richard Biener <rguenther@suse.de>
9446
9447 PR tree-optimization/71522
9448 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
9449 copying into float copying.
9450
9451 2016-06-14 Jakub Jelinek <jakub@redhat.com>
9452
9453 PR tree-optimization/71520
9454 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
9455 (replace_block_by): Move user labels from bb1 to bb2.
9456
9457 2016-06-14 Richard Biener <rguenther@suse.de>
9458
9459 PR middle-end/71310
9460 PR bootstrap/71510
9461 * expr.h (get_bit_range): Declare.
9462 * expr.c (get_bit_range): Export.
9463 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
9464 word_mode again to constrain the bitfield access.
9465
9466 2016-06-14 Richard Biener <rguenther@suse.de>
9467
9468 PR tree-optimization/71521
9469 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
9470 division int_const_binop against zero divisor.
9471
9472 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
9473
9474 * config/i386/i386.md (signbittf2): New expander.
9475 * config/i386/sse.md (ptesttf2): New insn pattern.
9476
9477 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9478
9479 PR bootstrap/71481
9480 * input.c (selftest::test_reading_source_line): Avoid reading from
9481 __FILE__ by creating a tempfile with known content and reading
9482 from that instead.
9483
9484 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9485
9486 * pretty-print.c (assert_pp_format_colored): Skip the test if
9487 GCC_COLORS is set.
9488 (test_pp_format): Remove comment about GCC_COLORS.
9489
9490 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9491
9492 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
9493 * pretty-print.c (assert_pp_format_va): Add location param and use
9494 it with ASSERT_STREQ_AT.
9495 (assert_pp_format): Add location param and pass it to
9496 assert_pp_format_va.
9497 (assert_pp_format_colored): Likewise.
9498 (ASSERT_PP_FORMAT_1): New.
9499 (ASSERT_PP_FORMAT_2): New.
9500 (ASSERT_PP_FORMAT_3): New.
9501 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
9502 explicitly, or implicitly via the above macros.
9503 * selftest.c (selftest::pass): Use a selftest::location rather
9504 than file and line.
9505 (selftest::fail): Likewise. Print the function name.
9506 (selftest::fail_formatted): Likewise.
9507 (selftest::assert_streq): Use a selftest::location rather than
9508 file and line.
9509 * selftest.h (selftest::location): New struct.
9510 (SELFTEST_LOCATION): New macro.
9511 (selftest::pass): Accept a const location & rather than file
9512 and line.
9513 (selftest::fail): Likewise.
9514 (selftest::fail_formatted): Likewise.
9515 (selftest::assert_streq): Likewise.
9516 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
9517 (ASSERT_FALSE): Likewise.
9518 (ASSERT_EQ): Likewise.
9519 (ASSERT_NE): Likewise.
9520 (ASSERT_STREQ): Likewise.
9521 (ASSERT_PRED1): Likewise.
9522 (ASSERT_STREQ_AT): New macro.
9523
9524 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9525
9526 * selftest.c (selftest::fail_formatted): New function.
9527 (selftest::assert_streq): New function.
9528 * selftest.h (selftests::fail_formatted): New decl.
9529 (selftest::assert_streq): New decl.
9530 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
9531
9532 2016-06-13 Jeff Law <law@redhat.com>
9533
9534 PR tree-optimization/71403
9535 * tree-ssa-threadbackward.c
9536 (convert_and_register_jump_thread_path): No longer accept reference
9537 to path. Do not pop items off the path anymore.
9538 (fsm_find_control_statement_thread_paths): Do not allow threading
9539 to a deeper loop nest. Pop the last item off the path here rather
9540 than in convert_and_register_jump_thread_path.
9541
9542 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
9543 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
9544
9545 [AArch64] Emit division using the Newton series
9546
9547 * config/aarch64/aarch64-protos.h
9548 (cpu_approx_modes): Add new member "division".
9549 (aarch64_emit_approx_div): Declare new function.
9550 * config/aarch64/aarch64.c
9551 (generic_approx_modes): New member "division".
9552 (exynosm1_approx_modes): Likewise.
9553 (xgene1_approx_modes): Likewise.
9554 (aarch64_emit_approx_div): Define new function.
9555 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
9556 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
9557 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
9558 * doc/invoke.texi (-mlow-precision-div): Describe new option.
9559
9560 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
9561 Wilco Dijkstra <wilco.dijkstra@arm.com>
9562
9563 [AArch64] Emit square root using the Newton series
9564
9565 * config/aarch64/aarch64-protos.h
9566 (aarch64_emit_approx_rsqrt): Replace with new function
9567 "aarch64_emit_approx_sqrt".
9568 (cpu_approx_modes): New member "sqrt".
9569 * config/aarch64/aarch64.c
9570 (generic_approx_modes): New member "sqrt".
9571 (exynosm1_approx_modes): Likewise.
9572 (xgene1_approx_modes): Likewise.
9573 (aarch64_emit_approx_rsqrt): Replace with new function
9574 "aarch64_emit_approx_sqrt".
9575 (aarch64_override_options_after_change_1): Handle new option.
9576 * config/aarch64/aarch64-simd.md
9577 (rsqrt<mode>2): Use new function instead.
9578 (sqrt<mode>2): New expansion and insn definitions.
9579 * config/aarch64/aarch64.md: Likewise.
9580 * config/aarch64/aarch64.opt
9581 (mlow-precision-sqrt): Add new option description.
9582 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
9583
9584 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
9585
9586 [AArch64] Add more choices for the reciprocal square root approximation
9587
9588 Allow a target to prefer such operation depending on the operation mode.
9589
9590 * config/aarch64/aarch64-protos.h
9591 (AARCH64_APPROX_MODE): New macro.
9592 (AARCH64_APPROX_{NONE,ALL}): Likewise.
9593 (cpu_approx_modes): New structure.
9594 (tune_params): New member "approx_modes".
9595 * config/aarch64/aarch64-tuning-flags.def
9596 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
9597 * config/aarch64/aarch64.c
9598 (generic_approx_modes): New core "cpu_approx_modes" structure.
9599 (exynosm1_approx_modes): Likewise.
9600 (xgene1_approx_modes): Likewise.
9601 (generic_tunings): New member "approx_modes".
9602 (cortexa35_tunings): Likewise.
9603 (cortexa53_tunings): Likewise.
9604 (cortexa57_tunings): Likewise.
9605 (cortexa72_tunings): Likewise.
9606 (exynosm1_tunings): Likewise.
9607 (thunderx_tunings): Likewise.
9608 (xgene1_tunings): Likewise.
9609 (use_rsqrt_p): New argument for the mode and use new member from
9610 "tune_params".
9611 (aarch64_builtin_reciprocal): Devise mode from builtin.
9612 (aarch64_optab_supported_p): New argument for the mode.
9613 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
9614
9615 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
9616
9617 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
9618 RS6000_BTM_MODULO flag into the set of flags that are considered
9619 to be part of the common configuration.
9620
9621 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
9622
9623 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
9624 difference unsigned.
9625 (vec_absdb): New macro for vector absolute difference unsigned
9626 byte.
9627 (vec_absdh): New macro for vector absolute difference unsigned
9628 half-word.
9629 (vec_absdw): New macro for vector absolute difference unsigned word.
9630 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
9631 (vadu<mode>3): New insn.
9632 (*p9_vadu<mode>3): New insn.
9633 * config/rs6000/rs6000-builtin.def (vadub): New built-in
9634 definition.
9635 (vaduh): New built-in definition.
9636 (vaduw): New built-in definition.
9637 (vadu): New overloaded built-in definition.
9638 (vadub): New overloaded built-in definition.
9639 (vaduh): New overloaded built-in definition.
9640 (vaduw): New overloaded built-in definition.
9641 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9642 overloaded vector absolute difference unsigned functions.
9643 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9644 the ISA 3.0 vector absolute difference unsigned built-in functions.
9645
9646 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
9647
9648 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
9649 update shared_lookup_references only once after changing operands.
9650
9651 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
9652
9653 PR middle-end/71373
9654 * tree-nested.c (convert_nonlocal_omp_clauses)
9655 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
9656
9657 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
9658 * tree.def (CASE_LABEL_EXPR): Likewise.
9659
9660 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
9661
9662 PR bootstrap/71481
9663 * input.c (test_builtins): Fix an assertion.
9664
9665 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
9666
9667 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
9668 (paritysi2): Ditto.
9669 (isinfxf2): Ditto.
9670 (isinf<mode>2): Ditto.
9671
9672 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
9673
9674 * ggc-tests.c (test_finalization): Only test need_finalization_p
9675 for GCC_VERSION >= 4003.
9676
9677 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9678
9679 * config/s390/vecintrin.h: Fix file description in comment.
9680
9681 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9682
9683 * config/s390/s390-builtin-types.def: Change builtin type naming
9684 scheme to match builtin-types.def.
9685
9686 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
9687
9688 * fold-const.c (optimize_minmax_comparison): Remove.
9689 (fold_comparison): Remove call to the above.
9690 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
9691 New transformations.
9692
9693 2016-06-13 Alan Hayward <alan.hayward@arm.com>
9694
9695 PR tree-optimization/71416
9696 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
9697 multiple entries
9698
9699 2016-06-13 Martin Liska <mliska@suse.cz>
9700
9701 * predict.c (enum predictor_reason): Prefix enum with REASON_.
9702 (combine_predictions_for_insn): Likewise.
9703 (prune_predictions_for_bb): Likewise.
9704 (combine_predictions_for_bb): Likewise.
9705
9706 2016-06-13 Richard Biener <rguenther@suse.de>
9707
9708 PR tree-optimization/71505
9709 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
9710 assert match comment.
9711
9712 2016-06-13 Marek Polacek <polacek@redhat.com>
9713
9714 PR middle-end/71476
9715 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
9716 gimplify_switch_expr.
9717 (warn_switch_unreachable_r): New function.
9718
9719 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9720
9721 PR target/71379
9722 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
9723 one.
9724
9725 2016-06-13 Richard Biener <rguenther@suse.de>
9726
9727 PR middle-end/64516
9728 * fold-const.c (fold_unary_loc): Preserve alignment when
9729 folding a VIEW_CONVERT_EXPR into a MEM_REF.
9730
9731 2016-06-13 Martin Liska <mliska@suse.cz>
9732
9733 PR sanitizer/71458
9734 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
9735 w/ -fsanitize=bounds.
9736
9737 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
9738
9739 * config/i386/i386.c (ix86_init_builtins): Calculate
9740 FLOAT128_FTYPE_CONST_STRING function type only once.
9741 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
9742 built-in functions are available for x86-32 and x86-64 targets.
9743
9744 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
9745
9746 PR target/71241
9747 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
9748 New primitive type.
9749 (FLOAT128_FTYPE_CONST_STRING): New function type.
9750 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
9751 [IX86_BUILTIN_NANSQ]: Ditto.
9752 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
9753 (ix86_init_builtin_types): Declare const_string_type_node.
9754 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
9755 builtin functions.
9756 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
9757 * doc/extend.texi (x86 Built-in Functions): Document
9758 __builtin_nanq and __builtin_nansq.
9759
9760 2016-06-11 Jiong Wang <jiong.wang@arm.com>
9761
9762 PR target/71061
9763 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
9764 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
9765 length for pop patterns.
9766 (arm_attr_length_push_multi): Update comments.
9767 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
9768 attribute.
9769 (*pop_multiple_with_writeback_and_return): Likewise.
9770 (*pop_multiple_with_return): Likewise.
9771
9772 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
9773
9774 PR middle-end/71310
9775 * fold-const.c (optimize_bit_field_compare): Don't try to use
9776 word_mode unconditionally for reading the bit field, look at
9777 DECL_BIT_FIELD_REPRESENTATIVE instead.
9778
9779 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
9780
9781 PR middle-end/71478
9782 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
9783 vector integer type.
9784
9785 2016-06-10 Jakub Jelinek <jakub@redhat.com>
9786
9787 PR middle-end/71494
9788 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
9789 without LABEL_DECL, set *handled_ops_p to false instead of true.
9790
9791 2016-06-10 Martin Sebor <msebor@redhat.com>
9792
9793 PR c/71392
9794 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
9795 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
9796 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
9797 them.
9798 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
9799 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
9800 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
9801 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
9802 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
9803 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
9804 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
9805 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
9806
9807 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
9808
9809 * config/arm/arm.h (pool_vector_label,
9810 return_used_this_function): Remove.
9811
9812 2016-06-10 Jeff Law <law@redhat.com>
9813
9814 PR tree-optimization/71335
9815 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
9816 zero length paths here.
9817 (convert_and_register_jump_thread_path): Remove hacks related to
9818 duplicated blocks in the jump thread path.
9819 (fsm_find_control_statement_thread_paths): Avoid putting the same
9820 block on the thread path twice, but ensure the thread path is
9821 unchanged from the caller's point of view.
9822
9823 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
9824
9825 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
9826 * predict.def (PRED_LOOP_BRANCH): Remove.
9827
9828 2016-06-10 David Malcolm <dmalcolm@redhat.com>
9829
9830 * Makefile.in (OBJS): Add ggc-tests.o.
9831 (GTFILES): Add ggc-tests.c.
9832 * ggc-tests.c: New file.
9833 * selftest-run-tests.c (selftest::run_tests): Call
9834 selftest::ggc_tests_c_tests.
9835 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
9836
9837 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
9838
9839 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
9840
9841 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
9842
9843 PR sanitizer/71480
9844 * varasm.c (place_block_symbol): Adjust alignment for asan protected
9845 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
9846
9847 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
9848
9849 * profile.c: Include cfgloop.h.
9850 (branch_prob): Compute estimated number of iterations.
9851 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
9852 recompute estimate number of iterations from profile.
9853
9854 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
9855
9856 PR inline-asm/68843
9857 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
9858 must be grouped on top of stack. Don't force early clobber
9859 on ordinary reg outputs.
9860
9861 2016-06-10 Richard Biener <rguenther@suse.de>
9862
9863 * targhooks.c (default_builtin_vectorization_cost): Adjust
9864 vec_construct cost.
9865
9866 2016-06-10 Richard Biener <rguenther@suse.de>
9867
9868 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
9869 to fold the RHS to a constant if possible.
9870
9871 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
9872
9873 PR middle-end/71373
9874 * tree-nested.c (convert_nonlocal_omp_clauses)
9875 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
9876 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
9877 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
9878
9879 * gimplify.c (gimplify_adjust_omp_clauses): Discard
9880 OMP_CLAUSE_TILE.
9881 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
9882
9883 * omp-low.c (scan_sharing_clauses): Don't expect
9884 OMP_CLAUSE__CACHE_.
9885
9886 2016-06-10 Alan Hayward <alan.hayward@arm.com>
9887
9888 PR tree-optimization/71407
9889 PR tree-optimization/71416
9890 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
9891 BIT_FIELD_REF type.
9892
9893 2016-06-10 Richard Biener <rguenther@suse.de>
9894
9895 PR middle-end/71477
9896 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
9897
9898 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
9899
9900 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
9901
9902 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
9903 Jiong Wang <jiong.wang@arm.com>
9904
9905 PR rtl-optimization/70751
9906 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
9907 spilled into memory.
9908
9909 2016-06-09 Jonathan Yong <10walls@gmail.com>
9910
9911 Revert:
9912 2015-09-21 Jonathan Yong <10walls@gmail.com>
9913
9914 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
9915 sysroot/usr/lib/32api for additional win32 libraries,
9916 fixes failing Cygwin bootstrapping.
9917
9918 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
9919
9920 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
9921 Delete.
9922
9923 2016-06-09 David Malcolm <dmalcolm@redhat.com>
9924
9925 PR bootstrap/71471
9926 * pretty-print.c (pp_indent): Specify that %p is printed in a
9927 host-dependent manner.
9928 (test_pp_format): Remove the test for %p.
9929
9930 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
9931
9932 * config/mips/mips.c (mips_output_jump): Fix formatting.
9933
9934 2016-06-09 Richard Biener <rguenther@suse.de>
9935
9936 PR tree-optimization/71462
9937 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
9938 removed blocks.
9939
9940 2016-06-09 Martin Liska <mliska@suse.cz>
9941
9942 * predict.c (dump_prediction): Add new argument.
9943 (enum predictor_reason): New enum.
9944 (struct predictor_hash): New struct.
9945 (predictor_hash::hash): New function.
9946 (predictor_hash::equal): Likewise.
9947 (not_removed_prediction_p): New function.
9948 (prune_predictions_for_bb): Likewise.
9949 (combine_predictions_for_bb): Prune predictions.
9950
9951 2016-06-09 Martin Liska <mliska@suse.cz>
9952
9953 * predict.c (filter_predictions): New function.
9954 (remove_predictions_associated_with_edge): Use the filter
9955 function.
9956 (equal_edge_p): New function.
9957
9958 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
9959
9960 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
9961 Correct usage of @samp vs @option, add @samp where appropriate.
9962 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
9963 Add armv6s-m and document it, as it is no official ARM name.
9964
9965 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9966
9967 * ifcvt.c (struct noce_if_info): Add transform_name field.
9968 (noce_try_move): Set if_info->transform_name to the function name.
9969 (noce_try_ifelse_collapse): Likewise.
9970 (noce_try_store_flag): Likewise.
9971 (noce_try_inverse_constants): Likewise.
9972 (noce_try_store_flag_constants): Likewise.
9973 (noce_try_addcc): Likewise.
9974 (noce_try_store_flag_mask): Likewise.
9975 (noce_try_cmove): Likewise.
9976 (noce_try_cmove_arith): Likewise.
9977 (noce_try_minmax): Likewise.
9978 (noce_try_abs): Likewise.
9979 (noce_try_sign_mask): Likewise.
9980 (noce_try_bitop): Likewise.
9981 (noce_convert_multiple_sets): Likewise.
9982 (noce_process_if_block): Print if_info->transform_name to
9983 dump_file if transformation succeeded.
9984
9985 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9986
9987 * config/arm/cortex-a57.md (cortex_a57_alu):
9988 Handle csel type.
9989
9990 2016-06-08 Martin Sebor <msebor@redhat.com>
9991 Jakub Jelinek <jakub@redhat.com>
9992
9993 PR c++/70507
9994 PR c/68120
9995 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
9996 BUILT_IN_MUL_OVERFLOW_P): New builtins.
9997 * builtins.c: Include gimple-fold.h.
9998 (fold_builtin_arith_overflow): Handle
9999 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
10000 (fold_builtin_3): Likewise.
10001 * doc/extend.texi (Integer Overflow Builtins): Document
10002 __builtin_{add,sub,mul}_overflow_p.
10003
10004 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
10005
10006 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
10007 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
10008
10009 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
10010
10011 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
10012 Rewrite, looking one level down for records and arrays.
10013
10014 2016-06-08 David Malcolm <dmalcolm@redhat.com>
10015
10016 * pretty-print.c: Include "selftest.h".
10017 (pp_format): Fix comment.
10018 (identifier_to_locale): Likewise.
10019 (selftest::test_basic_printing): New function.
10020 (selftest::assert_pp_format): New function.
10021 (selftest::test_pp_format): New function.
10022 (selftest::pretty_print_c_tests): New function.
10023 * selftest-run-tests.c (selftest::run_tests): Call
10024 selftest::pretty_print_c_tests.
10025 * selftest.h (pretty_print_c_tests): New declaration.
10026
10027 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10028
10029 * invoke.texi (max-loop-headers-insns): Document.
10030 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
10031 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
10032 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
10033
10034 2016-06-08 Richard Biener <rguenther@suse.de>
10035
10036 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
10037 on strided SLP loads and fall back to scalar loads in case
10038 we can't chunk them.
10039
10040 2016-06-08 Richard Biener <rguenther@suse.de>
10041
10042 PR tree-optimization/71452
10043 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
10044 type used for the SSA rewrite has enough precision to cover
10045 the dynamic type of the location.
10046
10047 2016-06-08 Jakub Jelinek <jakub@redhat.com>
10048 Richard Biener <rguenther@suse.de>
10049
10050 PR c++/71448
10051 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
10052 the same as DECL_P (base0) for indirect_base0. Use equality_code
10053 in one further place.
10054
10055 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
10056
10057 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
10058 to one word if the field is known to overlap other words.
10059 (extract_bit_field_1): Likewise.
10060 (store_split_bit_field): Remove compensating code.
10061 (extract_split_bit_field): Likewise.
10062
10063 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
10064
10065 PR debug/71432
10066 PR ada/71413
10067 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
10068
10069 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10070
10071 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
10072 VDQF.
10073 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
10074 (arch64_addpv4sf): Delete.
10075 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
10076 "gen_aarch64_addpv4sf".
10077 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
10078 builtin.
10079 (vpadds_f32): Likewise.
10080 (vpaddq_f32): Likewise.
10081 (vpaddq_f64): Likewise.
10082
10083 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10084
10085 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
10086 VALLF.
10087 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
10088 to VALLF. Rename to "fabd<mode>3".
10089 "*fabd_scalar<mode>3): Delete.
10090 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
10091 Use builtin.
10092 (vabdd_f64): Likewise.
10093 (vabd_f32): Likewise.
10094 (vabd_f64): Likewise.
10095 (vabdq_f32): Likewise.
10096 (vabdq_f64): Likewise.
10097
10098 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10099
10100 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
10101 VALLF.
10102 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
10103 "aarch64_rsqrts<mode>".
10104 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
10105 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
10106 builtin.
10107 (vrsqrtsd_f64): Likewise.
10108 (vrsqrts_f32): Likewise.
10109 (vrsqrts_f64): Likewise.
10110 (vrsqrtsq_f32): Likewise.
10111 (vrsqrtsq_f64): Likewise.
10112
10113 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10114
10115 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
10116 VALLF.
10117 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
10118 "aarch64_rsqrte<mode>".
10119 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
10120 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
10121 builtin.
10122 (vrsqrted_f64): Likewise.
10123 (vrsqrte_f32): Likewise.
10124 (vrsqrte_f64): Likewise.
10125 (vrsqrteq_f32): Likewise.
10126 (vrsqrteq_f64): Likewise.
10127
10128 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10129
10130 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
10131 (ucvtf): Likewise.
10132 (fcvtzs): Likewise.
10133 (fcvtzu): Likewise.
10134 * config/aarch64/aarch64-simd.md
10135 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
10136 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
10137 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
10138 Use builtin.
10139 (vcvt_n_f32_u32): Likewise.
10140 (vcvt_n_s32_f32): Likewise.
10141 (vcvt_n_u32_f32): Likewise.
10142 (vcvtq_n_f32_s32): Likewise.
10143 (vcvtq_n_f32_u32): Likewise.
10144 (vcvtq_n_f64_s64): Likewise.
10145 (vcvtq_n_f64_u64): Likewise.
10146 (vcvtq_n_s32_f32): Likewise.
10147 (vcvtq_n_s64_f64): Likewise.
10148 (vcvtq_n_u32_f32): Likewise.
10149 (vcvtq_n_u64_f64): Likewise.
10150 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
10151 (VSDQ_SDI): Likewise.
10152 (fcvt_target): Support V4DI, V4SI and V2SI.
10153 (FCVT_TARGET): Likewise.
10154
10155 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10156
10157 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
10158 (TYPES_BINOP_SUS): Likewise.
10159 (aarch64_simd_builtin_data): Update include file name.
10160 (aarch64_builtins): Likewise.
10161 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
10162 for conversion between scalar float-point and fixed-point.
10163 (ucvtf): Likewise.
10164 (fcvtzs): Likewise.
10165 (fcvtzu): Likewise.
10166 * config/aarch64/aarch64.md
10167 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
10168 pattern for conversion between scalar float to fixed-pointer.
10169 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
10170 (UNSPEC_FCVTZS): New UNSPEC enumeration.
10171 (UNSPEC_FCVTZU): Likewise.
10172 (UNSPEC_SCVTF): Likewise.
10173 (UNSPEC_UCVTF): Likewise.
10174 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
10175 Use builtin.
10176 (vcvtd_n_f64_u64): Likewise.
10177 (vcvtd_n_s64_f64): Likewise.
10178 (vcvtd_n_u64_f64): Likewise.
10179 (vcvtd_n_f32_s32): Likewise.
10180 (vcvts_n_f32_u32): Likewise.
10181 (vcvtd_n_s32_f32): Likewise.
10182 (vcvts_n_u32_f32): Likewise.
10183 * config/aarch64/iterators.md (fcvt_target): Support integer to float
10184 mapping.
10185 (FCVT_TARGET): Likewise.
10186 (FCVT_FIXED2F): New iterator.
10187 (FCVT_F2FIXED): Likewise.
10188 (fcvt_fixed_insn): New define_int_attr.
10189
10190 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10191
10192 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
10193 some statements was removed.
10194
10195 2016-06-08 Alan Hayward <alan.hayward@arm.com>
10196
10197 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
10198 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
10199 (vect_can_advance_ivs_p): likewise.
10200 (vect_update_ivs_after_vectorizer): likewise.
10201 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
10202 (vect_analyze_scalar_cycles_1): likewise.
10203 (vect_analyze_loop_operations): likewise.
10204 (report_vect_op): likewise.
10205 (vect_is_slp_reduction): likewise.
10206 (vect_is_simple_reduction): likewise.
10207 (get_initial_def_for_induction): likewise.
10208 (vect_transform_loop): likewise.
10209 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
10210 (vect_recog_sad_pattern): likewise.
10211 (vect_recog_widen_sum_pattern): likewise.
10212 (vect_recog_widening_pattern): likewise.
10213 (vect_recog_divmod_pattern): likewise.
10214 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
10215 (vect_analyze_slp_instance): likewise.
10216 (vect_transform_slp_perm_load): likewise.
10217 (vect_schedule_slp_instance): likewise.
10218
10219 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10220
10221 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
10222 (return_prediction): PRED_CONST_RETURN predict return as not taken.
10223 * predict.def (PRED_CONTINUE): Change hitrate 50->67
10224 (PRED_LOOP_BRANCH): Document predictor as broken.
10225 (PRED_LOOP_EXIT): Change hitrate 91->92.
10226 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
10227 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
10228 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
10229 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
10230 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
10231 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
10232 (PRED_CALL): Chane hitrate 71->67.
10233 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
10234 (PRED_GOTO): Document as unused right now.
10235 (PRED_CONST_RETURN): Change hitrate 67->69
10236 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
10237 (PRED_NULL_RETURN): Change hitrate 91->90.
10238 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
10239 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
10240 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
10241
10242 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
10243
10244 * config/rs6000/altivec.h: Add __builtin_vec_mul.
10245 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
10246 special case Altivec builtin.
10247 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10248 VSX_BUILTIN_VEC_MUL (replaced with special case code).
10249 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
10250 code for ALTIVEC_BUILTIN_VEC_MUL.
10251 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
10252 for __builtin_vec_mul.
10253
10254 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
10255
10256 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
10257 -mno-htm.
10258
10259 2016-06-07 David Malcolm <dmalcolm@redhat.com>
10260
10261 * spellcheck.c (selftest::test_find_closest_string): New function.
10262 (spellcheck_c_tests): Call the above.
10263
10264 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10265
10266 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
10267
10268 2016-06-07 Jakub Jelinek <jakub@redhat.com>
10269
10270 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
10271 Yv=Yv,C alternatives.
10272
10273 2016-06-07 Richard Biener <rguenther@suse.de>
10274
10275 PR c/61564
10276 * common.opt (ffast-math): Make Optimization.
10277
10278 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
10279 Prachi Godbole <prachi.godbole@imgtec.com>
10280
10281 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
10282 `fabs' and `fneg' type attributes.
10283 (p5600_fpu_fabs): Add `fmove' to the comment.
10284
10285 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10286
10287 * gimple.c: Include builtins.h
10288 (gimple_inexpensive_call_p): New function.
10289 * gimple.h (gimple_inexpensive_call_p): Declare.
10290 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
10291 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
10292 fix formatting.
10293
10294 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
10295
10296 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
10297 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
10298 warning_at_rich_loc, warning_n, pedwarn, permerror,
10299 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
10300 sorry, fatal_error, internal_error, internal_error_no_backtrace):
10301 Use the above.
10302
10303 2016-06-07 Richard Biener <rguenther@suse.de>
10304
10305 PR tree-optimization/71428
10306 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
10307 BIT_FIELD_REF op vs. load.
10308
10309 2016-06-07 Richard Biener <rguenther@suse.de>
10310
10311 PR middle-end/71423
10312 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
10313 for signed ops.
10314
10315 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
10316
10317 * config/pa/pa.md (call): Generate indirect long calls to non-local
10318 functions on TARGET_64BIT.
10319 (call_value): Likewise.
10320
10321 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
10322
10323 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
10324 pattern and subsequent splitters.
10325 (call_val_reg_64bit_post_reload): Likewise.
10326
10327 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
10328
10329 PR middle-end/71408
10330 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
10331 propagate_op_to_single_use.
10332
10333 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
10334
10335 PR middle-end/71281
10336 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
10337
10338 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
10339
10340 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
10341 (enum x86_dirflag_state): New enum.
10342 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
10343 (machine_function): Remove needs_cld.
10344 (ix86_current_function_needs_cld): Remove.
10345 * config/i386/i386.c (ix86_set_func_type): Set
10346 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
10347 (ix86_expand_prologue): Do not emit CLD here.
10348 (ix86_dirflag_mode_needed): New function.
10349 (ix86_dirflag_mode_entry): Ditto.
10350 (ix86_mode_needed): Handle X86_DIRFLAG entity.
10351 (ix86_mode_after): Ditto.
10352 (ix86_mode_entry): Ditto.
10353 (ix86_mode_exit): Ditto.
10354 (ix86_emit_mode_set): Ditto.
10355 * config/i386/i386.md (strmov_singleop): Set
10356 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
10357 Do not set ix86_current_function_needs_cld.
10358 (rep_mov): Ditto.
10359 (strset_singleop): Ditto.
10360 (rep_stos): Ditto.
10361 (cmpstrnqi_nz_1): Ditto.
10362 (cmpstrnqi_1): Ditto.
10363 (strlenqi_1): Ditto.
10364
10365 2016-06-06 Jakub Jelinek <jakub@redhat.com>
10366
10367 PR tree-optimization/71259
10368 * tree-vect-slp.c (vect_get_constant_vectors): For
10369 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
10370 one for constant op, and use COND_EXPR for non-constant.
10371
10372 2016-06-06 David Malcolm <dmalcolm@redhat.com>
10373
10374 * Makefile.in (OBJS): Add function-tests.o,
10375 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
10376 selftest-run-tests.o.
10377 (OBJS-libcommon): Add selftest.o.
10378 (OBJS-libcommon-target): Add selftest.o.
10379 (all.internal): Add "selftest".
10380 (all.cross): Likewise.
10381 (selftest): New phony target.
10382 (s-selftest): New target.
10383 (selftest-gdb): New phony target.
10384 (COLLECT2_OBJS): Add selftest.o.
10385 * bitmap.c: Include "selftest.h".
10386 (selftest::test_gc_alloc): New function.
10387 (selftest::test_set_range): New function.
10388 (selftest::test_clear_bit_in_middle): New function.
10389 (selftest::test_copying): New function.
10390 (selftest::test_bitmap_single_bit_set_p): New function.
10391 (selftest::bitmap_c_tests): New function.
10392 * common.opt (fself-test): New.
10393 * diagnostic-show-locus.c: Include "selftest.h".
10394 (make_range): New function.
10395 (test_range_contains_point_for_single_point): New function.
10396 (test_range_contains_point_for_single_line): New function.
10397 (test_range_contains_point_for_multiple_lines): New function.
10398 (assert_eq): New function.
10399 (test_get_line_width_without_trailing_whitespace): New function.
10400 (selftest::diagnostic_show_locus_c_tests): New function.
10401 * et-forest.c: Include "selftest.h".
10402 (selftest::test_single_node): New function.
10403 (selftest::test_simple_tree): New function.
10404 (selftest::test_disconnected_nodes): New function.
10405 (selftest::et_forest_c_tests): New function.
10406 * fold-const.c: Include "selftest.h".
10407 (selftest::assert_binop_folds_to_const): New function.
10408 (selftest::assert_binop_folds_to_nonlvalue): New function.
10409 (selftest::test_arithmetic_folding): New function.
10410 (selftest::fold_const_c_tests): New function.
10411 * function-tests.c: New file.
10412 * gimple.c: Include "selftest.h".
10413 Include "gimple-pretty-print.h".
10414 (selftest::verify_gimple_pp): New function.
10415 (selftest::test_assign_single): New function.
10416 (selftest::test_assign_binop): New function.
10417 (selftest::test_nop_stmt): New function.
10418 (selftest::test_return_stmt): New function.
10419 (selftest::test_return_without_value): New function.
10420 (selftest::gimple_c_tests): New function.
10421 * hash-map-tests.c: New file.
10422 * hash-set-tests.c: New file.
10423 * input.c: Include "selftest.h".
10424 (selftest::assert_loceq): New function.
10425 (selftest::test_accessing_ordinary_linemaps): New function.
10426 (selftest::test_unknown_location): New function.
10427 (selftest::test_builtins): New function.
10428 (selftest::test_reading_source_line): New function.
10429 (selftest::input_c_tests): New function.
10430 * rtl-tests.c: New file.
10431 * selftest-run-tests.c: New file.
10432 * selftest.c: New file.
10433 * selftest.h: New file.
10434 * spellcheck.c: Include "selftest.h".
10435 (selftest::levenshtein_distance_unit_test_oneway): New function,
10436 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
10437 (selftest::levenshtein_distance_unit_test): Likewise.
10438 (selftest::spellcheck_c_tests): Likewise.
10439 * toplev.c: Include selftest.h.
10440 (toplev::run_self_tests): New.
10441 (toplev::main): Handle -fself-test.
10442 * toplev.h (toplev::run_self_tests): New.
10443 * tree.c: Include "selftest.h".
10444 (selftest::test_integer_constants): New function.
10445 (selftest::test_identifiers): New function.
10446 (selftest::test_labels): New function.
10447 (selftest::tree_c_tests): New function.
10448 * tree-cfg.c: Include "selftest.h".
10449 (selftest::push_fndecl): New function.
10450 (selftest::test_linear_chain): New function.
10451 (selftest::test_diamond): New function.
10452 (selftest::test_fully_connected): New function.
10453 (selftest::tree_cfg_c_tests): New function.
10454 * vec.c: Include "selftest.h".
10455 (selftest::safe_push_range): New function.
10456 (selftest::test_quick_push): New function.
10457 (selftest::test_safe_push): New function.
10458 (selftest::test_truncate): New function.
10459 (selftest::test_safe_grow_cleared): New function.
10460 (selftest::test_pop): New function.
10461 (selftest::test_safe_insert): New function.
10462 (selftest::test_ordered_remove): New function.
10463 (selftest::test_unordered_remove): New function.
10464 (selftest::test_block_remove): New function.
10465 (selftest::reverse_cmp): New function.
10466 (selftest::test_qsort): New function.
10467 (selftest::vec_c_tests): New function.c.
10468 * wide-int.cc: Include selftest.h and wide-int-print.h.
10469 (selftest::from_int <wide_int>): New function.
10470 (selftest::from_int <offset_int>): New function.
10471 (selftest::from_int <widest_int>): New function.
10472 (selftest::assert_deceq): New function.
10473 (selftest::assert_hexeq): New function.
10474 (selftest::test_printing <VALUE_TYPE>): New function template.
10475 (selftest::test_ops <VALUE_TYPE>): New function template.
10476 (selftest::test_comparisons <VALUE_TYPE>): New function template.
10477 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
10478 template.
10479 (selftest::wide_int_cc_tests): New function.
10480
10481 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10482
10483 PR middle-end/37780
10484 * ifcvt.c (noce_try_ifelse_collapse): New function.
10485 Declare prototype.
10486 (noce_process_if_block): Call noce_try_ifelse_collapse.
10487 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
10488 (simplify_ternary_operation): Use the above to simplify
10489 conditional CLZ/CTZ expressions.
10490
10491 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10492
10493 PR middle-end/37780
10494 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
10495 define_insn_and_split.
10496
10497 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10498
10499 PR middle-end/37780
10500 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
10501
10502 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
10503
10504 PR c/24414
10505 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
10506 Implicitly clobber memory for basic asm with non-empty assembler
10507 string. Use targetm.md_asm_adjust also here.
10508 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
10509 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
10510 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
10511 non-empty assembler string.
10512 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
10513 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
10514 (decode_asm_operands): Handle basic asm in PARALLEL block.
10515 (extract_insn): Handle basic asm in PARALLEL block.
10516 * doc/extend.texi: Mention new behavior of basic asm.
10517 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
10518 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
10519 branch_needs_nop_p): Use asm_noperands.
10520
10521 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
10522
10523 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
10524 Include the M7 SPARC DFA scheduler.
10525 New attribute v3pipe.
10526 Annotate insns with v3pipe where appropriate.
10527 Define cpu_feature vis4.
10528 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
10529 Add (V8QI "8") to vbits.
10530 Add insns {add,sub}v8qi3
10531 Add insns ss{add,sub}v8qi3
10532 Add insns us{add,sub}{v8qi,v4hi}3
10533 Add insns {min,max}{v8qi,v4hi,v2si}3
10534 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
10535 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
10536 * config/sparc/niagara4.md: Add a comment explaining the
10537 discrepancy between the documented latenty numbers and the
10538 implemented ones.
10539 * config/sparc/niagara7.md: New file.
10540 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
10541 supports SPARC5 and VIS 4.0 instructions.
10542 * configure: Regenerate.
10543 * config.in: Likewise.
10544 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
10545 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
10546 TARGET_CPU_niagara7.
10547 (ASM_CPU64_DEFAULT_SPEC): Likewise.
10548 (CPP_CPU_SPEC): Handle niagara7.
10549 (ASM_CPU_SPEC): Likewise.
10550 * config/sparc/sparc-opts.h (processor_type): Add
10551 PROCESSOR_NIAGARA7.
10552 (mvis4): New option.
10553 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
10554 (AS_NIAGARA7_FLAG): Define.
10555 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
10556 (CPP_CPU64_DEFAULT_SPEC): Likewise.
10557 (CPP_CPU_SPEC): Handle niagara7.
10558 (ASM_CPU_SPEC): Likewise.
10559 * config/sparc/sparc.c (niagara7_costs): Define.
10560 (sparc_option_override): Handle niagara7 and adjust cache-related
10561 parameters with better values for niagara cpus. Also support VIS4.
10562 (sparc32_initialize_trampoline): Likewise.
10563 (sparc_use_sched_lookahead): Likewise.
10564 (sparc_issue_rate): Likewise.
10565 (sparc_register_move_cost): Likewise.
10566 (dump_target_flag_bits): Support VIS4.
10567 (sparc_vis_init_builtins): Likewise.
10568 (sparc_builtins): Likewise.
10569 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
10570 VIS4 4.0.
10571 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
10572 UltraSparc M7.
10573 * config/sparc/sparc.opt (sparc_processor_type): New value
10574 niagara7.
10575 * config/sparc/visintrin.h (__attribute__): Prototypes for the
10576 VIS4 builtins.
10577 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
10578 -mvis4.
10579 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
10580 VIS4 builtins.
10581
10582 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
10583
10584 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
10585
10586 2016-06-06 Richard Biener <rguenther@suse.de>
10587
10588 PR tree-optimization/71398
10589 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
10590 remove edges.
10591
10592 2016-06-05 James Bowman <james.bowman@ftdichip.com>
10593
10594 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
10595 ft32_expand_prolog, ft32_expand_epilogue):
10596 Handle pretend_args.
10597 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
10598 * config/ft32/ft32.md: Add pretend_returner.
10599
10600 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
10601
10602 PR target/71389
10603 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
10604 Copy op1 RTX to avoid invalid sharing.
10605 (ix86_expand_vector_move_misalign): Ditto.
10606
10607 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
10608
10609 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
10610 ATTRIBUTE_UNUSED.
10611
10612 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
10613
10614 * predict.c (predicted_by_loop_heuristics_p): New function.
10615 (predict_iv_comparison): Use it.
10616 (predict_loops): Walk from innermost loops; do not predict edges
10617 leaving multiple loops multiple times; implement
10618 PRED_LOOP_ITERATIONS_MAX heuristics.
10619 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
10620
10621 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
10622
10623 * cfg.c (check_bb_profile): Do not report mismatched profiles when
10624 only edges out of BB are EH edges.
10625
10626 2016-06-04 Martin Sebor <msebor@redhat.com>
10627 Marcin Baczyński <marbacz@gmail.com>
10628
10629 PR c/48116
10630 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
10631 a void expression in a void function.
10632
10633 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
10634
10635 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
10636 aux; dump reasons of decisions.
10637 (should_duplicate_loop_header_p): Likewise.
10638 (do_while_loop_p): Likewise.
10639 (ch_base::copy_headers): Dump asi num insns duplicated.
10640
10641 2016-06-04 Jakub Jelinek <jakub@redhat.com>
10642
10643 PR tree-optimization/71405
10644 * tree-ssa.c (execute_update_addresses_taken): For clobber with
10645 incompatible type, build a new clobber with the right type instead
10646 of building a VIEW_CONVERT_EXPR around it.
10647
10648 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
10649
10650 PR tree-optimization/52171
10651 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
10652 by_pieces_ninsns instead of move_by_pieces_ninsns.
10653
10654 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
10655
10656 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
10657 for reg+reg addressing mode.
10658
10659 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10660
10661 * rs6000-c.c (c/c-tree.h): Add #include.
10662 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
10663 in C++ when found in the base position of vec_ld or vec_st.
10664
10665 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
10666
10667 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
10668 use of profile unless profile status is PROFILE_READ.
10669 * profile.c (compute_branch_probabilities): Set profile status
10670 only after reporting predictor hitrates.
10671
10672 2016-06-03 Joseph Myers <joseph@codesourcery.com>
10673
10674 PR target/71276
10675 PR target/71277
10676 * common.opt (ffp-int-builtin-inexact): New option.
10677 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
10678 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
10679 (ceil@var{m}2): Document dependence on this option.
10680 * ipa-inline-transform.c (inline_call): Handle
10681 flag_fp_int_builtin_inexact.
10682 * ipa-inline.c (can_inline_edge_p): Likewise.
10683 * config/i386/i386.md (rintxf2): Do not test
10684 flag_unsafe_math_optimizations.
10685 (rint<mode>2_frndint): New define_insn.
10686 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
10687 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
10688 for 387 instead of extending and truncating.
10689 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
10690 !flag_trapping_math instead of flag_unsafe_math_optimizations.
10691 Change to frndint<mode>2_<rounding>.
10692 (frndintxf2_<rounding>_i387): Likewise. Change to
10693 frndint<mode>2_<rounding>_i387.
10694 (<rounding_insn>xf2): Likewise.
10695 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
10696 !flag_trapping_math instead of flag_unsafe_math_optimizations for
10697 x87. Test TARGET_ROUND || !flag_trapping_math ||
10698 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
10699 SSE. Use ROUND_NO_EXC in constant operand of
10700 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
10701 for 387 instead of extending and truncating.
10702
10703 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
10704 Julia Koval <julia.koval@intel.com>
10705
10706 PR target/66960
10707 PR target/67630
10708 PR target/67634
10709 PR target/67841
10710 PR target/68037
10711 PR target/68618
10712 PR target/68661
10713 PR target/69575
10714 PR target/69596
10715 PR target/69734
10716 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
10717 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
10718 all registers, except for function return registers if there are
10719 no caller-saved registers.
10720 (ix86_set_func_type): New function.
10721 (ix86_set_current_function): Call ix86_set_func_type to set
10722 no_caller_saved_registers and func_type. Call reinit_regs if
10723 caller-saved registers are changed. Don't allow MPX, SSE, MMX
10724 nor x87 instructions in interrupt handler nor function with
10725 no_caller_saved_registers attribute.
10726 (ix86_function_ok_for_sibcall): Return false if there are no
10727 caller-saved registers.
10728 (type_natural_mode): Don't warn ABI change for MMX in interrupt
10729 handler.
10730 (ix86_function_arg_advance): Skip for callee in interrupt handler.
10731 (ix86_function_arg): Return special arguments in interrupt handler.
10732 (ix86_promote_function_mode): Promote pointer to word_mode only
10733 for normal functions.
10734 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
10735 interrupt handler.
10736 (ix86_epilogue_uses): New function.
10737 (ix86_hard_regno_scratch_ok): Likewise.
10738 (ix86_save_reg): Preserve all registers in interrupt handler
10739 after reload. Preserve all registers, except for function return
10740 registers, if there are no caller-saved registers after reload.
10741 (find_drap_reg): Always use callee-saved register if there are
10742 no caller-saved registers.
10743 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
10744 for interrupt handler.
10745 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
10746 Emit cld instruction if stringops are used in interrupt handler
10747 or interrupt handler isn't a leaf function.
10748 (ix86_expand_epilogue): Generate interrupt return for interrupt
10749 handler and pop the 'ERROR_CODE' off the stack before interrupt
10750 return in exception handler.
10751 (ix86_expand_call): Disallow calling interrupt handler directly.
10752 If there are no caller-saved registers, mark all registers that
10753 are clobbered by the call which returns as clobbered.
10754 (ix86_handle_no_caller_saved_registers_attribute): New function.
10755 (ix86_handle_interrupt_attribute): Likewise.
10756 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
10757 attributes.
10758 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
10759 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
10760 accumulation in interrupt function if stack may be realigned to
10761 avoid DRAP.
10762 (EPILOGUE_USES): New.
10763 (function_type): New enum.
10764 (machine_function): Add func_type and no_caller_saved_registers.
10765 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
10766 (interrupt_return): New pattern.
10767 * doc/extend.texi: Document x86 interrupt and
10768 no_caller_saved_registers attributes.
10769
10770 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
10771
10772 PR tree-optimization/52171
10773 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
10774 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
10775 Look for constant strings. Move some code to emit_block_cmp_hints
10776 and use it.
10777 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
10778 * defaults.h (COMPARE_MAX_PIECES): New macro.
10779 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
10780 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
10781 (clear_by_pieces_1): Don't declare. Move definition before use.
10782 (can_do_by_pieces): New static function.
10783 (can_move_by_pieces): Use it. Return bool.
10784 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
10785 OP. All callers changed. Handle COMPARE_BY_PIECES.
10786 (class pieces_addr); New.
10787 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
10788 pieces_addr::adjust, pieces_addr::increment_address,
10789 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
10790 functions for it.
10791 (class op_by_pieces_d): New.
10792 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
10793 functions for it.
10794 (class move_by_pieces_d, class compare_by_pieces_d,
10795 class store_by_pieces_d): New subclasses of op_by_pieces_d.
10796 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
10797 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
10798 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
10799 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
10800 compare_by_pieces_d::finish_mode): New member functions.
10801 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
10802 functions.
10803 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
10804 (emit_block_cmp_hints): New function.
10805 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
10806 use the newly defined classes.
10807 * expr.h (by_pieces_constfn): New typedef.
10808 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
10809 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
10810 (move_by_pieces_ninsns): Don't declare.
10811 (can_move_by_pieces): Change return value to bool.
10812 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
10813 (compare_by_pieces_branch_ratio): New hook.
10814 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
10815 (by_pieces_ninsns): Declare.
10816 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
10817 COMPARE_BY_PIECES.
10818 (default_compare_by_pieces_branch_ratio): New function.
10819 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
10820 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
10821 * doc/tm.texi: Regenerate.
10822 * tree-ssa-strlen.c: Include "builtins.h".
10823 (handle_builtin_memcmp): New static function.
10824 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
10825 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
10826
10827 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10828
10829 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
10830 relevant stmts which are simple and invariant.
10831 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
10832 instead of simple and invariant
10833
10834 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10835
10836 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
10837 (vectorizable_reduction): Check for new relevant state.
10838 (vectorizable_live_operation): vectorize live stmts using
10839 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
10840 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
10841 (vect_stmt_relevant_p): Check for stmts which are only used live.
10842 (process_use): Use of a stmt does not inherit it's live value.
10843 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
10844 (vect_analyze_stmt): Check for new relevant state.
10845 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
10846 outside the loop, but not inside it.
10847
10848 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10849
10850 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
10851 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
10852 (vect_get_vec_def_for_operand): Split out code.
10853
10854 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
10855
10856 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
10857
10858 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10859
10860 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
10861
10862 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10863
10864 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
10865
10866 2016-06-03 Jakub Jelinek <jakub@redhat.com>
10867
10868 PR middle-end/71387
10869 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
10870 to noreturn e->callee->decl that has void return type and void
10871 arguments, adjust gimple_call_fntype and remove lhs even if it had
10872 previously addressable type.
10873
10874 2016-06-02 Jeff Law <law@redhat.com>
10875
10876 PR tree-optimization/71328
10877 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
10878 error when checking for a jump back onto the copied path.
10879
10880 2016-06-02 David Malcolm <dmalcolm@redhat.com>
10881
10882 * config/microblaze/microblaze.c (get_branch_target): Add return
10883 NULL_RTX for the non-CALL_P case.
10884 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
10885 (insert_wic): Remove unused local "j".
10886
10887 2016-06-02 Martin Liska <mliska@suse.cz>
10888
10889 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
10890
10891 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
10892 Julia Koval <julia.koval@intel.com>
10893
10894 * function.c (assign_parm_setup_stack): Force source into a
10895 register if needed.
10896 * target.def (function_incoming_arg): Update documentation to
10897 allow arbitrary address computation based on hard register.
10898 * doc/tm.texi: Regenerated.
10899
10900 2016-06-02 Martin Liska <mliska@suse.cz>
10901
10902 * predict.c (combine_predictions_for_bb): Fix first match in
10903 cases where a first predictor contains more than one occurence
10904 in list of predictors. Take the best value in such case.
10905
10906 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10907
10908 PR rtl-optimization/71295
10909 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
10910 offset would go over the size of the inner mode reject it.
10911
10912 2016-06-02 Jakub Jelinek <jakub@redhat.com>
10913
10914 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
10915 x=x,x and v=v,m instead of x=x,m.
10916
10917 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
10918 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
10919 alternative to v=rm,C.
10920
10921 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
10922 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
10923 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
10924 instead of vex for the last two above mentioned alternatives.
10925
10926 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10927
10928 PR target/70830
10929 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
10930
10931 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
10932
10933 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
10934
10935 2016-06-01 David Malcolm <dmalcolm@redhat.com>
10936
10937 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
10938 from int to unsigned.
10939
10940 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
10941
10942 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
10943 alternatives, eliminating preferred register class. Add support
10944 for the MTVSRDD instruction in ISA 3.0.
10945 (vsx_splat_v4si_internal): Use splat_input_operand instead of
10946 reg_or_indexed_operand.
10947 (vsx_splat_v4sf_internal): Likewise.
10948
10949 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
10950
10951 PR target/71186
10952 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
10953 for loading up all 0's or all 1's.
10954
10955 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
10956
10957 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
10958
10959 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
10960
10961 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
10962 extension.
10963 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
10964 * gcc.c (set_source_date_epoch_envvar): New function, sets
10965 the SOURCE_DATE_EPOCH environment variable to the current time.
10966
10967 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
10968
10969 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
10970 the factor for live Phi nodes.
10971
10972 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
10973
10974 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
10975 * tree-parloops.c (parallelize_loops): likewise.
10976 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
10977 tree_unswitch_outer_loop): likewise.
10978
10979 2016-06-01 Jakub Jelinek <jakub@redhat.com>
10980
10981 PR middle-end/71371
10982 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
10983 around creation of the temporary.
10984
10985 2016-06-01 Richard Biener <rguenther@suse.de>
10986
10987 PR tree-optimization/71366
10988 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
10989 (unloop_loops): Move removing edges here ...
10990 (try_unroll_loop_completely): ... from here.
10991 (try_peel_loop): ... and here.
10992 (tree_unroll_loops_completely_1): Track parent loops via
10993 bitmap of header BBs.
10994 (tree_unroll_loops_completely): Adjust for that.
10995
10996 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
10997
10998 * config/rs6000/altivec.h (vec_slv): New macro.
10999 (vec_srv): New macro.
11000 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
11001 (UNSPEC_VSRV): New value.
11002 (vslv): New insn.
11003 (vsrv): New insn.
11004 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
11005 (vsrv): New builtin definition.
11006 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
11007 define argument types for new builtin.
11008 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
11009 new builtin.
11010 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
11011 functions.
11012
11013 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
11014 Jocelyn Mayer <l_indien@magic.fr>
11015
11016 PR target/67310
11017 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
11018 detect processor family for signature_CENTAUR_ebx.
11019 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
11020 signature_CENTAUR_ebx.
11021 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
11022 <default>: Pass x86-64 for has_longmode.
11023
11024 2016-06-01 Nathan Sidwell <nathan@acm.org>
11025
11026 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
11027 undefined weak.
11028
11029 2016-06-01 Richard Biener <rguenther@suse.de>
11030
11031 PR tree-optimization/71261
11032 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
11033 of stmts successfully put in the bool pattern. Remove
11034 single-use restriction.
11035 (adjust_bool_pattern_cast): Add cast at the use site via the
11036 pattern def sequence.
11037 (adjust_bool_pattern): Remove recursion, maintain a hash-map
11038 of patterned defs. Use the pattern def seqence instead of
11039 multiple independent patterns.
11040 (sort_after_uid): New qsort compare function.
11041 (adjust_bool_stmts): New function to process stmts in the bool
11042 pattern in IL order.
11043 (vect_recog_bool_pattern): Adjust.
11044 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
11045 (ifcvt_walk_pattern_tree): Likewise.
11046 (stmt_is_root_of_bool_pattern): Likewise.
11047 (ifcvt_repair_bool_pattern): Likewise.
11048 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
11049
11050 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11051
11052 * loop-unroll.c (decide_unroll_constant_iterations,
11053 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
11054 likely upper bounds.
11055 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
11056
11057 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
11058
11059 * tree-core.h (enum omp_clause_code): Remove
11060 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
11061
11062 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11063
11064 * config/arm/sync.md (arm_store_exclusive<mode>):
11065 Use 'H' output modifier on operands[2] rather than creating a new
11066 entry in out-of-bounds memory of the operands array.
11067 (arm_store_release_exclusivedi): Likewise.
11068
11069 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11070
11071 * config/arm/arm.c (arm_fusion_enabled_p): New function.
11072 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
11073 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
11074 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
11075
11076 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11077
11078 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
11079 into account live statements for mask producers.
11080
11081 2016-06-01 Richard Biener <rguenther@suse.de>
11082
11083 PR tree-optimization/71311
11084 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
11085 restrict to non-INTEGER_CST @0.
11086
11087 2016-06-01 Richard Biener <rguenther@suse.de>
11088
11089 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
11090 (relational patterns): Use :c to avoid pattern duplications.
11091
11092 2016-06-01 Richard Biener <rguenther@suse.de>
11093
11094 * genmatch.c (comparison_code_p): New predicate.
11095 (swap_tree_comparison): New function.
11096 (commutate): Add for_vec parameter to append new for entries.
11097 Support commutating relational operators by swapping it alongside
11098 operands.
11099 (lower_commutative): Adjust.
11100 (dt_simplify::gen): Do not pass artificial operators to gen
11101 functions.
11102 (decision_tree::gen): Do not add artificial operators as parameters.
11103 (parser::parse_expr): Verify operator commutativity when :c is
11104 applied. Allow :C to override this.
11105 * match.pd: Adjust patterns to use :C instead of :c where required.
11106
11107 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
11108
11109 PR tree-optimization/71077
11110 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
11111 the combining step, use boolean_false_node and boolean_true_node
11112 as the designated false/true return values.
11113
11114 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11115
11116 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
11117 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
11118 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
11119 PRED_LOOP_EXIT.
11120
11121 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11122
11123 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
11124 of flags impliying the register renaming.
11125 * toplev.c (process_options): Do not imply flag_rename_registers with
11126 loop peeling.
11127
11128 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11129
11130 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
11131 default implementation.
11132
11133 2016-05-31 Nathan Sidwell <nathan@acm.org>
11134
11135 * dwarf2out.c (cur_line_info_table): Add GTY marker.
11136
11137 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11138
11139 * config/sh/constraints.md (b): Remove constraint.
11140 * config/sh/predicates.md (arith_reg_operand): Remove
11141 TARGET_REGISTER_P.
11142 * config/sh/sh-modes.def (PDI): Remove.
11143 * config/sh/sh.c (sh_target_reg_class,
11144 sh_optimize_target_register_callee_saved): Remove functions.
11145 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
11146 (sh_expand_epilogue): Update comment.
11147 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
11148 sh_secondary_reload): Remove TARGET_REGS related code.
11149 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
11150 TARGET_REGISTER_P): Remove macros.
11151 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
11152 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
11153 TR1_REG, TR2_REG): Remove constants.
11154 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
11155
11156 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11157
11158 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
11159 define_expand patterns.
11160 (adddi3_compact): Rename to adddi3.
11161 (subdi3_compact): Rename to subdi3.
11162 (*negdi2): Rename to negdi2.
11163 (*abs<mode>2): Rename to abs<mode>2.
11164
11165 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11166
11167 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
11168 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
11169 (atomic_sub_fetchsi): ... this new pattern.
11170 (mvtc): Add CC_REG clobber.
11171
11172 2016-05-31 Marek Polacek <polacek@redhat.com>
11173
11174 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
11175
11176 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11177
11178 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
11179 aarch64_fusion_enabled_p to check for fusion capabilities.
11180
11181 2016-05-31 Richard Biener <rguenther@suse.de>
11182
11183 PR tree-optimization/71352
11184 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
11185 minus one and a negate.
11186
11187 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11188
11189 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
11190 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
11191 Delete prototype.
11192 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
11193 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
11194 Remove use of aarch64_simd_attr_length_move, set length attribute
11195 directly.
11196 (*aarch64_be_movoi): Likewise.
11197 (*aarch64_be_movci): Likewise.
11198 (*aarch64_be_movxi): Likewise.
11199
11200 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11201
11202 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
11203 It no longer does that.
11204 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
11205
11206 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
11207
11208 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
11209 attribute __unused__.
11210
11211 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
11212
11213 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
11214 * config/arm/arm.c (arm_arch_thumb1): Define.
11215 (arm_option_override): Initialize arm_arch_thumb1.
11216 * config/arm/arm.h (arm_arch_thumb1): Declare.
11217 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
11218 support Thumb-1 ISA.
11219
11220 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
11221
11222 PR target/71346
11223 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
11224 `Yv' for scalar operand.
11225
11226 2016-05-31 Tom de Vries <tom@codesourcery.com>
11227
11228 PR tree-optimization/69068
11229 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
11230 phis with more than two args.
11231
11232 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
11233
11234 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
11235 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
11236 target.
11237
11238 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
11239
11240 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
11241 tune_64.
11242 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
11243 support on SPARC.
11244 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
11245 cpu_32, cpu_64, tune_32 and tune_64.
11246 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
11247
11248 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
11249
11250 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
11251
11252 2016-05-30 Andi Kleen <ak@linux.intel.com>
11253
11254 * auto-profile.c (read_profile): Replace asserts with errors
11255 when file does not exist.
11256 * gcov-io.c (gcov_read_words): Dito.
11257
11258 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11259
11260 * tree-cfg.c (print_loop): Print likely upper bounds.
11261
11262 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11263
11264 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
11265 * opts.c (default_options): Enable peel loops at -O3.
11266 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
11267 (try_peel_loop): Do not re-peel already peeled loops;
11268 use likely upper bounds; fix profile updating.
11269 (pass_complete_unroll::execute): Initialize peeled_loops.
11270
11271 2016-05-30 Martin Liska <mliska@suse.cz>
11272
11273 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
11274 computed costs by frequency of BB they belong to.
11275 (get_scaled_computation_cost_at): New function.
11276
11277 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
11278 Marc Glisse <marc.glisse@inria.fr>
11279
11280 PR tree-optimization/71289
11281 * match.pd (-1 / B < A, A > -1 / B): New transformations.
11282
11283 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11284
11285 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
11286
11287 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11288
11289 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
11290 for peeled copies; avoid underflow when updating estimates; correctly
11291 scale loop profile.
11292
11293 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11294
11295 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
11296 r236875. Corrected oe3 to oe2 as obvious.
11297
11298 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11299
11300 PR middle-end/71269
11301 PR middle-end/71252
11302 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
11303 that inserted stmt will not dominate stmts that defines its operand.
11304 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
11305 (rewrite_expr_tree_parallel): Likewise.
11306
11307 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11308
11309 PR middle-end/71252
11310 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
11311 all fields including stmt_to_insert are swapped.
11312
11313 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11314
11315 * predict.h (force_edge_cold): Declare.
11316 * predict.c (force_edge_cold): New function.
11317 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
11318 updating.
11319 (canonicalize_loop_induction_variables): Fix formating.
11320
11321 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
11322
11323 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
11324 (visium_expand_copysign): Use gen_int_mode directly.
11325 (visium_compute_frame_size): Minor tweaks.
11326
11327 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11328
11329 * tree-vect-loop.c (vect_analyze_loop_2): Use
11330 likely_max_stmt_executions_int.
11331
11332 2016-05-30 Tom de Vries <tom@codesourcery.com>
11333
11334 PR tree-optimization/69067
11335 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
11336
11337 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
11338
11339 PR target/71245
11340 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
11341 New peepholes to remove unneeded fild/fistp pairs.
11342 (define_peephole2 atomic_loaddi_fpu): Ditto.
11343
11344 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11345
11346 * predict.c (maybe_hot_frequency_p): Avoid division.
11347
11348 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
11349
11350 * doc/install.texi: Use https for shop.fsf.org.
11351
11352 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11353
11354 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
11355 likely_max_stmt_executions_int.
11356
11357 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11358
11359 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
11360 likely_max_stmt_executions_int.
11361
11362 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11363
11364 * profile.c (compute_branch_probabilities): Do not report hitrates
11365 here.
11366 (branch_prob): Report hitrates here.
11367 * predict.c (gimple_predict_edge): Do not assert profile status;
11368 fix formatting issues.
11369
11370 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11371
11372 * predict.c (edge_predicted_by_p): New function.
11373 (predict_paths_for_bb): Do not put multiple predictions of the same type
11374 on one edge.
11375
11376 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11377
11378 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
11379 commit.
11380
11381 2016-05-28 Alan Modra <amodra@gmail.com>
11382
11383 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
11384
11385 2016-05-28 Alan Modra <amodra@gmail.com>
11386
11387 PR rtl-optimization/71275
11388 * ira.c (ira): Free dominance info.
11389
11390 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
11391
11392 * doc/sourcebuild.texi: New address for upstream Go repository.
11393
11394 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
11395
11396 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
11397 (TARGET_ARM_V7M): Likewise.
11398
11399 2016-05-26 Jeff Law <law@redhat.com>
11400
11401 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
11402 (thread_across_edge): Remove calls to find_jump_threads_backwards.
11403 * passes.def: Add jump threading passes before DOM/VRP.
11404 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
11405 argument to a basic block from an edge. Remove tests which are
11406 handled elsewhere.
11407 (pass_data_thread_jumps, class pass_thread_jumps): New.
11408 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
11409 (make_pass_thread_jumps): Likewise.
11410 * tree-pass.h (make_pass_thread_jumps): Declare.
11411
11412 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
11413
11414 * config/visium/visium-protos.h (split_double_move): Rename into...
11415 (visium_split_double_move): ...this.
11416 (visium_split_double_add): Declare.
11417 * config/visium/visium.c (split_double_move): Rename into...
11418 (visium_split_double_move): ...this.
11419 (visium_split_double_add): New function.
11420 (visium_expand_copysign): Renumber operands for consistency.
11421 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
11422 (DFmode move splitter): Likewise.
11423 (*addi3_insn): Split by means of visium_split_double_add.
11424 (*adddi3_insn_flags): Delete.
11425 (*plus_plus_sltu<subst_arith>): New insn.
11426 (*subdi3_insn): Split by means of visium_split_double_add.
11427 (subdi3_insn_flags): Delete.
11428 (*minus_minus_sltu<subst_arith>): New insn.
11429 (*negdi2_insn): Split by means of visium_split_double_add.
11430 (*negdi2_insn_flags): Delete.
11431
11432 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
11433
11434 * configure.ac: Treat a --with-headers option without argument
11435 the same as the default (i.e. consult sys-include directory).
11436 * configure: Regenerate.
11437
11438 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11439
11440 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
11441 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
11442 prototype.
11443 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
11444 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
11445
11446 2016-05-27 Jiong Wang <jiong.wang@arm.com>
11447
11448 PR target/63596
11449 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
11450 tree-stdarg analysis results.
11451 (aarch64_setup_incoming_varargs): Likewise.
11452
11453 2016-05-27 Jiong Wang <jiong.wang@arm.com>
11454
11455 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
11456 va_list_gpr_counter_field and va_list_fpr_counter_field.
11457
11458 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
11459
11460 PR67609
11461 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
11462 * config/aarch64/aarch64.c
11463 (aarch64_cannot_change_mode_class): Remove function.
11464 * config/aarch64/aarch64-protos.h
11465 (aarch64_cannot_change_mode_class): Remove.
11466
11467 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11468
11469 * cfgloop.c (record_niter_bound): Record likely upper bounds.
11470 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
11471 get_likely_max_loop_iterations_int): New.
11472 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
11473 any_likely_upper_bound.
11474 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
11475 Declare.
11476 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
11477 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
11478 upper bound.
11479 (unroll_loop_constant_iterations): Likewise.
11480 (unroll_loop_runtime_iterations): Likewise.
11481 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
11482 * lto-streamer-out.c (output_cfg): Likewise.
11483 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
11484 bounds.
11485 (canonicalize_loop_induction_variables): Dump likely upper bounds.
11486 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
11487 (likely_max_loop_iterations): New.
11488 (likely_max_loop_iterations_int): New.
11489 (likely_max_stmt_executions): New.
11490 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
11491 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
11492 likely_max_stmt_executions): Declare.
11493
11494 2016-05-27 Marek Polacek <polacek@redhat.com>
11495
11496 PR middle-end/71308
11497 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
11498
11499 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11500
11501 * config/s390/s390.md (2x risbg splitters): Use
11502 reg_overlap_mentioned_p instead of rtx_equal_p.
11503
11504 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
11505
11506 * combine.c (make_compound_operation): Take known zero bits into
11507 account when checking for possible zero_extend.
11508
11509 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11510
11511 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
11512 Use const_int_operand for operand 2 predicate. Simplify expand code
11513 as a result.
11514
11515 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
11516
11517 PR middle-end/71279
11518 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
11519 into comparison.
11520
11521 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11522
11523 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
11524 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
11525 that returns CC_SESWPmode and CC_ZESWPmode.
11526 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
11527 and CC_SESWPmode.
11528 (aarch64_rtx_costs): Likewise.
11529
11530 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11531
11532 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
11533 for ISA 3.0 min/max support.
11534 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
11535 conditional move support.
11536 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
11537 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
11538 available.
11539 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
11540 conditional moves where the comparison type is different from move
11541 type.
11542 (fp_minmax): New code iterator for smin/smax.
11543 (minmax): New code attributes for min/max.
11544 (SMINMAX): Likewise.
11545 (smax<mode>3): Combine min, max insns into one insn using the
11546 fp_minmax code iterator. Add support for ISA 3.0 min/max
11547 instructions that don't need -ffast-math.
11548 (s<minmax><mode>3): Likewise.
11549 (smax<mode>3_vsx): Likewise.
11550 (smin<mode>3): Likewise.
11551 (s<minmax><mode>3_vsx): Likewise.
11552 (smin<mode>3_vsx): Likewise.
11553 (pre-VSX min/max splitters): Likewise.
11554 (s<minmax><mode>3_fpr): Likewise.
11555 (movsfcc): Rewrite floating point conditional moves to combine
11556 SFmode/DFmode into a single insn.
11557 (mov<mode>cc): Likewise.
11558 (movdfcc): Likewise.
11559 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
11560 SFDF2 iterators to handle all combinations.
11561 (fseldfsf4): Likewise.
11562 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
11563 (fseldfdf4): Likewise.
11564 (fselsfdf4): Likewise.
11565 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
11566 comparison instructions that set a 0/-1 mask, and use it for
11567 floating point conditional move via XXSEL.
11568 (fpmask<mode>): Likewise.
11569 (xxsel<mode>): Likewise.
11570 * config/rs6000/predicates.md (min_max_operator): Delete, no
11571 longer used.
11572 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
11573 instructions that generate a 0/-1 mask for use with XXSEL.
11574 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
11575 say whether floating point min/max is available, either through
11576 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
11577 (TARGET_MINMAX_DF): Likewise.
11578
11579 2016-05-27 Alan Modra <amodra@gmail.com>
11580
11581 PR rtl-optimization/71275
11582 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
11583 for update_equiv_regs and combine_and_move_insns.
11584
11585 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
11586
11587 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
11588 if_then_else or cond RTXes to calculate attribute value.
11589 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
11590 <attr "length_immediate>: Ditto.
11591 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
11592 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
11593 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
11594 <attr "type">: Ditto.
11595 <attr "prefix_data16">: Ditto.
11596 <attr "prefix_extra">: Ditto.
11597 <attr "length_immediate">: Ditto.
11598 <attr "prefix">: Ditto.
11599 (vec_set<mode>_0) <attr "isa">: Ditto.
11600 <attr "prefix_extra">: Ditto.
11601 <attr "length_immediate">: Ditto.
11602 <attr "prefix">: Ditto.
11603 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
11604 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
11605 (sse2_storelpd) <attr "prefix_data16">: Ditto.
11606 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
11607 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
11608 <attr "length_immediate">: Ditto.
11609 <attr "prefix">: Ditto.
11610 (sse2_movsd) <attr "length_immediate">: Ditto.
11611 <attr "prefix">: Ditto.
11612 (vec_concatv2df) <attr "isa">: Ditto.
11613 <attr "prefix">: Ditto.
11614 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
11615 (*vec_extractv2di_1) <attr "isa">: Ditto.
11616 <attr "type">: Ditto.
11617 <attr "length_immediate">: Ditto.
11618 <attr "prefix_rex">: Ditto.
11619 <attr "prefix_extra">: Ditto.
11620 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
11621 <attr "prefix_extra">: Ditto.
11622 <attr "length_immediate">: Ditto.
11623 (vec_concatv2di) <attr "isa">: Ditto.
11624 <attr "prefix_extra">: Ditto.
11625 <attr "length_immediate">: Ditto.
11626 <attr "prefix">: Ditto.
11627
11628 2016-05-26 Martin Liska <mliska@suse.cz>
11629
11630 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
11631 function.
11632 (operator+): Likewise.
11633 (operator-): Likewise.
11634 (comp_cost::operator+=): Likewise.
11635 (comp_cost::operator-=): Likewise.
11636 (comp_cost::operator/=): Likewise.
11637 (comp_cost::operator*=): Likewise.
11638 (operator<): Likewise.
11639 (operator==): Likewise.
11640 (operator<=): Likewise.
11641 (new_cost): Remove.
11642 (infinite_cost_p): Likewise.
11643 (add_costs): Likewise.
11644 (sub_costs): Likewise.
11645 (compare_costs): Likewise.
11646 (set_group_iv_cost): Use the newly introduced functions.
11647 (get_address_cost): Likewise.
11648 (get_shiftadd_cost): Likewise.
11649 (force_expr_to_var_cost): Likewise.
11650 (split_address_cost): Likewise.
11651 (ptr_difference_cost): Likewise.
11652 (difference_cost): Likewise.
11653 (get_computation_cost_at): Likewise.
11654 (determine_group_iv_cost_generic): Likewise.
11655 (determine_group_iv_cost_address): Likewise.
11656 (determine_group_iv_cost_cond): Likewise.
11657 (autoinc_possible_for_pair): Likewise.
11658 (determine_group_iv_costs): Likewise.
11659 (cheaper_cost_pair): Likewise.
11660 (iv_ca_recount_cost): Likewise.
11661 (iv_ca_set_no_cp): Likewise.
11662 (iv_ca_set_cp): Likewise.
11663 (iv_ca_cost): Likewise.
11664 (iv_ca_new): Likewise.
11665 (iv_ca_dump): Likewise.
11666 (iv_ca_narrow): Likewise.
11667 (iv_ca_prune): Likewise.
11668 (iv_ca_replace): Likewise.
11669 (try_add_cand_for): Likewise.
11670 (try_improve_iv_set): Likewise.
11671 (find_optimal_iv_set): Likewise.
11672
11673 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
11674
11675 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
11676 that internal functions will clobber all caller-saved registers.
11677
11678 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
11679
11680 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
11681 Return a better case_values_threshold when optimizing.
11682
11683 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
11684
11685 * config/aarch64/aarch64-simd.md (aarch64_combinez):
11686 Add ? to integer variant.
11687 (aarch64_combinez_be): Likewise.
11688
11689 2016-05-26 Jakub Jelinek <jakub@redhat.com>
11690
11691 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
11692 instead of x constraint.
11693 (vcvtps2ph256<mask_name>): Likewise.
11694
11695 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
11696 alternative. Formatting fix.
11697
11698 * config/i386/sse.md
11699 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
11700 to ...
11701 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
11702 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
11703 maybe_evex prefix instead of vex.
11704 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
11705 EXT_REX_SSE_REG_P (op0) case in the splitter.
11706
11707 2016-05-25 Jeff Law <law@redhat.com>
11708
11709 PR tree-optimization/71272
11710 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
11711 Update comments. Add test for empty path.
11712
11713 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
11714
11715 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
11716 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
11717 special case builtin.
11718 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11719 code for ALTIVEC_BUILTIN_VEC_CMPNE.
11720 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11721 for __builtin_vec_cmpne.
11722
11723 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
11724
11725 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
11726 redundant test and bail out if the type of the new operand is not
11727 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
11728
11729 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
11730
11731 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
11732 (x_ix86_target_flags_explicit): Remove.
11733 * config/i386/i386.c (ix86_function_specific_save): Do not copy
11734 x_ix86_target_flags_explicit.
11735 (ix86_function_specific_restore): Ditto.
11736
11737 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
11738 H.J. Lu <hongjiu.lu@intel.com>
11739
11740 PR target/70738
11741 * common/config/i386/i386-common.c
11742 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
11743 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
11744 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
11745 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
11746 (-mgeneral-regs-only): Add new option.
11747 * config/i386/i386.c (ix86_option_override_internal): Don't enable
11748 x87 instructions if only general registers are allowed.
11749 (ix86_target_string): Add ix86_flags argument. Handle additional
11750 flags options through ix86_flags argument. Update all callers.
11751 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
11752
11753 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11754
11755 PR rtl-optimization/66940
11756 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
11757 decrementing desired_val will not overflow before performing these
11758 operations.
11759
11760 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
11761
11762 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
11763 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
11764 * config/i386/i386.c (enum ix86_builtins): Add
11765 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
11766 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
11767 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
11768 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
11769 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
11770 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
11771 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
11772 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
11773 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
11774 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
11775 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
11776 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
11777 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
11778 __builtin_ia32_cvtps2dq512_mask.
11779 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
11780 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
11781 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
11782 * config/i386/sse.md
11783 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
11784 Rename to ...
11785 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
11786 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
11787 to ...
11788 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
11789 (avx512f_vec_pack_sfix_v8df): New define_expand.
11790 (avx512f_roundpd512): Rename to ...
11791 (avx512f_round<castmode>512): ... this. Change iterator.
11792 (avx512f_roundps512_sfix): New define_expand.
11793 (round<mode>2_sfix): Change iterator.
11794
11795 2016-05-25 Nick Clifton <nickc@redhat.com>
11796
11797 * config/msp430/msp430.c (msp430_attr): Produce an error if a
11798 static interrupt handler is detected.
11799 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
11800 default linker script.
11801 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
11802 the low part of a symbolic pointer.
11803
11804 2016-05-25 Richard Biener <rguenther@suse.de>
11805
11806 PR tree-optimization/71261
11807 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
11808 interesting stmt instead of immediate uses when looking
11809 for the use operand to replace.
11810
11811 2016-05-25 Martin Liska <mliska@suse.cz>
11812
11813 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
11814
11815 2016-05-25 Richard Biener <rguenther@suse.de>
11816
11817 PR tree-optimization/71264
11818 * tree-vect-stmts.c (vect_init_vector): Properly deal with
11819 vector type val.
11820
11821 2016-05-25 Martin Liska <mliska@suse.cz>
11822
11823 PR tree-optimization/71239
11824 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
11825 if DECL_SIZE is NULL.
11826
11827 2016-05-25 Richard Biener <rguenther@suse.de>
11828
11829 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
11830 * tree-if-conv.c (pass_data_if_conversion): Use it.
11831
11832 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
11833
11834 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
11835 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
11836 * varpool.c (varpool_node::get_availability): Likewise.
11837
11838 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11839
11840 * config/rs6000/altivec.md (VNEG iterator): New iterator for
11841 VNEGW/VNEGD instructions.
11842 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
11843 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
11844 support for ISA 3.0 VNEGW/VNEGD instructions.
11845
11846 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
11847
11848 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
11849 pointers inside OACC_DATA regions.
11850 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
11851 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
11852 (gimplify_adjust_omp_clauses): Fix typo in comment.
11853
11854 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11855
11856 * config/rs6000/altivec.md (VParity): New mode iterator for vector
11857 parity built-in functions.
11858 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
11859 zeros.
11860 (p9v_parity<mode>2): Likewise.
11861 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
11862 parity.
11863 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
11864 (parity<mode>2): ISA 3.0 expander for vector parity.
11865 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
11866 power9 built-ins.
11867 (BU_P9_64BIT_MISC_0): Likewise.
11868 (BU_P9_MISC_0): Likewise.
11869 (BU_P9V_AV_1): Likewise.
11870 (BU_P9V_AV_2): Likewise.
11871 (BU_P9V_AV_3): Likewise.
11872 (BU_P9V_AV_P): Likewise.
11873 (BU_P9V_VSX_1): Likewise.
11874 (BU_P9V_OVERLOAD_1): Likewise.
11875 (BU_P9V_OVERLOAD_2): Likewise.
11876 (BU_P9V_OVERLOAD_3): Likewise.
11877 (VCTZB): Add vector count trailing zeros support.
11878 (VCTZH): Likewise.
11879 (VCTZW): Likewise.
11880 (VCTZD): Likewise.
11881 (VPRTYBD): Add vector parity support.
11882 (VPRTYBQ): Likewise.
11883 (VPRTYBW): Likewise.
11884 (VCTZ): Add overloaded vector count trailing zeros support.
11885 (VPRTYB): Add overloaded vector parity support.
11886 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11887 overloaded vector count trailing zeros and parity instructions.
11888 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
11889 vector parity support.
11890 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
11891 trailing zeros support.
11892 (vec_cntlz): Likewise.
11893 (vec_vctzb): Likewise.
11894 (vec_vctzd): Likewise.
11895 (vec_vctzh): Likewise.
11896 (vec_vctzw): Likewise.
11897 (vec_vprtyb): Add ISA 3.0 vector parity support.
11898 (vec_vprtybd): Likewise.
11899 (vec_vprtybw): Likewise.
11900 (vec_vprtybq): Likewise.
11901 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11902 the ISA 3.0 vector count trailing zeros and vector parity built-in
11903 functions.
11904
11905 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
11906
11907 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
11908 when there is stmt_to_insert.
11909
11910 2016-05-24 Martin Sebor <msebor@redhat.com>
11911
11912 PR c++/71147
11913 * tree.h (complete_or_array_type_p): New inline function.
11914
11915 2016-05-24 Jakub Jelinek <jakub@redhat.com>
11916
11917 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
11918 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
11919 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
11920
11921 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
11922 Limit 1st alternative to noavx isa, split 2nd alternative into one
11923 noavx and one avx alternative, use *x and Bm in the former and
11924 x and m in the latter.
11925
11926 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
11927 of sse4 for the first alternative, drop %v from the template
11928 and d operand modifier. Split second alternative into one sse4_noavx
11929 and one avx alternative, use *x instead of *v in the former and v
11930 instead of *v in the latter.
11931 (*sse4_1_extractps): Use noavx isa instead of * for the first
11932 alternative, drop %v from the template. Split second alternative into
11933 one noavx and one avx alternative, use *x instead of *v in the
11934 former and v instead of *v in the latter.
11935 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
11936 with noavx and the last one with avx.
11937 (sse4_1_phminposuw): Guard first alternative with noavx isa,
11938 split the second one into one noavx and one avx alternative,
11939 use *x and Bm in the former and x and m in the latter one.
11940 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
11941 alternatives.
11942
11943 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
11944 first two alternatives to noavx, use *x instead of *v in the second
11945 one, add avx alternative without *.
11946 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
11947 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
11948 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
11949
11950 2016-05-24 Jeff Law <law@redhat.com>
11951
11952 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
11953 New function, extracted from...
11954 (fsm_find_control_statement_thread_paths): Here. Use the new function.
11955 Allow simple copies and constant initializations in the SSA chain.
11956
11957 2016-05-24 Marek Polacek <polacek@redhat.com>
11958
11959 PR c/71249
11960 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
11961 scope.
11962
11963 2016-05-24 Jakub Jelinek <jakub@redhat.com>
11964
11965 PR c++/71257
11966 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
11967 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
11968 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
11969 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
11970 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
11971
11972 2016-05-24 Richard Biener <rguenther@suse.de>
11973
11974 PR tree-optimization/71240
11975 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
11976 has integral type.
11977
11978 2016-05-24 Richard Biener <rguenther@suse.de>
11979
11980 PR tree-optimization/71230
11981 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
11982
11983 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
11984
11985 * tree-vectorizer.h (vectorizable_comparison): Delete.
11986 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
11987 PURE_SLP_STMT check.
11988 * tree-vect-stmts.c (vectorizable_call): Likewise.
11989 (vectorizable_simd_clone_call): Likewise.
11990 (vectorizable_conversion): Likewise.
11991 (vectorizable_assignment): Likewise.
11992 (vectorizable_shift): Likewise.
11993 (vectorizable_operation): Likewise.
11994 (vectorizable_load): Likewise.
11995 (vectorizable_condition): Likewise.
11996 (vectorizable_store): Likewise. Assert that we don't have
11997 hybrid SLP.
11998 (vectorizable_comparison): Make static. Remove redundant
11999 PURE_SLP_STMT check.
12000 (vect_transform_stmt): Assert that we always have an slp_node
12001 if PURE_SLP_STMT.
12002
12003 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12004
12005 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
12006 operands[2] against 1 with comparison against CONST1_RTX.
12007 (<shift>di3_neon): Likewise.
12008 * config/arm/predicates.md (const0_operand): Replace with comparison
12009 against CONST0_RTX.
12010
12011 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12012
12013 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
12014 operands[2] against 1 with comparison against CONST1_RTX.
12015 (ashrdi3): Likewise.
12016 (lshrdi3): Likewise.
12017 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
12018 UINTVAL.
12019 (ashrsi3): Likewise.
12020 (lshrsi3): Likewise.
12021 (rotrsi3): Likewise.
12022 (define_split above *compareqi_eq0): Likewise.
12023 (define_split above "prologue"): Likewise.
12024 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
12025 * config/arm/predicates.md (shift_operator): Likewise.
12026 (shift_nomul_operator): Likewise.
12027 (sat_shift_operator): Likewise.
12028 (thumb1_cmp_operand): Likewise.
12029 (const_neon_scalar_shift_amount_operand): Replace manual range
12030 check with IN_RANGE.
12031 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
12032 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
12033
12034 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12035
12036 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
12037 with HOST_WIDE_INT_1.
12038 (insv): Likewise.
12039 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
12040 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
12041 (arm_canonicalize_comparison): Likewise.
12042 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
12043 HOST_WIDE_INT_1.
12044 (thumb1_size_rtx_costs): Likewise.
12045 (vfp_const_double_index): Replace cast of 1 to unsigned
12046 HOST_WIDE_INT with HOST_WIDE_INT_1U.
12047 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
12048 HOST_WIDE_INT_1.
12049 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
12050 HOST_WIDE_INT with HOST_WIDE_INT_1U.
12051 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
12052 HOST_WIDE_INT with HOST_WIDE_INT_1.
12053
12054 2016-05-24 Marek Polacek <polacek@redhat.com>
12055
12056 * tree-cfg.h (should_remove_lhs_p): New predicate.
12057 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
12058 * gimplify.c (gimplify_modify_expr): Likewise.
12059 * tree-cfg.c (verify_gimple_call): Likewise.
12060 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
12061 * gimple-fold.c: Include "tree-cfg.h".
12062 (gimple_fold_call): Use should_remove_lhs_p.
12063
12064 2016-05-24 Richard Biener <rguenther@suse.de>
12065
12066 PR tree-optimization/71253
12067 * cfganal.h (control_dependences): Make robust against edge
12068 and BB removal.
12069 (control_dependences::control_dependences): Remove edge_list argument.
12070 (control_dependences::get_edge): Remove.
12071 (control_dependences::get_edge_src): Add.
12072 (control_dependences::get_edge_dest): Likewise.
12073 (control_dependences::m_el): Make a vector of edge src/dest index.
12074 * cfganal.c (control_dependences::find_control_dependence): Adjust.
12075 (control_dependences::control_dependences): Likewise.
12076 (control_dependences::~control_dependence): Likewise.
12077 (control_dependences::get_edge): Remove.
12078 (control_dependences::get_edge_src): Add.
12079 (control_dependences::get_edge_dest): Likewise.
12080 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
12081 get_edge_src.
12082 (perform_tree_ssa_dce): Adjust.
12083 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
12084 get_edge_src.
12085 (pass_loop_distribution::execute): Adjust. Do loop destroying
12086 conditional on changed.
12087
12088 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12089
12090 PR target/69857
12091 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
12092 return. Reindent transformation comment and mention the ARM state
12093 behavior.
12094
12095 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12096
12097 PR middle-end/71252
12098 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
12099 after build_and_add_sum creates new use stmt.
12100
12101 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12102
12103 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
12104 load_lanes/grouped_load classification comes first. Don't check
12105 whether the vectorization factor is a multiple of the group size
12106 for load_lanes.
12107
12108 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12109
12110 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
12111 GROUP_GAP for single-element interleaving.
12112 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
12113 variable.
12114
12115 2016-05-24 Richard Biener <rguenther@suse.de>
12116
12117 PR middle-end/70434
12118 PR c/69504
12119 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
12120 bases which are accessed with non-invariant indices.
12121 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
12122 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
12123
12124 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12125
12126 PR middle-end/71170
12127 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
12128 (add_to_ops_vec): Add stmt_to_insert.
12129 (add_repeat_to_ops_vec): Init stmt_to_insert.
12130 (insert_stmt_before_use): New.
12131 (transform_add_to_multiply): Remove mult_stmt insertion and add it
12132 to ops vector.
12133 (get_ops): Init stmt_to_insert.
12134 (maybe_optimize_range_tests): Likewise.
12135 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
12136 (rewrite_expr_tree_parallel): Likewise.
12137 (reassociate_bb): Likewise.
12138
12139 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12140
12141 PR target/71201
12142 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
12143 ISA 3.0 xxperm fusion alternative.
12144 (altivec_vperm_v8hiv16qi): Likewise.
12145 (altivec_vperm_<mode>_uns_internal): Likewise.
12146 (vperm_v8hiv4si): Likewise.
12147 (vperm_v16qiv8hi): Likewise.
12148
12149 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12150 Kelvin Nilsen <kelvin@gcc.gnu.org>
12151
12152 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
12153 vpermr/xxpermr on ISA 3.0.
12154 (altivec_expand_vec_perm_le): Likewise.
12155 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
12156 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
12157 ISA 3.0.
12158
12159 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
12160
12161 * config/i386/i386.h (IS_STACK_MODE): Enable for
12162 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
12163 SSE_FLOAT_MODE_P macros.
12164 * config/i386/i386.c (ix86_preferred_reload_class): Use
12165 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
12166 Cleanup regclass processing for CONST_DOUBLE_P.
12167 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
12168 (ix86_rtx_costs): Remove redundant TARGET_80387 check
12169 with IS_STACK_MODE macro.
12170 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
12171 with TARGET_SSE2.
12172 (*movdf_internal): Use IS_STACK_MODE macro.
12173 (*movsf_internal): Ditto.
12174
12175 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
12176
12177 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
12178 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
12179
12180 2016-05-23 Jeff Law <law@redhat.com>
12181
12182 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
12183 extracted from ...
12184 (fsm_find_control_statement_thread_paths): Call it.
12185
12186 2016-05-23 Martin Jambor <mjambor@suse.cz>
12187
12188 PR ipa/71234
12189 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
12190 from_global_constant if t is not NULL.
12191
12192 2016-05-23 Marek Polacek <polacek@redhat.com>
12193
12194 PR c/49859
12195 * common.opt (Wswitch-unreachable): New option.
12196 * doc/invoke.texi: Document -Wswitch-unreachable.
12197 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
12198 warning.
12199
12200 2016-05-23 Bin Cheng <bin.cheng@arm.com>
12201
12202 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
12203 TMR_INDEX is non-NULL.
12204
12205 2016-05-23 Richard Biener <rguenther@suse.de>
12206
12207 PR tree-optimization/71230
12208 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
12209 (try_special_add_to_ops): ... here. Always test for single-use.
12210
12211 2016-05-23 Martin Jambor <mjambor@suse.cz>
12212
12213 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
12214 default block if a PHI node in the original one would be resized.
12215
12216 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12217
12218 PR tree-optimization/58135
12219 * tree-vect-slp.c: When group size is not multiple
12220 of vector size, allow splitting of store group at
12221 vector boundary.
12222
12223 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
12224
12225 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
12226
12227 2016-05-22 Jakub Jelinek <jakub@redhat.com>
12228
12229 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12230 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
12231 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
12232 of 64x2.
12233
12234 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
12235 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
12236 v constraint instead of x and vinserti32x4 insn.
12237
12238 * config/i386/sse.md (i128vldq): New mode iterator.
12239 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
12240 avx512dq and avx512vl alternatives.
12241
12242 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
12243 constraint, use maybe_evex prefix instead of vex.
12244 (vec_dupv4sf): Use v constraint instead of x for output
12245 operand except for noavx alternative, use Yv constraint
12246 instead of x for input. Use maybe_evex prefix instead of vex.
12247 (*vec_dupv4si): Likewise.
12248 (*vec_dupv2di): Likewise.
12249
12250 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
12251
12252 PR middle-end/40921
12253 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
12254 (linearize_expr_tree): Call try_special_add_to_ops.
12255 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
12256
12257 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12258
12259 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
12260 to computed stack_usage.
12261
12262 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
12263
12264 PR target/71103
12265 * config/avr/avr.md (define_expand "mov<mode>"): If the source
12266 operand is subreg (symbol_ref) then move the symbol ref to register.
12267
12268 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
12269
12270 * tree.c (array_at_struct_end_p): Look through MEM_REF.
12271
12272 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
12273
12274 PR middle-end/71179
12275 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
12276 VECTOR type.
12277
12278 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
12279
12280 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
12281 ranges by calling get_single_symbol and tidy up. Look more closely
12282 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
12283
12284 2016-05-20 Jeff Law <law@redhat.com>
12285
12286 * bitmap.c (bitmap_find_bit): Remove useless test.
12287
12288 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
12289
12290 * function.c (thread_prologue_and_epilogue_insns): Commit the
12291 insertion of the epilogue.
12292
12293 2016-05-20 Martin Jambor <mjambor@suse.cz>
12294
12295 PR tree-optimization/70884
12296 * tree-sra.c (initialize_constant_pool_replacements): Do not check
12297 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
12298 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
12299 of constant pool data as a reason for scalarization.
12300
12301 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
12302
12303 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
12304 for naked functions.
12305 (thumb1_expand_prologue): Likewise.
12306
12307 2016-05-20 Nathan Sidwell <nathan@acm.org>
12308
12309 * config/nvptx/nptx.c (nvptx_option_override): Only set
12310 flag_toplevel_reorder, if not explicitly specified. Set
12311 flag_no_common, unless explicitly specified.
12312
12313 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12314
12315 * calls.c (can_implement_as_sibling_call_p): Mark param
12316 reg_parm_stack_space with ATTRIBUTE_UNUSED.
12317
12318 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
12319
12320 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
12321 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
12322 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
12323 constants.
12324 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
12325 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
12326 and CASE_CONST_ANY.
12327
12328 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
12329
12330 * config/nvptx/nvptx.md (sincossf3): New pattern.
12331
12332 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12333
12334 * calls.c (maybe_complain_about_tail_call): New function.
12335 (initialize_argument_information): Call
12336 maybe_complain_about_tail_call when clearing *may_tailcall.
12337 (can_implement_as_sibling_call_p): Call
12338 maybe_complain_about_tail_call when returning false.
12339 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
12340 ensure try_tail_call is set. Call maybe_complain_about_tail_call
12341 if tail-call optimization fails.
12342 * cfgexpand.c (expand_call_stmt): Initialize
12343 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
12344 * gimple-pretty-print.c (dump_gimple_call): Dump
12345 gimple_call_must_tail_p.
12346 * gimple.c (gimple_build_call_from_tree): Call
12347 gimple_call_set_must_tail with the value of
12348 CALL_EXPR_MUST_TAIL_CALL.
12349 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
12350 (gimple_call_set_must_tail): New function.
12351 (gimple_call_must_tail_p): New function.
12352 * print-tree.c (print_node): Update printing of TREE_STATIC
12353 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
12354 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
12355 trailing comment listing applicable flags.
12356 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
12357
12358 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12359
12360 * calls.c (expand_call): Move "Rest of purposes for tail call
12361 optimizations to fail" to...
12362 (can_implement_as_sibling_call_p): ...this new function, and
12363 split into multiple "if" statements.
12364
12365 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12366
12367 * cfgloop.h (expected_loop_iterations_unbounded,
12368 expected_loop_iterations): Unconstify.
12369 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
12370 profile with known upper bound; return 3 when profile is absent.
12371 (expected_loop_iterations): Update.
12372
12373 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12374
12375 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
12376 and get_max_loop_iterations_int.
12377
12378 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12379
12380 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
12381 realistic upper bounds here.
12382
12383 2016-05-20 Jakub Jelinek <jakub@redhat.com>
12384
12385 PR c++/71210
12386 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
12387 calls if the LHS is variable length or has addressable type.
12388 If targets[0]->decl is a noreturn call with void return type and
12389 zero arguments, adjust fntype and remove lhs in that case.
12390
12391 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
12392
12393 PR tree-optimization/71079
12394 PR tree-optimization/71206
12395 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
12396
12397 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12398
12399 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
12400 (get_vec_alignment_for_array_decl): Likewise.
12401 (get_vec_alignment_for_record_decl): Likewise.
12402 (increase_alignment::execute): Move code to find alignment to
12403 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
12404 (type_align_map): New hash_map.
12405
12406 2016-05-20 Richard Guenther <rguenther@suse.de>
12407
12408 PR tree-optimization/29756
12409 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
12410 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
12411 * fold-const.c (operand_equal_p): Likewise.
12412 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
12413 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
12414 * tree-inline.c (estimate_operator_cost): Likewise.
12415 * tree-pretty-print.c (dump_generic_node): Likewise.
12416 * tree-ssa-operands.c (get_expr_operands): Likewise.
12417 * cfgexpand.c (expand_debug_expr): Likewise.
12418 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
12419 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
12420 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
12421 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
12422 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
12423 (execute_update_addresses_taken): Do it.
12424
12425 2016-05-20 Richard Biener <rguenther@suse.de>
12426
12427 PR tree-optimization/71185
12428 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
12429 register operations.
12430
12431 2016-05-20 Richard Biener <rguenther@suse.de>
12432
12433 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
12434 gimple_seq_add_seq_without_update.
12435 (release_bb_predicate): Assert we have no operands to free.
12436 (if_convertible_loop_p_1): Calculate post dominators later.
12437 Do not free BB predicates here.
12438 (combine_blocks): Do not recompute BB predicates.
12439 (version_loop_for_if_conversion): Save BB predicates around
12440 loop versioning.
12441
12442 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12443
12444 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
12445 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
12446 code. Ignore sibcalls on EDGE_IGNORE edges.
12447 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
12448 on edges for sibcalls that run without prologue. The rest of the
12449 function is combined from...
12450 (fix_fake_fallthrough_edge): ... this, and ...
12451 (try_shrink_wrapping): ... a part of this. Remove the bb_with
12452 function argument, make it a local variable.
12453
12454 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
12455
12456 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
12457 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
12458 for 32-bit mode and SEH for 64-bit.
12459 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
12460 TARGET_64BIT_DEFAULT.
12461
12462 2016-05-19 Ryan Burn <contact@rnburn.com>
12463
12464 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
12465 * gengtype.c (open_base_files): Add cilk.h to ifiles.
12466
12467 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
12468
12469 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
12470 force pending loads from memory.
12471
12472 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
12473
12474 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
12475 (UNSPEC_DARN_32): New unspec constant.
12476 (UNSPEC_DARN_RAW): New unspec constant.
12477 (darn_32): New instruction.
12478 (darn_raw): New instruction.
12479 (darn): New instruction.
12480 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
12481 support and documentation for this macro.
12482 (BU_P9_MISC_1): New macro definition.
12483 (BU_P9_64BIT_MISC_0): New macro definition.
12484 (BU_P9_MISC_0): New macro definition.
12485 (darn_32): New builtin definition.
12486 (darn_raw): New builtin definition.
12487 (darn): New builtin definition.
12488 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
12489 RS6000_BUILTIN_0 directives to surround each occurrence of
12490 #include "rs6000-builtin.def".
12491 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
12492 RS6000_BTM_64BIT flags to the returned mask, depending on
12493 configuration.
12494 (def_builtin): Correct an error in the assignments made to the
12495 debugging variable attr_string.
12496 (rs6000_expand_builtin): Add support for no-operand built-in
12497 functions.
12498 (builtin_function_type): Remove fatal_error assertion that is no
12499 longer valid.
12500 (rs6000_common_init_builtins): Add support for no-operand built-in
12501 functions.
12502 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
12503 definition.
12504 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
12505 definition.
12506 (RS6000_BTM_64BIT): New macro definition.
12507 * doc/extend.texi: Document __builtin_darn (void),
12508 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
12509 functions.
12510
12511 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
12512
12513 * tree-vect-loop.c (vect_analyze_loop_2): Use also
12514 max_loop_iterations_int.
12515
12516 2016-05-19 Marek Polacek <polacek@redhat.com>
12517
12518 PR tree-optimization/71031
12519 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
12520 condition and adjust the code a bit.
12521
12522 2016-05-19 Martin Liska <mliska@suse.cz>
12523
12524 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
12525 auto_vec instead of vec.
12526
12527 2016-05-19 Martin Liska <mliska@suse.cz>
12528
12529 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
12530
12531 2016-05-19 Martin Liska <mliska@suse.cz>
12532
12533 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
12534
12535 2016-05-19 Martin Liska <mliska@suse.cz>
12536
12537 * ipa-pure-const.c (set_function_state): Remove an existing
12538 funct_state.
12539 (remove_node_data): Do not free it as it's released
12540 in set_function_state.
12541
12542 2016-05-19 Martin Liska <mliska@suse.cz>
12543
12544 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
12545 bitmap.
12546
12547 2016-05-19 Martin Liska <mliska@suse.cz>
12548
12549 * omp-simd-clone.c (simd_clone_adjust): Release vector.
12550
12551 2016-05-19 Martin Liska <mliska@suse.cz>
12552
12553 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
12554 an auto_vec instead of re-creating it.
12555
12556 2016-05-19 Martin Liska <mliska@suse.cz>
12557
12558 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
12559 auto_vec instead of vec.
12560
12561 2016-05-19 Martin Liska <mliska@suse.cz>
12562
12563 * lto-section-in.c (lto_get_section_data): Call
12564 lto_check_version with additional argument.
12565 * lto-streamer.c (lto_check_version): Add new argument.
12566 * lto-streamer.h (lto_check_version): Likewise.
12567
12568 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12569
12570 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
12571 Don't add cost of inner memory when handling sign-extended loads.
12572
12573 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
12574
12575 PR rtl-optimization/71148
12576 * cse.c (cse_main): Free dominance info.
12577 (rest_of_handle_cse): Don't free dominance info.
12578 (rest_of_handle_cse2): Likewise.
12579 (rest_of_handle_cse_after_global_opts): Likewise.
12580
12581 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12582
12583 PR target/71056
12584 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
12585 NULL_TREE early if NEON is not available. Remove now redundant check
12586 in ARM_CHECK_BUILTIN_MODE.
12587
12588 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
12589
12590 PR sanitizer/64354
12591 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
12592 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
12593 * doc/cpp.texi: Document new macros.
12594
12595 2016-05-19 Bin Cheng <bin.cheng@arm.com>
12596
12597 PR tree-optimization/69848
12598 * tree-vect-loop.c (vectorizable_reduction): Don't factor
12599 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
12600
12601 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12602
12603 * function.c (thread_prologue_and_epilogue_insn): Move the
12604 "goto epilogue_done" one block later.
12605
12606 2016-05-19 Richard Biener <rguenther@suse.de>
12607
12608 PR tree-optimization/70729
12609 * passes.def: Move LIM pass before PRE. Remove no longer
12610 required copyprop and move first DCE out of the loop pipeline.
12611
12612 2016-05-18 David Malcolm <dmalcolm@redhat.com>
12613
12614 PR driver/69265
12615 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
12616 (OBJS-libcommon-target): ...here.
12617 * opts-common.c: Include spellcheck.h.
12618 (cmdline_handle_error): Build a vec of valid options and use it
12619 to suggest provide hints for misspelled arguments.
12620
12621 2016-05-18 Jakub Jelinek <jakub@redhat.com>
12622
12623 PR c++/71100
12624 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
12625 lhs if it has TREE_ADDRESSABLE type.
12626
12627 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
12628
12629 PR target/71145
12630 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
12631 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
12632
12633 2016-05-18 Martin Jambor <mjambor@suse.cz>
12634
12635 PR ipa/69708
12636 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
12637 input for NOP_EXPR pass-through functions.
12638 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
12639 aggregate global constant VAR_DECLs in constant jump functions.
12640
12641 2016-05-18 Martin Jambor <mjambor@suse.cz>
12642
12643 PR ipa/69708
12644 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
12645 from TREE_READONLY parameters.
12646
12647 2016-05-18 Martin Jambor <mjambor@suse.cz>
12648
12649 PR ipa/69708
12650 * cgraph.h (cgraph_indirect_call_info): New field
12651 guaranteed_unmodified.
12652 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
12653 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
12654 appropriate.
12655 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
12656 pass the parameter value to ipa_find_agg_cst_for_param.
12657 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
12658 guaranteed_unmodified, store AA results there instead of bailing out
12659 if present.
12660 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
12661 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
12662 (find_constructor_constant_at_offset): New function.
12663 (ipa_find_agg_cst_from_init): Likewise.
12664 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
12665 static initializers of contants, report back through a new paameter
12666 from_global_constant if that was the case.
12667 (try_make_edge_direct_simple_call): Also pass parameter value to
12668 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
12669 appropriate.
12670 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
12671 (ipa_read_indirect_edge_info): Likewise.
12672 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
12673 (ipa_load_from_parm_agg): Likewise.
12674
12675 2016-05-18 Jiong Wang <jiong.wang@arm.com>
12676
12677 PR rtl-optimization/71150
12678 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
12679 check.
12680
12681 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
12682
12683 PR target/70915
12684 * config/rs6000/constraints.md (wE constraint): New constraint
12685 for a vector constant that can be loaded with XXSPLTIB.
12686 (wM constraint): New constraint for a vector constant of a 1's.
12687 (wS constraint): New constraint for a vector constant that can be
12688 loaded with XXSPLTIB and a vector sign extend instruction.
12689 * config/rs6000/predicates.md (xxspltib_constant_split): New
12690 predicates for wE/wS constraints.
12691 (xxspltib_constant_nosplit): Likewise.
12692 (easy_vector_constant): Add support for constants that can be
12693 loaded via XXSPLTIB.
12694 (all_ones_constant): New predicate for vector constant with all
12695 1's set.
12696 (splat_input_operand): Add support for ISA 3.0 word splat operations.
12697 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
12698 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
12699 instruction and possibly with a sign extension.
12700 (output_vec_const_move): Add support for XXSPLTIB. If we are
12701 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
12702 instead of XXLXOR/XXLORC.
12703 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
12704 operations.
12705 (rs6000_legitimize_reload_address): Likewise.
12706 (rs6000_output_move_128bit): Use output_vec_const_move to emit
12707 constants.
12708 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
12709 combine VSX_M and VSX_M2 into one iterator.
12710 (VSX_M2): Likewise.
12711 (VSINT_84): New iterators for loading constants with XXSPLTIB.
12712 (VSINT_842): Likewise.
12713 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
12714 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
12715 XXSPLTIB instruction.
12716 (xxspltib_<mode>_nosplit): Likewise.
12717 (xxspltib_<mode>_split): New insn to load up constants with
12718 XXSPLTIB and a sign extend instruction.
12719 (vsx_mov<mode>): Replace single move that handled all vector types
12720 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
12721 moves (when -mvsx-timode is in effect) into the main vector
12722 moves. Eliminate separate moves for <VSr> <VSa>, where the
12723 preferred register class (<VSr>) is listed first, and the
12724 secondary register class (<VSa>) is listed second with a '?' to
12725 discourage use. Prefer loading 0/-1 in any VSX register for ISA
12726 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
12727 that if the register was involved in a slow operation, the
12728 clear/set operation does not wait for the slow operation to
12729 finish. Adjust the length attributes for 32-bit mode. Use
12730 rs6000_output_move_128bit and drop the use of the string
12731 instructions for 32-bit movti when -mvsx-timode is in effect. Use
12732 spacing so that the alternatives and attributes don't generate
12733 long lines, and put things in columns, so that it is easier to
12734 match up the operands and attributes with the insn alternatives.
12735 (vsx_mov<mode>_64bit): Likewise.
12736 (vsx_mov<mode>_32bit): Likewise.
12737 (vsx_movti_64bit): Fold movti into normal vector moves.
12738 (vsx_movti_32bit): Likewise.
12739 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
12740 splat instructions.
12741 (vsx_splat_v4si_internal): Likewise.
12742 (vsx_splat_v4sf_internal): Likewise.
12743 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
12744 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
12745 extend vector elements.
12746 (vsx_sign_extend_hi_<mode>): Likewise.
12747 (vsx_sign_extend_si_v2di): Likewise.
12748 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
12749 declaration.
12750 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
12751 constraints. Add trailing period to wL documentation.
12752
12753 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
12754
12755 PR middle-end/71020
12756 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
12757 * tree-dfa.c (replace_abnormal_ssa_names): New function.
12758 * tree-call-cdce.c: Include tree-dfa.h.
12759 (can_guard_call_p): New function, extracted from...
12760 (can_use_internal_fn): ...here.
12761 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
12762 and return void.
12763 (shrink_wrap_one_built_in_call): Likewise.
12764 (use_internal_fn): Likewise.
12765 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
12766 and return void. Call replace_abnormal_ssa_names.
12767 (pass_call_cdce::execute): Check can_guard_call_p during the
12768 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
12769 will always change something.
12770
12771 2016-05-18 Martin Jambor <mjambor@suse.cz>
12772
12773 PR ipa/70646
12774 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
12775 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
12776
12777 2016-05-18 Martin Jambor <mjambor@suse.cz>
12778
12779 PR ipa/70646
12780 * ipa-inline.h (condition): New field size.
12781 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
12782 for comaprison and store it into the new condition.
12783 (evaluate_conditions_for_known_args): Use condition size to check
12784 access sizes for all but CHANGED conditions.
12785 (unmodified_parm_1): New parameter size_p, store access size into it.
12786 (unmodified_parm): Likewise.
12787 (unmodified_parm_or_parm_agg_item): Likewise.
12788 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
12789 (set_cond_stmt_execution_predicate): Extract access sizes and store
12790 them to conditions.
12791 (set_switch_stmt_execution_predicate): Likewise.
12792 (will_be_nonconstant_expr_predicate): Likewise.
12793 (will_be_nonconstant_predicate): Likewise.
12794 (inline_read_section): Stream condition size.
12795 (inline_write_summary): Likewise.
12796
12797 2016-05-18 Richard Biener <rguenther@suse.de>
12798
12799 * tree-ssa-loop-im.c (determine_max_movement): Properly add
12800 condition cost to PHI cost instead of total_cost.
12801
12802 2016-05-18 Martin Liska <mliska@suse.cz>
12803
12804 PR fortran/70856
12805 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
12806 merged variables.
12807
12808 2016-05-18 Richard Biener <rguenther@suse.de>
12809
12810 * lto-streamer.h (LTO_major_version): Bump to 6.
12811
12812 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
12813
12814 * function.c (make_split_prologue_seq, make_prologue_seq,
12815 make_epilogue_seq): New functions, factored out from...
12816 (thread_prologue_and_epilogue_insns): Here.
12817
12818 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
12819
12820 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12821 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
12822 of before. Add a comment.
12823
12824 2016-05-18 Bin Cheng <bin.cheng@arm.com>
12825
12826 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
12827 expression pointer, not pointer to the pointer.
12828
12829 2016-05-18 Jakub Jelinek <jakub@redhat.com>
12830
12831 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
12832 (avx2_pbroadcast<mode>): Add another alternative with v instead
12833 of x constraints in it, using <pbroadcast_evex_isa> isa.
12834 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
12835
12836 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
12837 constraint x instead of v in second alternative, add avx512bw
12838 alternative.
12839
12840 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
12841 constraint x instead of v in second alternative, add avx512bw
12842 alternative.
12843
12844 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
12845 constraint x instead of v in second alternative, add avx512bw
12846 alternative.
12847
12848 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
12849 avx512bw alternative.
12850
12851 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
12852
12853 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
12854 array to 128 chars.
12855 (define_insn "*andnottf3"): Ditto.
12856 (define_insn "*<code><mode>3"/any_logic): Ditto.
12857 (define_insn "*<code>tf3"/any_logic): Ditto.
12858 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
12859 operand to block AVX-512VL insn variant emit when it is not enabled.
12860
12861 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
12862
12863 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
12864 constraint fot SF mode.
12865
12866 2016-05-18 Petr Murzin <petr.murzin@intel.com>
12867 Kirill Yukhin <kirill.yukhin@intel.com>
12868
12869 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
12870 modifiers.
12871 (define_insn "rsqrt14<mode>"): Ditto.
12872 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
12873 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
12874 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
12875 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
12876 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
12877 Ditto.
12878 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
12879 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
12880 * config/i386/i386.c (ix86_print_operand): Expand check for size
12881 override codes for Intel syntax.
12882
12883 2016-05-18 Richard Biener <rguenther@suse.de>
12884
12885 PR tree-optimization/71168
12886 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
12887 initialization earlier.
12888
12889 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
12890
12891 * config/aarch64/aarch64-simd.md
12892 (aarch64_reduc_plus_internal<mode>): Rename to...
12893 (reduc_plus_scal): ...This, and remove previous implementation.
12894
12895 2016-05-18 Richard Biener <rguenther@suse.de>
12896
12897 * passes.def: Put late dse and cd_dce in canonical order.
12898
12899 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
12900
12901 * ipa-inline-transform.c (preserve_function_body_p): Look for
12902 first non-thunk clone.
12903 (save_function_body): Save into first non-thunk.
12904 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
12905 up call stmt id.
12906 (lto_output_node): Inline thunks don't need body in every
12907 partition.
12908 * lto-streamer-in.c: Do not fixup thunk clones.
12909 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
12910 thunks.
12911 * tree-inline.c (copy_bb): Be prepared for target node to be new after
12912 folding suceeds.
12913
12914 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
12915
12916 PR middle-end/63586
12917 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
12918 (reassociate_bb): Call transform_add_to_multiply.
12919
12920 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
12921
12922 * config/aarch64/aarch64.c (all_extensions): Removed unused
12923 static variable.
12924
12925 2016-05-17 Nathan Sidwell <nathan@acm.org>
12926
12927 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
12928 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
12929
12930 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
12931
12932 PR tree-optimization/54579
12933 PR middle-end/55299
12934 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
12935
12936 2016-05-17 Marek Polacek <polacek@redhat.com>
12937
12938 PR ipa/71146
12939 * tree-inline.c (expand_call_inline): Call
12940 maybe_remove_unused_call_args.
12941
12942 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
12943
12944 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
12945 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
12946 * doc/md.texi (fmin@var{m}3): Likewise.
12947
12948 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
12949
12950 * match.pd (X & C): New transformation.
12951
12952 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
12953
12954 * match.pd (~X & Y): New transformation.
12955
12956 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
12957
12958 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
12959 information for new SSA_NAME.
12960 (simplify_conversion_using_ranges): Get range through get_range_info
12961 instead of get_value_range.
12962
12963 2016-05-17 Jiong Wang <jiong.wang@arm.com>
12964
12965 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
12966 Remove inline assembly.
12967 (vmvn_s16): Likewise.
12968 (vmvn_s32): Likewise.
12969 (vmvn_u8): Likewise.
12970 (vmvn_u16): Likewise.
12971 (vmvn_u32): Likewise.
12972 (vmvnq_s8): Likewise.
12973 (vmvnq_s16): Likewise.
12974 (vmvnq_s32): Likewise.
12975 (vmvnq_u8): Likewise.
12976 (vmvnq_u16): Likewise.
12977 (vmvnq_u32): Likewise.
12978 (vmvn_p8): Likewise.
12979 (vmvnq_p16): Likewise.
12980
12981 2016-05-17 Jiong Wang <jiong.wang@arm.com>
12982
12983 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
12984 Use builtin.
12985 (vmul_n_s16): Likewise.
12986 (vmul_n_s32): Likewise.
12987 (vmul_n_u16): Likewise.
12988 (vmul_n_u32): Likewise.
12989 (vmulq_n_f32): Likewise.
12990 (vmulq_n_f64): Likewise.
12991 (vmulq_n_s16): Likewise.
12992 (vmulq_n_s32): Likewise.
12993 (vmulq_n_u16): Likewise.
12994 (vmulq_n_u32): Likewise.
12995
12996 2016-05-17 Jiong Wang <jiong.wang@arm.com>
12997
12998 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
12999 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
13000
13001 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13002
13003 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
13004 to *aarch64_fma4_elt_from_dup<mode>.
13005 (*aarch64_fnma4_elt_to_128df): Rename to
13006 *aarch64_fnma4_elt_from_dup<mode>.
13007 * config/aarch64/arm_neon.h (vfma_n_f64): New.
13008 (vfms_n_f32): Likewise.
13009 (vfms_n_f64): Likewise.
13010 (vfmsq_n_f32): Likewise.
13011 (vfmsq_n_f64): Likewise.
13012
13013 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
13014
13015 * wide-int.h: Change fixed_wide_int_storage from class to struct.
13016
13017 2016-05-17 Richard Biener <rguenther@suse.de>
13018
13019 PR tree-optimization/71132
13020 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
13021 Only add control dependences for blocks in the loop.
13022 (build_rdg): Adjust.
13023 (generate_code_for_partition): Return whether loop should
13024 be destroyed and delay that.
13025 (distribute_loop): Likewise.
13026 (pass_loop_distribution::execute): Record loops to be destroyed
13027 and perform delayed destroying of loops.
13028
13029 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13030
13031 PR target/70809
13032 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
13033
13034 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13035
13036 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
13037
13038 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
13039
13040 PR target/71114
13041 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
13042 insertion point for instructions generated by validize_mem.
13043
13044 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13045
13046 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
13047 in brackets.
13048
13049 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13050
13051 * config/aarch64/aarch64.c
13052 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
13053 rather than a macro.
13054
13055 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13056
13057 * doc/invoke.texi (AArch64 Options): Various updates.
13058
13059 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13060
13061 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
13062 into instrumentation thunks.
13063 * cif-code.def (CIF_CHKP): New.
13064
13065 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
13066
13067 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
13068
13069 2016-05-16 Martin Jambor <mjambor@suse.cz>
13070
13071 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
13072 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
13073
13074 2016-05-16 Marek Polacek <polacek@redhat.com>
13075
13076 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
13077 commentary.
13078
13079 2016-05-16 Martin Jambor <mjambor@suse.cz>
13080
13081 PR hsa/70857
13082 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
13083 the outlined kernel function.
13084
13085 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
13086
13087 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
13088 (ISA_HAS_DLSA): Ditto.
13089
13090 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
13091
13092 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
13093
13094 2016-05-16 Nathan Sidwell <nathan@acm.org>
13095
13096 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
13097 (nvptx_name_replacement): Restore. Add comment.
13098 (write_fn_proto, write_fn_proto_from_insn,
13099 nvptx_output_call_insn): Restore
13100 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
13101
13102 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13103
13104 * config/aarch64/aarch64.md
13105 (add<mode>3_compareC_cconly_imm): Remove use of %w.
13106 (add<mode>3_compareC_imm): Likewise.
13107 (<optab>si3_uxtw): Split into register and immediate variants.
13108 (andsi3_compare0_uxtw): Likewise.
13109 (and<mode>3_compare0): Likewise.
13110 (and<mode>3nr_compare0): Likewise.
13111 (stack_protect_test_<mode>): Don't use %x for memory operands.
13112
13113 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
13114
13115 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
13116
13117 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13118
13119 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
13120 Split integer shifts into shift_reg and bfm.
13121 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
13122 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
13123 (ror<mode>3_insn): Likewise.
13124 (<optab>si3_insn_uxtw): Likewise.
13125 (<optab><mode>3_insn): Change to rotate_imm.
13126 (extr<mode>5_insn_alt): Likewise.
13127 (extrsi5_insn_uxtw): Likewise.
13128 (extrsi5_insn_uxtw_alt): Likewise.
13129
13130 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13131
13132 * doc/tm.texi: Regenerate.
13133 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
13134 (TARGET_INVALID_RETURN_TYPE): Remove.
13135 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
13136 TARGET_INVALID_RETURN_TYPE.
13137 * target.def (invalid_parameter_type): Remove.
13138 (invalid_return_type): Remove.
13139
13140 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13141
13142 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
13143 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
13144 calls from thunk.
13145 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
13146 gimple body.
13147 (preserve_function_body_p): No need to preserve function body
13148 * cif-codes.def (CIF_THUNK): Remove.
13149 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
13150
13151 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13152
13153 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
13154
13155 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13156
13157 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
13158 for thunks.
13159
13160 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13161
13162 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
13163 (inline_small_functions): Do not look for function symbol when
13164 resetting caches.
13165
13166 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13167
13168 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
13169 of inline thunks
13170
13171 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13172 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13173 Jiong Wang <jiong.wang@arm.com>
13174
13175 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
13176 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
13177 Define __ARM_FP16_ARGS when appropriate.
13178 * config/arm/arm.c (arm_invalid_parameter_type): Remove
13179 declaration.
13180 (arm_invalid_return_type): Likewise.
13181 (TARGET_INVALID_PARAMETER_TYPE): Remove.
13182 (TARGET_INVALID_RETURN_TYPE): Remove.
13183 (aapcs_vfp_sub_candidate): Allow HFmode.
13184 (aapcs_vfp_allocate): Add comment. Support HFmode.
13185 (aapcs_vfp_allocate_return_reg): Likewise.
13186 (struct aapcs_cp_arg_layout): Slightly reword comments for
13187 is_return_candidate and allocate_return_reg.
13188 (output_mov_vfp): Update assert.
13189 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
13190 condition.
13191 (arm_invalid_parameter_type): Remove.
13192 (amr_invalid_return_type): Remove.
13193 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
13194 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
13195 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
13196
13197 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13198
13199 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13200 * config/aarch64/arch64-protos.h
13201 (aarch64_legitimize_reload_address): Remove.
13202 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
13203 Remove.
13204
13205 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
13206
13207 * configure.ac: Add ACX_NONCANONICAL_HOST.
13208 * configure: Regenerate.
13209 * Makefile.in: Set host_noncanonical.
13210
13211 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
13212
13213 PR target/71097
13214 * config/i386/i386.md (*movtf_internal): Before register allocation,
13215 do not allow FP constants for CM_MEDIUM memory model, allow only
13216 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
13217 (*movxf_internal): Ditto.
13218 (*movdf_internal): Ditto.
13219 (*movsf_internal): Ditto.
13220
13221 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
13222
13223 PR rtl-optimization/67483
13224 * combine.c (make_compound_operation): Don't call extract_left_shift
13225 with negative shift amounts.
13226
13227 2016-05-13 Jakub Jelinek <jakub@redhat.com>
13228
13229 PR bootstrap/71071
13230 * fold-const.c (fold_checksum_tree): Allow modification
13231 of TYPE_ALIAS_SET during folding.
13232
13233 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
13234 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
13235 (ix86_split_to_parts): Likewise. Fix up formatting.
13236
13237 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
13238
13239 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
13240 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
13241 printf format.
13242
13243 2016-05-13 Nathan Sidwell <nathan@acm.org>
13244
13245 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
13246 (nvptx_name_replacement): Delete.
13247 (write_fn_proto, write_fn_proto_from_insn,
13248 nvptx_output_call_insn): Remove nvptx_name_replacement call.
13249 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
13250 * langhooks.c (add_builtin_funcction_common): Call
13251 targetm.mangle_decl_assembler_name.
13252
13253 * config/nvptx/nvptx.c (write_fn_proto): Handle
13254 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
13255
13256 2016-05-13 Martin Liska <mliska@suse.cz>
13257
13258 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
13259 and PRIu64 in printf format.
13260
13261 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13262
13263 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
13264 comment.
13265
13266 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13267
13268 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
13269 Change --param max-completely-peeled-times to
13270 --param max-completely-peel-times in dump file printing.
13271
13272 2016-05-13 Richard Biener <rguenther@suse.de>
13273
13274 PR tree-optimization/42587
13275 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
13276 (find_bswap_or_nop_1): Likewise.
13277 (bswap_replace): Likewise.
13278
13279 2016-05-13 Martin Liska <mliska@suse.cz>
13280
13281 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
13282 Initialize a variable with default value.
13283
13284 2016-05-13 Martin Liska <mliska@suse.cz>
13285
13286 * doc/invoke.texi: Enhance explanation of error recovery
13287 of sanitizers.
13288
13289 2016-05-13 Martin Liska <mliska@suse.cz>
13290
13291 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
13292 (struct cost_pair): Change inv_expr_id (int) to inv_expr
13293 (iv_inv_expr_ent *).
13294 (struct iv_inv_expr_ent): Comment struct fields.
13295 (sort_iv_inv_expr_ent): New function.
13296 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
13297 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
13298 a hash_map between iv_inv_expr_ent and number of usages.
13299 (niter_for_exit): Fix coding style.
13300 (tree_ssa_iv_optimize_init): Use renamed variable.
13301 (determine_base_object): Fix coding style.
13302 (alloc_iv): Likewise.
13303 (find_interesting_uses_outside): Likewise.
13304 (add_candidate_1): Likewise.
13305 (add_standard_iv_candidates): Likewise.
13306 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
13307 (prepare_decl_rtl): Fix coding style.
13308 (get_address_cost): Likewise.
13309 (get_shiftadd_cost): Likewise.
13310 (force_expr_to_var_cost): Likewise.
13311 (compare_aff_trees): Likewise.
13312 (get_expr_id): Restructure the function.
13313 (get_loop_invariant_expr_id): Renamed to
13314 get_loop_invariant_expr.
13315 (get_computation_cost_at): Replace usage of inv_expr_id with
13316 inv_expr.
13317 (get_computation_cost): Likewise.
13318 (determine_group_iv_cost_generic): Likewise.
13319 (determine_group_iv_cost_address): Likewise.
13320 (iv_period): Fix coding style.
13321 (iv_elimination_compare_lt): Likewise.
13322 (may_eliminate_iv): Likewise.
13323 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
13324 inv_expr.
13325 (determine_group_iv_costs): Dump invariant expressions.
13326 (iv_ca_recount_cost): Use the newly added hash_map.
13327 (iv_ca_set_remove_invariants): Fix coding style.
13328 (iv_ca_set_add_invariants): Fix coding style.
13329 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
13330 invariants.
13331 (iv_ca_set_cp): Likewise.
13332 (iv_ca_new): Initialize the newly added hash_map and remove
13333 initialization of fields.
13334 (iv_ca_free): Delete the hash_map.
13335 (iv_ca_dump): Dump invariant expressions.
13336 (iv_ca_extend): Fix coding style.
13337 (try_add_cand_for): Likewise.
13338 (create_new_ivs): Dump information about # of avg iterations and
13339 # of used invariant expressions.
13340 (rewrite_use_compare): Fix coding style.
13341 (free_loop_data): Set default value for max_inv_expr_id.
13342
13343 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
13344
13345 * cse.c (rest_of_handle_cse): Use cleanup_cfg
13346 returned value cse_cfg_altered computation.
13347 (rest_of_handle_cse2): Likewise.
13348 (rest_of_handle_cse_after_global_opts): Likewise.
13349
13350 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13351
13352 PR target/53440
13353 * config/arm/arm.c (arm32_output_mi_thunk): New.
13354 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
13355 to split Thumb1 vs TARGET_32BIT functionality.
13356 (arm_thumb1_mi_thunk): New.
13357
13358 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13359
13360 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
13361 to true.
13362
13363 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13364
13365 PR target/71080
13366 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
13367
13368 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
13369
13370 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
13371 (expand_builtin_trap): Emit a regular call.
13372 (set_builtin_user_assembler_name): Remove obsolete cases.
13373 * dse.c (scan_insn): Adjust.
13374 * except.c: Include calls.h.
13375 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
13376 emit a regular call to setjmp.
13377 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
13378 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
13379 (emit_block_move_via_libcall): Delete.
13380 (block_move_fn): Delete.
13381 (init_block_move_fn): Likewise.
13382 (emit_block_move_libcall_fn): Likewise.
13383 (emit_block_op_via_libcall): New function.
13384 (set_storage_via_libcall): Tidy up and use memset builtin.
13385 (block_clear_fn): Delete.
13386 (init_block_clear_fn): Likewise.
13387 (clear_storage_libcall_fn): Likewise.
13388 (expand_assignment): Call emit_block_move_via_libcall.
13389 Do not include gt-expr.h.
13390 * expr.h (emit_block_op_via_libcall): Declare.
13391 (emit_block_copy_via_libcall): New inline function.
13392 (emit_block_move_via_libcall): Likewise.
13393 (emit_block_comp_via_libcall): Likewise.
13394 (block_clear_fn): Delete.
13395 (init_block_move_fn): Likewise.
13396 (init_block_clear_fn): Likewise.
13397 (emit_block_move_via_libcall): Likewise.
13398 (set_storage_via_libcall): Add default parameter value.
13399 * libfuncs.h (enum libfunc_index): Remove obsolete values.
13400 (abort_libfunc): Delete.
13401 (memcpy_libfunc): Likewise.
13402 (memmove_libfunc): Likewise.
13403 (memcmp_libfunc): Likewise.
13404 (memset_libfunc): Likewise.
13405 (setbits_libfunc): Likewise.
13406 (setjmp_libfunc): Likewise.
13407 (longjmp_libfunc): Likewise.
13408 (profile_function_entry_libfunc): Likewise.
13409 (profile_function_exit_libfunc): Likewise.
13410 (gcov_flush_libfunc): Likewise.
13411 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
13412 and DECL_VISIBILITY on the declaration.
13413 (init_optabs): Do not initialize obsolete libfuncs.
13414 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
13415 * tree-core.h (ECF_RET1): Define.
13416 (ECF_TM_PURE): Adjust.
13417 (ECF_TM_BUILTIN): Likewise.
13418 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
13419 (build_common_builtin_nodes): Initialize abort builtin.
13420 Add ECF_RET1 on memcpy, memmove and memset builtins.
13421 Pass final flags for alloca and alloca_with_align builtins.
13422 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
13423 obsolete builtins.
13424 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
13425 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
13426 set_storage_via_libcall and call emit_block_copy_via_libcall.
13427
13428 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
13429
13430 * config/i386/i386.md (*call_got_x32): Change operand 0 to
13431 DImode before it is passed to ix86_output_call_operand.
13432 (*call_value_got_x32): Ditto for operand 1.
13433
13434 2016-05-12 Jiong Wang <jiong.wang@arm.com>
13435
13436 PR rtl-optimization/70904
13437 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
13438 reload for wide mode.
13439
13440 2016-05-12 Marek Polacek <polacek@redhat.com>
13441
13442 PR c/70756
13443 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
13444 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
13445 * langhooks.h (incomplete_type_error): Likewise.
13446 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
13447 parameter, pass it down to incomplete_type_error.
13448 * tree.h (size_in_bytes): New inline overload.
13449 (size_in_bytes_loc): Renamed from size_in_bytes.
13450
13451 2016-05-12 Richard Biener <rguenther@suse.de>
13452
13453 PR tree-optimization/71059
13454 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
13455 nary before looking up or entering the expression into the VN
13456 hashes.
13457 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
13458 Make sure to re-use NARYs without result as inserted by
13459 phi-translation.
13460
13461 2016-05-12 Richard Biener <rguenther@suse.de>
13462
13463 PR tree-optimization/71062
13464 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
13465 field.
13466 * tree-ssa-structalias.c (set_uids_in_ptset): Set
13467 vars_contains_restrict if the var is a restrict tag.
13468 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
13469 do not disambiguate pointers against it.
13470 (dump_points_to_solution): Re-structure and adjust for new
13471 vars_contains_restrict flag.
13472 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
13473
13474 2016-05-12 Martin Liska <mliska@suse.cz>
13475
13476 * doc/invoke.texi: Explain connection between
13477 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
13478
13479 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
13480
13481 PR tree-optimization/71006
13482 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
13483 consider COND_EXPR as a mask producer.
13484
13485 2016-05-12 Marek Polacek <polacek@redhat.com>
13486
13487 PR driver/71063
13488 * opts.c (common_handle_option): Detect missing argument for --help^.
13489
13490 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13491
13492 PR target/70830
13493 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
13494 when popping the PC and within an interrupt handler routine.
13495 Add missing tab to output of "ldmfd".
13496 (output_return_instruction): Output LDMFD with SP update rather
13497 than POP when returning from interrupt handler.
13498
13499 2016-05-12 Jakub Jelinek <jakub@redhat.com>
13500
13501 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
13502 TARGET_64BIT && TARGET_AVX512DQ.
13503 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
13504 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
13505 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
13506 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
13507 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
13508 (*vec_extractv4si_zext): Add avx512dq alternative.
13509 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
13510 use v instead of x constraint in other alternatives where possible.
13511
13512 * config/i386/sse.md (sse2_loadld): Use v instead of x
13513 constraint in alternatives 0,1,4.
13514
13515 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
13516 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
13517 v constraints instead of x and <pinsr_evex_isa> isa attribute.
13518
13519 PR target/71019
13520 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
13521 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
13522 is not emitted unless TARGET_AVX512BW.
13523 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
13524 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
13525 for the result operand.
13526
13527 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
13528 constraint instead of x in avx alternatives. Use maybe_evex instead
13529 of vex prefix.
13530
13531 * config/i386/constraints.md (Yv): New constraint.
13532 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
13533 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
13534 * config/i386/i386.md (avx512fvecmode): New mode attr.
13535 (*pushtf): Use v constraint instead of x.
13536 (*movtf_internal): Likewise. For TARGET_AVX512VL and
13537 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
13538 (*absneg<mode>2): Use Yv constraint instead of x constraint.
13539 (*absnegtf2_sse): Likewise.
13540 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
13541 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
13542 avx512f alternatives.
13543 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
13544
13545 2016-05-12 Richard Biener <rguenther@suse.de>
13546
13547 PR tree-optimization/71060
13548 * tree-data-ref.c (initialize_data_dependence_relation): Do not
13549 require exact match of DR_BASE_OBJECT but only matching address and
13550 type.
13551
13552 2016-05-12 Richard Biener <rguenther@suse.de>
13553
13554 PR tree-optimization/70986
13555 * cfganal.c: Include cfgloop.h.
13556 (dfs_find_deadend): Prefer to take edges exiting loops.
13557
13558 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13559
13560 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
13561 compile and run time.
13562
13563 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
13564
13565 PR c/43651
13566 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
13567
13568 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
13569
13570 * config/i386/i386.c (legitimize_pic_address): Use
13571 copy_to_suggested_reg instead of gen_movsi.
13572
13573 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13574
13575 * config/rs6000/predicates.md (quad_memory_operand): Move most of
13576 the code into quad_address_p and call it to share code with
13577 vsx_quad_dform_memory_operand.
13578 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
13579 d-form support.
13580 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
13581 bit instead of being a separate word. Split -mpower9-dform into
13582 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
13583 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
13584 for the register class supporting 128-bit quad word memory offsets.
13585 (mode_supports_vsx_dform_quad): Helper function to return if the
13586 register class uses quad word memory offsets.
13587 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
13588 (rs6000_debug_reg_global): Always print if we are using LRA or not.
13589 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
13590 instructions are enabled, set up the appropriate addr_masks for
13591 128-bit types.
13592 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
13593 -mpower9-dform-scalar, instead of -mpower9-dform.
13594 (rs6000_option_override_internal): Split -mpower9-dform into two
13595 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
13596 -mpower9-dform switch sets or clears both. If we are not using
13597 the LRA register allocator, do not enable -mpower9-dform-vector by
13598 default. If we are using LRA, enable -mpower9-dform-vector and
13599 -mvsx-timode if it is appropriate. Issue a warning if either
13600 -mpower9-dform-vector or -mvsx-timode are explicitly used without
13601 enabling LRA.
13602 (quad_address_offset_p): New helper function to return if the
13603 offset is legal for quad word memory instructions.
13604 (quad_address_p): New function to determin if GPR or vector
13605 register quad word memory addresses are legal.
13606 (mem_operand_gpr): Validate quad word address offsets.
13607 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
13608 d-form (register + offset) instructions.
13609 (offsettable_ok_by_alignment): Likewise.
13610 (rs6000_legitimate_offset_address_p): Likewise.
13611 (legitimate_lo_sum_address_p): Likewise.
13612 (rs6000_legitimize_address): Likewise.
13613 (rs6000_legitimize_reload_address): Add more debug statements for
13614 -mdebug=addr.
13615 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
13616 d-form instructions.
13617 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
13618 d-form instructions. Distinguish different cases in debug
13619 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
13620 d-form instructions.
13621 (rs6000_preferred_reload_class): Likewise.
13622 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
13623 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
13624 of the ISA 2.06 indexed memory instructions.
13625 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
13626 use them to save/restore the saved vector registers instead of
13627 using Altivec instructions.
13628 (rs6000_emit_epilogue): Likewise.
13629 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
13630 (rs6000_opt_masks): Split -mpower9-dform into
13631 -mpower9-dform-scalar and -mpower9-dform-vector.
13632 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
13633 was not selected.
13634 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
13635 ISA 3.0 vector indexed memory instructions, and fold the code into
13636 the normal mov<mode> patterns.
13637 (p9_vecstore_<mode>): Likewise.
13638 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
13639 instructions.
13640 (vsx_movti_64bit): Likewise.
13641 (vsx_movti_32bit): Likewise.
13642 * config/rs6000/constraints.md (wO constraint): New constraint for
13643 ISA 3.0 vector d-form support.
13644 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
13645 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
13646 include -mpower9-dform-vector until we switch over to LRA.
13647 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
13648 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
13649 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
13650 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
13651 for -mpower9-dform and -mlra.
13652 * doc/md.texi (wO constraint): Document wO constraint.
13653
13654 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
13655
13656 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
13657 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
13658 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
13659 Move handling of non-insn arguments inline into the sole user:
13660 (output_trans_func): ...here.
13661 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
13662 in emitted function prototype.
13663 (output_internal_insn_latency_func): Ditto. Simplify.
13664 (output_internal_maximal_insn_latency_func): Ditto. Delete
13665 always-unused argument.
13666 (output_insn_latency_func): Ditto.
13667 (output_maximal_insn_latency_func): Ditto.
13668
13669 2016-05-11 Richard Biener <rguenther@suse.de>
13670
13671 PR tree-optimization/71055
13672 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
13673 sth with precision not equal to access size verify we don't chop
13674 off bits.
13675
13676 2016-05-11 Richard Biener <rguenther@suse.de>
13677
13678 PR debug/71057
13679 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
13680 (dwarf2out_finish): Move retry_incomplete_types call ...
13681 (dwarf2out_early_finish): ... here.
13682
13683 2016-05-11 Richard Biener <rguenther@suse.de>
13684
13685 PR middle-end/71002
13686 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
13687 if the langhook insists on it.
13688 * fold-const.c (make_bit_field_ref): Add arg for the original
13689 reference and preserve its alias-set.
13690 (decode_field_reference): Take exp by reference and adjust it
13691 to the original memory reference.
13692 (optimize_bit_field_compare): Adjust callers.
13693 (fold_truth_andor_1): Likewise.
13694 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
13695
13696 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
13697
13698 PR middle-end/70807
13699 * cfgrtl.h (delete_insn_and_edges): Now return bool.
13700 * cfgrtl.c (delete_insn_and_edges): Likewise.
13701 * config/i386/i386.c (convert_scalars_to_vector): Remove
13702 redundant code.
13703 * cse.c (cse_insn): Compute cse_cfg_altered.
13704 (delete_trivially_dead_insns): Likewise.
13705 (cse_cc_succs): Likewise.
13706 (rest_of_handle_cse): Free dominance info if required.
13707 (rest_of_handle_cse2): Likewise.
13708 (rest_of_handle_cse_after_global_opts): Likewise.
13709
13710 2016-05-11 Alan Modra <amodra@gmail.com>
13711
13712 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
13713 abi_v4_pass_in_fpr): New functions.
13714 (rs6000_function_arg_boundary): Exclude complex IBM long double
13715 from 64-bit alignment when ABI_V4.
13716 (rs6000_function_arg, rs6000_function_arg_advance_1,
13717 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
13718
13719 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
13720
13721 PR rtl-optimization/71028
13722 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
13723 jump with just a return in the fallthrough block if the branch
13724 block contains just a return as well.
13725
13726 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
13727
13728 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
13729 * match.pd ((X & Y) ^ Y): ... this.
13730 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
13731 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
13732
13733 2016-05-10 David Malcolm <dmalcolm@redhat.com>
13734
13735 * read-md.c (require_char_ws): New function.
13736 (read_string): Simplify using require_char_ws.
13737 (handle_constants): Likewise.
13738 (handle_enum): Likewise.
13739 (handle_file): Likewise.
13740 * read-md.h (require_char_ws): New declaration.
13741 * read-rtl.c (read_conditions): Simplify using require_char_ws.
13742 (read_mapping): Likewise.
13743 (read_rtx_code): Likewise.
13744 (read_nested_rtx): Likewise.
13745
13746 2016-05-10 James Norris <jnorris@codesourcery.com>
13747
13748 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
13749 if offloading is enabled and -fopenacc or -fopenmp is specified.
13750 (CRTOFFLOADEND): Likewise.
13751 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
13752 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
13753
13754 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
13755
13756 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
13757 gotoff_operand code paths. Use copy_to_suggested_regs and
13758 expand_simple_binop where appropriate. Cleanup.
13759
13760 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
13761
13762 PR target/70799
13763 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
13764 integer constants.
13765 (dimode_scalar_chain::vector_const_cost): New.
13766 (dimode_scalar_chain::compute_convert_gain): Handle constants.
13767 (dimode_scalar_chain::convert_op): Likewise.
13768 (dimode_scalar_chain::convert_insn): Likewise.
13769
13770 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
13771
13772 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
13773 unary operation, not a binary one.
13774
13775 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
13776
13777 PR middle-end/70877
13778 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
13779 calls with type casted fndecl.
13780
13781 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
13782
13783 PR tree-optimization/70786
13784 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
13785 * calls.c (initialize_argument_information): Bind bounds
13786 with corresponding args passed by reference.
13787
13788 2016-05-10 Jakub Jelinek <jakub@redhat.com>
13789
13790 PR target/70927
13791 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
13792 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
13793 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
13794 accordingly.
13795
13796 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13797
13798 PR target/70963
13799 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
13800 code for a zero scale factor.
13801 (vsx_xvcvdpuxds_scale): Likewise.
13802
13803 2016-05-10 David Malcolm <dmalcolm@redhat.com>
13804
13805 * diagnostic-show-locus.c (layout::layout): Call show_ruler
13806 if show_ruler_p was set on the context.
13807 (layout::show_ruler): New method.
13808 * diagnostic.h (struct diagnostic_context): Add field
13809 "show_ruler_p".
13810
13811 2016-05-10 Richard Biener <rguenther@suse.de>
13812
13813 PR tree-optimization/71039
13814 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
13815 (chk_uses): New function.
13816 (propagate_with_phi): Verify we can safely replicate the lhs of an
13817 aggregate assignment on all incoming edges.
13818
13819 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
13820
13821 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
13822 Forward declare.
13823 (rx_atomic_sequence): New class.
13824 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
13825 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
13826 non-inline.
13827 (rx_atomic_sequence::rx_atomic_sequence,
13828 rx_atomic_sequence::~rx_atomic_sequence): New functions.
13829 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
13830 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
13831 CTRLREG_INTB): New constants.
13832 (FETCHOP): New code iterator.
13833 (fethcop_name, fetchop_name2): New iterator code attributes.
13834 (QIHI): New mode iterator.
13835 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
13836 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
13837 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
13838
13839 2016-05-10 Martin Liska <mliska@suse.cz>
13840
13841 * tree-inline.c (remap_dependence_clique): Do not remap
13842 debugging statements.
13843
13844 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13845
13846 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
13847 ("*fixuns_truncdfdi2_z13")
13848 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
13849 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
13850 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
13851
13852 2016-05-10 Richard Biener <rguenther@suse.de>
13853
13854 PR tree-optimization/70497
13855 PR tree-optimization/28367
13856 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
13857 split out from ...
13858 (visit_reference_op_load): ... here.
13859 (vn_reference_lookup_3): Use it to handle subreg-like accesses
13860 with simplified BIT_FIELD_REFs.
13861 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
13862 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
13863 correctly.
13864
13865 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
13866
13867 * dwarf2out.c (add_abstract_origin_attribute): Adjust
13868 documentation comment. For BLOCK nodes, add a
13869 DW_AT_abstract_origin attribute that points to the DIE generated
13870 for the origin BLOCK.
13871 (gen_lexical_block_die): Call add_abstract_origin_attribute for
13872 blocks from inlined functions.
13873
13874 2016-05-10 Alan Modra <amodra@gmail.com>
13875
13876 PR target/70947
13877 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
13878 regrename modifying insns saving lr before __morestack call.
13879 * config/rs6000/rs6000.md (split_stack_return): Similarly for
13880 insns restoring lr after __morestack call.
13881
13882 2016-05-09 Jakub Jelinek <jakub@redhat.com>
13883
13884 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
13885 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
13886 expanders.
13887 * config/i386/sse.md (vec_interleave_high<mode>,
13888 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
13889 <avx512>_vpermt2var<mode>3_maskz): Likewise.
13890
13891 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13892
13893 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
13894 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
13895 parallel reassociation for power8 and forward.
13896
13897 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
13898
13899 * config/i386/i386.md (absneg splitters with general regs): Use
13900 general_reg_operand predicate.
13901 (btsq peephole2): Use x86_64_immediate_operand to check if new
13902 value is suitable for immediate operand. Generate emitted insn
13903 using RTL expressions.
13904 (btcq peephole2): Ditto.
13905 (btrq peephole2): Ditto. Generate correct immediate operand
13906 for AND masking.
13907
13908 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
13909
13910 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
13911 bitpos.
13912
13913 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
13914
13915 * tree-affine.c (wide_int_constant_multiple_p): Add missing
13916 pointer dereference.
13917
13918 2016-05-09 Richard Biener <rguenther@suse.de>
13919
13920 PR tree-optimization/70985
13921 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
13922 op0 isn't a gimple register.
13923
13924 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
13925
13926 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
13927 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
13928 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
13929 (i6400_fpu_mult): New cpu units.
13930 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
13931 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
13932 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
13933 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
13934 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
13935 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
13936 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
13937 (i6400_msa_long_float4, i6400_msa_long_float5)
13938 (i6400_msa_long_float8, i6400_msa_fdiv_df)
13939 (i6400_msa_fdiv_sf): New reservations.
13940 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
13941 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
13942 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
13943 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
13944 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
13945 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
13946 (msa_short_cmp, msa_short_float2, msa_short_logic3)
13947 (msa_short_store4, msa_long_load, msa_short_store)
13948 (msa_long_logic, msa_long_float2, msa_long_float4)
13949 (msa_long_float5, msa_long_float8, msa_long_mult)
13950 (msa_long_fdiv, msa_long_div): New reservations.
13951
13952 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
13953 Sameera Deshpande <sameera.deshpande@imgtec.com>
13954 Matthew Fortune <matthew.fortune@imgtec.com>
13955 Graham Stott <graham.stott@imgtec.com>
13956 Chao-ying Fu <chao-ying.fu@imgtec.com>
13957
13958 * config.gcc: Add MSA header file for mips*-*-* target.
13959 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
13960 (Ubv8i, Urv8): New constraints.
13961 * config/mips/mips-ftypes.def: Add function types for MSA
13962 builtins.
13963 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
13964 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
13965 * config/mips/mips-msa.md: New file.
13966 * config/mips/mips-protos.h
13967 (mips_split_128bit_const_insns): New prototype.
13968 (mips_msa_idiv_insns): Likewise.
13969 (mips_split_128bit_move): Likewise.
13970 (mips_split_128bit_move_p): Likewise.
13971 (mips_split_msa_copy_d): Likewise.
13972 (mips_split_msa_insert_d): Likewise.
13973 (mips_split_msa_fill_d): Likewise.
13974 (mips_expand_msa_branch): Likewise.
13975 (mips_const_vector_same_val_p): Likewise.
13976 (mips_const_vector_same_bytes_p): Likewise.
13977 (mips_const_vector_same_int_p): Likewise.
13978 (mips_const_vector_shuffle_set_p): Likewise.
13979 (mips_const_vector_bitimm_set_p): Likewise.
13980 (mips_const_vector_bitimm_clr_p): Likewise.
13981 (mips_msa_vec_parallel_const_half): Likewise.
13982 (mips_msa_output_division): Likewise.
13983 (mips_ldst_scaled_shift): Likewise.
13984 (mips_expand_vec_cond_expr): Likewise.
13985 * config/mips/mips.c (enum mips_builtin_type): Add
13986 MIPS_BUILTIN_MSA_TEST_BRANCH.
13987 (mips_gen_const_int_vector_shuffle): New prototype.
13988 (mips_const_vector_bitimm_set_p): New function.
13989 (mips_const_vector_bitimm_clr_p): Likewise.
13990 (mips_const_vector_same_val_p): Likewise.
13991 (mips_const_vector_same_bytes_p): Likewise.
13992 (mips_const_vector_same_int_p): Likewise.
13993 (mips_const_vector_shuffle_set_p): Likewise.
13994 (mips_symbol_insns): Forbid loading symbols via immediate for
13995 MSA.
13996 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
13997 stores.
13998 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
13999 MSA.
14000 (mips_lx_address_p): Add support load indexed address for MSA.
14001 (mips_address_insns): Add calculation of instructions needed for
14002 stores and loads for MSA.
14003 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
14004 CONST_VECTOR for MSA and let it fall through.
14005 (mips_ldst_scaled_shift): New function.
14006 (mips_subword_at_byte): Likewise.
14007 (mips_msa_idiv_insns): Likewise.
14008 (mips_legitimize_move): Validate MSA moves.
14009 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
14010 calculation of costs for MSA division.
14011 (mips_split_move_p): Check if MSA moves need splitting.
14012 (mips_split_move): Split MSA moves if necessary.
14013 (mips_split_128bit_move_p): New function.
14014 (mips_split_128bit_move): Likewise.
14015 (mips_split_msa_copy_d): Likewise.
14016 (mips_split_msa_insert_d): Likewise.
14017 (mips_split_msa_fill_d): Likewise.
14018 (mips_output_move): Handle MSA moves.
14019 (mips_expand_msa_branch): New function.
14020 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
14021 Reinstate 'y' modifier.
14022 (mips_file_start): Add MSA .gnu_attribute.
14023 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
14024 FPRs.
14025 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
14026 (mips_class_max_nregs): Add register size for MSA supported mode.
14027 (mips_cannot_change_mode_class): Allow conversion between MSA
14028 vector modes and TImode.
14029 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
14030 instruction.
14031 (mips_secondary_reload_class): Force MSA loads/stores via memory.
14032 (mips_preferred_simd_mode): Add preffered modes for MSA.
14033 (mips_vector_mode_supported_p): Add MSA supported modes.
14034 (mips_autovectorize_vector_sizes): New function.
14035 (mips_msa_output_division): Likewise.
14036 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
14037 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
14038 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
14039 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
14040 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
14041 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
14042 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
14043 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
14044 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
14045 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
14046 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
14047 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
14048 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
14049 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
14050 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
14051 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
14052 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
14053 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
14054 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
14055 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
14056 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
14057 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
14058 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
14059 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
14060 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
14061 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
14062 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
14063 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
14064 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
14065 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
14066 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
14067 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
14068 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
14069 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
14070 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
14071 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
14072 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
14073 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
14074 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
14075 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
14076 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
14077 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
14078 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
14079 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
14080 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14081 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14082 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14083 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14084 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14085 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14086 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14087 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14088 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
14089 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
14090 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
14091 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
14092 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
14093 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
14094 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
14095 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
14096 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
14097 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
14098 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
14099 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
14100 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
14101 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
14102 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
14103 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
14104 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
14105 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
14106 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
14107 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
14108 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
14109 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
14110 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
14111 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
14112 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
14113 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
14114 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
14115 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
14116 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
14117 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
14118 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
14119 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
14120 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
14121 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
14122 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
14123 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
14124 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
14125 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
14126 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
14127 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
14128 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
14129 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
14130 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
14131 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
14132 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
14133 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
14134 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
14135 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
14136 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
14137 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
14138 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
14139 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
14140 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
14141 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
14142 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
14143 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
14144 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
14145 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
14146 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
14147 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
14148 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
14149 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
14150 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
14151 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
14152 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
14153 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
14154 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
14155 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
14156 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
14157 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
14158 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
14159 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
14160 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
14161 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
14162 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
14163 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
14164 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
14165 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
14166 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
14167 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
14168 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
14169 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
14170 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
14171 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
14172 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
14173 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
14174 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
14175 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
14176 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
14177 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
14178 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
14179 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
14180 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
14181 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
14182 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
14183 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
14184 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
14185 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
14186 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
14187 move_v builtins.
14188 (mips_get_builtin_decl_index): New array.
14189 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
14190 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
14191 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
14192 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
14193 (mips_init_builtins): Initialize mips_get_builtin_decl_index
14194 array.
14195 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
14196 hook.
14197 (mips_expand_builtin_insn): Prepare operands for
14198 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
14199 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
14200 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
14201 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
14202 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
14203 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
14204 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
14205 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
14206 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
14207 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
14208 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
14209 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
14210 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
14211 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
14212 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
14213 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
14214 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
14215 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
14216 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
14217 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
14218 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
14219 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
14220 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
14221 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
14222 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
14223 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
14224 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
14225 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
14226 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
14227 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
14228 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
14229 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
14230 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
14231 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
14232 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
14233 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
14234 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
14235 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
14236 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
14237 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
14238 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
14239 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
14240 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
14241 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
14242 These are set implicitly and an error is reported if overridden.
14243 (mips_expand_builtin_msa_test_branch): New function.
14244 (mips_expand_msa_shuffle): Likewise.
14245 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
14246 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
14247 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
14248 (mips_expand_vec_unpack): Add support for MSA.
14249 (mips_expand_vector_init): Likewise.
14250 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
14251 instead of const0_rtx.
14252 (mips_msa_vec_parallel_const_half): New function.
14253 (mips_gen_const_int_vector): Likewise.
14254 (mips_gen_const_int_vector_shuffle): Likewise.
14255 (mips_expand_msa_cmp): Likewise.
14256 (mips_expand_vec_cond_expr): Likewise.
14257 * config/mips/mips.h
14258 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
14259 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
14260 specified.
14261 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
14262 (ISA_HAS_MSA): New macro.
14263 (UNITS_PER_MSA_REG): Likewise.
14264 (BITS_PER_MSA_REG): Likewise.
14265 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
14266 (MSA_REG_FIRST): New macro.
14267 (MSA_REG_LAST): Likewise.
14268 (MSA_REG_NUM): Likewise.
14269 (MSA_REG_P): Likewise.
14270 (MSA_REG_RTX_P): Likewise.
14271 (MSA_SUPPORTED_MODE_P): Likewise.
14272 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
14273 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
14274 * config/mips/mips.md: Include mips-msa.md.
14275 (alu_type): Add simd_add.
14276 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
14277 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
14278 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
14279 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
14280 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
14281 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
14282 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
14283 simd_move, simd_load, simd_store. Choose "multi" for moves
14284 for "qword_mode".
14285 (qword_mode): New attribute.
14286 (insn_count): Add instruction count for quad moves.
14287 Increase the count for MIPS SIMD division.
14288 (UNITMODE): Add UNITMODEs for vector types.
14289 (addsub): New code iterator.
14290 * config/mips/mips.opt (mmsa): New option.
14291 * config/mips/msa.h: New file.
14292 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
14293 specified.
14294 * config/mips/mti-linux.h: Likewise.
14295 * config/mips/predicates.md
14296 (const_msa_branch_operand): New constraint.
14297 (const_uimm3_operand): Likewise.
14298 (const_uimm4_operand): Likewise.
14299 (const_uimm5_operand): Likewise.
14300 (const_uimm8_operand): Likewise.
14301 (const_imm5_operand): Likewise.
14302 (aq10b_operand): Likewise.
14303 (aq10h_operand): Likewise.
14304 (aq10w_operand): Likewise.
14305 (aq10d_operand): Likewise.
14306 (const_m1_operand): Likewise.
14307 (reg_or_m1_operand): Likewise.
14308 (const_exp_2_operand): Likewise.
14309 (const_exp_4_operand): Likewise.
14310 (const_exp_8_operand): Likewise.
14311 (const_exp_16_operand): Likewise.
14312 (const_vector_same_val_operand): Likewise.
14313 (const_vector_same_simm5_operand): Likewise.
14314 (const_vector_same_uimm5_operand): Likewise.
14315 (const_vector_same_uimm6_operand): Likewise.
14316 (const_vector_same_uimm8_operand): Likewise.
14317 (par_const_vector_shf_set_operand): Likewise.
14318 (reg_or_vector_same_val_operand): Likewise.
14319 (reg_or_vector_same_simm5_operand): Likewise.
14320 (reg_or_vector_same_uimm6_operand): Likewise.
14321 * doc/extend.texi (MIPS SIMD Architecture Functions): New
14322 section.
14323 * doc/invoke.texi (-mmsa): Document new option.
14324
14325 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14326
14327 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
14328 * configure: Regenerate.
14329 * config.in: Regenerate.
14330 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
14331 on -fvtable-verify.
14332 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
14333 (ENDFILE_VTV_SPEC): Define.
14334
14335 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
14336
14337 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
14338 registers in all interrupt handlers if necessary.
14339 (rl78_option_override): Add warning.
14340 (MUST_SAVE_MDUC_REGISTERS): New macro.
14341 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
14342 * config/rl78/rl78.c (check_mduc_usage): New function.
14343 (mduc_regs): New structure to hold MDUC register data.
14344 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
14345 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
14346 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
14347 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
14348 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
14349 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
14350
14351 2016-05-09 Bin Cheng <bin.cheng@arm.com>
14352
14353 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
14354 (tree-ssa-loop-niter.h): Ditto.
14355 (idx_within_array_bound, ref_within_array_bound): New functions.
14356 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
14357 Factor out check on writable base object to ...
14358 (base_object_writable): ... here.
14359
14360 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14361
14362 * config/arm/arm.md (probe_stack): Add modes to set source
14363 and destination.
14364
14365 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
14366
14367 * regrename.c (base_reg_class_for_rename): New static function.
14368 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
14369
14370 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
14371
14372 * cgraph.c (thunk_adjust): Export.
14373 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
14374 * cgraphunit.c (thunk_adjust): Export.
14375 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
14376 thunks.
14377 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
14378 inlinable.
14379 * tree-inline.c (expand_call_inline): Expand thunks inline.
14380
14381 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
14382
14383 PR target/70998
14384 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
14385 (*sse2_vd_cvtss2sd): Ditto.
14386 * config/i386/i386.md
14387 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
14388 Generate *sse2_vd_cvtsd2ss pattern.
14389 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
14390 Generate *sse2_vd_cvtss2sd pattern.
14391
14392 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
14393
14394 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
14395 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
14396 users.
14397
14398 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
14399
14400 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
14401 * config/sh/sh.c: Define and declare variables on first use throughout
14402 the file.
14403 (current_function_interrupt): Change to bool type.
14404 (frame_insn): Rename to emit_frame_insn and update users.
14405 (push_regs): Use bool for 'interrupt_handler' argument.
14406 (save_schedule_s): Remove.
14407 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
14408 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
14409 targetm.asm_out.unaligned_op.di.
14410 (gen_far_branch): Remove redundant forward declaration.
14411 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
14412 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
14413 (sh_set_return_address, sh_function_ok_for_sibcall,
14414 scavenge_reg): Update comments.
14415 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
14416 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
14417 (sh_attr_renesas_p): Remove unnecessary parentheses.
14418 (branch_dest): Simplify.
14419 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
14420 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
14421 (CUMULATIVE_ARGS): Change macro to typedef.
14422 (current_function_interrupt): Change to bool type.
14423 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
14424 Surround with __cplusplus ifdef.
14425 (sh_compare_op0, sh_compare_op1): Remove.
14426 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
14427
14428 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
14429
14430 * config/arm/arm.md: (arch): Add neon.
14431 (arch_enabled): Return yes for arch neon when TARGET_NEON.
14432 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
14433 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
14434 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
14435 attributes for alt renumbering. Mark alt 3 as non-predicable.
14436 (thumb2_movdf_vfp): Likewise.
14437
14438 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
14439
14440 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
14441 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
14442 (*andqi_1): Add preferred_for_speed attribute to disparage
14443 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
14444 (*<code>qi_1): Ditto.
14445 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
14446 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
14447 (*ashlqi3_1): Ditto.
14448 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
14449 Add preferred_for_size attribute to disparage alternative 0 and
14450 preferred_for_speed attribute to disparage alternative 1 for
14451 TARGET_PARTIAL_REG_STALL targets.
14452
14453 2016-05-07 Tom de Vries <tom@codesourcery.com>
14454
14455 PR tree-optimization/70956
14456 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
14457 def.
14458
14459 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
14460
14461 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
14462 * config/sh/sh.c (sh_cbranch_distance): Implement it.
14463 * config/sh/sh.md (branch_zero): Remove define_attr.
14464 (define_delay): Disable delay slot if branch distance is one insn.
14465
14466 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
14467
14468 * config/i386/i386.md (LEAMODE): New mode attribute.
14469 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
14470 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
14471 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
14472 operand 2 predicate.
14473 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
14474 (*lea<mode>_general_3): Ditto.
14475 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
14476
14477 2016-05-06 Jakub Jelinek <jakub@redhat.com>
14478
14479 * genmddump.c (main): Convert argv from char ** to const char **.
14480
14481 2016-05-06 David Malcolm <dmalcolm@redhat.com>
14482
14483 * coretypes.h (OVERRIDE): New macro.
14484 (FINAL): New macro.
14485
14486 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
14487
14488 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
14489 allow coalescing if the types are compatible.
14490
14491 2016-05-06 David Malcolm <dmalcolm@redhat.com>
14492
14493 * pass_manager.h (pass_manager::register_pass_name): New method.
14494 (pass_manager::get_pass_by_name): New method.
14495 (pass_manager::create_pass_tab): New method.
14496 (pass_manager::m_name_to_pass_map): New field.
14497 * passes.c (name_to_pass_map): Delete global in favor of field
14498 "m_name_to_pass_map" of pass_manager.
14499 (register_pass_name): Rename from a function to...
14500 (pass_manager::register_pass_name): ...this method, updating
14501 for renaming of global "name_to_pass_map" to field
14502 "m_name_to_pass_map".
14503 (create_pass_tab): Rename from a function to...
14504 (pass_manager::create_pass_tab): ...this method, updating
14505 for renaming of global "name_to_pass_map" to field.
14506 (get_pass_by_name): Rename from a function to...
14507 (pass_manager::get_pass_by_name): ...this method.
14508 (enable_disable_pass): Convert use of get_pass_by_name to
14509 a method call, locating the pass_manager singleton.
14510
14511 2016-05-06 David Malcolm <dmalcolm@redhat.com>
14512
14513 * genattr-common.c (main): Convert argv from char ** to const char **.
14514 * genattr.c (main): Likewise.
14515 * genattrtab.c (main): Likewise.
14516 * genautomata.c (initiate_automaton_gen): Likewise.
14517 (main): Likewise.
14518 * gencodes.c (main): Likewise.
14519 * genconditions.c (main): Likewise.
14520 * genconfig.c (main): Likewise.
14521 * genconstants.c (main): Likewise.
14522 * genemit.c (main): Likewise.
14523 * genenums.c (main): Likewise.
14524 * genextract.c (main): Likewise.
14525 * genflags.c (main): Likewise.
14526 * genmddeps.c (main): Likewise.
14527 * genopinit.c (main): Likewise.
14528 * genoutput.c (main): Likewise.
14529 * genpeep.c (main): Likewise.
14530 * genpreds.c (main): Likewise.
14531 * genrecog.c (main): Likewise.
14532 * gensupport.c (init_rtx_reader_args_cb): Likewise.
14533 (init_rtx_reader_args): Likewise.
14534 * gensupport.h (init_rtx_reader_args_cb): Likewise.
14535 (init_rtx_reader_args): Likewise.
14536 * gentarget-def.c (main): Likewise.
14537 * read-md.c (read_md_files): Likewise.
14538 * read-md.h (read_md_files): Likewise.
14539
14540 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
14541
14542 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
14543 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
14544 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
14545 Remove unused predicate.
14546 (register_and_not_fp_reg_operand): Ditto.
14547
14548 2016-05-06 Martin Liska <mliska@suse.cz>
14549
14550 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
14551 instead of vec as the vector is local to the function.
14552
14553 2016-05-06 Jakub Jelinek <jakub@redhat.com>
14554
14555 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
14556 avx512bw alternative.
14557
14558 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
14559 before the ashr<mode>3 pattern.
14560
14561 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
14562 v instead of x in vex or maybe_vex alternatives, use
14563 maybe_evex instead of vex in prefix.
14564
14565 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
14566 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
14567 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
14568 in vex or maybe_vex alternatives, use maybe_evex instead of vex
14569 in prefix.
14570
14571 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
14572 v instead of x in vex or maybe_vex alternatives, use
14573 maybe_evex instead of vex in prefix.
14574
14575 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
14576 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
14577 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
14578 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
14579 alternatives, use maybe_evex instead of vex in prefix.
14580
14581 * config/i386/sse.md (vec_interleave_lowv4sf,
14582 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
14583 v instead of x in vex or maybe_vex alternatives, use
14584 maybe_evex instead of vex in prefix.
14585
14586 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
14587 v instead of x in vex or maybe_vex alternatives, use
14588 maybe_evex instead of vex in prefix.
14589
14590 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
14591 v constraint instead of x.
14592
14593 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
14594
14595 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
14596 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
14597 equality first.
14598
14599 2016-05-06 Richard Biener <rguenther@suse.de>
14600
14601 PR tree-optimization/70948
14602 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14603 Properly clobber all fields of va_list for __builtin_va_start.
14604
14605 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
14606
14607 PR debug/70935
14608 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
14609 loop latch destination.
14610
14611 2016-05-06 Martin Liska <mliska@suse.cz>
14612
14613 * tree-ssa-uninit.c: Apply manual changes
14614 to the GNU coding style.
14615 (prune_uninit_phi_opnds): Rename from
14616 prune_uninit_phi_opnds_in_unrealizable_paths.
14617
14618 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14619
14620 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
14621 mspace): Remove deprecated options.
14622 * doc/invoke.texi (SH options): Remove -mspace.
14623
14624 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14625
14626 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
14627
14628 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14629
14630 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
14631 corresponding combine split pattern.
14632
14633 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14634
14635 PR target/58219
14636 * config/sh/predicates.md (long_displacement_mem_operand): New.
14637 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
14638 Add movi20, movi20s alternatives. Adjust length attribute for
14639 alternatives.
14640 (movsi_ie): Allow for any FPU. Adjust length attribute for
14641 alternatives.
14642 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
14643 attribute for alternatives.
14644 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
14645 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
14646 length attribute for alternatives.
14647
14648 2016-05-06 Richard Biener <rguenther@suse.de>
14649
14650 PR tree-optimization/70960
14651 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
14652
14653 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14654
14655 PR target/52933
14656 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
14657 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
14658
14659 2016-05-06 Marek Polacek <polacek@redhat.com>
14660
14661 PR sanitizer/70875
14662 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
14663
14664 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14665
14666 PR target/54089
14667 * config/sh/sh.md (*rotcr): Add another variant.
14668
14669 2016-05-06 Richard Biener <rguenther@suse.de>
14670
14671 PR middle-end/70931
14672 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
14673
14674 2016-05-06 Richard Biener <rguenther@suse.de>
14675
14676 PR middle-end/70941
14677 * fold-const.c (split_tree): Always convert to the original type
14678 before negating.
14679
14680 2016-05-06 Richard Biener <rguenther@suse.de>
14681
14682 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
14683 (fwprop_addr): Likewise.
14684
14685 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
14686
14687 PR target/70873
14688 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
14689 New prototype.
14690 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
14691 * config/i386/i386.md (push mem splitter): Use find_constant_src in
14692 the splitter condition.
14693 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
14694 the splitter condition.
14695 (FP float_extend load splitter): Ditto.
14696
14697 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
14698
14699 * config/i386/i386.md (peehole2 patterns): Change true_regnum
14700 to REGNO in all peephole2 patterns.
14701 (post-reload splitters): Change true_regnum to REGNO in
14702 post-reload splitters.
14703 (zero_extend splitters): Use general_reg_operand and
14704 nonimmediate_gr_operand predicates.
14705
14706 2016-05-05 Jakub Jelinek <jakub@redhat.com>
14707
14708 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
14709 v constraint instead of x.
14710
14711 2016-05-05 Alan Modra <amodra@gmail.com>
14712
14713 PR target/68662
14714 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
14715 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
14716 TARGET_NO_FP_IN_TOC for -mrelocatable.
14717 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
14718 TARGET_RELOCATABLE test.
14719 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14720 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14721 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
14722 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14723 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14724 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
14725 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14726 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14727 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
14728 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
14729 Likewise.
14730 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
14731 (rs6000_stack_info): Likewise.
14732 (rs6000_elf_asm_out_constructor): Likewise.
14733 (rs6000_elf_asm_out_destructor): Likewise.
14734 (rs6000_elf_declare_function_name): Likewise.
14735 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
14736 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
14737 Don't define.
14738
14739 2016-05-05 Alan Modra <amodra@gmail.com>
14740
14741 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
14742
14743 2016-05-05 Alan Modra <amodra@gmail.com>
14744
14745 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
14746 out-of-line gpr restore for one or two regs if that would add
14747 a save of lr.
14748
14749 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
14750
14751 PR target/70873
14752 * config/i386/i386.md
14753 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
14754 Change to post-epilogue_completed late splitter. Use sse_reg_operand
14755 as operand 0 predicate.
14756 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
14757 Ditto.
14758 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
14759 Ditto. Emit the pattern using RTX.
14760
14761 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
14762 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
14763 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
14764 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
14765 Ditto.
14766 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
14767 sse_reg_operand as operand 0 predicate.
14768
14769 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
14770 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
14771 instead of gen_rtx_REG.
14772 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
14773 Ditto.
14774
14775 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
14776
14777 * function.c (emit_use_return_register_into_block): Delete.
14778 (gen_return_pattern): Delete.
14779 (emit_return_into_block): Delete.
14780 (active_insn_between): Delete.
14781 (convert_jumps_to_returns): Delete.
14782 (emit_return_for_exit): Delete.
14783 (thread_prologue_and_epilogue_insns): Delete all code dealing with
14784 simple_return for shrink-wrapped blocks.
14785 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
14786 end of blocks that need one.
14787 (get_unconverted_simple_return): Delete.
14788 (convert_to_simple_return): Delete.
14789 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
14790 (convert_to_simple_return): Ditto.
14791
14792 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
14793
14794 * cfgcleanup.c (bb_is_just_return): New function.
14795 (try_optimize_cfg): Simplify jumps to return, branches to return,
14796 and branches around return.
14797
14798 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
14799
14800 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
14801 branch to a return.
14802
14803 2016-05-04 Jakub Jelinek <jakub@redhat.com>
14804
14805 PR c++/70906
14806 PR c++/70933
14807 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
14808 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
14809 assert flags & OEP_HASH_CHECK, instead of asserting it
14810 never happens. Handle TARGET_EXPR.
14811 * fold-const.c (operand_equal_p): For hash verification,
14812 or in OEP_HASH_CHECK into flags.
14813
14814 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
14815
14816 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
14817 comment.
14818 (compute_samebase_partition_bases): Fix typo.
14819
14820 2016-05-04 Jakub Jelinek <jakub@redhat.com>
14821
14822 * config/i386/sse.md (vec_interleave_highv8sf,
14823 vec_interleave_lowv8sf, vec_interleave_highv4df,
14824 vec_interleave_lowv4df): Remove constraints from expanders.
14825
14826 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
14827
14828 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
14829
14830 * tree-inline.c (expand_call_inline): Fix path dealing with
14831 making lhs of call statement undefined.
14832
14833 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
14834
14835 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
14836 Check availability on NODE, too.
14837 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
14838 (cgraph_node::call_for_symbol_and_aliases): Likewise.
14839 (varpool_node::call_for_symbol_and_aliase): Likewise.
14840 * ipa-pure-const.c (add_new_function): Analyze all bodies.
14841 (propagate_pure_const): Propagate across interposable functions, too.
14842 (skip_function_for_local_pure_const): Do not skip interposable bodies
14843 with aliases.
14844 (pass_local_pure_const::execute): Update.
14845
14846 2016-05-04 Marek Polacek <polacek@redhat.com>
14847
14848 * doc/invoke.texi: Document -Wdangling-else.
14849
14850 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
14851
14852 * config.gcc: Error out when conflicting multilib is detected. Do not
14853 loop over multilibs since no combination is legal.
14854
14855 2016-05-04 Alan Modra <amodra@gmail.com>
14856
14857 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
14858 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
14859 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
14860 Align .toc.
14861
14862 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
14863
14864 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
14865 Clean up p5600 comments.
14866
14867 2016-05-04 Richard Biener <rguenther@suse.de>
14868
14869 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
14870 constructor simplifications.
14871 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
14872
14873 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
14874
14875 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
14876 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
14877 result.set_rtx is null instead of aborting.
14878 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
14879 Always enable.
14880 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
14881 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
14882 *mov<mode>_store_postinc): New patterns.
14883
14884 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
14885
14886 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
14887 as commutative. Check both conversions are NOP.
14888 ((A & B) OP (C & B)): Remove.
14889
14890 2016-05-04 Alan Modra <amodra@gmail.com>
14891
14892 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
14893
14894 2016-05-04 Alan Modra <amodra@gmail.com>
14895
14896 PR target/70866
14897 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
14898 when cr2,3,4 are all fixed regs.
14899
14900 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
14901
14902 PR rtl-optimization/57193
14903 * opts.c (default_options_table): Revert OPT_frename_registers change.
14904 * doc/invoke.texi (-frename-registers, -O2): Likewise.
14905
14906 2016-05-03 Martin Sebor <msebor@redhat.com>
14907
14908 PR c++/66561
14909 * builtins.c (fold_builtin_FILE): New function.
14910 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
14911 (fold_builtin_0): Call them.
14912 * gimplify.c (gimplify_call_expr): Remove the handling of
14913 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
14914
14915 PR c++/66561
14916 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
14917 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
14918 constants.
14919
14920 PR c++/66639
14921 * doc/extend.texi (Function Names as Strings): Update __func__,
14922 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
14923 constants.
14924
14925 2016-05-03 Jakub Jelinek <jakub@redhat.com>
14926 Richard Biener <rguenther@suse.de>
14927
14928 PR tree-optimization/70916
14929 * tree-if-conv.c: Include cfganal.h.
14930 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
14931 and remove_fake_exit_edges around the optimization pass.
14932
14933 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
14934
14935 * cgraph.c (symbol_table::create_edge): Set inline_failed.
14936 (cgraph_edge::make_direct): Likewise.
14937 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
14938 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
14939 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
14940 (CIF_THUNK): New code.
14941 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
14942 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
14943 (compute_inline_parameters): Set inline_failed for thunks.
14944 (inline_analyze_function): Cleanup.
14945 * ipa-inline.c (can_inline_edge_p): Do not deal with
14946 call_stmt_cannot_inline_p.
14947 (can_early_inline_edge_p): Likewise.
14948 (early_inliner): Initialize inline_failed.
14949 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
14950
14951 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
14952
14953 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
14954 from nonimm_ssenomem_operand.
14955 (nonimm_ssenomem_operand): New predicate.
14956 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
14957 as operand 0 predicate.
14958 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
14959 Disable unsupported alternatives using "enabled" attribute.
14960 Use register_ssemem_operand as operand 0 predicate.
14961 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
14962
14963 2016-05-03 Marek Polacek <polacek@redhat.com>
14964
14965 PR c/70859
14966 * input.c (expansion_point_location): New function.
14967 * input.h (expansion_point_location): Declare.
14968
14969 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
14970
14971 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
14972 occurence with frame_offset_ ones.
14973
14974 2016-05-03 Alan Modra <amodra@gmail.com>
14975
14976 PR rtl-optimization/70890
14977 * ira.c (combine_and_move_insns): When moving def_insn, remove
14978 equivs on use_insn.
14979
14980 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
14981
14982 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
14983 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
14984 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
14985 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
14986
14987 2016-05-03 Alan Modra <amodra@gmail.com>
14988
14989 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
14990 for SAVE_MULTIPLE/STORE_MULTIPLE.
14991
14992 2016-05-03 Jakub Jelinek <jakub@redhat.com>
14993
14994 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
14995 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
14996
14997 2016-05-03 Richard Biener <rguenther@suse.de>
14998
14999 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
15000 default true.
15001 (gimplify_arg): Likewise.
15002 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
15003 re-writing the result to a decl if required.
15004 (internal_get_tmp_var): Add allow_ssa parameter
15005 and override into_ssa with it.
15006 (get_formal_tmp_var): Adjust.
15007 (get_initialized_tmp_var): Add allow_ssa parameter.
15008 (gimplify_arg): Add allow_ssa parameter and avoid generating
15009 SSA names for the result false.
15010 (gimplify_call_expr): If the call may return twice do not
15011 gimplify parameters into SSA.
15012 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
15013 (gimplify_modify_expr): Adjust assert. For noreturn calls
15014 with a SSA name LHS adjust its def.
15015 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
15016 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
15017 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
15018 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
15019 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
15020 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
15021 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
15022 (optimize_target_teams): Do not allow SSA names for clause operands.
15023 (gimplify_expr): Likewise for where we mark the result addressable.
15024 * passes.def (pass_init_datastructures): Remove.
15025 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
15026 (rewrite_stmt): Likewise.
15027 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
15028 (replace_locals_op): Replace SSA names.
15029 (copy_gimple_seq_and_replace_locals): Init src_cfun.
15030 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
15031 * cgraph.c (release_function_body): Free CFG annotations only
15032 when we have a CFG. Simplify.
15033 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
15034 force_gimple_operand instead of get_initialized_tmp_var.
15035 * tree-pass.h (make_pass_init_datastructures): Remove.
15036 * tree-ssa.c (execute_init_datastructures): Remove.
15037 (pass_data_init_datastructures): Likewise.
15038 (class pass_init_datastructures): Likewise.
15039 (make_pass_init_datastructures): Likewise.
15040 * omp-low.c (create_omp_child_function): Init SSA data structures.
15041 (grid_expand_target_grid_body): Likewise.
15042 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
15043 name before adding it to names_to_release.
15044 (remove_bb): Always release SSA defs.
15045 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
15046 before dereferencing it.
15047 * cgraphunit.c (init_lowered_empty_function): Always
15048 int SSA data structures.
15049 * tree-ssanames.c (release_defs): Remove assert that we are in
15050 SSA form.
15051 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
15052
15053 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15054 Uros Bizjak <ubizjak@gmail.com>
15055
15056 PR rtl-optimization/70467
15057 * config/i386/predicates.md (x86_64_hilo_int_operand,
15058 x86_64_hilo_general_operand): New predicates.
15059 * config/i386/constraints.md (Wd): New constraint.
15060 * config/i386/i386.md (mode attr di): Use Wd instead of e.
15061 (general_hilo_operand): New mode attr.
15062 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
15063 instead of <general_operand>.
15064 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
15065 x86_64_hilo_general_operand instead of <general_operand>.
15066
15067 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15068
15069 PR tree-optimization/70916
15070 * tree-if-conv.c (constant_or_ssa_name): Removed.
15071 (fold_build_cond_expr): Use is_gimple_val instead of
15072 constant_or_ssa_name.
15073
15074 PR tree-optimization/70916
15075 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
15076 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
15077
15078 PR target/49244
15079 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
15080 (optimize_atomic_bit_test_and): New function.
15081 (pass_fold_builtins::execute): Use it.
15082 * optabs.def (atomic_bit_test_and_set_optab,
15083 atomic_bit_test_and_complement_optab,
15084 atomic_bit_test_and_reset_optab): New optabs.
15085 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
15086 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
15087 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
15088 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
15089 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
15090 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
15091 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
15092 * doc/md.texi (atomic_bit_test_and_set@var{mode},
15093 atomic_bit_test_and_complement@var{mode},
15094 atomic_bit_test_and_reset@var{mode}): Document.
15095 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
15096 atomic_bit_test_and_complement<mode>,
15097 atomic_bit_test_and_reset<mode>): New expanders.
15098 (atomic_bit_test_and_set<mode>_1,
15099 atomic_bit_test_and_complement<mode>_1,
15100 atomic_bit_test_and_reset<mode>_1): New insns.
15101
15102 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
15103
15104 PR rtl-optimization/70687
15105 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
15106 instead of unsigned HOST_WIDE_INT.
15107
15108 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
15109
15110 PR rtl-optimization/44281
15111 * hard-reg-set.h (struct target_hard_regs): New field
15112 x_fixed_nonglobal_reg_set.
15113 (fixed_nonglobal_reg_set): New macro.
15114 * reginfo.c (init_reg_sets_1): Initialize it.
15115 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
15116 of fixed_reg_set.
15117 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
15118
15119 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15120
15121 PR tree-optimization/56541
15122 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
15123 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
15124 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
15125 (any_complicated_phi): new static variable.
15126 (aggressive_if_conv): delete.
15127 (if_convertible_phi_p): support phis with more than two arguments.
15128 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
15129 critical pred edges.
15130 (ifcvt_split_critical_edges): support phis with more than two
15131 arguments by checking new parameter. only split critical edges
15132 if needed.
15133 (tree_if_conversion): handle simd pragma marked loop using new
15134 local variable aggressive_if_conv. check any_complicated_phi.
15135
15136 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15137
15138 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
15139 before using it.
15140
15141 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15142
15143 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
15144 cbase.
15145
15146 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
15147
15148 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
15149 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
15150 define_insn_and_split.
15151 (mulsi3_i): New define_insn_and_split.
15152 (mulsi3_call): Convert to define_insn.
15153 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
15154 Remove constraints.
15155
15156 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15157
15158 * machmode.h (mode_complex): Add support to give the complex mode
15159 for a given mode.
15160 (GET_MODE_COMPLEX_MODE): Likewise.
15161 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
15162 stored by build_complex_type and gfc_build_complex_type instead of
15163 trying to figure out the appropriate mode based on the size. Raise
15164 an assertion error, if the type was not set.
15165 * genmodes.c (struct mode_data): Add field for the complex type of
15166 the given type.
15167 (blank_mode): Likewise.
15168 (make_complex_modes): Remember the complex mode created in the
15169 base type.
15170 (emit_mode_complex): Write out the mode_complex array to map a
15171 type mode to the complex version.
15172 (emit_insn_modes_c): Likewise.
15173 * tree.c (build_complex_type): Set the complex type to use before
15174 calling layout_type.
15175 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
15176 support for __float128 complex datatypes.
15177 (rs6000_hard_regno_mode_ok): Likewise.
15178 (rs6000_setup_reg_addr_masks): Likewise.
15179 (rs6000_complex_function_value): Likewise.
15180 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
15181 __float128 and __ibm128 complex.
15182 (FLOAT128_IBM_P): Likewise.
15183 (ALTIVEC_ARG_MAX_RETURN): Likewise.
15184 * doc/extend.texi (Additional Floating Types): Document that
15185 -mfloat128 must be used to enable __float128. Document complex
15186 __float128 and __ibm128 support.
15187
15188 2016-05-02 Jakub Jelinek <jakub@redhat.com>
15189
15190 PR target/49244
15191 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
15192 char/short arguments promoted to int because of promote_prototypes.
15193
15194 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
15195
15196 * config/i386/predicates.md (register_ssemem_operand): New predicate.
15197 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
15198 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
15199 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
15200 alternatives using "enabled" attribute. Use register_ssemem_operand
15201 as operand 1 predicate.
15202 (*cmpi<unord>xf_i387): Split XFmode pattern from
15203 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
15204 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
15205 *absneg<mode>2_i387. Disable unsupported alternatives using
15206 "enabled" attribute.
15207 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
15208
15209 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
15210
15211 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
15212 marker.
15213 (oacc_loop_process): Check mask for loop termination.
15214
15215 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
15216
15217 * cif-code.def (CIF_THUNK): Add.
15218 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
15219 accidental change.
15220
15221 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
15222
15223 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
15224 (dump_inline_summary): Dump it.
15225 (fp_expression_p): New predicate.
15226 (estimate_function_body_sizes): Use it.
15227 (inline_merge_summary): Merge fp_expressions.
15228 (inline_read_section): Read fp_expressions.
15229 (inline_write_summary): Write fp_expressions.
15230 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
15231 codegen boundary if either caller or callee is !fp_expressions.
15232 * ipa-inline.h (inline_summary): Add fp_expressions.
15233 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
15234 to fp_expressions be sure the fp generation flags are updated.
15235
15236 2016-05-02 Jakub Jelinek <jakub@redhat.com>
15237
15238 PR rtl-optimization/70467
15239 * cse.c (cse_insn): Handle no-op MEM moves after folding.
15240
15241 PR rtl-optimization/70467
15242 * ipa-pure-const.c (check_call): Handle internal calls even in
15243 ipa mode like in local mode.
15244
15245 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
15246
15247 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
15248
15249 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
15250
15251 * match.pd (X u< X, X u> X): New transformations.
15252
15253 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
15254
15255 * flag-types.h (enum warn_strict_overflow_code): Move ...
15256 * coretypes.h: ... here.
15257 * fold-const.h (fold_overflow_warning): Declare.
15258 * fold-const.c (fold_overflow_warning): Make non-static.
15259 (fold_comparison): Move the transformation of X +- C1 CMP C2
15260 into X CMP C2 -+ C1 ...
15261 * match.pd: ... here.
15262 * gimple-fold.c (fold_stmt_1): Protect with
15263 fold_defer_overflow_warnings.
15264
15265 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
15266
15267 * omp-low.c (struct oacc_loop): Add 'inner' field.
15268 (new_oacc_loop_raw): Initialize it to zero.
15269 (oacc_loop_fixed_partitions): Initialize it.
15270 (oacc_loop_auto_partitions): Partition outermost loop to outermost
15271 available partitioning.
15272
15273 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15274
15275 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
15276 register_operand.
15277 (umulsidi3): Likewise.
15278 (indirect_jump): Fix jump instruction assembly patterns.
15279
15280 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
15281
15282 PR target/70860
15283 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
15284 (nvptx_function_value): Assert non-NULL cfun.
15285
15286 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
15287
15288 PR rtl-optimization/70886
15289 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
15290
15291 * cselib.h (rtx_equal_for_cselib_1): Declare.
15292 (rtx_equal_for_cselib_p: New inline function.
15293 * cselib.c (rtx_equal_for_cselib_p): Delete.
15294 (rtx_equal_for_cselib_1): Make public.
15295
15296 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
15297
15298 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
15299 (register_mixssei387nonimm_operand): Remove predicate.
15300 * config/i386/i386.md (*fop_<mode>_comm): Merge from
15301 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
15302 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
15303 for TARGET_MIX_SSE_I387 alternatives.
15304 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
15305 Disable unsupported alternatives using "enabled" attribute. Use
15306 nonimm_ssenomem_operand as operand 1 predicate. Also check
15307 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
15308
15309 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15310
15311 * tree.c (cst_and_fits_in_hwi): Simplify.
15312
15313 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15314
15315 * tree.h (wi::to_wide): New function.
15316 * expr.c (expand_expr_real_1): Use wi::to_wide.
15317 * fold-const.c (int_const_binop_1): Likewise.
15318 (extract_muldiv_1): Likewise.
15319
15320 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15321
15322 * wide-int.h: Update offset_int and widest_int documentation.
15323 (WI_SIGNED_SHIFT_RESULT): New macro.
15324 (wi::binary_shift): Define signed_shift_result_type for
15325 shifts on offset_int- and widest_int-like types.
15326 (generic_wide_int): Support <<= and >>= if << and >> are supported.
15327 * tree.h (int_bit_position): Use shift operators instead of wi::
15328 shifts.
15329 * alias.c (adjust_offset_for_component_ref): Likewise.
15330 * expr.c (get_inner_reference): Likewise.
15331 * fold-const.c (fold_comparison): Likewise.
15332 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
15333 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
15334 * tree-dfa.c (get_ref_base_and_extent): Likewise.
15335 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
15336 (stmt_kills_ref_p): Likewise.
15337 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
15338 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
15339 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15340 (ao_ref_init_from_vn_reference): Likewise.
15341
15342 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15343
15344 * wide-int.h: Update offset_int and widest_int documentation.
15345 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
15346 (wi::binary_traits): Allow ordered comparisons between offset_int and
15347 offset_int, between widest_int and widest_int, and between either
15348 of these types and basic C types.
15349 (operator <, <=, >, >=): Define for the same combinations.
15350 * tree.h (tree_int_cst_lt): Use comparison operators instead
15351 of wi:: comparisons.
15352 (tree_int_cst_le): Likewise.
15353 * gimple-fold.c (fold_array_ctor_reference): Likewise.
15354 (fold_nonarray_ctor_reference): Likewise.
15355 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
15356 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
15357 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
15358 * tree-sra.c (completely_scalarize): Likewise.
15359 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
15360 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
15361 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
15362 (check_for_binary_op_overflow): Likewise.
15363 (search_for_addr_array): Likewise.
15364 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
15365
15366 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15367
15368 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
15369 (arc_save_restore): Likewise.
15370 (arc_dwarf_register_span): Likewise.
15371 (arc_output_pic_addr_const): Initialize suffix variable.
15372
15373 2016-05-02 Martin Liska <mliska@suse.cz>
15374
15375 * symbol-summary.h (function_summary::function_summary):
15376 Remove checking assert for all cgraph nodes.
15377 (function_summary::get): Check summary_uid.
15378 (symtab_insertion): Check summary_uid.
15379
15380 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15381
15382 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
15383 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
15384 bmaskn instruction.
15385 (arc_dwarf_register_span): Remove enum keyword.
15386 (compact_memory_operand_p): New function.
15387 * config/arc/arc.h (reg_class): Add code density register classes.
15388 (REG_CLASS_NAMES): Likewise.
15389 (REG_CLASS_CONTENTS): Likewise.
15390 * config/arc/arc.md (*movqi_insn): Add code density instructions.
15391 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
15392 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
15393 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
15394 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
15395 constraints.
15396 (h, Rcd, Rsd, Rzd): New register constraints.
15397 (T): Use compact_memory_operand_p function.
15398 * config/arc/predicates.md (compact_load_memory_operand): Remove.
15399
15400 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
15401
15402 * config/sh/sh.md (*negnegt, *movtt): Remove.
15403
15404 2016-05-02 Marek Polacek <polacek@redhat.com>
15405 Tom de Vries <tom@codesourcery.com>
15406
15407 PR tree-optimization/70700
15408 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
15409 bigger than FIRST_REF_NODE.
15410
15411 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
15412
15413 PR target/52898
15414 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
15415 TARGET_CMPEQDI_T.
15416 (prepare_cbranch_operands): Don't use scratch register. Assume that
15417 function is used when pseudos can be created.
15418 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
15419 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
15420 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
15421 define_expand. Allow it only when pseudos can be created.
15422 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
15423
15424 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
15425
15426 * config/i386/constraints.md (BC): Only allow -1 operands.
15427 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
15428 Add "enabled" attribute. Update XI mode attribute calculation.
15429 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
15430 (*movoi_internal_avx): Update XI mode attribute calculation.
15431 (*movti_internal): Ditto.
15432
15433 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
15434
15435 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
15436 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
15437
15438 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
15439
15440 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
15441 statement on instruction code. Remove trailing spaces.
15442 (altivec_expand_stv_builtin): Likewise.
15443
15444 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
15445
15446 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
15447 (TARGET_FPU_DOUBLE): Simplify.
15448 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
15449 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
15450 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
15451 with 'TARGET_FPU_DOUBLE'.
15452 * config/sh/sh.md: Likewise.
15453
15454 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
15455
15456 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
15457 SH_DIV_STR_FOR_SIZE): Remove.
15458 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
15459 SH_DIV_STR_FOR_SIZE): Remove.
15460
15461 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
15462
15463 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
15464 logical_reg_operand): Delete.
15465 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
15466 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
15467 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
15468 match_operand and match_test.
15469 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
15470 variables on their first use. Return bool values.
15471 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
15472 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
15473 arith_reg_operand for input operand. Remove empty constraints.
15474 (xorsi3): Delete.
15475 (*xorsi3_compact): Rename to xorsi3.
15476 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
15477 (*zero_extend<mode>si2_disp_mem): Update comment.
15478 (mov_nop): Delete.
15479
15480 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
15481
15482 * config/sh/t-sh: Remove SH5 support.
15483 * config.gcc: Likewise.
15484 * configure: Likewise.
15485
15486 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15487
15488 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
15489
15490 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
15491
15492 * config/sh/sh.c (register_sh_passes, sh_option_override,
15493 sh_print_operand, prepare_move_operands,
15494 sh_can_follow_jump): Remove TARGET_SH1 checks.
15495 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
15496 PROMOTE_MODE): Likewise.
15497 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
15498 movdi): Likewise.
15499
15500 2016-04-30 Alan Modra <amodra@gmail.com>
15501
15502 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
15503 restoring when fixed_reg_p, but allow out-of-line or stmw save.
15504 Check for user regs later to avoid unnecessary looping over regs.
15505 Merge user reg check with non-saved reg check. Don't force
15506 inline VR restore when static chain used.
15507 (rs6000_frame_related): Omit eh_frame info for user regs when
15508 saving.
15509 (fixed_regs_p): Delete.
15510
15511 2016-04-30 Alan Modra <amodra@gmail.com>
15512
15513 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
15514 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
15515 Update all uses.
15516
15517 2016-04-30 Alan Modra <amodra@gmail.com>
15518
15519 PR target/69645
15520 * config/rs6000/rs6000.c (fixed_reg_p): New function.
15521 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
15522 Update all uses.
15523
15524 2016-04-30 Alan Modra <amodra@gmail.com>
15525
15526 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
15527 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
15528 flag_pic test for Darwin.
15529
15530 2016-04-30 Alan Modra <amodra@gmail.com>
15531
15532 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
15533 throw_calls_crossed.
15534 (REG_FREQ_CALLS_CROSSED): Delete.
15535 (REG_N_THROWING_CALLS_CROSSED): Delete.
15536 * regstat.c (regstat_bb_compute_ri): Don't calculate
15537 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
15538 (dump_reg_info): Don't print call cross frequency.
15539 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
15540 and REG_N_THROWING_CALLS_CROSSED.
15541
15542 2016-04-30 Alan Modra <amodra@gmail.com>
15543
15544 * regs.h (struct reg_info_t): Delete live_length.
15545 (REG_LIVE_LENGTH): Delete macro.
15546 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
15547 local_live, local_processed and local_live_last_luid params.
15548 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
15549 Formatting fixes.
15550 (regstat_compute_ri): Adjust for above. Don't set
15551 REG_LIVE_LENGTH.
15552 (dump_reg_info): Don't print live length.
15553 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
15554 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
15555 Localize loop_depth var.
15556
15557 2016-04-30 Alan Modra <amodra@gmail.com>
15558
15559 * ira.c (enum valid_equiv): New.
15560 (validate_equiv_mem): Return enum.
15561 (update_equiv_mem): Create replacement in more cases.
15562 (add_store_equivs): Update validate_equiv_mem call.
15563
15564 2016-04-30 Alan Modra <amodra@gmail.com>
15565
15566 * ira.c (combine_and_move_insns): Rather than scanning insns,
15567 use DF infrastucture to find use and def insns.
15568
15569 2016-04-30 Alan Modra <amodra@gmail.com>
15570
15571 ira.c (combine_and_move_insns): Move invariant conditions..
15572 (ira.c): ..to here. Call combine_and_move_insns before
15573 add_store_equivs. Call grow_reg_equivs later. Allocate
15574 req_equiv later using max_reg_num() rather than global max_regno.
15575 (contains_replace_regs): Delete.
15576 (add_store_equivs): Remove contains_replace_regs test.
15577
15578 2016-04-30 Alan Modra <amodra@gmail.com>
15579
15580 * ira.c (struct equiv_mem_data): New.
15581 (equiv_mem, equiv_mem_modified): Delete static vars.
15582 (validate_equiv_mem_from_store): Use "data" param to communicate..
15583 (validate_equiv_mem): ..from here.
15584
15585 2016-04-30 Alan Modra <amodra@gmail.com>
15586
15587 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
15588 split out from..
15589 (update_reg_equivs): ..here. Move allocation and freeing of
15590 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
15591 end_alias_analysis to..
15592 (ira): ..here.
15593
15594 2016-04-30 Alan Modra <amodra@gmail.com>
15595
15596 * ira.c (pdx_subregs): Delete.
15597 (struct equivalence): Add pdx_subregs field.
15598 (set_paradoxical_subreg): Remove pdx_subregs param. Update
15599 pdx_subregs access.
15600 (update_equiv_regs): Don't create or free pdx_subregs. Update
15601 pdx_subregs access.
15602
15603 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15604
15605 * config/rs6000/altivec.h: Change definitions of vec_xl and
15606 vec_xst.
15607 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
15608 (LD_ELEMREV_V2DI): New.
15609 (LD_ELEMREV_V4SF): New.
15610 (LD_ELEMREV_V4SI): New.
15611 (LD_ELEMREV_V8HI): New.
15612 (LD_ELEMREV_V16QI): New.
15613 (ST_ELEMREV_V2DF): New.
15614 (ST_ELEMREV_V2DI): New.
15615 (ST_ELEMREV_V4SF): New.
15616 (ST_ELEMREV_V4SI): New.
15617 (ST_ELEMREV_V8HI): New.
15618 (ST_ELEMREV_V16QI): New.
15619 (XL): New.
15620 (XST): New.
15621 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15622 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
15623 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
15624 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
15625 (altivec_expand_builtin): Add handling for
15626 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
15627 (rs6000_invalid_builtin): Add error-checking for
15628 RS6000_BTM_P9_VECTOR.
15629 (altivec_init_builtins): Define builtins used to implement vec_xl
15630 and vec_xst.
15631 (rs6000_builtin_mask_names): Define power9-vector.
15632 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
15633 (RS6000_BTM_P9_VECTOR): Define.
15634 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
15635 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
15636 (vsx_ld_elemrev_v2df): Likewise.
15637 (vsx_ld_elemrev_v4sf): Likewise.
15638 (vsx_ld_elemrev_v4si): Likewise.
15639 (vsx_ld_elemrev_v8hi): Likewise.
15640 (vsx_ld_elemrev_v16qi): Likewise.
15641 (vsx_st_elemrev_v2df): Likewise.
15642 (vsx_st_elemrev_v2di): Likewise.
15643 (vsx_st_elemrev_v4sf): Likewise.
15644 (vsx_st_elemrev_v4si): Likewise.
15645 (vsx_st_elemrev_v8hi): Likewise.
15646 (vsx_st_elemrev_v16qi): Likewise.
15647 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
15648 grammar.
15649
15650 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
15651
15652 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
15653 out into ...
15654 (simplify_control_stmt_condition_1): ... here. Recurse into
15655 BIT_AND_EXPRs and BIT_IOR_EXPRs.
15656
15657 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
15658
15659 PR target/69810
15660 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
15661 (zero_extendqi<mode>2_dot): Revert earlier conversion from
15662 define_insn_and_split to define_insn.
15663 (zero_extendqi<mode>2_dot2): Same.
15664 (extendqi<mode>2_dot): Same.
15665 (extendqi<mode>2_dot2): Same.
15666
15667 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15668
15669 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
15670 (probe_stack): New expander.
15671 (probe_stack_<mode>): New insn pattern.
15672
15673 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15674
15675 * config/i386/i386.md
15676 (operations with memory inputs setting flags peephole2):
15677 Remove uneeded REG_P checks. Cleanup pattern generation.
15678
15679 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
15680
15681 * tree-vect-loop.c (vect_transform_loop): Fix
15682 nb_iterations_upper_bound computation for vectorized loop.
15683
15684 2016-04-29 Marek Polacek <polacek@redhat.com>
15685 Jakub Jelinek <jakub@redhat.com>
15686
15687 PR sanitizer/70342
15688 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
15689 TARGET_EXPR_SLOT as a base.
15690
15691 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
15692
15693 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
15694 with 'rCm2' constraints to limit possible immediate size.
15695 (*load_zeroextendqisi_update): Likewise.
15696 (*load_signextendqisi_update): Likewise.
15697 (*loadhi_update): Likewise.
15698 (*load_zeroextendhisi_update): Likewise.
15699 (*load_signextendhisi_update): Likewise.
15700 (*loadsi_update): Likewise.
15701 (*loadsf_update): Likewise.
15702
15703 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15704
15705 * config/i386/predicates.md (constm1_operand): Fix comparison.
15706
15707 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
15708
15709 * testsuite/gcc.target/arc/ieee_eq.c: New test.
15710
15711 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
15712
15713 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
15714 remaining SH5 related settings.
15715 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
15716 shmedia_prepare_call_address): Delete.
15717 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
15718 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
15719 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
15720 UNSUPPORTED_SH2A): Remove m5 checks.
15721 (sh_divide_strategy_e): Remove SH5 division strategies.
15722 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
15723 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
15724
15725 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
15726
15727 * config/s390/s390.c (s390_rtx_costs): Update documentation.
15728
15729 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15730
15731 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
15732 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
15733 Change lder to ldr.
15734 * config/s390/vector.md ("mov<mode>"): Likewise.
15735
15736 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
15737
15738 * config/s390/constraints.md ("U", "W"): Invoke
15739 s390_mem_constraint with "ZR" and "ZT".
15740 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
15741 addresses when using LRA. Accept also short displacements for S
15742 and T constraints. Do not check for long displacement target for
15743 S and T constraints.
15744 (s390_mem_constraint): Remove handling of U and W constraints.
15745 * config/s390/s390.md (various patterns): Remove the short
15746 displacement constraints (Q and R) if a long displacement
15747 constraint is present. Add longdisp as required CPU capability.
15748 * config/s390/vector.md: Likewise.
15749 * config/s390/vx-builtins.md: Likewise.
15750
15751 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15752
15753 PR target/60040
15754 * reload1.c (reload): Call finish_spills before
15755 restarting reload loop. Skip select_reload_regs
15756 if update_eliminables_and_spill returns true.
15757
15758 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
15759
15760 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
15761 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
15762 (umulhisi3_imm): Update predicates and constraint letters.
15763 (umulhisi3_reg): Declare instruction as commutative.
15764 * config/arc/constraints.md (J12, J16): New constraints.
15765 * config/arc/predicates.md (short_unsigned_const_operand): New
15766 predicate.
15767 (arc_short_operand): Likewise.
15768 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
15769
15770 2016-04-29 Richard Biener <rguenther@suse.de>
15771
15772 PR tree-optimization/13962
15773 PR tree-optimization/65686
15774 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
15775 * tree-ssa-alias.c (ptrs_compare_unequal): New function
15776 using PTA to compare pointers.
15777 * match.pd: Add pattern for pointer equality compare simplification
15778 using ptrs_compare_unequal.
15779
15780 2016-04-29 Richard Biener <rguenther@suse.de>
15781
15782 * stor-layout.c (layout_type): Do not build a pointer-to-element
15783 type for arrays.
15784
15785 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15786
15787 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
15788 Use SWI mode iterator. Use general_reg_operand predicate.
15789 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
15790 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
15791 predicates.
15792
15793 2016-04-29 Jakub Jelinek <jakub@redhat.com>
15794
15795 PR middle-end/70843
15796 * fold-const.c (operand_equal_p): Don't verify hash value equality
15797 if arg0 == arg1.
15798 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
15799 and OMP_CLAUSE.
15800
15801 2016-04-28 Jakub Jelinek <jakub@redhat.com>
15802
15803 PR target/70858
15804 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
15805 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
15806 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
15807 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
15808 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
15809
15810 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15811
15812 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
15813 to info. Don't initialize separate fields to 0. Clean up
15814 formatting a bit.
15815
15816 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
15817
15818 * config/i386/i386.md (peephole2s for operations with memory inputs):
15819 Use SWI mode iterator.
15820 (peephole2s for operations with memory outputs): Ditto.
15821 Do not check for stack checking probe.
15822
15823 (probe_stack): Remove expander.
15824
15825 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15826 Andrew Burgess <andrew.burgess@embecosm.com>
15827
15828 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
15829 operands as 32-bits.
15830
15831 2016-04-28 Jason Merrill <jason@redhat.com>
15832
15833 * gdbinit.in: Skip line-map.h.
15834
15835 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15836 Andrew Burgess <andrew.burgess@embecosm.com>
15837
15838 * config/arc/arc.c (arc_conditional_register_usage): Take
15839 TARGET_RRQ_CLASS into account.
15840 (arc_print_operand): Support printing 'p' and 's' operands.
15841 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
15842 as 0.
15843 (TARGET_RRQ_CLASS): Define.
15844 (IS_POWEROF2_OR_0_P): Define.
15845 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
15846 alternatives.
15847 (*tst_movb): New define_insn.
15848 (*tst): Avoid recognition if it could prevent '*tst_movb'
15849 combination; replace c/CnL with c/Chs alternative.
15850 (*tst_bitfield_tst): New define_insn.
15851 (*tst_bitfield_asr): New define_insn.
15852 (*tst_bitfield): New define_insn.
15853 (andsi3_i): Add Rrq variant.
15854 (extzv): New define_expand.
15855 (insv): New define_expand.
15856 (*insv_i): New define_insn.
15857 (*movb): New define_insn.
15858 (*movb_signed): New define_insn.
15859 (*movb_high): New define_insn.
15860 (*movb_high_signed): New define_insn.
15861 (*movb_high_signed + 1): New define_split pattern.
15862 (*mrgb): New define_insn.
15863 (*mrgb + 1): New define_peephole2 pattern.
15864 (*mrgb + 2): New define_peephole2 pattern.
15865 * config/arc/arc.opt (mbitops): New option for nps400, uses
15866 TARGET_NPS_BITOPS_DEFAULT.
15867 * config/arc/constraints.md (q): Make register class conditional.
15868 (Rrq): New register constraint.
15869 (Chs): New constraint.
15870 (Clo): New constraint.
15871 (Chi): New constraint.
15872 (Cbf): New constraint.
15873 (Cbn): New constraint.
15874 (C18): New constraint.
15875 (Cbi): New constraint.
15876
15877 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15878
15879 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
15880 dst->popcount.
15881 (bitmap_intersection_of_preds): Ditto.
15882 (bitmap_union_of_succs): Ditto.
15883 (bitmap_union_of_preds): Ditto.
15884 * sbitmap.c (do_popcount): Delete.
15885 (BITMAP_DEBUGGING): Delete.
15886 (sbitmap_verify_popcount): Delete.
15887 (sbitmap_alloc): Don't initialize the popcount field.
15888 (sbitmap_alloc_with_popcount): Delete.
15889 (sbitmap_resize): Don't resize the popcount array.
15890 (sbitmap_vector_alloc): Don't initialize the popcount field.
15891 (bitmap_copy): Don't copy the popcount array.
15892 (bitmap_clear): Don't clear the popcount array.
15893 (bitmap_clear): Delete the popcount array handling.
15894 (bitmap_ior_and_compl): Delete the popcount assert.
15895 (bitmap_not): Ditto.
15896 (bitmap_and_compl): Ditto.
15897 (bitmap_and): Delete the popcount array handling.
15898 (bitmap_xor): Ditto.
15899 (bitmap_ior): Ditto.
15900 (bitmap_or_and): Delete the popcount assert.
15901 (bitmap_and_or): Ditto.
15902 (popcount_table): Delete.
15903 (sbitmap_elt_popcount): Delete.
15904 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
15905 (bitmap_set_bit): Delete the popcount assert.
15906 (bitmap_clear_bit): Ditto.
15907 (sbitmap_free): Don't free the popcount array.
15908 (sbitmap_alloc_with_popcount): Delete declaration.
15909 (sbitmap_popcount): Ditto.
15910
15911 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15912 Andrew Burgess <andrew.burgess@embecosm.com>
15913
15914 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
15915 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
15916 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
15917 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
15918 * config/arc/arc.opt (mcmem): New option.
15919 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
15920 supply length for r/m alternative.
15921 (*extendqisi2_ac): Likewise.
15922 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
15923 r/Uex alternative.
15924 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
15925 (movhi_insn): Likewise.
15926 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
15927 (*zero_extendqihi2_i): Add r/Ucm alternative.
15928 (*zero_extendqisi2_ac): Likewise.
15929 (*zero_extendhisi2_i): Likewise.
15930 * config/arc/constraints.md (Uex): New memory constraint.
15931 (Ucm): New define_constraint.
15932 * config/arc/predicates.md (long_immediate_loadstore_operand):
15933 Return 0 for MEM with cmem_address address.
15934 (cmem_address_0): New predicates.
15935 (cmem_address_1): Likewise.
15936 (cmem_address_2): Likewise.
15937 (cmem_address): Likewise.
15938
15939 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15940
15941 * config/rs6000/rs6000.c (machine_function): Rename
15942 insn_chain_scanned_p to spe_insn_chain_scanned_p.
15943 (rs6000_stack_info): Adjust.
15944
15945 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15946 Andrew Burgess <andrew.burgess@embecosm.com>
15947
15948 * config/arc/constraints.md (Usd): Convert to define_constraint.
15949 (Us<): Likewise.
15950 (Us>): Likewise.
15951
15952 2016-04-28 Jakub Jelinek <jakub@redhat.com>
15953
15954 PR target/70821
15955 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
15956 Add new peephole2 where the first insn is *mov<mode>_or instead of
15957 *mov<mode>_internal.
15958
15959 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
15960
15961 * tracer.c (bb_seen): Make static.
15962
15963 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
15964
15965 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
15966 support, setup defaults.
15967 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
15968 * config/arc/arc.c (arc_init): Add NPS400 support.
15969 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
15970 (TARGET_ARC700): NPS400 is also an ARC700.
15971 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
15972
15973 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15974
15975 PR target/70668
15976 * config/nds32/nds32.md (casesi): Don't access the operands array
15977 out of bounds.
15978
15979 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
15980
15981 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
15982 (or $-1,reg peephole2): Ditto.
15983 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
15984
15985 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
15986
15987 * doc/extend.texi (Common Function Attributes) [optimize]:
15988 Discourage use of the optimize attribute.
15989
15990 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
15991
15992 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
15993 special case builtin.
15994 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
15995 ALTIVEC_BUILTIN_VEC_ADDE.
15996 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
15997 support for ALTIVEC_BUILTIN_VEC_ADDE.
15998 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
15999 for __builtin_vec_adde.
16000
16001 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16002
16003 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
16004 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
16005
16006 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16007
16008 PR testsuite/70595
16009 * doc/sourcebuild.texi (Effective-Target Keywords, Other
16010 attributes): Document cilkplus_runtime.
16011
16012 2016-04-28 Martin Jambor <mjambor@suse.cz>
16013
16014 * tree-cfg.c (verify_expr): Verify that local declarations belong to
16015 this function. Call verify_expr on MEM_REFs and bases of other
16016 handled_components.
16017
16018 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16019
16020 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
16021 for WORD_REGISTER_OPERATIONS to runtime check.
16022
16023 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16024
16025 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
16026
16027 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16028
16029 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
16030 big-endian compilation.
16031 * config/arc/arc.md (addf3): Likewise.
16032 (subdf3): Likewise.
16033 (muldf3): Likewise.
16034
16035 2016-04-28 Richard Biener <rguenther@suse.de>
16036
16037 PR tree-optimization/70840
16038 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
16039 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
16040 Mark x * pow(x,c) -> pow(x,c+1) commutative.
16041 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
16042
16043 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16044
16045 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
16046 and explain why in a comment.
16047
16048 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16049
16050 * config/arc/arc.md (cpu_facility): Add fpx variant.
16051 (subdf3): Prohibit use reverse sub when assist operations option
16052 is enabled.
16053 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
16054 instructions only when FPX is enabled.
16055 * testsuite/gcc.target/arc/trsub.c: New test.
16056
16057 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16058
16059 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
16060 mult_operator when calculating "type" attribute.
16061 (*fop_<mode>_1_i387): Ditto.
16062 (*fop_xf_1_i387): Ditto.
16063 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
16064 Use std::swap to swap operands. Use RTL expressions to generate
16065 converted pattern.
16066
16067 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16068 Joern Rennecke <joern.rennecke@embecosm.com>
16069
16070 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
16071 declaration.
16072 (emit_pic_move): Remove.
16073 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
16074 * config/arc/arc.c (emit_pic_move): Removed.
16075 (TARGET_HAVE_TLS): Define.
16076 (arc_conditional_register_usage): Test for arc_tp_regno.
16077 (arc_print_operand, arc_print_operand_address): Handle TLS
16078 unspecs.
16079 (arc_needs_pcl_p): New function.
16080 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
16081 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
16082 (arc_raw_symbolic_reference_mentioned_p): Likewise.
16083 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
16084 (arc_legitimize_tls_address): Likewise.
16085 (DTPOFF_ZERO_SYM): Define.
16086 (arc_legitimize_pic_address): Make it static, handle TLS cases.
16087 (arc_output_pic_addr_const): Print TLS unspecs.
16088 (prepare_pic_move): New function, replaces emit_pic_move.
16089 (arc_legitimate_constant_p): Handle TLS unspecs.
16090 (arc_legitimate_address_p): Likewise.
16091 (arc_rewrite_small_data_p): Use assert for TLS constants.
16092 (prepare_move_operands): Use prepare_pic_move.
16093 (arc_legitimize_address): Legitimize tls addresses.
16094 (arc_epilogue_uses): Check for arc_tp_regno.
16095 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
16096 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
16097 Define.
16098 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
16099 Likewise.
16100 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
16101 %(arc_tls_extra_start_spec).
16102 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
16103 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
16104 (EH_USES): Define.
16105 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
16106 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
16107 (UNSPEC_TLS_OFF): Add.
16108 (R10_REG): Define.
16109 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
16110 (get_thread_pointersi): New patterns.
16111 * config/arc/arc.opt (mtp-regno): New option.
16112 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
16113 (move_dest_operand): Likewise.
16114 * configure: Regenerate.
16115 * configure.ac: Add arc*-*-* case to test for tls.
16116 * doc/invoke.texi (ARC options): Document mtp-regno.
16117
16118 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16119
16120 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
16121 the new ARC HS SIMD instructions.
16122 (arc_preferred_simd_mode): New function.
16123 (arc_autovectorize_vector_sizes): Likewise.
16124 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
16125 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16126 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
16127 (arc_init_builtins): Add new SIMD builtin types.
16128 (arc_split_move): Handle 64 bit vector moves.
16129 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
16130 (TARGET_PLUS_QMACW): Define.
16131 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
16132 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
16133 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
16134 (VSUBADD4H): New builtins.
16135 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
16136 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
16137
16138 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
16139 Matthias Klose <doko@debian.org>
16140
16141 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
16142
16143 2016-04-28 Richard Biener <rguenther@suse.de>
16144
16145 PR middle-end/70777
16146 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
16147 canonicalization.
16148
16149 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
16150
16151 * common/config/sh/sh-common.c: Remove SH5 support.
16152 * config/sh/constraints.md: Likewise.
16153 * config/sh/config/sh/elf.h: Likewise.
16154 * config/sh/linux.h: Likewise.
16155 * config/sh/netbsd-elf.h: Likewise.
16156 * config/sh/predicates.md: Likewise.
16157 * config/sh/sh-c.c: Likewise.
16158 * config/sh/sh-protos.h: Likewise.
16159 * config/sh/sh.c: Likewise.
16160 * config/sh/sh.h: Likewise.
16161 * config/sh/sh.md: Likewise.
16162 * config/sh/sh.opt: Likewise.
16163 * config/sh/sync.md: Likewise.
16164 * config/sh/sh64.h: Delete.
16165 * config/sh/shmedia.h: Likewise.
16166 * config/sh/shmedia.md: Likewise.
16167 * config/sh/sshmedia.h: Likewise.
16168 * config/sh/t-netbsd-sh5-64: Likewise.
16169 * config/sh/t-sh64: Likewise.
16170 * config/sh/ushmedia.h: Likewise.
16171
16172 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16173
16174 * config/i386/i386.md (sign_extend to memory peephole2s): Use
16175 general_reg_operand instead of register_operand predicate.
16176
16177 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16178
16179 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
16180
16181 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
16182
16183 * match.pd (A - B > A, A + B < A): New transformations.
16184
16185 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
16186
16187 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
16188 which defaults to true. Emit an outer pair of parentheses only if
16189 EMIT_PARENS. When continuing a chain of && or || (or & or |),
16190 don't emit parentheses for the right-hand operand.
16191
16192 2016-04-27 Jeff Law <law@redhat.com>
16193
16194 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
16195
16196 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16197
16198 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
16199 (altivec_lvx_<mode>_internal): Document.
16200 (altivec_lvx_<mode>_2op): New define_insn.
16201 (altivec_lvx_<mode>_1op): Likewise.
16202 (altivec_lvx_<mode>_2op_si): Likewise.
16203 (altivec_lvx_<mode>_1op_si): Likewise.
16204 (altivec_stvx_<mode>): Remove.
16205 (altivec_stvx_<mode>_internal): Document.
16206 (altivec_stvx_<mode>_2op): New define_insn.
16207 (altivec_stvx_<mode>_1op): Likewise.
16208 (altivec_stvx_<mode>_2op_si): Likewise.
16209 (altivec_stvx_<mode>_1op_si): Likewise.
16210 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16211 Expand vec_ld and vec_st during parsing.
16212 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
16213 changes.
16214 (altivec_expand_stvx_be): Likewise.
16215 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
16216 address-masking behavior in RTL.
16217 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
16218 address-masking behavior in RTL.
16219 (altivec_expand_builtin): Change builtin code arguments for calls
16220 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
16221 (insn_is_swappable_p): Avoid incorrect swap optimization in the
16222 presence of lvx/stvx patterns.
16223 (alignment_with_canonical_addr): New function.
16224 (alignment_mask): Likewise.
16225 (find_alignment_op): Likewise.
16226 (recombine_lvx_pattern): Likewise.
16227 (recombine_stvx_pattern): Likewise.
16228 (recombine_lvx_stvx_patterns): Likewise.
16229 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
16230 stvx patterns from expand.
16231 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
16232 expansions.
16233 (vector_altivec_store_<mode>): Likewise.
16234
16235 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
16236
16237 * config/aarch64/aarch64.md
16238 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
16239 remove the "fp" attributes.
16240 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
16241 add the "simd" attributes.
16242 (*movdf_aarch64): Likewise.
16243 (*movtf_aarch64): Remove the "fp" attributes.
16244 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
16245 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
16246
16247 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16248
16249 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
16250 rtx to rtx_code_label *.
16251 * rtl.h (maybe_set_first_label_num): Likewise.
16252
16253 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16254
16255 * df-core.c (df_add_problem): Make the problem param be const.
16256 (df_remove_problem): Make local "problem" be const.
16257 * df-problems.c (problem_RD): Make const.
16258 (problem_LR): Likewise.
16259 (problem_LIVE): Likewise.
16260 (problem_MIR): Likewise.
16261 (problem_CHAIN): Likewise.
16262 (problem_WORD_LR): Likewise.
16263 (problem_NOTE): Likewise.
16264 (problem_MD): Likewise.
16265 * df-scan.c (problem_SCAN): Likewise.
16266 * df.h (struct df_problem): Make field "dependent_problem" be
16267 const.
16268 (struct dataflow): Likewise for field "problem".
16269 (df_add_problem): Make param const.
16270
16271 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
16272
16273 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
16274 inter-unit moves to/from vector registers are enabled. Do not disable
16275 for TARGET_MMX.
16276
16277 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16278
16279 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
16280 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
16281 #define to...
16282 (enum df_problem_id): ...this new enum.
16283 (struct df_problem): Convert field "id" from "int" to
16284 enum df_problem_id.
16285
16286 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16287
16288 * rtl.def: Update comment for "things in the instruction chain" to
16289 reflect the removal of the leading "i" field for INSN_UID in
16290 r210360. Fix bogus apostrophe.
16291
16292 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
16293
16294 * config/i386/i386.md
16295 (lea arith with mem operand + setcc peephole2): Set operator mode.
16296
16297 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
16298
16299 PR target/70155
16300 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
16301 (dimode_scalar_to_vector_candidate_p): This.
16302 (timode_scalar_to_vector_candidate_p): New function.
16303 (scalar_to_vector_candidate_p): Likewise.
16304 (timode_check_non_convertible_regs): Likewise.
16305 (timode_remove_non_convertible_regs): Likewise.
16306 (remove_non_convertible_regs): Likewise.
16307 (remove_non_convertible_regs): Renamed to ...
16308 (dimode_remove_non_convertible_regs): This.
16309 (scalar_chain::~scalar_chain): Make it virtual.
16310 (scalar_chain::compute_convert_gain): Make it pure virtual.
16311 (scalar_chain::mark_dual_mode_def): Likewise.
16312 (scalar_chain::convert_insn): Likewise.
16313 (scalar_chain::convert_registers): Likewise.
16314 (scalar_chain::add_to_queue): Make it protected.
16315 (scalar_chain::emit_conversion_insns): Likewise.
16316 (scalar_chain::replace_with_subreg): Likewise.
16317 (scalar_chain::replace_with_subreg_in_insn): Likewise.
16318 (scalar_chain::convert_op): Likewise.
16319 (scalar_chain::convert_reg): Likewise.
16320 (scalar_chain::make_vector_copies): Likewise.
16321 (scalar_chain::convert_registers): New pure virtual function.
16322 (class dimode_scalar_chain): New class.
16323 (class timode_scalar_chain): Likewise.
16324 (scalar_chain::mark_dual_mode_def): Renamed to ...
16325 (dimode_scalar_chain::mark_dual_mode_def): This.
16326 (timode_scalar_chain::mark_dual_mode_def): New function.
16327 (timode_scalar_chain::convert_insn): Likewise.
16328 (dimode_scalar_chain::convert_registers): Likewise.
16329 (scalar_chain::compute_convert_gain): Renamed to ...
16330 (dimode_scalar_chain::compute_convert_gain): This.
16331 (scalar_chain::replace_with_subreg): Renamed to ...
16332 (dimode_scalar_chain::replace_with_subreg): This.
16333 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
16334 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
16335 (scalar_chain::make_vector_copies): Renamed to ...
16336 (dimode_scalar_chain::make_vector_copies): This.
16337 (scalar_chain::convert_reg): Renamed to ...
16338 (dimode_scalar_chain::convert_reg ): This.
16339 (scalar_chain::convert_op): Renamed to ...
16340 (dimode_scalar_chain::convert_op): This.
16341 (scalar_chain::convert_insn): Renamed to ...
16342 (dimode_scalar_chain::convert_insn): This.
16343 (scalar_chain::convert): Call convert_registers.
16344 (convert_scalars_to_vector): Change to scalar_chain pointer to
16345 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
16346 in 32-bit mode. Delete scalar_chain pointer. Call
16347 free_dominance_info in 64-bit mode.
16348 (pass_stv::gate): Remove TARGET_64BIT check.
16349 (ix86_option_override): Put the 64-bit STV pass before the CSE
16350 pass.
16351
16352 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
16353
16354 * dwarf2out.h (struct dw_loc_descr_node): Remove the
16355 dw_loc_frame_offset field.
16356 * dwarf2out.c (new_loc_descr): Likewise.
16357 (resolve_args_picking_1): Turn the VISITED hash set into a
16358 FRAME_OFFSET hash map. Use it to associate a frame offset to
16359 visited nodes. Remove uses of the CHECKING_P macro.
16360 (resolve_args_picking): Update call to resolve_args_picking_1.
16361
16362 2016-04-27 Martin Liska <mliska@suse.cz>
16363
16364 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
16365 (free_loop_data): Release vuses of groups.
16366
16367 2016-04-27 Bin Cheng <bin.cheng@arm.com>
16368
16369 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
16370 instead of redundant use_id and boolean have_use_for.
16371 (struct iv_use): Change sub_id into group_id. Remove field next.
16372 Move fields: related_cands, n_map_members, cost_map and selected
16373 to ...
16374 (struct iv_group): ... here. New structure.
16375 (struct iv_common_cand): Use structure declaration directly.
16376 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
16377 (MAX_CONSIDERED_USES): Rename macro to ...
16378 (MAX_CONSIDERED_GROUPS): ... here.
16379 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
16380 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
16381 (dump_uses): Rename to ...
16382 (dump_groups): ... here. Update all uses.
16383 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
16384 (find_induction_variables): Refactor format of dump information.
16385 (record_sub_use): Delete.
16386 (record_use): Update all uses.
16387 (record_group): New function.
16388 (record_group_use, find_interesting_uses_op): Call above functions.
16389 Update all uses.
16390 (find_interesting_uses_cond): Ditto.
16391 (group_compare_offset): New function.
16392 (split_all_small_groups): Rename to ...
16393 (split_small_address_groups_p): ... here. Update all uses.
16394 (split_address_groups): Update all uses.
16395 (find_interesting_uses): Refactor format of dump information.
16396 (add_candidate_1): Update all uses. Remove redundant check on iv,
16397 base and step.
16398 (add_candidate, record_common_cand): Remove redundant assert.
16399 (add_iv_candidate_for_biv): Update use.
16400 (add_iv_candidate_derived_from_uses): Update all uses.
16401 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
16402 (alloc_use_cost_map): Ditto.
16403 (set_use_iv_cost, get_use_iv_cost): Rename to ...
16404 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
16405 (determine_use_iv_cost_generic): Ditto.
16406 (determine_group_iv_cost_generic): Ditto.
16407 (determine_use_iv_cost_address): Ditto.
16408 (determine_group_iv_cost_address): Ditto.
16409 (determine_use_iv_cost_condition): Ditto.
16410 (determine_group_iv_cost_cond): Ditto.
16411 (determine_use_iv_cost): Ditto.
16412 (determine_group_iv_cost): Ditto.
16413 (set_autoinc_for_original_candidates): Update all uses.
16414 (find_iv_candidates): Update all uses. Refactor dump information.
16415 (determine_use_iv_costs): Ditto.
16416 (determine_iv_costs): Ditto.
16417 (iv_ca_cand_for_use): Rename to ...
16418 (iv_ca_cand_for_group): ... here. Update all uses.
16419 (iv_ca_add_use, iv_ca_add_group): Ditto.
16420 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
16421 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
16422 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
16423 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
16424 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
16425 (create_new_iv, adjust_iv_update_pos): Ditto.
16426 (rewrite_use_address): Delete.
16427 (rewrite_use_address_1): Rename to ...
16428 (rewrite_use_address): ... here.
16429 (rewrite_use_compare): Update all uses.
16430 (rewrite_use): Delete.
16431 (rewrite_uses): Rename to ...
16432 (rewrite_groups): ... here. Update all uses.
16433 (remove_unused_ivs, free_loop_data): Update all uses.
16434 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
16435
16436 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16437
16438 * rtlanal.c (nonzero_bits1): Convert preprocessor check
16439 for WORD_REGISTER_OPERATIONS to runtime check.
16440
16441 2016-04-27 Richard Biener <rguenther@suse.de>
16442
16443 PR ipa/70760
16444 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
16445 aggregate_value_p to determine if a function result is
16446 returned by reference.
16447 (ipa_pta_execute): Functions having their address taken are
16448 not automatically nonlocal.
16449
16450 2016-04-27 Jakub Jelinek <jakub@redhat.com>
16451
16452 PR sanitizer/70683
16453 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
16454 * fold-const.c (operand_equal_p): If flag_checking and
16455 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
16456 and if it returns non-zero, assert iterative_hash_expr on both
16457 args is the same.
16458
16459 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
16460
16461 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
16462
16463 2016-04-27 Nick Clifton <nickc@redhat.com>
16464
16465 PR middle-end/49889
16466 * varasm.c (merge_weak): Generate an error if an attempt is made
16467 to convert a non-weak static function into a weak, public function.
16468
16469 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16470
16471 * params.def (MAX_PARTITION_SIZE): New param.
16472 * doc/invoke.texi: Document lto-max-partition.
16473
16474 2016-04-27 Richard Biener <rguenther@suse.de>
16475
16476 PR ipa/70785
16477 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
16478 function cummulating used_from_other_partition, externally_visible
16479 and force_output from aliases.
16480 (refered_from_nonlocal_var): Likewise.
16481 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
16482 node flags properly.
16483
16484 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
16485
16486 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
16487 (-Wmemset-elt-size): New item.
16488
16489 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
16490
16491 PR ada/70759
16492 * stor-layout.h (internal_reference_types): Delete.
16493 * stor-layout.c (reference_types_internal): Likewise.
16494 (internal_reference_types): Likewise.
16495 (layout_type) <REFERENCE_TYPE>: Adjust.
16496
16497 2016-04-27 Jakub Jelinek <jakub@redhat.com>
16498
16499 PR sanitizer/70683
16500 * tree.h (inchash::add_expr): Add FLAGS argument.
16501 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
16502 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
16503 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
16504 Formatting fix. Adjust recursive calls. For tcc_comparison,
16505 if swap_tree_comparison (code) is smaller than code, hash that
16506 and arguments in the other order. Hash CONVERT_EXPR the same
16507 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
16508 of ADDR_EXPR of decl as the decl itself. Add or remove
16509 OEP_ADDRESS_OF from recursive flags as needed. For
16510 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
16511 operands commutatively and only the third one normally.
16512 For internal CALL_EXPR hash in CALL_EXPR_IFN.
16513
16514 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
16515
16516 * config/rtems.h (LIB_SPEC): Add -latomic.
16517
16518 2016-04-27 Joel Sherrill <joel@rtems.org>
16519
16520 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
16521 xilink.ld and flags not relevant to RTEMS.
16522
16523 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
16524
16525 * toplev.c (backend_init_target): Avoid calling init_reload when using
16526 LRA.
16527
16528 2016-04-26 Jakub Jelinek <jakub@redhat.com>
16529
16530 * reorg.c (try_merge_delay_insns): Declare i and j inside the
16531 for loops rather than one for the whole function.
16532
16533 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
16534
16535 * match.pd (X + CST CMP X): New transformation.
16536
16537 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
16538
16539 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
16540 * fold-const.c (fold_binary_loc): Remove 2 transformations
16541 superseded by match.pd.
16542 * match.pd (x+x -> x*2): Generalize to integers.
16543
16544 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
16545
16546 * config/i386/i386.md (operation on memory peephole): Duplicate an
16547 existing peephole and adapt it to match lea rather than an operation
16548 that clobbers CC.
16549
16550 PR rtl-optimization/57193
16551 * opts.c (default_options_table): Add OPT_frename_registers at -O2
16552 and above.
16553 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
16554
16555 2016-04-26 Bin Cheng <bin.cheng@arm.com>
16556
16557 * tree-if-conv.c (any_pred_load_store): New static variable.
16558 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
16559 any_pred_load_store instead of and_mask_load_store.
16560 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
16561 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
16562 (combine_blocks, tree_if_conversion): Ditto.
16563
16564 2016-04-26 Bin Cheng <bin.cheng@arm.com>
16565
16566 PR tree-optimization/70771
16567 PR tree-optimization/70775
16568 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
16569 virtual PHI nodes. Delete parameter.
16570 (if_convertible_loop_p_1): Delete argument to above function.
16571 (predicate_all_scalar_phis): Delete code handling single-argument
16572 PHIs.
16573 (tree_if_conversion): Mark and update virtual SSA.
16574
16575 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16576
16577 PR target/61821
16578 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
16579 (x86_elf_aligned_common): Rename to ...
16580 (x86_elf_aligned_decl_common): ... this.
16581 Add decl arg. Switch to .lbss for largecomm object. Use
16582 LARGECOMM_SECTION_ASM_OP.
16583 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
16584 renaming.
16585 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
16586 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
16587 Pass new decl arg.
16588 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16589 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
16590
16591 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16592
16593 PR target/59407
16594 * config/i386/i386.c (SECTION_LARGE): Define.
16595 (x86_64_elf_select_section): Set it for large data/bss sections.
16596 Only clear SECTION_WRITE for .lrodata.
16597 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
16598 data/bss sections.
16599 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
16600 * varasm.c (default_elf_asm_named_section): Grow flagchars.
16601 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
16602 SECTION_MACH_DEP.
16603 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
16604 * doc/tm.texi: Regenerate.
16605
16606 2016-04-26 Jakub Jelinek <jakub@redhat.com>
16607
16608 PR bootstrap/70704
16609 * configure.ac (--enable-checking): Document extra flag, for
16610 non-release builds default to --enable-checking=yes,extra.
16611 If misc checking and extra checking, define CHECKING_P to 2 instead
16612 of 1.
16613 * common.opt (fchecking=): Add.
16614 * doc/invoke.texi (-fchecking=): Document.
16615 * doc/install.texi: Document --enable-checking changes.
16616 * configure: Regenerated.
16617 * config.in: Regenerated.
16618
16619 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16620
16621 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
16622 attribute instead of which_alternative.
16623 * config/i386/sse.md (*mov<mode>_internal): Ditto.
16624 Use EXT_REX_SSE_REG_P where appropriate.
16625
16626 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16627
16628 * config/i386/predicates.md (const0_operand): Do not match
16629 const_wide_int code.
16630 (const1_operand): Ditto.
16631
16632 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16633
16634 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
16635 for SSE constm1 operands and TARGET_AVX512VL.
16636 (*movti_internal): Ditto.
16637 (*mov<mode>_or): Use constm1_operand predicate.
16638 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
16639 for SSE vector_all_ones operands and TARGET_AVX512VL.
16640 * config/i386/predicates.md (constm1_operand): New predicate.
16641 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
16642 emission of constant -1 load.
16643
16644 2016-04-25 Jason Merrill <jason@redhat.com>
16645
16646 * gdbinit.in: Skip is-a.h.
16647
16648 * attribs.c (register_scoped_attributes): Fix logic.
16649 * attribs.h: Declare register_scoped_attributes.
16650
16651 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16652
16653 * config/rs6000/rs6000-builtin.def: Correct pasto error for
16654 stxvd2x and stxvw4x built-in functions.
16655
16656 2016-04-25 DJ Delorie <dj@redhat.com>
16657
16658 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
16659 (ashrhi3): Likewise.
16660 (lshrhi3): Likewise.
16661
16662 2016-04-25 Richard Biener <rguenther@suse.de>
16663
16664 PR tree-optimization/70780
16665 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
16666 wasn't visited yet.
16667 (compute_antic): Mark blocks with abnormal preds as visited as
16668 they have a final empty antic-in solution already.
16669
16670 2016-04-25 Michael Collison <michael.collison@linaro.org>
16671
16672 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
16673
16674 2016-04-25 Michael Collison <michael.collison@linaro.org>
16675
16676 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
16677 mode is VQI to improve mixed mode vectorization.
16678 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
16679 define_insn to match low half of signed vaddw.
16680 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
16681 define_insn to match high half of signed vaddw.
16682 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
16683 define_insn to match low half of unsigned vaddw.
16684 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
16685 define_insn to match high half of unsigned vaddw.
16686 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
16687 (arm_simd_check_vect_par_cnst_half_p): Likewise.
16688 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
16689 for new function.
16690 (arm_simd_check_vect_par_cnst_half_p): Likewise.
16691 * config/arm/predicates.md (vect_par_constant_high): Support
16692 big endian and simplify by calling
16693 arm_simd_check_vect_par_cnst_half
16694 (vect_par_constant_low): Likewise.
16695
16696 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16697
16698 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
16699 predicate for operand 2.
16700
16701 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
16702 H.J. Lu <hongjiu.lu@intel.com>
16703
16704 * config/i386/i386-protos.h (standard_sse_constant_p): Add
16705 machine_mode argument.
16706 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
16707 constm1_rtx operands. For VOIDmode constants, get mode from
16708 pred_mode. Check mode size if the mode is supported by ABI.
16709 (standard_sse_constant_opcode): Do not use standard_constant_p.
16710 Strictly check ABI support for all-ones operands.
16711 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
16712 immediates. Update calls to standard_sse_constant_p.
16713 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
16714 (ix86_rtx_costs): Ditto.
16715 * config/i386/i386.md (*movxi_internal_avx512f): Use
16716 nonimmediate_or_sse_const_operand instead of vector_move_operand.
16717 Use (v,BC) alternative instead of (v,C). Use register_operand
16718 checks instead of MEM_P.
16719 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
16720 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
16721 isa attribute. Use register_operand checks instead of MEM_P.
16722 (*movti_internal): Use nonimmediate_or_sse_const_operand for
16723 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
16724 alternative and corresponding sse2 isa attribute.
16725 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
16726 to standard_sse_constant_p.
16727 (FP constant splitters): Ditto.
16728 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
16729 (C): Ditto.
16730 * config/i386/predicates.md (constm1_operand): Remove.
16731 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
16732 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
16733 vector_all_ones_operand instead of constm1_operand.
16734
16735 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16736
16737 * print-rtl.c (print_rtx_insn_vec): New function.
16738 * print-rtl.h: New prototype.
16739 * store-motion.c (struct st_expr): Make avail_stores a vector.
16740 (st_expr_entry): Adjust.
16741 (free_st_expr_entry): Likewise.
16742 (print_store_motion_mems): Likewise.
16743 (find_moveable_store): Likewise.
16744 (compute_store_table): Likewise.
16745 (delete_store): Likewise.
16746 (build_store_vectors): Likewise.
16747
16748 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16749
16750 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
16751
16752 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16753
16754 * vec.h (vec_safe_contains): New function.
16755 (vec::contains): Likewise.
16756 (vec::begin): Likewise.
16757 (vec::end): Likewise.
16758
16759 2016-04-23 Jakub Jelinek <jakub@redhat.com>
16760
16761 PR sanitizer/70712
16762 * cfgexpand.c (expand_stack_vars): Fix typo.
16763
16764 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
16765
16766 * system.h (list, map, set, vector): Include conditionally.
16767 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
16768 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
16769 * ipa-icf.c (INCLUDE_LIST): Define.
16770 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
16771 * config/sh/sh.c (INCLUDE_VECTOR): Define.
16772 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
16773 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
16774 * cp/logic.cc (INCLUDE_LIST): Define.
16775 * fortran/trans-common.c (INCLUDE_MAP): Define.
16776
16777 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
16778
16779 * auto-profile.c: Remove <string.h> include.
16780 * ipa-icf-gimple.c: Remove <list> include.
16781 * diagnostic.c: Remove <new> include.
16782 * genmatch.c: Likewise.
16783 * pretty-print.c: Likewise.
16784 * toplev.c: Likewise
16785 * c/c-objc-common.c: Likewise.
16786 * cp/error.c: Likewise.
16787 * fortran/error.c: Likewise.
16788
16789 2016-04-22 Richard Biener <rguenther@suse.de>
16790
16791 * lto-streamer-in.c (input_ssa_names): Do not allocate
16792 GIMPLE_NOP for all SSA names.
16793 * lto-streamer-out.c (output_ssa_names): Do not output
16794 SSA names that should have been released.
16795
16796 2016-04-22 Richard Biener <rguenther@suse.de>
16797
16798 PR tree-optimization/70740
16799 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
16800 VDEF.
16801
16802 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
16803
16804 PR target/70750
16805 * config/i386/predicates.md (call_insn_operand): Replace
16806 sibcall_memory_operand with memory_operand.
16807
16808 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
16809
16810 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
16811 has_single_use() tests.
16812 (register_edge_assert_for_1): Likewise.
16813 (find_assert_locations_1): Check the liveness bitmap instead of
16814 checking has_single_use().
16815
16816 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
16817
16818 PR target/70728
16819 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
16820 Extract AVX-512BW constraint from AVX.
16821
16822 2016-04-21 Richard Biener <rguenther@suse.de>
16823
16824 PR tree-optimization/70725
16825 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
16826 for phi_convertible_by_degenerating_args.
16827 (predicate_all_scalar_phis): Handle single-argument PHIs.
16828
16829 2016-04-21 Richard Biener <rguenther@suse.de>
16830
16831 PR middle-end/70747
16832 * fold-const.c (fold_comparison): Return properly typed
16833 constant boolean.
16834
16835 2016-04-21 Bin Cheng <bin.cheng@arm.com>
16836
16837 PR tree-optimization/70715
16838 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
16839 after expanding BASE using expand_simple_operations.
16840
16841 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
16842
16843 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
16844 New transformations.
16845
16846 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
16847
16848 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
16849
16850 2016-04-20 Jan Hubicka <jh@suse.cz>
16851
16852 * ipa-inline.c (can_inline_edge_p): Pass caller info to
16853 ultiimate_alias_target.
16854 (update_callee_keys): Likewise.
16855 (lookup_recursive_calls): Likewise.
16856 (speculation_useful_p): Likewise.
16857
16858 2016-04-20 Jan Hubicka <jh@suse.cz>
16859
16860 PR ipa/70018
16861 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
16862 (set_nothrow_flag_1): ... this; handle interposition correctly;
16863 recurse on aliases and thunks.
16864 (cgraph_node::set_nothrow_flag): New.
16865 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
16866 functions compiled with non-call exceptions that binds to current
16867 def.
16868 (propagate_nothrow): Be safe WRT interposition.
16869 * cgraph.h (set_nothrow_flag): Update prototype.
16870
16871 2016-04-18 Jan Hubicka <jh@suse.cz>
16872
16873 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
16874 max_loop_iterations_int.
16875 (tree_unswitch_outer_loop): Likewise.
16876
16877 2016-04-20 Bin Cheng <bin.cheng@arm.com>
16878
16879 PR tree-optimization/69489
16880 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
16881 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
16882 Revise dump message.
16883 (if_convertible_bb_p): Remove check on edge count of basic block's
16884 predecessors.
16885
16886 2016-04-20 Bin Cheng <bin.cheng@arm.com>
16887
16888 PR tree-optimization/56625
16889 PR tree-optimization/69489
16890 * tree-data-ref.h (DR_INNERMOST): New macro.
16891 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
16892 hashing struct innermost_loop_behavior.
16893 (ref_DR_map): Remove.
16894 (innermost_DR_map): New map.
16895 (baseref_DR_map): Revise comment.
16896 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
16897 to innermost_DR_map accroding to its innermost loop behavior.
16898 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
16899 to its innermost loop behavior.
16900 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
16901 Add initialization for innermost_DR_map. Record memory reference
16902 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
16903 have innermost loop behavior.
16904 (if_convertible_loop_p): Remove release for ref_DR_map. Release
16905 innermost_DR_map.
16906
16907 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
16908
16909 * config/i386/i386.md (*lea<mode>_general_1): Rename from
16910 *lea_general_1. Use explicit SWI12 mode interator.
16911 (*lea<mode>_general_2): Rename from *lea_general_2.
16912 Use explicit SWI12 mode interator.
16913 (*lea<mode>_general_3): Rename from *lea_general_3.
16914 Use explicit SWI12 mode interator.
16915 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
16916 Use explicit SWI12 mode interator.
16917 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
16918 Use explicit SWI48 mode interator.
16919
16920 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
16921
16922 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
16923 Short-cut unaligned load and store cases. Handle all integer
16924 vector modes.
16925 (ix86_expand_vector_move_misalign): Short-cut unaligned load
16926 and store cases. Call ix86_avx256_split_vector_move_misalign
16927 directly without checking mode class.
16928
16929 2016-04-20 Andrew Pinski <apinski@cavium.com>
16930 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16931
16932 PR target/64971
16933 * config/aarch64/aarch64.md (sibcall): Force call
16934 address to be DImode for ILP32.
16935 (sibcall_value): Likewise.
16936
16937 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
16938
16939 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
16940
16941 2016-04-20 Richard Biener <rguenther@suse.de>
16942
16943 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
16944 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
16945 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
16946 (maybe_push_res_to_seq): Adjust.
16947 * gimple-fold.c (maybe_build_generic_op): Likewise.
16948
16949 2016-04-20 Marek Polacek <polacek@redhat.com>
16950
16951 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
16952 rather than true.
16953
16954 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
16955
16956 * config/i386/sse.md (vec_unpacks_lo_hi): Always
16957 use kmovw to support AVX512F target.
16958
16959 2016-04-20 Bin Cheng <bin.cheng@arm.com>
16960
16961 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
16962
16963 2016-04-20 Marek Polacek <polacek@redhat.com>
16964
16965 PR tree-optimization/70725
16966 * tree-if-conv.c (is_false_predicate): New function.
16967 (predicate_mem_writes): Use it.
16968
16969 2016-04-20 Richard Biener <rguenther@suse.de>
16970
16971 PR tree-optimization/70726
16972 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
16973 shift amounts from a pattern stmt operand.
16974
16975 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16976
16977 PR target/70674
16978 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
16979 stack_restore_from_fpr pattern when restoring r15.
16980 (s390_optimize_prologue): Strip away the memory barrier in the
16981 parallel when trying to get rid of restore insns.
16982 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
16983 definition for loading the stack pointer from an FPR. Compared to
16984 the normal move insn this pattern includes a full memory barrier.
16985
16986 2016-04-19 Jakub Jelinek <jakub@redhat.com>
16987
16988 PR middle-end/70680
16989 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
16990 implicitly linear or lastprivate iterator on the outer context.
16991
16992 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
16993
16994 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
16995 alignment check.
16996 * config/i386/i386.md (ssememalign): Removed.
16997 * config/i386/sse.md: Remove ssememalign attribute from patterns.
16998
16999 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17000
17001 PR target/69201
17002 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
17003 const short * to __builtin_ia32_loaddquhi512_mask.
17004 (_mm512_maskz_loadu_epi16): Likewise.
17005 (_mm512_mask_storeu_epi16): Pass short * to
17006 __builtin_ia32_storedquhi512_mask.
17007 (_mm512_mask_loadu_epi8): Pass const char * to
17008 __builtin_ia32_loaddquqi512_mask.
17009 (_mm512_maskz_loadu_epi8): Likewise.
17010 (_mm512_mask_storeu_epi8): Pass char * to
17011 __builtin_ia32_storedquqi512_mask.
17012 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
17013 const double * to __builtin_ia32_loadupd512_mask.
17014 (_mm512_mask_loadu_pd): Likewise.
17015 (_mm512_maskz_loadu_pd): Likewise.
17016 (_mm512_storeu_pd): Pass double * to
17017 __builtin_ia32_storeupd512_mask.
17018 (_mm512_mask_storeu_pd): Likewise.
17019 (_mm512_loadu_ps): Pass const float * to
17020 __builtin_ia32_loadups512_mask.
17021 (_mm512_mask_loadu_ps): Likewise.
17022 (_mm512_maskz_loadu_ps): Likewise.
17023 (_mm512_storeu_ps): Pass float * to
17024 __builtin_ia32_storeups512_mask.
17025 (_mm512_mask_storeu_ps): Likewise.
17026 (_mm512_mask_loadu_epi64): Pass const long long * to
17027 __builtin_ia32_loaddqudi512_mask.
17028 (_mm512_maskz_loadu_epi64): Likewise.
17029 (_mm512_mask_storeu_epi64): Pass long long *
17030 to __builtin_ia32_storedqudi512_mask.
17031 (_mm512_loadu_si512): Pass const int * to
17032 __builtin_ia32_loaddqusi512_mask.
17033 (_mm512_mask_loadu_epi32): Likewise.
17034 (_mm512_maskz_loadu_epi32): Likewise.
17035 (_mm512_storeu_si512): Pass int * to
17036 __builtin_ia32_storedqusi512_mask.
17037 (_mm512_mask_storeu_epi32): Likewise.
17038 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
17039 char * to __builtin_ia32_storedquqi256_mask.
17040 (_mm_mask_storeu_epi8): Likewise.
17041 (_mm256_mask_loadu_epi16): Pass const short * to
17042 __builtin_ia32_loaddquhi256_mask.
17043 (_mm256_maskz_loadu_epi16): Likewise.
17044 (_mm_mask_loadu_epi16): Pass const short * to
17045 __builtin_ia32_loaddquhi128_mask.
17046 (_mm_maskz_loadu_epi16): Likewise.
17047 (_mm256_mask_loadu_epi8): Pass const char * to
17048 __builtin_ia32_loaddquqi256_mask.
17049 (_mm256_maskz_loadu_epi8): Likewise.
17050 (_mm_mask_loadu_epi8): Pass const char * to
17051 __builtin_ia32_loaddquqi128_mask.
17052 (_mm_maskz_loadu_epi8): Likewise.
17053 (_mm256_mask_storeu_epi16): Pass short * to.
17054 __builtin_ia32_storedquhi256_mask.
17055 (_mm_mask_storeu_epi16): Pass short * to.
17056 __builtin_ia32_storedquhi128_mask.
17057 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
17058 const double * to __builtin_ia32_loadupd256_mask.
17059 (_mm256_maskz_loadu_pd): Likewise.
17060 (_mm_mask_loadu_pd): Pass onst double * to
17061 __builtin_ia32_loadupd128_mask.
17062 (_mm_maskz_loadu_pd): Likewise.
17063 (_mm256_mask_storeu_pd): Pass double * to
17064 __builtin_ia32_storeupd256_mask.
17065 (_mm_mask_storeu_pd): Pass double * to
17066 __builtin_ia32_storeupd128_mask.
17067 (_mm256_mask_loadu_ps): Pass const float * to
17068 __builtin_ia32_loadups256_mask.
17069 (_mm256_maskz_loadu_ps): Likewise.
17070 (_mm_mask_loadu_ps): Pass const float * to
17071 __builtin_ia32_loadups128_mask.
17072 (_mm_maskz_loadu_ps): Likewise.
17073 (_mm256_mask_storeu_ps): Pass float * to
17074 __builtin_ia32_storeups256_mask.
17075 (_mm_mask_storeu_ps): ass float * to
17076 __builtin_ia32_storeups128_mask.
17077 (_mm256_mask_loadu_epi64): Pass const long long * to
17078 __builtin_ia32_loaddqudi256_mask.
17079 (_mm256_maskz_loadu_epi64): Likewise.
17080 (_mm_mask_loadu_epi64): Pass const long long * to
17081 __builtin_ia32_loaddqudi128_mask.
17082 (_mm_maskz_loadu_epi64): Likewise.
17083 (_mm256_mask_storeu_epi64): Pass long long * to
17084 __builtin_ia32_storedqudi256_mask.
17085 (_mm_mask_storeu_epi64): Pass long long * to
17086 __builtin_ia32_storedqudi128_mask.
17087 (_mm256_mask_loadu_epi32): Pass const int * to
17088 __builtin_ia32_loaddqusi256_mask.
17089 (_mm256_maskz_loadu_epi32): Likewise.
17090 (_mm_mask_loadu_epi32): Pass const int * to
17091 __builtin_ia32_loaddqusi128_mask.
17092 (_mm_maskz_loadu_epi32): Likewise.
17093 (_mm256_mask_storeu_epi32): Pass int * to
17094 __builtin_ia32_storedqusi256_mask.
17095 (_mm_mask_storeu_epi32): Pass int * to
17096 __builtin_ia32_storedqusi128_mask.
17097 * config/i386/i386-builtin-types.def (PCSHORT): New.
17098 (PINT64): Likewise.
17099 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
17100 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
17101 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
17102 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
17103 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
17104 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
17105 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
17106 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
17107 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
17108 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
17109 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
17110 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
17111 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
17112 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
17113 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
17114 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
17115 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
17116 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
17117 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
17118 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
17119 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
17120 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
17121 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
17122 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
17123 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
17124 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
17125 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
17126 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
17127 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
17128 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
17129 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
17130 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
17131 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
17132 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
17133 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
17134 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
17135 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
17136 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
17137 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
17138 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
17139 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
17140 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
17141 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
17142 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
17143 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
17144 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
17145 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
17146 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
17147 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
17148 use UNSPEC_STOREU.
17149 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
17150 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
17151 load nor store.
17152 (ix86_expand_vector_move_misalign): Likewise.
17153 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
17154 to scalar function prototype for unaligned load/store builtins.
17155 (ix86_expand_special_args_builtin): Updated.
17156 * config/i386/sse.md (UNSPEC_LOADU): Removed.
17157 (UNSPEC_STOREU): Likewise.
17158 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
17159 (VI_ULOADSTORE_F_AVX512VL): Likewise.
17160 (ssescalarsize): Handle V4TI, V2TI and V1TI.
17161 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17162 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17163 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
17164 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
17165 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
17166 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
17167 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
17168 (<avx512>_storedqu<mode>_mask): Likewise.
17169 (*sse4_2_pcmpestr_unaligned): Likewise.
17170 (*sse4_2_pcmpistr_unaligned): Likewise.
17171 (*mov<mode>_internal): Renamed to ...
17172 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
17173 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
17174 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
17175 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
17176
17177 2016-04-19 Richard Biener <rguenther@suse.de>
17178
17179 PR tree-optimization/70171
17180 * tree-ssa-phiprop.c: Include stor-layout.h.
17181 (phiprop_insert_phi): Handle the aggregate copy case.
17182 (propagate_with_phi): Likewise.
17183
17184 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
17185
17186 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
17187 instead of simplify_gen_subreg (... , 0).
17188 (ix86_delegitimize_address): Ditto.
17189 (ix86_split_divmod): Ditto.
17190 (ix86_split_copysign_const): Ditto.
17191 (ix86_split_copysign_var): Ditto.
17192 (ix86_expand_args_builtin): Ditto.
17193 (ix86_expand_round_builtin): Ditto.
17194 (ix86_expand_special_args_builtin): Ditto.
17195 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
17196 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
17197 (udivmodqi4): Ditto.
17198 (absneg splitters): Ditto.
17199 (*jcc_bt<mode>_1): Ditto.
17200
17201 2016-04-19 Richard Biener <rguenther@suse.de>
17202
17203 PR tree-optimization/70724
17204 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
17205 restoring out from ...
17206 (free_scc_vn): ... here.
17207 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
17208 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
17209 tail merging.
17210 (pass_fre::execute): Restore SSA info.
17211
17212 2016-04-19 Richard Biener <rguenther@suse.de>
17213
17214 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
17215 * gimple-walk.c (walk_gimple_op): Initialize it.
17216 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
17217 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
17218 remapping SSA names of defs.
17219 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
17220 adjustment.
17221
17222 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
17223
17224 PR middle-end/70689
17225 * lra-constraints.c (equiv_substition_p): New.
17226 (process_alt_operands): Use it.
17227 (swap_operands): Swap it.
17228 (curr_insn_transform): Update it.
17229
17230 2016-04-18 Michael Matz <matz@suse.de>
17231
17232 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
17233 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
17234 * tree-core.h (tree_type_common.align): Use bit-field.
17235 (tree_type_common.spare): New.
17236 (tree_decl_common.off_align): Make smaller.
17237 (tree_decl_common.align): Use bit-field.
17238
17239 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
17240 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
17241 (scan_sharing_clauses): Ditto.
17242 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17243 (omp_finish_file): Ditto.
17244 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
17245 (layout_decl): Ditto.
17246 (relayout_decl): Ditto.
17247 (finalize_record_size): Use SET_TYPE_ALIGN.
17248 (finalize_type_size): Ditto.
17249 (finish_builtin_struct): Ditto.
17250 (layout_type): Ditto.
17251 (initialize_sizetypes): Ditto.
17252 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
17253 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
17254 (lookup_field_for_decl): Use SET_DECL_ALIGN.
17255 (get_chain_field): Ditto.
17256 (get_trampoline_type): Ditto.
17257 (get_nl_goto_field): Ditto.
17258 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
17259 SET_DECL_ALIGN.
17260 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
17261 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
17262 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17263 (build_qualified_type): Use SET_TYPE_ALIGN.
17264 (build_aligned_type, build_range_type_1): Ditto.
17265 (build_atomic_base): Ditto.
17266 (build_common_tree_nodes): Ditto.
17267 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
17268 (expand_one_stack_var_at): Ditto.
17269 * coverage.c (build_var): Use SET_DECL_ALIGN.
17270 * except.c (init_eh): Ditto.
17271 * function.c (assign_parm_setup_block): Ditto.
17272 * symtab.c (increase_alignment_1): Ditto.
17273 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
17274 * tree-vect-stmts.c (ensure_base_align): Ditto.
17275 * varasm.c (align_variable): Ditto.
17276 (assemble_variable): Ditto.
17277 (build_constant_desc): Ditto.
17278 (output_constant_def_contents): Ditto.
17279
17280 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
17281 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
17282 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
17283 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
17284 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
17285
17286 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
17287
17288 PR target/70708
17289 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
17290 replace %vmovsd with "%vmovq".
17291 (vec_concatv2df): Likewise.
17292
17293 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
17294
17295 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
17296 (*vec_extractv2si_0): Ditto.
17297 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
17298 (zero_extended_scalar_load_operand splitters): Ditto.
17299 (vec_extract splitters): Ditto.
17300 (*vec_extractv4si_0_zext): Ditto.
17301 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
17302 and lowpart_subreg.
17303 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
17304 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
17305 (*sse4_1_extractps): Use lowpart_subreg.
17306 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
17307
17308 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17309
17310 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
17311 gld requirements.
17312 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
17313 Mention Solaris 11 packaging changes.
17314 Update gas and gld requirements.
17315 Remove reference to pre-Solaris 10 bug.
17316 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
17317 systems and bugs.
17318 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
17319 with cc.
17320
17321 2016-04-17 Jan Hubicka <jh@suse.cz>
17322
17323 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
17324 max_loop_iterations_int.
17325
17326 2016-04-18 Richard Biener <rguenther@suse.de>
17327
17328 PR tree-optimization/43434
17329 * tree-ssa-structalias.c (struct vls_data): New.
17330 (visit_loadstore): Handle all pointer-based accesses.
17331 (compute_dependence_clique): Compute a bitmap of restrict tags
17332 assigned bases and pass it to visit_loadstore.
17333
17334 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
17335
17336 PR target/70711
17337 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
17338 armv8.1-a and armv8.1-a+crc.
17339
17340 2016-04-18 Richard Biener <rguenther@suse.de>
17341
17342 PR tree-optimization/70701
17343 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
17344 references after translating through a memcpy.
17345
17346 2016-04-18 Richard Biener <rguenther@suse.de>
17347
17348 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
17349 (compute_antic): ... here. For partial antic use regular
17350 postorder and scrap iteration.
17351 (compute_partial_antic_aux): Remove unused return value.
17352 (init_pre): Do not allocate postorder.
17353 (fini_pre): Do not free postorder.
17354
17355 2016-04-18 Richard Biener <rguenther@suse.de>
17356
17357 PR middle-end/37870
17358 * expmed.c (extract_bit_field_1): Remove broken case
17359 using a wider MODE_INT mode.
17360
17361 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
17362
17363 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
17364 unless compiling with at least GCC-4.8.
17365
17366 2016-04-17 Jan Hubicka <jh@suse.cz>
17367
17368 PR bootstrap/70706
17369 * graphite.c (graphite_finalize): Update call to
17370 tree_estimate_probability.
17371 * predict.h (tree_estimate_probability): Update prototype.
17372
17373 2016-04-17 Jan Hubicka <jh@suse.cz>
17374
17375 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
17376 (tree_estimate_probability): Likewise.
17377 (pass_profile::execute): Update.
17378 (report_predictor_hitrates): New function.
17379 * profile.c (compute_branch_probabilities): Use it.
17380 * predict.h (report_predictor_hitrates): Declare.
17381
17382 2016-04-17 Jan Hubicka <jh@suse.cz>
17383
17384 PR ipa/70018
17385 * cgraph.h (cgraph_node::set_const_flag,
17386 cgraph_node::set_pure_flag): Update prototype to return bool;
17387 update comment.
17388 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
17389 of interposable symbol are interposable, too.
17390 (cgraph_set_const_flag_1): Rename to ...
17391 (set_const_flag_1): ... this one; change to self recursive function
17392 instead of call_for_symbol_thunks_and_aliases. Handle correctly
17393 clearnig the flag in all variants and also virtual thunks of const
17394 functions are pure; track if any change was done.
17395 (cgraph_node::set_const_flag): Update.
17396 (struct set_pure_flag_info): New struct.
17397 (cgraph_set_pure_flag_1): Rename to ...
17398 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
17399 rather than pointer encoded flags; track if any changes was done;
17400 handle correctly clearning flag and setting flag of aliases already
17401 declared const.
17402 (cgraph_node::set_pure_flag): Update.
17403 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
17404
17405 2016-04-17 Tom de Vries <tom@codesourcery.com>
17406
17407 PR other/70433
17408 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
17409 backslash in label.
17410
17411 2016-04-17 Tom de Vries <tom@codesourcery.com>
17412
17413 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
17414 '{}<> ' as escape-for-record.
17415
17416 2016-04-17 Tom de Vries <tom@codesourcery.com>
17417
17418 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
17419 structure.
17420
17421 2016-04-17 Tom de Vries <tom@codesourcery.com>
17422
17423 PR other/70185
17424 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
17425 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
17426 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
17427 * passes.c (finish_optimization_passes): Only call
17428 finish_graph_dump_file if dfi->graph_dump_initialized.
17429 (execute_function_dump, pass_init_dump_file): Use
17430 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
17431
17432 2016-04-17 Tom de Vries <tom@codesourcery.com>
17433
17434 PR tree-optimization/70256
17435 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
17436 (debug_varmap): New function.
17437
17438 2016-04-17 Tom de Vries <tom@codesourcery.com>
17439
17440 PR other/70183
17441 * passes.c (pass_manager::register_pass): Propagate pflags.
17442
17443 2016-04-17 Tom de Vries <tom@codesourcery.com>
17444
17445 PR other/68875
17446 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
17447 * passes.c (pass_manager::pass_manager): Declare and init p_start in
17448 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
17449 check if it's equal to p_start.
17450 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
17451
17452 2016-04-15 Jan Hubicka <jh@suse.cz>
17453
17454 PR ipa/70018
17455 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
17456 function does not bind to current def.
17457 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
17458 handle conservatively calls to functions that does not need to bind
17459 to current def.
17460 (check_call): Update call of worse_state.
17461 (ignore_edge_for_nothrow): Update.
17462 (ignore_edge_for_pure_const): Likewise.
17463 (propagate_pure_const): Update calls to worse_state.
17464 (skip_function_for_local_pure_const): Reformat comments.
17465
17466 2016-04-15 Jan Hubicka <jh@suse.cz>
17467
17468 PR ipa/70018
17469 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
17470 (cgraph_node::function_symbol): Likewise.
17471 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
17472 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
17473 (symtab_node::ultimate_alias_target): Add REF parameter.
17474 (symtab_node::binds_to_current_def_p): Declare.
17475 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
17476 (cgraph_node::function_symbol): Likewise.
17477 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
17478 (cgraph_node::get_availability): Likewise.
17479 (cgraph_edge::binds_to_current_def_p): New inline function.
17480 (varpool_node::get_availability): Add REF parameter.
17481 (varpool_node::ultimate_alias_target): Likewise.
17482 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
17483 (symtab_node::binds_to_current_def_p): Likewise.
17484 * varpool.c (varpool_node::get_availability): Likewise.
17485
17486 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
17487
17488 PR target/70662
17489 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
17490 Fix mode size check.
17491
17492 2016-04-15 Jakub Jelinek <jakub@redhat.com>
17493
17494 * BASE-VER: Set to 7.0.0.
17495
17496 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
17497
17498 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
17499
17500 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17501
17502 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
17503 architecture revisions.
17504
17505 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
17506
17507 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
17508 * config/i386/i386.c (ix86_using_red_zone): No longer static.
17509 * config/i386/i386.md (stack decrement to push peepholes): Guard
17510 with !x86_using_red_zone ().
17511
17512 2016-04-15 Jakub Jelinek <jakub@redhat.com>
17513
17514 PR c++/70675
17515 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
17516 to dump_generic_node.
17517 (NIY): Pass also flags to do_niy.
17518
17519 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
17520
17521 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
17522 (simd_clone_vector_of_formal_parm_types)
17523 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
17524 (simd_clone_mangle, simd_clone_create)
17525 (simd_clone_adjust_return_type, create_tmp_simd_array)
17526 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
17527 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
17528 (ipa_simd_modify_function_body, simd_clone_linear_addend)
17529 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
17530 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
17531 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
17532 * omp-simd-clone.c: ... this new file.
17533 (simd_clone_vector_of_formal_parm_types): Make it static.
17534 * Makefile.in (OBJS): Add omp-simd-clone.o.
17535
17536 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
17537
17538 PR target/70662
17539 * config/i386/sse.md: Use proper memory operand modifiers.
17540
17541
17542 2016-04-15 Richard Biener <rguenther@suse.de>
17543 Alan Modra <amodra@gmail.com>
17544
17545 PR tree-optimization/70130
17546 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
17547 when alignment stays not the same and no not use the realign
17548 scheme then.
17549
17550 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
17551
17552 PR target/70669
17553 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
17554 direct move handlers for KFmode. Change TFmode handlers test from
17555 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
17556
17557 2016-04-14 Jakub Jelinek <jakub@redhat.com>
17558
17559 PR c++/70594
17560 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
17561 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
17562 (inlined_polymorphic_ctor_dtor_block_p): Use it.
17563 * tree-ssa-live.c (remove_unused_scope_block_p): When
17564 in_ctor_dtor_block, avoid discarding not just BLOCKs with
17565 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
17566 block_ultimate_origin is FUNCTION_DECL.
17567 (remove_unused_locals): If current_function_decl is
17568 polymorphic_ctor_dtor_p, pass initial true to
17569 remove_unused_scope_block_p' is_ctor_dtor_block.
17570
17571 2016-04-14 Martin Sebor <msebor@redhat.com>
17572
17573 PR c++/69517
17574 PR c++/70019
17575 PR c++/70588
17576 * doc/extend.texi (Variable Length): Revert.
17577
17578 2016-04-14 Marek Polacek <polacek@redhat.com>
17579 Jan Hubicka <hubicka@ucw.cz>
17580
17581 PR c++/70029
17582 * tree.c (verify_type): Disable the canonical type of main variant
17583 check.
17584
17585 2016-04-14 Jason Merrill <jason@redhat.com>
17586
17587 * cfgexpand.c, expr.c: Revert previous change.
17588
17589 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
17590
17591 PR middle-end/70643
17592 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
17593 when building a mem ref for the incoming reduction variable.
17594
17595 2016-04-14 Richard Biener <rguenther@suse.de>
17596
17597 PR tree-optimization/70614
17598 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
17599 loop if the evolution dropped to chrec_dont_know.
17600 (interpret_condition_phi): Likewise.
17601
17602 2016-04-14 Richard Biener <rguenther@suse.de>
17603
17604 PR tree-optimization/70623
17605 * tree-ssa-pre.c (changed_blocks): Make global ...
17606 (compute_antic): ... local here. Move and fix worklist
17607 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
17608 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
17609 worklist handling, dump when ANTIC_IN changed.
17610 (compute_partial_antic_aux): Remove worklist handling.
17611 (init_pre): Do not compute post dominators. Add a comment about
17612 the CFG order chosen.
17613 (fini_pre): Do not free post dominators.
17614
17615 2016-04-13 Martin Sebor <msebor@redhat.com>
17616
17617 PR c++/69517
17618 PR c++/70019
17619 PR c++/70588
17620 * doc/extend.texi (Variable Length): Document C++ specifics.
17621
17622 2016-04-13 Jakub Jelinek <jakub@redhat.com>
17623
17624 PR c++/70641
17625 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
17626 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
17627 eh edges have been purged.
17628
17629 PR c++/70594
17630 * tree-sra.c (create_access_replacement,
17631 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
17632 gets fancy name.
17633 * tree-pretty-print.c (dump_fancy_name): New function.
17634 (dump_decl_name, dump_generic_node): Use it.
17635
17636 2016-04-13 Jason Merrill <jason@redhat.com>
17637
17638 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
17639 * expr.c (expand_expr_real_1): Likewise.
17640
17641 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
17642
17643 * config/i386/i386.md (kunpckhi): Swap operands.
17644 (kunpcksi): Likewise.
17645 (kunpckdi): Likewise.
17646 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
17647 (vec_pack_trunc_<mode>): Likewise.
17648
17649 2016-04-13 Jakub Jelinek <jakub@redhat.com>
17650
17651 PR debug/70628
17652 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
17653
17654 PR middle-end/70633
17655 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
17656 gimplification turns some element into non-constant.
17657
17658 PR debug/70628
17659 * rtl.h (convert_memory_address_addr_space_1): New prototype.
17660 * explow.c (convert_memory_address_addr_space_1): No longer static,
17661 add NO_EMIT argument and don't call convert_modes if true, pass
17662 it down recursively, remove break after return.
17663 (convert_memory_address_addr_space): Adjust caller.
17664 * simplify-rtx.c (simplify_unary_operation_1): Call
17665 convert_memory_address_addr_space_1 instead of convert_memory_address,
17666 if it returns NULL, don't simplify.
17667
17668 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
17669
17670 PR target/70630
17671 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
17672
17673 2016-04-12 Jakub Jelinek <jakub@redhat.com>
17674
17675 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17676 Bump the upper SIMDLEN limits, so that if the return type or
17677 characteristic type if the return type is void can be passed in
17678 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
17679 allowed.
17680
17681 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
17682
17683 PR target/70640
17684 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
17685 Do not use "=" constraint on an input constraint.
17686 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
17687 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
17688 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
17689 generates (neg (abs ...)) instead of (abs ...).
17690
17691 2016-04-12 Jakub Jelinek <jakub@redhat.com>
17692
17693 PR rtl-optimization/70596
17694 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
17695 just invalidate LRA data and reset them. Adjust dump wording.
17696
17697 2016-04-12 Martin Liska <mliska@suse.cz>
17698
17699 Revert
17700 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
17701
17702 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
17703 estimates here.
17704 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17705 max_loop_iterations_int.
17706 (tree_unswitch_outer_loop): Likewise.
17707 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
17708 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17709
17710 2016-04-12 Tom de Vries <tom@codesourcery.com>
17711
17712 PR tree-optimization/68756
17713 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
17714 instead of new_name.
17715
17716 2016-04-12 Jakub Jelinek <jakub@redhat.com>
17717
17718 PR tree-optimization/70602
17719 * tree-sra.c (generate_subtree_copies): Don't write anything into
17720 constant pool decls.
17721
17722 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
17723 regardless whether there are depend clauses or not.
17724
17725 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
17726
17727 PR target/70381
17728 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
17729 target attribute and pragma from changing the -mfloat128
17730 and -mfloat128-hardware options.
17731
17732 * doc/extend.texi (Additional Floating Types): Document PowerPC
17733 __float128 restrictions.
17734
17735 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17736
17737 PR target/70133
17738 * config/aarch64/driver-aarch64.c
17739 (aarch64_get_extension_string_for_isa_flags): New.
17740 (arch_extension): Rename to...
17741 (aarch64_arch_extension): ...This.
17742 (ext_to_feat_string): Rename to...
17743 (aarch64_extensions): ...This.
17744 (aarch64_core_data): Keep track of architecture extension flags.
17745 (cpu_data): Rename to...
17746 (aarch64_cpu_data): ...This.
17747 (aarch64_arch_driver_info): Keep track of architecture extension
17748 flags.
17749 (get_arch_name_from_id): Rename to...
17750 (get_arch_from_id): ...This, change return type.
17751 (host_detect_local_cpu): Update and reformat for renames, handle
17752 extensions through common infrastructure.
17753
17754 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17755
17756 PR target/70133
17757 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
17758 track of a canonical flag name.
17759 (all_extensions): Likewise.
17760 (arch_to_arch_name): Also track extension flags enabled by the arch.
17761 (all_architectures): Likewise.
17762 (aarch64_parse_extension): Move to here.
17763 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
17764 rework.
17765 (aarch64_rewrite_selected_cpu): Update for above change.
17766 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
17767 are handled, such that the single explicit value enabled by an
17768 extension is kept seperate from the implicit values it also enables.
17769 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
17770 to here.
17771 (aarch64_parse_extension): New.
17772 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
17773 here to config/aarch64/aarch64-protos.h.
17774 (aarch64_parse_extension): Move from here to
17775 common/config/aarch64/aarch64-common.c.
17776 (aarch64_option_print): Update.
17777 (aarch64_declare_function_name): Likewise.
17778 (aarch64_start_file): Likewise.
17779 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
17780 the canonical flag for extensions.
17781 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
17782 flags.
17783
17784 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17785
17786 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
17787 AARCH64_FL_CRC.
17788
17789 2016-04-09 Tom de Vries <tom@codesourcery.com>
17790
17791 PR tree-optimization/68953
17792 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
17793 first to last subscript.
17794
17795 2016-04-09 Jakub Jelinek <jakub@redhat.com>
17796
17797 PR tree-optimization/70586
17798 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
17799 for any calls.
17800
17801 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
17802
17803 PR lto/70289
17804 PR ipa/70348
17805 PR tree-optimization/70373
17806 PR middle-end/70533
17807 PR middle-end/70534
17808 PR middle-end/70535
17809 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
17810 clauses for acc parallel reductions as necessary. Error on those
17811 that are private.
17812 * omp-low.c (scan_sharing_clauses): Don't install variables which
17813 are used in acc parallel reductions.
17814 (lower_rec_input_clauses): Remove dead code.
17815 (lower_oacc_reductions): Add support for reference reductions.
17816 (lower_reduction_clauses): Remove dead code.
17817 (lower_omp_target): Don't remap variables appearing in acc parallel
17818 reductions.
17819 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
17820
17821 2016-04-08 Jakub Jelinek <jakub@redhat.com>
17822
17823 PR middle-end/70593
17824 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
17825 with multiple SSA_NAME defs, force the outputs other than first
17826 to be live before calling live_track_process_def on each output.
17827
17828 PR rtl-optimization/70574
17829 * fwprop.c (forward_propagate_and_simplify): Don't add
17830 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
17831 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
17832 paradoxical subregs within *loc.
17833
17834 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
17835
17836 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
17837 -ftree-parallelize-loops={0,1}.
17838 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
17839 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
17840 * config/ia64/hpux.h (LIB_SPEC): Likewise.
17841 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
17842 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
17843
17844 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
17845
17846 PR sanitizer/70541
17847 * asan.c (instrument_derefs): If we get unknown location, extract it
17848 with EXPR_LOCATION.
17849 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
17850
17851 2016-04-08 Tom de Vries <tom@codesourcery.com>
17852
17853 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
17854 implicit firstprivate clause.
17855
17856 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17857
17858 PR target/70566
17859 * config/arm/thumb2.md (tst + branch-> lsls + branch
17860 peephole below *orsi_not_shiftsi_si): Require that condition
17861 register is dead after the peephole.
17862 (second peephole after the above): Likewise.
17863
17864 2016-04-08 Alan Modra <amodra@gmail.com>
17865
17866 PR target/70117
17867 * builtins.c (fold_builtin_classify): For IBM extended precision,
17868 look at just the high-order double to test for NaN.
17869 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
17870 test just the high double for Inf but both doubles for subnormal
17871 limit.
17872
17873 2016-04-07 Jakub Jelinek <jakub@redhat.com>
17874
17875 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
17876 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
17877 node->simdclone->mask_mode != VOIDmode masks.
17878 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
17879 earlier, use it instead of node->simdclone.
17880 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17881 Set clonei->mask_mode.
17882
17883 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
17884
17885 PR c/70436
17886 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
17887 Pass it through to cp_parser_already_scoped_statement.
17888 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
17889 it through to cp_parser_statement.
17890 (cp_parser_statement): Pass IF_P through to
17891 cp_parser_iteration_statement.
17892 (cp_parser_pragma): Adjust call to
17893 cp_parser_iteration_statement.
17894
17895 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
17896
17897 PR c/70436
17898 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
17899 resolve a future -Wparentheses warning.
17900 * omp-low.c (scan_sharing_clauses): Likewise.
17901 * tree-parloops.c (eliminate_local_variables): Likewise.
17902
17903 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
17904
17905 PR rtl-optimization/70398
17906 * lra-constraints.c (process_address_1): Check zero scale and code
17907 for reloading with zero scale.
17908
17909 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
17910
17911 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
17912 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
17913
17914 2016-04-06 Jakub Jelinek <jakub@redhat.com>
17915
17916 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17917 Add support for AVX512F clones, include them by default for
17918 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
17919 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
17920 up to 128.
17921
17922 PR middle-end/70550
17923 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
17924 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
17925 firstprivate clauses.
17926 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
17927 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
17928 (lower_omp_target): Set TREE_NO_WARNING for
17929 non-addressable possibly uninitialized vars which are copied into
17930 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
17931
17932 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
17933
17934 * config/pa/predicates.md (integer_store_memory_operand): Accept
17935 REG+D operands with a large offset when reload_in_progress is true.
17936 (floating_point_store_memory_operand): Likewise.
17937
17938 2016-04-05 Jakub Jelinek <jakub@redhat.com>
17939
17940 PR c++/70336
17941 * match.pd (nested int casts): Limit to GIMPLE.
17942
17943 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
17944
17945 PR ipa/66223
17946 * ipa-devirt.c (maybe_record_node): Fix comment; use
17947 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
17948
17949 2016-04-05 Jakub Jelinek <jakub@redhat.com>
17950
17951 PR rtl-optimization/70542
17952 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
17953 if there are any uses other than insn or debug insns.
17954
17955 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
17956 Jakub Jelinek <jakub@redhat.com>
17957
17958 PR tree-optimization/70509
17959 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
17960 Shift HOST_WIDE_INT_1U instead of 1.
17961
17962 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
17963
17964 PR tree-optimization/70509
17965 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
17966 of the vector base type for index.
17967
17968 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
17969
17970 PR target/70510
17971 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
17972
17973 2016-04-05 Richard Biener <rguenther@suse.de>
17974
17975 PR tree-optimization/70526
17976 * tree-sra.c (build_ref_for_offset): Use prev_base to
17977 extract the alias pointer type.
17978
17979 2016-04-05 Richard Biener <rguenther@suse.de>
17980
17981 * dse.c (struct store_info): Remove alias_set member.
17982 (struct read_info_type): Likewise.
17983 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
17984 spill_deleted, clear_alias_set_lookup): Remove.
17985 (get_group_info): Remove dead base == NULL_RTX case.
17986 (dse_step0): Remove initialization of removed variables.
17987 (delete_dead_store_insn): Reomve alias set dumping.
17988 (free_read_records): Remove alias_set handling.
17989 (canon_address): Remove alias_set_out parameter.
17990 (record_store): Remove spill_alias_set, it's always zero.
17991 (check_mem_read_rtx): Likewise.
17992 (dse_step2): Rename from ...
17993 (dse_step2_nospill): ... this. Adjust.
17994 (scan_stores): Rename from ...
17995 (scan_stores_nospill): ... this.
17996 (scan_reads): Rename from ...
17997 (scan_reads_nospill): ... this.
17998 (scan_stores_spill, scan_reads_spill): Remove.
17999 (dse_step3_scan): Remove for_spills argument which is always false.
18000 (dse_step3): Likewise.
18001 (dse_step5): Rename from ...
18002 (dse_step5_nospill): ... this. Remove alias_set handling.
18003 (rest_of_handle_dse): Adjust.
18004
18005 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18006
18007 PR target/70525
18008 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
18009 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
18010 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
18011 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
18012
18013 2016-04-05 Richard Biener <rguenther@suse.de>
18014
18015 PR middle-end/70499
18016 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
18017 non-register type temporaries into SSA.
18018
18019 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
18020
18021 PR ipa/66223
18022 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
18023 calls when sanitizing.
18024 (possible_polymorphic_call_target_p): Fix formatting.
18025
18026 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18027 Jakub Jelinek <jakub@redhat.com>
18028
18029 PR middle-end/70457
18030 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
18031 to ensure a call statement is compatible with a built-in's
18032 prototype.
18033 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
18034 Likewise.
18035
18036 2016-04-04 Richard Biener <rguenther@suse.de>
18037
18038 PR rtl-optimization/70484
18039 * rtl.h (canon_output_dependence): Declare.
18040 * alias.c (canon_output_dependence): New function.
18041 * dse.c (record_store): Use canon_output_dependence rather
18042 than canon_true_dependence.
18043
18044 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18045
18046 PR ipa/68881
18047 * cgraph.h (symtab_node::copy_visibility_from): New function.
18048 * symtab.c (symtab_node::copy_visibility_from): New function.
18049 * ipa-visibility.c (optimize_weakref): New function.
18050 (function_and_variable_visibility): Use it.
18051
18052 2016-04-04 Martin Liska <mliska@suse.cz>
18053
18054 PR hsa/70402
18055 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
18056 value that is really in range handled by SBR instruction.
18057 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
18058 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
18059 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
18060
18061 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
18062
18063 PR target/70416
18064 PR target/67391
18065 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
18066 set, but not for SP_REG operands.
18067
18068 2016-04-02 Martin Sebor <msebor@redhat.com>
18069
18070 PR c++/67376
18071 * fold-const.c (maybe_nonzero_address): New function.
18072 (fold_comparison): Call it. Fold equality and relational
18073 expressions involving null pointers.
18074 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
18075
18076 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
18077
18078 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
18079 the "Y" constraint (scalar FP 0.0 immediate).
18080
18081 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
18082 Add the "const_double" to the list of operand constraints.
18083
18084 2016-04-01 Jakub Jelinek <jakub@redhat.com>
18085
18086 PR rtl-optimization/70467
18087 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
18088 If low word of the last operand is 0, just emit addition/subtraction
18089 for the high word.
18090
18091 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18092
18093 PR target/70404
18094 * config/s390/s390.c (s390_expand_insv): Check for everything
18095 constant instead of just VOIDmode stuff.
18096
18097 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18098
18099 PR target/70496
18100 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
18101
18102 2016-04-01 Nathan Sidwell <nathan@acm.org>
18103
18104 * tree.def (TRY_CATCH_EXPR): Correct documentation.
18105
18106 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
18107
18108 PR rtl-optimization/70461
18109 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
18110 is necessary.
18111
18112 2016-03-31 Martin Liska <mliska@suse.cz>
18113
18114 PR hsa/70399
18115 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
18116 a tree value or an immediate integer value to a buffer
18117 that is eventually copied to a BRIG section.
18118 (emit_immediate_operand): Call the function here.
18119 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
18120 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
18121 of class' fields that are removed.
18122 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
18123 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
18124 m_brig_repr_size fields.
18125
18126 2016-03-31 Martin Liska <mliska@suse.cz>
18127
18128 PR hsa/70391
18129 * hsa-gen.c (hsa_function_representation::update_dominance): New
18130 function.
18131 (convert_addr_to_flat_segment): Likewise.
18132 (gen_hsa_memory_set): New alignment argument.
18133 (gen_hsa_ctor_assignment): Likewise.
18134 (gen_hsa_insns_for_single_assignment): Provide alignment
18135 to gen_hsa_ctor_assignment.
18136 (gen_hsa_insns_for_direct_call): Add new argument.
18137 (expand_lhs_of_string_op): New function.
18138 (expand_string_operation_builtin): Likewise.
18139 (expand_memory_copy): New function.
18140 (expand_memory_set): New function.
18141 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
18142 (convert_switch_statements): Change signature.
18143 (generate_hsa): Use a return value of the function.
18144 (pass_gen_hsail::execute): Do not call
18145 convert_switch_statements here.
18146 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
18147 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
18148 (hsa_function_representation::update_dominance): New function.
18149
18150 2016-03-31 Martin Liska <mliska@suse.cz>
18151
18152 PR hsa/70391
18153 * hsa-brig.c (emit_directive_variable): Emit alignment
18154 according to hsa_symbol::m_align.
18155 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
18156 (dump_hsa_symbol): Dump alignment of HSA symbols.
18157 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
18158 (gen_hsa_addr_with_align): New function.
18159 (hsa_bitmemref_alignment): Use newly added function.
18160 (gen_hsa_insns_for_load): Likewise.
18161 (gen_hsa_insns_for_store): Likewise.
18162 (gen_hsa_memory_copy): New argument added.
18163 (gen_hsa_insns_for_single_assignment): Respect
18164 alignment for assignments processed via gen_hsa_memory_copy.
18165 (gen_hsa_insns_for_direct_call): Likewise.
18166 (gen_hsa_insns_for_return): Likewise.
18167 (gen_function_def_parameters): Set default alignment.
18168 * hsa.c (hsa_object_alignment): New function.
18169 (hsa_byte_alignment): Pasted function.
18170 * hsa.h (hsa_symbol::m_align): New field.
18171
18172 2016-03-31 Bin Cheng <bin.cheng@arm.com>
18173
18174 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
18175 scratch field for goto case.
18176
18177 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
18178
18179 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
18180
18181 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
18182
18183 PR target/70442
18184 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
18185 (scalar_chain::convert_insn): Call convert_op for reg
18186 moves to handle undefined registers.
18187
18188 2016-03-31 Nathan Sidwell <nathan@acm.org>
18189
18190 PR c++/70393
18191 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
18192 Assert we don't want to move backwards.
18193
18194 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
18195
18196 PR target/70453
18197 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
18198
18199 2016-03-31 Jakub Jelinek <jakub@redhat.com>
18200
18201 PR rtl-optimization/70460
18202 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
18203 with operand from REG_LABEL_OPERAND, instead substitute
18204 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
18205 Don't do anything for REG_NON_LOCAL_GOTO jumps.
18206
18207 2016-03-31 Martin Liska <mliska@suse.cz>
18208
18209 * passes.c (execute_one_pass): Do not call
18210 todo_after for a discarded function.
18211
18212 2016-03-31 Bin Cheng <bin.cheng@arm.com>
18213
18214 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
18215 (no_cost, infinite_cost): Initialize the new field.
18216 (get_computation_cost_at): Record setup cost.
18217 (determine_use_iv_cost_address): Skip cost computation for sub
18218 uses if we can estimate it without losing accuracy.
18219
18220 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18221
18222 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18223 estimates here.
18224 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18225 max_loop_iterations_int.
18226 (tree_unswitch_outer_loop): Likewise.
18227 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18228 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18229
18230 2016-03-30 Richard Biener <rguenther@suse.de>
18231
18232 PR middle-end/70450
18233 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
18234
18235 2016-03-30 Jakub Jelinek <jakub@redhat.com>
18236
18237 PR target/70421
18238 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
18239 in gen_blendm expander.
18240
18241 2016-03-30 Nick Clifton <nickc@redhat.com>
18242
18243 PR target/62254
18244 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
18245 case where we are already provided with an SImode SUBREG.
18246
18247 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
18248
18249 PR target/70439
18250 * config/i386/i386.c (ix86_expand_epilogue): Properly check
18251 conflict between DRAP register and __builtin_eh_return.
18252
18253 2016-03-30 Michael Matz <matz@suse.de>
18254 Richard Biener <rguenther@suse.de>
18255
18256 PR ipa/12392
18257 * ipa-polymorphic-call.c (struct type_change_info): Change
18258 speculative to an unsigned allowing to limit the work we do.
18259 (csftc_abort_walking_p): New inline function..
18260 (check_stmt_for_type_change): Limit the number of may-defs
18261 skipped for speculative devirtualization to
18262 max-speculative-devirt-maydefs.
18263 * params.def (max-speculative-devirt-maydefs): New param.
18264 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
18265
18266 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
18267
18268 PR target/63890
18269 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
18270 and TARGET_MACHO.
18271
18272 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
18273
18274 PR tree-optimization/59124
18275 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
18276 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
18277
18278 2016-03-29 Jeff Law <law@redhat.com>
18279
18280 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
18281
18282 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
18283
18284 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
18285 to HOST_WIDE_INT.
18286
18287 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
18288
18289 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
18290 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
18291 gcrt0.o if linking dynamically.
18292
18293 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
18294
18295 PR ipa/70283
18296 * ipa-devirt.c (methods_equal_p): New function.
18297 (compare_virtual_tables): Use it.
18298 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
18299 * cgraphclones.c (clone_function_name_1): Use
18300 symbol_table::symbol_suffix_separator.
18301 * coverage.c (build_var): Likewise.
18302 * symtab.c (symbol_table::symbol_suffix_separator): New.
18303
18304 2016-03-29 Jakub Jelinek <jakub@redhat.com>
18305
18306 PR rtl-optimization/70429
18307 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
18308 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
18309 mode != result_mode.
18310
18311 PR c++/70353
18312 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
18313
18314 PR tree-optimization/70405
18315 * ssa-iterators.h (num_imm_uses): Add missing braces.
18316
18317 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
18318
18319 PR rtl-optimization/68695
18320 * ira-color.c (allocno_copy_cost_saving): New.
18321 (improve_allocation): Use it.
18322
18323 2016-03-29 Richard Henderson <rth@redhat.com>
18324
18325 PR middle-end/70355
18326 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
18327
18328 2016-03-29 Richard Biener <rguenther@suse.de>
18329
18330 PR middle-end/70424
18331 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
18332 use alignment returned by get_pointer_alignment_1 if it is
18333 bigger than BITS_PER_UNIT.
18334 * builtins.c (get_pointer_alignment_1): Do not return true
18335 for alignment extracted from SSA info.
18336
18337 2016-03-28 James Bowman <james.bowman@ftdichip.com>
18338
18339 * config/ft32/ft32.opt (mnodiv): New.
18340 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
18341 * doc/invoke.texi (FT32 Options -mnodiv): New.
18342
18343 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
18344
18345 PR target/70406
18346 * config/i386/i386.md (define_split, andn): Fix modes.
18347
18348 2016-03-26 Richard Biener <rguenther@suse.de>
18349 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18350
18351 PR ipa/70366
18352 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
18353 instead of
18354 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
18355 as 2nd argument to cl_optimization_restore().
18356
18357 2016-03-25 Richard Henderson <rth@redhat.com>
18358
18359 PR target/70120
18360 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
18361 * config/aarch64/aarch64-protos.h: Declare it.
18362 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
18363
18364 2016-03-25 Alan Modra <amodra@gmail.com>
18365
18366 PR target/70052
18367 * config/rs6000/constraints.md (j): Simplify.
18368 * config/rs6000/predicates.md (easy_fp_constant): Exclude
18369 decimal float 0.D.
18370 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
18371 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
18372 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
18373 in all constraint alternatives.
18374 (movtd_64bit_nodm): Delete "j" constraint alternative.
18375
18376 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
18377
18378 * tree-ssa-propagate.c: Enhance docs for
18379 SSA_PROP_NOT_INTERESTING.
18380
18381 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
18382
18383 * doc/extend.texi: Fix typo in documentation to pure attribute.
18384
18385 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
18386
18387 PR target/70319
18388 * config/pa/pa.md (bswapdi2): Use a scratch register.
18389
18390 2016-03-24 Richard Henderson <rth@redhat.com>
18391
18392 PR middle-end/69845
18393 * fold-const.c (extract_muldiv_1): Correct test for multiplication
18394 overflow.
18395
18396 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
18397
18398 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
18399 using ix86_expand_binary_operator instead of gen_andsi3.
18400
18401 2016-03-24 Richard Biener <rguenther@suse.de>
18402
18403 PR tree-optimization/70396
18404 * tree-vect-stmts.c (vectorizable_comparison): Use
18405 get_vectype_for_scalar_type.
18406
18407 2016-03-24 Richard Biener <rguenther@suse.de>
18408
18409 PR middle-end/70370
18410 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
18411 with register bases.
18412
18413 2016-03-24 Richard Biener <rguenther@suse.de>
18414
18415 PR tree-optimization/70372
18416 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
18417 build_all_ones_cst to also handle vector types correctly.
18418
18419 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
18420
18421 PR target/70381
18422 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
18423 -mfloat128 here.
18424
18425 2016-03-23 Marek Polacek <polacek@redhat.com>
18426
18427 PR c++/69884
18428 * doc/invoke.texi: Document -Wignored-attributes.
18429
18430 2016-03-23 Bin Cheng <bin.cheng@arm.com>
18431
18432 PR tree-optimization/69042
18433 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
18434 parameter from 30 to 40.
18435
18436 2016-03-23 Bin Cheng <bin.cheng@arm.com>
18437
18438 PR tree-optimization/69042
18439 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
18440 for use with constant offset stripped in base.
18441
18442 2016-03-23 Richard Biener <rguenther@suse.de>
18443
18444 PR middle-end/70251
18445 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
18446 mode compatibility check.
18447 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18448
18449 2016-03-23 Jeff Law <law@redhat.com>
18450
18451 PR tree-optimization/64058
18452 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
18453 CONFLICT_COUNT.
18454 (struct ssa_conflicts): Move up earlier in the file.
18455 (conflicts_, var_map_): New static variables.
18456 (initialize_conflict_count): New function to initialize the
18457 CONFLICT_COUNT field for each conflict pair.
18458 (compare_pairs): Lazily initialize the conflict count and use it
18459 as the first tie-breaker.
18460 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
18461 and wipe conflicts_ and map_ around the call to qsort. Remove
18462 special case for 2 coalesce pairs.
18463 * bitmap.c (bitmap_count_unique_bits): New function.
18464 (bitmap_count_bits_in_word): New function, extracted from
18465 bitmap_count_bits.
18466 (bitmap_count_bits): Use bitmap_count_bits_in_word.
18467 * bitmap.h (bitmap_count_unique_bits): Declare it.
18468
18469 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
18470
18471 PR target/69917
18472 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
18473 transparent alias chain for decl assembler name.
18474 * config/sol2.c (solaris_assemble_visibility): Likewise.
18475
18476 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18477
18478 * config/arm/arm1020e.md (1020call_op): Reduce reservation
18479 duration.
18480 (v10_fdivs): Likewise.
18481 (v10_fdivd): Likewise.
18482
18483 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18484
18485 PR driver/70132
18486 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
18487 to not call fclose twice on file.
18488
18489 2016-03-23 Jakub Jelinek <jakub@redhat.com>
18490
18491 PR tree-optimization/70354
18492 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
18493 oprnd0 is wider than oprnd1 and there is a cast from the wider
18494 type to oprnd1, mask it with the mask of the narrower type.
18495
18496 PR target/70321
18497 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
18498 Optimize TARGET_STV splitters, if high or low word of last argument
18499 is 0 or -1.
18500
18501 2016-03-22 Jeff Law <law@redhat.com>
18502
18503 PR target/70232
18504 tree-ssa-threadbackward.c
18505 (fsm_find_control_statement_thread_paths): Correctly distinguish
18506 between old style jump threads vs FSM jump threads.
18507
18508 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
18509
18510 PR target/70302
18511 * config/i386/i386.c (scalar_chain::convert_op): Support
18512 uninitialized register usage case.
18513
18514 2016-03-22 Richard Biener <rguenther@suse.de>
18515
18516 PR middle-end/70251
18517 * genmatch.c (gen_transform): Adjust last parameter to a three-state
18518 int...
18519 (capture::gen_transform): ... to change behavior when substituting
18520 a condition into cond or not-cond expr context.
18521 (dt_simplify::gen_1): Adjust.
18522 * gimple-match-head.c: Include gimplify.h for unshare_expr.
18523 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
18524 last change and instead change to
18525 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
18526 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18527
18528 2016-03-22 Anthony Green <green@moxielogic.com>
18529
18530 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
18531 issue for moxiebox targets.
18532 (CC1PLUS_SPEC): Ditto.
18533
18534 2016-03-22 Richard Biener <rguenther@suse.de>
18535
18536 PR middle-end/70333
18537 * fold-const.c (extract_muldiv_1): Properly perform multiplication
18538 in the wide type.
18539
18540 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
18541
18542 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
18543
18544 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
18545
18546 PR target/70325
18547 * config/i386/i386.c (def_builtin): Handle
18548 OPTION_MASK_ISA_AVX512VL to be and-ed with other
18549 bits.
18550 (const struct builtin_description bdesc_special_args[]):
18551 Remove duplicate ISA bits.
18552
18553 2016-03-22 Jakub Jelinek <jakub@redhat.com>
18554
18555 PR target/70329
18556 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
18557 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
18558 in a way that works also for AVX512BW.
18559
18560 PR target/70300
18561 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
18562 instead of source if operands[1] is xmm16 and above and
18563 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
18564 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
18565
18566 PR c++/70295
18567 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
18568 on assign if (*from_p) is a comparison, set it to
18569 TREE_NO_WARNING (*from_p).
18570
18571 2016-03-21 Jakub Jelinek <jakub@redhat.com>
18572
18573 PR middle-end/70326
18574 * lra.c (restore_scratches): Ignore deleted insns.
18575
18576 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
18577 Jakub Jelinek <jakub@redhat.com>
18578
18579 PR tree-optimization/70317
18580 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
18581 to HONOR_NANS.
18582
18583 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
18584
18585 PR target/70327
18586 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
18587 of ix86_expand_move.
18588 (movoi): Ditto.
18589 (movti): Use general_operand for operand 1 predicate.
18590
18591 2016-03-21 Martin Liska <mliska@suse.cz>
18592
18593 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
18594 insns.
18595 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
18596
18597 2016-03-21 Martin Liska <mliska@suse.cz>
18598
18599 PR ipa/70306
18600 * ipa-icf.c (sem_function::parse): Skip static
18601 constructors and destructors.
18602
18603 2016-03-21 Jakub Jelinek <jakub@redhat.com>
18604
18605 PR target/70296
18606 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
18607 function-like macro, peek following token(s) if it is followed
18608 by CPP_OPEN_PAREN token with optional padding in between, and
18609 if not, don't treat it like a macro.
18610
18611 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
18612 Alexander Monakov <amonakov@ispras.ru>
18613
18614 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
18615 for the stabs debug format.
18616
18617 2016-03-21 Richard Biener <rguenther@suse.de>
18618
18619 PR tree-optimization/70310
18620 * tree-vect-generic.c (expand_vector_condition): Fold the built
18621 condition.
18622
18623 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
18624
18625 PR target/70293
18626 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
18627 Block third alternative for AVX-512VL target,
18628
18629 2016-03-21 Martin Liska <mliska@suse.cz>
18630
18631 PR hsa/70234
18632 * hsa-brig.c (emit_function_directives): Mark unemitted
18633 global variables for emission.
18634 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
18635 (get_symbol_for_decl): Likewise.
18636 * hsa.h (struct hsa_symbol): New flag.
18637
18638 2016-03-21 Richard Biener <rguenther@suse.de>
18639
18640 PR tree-optimization/70288
18641 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
18642 we do not estimate unsimplified all-constant conditionals or
18643 switches as optimized away.
18644
18645 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
18646
18647 PR rtl-optimization/69102
18648 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
18649 when we have a readonly dependency context.
18650
18651 2016-03-18 Jeff Law <law@redhat.com>
18652
18653 PR rtl-optimization/70263
18654 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
18655 (update_equiv_regs): When trying to move a store to after the insn
18656 that sets the source of the store, make sure the store occurs after
18657 the insn that sets the source of the store. When successful note
18658 the REG_EQUIV note created in the dump file.
18659
18660 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
18661 Bernd Schmidt <bschmidt@redhat.com>
18662
18663 * doc/extend.texi: Document more potential problems with basic asms.
18664
18665 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
18666
18667 PR rtl-optimization/70278
18668 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
18669 VOIDmode.
18670
18671 2016-03-18 Jason Merrill <jason@redhat.com>
18672
18673 * calls.c (load_register_parameters): Fix zero size sibcall logic.
18674
18675 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
18676
18677 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
18678 values to 128b regs.
18679
18680 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18681
18682 PR tree-optimization/70252
18683 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
18684 boolean vector has a proper number of elements.
18685 (supportable_narrowing_operation): Likewise.
18686
18687 2016-03-18 Tom de Vries <tom@codesourcery.com>
18688
18689 PR ipa/70269
18690 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
18691
18692 2016-03-18 Jakub Jelinek <jakub@redhat.com>
18693
18694 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
18695 instead of replace_rtx for DEBUG_INSNs.
18696
18697 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18698
18699 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
18700 load type reservations.
18701
18702 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
18703
18704 PR target/70188
18705 * config/pa/constraints.md: Revert 2015-02-13 change. Use
18706 define_constraint for "Q" and "T" constraints.
18707
18708 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
18709
18710 Tweak the pipeline model for Exynos M1
18711
18712 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
18713 model.
18714
18715 2016-03-17 David Malcolm <dmalcolm@redhat.com>
18716
18717 PR c/70264
18718 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
18719 where one or both locations aren't within a line_map.
18720
18721 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
18722
18723 PR driver/70192
18724 * opts.c (finish_options): Don't set flag_pie to the default if
18725 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
18726 if it is -1.
18727
18728 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
18729
18730 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
18731 true as ALL_REGS argument to replace_rtx.
18732
18733 2016-03-17 Richard Biener <rguenther@suse.de>
18734
18735 PR debug/70271
18736 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
18737 last.
18738
18739 2016-03-17 Jakub Jelinek <jakub@redhat.com>
18740
18741 PR target/70245
18742 * rtl.h (replace_rtx): Add ALL_REGS argument.
18743 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
18744 equality and assert mode is the same, instead of just rtx pointer
18745 equality.
18746 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
18747 true as ALL_REGS argument to replace_rtx.
18748
18749 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
18750
18751 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
18752 for boolean vector with vector mode only.
18753 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18754
18755 2016-03-17 Nick Clifton <nickc@redhat.com>
18756
18757 PR target/70162
18758 * config/rx/rx.c (rx_print_integer): Print negative constants in
18759 decimal.
18760
18761 2016-03-17 Jakub Jelinek <jakub@redhat.com>
18762
18763 PR target/70261
18764 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
18765
18766 2016-03-16 Richard Henderson <rth@redhat.com>
18767 Richard Biener <rguenth@suse.de>
18768
18769 PR middle-end/70240
18770 PR middle-end/68215
18771 PR tree-opt/68714
18772 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
18773 first operand as is_gimple_condexpr.
18774
18775 PR middle-end/70240
18776 PR middle-end/68215
18777 Revert r231575
18778 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
18779 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
18780 Do not gimplify the result.
18781 (do_unop): Adjust call to tree_vec_extract.
18782 (do_binop): Likewise.
18783 (do_compare): Likewise.
18784 (do_plus_minus): Likewise.
18785 (do_negate): Likewise.
18786 (expand_vector_condition): Likewise.
18787 (do_cond): Likewise.
18788
18789 2016-03-16 Richard Henderson <rth@redhat.com>
18790
18791 PR target/70048
18792 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
18793 (aarch64_classify_address): Use it.
18794 (aarch64_legitimize_address): Force all subexpressions of PLUS
18795 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
18796
18797 2016-03-16 Jakub Jelinek <jakub@redhat.com>
18798 Richard Biener <rguenth@suse.de>
18799
18800 PR target/70245
18801 * rtlanal.c (replace_rtx): For REG, if from is a REG,
18802 return to even if only REGNO is equal, and assert
18803 mode is the same.
18804
18805 2016-03-11 Jeff Law <law@redhat.com>
18806
18807 PR rtl-optimization/70224
18808 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
18809
18810 2016-03-16 Richard Henderson <rth@redhat.com>
18811
18812 PR middle-end/70199
18813 * function.h (struct function): Add has_forced_label_in_static.
18814 * gimplify.c (force_labels_r): Set it.
18815 * lto-streamer-in.c (input_struct_function_base): Read it.
18816 * lto-streamer-out.c (output_struct_function_base): Write it.
18817 * tree-inline.c (has_label_address_in_static_1): Remove.
18818 (copy_forbidden): Remove fndecl parameter; test
18819 has_forced_label_in_static.
18820 (inline_forbidden_p): Update call to copy_forbidden.
18821 (tree_versionable_function_p): Likewise.
18822 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
18823 (chkp_versioning): Likewise.
18824 * tree-inline.h (copy_forbidden): Update decl.
18825
18826 2016-03-16 Marek Polacek <polacek@redhat.com>
18827
18828 PR c/70093
18829 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
18830 function being thunked if the result type doesn't have fixed size.
18831 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
18832 doesn't have fixed size.
18833
18834 2016-03-16 Bin Cheng <bin.cheng@arm.com>
18835
18836 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
18837 reporting malformed loop nest.
18838
18839 2016-03-16 Tom de Vries <tom@codesourcery.com>
18840
18841 PR lto/70187
18842 * ipa-devirt.c (possible_polymorphic_call_targets): Move
18843 nodes.length () == 1 test to before first nodes[0] access.
18844
18845 2016-03-16 Tom de Vries <tom@codesourcery.com>
18846
18847 PR tree-optimization/68715
18848 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
18849 single_pred_p test.
18850
18851 2016-03-16 Tom de Vries <tom@codesourcery.com>
18852
18853 PR tree-optimization/68809
18854 * graphite-scop-detection.c (same_close_phi_node): Test if result types
18855 are the same.
18856
18857 2016-03-16 Carlos O'Donell <carlos@redhat.com>
18858 Sandra Loosemore <sandra@codesourcery.com>
18859
18860 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
18861 on leaf attribute. Mention ELF interposition problems.
18862
18863 2016-03-16 Alan Modra <amodra@gmail.com>
18864
18865 PR rtl-optimization/69195
18866 PR rtl-optimization/47992
18867 * ira.c (indirect_jump_optimize): Ignore artificial defs.
18868 Add comments.
18869
18870 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
18871
18872 PR bootstrap/69513
18873 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
18874
18875 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18876
18877 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
18878
18879 2016-03-15 Jakub Jelinek <jakub@redhat.com>
18880
18881 PR rtl-optimization/70222
18882 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
18883 optimization if mode is different from result_mode, queue up masking
18884 of the result in outer_op. Formatting fix.
18885
18886 PR middle-end/70239
18887 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
18888 of safe_grow.
18889
18890 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18891
18892 PR rtl-optimization/69032
18893 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
18894 looping backwards over basic block insns.
18895
18896 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18897
18898 PR target/66660
18899 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
18900 to non-speculative when propagating trap bits.
18901
18902 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18903
18904 PR rtl-optimization/63384
18905 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
18906 DEBUG_INSN_P insns.
18907
18908 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18909
18910 PR target/64411
18911 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
18912 factored out from ...
18913 (sched_analyze_insn): ... here.
18914 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
18915 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
18916 get_implicit_reg_pending_clobbers in it.
18917 (setup_id_reg_sets): Use setup_id_implicit_regs.
18918 (deps_init_id): Ditto.
18919
18920 2016-03-15 Tom de Vries <tom@codesourcery.com>
18921
18922 PR ipa/70161
18923 * cgraph.c (cgraph_node::get_body): Save, reset and restore
18924 dump_file_name.
18925 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
18926 execute_function_dump.
18927 (execute_one_pass): Don't dump function if it will be dumped after ipa
18928 transform.
18929
18930 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
18931
18932 * genrecog.c (match_pattern_2): If pred is NULL don't call
18933 safe_predicate_mode on it.
18934
18935 2016-03-14 Jakub Jelinek <jakub@redhat.com>
18936
18937 PR middle-end/70219
18938 * lra-constraints.c (delete_move_and_clobber): Change assertion
18939 to also allow dregno == 0.
18940
18941 2016-03-14 Richard Henderson <rth@redhat.com>
18942
18943 PR tree-opt/68714
18944 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
18945 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
18946 (reassociate_bb): Use optimize_vec_cond_expr; avoid
18947 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
18948 on vectors.
18949
18950 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
18951
18952 PR target/70083
18953 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
18954 regs.
18955 (lra_create_live_ranges_1): initialize hard register biggest_mode to
18956 VOIDmode.
18957 * lra-constraints.c (split_reg): For hard regs, try to find the
18958 biggest single-register mode used in the function.
18959
18960 2016-03-14 Richard Biener <rguenther@suse.de>
18961
18962 PR tree-optimization/56365
18963 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
18964 constants to compare against.
18965
18966 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
18967
18968 PR target/70098
18969 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
18970 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
18971 (define_split for the GPR case): Use int_reg_operand instead of
18972 gpc_reg_operand for the output.
18973
18974 2016-03-14 Tom de Vries <tom@codesourcery.com>
18975
18976 PR tree-optimization/70045
18977 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
18978 create_empty_if_region_on_edge argument.
18979
18980 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
18981
18982 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
18983 (STACK_CHECK_PROTECT): Likewise.
18984 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
18985 (STACK_CHECK_PROTECT): Likewise.
18986 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
18987 (STACK_CHECK_PROTECT): Likewise.
18988 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
18989 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
18990 (STACK_CHECK_PROTECT): Likewise.
18991
18992 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
18993
18994 PR rtl-optimization/69307
18995 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
18996 registers in modes that span more than one register.
18997
18998 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
18999
19000 PR target/69614
19001 * lra-constraints.c (delete_move_and_clobber): New.
19002 (remove_inheritance_pseudos): Use it.
19003
19004 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
19005
19006 PR ada/70017
19007 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
19008 the libcall is LCT_THROW.
19009 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
19010 for the checking routine.
19011
19012 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19013
19014 PR target/70131
19015 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
19016 optimization if we have direct move.
19017 (roundu32<mode>2_fprs): Likewise.
19018
19019 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
19020
19021 PR target/70123
19022 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
19023 be rematerialized.
19024 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
19025 Arguments swapped. All callers changed. Take reg_renumber into
19026 account, and Calculate and compare register ranges for hard regs.
19027
19028 2016-03-11 Jeff Law <law@redhat.com>
19029
19030 PR tree-optimization/70190
19031 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19032 Handle cases where we can not extract the taken edge, even though we
19033 found a constant value.
19034
19035 PR tree-optimization/64058
19036 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
19037 (num_coalesce_pairs): Move up earlier in file.
19038 (find_coalesce_pair): Initialize the INDEX field for each pair
19039 discovered.
19040 (compare_pairs): No longer sort on the elements in each pair.
19041 Instead break ties with the index of the coalesce pair.
19042
19043 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19044
19045 PR target/70002
19046 * config/aarch64/aarch64-protos.h
19047 (aarch64_save_restore_target_globals): New prototype.
19048 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
19049 Call the above when popping pragma.
19050 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
19051 New function.
19052 (aarch64_set_current_function): Rewrite using the above.
19053
19054 2016-03-11 Jakub Jelinek <jakub@redhat.com>
19055
19056 PR tree-optimization/70177
19057 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
19058 (extract_ops_from_tree): ... this. In the 2 argument
19059 overload remove _1 suffix.
19060 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
19061 (extract_ops_from_tree): ... this.
19062 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
19063 Adjust callers.
19064 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19065 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
19066 extract_ops_from_tree instead of 2 operand one.
19067
19068 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
19069
19070 PR tree-optimization/70013
19071 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
19072 for constant-pool entries.
19073
19074 2016-03-11 Jakub Jelinek <jakub@redhat.com>
19075
19076 PR rtl-optimization/70174
19077 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
19078 followed by gen_lowpart on force_reg instead of just gen_lowpart.
19079
19080 PR tree-optimization/70169
19081 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
19082 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
19083 for unknown codes.
19084
19085 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
19086 Jakub Jelinek <jakub@redhat.com>
19087
19088 PR target/70160
19089 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
19090 of uninitialized values.
19091
19092 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19093
19094 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
19095 define_expand.
19096 ("*trunctddd2"): New pattern definition.
19097 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
19098 TD->DD truncation.
19099
19100 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19101
19102 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
19103 definitions for BFP and DFP rounding modes.
19104 ("fixuns_truncdddi2", "fixuns_trunctddi2")
19105 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
19106 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
19107 ("fix_trunctf<mode>2"): Use the new constants instead of magic
19108 numbers.
19109
19110 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19111
19112 * config/s390/constraints.md: Adjust comment.
19113 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
19114 s390_decompose_addrstyle_without_index.
19115 * config/s390/predicates.md (shift_count_or_setmem_operand):
19116 Rename to setmem_operand.
19117 * config/s390/s390-protos.h
19118 (s390_decompose_shift_count): Rename to
19119 s390_decompose_addrstyle_without_index.
19120 * config/s390/s390.c (s390_decompose_shift_count)
19121 (s390_mem_constraint, print_shift_count_operand)
19122 (print_operand_address, print_operand): Rename
19123 s390_decompose_shift_count to
19124 s390_decompose_addrstyle_without_index and rename
19125 print_shift_count_operand to print_addrstyle_operand troughout the
19126 file.
19127 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
19128 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
19129 Rename shift_count_or_setmem_operand to setmem_operand.
19130 * config/s390/vx-builtins.md ("vec_insert<mode>")
19131 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
19132 nonmemory_operand.
19133
19134 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19135
19136 PR target/70168
19137 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19138 Handle overlapping retval and newval.
19139
19140 2016-03-10 Nick Clifton <nickc@redhat.com>
19141
19142 PR target/7044
19143 * config/aarch64/aarch64.c
19144 (aarch64_override_options_after_change_1): When forcing
19145 flag_omit_frame_pointer to be true, use a special value that can
19146 be detected if this function is called again, thus preventing
19147 flag_omit_leaf_frame_pointer from being forced to be false.
19148
19149 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19150
19151 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
19152 Set x_flag_omit_leaf_frame_pointer when handling
19153 -momit-leaf-frame-pointer.
19154
19155 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19156
19157 PR lto/69589
19158 * cgraph.c (cgraph_node::dump): Dump split_part and
19159 indirect_call_target.
19160 * cgraph.h (cgraph_node): Add indirect_call_target flag.
19161 * ipa.c (has_addr_references_p): Cleanup.
19162 (is_indirect_call_target_p): New.
19163 (walk_polymorphic_call_targets): Do not mark virtuals that may be
19164 called indirectly as local.
19165 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
19166
19167 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19168
19169 PR ipa/69630
19170 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
19171 on cxa_pure_virtual.
19172
19173 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19174
19175 PR lto/69589
19176 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
19177
19178 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19179
19180 PR lto/69589
19181 * tree.c (need_assembler_name_p): Only record main variant type names.
19182
19183 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
19184
19185 PR target/70113.
19186 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
19187 Always define to 0 or 1.
19188 (TARGET_FIX_ERR_A53_843419): New macro.
19189 * config/aarch64/aarch64-elf-raw.h
19190 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
19191 * config/aarch64/aarch64-linux.h: Likewise.
19192 * config/aarch64/aarch64.c
19193 (aarch64_override_options_after_change_1): Do not default
19194 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
19195 843419 is on.
19196 (aarch64_attributes): Handle fix-cortex-a53-843419.
19197 (aarch64_can_inline_p): Likewise.
19198 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
19199
19200 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
19201 Jakub Jelinek <jakub@redhat.com>
19202
19203 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
19204 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
19205 DECL_COMMONS if flag_unconstrained_commons is set.
19206 * tree-dfa.c (get_ref_base_and_extent): Likewise.
19207 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
19208 (funconstrained-commons): Document.
19209
19210 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
19211
19212 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
19213 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
19214
19215 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
19216
19217 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
19218 has a proper number of elements.
19219
19220 2016-03-10 Alan Modra <amodra@gmail.com>
19221
19222 PR rtl-optimization/69195
19223 PR rtl-optimization/47992
19224 * ira.c (recorded_label_ref): Delete.
19225 (update_equiv_regs): Return void.
19226 (indirect_jump_optimize): New function.
19227 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
19228 before regstat_compute_ri. Don't rebuild_jump_labels here.
19229 Delete update_regstat.
19230
19231 2016-03-10 Richard Biener <rguenther@suse.de>
19232
19233 PR tree-optimization/70128
19234 * tree-ssa-structalias.c (set_uids_in_ptset): Set
19235 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
19236
19237 2016-03-09 Jakub Jelinek <jakub@redhat.com>
19238
19239 PR tree-optimization/70152
19240 * tree-sra.c (replace_removed_params_ssa_names): Copy over
19241 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
19242
19243 PR target/70086
19244 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
19245 instead of gen_sse2_loadlpd.
19246 * config/i386/sse.md (*vec_concatv2df): Rename to...
19247 (vec_concatv2df): ... this.
19248
19249 PR tree-optimization/70127
19250 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
19251
19252 2016-03-09 David Malcolm <dmalcolm@redhat.com>
19253
19254 PR c/68473
19255 PR c++/70105
19256 * diagnostic-show-locus.c (compatible_locations_p): New function.
19257 (layout::layout): Sanitize ranges using compatible_locations_p.
19258
19259 2016-03-09 David Malcolm <dmalcolm@redhat.com>
19260
19261 PR c/68473
19262 PR c++/70105
19263 * diagnostic-show-locus.c (layout_range::layout_range): Replace
19264 location_range param with three const expanded_locations * and a
19265 bool.
19266 (layout::layout): Replace call to
19267 rich_location::lazily_expand_location with get_expanded_location.
19268 Extract the range and perform location expansion here, passing
19269 the results to the layout_range ctor.
19270 * diagnostic.c (source_range::debug): Delete.
19271 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
19272 of rich_location::get_expanded_location.
19273 * gcc-rich-location.c (get_range_for_expr): Delete.
19274 (gcc_rich_location::add_expr): Reimplement to avoid the
19275 rich_location::add_range overload that took a location_range,
19276 passing a location_t instead.
19277
19278 2016-03-09 Richard Biener <rguenther@suse.de>
19279 Jakub Jelinek <jakub@redhat.com>
19280
19281 PR tree-optimization/70138
19282 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
19283 Also skip vect_double_reduction_def.
19284
19285 2016-03-09 Jakub Jelinek <jakub@redhat.com>
19286
19287 PR target/70049
19288 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
19289 if the operand is "m".
19290
19291 2016-03-09 Nathan Sidwell <nathan@acm.org>
19292
19293 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
19294
19295 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19296
19297 * config/i386/i386.c (processor_target_table): Fix cost table
19298 intialization order for znver1.
19299
19300 2016-03-08 Jakub Jelinek <jakub@redhat.com>
19301
19302 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
19303 - becuase -> because.
19304 * ipa-reference.c (ignore_module_statics): Likewise.
19305 * cgraph.c (cgraph_node::get_body): Likewise.
19306 * ipa-inline.c (early_inliner): Likewise.
19307 * ipa-devirt.c (types_same_for_odr): Likewise.
19308 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
19309 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
19310
19311 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19312
19313 * tree-ssa-math-opts.c: Fix typo in comment.
19314
19315 2016-03-08 Jakub Jelinek <jakub@redhat.com>
19316
19317 PR target/70110
19318 * config/i386/i386.c (scalar_chain::make_vector_copies,
19319 scalar_chain::convert_reg): Call end_sequence in between
19320 get_insns and emit_conversion_insns rather than after both
19321 calls.
19322
19323 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
19324
19325 PR target/70064
19326 * config/i386/i386.h (machine_function): Add
19327 pc_thunk_call_expanded flag.
19328 (ix86_pc_thunk_call_expanded): New define.
19329 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
19330 (*set_got): Rename insn pattern from set_got.
19331 (*set_got_labelled): Rename inst pattern from set_got_labelled.
19332 * config/i386/i386.c (ix86_compute_frame_layout): Use
19333 ix86_pc_thunk_call_expanded to prevent red-zone.
19334
19335 2016-03-07 Martin Jambor <mjambor@suse.cz>
19336
19337 * hsa.h (hsa_get_ctor_statements): Declare.
19338 (hsa_get_dtor_statements): Likewise.
19339 (hsa_get_kernel_dispatch_type): Likewise.
19340 * hsa.c (hsa_get_ctor_statements): New function.
19341 (hsa_get_dtor_statements): Likewise.
19342 (hsa_get_kernel_dispatch_type): Likewise.
19343 * hsa-brig.c (hsa_cdtor_statements): Removed.
19344 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
19345 hsa_get_dtor_statements.
19346 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
19347 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
19348
19349 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
19350
19351 * config/arm/arm-cores.def (cortex-r8): New.
19352 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
19353 * config/arm/arm-tune.md: Likewise.
19354 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
19355
19356 2016-03-07 Martin Sebor <msebor@redhat.com>
19357
19358 PR rtl-optimization/19705
19359 * doc/invoke.texi (Options That Control Optimization): Clarify
19360 -fno-branch-count-reg.
19361
19362 2016-02-26 Richard Biener <rguenther@suse.de>
19363 Jeff Law <law@redhat.com>
19364
19365 PR tree-optimization/69740
19366 * cfghooks.c (remove_edge): Request loop fixups if we delete
19367 an edge that might turn an irreducible loop into a natural
19368 loop.
19369 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
19370 Move after definition of loops_state_clear.
19371
19372 2016-03-07 Bin Cheng <bin.cheng@arm.com>
19373
19374 PR rtl-optimization/69052
19375 * rtlanal.c (commutative_operand_precedence): Set higher precedence
19376 to CONST_WIDE_INT.
19377
19378 2016-03-07 Tom de Vries <tom@codesourcery.com>
19379
19380 PR tree-optimization/70116
19381 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
19382 is_tm_ending stmts and ubsan/asan internal functions.
19383 (find_duplicate): Use it. Don't test is_tm_ending here.
19384
19385 2016-03-07 Richard Biener <rguenther@suse.de>
19386
19387 PR tree-optimization/70115
19388 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
19389 (propagate_constants_for_unrolling): Use replace_uses_by.
19390
19391 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
19392
19393 PR middle-end/69916
19394 * omp-low.c (struct oacc_loop): Add ifns.
19395 (new_oacc_loop_raw): Initialize it.
19396 (finish_oacc_loop): Clear mask & flags if no ifns.
19397 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
19398 (oacc_loop_xform_loop): Add ifns arg & adjust.
19399 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
19400
19401 2016-03-07 Richard Henderson <rth@redhat.com>
19402
19403 PR rtl-opt/70061
19404 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
19405 (insert_value_copy_on_edge): Likewise.
19406
19407 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19408
19409 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
19410
19411 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19412
19413 PR target/62281
19414 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
19415
19416 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
19417
19418 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
19419
19420 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
19421
19422 Fix sseimul type attribute.
19423 * config/i386/znver1.md
19424 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
19425 znver1_sseimul_avx256_load) : Fix the type attribute.
19426 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
19427 pipe usage and latency.
19428
19429 2016-03-05 Jakub Jelinek <jakub@redhat.com>
19430
19431 PR c++/70084
19432 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
19433 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
19434 to the right type.
19435
19436 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
19437
19438 PR c/69973
19439 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
19440
19441 PR rtl-optimization/69941
19442 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
19443 the reg share its mode.
19444
19445 2016-03-04 Jeff Law <law@redhat.com>
19446
19447 PR tree-optimization/69196
19448 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19449 If the both SSA_NAMEs are anonymous, then consider them unassociated
19450 and include the PHI in the statement count.
19451
19452 2016-03-05 Tom de Vries <tom@codesourcery.com>
19453
19454 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
19455 construct in oacc routine. Check for oacc region in oacc routine.
19456
19457 2016-03-04 Jakub Jelinek <jakub@redhat.com>
19458
19459 PR target/70062
19460 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
19461 2016-02-22 changes, instead don't recurse if RECUR is already true.
19462 Don't change *dynamic_check if RECUR. Adjust recursive caller
19463 to pass true to the new argument.
19464 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
19465
19466 PR target/70059
19467 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
19468 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
19469 fixes.
19470 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
19471
19472 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
19473
19474 PR rtl-optimization/57676
19475 * lra-assigns.c (lra_assign): Guard test for maximum iterations
19476 with flag_checking.
19477
19478 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
19479
19480 * tree-vect-patterns.c (search_type_for_mask): Handle
19481 comparison of booleans.
19482
19483 2016-03-04 Jakub Jelinek <jakub@redhat.com>
19484
19485 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
19486 Fix @xref usage.
19487
19488 PR debug/69947
19489 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
19490 all other ops that have dw_val_class_die_ref operands,
19491 and DW_OP_GNU_entry_value.
19492
19493 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19494
19495 PR rtl-optimization/69904
19496 * config/arm/arm.c (arm_cannot_copy_insn_p):
19497 Return true for load-exclusive instructions.
19498
19499 2016-03-03 Jakub Jelinek <jakub@redhat.com>
19500
19501 PR target/70021
19502 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
19503 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
19504 the pattern no matter if it is used just by non-pattern, pattern
19505 or mix thereof.
19506 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
19507 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
19508 oprnd1 def_stmt is in pattern, don't look through it.
19509
19510 2016-03-03 Marek Polacek <polacek@redhat.com>
19511
19512 PR middle-end/70050
19513 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
19514
19515 2016-03-03 Martin Liska <mliska@suse.cz>
19516
19517 PR tree-optimization/70043
19518 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
19519 previous statement if we see a debug statement.
19520
19521 2016-03-03 Richard Biener <rguenther@suse.de>
19522
19523 PR tree-optimization/55936
19524 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
19525 parameter and guard unsafe equivalence use.
19526 (vrp_evaluate_conditional_warnv_with_ops): Always use
19527 safe equivalences but not via the quadratic compare_names
19528 helper.
19529
19530 2016-03-03 Michael Collison <michael.collison@linaro.org>
19531
19532 PR target/70014
19533 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
19534 for operand 1 to s_register_operand. Change predicate for operand
19535 2 to arm_not_immediate_operand.
19536
19537 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
19538
19539 * doc/tm.texi: Regenerated.
19540
19541 2016-03-02 Richard Henderson <rth@redhat.com>
19542
19543 PR rtl-opt/67145
19544 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
19545 simplification when all args are positive non-fixed registers.
19546
19547 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19548
19549 * target.def (lra_p): Specify that new ports should use LRA.
19550
19551 2016-03-02 Jakub Jelinek <jakub@redhat.com>
19552
19553 PR libgomp/69555
19554 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
19555 gimplify_type_sizes the type they refer to.
19556 (omp_notice_variable): Handle reference vars to VLAs.
19557 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
19558 reference to VLA decls in the second pass instead of first pass.
19559
19560 2016-03-02 Tom de Vries <tom@codesourcery.com>
19561
19562 PR tree-optimization/68659
19563 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
19564 new_expr == NULL_TREE.
19565 (get_new_name): Handle ADDR_EXPR.
19566
19567 2016-03-02 Bin Cheng <bin.cheng@arm.com>
19568
19569 PR rtl-optimization/69052
19570 * loop-invariant.c (canonicalize_address): New function.
19571 (inv_can_prop_to_addr_use): Check validity of address expression
19572 which is canonicalized by above function.
19573
19574 2016-03-02 Alan Modra <amodra@gmail.com>
19575
19576 PR ipa/69990
19577 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
19578 larger alignment.
19579
19580 2016-03-02 Jakub Jelinek <jakub@redhat.com>
19581
19582 PR target/70028
19583 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
19584 (*movhi_internal): Put mask moves from and to memory separately
19585 from moves from/to GPRs.
19586
19587 2016-03-02 Richard Biener <rguenther@suse.de>
19588
19589 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
19590 GENERIC expressions in GIMPLE.
19591
19592 2016-03-02 Richard Biener <rguenther@suse.de>
19593
19594 * config/i386/i386.c (type_natural_mode): Fix typo.
19595
19596 2016-03-02 Nick Clifton <nickc@redhat.com>
19597
19598 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
19599
19600 2016-03-02 Richard Biener <rguenther@suse.de>
19601 Uros Bizjak <ubizjak@gmail.com>
19602
19603 PR target/67278
19604 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
19605
19606 2016-03-02 Richard Biener <rguenther@suse.de>
19607
19608 PR middle-end/67278
19609 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
19610
19611 2016-03-02 Marek Polacek <polacek@redhat.com>
19612
19613 PR c/67854
19614 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
19615 "is promoted to" warning.
19616
19617 2016-03-01 DJ Delorie <dj@redhat.com>
19618
19619 * config.gcc: Deprecate mep-*.
19620
19621 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
19622
19623 PR middle-end/70025
19624 * lra-constraints.c (regno_val_use_in): New.
19625 (match_reload): Use it instead of regno_use_in.
19626
19627 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
19628
19629 PR rtl-optimization/70007
19630 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
19631 references present in REG_EQUAL notes attached to non-SET patterns.
19632
19633 2016-03-01 Jeff Law <law@redhat.com>
19634
19635 PR tree-optimization/69196
19636 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19637 Appropriately clamp the number of statements to copy when the
19638 thread path does not traverse a loop backedge.
19639
19640 PR tree-optimization/69196
19641 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19642 Do count some PHIs in the thread path against the insn count. Decrease
19643 final statement count by one as the control statement in the last
19644 block will get removed. Remove special cased code for handling PHIs
19645 in the last block.
19646
19647 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
19648
19649 PR target/70027
19650 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
19651 asm dialect alternatives to explicit GOTPCREL calls.
19652
19653 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
19654
19655 PR ada/70017
19656 * ira.c (do_reload): Issue warning for generic stack checking here...
19657 * reload1.c (reload): ...instead of here and streamline it.
19658
19659 2016-03-01 Nick Clifton <nickc@redhat.com>
19660
19661 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
19662
19663 2016-03-01 Richard Biener <rguenther@suse.de>
19664
19665 PR tree-optimization/69983
19666 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
19667 types and fall back to operand_equal_p.
19668
19669 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19670
19671 Revert
19672 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19673
19674 * config/s390/constraints.md ("jm8"): New constraint.
19675 * config/s390/predicates.md ("const_int_8bitset_operand"): New
19676 predicate.
19677 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
19678 into ...
19679 ("*setmem_long<setmem_and>"): New pattern.
19680 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
19681 into ...
19682 ("*setmem_long_31z<setmem_and>"): New pattern.
19683 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
19684 New substitution rules with the required attributes.
19685
19686
19687 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19688
19689 Revert
19690 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19691
19692 * gensupport.c (process_substs_on_one_elem): Split loop to
19693 complete mark_operands_used_in_match_dup on all expressions in the
19694 vector first.
19695 (adjust_operands_numbers): Inline into process_substs_on_one_elem
19696 and remove function.
19697
19698 2016-03-01 Richard Biener <rguenther@suse.de>
19699
19700 PR middle-end/70022
19701 * fold-const.c (fold_indirect_ref_1): Fix range checking for
19702 vector BIT_FIELD_REF extract.
19703
19704 2016-03-01 Richard Biener <rguenther@suse.de>
19705
19706 PR tree-optimization/69994
19707 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
19708
19709 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
19710
19711 PR tree-optimization/69956
19712 * tree-vect-stmts.c (supportable_widening_operation): Support
19713 multi-step conversion of boolean vectors.
19714 (supportable_narrowing_operation): Likewise.
19715
19716 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19717
19718 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
19719 anymore.
19720
19721 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19722
19723 * config/s390/subst.md (DSI_VI): New mode iterator.
19724 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
19725 * config/s390/vector.md ("vec_set<mode>"): Move expander before
19726 the insn definition.
19727 ("*vec_set<mode>"): Change predicate and add alternative to
19728 support only either register or const_int operands as element
19729 selector.
19730 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
19731 operands.
19732 ("vec_extract<mode>"): New expander.
19733 ("*vec_extract<mode>"): New insn definition supporting reg and
19734 const_int element selectors.
19735 ("*vec_extract<mode>_plus"): New insn definition supporting
19736 reg+const_int element selectors.
19737 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
19738 following expander+insn definition.
19739 ("<vec_shifts_name><mode>3"): New expander.
19740 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
19741
19742 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19743
19744 * config/s390/s390.md ("*tabort_1"): Change predicate to
19745 nonmemory_operand. Add a second alternative to cover
19746 register as well as const int operands.
19747 ("*tabort_1_plus"): New pattern definition.
19748
19749 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19750
19751 * config/s390/s390.md ("*ashrdi3_cc_31")
19752 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
19753 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
19754 Merge insn definitions into ...
19755 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
19756 New pattern definition.
19757 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
19758 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
19759 ("*ashr<mode>3_and"): Merge insn definitions into ...
19760 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
19761 New pattern definition.
19762 * config/s390/subst.md ("addr_style_op_cc_subst")
19763 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
19764 substitutions patterns plus attributes.
19765 Add ashiftrt to SUBST iterator.
19766
19767 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19768
19769 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
19770 op2 to nonmemory_operand.
19771 ("*<shift>di3_31", "*<shift>di3_31_and"):
19772 Merge into single pattern definition ...
19773 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
19774 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
19775 pattern definition ...
19776 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
19777 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
19778 iterator.
19779
19780 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19781
19782 * config/s390/predicates.md (const_int_6bitset_operand): New
19783 predicate.
19784 * config/s390/s390.md: Include subst.md.
19785 ("rotl<mode>3"): New expander.
19786 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
19787 ...
19788 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
19789 * config/s390/subst.md: New file.
19790
19791 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19792
19793 * config/s390/s390.md ("op_type", "atype", "length" attributes):
19794 Remove RRR type. It doesn't really exist.
19795 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
19796 attributes.
19797 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
19798 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
19799 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
19800 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
19801 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
19802 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
19803 `enabled' attribute.
19804
19805 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19806
19807 * gensupport.c (process_substs_on_one_elem): Split loop to
19808 complete mark_operands_used_in_match_dup on all expressions in the
19809 vector first.
19810 (adjust_operands_numbers): Inline into process_substs_on_one_elem
19811 and remove function.
19812
19813 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
19814
19815 PR target/69706
19816 * config/sparc/sparc.c (NWORDS_UP): Rename to...
19817 (CEIL_NWORDS): ...this. Use CEIL macro.
19818 (compute_fp_layout): Adjust to above renaming.
19819 (function_arg_union_value): Likewise.
19820 (sparc_arg_partial_bytes): Likewise.
19821 (sparc_function_arg_advance): Likewise.
19822
19823 2016-02-29 Jeff Law <law@redhat.com>
19824
19825 PR tree-optimization/70005
19826 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
19827 where an object with a boolean range is compared against a value
19828 outside [0..1].
19829
19830 PR tree-optimization/69999
19831 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
19832 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
19833 loop cleanups.
19834
19835 2016-02-29 Richard Biener <rguenther@suse.de>
19836
19837 PR tree-optimization/69994
19838 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
19839 (get_unary_op): Look through nop conversions.
19840 (ops_equal_values_p): New function, look for equality diregarding
19841 nop conversions.
19842 (eliminate_plus_minus_pair): Use ops_equal_values_p
19843 (repropagate_negates): Do not use get_unary_op here.
19844
19845 2016-02-29 Martin Liska <mliska@suse.cz>
19846
19847 * system.h: Poison ENABLE_CHECKING macro.
19848
19849 2016-02-29 Martin Liska <mliska@suse.cz>
19850
19851 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
19852 is presented in dump flags.
19853 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
19854 (hsa_regalloc): Likewise.
19855
19856 2016-02-19 Richard Biener <rguenther@suse.de>
19857
19858 PR tree-optimization/69980
19859 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
19860 permutation of those we need to keep.
19861
19862 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
19863
19864 PR target/69706
19865 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
19866 (NWORDS_UP): ...this
19867 (init_cumulative_args): Minor tweaks.
19868 (sparc_promote_function_mode): Likewise.
19869 (scan_record_type): Delete.
19870 (traverse_record_type): New function template.
19871 (classify_data_t): New structure type.
19872 (classify_registers): New inline function.
19873 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
19874 exhausted. Instantiate traverse_record_type on classify_registers and
19875 deal with the case of a structure passed in slot #15 with no FP field
19876 in the first word.
19877 (assign_data_t): New structure type.
19878 (compute_int_layout): New static function.
19879 (compute_fp_layout): Likewise.
19880 (count_registers): New inline function.
19881 (assign_int_registers): New static function.
19882 (assign_fp_registers): Likewise.
19883 (assign_registers): New inline function.
19884 (function_arg_record_value_1): Delete.
19885 (function_arg_record_value_2): Likewise.
19886 (function_arg_record_value_3): Likewise.
19887 (function_arg_record_value): Adjust to above changes. Instantiate
19888 traverse_record_type on count_registers to first count the number of
19889 registers to be used and then on assign_registers to assign them.
19890 (function_arg_union_value): Adjust to above renaming.
19891 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
19892 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
19893 case of a structure passed in slot #15
19894 (sparc_function_arg_advance): Likewise.
19895 (function_arg_padding): Minor tweak.
19896
19897 2016-02-29 Richard Biener <rguenther@suse.de>
19898
19899 PR tree-optimization/69720
19900 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
19901 the adjustment_def path for possibly vectorized defs.
19902 (vect_create_epilog_for_reduction): Handle vectorized initial
19903 defs properly.
19904
19905 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
19906
19907 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
19908
19909 2016-02-27 Jeff Law <law@redhat.com>
19910
19911 Revert
19912 2016-02-26 Richard Biener <rguenther@suse.de>
19913 Jeff Law <law@redhat.com>
19914
19915 PR tree-optimization/69740
19916 * cfghooks.c (remove_edge): Request loop fixups if we delete
19917 an edge that might turn an irreducible loop into a natural
19918 loop.
19919
19920 2016-02-27 Jakub Jelinek <jakub@redhat.com>
19921
19922 PR rtl-optimization/69896
19923 * tree-vect-generic.c (get_compute_type): Avoid single element
19924 vector types.
19925
19926 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
19927
19928 Rename the AArch64 tuning option and related functions to enable the
19929 Newton series for the reciprocal square root to reflect its
19930 approximative characteristic.
19931
19932 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
19933 function to "aarch64_emit_approx_rsqrt".
19934 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
19935 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
19936 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
19937 (xgene1_tunings): Likewise.
19938 (use_rsqrt_p): Likewise.
19939 (aarch64_emit_swrsqrt): Use new function name.
19940 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
19941 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
19942 text explaining this option.
19943 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
19944
19945 2016-02-26 Jakub Jelinek <jakub@redhat.com>
19946
19947 PR target/69969
19948 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
19949 complain about -mallow-movmisalign without -mvsx if
19950 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
19951
19952 2016-02-26 Joel Sherrill <joel@rtems.org>
19953
19954 * config.gcc: Add x86_64-*-rtems*.
19955 * config/i386/rtems-64.h: New file.
19956
19957 2016-02-26 Joel Sherrill <joel@rtems.org>
19958
19959 * config.gcc: Add aarch64-*-rtems*.
19960 * config/aarch64/rtems.h: New file.
19961
19962 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
19963
19964 PR target/69946
19965 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
19966 shift amount using %h. Add comment.
19967
19968 2016-02-26 Richard Biener <rguenther@suse.de>
19969 Jeff Law <law@redhat.com>
19970
19971 PR tree-optimization/69740
19972 * cfghooks.c (remove_edge): Request loop fixups if we delete
19973 an edge that might turn an irreducible loop into a natural
19974 loop.
19975
19976 2016-02-26 Martin Jambor <mjambor@suse.cz>
19977
19978 PR middle-end/69920
19979 * tree-sra.c (sra_modify_assign): Do not remove loads of
19980 uninitialized aggregates to SSA_NAMEs.
19981
19982 2016-02-26 Richard Henderson <rth@redhat.com>
19983
19984 PR target/69709
19985 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
19986 pseudo in case the target rtx matches the source of the left
19987 shift.
19988
19989 2016-02-26 Martin Jambor <mjambor@suse.cz>
19990
19991 PR hsa/69568
19992 * hsa.h (hsa_type_packed_p): Declare.
19993 * hsa.c (hsa_type_packed_p): New function.
19994 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
19995 loads.
19996 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
19997 * hsa-brig.c (emit_basic_insn): Likewise.
19998
19999 2016-02-26 Martin Jambor <mjambor@suse.cz>
20000
20001 pr hsa/69674
20002 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
20003 pointers.
20004 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
20005
20006 2016-02-26 Martin Jambor <mjambor@suse.cz>
20007
20008 * hsa.h (is_a_helper): New overload for hsa_op_immed for
20009 hsa_op_with_type operands.
20010 (hsa_unsigned_type_for_type): Declare.
20011 * hsa.c (hsa_unsigned_type_for_type): New function.
20012 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
20013 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
20014 the finalizer. Do not emit extra move.
20015
20016 2016-02-26 Martin Jambor <mjambor@suse.cz>
20017
20018 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
20019 atomic operations in private segment.
20020
20021 2016-02-26 Martin Jambor <mjambor@suse.cz>
20022
20023 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
20024 statements to wi->info. Also disallow omp simd constructs.
20025 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
20026 for not gridifying. Dump special string for omp_for.
20027
20028 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20029
20030 PR target/69245
20031 * config/aarch64/aarch64.c (aarch64_set_current_function):
20032 Save/restore target globals when switching to
20033 target_option_default_node.
20034
20035 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20036
20037 PR target/69613
20038 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
20039 Return 0 if !SHIFT_COUNT_TRUNCATED.
20040
20041 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20042 Eric Botcazou <ebotcazou@adacore.com>
20043
20044 PR rtl-optimization/69891
20045 * dse.c (scan_insn): If we can't figure out memset arguments
20046 or they are non-constant, call clear_rhs_from_active_local_stores.
20047
20048 2016-02-26 Martin Liska <mliska@suse.cz>
20049
20050 * doc/extend.texi: Mention clog10, clog10f an clog10l
20051 in Builtins section.
20052
20053 2016-02-26 Martin Liska <mliska@suse.cz>
20054
20055 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
20056 CHECKING_P.
20057 (resolve_args_picking_1): Likewise.
20058 * dwarf2out.h (struct GTY): Likewise.
20059
20060 2016-02-26 Martin Liska <mliska@suse.cz>
20061
20062 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
20063 with flag_checking.
20064 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20065
20066 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
20067 Martin Liska <mliska@suse.cz>
20068
20069 * doc/install.texi: Mention --enable-valgrind-annotations.
20070
20071 2016-02-26 Richard Biener <rguenther@suse.de>
20072
20073 PR tree-optimization/69551
20074 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
20075 looking through aliases adjust DECL_PT_UID to refer to the
20076 ultimate alias target.
20077
20078 2016-02-25 Martin Liska <mliska@suse.cz>
20079
20080 PR middle-end/69919
20081 * alloc-pool.c (after_memory_report): New variable.
20082 * alloc-pool.h (base_pool_allocator ::release): Do not use
20083 the infrastructure if after_memory_report.
20084 * toplev.c (toplev::main): Mark after memory report.
20085
20086 2016-02-25 Richard Biener <rguenther@suse.de>
20087
20088 PR tree-optimization/48795
20089 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
20090
20091 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
20092
20093 PR driver/68463
20094 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
20095 offloading is enabled and -fopenacc or -fopenmp is specified.
20096 (CRTOFFLOADEND): Likewise.
20097 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
20098 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
20099 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
20100 (offload_objects_file_name): New static var.
20101 (tool_cleanup): Remove offload_objects_file_name file.
20102 (find_offloadbeginend): Replace with ...
20103 (find_crtoffloadtable): ... this.
20104 (run_gcc): Remove offload_argc and offload_argv.
20105 Get offload_objects_file_name from -foffload-objects=... option.
20106 Read names of object files with offload from this file, pass them to
20107 compile_images_for_offload_targets. Don't call find_offloadbeginend and
20108 don't pass offloadbegin and offloadend to the linker. Don't pass
20109 offload non-LTO files to the linker, because now they're not claimed.
20110
20111 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
20112
20113 PR ipa/69630
20114 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20115 on builtin_unreachable.
20116
20117 2016-02-25 Jakub Jelinek <jakub@redhat.com>
20118
20119 PR rtl-optimization/69896
20120 * regcprop.c: Include cfgrtl.h.
20121 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
20122 than remembered mode, either delete it (if noop_move_p), or
20123 treat like copy_p but not noop_p instruction.
20124
20125 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20126
20127 PR debug/69705
20128 * dwarf2out.c (gen_variable_die): Work around buggy LTO
20129 - allow NULL decl for Fortran DW_TAG_common_block variables.
20130
20131 2016-02-24 Jason Merrill <jason@redhat.com>
20132
20133 * common.opt (flifetime-dse): Add -flifetime-dse=1.
20134
20135 2016-02-24 Richard Biener <rguenther@suse.de>
20136 Jakub Jelinek <jakub@redhat.com>
20137
20138 PR middle-end/69760
20139 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
20140 conditionally executed ops to well-defined overflow behavior.
20141
20142 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20143
20144 PR middle-end/69915
20145 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
20146 elements.
20147
20148 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20149
20150 PR rtl-optimization/69886
20151 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
20152 argument. Use it when checking validity of set instructions.
20153 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
20154 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
20155 callsite.
20156 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
20157 * store-motion.c (find_moveable_store): Update
20158 can_assign_to_reg_without_clobbers_p callsite.
20159
20160 2016-02-24 Richard Biener <rguenther@suse.de>
20161
20162 PR middle-end/68963
20163 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
20164 bogus check.
20165 (record_nonwrapping_iv): Do not fall back to the low/high bound
20166 for non-constant IV bases if the stmt is not always executed.
20167
20168 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20169
20170 * config/arm/arm-cores.def (cortex-a32): New entry.
20171 * config/arm/arm-tables.opt: Regenerate.
20172 * config/arm/arm-tune.md: Regenerate.
20173 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
20174 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
20175 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
20176 for -mcpu and -mtune.
20177
20178 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20179
20180 PR target/69875
20181 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
20182 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
20183 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
20184 (atomic_loaddi_1): Delete.
20185 (atomic_loaddi): Rewrite expander using the above changes.
20186
20187 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20188
20189 PR c/69918
20190 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
20191 2 to 3.
20192
20193 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20194 Richard Biener <rguenth@suse.de>
20195
20196 PR middle-end/69909
20197 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
20198 set_mem_attributes if tem is SSA_NAME which got expanded
20199 as a MEM.
20200
20201 2016-02-24 Richard Biener <rguenther@suse.de>
20202
20203 PR tree-optimization/69907
20204 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
20205 end of permutations for BB vectorization.
20206
20207 2016-02-24 Christian Bruel <christian.bruel@st.com>
20208
20209 * config/arm/arm-c.c (arm_option_override): Initialize
20210 target_option_current_node.
20211 * config/arm/arm.c (arm_pragma_target_parse): Replace
20212 build_target_option_node call by target_option_current_node.
20213 Set target_option_current_node.
20214 Fix comments.
20215
20216 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
20217
20218 PR target/69810
20219 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
20220 define_insn_and_split to define_insn.
20221 (zero_extendqi<mode>2_dot2): Same.
20222 (extendqi<mode>2_dot): Same.
20223 (extendqi<mode>2_dot2): Same.
20224
20225 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
20226
20227 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
20228 and add bypass for AES{D,E} and AESMC pairs.
20229 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
20230 and AESMC pairs.
20231
20232 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
20233
20234 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
20235 series for reciprocal square root in Exynos M1.
20236
20237 2016-02-23 Martin Sebor <msebor@redhat.com>
20238
20239 PR c/69759
20240 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
20241 __builtin_alloca_with_align.
20242
20243 2016-02-23 Richard Henderson <rth@redhat.com>
20244
20245 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
20246 (ix86_register_pragmas): Remove __seg_tls.
20247 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
20248 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
20249 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
20250 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
20251 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
20252 * doc/extend.texi (__seg_tls): Remove item.
20253
20254 2016-02-23 Richard Biener <rguenther@suse.de>
20255
20256 * alloc-pool.h (struct allocation_object): Make id member
20257 conditional on CHECKING_P again.
20258 (get_instance): Adjust.
20259 (base_pool_allocator): Likewise.
20260
20261 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
20262
20263 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
20264 (parallelize_loops): In OpenACC kernels mode, set n_threads to
20265 zero.
20266 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
20267 flag_openacc.
20268 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
20269
20270 2016-02-23 Richard Biener <rguenther@suse.de>
20271
20272 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
20273 * bitmap.h (struct bitmap_usage): Likewise.
20274 (bitmap_move): Declare.
20275 * bitmap.c (register_overhead): Take size_t argument.
20276 (bitmap_move): New function.
20277 * df-problems.c (df_rd_transfer_function): Use bitmap_move
20278 to properly account overhead.
20279 * tree.c (free_node): Use tree_size.
20280
20281 2016-02-23 Jakub Jelinek <jakub@redhat.com>
20282
20283 PR c++/69902
20284 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
20285 when inverting comparison.
20286
20287 PR c/69900
20288 * common.opt (Wunreachable-code): Add Warning flag.
20289
20290 2016-02-23 Mark Wielaard <mjw@redhat.com>
20291 Jakub Jelinek <jakub@redhat.com>
20292
20293 PR c/69911
20294 * cgraphunit.c (check_global_declaration): Check main_input_filename
20295 and DECL_SOURCE_FILE are not NULL.
20296
20297 2016-02-23 Martin Jambor <mjambor@suse.cz>
20298
20299 PR tree-optimization/69666
20300 * tree-sra.c (sra_modify_assign): Do not attempt to create
20301 default_def replacements for unscalarizable regions.
20302
20303 2016-02-20 Mark Wielaard <mjw@redhat.com>
20304
20305 PR c/28901
20306 * cgraphunit.c (check_global_declaration): Check level of
20307 warn_unused_const_variable and main_input_filename.
20308 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
20309 (-Wunused-variable): For C implies -Wunused-const-variable=1.
20310 (-Wunused-const-variable): Explain levels 1 and 2.
20311
20312 2016-02-22 Jakub Jelinek <jakub@redhat.com>
20313
20314 PR target/69888
20315 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
20316 identical arguments. Formatting and spelling fixes.
20317
20318 PR target/69885
20319 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
20320 be specified.
20321
20322 PR target/69894
20323 PR target/69895
20324 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
20325 and m68k-devices.def.
20326 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
20327 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
20328
20329 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
20330
20331 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
20332 and HImode registers.
20333
20334 2016-02-22 Richard Biener <rguenther@suse.de>
20335
20336 PR tree-optimization/69882
20337 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
20338 preserve permutations present because of gaps.
20339 (vect_supported_load_permutation_p): Always continue checking
20340 permutations after vect_attempt_slp_rearrange_stmts.
20341
20342 2016-02-22 Bin Cheng <bin.cheng@arm.com>
20343
20344 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
20345 min_profitable_estimate, rather than min_profitable_iters.
20346
20347 2016-02-22 Jakub Jelinek <jakub@redhat.com>
20348
20349 PR target/69885
20350 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
20351 SImode for last match_operand.
20352
20353 2016-02-22 Martin Liska <mliska@suse.cz>
20354
20355 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
20356 return bitsize - 1 as the return value.
20357
20358 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
20359
20360 PR target/69806
20361 PR target/54089
20362 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
20363 Handle negative shift counts.
20364 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
20365 force_reg on the shift constant.
20366 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
20367 (lshrsi3_d): Handle negative shift counts.
20368
20369 2016-02-22 Richard Biener <rguenther@suse.de>
20370 Tom de Vries <tom@codesourcery.com>
20371
20372 * graph.c: Include dumpfile.h.
20373 (print_graph_cfg): Split into three overloads.
20374 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
20375
20376 2016-02-22 Tom de Vries <tom@codesourcery.com>
20377
20378 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
20379 dump-fn.
20380
20381 2016-02-22 Richard Biener <rguenther@suse.de>
20382
20383 PR ipa/37448
20384 * ipa-inline-transform.c (inline_call): When not updating
20385 overall summaries adjust self size by the growth estimate.
20386 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
20387 hash-set, do not update overall summaries here. Renamed from ...
20388 (inline_to_all_callers): ... this which is now wrapping the
20389 above and performing delayed overall summary update.
20390 (early_inline_small_functions): Delay updating of the overall
20391 summary.
20392
20393 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
20394
20395 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
20396 variable.
20397
20398 2016-02-19 Jakub Jelinek <jakub@redhat.com>
20399
20400 PR driver/69805
20401 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
20402 :%* in %:gt() argument.
20403 (greater_than_spec_func): Adjust for expecting only numbers,
20404 if there are more than two numbers, compare the last two.
20405
20406 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
20407
20408 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
20409 -Wnarrowing with -std.
20410
20411 2016-02-19 Jakub Jelinek <jakub@redhat.com>
20412
20413 PR c++/69851
20414 * expr.c (store_field): Don't use bit-field path if exp is
20415 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
20416 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
20417 and the assignment can be performed by bitwise copy. Formatting
20418 fix.
20419
20420 PR middle-end/69838
20421 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
20422 call copy_reg_eh_region_note_forward on before and/or after sequences
20423 and remove note from insn if it no longer can throw.
20424
20425 PR target/69820
20426 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
20427 if TARGET_AVX512BW.
20428
20429 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20430
20431 * config/s390/vector.md: Add missing commutative operand markers
20432 to the patterns which qualify for one.
20433 * config/s390/vx-builtins.md: Likewise.
20434
20435 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20436
20437 * config/s390/vector.md (VI, VI_QHS): Add single element vector
20438 types to mode iterators.
20439 (vec_double): ... and mode attribute.
20440 * config/s390/vx-builtins.md (non_vec_int): Likewise.
20441
20442 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20443
20444 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
20445 Change the predicate of op2 from nonimmediate to general and let
20446 reload fix it if necessary.
20447
20448 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20449
20450 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
20451
20452 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20453
20454 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
20455 mode.
20456
20457 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20458
20459 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
20460 * config/s390/s390.c (s390_expand_vec_movstr): New function.
20461 * config/s390/s390.md ("movstr<P:mode>"): Call
20462 s390_expand_vec_movstr.
20463
20464 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20465
20466 * config/s390/s390.md: Add missing output modifier for operand 1
20467 to print it as address properly.
20468
20469 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20470
20471 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
20472 * config/s390/2964.md: New file.
20473 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
20474 of insn grouping attributes depending on the CPU level.
20475 (s390_get_unit_mask): New function.
20476 (s390_sched_score): Remove the OOO from the scheduling macros.
20477 Add loop to calculate a score for the instruction mix.
20478 (s390_sched_reorder): Likewise plus improve debug output.
20479 (s390_sched_variable_issue): Rename macros as above. Calculate
20480 the unit distances after actually scheduling an insn. Improve
20481 debug output.
20482 (s390_sched_init): Clear last_scheduled_unit_distance array.
20483 * config/s390/s390.md: Include 2964.md.
20484
20485 2016-02-18 Jakub Jelinek <jakub@redhat.com>
20486
20487 PR target/69671
20488 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
20489 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
20490 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
20491 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
20492 *avx512f_<code>v8div16qi2_mask_1): New insns.
20493
20494 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
20495
20496 PR target/68404
20497 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
20498 2016-02-09 change.
20499
20500 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
20501 earlyclobber from target. Use wF constraint for fused memory
20502 address.
20503 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
20504
20505 2016-02-18 Jakub Jelinek <jakub@redhat.com>
20506 Martin Liska <mliska@suse.cz>
20507
20508 PR sanitizer/69863
20509 * cfgexpand.c (asan_sanitize_stack_p): New function.
20510 (partition_stack_vars): Use the function.
20511 (expand_stack_vars): Likewise.
20512 (defer_stack_allocation): Likewise.
20513 (expand_used_vars): Likewise.
20514
20515 2016-02-18 Richard Biener <rguenther@suse.de>
20516
20517 PR middle-end/69553
20518 * fold-const.c (operand_equal_p): Properly compare offsets for
20519 IMAGPART_EXPR and ARRAY_REF.
20520
20521 2016-02-18 Nick Clifton <nickc@redhat.com>
20522
20523 PR target/62254
20524 PR target/69610
20525 * config/arm/arm.c (arm_option_override_internal): Disable
20526 interworking if the target does not support thumb instructions.
20527 (arm_reload_in_hi): Handle the case where a register to register
20528 move needs reloading because there is no simple pattern to handle
20529 it.
20530 (arm_reload_out_hi): Likewise.
20531
20532 2016-02-18 Richard Biener <rguenther@suse.de>
20533
20534 PR middle-end/69854
20535 * match.pd: Don't use fold_binary or fold_unary for folding
20536 constants.
20537
20538 2016-02-17 Jakub Jelinek <jakub@redhat.com>
20539
20540 PR c++/69850
20541 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
20542 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
20543 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
20544 warn on gimple_no_warning_p statements.
20545
20546 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
20547
20548 * doc/extend.texi (C++ Attributes): Correct description of
20549 warn_unused type attribute.
20550
20551 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20552
20553 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
20554 correct instruction.
20555
20556 2016-02-17 Richard Biener <rguenther@suse.de>
20557
20558 PR rtl-optimization/69609
20559 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
20560 (find_traces_1_round): When ending a trace update cached priority
20561 of successors.
20562 (bb_to_key): Use cached priority when available.
20563 (copy_bb): Initialize cached priority.
20564 (reorder_basic_blocks_software_trace_cache): Likewise.
20565
20566 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20567
20568 PR target/69161
20569 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
20570 New predicate.
20571 (aarch64_comparison_operator): Break overly long line into two.
20572 (aarch64_comparison_operation): Likewise.
20573 * config/aarch64/aarch64.md (cstorecc4): Use
20574 aarch64_comparison_operator_mode instead of
20575 aarch64_comparison_operator.
20576 (cstore<mode>4): Likewise.
20577 (aarch64_cstore<mode>): Likewise.
20578 (*cstoresi_insn_uxtw): Likewise.
20579 (cstore<mode>_neg): Likewise.
20580 (*cstoresi_neg_uxtw): Likewise.
20581
20582 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20583
20584 PR target/69161
20585 * config/arm/predicates.md (arm_comparison_operator_mode):
20586 New predicate.
20587 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
20588 instead of arm_comparison_operator.
20589 (*mov_negscc): Likewise.
20590 (*mov_notscc): Likewise.
20591 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
20592 (*thumb2_mov_negscc): Likewise.
20593 (*thumb2_mov_negscc_strict_it): Likewise.
20594 (*thumb2_mov_notscc): Likewise.
20595 (*thumb2_mov_notscc_strict_it): Likewise.
20596
20597 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
20598
20599 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
20600 Add missing return.
20601
20602 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
20603
20604 * config/visium/visium.c (machine_libfunc_index): New enum.
20605 (machine_libfuncs): New structure.
20606 (visium_libfuncs): New static variable.
20607 (TARGET_INIT_LIBFUNCS): Define to...
20608 (visium_init_libfuncs): ...this. New function.
20609 (expand_block_move_4): Use the appropriate libfunc.
20610 (expand_block_move_2): Likewise.
20611 (expand_block_move_1): Likewise.
20612 (expand_block_set_4): Likewise.
20613 (expand_block_set_2): Likewise.
20614 (expand_block_set_1): Likewise.
20615 (visium_trampoline_init): Likewise.
20616
20617 2016-02-17 Nick Clifton <nickc@redhat.com>
20618
20619 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
20620 TI's devices.csv file as of March 2016.
20621
20622 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
20623
20624 PR Target/48344
20625 * opts-global.c (handle_common_deferred_options): Introduce and
20626 initialize two global variables to remember command-line options
20627 specifying a stack-limiting register.
20628 * opts.h: Add extern declarations of the two new global variables.
20629 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
20630 variable based on the values of the two new global variables.
20631
20632 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20633
20634 PR c/69835
20635 * common.opt (Wnonnull-compare): New warning.
20636 * doc/invoke.texi (-Wnonnull): Remove text about comparison
20637 of arguments against NULL.
20638 (-Wnonnull-compare): Document.
20639 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
20640 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
20641 * passes.def (pass_warn_nonnull_compare): Add.
20642 * gimple-ssa-nonnull-compare.c: New file.
20643
20644 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20645
20646 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
20647 AARCH64_EXTRA_TUNE_RECIP_SQRT.
20648
20649 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20650
20651 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
20652 reciprocal sqrt for -mlow-precision-recip-sqrt.
20653
20654 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20655 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20656
20657 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
20658 always use lane loads to construct non-constant vectors.
20659
20660 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20661
20662 * config/aarch64/aarch64.md
20663 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
20664 constraints for operand 3.
20665 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
20666
20667 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20668 Richard Biener <rguenther@suse.de>
20669
20670 PR tree-optimization/69820
20671 * tree-vect-patterns.c (type_conversion_p): Return false if
20672 *orig_type is unsigned single precision or boolean.
20673 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
20674 Formatting fix.
20675
20676 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20677
20678 PR rtl-optimization/69764
20679 PR rtl-optimization/69771
20680 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
20681 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
20682
20683 2016-02-16 Richard Biener <rguenther@suse.de>
20684
20685 PR tree-optimization/69776
20686 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
20687 sets from caller.
20688 (indirect_refs_may_alias_p): Likewise.
20689 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
20690 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
20691 according to tbaa_p.
20692 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
20693 (optimize_stmt): For redundant store discovery do not allow tbaa.
20694
20695 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
20696
20697 PR tree-optimization/69714
20698 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
20699 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
20700
20701 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
20702
20703 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
20704 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
20705 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
20706 * config/arc/arc.c (arc_init): Check FPU options.
20707 (get_arc_condition_code): Handle new CC_FPU* modes.
20708 (arc_select_cc_mode): Likewise.
20709 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
20710 register pair only. Allow access for ARCv2 accumulator.
20711 (gen_compare_reg): Whenever we have FPU support use FPU compare
20712 instructions.
20713 (arc_reorg): Don't generate brcc insns when FPU compare
20714 instructions are involved.
20715 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
20716 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
20717 floating point emulation.
20718 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
20719 (REVERSE_CONDITION): Add new CC_FPU* modes.
20720 (TARGET_FP_SP_BASE): Define.
20721 (TARGET_FP_DP_BASE): Likewise.
20722 (TARGET_FP_SP_FUSED): Likewise.
20723 (TARGET_FP_DP_FUSED): Likewise.
20724 (TARGET_FP_SP_CONV): Likewise.
20725 (TARGET_FP_DP_CONV): Likewise.
20726 (TARGET_FP_SP_SQRT): Likewise.
20727 (TARGET_FP_DP_SQRT): Likewise.
20728 (TARGET_FP_DP_AX): Likewise.
20729 * config/arc/arc.md (ARCV2_ACC): New constant.
20730 (type): New fpu type attribute.
20731 (SDF): Conditional iterator.
20732 (cstore<mode>, cbranch<mode>): Change expand condition.
20733 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
20734 handles FPU/FPX cases as well.
20735 * config/arc/arc.opt (mfpu): New option.
20736 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
20737 Renamed.
20738 (adddf3, muldf3, subdf3): Removed.
20739 * config/arc/predicates.md (proper_comparison_operator): Recognize
20740 CC_FPU* modes.
20741 * config/arc/fpu.md: New file.
20742 * doc/invoke.texi (ARC Options): Document mfpu option.
20743
20744 2016-02-16 Richard Biener <rguenther@suse.de>
20745
20746 PR rtl-optimization/69291
20747 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
20748 noce_operand_ok check.
20749
20750 2016-02-16 Tom de Vries <tom@codesourcery.com>
20751
20752 PR lto/67709
20753 * omp-low.c (simd_clone_create): Remove call to
20754 symtab->call_cgraph_insertion_hooks.
20755
20756 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20757
20758 PR tree-optimization/69802
20759 * tree-ssa-reassoc.c (update_range_test): If op is
20760 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
20761 op == 1 test of precision 1 integral op, otherwise handle
20762 that case as op itself. Fix up formatting.
20763 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
20764 up formatting.
20765
20766 2016-02-16 Richard Biener <rguenther@suse.de>
20767
20768 PR tree-optimization/69586
20769 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
20770 types for conversion sources.
20771
20772 2016-02-16 Richard Biener <rguenther@suse.de>
20773
20774 PR middle-end/69801
20775 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
20776 mask OEP_ADDRESS_OF.
20777
20778 2016-02-16 Alan Modra <amodra@gmail.com>
20779
20780 PR target/68973
20781 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
20782 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
20783 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
20784 (p8_mtvsrwz): New.
20785 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
20786 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
20787 (p8_fmrgow_<mode>): Likewise.
20788 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
20789 changes.
20790 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
20791 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
20792 to use movdi_internal64. Remove op0_di.
20793 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
20794
20795 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
20796
20797 Add support for the FCCMP insn types
20798
20799 * config/aarch64/aarch64.md (fccmp): Change insn type.
20800 (fccmpe): Likewise.
20801 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
20802 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
20803 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
20804 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
20805 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
20806 * config/arm/types.md (fccmps): Add new insn type.
20807 (fccmpd): Likewise.
20808
20809 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
20810
20811 * alias.c (get_alias_set): Fix a typo in comment.
20812
20813 2016-02-15 Richard Biener <rguenther@suse.de>
20814
20815 PR tree-optimization/69595
20816 * match.pd: Complete range test simplification to true.
20817
20818 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
20819
20820 PR rtl-optimization/69648
20821 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
20822 pic_offset_table_rtx.
20823
20824 PR rtl-optimization/69752
20825 * ira.c (update_equiv_regs): When looking for more than a single SET,
20826 also take other side effects into account.
20827
20828 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
20829
20830 * config/s390/s390.c (s390_function_profiler): Add a new sequence
20831 for z900+ CPUs in 31-bit mode.
20832
20833 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
20834
20835 * common/config/s390/s390-common.c (s390_supports_split_stack):
20836 New function.
20837 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
20838 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
20839 * config/s390/s390.c (struct machine_function): New field
20840 split_stack_varargs_pointer.
20841 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
20842 in s390_emit_prologue.
20843 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
20844 vararg pointer.
20845 (morestack_ref): New global.
20846 (SPLIT_STACK_AVAILABLE): New macro.
20847 (s390_expand_split_stack_prologue): New function.
20848 (s390_live_on_entry): New function.
20849 (s390_va_start): Use split-stack vararg pointer if appropriate.
20850 (s390_asm_file_end): Emit the split-stack note sections.
20851 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
20852 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
20853 (UNSPECV_SPLIT_STACK_CALL): New unspec.
20854 (UNSPECV_SPLIT_STACK_DATA): New unspec.
20855 (split_stack_prologue): New expand.
20856 (split_stack_space_check): New expand.
20857 (split_stack_data): New insn.
20858 (split_stack_call): New expand.
20859 (split_stack_call_*): New insn.
20860 (split_stack_cond_call): New expand.
20861 (split_stack_cond_call_*): New insn.
20862
20863 2016-02-15 Richard Biener <rguenther@suse.de>
20864
20865 PR tree-optimization/69783
20866 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
20867 Add trivially correct cases.
20868
20869 2016-02-15 Tom de Vries <tom@codesourcery.com>
20870
20871 PR lto/69655
20872 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
20873 do_force_output.
20874 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
20875
20876 2016-02-15 Richard Biener <rguenther@suse.de>
20877
20878 PR tree-optimization/69776
20879 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
20880 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
20881 indicate whether we can use TBAA to disambiguate against stores.
20882 Use alias-set zero if not.
20883 (visit_reference_op_store): Do not use TBAA when looking up
20884 redundant stores.
20885 * tree-ssa-pre.c (compute_avail): Use TBAA here.
20886 (eliminate_dom_walker::before_dom_children): But not when looking
20887 up redundant stores.
20888
20889 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
20890
20891 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
20892
20893 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20894
20895 * config/i386/znver1.md
20896 (znver1_pop, znver1_pop_mem,
20897 znver1_load_imov_double_store,
20898 znver1_load_imov_direct_store,
20899 znver1_load_imov_direct_load,
20900 znver1_load_imov_double_load): Add new.
20901 (znver1_insn, znver1_insn_load): Add icmov type.
20902 (znver1_sseavx_fma,
20903 znver1_sseavx_fma_load,
20904 znver1_avx256_fma,
20905 znver1_avx256_fma_load): Fix pipe usage.
20906
20907 2016-02-14 Alan Modra <amodra@gmail.com>
20908
20909 PR target/68973
20910 * reload.c (find_reloads_address_1): For pre/post-inc/dec
20911 with an invalid hard reg, reload just the reg not the entire
20912 pre/post-inc/dec address expression.
20913
20914 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
20915
20916 PR target/67260
20917 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
20918 fixed R1_REG scratch reg.
20919 (sibcall_value_pcrel_fdpic): Likewise.
20920
20921 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
20922
20923 PR target/67636
20924 PR target/64345
20925 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
20926
20927 2016-02-12 Walter Lee <walt@tilera.com>
20928
20929 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
20930 * config/tilegx/t-tilegx: Likewise.
20931
20932 2016-02-12 David Malcolm <dmalcolm@redhat.com>
20933
20934 PR other/69554
20935 * diagnostic-show-locus.c (struct line_span): New struct.
20936 (layout::get_first_line): Delete.
20937 (layout::get_last_line): Delete.
20938 (layout::get_num_line_spans): New member function.
20939 (layout::get_line_span): Likewise.
20940 (layout::print_heading_for_line_span_index_p): Likewise.
20941 (layout::get_expanded_location): Likewise.
20942 (layout::calculate_line_spans): Likewise.
20943 (layout::m_first_line): Delete.
20944 (layout::m_last_line): Delete.
20945 (layout::m_line_spans): New field.
20946 (layout::layout): Update comment. Replace m_first_line and
20947 m_last_line with m_line_spans, replacing their initialization
20948 with a call to calculate_line_spans.
20949 (diagnostic_show_locus): When printing source lines and
20950 annotations, rather than looping over a single span
20951 of lines, instead loop over each line_span within
20952 the layout, with an inner loop over the lines within them.
20953 Call the context's start_span callback when changing line spans.
20954 * diagnostic.c (diagnostic_initialize): Initialize start_span.
20955 (diagnostic_build_prefix): Break out the building of the location
20956 part of the string into...
20957 (diagnostic_get_location_text): ...this new function, rewriting
20958 it from nested ternary expressions to a sequence of "if"
20959 statements.
20960 (default_diagnostic_start_span_fn): New function.
20961 * diagnostic.h (diagnostic_start_span_fn): New typedef.
20962 (diagnostic_context::start_span): New field.
20963 (default_diagnostic_start_span_fn): New prototype.
20964
20965 2016-02-12 David Malcolm <dmalcolm@redhat.com>
20966
20967 PR driver/69779
20968 * gcc.c (driver::finalize): Fix cleanup of "specs".
20969
20970 2016-02-12 David Malcolm <dmalcolm@redhat.com>
20971
20972 PR driver/69265
20973 PR driver/69453
20974 * gcc.c (driver::driver): Initialize m_option_suggestions.
20975 (driver::~driver): Clean up m_option_suggestions.
20976 (suggest_option): Convert to...
20977 (driver::suggest_option): ...this, and split out into
20978 driver::build_option_suggestions and find_closest_string.
20979 (driver::build_option_suggestions): New function, from
20980 first half of suggest_option. Special-case
20981 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
20982 the sanitizer_opts array. For options of enum types, add the
20983 various enum values to the candidate strings.
20984 (driver::handle_unrecognized_options): Remove "const".
20985 * gcc.h (driver::handle_unrecognized_options): Likewise.
20986 (driver::build_option_suggestions): New decl.
20987 (driver::suggest_option): New decl.
20988 (driver::m_option_suggestions): New field.
20989 * opts-common.c (add_misspelling_candidates): New function.
20990 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
20991 and make non-static.
20992 * opts.h (sanitizer_opts): New array decl.
20993 (add_misspelling_candidates): New function decl.
20994 * spellcheck.c (find_closest_string): New function.
20995 * spellcheck.h (find_closest_string): New function decl.
20996
20997 2016-02-12 Jakub Jelinek <jakub@redhat.com>
20998
20999 PR rtl-optimization/69764
21000 PR rtl-optimization/69771
21001 * optabs.c (expand_binop_directly): For shift_optab_p, force
21002 convert_modes with VOIDmode if xop1 has VOIDmode.
21003
21004 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
21005
21006 PR target/69729
21007 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
21008 to correctly determine instrumentation thunks.
21009
21010 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21011
21012 PR ipa/69241
21013 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
21014 type by reference, force lhs on the call.
21015
21016 PR ipa/68672
21017 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
21018 Compute retval and retbnd early in all cases if split_part_return_p
21019 and return_bb is not EXIT. Remove all clobber stmts and reset
21020 all debug stmts that refer to SSA_NAMEs defined in split part,
21021 except if it is retval, in that case replace the old retval with the
21022 lhs of the call to the split part.
21023
21024 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21025
21026 revert:
21027 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21028
21029 PR middle-end/66726
21030 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21031 whose result is used in PHI.
21032 (maybe_optimize_range_tests): Likewise.
21033 (final_range_test_p): Likweise.
21034
21035 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21036
21037 PR middle-end/66726
21038 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21039 whose result is used in PHI.
21040 (maybe_optimize_range_tests): Likewise.
21041 (final_range_test_p): Likweise.
21042
21043 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21044
21045 * cgraph.c: Spelling fixes - behaviour -> behavior and
21046 neighbour -> neighbor.
21047 * target.def: Likewise.
21048 * sel-sched.c: Likewise.
21049 * config/mips/mips.c: Likewise.
21050 * config/arc/arc.md: Likewise.
21051 * config/arm/cortex-a57.md: Likewise.
21052 * config/arm/arm.c: Likewise.
21053 * config/arm/neon.md: Likewise.
21054 * config/arm/arm-c.c: Likewise.
21055 * config/vms/vms-c.c: Likewise.
21056 * config/s390/s390.c: Likewise.
21057 * config/i386/znver1.md: Likewise.
21058 * config/i386/i386.c: Likewise.
21059 * config/ia64/hpux-unix2003.h: Likewise.
21060 * config/msp430/msp430.md: Likewise.
21061 * config/rx/rx.c: Likewise.
21062 * config/rx/rx.md: Likewise.
21063 * config/aarch64/aarch64-simd.md: Likewise.
21064 * config/aarch64/aarch64.c: Likewise.
21065 * config/nvptx/nvptx.c: Likewise.
21066 * config/bfin/bfin.c: Likewise.
21067 * config/cris/cris.opt: Likewise.
21068 * config/rs6000/rs6000.c: Likewise.
21069 * target.h: Likewise.
21070 * spellcheck.c: Likewise.
21071 * ira-build.c: Likewise.
21072 * tree-inline.c: Likewise.
21073 * builtins.c: Likewise.
21074 * lra-constraints.c: Likewise.
21075 * explow.c: Likewise.
21076 * hwint.h: Likewise.
21077 * targhooks.c: Likewise.
21078 * tree-vect-data-refs.c: Likewise.
21079 * expr.c: Likewise.
21080 * doc/tm.texi: Likewise.
21081 * doc/extend.texi: Likewise.
21082 * doc/install.texi: Likewise.
21083 * doc/md.texi: Likewise.
21084 * tree-ssa-tail-merge.c: Likewise.
21085 * sched-int.h: Likewise.
21086 * match.pd: Likewise.
21087 * sched-ebb.c: Likewise.
21088 * target.def (omit_struct_return_reg): Likewise.
21089 * gimple-ssa-isolate-paths.c: Likewise.
21090 (find_implicit_erroneous_behaviour): Renamed to...
21091 (find_implicit_erroneous_behavior): ... this.
21092 (find_explicit_erroneous_behaviour): Renamed to...
21093 (find_explicit_erroneous_behavior): ... this.
21094 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
21095
21096 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
21097
21098 PR rtl-optimization/64682
21099 PR rtl-optimization/69567
21100 PR rtl-optimization/69737
21101 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
21102 in I2 as well, just lose it.
21103
21104 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21105
21106 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
21107 New variable.
21108 (aarch64_last_printed_tune_string): Likewise.
21109 (aarch64_declare_function_name): Only output .arch assembler
21110 directive if it will be different from the previously output
21111 directive. Same for .tune comment but only if -dA is set.
21112 (aarch64_start_file): New function.
21113 (TARGET_ASM_FILE_START): Define.
21114
21115 2016-02-11 David Malcolm <dmalcolm@redhat.com>
21116
21117 PR plugins/69758
21118 * Makefile.in (PLUGIN_HEADERS): Add params.list.
21119
21120 2016-02-11 Jakub Jelinek <jakub@redhat.com>
21121
21122 PR target/65313
21123 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
21124 -Wmaybe-uninitialized warning.
21125
21126 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
21127
21128 PR target/69713
21129 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
21130
21131 2016-02-11 Richard Biener <rguenther@suse.de>
21132
21133 PR rtl-optimization/69291
21134 * ifcvt.c (noce_try_store_flag_constants): Do not allow
21135 subexpressions affected by changing the result.
21136
21137 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
21138
21139 PR target/69148
21140 * lra-constraints.c (curr_insn_transform): Find in/out operands
21141 for secondary memory moves. Update dups.
21142
21143 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
21144
21145 PR tree-optimization/69652
21146 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
21147 to nested loop, did source re-formatting, skip debug statements,
21148 add check on statement with volatile operand, remove dead scalar
21149 statements.
21150
21151 2016-02-10 Jakub Jelinek <jakub@redhat.com>
21152 Patrick Palka <ppalka@gcc.gnu.org>
21153
21154 PR ipa/69241
21155 PR c++/69649
21156 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
21157 calls if the return type is TREE_ADDRESSABLE.
21158 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
21159 * ipa-split.c (split_function): Fix doubled "we" in comment.
21160 Use void return type for the split part even if
21161 !split_point->split_part_set_retval.
21162
21163 2016-02-10 Bin Cheng <bin.cheng@arm.com>
21164
21165 PR tree-optimization/68021
21166 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
21167 when computing the value of biv cand by itself.
21168
21169 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
21170
21171 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
21172 (cortexa57_tunings): Likewise.
21173 (cortexa72_tunings): Likewise.
21174 (arch_macro_fusion_pair_p): Add support for AES fusion.
21175 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
21176 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
21177 Allow virtual registers before reload so early scheduling works.
21178 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
21179 correct latency and pipeline.
21180 (cortex_a57_crypto_complex): Likewise.
21181 (cortex_a57_crypto_xor): Likewise.
21182 (define_bypass): Add AES bypass.
21183
21184 2016-02-10 Richard Biener <rguenther@suse.de>
21185
21186 PR tree-optimization/69726
21187 * passes.def: Add DCE pass before late uninit.
21188 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
21189 really fixup if-conversions job.
21190
21191 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
21192
21193 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
21194 (arm_cortex_a57_tune): Likewise.
21195 (aarch_macro_fusion_pair_p): Add support for AES fusion.
21196 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
21197
21198 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
21199
21200 * timevar.def (TV_PHASE_DBGINFO): Delete.
21201 (TV_PHASE_CHECK_DBGINFO): Likewise.
21202 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
21203
21204 2016-02-10 Richard Biener <rguenther@suse.de>
21205
21206 PR tree-optimization/69719
21207 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21208 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
21209
21210 2016-02-09 Andrew Pinski <apinski@cavium.com>
21211
21212 PR tree-opt/69282
21213 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
21214 get_vcond_mask_icode returns false.
21215
21216 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
21217
21218 PR target/68404
21219 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
21220 an ADDIS that adds a pointer to a large constant that sets the
21221 upper16 bits with a load operation.
21222
21223 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
21224
21225 PR target/68532
21226 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
21227 order.
21228 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
21229 endian.
21230 (vzipq_s16): Likewise.
21231 (vzipq_s32): Likewise.
21232 (vzipq_f32): Likewise.
21233 (vzipq_u8): Likewise.
21234 (vzipq_u16): Likewise.
21235 (vzipq_u32): Likewise.
21236 (vzipq_p8): Likewise.
21237 (vzipq_p16): Likewise.
21238
21239 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
21240
21241 PR target/68532
21242 * config/arm/arm.c (neon_endian_lane_map): New function.
21243 (neon_vector_pair_endian_lane_map): New function.
21244 (arm_evpc_neon_vuzp): Allow for big endian lane order.
21245 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
21246 endian.
21247 (vuzpq_s16): Likewise.
21248 (vuzpq_s32): Likewise.
21249 (vuzpq_f32): Likewise.
21250 (vuzpq_u8): Likewise.
21251 (vuzpq_u16): Likewise.
21252 (vuzpq_u32): Likewise.
21253 (vuzpq_p8): Likewise.
21254 (vuzpq_p16): Likewise.
21255
21256 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
21257
21258 PR target/69634
21259 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
21260 debug insns.
21261
21262 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
21263
21264 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
21265 truncate const_int operand 1 to QImode.
21266
21267 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
21268
21269 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
21270 corresponding to an abnormal edge.
21271
21272 2016-02-09 Tom de Vries <tom@codesourcery.com>
21273
21274 PR tree-optimization/69599
21275 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
21276 function.
21277 (find_func_aliases_for_builtin_call, find_func_clobbers)
21278 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
21279 partition.
21280
21281 2016-02-09 Richard Biener <rguenther@suse.de>
21282
21283 PR tree-optimization/69715
21284 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
21285 LHS on calls as non-rewritable.
21286
21287 2016-02-09 Tom de Vries <tom@codesourcery.com>
21288
21289 PR lto/69707
21290 * lto-wrapper.c (append_diag_options): New function.
21291 (compile_offload_image): Call append_diag_options.
21292
21293 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
21294
21295 PR other/69722
21296 * doc/extend.texi (Flag Output Operands): Correct sectioning.
21297 Minor copy-edit to fix verb tenses.
21298
21299 2016-02-08 Jakub Jelinek <jakub@redhat.com>
21300
21301 PR tree-optimization/69209
21302 * ipa-split.c (split_function): If split part is not
21303 returning retval, retval has gimple type but is not
21304 gimple value, force it into a SSA_NAME first.
21305
21306 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
21307
21308 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
21309 outdated section.
21310
21311 2016-02-08 Jason Merrill <jason@redhat.com>
21312
21313 PR c++/69631
21314 * convert.c (convert_to_integer_1): Check dofold on truncation
21315 distribution.
21316 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
21317 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
21318 Rename from *_nofold.
21319 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
21320 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
21321
21322 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
21323
21324 PR target/60410
21325 * tree.c (build_common_tree_nodes): Remove short_double argument.
21326 All callers changed.
21327 * tree.h (build_common_tree_nodes): Adjust declaration.
21328 * doc/invoke.texi (-fshort-double): Remove documentation.
21329 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
21330 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
21331 * lto-wrapper.c (merge_and_complain, append_compiler_options)
21332 (append_linker_options): Don't handle OPT_fshort_double.
21333
21334 PR rtl-optimization/68730
21335 * lra-remat.c (insn_to_cand_activation): New static variable.
21336 (lra_remat): Allocate and free it.
21337 (create_cand): New arg activation. Initialize a field in
21338 insn_to_cand_activation if it is nonnull.
21339 (create_cands): Pass the activation insn to create_cand when making
21340 a candidate involving an output reload. Reorganize code a little.
21341 (do_remat): Keep track of active status of candidates in a separate
21342 bitmap.
21343
21344 2016-02-08 Richard Biener <rguenther@suse.de>
21345
21346 PR tree-optimization/69719
21347 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21348 Properly use absolute of the difference of the two offsets to
21349 compare or adjust the segment length.
21350
21351 2016-02-08 Richard Biener <rguenther@suse.de>
21352 Jeff Law <law@redhat.com>
21353
21354 PR target/68273
21355 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
21356 types for anonymous SSA names.
21357
21358 2016-02-08 Richard Biener <rguenther@suse.de>
21359
21360 PR rtl-optimization/69274
21361 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
21362
21363 2016-02-08 Jeff Law <law@redhat.com>
21364
21365 PR tree-optimization/65917
21366 * tree-ssa-dom.c (record_temporary_equivalences): Record both
21367 equivalences from if (x == y) style conditionals.
21368 (loop_depth_of_name): Remove.
21369 (record_equality): Remove loop depth check.
21370 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
21371 (const_and_copies::record_const_or_copy_raw): New member function.
21372 * tree-ssa-scopedtables.c
21373 (const_and_copies::record_const_or_copy_raw): New, factored out of
21374 (const_and_copies::record_const_or_copy): Call new member function.
21375
21376 2016-02-05 Jeff Law <law@redhat.com>
21377
21378 PR tree-optimization/68541
21379 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
21380 (count_stmts_in_block): New function.
21381 (poor_ifcvt_candidate_code): Likewise.
21382 (is_feasible_trace): Add some heuristics to determine when path
21383 splitting is profitable.
21384 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
21385 is a diamond with a single exit.
21386
21387 2016-02-05 Martin Sebor <msebor@redhat.com>
21388
21389 PR c++/69662
21390 * doc/invoke.texi: Update -Wplacement-new to take an optional
21391 argument.
21392
21393 2016-02-06 Richard Henderson <rth@redhat.com>
21394
21395 PR c/69643
21396 * tree.c (tree_nop_conversion_p): Do not strip casts into or
21397 out of non-standard address spaces.
21398
21399 2016-02-05 Jakub Jelinek <jakub@redhat.com>
21400
21401 PR rtl-optimization/69691
21402 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
21403
21404 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
21405
21406 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
21407 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
21408 (*ieee128_mfvsrd_64bit): Likewise.
21409 (*ieee128_mfvsrd_32bit): Likewise.
21410
21411 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
21412
21413 PR target/69369
21414 Revert r232560:
21415 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21416
21417 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
21418 instrumented_version.
21419
21420 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
21421
21422 * doc/invoke.texi (Optimize Options): In table of --param options
21423 rename second occurrence of tracer-min-branch-ratio to
21424 tracer-min-branch-probability, rename
21425 tracer-min-branch-ratio-feedback to
21426 tracer-min-branch-probability-feedback and clarify description,
21427 rename sched-spec-state-edge-prob-cutoff to
21428 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
21429 to selsched-insns-to-rename, rename lto-minpartition to
21430 lto-min-partition, delete reorder-blocks-duplicate and
21431 reorder-blocks-duplicate-feedback.
21432
21433 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21434
21435 * config/s390/s390.c (s390_register_info_set_ranges): Remove
21436 superfluous loops.
21437
21438 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
21439
21440 * doc/extend.texi: S/390: Correct some typos.
21441
21442 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21443
21444 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
21445
21446 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21447
21448 PR target/69625
21449 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
21450 (s390_register_info_gprtofpr): Use new macros above.
21451 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
21452 its name.
21453 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
21454 its name. Adjust restore and save gpr ranges.
21455 (s390_register_info_set_ranges): New function.
21456 (s390_register_info): Use new macros above. Call
21457 s390_register_info_set_ranges.
21458 (s390_optimize_register_info): Likewise.
21459 (s390_hard_regno_rename_ok): Use new macros.
21460 (s390_hard_regno_scratch_ok): Likewise.
21461 (s390_emit_epilogue): Likewise.
21462 (s390_can_use_return_insn): Likewise.
21463 (s390_optimize_prologue): Likewise.
21464 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
21465
21466 2016-02-05 Jakub Jelinek <jakub@redhat.com>
21467
21468 PR bootstrap/69677
21469 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
21470 alignment fixes.
21471 (ix86_option_override_internal): Disable TARGET_STV even for
21472 -m{incoming,preferred}-stack-boundary=3.
21473
21474 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21475
21476 * config.gcc: Mark deprecated rtems targets as obsolete.
21477
21478 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
21479
21480 PR rtl-optimization/64682
21481 PR rtl-optimization/69567
21482 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
21483 before I2 only if the register is both used and set in I2.
21484
21485 2016-02-04 DJ Delorie <dj@redhat.com>
21486
21487 * config/msp430/msp430.c (msp430_start_function): Add function type.
21488
21489 2016-02-04 Jakub Jelinek <jakub@redhat.com>
21490
21491 PR fortran/69368
21492 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
21493
21494 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
21495
21496 PR rtl-optimization/69577
21497 Revert:
21498 2015-10-29 Richard Henderson <rth@redhat.com>
21499
21500 PR target/68124
21501 PR rtl-opt/67609
21502 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
21503 sse check to the exact conditions of PR 67609.
21504
21505 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
21506
21507 PR target/69667
21508 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
21509 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
21510 not allowed into the traditional Altivec registers.
21511 (movtd_64bit_nodm): Likewise.
21512 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
21513
21514 2016-02-04 David Malcolm <dmalcolm@redhat.com>
21515
21516 * config/aarch64/cortex-a57-fma-steering.c
21517 (aarch64_register_fma_steering): Remove "static" from arguments
21518 to register_pass.
21519
21520 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
21521
21522 PR target/69619
21523 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
21524 twice when complex.
21525
21526 2016-02-04 Mike Frysinger <vapier@gentoo.org>
21527
21528 * doc/invoke.texi: Delete -mno-fma4.
21529
21530 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
21531
21532 PR rtl-optimization/69577
21533 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
21534 (find_subregs_of_mode): Update accordingly. Iterate over partial
21535 definitions.
21536
21537 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
21538
21539 * config/arm/arm-protos.h (neon_reinterpret): Remove.
21540 * config/arm/arm.c (neon_reinterpret): Remove.
21541 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
21542 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
21543 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
21544 vreinterpretti): Remove.
21545 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
21546 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
21547 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
21548 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
21549 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
21550 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
21551 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
21552 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
21553 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
21554 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
21555 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
21556 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
21557 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
21558 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
21559 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
21560 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
21561 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
21562 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
21563 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
21564 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
21565 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
21566 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
21567 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
21568 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
21569 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
21570 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
21571 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
21572 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
21573 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
21574 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
21575 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
21576 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
21577 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
21578 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
21579 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
21580 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
21581 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
21582 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
21583 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
21584 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
21585 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
21586 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
21587 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
21588 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
21589 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
21590 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
21591 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
21592 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
21593 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
21594 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
21595 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
21596 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
21597 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
21598 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
21599 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
21600 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
21601 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
21602 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
21603 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
21604 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
21605 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
21606 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
21607 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
21608 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
21609 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
21610 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
21611 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
21612 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
21613 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
21614 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
21615 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
21616 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
21617 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
21618 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
21619 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
21620 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
21621 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
21622 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
21623 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
21624 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
21625 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
21626 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
21627 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
21628 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
21629 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
21630 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
21631 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
21632 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
21633 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
21634 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
21635 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
21636 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
21637 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
21638 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
21639 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
21640 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
21641 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
21642 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
21643 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
21644 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
21645 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
21646 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
21647 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
21648
21649 2016-02-04 Martin Liska <mliska@suse.cz>
21650
21651 PR sanitizer/69276
21652 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
21653 that are gimple_store_p.
21654 (maybe_instrument_call): Likewise.
21655
21656 2016-02-04 Bin Cheng <bin.cheng@arm.com>
21657
21658 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
21659 register scaling out of memory reference and comment why.
21660
21661 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21662
21663 PR target/65932
21664 PR target/67714
21665 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
21666 folding the source of a SET.
21667
21668 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21669
21670 PR target/65932
21671 PR target/67714
21672 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
21673 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
21674
21675 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
21676
21677 PR target/65932
21678 PR target/67714
21679 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
21680 HImode.
21681
21682 2016-02-04 Christian Bruel <christian.bruel@st.com>
21683
21684 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
21685 * config/arm/arm.c (arm_set_current_function): Likewise.
21686
21687 2016-02-04 Jakub Jelinek <jakub@redhat.com>
21688 Ilya Enkovich <enkovich.gnu@gmail.com>
21689 H.J. Lu <hongjiu.lu@intel.com>
21690
21691 PR target/69454
21692 * config/i386/i386.c (convert_scalars_to_vector): Remove
21693 stack alignment fixes.
21694 (ix86_option_override_internal): Disable TARGET_STV if stack
21695 might not be aligned enough.
21696 (ix86_minimum_alignment): Assert that TARGET_STV is false.
21697
21698 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
21699
21700 * config/i386/x86-tune.def: Disable default prefetching
21701 for -march=znver1.
21702
21703 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
21704 Vladimir Makarov <vmakarov@redhat.com>
21705
21706 PR target/69461
21707 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
21708 in validating fused toc addresses.
21709
21710 2016-02-03 Jakub Jelinek <jakub@redhat.com>
21711
21712 PR c/69627
21713 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
21714 range->m_caret fields if range->m_show_caret_p is false.
21715
21716 PR target/69644
21717 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
21718 Force oldval into register if it does not satisfy reg_or_short_operand
21719 predicate. Fix up formatting.
21720
21721 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
21722 Alexandre Oliva <aoliva@redhat.com>
21723
21724 PR target/69461
21725 * lra-constraints.c (simplify_operand_subreg): Check additionally
21726 address validity after potential reloading.
21727 (process_address_1): Check insns validity. In case of failure do
21728 nothing.
21729
21730 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
21731
21732 PR target/69118
21733 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
21734 Fix target.
21735
21736 2016-02-02 Jakub Jelinek <jakub@redhat.com>
21737
21738 * wide-int.cc (canonize_uhwi): New function.
21739 (wi::divmod_internal): Use it.
21740
21741 2016-02-02 James Norris <jnorris@codesourcery.com>
21742
21743 * gimplify.c (omp_notice_variable): Add usage check.
21744
21745 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
21746
21747 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
21748 like LE, GE, LT, GT when emitting relational operator.
21749
21750 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
21751
21752 * ira-costs.c (find_costs_and_classes): Add extra argument.
21753 * target.def (ira_change_pseudo_allocno_class): Add parameter.
21754 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
21755 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
21756 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
21757 Add best_class parameter, and return it if not ALL_REGS.
21758 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
21759 Add parameter.
21760 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
21761 Update target hook.
21762
21763 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
21764
21765 * config/aarch64/aarch64.c
21766 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
21767 (aarch64_ira_change_pseudo_allocno_class): New function.
21768
21769 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
21770
21771 PR target/67032
21772 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
21773
21774 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21775
21776 * config/avr/avr.c (avr_option_override): Set
21777 PARAM_ALLOW_STORE_DATA_RACES to 1.
21778
21779 2016-02-02 Richard Biener <rguenther@suse.de>
21780
21781 PR tree-optimization/69595
21782 * match.pd: Add range test simplifications to true/false.
21783
21784 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
21785
21786 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
21787 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
21788 instead.
21789
21790 2016-02-02 Richard Biener <rguenther@suse.de>
21791
21792 PR tree-optimization/69606
21793 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
21794 info on the result before moving a stmt.
21795
21796 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
21797
21798 PR middle-end/68542
21799 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
21800 branch with vector comparison.
21801 * config/i386/sse.md (VI48_AVX): New mode iterator.
21802 (define_expand "cbranch<mode>4): Add support for conditional branch
21803 with vector comparison.
21804 * tree-vect-loop.c (optimize_mask_stores): New function.
21805 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
21806 has_mask_store field of vect_info.
21807 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
21808 vectorized loops having masked stores after vec_info destroy.
21809 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
21810 correspondent macros.
21811 (optimize_mask_stores): Add prototype.
21812
21813 2016-02-02 Alan Modra <amodra@gmail.com>
21814
21815 PR target/69548
21816 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
21817 allow subregs.
21818
21819 2016-02-02 Alan Modra <amodra@gmail.com>
21820
21821 PR target/68662
21822 * config/rs6000/rs6000.c (need_toc_init): New var, set it
21823 whenever toc_label_name used.
21824 (rs6000_file_start): Don't set up toc section here,
21825 (rs6000_output_function_epilogue): do so here instead,
21826 (rs6000_xcoff_file_start): and here.
21827 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
21828 (load_toc_aix_di): Likewise.
21829
21830 2016-02-01 Jakub Jelinek <jakub@redhat.com>
21831
21832 PR rtl-optimization/69592
21833 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
21834 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
21835 (num_sign_bit_copies_binary_arith_p): New inline function.
21836 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
21837
21838 2016-02-01 Jeff Law <law@redhat.com>
21839
21840 PR tree-optimization/69580
21841 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
21842 * tree-ssa-threadbackward.c
21843 (fsm_find_control_statement_thread_paths): Do not try to walk
21844 through large PHI nodes.
21845
21846 2016-02-01 Jakub Jelinek <jakub@redhat.com>
21847
21848 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
21849 when count is incremented above limit, don't analyze further
21850 insns afterwards.
21851
21852 * omp-low.c (oacc_parse_default_dims): Avoid
21853 -Wsign-compare warning, make sure value fits into int
21854 rather than just unsigned int.
21855
21856 2016-02-01 Bin Cheng <bin.cheng@arm.com>
21857
21858 PR tree-optimization/67921
21859 * fold-const.c (split_tree): New parameters. Convert pointer
21860 type variable part to proper type before negating.
21861 (fold_binary_loc): Pass new arguments to split_tree.
21862
21863 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
21864
21865 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
21866 (nvptx_goacc_validate_dims): Extend to handle global defaults.
21867 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
21868 * doc/tm.texti: Rebuilt.
21869 * doc/invoke.texi (fopenacc-dim): Document.
21870 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
21871 (append_compiler_options): Likewise.
21872 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
21873 (oacc_parse_default_dims): New.
21874 (oacc_validate_dims): Add USED arg. Select non-unity default when
21875 possible.
21876 (oacc_loop_fixed_partitions): Return mask of used partitions.
21877 (oacc_loop_auto_partitions): Emit dump info.
21878 (oacc_loop_partition): Return mask of used partitions.
21879 (execute_oacc_device_lower): Parse default dimension arg. Adjust
21880 loop partitioning and validation calls.
21881
21882 2016-02-01 Richard Biener <rguenther@suse.de>
21883
21884 PR middle-end/69556
21885 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
21886
21887 2016-02-01 Richard Biener <rguenther@suse.de>
21888
21889 PR tree-optimization/69574
21890 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
21891 of asserting return chrec_dont_know.
21892
21893 2016-02-01 Martin Liska <mliska@suse.cz>
21894
21895 * mem-stats-traits.h: Add copyright header.
21896 * mem-stats.h: Likewise.
21897
21898 2016-02-01 Richard Biener <rguenther@suse.de>
21899
21900 PR tree-optimization/69579
21901 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
21902 Do not propagate through abnormal PHI results.
21903
21904 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
21905
21906 * postreload.c (reload_cse_simplify): Remove dead code.
21907
21908 2016-02-01 Jakub Jelinek <jakub@redhat.com>
21909
21910 PR rtl-optimization/69570
21911 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
21912 if there is more than one set, not if there is a single set.
21913
21914 2016-02-01 Richard Henderson <rth@redhat.com>
21915
21916 PR rtl-opt/69535
21917 * combine.c (make_compound_operation): When looking through a
21918 subreg, make sure to re-extend to the width of the outer mode.
21919
21920 2016-01-30 Jakub Jelinek <jakub@redhat.com>
21921
21922 PR tree-optimization/69546
21923 * wide-int.cc (wi::divmod_internal): For unsigned division
21924 where both operands fit into uhwi, if o1 is 1 and o0 has
21925 msb set, if divident_prec is larger than bits per hwi,
21926 clear another quotient word and return 2 instead of 1.
21927 Similarly for remainder with msb in HWI set, if dividend_prec
21928 is larger than bits per hwi.
21929
21930 2016-01-29 Martin Jambor <mjambor@suse.cz>
21931
21932 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
21933 Use short lowercase names.
21934 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
21935 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
21936 acq_rel one. Protect warning agains segfaults if
21937 get_memory_order_name returns NULL.
21938 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
21939 with release semantics. Do not warn if get_memory_order already did.
21940 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
21941 semantics. Fix check for relaxed or acquire semantics. Do not warn
21942 if get_memory_order already did.
21943
21944 2016-01-29 Sebastian Pop <s.pop@samsung.com>
21945
21946 * doc/install.texi: Document that isl-0.16 is supported.
21947
21948 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
21949
21950 PR target/69299
21951 * config/i386/constraints.md (Bm): Describe as special memory
21952 constraint.
21953 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
21954 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
21955 * genpreds.c (struct constraint_data): Add is_special_memory.
21956 (have_special_memory_constraints, special_memory_start): New
21957 static vars.
21958 (special_memory_end): Ditto.
21959 (add_constraint): Add new arg is_special_memory. Add code to
21960 process its true value. Update have_special_memory_constraints.
21961 (process_define_constraint): Pass the new arg.
21962 (process_define_register_constraint): Ditto.
21963 (choose_enum_order): Process special memory.
21964 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
21965 function insn_extra_special_memory_constraint.
21966 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
21967 * gensupport.c (process_rtx): Process
21968 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
21969 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
21970 * ira-lives.c (single_reg_class): Use
21971 insn_extra_special_memory_constraint.
21972 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
21973 * lra-constraints.c (process_alt_operands): Ditto.
21974 (curr_insn_transform): Use insn_extra_special_memory_constraint.
21975 * recog.c (asm_operand_ok, preprocess_constraints): Process
21976 CT_SPECIAL_MEMORY.
21977 * reload.c (find_reloads): Ditto.
21978 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
21979 * stmt.c (parse_input_constraint): Use
21980 insn_extra_special_memory_constraint.
21981
21982 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
21983
21984 PR target/69530
21985 * lra-splill.c (lra_final_code_change): Revert r229087 by
21986 removing all sub-registers.
21987
21988 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
21989
21990 PR target/65604
21991 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
21992
21993 2016-01-29 Jakub Jelinek <jakub@redhat.com>
21994
21995 PR target/69551
21996 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
21997 SSE1, copy target into the temporary reg first before recursing
21998 on it.
21999
22000 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22001
22002 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
22003 with vm.
22004
22005 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
22006
22007 * ginclude/stdarg.h: Test __cplusplus instead of
22008 __GXX_EXPERIMENTAL_CXX0X__.
22009
22010 2016-01-29 Richard Biener <rguenther@suse.de>
22011
22012 PR tree-optimization/69547
22013 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
22014 Do not mark clobbers necessary.
22015 (mark_all_reaching_defs_necessary_1): Likewise.
22016
22017 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22018
22019 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
22020 declaration name with %qs and print it in both error messages.
22021 Also fix indentation.
22022
22023 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22024
22025 PR other/69006
22026 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
22027 trailing blank line from error message.
22028
22029 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
22030
22031 PR c++/69462
22032 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
22033 for C++-11.
22034
22035 2016-01-29 Richard Biener <rguenther@suse.de>
22036
22037 PR middle-end/69537
22038 * match.pd: Allow all integral types when simplifying a
22039 widening or sign-changing conversion.
22040
22041 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22042
22043 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
22044 back to setting codegen_error to fail codegen.
22045
22046 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
22047
22048 PR target/69459
22049 * config/i386/constraints.md (C): Only accept constant zero operand.
22050 (BC): New constraint.
22051 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
22052 instead of C constraint.
22053 * doc/md.texi (Machine Constraints): Update description
22054 of C constraint.
22055
22056 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
22057
22058 PR target/68400
22059 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
22060
22061 2016-01-28 Jakub Jelinek <jakub@redhat.com>
22062
22063 PR middle-end/69542
22064 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
22065 non-debug insns.
22066
22067 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
22068
22069 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
22070 branches if using guessed profile.
22071
22072 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
22073
22074 * graphite-optimize-isl.c (optimize_isl): Fix dump.
22075
22076 2016-01-28 Richard Henderson <rth@redhat.com>
22077
22078 PR target/69305
22079 * config/aarch64/aarch64-modes.def (CC_Cmode): New
22080 * config/aarch64/aarch64-protos.h: Update.
22081 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
22082 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
22083 (aarch64_get_condition_code_1): Handle CC_Cmode.
22084 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
22085 (*add<mode>3_compareC_cconly_imm): New.
22086 (*add<mode>3_compareC_cconly): New.
22087 (*add<mode>3_compareC_imm): New.
22088 (add<mode>3_compareC): New.
22089 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
22090 to be first. Use aarch64_carry_operation.
22091 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
22092 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
22093 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
22094 (subti3): Use subdi3_compare1.
22095 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
22096 (sub<mode>3_compare1): New.
22097 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
22098 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
22099 (*subsi3_carryin_uxtw): Likewise.
22100 (*ngc<mode>, *ngcsi_uxtw): Likewise.
22101 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
22102 * config/aarch64/iterators.md (DWI): New.
22103 * config/aarch64/predicates.md (aarch64_carry_operation): New.
22104 (aarch64_borrow_operation): New.
22105
22106 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
22107
22108 * graphite-optimize-isl.c (optimize_isl): Print a different debug
22109 message when isl does not return a valid schedule.
22110
22111 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22112
22113 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
22114 Remove comments from class declarations: they are already in the code
22115 close by the defs.
22116
22117 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22118
22119 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
22120 codegen_error_p.
22121 (ternary_op_to_tree): Same.
22122 (unary_op_to_tree): Same.
22123 (nary_op_to_tree): Same.
22124 (gcc_expression_from_isl_expr_op): Same.
22125 (gcc_expression_from_isl_expression): Same.
22126 (graphite_create_new_loop): Same.
22127 (graphite_create_new_loop_guard): Same.
22128 (build_iv_mapping): Same.
22129 (graphite_create_new_guard): Same.
22130 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
22131 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
22132
22133 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22134
22135 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
22136 instead of setting codegen_error to fail codegen.
22137
22138 2016-01-28 Jason Merrill <jason@redhat.com>
22139
22140 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
22141
22142 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22143
22144 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
22145 Remove CONST_INT_P check in CCMP cost calculation.
22146
22147 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22148
22149 * config/aarch64/aarch64.c (generic_vector_cost):
22150 Set vec_permute_cost.
22151 (cortexa57_vector_cost): Likewise.
22152 (exynosm1_vector_cost): Likewise.
22153 (xgene1_vector_cost): Likewise.
22154 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
22155 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
22156 Add vec_permute_cost entry.
22157
22158 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22159
22160 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
22161 immediate as %1.
22162 (add<mode>3_compare0): Likewise.
22163 (addsi3_compare0_uxtw): Likewise.
22164 (add<mode>3nr_compare0): Likewise.
22165 (compare_neg<mode>): Likewise.
22166 (<optab><mode>3): Likewise.
22167
22168 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
22169
22170 * tree-vect-stmts.c (vectorizable_comparison): Add
22171 NULL check for vectype.
22172
22173 2016-01-28 Richard Biener <rguenther@suse.de>
22174
22175 PR tree-optimization/69466
22176 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
22177 Account for PHIs we couldn't duplicate.
22178
22179 2016-01-28 Martin Liska <mliska@suse.cz>
22180
22181 PR pch/68758
22182 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
22183 instead of ENABLE_VALGRIND_CHECKING.
22184
22185 2016-01-27 Richard Henderson <rth@redhat.com>
22186
22187 PR rtl-opt/69447
22188 * lra-remat.c (subreg_regs): New.
22189 (dump_candidates_and_remat_bb_data): Dump it.
22190 (operand_to_remat): Reject if operand in subreg_regs.
22191 (set_bb_regs): Collect subreg_regs.
22192 (lra_remat): Init and free subreg_regs. Compute
22193 calculate_local_reg_remat_bb_data before create_cands.
22194
22195 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
22196
22197 PR target/68986
22198 * config/i386/i386.c (ix86_update_stack_boundary): Don't
22199 change stack_alignment_needed for __tls_get_addr call.
22200
22201 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
22202
22203 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
22204
22205 2016-01-27 Jeff Law <law@redhat.com>
22206
22207 PR tree-optimization/68398
22208 PR tree-optimization/69196
22209 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
22210 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
22211 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22212 Only count PHIs in the last block in the path. The others will
22213 const/copy propagate away. Add heuristic to allow more irreducible
22214 subloops to be created when it is likely profitable to do so.
22215
22216 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22217 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
22218 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
22219
22220 2016-01-27 Jakub Jelinek <jakub@redhat.com>
22221
22222 PR lto/69254
22223 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
22224 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
22225 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
22226 * tree-streamer-in.c: Include asan.h.
22227 (streamer_get_builtin_tree): For builtins in sanitizer
22228 range call initialize_sanitizer_builtins and retry.
22229
22230 2016-01-27 Ian Lance Taylor <iant@google.com>
22231
22232 * common.opt (fkeep-gc-roots-live): New undocumented option.
22233 * tree-ssa-loop-ivopts.c (add_candidate_1): If
22234 -fkeep-gc-roots-live, skip pointers.
22235 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
22236 NULL.
22237
22238 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
22239
22240 PR target/69512
22241 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
22242 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
22243
22244 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
22245
22246 PR target/68380
22247 * configure.ac: NetBSD provides SSP in its C library.
22248 * configure: Updated.
22249
22250 2016-01-27 Richard Biener <rguenther@suse.de>
22251
22252 PR tree-optimization/69166
22253 * tree-vect-loop.c (vect_is_simple_reduction): Always check
22254 reduction code for commutativity / associativity.
22255
22256 2016-01-27 Martin Jambor <mjambor@suse.cz>
22257
22258 PR tree-optimization/69355
22259 * tree-sra.c (analyze_access_subtree): Correct hole detection when
22260 total_scalarization fails.
22261
22262 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
22263
22264 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
22265 power9.
22266
22267 2016-01-27 Christian Bruel <christian.bruel@st.com>
22268
22269 PR target/69245
22270 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
22271 Move arm_reset_previous_fndecl and set_target_option_current_node in
22272 the conditional part. Call save_restore_target_globals.
22273 * config/arm/arm.c (arm_set_current_function):
22274 Refactor to better support #pragma target and attribute mix.
22275 Call save_restore_target_globals.
22276 * config/arm/arm-protos.h (save_restore_target_globals): New function.
22277
22278 2016-01-27 Martin Liska <mliska@suse.cz>
22279
22280 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
22281 reference for an HSA kernel and its host function.
22282
22283 2016-01-27 Jakub Jelinek <jakub@redhat.com>
22284
22285 PR tree-optimization/69399
22286 * wide-int.h (wi::lrshift): For larger precisions, only
22287 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
22288
22289 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
22290
22291 * config/arc/predicates.md (proper_comparison_operator): Reject
22292 constant-constant comparison.
22293
22294 2016-01-26 Tom de Vries <tom@codesourcery.com>
22295
22296 PR tree-optimization/69110
22297 * tree-data-ref.c (initialize_data_dependence_relation): Handle
22298 DR_NUM_DIMENSIONS == 0.
22299
22300 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
22301 Sebastian Pop <s.pop@samsung.com>
22302
22303 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
22304 isl_ast_op_cond and isl_ast_op_select.
22305 (gcc_expression_from_isl_expr_op): Same.
22306
22307 2016-01-26 Jason Merrill <jason@redhat.com>
22308
22309 PR c++/68782
22310 * tree.c (recompute_constructor_flags): Split out from
22311 build_constructor.
22312 (verify_constructor_flags): New.
22313 * tree.h: Declare them.
22314
22315 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
22316
22317 PR rtl-optimization/69217
22318 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
22319 are no TYPE_FIELDS set for the record type.
22320
22321 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22322
22323 PR target/68662
22324 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
22325 toc_label_name unconditionally.
22326 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
22327 SYMBOL_REF string. Use toc_label_name instead of constructing
22328 LCTOC1.
22329 (rs6000_elf_declare_function_name): Use toc_label_name instead of
22330 constructing LCTOC1.
22331
22332 2016-01-26 Martin Sebor <msebor@redhat.com>
22333
22334 PR other/69477
22335 * doc/extend.texi (Common Type Attributes): Move text that talks about
22336 attribute packed from attribute aligned to the section discussing
22337 the former attribute for clarity.
22338
22339 2016-01-26 Richard Henderson <rth@redhat.com>
22340
22341 PR middle-end/60908
22342 * trans-mem.c (tm_region_init): Mark entry block as visited.
22343
22344 2016-01-26 David Malcolm <dmalcolm@redhat.com>
22345
22346 PR other/69006
22347 * diagnostic-show-locus.c (layout::print_source_line): Replace
22348 call to pp_newline with call to layout::print_newline.
22349 (layout::print_annotation_line): Likewise.
22350 (layout::move_to_column): Likewise.
22351 (layout::print_any_fixits): After printing any fixits, print a
22352 trailing newline, if necessary.
22353 (layout::print_newline): New method, resetting any colorization
22354 before a newline.
22355 (diagnostic_show_locus): Move the pp_newline to before the
22356 early bailout. Remove dummy block enclosing the layout instance.
22357 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
22358 of pp_newline_and_flush with pp_flush.
22359 (diagnostic_append_note): Delete use of pp_newline.
22360 (diagnostic_append_note_at_rich_loc): Delete.
22361 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
22362 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
22363 when newline characters are added to the buffer.
22364
22365 2016-01-26 Michael Matz <matz@suse.de>
22366
22367 * configure.ac (ac_cv_std_swap_in_utility): New test.
22368 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
22369 * configure: Regenerate.
22370 * config.in: Regenerate.
22371
22372 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
22373
22374 * config/arc/arc.md (cstoresi4): Force operand into register.
22375 (arcset<code>): Fix predicate.
22376 (arcsetltu): Likewise.
22377 (arcsetgeu): Likewise.
22378 (arcsethi): Likewise.
22379 (arcsetls): Likewise.
22380
22381 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22382
22383 PR tree-optimization/69483
22384 * gimple-fold.c (canonicalize_constructor_val): Return NULL
22385 if base has error_mark_node type.
22386
22387 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
22388
22389 PR target/68620
22390 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
22391 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
22392 New helper macros.
22393 (vget_lane_f16): Handle big-endian.
22394 (vgetq_lane_f16): Likewise.
22395 (vset_lane_f16): Likewise.
22396 (vsetq_lane_f16): Likewise.
22397 * config/arm/iterators.md (VQXMOV): Add V8HF.
22398 (VDQ): Add V4HF and V8HF.
22399 (V_reg): Handle V4HF and V8HF.
22400 (Is_float_mode): Likewise.
22401 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
22402 neon_vdup_nv8hf): New patterns.
22403 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
22404 Use VD_LANE iterator.
22405 (neon_vld1_dup<mode>): Use VQ2 iterator.
22406
22407 2016-01-26 Nathan Sidwell <nathan@acm.org>
22408
22409 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
22410 (set_oacc_fn_attrib): Add IS_KERNEL arg.
22411 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
22412 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
22413 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
22414 (oacc_validate_dims): Add LEVEL arg, don't return level.
22415 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
22416 oacc_validate_dims.
22417 (execute_oacc_device_lower): Adjust, add more dump output.
22418 * tree-ssa-loop.c (gate_oacc_kernels): Use
22419 oacc_fn_attrib_kernels_p.
22420 * tree-parloops.c (create_parallel_loop): Adjust
22421 set_oacc_fn_attrib call.
22422
22423 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22424
22425 PR lto/69254
22426 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
22427 (append_compiler_options): Handle -fcilkplus.
22428 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
22429
22430 2016-01-26 Nick Clifton <nickc@redhat.com>
22431
22432 PR target/66655
22433 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
22434 been marked as DECL_ONE_ONLY but we do not the means to make it
22435 so, then do not allow it to bind locally.
22436
22437 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22438
22439 PR lto/69254
22440 * opts.h (parse_sanitizer_options): New prototype.
22441 * opts.c (sanitizer_opts): New array.
22442 (parse_sanitizer_options): New function.
22443 (common_handle_option): Use parse_sanitizer_options.
22444
22445 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
22446
22447 PR target/68986
22448 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
22449 alignment adjustment to ...
22450 (ix86_update_stack_boundary): Here. Don't over-align stack for
22451 __tls_get_addr.
22452 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
22453 if __tls_get_addr is called.
22454
22455 2016-01-26 Christian Bruel <christian.bruel@st.com>
22456
22457 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
22458
22459 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
22460
22461 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
22462
22463 2016-01-26 Richard Biener <rguenther@suse.de>
22464
22465 PR middle-end/69467
22466 * match.pd: Guard X * CST CMP 0 pattern with single_use.
22467
22468 2016-01-26 Richard Biener <rguenther@suse.de>
22469
22470 PR tree-optimization/69452
22471 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
22472 (move_computations_dom_walker::before_dom_children): Rename
22473 to ...
22474 (move_computations_worker): This.
22475 (move_computations): Perform an RPO rather than a DOM walk.
22476
22477 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22478
22479 PR target/69442
22480 * combine.c (combine_instructions): For REG_EQUAL note with
22481 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
22482 to the underlying register.
22483 * doc/rtl.texi (REG_EQUAL): Document the behavior of
22484 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
22485
22486 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
22487
22488 PR target/67896
22489 * config/aarch64/aarch64-builtins.c
22490 (aarch64_init_simd_builtin_types): Do not set structural
22491 equality to __Poly{8,16,64,128}_t types.
22492
22493 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
22494
22495 PR tree-optimization/69400
22496 * wide-int.cc (wi_pack): Take the precision as argument and
22497 perform canonicalization here rather than in the callers.
22498 Use the main loop to handle all full-width HWIs. Add a
22499 zero HWI if in_len isn't a full result.
22500 (wi::divmod_internal): Update accordingly.
22501 (wi::mul_internal): Likewise. Simplify.
22502
22503 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
22504 Sebastian Pop <s.pop@samsung.com>
22505
22506 * graphite-poly.c (apply_poly_transforms): Simplify.
22507 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
22508 (print_isl_map): Same.
22509 (print_isl_union_map): Same.
22510 (print_isl_schedule): New.
22511 (debug_isl_schedule): New.
22512 * graphite-dependences.c (scop_get_reads): Do not call
22513 isl_union_map_add_map that is undocumented isl functionality.
22514 (scop_get_must_writes): Same.
22515 (scop_get_may_writes): Same.
22516 (scop_get_original_schedule): Remove.
22517 (scop_get_dependences): Do not call isl_union_map_compute_flow that
22518 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
22519 (compute_deps): Remove.
22520 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
22521 (debug_schedule_ast): New.
22522 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
22523 set_separate_option.
22524 (graphite_regenerate_ast_isl): Add dump.
22525 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
22526 from scop->transformed_schedule.
22527 (graphite_regenerate_ast_isl): Add more dump.
22528 * graphite-optimize-isl.c (optimize_isl): Set
22529 scop->transformed_schedule. Check whether schedules are equal.
22530 (apply_poly_transforms): Move here.
22531 * graphite-poly.c (apply_poly_transforms): ... from here.
22532 (free_poly_bb): Static.
22533 (free_scop): Static.
22534 (pbb_number_of_iterations_at_time): Remove.
22535 (print_isl_ast): New.
22536 (debug_isl_ast): New.
22537 (debug_scop_pbb): New.
22538 * graphite-scop-detection.c (print_edge): Move.
22539 (print_sese): Move.
22540 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
22541 (build_scop_scattering): Remove.
22542 (create_pw_aff_from_tree): Assert instead of bailing out.
22543 (add_condition_to_pbb): Remove unused code, do not fail.
22544 (add_conditions_to_domain): Same.
22545 (add_conditions_to_constraints): Remove.
22546 (build_scop_context): New.
22547 (add_iter_domain_dimension): New.
22548 (build_iteration_domains): Initialize pbb->iterators.
22549 Call add_conditions_to_domain.
22550 (nested_in): New.
22551 (loop_at): New.
22552 (index_outermost_in_loop): New.
22553 (index_pbb_in_loop): New.
22554 (outermost_pbb_in): New.
22555 (add_in_sequence): New.
22556 (add_outer_projection): New.
22557 (outer_projection_mupa): New.
22558 (add_loop_schedule): New.
22559 (build_schedule_pbb): New.
22560 (build_schedule_loop): New.
22561 (embed_in_surrounding_loops): New.
22562 (build_schedule_loop_nest): New.
22563 (build_original_schedule): New.
22564 (build_poly_scop): Call build_original_schedule.
22565 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
22566 (free_poly_dr): Remove.
22567 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
22568 (free_poly_bb): Remove.
22569 (debug_loop_vec): Remove.
22570 (print_isl_ast): Declare.
22571 (debug_isl_ast): Declare.
22572 (scop_do_interchange): Remove.
22573 (scop_do_strip_mine): Remove.
22574 (scop_do_block): Remove.
22575 (flatten_all_loops): Remove.
22576 (optimize_isl): Remove.
22577 (pbb_number_of_iterations_at_time): Remove.
22578 (debug_scop_pbb): Declare.
22579 (print_schedule_ast): Declare.
22580 (debug_schedule_ast): Declare.
22581 (struct scop): Remove schedule. Add original_schedule,
22582 transformed_schedule.
22583 (free_gimple_poly_bb): Remove.
22584 (print_generated_program): Remove.
22585 (debug_generated_program): Remove.
22586 (unify_scattering_dimensions): Remove.
22587 * sese.c (print_edge): ... here.
22588 (print_sese): ... here.
22589 (debug_edge): ... here.
22590 (debug_sese): ... here.
22591 * sese.h (print_edge): Declare.
22592 (print_sese): Declare.
22593 (dump_edge): Declare.
22594 (dump_sese): Declare.
22595
22596 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
22597 Sebastian Pop <s.pop@samsung.com>
22598
22599 * Makefile.in: Set ISLVER in site.exp.
22600
22601 2016-01-25 Jakub Jelinek <jakub@redhat.com>
22602
22603 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
22604 DECL_VALUE_EXPR of new_var even for the non-array case. Look
22605 through DECL_VALUE_EXPR for expansion.
22606
22607 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
22608
22609 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
22610 the frame info after reload completed.
22611
22612 2016-01-25 Jeff Law <law@redhat.com>
22613
22614 PR tree-optimization/69196
22615 PR tree-optimization/68398
22616 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
22617 tree-ssa-threadupdate.c.
22618 (determine_bb_domination_status): Prototype
22619 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
22620 (determine_bb_domination_status): No longer static.
22621 (valid_jump_thread_path): Remove code to detect characteristics
22622 of the jump thread path not associated with correctness.
22623 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
22624 Correct test for thread path length. Count PHIs for real operands as
22625 statements that need to be copied. Do not count ASSERT_EXPRs.
22626 Look at all the blocks in the thread path. Compute and selectively
22627 filter thread paths based on threading through the latch, threading
22628 a multiway branch or crossing a multiway branch.
22629
22630 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22631
22632 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
22633 decl with __attribute__ ((unused)) annotation.
22634
22635 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
22636
22637 PR target/69421
22638 * tree-vect-stmts.c (vectorizable_condition): Check vectype
22639 of operands is compatible with a statement vectype.
22640
22641 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
22642
22643 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
22644 improve wording for mixed storage order support.
22645
22646 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
22647
22648 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
22649 (vcvt_u64_f64): Likewise.
22650 (vcvta_s64_f64): Likewise.
22651 (vcvta_u64_f64): Likewise.
22652 (vcvtm_s64_f64): Likewise.
22653 (vcvtm_u64_f64): Likewise.
22654 (vcvtn_s64_f64): Likewise.
22655 (vcvtn_u64_f64): Likewise.
22656 (vcvtp_s64_f64): Likewise.
22657 (vcvtp_u64_f64): Likewise.
22658
22659 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
22660
22661 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
22662 (arc_init): Check validity mll64 option.
22663 (arc_save_restore): Use double load/store instruction.
22664 (arc_expand_movmem): Likewise.
22665 (arc_split_move): Don't split if we have double load/store
22666 instructions. Returns a boolean.
22667 (arc_process_double_reg_moves): Change function to return boolean
22668 instead of a sequence of instructions.
22669 (arc_dwarf_register_span): New function.
22670 * config/arc/arc-protos.h (arc_split_move): Change prototype.
22671 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
22672 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
22673 (*movdf_insn): Likewise.
22674 * config/arc/arc.opt (mll64): New option.
22675 * config/arc/predicates.md (even_register_operand): New predicate.
22676 * doc/invoke.texi (ARC Options): Add mll64 documentation.
22677
22678 2016-01-25 Richard Biener <rguenther@suse.de>
22679
22680 PR lto/69393
22681 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
22682 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
22683 DECL_NAMELESS.
22684 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
22685
22686 2016-01-25 Richard Biener <rguenther@suse.de>
22687
22688 PR tree-optimization/69376
22689 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
22690 flag.
22691 (VN_INFO_ANTI_RANGE_P): New inline.
22692 (VN_INFO_RANGE_TYPE): Likewise.
22693 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
22694 SSA_NAME_ANTI_RANGE_P.
22695 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
22696 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
22697 Properly query VN_INFO_RANGE_TYPE.
22698
22699 2016-01-25 Nick Clifton <nickc@redhat.com>
22700
22701 PR target/66655
22702 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
22703
22704 2016-01-23 Tom de Vries <tom@codesourcery.com>
22705
22706 PR tree-optimization/69426
22707 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
22708 removed clobber.
22709
22710 2016-01-23 Jakub Jelinek <jakub@redhat.com>
22711
22712 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
22713 "the the" with "the" in the comments.
22714 * ipa-devirt.c (build_type_inheritance_graph,
22715 update_type_inheritance_graph): Likewise.
22716 * tree.c (build_function_type_list_1): Likewise.
22717 * cfgloopmanip.c (scale_loop_profile): Likewise.
22718 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
22719 * gimple-ssa-split-paths.c
22720 (find_block_to_duplicate_for_splitting_paths): Likewise.
22721 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
22722 * expr.c (convert_move): Likewise.
22723 * var-tracking.c (vt_stack_adjustments): Likewise.
22724 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
22725 * tree-vrp.c (test_for_singularity): Likewise.
22726
22727 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
22728 directly instead of building a temporary tree.
22729
22730 PR bootstrap/69434
22731 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
22732 remove <algorithm> include.
22733
22734 2016-01-22 Jakub Jelinek <jakub@redhat.com>
22735
22736 PR target/69432
22737 * config/i386/i386.c: Include dojump.h.
22738 (expand_small_movmem_or_setmem,
22739 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
22740 fixes.
22741 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
22742 if dynamic_check != -1.
22743
22744 2016-01-21 Jeff Law <law@redhat.com>
22745
22746 PR middle-end/69347
22747 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
22748 record_temporary_equivalences. Rewritten to avoid unnecessary calls
22749 into dominated_by_p.
22750 (cprop_into_successor_phis): Avoid unnecessary tests.
22751
22752 2016-01-22 Richard Henderson <rth@redhat.com>
22753
22754 PR target/69416
22755 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
22756 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
22757
22758 2016-01-22 Michael Matz <matz@suse.de>
22759
22760 * system.h (string, algorithm): Include only conditionally.
22761 (new): Include always under C++.
22762 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
22763 * final.c (toplevel): Ditto.
22764 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
22765 * genconditions.c (write_header): Make gencondmd.c define
22766 INCLUDE_STRING.
22767 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
22768
22769 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
22770 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
22771
22772 2016-01-22 Christian Bruel <christian.bruel@st.com>
22773
22774 PR target/68674
22775 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
22776
22777 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22778
22779 PR target/69403
22780 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
22781 define_insn_and_split. Ensure operands[1] and operands[0] do not
22782 get assigned the same register.
22783
22784 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
22785
22786 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
22787
22788 2016-01-22 Christian Bruel <christian.bruel@st.com>
22789
22790 * config/arm/arm-c.c (arm_pragma_target_parse):
22791 Remove warn_builtin_macro_redefined overwrite.
22792
22793 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
22794
22795 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
22796 flag_non_call_exceptions compatibility.
22797
22798 2016-01-22 Jakub Jelinek <jakub@redhat.com>
22799
22800 PR debug/66668
22801 * dwarf2out.c (add_child_die_after): New function.
22802 (dwarf_qual_info_t): New type.
22803 (dwarf_qual_info): New variable.
22804 (qualified_die_p): New function.
22805 (modified_type_die): For -fdebug-types-section, ensure
22806 canonical order of qualifiers. Put qualified DIEs adjacent
22807 to the corresponding non-qualified type DIE and search there
22808 for existing qualified DIEs.
22809
22810 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
22811
22812 * doc/extend.texi (scalar_storage_order type attribute): Document
22813 restriction on type punning and aliasing, and remove future tense.
22814
22815 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
22816
22817 PR target/69252
22818 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
22819 first stage.
22820
22821 2016-01-21 Jeff Law <law@redhat.com>
22822
22823 PR middle-end/69347
22824 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
22825 useless call to record_temporary_equivalences.
22826 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
22827 allocate 10 slots in the bb_path vector and let it grow as needed.
22828 (fsm_find_control_statement_thread_paths): Similarly for the next_path
22829 vector.
22830
22831 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
22832
22833 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
22834 Detangle.
22835 * configure: Regenerate.
22836
22837 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
22838
22839 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
22840 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
22841
22842 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
22843
22844 PR middle-end/66178
22845 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
22846 drop EXPAND_INITIALIZER.
22847 * rtl.h (contains_symbolic_reference_p): Declare.
22848 * rtlanal.c (contains_symbolic_reference_p): New function.
22849 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
22850 a subtraction into a NOT if symbolic constants are involved.
22851
22852 2016-01-21 Anton Blanchard <anton@samba.org>
22853 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22854
22855 PR target/63354
22856 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
22857 #define.
22858 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
22859 function.
22860
22861 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
22862
22863 * config/microblaze/microblaze.c
22864 (get_branch_target): New.
22865 (insert_wic_for_ilb_runout): New.
22866 (insert_wic): New.
22867 (microblaze_machine_dependent_reorg): New.
22868 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
22869 * config/microblaze/microblaze.md
22870 (UNSPEC_IPREFETCH): Define.
22871 (iprefetch): New pattern
22872 * config/microblaze/microblaze.opt
22873 (mxl-prefetch): New flag.
22874
22875 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
22876
22877 * config/microblaze/microblaze.h
22878 (FIXED_REGISTERS): Update in macro.
22879 (CALL_USED_REGISTERS): Update in macro.
22880
22881 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
22882
22883 PR rtl-optimization/68920
22884 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
22885 moves.
22886
22887 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
22888
22889 PR rtl-optimization/68990
22890 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
22891 pseudo instead of inheritance ones.
22892
22893 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
22894 Nick Clifton <nickc@redhat.com>
22895
22896 PR target/69129
22897 PR target/69012
22898 * config/mips/mips.c (mips_compute_frame_info): Initialise
22899 args_size and hard_frame_pointer_offset fields of the frame
22900 structure before calling mips_global_pointer.
22901
22902 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
22903
22904 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
22905 label reference.
22906 * configure: Regenerate.
22907
22908 2016-01-21 Richard Biener <rguenther@suse.de>
22909
22910 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
22911
22912 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
22913
22914 * config/s390/s390.c (s390_asm_declare_function_size): Add code
22915 to actually emit the .size directive.
22916
22917 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
22918 Jakub Jelinek <jakub@redhat.com>
22919
22920 PR target/69187
22921 PR target/65624
22922 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
22923 args array size by one to avoid buffer overflow.
22924
22925 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
22926
22927 * config/s390/s390.md (pool_section_start): Use switch_to_section
22928 to select proper read-only data section instead of hardcoding
22929 .rodata.
22930 (pool_section_end): Use switch_to_section to match the above.
22931
22932 2016-01-21 Richard Biener <rguenther@suse.de>
22933
22934 PR tree-optimization/69378
22935 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
22936 (set_ssa_val_to): Use it for dominance checks taking into
22937 account not executable edges.
22938
22939 2016-01-21 Jakub Jelinek <jakub@redhat.com>
22940
22941 PR c++/69355
22942 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
22943 for bitsize instead of GET_MODE_PRECISION (mode).
22944
22945 2016-01-20 Martin Sebor <msebor@redhat.com>
22946
22947 PR c/52291
22948 * extend.texi (__sync Builtins): Clarify the semantics of
22949 __sync_fetch_and_OP built-ins on pointers.
22950 (__atomic Builtins): Same.
22951
22952 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
22953 Sebastian Pop <s.pop@samsung.com>
22954
22955 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
22956 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
22957 (is_valid_rename): Same.
22958 (translate_isl_ast_to_gimple::get_rename): Same.
22959 (translate_isl_ast_to_gimple::rename_all_uses): Same.
22960 (translate_isl_ast_to_gimple::rename_uses): Same.
22961 (get_new_name): Check for close_phi nodes.
22962 (copy_loop_phi_args): Use phi_node_kind.
22963 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
22964 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
22965
22966 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
22967 Sebastian Pop <s.pop@samsung.com>
22968
22969 Revert commit r229783.
22970 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
22971 Remove use of parameter_rename_map.
22972 (copy_def): Remove.
22973 (copy_internal_parameters): Remove.
22974 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
22975 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
22976 (free_sese_info): Do not free parameter_rename_map.
22977 (set_rename): Do not use parameter_rename_map.
22978 (rename_uses): Update call to set_rename.
22979 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
22980 * sese.h (parameter_rename_map_t): Remove.
22981 (struct sese_info_t): Remove field parameter_rename_map.
22982
22983 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
22984 Sebastian Pop <s.pop@samsung.com>
22985
22986 * graphite-isl-ast-to-gimple.c: Fix comment.
22987 * graphite-scop-detection.c (defined_in_loop_p): New.
22988 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
22989 names defined in loop.
22990
22991 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
22992 Sebastian Pop <s.pop@samsung.com>
22993
22994 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
22995 Discard unstructured if-then-else regions.
22996
22997 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
22998 Sebastian Pop <s.pop@samsung.com>
22999
23000 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
23001 (cleanup_loop_iter_dom): Remove.
23002 (build_loop_iteration_domains): Remove.
23003 (build_scop_context): Remove.
23004 (build_scop_iteration_domain): Remove.
23005 (add_loop_constraints): New.
23006 (build_iteration_domains): New.
23007 (build_poly_scop): Call build_iteration_domains.
23008
23009 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23010 Sebastian Pop <s.pop@samsung.com>
23011
23012 * graphite-scop-detection.c
23013 (scop_detection::harmful_loop_in_region): Free dom and loops.
23014 (scop_detection::loop_body_is_valid_scop): Free bbs.
23015
23016 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23017 Sebastian Pop <s.pop@samsung.com>
23018
23019 * graphite-scop-detection.c (record_loop_in_sese): New.
23020 (gather_bbs::before_dom_children): Call record_loop_in_sese.
23021 (build_scops): Remove call to build_sese_loop_nests.
23022 * sese.c (sese_record_loop): Remove.
23023 (build_sese_loop_nests): Remove.
23024 (new_sese_info): Remove region->loops.
23025 (free_sese_info): Same.
23026 * sese.h (sese_contains_loop): Same.
23027 (build_sese_loop_nests): Remove.
23028 (sese_contains_loop): Remove.
23029
23030 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23031 Sebastian Pop <s.pop@samsung.com>
23032
23033 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
23034 loop_is_valid_in_scop.
23035 (scop_detection::harmful_stmt_in_region): Renamed
23036 harmful_loop_in_region.
23037 Call loop_is_valid_in_scop.
23038
23039 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23040 Sebastian Pop <s.pop@samsung.com>
23041
23042 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
23043 isl_ast_node_mark.
23044
23045 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23046 Sebastian Pop <s.pop@samsung.com>
23047
23048 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
23049 * graphite.h (struct poly_bb): Remove field is_reduction.
23050 (PBB_IS_REDUCTION): Remove.
23051
23052 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23053 Sebastian Pop <s.pop@samsung.com>
23054
23055 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
23056 (add_pdr_constraints): Same.
23057 (scop_get_reads): Same.
23058 (scop_get_must_writes): Same.
23059 (scop_get_may_writes): Same.
23060 (scop_get_original_schedule): Same.
23061 (extend_schedule): Same.
23062 (apply_schedule_on_deps): Same.
23063 (carries_deps): Same.
23064 (compute_deps): Same.
23065 (scop_get_dependences): Same.
23066 * graphite-isl-ast-to-gimple.c
23067 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
23068 * graphite-optimize-isl.c (get_schedule_for_band): Same.
23069 (get_schedule_for_band_list): Same.
23070 (get_schedule_map): Same.
23071 (apply_schedule_map_to_scop): Same.
23072 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
23073 (build_loop_iteration_domains): Same.
23074 (add_condition_to_pbb): Same.
23075 (add_param_constraints): Same.
23076 (pdr_add_memory_accesses): Same.
23077 (pdr_add_data_dimensions): Same.
23078
23079 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
23080
23081 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
23082 requirements.
23083
23084 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
23085
23086 * common.opt (feliminate-dwarf2-dups): Replace references to
23087 "DWARF 2" with just "DWARF".
23088 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
23089 * doc/extend.texi: Likewise.
23090 * doc/cpp.texi: Likewise.
23091 * doc/invoke.texi: Likewise.
23092 (Option Summary): Add -gdwarf to list of Debugging Options.
23093 (Debugging Options): Document -gdwarf.
23094 * doc/contrib.texi: Spell "DWARF" like that.
23095
23096 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23097
23098 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
23099 warning. Fix up formatting.
23100
23101 PR middle-end/67653
23102 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
23103 attempt to mark memory input operand addressable and
23104 call prepare_gimple_addressable in that case. Don't adjust
23105 input_location for diagnostics, use error_at instead.
23106
23107 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
23108
23109 * config/rs6000/ppc-auxv.h: New file.
23110 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
23111 (cpu_is): Likewise.
23112 (cpu_supports): Likewise.
23113 * config/rs6000/rs6000.c: include "ppc-auxv.h".
23114 (cpu_is_info): New variable.
23115 (cpu_supports_info): Likewise.
23116 (tcb_verification_symbol): Likewise.
23117 (cpu_builtin_p): Likewise.
23118 (cpu_expand_builtin): New function.
23119 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
23120 (rs6000_init_builtins): Likewise.
23121 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
23122 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
23123 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
23124 * configure: Regenerate.
23125 * config.in: Likewise.
23126 * doc/extend.texi (PowerPC Built-in Functions): Document
23127 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
23128
23129 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
23130
23131 PR target/68609
23132 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
23133 domain check.
23134 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
23135 for V4SFmode.
23136
23137 2016-01-20 Richard Henderson <rth@redhat.com>
23138
23139 PR bootstrap/69343
23140 PR bootstrap/69339
23141 PR tree-opt/68964
23142 Revert:
23143 * tree.c (tm_define_builtin): New.
23144 (find_tm_vector_type): New.
23145 (build_tm_vector_builtins): New.
23146 (build_common_builtin_nodes): Call it.
23147
23148 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
23149
23150 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
23151 (arm_fp_ok): Likewise.
23152 (arm_fp): Likewise.
23153 (arm_crypto): Likewise.
23154
23155 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
23156 Richard Biener <rguenther@suse.de>
23157
23158 PR tree-optimization/69328
23159 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
23160 vectors have same number of elements.
23161 (vectorizable_condition): Fix masked version recognition.
23162
23163 2016-01-20 Richard Biener <rguenther@suse.de>
23164
23165 PR tree-optimization/69345
23166 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
23167 (VN_INFO_PTR_INFO): Likewise.
23168 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
23169 info when it is equal between non-dominating SSA names.
23170 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23171 Make sure to look at original SSA infos.
23172
23173 2016-01-20 Jeff Law <law@redhat.com>
23174
23175 PR target/25114
23176 * config/m68k/predicates.md (pow2_m1_operand): New predicate
23177 extracted from ...
23178 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
23179 (pc_or_label_operand): New predicate.
23180 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
23181 tests for small integers that are 2^n - 1.
23182
23183 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
23184
23185 * doc/invoke.texi (Options Summary): Add '.' after @xref.
23186
23187 2016-01-19 Jeff Law <law@redhat.com>
23188
23189 PR middle-end/69347
23190 * tree-ssa-threadbackwards.c
23191 (fsm_find_control_statement_thread_paths): Do not try to lookup
23192 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
23193
23194 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
23195
23196 * doc/lto.texi: Remove text that says only Gold has linker plugin
23197 support.
23198
23199 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
23200
23201 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
23202 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
23203 the DIE accordingly.
23204 (modified_type_die): Add REVERSE parameter and pass it recursively,
23205 as well as to base_type_die. Adjust presence check accordingly.
23206 (base_type_for_mode): Adjust call to modified_type_die.
23207 (add_type_attribute): Add REVERSE parameter and pass it to
23208 modified_type_die.
23209 (generic_parameter_die): Adjust call to add_type_attribute.
23210 (add_scalar_info): Likewise.
23211 (add_subscript_info): Likewise.
23212 (gen_array_type_die): Likewise.
23213 (gen_descr_array_type_die): Likewise.
23214 (gen_entry_point_die): Likewise.
23215 (gen_enumeration_type_die): Likewise.
23216 (gen_formal_parameter_die): Likewise.
23217 (gen_subprogram_die): Likewise.
23218 (gen_variable_die ): Likewise.
23219 (gen_const_die): Likewise.
23220 (gen_field_die): Likewise.
23221 (gen_pointer_type_die): Likewise.
23222 (gen_reference_type_die): Likewise.
23223 (gen_ptr_to_mbr_type_die): Likewise.
23224 (gen_inheritance_die): Likewise.
23225 (gen_subroutine_type_die): Likewise.
23226 (gen_typedef_die): Likewise.
23227 (force_type_die): Adjust call to modified_type_die.
23228
23229 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
23230
23231 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
23232 flow throughout the file. Fix broken link to Objective-C 2.0
23233 documentation.
23234 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
23235 errors.
23236
23237 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23238
23239 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
23240
23241 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23242
23243 PR ipa/66223
23244 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
23245 (maybe_record_node): Record cxa_pure_virtual as the only possible
23246 target if there are not ohter candidates.
23247 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
23248
23249 2016-01-19 Richard Biener <rguenther@suse.de>
23250
23251 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
23252 (get_memory_order): Likewise.
23253
23254 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
23255
23256 * tree-vect-stmts.c (vectorizable_store): Check
23257 rhs vectype.
23258
23259 2016-01-19 David Malcolm <dmalcolm@redhat.com>
23260
23261 PR jit/68446
23262 * gcc.c (driver::decode_argv): Add call to
23263 init_opts_obstack before init_options_struct.
23264 * opts.c (init_opts_obstack): Remove idempotency.
23265 (init_options_struct): Replace call to init_opts_obstack
23266 with a gcc_assert to verify that it has already been called.
23267 * toplev.c (toplev::main): Add call to init_opts_obstack before
23268 calls to init_options_struct.
23269 (toplev::finalize): Move cleanup of opts_obstack next to
23270 cleanup of save_decoded_options, clearing the latter, and
23271 save_decoded_options_count.
23272
23273 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23274
23275 PR target/69135
23276 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
23277 attribute to unconditional. Remove %? from output template.
23278
23279 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23280 Jiong Wang <jiong.wang@arm.com>
23281
23282 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
23283 generated from different expand order.
23284
23285 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23286
23287 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23288 Add support for CCMP costing.
23289
23290 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23291
23292 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
23293 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
23294 (fccmpe<mode>): Likewise.
23295 (fcmp): Rename to fcmp and globalize pattern.
23296 (fcmpe): Likewise.
23297 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
23298 (aarch64_gen_ccmp_next): Add FP support.
23299
23300 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23301
23302 * target.def (gen_ccmp_first): Update documentation.
23303 (gen_ccmp_next): Likewise.
23304 * doc/tm.texi (gen_ccmp_first): Update documentation.
23305 (gen_ccmp_next): Likewise.
23306 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
23307 expand_ccmp_expr_1. Improve comments.
23308 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
23309 (ccmp_ior<mode>): Remove pattern.
23310 (cmp<mode>): Remove expand.
23311 (cmp): Globalize pattern.
23312 (cstorecc4): Use cc_register.
23313 (mov<mode>cc): Remove ccmp_cc_register check.
23314 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
23315 Simplify after removal of CC_DNE/* modes.
23316 (aarch64_ccmp_mode_to_code): Remove.
23317 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
23318 In 'k' case use integer as condition.
23319 (aarch64_nzcv_codes): Remove inverted cases.
23320 (aarch64_code_to_ccmode): Remove.
23321 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
23322 comparison with CC register to be used in folowing CCMP/branch/CSEL.
23323 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
23324 pattern. Return the comparison with CC register. Invert conditions
23325 when bitcode is OR.
23326 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
23327 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
23328
23329 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23330
23331 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
23332 instrumented_version.
23333
23334 2016-01-19 Richard Biener <rguenther@suse.de>
23335
23336 PR tree-optimization/69336
23337 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
23338 handled components with get_ref_base_and_extent.
23339 (equal_mem_array_ref_p): Adjust.
23340
23341 2016-01-19 Jakub Jelinek <jakub@redhat.com>
23342
23343 PR debug/65779
23344 * shrink-wrap.c: Include valtrack.h.
23345 (move_insn_for_shrink_wrap): Add DEBUG argument. If
23346 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
23347 in between insn and where it will be moved to. Call
23348 dead_debug_insert_temp.
23349 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
23350 first and dead_debug_local_finish at the end.
23351 For uses and defs bitmap, handle all regs in between REGNO and
23352 END_REGNO, not just the first one.
23353
23354 2016-01-19 Richard Biener <rguenther@suse.de>
23355
23356 PR tree-optimization/69352
23357 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
23358 (equal_mem_array_ref_p): Constrain size and max size properly.
23359 Compare the reverse flag.
23360
23361 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
23362
23363 * ira.c (ira): Update regstat data if we deleted insns.
23364
23365 2016-01-19 Jakub Jelinek <jakub@redhat.com>
23366
23367 PR rtl-optimization/68955
23368 PR rtl-optimization/64557
23369 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
23370 here. Fix up formatting.
23371 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
23372
23373 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23374
23375 PR lto/69133
23376 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
23377 assume that the node has body.
23378 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
23379 check.
23380
23381 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23382
23383 * lto-streamer-out.c (lto_output): Do not stream instrumentation
23384 thunks.
23385
23386 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23387
23388 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
23389 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
23390
23391 2016-01-19 Martin Jambor <mjambor@suse.cz>
23392 Martin Liska <mliska@suse.cz>
23393 Michael Matz <matz@suse.de>
23394
23395 * Makefile.in (OBJS): Add new source files.
23396 (GTFILES): Add hsa.c.
23397 * common.opt (disable_hsa): New variable.
23398 (-Whsa): New warning.
23399 * config.in (ENABLE_HSA): New.
23400 * configure.ac: Treat hsa differently from other accelerators.
23401 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
23402 $enable_offloading.
23403 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
23404 * doc/install.texi (Configuration): Document --with-hsa-runtime,
23405 --with-hsa-runtime-include, --with-hsa-runtime-lib and
23406 --with-hsa-kmt-lib.
23407 * doc/invoke.texi (-Whsa): Document.
23408 (hsa-gen-debug-stores): Likewise.
23409 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
23410 to invoke offload compiler for hsa acclerator.
23411 * opts.c (common_handle_option): Determine whether HSA offloading
23412 should be performed.
23413 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
23414 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
23415 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
23416 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
23417 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
23418 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
23419 GF_OMP_FOR_KIND_GRID_LOOP.
23420 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
23421 (pp_gimple_stmt_1): Likewise.
23422 * gimple-walk.c (walk_gimple_stmt): Likewise.
23423 * gimple.c (gimple_build_omp_grid_body): New function.
23424 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
23425 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
23426 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
23427 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
23428 GF_OMP_TEAMS_GRID_PHONY.
23429 (gimple_statement_omp_single_layout): Updated comments.
23430 (gimple_build_omp_grid_body): New function.
23431 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
23432 (gimple_omp_for_grid_phony): New function.
23433 (gimple_omp_for_set_grid_phony): Likewise.
23434 (gimple_omp_parallel_grid_phony): Likewise.
23435 (gimple_omp_parallel_set_grid_phony): Likewise.
23436 (gimple_omp_teams_grid_phony): Likewise.
23437 (gimple_omp_teams_set_grid_phony): Likewise.
23438 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
23439 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
23440 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
23441 (BUILT_IN_GOMP_TARGET): Updated type.
23442 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
23443 (adjust_for_condition): New function.
23444 (get_omp_for_step_from_incr): Likewise.
23445 (extract_omp_for_data): Moved parts to adjust_for_condition and
23446 get_omp_for_step_from_incr.
23447 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
23448 (fixup_child_record_type): Bail out if receiver_decl is NULL.
23449 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
23450 (scan_omp_parallel): Do not create child functions for phony
23451 constructs.
23452 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
23453 (scan_omp_1_op): Checking assert we are not remapping to
23454 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
23455 (parallel_needs_hsa_kernel_p): New function.
23456 (expand_parallel_call): Register apprpriate parallel child
23457 functions as HSA kernels.
23458 (grid_launch_attributes_trees): New type.
23459 (grid_attr_trees): New variable.
23460 (grid_create_kernel_launch_attr_types): New function.
23461 (grid_insert_store_range_dim): Likewise.
23462 (grid_get_kernel_launch_attributes): Likewise.
23463 (get_target_argument_identifier_1): Likewise.
23464 (get_target_argument_identifier): Likewise.
23465 (get_target_argument_value): Likewise.
23466 (push_target_argument_according_to_value): Likewise.
23467 (get_target_arguments): Likewise.
23468 (expand_omp_target): Call get_target_arguments instead of looking
23469 up for teams and thread limit.
23470 (grid_expand_omp_for_loop): New function.
23471 (grid_arg_decl_map): New type.
23472 (grid_remap_kernel_arg_accesses): New function.
23473 (grid_expand_target_kernel_body): New function.
23474 (expand_omp): Call it.
23475 (lower_omp_for): Do not emit phony constructs.
23476 (lower_omp_taskreg): Do not emit phony constructs but create for them
23477 a temporary variable receiver_decl.
23478 (lower_omp_taskreg): Do not emit phony constructs.
23479 (lower_omp_teams): Likewise.
23480 (lower_omp_grid_body): New function.
23481 (lower_omp_1): Call it.
23482 (grid_reg_assignment_to_local_var_p): New function.
23483 (grid_seq_only_contains_local_assignments): Likewise.
23484 (grid_find_single_omp_among_assignments_1): Likewise.
23485 (grid_find_single_omp_among_assignments): Likewise.
23486 (grid_find_ungridifiable_statement): Likewise.
23487 (grid_target_follows_gridifiable_pattern): Likewise.
23488 (grid_remap_prebody_decls): Likewise.
23489 (grid_copy_leading_local_assignments): Likewise.
23490 (grid_process_kernel_body_copy): Likewise.
23491 (grid_attempt_target_gridification): Likewise.
23492 (grid_gridify_all_targets_stmt): Likewise.
23493 (grid_gridify_all_targets): Likewise.
23494 (execute_lower_omp): Call grid_gridify_all_targets.
23495 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
23496 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
23497 (tree_omp_clause): Added union field dimension.
23498 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
23499 * tree.c (omp_clause_num_ops): Added number of arguments of
23500 OMP_CLAUSE__GRIDDIM_.
23501 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
23502 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
23503 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
23504 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
23505 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
23506 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
23507 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
23508 * tree-pass.h (make_pass_gen_hsail): Declare.
23509 (make_pass_ipa_hsa): Likewise.
23510 * ipa-hsa.c: New file.
23511 * lto-section-in.c (lto_section_name): Add hsa section name.
23512 * lto-streamer.h (lto_section_type): Add hsa section.
23513 * timevar.def (TV_IPA_HSA): New.
23514 * hsa-brig-format.h: New file.
23515 * hsa-brig.c: New file.
23516 * hsa-dump.c: Likewise.
23517 * hsa-gen.c: Likewise.
23518 * hsa.c: Likewise.
23519 * hsa.h: Likewise.
23520 * toplev.c (compile_file): Call hsa_output_brig.
23521 * hsa-regalloc.c: New file.
23522
23523 2016-01-18 Jeff Law <law@redhat.com>
23524
23525 PR tree-optimization/69320
23526 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
23527 ranged object, do nothing if the RHS constant is not [0..1].
23528 (optimize_stmt): Comparing a boolean ranged object against a
23529 constant outside [0..1] results in a compile-time constant.
23530
23531 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
23532 test.
23533
23534 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
23535
23536 * doc/invoke.texi (Invoking GCC): Add new section to menu.
23537 (Option Summary): Update to reflect new section and moved options.
23538 (C++ Dialect Options): Move -fstats to new section.
23539 (Debugging Options): Move all dump, statistics, and other GCC
23540 developer options to new section. Rewrite section introduction
23541 and re-order remaining options to put the more basic ones first.
23542 (Optimization Options): Move -fira-verbose and -flto-report* to
23543 new section.
23544 (Developer Options): New section incorporating moved options.
23545 * doc/cppopts.texi (-dM): Update cross-reference.
23546
23547 2016-01-18 Richard Henderson <rth@redhat.com>
23548
23549 PR target/69176
23550 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
23551 operands to pseudo only if CSE is expected. Split long immediate
23552 operands only after reload, and for the stack pointer.
23553 (*add<GPI>3_pluslong): Remove.
23554 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
23555 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
23556 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
23557 (*add<GPI>3 peepholes): New.
23558 (*add<GPI>3 splitters): New.
23559 * config/aarch64/constraints.md (Upl): New.
23560 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
23561
23562 2016-01-18 Richard Biener <rguenther@suse.de>
23563
23564 PR tree-optimization/69297
23565 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
23566 stmt at most once.
23567 (vect_bb_vectorization_profitable_p): Clear visited flag again.
23568
23569 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
23570
23571 PR middle-end/68542
23572 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
23573 of mixind vector and scalar types.
23574 (fold_relational_const): Add handling of vector
23575 comparison with boolean result.
23576 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
23577 comparison of vector operands with boolean result for EQ/NE only.
23578 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
23579 (verify_gimple_cond): Likewise.
23580 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
23581 valid type of VAL.
23582
23583 2016-01-18 Joseph Myers <joseph@codesourcery.com>
23584
23585 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
23586 !TARGET_OCTEON.
23587
23588 2016-01-18 Richard Biener <rguenther@suse.de>
23589
23590 PR middle-end/69308
23591 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
23592
23593 2016-01-18 Tom de Vries <tom@codesourcery.com>
23594
23595 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
23596
23597 2016-01-18 Tom de Vries <tom@codesourcery.com>
23598
23599 * omp-low.c (set_oacc_fn_attrib): Make extern.
23600 * omp-low.h (set_oacc_fn_attrib): Declare.
23601 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
23602 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
23603 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
23604 Add and handle function parameter oacc_kernels_p.
23605 (find_reduc_addr, get_omp_data_i_param): New function.
23606 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
23607 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
23608 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
23609 Calculate dominance info. Skip loops that are not in a kernels region
23610 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
23611 (pass_parallelize_loops::execute): Call parallelize_loops with
23612 oacc_kernels_p argument.
23613 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
23614 New member function.
23615 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
23616 * passes.def: Add argument to pass_parallelize_loops instantation.
23617
23618 2016-01-18 Tom de Vries <tom@codesourcery.com>
23619
23620 * tree-parloops.c (pass_parallelize_loops::execute): Allow
23621 pass_parallelize_loops to be run outside the loop pipeline.
23622
23623 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
23624
23625 * tree-scalar-evolution.c (follow_copies_to_constant): New.
23626 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
23627
23628 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
23629
23630 PR target/63679
23631 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
23632 using get_ref_base_and_extent.
23633 (equal_mem_array_ref_p): New.
23634 (hashable_expr_equal_p): Add call to previous.
23635
23636 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
23637
23638 PR target/63679
23639 * tree-sra.c (disqualified_constants, constant_decl_p): New.
23640 (sra_initialize): Allocate disqualified_constants.
23641 (sra_deinitialize): Free disqualified_constants.
23642 (disqualify_candidate): Update disqualified_constants when appropriate.
23643 (create_access): Scan for constant-pool entries as we go along.
23644 (scalarizable_type_p): Add check against type_contains_placeholder_p.
23645 (maybe_add_sra_candidate): Allow constant-pool entries.
23646 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
23647 (initialize_constant_pool_replacements): New.
23648 (sra_modify_assign): Avoid mangling assignments created by previous,
23649 and don't generate writes into constant pool.
23650 (sra_modify_function_body): Call initialize_constant_pool_replacements.
23651
23652 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
23653
23654 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
23655 andnot instruction.
23656 (scalar_chain::convert_op): Likewise.
23657 * config/i386/i386.md (*andndi3_doubleword): New.
23658
23659 2016-01-18 Richard Biener <rguenther@suse.de>
23660
23661 PR tree-optimization/69170
23662 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
23663 building a vector from scalar results of a pattern stmt.
23664
23665 2016-01-18 Jakub Jelinek <jakub@redhat.com>
23666
23667 * haifa-sched.c (autopref_multipass_init): Work around
23668 -Wmaybe-uninitialized warning.
23669
23670 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
23671
23672 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
23673 against the constant 0.
23674
23675 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23676
23677 PR tree-optimization/68799
23678 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
23679 look up phi candidates in the statement-candidate map.
23680 (phi_add_costs): Likewise.
23681 (record_phi_increments): Likewise.
23682 (phi_incr_cost): Likewise.
23683 (ncd_with_phi): Likewise.
23684 (all_phi_incrs_profitable): Likewise.
23685
23686 2016-01-17 Jakub Jelinek <jakub@redhat.com>
23687
23688 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
23689 -Wmaybe-uninitialized warning.
23690
23691 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
23692
23693 * doc/invoke.texi (Invoking GCC): Add new section to menu.
23694 (Option Summary): Update to reflect new section and moved options.
23695 (C++ Dialect Options): Move -fvtable-verify and related options.
23696 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
23697 and profiling-related options.
23698 (Optimization Options): Move profile generation options and
23699 -fstack-protector and related options.
23700 (Instrumentation Options): New section incorporating moved options.
23701 (Code Generation Options): Move -finstrument-functions and
23702 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
23703
23704 2016-01-16 Tom de Vries <tom@codesourcery.com>
23705
23706 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
23707
23708 2016-01-16 Tom de Vries <tom@codesourcery.com>
23709
23710 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
23711
23712 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
23713
23714 * hash-table.h (hash_table::empty): Turn into an inline wrapper
23715 that checks whether the table is already empty. Rename the
23716 original implementation to...
23717 (hash_table::empty_slot): ...this new private function.
23718
23719 2016-01-15 David Malcolm <dmalcolm@redhat.com>
23720
23721 PR diagnostic/68899
23722 * diagnostic-show-locus.c (layout::print_source_line): Move x
23723 offset of line until after call to
23724 get_line_width_without_trailing_whitespace.
23725
23726 2016-01-15 Jeff Law <law@redhat.com>
23727
23728 PR tree-optimization/69270
23729 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
23730 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
23731 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
23732 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
23733 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
23734 ssa_name_has_boolean_range and constant_boolean_node.
23735
23736 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
23737
23738 PR rtl-optimization/69030
23739 * lra-spills.c (remove_pseudos): Check nrefs and make the function
23740 returning bool.
23741 (spill_pseudos): Delete debug insn for dead pseudo.
23742 (lra_spill): Initiate spill_hard_reg and slots memory separately.
23743
23744 2016-01-15 Jiong Wang <jiong.wang@arm.com>
23745
23746 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
23747 New.
23748 (TYPES_UNOPUS): Likewise.
23749 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
23750 builtin type, from UNOP to UNOPUS.
23751 (lbtruncuv4sf): Likewise.
23752 (lbtruncuv2df): Likewise.
23753 (lrounduv2sf): Likewise.
23754 (lrounduv4sf): Likewise.
23755 (lrounduv2df): Likewise.
23756 (lroundusf): Likewise.
23757 (lroundusf): Likewise.
23758 (lceiluv2sf): Likewise.
23759 (lceiluv4sf): Likewise.
23760 (lceiluv2df): Likewise.
23761 (lceilusf): Likewise.
23762 (lceiludf): Likewise.
23763 (lflooruv2sf): Likewise.
23764 (lflooruv4sf): Likewise.
23765 (lflooruv2df): Likewise.
23766 (lfloorusf): Likewise.
23767 (lfloorudf): Likewise.
23768 (lfrintnuv2sf): Likewise.
23769 (lfrintnuv4sf): Likewise.
23770 (lfrintnuv2df): Likewise.
23771 (lfrintnusf): Likewise.
23772 (lfrintnudf): Likewise.
23773 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
23774 conversion.
23775 (vcvtq_u32_f32): Likewise.
23776 (vcvtq_u64_f64): Likewise.
23777 (vcvta_u32_f32): Likewise.
23778 (vcvtaq_u32_f32): Likewise.
23779 (vcvtaq_u64_f64): Likewise.
23780 (vcvtm_u32_f32): Likewise.
23781 (vcvtmq_u32_f32): Likewise.
23782 (vcvtmq_u64_f64): Likewise.
23783 (vcvtn_u32_f32): Likwise.
23784 (vcvtnq_u32_f32): Likewise.
23785 (vcvtnq_u64_f64): Likewise.
23786 (vcvtp_u32_f32): Likewise.
23787 (vcvtpq_u32_f32): Likewise.
23788 (vcvtpq_u64_f64): Likewise.
23789 (vcvtmd_u64_f64): Likewise.
23790 (vcvtms_u32_f32): Likewise.
23791 (vcvtad_u64_f64): Likewise.
23792 (vcvtas_u32_f32): Likewise.
23793 (vcvtnd_u64_f64): Likewise.
23794 (vcvtns_u32_f32): Likewise.
23795 (vcvtpd_u64_f64): Likewise.
23796 (vcvtps_u32_f32): Likewise.
23797
23798 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23799
23800 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
23801 CSEL of zero_extended registers.
23802
23803 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23804
23805 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23806 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
23807
23808 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23809
23810 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
23811 false when argument string is not found in the attributes table
23812 at all.
23813
23814 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
23815
23816 PR target/68609
23817 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
23818 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
23819 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
23820 precision estimate.
23821
23822 2016-01-15 Richard Biener <rguenther@suse.de>
23823
23824 PR tree-optimization/66856
23825 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
23826 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
23827 (vect_create_new_slp_node): Increment stmt reference count.
23828 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
23829 an SLP tree before swapping operands.
23830 (vect_build_slp_tree): Likewise.
23831 (destroy_bb_vec_info): Free stmt info after SLP instances.
23832 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
23833 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
23834 (STMT_VINFO_NUM_SLP_USES): New macro.
23835
23836 2016-01-15 Richard Biener <rguenther@suse.de>
23837
23838 PR debug/69137
23839 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
23840 (add_linkage_name): ... here.
23841 (gen_typedef_die): Use add_linkage_name_raw instead of
23842 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
23843 if necessary.
23844
23845 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
23846
23847 * gimplify.c (oacc_default_clause): Decode reference and pointer
23848 types for both kernels and parallel regions.
23849
23850 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
23851
23852 PR middle-end/69246
23853 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
23854
23855 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
23856
23857 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
23858 (convert_scalars_to_vector): Likewise.
23859
23860 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
23861
23862 * doc/extend.texi (Type Traits): Fix grammar.
23863
23864 2016-01-15 Martin Jambor <mjambor@suse.cz>
23865
23866 * tree-inline.c (remap_decl): Use existing dclarations if
23867 remapping a type and prevent_decl_creation_for_types.
23868 (replace_locals_stmt): Do an initial remapping of non-VLA typed
23869 decls first. Do real remapping with
23870 prevent_decl_creation_for_types set.
23871 * tree-inline.h (copy_body_data): New field
23872 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
23873 padding.
23874
23875 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
23876
23877 * config/s390/s390.opt (mmvcle): More verbose help text.
23878
23879 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
23880
23881 * config/s390/s390.opt: Add period to -mzvector option text.
23882
23883 2016-01-15 Richard Biener <rguenther@suse.de>
23884
23885 PR tree-optimization/68961
23886 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
23887 of invariants in stores again.
23888
23889 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
23890
23891 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
23892
23893 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
23894
23895 * config/i386/i386.c (ix86_expand_branch): Don't split
23896 DI mode xor instruction to SI mode.
23897
23898 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
23899
23900 PR ipa/68148
23901 * ipa-icf.c (sem_function::merge): Virtual functions may become
23902 reachable even if they address is not taken and there are no
23903 idrect calls.
23904
23905 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
23906
23907 * lto-streamer-out.c (subtract_estimated_size): New function.
23908 (get_symbol_initial_value): Use it.
23909
23910 2016-01-15 Christian Bruel <christian.bruel@st.com>
23911
23912 PR target/65837
23913 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
23914 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
23915 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
23916 use add_builtin_function_ext_scope instead of add_builtin_function.
23917 (neon_set_p, neon_crypto_set_p): Remove.
23918 (arm_init_builtins): Always call arm_init_neon_builtins and
23919 arm_init_crypto_builtins.
23920 (arm_expand_builtin): Check that builtins are allowed for the arch.
23921 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
23922 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
23923 arm_init_neon_builtins call.
23924
23925 2016-01-15 Richard Biener <rguenther@suse.de>
23926
23927 PR tree-optimization/69117
23928 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
23929 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
23930 of the leader conservatively.
23931 (free_scc_vn): Restore original SSA name infos.
23932
23933 2016-01-14 Jeff Law <law@redhat.com>
23934
23935 PR tree-optimization/69270
23936 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
23937 single bit of precision, verify it's also unsigned.
23938 (record_edge_info): Use constant_boolean_node rather than fold_convert
23939 to convert boolean_true/boolean_false to the right type.
23940
23941 2016-01-14 Richard Henderson <rth@redhat.com>
23942
23943 PR rtl-opt/69014
23944 * loop-doloop.c (record_reg_sets): New.
23945 (doloop_optimize): Reject the transform if the sequence
23946 clobbers registers live at the end of the loop block.
23947 (doloop_optimize_loops): Enable df_live if needed.
23948
23949 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
23950
23951 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
23952 * config/rs6000/rs6000.c: Likewise.
23953 * config/rs6000/rs6000.h: Likewise.
23954 * config/rs6000/rs6000.md: Likewise.
23955 * doc/extend.texi: Likewsie.
23956
23957 2016-01-14 Jeff Law <law@redhat.com>
23958
23959 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
23960 typo.
23961
23962 2016-01-14 Richard Henderson <rth@redhat.com>
23963
23964 PR c/69272
23965 PR tree-opt/68964
23966 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
23967 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
23968 instead of builtin_decl_declared_p to test for declaration.
23969
23970 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
23971
23972 * doc/loop.texi (Loop Analysis and Representation): Document
23973 loop_depth function.
23974
23975 2016-01-14 Tom de Vries <tom@codesourcery.com>
23976
23977 PR tree-optimization/68773
23978 * omp-low.c (expand_omp_target): Don't set force_output.
23979 * varpool.c (varpool_node::get_create): Same.
23980 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
23981 offload_funcs with force_output.
23982
23983 2016-01-14 Jakub Jelinek <jakub@redhat.com>
23984
23985 PR debug/69244
23986 * lra-eliminations.c (move_plus_up): Don't change anything if either
23987 the outer or inner subreg mode is not MODE_INT.
23988 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
23989 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
23990
23991 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
23992
23993 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
23994 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
23995 reduc_uplus_@var{m}): Remove.
23996 * expr.c (expand_expr_real_2): Remove expansion path for
23997 reduc_[us](min|max|plus) optabs.
23998 * optabs-tree.c (scalar_reduc_to_vector): Remove.
23999 * optabs-tree.h (scalar_reduc_to_vector): Remove.
24000 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
24001 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
24002 * tree-vect-loop.c (vectorizable_reduction): Remove test for
24003 reduc_[us](min|max|plus) optabs.
24004
24005 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24006
24007 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
24008 (reduc_plus_scal_v2sf): New.
24009 (reduc_smax_v2sf): Rename to...
24010 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
24011 (reduc_smin_v2sf): Rename to...
24012 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
24013
24014 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
24015
24016 * alias.c (compare_base_symbol_refs): New function.
24017 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
24018 it.
24019
24020 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24021
24022 PR middle-end/68146
24023 PR tree-optimization/69155
24024 * tree-complex.c: Include cfganal.h.
24025 (phis_to_revisit): New variable.
24026 (extract_component): Add phiarg_p argument. Assert that returned
24027 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
24028 (update_phi_components): Partly rewrite to use loop over real/imag
24029 components instead of code duplication. If extract_component returns
24030 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
24031 create_tmp_reg into the PHI node instead, and mention the phi triplet
24032 in phis_to_revisit.
24033 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
24034 in phis_to_revisit at the end.
24035
24036 2016-01-14 Richard Biener <rguenther@suse.de>
24037
24038 PR tree-optimization/68060
24039 * tree-vect-loop.c (vect_is_simple_reduction): Check the
24040 outer loop reduction is only used in the inner loop before
24041 detecting a double reduction.
24042
24043 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24044
24045 PR target/68269
24046 * combine.c (expand_field_assignment): Punt if compute_mode is
24047 unsupported scalar mode.
24048
24049 2016-01-14 Richard Biener <rguenther@suse.de>
24050
24051 PR tree-optimization/66856
24052 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
24053 SLP node only if it built successfully.
24054 (vect_analyze_slp_instance): Adjust.
24055
24056 2016-01-14 Jeff Law <law@redhat.com>
24057
24058 PR tree-optimization/69270
24059 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
24060 (record_edge_info): Use it. Convert boolean_{true,false}_node
24061 to the type of op0.
24062
24063 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
24064
24065 PR ipa/66487
24066 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
24067 use block_ultimate_origin
24068 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
24069
24070 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
24071
24072 * doc/invoke.texi (Submodel Options): Rename section to
24073 "Machine-Dependent Options" to better reflect its content.
24074 Rewrite introductory text to remove archaic CPU names.
24075 Update references.
24076
24077 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
24078
24079 * doc/invoke.texi (Code Gen Options): Move section up in file,
24080 before target-specific options. Update menu and option summary
24081 to reflect the new section ordering.
24082
24083 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
24084
24085 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
24086 (C++ Dialect Options): Add cross-reference to -std option.
24087 * doc/standards.texi (C++ Language): Document C++14 support.
24088
24089 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24090
24091 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
24092 for pack/unpack functions for __ibm128.
24093 (PACK_IF): Likewise.
24094 (UNPACK_IF): Likewise.
24095
24096 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24097 support for __ibm128 pack/unpack functions.
24098 (rs6000_invalid_builtin): Likewise.
24099 (rs6000_init_builtins): Likewise.
24100 (rs6000_opt_masks): Likewise.
24101
24102 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
24103 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
24104 functions
24105 (RS6000_BTM_COMMON): Likewise.
24106
24107 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
24108 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
24109 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
24110 128-bit floating point. Add support for the double values to be
24111 in Altivec registers for TF/IF packing and unpacking, but restrict
24112 TD packing sub-fields to be FPR registers. Don't allow overlapped
24113 register support for packing. Allow pack inputs to be memory
24114 locations. Don't build generator functions for unpack<mode>_dm
24115 and unpack<mode>_nodm.
24116 (unpack<mode>_dm): Likewise.
24117 (unpack<mode>_nodm): Likewise.
24118 (pack<mode>): Likewise.
24119
24120 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
24121 built-in functions to pack/unpack explicit __ibm128 values.
24122 (__builtin_unpack_ibm128): Likewise.
24123
24124 * doc/extend.texi (PowerPC Built-in Functions): Document
24125 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
24126
24127 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
24128
24129 PR c/66208
24130 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
24131 Add new arg loc and pass it down as context.
24132 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
24133 to the location to use for the warning.
24134 (check_function_arguments): New arg loc. All callers changed. Pass
24135 it to check_function_nonnull.
24136 * c-common.h (check_function_arguments): Adjust declaration.
24137
24138 2016-01-13 Jakub Jelinek <jakub@redhat.com>
24139
24140 PR tree-optimization/69156
24141 * gimple.c (validate_type): Removed.
24142 (gimple_builtin_call_types_compatible_p): Use
24143 useless_type_conversion_p instead of validate_type.
24144 * value-prof.c (gimple_stringop_fixed_value): Fold
24145 icall_size to correct type.
24146
24147 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
24148
24149 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
24150 effects.
24151
24152 2016-01-13 Richard Henderson <rth@redhat.com>
24153
24154 PR tree-opt/68964
24155 * target.def (builtin_tm_load, builtin_tm_store): Remove.
24156 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
24157 (ix86_builtin_tm_store): Remove.
24158 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24159 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24160 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24161 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24162 * doc/tm.texi: Rebuild.
24163
24164 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
24165 (BUILT_IN_TM_MEMCPY_RTWN): New.
24166 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
24167 fallback from vector to integer helpers.
24168 (build_tm_load): Handle vector types directly, instead of
24169 via target hook.
24170 (build_tm_store): Likewise.
24171 (expand_assign_tm): Prepare for register types not handled by
24172 the above. Copy them to memory and use memcpy.
24173 * tree.c (tm_define_builtin): New.
24174 (find_tm_vector_type): New.
24175 (build_tm_vector_builtins): New.
24176 (build_common_builtin_nodes): Call it.
24177
24178 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
24179
24180 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
24181 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
24182
24183 2016-01-13 Tom de Vries <tom@codesourcery.com>
24184
24185 PR tree-optimization/69169
24186 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
24187 handled_struct_type param.
24188 (create_variable_info_for, intra_create_variable_infos): Call
24189 create_variable_info_for_1 with extra arg.
24190
24191 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
24192
24193 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
24194 and "armv8.1-a+crc" entries.
24195
24196 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
24197
24198 PR target/69228
24199 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
24200 Change first operand predicate from register_or_constm1_operand
24201 to register_operand.
24202 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
24203 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
24204 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
24205 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
24206 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
24207 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
24208 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
24209 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
24210 comparison with constm1_rtx from vec_prefetch_gen part.
24211
24212 2016-01-13 Richard Biener <rguenther@suse.de>
24213
24214 PR tree-optimization/69013
24215 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
24216 Exchange assert for a test.
24217
24218 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24219
24220 PR target/69247
24221 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
24222
24223 2016-01-13 Richard Biener <rguenther@suse.de>
24224
24225 PR tree-optimization/69242
24226 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
24227 assert with a check.
24228
24229 2016-01-13 Richard Biener <rguenther@suse.de>
24230
24231 PR tree-optimization/69186
24232 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
24233 Properly guard vect_update_misalignment_for_peel call.
24234
24235 2016-01-12 Jeff Law <law@redhat.com>
24236
24237 PR tree-optimization/pr67755
24238 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
24239 "need_profile_correction".
24240 (thread_block_1): Initialize new field to false by default. If we
24241 have multiple thread paths through a common joiner to different
24242 final targets, then set new field to true.
24243 (compute_path_counts): Only do count adjustment when it's really
24244 needed.
24245
24246 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24247
24248 * doc/invoke.texi (Spec Files): Move section down in file, past
24249 all command-line option descriptions.
24250
24251 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24252
24253 PR middle-end/54809
24254 * doc/gty.texi: Remove documentation of mark_hook.
24255 * gengtype.c (struct write_types_data): Remove code to support
24256 mark_hook attribute.
24257 (walk_type): Likewise.
24258 (write_func_for_structure): Likewise.
24259
24260 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24261
24262 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
24263 Directory Options, and -specs= to Overall Options.
24264 (Overall Options): Adjust similarly. Reorder to group related
24265 options together. Make -specs= cross-reference the spec file details.
24266 (Directory Options): Adjust similarly.
24267
24268 2016-01-12 Jeff Law <law@redhat.com>
24269
24270 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
24271
24272 2016-01-12 Olivier Hainque <hainque@adacore.com>
24273
24274 * gcc.c (spec_undefvar_allowed): New global.
24275 (process_command): Set to true when running for --version or --help,
24276 alone or together.
24277 (getenv_spec_function): When the variable is not defined, use the
24278 variable name as the variable value if we're allowed not to issue
24279 a fatal error.
24280
24281 2016-01-12 Bin Cheng <bin.cheng@arm.com>
24282
24283 PR tree-optimization/68911
24284 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
24285 information computed for expression "init + nit * step".
24286
24287 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24288
24289 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
24290 about name of GCC executable. Remove deleted node from menu.
24291 (Directory Options) <-B>: Remove cross-reference to deleted node.
24292 (Target Options): Delete section.
24293
24294 2016-01-12 Christian Bruel <christian.bruel@st.com>
24295
24296 PR target/69180
24297 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
24298 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
24299
24300 2016-01-12 Jakub Jelinek <jakub@redhat.com>
24301
24302 PR target/69198
24303 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
24304 aligned_mem is properly set for AVX512-VL floating point masked
24305 stores.
24306
24307 PR target/69175
24308 * ifcvt.c (cond_exec_process_if_block): When removing the last
24309 insn from then_bb, remove also any possible barriers that follow it.
24310
24311 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
24312
24313 PR target/68456
24314 PR target/69226
24315 * config/i386/iamcu.h (SIZE_TYPE): New macro.
24316 (PTRDIFF_TYPE): Likewise.
24317 (WCHAR_TYPE): Likewise.
24318 (WCHAR_TYPE_SIZE): Likewise.
24319 (STDINT_LONG32): Likewise.
24320
24321 2016-01-12 Richard Biener <rguenther@suse.de>
24322
24323 PR tree-optimization/69053
24324 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
24325 convert initial value for cond reductions.
24326
24327 2016-01-12 Richard Biener <rguenther@suse.de>
24328
24329 PR tree-optimization/69007
24330 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
24331 widen_sum after dot_prod and sad.
24332
24333 2016-01-12 Richard Biener <rguenther@suse.de>
24334
24335 PR tree-optimization/69168
24336 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
24337 pattern stmt SLP type.
24338 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
24339 end up unused so cope with that case.
24340
24341 2016-01-12 Richard Biener <rguenther@suse.de>
24342
24343 PR tree-optimization/69157
24344 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
24345 stmts def type only during analyze phase.
24346 (vectorizable_call): Likewise.
24347 (vectorizable_simd_clone_call): Likewise.
24348 (vectorizable_conversion): Likewise.
24349 (vectorizable_assignment): Likewise.
24350 (vectorizable_shift): Likewise.
24351 (vectorizable_operation): Likewise.
24352 (vectorizable_store): Likewise.
24353 (vectorizable_load): Likewise.
24354
24355 2016-01-12 Richard Biener <rguenther@suse.de>
24356
24357 PR tree-optimization/69174
24358 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
24359 space.
24360 (vectorizable_load): Properly compute the number of loads needed
24361 for permuted strided SLP loads and do not spuriously assign
24362 to SLP_TREE_VEC_STMTS.
24363
24364 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
24365
24366 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
24367 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
24368 (MD_EXEC_PREFIX): Remove.
24369 (MD_STARTFILE_PREFIX) Removee.
24370 (FILE_NAME_ABSOLUTE_P): Remove.
24371 (CPP_SPEC): Do not read macros from sys/version.h.
24372 (LINK_COMMAND_SPEC): Remove.
24373 (LOCAL_INCLUDE_DIR): Remove.
24374 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
24375 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
24376 (POST_LINK_SPEC): Define to invoke stubify after linker
24377 (LIBSTDCXX): Remove define
24378 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
24379 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
24380 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
24381 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
24382 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
24383 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
24384 (i386_djgpp_asm_named_section): Add propotype of new procedure
24385
24386 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
24387 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
24388 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
24389 in config/i386/djgpp.h).
24390 (STANDARD_STARTFILE_PREFIX_2): Define identical to
24391 STANDARD_STARTFILE_PREFIX_1.
24392 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
24393 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
24394 installation errors.
24395 (MAX_OFILE_ALIGNMENT): Define to 128.
24396 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
24397
24398 * config/i386/djgpp.c: New file. Add implementation of
24399 i386_djgpp_asm_named_section.
24400
24401 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
24402
24403 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
24404 Add rule for building djgpp.o.
24405
24406 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24407
24408 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
24409 (rtx_is_swappable_p): Reductions are swappable.
24410 (insn_is_swappable_p): V2DF reductions are swappable.
24411
24412 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
24413
24414 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
24415 reloads for other unsupported memory operands.
24416
24417 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
24418 Jim Wilson <jim.wilson@linaro.org>
24419
24420 PR target/69194
24421 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
24422 copy_to_mode_reg instead of force_reg.
24423
24424 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
24425
24426 PR target/69225
24427 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
24428 TARGET_80387 is true.
24429
24430 2016-01-11 Jakub Jelinek <jakub@redhat.com>
24431
24432 PR target/69071
24433 * lra-eliminations.c (move_plus_up): Only move plus up
24434 if subreg of the constant can be simplified into constant
24435 and use the simplified subreg of the constant instead of
24436 the original constant.
24437
24438 * fold-const.c (fold_convertible_p): Don't return true
24439 for conversion of VECTOR_TYPE to same sized integral type.
24440 (fold_convert_loc): Fix up formatting. Fold conversion of
24441 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
24442 instead of NOP_EXPR.
24443
24444 PR tree-optimization/69214
24445 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
24446 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
24447 Formatting fix.
24448
24449 PR tree-optimization/69207
24450 * tree-vect-slp.c (vect_get_constant_vectors): For
24451 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
24452 fold_convertible_p to vector_type's element type, and always
24453 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
24454
24455 2016-01-11 Richard Biener <rguenther@suse.de>
24456
24457 PR tree-optimization/69173
24458 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
24459 fixup the cycle if all stmts are in a pattern.
24460
24461 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
24462
24463 PR middle-end/68999
24464 * alias.c (base_alias_check): Move check for addresses with
24465 alignment ANDs before the call for compare_base_decls.
24466 (memrefs_conflict_p): Return -1 for different decls
24467 that went through alignment adjustments.
24468
24469 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24470
24471 PR rtl-optimization/68796
24472 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
24473 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
24474 and QImode comparisons against zero with CC_NZmode.
24475 * config/aarch64/iterators.md (short_mask): New mode_attr.
24476
24477 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
24478
24479 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
24480 (<avx512>_store<mode>_mask): Likewise.
24481
24482 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
24483 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24484
24485 PR rtl-optimization/68841
24486 * ifcvt.c (struct noce_if_info): Add orig_x field.
24487 (bbs_ok_for_cmove_arith): Add to_rename parameter.
24488 Don't record conflicts on to_rename if it's present.
24489 Allow memory destinations in sets.
24490 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
24491 blocks, passing orig_x to the checks.
24492 (noce_process_if_block): Set if_info->orig_x appropriately.
24493
24494 2016-01-11 Tom de Vries <tom@codesourcery.com>
24495
24496 PR tree-optimization/69069
24497 * tree-parloops.c (create_parallel_loop): Add missing phi args.
24498
24499 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
24500
24501 PR rtl-optimization/68920
24502 * config/i386/i386.c (ix86_option_override_internal): Restrict number
24503 of conditional moves for RTL if-conversion to 1 for
24504 TARGET_ONE_IF_CONV_INSN.
24505 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
24506 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
24507 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
24508 parameter to restirct number of conditional moves for
24509 RTL if-conversion.
24510 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
24511 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
24512 conditionl moves.
24513
24514 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
24515
24516 PR bootstrap/69123
24517 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
24518 onepart vars. Fix typo in comment. Fix reversed condition in
24519 unshare test.
24520 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
24521
24522 PR bootstrap/69123
24523 * var-tracking.c (dump_onepart_variable_differences): New.
24524 (dataflow_set_different): If a detailed dump is requested,
24525 delay early returns and dump differences between onepart
24526 variables present before and after, and added variables.
24527
24528 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
24529
24530 PR target/69010
24531 * expr.c (expand_expr_real_1): For boolean vector constants
24532 with a scalar mode use const_scalar_mask_from_tree.
24533 (const_scalar_mask_from_tree): New.
24534 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
24535 assigned to a mask type to handle constants.
24536
24537 2016-01-11 Martin Jambor <mjambor@suse.cz>
24538
24539 PR ipa/69044
24540 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
24541 useless parameters if we cannot change function signature.
24542
24543 2016-01-11 Martin Jambor <mjambor@suse.cz>
24544
24545 PR ipa/66616
24546 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
24547 flag.
24548
24549 2016-01-11 Tom de Vries <tom@codesourcery.com>
24550
24551 PR tree-optimization/69109
24552 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
24553 latch with phi.
24554
24555 2016-01-11 Tom de Vries <tom@codesourcery.com>
24556
24557 PR tree-optimization/69108
24558 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
24559 res is not used in a phi.
24560
24561 2016-01-11 Yury Gribov <y.gribov@samsung.com>
24562
24563 PR 67425
24564 * common.opt (frandom-seed): Fix parameter name.
24565 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
24566
24567 2016-01-11 Tom de Vries <tom@codesourcery.com>
24568
24569 PR tree-optimization/69058
24570 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
24571 not supported.
24572
24573 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
24574
24575 * config/arc/arc.opt (mdiv-rem): Add period to the end.
24576 (mcode-density): Likewise.
24577
24578 2016-01-10 Tom de Vries <tom@codesourcery.com>
24579
24580 PR tree-optimization/69062
24581 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
24582 (parallelize_loops): Don't paralelize loop that has phi with address
24583 arg.
24584
24585 2016-01-10 Tom de Vries <tom@codesourcery.com>
24586
24587 PR tree-optimization/69039
24588 * tree-parloops.c (try_create_reduction_list): Only allow single exit
24589 phi for reduction.
24590
24591 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
24592
24593 PR middle-end/68743
24594 * match.pd: Require target has function_c99_misc before doing
24595 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
24596
24597 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
24598
24599 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
24600 use GMPINC.
24601 * configure: Regenerate.
24602
24603 2016-01-09 Jakub Jelinek <jakub@redhat.com>
24604
24605 PR middle-end/50865
24606 PR tree-optimization/69097
24607 * fold-const.h (expr_not_equal_to): New prototype.
24608 * fold-const.c: Include stringpool.h and tree-ssanames.h.
24609 (expr_not_equal_to): New function.
24610 * match.pd (X % -Y is the same as X % Y): Don't optimize
24611 unless X is known not to be equal to minimum or Y is known
24612 not to be equal to -1.
24613 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
24614 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
24615 (simplify_stmt_using_ranges): Adjust caller.
24616 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
24617 substitute_and_fold.
24618
24619 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
24620
24621 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
24622 w/o DECL_NAME.
24623
24624 2016-01-08 Jakub Jelinek <jakub@redhat.com>
24625
24626 PR tree-optimization/69167
24627 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
24628 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
24629 ops[0] comparison.
24630 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
24631
24632 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
24633 Richard Biener <rguenther@suse.de>
24634
24635 PR tree-optimization/68707
24636 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
24637 instances that can be handled via vect_load_lanes.
24638
24639 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
24640
24641 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
24642 if we can't determine address equivalence.
24643 * alias.c (compare_base_decl): Update for changed return value of
24644 symtab_node::equal_address_to.
24645
24646 2016-01-08 Jason Merrill <jason@redhat.com>
24647
24648 PR c++/68983
24649 PR c++/67557
24650 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
24651 * expr.c (store_field): Not here.
24652 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
24653 call with TREE_ADDRESSABLE type.
24654 * tree-cfg.c (verify_gimple_call): Adjust.
24655
24656 2016-01-08 Olivier Hainque <hainque@adacore.com>
24657
24658 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
24659 libc_internal.
24660
24661 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
24662
24663 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
24664 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
24665 (reduc_smin_v2sf): Rename to...
24666 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
24667 (reduc_splus_v2sf): Rename to...
24668 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
24669
24670 2016-01-08 Jakub Jelinek <jakub@redhat.com>
24671
24672 PR tree-optimization/69162
24673 * gimplify.c (gimplify_va_arg_expr): Encode original type of
24674 valist argument in another argument.
24675 (gimplify_modify_expr): Adjust for the above change. Cleanup.
24676 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
24677 to determine the va_list type, build a MEM_REF instead of
24678 build_fold_indirect_ref.
24679
24680 PR tree-optimization/69172
24681 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
24682 gimple_build.
24683
24684 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
24685
24686 PR tree-optimization/67781
24687 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
24688 and cmpnop in two steps: first the ones not accessed in original
24689 gimple expression in a endian independent way and then the ones not
24690 accessed in the final result in an endian-specific way.
24691
24692 2016-01-08 Jakub Jelinek <jakub@redhat.com>
24693
24694 PR tree-optimization/69083
24695 * tree-vect-slp.c (vect_get_constant_vectors): For
24696 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
24697 element type. If op is fold_convertible_p to vector_type's element
24698 type, use NOP_EXPR instead of VCE.
24699
24700 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
24701
24702 PR rtl-optimization/67778
24703 PR rtl-optimization/68634
24704 PR rtl-optimization/68909
24705 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
24706 block from the stack until done with it. Remove a superfluous
24707 bitmap set. Remove a superfluous bitmap test.
24708
24709 2016-01-07 Martin Sebor <msebor@redhat.com>
24710
24711 PR c/68966
24712 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
24713 constraint on the type of arguments.
24714
24715 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
24716
24717 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
24718 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
24719 unaligned_access on the gcc_options set.
24720 * config/arm/arm.c (arm_option_override_internal): Use
24721 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
24722
24723 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
24724
24725 PR target/69140
24726 * config/i386/i386.c (ix86_frame_pointer_required): Enable
24727 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
24728
24729 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
24730
24731 Revert
24732 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
24733
24734 PR target/69140
24735 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
24736 depending on frame_pointer_needed before remaining integer and SSE
24737 registers are saved.
24738
24739 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
24740
24741 PR 1078
24742 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
24743
24744 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
24745
24746 PR target/69171
24747 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
24748 Use the "xBm" constraint.
24749 (float<sseintvecmodelower><mode>2<mask_name><round_name):
24750 Likewise.
24751 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
24752 (sse_cvtsi2ssq<round_name>): Likewise.
24753 (sse_cvtss2si<round_name>): Likewise.
24754 (sse_cvtss2siq<round_name>): Likewise.
24755 (sse2_cvtsi2sdq<round_name>): Likewise.
24756 (sse2_cvtsd2si<round_name>): Likewise.
24757 (sse2_cvtsd2siq<round_name>): Likewise.
24758 * config/i386/subst.md (round_nimm_scalar_predicate): New
24759 predicate.
24760
24761 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
24762
24763 PR middle-end/67639
24764 * varasm.c (make_decl_rtl): Mark invalid register vars as
24765 DECL_EXTERNAL.
24766
24767 PR rtl-optimization/66206
24768 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
24769 All callers changed.
24770
24771 2016-01-07 Jakub Jelinek <jakub@redhat.com>
24772
24773 PR tree-optimization/69141
24774 * tree-ssa-pre.c: Include langhooks.h.
24775 (eliminate_dom_walker::before_dom_children): Use
24776 lang_hooks.decl_printable_name instead of
24777 cgraph_node::get ()->name ().
24778
24779 PR middle-end/68960
24780 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
24781 it and DECL_ALIGN too.
24782
24783 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
24784
24785 * config/mips/mips-ftypes.def: Sort to lexicographical order.
24786
24787 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
24788
24789 PR target/69140
24790 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
24791 depending on frame_pointer_needed before remaining integer and SSE
24792 registers are saved.
24793
24794 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24795
24796 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
24797 mode iterator with VSX_M2.
24798 (*p9_vecstore_<mode>): Likewise.
24799 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
24800 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
24801 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
24802 (define_split for VSX_LE128 stores): Likewise.
24803 (define_peephole2 for TImode LE swaps): Likewise.
24804 (define_split for VSX_LE128 post-reload stores): Likewise.
24805
24806 2016-01-06 Marek Polacek <polacek@redhat.com>
24807
24808 PR sanitizer/69099
24809 * convert.c (convert_to_integer_1): Adjust call to
24810 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
24811 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
24812 EXPR instead of ARG.
24813 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
24814
24815 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
24816
24817 PR 1078
24818 * doc/extend.texi (RL78 Variable Attributes): New section.
24819
24820 2016-01-05 Marek Polacek <polacek@redhat.com>
24821
24822 PR c/69104
24823 * builtins.c (get_memmodel): Use expansion point location rather than
24824 the input location. Call warning_at rather than warning.
24825 (expand_builtin_atomic_compare_exchange): Likewise.
24826 (expand_builtin_atomic_load): Likewise.
24827 (expand_builtin_atomic_store): Likewise.
24828 (expand_builtin_atomic_clear): Likewise.
24829
24830 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
24831
24832 PR target/68991
24833 * config/i386/i386.c (ix86_expand_vector_logical_operator):
24834 Replace nonimmediate_operand with vector_operand.
24835 * config/i386/predicates.md (vector_operand): New predicate.
24836 (general_vector_operand): Replace nonimmediate_operand with
24837 vector_operand.
24838 * config/i386/sse.md: Replace nonimmediate_operand with
24839 vector_operand and m constraint with Bm constraint on SSE
24840 patterns with 16-byte memory operand.
24841 * config/i386/subst.md (round_nimm_predicate): Replace
24842 nonimmediate_operand with vector_operand.
24843 (round_saeonly_nimm_predicate): Likewise.
24844 (round_saeonly_nimm_scalar_predicate): New.
24845
24846 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
24847
24848 PR target/68991
24849 * config/i386/constraints.md (Bm): New constraint.
24850 * config/i386/predicates.md (vector_memory_operand): New
24851 predicate.
24852 * config/i386/sse.md: Replace xm with xBm in plusminus and
24853 any_logic patterns.
24854
24855 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
24856
24857 PR 1078
24858 * doc/extend.texi (V850 Function Attributes): New section.
24859 (V850 Variable Attributes): New section.
24860
24861 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
24862
24863 PR 1078
24864 * doc/extend.texi (MicroBlaze Function Attributes): Document
24865 interrupt_handler and fast_interrupt attributes.
24866
24867 2016-01-05 Sergei Trofimovich <siarheit@google.com>
24868
24869 PR other/60465
24870 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
24871 for local symbolic operands.
24872 * config/ia64/predicates.md (local_symbolic_operand64): New
24873 predicate.
24874
24875 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24876
24877 PR rtl-optimization/68651
24878 * combine.c (combine_simplify_rtx): Canonicalize x + x into
24879 x << 1.
24880
24881 2016-01-05 Nathan Sidwell <nathan@acm.org>
24882
24883 * alias.c (compare_base_decls): Use symtab_node::get.
24884
24885 2016-01-05 Nick Clifton <nickc@redhat.com>
24886
24887 PR target/68770
24888 * ira-costs.c (copy_cost): Initialise the t_icode field of the
24889 secondary_reload_info structure.
24890
24891 PR target/66655
24892 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
24893 decls if weak support is available.
24894
24895 2016-01-04 Martin Sebor <msebor@redhat.com>
24896
24897 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
24898
24899 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
24900
24901 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
24902 OPTION_MASK_P9_DFORM.
24903
24904 * config/rs6000/constraints.md (wo constraint): New constraint for
24905 ISA 3.0 (power9).
24906
24907 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
24908 for wo constraint.
24909 (rs6000_init_hard_regno_mode_ok): Likewise.
24910
24911 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
24912 wo constraint.
24913
24914 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
24915 expanders not to have constraints. Add support for ISA 3.0 xxperm
24916 instruction. Add support for fusing xxlor with xxperm.
24917 (altivec_vperm_<mode>_internal): Likewise.
24918 (altivec_vperm_v8hiv16qi): Likewise.
24919 (altivec_vperm_<mode>v16q): Likewise.
24920 (altivec_vperm_<mode>_uns): Likewise.
24921 (vperm_v8hiv4si): Likewise.
24922 (vperm_v16qiv8hi): Likewise.
24923
24924 * doc/md.texi (RS/6000 constraints): Document wo constraint.
24925
24926 2016-01-04 Jakub Jelinek <jakub@redhat.com>
24927
24928 Update copyright years.
24929
24930 * gcc.c (process_command): Update copyright notice dates.
24931 * gcov-dump.c (print_version): Ditto.
24932 * gcov.c (print_version): Ditto.
24933 * gcov-tool.c (print_version): Ditto.
24934 * gengtype.c (create_file): Ditto.
24935 * doc/cpp.texi: Bump @copying's copyright year.
24936 * doc/cppinternals.texi: Ditto.
24937 * doc/gcc.texi: Ditto.
24938 * doc/gccint.texi: Ditto.
24939 * doc/gcov.texi: Ditto.
24940 * doc/install.texi: Ditto.
24941 * doc/invoke.texi: Ditto.
24942
24943 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
24944
24945 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
24946 modes larger than TImode as TImode if NEON is not enabled.
24947
24948 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
24949
24950 PR target/69100
24951 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
24952 mode for %f0-%f31 only if TARGET_FPU.
24953
24954 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
24955
24956 PR target/69072
24957 * config/sparc/sparc.c (scan_record_type): Take into account subfields
24958 to compute the PACKED_P predicate.
24959 (function_arg_record_value): Minor tweaks.
24960
24961 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
24962
24963 * doc/install.texi (--with-multilib-list): Describe the meaning of the
24964 option for arm*-*-* targets.
24965
24966 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
24967
24968 * doc/extend.texi (Common Function Attributes): Move docs for
24969 MSP430-specific attributes to....
24970 (MSP430 Function Attributes): ...here. Delete the redundant
24971 entries and copy-edit the remaining text.
24972 (MSP430 Variable Attributes): Use uniform format for index
24973 entries and add a cross-reference to the corresponding function
24974 attribute docs.
24975
24976 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
24977
24978 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
24979 -finite-math typo.
24980 (x86 Options): Likewise.
24981
24982 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
24983
24984 PR 1078
24985
24986 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
24987 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
24988 to corresponding attribute.
24989
24990 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
24991
24992 * doc/extend.texi (Common Function Attributes) <noplt>: Move
24993 to correct alphabetization of table. Copy-edit and correct
24994 markup.
24995 <stack_protect>: Likewise.
24996 <target_clones>: Likewise.
24997 <simd>: Likewise.
24998 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
24999 Correct punctuation.
25000 (Code Gen Options) <-fno-plt>: Copy-edit.
25001
25002 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
25003
25004 PR target/68917
25005 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
25006 SI values. Explicitly convert SI to DI and vice-versa.
25007
25008 2016-01-01 Jakub Jelinek <jakub@redhat.com>
25009
25010 PR tree-optimization/69070
25011 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
25012 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
25013
25014 PR sanitizer/69055
25015 * ubsan.c (ubsan_instrument_float_cast): Call
25016 initialize_sanitizer_builtins.
25017
25018 PR target/69015
25019 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
25020 \f
25021 Copyright (C) 2016 Free Software Foundation, Inc.
25022
25023 Copying and distribution of this file, with or without modification,
25024 are permitted in any medium without royalty provided the copyright
25025 notice and this notice are preserved.