Really set priority to 99 for __gcov_exit
[gcc.git] / gcc / ChangeLog
1 2016-10-07 Martin Liska <mliska@suse.cz>
2
3 * coverage.c (build_gcov_exit_decl): Fix priority what
4 should be really 99.
5
6 2016-10-07 Richard Biener <rguenther@suse.de>
7
8 * gimple-low.c (lower_gimple_bind): Clear DECL_CHAIN of
9 vars in gimple_bind_vars but not in BLOCK_VARS.
10
11 2016-10-07 Richard Biener <rguenther@suse.de>
12
13 PR tree-optimization/77879
14 * tree-ssa-structalias.c (handle_const_call): Properly handle
15 NRV return slots.
16 (handle_pure_call): Likewise.
17
18 2016-10-06 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
19
20 * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor)
21 (rs6000_elf_asm_out_destructor): increase size of buf to avoid
22 possible overflow.
23
24 2016-10-06 Andrew Pinski <apinski@cavium.com>
25
26 * config/aarch64/aarch64-cores.def: Add a comment before each
27 set of cores.
28
29 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
30
31 PR tree-optimization/77862
32 * tree-vrp.c (add_equivalence): Use get_value_range so that
33 num_vr_values is checked before accessing vr_values.
34
35 2016-10-06 Kugan Vivekanandarajah <kuganv@linaro.org>
36
37 * tree-vrp.c (evrp_dom_walker::before_dom_children): Handle
38 POINTER_TYPE_P.
39
40 2016-10-05 Jeff Law <law@redhat.com>
41
42 PR tree-optimization/71661
43 * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Handle case when
44 removal of a forwarder exposes a new natural loop.
45
46 2016-10-06 Uros Bizjak <ubizjak@gmail.com>
47
48 * config/i386/sse.md (andnot<mode>3): Add FALLTHRU comments.
49 Introduce ssesuffix variable.
50 (<mask_codefor><code><mode>3<mask_name>): Ditto.
51 (*<code><mode>3): Ditto.
52
53 2016-10-06 Jan Hubicka <hubicka@ucw.cz>
54
55 * postreload.c (reload_cse_simplify): Skip also USE when detecting
56 noop move.
57
58 2016-10-06 Richard Biener <rguenther@suse.de>
59
60 PR tree-optimization/77855
61 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove
62 instead of removing the current item while iterating over the set
63 which is not safe.
64
65 2016-10-06 James Clarke <jrtc27@jrtc27.com>
66 Eric Botcazou <ebotcazou@adacore.com>
67
68 PR target/77759
69 * config/sparc/sparc.c (classify_data_t): Remove int_regs field.
70 (classify_registers): Don't set it
71 (function_arg_slotno): Don't initialize and test it. Tidy up.
72
73 2016-10-06 Richard Biener <rguenther@suse.de>
74
75 PR tree-optimization/77839
76 * tree-ssa-sccvn.c (set_ssa_val_to): Forbid value -> constant value
77 lattice transition.
78
79 2016-10-06 Martin Liska <mliska@suse.cz>
80
81 * gcc.c: Set -fprofile-update=atomic when profiling is
82 enabled and -pthread is set. Warn when one combines
83 -pthread and -fprofile-update=single for an app using
84 profiling code.
85
86 2016-10-06 Martin Liska <mliska@suse.cz>
87
88 PR bootstrap/77788
89 * expmed.h (mul_highpart_cost_ptr): Add an gcc_assert.
90 * gimple-ssa-strength-reduction.c (slsr_process_cast):
91 Initialize a pointer to NULL.
92 (slsr_process_copy): Likewise.
93 * input.c (location_get_source_line): Likewise.
94 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
95
96 2016-10-05 Andrew Senkevich <andrew.senkevich@intel.com>
97
98 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCOMMIT_UNSET,
99 OPTION_MASK_ISA_PCOMMIT_SET): Deleted definitions.
100 (ix86_handle_option): Deleted handle of OPT_mpcommit.
101 * config.gcc: Deleted pcommitintrin.h
102 * config/i386/pcommitintrin.h: Deleted file.
103 * config/i386/cpuid.h (bit_PCOMMIT): Deleted.
104 * config/i386/driver-i386.c (host_detect_local_cpu): Deleted pcommit
105 detection.
106 * config/i386/i386-c.c (ix86_target_macros_internal): Deleted define
107 __PCOMMIT__.
108 * config/i386/i386.c (ix86_target_string): Deleted -mpcommit.
109 (PTA_PCOMMIT): Deleted define.
110 (ix86_option_override_internal): Deleted handle of option.
111 (ix86_valid_target_attribute_inner_p): Deleted pcommit.
112 * config/i386/i386-builtin.def (IX86_BUILTIN_PCOMMIT,
113 __builtin_ia32_pcommit): Deleted.
114 * config/i386/i386.h (TARGET_PCOMMIT, TARGET_PCOMMIT_P): Deleted.
115 * config/i386/i386.md (unspecv): Deleted UNSPECV_PCOMMIT.
116 (pcommit): Deleted instruction.
117 * config/i386/i386.opt: Mention -mpcommit deprecation.
118 * config/i386/x86intrin.h: Deleted inclusion of pcommitintrin.h.
119
120 2016-10-05 Uros Bizjak <ubizjak@gmail.com>
121
122 PR target/77874
123 * config/i386/sse.md (<mask_codefor><code><mode>3<mask_name>):
124 Remove wrong assert.
125 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>:
126 Use <round_constraint> as operand 1 constraint.
127
128 2016-10-05 Jakub Jelinek <jakub@redhat.com>
129
130 PR sanitizer/66343
131 * ubsan.c (ubsan_create_data): Call initialize_sanitizer_builtins here.
132 (ubsan_instrument_float_cast): And not here.
133
134 PR sanitizer/66343
135 * ubsan.c (ubsan_ids): New GTY(()) array.
136 (ubsan_type_descriptor, ubsan_create_data): Use ubsan_ids
137 instead of static local counters.
138
139 2016-10-05 Martin Sebor <msebor@redhat.com>
140
141 PR bootstrap/77819
142 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Define macro.
143 * config/linux.c (gnu_libc_printf_pointer_format): Remove.
144 * targhooks.c [DEFAULT_LIBC == LIBC_UCLIBC) && SINGLE_LIBC]
145 (default_printf_pointer_format): Define function.
146 * targhooks.c (linux_printf_pointer_format): Define new function.
147 * targhooks.h (linux_printf_pointer_format): Declare.
148 (gnu_libc_printf_pointer_format): Remove declaration.
149
150 2016-10-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
151
152 * fold-const.c (native_encode_real): Fix logic for selecting offset
153 to write to when BYTES_BIG_ENDIAN.
154
155 2016-10-05 Wilco Dijkstra <wdijkstr@arm.com>
156
157 * builtins.c (fold_builtin_strchr): Remove function.
158 (fold_builtin_strrchr): Likewise.
159 (fold_builtin2): Remove strchr, index, strrchr, rindex cases.
160 * gimple-fold.c (target_char_cst_p): New function.
161 (gimple_fold_builtin_strchr) Add more foldings.
162 (gimple_fold_builtin): Add index, strrchr, rindex cases.
163
164 2016-10-05 Richard Biener <rguenther@suse.de>
165
166 PR middle-end/77863
167 * genmatch.c (capture_info::walk_c_expr): Diagnose unknown
168 capture ids in c-exprs.
169
170 2016-10-05 Richard Biener <rguenther@suse.de>
171
172 PR middle-end/77826
173 * genmatch.c (dt_operand::gen_match_op): Amend operand_equal_p
174 with types_match for GIMPLE code gen to handle type mismatched
175 constants properly.
176 (dt_operand::gen): Adjust.
177 * match.pd ((X /[ex] A) * A -> X): Properly handle converted
178 and constant A.
179
180 2016-10-05 Richard Biener <rguenther@suse.de>
181
182 * match.pd (copysign(x, CST) -> [-]abs (x)): New pattern.
183
184 2016-10-05 Richard Biener <rguenther@suse.de>
185
186 PR middle-end/77842
187 * genmatch.c (parser::parse_c_expr): Handle premature EOF.
188
189 2016-10-05 Pierre-Marie de Rodat <derodat@adacore.com>
190
191 * dwarf2out.c (dwarf2out_imported_module_or_decl): Move DWARF
192 version check to protect only DW_TAG_imported_module generation.
193
194 2016-10-05 Richard Biener <rguenther@suse.de>
195
196 PR middle-end/55152
197 * match.pd (min(a,-a) -> -abs(a)): New pattern.
198
199 2016-10-04 Ian Lance Taylor <iant@golang.org>
200
201 * explow.c (allocate_dynamic_stack_space): Call
202 do_pending_stack_adjust before handling flag_split_stack.
203
204 2016-10-04 David Malcolm <dmalcolm@redhat.com>
205
206 * genattrtab.c (make_internal_attr): Supply dummy column number to
207 file_location ctor.
208 (main): Likewise.
209 * genoutput.c (init_insn_for_nothing): Likewise.
210 * gensupport.c (add_define_attr): Likewise.
211 * read-md.c (message_at_1): Print column number.
212 (fatal_with_file_and_line): Likewise.
213 (rtx_reader::read_char): Track column numbers.
214 (rtx_reader::unread_char): Likewise.
215 (rtx_reader::rtx_reader): Initialize m_read_md_colno.
216 (rtx_reader::handle_include): Stash and restore m_read_md_colno.
217 (rtx_reader::handle_file): Initialize m_read_md_colno.
218 (rtx_reader::get_current_location): Supply column number to
219 file_location ctor.
220 * read-md.h (struct file_location): Add field "colno".
221 (file_location::file_location): Likewise.
222 (rtx_reader::get_colno): New accessor.
223 (rtx_reader::m_read_md_colno): New field.
224 (rtx_reader::m_last_line_colno): New field.
225
226 2016-10-04 Jakub Jelinek <jakub@redhat.com>
227
228 * doc/extend.texi (Java Exceptions): Remove.
229 (java_interface): Remove.
230
231 2016-10-04 Doug Gilmore <doug.gilmore@imgtec.com>
232
233 PR tree-optimization/77808
234 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Check base_addr
235 and addr are different before copying points-to information.
236
237 2016-10-04 Uros Bizjak <ubizjak@gmail.com>
238
239 * config/i386/x86-tune.def (X86_TUNE_VECTORIZE_DOUBLE): Remove.
240 * config/i386/i386.h (TARGET_VECTORIZE_DOUBLE): Remove.
241 * config/i386/i386.c (ix86_add_stmt_cost): Use TARGET_BONNEL instead
242 of !TARGET_VECTORIZE_DOUBLE when penalizing DFmode vector ops.
243
244 2016-10-04 Richard Biener <rguenther@suse.de>
245
246 PR tree-optimization/77399
247 * tree-ssa-forwprop.c (simplify_vector_constructor): Properly
248 verify the target can convert.
249
250 2016-10-04 Richard Biener <rguenther@suse.de>
251
252 PR middle-end/77833
253 * explow.c (plus_constant): Verify the mode of the constant
254 pool offset before calling plus_constant.
255
256 2016-10-04 Richard Biener <rguenther@suse.de>
257
258 PR middle-end/77407
259 * match.pd (X / abs (X) -> X < 0 ? -1 : 1): Drop vector
260 type support, mark with :C.
261 (X / -X -> -1): Mark with :C.
262
263 2016-10-04 Jakub Jelinek <jakub@redhat.com>
264
265 * defaults.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Remove.
266 * system.h (JCR_SECTION_NAME, TARGET_USE_JCR_SECTION): Poison.
267 * doc/tm.texi.in (TARGET_USE_JCR_SECTION): Remove.
268 * doc/tm.texi: Regenerated.
269 * config/i386/mingw32.h (TARGET_USE_JCR_SECTION): Remove.
270 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Remove.
271 * config/darwin.h (JCR_SECTION_NAME): Remove.
272 * config/pa/pa64-hpux.h (JCR_SECTION_NAME): Remove.
273 * config/rs6000/aix71.h (TARGET_USE_JCR_SECTION): Remove.
274 * config/rs6000/aix51.h (TARGET_USE_JCR_SECTION): Remove.
275 * config/rs6000/aix52.h (TARGET_USE_JCR_SECTION): Remove.
276 * config/rs6000/aix53.h (TARGET_USE_JCR_SECTION): Remove.
277 * config/rs6000/aix61.h (TARGET_USE_JCR_SECTION): Remove.
278
279 2016-10-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
280
281 * ipa-cp.c (propagate_bits_accross_jump_function): Introduce space
282 between "because" and "param" in dump message in call to fprintf.
283
284 2016-10-03 Jeff Law <law@redhat.com>
285
286 PR tree-optimization/71550
287 PR tree-optimization/71403
288 * tree-ssa-threadbackward.c: Include tree-vectorizer.h
289 (profitable_jump_thread_path): Also return boolean indicating if
290 the realized path will create an irreducible loop.
291 Remove loop depth tests from 71403.
292 (fsm_find_control_statement_thread_paths): Remove loop depth tests
293 from 71403. If threading will create an irreducible loop, then
294 throw away loop iteration and related information.
295
296 2016-10-03 Uros Bizjak <ubizjak@gmail.com>
297
298 * configure.ac (strict_warn): Merge -Wmissing-format-attribute and
299 -Woverloaded-virtual checks for warning options.
300 * configure: Regenerate.
301
302 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
303
304 PR preprocessor/77699
305 * input.c (maybe_grow): Don't allocate one byte extra headroom.
306 (get_next_line): Return false on error.
307 (read_next_line): Removed, use get_next_line instead.
308 (read_line_num): Don't copy the line.
309 (location_get_source_line): Don't use static data.
310 (selftest::test_reading_source_line): Add more test cases.
311
312 2016-10-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
313
314 Revert
315 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
316
317 * ifcvt.c (noce_try_avoid_const_materialization): New function.
318 (noce_process_if_block): Use it.
319
320 2016-10-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
321
322 * doc/invoke.texi: Update -Wint-in-bool-context.
323
324 2016-10-02 Jakub Jelinek <jakub@redhat.com>
325
326 * dwarf2out.c (output_fde, output_call_frame_info,
327 dwarf2out_do_cfi_startproc, set_indirect_string,
328 gen_internal_sym, output_die, output_line_info): Use
329 MAX_ARTIFICIAL_LABEL_BYTES as char array sizes for
330 ASM_GENERATE_INTERNAL_LABEL output.
331
332 2016-10-01 Richard Biener <rguenther@suse.de>
333
334 PR middle-end/77798
335 * genmatch.c (get_operand_type): Add operand position arg
336 and handle COND_EXPR comparison operand with fixed boolean_type_node.
337 (expr::gen_transform): Adjust.
338 (dt_simplify::gen_1): Likewise.
339
340 2016-10-01 Jakub Jelinek <jakub@redhat.com>
341
342 * config/i386/sse.md (<mask_codefor><code><mode>): Add FALLTHRU
343 comments. Simplify asserts, remove unnecessary conditions.
344 Formatting fixes.
345 (*<code><mode>3): Likewise.
346
347 2016-09-30 Jakub Jelinek <jakub@redhat.com>
348
349 * doc/invoke.texi (-Wregister): Document.
350
351 2016-09-30 Bernd Edlinger <bernd.edlinger@hotmail.de>
352
353 * configure.ac: Split CHECKING_P into CHECKING_P and
354 ENABLE_EXTRA_CHECKING.
355 * configure: Regenerated.
356 * config.in: Adjust commment of CHECKING_P. Add ENABLE_EXTRA_CHECKING.
357 * common.opt (flag_checking): Use CHECKING_P and ENABLE_EXTRA_CHECKING.
358
359 2016-09-30 Prasad Ghangal <prasad.ghangal@gmail.com>
360
361 PR other/31566
362 * gcc.c (process_command): For @filename handling, output
363 the correct name if the file does not exist.
364
365 2016-09-30 Marek Polacek <polacek@redhat.com>
366
367 * config/aarch64/aarch64-simd.md: Adjust fall through comments.
368 * config/alpha/predicates.md: Likewise.
369
370 2016-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
371
372 * ifcvt.c (noce_try_avoid_const_materialization): New function.
373 (noce_process_if_block): Use it.
374
375 2016-09-30 Martin Liska <mliska@suse.cz>
376
377 * doc/invoke.texi: Document asan-use-after-return that
378 it's disabled by default in runtime.
379
380 2016-09-30 Richard Biener <rguenther@suse.de>
381
382 * tree-vrp.c (intersect_ranges): If we failed to handle
383 the intersection choose a constant singleton range if available.
384
385 2016-09-30 Richard Biener <rguenther@suse.de>
386
387 PR tree-optimization/77399
388 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
389 float <-> int conversions.
390
391 2016-09-30 Alan Modra <amodra@gmail.com>
392
393 * config/rs6000/rs6000.c (rs6000_opt_vars): Revert last change.
394
395 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
396
397 * config/i386/driver-i386.c (host_detect_local_cpu): Check maximum
398 ext_level before calling CPUID with 0x80000008.
399 Simplify xgetbv checks.
400
401 2016-09-29 David Malcolm <dmalcolm@redhat.com>
402
403 * Makefile.in (OBJS): Add print-rtl-function.o.
404 * print-rtl-function.c: New file.
405 * print-rtl.h (print_rtx_function): New decl.
406
407 2016-09-29 Uros Bizjak <ubizjak@gmail.com>
408
409 PR target/77756
410 * config/i386/cpuid.h (__get_cpuid_count): New.
411 (__get_cpuid): Rename __level to __leaf.
412
413 2016-09-29 Marek Polacek <polacek@redhat.com>
414
415 * genattrtab.c (write_attr_case): Also emit FALLTHRU marker.
416
417 2016-09-29 Bernd Schmidt <bschmidt@redhat.com>
418
419 * builtins.c (expand_builtin_memcmp): don't swap args unless
420 result is only being compared with zero.
421
422 2016-09-29 Marek Polacek <polacek@redhat.com>
423
424 * dwarf2out.c (loc_descriptor): Add fall through comment.
425 (add_const_value_attribute): Likewise.
426
427 2016-09-29 Matthew Wahab <matthew.wahab@arm.com>
428
429 * config/arm/arm.md (*arm_movsi_insn): Replace "t2" arch attribute
430 with "v6t2". Move "arch" attribute above "pool_range".
431 * config/arm/vfp.md (*arm_movhi_vfp): Replace "t2" arch attribute
432 with "v6t2".
433 (*thumb2_movhi_vfp): Likewise.
434 (*arm_movhi_fp16): Likewise.
435 (*thumb2_movhi_fp16): Likewise.
436 (*arm_movsi_vfp): Remove "arch" attribute.
437 (*thumb2_movsi_vfp): Likewise.
438
439 2016-09-29 Martin Liska <mliska@suse.cz>
440
441 * doc/extend.texi: Remove limitation of Objective C for
442 __attribute__((constructor)) and __attribute__((destructor)).
443
444 2016-09-29 Richard Biener <rguenther@suse.de>
445
446 PR tree-optimization/77768
447 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
448 Handle stores to readonly memory when removing redundant stores.
449
450 2016-09-29 Richard Biener <rguenther@suse.de>
451
452 PR middle-end/77407
453 * match.pd: Add X / abs (X) -> X < 0 ? -1 : 1 and
454 X / -X -> -1 simplifications.
455
456 2016-09-29 Richard Biener <rguenther@suse.de>
457
458 PR middle-end/55152
459 * match.pd: Add max(a,-a) -> abs(a) pattern.
460 * tree-ssa-phiopt.c (minmax_replacement): Disable for
461 HONOR_SIGNED_ZEROS types.
462
463 2016-09-29 James Greenhalgh <james.greenhalgh@arm.com>
464
465 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Remove.
466 * system.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Poison.
467
468 2016-09-29 Richard Biener <rguenther@suse.de>
469
470 * tree-vrp.c (set_defs_to_varying): New helper avoiding
471 writing to vr_const_varying.
472 (vrp_initialize): Call it.
473 (vrp_visit_stmt): Likewise.
474 (evrp_dom_walker::before_dom_children): Likewise.
475
476 2016-09-29 Richard Biener <rguenther@suse.de>
477
478 * tree-vect-stmts.c (vectorizable_load): Avoid emitting vector
479 constructors with vector elements.
480
481 2016-09-29 Richard Biener <rguenther@suse.de>
482
483 PR tree-optimization/77768
484 * tree-ssa-sccvn.c (visit_reference_op_store): Properly deal
485 with stores to a place we know has a constant value.
486
487 2016-09-29 Alan Modra <amodra@gmail.com>
488
489 * config/rs6000/sysv4.opt (mgnu-attribute): New option.
490 * doc/invoke.texi: Document it.
491 * config/rs6000/rs6000.c (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): Define.
492 (rs6000_passes_float): Comment.
493 (rs6000_passes_long_double): New static var.
494 (call_ABI_of_interest): Return false unless rs6000_gnu_attr is set.
495 (init_cumulative_args): Set up to emit fp .gnu_attribute for
496 ELF 64-bit ABIs as well as 32-bit ELF. Correct rs6000_passes_float
497 to include fp values returned in vectors.
498 Set rs6000_passes_long_double.
499 (rs6000_function_arg_advance_1): Likewise for function args.
500 (rs6000_elf_file_end): Emit fp .gnu_attribute for ELF 64-bit ABIs,
501 and SPE. Emit long double tag value too.
502 (rs6000_opt_vars): Add gnu-attr.
503 * configure.ac (HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE): New ppc32 test.
504 * configure: Regenerate.
505 * config.in: Regenerate.
506
507 2016-09-28 Jakub Jelinek <jakub@redhat.com>
508
509 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Use x > 0 instead
510 of 0 < x.
511 (format_floating, format_string, format_directive,
512 get_destination_size, pass_sprintf_length::handle_gimple_call):
513 Likewise.
514
515 2016-09-28 Jakub Jelinek <jakub@redhat.com>
516
517 * gimple-ssa-sprintf.c: Fix comment formatting.
518 (format_integer): Use is_gimple_assign.
519 (pass_sprintf_length::handle_gimple_call): Use gimple_call_builtin_p
520 and gimple_call_fndecl. Reorder case BUILT_IN_SPRINTF_CHK. Fix up
521 BUILT_IN_SNPRINTF_CHK comment. Replace "to to" with "to" in comment.
522 (pass_sprintf_length::execute): Use is_gimple_call.
523
524 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
525
526 * gimple-fold.c (gimple_fold_builtin): After failing to fold
527 strchr, also try the generic folding.
528
529 2016-09-28 Martin Sebor <msebor@redhat.com>
530
531 PR c/77762
532 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call):
533 Fix typos.
534
535 2016-09-28 Martin Sebor <msebor@redhat.com>
536
537 PR middle-end/77683
538 * gimple-ssa-sprintf.c (format_integer): Fail gracefully when
539 length modifier is not expected.
540 (format_floating): Ignore l length modifier and fail gracefuly
541 when it isn't one of the other expected ones.
542
543 2016-09-28 Martin Sebor <msebor@redhat.com>
544
545 PR bootstrap/77753
546 * varasm.c (assemble_addr_to_section): Increase local buffer size.
547
548 2016-09-27 Richard Biener <rguenther@suse.de>
549
550 * dwarf2out.c (cu_die_list): New global.
551 (dwarf2out_finish): Walk cu_die_list instead of limbo DIEs. Add
552 main_comp_unit_die to cu_die_list if we created it.
553 Move break_out_includes ...
554 (dwarf2out_early_finish): ... here. Push created CU DIEs onto
555 the cu_die_list.
556
557 2016-09-28 Richard Biener <rguenther@suse.de>
558
559 * dwarf2out.c (struct die_struct): Add removed flag.
560 (lookup_type_die): If the DIE is marked as removed, clear
561 TYPE_SYMTAB_DIE and return NULL.
562 (lookup_decl_die): If the DIE is marked as removed, remove it
563 from the hash and return NULL.
564 (mark_removed): New helper.
565 (prune_unused_types_prune): Call it for removed DIEs.
566 (gen_subprogram_die): Move the premark_used_types call to after
567 DIEs for the functions scopes are generated.
568 (process_scope_var): Do not re-create pruned types or type decls.
569 Make sure to also re-parent type decls.
570 (dwarf2out_finish): Move unused type pruning and debug_types
571 handling ...
572 (dwarf2out_early_finish): ... here.
573
574 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
575
576 * config/arc/arc-c.c: New file.
577 * config/arc/arc-c.def: Likewise.
578 * config/arc/t-arc: Likewise.
579 * config.gcc: Include arc-c.o as c and cpp object.
580 * config/arc/arc-protos.h (arc_cpu_cpp_builtins): Add prototype.
581 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Use
582 arc_cpu_cpp_builtins.
583
584 2016-09-29 Claudiu Zissulescu <claziss@synopsys.com>
585
586 * config/arc/arc.md (*rotrsi3_cnt1): New pattern.
587 (*ashlsi2_cnt1, *lshrsi3_cnt1, *ashrsi3_cnt1): Likewise.
588
589 2016-09-28 Nathan Sidwell <nathan@acm.org>
590
591 * gimple-pretty-print.c (dump_gimple_call_args): Simplify "' "
592 printing.
593
594 2016-09-28 Wilco Dijkstra <wdijkstr@arm.com>
595
596 PR tree-optimization/61056
597 * gimple-fold.c (gimple_fold_builtin_strchr):
598 New function to optimize strchr (s, 0) to strlen.
599 (gimple_fold_builtin): Add BUILT_IN_STRCHR case.
600
601 2016-09-27 Robin Dapp <rdapp@linux.vnet.ibm.com>
602
603 PR tree-optimization/77724
604 * tree-vect-loop-manip.c (create_intersect_range_checks_index):
605 Add tree_fits_shwi_p check.
606
607 2016-09-27 Jakub Jelinek <jakub@redhat.com>
608
609 * auto-inc-dec.c (try_merge): Remove break after return.
610 * cselib.c (autoinc_split): Likewise.
611 * explow.c (promote_mode): Likewise.
612 * fixed-value.c (fixed_arithmetic): Likewise.
613 * hsa.c (hsa_internal_fn::get_arity): Likewise.
614 * rtlanal.c (modified_between_p, modified_in_p): Likewise.
615 * trans-mem.c (get_attrs_for): Likewise.
616 * tree-if-conv.c (if_convertible_stmt_p): Likewise.
617 * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
618 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Likewise.
619 * config/aarch64/aarch64.c (aarch64_get_condition_code_1): Likewise.
620 * config/c6x/c6x.c (c6x_get_unit_specifier): Likewise.
621 * config/cr16/cr16.c (legitimate_pic_operand_p): Likewise.
622 * config/cris/cris.c (cris_op_str): Likewise.
623 * config/mn10300/mn10300.c (cc_flags_for_code): Likewise.
624 * config/tilepro/tilepro.c (tilepro_emit_setcc_internal_di): Likewise.
625
626 2016-09-27 Nathan Sidwell <nathan@codesourcery.com>
627
628 * internal-fn.h (IFN_UNIQUE_CODES, IFN_GOACC_LOOP_CODES,
629 IFN_GOACC_REDUCTION_CODES): New.
630 (enum ifn_unique_kind, enum ifn_goacc_loop_kind, enum
631 ifn_goacc_reduction_kind): Use them.
632 * gimple-pretty-print.c (dump_gimple_call_args): Decode first arg
633 of internal functions, when applicable.
634
635 2016-09-27 Maciej W. Rozycki <macro@imgtec.com>
636
637 * config/mips/constraints.md (d): Fix documentation.
638 * doc/md.texi (Machine Constraints): Update accordingly.
639
640 2016-09-27 Richard Biener <rguenther@suse.de>
641
642 * dwarf2out.c (dwarf2out_init): Move text_section_line_info,
643 cur_line_info_table initialization ...
644 (dwarf2out_assembly_start): ... here.
645
646 2016-09-27 Matthew Wahab <matthew.wahab@arm.com>
647
648 * config/arm/arm.md (*arm_movsi_insn): Add "arch" attribute.
649 * config/arm/vfp.md (*arm_movhi_vfp): Likewise.
650 (*thumb2_movhi_vfp): Likewise.
651 (*arm_movhi_fp16): Remove predication operand from VMOV.F16
652 template. Expand predicable attribute to mark VMOV.F16 as not
653 predicable. Add "arch" attribute.
654 (*thumb2_movhi_fp16): Likewise.
655 (*arm_movsi_vfp): Break a long line. Add "arch" attribute.
656 (*thumb2_movsi_vfp): Add "arch" attribute.
657
658 2016-09-27 David Edelsohn <dje.gcc@gmail.com>
659
660 * config/rs6000/rs6000.c (rs6000_output_symbol): Don't modify
661 VAR_DECL string.
662
663 2016-09-27 Marek Polacek <polacek@redhat.com>
664
665 * config/ia64/ia64.c (ia64_print_operand): Adjust fall through
666 comment.
667
668 * config/c6x/c6x.h: Adjust fall through comment.
669 * config/sh/sh.c (final_prescan_insn): Likewise.
670 * config/visium/visium.c (visium_expand_int_cstore): Likewise.
671 (visium_expand_fp_cstore): Likewise.
672
673 2016-09-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
674
675 * config/arm/arm.c (const_ok_for_op): Use "Fall through" comment form
676 expected by -Wimplicit-fallthrough.
677 (thumb1_size_rtx_costs): Likewise.
678 (thumb2_reorg): Likewise.
679 (tls_mentioned_p): Add "Fall through" comment.
680 (thumb2_reorg): Likewise.
681 * config/arm/arm-builtins.c (arm_expand_neon_args): Use "Fall through"
682 comment form expected by -Wimplicit-fallthrough.
683
684 2016-09-27 Martin Liska <mliska@suse.cz>
685
686 PR gcov-profile/46266
687 * input.h (RESERVED_LOCATION_P): New macro.
688 * profile.c (branch_prob): Use RESERVED_LOCATION_P and
689 instread of comparison with UNKNOWN_LOCATION.
690
691 2016-09-27 Richard Biener <rguenther@suse.de>
692
693 PR tree-optimization/77745
694 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
695 When removing redundant stores make sure to check compatibility
696 of the TBAA state for downstream accesses.
697 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise for when
698 value-numbering virtual operands for store matches.
699
700 2016-09-27 Oleg Endo <olegendo@gcc.gnu.org>
701
702 PR target/51244
703 * config/sh/sh.c (sh_rtx_costs): Fix return value of SET of movt and
704 movrt patterns. Match them before anything else in the SET case.
705
706 2016-09-27 Martin Liska <mliska@suse.cz>
707
708 PR gcov-profile/7970
709 PR gcov-profile/16855
710 PR gcov-profile/44779
711 * coverage.c (build_gcov_exit_decl): New function.
712 (coverage_obj_init): Call the function and generate __gcov_exit
713 destructor.
714 * doc/gcov.texi: Document when __gcov_exit function is called.
715
716 2016-09-27 Marek Polacek <polacek@redhat.com>
717
718 PR bootstrap/77751
719 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
720 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Use
721 -Wno-error instead of -Wno-implicit-fallthrough.
722
723 2016-09-27 Martin Liska <mliska@suse.cz>
724
725 PR bootstrap/77749
726 * gcov-counter.def: Remove GCOV_COUNTER_V_DELTA.
727
728 2016-09-27 Jakub Jelinek <jakub@redhat.com>
729
730 * combine.c (simplify_comparison): Add canonical FALLTHROUGH comments.
731 * config/i386/i386.c (ix86_dep_by_shift_count_body): Add FALLTHROUGH
732 comments. Remove break after return.
733 (ix86_fp_compare_code_to_integer, has_dispatch,
734 ix86_simd_clone_usable): Remove break after return.
735
736 2016-09-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
737
738 PR rlt-optimization/77714
739 * lra-eliminations.c (eliminate_regs_in_insn): Avoid alias on
740 REG_EQUAL note.
741
742 2016-09-27 Kugan Vivekanandarajah <kuganv@linaro.org>
743
744 PR ipa/77677
745 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Use
746 extract_range_from_unary_expr to convert value_range.
747 * tree-vrp.c (extract_range_from_unary_expr_1): Rename to.
748 (extract_range_from_unary_expr): This.
749 * tree-vrp.h (extract_range_from_unary_expr): Declare.
750
751 2016-09-27 Segher Boessenkool <segher@kernel.crashing.org>
752
753 * config/rs6000/rs6000.md (movcc_internal1): Disparage using CTR or LR.
754
755 2016-09-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
756
757 * config/i386/i386.c (ix86_print_operand)
758 [HAVE_AS_IX86_CMOV_SUN_SYNTAX]: Add gcc_fallthrough.
759 * config/sparc/sparc.c (check_pic): Add fallthrough comment.
760 (epilogue_renumber): Likewise.
761
762 2016-09-26 Kugan Vivekanandarajah <kuganv@linaro.org>
763
764 PR middle-end/77719
765 * tree-ssa-reassoc.c (make_new_ssa_for_def): Use gimple_get_lhs
766 to get lhs instead of gimple_assign_lhs as stmt can be builtins too.
767
768 2016-09-26 Thomas Preud'homme <thomas.preudhomme@arm.com>
769
770 * tree.h (memmodel_from_int, memmodel_base, is_mm_relaxed,
771 is_mm_consume, is_mm_acquire, is_mm_release, is_mm_acq_rel,
772 is_mm_seq_cst, is_mm_sync): Move to ...
773 * memmodel.h: This. New file.
774 * builtins.c: Include memmodel.h.
775 * optabs.c: Likewise.
776 * tsan.c: Likewise.
777 * config/aarch64/aarch64.c: Likewise.
778 * config/alpha/alpha.c: Likewise.
779 * config/arm/arm.c: Likewise.
780 * config/i386/i386.c: Likewise.
781 * config/ia64/ia64.c: Likewise.
782 * config/mips/mips.c: Likewise.
783 * config/rs6000/rs6000.c: Likewise.
784 * config/sparc/sparc.c: Likewise.
785 * genconditions.c: Include memmodel.h in generated file.
786 * genemit.c: Likewise.
787 * genoutput.c: Likewise.
788 * genpeep.c: Likewise.
789 * genpreds.c: Likewise.
790 * genrecog.c: Likewise.
791
792 2016-09-26 David Malcolm <dmalcolm@redhat.com>
793
794 * read-rtl.c (read_rtx_code): Rename local "i" to "idx", and use
795 "c" instead when parsing characters. Move operand parsing into...
796 (read_rtx_operand): ...this new function, renaming "i" to "idx",
797 and tightening the scope of various locals.
798
799 2016-09-26 Liu Hao <lh_mouse@126.com>
800
801 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Fix typo.
802
803 2016-09-26 Marek Polacek <polacek@redhat.com>
804
805 * system.h: Use __has_attribute to check whether the fallthrough
806 attribute is supported.
807
808 2016-09-26 Marek Polacek <polacek@redhat.com>
809
810 * ipa-inline-analysis.c (find_foldable_builtin_expect): Use
811 gimple_call_internal_p.
812 * ipa-split.c (find_return_bb): Likewise.
813 (execute_split_functions): Likewise.
814 * omp-low.c (dump_oacc_loop_part): Likewise.
815 (oacc_loop_xform_head_tail): Likewise.
816 * predict.c (predict_loops): Likewise.
817 * sanopt.c (pass_sanopt::execute): Likewise.
818 * tree-cfg.c (get_abnormal_succ_dispatcher): Likewise.
819 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise.
820 * tree-stdarg.c (gimple_call_ifn_va_arg_p): Remove function.
821 (expand_ifn_va_arg_1): Use gimple_call_internal_p.
822 (expand_ifn_va_arg): Likewise.
823 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
824 (optimize_mask_stores): Likewise.
825 * tree-vect-stmts.c (vect_simd_lane_linear): Likewise.
826 (vect_transform_stmt): Likewise.
827 * tree-vectorizer.c (vect_loop_vectorized_call): Likewise.
828 * tsan.c (instrument_memory_accesses): Likewise.
829
830 2016-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
831 Alexander Monakov <amonakov@ispras.ru>
832
833 * regrename.c (rename_chains): Check
834 HARD_FRAME_POINTER_IS_FRAME_POINTER rather than
835 HARD_FRAME_POINTER_REGNUM when picking unavailable registers.
836 * sel-sched.c (mark_unavailable_hard_regs): Likewise.
837
838 2016-09-26 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
839
840 * config/s390/s390.c (s390_rtx_costs): Add /* fallthrough */.
841 (s390_sched_score): Likewise.
842
843 2016-09-26 Martin Liska <mliska@suse.cz>
844
845 * doc/gcov.texi: Update program output of gcov tool.
846
847 2016-09-26 Martin Liska <mliska@suse.cz>
848
849 PR gcov-profile/23332
850 * profile.c (instrument_values): Do not handle HIST_TYPE_CONST_DELTA.
851 * tree-profile.c (gimple_gen_const_delta_profiler): Remove.
852 * value-prof.c (dump_histogram_value): Do not handle
853 HIST_TYPE_CONST_DELTA.
854 (stream_in_histogram_value): Likewise.
855 (gimple_find_values_to_profile): Likewise.
856 * value-prof.h (enum hist_type): Likewise.
857
858 2016-09-26 Martin Liska <mliska@suse.cz>
859
860 * common.opt: Exclude SANITIZE_UNREACHABLE and SANITIZE_RETURN
861 from default sanitize recover values.
862 * doc/invoke.texi: Fix documentation related to -fsanitize=leak,
863 -fsanitize=address, -fsanitize=thread and -fsanitize-recover.
864 * flag-types.h: Replace couple of 1 << x to 1UL << x, make it
865 consistent.
866 * opts.c (finish_options): Do a generic loop over options
867 that can be recovered.
868 (parse_sanitizer_options): Exclude SANITIZE_UNREACHABLE and
869 SANITIZE_RETURN.
870 (common_handle_option): Likewise.
871 * opts.h: Declare can_recover to sanitizer_opts_s.
872
873 2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>
874
875 * target.def(elf_flags_numeric): Change documentation to present tense.
876 * doc/tm.texi: Regenerate.
877
878 2016-09-26 Marek Polacek <polacek@redhat.com>
879
880 PR c/7652
881 * Makefile.in (insn-attrtab.o-warn, insn-dfatab.o-warn,
882 insn-latencytab.o-warn, insn-output.o-warn, insn-emit.o-warn): Add
883 -Wno-switch-fallthrough.
884 * builtins.c (expand_builtin_int_roundingfn_2): Add gcc_fallthrough.
885 (expand_builtin): Likewise.
886 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_libmass): Likewise.
887 * convert.c (convert_to_real_1): Likewise.
888 (convert_to_integer_1): Likewise.
889 * final.c (output_alternate_entry_point): Likewise.
890 * genattrtab.c (make_canonical): Likewise.
891 (write_test_expr): Likewise.
892 * genpreds.c (validate_exp): Likewise.
893 * gimple-ssa-strength-reduction.c
894 (find_candidates_dom_walker::before_dom_children): Likewise.
895 * godump.c (go_format_type): Likewise.
896 * reload1.c (elimination_effects): Likewise.
897 * resource.c (mark_referenced_resources): Likewise.
898 (mark_set_resources): Likewise.
899 * tree-ssa-loop-ivopts.c (find_deriving_biv_for_expr): Likewise.
900 * varasm.c (output_addressed_constants): Likewise.
901
902 2016-09-26 Marek Polacek <polacek@redhat.com>
903
904 PR c/7652
905 * common.opt (Wimplicit-fallthrough): New option.
906 * doc/extend.texi: Document statement attributes and the fallthrough
907 attribute.
908 * doc/invoke.texi: Document -Wimplicit-fallthrough.
909 * gimple.h (gimple_call_internal_p): New function.
910 * gimplify.c (struct gimplify_ctx): Add in_switch_expr.
911 (struct label_entry): New struct.
912 (find_label_entry): New function.
913 (case_label_p): New function.
914 (collect_fallthrough_labels): New function.
915 (last_stmt_in_scope): New function.
916 (should_warn_for_implicit_fallthrough): New function.
917 (warn_implicit_fallthrough_r): New function.
918 (maybe_warn_implicit_fallthrough): New function.
919 (expand_FALLTHROUGH_r): New function.
920 (expand_FALLTHROUGH): New function.
921 (gimplify_switch_expr): Call maybe_warn_implicit_fallthrough and
922 expand_FALLTHROUGH for the innermost GIMPLE_SWITCH.
923 (gimplify_label_expr): New function.
924 (gimplify_case_label_expr): Set location.
925 (gimplify_expr): Call gimplify_label_expr.
926 * internal-fn.c (expand_FALLTHROUGH): New function.
927 * internal-fn.def (FALLTHROUGH): New internal function.
928 * langhooks.c (lang_GNU_OBJC): New function.
929 * langhooks.h (lang_GNU_OBJC): Declare.
930 * system.h (gcc_fallthrough): Define.
931 * tree-core.h: Add FALLTHROUGH_LABEL_P comment.
932 * tree.h (FALLTHROUGH_LABEL_P): Define.
933
934 2016-09-26 Richard Biener <rguenther@suse.de>
935
936 * dwarf2out.c (stripattributes): Remove unused function.
937 (DEBUG_NORM_MACINFO_SECTION): Rename to DEBUG_MACINFO_SECTION.
938 Push dwarf_split_debug_info handling into init_sections_and_labels.
939 (DEBUG_NORM_MACRO_SECTION): Likewise to DEBUG_MACRO_SECTION.
940 (DEBUG_MACRO_SECTION_FLAGS): Remove.
941 (debug_macinfo_section_name): New global.
942 (output_macinfo): Use debug_macinfo_section_name.
943 (init_sections_and_labels): Split out section and label generation
944 from dwarf2out_init. Set debug_macinfo_section_name.
945 (dwarf2out_init): Move text section label generation and emission
946 to ...
947 (dwarf2out_assembly_start): ... here.
948 (dwarf2out_finish): Call init_sections_and_labels before DWARF
949 output starts.
950
951 2016-09-26 Richard Biener <rguenther@suse.de>
952
953 PR debug/77692
954 * cgraphunit.c (analyze_functions): Before early removing
955 global vars calls the late_global_decl debug handler mark
956 the variable as readonly.
957
958 2016-09-25 Oleg Endo <olegendo@gcc.gnu.org>
959
960 PR target/51244
961 * config/sh/sh.c (sh_movt_set_dest, sh_movrt_set_dest): Add overloads.
962 (sh_rtx_costs): Handle SET of movt and movrt patterns.
963 * cnofig/sh/sh-protos.h (sh_movt_set_dest, sh_movrt_set_dest): Forward
964 declare new overloads.
965 * config/sh/sh.md (*cset_zero): Add variant that takes a treg_set_expr
966 operand.
967
968 2016-09-24 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
969
970 * config/rs6000/rs6000.c (expand_block_compare, do_load_for_compare):
971 Change TARGET_LITTLE_ENDIAN to !BYTES_BIG_ENDIAN.
972
973 2016-09-24 David Edelsohn <dje.gcc@gmail.com>
974
975 * configure.ac (gcc_cv_as_aix_dwloc): Fix typo in assembly fragment.
976 * configure: Regenerate.
977
978 2016-09-24 Marek Polacek <polacek@redhat.com>
979
980 PR c/77490
981 * doc/invoke.texi: Document -Wbool-operation.
982
983 2016-09-23 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
984
985 * config/rs6000/rs6000.md (cmpmemsi): New define_expand.
986 * config/rs6000/rs6000.c (expand_block_compare): New function used by
987 cmpmemsi pattern to do builtin expansion of memcmp ().
988 (compute_current_alignment): Add helper function for
989 expand_block_compare used to compute alignment as the compare proceeds.
990 (select_block_compare_mode): Used by expand_block_compare to select
991 the mode used for reading the next chunk of bytes in the compare.
992 (do_load_for_compare): Used by expand_block_compare to emit the load
993 insns for the compare.
994 (rs6000_emit_dot_insn): Moved this function to avoid a forward
995 reference from expand_block_compare ().
996 * config/rs6000/rs6000-protos.h (expand_block_compare): Add a
997 prototype for this function.
998 * config/rs6000/rs6000.opt (mblock-compare-inline-limit): Add a new
999 target option for controlling how much code inline expansion of
1000 memcmp() will be allowed to generate.
1001
1002 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1003
1004 * hooks.c (hook_bool_bool_false, hook_bool_bool_gcc_optionsp_false,
1005 hook_bool_mode_false, hook_bool_mode_true,
1006 hook_bool_mode_const_rtx_false, hook_bool_mode_const_rtx_true,
1007 hook_bool_mode_rtx_false, hook_bool_mode_rtx_true,
1008 hook_bool_const_rtx_insn_const_rtx_insn_true,
1009 hook_bool_mode_uhwi_false, hook_void_FILEptr_constcharptr,
1010 hook_bool_FILEptr_rtx_false, hook_bool_gsiptr_false,
1011 hook_bool_const_tree_hwi_hwi_const_tree_false,
1012 hook_bool_const_tree_hwi_hwi_const_tree_true,
1013 default_can_output_mi_thunk_no_vcall, hook_int_uint_mode_1,
1014 hook_int_const_tree_0, hook_int_const_tree_const_tree_1,
1015 hook_int_rtx_0, hook_int_rtx_bool_0, hook_void_tree,
1016 hook_void_constcharptr, hook_void_tree_treeptr, hook_void_int_int,
1017 hook_bool_tree_false, hook_bool_const_tree_false, hook_bool_tree_true,
1018 hook_bool_const_tree_true, hook_bool_tree_tree_false,
1019 hook_bool_tree_tree_true, hook_bool_tree_bool_false,
1020 hook_bool_rtx_insn_true, hook_bool_rtx_false,
1021 hook_bool_uintp_uintp_false,
1022 hook_bool_rtx_mode_int_int_intp_bool_false, hook_rtx_rtx_null,
1023 hook_rtx_tree_int_null, hook_uint_mode_0,
1024 hook_constcharptr_const_tree_null, hook_tree_tree_int_treep_bool_null,
1025 hook_tree_tree_tree_null, hook_tree_tree_tree_tree_null,
1026 hook_constcharptr_const_rtx_insn_null,
1027 hook_constcharptr_const_tree_const_tree_null,
1028 hook_constcharptr_int_const_tree_null,
1029 hook_constcharptr_int_const_tree_const_tree_null,
1030 hook_tree_const_tree_null, hook_bool_rtx_insn_int_false,
1031 hook_void_rtx_insn_int, hook_void_gcc_optionsp): For arguments with
1032 ATTRIBUTE_UNUSED, remove parameter name as well as ATTRIBUTE_UNUSED.
1033
1034 * vec.h (vNULL): Extend comment to say = vNULL initialization
1035 isn't needed for static vars.
1036
1037 * sel-sched-ir.c (sel_global_bb_info, sel_region_bb_info,
1038 loop_nests, s_i_d, last_added_blocks): Remove unnecessary
1039 = vNULL initialization of file scope vec.
1040 * passes.c (pass_tab, enabled_pass_uid_range_tab,
1041 disabled_pass_uid_range_tab): Likewise.
1042 * haifa-sched.c (sched_luids, h_i_d): Likewise.
1043 * tree-chkp-opt.c (check_infos): Likewise.
1044 * sel-sched.c (vec_av_set, vec_temp_moveop_nops): Likewise.
1045
1046 * vec.h (vnull::operator vec): Add constexpr keyword for
1047 C++11 and later.
1048
1049 2016-09-23 Doug Gilmore <doug.gilmore@imgtec.com>
1050
1051 PR tree-optimization/77654
1052 * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Add call
1053 to duplicate_ssa_name_ptr_info.
1054
1055 2016-09-23 David Malcolm <dmalcolm@redhat.com>
1056
1057 PR preprocessor/77672
1058 * input.c (selftest::test_lexer_string_locations_simple): Update
1059 test to expect location information of the terminator character
1060 at the location of the final closing quote.
1061 (selftest::test_lexer_string_locations_hex): Likewise.
1062 (selftest::test_lexer_string_locations_oct): Likewise.
1063 (selftest::test_lexer_string_locations_letter_escape_1): Likewise.
1064 (selftest::test_lexer_string_locations_letter_escape_2): Likewise.
1065 (selftest::test_lexer_string_locations_ucn4): Likewise.
1066 (selftest::test_lexer_string_locations_ucn8): Likewise.
1067 (selftest::test_lexer_string_locations_u8): Likewise.
1068 (selftest::test_lexer_string_locations_utf8_source): Likewise.
1069 (selftest::test_lexer_string_locations_concatenation_1): Likewise.
1070 (selftest::test_lexer_string_locations_concatenation_2): Likewise.
1071 (selftest::test_lexer_string_locations_concatenation_3): Likewise.
1072 (selftest::test_lexer_string_locations_macro): Likewise.
1073 (selftest::test_lexer_string_locations_long_line): Likewise.
1074
1075 2016-09-23 Richard Biener <rguenther@suse.de>
1076
1077 * tree-ssa-sccvn.c (visit_reference_op_call): Value number
1078 virtual definition to virtual use if the call devirtualizes
1079 to a const or pure function.
1080 (visit_use): Also visit calls we can devirtualize to a
1081 const or pure function.
1082
1083 2016-09-23 Richard Biener <rguenther@suse.de>
1084
1085 PR tree-optimization/77697
1086 * tree-ssa-forwprop.c (defcodefor_name): Remove bogus code,
1087 signal error if we have sth ternary or unhandled.
1088
1089 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1090
1091 * config/arm/arm_neon.h (vabd_f16): New.
1092 (vabdq_f16): New.
1093 (vabs_f16): New.
1094 (vabsq_f16): New.
1095 (vadd_f16): New.
1096 (vaddq_f16): New.
1097 (vcage_f16): New.
1098 (vcageq_f16): New.
1099 (vcagt_f16): New.
1100 (vcagtq_f16): New.
1101 (vcale_f16): New.
1102 (vcaleq_f16): New.
1103 (vcalt_f16): New.
1104 (vcaltq_f16): New.
1105 (vceq_f16): New.
1106 (vceqq_f16): New.
1107 (vceqz_f16): New.
1108 (vceqzq_f16): New.
1109 (vcge_f16): New.
1110 (vcgeq_f16): New.
1111 (vcgez_f16): New.
1112 (vcgezq_f16): New.
1113 (vcgt_f16): New.
1114 (vcgtq_f16): New.
1115 (vcgtz_f16): New.
1116 (vcgtzq_f16): New.
1117 (vcle_f16): New.
1118 (vcleq_f16): New.
1119 (vclez_f16): New.
1120 (vclezq_f16): New.
1121 (vclt_f16): New.
1122 (vcltq_f16): New.
1123 (vcltz_f16): New.
1124 (vcltzq_f16): New.
1125 (vcvt_f16_s16): New.
1126 (vcvt_f16_u16): New.
1127 (vcvt_s16_f16): New.
1128 (vcvt_u16_f16): New.
1129 (vcvtq_f16_s16): New.
1130 (vcvtq_f16_u16): New.
1131 (vcvtq_s16_f16): New.
1132 (vcvtq_u16_f16): New.
1133 (vcvta_s16_f16): New.
1134 (vcvta_u16_f16): New.
1135 (vcvtaq_s16_f16): New.
1136 (vcvtaq_u16_f16): New.
1137 (vcvtm_s16_f16): New.
1138 (vcvtm_u16_f16): New.
1139 (vcvtmq_s16_f16): New.
1140 (vcvtmq_u16_f16): New.
1141 (vcvtn_s16_f16): New.
1142 (vcvtn_u16_f16): New.
1143 (vcvtnq_s16_f16): New.
1144 (vcvtnq_u16_f16): New.
1145 (vcvtp_s16_f16): New.
1146 (vcvtp_u16_f16): New.
1147 (vcvtpq_s16_f16): New.
1148 (vcvtpq_u16_f16): New.
1149 (vcvt_n_f16_s16): New.
1150 (vcvt_n_f16_u16): New.
1151 (vcvtq_n_f16_s16): New.
1152 (vcvtq_n_f16_u16): New.
1153 (vcvt_n_s16_f16): New.
1154 (vcvt_n_u16_f16): New.
1155 (vcvtq_n_s16_f16): New.
1156 (vcvtq_n_u16_f16): New.
1157 (vfma_f16): New.
1158 (vfmaq_f16): New.
1159 (vfms_f16): New.
1160 (vfmsq_f16): New.
1161 (vmax_f16): New.
1162 (vmaxq_f16): New.
1163 (vmaxnm_f16): New.
1164 (vmaxnmq_f16): New.
1165 (vmin_f16): New.
1166 (vminq_f16): New.
1167 (vminnm_f16): New.
1168 (vminnmq_f16): New.
1169 (vmul_f16): New.
1170 (vmul_lane_f16): New.
1171 (vmul_n_f16): New.
1172 (vmulq_f16): New.
1173 (vmulq_lane_f16): New.
1174 (vmulq_n_f16): New.
1175 (vneg_f16): New.
1176 (vnegq_f16): New.
1177 (vpadd_f16): New.
1178 (vpmax_f16): New.
1179 (vpmin_f16): New.
1180 (vrecpe_f16): New.
1181 (vrecpeq_f16): New.
1182 (vrnd_f16): New.
1183 (vrndq_f16): New.
1184 (vrnda_f16): New.
1185 (vrndaq_f16): New.
1186 (vrndm_f16): New.
1187 (vrndmq_f16): New.
1188 (vrndn_f16): New.
1189 (vrndnq_f16): New.
1190 (vrndp_f16): New.
1191 (vrndpq_f16): New.
1192 (vrndx_f16): New.
1193 (vrndxq_f16): New.
1194 (vrsqrte_f16): New.
1195 (vrsqrteq_f16): New.
1196 (vrecps_f16): New.
1197 (vrecpsq_f16): New.
1198 (vrsqrts_f16): New.
1199 (vrsqrtsq_f16): New.
1200 (vsub_f16): New.
1201 (vsubq_f16): New.
1202
1203 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1204
1205 * config.gcc (extra_headers): Add arm_fp16.h
1206 * config/arm/arm_fp16.h: New.
1207 * config/arm/arm_neon.h: Include "arm_fp16.h".
1208
1209 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1210
1211 * config/arm/arm_neon_builtins.def (vadd): New (v8hf, v4hf
1212 variants).
1213 (vmulf): New (v8hf, v4hf variants).
1214 (vfma): New (v8hf, v4hf variants).
1215 (vfms): New (v8hf, v4hf variants).
1216 (vsub): New (v8hf, v4hf variants).
1217 (vcage): New (v8hf, v4hf variants).
1218 (vcagt): New (v8hf, v4hf variants).
1219 (vcale): New (v8hf, v4hf variants).
1220 (vcalt): New (v8hf, v4hf variants).
1221 (vceq): New (v8hf, v4hf variants).
1222 (vcgt): New (v8hf, v4hf variants).
1223 (vcge): New (v8hf, v4hf variants).
1224 (vcle): New (v8hf, v4hf variants).
1225 (vclt): New (v8hf, v4hf variants).
1226 (vceqz): New (v8hf, v4hf variants).
1227 (vcgez): New (v8hf, v4hf variants).
1228 (vcgtz): New (v8hf, v4hf variants).
1229 (vcltz): New (v8hf, v4hf variants).
1230 (vclez): New (v8hf, v4hf variants).
1231 (vabd): New (v8hf, v4hf variants).
1232 (vmaxf): New (v8hf, v4hf variants).
1233 (vmaxnm): New (v8hf, v4hf variants).
1234 (vminf): New (v8hf, v4hf variants).
1235 (vminnm): New (v8hf, v4hf variants).
1236 (vpmaxf): New (v4hf variant).
1237 (vpminf): New (v4hf variant).
1238 (vpadd): New (v4hf variant).
1239 (vrecps): New (v8hf, v4hf variants).
1240 (vrsqrts): New (v8hf, v4hf variants).
1241 (vabs): New (v8hf, v4hf variants).
1242 (vneg): New (v8hf, v4hf variants).
1243 (vrecpe): New (v8hf, v4hf variants).
1244 (vrnd): New (v8hf, v4hf variants).
1245 (vrnda): New (v8hf, v4hf variants).
1246 (vrndm): New (v8hf, v4hf variants).
1247 (vrndn): New (v8hf, v4hf variants).
1248 (vrndp): New (v8hf, v4hf variants).
1249 (vrndx): New (v8hf, v4hf variants).
1250 (vrsqrte): New (v8hf, v4hf variants).
1251 (vmul_lane): Add v4hf and v8hf variants.
1252 (vmul_n): Add v4hf and v8hf variants.
1253 (vext): New (v8hf, v4hf variants).
1254 (vcvts): New (v8hi, v4hi variants).
1255 (vcvts): New (v8hf, v4hf variants).
1256 (vcvtu): New (v8hi, v4hi variants).
1257 (vcvtu): New (v8hf, v4hf variants).
1258 (vcvts_n): New (v8hf, v4hf variants).
1259 (vcvtu_n): New (v8hi, v4hi variants).
1260 (vcvts_n): New (v8hi, v4hi variants).
1261 (vcvtu_n): New (v8hf, v4hf variants).
1262 (vbsl): New (v8hf, v4hf variants).
1263 (vcvtas): New (v8hf, v4hf variants).
1264 (vcvtau): New (v8hf, v4hf variants).
1265 (vcvtms): New (v8hf, v4hf variants).
1266 (vcvtmu): New (v8hf, v4hf variants).
1267 (vcvtns): New (v8hf, v4hf variants).
1268 (vcvtnu): New (v8hf, v4hf variants).
1269 (vcvtps): New (v8hf, v4hf variants).
1270 (vcvtpu): New (v8hf, v4hf variants).
1271
1272 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1273
1274 * config/arm/arm-builtins.c (hf_UP): New.
1275 (si_UP): New.
1276 (vfp_builtin_data): New. Update comment.
1277 (enum arm_builtins): Include "arm_vfp_builtins.def".
1278 (ARM_BUILTIN_VFP_PATTERN_START): New.
1279 (arm_init_vfp_builtins): New.
1280 (arm_init_builtins): Add arm_init_vfp_builtins.
1281 (arm_expand_vfp_builtin): New.
1282 (arm_expand_builtins): Update for arm_expand_vfp_builtin. Fix
1283 long line.
1284 * config/arm/arm_vfp_builtins.def: New file.
1285 * config/arm/t-arm (arm.o): Add arm_vfp_builtins.def.
1286 (arm-builtins.o): Likewise.
1287
1288 2016-09-23 Kugan Vivekanandarajah <kuganv@linaro.org>
1289
1290 PR ipa/77677
1291 * ipa-cp.c (propagate_vr_accross_jump_function): Drop TREE_OVERFLOW
1292 from constant while creating value range.
1293
1294 2016-09-23 Renlin Li <renlin.li@arm.com>
1295
1296 * ira.c (ira): Move ira_use_lra_p initialization code to ...
1297 (ira_init_once): Here.
1298
1299 2016-09-23 Uros Bizjak <ubizjak@gmail.com>
1300 Jakub Jelinek <jakub@redhat.com>
1301
1302 * hooks.h (hook_uint_uintp_false): Rename to...
1303 (hook_bool_uint_uintp_false): ... this.
1304 * hooks.c (hook_uint_uintp_false): Rename to...
1305 (hook_bool_uint_uintp_false): ... this.
1306 * target.def (elf_flags_numeric): Use hook_bool_uint_uintp_false
1307 instead of hook_uint_uintp_false.
1308
1309 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1310
1311 * config/arm/arm-builtins.c (arm_init_neon_builtin): New.
1312 (arm_init_builtins): Move body of a loop to the standalone
1313 function arm_init_neon_builtin.
1314 (arm_expand_neon_builtin_1): New. Update comment. Function body
1315 moved from arm_neon_builtin with some white-space fixes.
1316 (arm_expand_neon_builtin): Move code into the standalone function
1317 arm_expand_neon_builtin_1.
1318
1319 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1320
1321 * config/arm/iterators.md (VCVTHI): New.
1322 (NEON_VCMP): Add UNSPEC_VCLT and UNSPEC_VCLE. Fix a long line.
1323 (NEON_VAGLTE): New.
1324 (VFM_LANE_AS): New.
1325 (VH_CVTTO): New.
1326 (V_reg): Add HF, V4HF and V8HF. Fix white-space.
1327 (V_HALF): Add V4HF. Fix white-space.
1328 (V_if_elem): Add HF, V4HF and V8HF. Fix white-space.
1329 (V_s_elem): Likewise.
1330 (V_sz_elem): Fix white-space.
1331 (V_elem_ch): Likewise.
1332 (VH_elem_ch): New.
1333 (scalar_mul_constraint): Add V8HF and V4HF.
1334 (Is_float_mode): Fix white-space.
1335 (Is_d_reg): Add V4HF and V8HF. Fix white-space.
1336 (q): Add HF. Fix white-space.
1337 (float_sup): New.
1338 (float_SUP): New.
1339 (cmp_op_unsp): Add UNSPEC_VCALE and UNSPEC_VCALT.
1340 (neon_vfm_lane_as): New.
1341 * config/arm/neon.md (add<mode>3_fp16): New.
1342 (sub<mode>3_fp16): New.
1343 (mul<mode>3add<mode>_neon): New.
1344 (fma<VH:mode>4_intrinsic): New.
1345 (fmsub<VCVTF:mode>4_intrinsic): Fix white-space.
1346 (fmsub<VH:mode>4_intrinsic): New.
1347 (<absneg_str><mode>2): New.
1348 (neon_v<absneg_str><mode>): New.
1349 (neon_v<fp16_rnd_str><mode>): New.
1350 (neon_vrsqrte<mode>): New.
1351 (neon_vpaddv4hf): New.
1352 (neon_vadd<mode>): New.
1353 (neon_vsub<mode>): New.
1354 (neon_vmulf<mode>): New.
1355 (neon_vfma<VH:mode>): New.
1356 (neon_vfms<VH:mode>): New.
1357 (neon_vc<cmp_op><mode>): New.
1358 (neon_vc<cmp_op><mode>_fp16insn): New
1359 (neon_vc<cmp_op_unsp><mode>_fp16insn_unspec): New.
1360 (neon_vca<cmp_op><mode>): New.
1361 (neon_vca<cmp_op><mode>_fp16insn): New.
1362 (neon_vca<cmp_op_unsp><mode>_fp16insn_unspec): New.
1363 (neon_vc<cmp_op>z<mode>): New.
1364 (neon_vabd<mode>): New.
1365 (neon_v<maxmin>f<mode>): New.
1366 (neon_vp<maxmin>fv4hf: New.
1367 (neon_<fmaxmin_op><mode>): New.
1368 (neon_vrecps<mode>): New.
1369 (neon_vrsqrts<mode>): New.
1370 (neon_vrecpe<mode>): New (VH variant).
1371 (neon_vdup_lane<mode>_internal): New.
1372 (neon_vdup_lane<mode>): New.
1373 (neon_vcvt<sup><mode>): New (VCVTHI variant).
1374 (neon_vcvt<sup><mode>): New (VH variant).
1375 (neon_vcvt<sup>_n<mode>): New (VH variant).
1376 (neon_vcvt<sup>_n<mode>): New (VCVTHI variant).
1377 (neon_vcvt<vcvth_op><sup><mode>): New.
1378 (neon_vmul_lane<mode>): New.
1379 (neon_vmul_n<mode>): New.
1380 * config/arm/unspecs.md (UNSPEC_VCALE): New
1381 (UNSPEC_VCALT): New.
1382 (UNSPEC_VFMA_LANE): New.
1383 (UNSPECS_VFMS_LANE): New.
1384
1385 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1386
1387 * config/s390/s390.md ("*extzv<mode>_zEC12", "*extzv<mode>_z10")
1388 ("*extzv<mode><clobbercc_or_nocc>"):
1389 Correct a typo in a comment.
1390 Merged patterns.
1391 ("*insv<mode>_zEC12", "*insv<mode>_z10")
1392 ("*insv<mode><clobbercc_or_nocc>"): Ditto.
1393 ("*insv<mode>_zEC12_appendbitsleft")
1394 ("*insv<mode><clobbercc_or_nocc>_appendbitsleft")
1395 ("*insv<mode>_z10_appendbitsleft"): Ditto.
1396 ("*insv<mode>_zEC12_noshift", "*insv<mode>_z10_noshift")
1397 ("*insv<mode><clobbercc_or_nocc>_noshift"): Ditto.
1398 Provide pattern with operands switched.
1399 ("*pre_z10_extv<mode>"):
1400 Use new subst patterns.
1401 ("*extzvdi<clobbercc_or_nocc>_lshiftrt", "*<risbg_n>_ior_and_sr_ze")
1402 ("*extvsidi<clobbercc_or_nocc>", "*<risbg_n>_and_subregdi_rotr")
1403 ("*<risbg_n>_and_subregdi_rotl", "*<risbg_n>_di_and_rot")
1404 ("*insv_z10_noshift_cc", "*insv_z10_noshift_cconly")
1405 ("*<risbg_n>_<mode>_ior_and_lshiftrt")
1406 ("*<risbg_n>_sidi_ior_and_lshiftrt")
1407 ("*trunc_sidi_and_subreg_lshrt<clobbercc_or_nocc>"):
1408 New patterns.
1409 ("*extzv_<mode>_sll", "*extzv_<mode>_srl")
1410 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
1411 ("*extzv_<mode>_sll<clobbercc_or_nocc>"): Renamed patterns, use risbgn
1412 on zEC12.
1413 ("SINT"): New mode_iterator with SI, HI, QI.
1414 * config/s390/subst.md ("clobbercc_or_nocc_subst", "z10_or_zEC12_cond")
1415 ("clobbercc_or_nocc", "risbg_n"): New constructs for risbg pattern
1416 duplication.
1417
1418 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1419
1420 * config/s390/predicates.md ("contiguous_bitmask_operand"): Adapt to
1421 new interface of s390_contiguous_bitmask_p.
1422 ("contiguous_bitmask_nowrap_operand"): New predicate.
1423 ("*anddi3_cc", "*anddi3_cconly", "*anddi3"): Replace NxxDq with NxxDw.
1424 * config/s390/constraints.md ("NxxDw", "NxxSq"): Adapt to new interface
1425 of s390_contiguous_bitmask_p.
1426 ("NxxDw"): Rename NxxDq constraint to NxxDw.
1427 ("NxxSw"): New constraint.
1428 * config/s390/s390.md ("*andsi3_zarch"): Enable bitmask wraparound.
1429 * config/s390/s390-protos.h (s390_contiguous_bitmask_p): Updated
1430 interface.
1431 (s390_contiguous_bitmask_nowrap_p): Export.
1432 * config/s390/s390.c (s390_contiguous_bitmask_nowrap_p): New name of
1433 former s390_contiguous_bitmask_p.
1434 (s390_contiguous_bitmask_p): Use s390_contiguous_bitmask_nowrap_p to
1435 detect contiguous bit ranges with wraparound. Change signature to
1436 return START and END position instead of POS and LENGTH.
1437 (s390_contiguous_bitmask_vector_p): Remove extra code for continous bit
1438 ranges with wraparound.
1439 (s390_extzv_shift_ok): Use s390_contiguous_bitmask_nowrap_p.
1440 (s390_contiguous_bitmask_vector_p,s390_extzv_shift_ok,print_operand):
1441 Adapt to new signature of s390_contiguous_bitmask_p.
1442
1443 2016-09-23 Bin Cheng <bin.cheng@arm.com>
1444
1445 * tree-vect-loop-manip.c (create_intersect_range_checks_index): New.
1446 (create_intersect_range_checks): New.
1447 (vect_create_cond_for_alias_checks): Call above function.
1448
1449 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1450
1451 * config/arm/iterators.md (Code iterators): Fix some white-space
1452 in the comments.
1453 (GLTE): New.
1454 (ABSNEG): New
1455 (FCVT): Moved from vfp.md.
1456 (VCVT_HF_US_N): New.
1457 (VCVT_SI_US_N): New.
1458 (VCVT_HF_US): New.
1459 (VCVTH_US): New.
1460 (FP16_RND): New.
1461 (absneg_str): New.
1462 (FCVTI32typename): Moved from vfp.md.
1463 (sup): Add UNSPEC_VCVTA_S, UNSPEC_VCVTA_U, UNSPEC_VCVTM_S,
1464 UNSPEC_VCVTM_U, UNSPEC_VCVTN_S, UNSPEC_VCVTN_U, UNSPEC_VCVTP_S,
1465 UNSPEC_VCVTP_U, UNSPEC_VCVT_HF_S_N, UNSPEC_VCVT_HF_U_N,
1466 UNSPEC_VCVT_SI_S_N, UNSPEC_VCVT_SI_U_N, UNSPEC_VCVTH_S_N,
1467 UNSPEC_VCVTH_U_N, UNSPEC_VCVTH_S and UNSPEC_VCVTH_U.
1468 (vcvth_op): New.
1469 (fp16_rnd_str): New.
1470 (fp16_rnd_insn): New.
1471 * config/arm/unspecs.md (UNSPEC_VCVT_HF_S_N): New.
1472 (UNSPEC_VCVT_HF_U_N): New.
1473 (UNSPEC_VCVT_SI_S_N): New.
1474 (UNSPEC_VCVT_SI_U_N): New.
1475 (UNSPEC_VCVTH_S): New.
1476 (UNSPEC_VCVTH_U): New.
1477 (UNSPEC_VCVTA_S): New.
1478 (UNSPEC_VCVTA_U): New.
1479 (UNSPEC_VCVTM_S): New.
1480 (UNSPEC_VCVTM_U): New.
1481 (UNSPEC_VCVTN_S): New.
1482 (UNSPEC_VCVTN_U): New.
1483 (UNSPEC_VCVTP_S): New.
1484 (UNSPEC_VCVTP_U): New.
1485 (UNSPEC_VCVTP_S): New.
1486 (UNSPEC_VCVTP_U): New.
1487 (UNSPEC_VRND): New.
1488 (UNSPEC_VRNDA): New.
1489 (UNSPEC_VRNDI): New.
1490 (UNSPEC_VRNDM): New.
1491 (UNSPEC_VRNDN): New.
1492 (UNSPEC_VRNDP): New.
1493 (UNSPEC_VRNDX): New.
1494 * config/arm/vfp.md (<absneg_str>hf2): New.
1495 (neon_vabshf): New.
1496 (neon_v<fp16_rnd_str>hf): New.
1497 (neon_vrndihf): New.
1498 (addhf3): New.
1499 (subhf3): New.
1500 (divhf3): New.
1501 (mulhf3): New.
1502 (*mulsf3neghf_vfp): New.
1503 (*negmulhf3_vfp): New.
1504 (*mulsf3addhf_vfp): New.
1505 (*mulhf3subhf_vfp): New.
1506 (*mulhf3neghfaddhf_vfp): New.
1507 (*mulhf3neghfsubhf_vfp): New.
1508 (fmahf4): New.
1509 (neon_vfmahf): New.
1510 (fmsubhf4_fp16): New.
1511 (neon_vfmshf): New.
1512 (*fnmsubhf4): New.
1513 (*fnmaddhf4): New.
1514 (neon_vsqrthf): New.
1515 (neon_vrsqrtshf): New.
1516 (FCVT): Move to iterators.md.
1517 (FCVTI32typename): Likewise.
1518 (neon_vcvth<sup>hf): New.
1519 (neon_vcvth<sup>si): New.
1520 (neon_vcvth<sup>_nhf_unspec): New.
1521 (neon_vcvth<sup>_nhf): New.
1522 (neon_vcvth<sup>_nsi_unspec): New.
1523 (neon_vcvth<sup>_nsi): New.
1524 (neon_vcvt<vcvth_op>h<sup>si): New.
1525 (neon_<fmaxmin_op>hf): New.
1526
1527 2016-09-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
1528
1529 * config/s390/s390.md (bitoff, bitoff_plus): Neq mode attributes.
1530 ("*extzv<mode>_zEC12", "*insv<mode>_zEC12", "*insv<mode>_z10")
1531 ("*insv<mode>_zEC12_appendbitsleft")
1532 ("*insv<mode>_z10_appendbitsleft", "*r<noxa>sbg_<mode>_sll")
1533 ("*r<noxa>sbg_<mode>_srl"): Use new attributes.
1534
1535 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1536
1537 * ipa-cp.c (ipcp_store_vr_results): Avoid static local var zero.
1538 * sreal.h (sreal::min, sreal::max): Avoid static local vars,
1539 construct values without normalization.
1540 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't initialize
1541 static local lhs_ops to vNULL.
1542
1543 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1544 Jiong Wang <jiong.wang@arm.com>
1545
1546 * config/arm/arm.c (coproc_secondary_reload_class): Make HFmode
1547 available when FP16 instructions are available.
1548 (output_move_vfp): Add support for 16-bit data moves.
1549 (arm_validize_comparison): Fix some white-space. Support HFmode
1550 by conversion to SFmode.
1551 * config/arm/arm.md (truncdfhf2): Fix a comment.
1552 (extendhfdf2): Likewise.
1553 (cstorehf4): New.
1554 (movsicc): Fix some white-space.
1555 (movhfcc): New.
1556 (movsfcc): Fix some white-space.
1557 (*cmovhf): New.
1558 * config/arm/vfp.md (*arm_movhi_vfp): Disable when VFP FP16
1559 instructions are available.
1560 (*thumb2_movhi_vfp): Likewise.
1561 (*arm_movhi_fp16): New.
1562 (*thumb2_movhi_fp16): New.
1563 (*movhf_vfp_fp16): New.
1564 (*movhf_vfp_neon): Disable when VFP FP16 instructions are available.
1565 (*movhf_vfp): Likewise.
1566 (extendhfsf2): Enable when VFP FP16 instructions are available.
1567 (truncsfhf2): Enable when VFP FP16 instructions are available.
1568
1569 2016-09-23 Martin Liska <mliska@suse.cz>
1570
1571 * config/s390/vx-builtins.md: Replace 'adress' with 'address'.
1572
1573 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1574
1575 * config/arm/arm.c (arm_evpc_neon_vuzp): Add support for V8HF and
1576 V4HF modes.
1577 (arm_evpc_neon_vtrn): Likewise.
1578 (arm_evpc_neon_vrev): Likewise.
1579 (arm_evpc_neon_vext): Likewise.
1580 * config/arm/arm_neon.h (vbsl_f16): New.
1581 (vbslq_f16): New.
1582 (vdup_n_f16): New.
1583 (vdupq_n_f16): New.
1584 (vdup_lane_f16): New.
1585 (vdupq_lane_f16): New.
1586 (vext_f16): New.
1587 (vextq_f16): New.
1588 (vmov_n_f16): New.
1589 (vmovq_n_f16): New.
1590 (vrev64_f16): New.
1591 (vrev64q_f16): New.
1592 (vtrn_f16): New.
1593 (vtrnq_f16): New.
1594 (vuzp_f16): New.
1595 (vuzpq_f16): New.
1596 (vzip_f16): New.
1597 (vzipq_f16): New.
1598 * config/arm/arm_neon_buillins.def (vdup_n): New (v8hf, v4hf variants).
1599 (vdup_lane): New (v8hf, v4hf variants).
1600 (vext): New (v8hf, v4hf variants).
1601 (vbsl): New (v8hf, v4hf variants).
1602 * config/arm/iterators.md (VDQWH): New.
1603 (VH): New.
1604 (V_double_vector_mode): Add V8HF and V4HF. Fix white-space.
1605 (Scalar_mul_8_16): Fix white-space.
1606 (Is_d_reg): Add V4HF and V8HF.
1607 * config/arm/neon.md (neon_vdup_lane<mode>_internal): New.
1608 (neon_vdup_lane<mode>): New.
1609 (neon_vtrn<mode>_internal): Replace VDQW with VDQWH.
1610 (*neon_vtrn<mode>_insn): Likewise.
1611 (neon_vzip<mode>_internal): Likewise. Also fix white-space.
1612 (*neon_vzip<mode>_insn): Likewise
1613 (neon_vuzp<mode>_internal): Likewise.
1614 (*neon_vuzp<mode>_insn): Likewise
1615 * config/arm/vec-common.md (vec_perm_const<mode>): New.
1616
1617 2016-09-23 Jiong Wang <jiong.wang@arm.com>
1618 Matthew Wahab <matthew.wahab@arm.com>
1619
1620 * config/arm/arm.c (output_move_vfp): Weaken assert to allow HImode.
1621 (arm_hard_regno_mode_ok): Allow HImode values in VFP registers.
1622 * config/arm/arm.md (*movhi_bytes): Disable when VFP registers are
1623 available. Also fix some white-space.
1624 * config/arm/vfp.md (*arm_movhi_vfp): New.
1625 (*thumb2_movhi_vfp): New.
1626
1627 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1628
1629 * config/arm/arm-c.c (arm_cpu_builtins): Define
1630 "__ARM_FEATURE_FP16_SCALAR_ARITHMETIC" and
1631 "__ARM_FEATURE_FP16_VECTOR_ARITHMETIC".
1632
1633 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1634
1635 * doc/sourcebuild.texi (ARM-specific attributes): Add anchor for
1636 arm_v8_1a_neon_ok. Add entries for arm_v8_2a_fp16_scalar_ok,
1637 arm_v8_2a_fp16_scalar_hw, arm_v8_2a_fp16_neon_ok and
1638 arm_v8_2a_fp16_neon_hw.
1639 (Add options): Add entries for arm_v8_1a_neon, arm_v8_2a_scalar,
1640 arm_v8_2a_neon.
1641
1642 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1643
1644 * doc/sourcebuild.texi (ARM-specific attributes): Add entries for
1645 arm_fp16_alternative_ok and arm_fp16_none_ok.
1646
1647 2016-09-23 Martin Liska <mliska@suse.cz>
1648
1649 * ipa-icf.c (sem_variable::merge): Replace adress with address.
1650
1651 2016-09-23 Matthew Wahab <matthew.wahab@arm.com>
1652
1653 * config/arm/arm-arches.def ("armv8.1-a"): Add FL_CRC32.
1654 ("armv8.2-a"): New.
1655 ("armv8.2-a+fp16"): New.
1656 * config/arm/arm-protos.h (FL2_ARCH8_2): New.
1657 (FL2_FP16INST): New.
1658 (FL2_FOR_ARCH8_2A): New.
1659 * config/arm/arm-tables.opt: Regenerate.
1660 * config/arm/arm.c (arm_arch8_2): New.
1661 (arm_fp16_inst): New.
1662 (arm_option_override): Set arm_arch8_2 and arm_fp16_inst. Check
1663 for incompatible fp16-format settings.
1664 * config/arm/arm.h (TARGET_VFP_FP16INST): New.
1665 (TARGET_NEON_FP16INST): New.
1666 (arm_arch8_2): Declare.
1667 (arm_fp16_inst): Declare.
1668 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for
1669 march=armv8.2-a and march=armv8.2-a+fp16.
1670 * config/arm/t-aprofile (Arch Matches): Add entries for armv8.2-a
1671 and armv8.2-a+fp16.
1672 * doc/invoke.texi (ARM Options): Add "-march=armv8.1-a",
1673 "-march=armv8.2-a" and "-march=armv8.2-a+fp16".
1674
1675 2016-09-23 Martin Liska <mliska@suse.cz>
1676
1677 * doc/extend.texi: Remove fused-madd from i386 target options.
1678
1679 2016-09-23 Martin Liska <mliska@suse.cz>
1680
1681 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1682 Handle movbe.
1683
1684 2016-09-23 Martin Liska <mliska@suse.cz>
1685
1686 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
1687 Handle crc32.
1688
1689 2016-09-23 Martin Liska <mliska@suse.cz>
1690
1691 PR target/71652
1692 * config/i386/i386.c (ix86_option_override_internal): Change
1693 signature and return false when there's an error related to
1694 arch string.
1695 (release_options_strings): New function.
1696 (ix86_valid_target_attribute_tree): Call the function.
1697
1698 2016-09-23 Jakub Jelinek <jakub@redhat.com>
1699
1700 * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...)
1701 instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
1702 (gen_hsa_ctor_assignment): Likewise.
1703 * print-tree.c (print_node): Likewise.
1704 * tree-dump.c (dequeue_and_dump): Likewise.
1705 * tree-sra.c (sra_modify_constructor_assign): Likewise.
1706 * expr.c (store_constructor): Likewise.
1707 * fold-const.c (operand_equal_p): Likewise.
1708 * tree-pretty-print.c (dump_generic_node): Likewise.
1709 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
1710 * ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
1711
1712 2016-09-23 Richard Biener <rguenther@suse.de>
1713
1714 * hooks.h (hook_uint_uintp_false): Declare.
1715
1716 2016-09-22 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
1717
1718 * config/avr/avr.c (avr_rtx_costs_1): Handle DImode MULT.
1719 (avr_address_cost): Replace 61 with MAX_LD_OFFSET(mode).
1720
1721 2016-09-22 Martin Sebor <msebor@redhat.com>
1722
1723 PR target/77676
1724 * gimple-ssa-sprintf.c (target_int_min, target_int_max): Use
1725 HOST_BITS_PER_WIDE_INT, make a static local variable auto.
1726 (target_int_min): Correct computation.
1727 (format_integer): Use long long as the argument for the ll length
1728 modifier.
1729 (format_floating): Use target_int_max().
1730 (get_string_length): Same.
1731 (format_string): Avoid setting the bounded flag for strings
1732 of unknown length.
1733 (try_substitute_return_value): Avoid setting range info when
1734 the result isn't bounded.
1735 * varasm.c (assemble_name): Increase buffer size.
1736
1737 2016-09-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
1738 Terry Guo <terry.guo@arm.com>
1739
1740 * target.def (elf_flags_numeric): New target hook.
1741 * targhooks.h (default_asm_elf_flags_numeric): New.
1742 * varasm.c (default_asm_elf_flags_numeric): New.
1743 (default_elf_asm_named_section): Use new target hook.
1744 * config/arm/arm.opt (mpure-code): New.
1745 * config/arm/arm.h (SECTION_ARM_PURECODE): New.
1746 * config/arm/arm.c (arm_asm_init_sections): Add section
1747 attribute to default text section if -mpure-code.
1748 (arm_option_check_internal): Diagnose use of option with
1749 non supported targets and/or options.
1750 (arm_asm_elf_flags_numeric): New.
1751 (arm_function_section): New.
1752 (arm_elf_section_type_flags): New.
1753 * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Disable
1754 for -mpure-code.
1755 * gcc/doc/texi (TARGET_ASM_ELF_FLAGS_NUMERIC): New.
1756 * gcc/doc/texi.in (TARGET_ASM_ELF_FLAGS_NUMERIC): Likewise.
1757
1758 2016-09-22 Jan Hubicka <hubicka@ucw.cz>
1759
1760 * regcprop.c (copyprop_hardreg_forward_1): Remove noop moves.
1761
1762 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1763
1764 * emit-rtl.c (next_cc0_user): Make argument type rtx_insn *.
1765 * rtl.h: Adjust prototype.
1766
1767 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1768
1769 * emit-rtl.c (next_active_insn): Change argument type to rtx_insn *.
1770 (prev_active_insn): Likewise.
1771 (active_insn_p): Likewise.
1772 * rtl.h: Adjust prototypes.
1773 * cfgcleanup.c (merge_blocks_move_successor_nojumps): Adjust.
1774 * config/arc/arc.md: Likewise.
1775 * config/pa/pa.c (branch_to_delay_slot_p): Likewise.
1776 (branch_needs_nop_p): Likewise.
1777 (use_skip_p): Likewise.
1778 * config/sh/sh.c (gen_block_redirect): Likewise.
1779 (split_branches): Likewise.
1780 * reorg.c (optimize_skip): Likewise.
1781 (fill_simple_delay_slots): Likewise.
1782 (fill_slots_from_thread): Likewise.
1783 (relax_delay_slots): Likewise.
1784 * resource.c (mark_target_live_regs): Likewise.
1785
1786 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1787
1788 * config/cris/cris.c (cris_asm_output_case_end): Change argument
1789 type to rtx_insn *.
1790 * emit-rtl.c (next_nonnote_nondebug_insn): Likewise.
1791 (prev_nonnote_nondebug_insn): Likewise.
1792 * config/cris/cris-protos.h: Adjust prototype.
1793 * rtl.h: Likewise.
1794 * jump.c (rtx_renumbered_equal_p): Adjust.
1795
1796 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1797
1798 * emit-rtl.c (prev_real_insn): Change argument type to rtx_insn *.
1799 * rtl.h: Adjust prototype.
1800 * config/sh/sh.md: Adjust.
1801 * dwarf2out.c (add_var_loc_to_decl): Likewise.
1802
1803 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1804
1805 * emit-rtl.c (next_nondebug_insn): Change argument type to rtx_insn *.
1806 (prev_nondebug_insn): Likewise.
1807 * loop-doloop.c (doloop_condition_get): Likewise.
1808 * rtl.h: Adjust prototype.
1809 * cfgloop.h: Likewise.
1810
1811 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1812
1813 * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *.
1814 (prev_nonnote_insn): Likewise.
1815 * jump.c (reversed_comparison_code_parts): Likewise.
1816 (reversed_comparison): Likewise.
1817 * rtl.h: Adjust prototypes.
1818 * config/arc/arc.md: Adjust.
1819 * cse.c (find_comparison_args): Likewise.
1820 * reorg.c (redundant_insn): Change return type to rtx_insn *.
1821 (fix_reg_dead_note): Change argument type to rtx_insn *.
1822 (delete_prior_computation): Likewise.
1823 (delete_computation): Likewise.
1824 (fill_slots_from_thread): Adjust.
1825 (relax_delay_slots): Likewise.
1826 * simplify-rtx.c (simplify_unary_operation_1): Likewise.
1827 (simplify_relational_operation_1): Likewise.
1828 (simplify_ternary_operation): Likewise.
1829
1830 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
1831
1832 * config/arc/arc-protos.h (arc_label_align): Change type of
1833 variables from rtx to rtx_insn *.
1834 * config/arc/arc.c (arc_label_align): Likewise.
1835 * config/arm/arm.c (any_sibcall_could_use_r3): Likewise.
1836 * config/bfin/bfin.c (workaround_speculation): Likewise.
1837 * config/c6x/c6x.c (find_next_cycle_insn): Likewise.
1838 (find_last_same_clock): Likewise.
1839 (reorg_split_calls): Likewise.
1840 * config/cris/cris-protos.h (cris_cc0_user_requires_cmp): Likewise.
1841 * config/cris/cris.c (cris_cc0_user_requires_cmp): Likewise.
1842 * config/h8300/h8300-protos.h (same_cmp_preceding_p): Likewise.
1843 (same_cmp_following_p): Likewise.
1844 * config/h8300/h8300.c (same_cmp_preceding_p): Likewise.
1845 (same_cmp_following_p): Likwise.
1846 * config/m32r/m32r.c (m32r_expand_epilogue): Likewise.
1847 * config/nds32/nds32-protos.h (nds32_target_alignment): Likewise.
1848 * config/nds32/nds32.c (nds32_target_alignment): Likewise.
1849 * config/rl78/rl78.c (rl78_alloc_physical_registers_op2): Likewise.
1850 (rl78_alloc_physical_registers_cmp): Likewise.
1851 (rl78_alloc_physical_registers_umul): Likewise.
1852 (rl78_calculate_death_notes): Likewise.
1853 * config/s390/s390-protos.h (s390_label_align): Likewise.
1854 * config/s390/s390.c (s390_label_align): Likewise.
1855 * config/sh/sh.c (barrier_align): Likewise.
1856 * config/sparc/sparc-protos.h (emit_cbcond_nop): Likewise.
1857 * config/sparc/sparc.c (sparc_asm_function_epilogue): Likewise.
1858 (emit_cbcond_nop): Likewise.
1859
1860 2016-09-22 Martin Liska <mliska@suse.cz>
1861
1862 PR ipa/77653
1863 * ipa-icf.c (sem_variable::merge): Yield merge operation if
1864 alias address matters, not necessarily address of original.
1865
1866 2016-09-22 Richard Biener <rguenther@suse.de>
1867
1868 PR middle-end/77697
1869 * gimple-fold.c (fold_array_ctor_reference): Turn asserts into
1870 fold fails.
1871
1872 2016-09-22 Richard Biener <rguenther@suse.de>
1873
1874 PR middle-end/77677
1875 * gimple-match-head.c (gimple_resimplify1): Drop TREE_OVERFLOW
1876 from constant folding results.
1877 (gimple_resimplify2): Likewise.
1878 (gimple_resimplify3): Likewise.
1879
1880 2016-09-22 Richard Biener <rguenther@suse.de>
1881
1882 PR middle-end/77678
1883 * expr.c (expand_expr_real_1): Guard array access against negative
1884 offset.
1885
1886 2016-09-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1887
1888 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN instead
1889 of MPFR_RNDN.
1890 (format_floating): Likewise.
1891
1892 2016-09-22 Jakub Jelinek <jakub@redhat.com>
1893
1894 PR fortran/77665
1895 * tree-inline.c (remap_gimple_stmt): Set has_simduid_loops
1896 for all IFN_GOMP_SIMD_* internal fns, not just for
1897 IFN_GOMP_SIMD_ORDERED_*.
1898
1899 2016-09-21 Michael Meissner <meissner@linux.vnet.ibm.com>
1900
1901 PR target/77670
1902 * config/rs6000/predicates.md (invert_fpmask_comparison_operator):
1903 New predicate that matches the ISA 3.0 XSCMP{EQ,GT,GE}DP
1904 instructions when you want to invert the test.
1905 * config/rs6000/rs6000.md (fpmask<mode>): Use the arguments in the
1906 correct order for XXSEL.
1907 (mov<SFDF:mode><SFDF2:mode>cc_invert_p9): Define the inverted test
1908 for using XSCMP{EQ,GT,GE}DP.
1909
1910 2016-09-21 David Malcolm <dmalcolm@redhat.com>
1911
1912 * genconstants.c (main): Introduce noop_reader and convert call
1913 to read_md_files to a method call.
1914 * genenums.c (main): Likewise.
1915 * genmddeps.c (main): Likewise.
1916 * genpreds.c (write_tm_constrs_h): Replace use of "in_fname" with
1917 rtx_reader_ptr->get_top_level_filename ().
1918 (write_tm_preds_h): Likewise.
1919 (write_insn_preds_c): Likewise.
1920 * gensupport.c (class gen_reader): New subclass of rtx_reader.
1921 (rtx_handle_directive): Convert to...
1922 (gen_reader::handle_unknown_directive): ...this.
1923 (init_rtx_reader_args_cb): Convert return type from bool to
1924 rtx_reader *. Create a gen_reader instance, using it for the
1925 call to read_md_files. Return it if no errors occur.
1926 (init_rtx_reader_args): Convert return type from bool to
1927 rtx_reader *.
1928 * gensupport.h (init_rtx_reader_args_cb): Likewise.
1929 (init_rtx_reader_args_cb): Likewise.
1930 * read-md.c (struct file_name_list): Move to class rtx_reader.
1931 (read_md_file): Delete in favor of rtx_reader::m_read_md_file.
1932 (read_md_filename): Delete in favor of
1933 rtx_reader::m_read_md_filename.
1934 (read_md_lineno): Delete in favor of rtx_reader::m_read_md_lineno.
1935 (in_fname): Delete in favor of rtx_reader::m_toplevel_fname.
1936 (base_dir): Delete in favor of rtx_reader::m_base_dir.
1937 (first_dir_md_include): Delete in favor of
1938 rtx_reader::m_first_dir_md_include.
1939 (last_dir_md_include_ptr): Delete in favor of
1940 rtx_reader::m_last_dir_md_include_ptr.
1941 (max_include_len): Delete.
1942 (rtx_reader_ptr): New.
1943 (fatal_with_file_and_line): Use get_filename and get_lineno
1944 accessors of rtx_reader_ptr.
1945 (require_char_ws): Likewise.
1946 (rtx_reader::read_char): New method, based on ::read_char.
1947 (rtx_reader::unread_char): New method, based on ::unread_char.
1948 (read_escape): Use get_filename and get_lineno accessors of
1949 rtx_reader_ptr.
1950 (read_braced_string): Use get_lineno accessor of rtx_reader_ptr.
1951 (read_string): Use get_filename and get_lineno accessors of
1952 rtx_reader_ptr.
1953 (rtx_reader::rtx_reader): New ctor.
1954 (rtx_reader::~rtx_reader): New dtor.
1955 (handle_include): Convert from a function to...
1956 (rtx_reader::handle_include): ...this method, converting
1957 handle_directive from a callback to a virtual function.
1958 (handle_file): Likewise, converting to...
1959 (rtx_reader::handle_file): ...this method.
1960 (handle_toplevel_file): Likewise, converting to...
1961 (rtx_reader::handle_toplevel_file): ...this method.
1962 (rtx_reader::get_current_location): New method.
1963 (parse_include): Convert from a function to...
1964 (rtx_reader::add_include_path): ...this method, dropping redundant
1965 update to unused max_include_len.
1966 (read_md_files): Convert from a function to...
1967 (rtx_reader::read_md_files): ...this method, converting
1968 handle_directive from a callback to a virtual function.
1969 (noop_reader::handle_unknown_directive): New method.
1970 * read-md.h (directive_handler_t): Delete this typedef.
1971 (in_fname): Delete.
1972 (read_md_file): Delete.
1973 (read_md_lineno): Delete.
1974 (read_md_filename): Delete.
1975 (class rtx_reader): New class.
1976 (rtx_reader_ptr): New decl.
1977 (class noop_reader): New subclass of rtx_reader.
1978 (read_char): Reimplement in terms of rtx_reader::read_char.
1979 (unread_char): Reimplement in terms of rtx_reader::unread_char.
1980 (read_md_files): Delete.
1981 * read-rtl.c (read_rtx_code): Update for deletion of globals
1982 read_md_filename and read_md_lineno.
1983
1984 2016-09-21 Jason Merrill <jason@redhat.com>
1985
1986 * input.h (from_macro_definition_at): New.
1987
1988 2016-09-21 Segher Boessenkool <segher@kernel.crashing.org>
1989
1990 * doc/rtl.texi (JUMP_LABEL): Document RETURN and SIMPLE_RETURN values.
1991
1992 2016-09-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
1993
1994 PR tree-optimization/77550
1995 * tree-vect-stmts.c (create_array_ref): Change parameters.
1996 (get_group_alias_ptr_type): New function.
1997 (vectorizable_store, vectorizable_load): Use get_group_alias_ptr_type.
1998
1999 2016-09-21 Marek Polacek <polacek@redhat.com>
2000
2001 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
2002 Add falls through comment.
2003
2004 2016-09-21 Richard Biener <rguenther@suse.de>
2005
2006 * dwarf2out.c (remove_child_with_prev): Clear child->die_sib.
2007 (replace_child): Likewise.
2008 (remove_child_TAG): Adjust.
2009 (move_marked_base_types): Likewise.
2010 (prune_unused_types_prune): Clear die_sib of removed children.
2011
2012 2016-09-21 Georg-Johann Lay <avr@gjlay.de>
2013
2014 PR target/77326
2015 * config/avr/avr.c (avr_notice_update_cc) [CC_NONE]: If insn
2016 touches some regs mentioned in cc_status, do CC_STATUS_INIT.
2017
2018 2016-09-21 Richard Biener <rguenther@suse.de>
2019
2020 PR tree-optimization/77648
2021 * tree-ssa-structalias.c (process_constraint): Handle all DEREF
2022 with complex RHS.
2023 (make_transitive_closure_constraints): Adjust comment.
2024 (make_any_offset_constraints): New function.
2025 (handle_rhs_call): Make sure to first expand a pointer to all
2026 subfields before transitively closing it.
2027 (handle_const_call): Likewise. Properly expand returned
2028 pointers as well.
2029 (handle_pure_call): Likewise.
2030
2031 2016-09-21 Richard Biener <rguenther@suse.de>
2032 Jakub Jelinek <jakub@redhat.com>
2033
2034 PR tree-optimization/77621
2035 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Split
2036 group at non-vectorizable stmts.
2037
2038 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2039
2040 PR tree-optimization/72835
2041 * tree-ssa-reassoc.c (make_new_ssa_for_def): New.
2042 (make_new_ssa_for_all_defs): Likewise.
2043 (zero_one_operation): Replace all SSA_NAMEs defined in the chain.
2044
2045 2016-09-20 Martin Sebor <msebor@redhat.com>
2046
2047 PR middle-end/49905
2048 * Makefile.in (OBJS): Add gimple-ssa-sprintf.o.
2049 * config/linux.h (TARGET_PRINTF_POINTER_FORMAT): Redefine.
2050 * config/linux.c (gnu_libc_printf_pointer_format): New function.
2051 * config/sol2.h (TARGET_PRINTF_POINTER_FORMAT): Same.
2052 * config/sol2.c (solaris_printf_pointer_format): New function.
2053 * doc/invoke.texi (-Wformat-length, -fprintf-return-value): New
2054 options.
2055 * doc/tm.texi.in (TARGET_PRINTF_POINTER_FORMAT): Document.
2056 * doc/tm.texi: Regenerate.
2057 * gimple-fold.h (get_range_strlen): New function.
2058 (get_maxval_strlen): Declare existing function.
2059 * gimple-fold.c (get_range_strlen): Add arguments and compute both
2060 maximum and minimum.
2061 (get_range_strlen): Define overload.
2062 (get_maxval_strlen): Adjust.
2063 * gimple-ssa-sprintf.c: New file and pass.
2064 * passes.def (pass_sprintf_length): Add new pass.
2065 * targhooks.h (default_printf_pointer_format): Declare new function.
2066 (gnu_libc_printf_pointer_format): Same.
2067 (solaris_libc_printf_pointer_format): Same.
2068 * targhooks.c (default_printf_pointer_format): Define new function.
2069 * tree-pass.h (make_pass_sprintf_length): Declare new function.
2070 * print-tree.c: Increase buffer size.
2071
2072 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2073
2074 * tree-vrp.c (get_value_range): Teach PARM_DECL to use ipa-vrp results.
2075
2076 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2077
2078 * common.opt: New option -fipa-vrp.
2079 * ipa-cp.c (ipa_get_vr_lat): New.
2080 (ipcp_vr_lattice::print): Likewise.
2081 (print_all_lattices): Call ipcp_vr_lattice::print.
2082 (ipcp_vr_lattice::meet_with): New.
2083 (ipcp_vr_lattice::meet_with_1): Likewise.
2084 (ipcp_vr_lattice::top_p): Likewise.
2085 (ipcp_vr_lattice::bottom_p): Likewsie.
2086 (ipcp_vr_lattice::set_to_bottom): Likewise.
2087 (set_all_contains_variable): Call VR set_to_bottom.
2088 (initialize_node_lattices): Init VR lattices.
2089 (propagate_vr_accross_jump_function): New.
2090 (propagate_constants_accross_call): Call
2091 propagate_vr_accross_jump_function.
2092 (ipcp_store_vr_results): New.
2093 (ipcp_driver): Handle VR.
2094 * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Handle VR.
2095 (ipa_set_jf_unknown): Likewise.
2096 (ipa_compute_jump_functions_for_edge): Likewise.
2097 (ipa_node_params_t::duplicate): Likewise.
2098 (ipa_write_jump_function): Likewise.
2099 (ipa_read_jump_function): Likewise.
2100 (write_ipcp_transformation_info): Likewise.
2101 (read_ipcp_transformation_info): Likewise.
2102 (ipcp_update_vr): New.
2103 (ipcp_transform_function): Handle VR.
2104 * ipa-prop.h (struct ipa_vr): New.
2105 * cgraph.c: Include tree-vrp.h.
2106 * cgraphunit.c: Likewise.
2107 * ipa-utils.c: Likewise.
2108 * ipa.c: Likewise.
2109 * opts.c: Likewise.
2110 * toplev.c: Likewise.
2111 * ipa-devirt.c: Likewise.
2112 * ipa-inline-transform.c: Likewise.
2113 * ipa-inline.c: Likewise.
2114 * ipa-profile.c: Likewise.
2115
2116 2016-09-21 Kugan Vivekanandarajah <kuganv@linaro.org>
2117
2118 * doc/invoke.texi: Document -fdump-tree-evrp.
2119 * passes.def: Define new pass_early_vrp.
2120 * timevar.def: Define new TV_TREE_EARLY_VRP.
2121 * tree-pass.h (make_pass_early_vrp): New.
2122 * tree-ssa-propagate.c: Make replace_uses_in non static.
2123 * tree-ssa-propagate.h: Export replace_uses_in.
2124 * tree-vrp.c (extract_range_for_var_from_comparison_expr): New.
2125 (extract_range_from_assert): Factor out
2126 extract_range_for_var_from_comparison_expr.
2127 (vrp_initialize_lattice): New.
2128 (vrp_initialize): Factor out vrp_initialize_lattice.
2129 (vrp_valueize): Fix it to reject complex value ranges.
2130 (vrp_free_lattice): New.
2131 (evrp_dom_walker::before_dom_children): Likewise.
2132 (evrp_dom_walker::after_dom_children): Likewise.
2133 (evrp_dom_walker::push_value_range): Likewise.
2134 (evrp_dom_walker::pop_value_range): Likewise.
2135 (execute_early_vrp): Likewise.
2136 (execute_vrp): Call vrp_initialize_lattice and vrp_free_lattice.
2137 (make_pass_early_vrp): New.
2138
2139 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
2140
2141 * config/i386/i386.md (mult->ashift peephole2s): Use pow2p_hwi
2142 instead of exact_log2.
2143
2144 2016-09-20 Uros Bizjak <ubizjak@gmail.com>
2145
2146 PR target/77621
2147 * config/i386/i386.c (ix86_preferred_simd_mode) <case DFmode>:
2148 Don't return word_mode for !TARGET_VECTORIZE_DOUBLE.
2149 (ix86_add_stmt_cost): Penalize DFmode vector operations
2150 for !TARGET_VECTORIZE_DOUBLE.
2151
2152 2016-09-20 Gerald Pfeifer <gerald@pfeifer.com>
2153
2154 * doc/invoke.texi (Warning Options): Simplify language.
2155 (Optimize Options): Complete sentence.
2156
2157 2016-09-20 David Edelsohn <dje.gcc@gmail.com>
2158
2159 * dbxout.c (xcoff_debug_hooks): Add filename parameter to
2160 early_finish hook.
2161
2162 2016-09-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2163
2164 PR target/71395
2165 * config/rs6000/rs6000.c (rs6000_expand_vector_init): For V4SF
2166 inits on power8 and above, use the VMRGEW instruction instead of a
2167 permute.
2168
2169 * config/rs6000/altivec.md (UNSPEC_VMRGEW_DIRECT): New unspec.
2170 (p8_vmrgew_v4sf_direct): New VMRGEW insn for V4SF floating
2171 initialization.
2172
2173 2016-09-20 Tamar Christina <tamar.christina@arm.com>
2174
2175 * config/aarch64/arm_neon.h
2176 (vst2_s64, vst2_u64, vst2_f64, vst2_s8): Add missing attributes.
2177 (vst3_s64, vst3_u64, vst3_f64, vst3_s8): Likewise.
2178 (vst4_s64, vst4_u64, vst4_f64, vst4_s8): Likewise.
2179
2180 2016-09-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
2181
2182 * config/var/vax.h (ELIMINABLE_REGS): Define.
2183 (INITIAL_ELIMINATION_OFFSET): Define.
2184
2185 2016-09-20 Jakub Jelinek <jakub@redhat.com>
2186
2187 PR middle-end/77624
2188 * builtins.c (fold_builtin_atomic_always_lock_free): Only look through
2189 cast to void * if the cast is from some other pointer type.
2190
2191 2016-09-20 Richard Biener <rguenther@suse.de>
2192
2193 PR tree-optimization/77646
2194 * tree-ssa-sccvn.c (visit_reference_op_call): Always value-number
2195 a VDEF.
2196
2197 2016-09-20 Tamar Christina <tamar.christina@arm.com>
2198
2199 * config/aarch64/arm_neon.h: Add gnu_inline and artificial
2200 attributes to all inlined functions and make them extern.
2201
2202 2016-09-20 Richard Biener <rguenther@suse.de>
2203
2204 * debug.h (gcc_debug_hooks): Add filename parameter to early_finish
2205 hook.
2206 * debug.c (do_nothing_debug_hooks): Adjust.
2207 * dbxout.c (dbx_debug_hooks): Likewise.
2208 * sdbout.c (sdb_debug_hooks): Likewise.
2209 * dwarf2out.c (dwarf2_lineno_debug_hooks): Likewise.
2210 (dwarf2out_finish): Move producer, filename and
2211 path annotation ...
2212 (dwarf2out_early_finish): ... here. Remove in_lto_p special-casing.
2213 * cgraphunit.c (symbol_table::finalize_compilation_unit): Adjust.
2214
2215 2016-09-19 Bernd Edlinger <bernd.edlinger@hotmail.de>
2216
2217 PR c++/77434
2218 * doc/invoke.texi: Document -Wint-in-bool-context.
2219
2220 PR middle-end/77421
2221 * dwarf2out.c (output_loc_operands): Fix an assertion.
2222
2223 2016-09-19 Joseph Myers <joseph@codesourcery.com>
2224
2225 * ginclude/float.h [__STDC_WANT_IEC_60559_BFP_EXT__]
2226 (CR_DECIMAL_DIG): New macro.
2227
2228 2016-09-19 Joseph Myers <joseph@codesourcery.com>
2229
2230 * ginclude/stddef.h (max_align_t) [__i386__]: Add __float128
2231 element.
2232
2233 2016-09-19 Vladimir Makarov <vmakarov@redhat.com>
2234
2235 PR rtl-optimization/77416
2236 * lra-remat.c (operand_to_remat): Process hard coded insn
2237 registers.
2238
2239 2016-09-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2240
2241 * simplify-rtx.c (simplify_relational_operation_1): Add transformation
2242 (GTU (PLUS a C) (C - 1)) --> (LTU a -C).
2243
2244 2016-09-19 Segher Boessenkool <segher@kernel.crashing.org>
2245
2246 * target.def (lra_p): Wordsmithing.
2247 * doc/tm.texi: Regenerate.
2248
2249 2016-09-19 Jakub Jelinek <jakub@redhat.com>
2250 Jan Hubicka <jh@suse.cz>
2251
2252 PR target/77587
2253 * cgraph.c (cgraph_node::rtl_info): Pass &avail to
2254 ultimate_alias_target call, return NULL if avail < AVAIL_AVAILABLE.
2255 Call ultimate_alias_target just once, not up to 4 times.
2256
2257 2016-09-19 Richard Biener <rguenther@suse.de>
2258
2259 * dwarf2out.c (early_dwarf_finished): New global.
2260 (set_early_dwarf::set_early_dwarf): Assert early_dwarf_finished
2261 is false.
2262 (dwarf2out_early_finish): Set early_dwarf_finished at the end,
2263 if called from LTO exit early.
2264 (dwarf2out_late_global_decl): When being during the early
2265 debug phase do not add locations but only const value attributes.
2266 Adjust the way we generate early DIEs for LTO.
2267
2268 2016-09-19 Richard Biener <rguenther@suse.de>
2269
2270 PR middle-end/77605
2271 * tree-data-ref.c (analyze_subscript_affine_affine): Use the
2272 proper niter to bound the loops.
2273
2274 2016-09-19 Richard Biener <rguenther@suse.de>
2275
2276 PR tree-optimization/77514
2277 * tree-ssa-pre.c (create_expression_by_pieces): Optimize
2278 search for folded stmt.
2279
2280 2016-09-17 Jan Hubicka <hubicka@ucw.cz>
2281
2282 * passes.def (pass_early_thread_jumps): Schedule after forwprop.
2283 * tree-pass.h (make_pass_early_thread_jumps): Declare.
2284 * tree-ssa-threadbackward.c (fsm_find_thread_path,
2285 fsm_find_thread_path, profitable_jump_thread_path,
2286 fsm_find_control_statement_thread_paths,
2287 find_jump_threads_backwards): Add speed_p parameter.
2288 (pass_data_early_thread_jumps): New pass.
2289 (make_pass_early_thread_jumps): New function.
2290
2291 2016-09-17 Andreas Schwab <schwab@suse.de>
2292
2293 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Add cast.
2294 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2295
2296 2016-09-16 Eric Botcazou <ebotcazou@adacore.com>
2297
2298 * recog.c (rest_of_handle_split_after_reload): Delete.
2299 (pass_split_after_reload::gate): New method.
2300 (pass_split_after_reload::execute): Call split_all_insns directly.
2301
2302 2016-09-16 Jonathan Wakely <jwakely@redhat.com>
2303
2304 * doc/extend.texi (Integer Overflow Builtins): Fix type of out
2305 parameters for functions taking long long arguments.
2306
2307 2016-09-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2308
2309 PR target/77613
2310 * config/rs6000/rs6000.c (rtx_is_swappable_p): Add support for
2311 splat with truncate.
2312
2313 2016-09-16 Jason Merrill <jason@redhat.com>
2314
2315 * hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
2316 New.
2317 * hwint.c (exact_log2): Use pow2p_hwi.
2318 (ctz_hwi, ffs_hwi): Use least_bit_hwi.
2319 * alias.c (memrefs_conflict_p): Use pow2_or_zerop.
2320 * builtins.c (get_object_alignment_2, get_object_alignment)
2321 (get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
2322 least_bit_hwi.
2323 * calls.c (compute_argument_addresses, store_one_arg): Use
2324 least_bit_hwi.
2325 * cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
2326 * combine.c (force_to_mode): Use least_bit_hwi.
2327 (contains_muldiv, find_split_point, combine_simplify_rtx)
2328 (simplify_if_then_else, simplify_set, force_to_mode)
2329 (if_then_else_cond, simplify_and_const_int_1)
2330 (simplify_compare_const): Use pow2p_hwi.
2331 * cse.c (fold_rtx): Use pow2p_hwi.
2332 * emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
2333 Use least_bit_hwi.
2334 * expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
2335 (init_expmed_one_conv): Use pow2p_hwi.
2336 * expr.c (is_aligning_offset): Use pow2p_hwi.
2337 * fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
2338 (fold_binary_loc): Use pow2p_hwi.
2339 * function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
2340 * gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
2341 * gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
2342 * hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
2343 Use least_bit_hwi.
2344 * ifcvt.c (noce_try_store_flag_constants): Use pow2p_hwi.
2345 * ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
2346 * ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
2347 * omp-low.c (oacc_loop_fixed_partitions)
2348 (oacc_loop_auto_partitions): Use least_bit_hwi.
2349 * rtlanal.c (nonzero_bits1): Use ctz_or_zero.
2350 * stor-layout.c (place_field): Use least_bit_hwi.
2351 * tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
2352 * tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
2353 * tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
2354 * tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
2355 * tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
2356 * tree-vect-data-refs.c (vect_analyze_group_access_1)
2357 (vect_grouped_store_supported, vect_grouped_load_supported)
2358 (vect_permute_load_chain, vect_shift_permute_load_chain)
2359 (vect_transform_grouped_load): Use pow2p_hwi.
2360 * tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
2361 * tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
2362 * tree-vect-stmts.c (vectorizable_mask_load_store): Use
2363 least_bit_hwi.
2364 * tsan.c (instrument_expr): Use least_bit_hwi.
2365 * var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
2366
2367 2016-09-16 Andreas Schwab <schwab@suse.de>
2368
2369 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use parameter
2370 OFFSET, not offset.
2371 * config/i386/cygming.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2372
2373 2016-09-16 Jakub Jelinek <jakub@redhat.com>
2374
2375 PR target/77526
2376 * combine.c (rest_of_handle_combine): If any edges have been purged,
2377 free dominators if available.
2378
2379 2016-09-16 Jakub Jelinek <jakub@redhat.com>
2380 Eric Botcazou <ebotcazou@adacore.com>
2381
2382 PR middle-end/77594
2383 * internal-fn.c (expand_arith_overflow) <case MINUS_EXPR>: Don't fall
2384 through into expand_addsub_overflow after expand_neg_overflow.
2385
2386 2016-09-15 David Malcolm <dmalcolm@redhat.com>
2387
2388 * diagnostic-show-locus.c
2389 (selftest::test_fixit_insert_containing_newline): New function.
2390 (selftest::test_fixit_replace_containing_newline): New function.
2391 (selftest::diagnostic_show_locus_c_tests): Call the above.
2392
2393 2016-09-15 Bin Cheng <bin.cheng@arm.com>
2394
2395 PR tree-optimization/77503
2396 * tree-vect-loop.c (vectorizable_reduction): Record reduction
2397 code for CONST_COND_REDUCTION at analysis stage and use it at
2398 transform stage.
2399 * tree-vectorizer.h (struct _stmt_vec_info): New field.
2400 (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): New macro.
2401 * tree-vect-stmts.c (new_stmt_vec_info): Initialize above new
2402 field.
2403
2404 2016-09-15 Richard Biener <rguenther@suse.de>
2405
2406 PR middle-end/77544
2407 * fold-const.c (split_tree): Do not split constant ~X.
2408
2409 2016-09-15 Jakub Jelinek <jakub@redhat.com>
2410
2411 PR rtl-optimization/77425
2412 * sched-int.h (sd_iterator_cond): Don't update it_ptr->linkp if list
2413 is NULL.
2414
2415 PR middle-end/77475
2416 * config/i386/i386.c (ix86_parse_stringop_strategy_string): Simplify,
2417 use %qs instead of %s where desirable, use argument instead of arg in
2418 the diagnostic wording, add list of supported strategies and
2419 spellcheck hint.
2420 (ix86_option_override_internal): Emit target("m...") instead of
2421 option("m...") in the diagnostic. Use %qs instead of %s in invalid
2422 -march/-mtune option diagnostic. Add list of supported arches/tunings
2423 and spellcheck hint. Remove prefix, suffix and sw variables, use
2424 main_args_p ? "..." : "..." in diagnostics to make translation
2425 possible.
2426
2427 2016-09-15 Richard Biener <rguenther@suse.de>
2428
2429 * dwarf2asm.h (dw2_asm_output_offset): Add overload with
2430 extra offset argument.
2431 * dwarf2asm.c (dw2_asm_output_offset): Implement that.
2432 * doc/tm.texi.in (ASM_OUTPUT_DWARF_OFFSET): Adjust documentation
2433 to reflect new offset parameter.
2434 * doc/tm.texi: Regenerate.
2435 * config/darwin.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
2436 * config/darwin-protos.h (darwin_asm_output_dwarf_delta): Add
2437 offset argument.
2438 (darwin_asm_output_dwarf_offset): Likewise.
2439 * config/darwin.c (darwin_asm_output_dwarf_delta): Add offset
2440 argument.
2441 (darwin_asm_output_dwarf_offset): Pass offset argument through.
2442 * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Adjust.
2443 * config/i386/cygmin.h (ASM_OUTPUT_DWARF_OFFSET): Likewise.
2444
2445 2016-09-15 Chung-Lin Tang <cltang@codesourcery.com>
2446
2447 PR fortran/72743
2448 * ipa-icf.c (set_alias_uids): New function.
2449 (sem_variable::merge): Use set_alias_uids to set DECL_PT_UID of
2450 all the merged variable's referring aliases.
2451
2452 2016-09-15 Richard Biener <rguenther@suse.de>
2453
2454 PR tree-optimization/77514
2455 * tree-ssa-pre.c (create_expression_by_pieces): Handle garbage
2456 only forced_stmts sequence.
2457
2458 2016-09-15 Kugan Vivekanandarajah <kuganv@linaro.org>
2459
2460 * tree-ssanames.h (FOR_EACH_SSA_NAME): New.
2461 * cfgexpand.c (update_alias_info_with_stack_vars): Use
2462 FOR_EACH_SSA_NAME to iterate over SSA variables.
2463 (pass_expand::execute): Likewise.
2464 * omp-simd-clone.c (ipa_simd_modify_function_body): Likewise.
2465 * tree-cfg.c (dump_function_to_file): Likewise.
2466 * tree-into-ssa.c (pass_build_ssa::execute): Likewise.
2467 (update_ssa): Likewise.
2468 * tree-ssa-alias.c (dump_alias_info): Likewise.
2469 * tree-ssa-ccp.c (ccp_finalize): Likewise.
2470 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
2471 (create_outofssa_var_map): Likewise.
2472 (coalesce_ssa_name): Likewise.
2473 * tree-ssa-operands.c (dump_immediate_uses): Likewise.
2474 * tree-ssa-pre.c (compute_avail): Likewise.
2475 * tree-ssa-sccvn.c (init_scc_vn): Likewise.
2476 (scc_vn_restore_ssa_info): Likewise.
2477 (free_scc_vn): Likwise.
2478 (run_scc_vn): Likewise.
2479 * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
2480 * tree-ssa-ter.c (new_temp_expr_table): Likewise.
2481 * tree-ssa-copy.c (fini_copy_prop): Likewise.
2482 * tree-ssa.c (verify_ssa): Likewise.
2483
2484 2016-09-14 Matthew Fortune <matthew.fortune@imgtec.com>
2485
2486 * config.gcc (mips*-mti-elf*, mips*-mti-linux*): Set mips32r2
2487 and mips64r2 as default 32-bit and 64-bit architectures.
2488 (mips*-img-elf*, mips*-img-linux*): Set mips32r6 and mips64r6
2489 as default 32-bit and 64-bit architectures.
2490
2491 2016-09-14 Pat Haugen <pthaugen@us.ibm.com>
2492
2493 * loop-unroll.c (unroll_loop_runtime_iterations): Set probability
2494 of succ edge.
2495
2496 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2497
2498 * target.def (lra_p): Change commentary (for the manual) for the
2499 new default.
2500 * doc/tm.texi: Regenerate.
2501
2502 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2503
2504 * config/aarch64/aarch64.c (TARGET_LRA_P): Delete macro.
2505 * config/arm/arm.c (TARGET_LRA_P): Delete macro.
2506 * config/i386/i386.c (TARGET_LRA_P): Delete macro.
2507 * config/nds32/nds32.c (TARGET_LRA_P): Delete macro.
2508
2509 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2510
2511 * targhooks.c (default_lra_p): Return true instead of false.
2512
2513 2016-09-14 Segher Boessenkool <segher@kernel.crashing.org>
2514
2515 * config/alpha/alpha.c (TARGET_LRA_P): New macro, defined to
2516 hook_bool_void_false.
2517 * config/avr/avr.c: Ditto.
2518 * config/bfin/bfin.c: Ditto.
2519 * config/c6x/c6x.c: Ditto.
2520 * config/cr16/cr16.c: Ditto.
2521 * config/cris/cris.c: Ditto.
2522 * config/epiphany/epiphany.c: Ditto.
2523 * config/fr30/fr30.c: Ditto.
2524 * config/frv/frv.c: Ditto.
2525 * config/h8300/h8300.c: Ditto.
2526 * config/ia64/ia64.c: Ditto.
2527 * config/iq2000/iq2000.c: Ditto.
2528 * config/lm32/lm32.c: Ditto.
2529 * config/m32c/m32c.c: Ditto.
2530 * config/m32r/m32r.c: Ditto.
2531 * config/m68k/m68k.c: Ditto.
2532 * config/mcore/mcore.c: Ditto.
2533 * config/microblaze/microblaze.c: Ditto.
2534 * config/mmix/mmix.c: Ditto.
2535 * config/mn10300/mn10300.c: Ditto.
2536 * config/moxie/moxie.c: Ditto.
2537 * config/msp430/msp430.c: Ditto.
2538 * config/nios2/nios2.c: Ditto.
2539 * config/nvptx/nvptx.c: Ditto.
2540 * config/pa/pa.c: Ditto.
2541 * config/pdp11/pdp11.c: Ditto.
2542 * config/rl78/rl78.c: Ditto.
2543 * config/sparc/sparc.c: Ditto.
2544 * config/spu/spu.c: Ditto.
2545 * config/stormy16/stormy16.c: Ditto.
2546 * config/tilegx/tilegx.c: Ditto.
2547 * config/tilepro/tilepro.c: Ditto.
2548 * config/v850/v850.c: Ditto.
2549 * config/vax/vax.c: Ditto.
2550 * config/visium/visium.c: Ditto.
2551 * config/xtensa/xtensa.c: Ditto.
2552
2553 2016-09-14 Jakub Jelinek <jakub@redhat.com>
2554
2555 PR sanitizer/68260
2556 * tsan.c: Include target.h.
2557 (enum tsan_atomic_action): Add bool_clear and bool_test_and_set.
2558 (BOOL_CLEAR, BOOL_TEST_AND_SET): Define.
2559 (tsan_atomic_table): Add BUILT_IN_ATOMIC_CLEAR and
2560 BUILT_IN_ATOMIC_TEST_AND_SET entries.
2561 (instrument_builtin_call): Handle bool_clear and bool_test_and_set.
2562
2563 2016-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
2564 Martin Liska <mliska@suse.cz>
2565
2566 PR middle-end/77574
2567 * predict.c (force_edge_cold): Add braces to a condition.
2568
2569 2016-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
2570
2571 PR rtl-optimization/77289
2572 * lra-constraints.c (get_final_hard_regno): Removed.
2573 (get_hard_regno): Add new parameter final_p.
2574 (get_reg_class): Directly call lra_get_elimination_hard_regno.
2575 (operands_match_p): Adjust call to get_hard_regno.
2576 (uses_hard_regs_p): Likewise.
2577 (process_alt_operands): Likewise.
2578
2579 2016-09-13 Joe Seymour <joe.s@somniumtech.com>
2580
2581 PR target/70713
2582 * config/msp430/msp430.c (msp430_start_function): Emit an error
2583 if a function is both weak and specifies an interrupt number.
2584
2585 2016-09-13 Jakub Jelinek <jakub@redhat.com>
2586
2587 PR tree-optimization/77454
2588 * tree-ssa-dom.c (optimize_stmt): Set modified flag on stmt after
2589 changing GIMPLE_COND. Move update_stmt_if_modified call after this.
2590 Formatting fix.
2591
2592 2016-09-13 Tamar Christina <tamar.christina@arm.com>
2593
2594 * config/aarch64/aarch64-builtins.c
2595 (aarch64_init_simd_builtins): Fix builtin type signature printing.
2596
2597 2016-09-13 Uros Bizjak <ubizjak@gmail.com>
2598
2599 * config/alpha/alpha.c (alpha_pass_by_reference): Pass un-named
2600 SFmode and SCmode arguments by reference.
2601
2602 2016-09-13 David Malcolm <dmalcolm@redhat.com>
2603
2604 * diagnostic-show-locus.c (selftest::test_one_liner_fixit_insert):
2605 Rename to...
2606 (selftest::test_one_liner_fixit_insert_before): ...this, and update
2607 for renaming of add_fixit_insert to add_fixit_insert_before.
2608 (selftest::test_one_liner_fixit_insert_after): New function.
2609 (selftest::test_one_liner_fixit_validation_adhoc_locations):
2610 Update for renaming of add_fixit_insert to add_fixit_insert_before.
2611 (selftest::test_one_liner_many_fixits): Likewise.
2612 (selftest::test_diagnostic_show_locus_one_liner): Update for
2613 renaming, call new test function.
2614 (selftest::test_diagnostic_show_locus_fixit_lines): Update for
2615 renaming of add_fixit_insert to add_fixit_insert_before.
2616 (selftest::test_fixit_consolidation): Likewise.
2617 * diagnostic.c (selftest::test_print_parseable_fixits_insert):
2618 Likewise.
2619 * edit-context.c (selftest::test_applying_fixits_insert): Rename to...
2620 (selftest::test_applying_fixits_insert_before): ...this.
2621 (selftest::test_applying_fixits_insert): Update for renaming of
2622 add_fixit_insert to add_fixit_insert_before.
2623 (selftest::test_applying_fixits_insert_after): New function.
2624 (selftest::test_applying_fixits_insert_after_at_line_end): New
2625 function.
2626 (selftest::test_applying_fixits_insert_after_failure): New function.
2627 (selftest::test_applying_fixits_multiple): Update for renaming of
2628 add_fixit_insert to add_fixit_insert_before.
2629 (selftest::change_line): Likewise.
2630 (selftest::test_applying_fixits_unreadable_file): Likewise.
2631 (selftest::test_applying_fixits_line_out_of_range): Likewise.
2632 (selftest::test_applying_fixits_column_validation): Likewise.
2633 (selftest::test_applying_fixits_column_validation): Likewise.
2634 (selftest::edit_context_c_tests): Update for renamed test function;
2635 call new test functions.
2636
2637 2016-09-13 Pat Haugen <pthaugen@us.ibm.com>
2638
2639 PR tree-optimization/77536
2640 PR rtl-optimization/68212
2641 * config/rs6000/rs6000.md (div->recip splitter): Remove
2642 optimize_insn_for_speed_p condition.
2643
2644 2016-09-13 Maciej W. Rozycki <macro@imgtec.com>
2645
2646 * optabs.c (prepare_cmp_insn): Update documentation comment.
2647
2648 2016-09-13 Jakub Jelinek <jakub@redhat.com>
2649 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
2650
2651 PR middle-end/77475
2652 * opts.h (candidates_list_and_hint): Declare.
2653 * opts-common.c (candidates_list_and_hint): New function.
2654 (cmdline_handle_error): Use it.
2655
2656 2016-09-12 David Malcolm <dmalcolm@redhat.com>
2657
2658 * edit-context.c (edited_line::get_len): New accessor.
2659 (edited_file::print_diff): Split out hunk-printing into...
2660 (edited_file::print_diff_hunk): New method.
2661 (edited_file::print_diff_line): New method.
2662
2663 2016-09-12 Andrew Pinski <apinski@cavium.com>
2664
2665 * config/aarch64/aarch64-tuning-flags.def (SLOW_UNALIGNED_LDPW):
2666 New tuning option.
2667 * config/aarch64/aarch64.c (thunderx_tunings): Enable
2668 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW.
2669 (aarch64_operands_ok_for_ldpstp): Return false if
2670 AARCH64_EXTRA_TUNE_SLOW_UNALIGNED_LDPW and the mode
2671 was SImode and the alignment is less than 8 byte.
2672 (aarch64_operands_adjust_ok_for_ldpstp): Likewise.
2673
2674 2016-09-12 Orlando Arias <oarias@knights.ucf.edu>
2675
2676 PR target/77570
2677 * config/msp430/msp430.md (delay_cycles_32x): Fix pushm/popm.
2678
2679 2016-09-12 Marek Polacek <polacek@redhat.com>
2680
2681 * doc/extend.texi: Use lowercase "boolean".
2682 * doc/invoke.texi: Likewise.
2683 * doc/md.texi: Likewise.
2684 * target.def: Likewise.
2685 * doc/tm.texi: Regenerated.
2686
2687 2016-09-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2688
2689 PR middle-end/77426
2690 * expmed.c (synth_mult): Delete duplicate mode check.
2691
2692 2016-09-10 Tom de Vries <tom@codesourcery.com>
2693
2694 PR C/71602
2695 * builtins.c (std_canonical_va_list_type): Strictly return non-null for
2696 va_list type only.
2697 * config/i386/i386.c (ix86_canonical_va_list_type): Same.
2698 * gimplify.c (gimplify_va_arg_expr): Handle &va_list.
2699
2700 2016-09-09 Peter Bergner <bergner@vnet.ibm.com>
2701
2702 PR rtl-optimization/77289
2703 * lra-constraints.c (get_final_hard_regno): Add support for non hard
2704 register numbers. Remove support for subregs.
2705 (get_hard_regno): Use SUBREG_P. Don't call get_final_hard_regno().
2706 (get_reg_class): Delete removed get_final_hard_regno() argument.
2707 (uses_hard_regs_p): Call get_final_hard_regno().
2708
2709 2016-09-09 Martin Sebor <msebor@redhat.com>
2710
2711 PR c/77520
2712 PR c/77521
2713 * pretty-print.c (pp_quoted_string): New function.
2714 (pp_format): Call it for %c and %s directives.
2715
2716 2016-09-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
2717
2718 * doc/tm.texi.in (INITIAL_FRAME_POINTER_OFFSET): Remove.
2719 (ELIMINABLE_REGS, TARGET_CAN_ELIMINATE,
2720 INITIAL_ELIMINATION_OFFSET) : Update documentation.
2721 * target.def (frame_pointer_required, can_eliminate): Likewise.
2722 * doc/tm.texi: Regenerated.
2723 * builtins.c (expand_builtin_setjmp_receiver): Remove #ifdef
2724 ELIMINABLE_REGS.
2725 * df-scan.c (df_hard_reg_init): Likewise.
2726 * ira.c (ira_setup_eliminable_regset): Likewise.
2727 * lra-eliminations.c (reg_eliminate_1, (update_reg_eliminate,
2728 init_elim_table): Likewise.
2729 * reload1.c (reg_eliminate_1, verify_initial_elim_offsets,
2730 set_initial_elim_offsets, update_eliminables,
2731 init_elim_table): Likewise.
2732 * rtlanal.c (get_initial_register_offset): Likewise.
2733 * config/ft32/ft32.h (INITIAL_FRAME_POINTER_OFFSET): Remove.
2734 * config/m32r/m32r.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2735 * config/moxie/moxie.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2736 * config/vax/vax.h (INITIAL_FRAME_POINTER_OFFSET): Likewise.
2737 * config/fr30/fr30.h: Fix comment.
2738 * config/frv/frv.c: Likewise.
2739 * config/frv/frv.h: Likewise.
2740 * config/ft32/ft32.h: Likewise.
2741 * config/visium/visium.h: Likewise.
2742 * config/pa/pa64-linux.h: Likewise.
2743 * config/v850/v850.h: Likewise.
2744 * config/cris/cris.c: Likewise.
2745 * config/ia64/ia64.h: Likewise.
2746 * config/moxie/moxie.h: Likewise.
2747 * config/m32r/m32r.h: Likewise.
2748
2749 2016-09-10 Alexander Ivchenko <alexander.ivchenko@intel.com>
2750
2751 PR target/77267
2752 * config.in: Regenerate.
2753 * config/i386/linux-common.h (MPX_LD_AS_NEEDED_GUARD_PUSH):
2754 New macro.
2755 (MPX_LD_AS_NEEDED_GUARD_PUSH): Ditto.
2756 (LIBMPXWRAPPERS_SPEC): Remove "--no-whole-archive" from
2757 static-libmpxwrappers case.
2758 (LIBMPX_SPEC): Add guards with MPX_LD_AS_NEEDED_GUARD_PUSH and
2759 MPX_LD_AS_NEEDED_GUARD_POP.
2760 * configure: Regenerate.
2761 * configure.ac (HAVE_LD_PUSHPOPSTATE_SUPPORT): New variable.
2762 defined if linker support "--push-state"/"--pop-state".
2763
2764 2016-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de>
2765
2766 * doc/cpp.texi (__*_WIDTH__): Small wording fixes.
2767
2768 2016-09-09 Joseph Myers <joseph@codesourcery.com>
2769
2770 * doc/cpp.texi (__SCHAR_WIDTH__, __SHRT_WIDTH__, __INT_WIDTH__)
2771 (__LONG_WIDTH__, __LONG_LONG_WIDTH__, __PTRDIFF_WIDTH__)
2772 (__SIG_ATOMIC_WIDTH__, __SIZE_WIDTH__, __WCHAR_WIDTH__)
2773 (__WINT_WIDTH__, __INT_LEAST8_WIDTH__, __INT_LEAST16_WIDTH__)
2774 (__INT_LEAST32_WIDTH__, __INT_LEAST64_WIDTH__)
2775 (__INT_FAST8_WIDTH__, __INT_FAST16_WIDTH__, __INT_FAST32_WIDTH__)
2776 (__INT_FAST64_WIDTH__, __INTPTR_WIDTH__, __INTMAX_WIDTH__):
2777 Document.
2778 * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Define
2779 width macros from TS 18661-1.
2780 * glimits.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Likewise.
2781
2782 2016-09-08 Jakub Jelinek <jakub@redhat.com>
2783
2784 PR fortran/77516
2785 * omp-low.c (lower_rec_simd_input_clauses): Use max_vf for non-positive
2786 OMP_CLAUSE_SAFELEN_EXPR.
2787
2788 2016-09-07 David Malcolm <dmalcolm@redhat.com>
2789
2790 * Makefile.in (OBJS): Add substring-locations.o.
2791 * langhooks-def.h (class substring_loc): New forward decl.
2792 (lhd_get_substring_location): New decl.
2793 (LANG_HOOKS_GET_SUBSTRING_LOCATION): New macro.
2794 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_GET_SUBSTRING_LOCATION.
2795 * langhooks.c (lhd_get_substring_location): New function.
2796 * langhooks.h (class substring_loc): New forward decl.
2797 (struct lang_hooks): Add field get_substring_location.
2798 * substring-locations.c: New file, taking definition of
2799 format_warning_va and format_warning_at_substring from
2800 c-family/c-format.c, making them non-static.
2801 * substring-locations.h (class substring_loc): Move class here
2802 from c-family/c-common.h. Add and rewrite comments.
2803 (format_warning_va): New decl.
2804 (format_warning_at_substring): New decl.
2805 (get_source_location_for_substring): Add comment.
2806
2807 2016-09-07 Eric Gallager <egall@gwmail.gwu.edu>
2808
2809 * config/i386/i386.c: Add 'U' suffix to processor feature bits
2810 to avoid -Wnarrowing warning.
2811 * config/i386/x86-tune.def: Likewise for DEF_TUNE selector bitmasks.
2812 * opts.c: Likewise for SANITIZER_OPT bitmasks.
2813
2814 2016-09-07 Wilco Dijkstra <wdijkstr@arm.com>
2815
2816 * config/aarch64/aarch64.c (aarch64_legitimize_address):
2817 Avoid use of base_offset if offset already in range.
2818
2819 2016-09-07 Kaz Kojima <kkojima@gcc.gnu.org>
2820
2821 * config/sh/sh-protos.h (struct sh_atomic_model,
2822 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
2823 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
2824 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): Move to...
2825 * config/sh/sh.h (struct sh_atomic_model,
2826 selected_atomic_model, TARGET_ATOMIC_ANY, TARGET_ATOMIC_STRICT,
2827 TARGET_ATOMIC_SOFT_GUSA, TARGET_ATOMIC_HARD_LLCS,
2828 TARGET_ATOMIC_SOFT_TCB, TARGET_ATOMIC_SOFT_IMASK): ...here.
2829 Guard with __cplusplus.
2830
2831 2016-09-06 Jakub Jelinek <jakub@redhat.com>
2832
2833 PR target/69255
2834 * config/i386/i386.c (ix86_expand_builtin): For builtin with
2835 unsupported or unknown ISA, use expand_call.
2836
2837 2016-09-06 Martin Liska <mliska@suse.cz>
2838
2839 PR gcov-profile/77378
2840 PR gcov-profile/77466
2841 * tree-profile.c (tree_profiling): Detect whether target can use
2842 -fprofile-update=atomic.
2843
2844 2016-09-06 Richard Biener <rguenther@suse.de>
2845
2846 PR tree-optimization/77479
2847 * tree-vrp.c (update_value_range): Extend overflow handling to
2848 VARYING.
2849
2850 2016-09-05 Jakub Jelinek <jakub@redhat.com>
2851
2852 PR target/77476
2853 * config/i386/i386.md (isa): Add x64_avx512bw.
2854 (*zero_extendsidi2): For alternative 11 use x64_avx512bw isa.
2855 (kmov_isa): New mode attr.
2856 (zero_extend<mode>di2): Use <kmov_isa> isa for the last alternative.
2857 (*zero_extend<mode>si2): Likewise.
2858 (*zero_extendqihi2): Use avx512dq isa for the last alternative.
2859
2860 2016-09-05 Gerald Pfeifer <gerald@pfeifer.com>
2861
2862 * doc/invoke.texi (SPU Options): nops -> NOPs.
2863 (x86 Options): Ditto.
2864
2865 2016-09-05 Jakub Jelinek <jakub@redhat.com>
2866
2867 PR middle-end/77475
2868 * toplev.c (process_options): Temporarily set input_location
2869 to UNKNOWN_LOCATION around targetm.target_option.override () call.
2870
2871 2016-09-05 Uros Bizjak <ubizjak@gmail.com>
2872
2873 PR rtl-optimization/77452
2874 * explow.c (plus_constant) <case MEM>: Extract scalar constant from
2875 inner-mode reference to a CONST_VECTOR constant in the constant pool.
2876
2877 2016-09-05 Marek Polacek <polacek@redhat.com>
2878
2879 PR c/77423
2880 * doc/invoke.texi: Update -Wlogical-not-parentheses documentation.
2881
2882 2016-09-05 Jakub Jelinek <jakub@redhat.com>
2883
2884 PR other/77421
2885 * gensupport.c (alter_output_for_subst_insn): Remove redundant
2886 *insn_out == '*' test. Don't copy unnecessary to yet another
2887 memory buffer, and don't leak it.
2888
2889 PR rtl-optimization/77425
2890 * ipa-devirt.c (get_odr_type): Set val->id unconditionally.
2891
2892 2016-09-03 Kirill Yukhin <kirill.yukhin@intel.com>
2893
2894 * ubsan.c (ubsan_use_new_style_p): Fix check for empty string.
2895
2896 2016-09-02 David Malcolm <dmalcolm@redhat.com>
2897
2898 * common.opt (fdiagnostics-generate-patch): New option.
2899 * diagnostic.c: Include "edit-context.h".
2900 (diagnostic_initialize): Initialize context->edit_context_ptr.
2901 (diagnostic_finish): Delete context->edit_context_ptr.
2902 (diagnostic_report_diagnostic): Add fix-it hints from the
2903 diagnostic to context->edit_context_ptr, if any.
2904 * diagnostic.h (class edit_context): Add forward decl.
2905 (struct diagnostic_context): Add field "edit_context_ptr".
2906 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
2907 -fdiagnostics-generate-patch.
2908 (-fdiagnostics-generate-patch): New item.
2909 * toplev.c: Include "edit-context.h".
2910 (process_options): Set global_dc->edit_context_ptr to a new
2911 edit_context if the options need one.
2912 (toplev::main): Handle -fdiagnostics-generate-patch by using
2913 global_dc->edit_context_ptr.
2914
2915 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2916
2917 PR c/65467
2918 * gimplify.c (gimplify_adjust_omp_clauses_1): Diagnose implicit
2919 map and firstprivate clauses on target construct for _Atomic
2920 qualified decls.
2921 (gimplify_adjust_omp_clauses): Diagnose explicit firstprivate clauses
2922 on target construct for _Atomic qualified decls.
2923 * omp-low.c (use_pointer_for_field): Return true for _Atomic qualified
2924 decls.
2925 * omp-simd-clone.c (simd_clone_clauses_extract): Warn and give up for
2926 _Atomic qualified arguments not mentioned in uniform clause.
2927
2928 2016-09-02 David Malcolm <dmalcolm@redhat.com>
2929
2930 * Makefile.in (OBJS-libcommon): Add edit-context.o.
2931 * diagnostic-color.c (color_dict): Add "diff-filename",
2932 "diff-hunk", "diff-delete", and "diff-insert".
2933 (parse_gcc_colors): Update default value of GCC_COLORS in comment
2934 to reflect above changes.
2935 * doc/invoke.texi (-fdiagnostics-color): Update description of
2936 default GCC_COLORS, and of the supported capabilities.
2937 * edit-context.c: New file.
2938 * edit-context.h: New file.
2939 * input.c (struct fcache): Add field "missing_trailing_newline".
2940 (diagnostics_file_cache_forcibly_evict_file): Initialize it to
2941 true.
2942 (add_file_to_cache_tab): Likewise.
2943 (fcache::fcache): Likewise.
2944 (get_next_line): Update c->missing_trailing_newline.
2945 (location_missing_trailing_newline): New function.
2946 * input.h (location_missing_trailing_newline): New decl.
2947 * selftest-run-tests.c (selftest::run_tests): Call
2948 edit_context_c_tests.
2949 * selftest.h (edit_context_c_tests): New decl.
2950
2951 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2952 Richard Biener <rguenth@suse.de>
2953
2954 PR tree-optimization/77444
2955 * tree-ssa-loop-ivopts.c (cand_value_at): For pointers use sizetype
2956 as steptype, remove redundant initialization.
2957
2958 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2959
2960 PR sanitizer/77396
2961 * sanopt.c: Include gimple-ssa.h, tree-phinodes.h and ssa-iterators.h.
2962 (sanopt_optimize_walker): Optimize away
2963 __asan_before_dynamic_init (...) followed by
2964 __asan_after_dynamic_init () without intervening memory loads/stores.
2965 * ipa-pure-const.c (special_builtin_state): Handle
2966 BUILT_IN_ASAN_BEFORE_DYNAMIC_INIT and
2967 BUILT_IN_ASAN_AFTER_DYNAMIC_INIT.
2968
2969 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2970
2971 * cfg.c (free_original_copy_tables): Replace second assignment of
2972 bb_copy = NULL by bb_original = NULL.
2973
2974 2016-09-02 Jakub Jelinek <jakub@redhat.com>
2975
2976 PR other/77421
2977 * config/i386/i386.c (ix86_expanded_args_builtin): Remove redundant
2978 assignment added in r216794.
2979
2980 2016-09-02 David Malcolm <dmalcolm@redhat.com>
2981
2982 * Makefile.in (OBJS): Add typed-splay-tree.o.
2983 * selftest-run-tests.c (selftest::run_tests): Call
2984 typed_splay_tree_c_tests.
2985 * selftest.h (typed_splay_tree_c_tests): New decl.
2986 * typed-splay-tree.c: New file.
2987 * typed-splay-tree.h (typed_splay_tree::foreach_fn): New typedef.
2988 (typed_splay_tree::max): New method.
2989 (typed_splay_tree::min): New method.
2990 (typed_splay_tree::foreach): New method.
2991 (typed_splay_tree::closure): New struct.
2992 (typed_splay_tree::inner_foreach_fn): New function.
2993
2994 2016-09-02 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2995
2996 * ipa-cp.c (ipcp_store_bits_results): Change option name from
2997 -fipa-cp-bit to -fipa-bit-cp.
2998
2999 2016-09-01 Martin Sebor <msebor@redhat.com>
3000
3001 PR tree-optimization/71831
3002 * tree-object-size.h: Return bool instead of the size and add
3003 argument for the size.
3004 * tree-object-size.c (compute_object_offset): Update signature.
3005 (addr_object_size): Same.
3006 (compute_builtin_object_size): Return bool instead of the size
3007 and add argument for the size. Handle POINTER_PLUS_EXPR when
3008 optimization is disabled.
3009 (expr_object_size): Adjust.
3010 (plus_stmt_object_size): Adjust.
3011 (pass_object_sizes::execute): Adjust.
3012 * builtins.c (fold_builtin_object_size): Adjust.
3013 * doc/extend.texi (Object Size Checking): Update.
3014 * ubsan.c (instrument_object_size): Adjust.
3015
3016 2016-09-01 Martin Sebor <msebor@redhat.com>
3017
3018 * genmatch.c (parser::parse_expr): Increase buffer size to guarantee
3019 it fits the output of the formatted function regardless of its
3020 arguments.
3021 * gcc/genmodes.c (parser::parse_expr): Same.
3022 * gimplify.c (gimplify_asm_expr): Same.
3023 * passes.c (pass_manager::register_one_dump_file): Same.
3024 * print-tree.c (print_node): Same.
3025
3026 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3027
3028 * config/rs6000/altivec.md: Use VSCR_REGNO instead of 110 throughout.
3029
3030 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3031
3032 * config/rs6000/altivec.md: Use VRSAVE_REGNO instead of 109 throughout.
3033
3034 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3035
3036 * config/rs6000/altivec.md: Use CR6_REGNO instead of 74 throughout.
3037 * config/rs6000/vector.md: Ditto.
3038 * config/rs6000/vsx.md: Ditto.
3039
3040 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3041
3042 * ipa-inline-analysis.c (param_change_prob): Get to the base object
3043 first in all cases.
3044
3045 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3046
3047 * config/rs6000/rs6000.md (*restore_gpregs_<mode>_r11,
3048 *restore_gpregs_<mode>_r12, *restore_gpregs_<mode>_r1,
3049 *return_and_restore_gpregs_<mode>_r11,
3050 *return_and_restore_gpregs_<mode>_r12,
3051 *return_and_restore_gpregs_<mode>_r1,
3052 *return_and_restore_fpregs_<mode>_r11,
3053 *return_and_restore_fpregs_<mode>_r12,
3054 *return_and_restore_fpregs_<mode>_r1): Use the hard register LR_REGNO
3055 directly instead of via the "l" constraint. Renumber operands.
3056 Fix whitespace.
3057
3058 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3059
3060 * config/rs6000/altivec.md (*save_world, *save_vregs_<mode>_r11,
3061 save_vregs_<mode>_r12, *restore_vregs_<mode>_r11,
3062 *restore_vregs_<mode>_r12): Use LR_REGNO instead of 65.
3063 * config/rs6000/darwin.md (load_macho_picbase, load_macho_picbase_si,
3064 load_macho_picbase_di, *call_indirect_nonlocal_darwin64,
3065 *call_nonlocal_darwin64, *call_value_indirect_nonlocal_darwin64,
3066 *call_value_nonlocal_darwin64, reload_macho_picbase,
3067 reload_macho_picbase_si, reload_macho_picbase_di): Ditto.
3068 * config/rs6000/rs6000.h (RETURN_ADDR_IN_PREVIOUS_FRAME): Ditto.
3069 * config/rs6000/rs6000.md (*save_gpregs_<mode>_r11,
3070 *save_gpregs_<mode>_r12, *save_gpregs_<mode>_r1,
3071 *save_fpregs_<mode>_r11, *save_fpregs_<mode>_r12,
3072 *save_fpregs_<mode>_r1): Ditto.
3073 * config/rs6000/spe.md (*save_gpregs_spe, *restore_gpregs_spe,
3074 *return_and_restore_gpregs_spe): Ditto.
3075
3076 2016-09-01 Segher Boessenkool <segher@kernel.crashing.org>
3077
3078 * config/rs6000/rs6000.md
3079 (define_insn "*return_and_restore_fpregs_aix_<mode>_r11"): Delete
3080 the use of the link register.
3081 (define_insn "*return_and_restore_fpregs_aix_<mode>_r1"): Ditto.
3082
3083 2016-09-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3084 Michael Meissner <meissner@linux.vnet.ibm.com>
3085
3086 PR target/72827
3087 * config/rs6000/rs6000.c (rs6000_legitimize_address): Avoid
3088 reg+reg addressing for TImode.
3089 (rs6000_legitimate_address_p): Only allow register indirect
3090 addressing for TImode, even without TARGET_QUAD_MEMORY.
3091
3092 2016-09-01 Richard Biener <rguenther@suse.de>
3093
3094 PR middle-end/77436
3095 * tree-chrec.c (tree_fold_binomial): Use widest_int, properly
3096 check whether the result fits the desired result type.
3097
3098 2016-09-01 Nathan Sidwell <nathan@acm.org>
3099
3100 * config/nvptx/nvptx.md (cbranch<mode>4): Op 2 can be const.
3101
3102 2016-09-01 Wilco Dijkstra <wdijkstr@arm.com>
3103
3104 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement):
3105 New function.
3106 (TARGET_LEGITIMIZE_ADDRESS_DISPLACEMENT): Define.
3107
3108 2016-09-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3109
3110 * config/aarch64/aarch64.md (*ands<mode>_compare0): New pattern.
3111 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_NZmode
3112 for comparisons of integer ZERO_EXTEND against zero.
3113
3114 2016-09-01 Eric Botcazou <ebotcazou@adacore.com>
3115
3116 * config/i386/i386.c (ix86_option_override_internal): Also disable the
3117 STV pass if -mstackrealign is enabled.
3118
3119 2016-08-31 Ilya Verbin <iverbin@gmail.com>
3120
3121 * config/i386/driver-i386.c (host_detect_local_cpu): Fix detection of
3122 AVX512IFMA.
3123
3124 2016-08-31 David Malcolm <dmalcolm@redhat.com>
3125
3126 * diagnostic-show-locus.c (class layout): Add field m_fixit_hints.
3127 (layout_range::intersects_line_p): New method.
3128 (test_range_contains_point_for_single_point): Rename to...
3129 (test_layout_range_for_single_point): ...this, and add testing
3130 for layout_range::intersects_line_p.
3131 (test_range_contains_point_for_single_line): Rename to...
3132 (test_layout_range_for_single_line): ...this, and add testing
3133 for layout_range::intersects_line_p.
3134 (test_range_contains_point_for_multiple_lines): Rename to...
3135 (test_layout_range_for_multiple_lines): ...this, and add testing
3136 for layout_range::intersects_line_p.
3137 (layout::layout): Populate m_fixit_hints.
3138 (layout::get_expanded_location): Handle the case of a line-span
3139 for a fix-it hint.
3140 (layout::validate_fixit_hint_p): New method.
3141 (get_line_span_for_fixit_hint): New function.
3142 (layout::calculate_line_spans): Add spans for fixit-hints.
3143 (layout::should_print_annotation_line_p): New method.
3144 (layout::print_any_fixits): Drop param "richloc", instead using
3145 validated fixits in m_fixit_hints. Add "const" to hint pointers.
3146 (diagnostic_show_locus): Avoid printing blank annotation lines.
3147 (selftest::test_diagnostic_context::test_diagnostic_context):
3148 Initialize show_column and start_span.
3149 (selftest::test_diagnostic_context::start_span_cb): New static
3150 function.
3151 (selftest::test_diagnostic_show_locus_fixit_lines): New function.
3152 (selftest::diagnostic_show_locus_c_tests): Update for function
3153 renamings. Call test_diagnostic_show_locus_fixit_lines.
3154
3155 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
3156
3157 PR tree-optimization/73714
3158 * match.pd (a * (1 << b)): Revert change from 2016-05-23.
3159
3160 2016-08-31 David Malcolm <dmalcolm@redhat.com>
3161
3162 * selftest.c: Move "namespace selftest {" to top of file,
3163 removing explicit "selftest::" qualifiers throughout.
3164
3165 2016-08-31 Marc Glisse <marc.glisse@inria.fr>
3166
3167 * config/i386/avx512fintrin.h (__m512_u, __m512i_u, __m512d_u):
3168 New types.
3169 (_mm512_loadu_pd, _mm512_storeu_pd, _mm512_loadu_ps,
3170 _mm512_storeu_ps, _mm512_loadu_si512, _mm512_storeu_si512):
3171 Replace builtin with vector extension.
3172 * config/i386/avxintrin.h (__m256_u, __m256i_u, __m256d_u):
3173 New types.
3174 (_mm256_loadu_pd, _mm256_storeu_pd, _mm256_loadu_ps,
3175 _mm256_storeu_ps, _mm256_loadu_si256, _mm256_storeu_si256):
3176 Replace builtin with vector extension.
3177 * config/i386/emmintrin.h (__m128i_u, __m128d_u): New types.
3178 (_mm_loadu_pd, _mm_storeu_pd, _mm_loadu_si128, _mm_storeu_si128):
3179 Replace builtin with vector extension.
3180 * config/i386/xmmintrin.h (__m128_u): New type.
3181 (_mm_loadu_ps, _mm_storeu_ps): Replace builtin with vector extension.
3182 (_mm_load_ps, _mm_store_ps): Simplify.
3183
3184 2016-08-31 Eric Botcazou <ebotcazou@adacore.com>
3185
3186 * config/arm/arm.c (thumb1_size_rtx_costs) <SET>: Add missing guard.
3187
3188 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3189
3190 * diagnostic-show-locus.c (colorizer::begin_state): Support more
3191 than 3 ranges per diagnostic by alternating between color 1 and
3192 color 2.
3193 (layout::layout): Replace use of rich_location::MAX_RANGES
3194 with richloc->get_num_locations ().
3195 (layout::calculate_line_spans): Replace use of
3196 rich_location::MAX_RANGES with m_layout_ranges.length ().
3197 (layout::print_annotation_line): Handle arbitrary numbers of
3198 ranges in caret-printing by defaulting to '^'.
3199 (selftest::test_one_liner_many_fixits): New function.
3200 (test_diagnostic_show_locus_one_liner): Call it.
3201 * diagnostic.c (diagnostic_initialize): Update for renaming
3202 of rich_location::MAX_RANGES to
3203 rich_location::STATICALLY_ALLOCATED_RANGES.
3204 * diagnostic.h (struct diagnostic_context): Likewise.
3205
3206 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3207
3208 * selftest.c (selftest::named_temp_file::named_temp_file): New
3209 ctor.
3210 (selftest::temp_source_file::~temp_source_file): Move to...
3211 (selftest::named_temp_file::~named_temp_file): ...here.
3212 (selftest::test_named_temp_file): New function.
3213 (selftest::selftest_c_tests): Call test_named_temp_file.
3214 * selftest.h (class named_temp_file): New class.
3215 (class temp_source_file): Convert to a subclass of named_temp_file.
3216
3217 2016-08-30 Segher Boessenkool <segher@kernel.crashing.org>
3218
3219 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Do not emit
3220 USEs of LR_REGNO in returns and sibcalls.
3221 (rs6000_output_mi_thunk): Similar.
3222 (rs6000_sibcall_aix): Similar.
3223 * config/rs6000/rs6000.md (sibcall, sibcall_value, sibcall_local32,
3224 sibcall_local64, sibcall_value_local32, sibcall_value_local64,
3225 sibcall_nonlocal_sysv<mode>, sibcall_value_nonlocal_sysv<mode>):
3226 Remove the USE of LR_REGNO from the patterns as well. Delete an
3227 obsolete comment.
3228 (return_internal_<mode>): Delete.
3229
3230 2016-08-30 Tamar Christina <tamar.christina@arm.com>
3231
3232 * gcc/config/aarch64/aarch64-simd.md
3233 (aarch64_ld2<mode>_dreg_le): New.
3234 (aarch64_ld2<mode>_dreg_be): New.
3235 (aarch64_ld2<mode>_dreg): Removed.
3236 (aarch64_ld3<mode>_dreg_le): New.
3237 (aarch64_ld3<mode>_dreg_be): New.
3238 (aarch64_ld3<mode>_dreg): Removed.
3239 (aarch64_ld4<mode>_dreg_le): New.
3240 (aarch64_ld4<mode>_dreg_be): New.
3241 (aarch64_ld4<mode>_dreg): Removed.
3242 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Wrapper around _le, _be.
3243
3244 2016-08-30 David Malcolm <dmalcolm@redhat.com>
3245
3246 * diagnostic-show-locus.c (test_one_liner_fixit_insert): Remove
3247 redundant location param.
3248 (test_one_liner_fixit_remove): Likewise.
3249 (test_one_liner_fixit_replace): Likewise.
3250 (test_one_liner_fixit_replace_equal_secondary_range): Likewise.
3251 * gcc-rich-location.c
3252 (gcc_rich_location::add_fixit_misspelled_id): Eliminate call to
3253 get_range_from_loc. Drop overload taking a const char *.
3254 * gcc-rich-location.h
3255 (gcc_rich_location::add_fixit_misspelled_id): Drop overload taking
3256 a const char *.
3257
3258 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3259
3260 * config/linux.c (linux_libc_has_function): Return true on musl.
3261
3262 2016-08-30 Szabolcs Nagy <szabolcs.nagy@arm.com>
3263
3264 * config.gcc (*-*-*musl*): Disable gnu-indirect-function.
3265
3266 2016-08-30 Eric Botcazou <ebotcazou@adacore.com>
3267
3268 * postreload-gcse.c (bb_has_well_behaved_predecessors): Tweak criterion
3269 used for abnormal egdes.
3270
3271 2016-08-30 Jakub Jelinek <jakub@redhat.com>
3272
3273 PR tree-optimization/72866
3274 * tree-vect-patterns.c (search_type_for_mask): Turn into
3275 a small wrapper, move all code to ...
3276 (search_type_for_mask_1): ... this new function. Add caching
3277 and adjust recursive calls.
3278
3279 PR debug/77363
3280 * dwarf2out.c (modified_type_die): Use lookup_type_die (type)
3281 instead of lookup_type_die (type_main_variant (type)) even for array
3282 types.
3283
3284 PR middle-end/77377
3285 * simplify-rtx.c (avoid_constant_pool_reference): For out of bounds
3286 constant pool reference return x instead of c.
3287
3288 2016-08-29 Segher Boessenkool <segher@kernel.crashing.org>
3289
3290 * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): Do not
3291 include MQ.
3292
3293 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3294
3295 * input.c
3296 (selftest::test_make_location_nonpure_range_endpoints): Fix
3297 header comment.
3298
3299 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3300
3301 * diagnostic-show-locus.c
3302 (selftest::test_one_liner_fixit_validation_adhoc_locations): New
3303 function.
3304 (selftest::test_diagnostic_show_locus_one_liner): Call it.
3305 * input.c (get_pure_location): Move to libcpp/line-map.c.
3306 * input.h (get_pure_location): Convert decl to an inline function
3307 calling implementation in libcpp.
3308
3309 2016-08-29 Uros Bizjak <ubizjak@gmail.com>
3310
3311 PR target/77403
3312 * config/i386/sse.md (vec_set_lo_<mode><mask_name>): Fix assembler
3313 template for intel asm dialect.
3314 (vec_set_hi_<mode><mask_name>): Ditto.
3315
3316 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3317
3318 * selftest.h (selftest::fail): Add ATTRIBUTE_NORETURN.
3319 (selftest::fail_formatted): Likewise.
3320
3321 2016-08-29 David Malcolm <dmalcolm@redhat.com>
3322
3323 * input.c (make_location): Call get_start and get_finish
3324 on the endpoints to avoid storing packed ranges or ad-hoc
3325 ranges in them.
3326 (selftest::test_make_location_nonpure_range_endpoints): New function.
3327 (selftest::input_c_tests): Call it.
3328 * input.h (get_start): New inline function.
3329
3330 2016-08-29 Tom de Vries <tom@codesourcery.com>
3331
3332 PR c/77398
3333 * gimplify.c (gimplify_va_arg_expr): Replace first argument type error
3334 with assert.
3335
3336 2016-08-29 Eric Botcazou <ebotcazou@adacore.com>
3337
3338 * Makefile.in (gcov-iov.h): Add dummy recipe.
3339
3340 2016-08-29 Nathan Sidwell <nathan@acm.org>
3341
3342 * config/nvptx/nvptx.c: #include tree-vrp.h.
3343
3344 2016-08-28 Eric Botcazou <ebotcazou@adacore.com>
3345
3346 PR target/77324
3347 * config/sparc/sparc.c (sparc_legitimate_address_p): Accept special
3348 HIGH+LO construct during reload.
3349
3350 2016-08-28 Tom de Vries <tom@codesourcery.com>
3351
3352 PR lto/70955
3353 * config/i386/i386.c (ix86_build_builtin_va_list_64): Tag type with
3354 'sysv_abi va_list' attribute.
3355 (ix86_build_builtin_va_list): Tag type with 'ms_abi va_list' attribute.
3356 (ix86_canonical_va_list_type): Handle 'sysv_abi/ms_abi va_list'
3357 attributes.
3358
3359 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3360
3361 * emit-rtl.h (struct rtl_data): Make stack_slot_list a vector.
3362 * emit-rtl.c (unshare_all_rtl_1): Adjust.
3363 (unshare_all_rtl_again): Likewise.
3364 * function.c (assign_stack_local_1): Likewise.
3365 (assign_stack_temp_for_type): Likewise.
3366
3367 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3368
3369 * cfgbuild.c (make_edges): Adjust.
3370 * cfgrtl.c (can_delete_label_p): Likewise.
3371 * dwarf2cfi.c (create_trace_edges): Likewise.
3372 * except.c (sjlj_emit_dispatch_table): Likewise.
3373 * function.h (struct expr_status): make x_forced_labels a vector.
3374 * jump.c (rebuild_jump_labels_1): Adjust.
3375 * reload1.c (set_initial_label_offsets): Likewise.
3376 * stmt.c (force_label_rtx): Likewise.
3377 (expand_label): Likewise.
3378
3379 2016-08-27 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
3380
3381 * haifa-sched.c (fix_recovery_deps): Make ready_list a vector.
3382
3383 2016-08-27 Patrick Palka <ppalka@gcc.gnu.org>
3384
3385 PR tree-optimization/71077
3386 PR tree-optimization/68542
3387 * fold-const.c (fold_relational_const): Fix folding of
3388 VECTOR_CST comparisons that have a scalar boolean result type.
3389 (selftest::test_vector_folding): New static function.
3390 (selftest::fold_const_c_tests): Call it.
3391
3392 2016-08-27 Gerald Pfeifer <gerald@pfeifer.com>
3393
3394 * doc/extend.texi (SPU Built-in Functions): Remove stale
3395 references to material formerly at IBM and Sony.
3396
3397 2016-08-26 David Edelsohn <dje.gcc@gmail.com>
3398
3399 PR target/77349
3400 * config/rs6000/xcoff.h (DWARF_OFFSET_SIZE): Define as PTR_SIZE.
3401
3402 2016-08-26 David Malcolm <dmalcolm@redhat.com>
3403
3404 * diagnostic-show-locus.c
3405 (selftest::test_fixit_consolidation): New function.
3406 (selftest::diagnostic_show_locus_c_tests): Call it.
3407 * gcc-rich-location.h (gcc_rich_location): Eliminate unused
3408 constructor based on source_range.
3409
3410 2016-08-26 David Malcolm <dmalcolm@redhat.com>
3411
3412 * diagnostic-color.c (color_dict): Add "fixit-insert" and
3413 "fixit-delete".
3414 (parse_gcc_colors): Update description of default GCC_COLORS.
3415 * diagnostic-show-locus.c (colorizer::set_fixit_hint): Delete.
3416 (colorizer::set_fixit_insert): New method.
3417 (colorizer::set_fixit_delete): New method.
3418 (colorizer::get_color_by_name): New method.
3419 (colorizer::STATE_FIXIT_INSERT): New constant.
3420 (colorizer::STATE_FIXIT_DELETE): New constant.
3421 (class colorizer): Drop "_cs" suffix from fields. Delete "_ce"
3422 fields in favor of new field "m_stop_color". Add fields
3423 "m_fixit_insert" and "m_fixit_delete".
3424 (colorizer::colorizer): Update for above changes. Replace
3425 colorize_start calls with calls to get_color_by_name.
3426 (colorizer::begin_state): Handle STATE_FIXIT_INSERT and
3427 STATE_FIXIT_DELETE. Update for field renamings.
3428 (colorizer::finish_state): Simplify by using m_stop_color,
3429 rather than multiple identical "*_ce" fields.
3430 (colorizer::get_color_by_name): New method.
3431 (layout::print_any_fixits): Print insertions and replacements
3432 using the "fixit-insert" color, and deletions using the
3433 "fixit-delete" color.
3434 * doc/invoke.texi (-fdiagnostics-color): Update description of
3435 default GCC_COLORS, and of the supported capabilities.
3436
3437 2016-08-26 Max Filippov <jcmvbkbc@gmail.com>
3438
3439 * config/xtensa/xtensa.c (xtensa_expand_prologue): Update
3440 current_function_static_stack_size variable with the static
3441 stack frame size of the current function when
3442 flag_stack_usage_info is enabled.
3443
3444 2016-08-26 Nathan Sidwell <nathan@acm.org>
3445
3446 * ipa-inline-analysis.c (inline_write_summary): Remove unnecessary
3447 assignment inside if condition.
3448
3449 2016-08-26 Richard Biener <rguenther@suse.de>
3450
3451 PR tree-optimization/69047
3452 * tree-ssa.c (maybe_rewrite_mem_ref_base): Handle general bitfield
3453 extracts similar to what FRE does.
3454 (non_rewritable_mem_ref_base): Likewise.
3455
3456 2016-08-26 Joseph Myers <joseph@codesourcery.com>
3457
3458 * config/i386/i386.c (ix86_libgcc_floating_mode_supported_p)
3459 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Remove.
3460 * config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3461 * config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3462 * config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE):
3463 Likewise.
3464 * config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3465 * config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3466 * config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3467 * config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Likewise.
3468 * config/i386/vxworks.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Likewise.
3469
3470 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3471
3472 PR target/70473
3473 * config/arm/cortex-a8-neon.md (cortex_a8_vfp_muld): Reduce
3474 reservation duration to 15 cycles.
3475 (cortex_a8_vfp_macs): Likewise.
3476 (cortex_a8_vfp_macd): Likewise.
3477 (cortex_a8_vfp_divs): Likewise.
3478 (cortex_a8_vfp_divd): Likewise.
3479
3480 2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3481
3482 * config/arm/arm.c (arm_sets_movw_movt_fusible_p): New function.
3483 (aarch_macro_fusion_pair_p): Use above to avoid early return.
3484
3485 2016-08-26 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3486 Martin Jambhor <mjambor@suse.cz>
3487
3488 * common.opt: New option -fipa-bit-cp.
3489 * doc/invoke.texi: Document -fipa-bit-cp.
3490 * opts.c (default_options_table): Add entry for -fipa-bit-cp.
3491 (enable_fdo_optimizations): Check for flag_ipa_bit_cp.
3492 * tree-ssa-ccp.h: New header file.
3493 * tree-ssa-ccp.c: Include tree-ssa-ccp.h
3494 (bit_value_binop_1): Change to bit_value_binop_1 and export it.
3495 Replace all occurences of tree parameter by two new params: signop, int.
3496 (bit_value_unop_1): Change to bit_value_unop and export it.
3497 Replace all occurences of tree parameter by two new params: signop,
3498 int.
3499 (bit_value_binop): Change call from bit_value_binop_1 to
3500 bit_value_binop.
3501 (bit_value_assume_aligned): Likewise.
3502 (bit_value_unop): Change call from bit_value_unop_1 to bit_value_unop.
3503 (do_ssa_ccp): Pass nonzero_p || flag_ipa_cp_bit instead of nonzero_p
3504 to ccp_finalize.
3505 (ccp_finalize): Skip processing if val->mask == 0.
3506 * ipa-cp.c: Include tree-ssa-ccp.h
3507 (ipcp_bits_lattice): New class.
3508 (ipcp_param_lattice (bits_lattice): New member.
3509 (print_all_lattices): Call ipcp_bits_lattice::print.
3510 (set_all_contains_variable): Call ipcp_bits_lattice::set_to_bottom.
3511 (initialize_node_lattices): Likewise.
3512 (propagate_bits_accross_jump_function): New function.
3513 (propagate_constants_accross_call): Call
3514 propagate_bits_accross_jump_function.
3515 (ipcp_propagate_stage): Store parameter types when in_lto_p is true.
3516 (ipcp_store_bits_results): New function.
3517 (ipcp_driver): Call ipcp_store_bits_results.
3518 * ipa-prop.h (ipa_bits): New struct.
3519 (ipa_jump_func): Add new member bits of type ipa_bits.
3520 (ipa_param_descriptor): Change decl to decl_or_type.
3521 (ipa_get_param): Change decl to decl_or_type and assert on
3522 PARM_DECL.
3523 (ipa_get_type): New function.
3524 (ipcp_transformation_summary): New member bits.
3525 * ipa-prop.c (ipa_get_param_decl_index_1): s/decl/decl_or_type.
3526 (ipa_populate_param_decls): Likewise.
3527 (ipa_dump_param): Likewise.
3528 (ipa_print_node_jump_functions_for_edge): Pretty-print ipa_bits jump
3529 function.
3530 (ipa_set_jf_unknown): Set ipa_bits::known to false.
3531 (ipa_compute_jump_functions_for_edge): Compute jump function for bits
3532 propagation.
3533 (ipa_node_params_t::duplicate): Copy src->bits into dst->bits.
3534 (ipa_write_jump_function): Add streaming for ipa_bits.
3535 (ipa_read_jump_function): Add support for reading streamed ipa_bits.
3536 (write_ipcp_transformation_info): Add streaming for ipa_bits
3537 summary for ltrans.
3538 (read_ipcp_transfomration_info): Add support for reading streamed
3539 ipa_bits.
3540 (ipcp_update_bits): New function.
3541 (ipcp_transform_function): Call ipcp_update_bits.
3542
3543 2016-08-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
3544
3545 * config/mips/linux.h (MUSL_DYNAMIC_LINKER32): Update.
3546 (MUSL_DYNAMIC_LINKER64, MUSL_DYNAMIC_LINKERN32): Update.
3547
3548 2016-08-25 David Edelsohn <dje.gcc@gmail.com>
3549
3550 * multiple_target.c (pass_data_dispatcher_calls): Fix typo.
3551
3552 2016-08-25 Richard Biener <rguenther@suse.de>
3553
3554 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
3555 Only add locations in late dwarf.
3556 (gen_scheduled_generic_parms_dies): Do not set early dwarf here.
3557 (dwarf2out_early_finish): But do it here.
3558
3559 2016-08-24 Michael Collison <michael.collison@linaro.org>
3560 Michael Collison <michael.collison@arm.com>
3561
3562 * config/arm/arm-modes.def: Add new condition code mode CC_V
3563 to represent the overflow bit.
3564 * config/arm/arm.c (maybe_get_arm_condition_code):
3565 Add support for CC_Vmode.
3566 (arm_gen_unlikely_cbranch): New function to generate common
3567 rtl conditional branches for overflow patterns.
3568 * config/arm/arm-protos.h: Add prototype for
3569 arm_gen_unlikely_cbranch.
3570 * config/arm/arm.md (addv<mode>4, add<mode>3_compareV,
3571 addsi3_compareV_upper): New patterns to support signed
3572 builtin overflow add operations.
3573 (uaddv<mode>4, add<mode>3_compareC, addsi3_compareV_upper):
3574 New patterns to support unsigned builtin add overflow operations.
3575 (subv<mode>4, sub<mode>3_compare1): New patterns to support signed
3576 builtin overflow subtract operations,
3577 (usubv<mode>4): New patterns to support unsigned builtin subtract
3578 overflow operations.
3579 (negvsi3, negvdi3, negdi2_compare, negsi2_carryin_compare): New patterns
3580 to support builtin overflow negate operations.
3581
3582 2016-08-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3583
3584 Revert
3585 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3586
3587 * explow.c (get_dynamic_stack_size): Take known alignment of stack
3588 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
3589 needed.
3590
3591 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
3592
3593 * doc/fragments.texi (MULTILIB_REUSE): Mention that only options in
3594 MULTILIB_OPTIONS should be used. Small wording fixes.
3595 * genmultilib: Memorize set of all option combinations in
3596 combination_space. Detect if RHS of MULTILIB_REUSE uses an option not
3597 found in MULTILIB_OPTIONS by checking if option set is listed in
3598 combination_space. Output new and existing error message to stderr.
3599
3600 2016-08-24 Thomas Preud'homme <thomas.preudhomme@arm.com>
3601
3602 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
3603 -mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
3604 Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
3605 (MULTILIB_REUSE): Remove reuse rules for option set including
3606 -mfpu=fp-armv8 and -mfpu=vfpv4
3607
3608 2016-08-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
3609
3610 * config/arm/t-rtems: Add vfp multilib.
3611
3612 2016-08-23 Ian Lance Taylor <iant@golang.org>
3613
3614 * config/s390/s390.c (s390_asm_file_start): Call
3615 default_file_start.
3616
3617 2016-08-23 Michael Meissner <meissner@linux.vnet.ibm.com>
3618
3619 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Set
3620 initialization of all 0's to the 0 constant, instead of directly
3621 generating XOR. Add support for V4SImode vector initialization on
3622 64-bit systems with direct move, and rework the ISA 3.0 V4SImode
3623 initialization. Change variables used in V4SFmode vector
3624 intialization. For V4SFmode vector splat on ISA 3.0, make sure
3625 any memory addresses are in index form. Add support for using
3626 VSPLTH/VSPLTB to initialize vector short and vector char vectors
3627 with all of the same element.
3628 (regno_or_subregno): New helper function to return a register
3629 number for either REG or SUBREG.
3630 (rs6000_adjust_vec_address): Do not generate ADDI <reg>,R0,<num>.
3631 Use regno_or_subregno where possible.
3632 (rs6000_split_v4si_init_di_reg): New helper function to build up a
3633 DImode value from two SImode values in order to generate V4SImode
3634 vector initialization on 64-bit systems with direct move.
3635 (rs6000_split_v4si_init): Split up the insns for a V4SImode vector
3636 initialization.
3637 (rtx_is_swappable_p): V4SImode vector initialization insn is not
3638 swappable.
3639 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Add
3640 declaration.
3641 * config/rs6000/vsx.md (VSX_SPLAT_I): New mode iterators and
3642 attributes to initialize V8HImode and V16QImode vectors with the
3643 same element.
3644 (VSX_SPLAT_COUNT): Likewise.
3645 (VSX_SPLAT_SUFFIX): Likewise.
3646 (UNSPEC_VSX_VEC_INIT): New unspec.
3647 (vsx_concat_v2sf): Eliminate using 'preferred' register classes.
3648 Allow SFmode values to come from Altivec registers.
3649 (vsx_init_v4si): New insn/split for V4SImode vector initialization
3650 on 64-bit systems with direct move.
3651 (vsx_splat_<mode>, VSX_W iterator): Rework V4SImode and V4SFmode
3652 vector initializations, to allow V4SImode vector initializations
3653 on 64-bit systems with direct move.
3654 (vsx_splat_v4si): Likewise.
3655 (vsx_splat_v4si_di): Likewise.
3656 (vsx_splat_v4sf): Likewise.
3657 (vsx_splat_v4sf_internal): Likewise.
3658 (vsx_xxspltw_<mode>, VSX_W iterator): Eliminate using 'preferred'
3659 register classes.
3660 (vsx_xxspltw_<mode>_direct, VSX_W iterator): Likewise.
3661 (vsx_vsplt<VSX_SPLAT_SUFFIX>_di): New insns to support
3662 initializing V8HImode and V16QImode vectors with the same
3663 element.
3664 * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE_64BIT): Disallow
3665 optimization if -maltivec=be.
3666
3667 2016-08-23 Christophe Lyon <christophe.lyon@linaro.org>
3668
3669 * config/arm/arm.md (arm_movqi_insn): Swap predicable_short_it
3670 attribute for alternatives 3 and 4.
3671
3672 2016-08-23 David Malcolm <dmalcolm@redhat.com>
3673
3674 * selftest.c (selftest::assert_str_contains): New function.
3675 (selftest::test_assertions): Verify ASSERT_STR_CONTAINS.
3676 * selftest.h (selftest::assert_str_contains): New decl.
3677 (ASSERT_STR_CONTAINS): New macro.
3678
3679 2016-08-23 Richard Biener <rguenther@suse.de>
3680
3681 PR tree-optimization/77286
3682 * tree-vect-loop.c (vect_analyze_loop_form_1): Do not modify
3683 the CFG here.
3684 (vect_transform_loop): Split exit edges of loop and scalar
3685 loop if required and at the appropriate time.
3686
3687 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3688
3689 * explow.c (get_dynamic_stack_size): Take known alignment of stack
3690 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
3691 needed.
3692 Correct a typo in a comment.
3693
3694 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
3695
3696 * config/s390/s390.md ("*andc_split"): New splitter for and with
3697 complement.
3698
3699 2016-08-23 Richard Biener <rguenther@suse.de>
3700
3701 PR tree-optimization/27336
3702 * tree-vrp.c (infer_value_range): Handle stmts that can throw
3703 by looking for a non-EH edge.
3704 (process_assert_insertions_for): Likewise.
3705
3706 2016-08-23 Richard Biener <rguenther@suse.de>
3707
3708 PR middle-end/77305
3709 * statistics.c (statistics_counter_event): Robustify against
3710 NULL current_pass.
3711
3712 2016-08-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
3713
3714 * config/i386/i386.c (processor_alias_table): Enable PTA_PRFCHW
3715 for targets amdfam10 and barcelona.
3716
3717 2016-08-22 Uros Bizjak <ubizjak@gmail.com>
3718
3719 * config/i386/i386.md (*zero_extendsidi2): Add (*r,*k) alternative.
3720 (zero_extend<mode>di2): Ditto.
3721 (*zero_extend<mode>si2): Ditto.
3722 (*zero_extendqihi2): Ditto.
3723
3724 2016-08-22 Joseph Myers <joseph@codesourcery.com>
3725
3726 PR middle-end/77269
3727 * builtins.c (fold_builtin_classify): Use builtin_decl_explicit
3728 (BUILT_IN_SIGNBIT) to expand __builtin_isinf_sign.
3729
3730 2016-08-22 Patrick Palka <ppalka@gcc.gnu.org>
3731
3732 * print-tree.c (print_node) [VECTOR_CST]: Coalesce the output of
3733 identical consecutive elements.
3734 [SSA_NAME]: Print the name's def stmt on its own line. When printing
3735 the node's def stmt, avoid printing an unwanted trailing newline by
3736 replacing the call to print_gimple_stmt() with its inlined body and
3737 adjusting it to not set pp_needs_newline and to call pp_flush()
3738 instead of pp_newline_and_flush().
3739
3740 2016-08-22 Joseph Myers <joseph@codesourcery.com>
3741
3742 * tree.h (CASE_FLT_FN_FLOATN_NX, float16_type_node)
3743 (float32_type_node, float64_type_node, float32x_type_node)
3744 (float128x_type_node): New macros.
3745 * builtin-types.def (BT_FLOAT16, BT_FLOAT32, BT_FLOAT64)
3746 (BT_FLOAT128, BT_FLOAT32X, BT_FLOAT64X, BT_FLOAT128X)
3747 (BT_FN_FLOAT16, BT_FN_FLOAT32, BT_FN_FLOAT64, BT_FN_FLOAT128)
3748 (BT_FN_FLOAT32X, BT_FN_FLOAT64X, BT_FN_FLOAT128X)
3749 (BT_FN_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32)
3750 (BT_FN_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128)
3751 (BT_FN_FLOAT32X_FLOAT32X, BT_FN_FLOAT64X_FLOAT64X)
3752 (BT_FN_FLOAT128X_FLOAT128X, BT_FN_FLOAT16_CONST_STRING)
3753 (BT_FN_FLOAT32_CONST_STRING, BT_FN_FLOAT64_CONST_STRING)
3754 (BT_FN_FLOAT128_CONST_STRING, BT_FN_FLOAT32X_CONST_STRING)
3755 (BT_FN_FLOAT64X_CONST_STRING, BT_FN_FLOAT128X_CONST_STRING)
3756 (BT_FN_FLOAT16_FLOAT16_FLOAT16, BT_FN_FLOAT32_FLOAT32_FLOAT32)
3757 (BT_FN_FLOAT64_FLOAT64_FLOAT64, BT_FN_FLOAT128_FLOAT128_FLOAT128)
3758 (BT_FN_FLOAT32X_FLOAT32X_FLOAT32X)
3759 (BT_FN_FLOAT64X_FLOAT64X_FLOAT64X)
3760 (BT_FN_FLOAT128X_FLOAT128X_FLOAT128X): New type definitions.
3761 * builtins.def (DEF_GCC_FLOATN_NX_BUILTINS): New macro.
3762 (copysign, fabs, huge_val, inf, nan, nans): Use it.
3763 * builtins.c (expand_builtin): Use CASE_FLT_FN_FLOATN_NX for fabs
3764 and copysign.
3765 (fold_builtin_0): Use CASE_FLT_FN_FLOATN_NX for inf and huge_val.
3766 (fold_builtin_1): Use CASE_FLT_FN_FLOATN_NX for fabs.
3767 * doc/extend.texi (Other Builtins): Document these built-in
3768 functions.
3769 * fold-const-call.c (fold_const_call): Use CASE_FLT_FN_FLOATN_NX
3770 for nan and nans.
3771
3772 2016-08-22 Gerald Pfeifer <gerald@pfeifer.com>
3773
3774 * doc/install.texi (Binaries): www.opencsw.org now uses https.
3775
3776 2016-08-22 Richard Biener <rguenther@suse.de>
3777
3778 * tree-ssa-forwprop.c (pass_forwprop::execute): Use RPO order.
3779
3780 2016-08-21 Uros Bizjak <ubizjak@gmail.com>
3781
3782 PR target/77270
3783 * config/i386/i386.md (prefetch): When TARGET_PRFCHW or
3784 TARGET_PREFETCHWT1 are disabled, emit 3dNOW! write prefetches for
3785 non-SSE2 athlons only, otherwise prefer SSE prefetches.
3786
3787 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
3788
3789 * tree-vrp.c (vrp_visit_assignment_or_call): Changed to Return VR.
3790 (vrp_visit_cond_stmt): Just sets TAKEN_EDGE_P.
3791 (vrp_visit_switch_stmt): Likewise.
3792 (extract_range_from_stmt): Factored out from vrp_visit_stmt.
3793 (extract_range_from_phi_node): Factored out from vrp_visit_phi_stmt.
3794 (vrp_visit_stmt): Use extract_range_from_stmt.
3795 (vrp_visit_phi_node): Use extract_range_from_phi_node.
3796
3797 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
3798
3799 * Makefile.in: Add tree-vrp.h to GTFILES.
3800 * gengtype.c (open_base_files): Add tree-vrp.h.
3801 * asan.c: Add tree-vrp.h which now has the definition value_range_type.
3802 * builtins.c: Likewise.
3803 * fold-const.c: Likewise.
3804 * gimple-builder.c: Likewise.
3805 * gimple-laddress.c: Likewise.
3806 * hsa-gen.c: Likewise.
3807 * internal-fn.c: Likewise.
3808 * ssa.h: Likewise.
3809 * targhooks.c: Liewise,
3810 * tree-ssa-address.c: Likewise.
3811 * tree-ssanames.h (value_range_type: Move to tree-vrp.h.
3812 * tree-vrp.c (struct value_range): Move to tree-vrp.h
3813 * tree-vrp.h: New file.
3814
3815 2016-08-20 Kugan Vivekanandarajah <kuganv@linaro.org>
3816
3817 PR tree-optimization/61839
3818 * tree-vrp.c (two_valued_val_range_p): New.
3819 (simplify_stmt_using_ranges): Convert CST BINOP VAR where VAR is
3820 two-valued to VAR == VAL1 ? (CST BINOP VAL1) : (CST BINOP VAL2).
3821 Also Convert VAR BINOP CST where VAR is two-valued to
3822 VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST).
3823
3824 2016-08-19 David Malcolm <dmalcolm@redhat.com>
3825
3826 * diagnostic-show-locus.c
3827 (layout::annotation_line_showed_range_p): New method.
3828 (layout::print_any_fixits): Remove case fixit_hint::REMOVE.
3829 Reimplement case fixit_hint::REPLACE to cover removals, and
3830 replacements where the range of the replacement isn't one
3831 of the ranges in the rich_location.
3832 (test_one_liner_fixit_replace): Likewise.
3833 (selftest::test_one_liner_fixit_replace_non_equal_range): New
3834 function.
3835 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
3836 New function.
3837 (selftest::test_diagnostic_show_locus_one_liner): Call the new
3838 functions.
3839 * diagnostic.c (print_parseable_fixits): Remove case
3840 fixit_hint::REMOVE.
3841
3842 2016-08-19 Uros Bizjak <ubizjak@gmail.com>
3843
3844 PR target/77270
3845 * config/i386/i386.c (ix86_option_override_internal): Remove
3846 PTA_PRFCHW from entries that also have PTA_3DNOW flag.
3847 Enable SSE prefetch also for TARGET_PREFETCHWT1.
3848 Do not try to enable TARGET_PRFCHW ISA flag here.
3849 * config/i386/i386.md (prefetch): Enable also for TARGET_3DNOW.
3850 Rewrite expander function body.
3851 (*prefetch_3dnow): Enable for TARGET_3DNOW and TARGET_PREFETCHWT1.
3852
3853 2016-08-19 Joseph Myers <joseph@codesourcery.com>
3854
3855 PR c/32187
3856 * tree-core.h (TI_COMPLEX_FLOAT16_TYPE)
3857 (TI_COMPLEX_FLOATN_NX_TYPE_FIRST, TI_COMPLEX_FLOAT32_TYPE)
3858 (TI_COMPLEX_FLOAT64_TYPE, TI_COMPLEX_FLOAT128_TYPE)
3859 (TI_COMPLEX_FLOAT32X_TYPE, TI_COMPLEX_FLOAT64X_TYPE)
3860 (TI_COMPLEX_FLOAT128X_TYPE, TI_FLOAT16_TYPE, TI_FLOATN_TYPE_FIRST)
3861 (TI_FLOATN_NX_TYPE_FIRST, TI_FLOAT32_TYPE, TI_FLOAT64_TYPE)
3862 (TI_FLOAT128_TYPE, TI_FLOATN_TYPE_LAST, TI_FLOAT32X_TYPE)
3863 (TI_FLOATNX_TYPE_FIRST, TI_FLOAT64X_TYPE, TI_FLOAT128X_TYPE)
3864 (TI_FLOATNX_TYPE_LAST, TI_FLOATN_NX_TYPE_LAST): New enum
3865 tree_index values.
3866 (NUM_FLOATN_TYPES, NUM_FLOATNX_TYPES, NUM_FLOATN_NX_TYPES): New
3867 macros.
3868 (struct floatn_type_info): New structure type.
3869 (floatn_nx_types): New variable declaration.
3870 * tree.h (FLOATN_TYPE_NODE, FLOATN_NX_TYPE_NODE)
3871 (FLOATNX_TYPE_NODE, float128_type_node, float64x_type_node)
3872 (COMPLEX_FLOATN_NX_TYPE_NODE): New macros.
3873 * tree.c (floatn_nx_types): New variable.
3874 (build_common_tree_nodes): Initialize _FloatN, _FloatNx and
3875 corresponding complex types.
3876 * target.def (floatn_mode): New hook.
3877 * targhooks.c: Include "real.h".
3878 (default_floatn_mode): New function.
3879 * targhooks.h (default_floatn_mode): New prototype.
3880 * doc/extend.texi (Floating Types): Document _FloatN and _FloatNx
3881 types.
3882 * doc/sourcebuild.texi (float@var{n}, float@var{n}x): Document new
3883 effective-target and dg-add-options keywords.
3884 (float@var{n}_runtime, float@var{n}x_runtime, floatn_nx_runtime):
3885 Document new effective-target keywords.
3886 * doc/tm.texi.in (TARGET_FLOATN_MODE): New @hook.
3887 * doc/tm.texi: Regenerate.
3888 * ginclude/float.h (LDBL_DECIMAL_DIG): Define to
3889 __LDBL_DECIMAL_DIG__, not __DECIMAL_DIG__.
3890 [__STDC_WANT_IEC_60559_TYPES_EXT__]: Define macros from TS
3891 18661-3.
3892 * real.h (struct real_format): Add field ieee_bits.
3893 * real.c (ieee_single_format, mips_single_format)
3894 (motorola_single_format, spu_single_format, ieee_double_format)
3895 (mips_double_format, motorola_double_format)
3896 (ieee_extended_motorola_format, ieee_extended_intel_96_format)
3897 (ieee_extended_intel_128_format)
3898 (ieee_extended_intel_96_round_53_format, ibm_extended_format)
3899 (mips_extended_format, ieee_quad_format, mips_quad_format)
3900 (vax_f_format, vax_d_format, vax_g_format, decimal_single_format)
3901 (decimal_double_format, decimal_quad_format, ieee_half_format)
3902 (arm_half_format, real_internal_format: Initialize ieee_bits
3903 field.
3904 * config/i386/i386.c (ix86_init_builtin_types): Do not initialize
3905 float128_type_node. Set float80_type_node to float64x_type_node
3906 if appropriate and long_double_type_node not appropriate.
3907 * config/ia64/ia64.c (ia64_init_builtins): Likewise.
3908 * config/pdp11/pdp11.c (pdp11_f_format, pdp11_d_format):
3909 Initialize ieee_bits field.
3910 * config/rs6000/rs6000.c (TARGET_FLOATN_MODE): New macro.
3911 (rs6000_init_builtins): Set ieee128_float_type_node to
3912 float128_type_node.
3913 (rs6000_floatn_mode): New function.
3914
3915 2016-08-19 Jakub Jelinek <jakub@redhat.com>
3916
3917 * config/i386/rdseedintrin.h (_rdseed16_step, _rdseed32_step,
3918 _rdseed64_step): Uglify argument names and/or local variable names
3919 in inline functions.
3920 * config/i386/rtmintrin.h (_xabort): Likewise.
3921 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64,
3922 _mm256_mask_ternarylogic_epi64, _mm256_maskz_ternarylogic_epi64,
3923 _mm256_ternarylogic_epi32, _mm256_mask_ternarylogic_epi32,
3924 _mm256_maskz_ternarylogic_epi32, _mm_ternarylogic_epi64,
3925 _mm_mask_ternarylogic_epi64, _mm_maskz_ternarylogic_epi64,
3926 _mm_ternarylogic_epi32, _mm_mask_ternarylogic_epi32,
3927 _mm_maskz_ternarylogic_epi32): Likewise.
3928 * config/i386/lwpintrin.h (__llwpcb, __lwpval32, __lwpval64,
3929 __lwpins32, __lwpins64): Likewise.
3930 * config/i386/avx2intrin.h (_mm_i32gather_pd, _mm_mask_i32gather_pd,
3931 _mm256_i32gather_pd, _mm256_mask_i32gather_pd, _mm_i64gather_pd,
3932 _mm_mask_i64gather_pd, _mm256_i64gather_pd, _mm256_mask_i64gather_pd,
3933 _mm_i32gather_ps, _mm_mask_i32gather_ps, _mm256_i32gather_ps,
3934 _mm256_mask_i32gather_ps, _mm_i64gather_ps, _mm_mask_i64gather_ps,
3935 _mm256_i64gather_ps, _mm256_mask_i64gather_ps, _mm_i32gather_epi64,
3936 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64,
3937 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64,
3938 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64,
3939 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32,
3940 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32,
3941 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32,
3942 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32,
3943 _mm256_mask_i64gather_epi32): Likewise.
3944 * config/i386/pmm_malloc.h (_mm_malloc, _mm_free): Likewise.
3945 * config/i386/ia32intrin.h (__writeeflags): Likewise.
3946 * config/i386/pkuintrin.h (_wrpkru): Likewise.
3947 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i32gather_pd,
3948 _mm512_mask_prefetch_i32gather_ps, _mm512_mask_prefetch_i64gather_pd,
3949 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd,
3950 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd,
3951 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd,
3952 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd,
3953 _mm512_mask_prefetch_i64scatter_ps): Likewise.
3954 * config/i386/gmm_malloc.h (_mm_malloc, _mm_free): Likewise.
3955 * config/i386/avx512fintrin.h (_mm512_ternarylogic_epi64,
3956 _mm512_mask_ternarylogic_epi64, _mm512_maskz_ternarylogic_epi64,
3957 _mm512_ternarylogic_epi32, _mm512_mask_ternarylogic_epi32,
3958 _mm512_maskz_ternarylogic_epi32, _mm512_i32gather_ps,
3959 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, _mm512_i64gather_ps,
3960 _mm512_i64gather_pd, _mm512_i32gather_epi32, _mm512_i32gather_epi64,
3961 _mm512_i64gather_epi32, _mm512_i64gather_epi64): Likewise.
3962
3963 * config/i386/fxsrintrin.h (_fxsave): Remove return keyword in inlines
3964 returning void.
3965 (_fxrstor, _fxsave64, _fxrstor64): Likewise.
3966 * config/i386/xsaveintrin.h (_xsave, _xrstor, _xsave64, _xrstor64):
3967 Likewise.
3968 * config/i386/xsaveoptintrin.h (_xsaveopt, _xsaveopt64): Likewise.
3969 * config/i386/pkuintrin.h (_wrpkru): Likewise. Add space after
3970 function name.
3971 (_rdpkru_u32): Add space after function name.
3972
3973 * config/i386/t-i386 (i386-c.o): Don't depend on
3974 i386-builtin-types.inc.
3975 (i386.o): Depend on i386-builtin-types.inc.
3976
3977 2016-08-19 Matthew Wahab <matthew.wahab@arm.com>
3978
3979 PR target/77281
3980 * config/arm/arm.c (neon_valid_immediate): Delete declaration.
3981 Use const_vec_duplicate to check for duplicated elements.
3982
3983 2016-08-19 Richard Biener <rguenther@suse.de>
3984
3985 PR tree-optimization/77290
3986 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
3987 Fix flag_tree_parallelize_loops check.
3988
3989 2016-08-19 Richard Biener <rguenther@suse.de>
3990
3991 * match.pd (x | 0 -> x): Add.
3992
3993 2016-08-19 Richard Biener <rguenther@suse.de>
3994
3995 PR tree-optimization/77286
3996 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
3997 Deal with virtual PHIs being out-of-order.
3998
3999 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4000
4001 * doc/invoke.texi (fverbose-asm): Note that source code lines
4002 are emitted, and provide an example.
4003 * final.c (asm_show_source): New function.
4004 (final_scan_insn): Call asm_show_source.
4005
4006 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4007
4008 * diagnostic-show-locus.c (colorizer::colorizer): Replace diagnostic
4009 param with diagnostic_kind.
4010 (class colorizer): Similarly replace field m_diagnostic with
4011 m_diagnostic_kind.
4012 (colorizer::colorizer): Replace diagnostic
4013 param with diagnostic_kind.
4014 (colorizer::begin_state): Update for above field change.
4015 (layout::layout): Replace diagnostic param with rich_location *
4016 and diagnostic_kind.
4017 (diagnostic_show_locus): Replace diagnostic param with richloc
4018 and diagnostic_kind.
4019 (class selftest::test_diagnostic_context): New class.
4020 (selftest::test_diagnostic_show_locus_unknown_location): New
4021 function.
4022 (selftest::test_one_liner_simple_caret): New function.
4023 (selftest::test_one_liner_caret_and_range): New function.
4024 (selftest::test_one_liner_multiple_carets_and_ranges): New
4025 function.
4026 (selftest::test_one_liner_fixit_remove): New function.
4027 (selftest::test_one_liner_fixit_replace): New function.
4028 (selftest::test_diagnostic_show_locus_one_liner): New function.
4029 (selftest::diagnostic_show_locus_c_tests): Call the new test
4030 functions.
4031 * diagnostic.c (diagnostic_initialize): Initialize
4032 colorize_source_p, show_ruler_p and parseable_fixits_p.
4033 (default_diagnostic_finalizer): Update for change to
4034 diagnostic_show_locus.
4035 (diagnostic_append_note): Likewise.
4036 * diagnostic.h (diagnostic_show_locus): Replace
4037 const diagnostic_info * param with location * and diagnostic_t.
4038
4039 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4040
4041 * input.c (saved_line_table): New global.
4042 (class selftest::temp_line_table): Rename to line_table_test and
4043 move declaration to selftest.h, and drop field m_old_line_table.
4044 (selftest::temp_line_table::temp_line_table): Rename ctor to...
4045 (selftest::line_table_test::line_table_test): ...this. Add a
4046 default ctor. Store current value of line_table within
4047 saved_line_table.
4048 (selftest::temp_line_table::~temp_line_table): Rename dtor to...
4049 (selftest::line_table_test::~line_table_test): ...this, and
4050 restore line_table from the saved_line_table, rather than
4051 m_old_line_table.
4052 (selftest::test_accessing_ordinary_linemaps): Update for above
4053 renaming.
4054 (selftest::test_lexer): Likewise.
4055 (struct selftest::lexer_test): Likewise.
4056 (selftest::lexer_test::lexer_test): Likewise.
4057 (selftest::input_c_tests): Move the looping over test cases from
4058 here into...
4059 (selftest::for_each_line_table_case): New function.
4060 * input.h (saved_line_table): New decl.
4061 * selftest.h (struct selftest::line_table_case): New forward decl.
4062 (class selftest::line_table_test): New class, moved here from
4063 selftest::temp_line_table in input.c, and renamed.
4064 (selftest::for_each_line_table_case): New decl.
4065
4066 2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
4067
4068 PR target/72839
4069 * config/i386/i386.c (lakemont_cost): Set MOVE_RATIO to 17.
4070
4071 2016-08-18 Chung-Lin Tang <cltang@codesourcery.com>
4072
4073 PR middle-end/70895
4074 * gimplify.c (omp_add_variable): Adjust/add variable mapping on
4075 enclosing parallel construct for reduction variables on OpenACC loop
4076 directives.
4077
4078 2016-08-18 Pierre-Marie de Rodat <derodat@adacore.com>
4079
4080 * dwarf2out.c (copy_dwarf_procedure): Remove obsolete comment.
4081 (new_dwarf_proc_die): Emit DW_TAG_dwarf_procedure DIEs even for
4082 -gdwarf-3.
4083 (function_to_dwarf_procedure): Update comment.
4084
4085 2016-08-18 David Malcolm <dmalcolm@redhat.com>
4086
4087 * input.c (diagnostics_file_cache_forcibly_evict_file): New
4088 function.
4089 * input.h (diagnostics_file_cache_forcibly_evict_file): New
4090 declaration.
4091 * selftest.c (selftest::temp_source_file::~temp_source_file):
4092 Evict m_filename from the diagnostic file cache.
4093
4094 2016-08-18 Richard Biener <rguenther@suse.de>
4095
4096 * tree-pass.h (make_pass_materialize_all_clones): Declare.
4097 * ipa.c (pass_data_materialize_all_clones, pass_materialize_all_clones,
4098 make_pass_materialize_all_clones): New simple IPA pass encapsulating
4099 clone materialization.
4100 * passes.def (all_late_ipa_passes): Start with
4101 pass_materialize_all_clones.
4102 * cgraphunit.c (symbol_table::compile): Remove call to
4103 materialize_all_clones.
4104 * tree-into-ssa.c: Include statistics.h.
4105 (update_ssa): Count number of times we do incremental/rewrite
4106 SSA update.
4107
4108 2016-08-18 Richard Biener <rguenther@suse.de>
4109
4110 PR tree-optimization/77282
4111 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4112 When doing auto-parallelizing also prevent use of PHIs that
4113 carry dependences across loop backedges.
4114
4115 2016-08-18 Tamar Christina <tamar.christina@arm.com>
4116 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4117
4118 * varasm.c (default_use_anchors_for_symbol_p): Reject too large decls.
4119
4120 2016-08-18 Richard Biener <rguenther@suse.de>
4121
4122 * ssa-iterators.h (ssa_vuse_operand): New inline.
4123 * tree-if-conv.c (ifc_temp_var): Update virtual operand.
4124 (predicate_all_scalar_phis): Use remove_phi_node to remove
4125 phi nodes predicated. Delay removing virtual PHIs.
4126 (predicate_mem_writes): Update virtual operands.
4127 (combine_blocks): Likewise. Propagate out remaining virtual PHIs.
4128 (tree_if_conversion): Do not rewrite virtual SSA form.
4129 * tree-phinodes.c (release_phi_node): Make static.
4130 * tree-phinodes.h (release_phi_node): Remove.
4131
4132 2016-08-18 Jakub Jelinek <jakub@redhat.com>
4133
4134 * config/i386/i386.c (enum ix86_builtins): Remove IX86_BUILTIN_*
4135 codes that appear in bdesc_* arrays, instead include i386-builtin.def
4136 twice to define those.
4137 (bdesc_comi, bdesc_pcmpestr, bdesc_pcmpistr, bdesc_special_args,
4138 bdesc_args, bdesc_round_args, bdesc_mpx, bdesc_mpx_const,
4139 bdesc_multi_arg): Define by including i386-builtin.def the third time.
4140 * config/i386/i386-builtin.def: New file.
4141
4142 2016-08-17 David Malcolm <dmalcolm@redhat.com>
4143
4144 * input.c (get_source_range_for_char): Rename to...
4145 (selftest::get_source_range_for_char): ...this, and move within
4146 the #if CHECKING_P guard.
4147 (get_num_source_ranges_for_substring): Rename to...
4148 (selftest::get_num_source_ranges_for_substring): ...this, move
4149 within the #if CHECKING_P guard, and make static.
4150 (selftest::assert_num_substring_ranges): Initialize
4151 actual_num_ranges.
4152
4153 2016-08-18 Alan Modra <amodra@gmail.com>
4154
4155 PR rtl-optimization/72771
4156 * reload.c (find_reloads): Don't assume that a subreg mem is OK
4157 when find_reloads_toplev returns address_reloaded==-1.
4158 (alternative_allows_const_pool_ref): Update comment.
4159
4160 2015-08-17 Alan Hayward <alan.hayward@arm.com>
4161
4162 PR tree-optimization/71752
4163 * tree-vect-loop.c (vectorizable_reduction): Keep SLP operand ordering.
4164 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands.
4165
4166 2016-08-17 Jakub Jelinek <jakub@redhat.com>
4167
4168 * gimple-fold.c (gimple_fold_call): Use gimple_call_noreturn_p
4169 instead of testing ECF_NORETURN bit in gimple_call_flags.
4170 * tree-cfg.c (make_edges_bb, execute_fixup_cfg): Likewise.
4171 * predict.c (tree_bb_level_predictions): Likewise.
4172 * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
4173
4174 PR middle-end/77259
4175 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children): If
4176 turning a call into __builtin_unreachable-like noreturn call, adjust
4177 gimple_call_set_fntype.
4178 * tree-cfgcleanup.c (fixup_noreturn_call): Remove lhs also if
4179 gimple_call_fntype has void return type.
4180
4181 2016-08-17 Chung-Lin Tang <cltang@codesourcery.com>
4182
4183 * omp-low.c (lower_oacc_reductions): Adjust variable lookup to use
4184 maybe_lookup_decl, to handle nested acc loop directives.
4185
4186 2016-08-17 Richard Biener <rguenther@suse.de>
4187
4188 PR tree-optimization/76490
4189 * tree-vrp.c (update_value_range): Preserve overflow infinities
4190 when intersecting with ranges from get_range_info.
4191 (operand_less_p): Handle overflow infinities correctly.
4192 (value_range_constant_singleton): Use vrp_operand_equal_p
4193 to handle overflow max/min correctly.
4194 (vrp_valueize): Likewise.
4195 (union_ranges): Likewise.
4196 (intersect_ranges): Likewise.
4197 (vrp_visit_phi_node): Improve iteration limitation to only
4198 apply when we'll possibly re-visit the PHI via a changed argument
4199 on the backedge.
4200
4201 2016-08-17 Thomas Preud'homme <thomas.preudhomme@arm.com>
4202
4203 * config/arm/t-aprofile (MULTILIB_EXCEPTIONS): Rewrite into ...
4204 (MULTILIB_REQUIRED): This by specifying multilib needing to be built
4205 rather than those that should not be built.
4206
4207 2016-08-17 Stanislaw Halik <sthalik@misaki.pl>
4208
4209 PR target/66488
4210 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Define if __x86_64__.
4211
4212 2016-08-17 Richard Biener <rguenther@suse.de>
4213
4214 * tree-ssa.c: Include tree-cfg.h and tree-dfa.h.
4215 (verify_vssa): New function verifying virtual SSA form.
4216 (verify_ssa): Call it.
4217 * tree-ssa-loop-manip.c (slpeel_update_phi_nodes_for_guard2):
4218 Do not apply loop-closed SSA handling to virtuals.
4219 * ssa-iterators.h (op_iter_init): Handle GIMPLE_TRANSACTION.
4220 * tree-into-ssa.c (prepare_use_sites_for): Skip virtual SSA names
4221 when rewriting their symbol.
4222 (prepare_def_site_for): Likewise.
4223 * tree-chkp-opt.c (chkp_reduce_bounds_lifetime): Clear virtual
4224 operands of moved stmts.
4225
4226 2016-08-17 Richard Biener <rguenther@suse.de>
4227
4228 PR tree-optimization/23855
4229 * tree-ssa-loop-unswitch.c: Include tree-ssa-loop-manip.h.
4230 (tree_unswitch_outer_loop): Iterate find_loop_guard as long as we
4231 find guards to hoist. Do not update SSA form but rewrite virtuals
4232 into loop closed SSA.
4233 (find_loop_guard): Adjust to skip already hoisted guards. Do
4234 not mark virtuals for renaming or update SSA form.
4235
4236 2016-08-17 Martin Liska <mliska@suse.cz>
4237
4238 * coverage.c (get_gcov_type): Replace GCOV_TYPE_SIZE with
4239 a LONG_LONG_TYPE_SIZE comparison.
4240 * gcov-io.h: Remove macro definitions.
4241 * tree-profile.c (gimple_gen_edge_profiler): Replace usage
4242 of GCOV_TYPE_ATOMIC_FETCH_ADD with a LONG_LONG_TYPE_SIZE
4243 comparison.
4244
4245 2016-08-16 Jakub Jelinek <jakub@redhat.com>
4246
4247 * config/i386/i386.c (enum ix86_builtins): Reorder enumerators, so
4248 that builtins not mentioned in bdesc_* arrays come first, then
4249 the ones mentioned in bdesc_* arrays in the order they appear in
4250 the arrays in between IX86_BUILTIN__BDESC_*_FIRST and
4251 IX86_BUILTIN__BDESC_*_LAST enumerator.
4252 (bdesc_mpx): Fix up a comment typo.
4253 (bdesc_multi_arg): Remove __builtin_ia32_vpcomne[bwdq] and
4254 __builtin_ia32_vpcomneu[bwdq] builtins.
4255 (BDESC_VERIFY, BDESC_VERIFYS): Define.
4256 (ix86_init_mmx_sse_builtins, ix86_init_mpx_builtins): Verify
4257 enum ix86_builtins ordering.
4258 (ix86_expand_builtin): Use enum ix86_builtins ordering assumption
4259 for direct bdesc_* array member access instead of searching all the
4260 arrays until an fcode match is found.
4261
4262 2016-08-16 Uros Bizjak <ubizjak@gmail.com>
4263
4264 * config/i386/i386.md (*ashl<mode>3_mask): Rewrite define_insn
4265 pattern as define_insn_and_split. Split insn before reload to
4266 ashl<mode>3_1.
4267 (*<shift_insn><mode>3_mask): Ditto. Split insn before reload to
4268 <shift_insn><mode>3_1.
4269 (*<rotate_insn><mode>3_mask): Ditto. Split insn before reload to
4270 <rotate_insn><mode>3_1.
4271
4272 2016-08-16 David Malcolm <dmalcolm@redhat.com>
4273
4274 PR c/72857
4275 * input.c (get_source_range_for_substring): Rename to...
4276 (get_source_location_for_substring): ...this, adding param
4277 "caret_idx", and converting output param from source_range * to
4278 location_t *.
4279 (get_source_range_for_char): New function.
4280 (get_num_source_ranges_for_substring): Update comment to reflect
4281 above renaming.
4282 (assert_char_at_range): Update to use get_source_range_for_char
4283 rather than get_source_range_for_substring.
4284 (test_lexer_string_locations_concatenation_2): Likewise.
4285 * substring-locations.h (get_source_range_for_substring): Rename
4286 to...
4287 (get_source_location_for_substring): ...this, and adding param
4288 "caret_idx", and converting output param from source_range * to
4289 location_t *.
4290
4291 2016-08-16 David Malcolm <dmalcolm@redhat.com>
4292
4293 * input.c (class selftest::temp_source_file): Move to
4294 selftest.h.
4295 (selftest::temp_source_file::temp_source_file): Move to
4296 selftest.c.
4297 (selftest::temp_source_file::~temp_source_file): Likewise.
4298 * selftest.c (selftest::temp_source_file::temp_source_file): Move
4299 here from input.c.
4300 (selftest::temp_source_file::~temp_source_file): Likewise.
4301 * selftest.h (class selftest::temp_source_file): Move here from
4302 input.c
4303
4304 2016-08-16 Jakub Jelinek <jakub@redhat.com>
4305
4306 PR target/71910
4307 * tree-cfg.c (execute_fixup_cfg): Add node variable, use it. Before
4308 inlining, add cgraph edge for the added __builtin_unreachable call.
4309
4310 PR middle-end/67485
4311 * expmed.c (expand_mult_const): Change val_so_far's type to UHWI,
4312 only cast it to SHWI for the final comparison.
4313
4314 2016-08-16 Martin Liska <mliska@suse.cz>
4315
4316 PR gcov-profile/36412
4317 * doc/gcov.texi: Document --hash-filenames(-x).
4318 * gcov.c (print_usage): Add the option.
4319 (process_args): Process the option, sort options alphabetically.
4320 (md5sum_to_hex): New function.
4321 (make_gcov_file_name): Do the md5sum and append it to a
4322 filename.
4323
4324 2016-08-16 Bin Cheng <bin.cheng@arm.com>
4325
4326 PR tree-optimization/69848
4327 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Invert NE
4328 and swtich operands to avoid additional NOT instruction.
4329 (vcond<v_cmp_mixed><mode>): Ditto.
4330 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4331
4332 2016-08-16 Eric Botcazou <ebotcazou@adacore.com>
4333
4334 * doc/install.texi (*-*-solaris2*): Adjust latest change.
4335
4336 2016-08-16 Richard Biener <rguenther@suse.de>
4337
4338 PR tree-optimization/76783
4339 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear
4340 BB visited flags at start.
4341
4342 2016-08-16 Bin Cheng <bin.cheng@arm.com>
4343
4344 PR tree-optimization/72817
4345 PR tree-optimization/73450
4346 * tree-ssa-loop-niter.c (number_of_iterations_ne): Check
4347 multiple_of_p for adjusted IV.base.
4348
4349 2016-08-15 Uros Bizjak <ubizjak@gmail.com>
4350
4351 PR target/72867
4352 * config/i386/sse.md (<code><mode>3<mask_name><round_saeonly_name>):
4353 Emit ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>
4354 for !flag_finite_math_only or flag_signed_zeros.
4355 (*<code><mode>3<mask_name><round_saeonly_name>): Rename from
4356 *<code><mode>3_finite<mask_name><round_saeonly_name>. Do not
4357 depend on flag_finite_math_only.
4358 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>):
4359 New insn pattern.
4360 (*<code><mode>3<mask_name><round_saeonly_name>): Remove.
4361 (*ieee_smin<mode>3): Ditto.
4362 (*ieee_smax<mode>3): Ditto.
4363 * config/i386/mmx.md (mmx_<code>v2sf3): Emit
4364 mmx_ieee_<ieee_maxmin>v2sf3 for !flag_finite_math_only or
4365 flag_signed_zeros.
4366 (*mmx_<code>v2sf3): Rename from *mmx_<code>v2sf3_finite. Do not
4367 depend on flag_finite_math_only.
4368 (mmx_ieee_<ieee_maxmin>v2sf3): New insn pattern.
4369 (*mmx_<code>v2sf3): Remove.
4370 * config/i386/subst.md (round_saeonly_mask_arg3): New subst attribute.
4371 * config/i386/i386.c (ix86_expand_sse_fp_mimnax): Check
4372 flag_signed_zeros instead of !flag_unsafe_math_optimizations.
4373
4374 2016-08-15 Segher Boessenkool <segher@kernel.crashing.org>
4375
4376 PR rtl-optimization/73650
4377 * lra-constraints.c (simple_move_p): If the insn is multiple_sets
4378 it is not a simple move.
4379
4380 2016-08-15 Martin Liska <mliska@suse.cz>
4381
4382 PR driver/72765
4383 * gcc.c (do_spec_1): Call save_string with the right size.
4384 (save_string): Do an assert about string we copy.
4385
4386 2016-08-15 Richard Biener <rguenther@suse.de>
4387
4388 * ree.c (rest_of_handle_ree): Remove redundant timevar push/pop.
4389 * config/i386/i386.c (pass_data_insert_vzeroupper): Account to
4390 TV_MACH_DEP.
4391 (pass_data_stv): Likewise.
4392
4393 2016-08-15 Richard Biener <rguenther@suse.de>
4394
4395 PR tree-optimization/73434
4396 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Preserve
4397 TBAA info on the base when forwarding a non-invariant address.
4398
4399 2016-08-15 Jakub Jelinek <jakub@redhat.com>
4400
4401 * dwarf2out.c (struct checksum_attributes): Add
4402 at_string_length_bit_size and at_string_length_byte_size fields.
4403 (collect_checksum_attributes): Handle DW_AT_string_length_bit_size
4404 and DW_AT_string_length_byte_size.
4405 (die_checksum_ordered): Handle at_string_length_bit_size and
4406 at_string_length_byte_size.
4407 (gen_array_type_die): For dwarf_version >= 5 emit
4408 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4409 (adjust_string_types): For dwarf_version >= 5 remove
4410 DW_AT_string_length_byte_size instead of DW_AT_byte_size.
4411 (resolve_addr): Likewise.
4412
4413 PR debug/71906
4414 * dwarf2out.c (string_types): New variable.
4415 (gen_array_type_die): Change early_dwarf handling of
4416 DW_AT_string_length, create DW_OP_call4 referencing the
4417 length var temporarily. Handle parameters that are pointers
4418 to string length.
4419 (adjust_string_types): New function.
4420 (gen_subprogram_die): Temporarily set string_types to local var,
4421 call adjust_string_types if needed.
4422 (non_dwarf_expression, copy_deref_exprloc, optimize_string_length):
4423 New functions.
4424 (resolve_addr): Adjust DW_AT_string_length if it is DW_OP_call4.
4425
4426 2016-08-15 Eric Botcazou <ebotcazou@adacore.com>
4427
4428 * doc/install.texi (*-*-solaris2*): Fix version number and document
4429 requirement on GNU make for building libjava with the Solaris linker.
4430
4431 2016-08-15 Martin Liska <mliska@suse.cz>
4432 Jakub Jelinek <jakub@redhat.com>
4433
4434 PR tree-optimization/72824
4435 * tree-loop-distribution.c (const_with_all_bytes_same)
4436 <case VECTOR_CST>: Fix a typo.
4437
4438 2016-08-14 Uros Bizjak <ubizjak@gmail.com>
4439
4440 PR target/76342
4441 * config/i386/avx512fintrin.h (_mm512_undefined_epi32):
4442 Renamed from _mm512_undefined_si512.
4443 (_mm_undefined_si512): New definition.
4444
4445 2016-08-13 Richard Biener <rguenther@suse.de>
4446
4447 * tree-ssa-forwprop.c (pass_forwprop::execute): Propagate
4448 into PHIs and update the lattice for its def.
4449
4450 2016-08-12 Jakub Jelinek <jakub@redhat.com>
4451
4452 PR c/71512
4453 * ubsan.c (instrument_si_overflow): Pass true instead of false
4454 to gsi_replace.
4455 (pass_ubsan::execute): Call gimple_purge_dead_eh_edges at the end
4456 of bbs. Return TODO_cleanup_cfg if any returned true.
4457
4458 2016-08-12 Michael Meissner <meissner@linux.vnet.ibm.com>
4459
4460 * config/rs6000/vsx.md (vsx_concat_<mode>): Add support for the
4461 ISA 3.0 MTVSRDD instruction.
4462 (vsx_splat_<mode>): Change cpu type of MTVSRDD instruction to
4463 vecperm.
4464
4465 2016-08-12 Bernd Edlinger <bernd.edlinger@hotmail.de>
4466
4467 PR tree-optimization/71083
4468 * tree-predcom.c (ref_at_iteration): Use a COMPONENT_REF for the
4469 bitfield access when possible.
4470
4471 2016-08-12 Patrick Palka <ppalka@gcc.gnu.org>
4472
4473 PR middle-end/71654
4474 * match.pd ((T)A CMP (T)B -> A CMP B): Allow (T)A to be a
4475 sign-changing cast from a shorter unsigned type to a wider
4476 signed type.
4477
4478 2016-08-12 Jakub Jelinek <jakub@redhat.com>
4479
4480 * config/i386/sse.md (avx512dq_vextract<shuffletype>64x2_1_maskm,
4481 vec_extract_hi_<mode>_mask, vec_extract_lo_<mode>_mask,
4482 vec_extract_hi_<mode>_mask): Use Yk constraint instead of k.
4483
4484 2016-08-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4485
4486 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
4487 Correct costs for vec_construct.
4488
4489 2016-08-12 Bin Cheng <bin.cheng@arm.com>
4490
4491 PR tree-optimization/69848
4492 * tree-vectorizer.h (enum vect_def_type): New condition reduction
4493 type CONST_COND_REDUCTION.
4494 * tree-vect-loop.c (vectorizable_reduction): Support new condition
4495 reudction type CONST_COND_REDUCTION.
4496
4497 2016-08-12 Richard Biener <rguenther@suse.de>
4498
4499 PR tree-optimization/57326
4500 * tree-ssa-pre.c (fully_constant_expression): Handle simplification
4501 returning an SSA name.
4502 (phi_translate_1): When fully_constant_expression returns a NAME
4503 make sure we have a leader for it.
4504
4505 2016-08-12 Martin Liska <mliska@suse.cz>
4506 Adam Fineman <afineman@afineman.com>
4507
4508 * gcov.c (process_file): Create .gcov file when .gcda
4509 file is missing.
4510
4511 2016-08-12 Marek Polacek <polacek@redhat.com>
4512
4513 PR c/7652
4514 * alias.c (find_base_value): Adjust fall through comment.
4515 * cfgexpand.c (expand_debug_expr): Likewise.
4516 * combine.c (find_split_point): Likewise.
4517 (expand_compound_operation): Likewise. Add FALLTHRU.
4518 (make_compound_operation): Adjust fall through comment.
4519 (canon_reg_for_combine): Add FALLTHRU.
4520 (force_to_mode): Adjust fall through comment.
4521 (simplify_shift_const_1): Likewise.
4522 (simplify_comparison): Likewise.
4523 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
4524 FALLTHRU.
4525 * config/aarch64/predicates.md: Likewise.
4526 * config/i386/i386.c (function_arg_advance_32): Likewise.
4527 (ix86_gimplify_va_arg): Likewise.
4528 (print_reg): Likewise.
4529 (ix86_print_operand): Likewise.
4530 (ix86_build_const_vector): Likewise.
4531 (ix86_expand_branch): Likewise.
4532 (ix86_sched_init_global): Adjust fall through comment.
4533 (ix86_expand_args_builtin): Add FALLTHRU.
4534 (ix86_expand_builtin): Likewise.
4535 (ix86_expand_vector_init_one_var): Likewise.
4536 * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
4537 (rs6000_adjust_cost): Likewise.
4538 (insn_must_be_first_in_group): Likewise.
4539 * config/rs6000/rs6000.md: Likewise. Adjust fall through comment.
4540 * dbxout.c (dbxout_symbol): Adjust fall through comment.
4541 * df-scan.c (df_uses_record): Likewise.
4542 * dojump.c (do_jump): Add FALLTHRU.
4543 * dwarf2out.c (mem_loc_descriptor): Likewise. Adjust fall through
4544 comment.
4545 (resolve_args_picking_1): Adjust fall through comment.
4546 (loc_list_from_tree_1): Likewise.
4547 * expmed.c (make_tree): Likewise.
4548 * expr.c (expand_expr_real_2): Add FALLTHRU.
4549 (expand_expr_real_1): Likewise. Adjust fall through comment.
4550 * fold-const.c (const_binop): Adjust fall through comment.
4551 (fold_truth_not_expr): Likewise.
4552 (fold_cond_expr_with_comparison): Add FALLTHRU.
4553 (fold_binary_loc): Likewise.
4554 (contains_label_1): Adjust fall through comment.
4555 (multiple_of_p): Likewise.
4556 * gcov-tool.c (process_args): Add FALLTHRU.
4557 * genattrtab.c (check_attr_test): Likewise.
4558 (write_test_expr): Likewise.
4559 * genconfig.c (walk_insn_part): Likewise.
4560 * genpreds.c (validate_exp): Adjust fall through comment.
4561 (needs_variable): Likewise.
4562 * gensupport.c (get_alternatives_number): Add FALLTHRU.
4563 (subst_dup): Likewise.
4564 * gimple-pretty-print.c (dump_gimple_assign): Likewise.
4565 * gimplify.c (gimplify_addr_expr): Adjust fall through comment.
4566 (gimplify_scan_omp_clauses): Add FALLTHRU.
4567 (goa_stabilize_expr): Likewise.
4568 * graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
4569 through comment.
4570 * hsa-gen.c (get_address_from_value): Likewise.
4571 * ipa-icf.c (sem_function::hash_stmt): Likewise.
4572 * ira.c (ira_setup_alts): Add FALLTHRU.
4573 * lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
4574 comment.
4575 * lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
4576 * opts.c (common_handle_option): Likewise.
4577 * read-rtl.c (read_rtx_code): Likewise.
4578 * real.c (round_for_format): Likewise.
4579 * recog.c (asm_operand_ok): Likewise.
4580 * reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
4581 * reload1.c (set_label_offsets): Likewise.
4582 (eliminate_regs_1): Likewise.
4583 (reload_reg_reaches_end_p): Likewise.
4584 * rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
4585 (rtx_cost): Likewise.
4586 * sched-rgn.c (is_exception_free): Likewise.
4587 * simplify-rtx.c (simplify_rtx): Adjust fall through comment.
4588 * stor-layout.c (int_mode_for_mode): Likewise.
4589 * toplev.c (print_to_asm_out_file): Likewise.
4590 (print_to_stderr): Likewise.
4591 * tree-cfg.c (gimple_verify_flow_info): Likewise.
4592 * tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
4593 (chrec_fold_multiply): Likewise.
4594 (evolution_function_is_invariant_rec_p): Likewise.
4595 (for_each_scev_op): Likewise.
4596 * tree-data-ref.c (siv_subscript_p): Likewise.
4597 (get_references_in_stmt): Likewise.
4598 * tree.c (find_placeholder_in_expr): Adjust fall through comment.
4599 (substitute_in_expr): Likewise.
4600 (type_cache_hasher::equal): Likewise.
4601 (walk_type_fields): Likewise.
4602 * var-tracking.c (adjust_mems): Add FALLTHRU.
4603 (set_dv_changed): Adjust fall through comment.
4604 * varasm.c (default_function_section): Add FALLTHRU.
4605
4606 2016-08-12 Marek Polacek <polacek@redhat.com>
4607
4608 PR c/7652
4609 * tree-complex.c (expand_complex_division): Add missing break.
4610
4611 2016-08-12 Richard Biener <rguenther@suse.de>
4612
4613 * passes.c (execute_todo): Do not push/pop TV_TODO.
4614 (execute_one_ipa_transform_pass): Move timevar push/pop TODO execution.
4615 (execute_one_pass): Likewise.
4616 * common.opt (ftime-report-details): New switch.
4617 * doc/invoke.texi (ftime-report-details): Document.
4618 * timevar.h (timer::print_row): Adjust signature.
4619 (timer::all_zero): New static helper.
4620 (timer::child_map_t): New typedef.
4621 (timer::time_var_def): Add children field.
4622 * timevar.c (timer::named_items::print): Adjust.
4623 (timer::~timer): Free timevar recorded children.
4624 (timer::pop_internal): When -ftime-report-details record
4625 time spent in sub-timevars.
4626 (timer::print_row): Adjust.
4627 (timer::print): Print sub-timevar stats, use all_zero.
4628 * timevar.def (TV_TODO): Remove.
4629
4630 2016-08-12 Richard Biener <rguenther@suse.de>
4631
4632 PR tree-optimization/72851
4633 * tree-ssa-propagate.c: Include cfganal.h. Rewrite block and stmt
4634 worklists to use bitmaps indexed in execution order.
4635 (executable_blocks, cfg_blocks_num, cfg_blocks_tail, cfg_blocks_head,
4636 bb_in_list, interesting_ssa_edges, varying_ssa_edges): Remove.
4637 (cfg_blocks): Make a bitmap.
4638 (bb_to_cfg_order, cfg_order_to_bb, ssa_edge_worklist, uid_to_stmt):
4639 New globals.
4640 (cfg_blocks_empty_p): Adjust.
4641 (cfg_blocks_add): Likewise.
4642 (cfg_blocks_get): Likewise.
4643 (add_ssa_edge): Likewise.
4644 (add_control_edge): Likewise.
4645 (simulate_stmt): Likewise.
4646 (process_ssa_edge_worklist): Likewise.
4647 (simulate_block): Likewise.
4648 (ssa_prop_init): Compute PRE order and stmt UIDs.
4649 (ssa_prop_fini): Adjust.
4650 (ssa_propagate): Adjust.
4651
4652 2016-08-12 Richard Biener <rguenther@suse.de>
4653
4654 * tree-vrp.c (vrp_visit_phi_node): Allow a last iteration if
4655 the currently executable edges have fixed ranges. Always
4656 go through update_value_range.
4657
4658 2016-08-12 Alexandre Oliva <aoliva@redhat.com>
4659
4660 PR debug/63240
4661 * langhooks-def.h
4662 (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Const_tree-ify.
4663 (LANG_HOOKS_FUNCTION_DECL_DELETED_P): Likewise.
4664 (LANG_HOOKS_FUNCTION_DECL_DEFAULTED): Set default.
4665 (LANG_HOOKS_DECLS): Add it.
4666 * langhooks.h (struct lang_hooks_for_decls): Add
4667 function_decl_defaulted. Const_tree-ify
4668 function_decl_explicit_p and function_decl_deleted_p.
4669 * dwarf2out.c (gen_subprogram_die): Add DW_AT_defaulted
4670 attribute. Add DW_AT_deleted instead of DW_AT_GNU_deleted,
4671 also at strict DWARF v5.
4672
4673 PR debug/55641
4674 * dwarf2out.c (decl_quals): Don't map TREE_READONLY to
4675 TYPE_QUAL_CONST in reference-typed decls.
4676
4677 PR debug/49366
4678 * dwarf2out.c (loc_list_from_tree_1): Expand some CONSTRUCTORs
4679 in DW_OP_pieces, just enough to handle pointers to member
4680 functions.
4681 (gen_remaining_tmpl_value_param_die_attribute): Use a location
4682 expression on DWARFv5 if a constant value doesn't work.
4683
4684 2016-08-11 David Malcolm <dmalcolm@redhat.com>
4685
4686 * selftest-run-tests.c (selftest::run_tests): Call selftest_c_tests.
4687 * selftest.c (selftest::test_assertions): New function.
4688 (selftest::selftest_c_tests): New function.
4689 * selftest.h (selftest::selftest_c_tests): New declaration.
4690
4691 2016-08-11 Richard Biener <rguenther@suse.de>
4692 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4693
4694 PR rtl-optimization/72855
4695 * df-core.c (df_verify): Turn off DF_VERIFY_SCHEDULED at end.
4696
4697 2016-08-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4698
4699 PR target/72863
4700 * vsx.md (vsx_load_<mode>): For P8LE, emit swaps at expand time.
4701 (vsx_store_<mode>): Likewise.
4702
4703 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
4704
4705 * config/i386/i386.c (timode_scalar_to_vector_candidate_p): Allow
4706 TImode CONST_WIDE_INT store.
4707 (timode_scalar_chain::convert_insn): Handle CONST_WIDE_INT store.
4708
4709 2015-08-11 H.J. Lu <hongjiu.lu@intel.com>
4710
4711 * config/i386/i386.h (MOVE_MAX_PIECES): Use TImode in 64-bit
4712 mode if unaligned SSE load and store are optimal.
4713
4714 2016-08-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
4715
4716 PR tree-optimization/71083
4717 * tree-predcom.c (ref_at_iteration): Correctly align the
4718 reference type.
4719
4720 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4721
4722 * config/s390/s390-builtin-types.def: Add INT128 types.
4723 * config/s390/s390-builtins.def: Add INT128 variants for the add
4724 sub low-level builtins dealing with TImode.
4725 * config/s390/s390.c (s390_expand_builtin): Allow mode conversions
4726 via subreg when expanding a builtin.
4727 * config/s390/s390.md: Remove UNSPEC_VEC_ADDC_U128,
4728 UNSPEC_VEC_SUB_U128, and UNSPEC_VEC_SUBC_U128 constants.
4729 Fix comment.
4730 * config/s390/vecintrin.h: Adjust builtin names accordingly.
4731 * config/s390/vx-builtins.md ("vec_add_u128"): Remove expander.
4732 ("vec_addc<mode>", "vec_addc_u128"): Merge to
4733 "vacc<bhfgq>_<mode>".
4734 ("vec_adde_u128"): Rename to "vacq". Change mode to TImode.
4735 ("vec_addec_u128"): Rename to "vacccq". Change mode to TImode.
4736 ("vec_subc<mode>", "vec_subc_u128"): Merge to
4737 "vscbi<bhfgq>_<mode>".
4738 ("vec_sube_u128"): Rename to "vsbiq". Change mode to TImode.
4739 ("vec_subec_u128"): Rename to "vsbcbiq". Change mode to TImode.
4740
4741 2016-08-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4742
4743 * config/s390/s390-builtins.def: Mark last operand of s390_vlvg*
4744
4745 2016-08-11 Bin Cheng <bin.cheng@arm.com>
4746
4747 * config/aarch64/aarch64-simd.md (vcond<mode><mode>): Delete
4748 unused declaration.
4749 (vcond<v_cmp_mixed><mode>): Ditto.
4750 (vcondu<mode><mode>, vcondu<mode><v_cmp_mixed>): Ditto.
4751
4752 2016-08-11 Bin Cheng <bin.cheng@arm.com>
4753
4754 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Init
4755 variable explicitly, also assert on it before use.
4756
4757 2016-08-11 Richard Biener <rguenther@suse.de>
4758
4759 PR tree-optimization/72772
4760 * cfgloopmanip.c (create_preheader): Use split_edge if there
4761 is a single loop entry, avoiding degenerate PHIs.
4762
4763 2016-08-11 Richard Biener <rguenther@suse.de>
4764
4765 * tree-ssa-threadbackward.c (pass_data_thread_jumps): Remove
4766 unconditional TODO_cleanup_cfg.
4767 (pass_thread_jumps::execute): Initialize loops, perform a CFG
4768 cleanup only if we threaded a jump.
4769
4770 2016-08-11 Alan Modra <amodra@gmail.com>
4771
4772 PR target/71680
4773 * lra-constraints.c (simplify_operand_subreg): Allow subreg
4774 mode for mem when SLOW_UNALIGNED_ACCESS if inner mode is also
4775 slow. Emit two reloads for slow mem case, first loading in
4776 fast innermode, then converting to required mode.
4777
4778 2016-08-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
4779
4780 * config/rs6000/altivec.h (vec_extract_exp): New macro.
4781 (vec_extract_sig): New macro.
4782 (vec_insert_exp): New macro.
4783 (vec_test_data_class): New macro.
4784 (scalar_extract_exp): New macro.
4785 (scalar_extract_sig): New macro.
4786 (scalar_insert_exp): New macro.
4787 (scalar_test_data_class): New macro.
4788 (scalar_test_neg): New macro.
4789 (scalar_cmp_exp_gt): New macro.
4790 (scalar_cmp_exp_lt): New macro.
4791 (scalar_cmp_exp_eq): New macro.
4792 (scalar_cmp_exp_unordered): New macro.
4793 * config/rs6000/predicates.md (u7bit_cint_operand): New predicate
4794 to enforce constraint that operand is a 7-bit unsigned literal.
4795 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_1): New macro
4796 for power9 built-ins.
4797 (BU_P9V_VSX_2): Likewise.
4798 (BU_P9V_64BIT_VSX_2): Likewise.
4799 (VSEEDP): Add scalar extract exponent support.
4800 (VSEESP): Add scalar extract signature support.
4801 (VSTDCNDP): Add scalar test negative support.
4802 (VSTDCNSP): Likewise.
4803 (VSIEDP): Add scalar insert exponent support.
4804 (VSCEDPGT): Add scalar compare exponent greater than support.
4805 (VSCEDPLT): Add scalar compare exponent less than support.
4806 (VSCEDPEQ): Add scalar compare exponent test-for-equality support.
4807 (VSCEDPUO): Add scalar compare exponent test-for-unordered support.
4808 (VSTDCDP): Add scalar test data class support.
4809 (VSTDCSP): Likewise.
4810 (VSEEDP): Add overload support for scalar extract exponent
4811 operation.
4812 (VSESDP): Add overload support for scalar extract signature
4813 operation.
4814 (VSTDCN): Add overload support for scalar test negative
4815 operation.
4816 (VSTDCNDP): Add overload support for scalar test negative
4817 operation.
4818 (VSTDCNSP): Add overload support for scalar test negative
4819 operation.
4820 (VSIEDP): Add overload support for scalar insert exponent
4821 operation.
4822 (VSTDC): Add overload support for scalar test data class
4823 operation.
4824 (VSTDCDP): Add overload support for scalar test data class
4825 operation.
4826 (VSTDCSP): Add overload support for scalar test data class
4827 opreation.
4828 (VSCEDPGT): Add overload support for scalar compare exponent
4829 greater than operation.
4830 (VSCEDPLT): Add overload support for scalar compare exponent
4831 less than operation.
4832 (VSCEDPEQ): Add overload support for scalar compare exponent
4833 test-for-equality operation.
4834 (VSCEDPUO): Add overload support for scalar compare exponent
4835 test-for-unordered operation.
4836 (VEEDP): Add vector extract exponent support.
4837 (VEESP): Likewise.
4838 (VESDP): Add vector extract significand support.
4839 (VESSP): Likewise.
4840 (VIEDP): Add vector insert exponent support.
4841 (VIESP): Likewise.
4842 (VTDCDP): Add vector test data class support.
4843 (VTDCSP): Likewise.
4844 (VES): Add overload support for vector extract significand operation.
4845 (VESDP): Likewise.
4846 (VESSP): Likewise
4847 (VEE): Add overload support for vector extract exponent operation.
4848 (VEEDP): Likewise.
4849 (VEESP): Likewise.
4850 (VTDC): Add overload support for vector test data class operation.
4851 (VTDCDP): Likewise.
4852 (VTDCSP): Likewise.
4853 (VIE): Add overload support for vector insert exponent operation.
4854 (VIEDP): Likewise.
4855 (VIESP): Likewise.
4856 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
4857 overloaded binary floating point functions.
4858 (altivec_resolve_overloaded_builtin): Improve error messages to
4859 distinguish between functions not supported in the current
4860 compiler configuration and functions that were invoked with an
4861 invalid parameter combination, and include the built-in function
4862 name in both error messages.
4863 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_name):
4864 New prototype.
4865 * config/rs6000/rs6000.c (rs6000_overloaded_builtin_name): New
4866 function.
4867 (rs6000_expand_binop_builtin): Add check to enforce that argument
4868 2 of the test data class operations is a 7-bit unsigned literal.
4869 (rs6000_invalid_builtin): Add code to issue an error message if a
4870 built-in function that requires the power9_vector and -m32
4871 command-line options is compiled without these options.
4872 * config/rs6000/vsx.md (UNSPEC_VSX_SXEXPDP): New value.
4873 (UNSPEC_VSX_SXSIGDP): New value.
4874 (UNSPEC_VSX_SXSIGPDP): New value.
4875 (UNSPEC_VSX_SIEXPDP): New value.
4876 (UNSPEC_VSX_SCMPEXPDP): New value.
4877 (UNSPEC_VSX_STSTDC): New value.
4878 (UNSPEC_VSX_VXEXP): New value.
4879 (UNSPEC_VSX_VXSIG): New value.
4880 (UNSPEC_VSX_VIEXP): New value.
4881 (UNSPEC_VSX_VTSTDC): New value.
4882 (xsxexpdp): New insn for scalar extract exponent.
4883 (xsxsigdp): New insn for scalar extract significand.
4884 (xsiexpdp): New insn for scalar insert exponent.
4885 (xscmpexpdp_<code>): New expansion for scalar compare exponents.
4886 (*xscmpexpdp): New insn for scalar compare exponents.
4887 (xststdc<Fvsx): New expansion for both single- and
4888 double-precision scalar test data class operations.
4889 (xststdcneg<Fvsx>): New expansion for both single- and
4890 double-precision scalar test for negative value operations.
4891 (*xststdc<Fvsx>): New insn for scalar test data class
4892 operation.
4893 (xvxexp<VSs>): New insn for single- and double-precision
4894 vector extract exponent operation.
4895 (xvxsig<VSs>): New insn for single- and double-precision
4896 vector extract significand operation.
4897 (xviexp<VSs>): New insn for single- and double-precision
4898 vector insert exponent operation.
4899 (xvtstdc<VSs>): New insn for single- and double-precision
4900 vector test data class operation.
4901 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
4902 built-in functions to represent the Power9 binary floating-point
4903 support instructions.
4904
4905 2016-08-10 bin cheng <bin.cheng@arm.com>
4906
4907 * doc/sourcebuild.texi (@item vect_cond_mixed): New item.
4908
4909 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
4910 Renlin Li <renlin.li@arm.com>
4911 Bin Cheng <bin.cheng@arm.com>
4912
4913 * config/aarch64/iterators.md (V_cmp_mixed, v_cmp_mixed): New.
4914 * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Call
4915 gen_vcondv2div2di instead of gen_aarch64_vcond_internalv2div2di.
4916 (aarch64_vcond_internal<mode><mode>): Delete pattern.
4917 (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): Ditto.
4918 (vcond<v_cmp_result><mode>): Ditto.
4919 (vcond<mode><mode>): Re-implement using vec_cmp and vcond_mask.
4920 (vcondu<mode><mode>): Ditto.
4921 (vcond<v_cmp_mixed><mode>): New pattern.
4922 (vcondu<mode><v_cmp_mixed>): New pattern.
4923 (aarch64_cmtst<mode>): Revise comment using aarch64_vcond instead
4924 of aarch64_vcond_internal.
4925
4926 2016-08-10 Alan Lawrence <alan.lawrence@arm.com>
4927 Renlin Li <renlin.li@arm.com>
4928 Bin Cheng <bin.cheng@arm.com>
4929
4930 * config/aarch64/aarch64-simd.md (vec_cmp<mode><mode>): New pattern.
4931 (vec_cmp<mode><v_cmp_result>): New pattern.
4932 (vec_cmpu<mode><mode>): New pattern.
4933 (vcond_mask_<mode><v_cmp_result>): New pattern.
4934
4935 2016-08-10 Yuri Rumyantsev <ysrumyan@gmail.com>
4936
4937 PR tree-optimization/71734
4938 * tree-ssa-loop-im.c (ref_indep_loop_p): Add new argument
4939 REF_LOOP, invoke ref_indep_loop_p_1.
4940 (outermost_indep_loop): Pass LOOP argumnet where REF was defined
4941 to ref_indep_loop_p.
4942 (ref_indep_loop_p_1): Fix commentary, add argument REF_LOOP,
4943 combine it with ref_indep_lopp_p_2, update SAFELEN if only REF
4944 is inside LOOP, do not cache dpendence value for loops with
4945 non-zero SAFELEN.
4946 (ref_indep_loop_p_2): Delete function.
4947 (can_sm_ref_p): Pass LOOP as additional argument to
4948 ref_indep_loop_p.
4949
4950 2016-08-10 Michael Meissner <meissner@linux.vnet.ibm.com>
4951
4952 PR target/72853
4953 * config/rs6000/rs6000.c (mem_operand_ds_form): Add check for op
4954 being an offsettable address.
4955
4956 2016-08-10 Martin Liska <mliska@suse.cz>
4957
4958 PR gcov-profile/58306
4959 * tree-profile.c (gimple_init_edge_profiler): Create conditionally
4960 atomic variants of profile update functions.
4961
4962 2016-08-10 Martin Liska <mliska@suse.cz>
4963
4964 Cherry picked (and modified) from google-4_7 branch
4965 2012-12-26 Rong Xu <xur@google.com>
4966 * common.opt (fprofile-update): Add new flag.
4967 * coretypes.h: Define enum profile_update.
4968 * doc/invoke.texi: Document -fprofile-update.
4969 * gcov-io.h: Declare GCOV_TYPE_ATOMIC_FETCH_ADD and
4970 GCOV_TYPE_ATOMIC_FETCH_ADD_FN.
4971 * tree-profile.c (gimple_init_edge_profiler): Generate
4972 also atomic profiler update.
4973 (gimple_gen_edge_profiler): Likewise.
4974
4975 2016-08-10 David Malcolm <dmalcolm@redhat.com>
4976
4977 * toplev.c (finalize): Set aux_info_file, asm_out_file, and
4978 stack_usage_file to NULL after fclose calls.
4979
4980 2016-08-10 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
4981
4982 PR target/71873
4983 * reload.c (push_reload): Compute subreg_in_class for
4984 subregs of constants and plus expressions. Remove special
4985 handling of SYMBOL_REFs.
4986
4987 2016-08-10 Alan Modra <amodra@gmail.com>
4988
4989 PR target/71680
4990 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return
4991 SImode for TARGET_E500_DOUBLE when given SImode.
4992
4993 2016-08-09 David Wohlferd <dw@LimeGreenSocks.com>
4994
4995 * config/i3836/avx512fintrin.h (_mm512_cvtsepi64_epi32): Remove
4996 unused variable __O.
4997
4998 2016-08-09 Martin Liska <mliska@suse.cz>
4999
5000 * doc/gcov.texi: Change _gcov_dump to __gcov_dump and
5001 _gcov_reset to __gcov_reset.
5002 * doc/gcov-tool.texi: Fix typo.
5003
5004 2016-08-09 Martin Liska <mliska@suse.cz>
5005
5006 * value-prof.c (gimple_divmod_values_to_profile): Do not
5007 instrument MOD histogram if a value is not a SSA name.
5008
5009 2016-08-09 Martin Liska <mliska@suse.cz>
5010
5011 * value-prof.c (dump_histogram_value): Swap pow2 and non-pow2
5012 values.
5013
5014 2016-08-09 Renlin Li <renlin.li@arm.com>
5015
5016 PR middle-end/64971
5017 * calls.c (prepare_call_address): Convert funexp to Pmode when
5018 necessary.
5019 * config/aarch64/aarch64.md (sibcall): Remove fix for PR 64971.
5020 (sibcall_value): Likewise.
5021
5022 2016-08-09 Marek Polacek <polacek@redhat.com>
5023
5024 PR c/7652
5025 * cselib.c (cselib_expand_value_rtx_1): Add return.
5026 * gengtype.c (dbgprint_count_type_at): Likewise.
5027 * hsa-gen.c (gen_hsa_insn_for_internal_fn_call): Likewise.
5028 * reg-stack.c (get_true_reg): Restructure to avoid fallthrough warning.
5029
5030 2016-08-09 Martin Jambor <mjambor@suse.cz>
5031
5032 PR ipa/71981
5033 * ipa-polymorphic-call.c (get_dynamic_type): Bail out gracefully
5034 if instance is a MEM_REF.
5035
5036 2016-08-09 Uros Bizjak <ubizjak@gmail.com>
5037
5038 PR target/72843
5039 * config/i386/i386.md (*movtf_internal): Use
5040 lra_in_progress || reload_completed instead of !can_create_pseudo_p
5041 in the insn constraint.
5042 (*movxf_internal): Ditto.
5043 (*movdf_internal): Ditto.
5044 (*movsf_internal): Ditto.
5045
5046 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5047
5048 PR tree-optimization/72772
5049 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
5050 for expanded base.
5051
5052 2016-08-09 Bin Cheng <bin.cheng@arm.com>
5053
5054 PR tree-optimization/72772
5055 * tree-ssa-loop-niter.h (simplify_using_initial_conditions): Delete
5056 parameter STOP.
5057 * tree-ssa-loop-niter.c (tree_simplify_using_condition_1): Delete
5058 parameter STOP and update calls. Move expand_simple_operations
5059 function call from here...
5060 (simplify_using_initial_conditions): ...to here. Delete parameter
5061 STOP.
5062 (tree_simplify_using_condition): Delete parameter STOP.
5063 * tree-scalar-evolution.c (simple_iv_with_niters): Update call to
5064 simplify_using_initial_conditions.
5065
5066 2016-08-09 Matthew Fortune <matthew.fortune@imgtec.com>
5067
5068 PR c/65345
5069 * config/mips/mips.c (mips_atomic_assign_expand_fenv):
5070 Use create_tmp_var_raw instead of create_tmp_var.
5071
5072 2016-08-09 Richard Biener <rguenther@suse.de>
5073
5074 * tree-ssa-threadbackward.c (profitable_jump_thread_path):
5075 Treat same SSA names related.
5076
5077 2016-08-09 Jakub Jelinek <jakub@redhat.com>
5078
5079 PR tree-optimization/72824
5080 * tree-loop-distribution.c (const_with_all_bytes_same): Verify
5081 real_zerop is not negative.
5082
5083 2016-08-09 Richard Biener <rguenther@suse.de>
5084
5085 PR tree-optimization/71802
5086 * tree-cfgcleanup.c (cleanup_tree_cfg_bb): Make sure to catch
5087 all merge opportunities with the predecessor.
5088
5089 2016-08-09 Richard Biener <rguenther@suse.de>
5090
5091 PR ipa/68273
5092 * ipa-prop.c (ipa_modify_formal_parameters): Build
5093 parameter types with natural alignment also for the
5094 over-aligned case.
5095
5096 2016-08-08 Andi Kleen <ak@linux.intel.com>
5097
5098 * tree-vrp.c (get_single_symbol): Always initialize inv and neg.
5099
5100 2016-08-08 David Malcolm <dmalcolm@redhat.com>
5101
5102 PR c/64955
5103 * langhooks-def.h (LANG_HOOKS_RUN_LANG_SELFTESTS): New default
5104 do-nothing langhook.
5105 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_RUN_LANG_SELFTESTS.
5106 * langhooks.h (struct lang_hooks): Add run_lang_selftests.
5107 * selftest-run-tests.c: Include "tree.h" and "langhooks.h".
5108 (selftest::run_tests): Call lang_hooks.run_lang_selftests.
5109
5110 2016-08-08 David Malcolm <dmalcolm@redhat.com>
5111
5112 PR bootstrap/72844
5113 * input.c: Ensure that HAVE_ICONV is defined.
5114
5115 2016-08-08 Jakub Jelinek <jakub@redhat.com>
5116
5117 PR middle-end/72781
5118 * omp-low.c (lower_lastprivate_clauses): Set TREE_NO_WARNING on the
5119 private vars for lastprivate and for linear iterator.
5120
5121 PR middle-end/68762
5122 * omp-simd-clone.c: Include varasm.h.
5123 (simd_clone_create): Copy over DECL_COMDAT, DECL_WEAK, DECL_EXTERNAL,
5124 DECL_VISIBILITY, DECL_VISIBILITY_SPECIFIED, DECL_DLLIMPORT_P and for
5125 DECL_ONE_ONLY call make_decl_one_only. Fix up spelling in comment and
5126 update function name.
5127
5128 2016-07-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
5129
5130 * config/avr/driver-avr.c (specfiles_doc_url): Remove.
5131 (avr_diagnose_devicespecs_error): Remove.
5132 (avr_devicespecs_file): Remove composing absolute path for specfile
5133 and its verbose info. Remove conditions to check specs-file,
5134
5135 2016-08-08 Jakub Jelinek <jakub@redhat.com>
5136
5137 PR rtl-optimization/72821
5138 * lra-spills.c (regno_in_use_p): Don't use BLOCK_FOR_INSN on barriers,
5139 just return false for them.
5140
5141 2016-08-08 Alan Modra <amodra@gmail.com>
5142
5143 PR target/72771
5144 * config/rs6000/rs6000.c (toc_relative_expr_p): Allow (lo_sum (high))
5145 toc refs created during reload. Update function comment.
5146
5147 2016-08-08 Alan Modra <amodra@gmail.com>
5148
5149 PR target/72802
5150 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Sort
5151 alternatives. Put loads first, then stores, and reg/reg moves
5152 within same class later. Delete attr length.
5153
5154 2016-08-08 Alan Modra <amodra@gmail.com>
5155
5156 PR target/72802
5157 * config/rs6000/rs6000.c (mem_operand_gpr): Remove vsx dform test.
5158 (mem_operand_ds_form): New predicate.
5159 * config/rs6000/rs6000-protos.h (mem_operand_ds_form): Declare.
5160 * config/rs6000/constraints.md (wY): Use mem_operand_df_form.
5161 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): Delete.
5162 * config/rs6000/rs6000.md (f32_lm2, f32_sm2): Use wY for SF.
5163 (extendsfdf2_fpr): Replace o constraint with wY.
5164
5165 2016-08-07 Jan Hubicka <hubicka@ucw.cz>
5166
5167 * tree-ssa-threadbackward.c: Include tree-inline.h
5168 (profitable_jump_thread_path): Use estimate_num_insns to estimate
5169 size of copied block; for cold paths reduce duplication.
5170 (find_jump_threads_backwards): Remove redundant tests.
5171 (pass_thread_jumps::gate): Enable for -Os.
5172
5173 2016-08-07 Jakub Jelinek <jakub@redhat.com>
5174
5175 PR c/72816
5176 * stor-layout.c (layout_decl): Fix up formatting.
5177 (relayout_decl): Allow DECL to be FIELD_DECL.
5178
5179 2016-08-07 Alan Modra <amodra@gmail.com>
5180
5181 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Fix mode of reg.
5182
5183 2016-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
5184
5185 * data-streamer-in.c (streamer_read_wide_int): New.
5186 (streamer_read_widest_int): Renamed function.
5187 * data-streamer-out.c (streamer_write_wide_int): New
5188 (streamer_write_widest_int): Renamed function.
5189 * lto-streamer-in.c (streamer_read_wi): Renamed and moved to
5190 data-stream-in.c.
5191 (input_cfg): Call renamed function.
5192 * lto-streamer-out.c (streamer_write_wi): Renamed and moved to
5193 data-stream-out.c.
5194 (output_cfg): Call renamed function.
5195 * data-streamer.h: Add declarations.
5196
5197 2016-08-08 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5198
5199 * tree-ssa-ccp.c (extend_mask): New param sgn.
5200 Remove ORing with wi::mask.
5201 (get_default_value): Adjust call to extend_mask to pass sign.
5202 (evaluate_stmt): Likewise.
5203
5204 2016-08-06 Jakub Jelinek <jakub@redhat.com>
5205
5206 * gcov.c (handle_cycle): Use INTTYPE_MAXIMUM (int64_t) instead of
5207 INT64_MAX.
5208
5209 2016-08-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5210
5211 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Disable
5212 transform if operand's type is pointer to function or method.
5213
5214 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
5215
5216 PR tree-optimization/18046
5217 * tree-ssa-threadedge.c: Include cfganal.h.
5218 (simplify_control_statement_condition): If simplifying a
5219 GIMPLE_SWITCH, replace the index operand of the GIMPLE_SWITCH
5220 with the dominating ASSERT_EXPR before handing it off to VRP.
5221 Mention that a CASE_LABEL_EXPR may be returned.
5222 (thread_around_empty_blocks): Adjust to handle
5223 simplify_control_statement_condition() returning a
5224 CASE_LABEL_EXPR.
5225 (thread_through_normal_block): Likewise.
5226 * tree-vrp.c (simplify_stmt_for_jump_threading): Simplify
5227 a switch statement by trying to determine which case label
5228 will be taken.
5229
5230 2016-08-05 Vladimir Makarov <vmakarov@redhat.com>
5231
5232 PR rtl-optimization/69847
5233 * lra-constraints.c (process_invariant_for_inheritance): Save
5234 pattern instead of src.
5235 (remove_inheritance_pseudos): Use the pattern. Add assert.
5236
5237 2016-08-05 David Malcolm <dmalcolm@redhat.com>
5238
5239 * input.c (string_concat::string_concat): New constructor.
5240 (string_concat_db::string_concat_db): New constructor.
5241 (string_concat_db::record_string_concatenation): New method.
5242 (string_concat_db::get_string_concatenation): New method.
5243 (string_concat_db::get_key_loc): New method.
5244 (class auto_cpp_string_vec): New class.
5245 (get_substring_ranges_for_loc): New function.
5246 (get_source_range_for_substring): New function.
5247 (get_num_source_ranges_for_substring): New function.
5248 (class selftest::lexer_test_options): New class.
5249 (struct selftest::lexer_test): New struct.
5250 (class selftest::ebcdic_execution_charset): New class.
5251 (selftest::ebcdic_execution_charset::s_singleton): New variable.
5252 (selftest::lexer_test::lexer_test): New constructor.
5253 (selftest::lexer_test::~lexer_test): New destructor.
5254 (selftest::lexer_test::get_token): New method.
5255 (selftest::assert_char_at_range): New function.
5256 (ASSERT_CHAR_AT_RANGE): New macro.
5257 (selftest::assert_num_substring_ranges): New function.
5258 (ASSERT_NUM_SUBSTRING_RANGES): New macro.
5259 (selftest::assert_has_no_substring_ranges): New function.
5260 (ASSERT_HAS_NO_SUBSTRING_RANGES): New macro.
5261 (selftest::test_lexer_string_locations_simple): New function.
5262 (selftest::test_lexer_string_locations_ebcdic): New function.
5263 (selftest::test_lexer_string_locations_hex): New function.
5264 (selftest::test_lexer_string_locations_oct): New function.
5265 (selftest::test_lexer_string_locations_letter_escape_1): New function.
5266 (selftest::test_lexer_string_locations_letter_escape_2): New function.
5267 (selftest::test_lexer_string_locations_ucn4): New function.
5268 (selftest::test_lexer_string_locations_ucn8): New function.
5269 (selftest::uint32_from_big_endian): New function.
5270 (selftest::test_lexer_string_locations_wide_string): New function.
5271 (selftest::uint16_from_big_endian): New function.
5272 (selftest::test_lexer_string_locations_string16): New function.
5273 (selftest::test_lexer_string_locations_string32): New function.
5274 (selftest::test_lexer_string_locations_u8): New function.
5275 (selftest::test_lexer_string_locations_utf8_source): New function.
5276 (selftest::test_lexer_string_locations_concatenation_1): New
5277 function.
5278 (selftest::test_lexer_string_locations_concatenation_2): New
5279 function.
5280 (selftest::test_lexer_string_locations_concatenation_3): New
5281 function.
5282 (selftest::test_lexer_string_locations_macro): New function.
5283 (selftest::test_lexer_string_locations_stringified_macro_argument):
5284 New function.
5285 (selftest::test_lexer_string_locations_non_string): New function.
5286 (selftest::test_lexer_string_locations_long_line): New function.
5287 (selftest::test_lexer_char_constants): New function.
5288 (selftest::input_c_tests): Call the new test functions once per
5289 case within the line_table test matrix.
5290 * input.h (struct string_concat): New struct.
5291 (struct location_hash): New struct.
5292 (class string_concat_db): New class.
5293 * substring-locations.h: New header.
5294
5295 2016-08-05 Patrick Palka <ppalka@gcc.gnu.org>
5296
5297 PR tree-optimization/72810
5298 * tree-vrp.c (simplify_switch_using_ranges): Avoid changing
5299 the type of the case labels when truncating.
5300
5301 2016-08-05 James Greenhalgh <james.greenhalgh@arm.com>
5302
5303 PR Target/72819
5304 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Declare.
5305 (aarch64_fp16_ptr_type_node): Likewise.
5306 * config/aarch64/aarch64-simd-builtins.c
5307 (aarch64_fp16_ptr_type_node): Define.
5308 (aarch64_init_fp16_types): New, refactored out of...
5309 (aarch64_init_builtins): ...here, update to call
5310 aarch64_init_fp16_types.
5311 * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Handle
5312 HFmode.
5313 (aapcs_vfp_sub_candidate): Likewise.
5314
5315 2016-08-05 Martin Liska <mliska@suse.cz>
5316 Joshua Cranmer <Pidgeot18@gmail.com>
5317
5318 * gcov.c (line_t::has_block): New function.
5319 (enum loop_type): New enum.
5320 (handle_cycle): New function.
5321 (unblock): Likewise.
5322 (circuit): Likewise.
5323 (get_cycles_count): Likewise.
5324 (accumulate_line_counts): Use new loop detection algorithm.
5325
5326 2016-08-05 Martin Liska <mliska@suse.cz>
5327
5328 * gcov.c (output_intermediate_file): Rename
5329 function_info::line_next to next_file_fn.
5330 (process_file): Likewise.
5331 (read_graph_file): Likewise.
5332 (accumulate_line_counts): Likewise.
5333 (output_lines): Likewise.
5334
5335 2016-08-05 Richard Biener <rguenther@suse.de>
5336
5337 * tree-ssa-threadupdate.c (thread_block_1): Remove unnecessary
5338 restriction on threading to a loop header.
5339
5340 2016-08-05 Richard Biener <rguenther@suse.de>
5341
5342 * tree-cfgcleanup.c (tree_forwarder_block_p): Use bb_loop_header_p.
5343 * cfghooks.c (force_nonfallthru): If we ended up splitting a latch
5344 adjust loop info accordingly.
5345
5346 2016-08-05 Kugan Vivekanandarajah <kuganv@linaro.org>
5347
5348 * tree-vrp.c (extract_range_basic): Check cfun->after_inlining
5349 before folding call to __builtin_constant_p with parameters to false.
5350
5351 2016-08-05 Alan Modra <amodra@gmail.com>
5352
5353 * config/rs6000/rs6000.c (rs6000_preferred_reload_class): Delete
5354 code accidentally committed 2016-05-02 providing class when given
5355 NO_REGS.
5356
5357 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
5358
5359 * tree-vrp.c (simplify_switch_using_ranges): Try to truncate
5360 the case label ranges that partially overlap with OP's value
5361 range.
5362
5363 2016-08-04 Uros Bizjak <ubizjak@gmail.com>
5364
5365 PR target/72805
5366 * config/i386/avx512fintrin.h (_mm512_cmp_epi32_mask) [!__OPTIMIZE__]:
5367 Cast builtin function result to __mmask16 instead of __mmask8.
5368 (_mm512_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5369 (_mm512_mask_cmp_epi32_mask) [!__OPTIMIZE__]: Ditto.
5370 (_mm512_mask_cmp_epu32_mask) [!__OPTIMIZE__]: Ditto.
5371
5372 2016-08-04 David Malcolm <dmalcolm@redhat.com>
5373
5374 * selftest.h (ASSERT_TRUE): Reimplement in terms of...
5375 (ASSERT_TRUE_AT): New macro.
5376 (ASSERT_FALSE): Reimplement in terms of...
5377 (ASSERT_FALSE_AT): New macro.
5378 (ASSERT_STREQ_AT): Fix typo in comment.
5379
5380 2016-08-04 Patrick Palka <ppalka@gcc.gnu.org>
5381
5382 * gimple.c (preprocess_case_label_vec_for_gimple): When the case
5383 labels are exhaustive, designate the label with the widest
5384 range to be the default label.
5385
5386 2016-08-04 Andrew Pinski <apinski@cavium.com>
5387
5388 * config/aarch64/aarch64.c (thunderx_vector_cost): New variable.
5389 (thunderx_tunings): Use thunderx_vector_cost instead of
5390 generic_vector_cost.
5391
5392 2016-08-04 Martin Liska <mliska@suse.cz>
5393
5394 * gcov.c (main): Fix GNU coding style.
5395 (output_intermediate_file): Likewise.
5396 (process_file): Likewise.
5397 (generate_results): Likewise.
5398 (release_structures): Likewise.
5399 (create_file_names): Likewise.
5400 (find_source): Likewise.
5401 (read_graph_file): Likewise.
5402 (find_exception_blocks): Likewise.
5403 (canonicalize_name): Likewise.
5404 (make_gcov_file_name): Likewise.
5405 (mangle_name): Likewise.
5406 (accumulate_line_counts): Likewise.
5407 (output_branch_count): Likewise.
5408 (read_line): Likewise.
5409
5410 2016-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de>
5411
5412 PR rtl-optimization/71779
5413 * emit-rtl.c (set_reg_attrs_from_value): Only propagate REG_POINTER,
5414 if the value was sign-extended according to POINTERS_EXTEND_UNSIGNED
5415 or if it was truncated.
5416
5417 PR rtl-optimization/70903
5418 * cse.c (cse_insn): If DEST is a paradoxical SUBREG, don't record DEST.
5419
5420 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
5421
5422 * tree-inline.c (remap_ssa_name): Check for POINTER_TYPE_P before
5423 accessing SSA_NAME_PTR_INFO.
5424
5425 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
5426
5427 PR 70677
5428 * common/config/avr/avr-common.c (avr_option_optimization_table)
5429 [OPT_LEVELS_ALL]: Turn off -fcaller-saves.
5430
5431 2016-08-04 Georg-Johann Lay <avr@gjlay.de>
5432
5433 PR 55181
5434 * config/avr/avr.md: New pattern to work around do_store_flag
5435 generating shift instructions for bit extractions.
5436
5437 2016-08-04 Kugan Vivekanandarajah <kuganv@linaro.org>
5438
5439 * tree-vrp.c (set_value_range): Use vrp_equiv_obstack with
5440 BITMAP_ALLOC.
5441 (add_equivalence): Likewise.
5442 (get_value_range): Allocate value range with vrp_value_range_pool.
5443 (vrp_initialize): Initialize vrp_equiv_obstack for equiv allocation.
5444 (vrp_finalize): Relase vrp_equiv_obstack and vrp_value_range_pool.
5445
5446 2016-08-03 Peter Bergner <bergner@vnet.ibm.com>
5447
5448 * config/rs6000/rs6000.c (rs6000_option_override_internal): Make LRA
5449 the default for the rs6000 port.
5450
5451 2016-08-03 Bernd Edlinger <bernd.edlinger@hotmail.de>
5452
5453 PR middle-end/71876
5454 * calls.c (special_function_p): Remove special handling of
5455 "setjmp_syscall", "qsetjmp", "longjmp", "siglongjmp" and the
5456 prefix "__x". Recognize "savectx", "vfork" and "getcontext" only
5457 without prefix. Remove potentially unsafe ECF_LEAF and ECF_NORETURN.
5458
5459 2016-08-03 Vladimir Makarov <vmakarov@redhat.com>
5460
5461 PR middle-end/72778
5462 * lra-spills.c (regno_in_use_p): Check bb and regno modification.
5463 Don't stop on regular insns.
5464
5465 2016-08-03 Nathan Sidwell <nathan@codesourcery.com>
5466
5467 * config/nvptx/nvptx.c (nvptx_declare_function_name): Round frame
5468 size to DImode boundary.
5469 (nvptx_propagate): Likewise.
5470
5471 2016-08-03 Alan Modra <amodra@gmail.com>
5472
5473 * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Make scalar
5474 float access depend on TARGET_EFFICIENT_UNALIGNED_VSX.
5475 * config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Renamed
5476 from -mefficient-unaligned-vector. Note that this affects fp too.
5477
5478 2016-08-03 Alan Modra <amodra@gmail.com>
5479
5480 * config/rs6000/rs6000.c (rs6000_rtx_costs): Make unaligned mem
5481 cost more.
5482
5483 2016-08-03 Alan Modra <amodra@gmail.com>
5484
5485 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Force source operand
5486 to a reg. Localize vars.
5487
5488 2016-08-03 Alan Modra <amodra@gmail.com>
5489
5490 * config/rs6000/rs6000.opt: Remove negatives from help strings
5491 and comments.
5492
5493 2016-08-03 Alan Modra <amodra@gmail.com>
5494
5495 * config/rs6000/rs6000.c (rs6000_secondary_reload_direct_move):
5496 Delete duplicated code.
5497
5498 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
5499
5500 PR middle-end/72778
5501 * lra-spills.c (regno_in_use_p): New.
5502 (lra_final_code_change): Use it.
5503
5504 2016-08-02 Vladimir Makarov <vmakarov@redhat.com>
5505
5506 PR rtl-optimization/69847
5507 * lra-int.h (struct lra-reg): Use restore_rtx instead of
5508 restore_regno.
5509 (lra_rtx_hash): New.
5510 * lra.c (initialize_lra_reg_info_element): Use restore_rtx instead
5511 of restore_regno.
5512 (lra_rtx_hash): Rename and move lra-remat.c::rtx_hash.
5513 * lra-remat.c (rtx_hash): Rename and Move to lra.c.
5514 * lra-spills.c (lra_final_code_change): Don't delete insn when the
5515 next insn is USE with the same reg as the current insn source.
5516 * lra-constraints.c (curr_insn_transform): Use restore_rtx instead
5517 of restore_regno.
5518 (lra_constraints_init): Call initiate_invariants.
5519 (lra_constraints_finish): Call finish_invariants.
5520 (struct invariant, invariant_t, invariant_ptr_t): New.
5521 (const_invariant_ptr_t, invariants, invariants_pool): New.
5522 (invariant_table, invariant_hash, invariant_eq_p): New.
5523 (insert_invariant, initiate_invariants, finish_invariants): New.
5524 (clear_invariants, invalid_invariant_regs): New.
5525 (inherit_reload_reg, split_reg, fix_bb_live_info): Use restore_rtx
5526 instead of restore_regno.
5527 (invariant_p, process_invariant_for_inheritance): New.
5528 (inherit_in_ebb): Implement invariant inheritance.
5529 (lra_inheritance): Initialize and finalize invalid_invariant_regs.
5530 (remove_inheritance_pseudos): Implement undoing invariant
5531 inheritance.
5532 (undo_optional_reloads, lra_undo_inheritance): Use restore_rtx
5533 instead of restore_regno.
5534 * lra-assigns.c (regno_live_length): New.
5535 (reload_pseudo_compare_func): Use regno_live_length.
5536 (assign_by_spills): Use restore_rtx instead of restore_regno.
5537 (lra_assign): Ditto. Initiate regno_live_length.
5538
5539 2016-02-08 James Greenhalgh <james.greenhalgh@arm.com>
5540
5541 * config/aarch64/arm_neon.h (vminnm_f64): Add back missing 'f' from
5542 __builtin_aarch64_fmindf.
5543
5544 2016-08-02 Bin Cheng <bin.cheng@arm.com>
5545
5546 PR tree-optimization/34114
5547 * tree-ssa-loop-niter.c (number_of_iterations_ne): Prove no-overflow
5548 information for more control IVs.
5549
5550 2016-08-02 Bin Cheng <bin.cheng@arm.com>
5551
5552 PR tree-optimization/34114
5553 * fold-const.c (multiple_of_p): Improve MULT_EXPR, PLUS_EXPR,
5554 PLUS_EXPR case. Handle SSA_NAME case.
5555
5556 2016-08-02 Tamar Christina <tamar.christina@arm.com>
5557
5558 * config/aarch64/aarch64-simd-builtins.def
5559 (__builtin_aarch64_fmindf): Change BUILTIN_VDQF to BUILTIN_VDQF_DF.
5560 (__builtin_aarch64_fmaxdf): Likewise.
5561 (__builtin_aarch64_smin_nandf): Likewise.
5562 (__builtin_aarch64_smax_nandf): Likewise.
5563 * config/aarch64/aarch64-simd.md (<fmaxmin><mode>3): Remove.
5564 * config/aarch64/aarch64.md (<fmaxmin><mode>3): Rename to...
5565 (<fmaxmin><mode>3): ...this.
5566 * config/aarch64/arm_neon.h (vmaxnm_f64): New.
5567 (vminnm_f64): Likewise.
5568 (vmin_f64): Likewise.
5569 (vmax_f64): Likewise.
5570 * config/aarch64/iterators.md (FMAXMIN): Merge with...
5571 (FMAXMIN_UNS): ...this.
5572 (fmaxmin): Merged with
5573 (fmaxmin_op): ...this...
5574 (maxmin_uns_op): ...in to this.
5575
5576 2016-08-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5577
5578 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5579 Add support for vec_extract on vector float, vector int, vector
5580 short, and vector char vector types.
5581 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
5582 vector float, vector int, vector short, and vector char
5583 optimizations on 64-bit ISA 2.07 systems for both constant and
5584 variable element numbers.
5585 (rs6000_split_vec_extract_var): Likewise.
5586 * config/rs6000/vsx.md (vsx_xscvspdp_scalar2): Allow SFmode to be
5587 Altivec registers on ISA 2.07 and above.
5588 (vsx_extract_v4sf): Delete alternative that hard coded element 0,
5589 which never was matched due to the split occuring before register
5590 allocation (and the code would not have worked on little endian
5591 systems if it did match). Allow extracts to go to the Altivec
5592 registers if ISA 2.07 (power8). Change from using "" around the
5593 C++ code to using {}'s.
5594 (vsx_extract_v4sf_<mode>_load): New insn to optimize vector float
5595 vec_extracts when the vector is in memory.
5596 (vsx_extract_v4sf_var): New insn to optimize vector float
5597 vec_extracts when the element number is variable on 64-bit ISA
5598 2.07 systems.
5599 (vsx_extract_<mode>, VSX_EXTRACT_I iterator): Add optimizations
5600 for 64-bit ISA 2.07 as well as ISA 3.0.
5601 (vsx_extract_<mode>_p9, VSX_EXTRACT_I iterator): Likewise.
5602 (vsx_extract_<mode>_p8, VSX_EXTRACT_I iterator): Likewise.
5603 (vsx_extract_<mode>_load, VSX_EXTRACT_I iterator): New insn to
5604 optimize vector int, vector short, and vector char vec_extracts
5605 when the vector is in memory.
5606 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): New insn to
5607 optimize vector int, vector short, and vector char vec_extracts
5608 when the element number is variable.
5609
5610 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
5611
5612 PR target/71948
5613 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): Use a value that
5614 does not overlap with other symbol flags.
5615
5616 2016-08-01 Wilco Dijkstra <wdijkstr@arm.com>
5617
5618 * config/aarch64/aarch64.h (aarch64_frame):
5619 Remove padding0 and hardfp_offset. Add locals_offset,
5620 initial_adjust, callee_adjust, callee_offset and final_adjust.
5621 * config/aarch64/aarch64.c (aarch64_layout_frame):
5622 Remove unused padding0 and hardfp_offset initializations.
5623 Choose frame layout and set frame variables accordingly.
5624 Use INVALID_REGNUM instead of FIRST_PSEUDO_REGISTER.
5625 (aarch64_push_regs): Use INVALID_REGNUM, not FIRST_PSEUDO_REGISTER.
5626 (aarch64_pop_regs): Likewise.
5627 (aarch64_expand_prologue): Remove all decision code, just emit
5628 prolog according to frame variables.
5629 (aarch64_expand_epilogue): Remove all decision code, just emit
5630 epilog according to frame variables.
5631 (aarch64_initial_elimination_offset): Use offset to local/arg area.
5632
5633 2015-08-01 H.J. Lu <hongjiu.lu@intel.com>
5634
5635 PR target/72748
5636 * config/i386/i386.c (timode_scalar_chain::convert_insn): Call
5637 fix_debug_reg_uses after changing source register mode to
5638 V1TImode if source register is undefined.
5639
5640 2015-08-01 Alan Hayward <alan.hayward@arm.com>
5641
5642 PR tree-optimization/71818
5643 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Don't advance IVs
5644 with non invariant evolutions
5645
5646 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
5647
5648 PR target/72767
5649 * config/avr/avr.md (length) [branch]: Correct insn length
5650 attribute for forward branches.
5651
5652 2016-08-01 Georg-Johann Lay <avr@gjlay.de>
5653
5654 * doc/extend.texi (AVR Built-in Functions): Document
5655 __builtin_avr_nops.
5656 * config/avr/builtins.def (NOPS): New.
5657 * config/avr/avr.c (avr_expand_nops): New static function.
5658 (avr_expand_builtin): Use it to handle AVR_BUILTIN_NOPS.
5659
5660 2016-08-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5661
5662 * config/aarch64/aarch64.c (aarch64_classify_address): Use DImode when
5663 performing aarch64_offset_7bit_signed_scaled_p check for TImode LDP/STP
5664 addresses.
5665
5666 2016-08-01 Virendra Pathak <virendra.pathak@broadcom.com>
5667
5668 * config/aarch64/aarch64.c (vulcan_tunings): Update
5669 vulcan L1 cache_line_size.
5670
5671 2016-07-30 Michael Meissner <meissner@linux.vnet.ibm.com>
5672
5673 * config/rs6000/rs6000-protos.h (rs6000_adjust_vec_address): New
5674 function that takes a vector memory address, a hard register, an
5675 element number and a temporary base register, and recreates an
5676 address that points to the appropriate element within the vector.
5677 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Likewise.
5678 (rs6000_split_vec_extract_var): Add support for the target of a
5679 vec_extract with variable element number being a scalar memory
5680 location.
5681 (rtx_is_swappable_p): VLSO insns (UNSPEC_VSX_VSLOW) are not
5682 swappable.
5683 * config/rs6000/vsx.md (vsx_extract_<mode>_load): Replace
5684 vsx_extract_<mode>_load insn with a new insn that optimizes
5685 storing either element to a memory location, using scratch
5686 registers to pick apart the vector and reconstruct the address.
5687 (vsx_extract_<P:mode>_<VSX_D:mode>_load): Likewise.
5688 (vsx_extract_<mode>_store): Rework alternatives to more correctly
5689 support Altivec registers. Add support for ISA 3.0 Altivec d-form
5690 store instruction.
5691 (vsx_extract_<mode>_var): Add support for extracting a variable
5692 element number from memory.
5693
5694 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
5695
5696 * config/avr/avr.c (avr_out_compare): Use const0_rtx instead of 0
5697 when testing for compares against constants of the form 0xabab.
5698
5699 2016-07-29 Bin Cheng <bin.cheng@arm.com>
5700
5701 PR tree-optimization/57558
5702 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): New
5703 function.
5704 (vect_loop_versioning): Support versioning with niter assumptions.
5705 * tree-vect-loop.c (tree-ssa-loop.h): Include header file.
5706 (vect_get_loop_niters): New parameter. Reimplement to support
5707 assumptions in loop niter info.
5708 (vect_analyze_loop_form_1, vect_analyze_loop_form): Ditto.
5709 (new_loop_vec_info): Init LOOP_VINFO_NITERS_ASSUMPTIONS.
5710 (vect_estimate_min_profitable_iters): Use LOOP_REQUIRES_VERSIONING.
5711 Support loop versioning for niters.
5712 * tree-vectorizer.c (tree-ssa-loop-niter.h): Include header file.
5713 (vect_free_loop_info_assumptions): New function.
5714 (vectorize_loops): Free loop niter info for loops with flag
5715 LOOP_F_ASSUMPTIONS set if vectorization failed.
5716 * tree-vectorizer.h (struct _loop_vec_info): New field
5717 num_iters_assumptions.
5718 (LOOP_VINFO_NITERS_ASSUMPTIONS): New macro.
5719 (LOOP_REQUIRES_VERSIONING_FOR_NITERS): New macro.
5720 (LOOP_REQUIRES_VERSIONING): New macro.
5721 (vect_free_loop_info_assumptions): New decl.
5722
5723 2016-07-29 Bin Cheng <bin.cheng@arm.com>
5724
5725 * cfgloop.h (struct loop): New field constraints.
5726 (LOOP_C_INFINITE, LOOP_C_FINITE): New macros.
5727 (loop_constraint_set, loop_constraint_clr, loop_constraint_set_p): New
5728 functions.
5729 * cfgloop.c (alloc_loop): Initialize new field.
5730 * cfgloopmanip.c (copy_loop_info): Copy constraints.
5731 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
5732 Adjust niter analysis wrto loop constraints.
5733 * doc/loop.texi (@node Number of iterations): Add description for loop
5734 constraints.
5735
5736 2016-07-29 Marek Polacek <polacek@redhat.com>
5737
5738 PR c/7652
5739 * config/i386/i386.c (ix86_expand_args_builtin): Add break.
5740 (ix86_expand_round_builtin): Likewise.
5741
5742 2016-07-29 Segher Boessenkool <segher@kernel.crashing.org>
5743 Georg-Johann Lay <avr@gjlay.de>
5744
5745 PR rtl-optimization/71976
5746 * combine.c (get_last_value): Return 0 if the argument for which
5747 the function is called has a wider mode than the recorded value.
5748
5749 2016-07-29 Marek Polacek <polacek@redhat.com>
5750
5751 PR c/7652
5752 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Add break.
5753 (altivec_expand_st_builtin): Likewise.
5754
5755 2016-07-29 Georg-Johann Lay <avr@gjlay.de>
5756
5757 * config/avr/avr.md (addqi3) [cc]: Revert glitch in insn attribute
5758 introduced in r238381.
5759
5760 2016-07-29 Kugan Vivekanandarajah <kuganv@linaro.org>
5761
5762 PR middle-end/68217
5763 * tree-vrp.c (extract_range_from_binary_expr_1): In case of signed
5764 & sign-bit-CST, generate [-INF, 0] instead of [-INF, INF].
5765
5766 2016-07-28 Michael Meissner <meissner@linux.vnet.ibm.com>
5767
5768 * config/rs6000/rs6000-protos.h (rs6000_split_vec_extract_var):
5769 New declaration.
5770 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5771 Add support for vec_extract of vector double or vector long having
5772 a variable element number on 64-bit ISA 2.07 systems or newer.
5773 * config/rs6000/rs6000.c (rs6000_expand_vector_extract):
5774 Likewise.
5775 (rs6000_split_vec_extract_var): New function to split a
5776 vec_extract built-in function with variable element number.
5777 (rtx_is_swappable_p): Variable vec_extracts and shifts are not
5778 swappable.
5779 * config/rs6000/vsx.md (UNSPEC_VSX_VSLO): New unspec.
5780 (UNSPEC_VSX_EXTRACT): Likewise.
5781 (vsx_extract_<mode>, VSX_D iterator): Fix constraints to allow
5782 direct move instructions to be generated on 64-bit ISA 2.07
5783 systems and newer, and to take advantage of the ISA 3.0 MFVSRLD
5784 instruction.
5785 (vsx_vslo_<mode>): New insn to do VSLO on V2DFmode and V2DImode
5786 arguments for vec_extract variable element.
5787 (vsx_extract_<mode>_var, VSX_D iterator): New insn to support
5788 vec_extract with variable element on V2DFmode and V2DImode
5789 vectors.
5790 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): Remove
5791 -mupper-regs-df requirement, since it isn't needed.
5792 (TARGET_DIRECT_MOVE_64BIT): New macro to say whether we can
5793 do direct moves on 64-bit systems, which allows optimization of
5794 vec_extract on 64-bit ISA 2.07 systems and newer.
5795
5796 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
5797 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
5798
5799 * config/aarch64/aarch64.md
5800 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Change output
5801 statement and type.
5802 (<optab>qihi2_aarch64): Likewise, and split into two.
5803 (extendqihi2_aarch64): New.
5804 (zero_extendqihi2_aarch64): New.
5805 * config/aarch64/iterators.md (ldrxt): Remove.
5806 * config/aarch64/aarch64.c (aarch64_rtx_costs): Change cost of
5807 uxtb/uxth.
5808
5809 2016-07-28 Kristina Martsenko <kristina.martsenko@arm.com>
5810
5811 * config/aarch64/aarch64.c (aarch64_rtx_costs): Fix cost of zero extend.
5812
5813 2016-07-28 Wilco Dijkstra <wdijkstr@arm.com>
5814
5815 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg): Rename.
5816 (aarch64_push_reg): New function to push 1 or 2 registers.
5817 (aarch64_pop_reg): New function to pop 1 or 2 registers.
5818 (aarch64_expand_prologue): Use aarch64_push_regs.
5819 (aarch64_expand_epilogue): Use aarch64_pop_regs.
5820
5821 2016-07-28 Yuri Rumyantsev <ysrumyan@gmail.com>
5822
5823 PR tree-optimization/71734
5824 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Pass value of safelen
5825 attribute instead of REF_LOOP and use it.
5826 (ref_indep_loop_p_2): Use SAFELEN argument instead of REF_LOOP and
5827 set it for Loops having non-zero safelen attribute.
5828 (ref_indep_loop_p): Pass zero as initial value for safelen.
5829
5830 2016-07-28 Ilya Enkovich <ilya.enkovich@intel.com>
5831
5832 PR middle-end/72657
5833 PR target/72683
5834 * tree-chkp.c (chkp_retbnd_call_by_val): Check for instrumentation
5835 call using chkp_gimple_call_builtin_p.
5836 (chkp_copy_bounds_for_assign): Likewise.
5837
5838 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5839
5840 * config/alpha/alpha.c (alpha_adjust_cost): Adjust.
5841 * config/arm/arm-protos.h (struct tune_params): Likewise.
5842 * config/arm/arm.c (xscale_sched_adjust_cost): Likewise.
5843 (cortex_a9_sched_adjust_cost): Likewise.
5844 (fa726te_sched_adjust_cost): Likewise.
5845 (arm_adjust_cost): Likewise.
5846 * config/bfin/bfin.c (bfin_adjust_cost): Likewise.
5847 * config/c6x/c6x.c (c6x_adjust_cost): Likewise.
5848 * config/epiphany/epiphany.c (epiphany_adjust_cost): Likewise.
5849 * config/i386/i386.c (ix86_adjust_cost): Likewise.
5850 * config/ia64/ia64.c: Likewise.
5851 * config/m68k/m68k.c: Likewise.
5852 * config/mep/mep.c (mep_adjust_cost): Likewise.
5853 * config/microblaze/microblaze.c (microblaze_adjust_cost):
5854 * Likewise.
5855 * config/mips/mips.c (mips_adjust_cost): Likewise.
5856 * config/mn10300/mn10300.c (mn10300_adjust_sched_cost):
5857 * Likewise.
5858 * config/pa/pa.c (pa_adjust_cost): Likewise.
5859 * config/rs6000/rs6000.c (rs6000_adjust_cost): Likewise.
5860 (rs6000_debug_adjust_cost): Likewise.
5861 * config/sh/sh.c (sh_adjust_cost): Likewise.
5862 * config/sparc/sparc.c (supersparc_adjust_cost): Likewise.
5863 (hypersparc_adjust_cost): Likewise.
5864 (sparc_adjust_cost): Likewise.
5865 * config/spu/spu.c (spu_sched_adjust_cost): Likewise.
5866 * config/tilegx/tilegx.c (tilegx_sched_adjust_cost): Likewise.
5867 * config/tilepro/tilepro.c (tilepro_sched_adjust_cost):
5868 * Likewise.
5869 * config/visium/visium.c (visium_adjust_cost): Likewise.
5870 * doc/tm.texi: Regenerate.
5871 * haifa-sched.c (dep_cost_1): Adjust.
5872 * target.def: Merge adjust_cost and adjust_cost_2.
5873
5874 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5875
5876 * haifa-sched.c (add_to_speculative_block): Make twins a vector.
5877
5878 2016-07-28 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
5879
5880 * store-motion.c (struct st_expr): Make pattern_regs a vector.
5881 (extract_mentioned_regs): Append to a vector instead of
5882 returning a rtx_expr_list.
5883 (st_expr_entry): Adjust.
5884 (free_st_expr_entry): Likewise.
5885 (store_ops_ok): Likewise.
5886 (store_killed_in_insn): Likewise.
5887 (find_moveable_store): Likewise.
5888
5889 2016-07-28 Martin Liska <mliska@suse.cz>
5890
5891 PR gcov-profile/68025
5892 * tree-profile.c (tree_profiling): Respect
5893 no_profile_instrument_function attribute.
5894 * doc/extend.texi: Document no_profile_instrument_function
5895 attribute.
5896
5897 2016-07-28 Martin Liska <mliska@suse.cz>
5898
5899 PR rtl-optimization/70944
5900 * combine.c (make_compound_operation):
5901 Do not allow make_compound_operation for vector mode
5902
5903 2016-07-28 Kugan Vivekanandarajah <kuganv@linaro.org>
5904
5905 PR middle-end/71994
5906 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Check tcc_comparison
5907 before calling get_ops.
5908
5909 2016-07-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
5910
5911 * defaults.h (LOG2_BITS_PER_UNIT): Move from here...
5912 * tree.h (LOG2_BITS_PER_UNIT): ...to here.
5913 (BITS_PER_UNIT_LOG): Remove.
5914 (int_bit_position): Use LOG2_BITS_PER_UNIT instead of BITS_PER_UNIT_LOG.
5915 * expr.c (expand_assignment): Likewise.
5916 * stor-layout.c (initialize_sizetypes): Likewise.
5917
5918 2016-07-27 Michael Meissner <meissner@linux.vnet.ibm.com>
5919
5920 * config/rs6000/vector.md (vec_extract<mode>): Change the calling
5921 signature of rs6000_expand_vector_extract so that the element
5922 number is a RTX instead of a constant integer.
5923 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_extract):
5924 Likewise.
5925 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Likewise.
5926 (altivec_expand_vec_ext_builtin): Likewise.
5927 * config/rs6000/altivec.md (reduc_plus_scal_<mode>): Likewise.
5928 * config/rs6000/vsx.md (vsx_extract_<mode>): Fix spelling of the
5929 MFVSRLD instruction.
5930
5931 2016-07-27 David Malcolm <dmalcolm@redhat.com>
5932
5933 * input.c (get_pure_location): Move here from tree.c.
5934 (make_location): Likewise. Add header comment.
5935 (selftest::test_accessing_ordinary_linemaps): Verify
5936 pure_location_p, make_location, get_location_from_adhoc_loc and
5937 get_range_from_loc.
5938 * input.h (get_pure_location): Move declaration here from tree.h.
5939 (get_finish): Likewise for inline function.
5940 (make_location): Likewise for declaration.
5941 * tree.c (get_pure_location): Move to input.c.
5942 (make_location): Likewise.
5943 * tree.h (get_pure_location): Move declaration to tree.h.
5944 (get_finish): Likewise for inline function.
5945 (make_location): Likewise for declaration.
5946
5947 2016-07-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5948
5949 PR middle-end/71078
5950 * match.pd (x / abs(x) -> copysign(1.0, x)): New pattern.
5951
5952 2016-07-27 David Malcolm <dmalcolm@redhat.com>
5953
5954 * system.h (STATIC_ASSERT): Use static_assert if building
5955 with C++11 onwards.
5956
5957 2016-07-27 Richard Biener <rguenther@suse.de>
5958
5959 PR tree-optimization/72517
5960 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences):
5961 Revert change to not compute read-read dependences.
5962
5963 2016-07-27 Richard Biener <rguenther@suse.de>
5964
5965 * predict.c (set_even_probabilities): Make nedges unsigned.
5966
5967 2016-07-27 Martin Liska <mliska@suse.cz>
5968
5969 * predict.c (set_even_probabilities): Handle unlikely edges.
5970 (combine_predictions_for_bb): Likewise.
5971
5972 2016-07-26 Michael Meissner <meissner@linux.vnet.ibm.com>
5973
5974 PR target/71869
5975 * config/rs6000/rs6000.c (rs6000_generate_compare): Rework
5976 __float128 support when we don't have hardware support, so that
5977 the IEEE built-in functions like isgreater, first call __unordkf3
5978 to make sure neither operand is a NaN, and if both operands are
5979 ordered, do the normal comparison.
5980
5981 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
5982
5983 * tree-vrp.c (dump_asserts_for): Print loc->expr instead of
5984 name.
5985 (extract_code_and_val_from_cond_with_ops): Verify that name is
5986 either cond_op0 or cond_op1.
5987
5988 2016-07-26 Patrick Palka <ppalka@gcc.gnu.org>
5989
5990 PR tree-optimization/18046
5991 * genmodes.c (emit_mode_size_inline): Emit an assert that
5992 verifies that mode is a valid array index.
5993 (emit_mode_nuinits_inline): Likewise.
5994 (emit_mode_inner_inline): Likewise.
5995 (emit_mode_unit_size_inline): Likewise.
5996 (emit_mode_unit_precision_inline): Likewise.
5997 * tree-vrp.c: Include params.h.
5998 (find_switch_asserts): Register edge assertions for the default
5999 label which correspond to the anti-ranges of each case label.
6000 * params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
6001 * doc/invoke.texi: Document it.
6002
6003 2016-07-26 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6004
6005 * gimple-ssa-strength-reduction.c (slsr_process_phi): Remove dead
6006 and unnecessary call to gimple_bb.
6007
6008 2016-07-26 Richard Biener <rguenther@suse.de>
6009
6010 PR rtl-optimization/71984
6011 * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE and prepare
6012 for VOIDmode.
6013
6014 2016-07-26 Richard Biener <rguenther@suse.de>
6015
6016 PR middle-end/72517
6017 * expmed.c (extract_bit_field_1): Constrain the vector mode
6018 with element size matching the extraction mode size when
6019 choosing a better vector mode to do the extraction from.
6020
6021 2016-07-26 Richard Biener <rguenther@suse.de>
6022 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6023
6024 PR middle-end/70920
6025 * match.pd ((intptr)x eq/ne CST to x eq/ne (typeof x) CST): New
6026 pattern.
6027
6028 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6029
6030 * tree-ssa-structalias.c (struct scc_info): Change types of
6031 members to auto_sbitmap and auto_vec.
6032 (scc_info::scc_info): New constructor.
6033 (scc_info::~scc_info): New destructor.
6034 (init_scc_info): Remove.
6035 (free_scc_info): Remove.
6036 (find_indirect_cycles): Adjust.
6037 (perform_var_substitution): Likewise.
6038 (free_var_substitution_info): Likewise.
6039
6040 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6041
6042 * tree-outof-ssa.c (struct elim_graph): Change type of members
6043 to auto_vec and auto_sbitmap.
6044 (elim_graph::elim_graph): New constructor.
6045 (delete_elim_graph): Remove.
6046 (expand_phi_nodes): Adjust.
6047
6048 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6049
6050 * tree-outof-ssa.c (struct elim_graph): Remove typedef.
6051 (new_elim_graph): Adjust.
6052 (clear_elim_graph): Likewise.
6053 (delete_elim_graph): Likewise.
6054 (elim_graph_size): Likewise.
6055 (elim_graph_add_node): Likewise.
6056 (elim_graph_add_edge): Likewise.
6057 (elim_graph_remove_succ_edge): Likewise.
6058 (eliminate_name): Likewise.
6059 (eliminate_build): Likewise.
6060 (elim_forward): Likewise.
6061 (elim_unvisited_predecessor): Likewise.
6062 (elim_backward): Likewise.
6063 (elim_create): Likewise.
6064 (eliminate_phi): Likewise.
6065 (expand_phi_nodes): Likewise.
6066
6067 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6068
6069 * bt-load.c (compute_out): Use auto_sbitmap class.
6070 (link_btr_uses): Likewise.
6071 * cfganal.c (mark_dfs_back_edges): Likewise.
6072 (post_order_compute): Likewise.
6073 (inverted_post_order_compute): Likewise.
6074 (pre_and_rev_post_order_compute_fn): Likewise.
6075 (single_pred_before_succ_order): Likewise.
6076 * cfgexpand.c (pass_expand::execute): Likewise.
6077 * cfgloop.c (verify_loop_structure): Likewise.
6078 * cfgloopmanip.c (fix_bb_placements): Likewise.
6079 (remove_path): Likewise.
6080 (update_dominators_in_loop): Likewise.
6081 * cfgrtl.c (break_superblocks): Likewise.
6082 * ddg.c (check_sccs): Likewise.
6083 (create_ddg_all_sccs): Likewise.
6084 * df-core.c (df_worklist_dataflow): Likewise.
6085 * dse.c (dse_step3): Likewise.
6086 * except.c (eh_region_outermost): Likewise.
6087 * function.c (thread_prologue_and_epilogue_insns): Likewise.
6088 * gcse.c (prune_expressions): Likewise.
6089 (prune_insertions_deletions): Likewise.
6090 * gimple-ssa-backprop.c (backprop::~backprop): Likewise.
6091 * graph.c (draw_cfg_nodes_no_loops): Likewise.
6092 * ira-lives.c (remove_some_program_points_and_update_live_ranges): Likewise.
6093 * lcm.c (compute_earliest): Likewise.
6094 (compute_farthest): Likewise.
6095 * loop-unroll.c (unroll_loop_constant_iterations): Likewise.
6096 (unroll_loop_runtime_iterations): Likewise.
6097 (unroll_loop_stupid): Likewise.
6098 * lower-subreg.c (decompose_multiword_subregs): Likewise.
6099 * lra-lives.c: Likewise.
6100 * lra.c (lra): Likewise.
6101 * modulo-sched.c (schedule_reg_moves): Likewise.
6102 (optimize_sc): Likewise.
6103 (get_sched_window): Likewise.
6104 (sms_schedule_by_order): Likewise.
6105 (check_nodes_order): Likewise.
6106 (order_nodes_of_sccs): Likewise.
6107 (order_nodes_in_scc): Likewise.
6108 * recog.c (split_all_insns): Likewise.
6109 * regcprop.c (pass_cprop_hardreg::execute): Likewise.
6110 * reload1.c (reload): Likewise.
6111 * sched-rgn.c (haifa_find_rgns): Likewise.
6112 (split_edges): Likewise.
6113 (compute_trg_info): Likewise.
6114 * sel-sched.c (init_seqno): Likewise.
6115 * store-motion.c (remove_reachable_equiv_notes): Likewise.
6116 * tree-into-ssa.c (update_ssa): Likewise.
6117 * tree-ssa-live.c (live_worklist): Likewise.
6118 * tree-ssa-loop-im.c (fill_always_executed_in): Likewise.
6119 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
6120 * Likewise.
6121 (try_peel_loop): Likewise.
6122 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop):
6123 * Likewise.
6124 * tree-ssa-pre.c (compute_antic): Likewise.
6125 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise.
6126 * tree-stdarg.c (reachable_at_most_once): Likewise.
6127 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Likewise.
6128 * var-tracking.c (vt_find_locations): Likewise.
6129
6130 2016-07-26 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
6131
6132 * sbitmap.h (auto_sbitmap): New class.
6133
6134 2016-07-26 Alan Modra <amodra@gmail.com>
6135
6136 PR target/72103
6137 * config/rs6000/rs6000.c (rs6000_secondary_reload): Initialize
6138 sri->t_icode.
6139
6140 2016-07-25 David Malcolm <dmalcolm@redhat.com>
6141
6142 * input.c (selftest::temp_source_file::temp_source_file): Fix
6143 missing "%s" in fprintf.
6144
6145 2016-07-25 John David Anglin <danglin@gcc.gnu.org>
6146
6147 PR middle-end/71732
6148 * cselib.c (cselib_process_insn): Invalidate argument slots for
6149 const/pure calls.
6150
6151 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6152
6153 * config/aarch64/arm_neon.h (vfmah_lane_f16, vfmah_laneq_f16,
6154 vfmsh_lane_f16, vfmsh_laneq_f16, vmulh_lane_f16, vmulh_laneq_f16,
6155 vmulxh_lane_f16, vmulxh_laneq_f16): New.
6156
6157 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6158
6159 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6160 * config/aarch64/aarch64.md (fma, fnma): Support HF.
6161 * config/aarch64/arm_fp16.h (vfmah_f16, vfmsh_f16): New.
6162
6163 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6164
6165 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6166 * config/aarch64/aarch64.md (<FCVT_F2FIXED:fcvt_fixed_insn>hf<mode>3):
6167 New.
6168 (<FCVT_FIXED2F:fcvt_fixed_insn><mode>hf3): Likewise.
6169 (add<mode>3): Likewise.
6170 (sub<mode>3): Likewise.
6171 (mul<mode>3): Likewise.
6172 (div<mode>3): Likewise.
6173 (*div<mode>3): Likewise.
6174 (<fmaxmin><mode>3): Extend to HF.
6175 * config/aarch64/aarch64-simd.md (aarch64_rsqrts<mode>): Likewise.
6176 (fabd<mode>3): Likewise.
6177 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_HSDF:mode>3): Likewise.
6178 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_HSDI:mode>3): Likewise.
6179 (aarch64_fmulx<mode>): Likewise.
6180 (aarch64_fac<optab><mode>): Likewise.
6181 (aarch64_frecps<mode>): Likewise.
6182 (<FCVT_F2FIXED:fcvt_fixed_insn>hfhi3): New.
6183 (<FCVT_FIXED2F:fcvt_fixed_insn>hihf3): Likewise.
6184 * config/aarch64/iterators.md (VHSDF_SDF): Delete.
6185 (VSDQ_HSDI): Support HI.
6186 (fcvt_target, FCVT_TARGET): Likewise.
6187 * config/aarch64/arm_fp16.h (vaddh_f16, vsubh_f16, vabdh_f16,
6188 vcageh_f16, vcagth_f16, vcaleh_f16, vcalth_f16, vceqh_f16, vcgeh_f16,
6189 vcgth_f16, vcleh_f16, vclth_f16, vcvth_n_f16_s16, vcvth_n_f16_s32,
6190 vcvth_n_f16_s64, vcvth_n_f16_u16, vcvth_n_f16_u32, vcvth_n_f16_u64,
6191 vcvth_n_s16_f16, vcvth_n_s32_f16, vcvth_n_s64_f16, vcvth_n_u16_f16,
6192 vcvth_n_u32_f16, vcvth_n_u64_f16, vdivh_f16, vmaxh_f16, vmaxnmh_f16,
6193 vminh_f16, vminnmh_f16, vmulh_f16, vmulxh_f16, vrecpsh_f16,
6194 vrsqrtsh_f16): New.
6195
6196 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6197
6198 * config.gcc (aarch64*-*-*): Install arm_fp16.h.
6199 * config/aarch64/aarch64-builtins.c (hi_UP): New.
6200 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6201 * config/aarch64/aarch64-simd.md (aarch64_frsqrte<mode>): Extend to HF
6202 mode.
6203 (aarch64_frecp<FRECP:frecp_suffix><mode>): Likewise.
6204 (aarch64_cm<optab><mode>): Likewise.
6205 * config/aarch64/aarch64.md (<frint_pattern><mode>2): Likewise.
6206 (l<fcvt_pattern><su_optab><GPF:mode><GPI:mode>2): Likewise.
6207 (fix_trunc<GPF:mode><GPI:mode>2): Likewise.
6208 (sqrt<mode>2): Likewise.
6209 (*sqrt<mode>2): Likewise.
6210 (abs<mode>2): Likewise.
6211 (<optab><mode>hf2): New pattern for HF mode.
6212 (<optab>hihf2): Likewise.
6213 * config/aarch64/arm_neon.h: Include arm_fp16.h.
6214 * config/aarch64/iterators.md (GPF_F16, GPI_F16, VHSDF_HSDF): New.
6215 (w1, w2, v, s, q, Vmtype, V_cmp_result, fcvt_iesize, FCVT_IESIZE):
6216 Support HF mode.
6217 * config/aarch64/arm_fp16.h: New file.
6218 (vabsh_f16, vceqzh_f16, vcgezh_f16, vcgtzh_f16, vclezh_f16, vcltzh_f16,
6219 vcvth_f16_s16, vcvth_f16_s32, vcvth_f16_s64, vcvth_f16_u16,
6220 vcvth_f16_u32, vcvth_f16_u64, vcvth_s16_f16, vcvth_s32_f16,
6221 vcvth_s64_f16, vcvth_u16_f16, vcvth_u32_f16, vcvth_u64_f16,
6222 vcvtah_s16_f16, vcvtah_s32_f16, vcvtah_s64_f16, vcvtah_u16_f16,
6223 vcvtah_u32_f16, vcvtah_u64_f16, vcvtmh_s16_f16, vcvtmh_s32_f16,
6224 vcvtmh_s64_f16, vcvtmh_u16_f16, vcvtmh_u32_f16, vcvtmh_u64_f16,
6225 vcvtnh_s16_f16, vcvtnh_s32_f16, vcvtnh_s64_f16, vcvtnh_u16_f16,
6226 vcvtnh_u32_f16, vcvtnh_u64_f16, vcvtph_s16_f16, vcvtph_s32_f16,
6227 vcvtph_s64_f16, vcvtph_u16_f16, vcvtph_u32_f16, vcvtph_u64_f16,
6228 vnegh_f16, vrecpeh_f16, vrecpxh_f16, vrndh_f16, vrndah_f16, vrndih_f16,
6229 vrndmh_f16, vrndnh_f16, vrndph_f16, vrndxh_f16, vrsqrteh_f16,
6230 vsqrth_f16): New.
6231
6232 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6233
6234 * config/aarch64/aarch64-simd-builtins.def (reduc_smax_scal_,
6235 reduc_smin_scal_): Use VDQIF_F16.
6236 (reduc_smax_nan_scal_, reduc_smin_nan_scal_): Use VHSDF.
6237 * config/aarch64/aarch64-simd.md (reduc_<maxmin_uns>_scal_<mode>):
6238 Use VHSDF.
6239 (aarch64_reduc_<maxmin_uns>_internal<mode>): Likewise.
6240 * config/aarch64/iterators.md (VDQIF_F16): New.
6241 (vp): Support HF modes.
6242 * config/aarch64/arm_neon.h (vmaxv_f16, vmaxvq_f16, vminv_f16,
6243 vminvq_f16, vmaxnmv_f16, vmaxnmvq_f16, vminnmv_f16, vminnmvq_f16): New.
6244
6245 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6246
6247 * config/aarch64/aarch64-simd.md (*aarch64_mulx_elt_to_64v2df): Rename to
6248 "*aarch64_mulx_elt_from_dup<mode>".
6249 (*aarch64_mul3_elt<mode>): Update schedule type.
6250 (*aarch64_mul3_elt_from_dup<mode>): Likewise.
6251 (*aarch64_fma4_elt_from_dup<mode>): Likewise.
6252 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
6253 * config/aarch64/iterators.md (VMUL): Supprt half precision float modes.
6254 (f, fp): Support HF modes.
6255 * config/aarch64/arm_neon.h (vfma_lane_f16, vfmaq_lane_f16,
6256 vfma_laneq_f16, vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
6257 vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
6258 vfmsq_n_f16, vmul_lane_f16, vmulq_lane_f16, vmul_laneq_f16,
6259 vmulq_laneq_f16, vmul_n_f16, vmulq_n_f16, vmulx_lane_f16,
6260 vmulxq_lane_f16, vmulx_laneq_f16, vmulxq_laneq_f16): New.
6261
6262 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6263
6264 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6265 * config/aarch64/aarch64-simd.md (fma<mode>4, fnma<mode>4): Extend to HF
6266 modes.
6267 * config/aarch64/arm_neon.h (vfma_f16, vfmaq_f16, vfms_f16,
6268 vfmsq_f16): New.
6269
6270 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6271
6272 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6273 * config/aarch64/aarch64-simd.md
6274 (aarch64_rsqrts<mode>): Extend to HF modes.
6275 (fabd<mode>3): Likewise.
6276 (<FCVT_F2FIXED:fcvt_fixed_insn><VHSDF_SDF:mode>3): Likewise.
6277 (<FCVT_FIXED2F:fcvt_fixed_insn><VHSDI_SDI:mode>3): Likewise.
6278 (aarch64_<maxmin_uns>p<mode>): Likewise.
6279 (<su><maxmin><mode>3): Likewise.
6280 (<maxmin_uns><mode>3): Likewise.
6281 (<fmaxmin><mode>3): Likewise.
6282 (aarch64_faddp<mode>): Likewise.
6283 (aarch64_fmulx<mode>): Likewise.
6284 (aarch64_frecps<mode>): Likewise.
6285 (*aarch64_fac<optab><mode>): Rename to aarch64_fac<optab><mode>.
6286 (add<mode>3): Extend to HF modes.
6287 (sub<mode>3): Likewise.
6288 (mul<mode>3): Likewise.
6289 (div<mode>3): Likewise.
6290 (*div<mode>3): Likewise.
6291 * config/aarch64/aarch64.c (aarch64_emit_approx_div): Return false for
6292 HF, V4HF and V8HF.
6293 * config/aarch64/iterators.md (VDQ_HSDI, VSDQ_HSDI): New mode iterator.
6294 * config/aarch64/arm_neon.h (vadd_f16, vaddq_f16, vabd_f16, vabdq_f16,
6295 vcage_f16, vcageq_f16, vcagt_f16, vcagtq_f16, vcale_f16, vcaleq_f16,
6296 vcalt_f16, vcaltq_f16, vceq_f16, vceqq_f16, vcge_f16, vcgeq_f16,
6297 vcgt_f16, vcgtq_f16, vcle_f16, vcleq_f16, vclt_f16, vcltq_f16,
6298 vcvt_n_f16_s16, vcvtq_n_f16_s16, vcvt_n_f16_u16, vcvtq_n_f16_u16,
6299 vcvt_n_s16_f16, vcvtq_n_s16_f16, vcvt_n_u16_f16, vcvtq_n_u16_f16,
6300 vdiv_f16, vdivq_f16, vdup_lane_f16, vdup_laneq_f16, vdupq_lane_f16,
6301 vdupq_laneq_f16, vdups_lane_f16, vdups_laneq_f16, vmax_f16, vmaxq_f16,
6302 vmaxnm_f16, vmaxnmq_f16, vmin_f16, vminq_f16, vminnm_f16, vminnmq_f16,
6303 vmul_f16, vmulq_f16, vmulx_f16, vmulxq_f16, vpadd_f16, vpaddq_f16,
6304 vpmax_f16, vpmaxq_f16, vpmaxnm_f16, vpmaxnmq_f16, vpmin_f16, vpminq_f16,
6305 vpminnm_f16, vpminnmq_f16, vrecps_f16, vrecpsq_f16, vrsqrts_f16,
6306 vrsqrtsq_f16, vsub_f16, vsubq_f16): New.
6307
6308 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6309
6310 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New.
6311 * config/aarch64/aarch64-simd-builtins.def: Register new builtins.
6312 * config/aarch64/aarch64-simd.md (aarch64_rsqrte<mode>): Extend to HF modes.
6313 (neg<mode>2): Likewise.
6314 (abs<mode>2): Likewise.
6315 (<frint_pattern><mode>2): Likewise.
6316 (l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): Likewise.
6317 (<optab><VDQF:mode><fcvt_target>2): Likewise.
6318 (<fix_trunc_optab><VDQF:mode><fcvt_target>2): Likewise.
6319 (ftrunc<VDQF:mode>2): Likewise.
6320 (<optab><fcvt_target><VDQF:mode>2): Likewise.
6321 (sqrt<mode>2): Likewise.
6322 (*sqrt<mode>2): Likewise.
6323 (aarch64_frecpe<mode>): Likewise.
6324 (aarch64_cm<optab><mode>): Likewise.
6325 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Return false for
6326 HF, V4HF and V8HF.
6327 * config/aarch64/iterators.md (VHSDF, VHSDF_DF, VHSDF_SDF): New.
6328 (VDQF_COND, fcvt_target, FCVT_TARGET, hcon): Extend mode attribute to HF modes.
6329 (stype): New.
6330 * config/aarch64/arm_neon.h (vdup_n_f16): New.
6331 (vdupq_n_f16): Likewise.
6332 (vld1_dup_f16): Use vdup_n_f16.
6333 (vld1q_dup_f16): Use vdupq_n_f16.
6334 (vabs_f16, vabsq_f16, vceqz_f16, vceqzq_f16, vcgez_f16, vcgezq_f16,
6335 vcgtz_f16, vcgtzq_f16, vclez_f16, vclezq_f16, vcltz_f16, vcltzq_f16,
6336 vcvt_f16_s16, vcvtq_f16_s16, vcvt_f16_u16, vcvtq_f16_u16, vcvt_s16_f16,
6337 vcvtq_s16_f16, vcvt_u16_f16, vcvtq_u16_f16, vcvta_s16_f16,
6338 vcvtaq_s16_f16, vcvta_u16_f16, vcvtaq_u16_f16, vcvtm_s16_f16,
6339 vcvtmq_s16_f16, vcvtm_u16_f16, vcvtmq_u16_f16, vcvtn_s16_f16,
6340 vcvtnq_s16_f16, vcvtn_u16_f16, vcvtnq_u16_f16, vcvtp_s16_f16,
6341 vcvtpq_s16_f16, vcvtp_u16_f16, vcvtpq_u16_f16, vneg_f16, vnegq_f16,
6342 vrecpe_f16, vrecpeq_f16, vrnd_f16, vrndq_f16, vrnda_f16, vrndaq_f16,
6343 vrndi_f16, vrndiq_f16, vrndm_f16, vrndmq_f16, vrndn_f16, vrndnq_f16,
6344 vrndp_f16, vrndpq_f16, vrndx_f16, vrndxq_f16, vrsqrte_f16, vrsqrteq_f16,
6345 vsqrt_f16, vsqrtq_f16): New.
6346
6347 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6348
6349 * config/aarch64/aarch64-simd.md
6350 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Use VALL_F16.
6351 (aarch64_ext<mode>): Likewise.
6352 (aarch64_rev<REVERSE:rev_op><mode>): Likewise.
6353 * config/aarch64/aarch64.c (aarch64_evpc_trn, aarch64_evpc_uzp,
6354 aarch64_evpc_zip, aarch64_evpc_ext, aarch64_evpc_rev): Support V4HFmode
6355 and V8HFmode.
6356 * config/aarch64/arm_neon.h (__INTERLEAVE_LIST): Support float16x4_t,
6357 float16x8_t.
6358 (__aarch64_vdup_lane_f16, __aarch64_vdup_laneq_f16,
6359 __aarch64_vdupq_lane_f16, __aarch64_vdupq_laneq_f16, vbsl_f16,
6360 vbslq_f16, vdup_n_f16, vdupq_n_f16, vdup_lane_f16, vdup_laneq_f16,
6361 vdupq_lane_f16, vdupq_laneq_f16, vduph_lane_f16, vduph_laneq_f16,
6362 vext_f16, vextq_f16, vmov_n_f16, vmovq_n_f16, vrev64_f16, vrev64q_f16,
6363 vtrn1_f16, vtrn1q_f16, vtrn2_f16, vtrn2q_f16, vtrn_f16, vtrnq_f16,
6364 vuzp1_f16, vuzp1q_f16, vuzp2_f16, vuzp2q_f16, vzip1_f16, vzip2q_f16):
6365 New.
6366 (vmov_n_f16): Reimplement using vdup_n_f16.
6367 (vmovq_n_f16): Reimplement using vdupq_n_f16..
6368
6369 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6370
6371 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter
6372 "frame_related_p". Generate CFA annotation when it's necessary.
6373 (aarch64_expand_prologue): Use aarch64_add_constant.
6374 (aarch64_expand_epilogue): Likewise.
6375 (aarch64_output_mi_thunk): Pass "false" when calling
6376 aarch64_add_constant.
6377
6378 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6379
6380 * config/aarch64/aarch64.c (aarch64_add_constant): Optimize instruction
6381 sequences.
6382
6383 2016-07-25 Jiong Wang <jiong.wang@arm.com>
6384
6385 * config/aarch64/aarch64.c (aarch64_add_constant): New parameter "mode".
6386 Use aarch64_internal_mov_immediate instead of aarch64_build_constant.
6387 (aarch64_output_mi_thunk): Pass Pmode when calling aarch64_add_constant.
6388 (aarch64_build_constant): Delete.
6389
6390 2016-07-25 Alexander Monakov <amonakov@ispras.ru>
6391
6392 Revert
6393 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
6394
6395 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6396 flag_toplevel_reorder.
6397
6398 2016-07-25 Richard Biener <rguenther@suse.de>
6399
6400 * cgraph.c (cgraph_node::verify_node): Compare against builtin
6401 by using DECL_BUILT_IN_CLASS and DECL_FUNCTION_CODE.
6402 * tree-chkp.c (chkp_gimple_call_builtin_p): Likewise.
6403 * tree-streamer.h (streamer_handle_as_builtin_p): Remove.
6404 (streamer_get_builtin_tree): Likewise.
6405 (streamer_write_builtin): Likewise.
6406 * lto-streamer.h (LTO_builtin_decl): Remove.
6407 * lto-streamer-in.c (lto_read_tree_1): Remove assert.
6408 (lto_input_scc): Remove LTO_builtin_decl handling.
6409 (lto_input_tree_1): Liekwise.
6410 * lto-streamer-out.c (lto_output_tree_1): Remove special
6411 handling of builtins.
6412 (DFS::DFS): Likewise.
6413 * tree-streamer-in.c (streamer_get_builtin_tree): Remove.
6414 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Remove
6415 assert.
6416 (streamer_write_builtin): Remove.
6417
6418 2016-07-25 Martin Liska <mliska@suse.cz>
6419
6420 * lto-cgraph.c (input_symtab): Don't call get_working_sets
6421 if flag_auto_profile is set to true.
6422
6423 2016-07-25 Martin Liska <mliska@suse.cz>
6424
6425 PR gcov-profile/71868
6426 * cfgloopanal.c (expected_loop_iterations_unbounded): When we
6427 have a function with multiple latches, count them all.
6428
6429 2016-07-25 Martin Liska <mliska@suse.cz>
6430
6431 * tree-ssa-loop-niter.c (loop_only_exit_p): Release body array.
6432
6433 2016-07-25 Martin Liska <mliska@suse.cz>
6434
6435 PR tree-optimization/71987
6436 * tree-ssa-reassoc.c (maybe_optimize_range_tests): Call get_ops
6437 just for SSA_NAMEs. Fix GNU coding style.
6438
6439 2016-07-25 Martin Liska <mliska@suse.cz>
6440
6441 PR gcov-profile/64874
6442 * gcov-io.h: Update command about file format.
6443 * gcov-iov.c (main): Adapt the numbering scheme.
6444
6445 2016-07-24 Kugan Vivekanandarajah <kuganv@linaro.org>
6446
6447 PR middle-end/66726
6448 * tree-ssa-reassoc.c (optimize_vec_cond_expr): Handle tcc_compare stmt
6449 whose result is used in PHI.
6450 (final_range_test_p): Likewise.
6451 (maybe_optimize_range_tests): Likewise.
6452
6453 2016-07-22 Michael Meissner <meissner@linux.vnet.ibm.com>
6454
6455 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6456 Reformat two multi-line strings.
6457
6458 2016-07-22 Martin Sebor <msebor@redhat.com>
6459
6460 * doc/extend.texi (Compound Literals): Add '@' missed in last commit.
6461
6462 2016-07-22 Martin Sebor <msebor@redhat.com>
6463
6464 PR c/71560
6465 * doc/extend.texi (Compound Literals): Correct and clarify.
6466 (Cast to Union): Same.
6467
6468 2016-07-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
6469
6470 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
6471 comments to explain why certain error messages make mention of
6472 undocumented options.
6473 (rs6000_invalid_builtin): Change error messages to replace mention
6474 of undocumented options with mention of the -mcpu=power9 option
6475 that enables those undocumented options.
6476 * config/rs6000/rs6000.h (MASK_FLOAT128): New macro.
6477 (RS6000_BTM_FLOAT128): Use the new MASK_FLOAT128 macro in the
6478 definition of this macro to correct an existing error.
6479 * config/rs6000/rs6000.opt: Add the Undocumented qualifier to the
6480 mpower9-fusion, mpower9-vector, mpower9-dform, and mmodulo entries.
6481 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Modify
6482 descriptions of built-in functions so that they depend on
6483 -mcpu=power9 instead of on the corresponding undocumented flags.
6484 * doc/invoke.texi (Option Summary): Remove all mention of newly
6485 undocumented flags.
6486 (IBM RS/6000 and PowerPC Options): Likewise.
6487 * doc/md.texi (Constraints for Particuliar Machines): Remove all
6488 mention of newly undocumented flags.
6489
6490 2016-07-22 Evgeny Stupachenko <evstupac@gmail.com>
6491
6492 * ipa-cp.c (determine_versionability): Do not create constprop clones,
6493 when target_clones attribute is set.
6494
6495 2016-07-22 Bin Cheng <bin.cheng@arm.com>
6496
6497 * common.opt (funsafe-loop-optimizations): Mark ignore.
6498 * doc/invoke.texi (funsafe-loop-optimizations): Remove.
6499 * loop-iv.c (get_simple_loop_desc): Remove unsafe-loop-optimizations
6500 related code.
6501 * tree-ssa-loop-niter.c (finite_loop_p): Ditto.
6502 * config/bfin/bfin.c (bfin_can_use_doloop_p): Ditto.
6503
6504 2016-07-22 Bin Cheng <bin.cheng@arm.com>
6505
6506 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
6507 Parameter.
6508 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
6509 Parameter.
6510 (number_of_iterations_exit): Warn missed loop optimization for
6511 possible infinite loops.
6512
6513 2016-07-22 Segher Boessenkool <segher@kernel.crashing.org>
6514
6515 PR target/71216
6516 * config/rs6000/rs6000.c (rs6000_file_start): Fix condition for
6517 when to emit a ".machine" pseudo-op.
6518
6519 2016-07-22 Martin Liska <mliska@suse.cz>
6520
6521 PR gcov-profile/69028
6522 PR gcov-profile/62047
6523 * coverage.c (coverage_compute_lineno_checksum): Do not
6524 calculate checksum for fns w/o xloc.file.
6525 (coverage_compute_profile_id): Likewise.
6526
6527 2016-07-22 Georg-Johann Lay <avr@gjlay.de>
6528
6529 * config/avr/avr.c (TARGET_SECONDARY_RELOAD): Remove hook define...
6530 (avr_secondary_reload): ...and implementation.
6531 (avr_adjust_insn_length) [ADJUST_LEN_LPM]: Remove handling.
6532 * config/avr/avr.md (reload_in<mode>): Remove insns.
6533 (adjust_len) [lpm]: Remove insn attribute value.
6534 * config/avr/predicates.md (flash_operand): Remove insn predicate.
6535
6536 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
6537
6538 PR middle-end/71876
6539 * builtin-attrs.def (ATTR_RT_NOTHROW_LEAF_LIST): New return twice
6540 attribute.
6541 * builtins.def (BUILT_IN_SETJMP): Use ATTR_RT_NOTHROW_LEAF_LIST here.
6542 * calls.c (special_function_p): Remove the special handling of the
6543 "__builtin_" prefix.
6544
6545 2016-07-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
6546
6547 PR middle-end/71876
6548 * calls.c (gimple_maybe_alloca_call_p): New function. Return true
6549 if STMT may be an alloca call.
6550 (gimple_alloca_call_p, alloca_call_p): Return only true for the
6551 builtin alloca call.
6552 * calls.h (gimple_maybe_alloca_call_p): New function.
6553 * tree-inline.c (inline_forbidden_p_stmt): Use
6554 gimple_maybe_alloca_call_p here.
6555
6556 2016-07-21 David Malcolm <dmalcolm@redhat.com>
6557
6558 * spellcheck-tree.c (best_macro_match::best_macro_match):
6559 Explictly specify the template arguments when invoking the base
6560 class constructor, to help older C++ compilers.
6561
6562 2016-07-21 Jakub Jelinek <jakub@redhat.com>
6563
6564 PR sanitizer/71953
6565 * asan.c (asan_dynamic_init_call): Call asan_init_shadow_ptr_types
6566 before builtin_decl_implicit.
6567
6568 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
6569
6570 * optabs.c (emit_condiitonal_move): Short circuit for identical
6571 sources.
6572
6573 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
6574
6575 * ifcvt.c (noce_if_info): New fields: speed_p, original_cost,
6576 max_seq_cost. Removed fields: then_cost, else_cost, branch_cost.
6577 (noce_conversion_profitable_p): New.
6578 (noce_try_store_flag_constants): Use it.
6579 (noce_try_addcc): Likewise.
6580 (noce_try_store_flag_mask): Likewise.
6581 (noce_try_cmove): Likewise.
6582 (noce_try_cmove_arith): Likewise.
6583 (bb_valid_for_noce_process_p): Add to the cost parameter rather than
6584 overwriting it.
6585 (noce_convert_multiple_sets): Move cost model to here, from...
6586 (bb_ok_for_noce_convert_multiple_sets) ...here.
6587 (noce_process_if_block): Update calls for above changes.
6588 (noce_find_if_block): Record new noce_if_info parameters.
6589
6590 2016-07-21 James Greenhalgh <james.greenhalgh@arm.com>
6591
6592 * target.def (max_noce_ifcvt_seq_cost): New.
6593 * doc/tm.texi.in (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Document it.
6594 * doc/tm.texi: Regenerate.
6595 * targhooks.h (default_max_noce_ifcvt_seq_cost): New.
6596 * targhooks.c (default_max_noce_ifcvt_seq_cost): New.
6597 * params.def (PARAM_MAX_RTL_IF_CONVERSION_PREDICTABLE_COST): New.
6598 (PARAM_MAX_RTL_IF_CONVERSION_UNPREDICTABLE_COST): Likewise.
6599 * doc/invoke.texi: Document new params.
6600
6601 2016-07-21 Richard Biener <rguenther@suse.de>
6602
6603 PR tree-optimization/71947
6604 * tree-vrp.c (extract_range_from_assert): Singleton symbolic
6605 ranges have useful limit_vr information.
6606
6607 2016-07-21 Richard Biener <rguenther@suse.de>
6608
6609 * function-tests.c (build_trivial_generic_function): Set
6610 BLOCK_SUPERCONTEXT of DECL_INITIAL.
6611 * omp-low.c (create_omp_child_function): Likewise.
6612 (grid_expand_target_grid_body): Likewise.
6613 * cgraphunit.c (init_lowered_empty_function): Likewise.
6614 (cgraph_node::expand_thunk): Likewise.
6615 * tree-parloops.c (create_loop_fn): Likewise.
6616 * ipa.c (cgraph_build_static_cdtor_1): Likewise.
6617
6618 2016-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6619
6620 * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Fix typo
6621 in comment.
6622
6623 2016-07-21 Georg-Johann Lay <avr@gjlay.de>
6624
6625 * config/avr/avr.md (any_extract, any_shiftrt): New code iterators.
6626 (*insv.extract, *insv.shiftrt, *insv.not-bit.0, *insv.not-bit.7)
6627 (*insv.xor-extract, *insv.xor1-bit.0): New insns.
6628 (adjust_len) [insv_notbit, insv_notbit_0, insv_notbit_7]: New
6629 values for insn attribute.
6630 * config/avr/avr.c (avr_out_insert_notbit): New function.
6631 (avr_adjust_insn_length): Handle ADJUST_LEN_INSV_NOTBIT,
6632 ADJUST_LEN_INSV_NOTBIT_0/_7.
6633 * config/avr/avr-protos.h (avr_out_insert_notbit): New proto.
6634
6635 2016-07-21 Bin Cheng <bin.cheng@arm.com>
6636
6637 * tree-chrec.c (convert_affine_scev): New parameter. Pass new arg.
6638 (chrec_convert_1, chrec_convert): Ditto.
6639 * tree-chrec.h (chrec_convert, convert_affine_scev): New parameter.
6640 * tree-scalar-evolution.c (interpret_rhs_expr): Pass new arg.
6641 * tree-vrp.c (adjust_range_with_scev): Ditto.
6642 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): Ditto.
6643 (scev_var_range_cant_overflow): New function.
6644 (scev_probably_wraps_p): New parameter. Call above function.
6645 * tree-ssa-loop-niter.h (scev_probably_wraps_p): New parameter.
6646
6647 2016-07-21 Bin Cheng <bin.cheng@arm.com>
6648
6649 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
6650 by removing computation of may_be_zero.
6651
6652 2016-07-21 Jakub Jelinek <jakub@redhat.com>
6653
6654 * tree-object-size.c (unknown): Use HOST_WIDE_INT_M1U instead of -1.
6655
6656 2016-07-21 Andrew Sutton <andrew.n.sutton@gmail.com>
6657
6658 Improving concepts performance and diagnostics.
6659 * timevar.def (TV_CONSTRAINT_SAT, TV_CONSTRAINT_SUB): New time vars
6660 for constraint satisfaction and subsumption.
6661 * timevar.h (auto_timevar): New constructor that matches the push/pop
6662 pattern of usage in pt.c.
6663
6664 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
6665
6666 * hwint.h (HOST_WIDE_INT_0): New define.
6667 (HOST_WIDE_INT_0U): Ditto.
6668 * double-int.c: Use HOST_WIDE_INT_0 instead of (HOST_WIDE_INT) 0.
6669 * dse.c: Use HOST_WIDE_INT_0U instead of (unsigned HOST_WIDE_INT) 0.
6670 * simplify-rtx.c: Ditto.
6671 * tree-object-size.c: Ditto.
6672
6673 2016-07-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6674
6675 * config/s390/s390.c (s390_encode_section_info): Remove mode size
6676 check.
6677
6678 2016-07-20 Uros Bizjak <ubizjak@gmail.com>
6679
6680 * cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
6681 * combine.c: Use HOST_WIDE_INT_M1U instead of
6682 ~(unsigned HOST_WIDE_INT) 0.
6683 * double-int.h: Ditto.
6684 * dse.c: Ditto.
6685 * dwarf2asm.c:Ditto.
6686 * expmed.c: Ditto.
6687 * genmodes.c: Ditto.
6688 * match.pd: Ditto.
6689 * read-rtl.c: Ditto.
6690 * tree-ssa-loop-ivopts.c: Ditto.
6691 * tree-ssa-loop-prefetch.c: Ditto.
6692 * tree-vect-generic.c: Ditto.
6693 * tree-vect-patterns.c: Ditto.
6694 * tree.c: Ditto.
6695
6696 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6697
6698 * gcc/config/avr.c (avr_legitimize_address) [AVR_TINY]: Force
6699 constant addresses outside [0,0xc0] into a register.
6700 (avr_out_movhi_r_mr_reg_no_disp_tiny): Pass insn. And handle
6701 cases where the base address register is unused after.
6702 (avr_out_movhi_r_mr_reg_disp_tiny): Same.
6703 (avr_out_movhi_mr_r_reg_disp_tiny): Same.
6704 (avr_out_store_psi_reg_disp_tiny): Same.
6705
6706 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6707
6708 Implement attribute progmem on reduced Tiny cores by adding
6709 flash offset 0x4000 to respective symbols.
6710
6711 PR target/71948
6712 * doc/extend.texi (AVR Variable Attributes) [progmem]: Add
6713 documentation how it works on reduced Tiny cores.
6714 (AVR Named Address Spaces): No support for reduced Tiny.
6715 * config/avr/avr.c (AVR_SYMBOL_FLAG_TINY_PM): New macro.
6716 (avr_address_tiny_pm_p): New static function.
6717 (avr_print_operand_address) [AVR_TINY]: Add AVR_TINY_PM_OFFSET
6718 if the address is in progmem.
6719 (avr_assemble_integer): Same.
6720 (avr_encode_section_info) [AVR_TINY]: Set AVR_SYMBOL_FLAG_TINY_PM
6721 for symbol_ref in progmem.
6722 * config/avr/avr.h (AVR_TINY_PM_OFFSET): New macro.
6723 * config/avr/avr-c.c (avr_cpu_cpp_builtins): Use it instead of
6724 magic 0x4000 when built-in def'ing __AVR_TINY_PM_BASE_ADDRESS__.
6725
6726 2016-07-20 Patrick Palka <ppalka@gcc.gnu.org>
6727
6728 * configure.ac (thin_archive_support): New variable. AC_SUBST it.
6729 * configure: Regenerate.
6730 * Makefile.in (THIN_ARCHIVE_SUPPORT): New variable.
6731 (USE_THIN_ARCHIVES): New variable.
6732 (libbackend.a): If USE_THIN_ARCHIVES then pass T to ar to build
6733 this archive as a thin archive.
6734
6735 2016-07-20 David Malcolm <dmalcolm@redhat.com>
6736
6737 * diagnostic-show-locus.c (diagnostic_show_locus): If this is the
6738 same location as last time, don't skip if we have fix-it hints.
6739 Clarify the skipping logic by converting it from one "if" clause
6740 to repeated "if" clauses.
6741 * spellcheck-tree.c: Include "cpplib.h".
6742 (find_closest_macro_cpp_cb): Move here from c/c-decl.c.
6743 (best_macro_match::best_macro_match): New constructor.
6744 * spellcheck-tree.h (struct edit_distance_traits<cpp_hashnode *>):
6745 Move here from c/c-decl.c.
6746 (class best_macro_match): Move here from c/c-decl.c, converting
6747 from a typedef to a subclass, gaining a ctor.
6748
6749 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6750
6751 * config/avr/avr-protos.h (avr_addr_space_supported_p): New prototype.
6752 * config/avr/avr.c (TARGET_ADDR_SPACE_DIAGNOSE_USAGE): New hook
6753 define...
6754 (avr_addr_space_diagnose_usage): ...and implementation.
6755 (avr_addr_space_supported_p): New function.
6756 (avr_nonconst_pointer_addrspace, avr_pgm_check_var_decl): Only
6757 report bad address space usage if that space is supported.
6758 (avr_insert_attributes): Same. No more complain about unsupported
6759 address spaces.
6760 * config/avr/avr-c.c (tm_p.h): Include it.
6761 (avr_cpu_cpp_builtins): Only define addr-space related built-in
6762 macro if avr_addr_space_supported_p.
6763
6764 2016-07-20 Alexander Monakov <amonakov@ispras.ru>
6765
6766 * config/nvptx/nvptx.c (nvptx_option_override): Do not set
6767 flag_toplevel_reorder.
6768
6769 2016-07-20 David Malcolm <dmalcolm@redhat.com>
6770
6771 * gcc-rich-location.c
6772 (gcc_rich_location::add_fixit_misspelled_id): New overload, taking
6773 a const char *.
6774 * gcc-rich-location.h
6775 (gcc_rich_location::add_fixit_misspelled_id): Likewise.
6776
6777 2016-07-20 Georg-Johann Lay <avr@gjlay.de>
6778
6779 * target.def (addr_space): Add new diagnose_usage to hook vector.
6780 * targhooks.c (default_addr_space_diagnose_usage): Add default
6781 implementation and...
6782 * targhooks.h (default_addr_space_diagnose_usage): ... its prototype.
6783 * c/c-parser.c (c_lex_one_token) [CPP_NAME]: If the token
6784 is some address space, call targetm.addr_space.diagnose_usage.
6785 * doc/tm.texi.in (Named Address Spaces): Add anchor for
6786 TARGET_ADDR_SPACE_DIAGNOSE_USAGE documentation.
6787 * doc/tm.texi: Regenerate.
6788
6789 2016-07-20 Martin Liska <mliska@suse.cz>
6790
6791 PR middle-end/71898
6792 * graphite-isl-ast-to-gimple.c (later_of_the_two):
6793 Properly handly PHI stmts.
6794
6795 2016-07-20 Bin Cheng <bin.cheng@arm.com>
6796
6797 PR tree-optimization/71503
6798 PR tree-optimization/71683
6799 * tree-if-conv.c (gen_phi_arg_condition): Record true predicate
6800 and break.
6801
6802 2016-07-20 Martin Liska <mliska@suse.cz>
6803
6804 * doc/invoke.texi (-fipa-ra): Document when the option is
6805 disabled. Fix a typo.
6806
6807 2016-07-20 Martin Liska <mliska@suse.cz>
6808
6809 * Makefile.in: Include fibonacci_heap.c
6810 * fibonacci_heap.c: New file.
6811 * fibonacci_heap.h (fibonacci_heap::insert): Use insert_node.
6812 (fibonacci_heap::union_with): Fix deletion of the second heap.
6813 * selftest-run-tests.c (selftest::run_tests): Incorporate
6814 fibonacci heap tests.
6815 * selftest.h: Declare fibonacci_heap_c_tests.
6816
6817 2016-07-20 Martin Liska <mliska@suse.cz>
6818
6819 * selftest-run-tests.c (selftest::run_tests): New function.
6820 * selftest.h (sreal_c_tests): Declare.
6821 * sreal.c (sreal_verify_basics): New function.
6822 (verify_aritmetics): Likewise.
6823 (sreal_verify_arithmetics): Likewise.
6824 (verify_shifting): Likewise.
6825 (sreal_verify_shifting): Likewise.
6826 (void sreal_c_tests): Likewise.
6827
6828 2016-07-19 Jakub Jelinek <jakub@redhat.com>
6829
6830 PR rtl-optimization/71916
6831 * cfgrtl.c (contains_no_active_insn_p): Return false also for
6832 bb which have a single succ fake edge.
6833
6834 2016-07-19 Aldy Hernandez <aldyh@redhat.com>
6835
6836 PR debug/71855
6837 * dwarf2out.c (gen_subprogram_die): Only call
6838 gen_unspecified_parameters_die while dumping early dwarf.
6839
6840 2016-07-19 Jakub Jelinek <jakub@redhat.com>
6841
6842 PR middle-end/71874
6843 * gimple-fold.c (fold_builtin_memory_op): Use
6844 get_addr_base_and_unit_offset instead of get_ref_base_and_extent.
6845
6846 2016-07-19 Uros Bizjak <ubizjak@gmail.com>
6847
6848 * builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
6849 HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
6850 HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
6851 HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
6852 * combine.c: Ditto.
6853 * cse.c: Ditto.
6854 * dojump.c: Ditto.
6855 * double-int.c: Ditto.
6856 * dse.c: Ditto.
6857 * dwarf2out.c: Ditto.
6858 * expmed.c: Ditto.
6859 * expr.c: Ditto.
6860 * fold-const.c: Ditto.
6861 * function.c: Ditto.
6862 * fwprop.c: Ditto.
6863 * genmodes.c: Ditto.
6864 * hwint.c: Ditto.
6865 * hwint.h: Ditto.
6866 * ifcvt.c: Ditto.
6867 * loop-doloop.c: Ditto.
6868 * loop-invariant.c: Ditto.
6869 * loop-iv.c: Ditto.
6870 * match.pd: Ditto.
6871 * optabs.c: Ditto.
6872 * real.c: Ditto.
6873 * reload.c: Ditto.
6874 * rtlanal.c: Ditto.
6875 * simplify-rtx.c: Ditto.
6876 * stor-layout.c: Ditto.
6877 * toplev.c: Ditto.
6878 * tree-ssa-loop-ivopts.c: Ditto.
6879 * tree-vect-generic.c: Ditto.
6880 * tree-vect-patterns.c: Ditto.
6881 * tree.c: Ditto.
6882 * tree.h: Ditto.
6883 * ubsan.c: Ditto.
6884 * varasm.c: Ditto.
6885 * wide-int-print.cc: Ditto.
6886 * wide-int.cc: Ditto.
6887 * wide-int.h: Ditto.
6888
6889 2016-07-19 David Malcolm <dmalcolm@redhat.com>
6890
6891 * selftest.c (selftest::assert_streq): Handle NULL values of
6892 val_actual and val_expected.
6893
6894 2016-07-19 Martin Jambor <mjambor@suse.cz>
6895
6896 PR fortran/71688
6897 * trans-decl.c (gfc_generate_function_code): Use cgraph_get_create_node
6898 rather than cgraph_create_node to get a call graph node.
6899
6900 2016-07-19 Richard Biener <rguenther@suse.de>
6901
6902 * gimple-fold.c (get_base_constructor): Add VIEW_CONVERT case,
6903 handle all tcc_constant bases and valueize SSA names.
6904 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Handle
6905 tcc_constant bases.
6906
6907 2016-07-19 David Malcolm <dmalcolm@redhat.com>
6908
6909 * function-tests.c (selftest::verify_three_block_rtl_cfg): Verify
6910 the flags of the exit block and bb2, not just the entry block.
6911
6912 2016-07-19 Richard Biener <rguenther@suse.de>
6913
6914 PR tree-optimization/71901
6915 * tree-ssa-sccvn.h (struct vn_reference_op_struct): Add
6916 align member, group stuff with the bitfield.
6917 (vn_ref_op_align_unit): New inline.
6918 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): For ARRAY_REFs
6919 record element alignment and operand 3 unchanged.
6920 (ao_ref_init_from_vn_reference): Adjust.
6921 (valueize_refs_1): Likewise.
6922 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Likewise.
6923
6924 2016-07-19 Richard Biener <rguenther@suse.de>
6925
6926 PR tree-optimization/71908
6927 * tree-ssa-structalias.c (get_constraint_for_component_ref): Handle
6928 symbolic constants in a more reliable way.
6929
6930 2016-07-19 Ilya Enkovich <ilya.enkovich@intel.com>
6931
6932 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Update
6933 comment.
6934 (vect_update_inits_of_drs): Likewise.
6935 (vect_create_cond_for_alias_checks): Likewise.
6936 * tree-vect-loop.c (vect_get_known_peeling_cost): Likewise.
6937
6938 2016-07-19 Richard Biener <rguenther@suse.de>
6939
6940 PR lto/71907
6941 * lto-streamer-out.c (DFS::DFS_write_tree_body): For blocks
6942 with an abstract origin that is not an inlined function outer
6943 scope add a self-reference as abstract origin.
6944 * tree-streamer-out.c (write_ts_block_tree_pointers): Likewise.
6945
6946 2016-07-18 Michael Meissner <meissner@linux.vnet.ibm.com>
6947
6948 PR target/71493
6949 * config/rs6000/rs6000.c (rs6000_function_value): Fix
6950 unintentional System V.4 structure return breakage for structures
6951 with a single floating point element.
6952
6953 2016-07-18 Yuri Rumyantsev <ysrumyan@gmail.com>
6954
6955 PR tree-optimization/71734
6956 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Add REF_LOOP argument which
6957 contains REF, use it to check safelen, assume that safelen value
6958 must be greater 1, fix style.
6959 (ref_indep_loop_p_2): Add REF_LOOP argument.
6960 (ref_indep_loop_p): Pass LOOP as additional argument to
6961 ref_indep_loop_p_2.
6962
6963 2016-07-18 Dominik Vogt <vogt@linux.vnet.ibm.com>
6964
6965 * cfgexpand.c (expand_stack_vars): Implement synamic stack space
6966 allocation in the prologue.
6967 * explow.c (get_dynamic_stack_base): New function to return an address
6968 expression for the dynamic stack base.
6969 (get_dynamic_stack_size): New function to do the required dynamic stack
6970 space size calculations.
6971 (allocate_dynamic_stack_space): Use new functions.
6972 (align_dynamic_address): Move some code from
6973 allocate_dynamic_stack_space to new function.
6974 * explow.h (get_dynamic_stack_base, get_dynamic_stack_size): Export.
6975
6976 2016-07-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6977
6978 * config/s390/s390.c (s390_encode_section_info): Always set
6979 notaligned marker if mode size is 0 or no MEM_ALIGN info could be
6980 found.
6981
6982 2016-07-18 Richard Biener <rguenther@suse.de>
6983
6984 PR tree-optimization/71893
6985 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Compensate
6986 for sizetype cast added by array_ref_element_size.
6987 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
6988
6989 2016-07-16 John David Anglin <danglin@gcc.gnu.org>
6990
6991 * config/pa/pa.c (hppa_profile_hook): Allocate stack space for
6992 register parameters. Remove code to initialize argument pointer
6993 on TARGET_64BIT. Optimize call to _mcount when it can be reached
6994 using a pc-relative branch. Cleanup conditional code.
6995 * config/pa/pa.md (call_mcount): New expander.
6996 (call_mcount_nonpic): New insn.
6997 (call_mcount_pic): New insn and split.
6998 (call_mcount_pic_post_reload): New insn.
6999 (call_mcount_64bit): New insn and split.
7000 (call_mcount_64bit_post_reload): New insn.
7001
7002 2016-07-15 Georg-Johann Lay <avr@gjlay.de>
7003
7004 * config/avr/predicates.md (const_m255_to_m1_operand): New.
7005 * config/avr/constraints.md (Cn8, Ca1, Co1, Yx2): New constraints.
7006 * config/avr/avr.md (add<mode>3) <ALL1>: Fix set_vzn for +/-2.
7007 (*cmphi.zero-extend.0, *cmphi.zero-extend.1)
7008 (*usum_widenqihi3, *udiff_widenqihi3)
7009 (*addhi3_zero_extend.const): New combiner insns.
7010 (andqi3, iorqi3): Provide "l" (NO_LD_REGS) alternative if
7011 just 1 bit is affected.
7012 * config/avr/avr.c (avr_out_bitop) <QImode>: Don't access xop[3].
7013 (avr_out_compare) [EQ,NE]: Tweak comparing d-regs against -1.
7014
7015 2016-07-15 Cesar Philippidis <cesar@codesourcery.com>
7016
7017 * omp-low.c (lower_omp_target): Mark data clauses with
7018 GOMP_MAP_FORCE_{PRESENT,TO,FROM,TOFROM} as potentially having
7019 zero-length subarrays.
7020
7021 2016-07-15 Richard Biener <rguenther@suse.de>
7022
7023 PR tree-optimization/71881
7024 * tree-loop-distribution.c (destroy_loop): Remove blocks in
7025 reverse DOM order to make debug temp generation happy.
7026
7027 2016-07-15 Richard Biener <rguenther@suse.de>
7028
7029 PR tree-optimization/71887
7030 * tree-ssa-phiopt.c (absorbing_element_p): Add rhs arg and
7031 verify it is not zero for division / modulo handling.
7032 (value_replacement): Adjust.
7033
7034 2016-07-15 Virendra Pathak <virendra.pathak@broadcom.com>
7035 Julian Brown <julian@codesourcery.com>
7036
7037 * config/aarch64/aarch64-cores.def: Update vulcan COSTS.
7038 * config/aarch64/aarch64-cost-tables.h
7039 (vulcan_extra_costs): New variable.
7040 * config/aarch64/aarch64.c
7041 (vulcan_addrcost_table): Likewise.
7042 (vulcan_regmove_cost): Likewise.
7043 (vulcan_vector_cost): Likewise.
7044 (vulcan_branch_cost): Likewise.
7045 (vulcan_tunings): Likewise.
7046
7047 2016-07-15 Alexander Monakov <amonakov@ispras.ru>
7048
7049 * cgraphunit.c (cgraph_order_sort_kind): New entry ORDER_VAR_UNDEF.
7050 (output_in_order): Loop over undefined variables too. Output them
7051 via assemble_undefined_decl. Skip variables that correspond to hard
7052 registers or have value-exprs.
7053 * varpool.c (symbol_table::output_variables): Handle undefined
7054 variables together with defined ones.
7055
7056 2016-07-15 Richard Biener <rguenther@suse.de>
7057
7058 * tree-ssa-pre.c (get_representative_for): Make sure to return
7059 the value number of SSA names.
7060 (phi_translate_1): get_representative_for cannot return NULL.
7061 (do_pre_regular_insertion): Remove redundant call to
7062 fully_constant_expression.
7063 (do_pre_partial_partial_insertion): Likewise.
7064
7065 2016-07-15 Bin Cheng <bin.cheng@arm.com>
7066
7067 * tree-scalar-evolution.c (simple_iv_with_niters): New funcion.
7068 (derive_simple_iv_with_niters): New function.
7069 (simple_iv): Rewrite using simple_iv_with_niters.
7070 * tree-scalar-evolution.h (simple_iv_with_niters): New decl.
7071 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): New
7072 function.
7073 (number_of_iterations_exit): Rewrite using above function.
7074 * tree-ssa-loop-niter.h (number_of_iterations_exit_assumptions): New
7075 Decl.
7076
7077 2016-07-15 Richard Biener <rguenther@suse.de>
7078
7079 * config/i386/i386.c (ix86_builtin_vectorization_cost): Adjust
7080 vec_construct cost.
7081
7082 2016-07-14 Jakub Jelinek <jakub@redhat.com>
7083
7084 PR tree-optimization/71872
7085 * tree-data-ref.c (get_references_in_stmt): Ignore references
7086 with is_gimple_constant get_base_address.
7087
7088 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
7089
7090 * config/arm/arm.h (TARGET_HAVE_LDACQ): Enable for ARMv8-M Mainline.
7091 (TARGET_HAVE_LDACQD): New macro.
7092 * config/arm/sync.md (atomic_loaddi): Use TARGET_HAVE_LDACQD rather
7093 than TARGET_HAVE_LDACQ.
7094 (arm_load_acquire_exclusivedi): Likewise.
7095 (arm_store_release_exclusivedi): Likewise.
7096
7097 2016-07-14 Thomas Preud'homme <thomas.preudhomme@arm.com>
7098
7099 PR rtl-optimization/71878
7100 * lra-constraints.c (match_reload): Pass information about other
7101 output operands. Create new unique register value if matching input
7102 operand shares same register value as output operand being considered.
7103 (curr_insn_transform): Record output operands already processed.
7104
7105 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7106
7107 PR target/65951
7108 PR tree-optimization/70923
7109 * tree-vect-patterns.c: Include mult-synthesis.h.
7110 (target_supports_mult_synth_alg): New function.
7111 (synth_lshift_by_additions): Likewise.
7112 (apply_binop_and_append_stmt): Likewise.
7113 (vect_synth_mult_by_constant): Likewise.
7114 (target_has_vecop_for_code): Likewise.
7115 (vect_recog_mult_pattern): Use above functions to synthesize vector
7116 multiplication by integer constants.
7117
7118 2016-07-14 Alan Modra <amodra@gmail.com>
7119
7120 * gcc/config/rs6000/altivec.md (altivec_mov<mode>): Disparage
7121 gpr alternatives. Correct '*' placement on Y,r alternative.
7122 Add '*' on operand 1 of r,r alternative.
7123
7124 2016-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7125
7126 * expmed.c (mult_variant, choose_mult_variant): Move declaration to...
7127 * expmed.h: ... Here.
7128
7129 2016-07-14 Jan Hubicka <hubicka@ucw.cz>
7130
7131 * gimple.h (stmt_can_terminate_bb_p): New function.
7132 * tree-cfg.c (need_fake_edge_p): Rename to ...
7133 (stmt_can_terminate_bb_p): ... this; return true if stmt can
7134 throw external; handle const and pure calls.
7135 * tree-ssa-loop-niter.c (loop_only_exit_p): Use it.
7136
7137 2016-07-14 Richard Biener <rguenther@suse.de>
7138
7139 PR tree-optimization/71866
7140 * tree-ssa-pre.c (get_constant_for_value_id): Remove.
7141 (do_hoist_insertion): Avoid endless recursion when we
7142 didn't insert anything because we managed to simplify
7143 things down to a constant or SSA name.
7144 (fully_constant_expression): Re-write in terms of ...
7145 * tree-ssa-sccvn.h (vn_nary_simplify): ... this. Declare.
7146 * tree-ssa-sccvn.c (vn_nary_simplify): New wrapper around
7147 vn_nary_build_or_lookup_1.
7148 (vn_nary_build_or_lookup_1): Added flag and renamed from ...
7149 (vn_nary_build_or_lookup): ... this which now wraps it.
7150
7151 2016-07-14 Alan Modra <amodra@gmail.com>
7152
7153 PR target/71733
7154 * config/rs6000/rs6000.c (rs6000_option_override_internal): Deal
7155 with p9_vector override before power9-dform override.
7156
7157 2016-07-13 Andi Kleen <ak@linux.intel.com>
7158
7159 * value-prof.c (gimple_value_profile_transformations): Don't run
7160 when auto_profile is on.
7161
7162 2016-07-13 Andi Kleen <ak@linux.intel.com>
7163
7164 * auto-profile.c (update_inlined_ind_target,
7165 afdo_indirect_call): Print information to dump file.
7166
7167 2016-07-13 Andrew Burgess <andrew.burgess@embecosm.com>
7168
7169 * genrecog.c (special_predicate_operand_p): New function.
7170 (predicate_name): Move function.
7171 (validate_pattern): Don't warn about missing mode for all
7172 define_special_predicate predicates.
7173
7174 2016-07-13 Bin Cheng <bin.cheng@arm.com>
7175
7176 * tree-vect-data-refs.c (vect_no_alias_p): New function.
7177 (vect_prune_runtime_alias_test_list): Call vect_no_alias_p to
7178 resolve alias checks which are known at compilation time.
7179 Truncate vector LOOP_VINFO_MAY_ALIAS_DDRS(loop_vinfo) if all
7180 alias checks are resolved. Move dump info for too many runtime
7181 alias checks to here...
7182 * tree-vect-loop.c (vect_analyze_loop_2): ...From here.
7183
7184 2016-07-13 Richard Biener <rguenther@suse.de>
7185
7186 PR tree-optimization/24574
7187 * tree-ssa-phiopt.c (absorbing_element_p): Pass in argument
7188 position and add shift, rotate, divison and modulo support
7189 for left zero.
7190 (value_replacement): Pass in argument position to absorbing_element_p.
7191
7192 2016-07-13 Ilya Enkovich <ilya.enkovich@intel.com>
7193
7194 PR ipa/71633
7195 * ipa-inline-transform.c (inline_call): Support
7196 instrumented thunks.
7197
7198 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7199
7200 * config/arm/arm.h (TARGET_HAVE_CBZ): Define.
7201 (TARGET_IDIV): Set for all Thumb targets provided they have hardware
7202 divide feature.
7203 * config/arm/arm.md (divsi3): New unpredicable alternative for ARMv8-M
7204 Baseline. Make initial alternative TARGET_32BIT only.
7205 (udivsi3): Likewise.
7206 * config/arm/thumb1.md (thumb1_cbz): New define_insn.
7207 * doc/sourcebuild.texi (arm_thumb1_cbz_ok): Document new effective
7208 target.
7209
7210 2016-07-13 Thomas Preud'homme <thomas.preudhomme@arm.com>
7211
7212 * config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
7213 * config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
7214 availability with TARGET_HAVE_MOVT.
7215 (thumb_legitimate_constant_p): Strip the high part of a label_ref.
7216 (thumb1_rtx_costs): Also return 0 if setting a half word constant and
7217 MOVW is available and replace (unsigned HOST_WIDE_INT) INTVAL by
7218 UINTVAL.
7219 (thumb1_size_rtx_costs): Make set of half word constant also cost 1
7220 extra instruction if MOVW is available. Use a cost variable
7221 incremented by COSTS_N_INSNS (1) when the condition match rather than
7222 returning an arithmetic expression based on COSTS_N_INSNS. Make
7223 constant with bottom half word zero cost 2 instruction if MOVW is
7224 available.
7225 * config/arm/arm.md (define_attr "arch"): Add v8mb.
7226 (define_attr "arch_enabled"): Set to yes if arch value is v8mb and
7227 target is ARMv8-M Baseline.
7228 (arm_movt): New unpredicable alternative for ARMv8-M Baseline.
7229 (arm_movtas_ze): Likewise.
7230 * config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
7231 alternative for constants satisfying j constraint.
7232 (thumb1_movsi_insn): Likewise.
7233 (movsi splitter for K alternative): Tighten condition to not trigger
7234 if movt is available and j constraint is satisfied.
7235 (Pe immediate splitter): Likewise.
7236 (thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
7237 constant fitting in an halfword to use MOVW.
7238 * doc/sourcebuild.texi (arm_thumb1_movt_ok): Document new ARM
7239 effective target.
7240
7241 2016-07-13 Richard Biener <rguenther@suse.de>
7242
7243 PR middle-end/71104
7244 * gimplify.c (gimplify_modify_expr): Gimplify the RHS before
7245 gimplifying the LHS. Make sure to gimplify a returning twice
7246 call LHS without using SSA names.
7247
7248 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7249
7250 * tree-data-ref.c (find_data_references_in_stmt): Remove
7251 unnecessary call to vec::release.
7252 (graphite_find_data_references_in_stmt): Likewise.
7253 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): Likewise.
7254 * tree-vect-stmts.c (vectorizable_condition): Likewise.
7255
7256 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7257
7258 * cfgexpand.c (expand_used_vars): Make the type of a local
7259 variable auto_vec.
7260 * genmatch.c (lower_for): Likewise.
7261 * haifa-sched.c (haifa_sched_init): Likewise.
7262 (add_to_speculative_block): Likewise.
7263 (create_check_block_twin): Likewise.
7264 * predict.c (handle_missing_profiles): Likewise.
7265 * tree-data-ref.c (loop_nest_has_data_refs): Likewise.
7266 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Likewise.
7267 * tree-ssa-loop-niter.c (discover_iteration_bound_by_body_walk):
7268 Likewise.
7269 (maybe_lower_iteration_bound): Likewise.
7270 * tree-ssa-sccvn.c (DFS): Likewise.
7271 * tree-stdarg.c (reachable_at_most_once): Likewise.
7272 * tree-vect-stmts.c (vectorizable_conversion): Likewise.
7273 (vectorizable_store): Likewise.
7274
7275 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7276
7277 * tree-ssa-sccvn.c (sccvn_dom_walker::~sccvn_dom_walker): remove.
7278 (sccvn_dom_walker): make cond_stack an auto_vec.
7279
7280 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7281
7282 * ree.c (struct ext_state): Make type of members auto_vec.
7283 (find_and_remove_re): Adjust.
7284
7285 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7286
7287 * cfgexpand.c (struct stack_vars_data): Make type of fields
7288 auto_vec.
7289 (expand_used_vars): Adjust.
7290
7291 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7292
7293 * ipa.c (record_cdtor_fn): Adjust.
7294 (build_cdtor_fns): Likewise.
7295 (ipa_cdtor_merge): Make static_ctors and static_dtors local
7296 variables.
7297
7298 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7299
7300 * genextract.c (struct accum_extract): Add constructor and make
7301 members auto_vec.
7302 (gen_insn): Adjust.
7303
7304 2016-07-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7305
7306 * tree.c (struct free_lang_data_d): Add constructor and change
7307 types of members to ones that automatically manage resources.
7308 (fld_worklist_push): Adjust.
7309 (find_decls_types): Likewise.
7310 (find_decls_types_in_eh_region): Likewise.
7311 (free_lang_data_in_cgraph): Stop manually creating and
7312 destroying members of free_lang_data_d.
7313
7314 2016-07-13 Uros Bizjak <ubizjak@gmail.com>
7315
7316 PR rtl-optimization/68961
7317 * config/i386/sse.md (movsd/movhpd to movupd peephole2s): Add new
7318 peephole variant. Use sse_reg_operand predicates.
7319
7320 2016-07-12 Uros Bizjak <ubizjak@gmail.com>
7321
7322 * config/i386/predicates.md (x86_64_immediate_operand)
7323 <case CONST_INT>: Remove unneeded truncation to DImode.
7324 <case CONST>: Ditto.
7325 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7326
7327 2016-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
7328
7329 PR target/71805
7330 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal):
7331 The xxperm and xxpermr instructions require that the 2nd input
7332 operand overlap with the output operand, and not the 1st.
7333 (altivec_vperm_v8hiv16qi): Likewise.
7334 (altivec_vperm_<mode>_uns_internal): Likewise.
7335 (altivec_vpermr_<mode>_internal): Likewise.
7336 (vperm_v8hiv4si): Likewise.
7337 (vperm_v16qiv8hi): Likewise.
7338
7339 2016-07-12 Nathan Sidwell <nathan@acm.org>
7340
7341 * config/arm/arm.c (arm_option_override): Set MASK_SINGLE_PIC_BASE
7342 when -mno-pic-data-is-text-relative is in effect, by default.
7343 * doc/invoke.texi (mpic-data-is-text-relative): Document new
7344 behavior and clarify.
7345
7346 2016-07-12 Martin Liska <mliska@suse.cz>
7347
7348 * params.def: Add avg-loop niter.
7349 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use the param.
7350 * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise.
7351 * doc/invoke.texi: Document the new parameter.
7352
7353 2016-07-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7354
7355 PR middle-end/71700
7356 * expr.c (store_constructor): Mask sign-extended bits when widening
7357 sub-word constructor element at the start of a word.
7358
7359 2016-07-12 Martin Liska <mliska@suse.cz>
7360
7361 * Makefile.in: Append rule for params-options.h.
7362 * params-options.h: New file.
7363
7364 2016-07-12 Martin Liska <mliska@suse.cz>
7365
7366 * ira-build.c (mark_loops_for_removal): Properly iterate
7367 loops.
7368
7369 2016-07-12 Steven Bosscher <steven@gcc.gnu.org>
7370 Richard Biener <rguenther@suse.de>
7371
7372 PR tree-optimization/23286
7373 PR tree-optimization/70159
7374 * doc/invoke.texi: Document -fcode-hoisting.
7375 * common.opt (fcode-hoisting): New flag.
7376 * opts.c (default_options_table): Enable -fcode-hoisting at -O2+.
7377 * tree-ssa-pre.c (pre_stats): Add hoist_insert.
7378 (do_regular_insertion): Rename to ...
7379 (do_pre_regular_insertion): ... this and amend general comments
7380 on insertion strathegy.
7381 (do_partial_partial_insertion): Rename to ...
7382 (do_pre_partial_partial_insertion): ... this.
7383 (do_hoist_insertion): New function.
7384 (insert_aux): Take flags on whether to do PRE and/or hoist insertion
7385 and call do_hoist_insertion properly.
7386 (insert): Adjust.
7387 (pass_pre::gate): Enable also if -fcode-hoisting is enabled.
7388 (pass_pre::execute): Register hoist_insert stats.
7389
7390 2016-07-12 Jakub Jelinek <jakub@redhat.com>
7391
7392 PR middle-end/71716
7393 * gimple-fold.c (optimize_atomic_compare_exchange_p): Return false
7394 for SCALAR_FLOAT_TYPE_P type of expected var, or if TYPE_PRECISION
7395 is different from mode's bitsize. Small cleanup.
7396
7397 2016-07-12 Richard Biener <rguenther@suse.de>
7398
7399 PR rtl-optimization/68961
7400 * fwprop.c (propagate_rtx): Allow SUBREGs of VEC_CONCAT and CONCAT
7401 to simplify to a non-constant.
7402
7403 2016-07-11 Jakub Jelinek <jakub@redhat.com>
7404
7405 PR middle-end/71758
7406 * omp-low.c (expand_omp_target): Gimplify device.
7407
7408 PR tree-optimization/71823
7409 * tree-vect-stmts.c (vectorizable_operation): Use vect_get_vec_defs
7410 to get vec_oprnds2 from op2.
7411
7412 2016-07-11 Uros Bizjak <ubizjak@gmail.com>
7413
7414 * config/i386/predicates.md (x86_64_immediate_operand) <case CONST>:
7415 Hoist common subexpressions.
7416 (x86_64_zext_immediate_operand) <case CONST>: Ditto.
7417
7418 2016-07-11 Pat Haugen <pthaugen@us.ibm.com>
7419
7420 PR target/71800
7421 * config/rs6000/rs6000.md (stfiwx): Change constraint to 'wu' to
7422 prevent generation of 'stxsiwx' on pre Power8 hardware.
7423
7424 2016-07-11 David Malcolm <dmalcolm@redhat.com>
7425
7426 * input.c: Include cpplib.h.
7427 (selftest::temp_source_file): New class.
7428 (selftest::temp_source_file::temp_source_file): New ctor.
7429 (selftest::temp_source_file::~temp_source_file): New dtor.
7430 (selftest::should_have_column_data_p): New function.
7431 (selftest::test_should_have_column_data_p): New function.
7432 (selftest::temp_line_table): New class.
7433 (selftest::temp_line_table::temp_line_table): New ctor.
7434 (selftest::temp_line_table::~temp_line_table): New dtor.
7435 (selftest::test_accessing_ordinary_linemaps): Add case_ param; use
7436 it to create a temp_line_table.
7437 (selftest::assert_loceq): Only verify LOCATION_COLUMN for
7438 locations that are known to have column data.
7439 (selftest::line_table_case): New struct.
7440 (selftest::test_reading_source_line): Move tempfile handling
7441 to class temp_source_file.
7442 (ASSERT_TOKEN_AS_TEXT_EQ): New macro.
7443 (selftest::assert_token_loc_eq): New function.
7444 (ASSERT_TOKEN_LOC_EQ): New macro.
7445 (selftest::test_lexer): New function.
7446 (selftest::boundary_locations): New array.
7447 (selftest::input_c_tests): Call test_should_have_column_data_p.
7448 Loop over a test matrix of interesting values of location and
7449 default_range_bits, calling test_lexer on each case in the matrix.
7450 Move call to test_accessing_ordinary_linemaps into the matrix.
7451 * selftest.h (ASSERT_EQ): Reimplement in terms of...
7452 (ASSERT_EQ_AT): New macro.
7453
7454 2016-07-11 H.J. Lu <hongjiu.lu@intel.com>
7455
7456 PR target/71801
7457 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
7458 Don't convert TImode in debug insn.
7459
7460 2016-07-11 Bernd Edlinger <bernd.edlinger@hotmail.de>
7461
7462 Convert TYPE_ALIGN_OK to a TYPE_LANG_FLAG.
7463 * tree-core.h (tree_base::nothrow_flag): Adjust comment.
7464 (tree_type_common::lang_flag_7): New.
7465 (tree_type_common::spare): Reduce size.
7466 * tree.h (TYPE_ALIGN_OK): Remove.
7467 (TYPE_LANG_FLAG_7): New.
7468 (get_inner_reference): Adjust header.
7469 * print-tree.c (print_node): Adjust.
7470 * expr.c (get_inner_reference): Remove parameter keep_aligning.
7471 (get_bit_range, expand_assignment, expand_expr_addr_expr_1): Adjust
7472 calls to get_inner_reference.
7473 (expand_expr_real_1): Adjust call to get_inner_reference. Remove
7474 handling of TYPE_ALIGN_OK.
7475 * builtins.c (get_object_alignment_2): Adjust call to
7476 get_inner_reference. Remove handling of VIEW_CONVERT_EXPR.
7477 * emit-rtl.c (set_mem_attributes_minus_bitpos): Remove handling of
7478 TYPE_ALIGN_OK.
7479 * asan.c (instrument_derefs): Adjust calls to get_inner_reference.
7480 * cfgexpand.c (expand_debug_expr): Likewise.
7481 * dbxout.c (dbxout_expand_expr): Likewise.
7482 * dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref,
7483 loc_list_from_tree, fortran_common): Likewise.
7484 * fold-const.c (optimize_bit_field_compare,
7485 decode_field_reference, fold_unary_loc, fold_comparison,
7486 split_address_to_core_and_offset): Likewise.
7487 * gimple-laddress.c (execute): Likewise.
7488 * gimple-ssa-strength-reduction.c (slsr_process_ref): Likewise.
7489 * gimplify.c (gimplify_scan_omp_clauses): Likewise.
7490 * hsa-gen.c (gen_hsa_addr): Likewise.
7491 * simplifx-rtx.c (delegitimize_mem_from_attrs): Likewise.
7492 * tsan.c (instrument_expr): Likewise.
7493 * ubsan.c (instrument_bool_enum_load, instrument_object_size): Likewise.
7494 * tree.c (verify_type_variant): Remove handling of TYPE_ALIGN_OK.
7495 * tree-affine.c (tree_to_aff_combination,
7496 get_inner_reference_aff): Adjust calls to get_inner_reference.
7497 * tree-data-ref.c (split_constant_offset_1,
7498 dr_analyze_innermost): Likewise.
7499 * tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
7500 * tree-sra.c (ipa_sra_check_caller): Likewise.
7501 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
7502 * tree-ssa-math-opts.c (find_bswap_or_nop_load,
7503 bswap_replace): Likewise.
7504 * tree-vect-data-refs.c (vect_check_gather,
7505 vect_analyze_data_refs): Likewise.
7506 * config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
7507 * config/pa/pa.c (pa_emit_move_sequence): Remove handling of
7508 TYPE_ALIGN_OK.
7509
7510 2016-07-11 David Malcolm <dmalcolm@redhat.com>
7511
7512 * Makefile.in (selftest-valgrind): New phony target.
7513 * function-tests.c (selftest::build_cfg): Delete pass instances
7514 created by the test.
7515 (selftest::convert_to_ssa): Likewise.
7516 (selftest::test_expansion_to_rtl): Likewise.
7517 * tree-cfg.c (selftest::test_linear_chain): Release dominator
7518 vectors.
7519 (selftest::test_diamond): Likewise.
7520
7521 2016-07-11 Richard Biener <rguenther@suse.de>
7522
7523 PR tree-optimization/71816
7524 * tree-ssa-pre.c (compute_avail): Adjust alignment of ref rather
7525 than replacing all of its operands.
7526
7527 2016-07-11 Alan Modra <amodra@gmail.com>
7528
7529 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): New unspec.
7530 (ctr<mode>): Add unspec.
7531 (ctr<mode>_internal*): Likewise.
7532
7533 2016-07-08 James Bowman <james.bowman@ftdichip.com>
7534
7535 * config/ft32/ft32.c (ft32_elf_encode_section_info): New function.
7536 * config/ft32/ft32.h (ASM_OUTPUT_SYMBOL_REF): New function.
7537
7538 2016-07-08 Vladimir Makarov <vmakarov@redhat.com>
7539
7540 PR rtl-optimization/71621
7541 * lra-constraints.c (process_alt_operands): Check combination of
7542 reg class and mode.
7543
7544 2016-07-08 Jason Merrill <jason@redhat.com>
7545 Richard Biener <rguenther@suse.de>
7546
7547 P0145: Refining Expression Order for C++.
7548 * gimplify.c (initial_rhs_predicate_for): New.
7549 (gimplfy_modify_expr): Gimplify RHS before LHS.
7550
7551 2016-07-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7552
7553 PR target/71297
7554 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7555 Allow standard error handling to take over when a wrong number
7556 of arguments is presented to __builtin_vec_ld () or
7557 __builtin_vec_st ().
7558
7559 2016-07-08 Jiong Wang <jiong.wang@arm.com>
7560
7561 * config/aarch64/aarch64-simd-builtins.def (smax): Remove float
7562 variants.
7563 (smin): Likewise.
7564 (fmax): New entry.
7565 (fmin): Likewise.
7566 * config/aarch64/arm_neon.h (vmaxnm_f32): Use
7567 __builtin_aarch64_fmaxv2sf.
7568 (vmaxnmq_f32): Likewise.
7569 (vmaxnmq_f64): Likewise.
7570 (vminnm_f32): Likewise.
7571 (vminnmq_f32): Likewise.
7572 (vminnmq_f64): Likewise.
7573
7574 2016-07-08 Michael Meissner <meissner@linux.vnet.ibm.com>
7575
7576 PR target/71806
7577 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Do not
7578 enable -mfloat128-hardware by default.
7579 (ISA_3_0_MASKS_IEEE): New macro to give all of the VSX options
7580 that IEEE 128-bit hardware support needs.
7581 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7582 -mcpu=power9 -mfloat128, enable -mfloat128-hardware by default.
7583 Use ISA_3_0_MASKS_IEEE as the set of options that IEEE 128-bit
7584 floating point requires.
7585 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
7586 -mfloat128 and -mfloat128-hardware changes.
7587
7588 2016-07-08 Alan Hayward <alan.hayward@arm.com>
7589
7590 PR tree-optimization/71667
7591 * tree-vect-loop.c (vectorizable_live_operation): ignore DEBUG stmts
7592
7593 2016-07-08 Martin Liska <mliska@suse.cz>
7594
7595 PR middle-end/71606
7596 * fold-const.c (fold_convertible_p): As COMPLEX_TYPE
7597 folding produces SAVE_EXPRs, thus return false for the type.
7598
7599 2016-07-07 Martin Liska <mliska@suse.cz>
7600
7601 * file-find.c (remove_prefix): New function.
7602 * file-find.h (remove_prefix): Declare the function.
7603 * gcc-ar.c (main): Skip a folder of the wrapper if
7604 a wrapped binary would point to the same file.
7605
7606 2016-07-07 Jan Hubicka <jh@suse.cz>
7607
7608 * tree-scalar-evolution.c (iv_can_overflow_p): export.
7609 * tree-scalar-evolution.h (iv_can_overflow_p): Declare.
7610 * tree-ssa-loop-ivopts.c (alloc_iv): Use it.
7611
7612 2016-07-07 Ilya Enkovich <ilya.enkovich@intel.com>
7613
7614 PR ipa/71624
7615 * ipa-inline-analysis.c (compute_inline_parameters): Set
7616 local.can_change_signature to false for intrumentation
7617 thunk callees.
7618
7619 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7620
7621 * config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
7622 with TARGET_HAVE_MOVT.
7623 (TARGET_HAVE_MOVT): Define.
7624 * config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
7625 availability with TARGET_HAVE_MOVT.
7626 * config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check MOVT
7627 availability.
7628 (addsi splitter): Use TARGET_THUMB && TARGET_HAVE_MOVT rather than
7629 TARGET_THUMB2.
7630 (symbol_refs movsi splitter): Remove TARGET_32BIT check.
7631 (arm_movtas_ze): Use TARGET_HAVE_MOVT to check MOVT availability.
7632 * config/arm/constraints.md (define_constraint "j"): Use
7633 TARGET_HAVE_MOVT to check MOVT availability.
7634
7635 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7636
7637 * config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.
7638
7639 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7640
7641 * config/arm/arm-arches.def (armv8-m.base): Define new architecture.
7642 (armv8-m.main): Likewise.
7643 (armv8-m.main+dsp): Likewise.
7644 * config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
7645 (FL_FOR_ARCH8M_MAIN): Likewise.
7646 * config/arm/arm-tables.opt: Regenerate.
7647 * config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
7648 armv8-m.main+dsp to BE8_LINK_SPEC.
7649 * config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M.
7650 (enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
7651 * config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
7652 Baseline and Mainline.
7653 (arm_option_override_internal): Also disable arm_restrict_it when
7654 !arm_arch_notm. Update comment for -munaligned-access to also cover
7655 ARMv8-M Baseline.
7656 (arm_file_start): Increase buffer size for printing architecture name.
7657 * doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
7658 and armv8-m.main+dsp.
7659 (mno-unaligned-access): Clarify that this is disabled by default for
7660 ARMv8-M Baseline architectures as well.
7661
7662 2016-07-07 Thomas Preud'homme <thomas.preudhomme@arm.com>
7663
7664 * config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
7665 decide whether to prevent some libgcc routines being included for some
7666 multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
7667 link between this condition and the one in
7668 libgcc/config/arm/lib1func.S.
7669
7670 2016-07-07 Richard Biener <rguenther@suse.de>
7671
7672 * tree-ssa-pre.c: Include alias.h.
7673 (compute_avail): If we have multiple VN_REFERENCEs with the
7674 same hashtable entry adjust that to make it a valid replacement
7675 for all of them with respect to alignment and aliasing
7676 when doing insertion.
7677 * tree-ssa-sccvn.h (vn_reference_operands_for_lookup): Declare.
7678 * tree-ssa-sccvn.c (vn_reference_operands_for_lookup): New function.
7679
7680 2016-07-06 Segher Boessenkool <segher@kernel.crashing.org>
7681
7682 PR target/70098
7683 PR target/71763
7684 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
7685 *ctr<mode>_internal5, *ctr<mode>_internal6): Add *wi to the output
7686 constraint.
7687
7688 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7689
7690 * var-tracking.c (struct adjust_mem_data): Make side_effects a vector.
7691 (adjust_mems): Adjust.
7692 (adjust_insn): Likewise.
7693 (prepare_call_arguments): Likewise.
7694
7695 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7696
7697 * gcse.c (struct ls_expr): Make stores field a vector.
7698 (ldst_entry): Adjust.
7699 (free_ldst_entry): Likewise.
7700 (print_ldst_list): Likewise.
7701 (compute_ld_motion_mems): Likewise.
7702 (update_ld_motion_stores): Likewise.
7703
7704 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7705
7706 * gcse.c (struct ls_expr): Remove loads field.
7707 (ldst_entry): Adjust.
7708 (free_ldst_entry): Likewise.
7709 (print_ldst_list): Likewise.
7710 (compute_ld_motion_mems): Likewise.
7711
7712 2016-07-06 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
7713
7714 * store-motion.c (struct st_expr): Make antic_stores a vector.
7715 (st_expr_entry): Adjust.
7716 (free_st_expr_entry): Likewise.
7717 (print_store_motion_mems): Likewise.
7718 (find_moveable_store): Likewise.
7719 (compute_store_table): Likewise.
7720 (remove_reachable_equiv_notes): Likewise.
7721 (replace_store_insn): Likewise.
7722 (build_store_vectors): Likewise.
7723
7724 2016-07-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7725
7726 * config/arm/driver-arm.c (arm_cpu_table): Add entries for cortex-a32,
7727 cortex-a35, cortex-a53, cortex-a57, cortex-a72, cortex-a73.
7728
7729 2016-07-06 Yuri Rumyantsev <ysrumyan@gmail.com>
7730
7731 PR tree-optimization/71518
7732 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Adjust
7733 misalign also for outer loops with negative step.
7734
7735 2016-07-06 Wilco Dijkstra <wdijkstr@arm.com>
7736
7737 * config/arm/cortex-a53.md: Use final_presence_set for in-order.
7738 (cortex_a53_shift): Add mov_shift.
7739 (cortex_a53_shift_reg): Add new reservation for register shifts.
7740 (cortex_a53_alu): Remove bfm.
7741 (cortex_a53_alu_shift): Add bfm, remove mov_shift.
7742 (cortex_a53_alu_extr): Add new reservation for EXTR.
7743 (bypasses): Improve bypass modelling.
7744
7745 2016-07-06 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
7746
7747 PR target/50739
7748 * config/avr/avr.c (avr_asm_select_section): Strip off
7749 SECTION_DECLARED from flags when calling get_section.
7750
7751 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7752
7753 * tree-vectorizer.h (vect_memory_access_type): Add
7754 VMAT_INVARIANT, VMAT_CONTIGUOUS_DOWN and VMAT_CONTIGUOUS_REVERSED.
7755 * tree-vect-stmts.c (compare_step_with_zero): New function.
7756 (perm_mask_for_reverse): Move further up file.
7757 (get_group_load_store_type): Stick to VMAT_ELEMENTWISE if the
7758 step is negative.
7759 (get_negative_load_store_type): New function.
7760 (get_load_store_type): Call it. Add an ncopies argument.
7761 (vectorizable_mask_load_store): Update call accordingly and
7762 remove tests for negative steps.
7763 (vectorizable_store, vectorizable_load): Likewise. Handle new
7764 memory_access_types.
7765
7766 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7767
7768 * tree-vectorizer.h (vect_memory_access_type): New enum.
7769 (_stmt_vec_info): Add a memory_access_type field.
7770 (STMT_VINFO_MEMORY_ACCESS_TYPE): New macro.
7771 (vect_model_store_cost): Take an access type instead of a boolean.
7772 (vect_model_load_cost): Likewise.
7773 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update calls to
7774 vect_model_store_cost and vect_model_load_cost.
7775 * tree-vect-stmts.c (vec_load_store_type): New enum.
7776 (vect_model_store_cost): Take an access type instead of a
7777 store_lanes_p boolean. Simplify tests.
7778 (vect_model_load_cost): Likewise, but for load_lanes_p.
7779 (get_group_load_store_type, get_load_store_type): New functions.
7780 (vectorizable_store): Use get_load_store_type. Record the access
7781 type in STMT_VINFO_MEMORY_ACCESS_TYPE.
7782 (vectorizable_load): Likewise.
7783 (vectorizable_mask_load_store): Likewise. Replace is_store
7784 variable with vls_type.
7785
7786 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7787
7788 * tree-vectorizer.h (vect_grouped_load_supported): Add a
7789 single_element_p parameter.
7790 * tree-vect-data-refs.c (vect_grouped_load_supported): Likewise.
7791 Check the PR65518 case here rather than in vectorizable_load.
7792 * tree-vect-loop.c (vect_analyze_loop_2): Update call accordignly.
7793 * tree-vect-stmts.c (vectorizable_load): Likewise.
7794
7795 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7796
7797 * tree-vectorizer.h (gather_scatter_info): New structure.
7798 (vect_check_gather_scatter): Return a bool rather than a decl.
7799 Replace return-by-pointer arguments with a single
7800 gather_scatter_info *.
7801 * tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
7802 (vect_analyze_data_refs): Update call accordingly.
7803 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
7804 (vectorizable_mask_load_store): Likewise. Also record the
7805 offset dt and vectype in the gather_scatter_info.
7806 (vectorizable_store): Likewise.
7807 (vectorizable_load): Likewise.
7808
7809 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7810
7811 * tree-vect-stmts.c (vect_model_store_cost): For non-SLP
7812 strided groups, use the cost of N scalar accesses instead
7813 of ncopies vector accesses.
7814 (vect_model_load_cost): Likewise.
7815
7816 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7817
7818 * tree-vect-stmts.c (vect_cost_group_size): Delete.
7819 (vect_model_store_cost): Avoid calling it. Use first_stmt_p
7820 variable to indicate when once-per-group costs are being used.
7821 (vect_model_load_cost): Likewise. Fix comment and misindented code.
7822
7823 2016-07-06 Richard Sandiford <richard.sandiford@arm.com>
7824
7825 * tree-vect-stmts.c (vectorizable_load): Remove unnecessary
7826 peeling-for-gaps condition.
7827
7828 2016-07-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7829
7830 * config/s390/s390.c (s390_expand_vec_init): Force initializer
7831 element to register if it doesn't match general_operand.
7832
7833 2016-07-05 Michael Meissner <meissner@linux.vnet.ibm.com>
7834 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7835
7836 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): New
7837 prototype.
7838 * config/rs6000/rs6000.c (rs6000_split_signbit): New function.
7839 * config/rs6000/rs6000.md (UNSPEC_SIGNBIT): New constant.
7840 (SIGNBIT): New mode iterator.
7841 (Fsignbit): New mode attribute.
7842 (signbit<mode>2): Change operand1 to match FLOAT128 instead of
7843 IBM128; dispatch to gen_signbit{kf,tf}2_dm for __float128
7844 when direct moves are available.
7845 (signbit<mode>2_dm): New define_insn_and_split).
7846 (signbit<mode>2_dm2): New define_insn.
7847
7848 2016-07-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7849
7850 PR rtl-optimization/71594
7851 * ifcvt.c (noce_convert_multiple_sets): Wrap new_val or old_val
7852 into subregs of appropriate mode before trying to emit a conditional
7853 move.
7854
7855 2016-07-05 Jan Hubicka <jh@suse.cz>
7856
7857 * tree-scalar-evolution.c (iv_can_overflow_p): New function.
7858 (simple_iv): Use it.
7859
7860 2016-07-05 Jan Hubicka <jh@suse.cz>
7861
7862 * tree-ssa-loop-niter.c (nowrap_type_p): Use ANY_INTEGRAL_TYPE_P.
7863
7864 2016-07-05 Jiong Wang <jiong.wang@arm.com>
7865
7866 * lra-constraints.c (process_alt_operands): Don't add spilling cost for
7867 "offmemok".
7868
7869 2016-07-05 Jan Hubicka <jh@suse.cz>
7870
7871 * tree-scalar-evoluiton.c (simple_iv): Use nowrap_type to check if
7872 IV can overflow.
7873
7874 2016-07-05 Richard Biener <rguenther@suse.de>
7875
7876 * gimple-ssa-split-paths.c (find_block_to_duplicate_for_splitting_pa):
7877 Handle empty else block.
7878 (is_feasible_trace): Likewise.
7879 (split_paths): Likewise.
7880
7881 2016-07-05 Richard Biener <rguenther@suse.de>
7882
7883 * tree-loop-distribution.c (distribute_loop): Fix issue with
7884 the cost model loop.
7885
7886 2016-07-05 Christophe Lyon <christophe.lyon@linaro.org>
7887
7888 * config/arm/neon-testgen.ml: Delete.
7889 * config/arm/neon.ml: Delete.
7890
7891 2016-07-04 Jakub Jelinek <jakub@redhat.com>
7892
7893 PR c++/71739
7894 * tree.c (attribute_value_equal): Use get_attribute_name instead of
7895 directly using TREE_PURPOSE.
7896
7897 2016-07-04 Jiong Wang <jiong.wang@arm.com>
7898
7899 * config/aarch64/aarch64.h: Rename "ARMv8.1" to "ARMv8.1-A".
7900 * config/aarch64/aarch64_neon.h: Likewise.
7901 * config/aarch64/arm_neon.h: Likewise.
7902 * config/aarch64/atomics.md: Likewise.
7903 * config/aarch64/aarch64-simd-builtins.def: Likewise.
7904 * doc/invoke.texi: Likewise.
7905
7906 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
7907
7908 * config/s390/s390.md: Add "z13" cpu_facility.
7909 ("*mov<mode>cc"): Add support for z13 instructions lochi and locghi.
7910 * config/s390/predicates.md ("loc_operand"): New predicate for "load on
7911 condition" type instructions.
7912
7913 2016-07-04 Dominik Vogt <vogt@linux.vnet.ibm.com>
7914 Jeff Law <law@redhat.com>
7915
7916 * explow.c (allocate_dynamic_stack_space): Simplify knowing that
7917 MUST_ALIGN was always true and extra_align ist always BITS_PER_UNIT.
7918
7919 2016-07-04 Yuri Rumyantsev <ysrumyan@gmail.com>
7920
7921 * config/i386/i386.c (ix86_expand_vec_perm): Add handle one-operand
7922 permutation for TARGET_AVX512F.
7923 (ix86_expand_vec_one_operand_perm_avx512): New function.
7924 (expand_vec_perm_1): Invoke introduced function.
7925 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
7926 it may be not valid after vectorization.
7927
7928 2016-07-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7929
7930 PR target/63874
7931 * config/aarch64/aarch64.c (aarch64_classify_symbol): Fix
7932 typo in comment. Only force to memory if it is a weak
7933 external reference.
7934
7935 2016-07-04 Matthew Wahab <matthew.wahab@arm.com>
7936 Jiong Wang <jiong.wang@arm.com>
7937
7938 * config/aarch64/aarch64-arches.def: Add "armv8.2-a".
7939 * config/aarch64/aarch64.h (AARCH64_FL_V8_2): New.
7940 (AARCH64_FL_F16): New.
7941 (AARCH64_FL_FOR_ARCH8_2): New.
7942 (AARCH64_ISA_8_2): New.
7943 (AARCH64_ISA_F16): New.
7944 (TARGET_FP_F16INST): New.
7945 (TARGET_SIMD_F16INST): New.
7946 * config/aarch64/aarch64-option-extensions.def ("fp16"): New entry.
7947 ("fp"): Disabling "fp" also disables "fp16".
7948 * config/aarch64/aarch64-c.c (arch64_update_cpp_builtins):
7949 Conditionally define __ARM_FEATURE_FP16_SCALAR_ARITHMETIC
7950 and __ARM_FEATURE_FP16_VECTOR_ARITHMETIC.
7951 * doc/invoke.texi (AArch64 Options): Document "armv8.2-a" and "fp16".
7952
7953 2016-07-04 Jan Beulich <jbeulich@suse.com>
7954
7955 * gcc.c (default_compilers["@c-header"]): Conditionalize "-o".
7956
7957 2016-07-01 Michael Meissner <meissner@linux.vnet.ibm.com>
7958
7959 PR target/71720
7960 * config/rs6000/vsx.md (vsx_splat_v4sf_internal): When splitting
7961 the insns, use an insn form that does not adjust the offset on
7962 little endian systems.
7963
7964 2016-07-01 Jan Beulich <jbeulich@suse.com>
7965
7966 * varasm.c (get_variable_section): Validate initializer in
7967 named .bss-like sections.
7968
7969 2016-07-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
7970
7971 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
7972 Exchange the order of the second and third operands in the vpermr
7973 instruction tmeplate.
7974
7975 2016-07-01 Peter Bergner <bergner@vnet.ibm.com>
7976
7977 PR target/71698
7978 * config/rs6000/rs6000.c (rs6000_secondary_reload_simple_move):
7979 Disallow TDmode values.
7980
7981 2016-07-01 Alan Modra <amodra@gmail.com>
7982
7983 PR rtl-optimization/71709
7984 * ira-lives.c (find_call_crossed_cheap_reg): Exit loop on arg reg
7985 being set, not referenced.
7986
7987 2016-07-01 Yuri Rumyantsev <ysrumyan@gmail.com>
7988
7989 PR tree-optimization/70729
7990 * tree-vectorizer.c (adjust_simduid_builtins): Nullify safelen field
7991 of loop since it can be not valid after transformation.
7992
7993 2016-07-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7994
7995 * config/arm/arm.c (thumb_reload_in_hi): Delete.
7996 * config/arm/arm-protos.h (thumb_reload_in_hi): Delete prototype.
7997
7998 2016-07-01 Eric Botcazou <ebotcazou@adacore.com>
7999
8000 * config/arm/arm.c (arm_function_ok_for_sibcall): Add another check
8001 for NULL decl.
8002
8003 2016-06-30 Michael Meissner <meissner@linux.vnet.ibm.com>
8004
8005 PR target/71677
8006 * config/rs6000/constraints.md (wY constraint): New constraint to
8007 match the requirements for the LXSD and STXSD instructions.
8008 * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
8009 predicate to match the requirements for the LXSD and STXSD
8010 instructions.
8011 * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
8012 Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
8013 to make sure that the bottom 2 bits of offset are 0, the address
8014 form is offsettable, and no updating is done in the address mode.
8015 (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
8016 (movdi_internal32): Likewise
8017 (movdi_internal64): Likewise.
8018
8019 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8020
8021 PR tree-optimization/71707
8022 * tree-ssa-strlen.c (get_stridx_plus_constant): Handle already present
8023 strinfo even for ADDR_EXPR ptr.
8024
8025 2016-06-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
8026
8027 * config/rs6000/altivec.md (darn_32): Change the condition to
8028 TARGET_P9_MISC instead of TARGET_MODULO.
8029 (darn_raw): Replace TARGET_MODULO with TARGET_P9_MISC in the
8030 condition expression.
8031 (darn): Replace TARGET_MODULO with TARGET_P9_MISC in the
8032 condition expression.
8033 * config/rs6000/dfp.md (UNSPEC_DTSTSFI): New unspec constant.
8034 (DFP_TEST): New code iterator.
8035 (dfptstsfi_<code>_mode>): New define_expand.
8036 (*dfp_sgnfcnc_<mode>): New define_insn.
8037 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_0): Move this macro
8038 definition next to BU_P9_MISC_1 definition and change the MASK
8039 value to RS6000_BTM_P9_MISC.
8040 (BU_P9_MISC_1): Change the MASK value to RS6000_BTM_P9_MISC.
8041 (BU_P9_64BIT_MISC_0): Likewise.
8042 (BU_P9_DFP_MISC_0): New macro definition.
8043 (BU_P9_DFP_MISC_1): New macro definition.
8044 (BU_P9_DFP_MISC_2): New macro definition.
8045 (BU_P9_DFP_OVERLOAD_1): New macro definition.
8046 (BU_P9_DFP_OVERLOAD_2): New macro definition.
8047 (BU_P9_DFP_OVERLOAD_3): New macro definition.
8048 (TSTSFI_LT_DD): New BU_P9_DFP_MISC_2.
8049 (TSTSFI_LT_TD): Likewise.
8050 (TSTSFI_EQ_DD): Likewise.
8051 (TSTSFI_EQ_TD): Likewise.
8052 (TSTSFI_GT_DD): Likewise.
8053 (TSTSFI_GT_TD): Likewise.
8054 (TSTSFI_OV_DD): Likewise.
8055 (TSTSFI_OV_TD): Likewise.
8056 (TSTSFI_LT): New BU_P9_DFP_OVERLOAD_2.
8057 (TSTSFI_LT_DD): Likewise.
8058 (TSTSFI_LT_TD): Likewise.
8059 (TSTSFI_EQ): Likewise.
8060 (TSTSFI_EQ_DD): Likewise.
8061 (TSTSFI_EQ_TD): Likewise.
8062 (TSTSFI_GT): Likewise.
8063 (TSTSFI_GT_DD): Likewise.
8064 (TSTSFI_GT_TD): Likewise.
8065 (TSTSFI_OV): Likewise.
8066 (TSTSFI_OV_DD): Likewise.
8067 (TSTSFI_OV_TD): Likewise.
8068 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
8069 overloaded test significance functions.
8070 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
8071 OPTION_MASK_P9_MISC into the representation of this mask.
8072 (POWERPC_MASKS): Add OPTION_MASK_P9_MISC into the representation
8073 of this mask.
8074 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Set the
8075 RS6000_BTM_P9_MISC flag in the return value if TARGET_P9_MISC is
8076 non-zero.
8077 (rs6000_expand_binop_builtin): Enforce that argument 0 of the exp
8078 argument is a 6-bit unsigned literal value if the icode argument
8079 represents a DFP test significance built-in call.
8080 (rs6000_invalid_builtin): Add support for the RS6000_BTM_P9_MISC
8081 flag used independently and in combination with the
8082 RS6000_BTM_64BIT flag.
8083 (rs6000_opt_masks): Add entry for power9-misc command-line option.
8084 (rs6000_builtin_mask_names): Add entry for power9-misc
8085 command-line option.
8086 * config/rs6000/rs6000.h: Redefine TARGET_P9_MISC as 0 if
8087 HAVE_AS_POWER9 is not a defined macro. Define MASK_P9_MISC and
8088 RS6000_BTM_P9_MISC macros.
8089 * config/rs6000/rs6000.opt: Add support for the -mpower9-misc
8090 option and change the description of the -mpower9-vector option to
8091 enable only vector instructions, removing its erroneously claimed
8092 support for scalar instructions.
8093 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
8094 the ISA 3.0 digital floating point test significance built-in
8095 functions.
8096
8097 2016-06-30 Wilco Dijkstra <wdijkstr@arm.com>
8098
8099 * config/aarch64/aarch64.c (cortexa35_tunings):
8100 Enable AES fusion. Use cortexa57_branch_cost.
8101 (cortexa53_tunings): Use cortexa57_branch_cost.
8102 (cortexa72_tunings): Use cortexa57_branch_cost.
8103 Use AUTOPREFETCHER_WEAK.
8104 (cortexa73_tunings): Use cortexa57_branch_cost.
8105
8106 2016-06-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8107 James Greenhalgh <james.greenhalgh@arm.com>
8108
8109 * config/aarch64/arm_neon.h (vcopyq_lane_f32, vcopyq_lane_f64,
8110 vcopyq_lane_p8, vcopyq_lane_p16, vcopyq_lane_s8, vcopyq_lane_s16,
8111 vcopyq_lane_s32, vcopyq_lane_s64, vcopyq_lane_u8, vcopyq_lane_u16,
8112 vcopyq_lane_u32, vcopyq_lane_u64): Reimplement in C.
8113 (vcopy_lane_f32, vcopy_lane_f64, vcopy_lane_p8, vcopy_lane_p16,
8114 vcopy_lane_s8, vcopy_lane_s16, vcopy_lane_s32, vcopy_lane_s64,
8115 vcopy_lane_u8, vcopy_lane_u16, vcopy_lane_u32, vcopy_lane_u64,
8116 vcopy_laneq_f32, vcopy_laneq_f64, vcopy_laneq_p8, vcopy_laneq_p16,
8117 vcopy_laneq_s8, vcopy_laneq_s16, vcopy_laneq_s32, vcopy_laneq_s64,
8118 vcopy_laneq_u8, vcopy_laneq_u16, vcopy_laneq_u32, vcopy_laneq_u64,
8119 vcopyq_laneq_f32, vcopyq_laneq_f64, vcopyq_laneq_p8, vcopyq_laneq_p16,
8120 vcopyq_laneq_s8, vcopyq_laneq_s16, vcopyq_laneq_s32, vcopyq_laneq_s64,
8121 vcopyq_laneq_u8, vcopyq_laneq_u16, vcopyq_laneq_u32, vcopyq_laneq_u64):
8122 New intrinsics.
8123
8124 2016-06-30 James Greenhalgh <james.greenhalgh@arm.com>
8125 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8126
8127 * config/aarch64/aarch64-simd.md (*aarch64_simd_vec_copy_lane<mode>):
8128 New define_insn.
8129 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
8130
8131 2016-06-30 David Malcolm <dmalcolm@redhat.com>
8132
8133 PR driver/71651
8134 * gcc.c (driver::build_option_suggestions): Pass "option" to
8135 add_misspelling_candidates.
8136 * opts-common.c (add_misspelling_candidates): Add "option" param;
8137 use it to avoid adding negated forms for options marked with
8138 RejectNegative.
8139 * opts.h (add_misspelling_candidates): Add "option" param.
8140
8141 2016-06-30 Jakub Jelinek <jakub@redhat.com>
8142
8143 PR middle-end/71693
8144 * fold-const.c (fold_binary_loc) <case RROTATE_EXPR>: Cast
8145 TREE_OPERAND (arg0, 0) and TREE_OPERAND (arg0, 1) to type
8146 first when permuting bitwise operation with rotate. Cast
8147 TREE_OPERAND (arg0, 0) to type when cancelling two rotations.
8148
8149 2016-06-29 David Malcolm <dmalcolm@redhat.com>
8150
8151 * opts.c (handle_param): Use find_param_fuzzy to offer suggestions
8152 for misspelled param names.
8153 * params.c: Include spellcheck.h.
8154 (find_param_fuzzy): New function.
8155 * params.h (find_param_fuzzy): New prototype.
8156 * spellcheck.c (struct edit_distance_traits<const char *>): Move to...
8157 * spellcheck.h (struct edit_distance_traits<const char *>):
8158 ...here.
8159
8160 2016-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
8161
8162 * config/rs6000/predicates.md (const_0_to_7_operand): New
8163 predicate, recognize 0..7.
8164 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
8165 support for doing extracts from V16QImode, V8HImode, V4SImode
8166 under ISA 3.0.
8167 * config/rs6000/vsx.md (VSX_EXTRACT_I): Mode iterator for ISA 3.0
8168 vector extract support.
8169 (VSX_EXTRACT_PREDICATE): Mode attribute to validate element number
8170 for ISA 3.0 vector extract.
8171 (VSX_EX): Constraints to use for ISA 3.0 vector extract.
8172 (vsx_extract_<mode>, VSX_EXTRACT_I): Add support for doing
8173 extracts of a constant element number from small integer vectors
8174 on 64-bit ISA 3.0 systems.
8175 (vsx_extract_<mode>_di): Likewise.
8176 * config/rs6000/rs6000.h (TARGET_VEXTRACTUB): New target macro to
8177 say when we can do ISA 3.0 vector extracts.
8178 * config/rs6000/rs6000.md (stfiwx): Allow DImode in Altivec
8179 registers, using the stxsiwx instruction.
8180
8181 2016-06-29 Jim Wilson <jim.wilson@linaro.org>
8182
8183 * config/aarch64/aarch64-cores.def (qdf24xx): Use qdf24xx tuning.
8184 * config/aarch64/aarch64.c (qdf24xx_addrcost_table,
8185 qdf24xx_regmove_cost, qdf24xx_tunings): New.
8186 * config/arm/aarch64-cost-tables.h (qdf24xx_extra_costs): New.
8187 * config/arm/arm-cores.def (qdf24xx): Use qdf24xx tuning.
8188 * config/arm/arm.c (arm_qdf24xx_tune): New.
8189
8190 2016-06-29 Wilco Dijkstra <wdijkstr@arm.com>
8191
8192 * config/aarch64/aarch64.c (cortexa53_tunings):
8193 Increase loop alignment to 8. Set function alignment to 16.
8194 (cortexa35_tunings): Likewise.
8195 (cortexa57_tunings): Increase loop alignment to 8.
8196 (cortexa72_tunings): Likewise.
8197 (cortexa73_tunings): Likewise.
8198
8199 2016-06-29 Matthew Wahab <matthew.wahab@arm.com>
8200
8201 * doc/sourcebuild.texi (Effective-Target keywords): Add entries
8202 for arm_fp16_ok and arm_fp16_hw.
8203 (Add Options): Add entries for arm_fp16, arm_fp16_ieee and
8204 arm_fp16_alternative.
8205
8206 2016-06-29 Ilya Enkovich <ilya.enkovich@intel.com>
8207
8208 PR tree-optimization/71655
8209 * tree-vect-stmts.c (vectorizable_comparison): Swap definition
8210 types when swapping operands.
8211
8212 2016-06-29 Martin Liska <mliska@suse.cz>
8213
8214 PR middle-end/71585
8215 * common.opt (flag_stack_protect): Mark the flag as optimization flag.
8216 * ipa-inline-transform.c (inline_call): Remove unnecessary call
8217 of build_optimization_node.
8218
8219 2016-06-29 Yuri Rumyantsev <ysrumyan@gmail.com>
8220
8221 PR tree-optimization/70729
8222 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Consider memory reference as
8223 independent in loops having positive safelen value.
8224 * tree-vect-loop.c (vect_transform_loop): Clear-up safelen value since
8225 it may be not valid after vectorization.
8226
8227 2016-06-29 Jakub Jelinek <jakub@redhat.com>
8228
8229 PR tree-optimization/71625
8230 * tree-ssa-strlen.c (get_addr_stridx): Add PTR argument. Assume list
8231 is sorted by ascending list->offset. If PTR is non-NULL and there is
8232 previous strinfo, call get_stridx_plus_constant.
8233 (get_stridx): Pass exp as second argument to get_addr_stridx.
8234 (addr_stridxptr): Add missing list = list->next, so that there can be
8235 more than one entries in the list. Bump limit from 16 to 32. Ensure
8236 the list is sorted by ascending list->offset.
8237 (get_stridx_plus_constant): Adjust so that it can be also called with
8238 ADDR_EXPR instead of SSA_NAME as PTR.
8239 (handle_char_store): Pass NULL_TREE as second argument to
8240 get_addr_stridx.
8241
8242 2016-06-29 Richard Biener <rguenther@suse.de>
8243
8244 PR rtl-optimization/68961
8245 * simplify-rtx.c (simplify_subreg): Handle VEC_CONCAT like CONCAT.
8246
8247 2016-06-29 Richard Biener <rguenther@suse.de>
8248
8249 PR middle-end/71002
8250 * alias.c (component_uses_parent_alias_set_from): Handle
8251 type punning through union accesses by using the union alias set.
8252 * gimple.c (gimple_get_alias_set): Remove union type punning case.
8253
8254 2016-07-29 Richard Biener <rguenther@suse.de>
8255
8256 * match.pd ((T)(T2)x -> (T)x): Remove restriction on final
8257 precision not matching mode precision.
8258
8259 2016-06-28 John David Anglin <danglin@gcc.gnu.org>
8260
8261 * config/pa/pa.md (call_symref_64bit_post_reload): Don't call
8262 pa_output_arg_descriptor.
8263 (call_val_symref_64bit_post_reload): Likewise.
8264 (call_val_powf_64bit_post_reload): Likewise.
8265 (sibcall_internal_symref_64bit): Likewise.
8266 (sibcall_value_internal_symref_64bit): Likewise.
8267
8268 2016-06-28 Jakub Jelinek <jakub@redhat.com>
8269
8270 PR middle-end/71626
8271 * config/i386/i386.c (ix86_expand_vector_move): For SUBREG of
8272 a constant, force its SUBREG_REG into memory or register instead
8273 of whole op1.
8274
8275 2016-06-28 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
8276
8277 PR target/58655
8278 * config/avr/avr.opt (-mfract-convert-truncate): Update description.
8279 * doc/invoke.texi (AVR Options): Document it.
8280
8281 2016-06-28 Walter Lee <walt@tilera.com>
8282
8283 * config/tilegx/linux.h: Do not include arch/icache.h
8284 (CLEAR_INSN_CACHE): Provide inlined definition directly.
8285 * config/tilepro/linux.h: Do not include arch/icache.h
8286 (CLEAR_INSN_CACHE): Provide inlined definition directly.
8287
8288 2016-06-28 Wilco Dijkstra <wdijkstr@arm.com>
8289
8290 * tree-ssa-math-opts.c (find_bswap_or_nop_1): Adjust bitnumbering
8291 for big-endian BIT_FIELD_REF.
8292
8293 2016-06-28 Pat Haugen <pthaugen@us.ibm.com>
8294
8295 * config/rs6000/rs6000.md ('type' attribute): Add htmsimple/dfp types.
8296 ('size' attribute): Add '128'.
8297 Include power9.md.
8298 (*mov<mode>_hardfloat32, *mov<mode>_hardfloat64, *movdi_internal32,
8299 *movdi_internal64, *movdf_update1): Set size attribute to '64'.
8300 (add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
8301 copysign<mode>3, neg<mode>2_hw, abs<mode>2_hw, *nabs<mode>2_hw,
8302 *fma<mode>4_hw, *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
8303 extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
8304 *xscvqp<su>wz_<mode>, *xscvqp<su>dz_<mode>, *xscv<su>dqp_<mode>,
8305 *trunc<mode>df2_odd): Set size attribute to '128'.
8306 (*cmp<mode>_hw): Change type to veccmp and set size attribute to '128'.
8307 * config/rs6000/power6.md (power6-fp): Include dfp type.
8308 * config/rs6000/power7.md (power7-fp): Likewise.
8309 * config/rs6000/power8.md (power8-fp): Likewise.
8310 * config/rs6000/power9.md: New file.
8311 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power9.md.
8312 * config/rs6000/htm.md (*tabort, *tabort<wd>c, *tabort<wd>ci,
8313 *trechkpt, *treclaim, *tsr, *ttest): Change type attribute to
8314 htmsimple.
8315 * config/rs6000/dfp.md (extendsddd2, truncddsd2, extendddtd2,
8316 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3,
8317 divtd3, *cmpdd_internal1, *cmptd_internal1, floatdidd2, floatditd2,
8318 ftruncdd2, fixdddi2, ftrunctd2, fixtddi2, dfp_ddedpd_<mode>,
8319 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, dfp_dscli_<mode>,
8320 dfp_dscri_<mode>): Change type attribute to dfp.
8321 * config/rs6000/crypto.md (crypto_vshasigma<CR_char>): Change type
8322 attribute to vecsimple.
8323 * config/rs6000/rs6000.c (power9_cost): Update costs, cache size
8324 and prefetch streams.
8325 (rs6000_option_override_internal): Remove temporary code setting
8326 tuning to power8. Don't set rs6000_sched_groups for power9.
8327 (last_scheduled_insn): Change to rtx_insn *.
8328 (divide_cnt, vec_load_pendulum): New variables.
8329 (rs6000_adjust_cost): Add Power9 to test for store->load separation.
8330 (rs6000_issue_rate): Set issue rate for Power9.
8331 (is_power9_pairable_vec_type): New.
8332 (power9_sched_reorder2): New.
8333 (rs6000_sched_reorder2): Call new function for Power9 specific
8334 reordering.
8335 (insn_must_be_first_in_group): Remove Power9.
8336 (insn_must_be_last_in_group): Likewise.
8337 (force_new_group): Likewise.
8338 (rs6000_sched_init): Fix initialization of last_scheduled_insn.
8339 Initialize divide_cnt/vec_load_pendulum.
8340 (_rs6000_sched_context, rs6000_init_sched_context,
8341 rs6000_set_sched_context): Handle context save/restore of new
8342 variables.
8343
8344 2016-06-28 Richard Biener <rguenther@suse.de>
8345
8346 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
8347 Properly handle DECL_BIT_FIELD_REPRESENTATIVE occuring as
8348 COMPONENT_REF operand.
8349 (nonoverlapping_component_refs_p): Likewise.
8350 * stor-layout.c (start_bitfield_representative): Mark
8351 DECL_BIT_FIELD_REPRESENTATIVE as DECL_NONADDRESSABLE_P.
8352
8353 2016-06-28 Jakub Jelinek <jakub@redhat.com>
8354
8355 * Makefile.in: Don't cat ../stage_current if it does not exist.
8356
8357 * doc/extend.texi (__builtin_add_overflow_p): Clarify behavior when
8358 last argument is a bit-field.
8359
8360 PR rtl-optimization/71673
8361 * internal-fn.c (expand_arith_overflow_result_store): Use
8362 OPTAB_LIB_WIDEN instead of OPTAB_DIRECT as last argument to
8363 expand_simple_binop.
8364
8365 PR middle-end/66867
8366 * builtins.c (expand_ifn_atomic_compare_exchange_into_call,
8367 expand_ifn_atomic_compare_exchange): New functions.
8368 * internal-fn.c (expand_ATOMIC_COMPARE_EXCHANGE): New function.
8369 * tree.h (build_call_expr_internal_loc): Rename to ...
8370 (build_call_expr_internal_loc_array): ... this. Fix up type of
8371 last argument.
8372 * internal-fn.def (ATOMIC_COMPARE_EXCHANGE): New internal fn.
8373 * predict.c (expr_expected_value_1): Handle IMAGPART_EXPR of
8374 ATOMIC_COMPARE_EXCHANGE result.
8375 * builtins.h (expand_ifn_atomic_compare_exchange): New prototype.
8376 * gimple-fold.h (optimize_atomic_compare_exchange_p,
8377 fold_builtin_atomic_compare_exchange): New prototypes.
8378 * gimple-fold.c (optimize_atomic_compare_exchange_p,
8379 fold_builtin_atomic_compare_exchange): New functions..
8380 * tree-ssa.c (execute_update_addresses_taken): If
8381 optimize_atomic_compare_exchange_p, ignore &var in 2nd argument
8382 of call when finding addressable vars, and if such var becomes
8383 non-addressable, call fold_builtin_atomic_compare_exchange.
8384
8385 2016-06-27 Segher Boessenkool <segher@kernel.crashing.org>
8386
8387 PR target/71670
8388 * config/rs6000/rs6000.md (ashdi3_extswsli_dot): Use
8389 gen_ashdi3_extswsli_dot2 instead of gen_ashdi3_extswsli_dot.
8390
8391 2016-06-27 Pat Haugen <pthaugen@us.ibm.com>
8392
8393 * config/rs6000/rs6000.md ('type' attribute): Add
8394 veclogical,veccmpfx,vecexts,vecmove insn types.
8395 (*abs<mode>2_fpr, *nabs<mode>2_fpr, *neg<mode>2_fpr, *extendsfdf2_fpr,
8396 copysign<mode>3_fcpsgn, trunc<mode>df2_internal1, neg<mode>2_internal,
8397 p8_fmrgow_<mode>, pack<mode>): Change type to fpsimple.
8398 (*xxsel<mode>, copysign<mode>3_hard, neg<mode>2_hw, abs<mode>2_hw,
8399 *nabs<mode>2_hw): Change type to vecmove.
8400 (*and<mode>3_internal, *bool<mode>3_internal, *boolc<mode>3_internal,
8401 *boolcc<mode>3_internal, *eqv<mode>3_internal,
8402 *one_cmpl<mode>3_internal, *ieee_128bit_vsx_neg<mode>2_internal,
8403 *ieee_128bit_vsx_abs<mode>2_internal,
8404 *ieee_128bit_vsx_nabs<mode>2_internal, extendkftf2, trunctfkf2,
8405 *ieee128_mfvsrd_64bit, *ieee128_mfvsrd_32bit, *ieee128_mtvsrd_64bit,
8406 *ieee128_mtvsrd_32bit): Change type to veclogical.
8407 (mov<mode>_hardfloat, *mov<mode>_hardfloat32, *mov<mode>_hardfloat64,
8408 *movdi_internal32, *movdi_internal64): Update insn types.
8409 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
8410 vsx_extract_<mode>): Change type to veclogical.
8411 (*vsx_xxsel<mode>, *vsx_xxsel<mode>_uns): Change type to vecmove.
8412 (vsx_sign_extend_qi_<mode>, *vsx_sign_extend_hi_<mode>,
8413 *vsx_sign_extend_si_v2di): Change type to vecexts.
8414 * config/rs6000/altivec.md (*altivec_mov<mode>, *altivec_movti): Change
8415 type to veclogical.
8416 (*altivec_eq<mode>, *altivec_gt<mode>, *altivec_gtu<mode>,
8417 *altivec_vcmpequ<VI_char>_p, *altivec_vcmpgts<VI_char>_p,
8418 *altivec_vcmpgtu<VI_char>_p): Change type to veccmpfx.
8419 (*altivec_vsel<mode>, *altivec_vsel<mode>_uns): Change type to vecmove.
8420 * config/rs6000/dfp.md (*negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr,
8421 negtd2, *abstd2_fpr, *nabstd2_fpr): Change type to fpsimple.
8422 * config/rs6000/40x.md (ppc405-float): Add fpsimple.
8423 * config/rs6000/440.md (ppc440-fp): Add fpsimple.
8424 * config/rs6000/476.md (ppc476-fp): Add fpsimple.
8425 * config/rs6000/601.md (ppc601-fp): Add fpsimple.
8426 * config/rs6000/603.md (ppc603-fp): Add fpsimple.
8427 * config/rs6000/6xx.md (ppc604-fp): Add fpsimple.
8428 * config/rs6000/7xx.md (ppc750-fp): Add fpsimple.
8429 (ppc7400-vecsimple): Add veclogical, vecmove, veccmpfx.
8430 * config/rs6000/7450.md (ppc7450-fp): Add fpsimple.
8431 (ppc7450-vecsimple): Add veclogical, vecmove.
8432 (ppc7450-veccmp): Add veccmpfx.
8433 * config/rs6000/8540.md (ppc8540_simple_vector): Add veclogical,
8434 vecmove.
8435 (ppc8540_vector_compare): Add veccmpfx.
8436 * config/rs6000/a2.md (ppca2-fp): Add fpsimple.
8437 * config/rs6000/cell.md (cell-fp): Add fpsimple.
8438 (cell-vecsimple): Add veclogical, vecmove.
8439 (cell-veccmp): Add veccmpfx.
8440 * config/rs6000/e300c2c3.md (ppce300c3_fp): Add fpsimple.
8441 * config/rs6000/e6500.md (e6500_vecsimple): Add veclogical, vecmove,
8442 veccmpfx.
8443 * config/rs6000/mpc.md (mpccore-fp): Add fpsimple.
8444 * config/rs6000/power4.md (power4-fp): Add fpsimple.
8445 (power4-vecsimple): Add veclogical, vecmove.
8446 (power4-veccmp): Add veccmpfx.
8447 * config/rs6000/power5.md (power5-fp): Add fpsimple.
8448 * config/rs6000/power6.md (power6-fp): Add fpsimple.
8449 (power6-vecsimple): Add veclogical, vecmove.
8450 (power6-veccmp): Add veccmpfx.
8451 * config/rs6000/power7.md (power7-fp): Add fpsimple.
8452 (power7-vecsimple): Add veclogical, vecmove, veccmpfx.
8453 * config/rs6000/power8.md (power8-fp): Add fpsimple.
8454 (power8-vecsimple): Add veclogical, vecmove, veccmpfx.
8455 * config/rs6000/rs64.md (rs64a-fp): Add fpsimple.
8456 * config/rs6000/titan.md (titan_fp): Add fpsimple.
8457 * config/rs6000/xfpu.md (fp-default, fp-addsub-s, fp-addsub-d): Add
8458 fpsimple.
8459 * config/rs6000/rs6000.c (rs6000_adjust_cost): Add TYPE_FPSIMPLE.
8460
8461 2016-06-27 Peter Bergner <bergner@vnet.ibm.com>
8462
8463 PR target/71656
8464 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
8465 OPTION_MASK_P9_DFORM_VECTOR.
8466 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not
8467 disable -mpower9-dform-vector when using reload.
8468 (quad_address_p): Remove 'gpr_p' argument and all associated code.
8469 New 'strict' argument. Update all callers. Add strict addressing
8470 support.
8471 (rs6000_legitimate_offset_address_p): Remove call to
8472 virtual_stack_registers_memory_p.
8473 (rs6000_legitimize_reload_address): Add quad address support.
8474 (rs6000_legitimate_address_p): Move call to quad_address_p above
8475 call to virtual_stack_registers_memory_p. Adjust quad_address_p args
8476 to account for new strict usage.
8477 (rs6000_output_move_128bit): Adjust quad_address_p args to account
8478 for new strict usage.
8479 * config/rs6000/predicates.md (quad_memory_operand): Likewise.
8480
8481 2016-06-26 Uros Bizjak <ubizjak@gmail.com>
8482
8483 PR target/70902
8484 PR target/71453
8485 PR target/71555
8486 PR target/71596
8487 PR target/71657
8488 * config/i386/i386.c (ix86_spill_class): Disable condition to
8489 always return NO_REGS.
8490
8491 2016-06-26 Jan Hubicka <hubicka@ucw.cz>
8492
8493 * predict.c: Include gimple-pretty-print.h
8494 (predicted_by_loop_heuristics_p): Check also
8495 PRED_LOOP_EXIT_WITH_RECURSION
8496 (predict_loops): Find self recursive calls and use special purpose
8497 predictors for them; dump log about decisions.
8498 (pass_profile::execute): Dump info about #of iterations.
8499 * predict.def (PRED_LOOP_EXIT_WITH_RECURSION,
8500 (PRED_LOOP_GUARD_WITH_RECURSION): New predictors.
8501
8502 2016-06-26 John David Anglin <danglin@gcc.gnu.org>
8503
8504 * config/pa/pa.c (pa_output_indirect_call): Rework to combine
8505 output_asm_insn calls and shorten long lines. Output .CALL
8506 argument descriptor using pa_output_arg_descriptor. Add various
8507 inline $$dyncall and other optimizations.
8508 (pa_attr_length_indirect_call): Adjust ordering and lengths.
8509
8510 2016-06-25 Jakub Jelinek <jakub@redhat.com>
8511
8512 PR tree-optimization/71643
8513 * tree-ssa-tail-merge.c (find_clusters_1): Ignore basic blocks with
8514 EH preds.
8515
8516 * tree-ssa-tail-merge.c (deps_ok_for_redirect_from_bb_to_bb): Don't
8517 leak a bitmap if dep_bb is NULL.
8518
8519 PR tree-optimization/71631
8520 * tree-ssa-reassoc.c (reassociate_bb): Pass true as last argument
8521 to rewrite_expr_tree even if negate_result, move new_lhs var
8522 declaration and initialization earlier, for powi_result set afterwards
8523 new_lhs to lhs. For negate_result, use new_lhs instead of tmp
8524 if new_lhs != lhs, and don't shadow gsi var.
8525
8526 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
8527
8528 * predict.c (predict_paths_leading_to, predict_paths_leading_to_edge):
8529 Add in_loop parameter.
8530 (predict_loops): Add loop guard heuristics.
8531 * predict.def (PRED_LOOP_GUARD): New heuristics.
8532
8533 2016-06-24 Jan Hubicka <hubicka@ucw.cz>
8534
8535 * predict.c: Include ipa-utils.h
8536 (tree_bb_level_prediction): Predict recursive calls.
8537 (tree_estimate_probability_bb): Skip inexpensive calls for call
8538 predictor.
8539 * predict.def (PRED_RECURSIVE_CALL): New.
8540
8541 2016-06-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8542
8543 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): New #define.
8544 (BU_FLOAT128_1): Likewise.
8545 (FABSQ): Likewise.
8546 (COPYSIGNQ): Likewise.
8547 (RS6000_BUILTIN_NANQ): Likewise.
8548 (RS6000_BUILTIN_NANSQ): Likewise.
8549 (RS6000_BUILTIN_INFQ): Likewise.
8550 (RS6000_BUILTIN_HUGE_VALQ): Likewise.
8551 * config/rs6000/rs6000.c (rs6000_fold_builtin): New prototype.
8552 (TARGET_FOLD_BUILTIN): New #define.
8553 (rs6000_builtin_mask_calculate): Add TARGET_FLOAT128 entry.
8554 (rs6000_invalid_builtin): Add handling for RS6000_BTM_FLOAT128.
8555 (rs6000_fold_builtin): New target hook implementation, handling
8556 folding of 128-bit NaNs and infinities.
8557 (rs6000_init_builtins): Initialize const_str_type_node; ensure all
8558 entries are filled in to avoid problems during bootstrap
8559 self-test; define builtins for 128-bit NaNs and infinities.
8560 (rs6000_opt_mask): Add entry for float128.
8561 * config/rs6000/rs6000.h (RS6000_BTM_FLOAT128): New #define.
8562 (RS6000_BTM_COMMON): Include RS6000_BTM_FLOAT128.
8563 (rs6000_builtin_type_index): Add RS6000_BTI_const_str.
8564 (const_str_type_node): New #define.
8565 * config/rs6000/rs6000.md (copysign<mode>3 for IEEE128): Convert
8566 to a define_expand that dispatches to either copysign<mode>3_soft
8567 or copysign<mode>3_hard.
8568 (copysign<mode>3_hard): Rename from copysign<mode>3.
8569 (copysign<mode>3_soft): New define_insn.
8570 * doc/extend.texi: Document new builtins.
8571
8572 2016-06-24 Jakub Jelinek <jakub@redhat.com>
8573
8574 * cfgloop.c (flow_loop_dump): Cast nit to uint64_t and print it using
8575 PRIu64 instead of lu.
8576
8577 2016-06-24 Eric Botcazou <ebotcazou@adacore.com>
8578
8579 PR debug/71642
8580 * tree-inline.c (remap_decl): When fixing up DECL_ORIGINAL_TYPE, just
8581 copy the type name.
8582
8583 2016-06-24 Jakub Jelinek <jakub@redhat.com>
8584
8585 PR tree-optimization/71647
8586 * omp-low.c (lower_rec_input_clauses): Convert
8587 omp_clause_aligned_alignment (c) to size_type_node for the
8588 last argument of __builtin_assume_aligned.
8589
8590 2016-06-24 H.J. Lu <hongjiu.lu@intel.com>
8591
8592 * configure.ac (calling ___tls_get_addr via GOT): New
8593 assembler/linker check.
8594 (HAVE_AS_IX86_TLS_GET_ADDR_GOT): New. Defined to 1 if 32-bit
8595 assembler and linker supports calling ___tls_get_addr via GOT.
8596 Otherise, defined to 0.
8597 * config.in: Regenerated.
8598 * configure: Likewise.
8599 * config/i386/constraints.md (Yb): New constraint.
8600 * config/i386/i386.h (reg_class): Add TLS_GOTBASE_REGS.
8601 (REG_CLASS_NAMES): Likewise.
8602 (REG_CLASS_CONTENTS): Likewise.
8603 * config/i386/i386.md (*tls_global_dynamic_32_gnu): Replace
8604 the b constraint with the Yb constraint. Call ___tls_get_addr
8605 via GOT for GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT
8606 is 1.
8607 (*tls_local_dynamic_base_32_gnu): Likewise.
8608 (*tls_global_dynamic_64_<mode>): Call _tls_get_addr via GOT for
8609 GNU TLS with -fno-plt if HAVE_AS_IX86_TLS_GET_ADDR_GOT is 1.
8610 (*tls_local_dynamic_base_64_<mode>): Likewise.
8611
8612 2016-06-24 Martin Liska <mliska@suse.cz>
8613
8614 * cfgloop.c (flow_loop_dump): Dump average number of loop iterations.
8615 * cfgloop.h: Change 'struct loop' to 'const struct loop' for a
8616 few functions.
8617 * cfgloopanal.c (expected_loop_iterations_unbounded): Set a new
8618 argument to true if the expected number of iterations is
8619 loop-based.
8620
8621 2016-06-24 Uros Bizjak <ubizjak@gmail.com>
8622
8623 * configure.ac (HAVE_AS_GOTOF_IN_DATA): Use $as_ix86_gas_32_opt to
8624 assemble for 32bit target.
8625 (HAVE_AS_IX86_TLSGDPLT): Use $as_ix86_gas_32_opt to assemble
8626 and $ld_ix86_gld_32_opt to link for 32bit target.
8627 (HAVE_AS_IX86_TLSLDMPLT): Ditto.
8628 * configure: Regenerate.
8629
8630 2016-06-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8631
8632 * config/arm/arm.c (int_log2): Delete definition and prototype.
8633 (shift_op): Use exact_log2 instead of int_log2.
8634 (vfp3_const_double_for_fract_bits): Likewise.
8635
8636 2016-06-24 Jakub Jelinek <jakub@redhat.com>
8637
8638 * internal-fn.c (expand_arith_set_overflow): New function.
8639 (expand_addsub_overflow, expand_neg_overflow, expand_mul_overflow):
8640 Use it.
8641 (expand_arith_overflow_result_store): Likewise. Handle precision
8642 smaller than mode precision.
8643 * tree-vrp.c (extract_range_basic): For imag part, handle
8644 properly signed 1-bit precision result.
8645 * doc/extend.texi (__builtin_add_overflow): Document that last
8646 argument can't be pointer to enumerated or boolean type.
8647 (__builtin_add_overflow_p): Document that last argument can't
8648 have enumerated or boolean type.
8649
8650 2016-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
8651 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8652
8653 * config/rs6000/predicates.md (splat_input_operand): Rework.
8654 Don't allow constants, since the insns that use this predicate
8655 don't support constants. Constants are handled by other insns
8656 that are created via combine. During and after register
8657 allocation, only allow indexed or indirect addresses, and not
8658 general addresses. Only allow modes supported by the hardware.
8659 * config/rs6000/rs6000.c (xxsplitb_constant_p): Update usage
8660 comment. Move check for using VSPLTIS<x> to a common location,
8661 instead of doing it in two different places.
8662
8663 2016-06-23 Jocelyn Mayer <l_indien@magic.fr>
8664
8665 * config/i386/driver-i386.c (host_detect_local_cpu): Set
8666 PROCESSOR_PENTIUMPRO for signature_CENTAUR_ebx family >= 9.
8667 <case PROCESSOR_PENTIMUMPRO>: Pass c7 or nehemiah for
8668 signature_CENTAUR_ebx.
8669
8670 2016-06-23 H.J. Lu <hongjiu.lu@intel.com>
8671
8672 PR target/66232
8673 PR target/67400
8674 * configure.ac (as_ix86_tls_ldm_opt): Renamed to ...
8675 (as_ix86_gas_32_opt): This.
8676 (ld_ix86_tls_ldm_opt): Renamed to ...
8677 (ld_ix86_gld_32_opt): This.
8678 (R_386_TLS_LDM reloc): Updated.
8679 (R_386_GOT32X reloc): New assembler/linker check.
8680 (HAVE_AS_IX86_GOT32X): New. Defined to 1 if 32-bit assembler and
8681 linker support "jmp *_start@GOT" and "cmpl $0, bar@GOT". Otherise,
8682 defined to 0.
8683 * config.in: Regenerated.
8684 * configure: Likewise.
8685 * config/i386/i386.c (ix86_force_load_from_GOT_p): Return
8686 true if HAVE_AS_IX86_GOT32X is 1 in 32-bit mode.
8687 (ix86_legitimate_address_p): Allow UNSPEC_GOT for -fno-plt
8688 if ix86_force_load_from_GOT_p returns true.
8689 (ix86_print_operand_address_as): Also support UNSPEC_GOT if
8690 ix86_force_load_from_GOT_p returns true.
8691 (ix86_expand_move): Generate UNSPEC_GOT in 32-bit mode to load
8692 the external function address via the GOT slot.
8693 (ix86_nopic_noplt_attribute_p): Check both TARGET_64BIT and
8694 HAVE_AS_IX86_GOT32X before returning false.
8695 (ix86_output_call_insn): Generate "%!jmp/call\t*%p0@GOT" in
8696 32-bit mode if ix86_nopic_noplt_attribute_p returns true.
8697
8698 2016-06-23 Eric Botcazou <ebotcazou@adacore.com>
8699
8700 * tree-inline.c (remap_decl): Preserve DECL_ORIGINAL_TYPE invariant.
8701
8702 2016-06-23 Andi Kleen <ak@linux.intel.com>
8703
8704 * Makefile.in: Regenerate.
8705 * doc/install.texi: Document autoprofiledbootstrap.
8706
8707 2016-06-23 Andi Kleen <ak@linux.intel.com>
8708
8709 * config/i386/gcc-auto-profile: New file.
8710
8711 2016-06-23 Martin Liska <mliska@suse.cz>
8712
8713 PR middle-end/71619
8714 * predict.c (predict_loops): Revert the hunk that was removed
8715 in r237103.
8716
8717 2016-06-23 Jakub Sejdak <jakub.sejdak@phoesys.com>
8718
8719 * config.gcc: Add support for arm*-*-phoenix* targets.
8720 * config/arm/t-phoenix: New.
8721 * config/phoenix.h: New.
8722
8723 2016-06-23 Uros Bizjak <ubizjak@gmail.com>
8724 H.J. Lu <hongjiu.lu@intel.com>
8725
8726 PR target/67400
8727 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): New.
8728 * config/i386/i386.c (ix86_force_load_from_GOT_p): New function.
8729 (ix86_legitimate_constant_p): Do not allow UNSPEC_GOTPCREL if
8730 ix86_force_load_from_GOT_p returns true.
8731 (ix86_legitimate_address_p): Allow UNSPEC_GOTPCREL if
8732 ix86_force_load_from_GOT_p returns true.
8733 (ix86_print_operand_address_as): Support UNSPEC_GOTPCREL if
8734 ix86_force_load_from_GOT_p returns true.
8735 (ix86_expand_move): Load the external function address via the
8736 GOT slot if ix86_force_load_from_GOT_p returns true.
8737 * config/i386/predicates.md (x86_64_immediate_operand): Return
8738 false for SYMBOL_REFs where ix86_force_load_from_GOT_p returns true.
8739 (x86_64_zext_immediate_operand): Ditto.
8740
8741 2016-06-22 Uros Bizjak <ubizjak@gmail.com>
8742
8743 * config/i386/i386.c (ix86_expand_move): Simplify SYMBOL_REF handling.
8744
8745 2016-06-22 David Malcolm <dmalcolm@redhat.com>
8746
8747 PR c/70339
8748 * diagnostic-core.h (pedwarn_at_rich_loc): New prototype.
8749 * diagnostic.c (pedwarn_at_rich_loc): New function.
8750 * spellcheck.h (best_match::best_match): Add a
8751 "best_distance_so_far" optional parameter.
8752 (best_match::set_best_so_far): New method.
8753 (best_match::get_best_distance): New accessor.
8754 (best_match::get_best_candidate_length): New accessor.
8755
8756 2016-06-22 Nick Clifton <nickc@redhat.com>
8757
8758 * dwarf2out.c (scompare_loc_descriptor): Use SCALAR_INT_MODE_P() in
8759 place of GET_MODE_CLASS() == MODE_INT, so that partial integer
8760 modes are accepted as well.
8761 (ucompare_loc_descriptor): Likewise.
8762 (minmax_loc_descriptor): Likewise.
8763 (clz_loc_descriptor): Likewise.
8764 (popcount_loc_descriptor): Likewise.
8765 (bswap_loc_descriptor): Likewise.
8766 (rotate_loc_descriptor): Likewise.
8767 (mem_loc_descriptor): Likewise.
8768 (loc_descriptor): Likewise.
8769
8770 2016-06-22 David Malcolm <dmalcolm@redhat.com>
8771
8772 * common.opt (fdiagnostics-parseable-fixits): New option.
8773 * diagnostic.c: Include "selftest.h".
8774 (print_escaped_string): New function.
8775 (print_parseable_fixits): New function.
8776 (diagnostic_report_diagnostic): Call print_parseable_fixits.
8777 (selftest::assert_print_escaped_string): New function.
8778 (ASSERT_PRINT_ESCAPED_STRING_STREQ): New macro.
8779 (selftest::test_print_escaped_string): New function.
8780 (selftest::test_print_parseable_fixits_none): New function.
8781 (selftest::test_print_parseable_fixits_insert): New function.
8782 (selftest::test_print_parseable_fixits_remove): New function.
8783 (selftest::test_print_parseable_fixits_replace): New function.
8784 (selftest::diagnostic_c_tests): New function.
8785 * diagnostic.h (struct diagnostic_context): Add field
8786 "parseable_fixits_p".
8787 * doc/invoke.texi (Diagnostic Message Formatting Options): Add
8788 -fdiagnostics-parseable-fixits.
8789 (-fdiagnostics-parseable-fixits): New option.
8790 * opts.c (common_handle_option): Handle
8791 -fdiagnostics-parseable-fixits.
8792 * selftest-run-tests.c (selftest::run_tests): Call
8793 selftest::diagnostic_c_tests.
8794 * selftest.h (selftest::diagnostic_c_tests): New prototype.
8795
8796 2016-06-22 Ilya Enkovich <ilya.enkovich@intel.com>
8797
8798 PR tree-optimization/71488
8799 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Support
8800 comparison of boolean vectors.
8801 * tree-vect-stmts.c (vectorizable_comparison): Vectorize comparison
8802 of boolean vectors using bitwise operations.
8803
8804 2016-06-22 Andreas Schwab <schwab@suse.de>
8805
8806 * config/aarch64/aarch64-protos.h (aarch64_elf_asm_named_section):
8807 Remove declaration.
8808
8809 2016-06-22 Eric Botcazou <ebotcazou@adacore.com>
8810
8811 * function.c (assign_parm_setup_reg): Prevent sharing in another case.
8812
8813 2016-06-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
8814
8815 * config/i386/i386.c (print_reg): Emit an error message on attempt to
8816 print FLAGS_REG.
8817
8818 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8819
8820 * config/arm/arm.c (arm_cortex_a73_tune): New struct.
8821 * config/arm/arm-cores.def (cortex-a73): New entry.
8822 (cortex-a73.cortex-a35): Likewise.
8823 (cortex-a73.cortex-a53): Likewise.
8824 * config/arm/arm-tables.opt: Regenerate.
8825 * config/arm/arm-tune.md: Likewise.
8826 * config/arm/bpabi.h (BE8_LINK_SPEC): Handle mcpu=cortex-a73,
8827 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
8828 * config/arm/t-aprofile: Handle mcpu=cortex-a73,
8829 mcpu=cortex-a73.cortex-a35 and mcpu=cortex-a73.cortex-a53.
8830 * doc/invoke.texi (ARM Options): Document cortex-a73,
8831 cortex-a73.cortex-a35 and cortex-a73.cortex-a53.
8832
8833 2016-06-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8834
8835 * config/aarch64/aarch64.c (cortexa73_tunings): New struct.
8836 * config/aarch64/aarch64-cores.def (cortex-a73): New entry.
8837 (cortex-a73.cortex-a35): Likewise.
8838 (cortex-a73.cortex-a53): Likewise.
8839 * config/aarch64/aarch64-tune.md: Regenerate.
8840 * doc/invoke.texi (AArch64 Options): Document cortex-a73,
8841 cortex-a73.cortex-a35 and cortex-a73.cortex-a53 arguments to
8842 -mcpu and -mtune.
8843
8844 2016-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8845
8846 * configure.ac (gcc_cv_as_compress_debug): Remove
8847 --compress-debug-sections as extra as switch.
8848 Handle gas --compress-debug-sections=type.
8849 (gcc_cv_ld_compess_debug): Remove bogus ld_date check.
8850 Handle gld --compress-debug-sections=type.
8851 * configure: Regenerate.
8852
8853 2016-06-21 Andrew Burgess <andrew.burgess@embecosm.com>
8854
8855 * bb-reorder.c (pass_partition_blocks::gate): Update comment.
8856
8857 2016-06-21 John David Anglin <danglin@gcc.gnu.org>
8858
8859 * gcov-tool.c (profile_rewrite): Use int64_t instead of long long.
8860 (do_rewrite): likewise.
8861
8862 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8863
8864 * common/config/mep/mep-common.c: Remove.
8865 * config.gcc: Remove mep-* support.
8866 * config/mep/constraints.md: Remove.
8867 * config/mep/default.h: Remove.
8868 * config/mep/intrinsics.h: Remove.
8869 * config/mep/intrinsics.md: Remove.
8870 * config/mep/ivc2-template.h: Remove.
8871 * config/mep/mep-c5.cpu: Remove.
8872 * config/mep/mep-core.cpu: Remove.
8873 * config/mep/mep-default.cpu: Remove.
8874 * config/mep/mep-ext-cop.cpu: Remove.
8875 * config/mep/mep-intrin.h: Remove.
8876 * config/mep/mep-ivc2.cpu: Remove.
8877 * config/mep/mep-pragma.c: Remove.
8878 * config/mep/mep-protos.h: Remove.
8879 * config/mep/mep.c: Remove.
8880 * config/mep/mep.cpu: Remove.
8881 * config/mep/mep.h: Remove.
8882 * config/mep/mep.md: Remove.
8883 * config/mep/mep.opt: Remove.
8884 * config/mep/predicates.md: Remove.
8885 * config/mep/t-mep: Remove.
8886 * doc/install.texi: Remove mep-* documentation.
8887 * doc/md.texi: Likewise.
8888
8889 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8890
8891 * config.gcc: Remove support for avr-rtems.
8892 * config/avr/gen-avr-mmcu-specs.c: Likewise.
8893 * config/avr/rtems.h: Remove.
8894 * config/avr/t-rtems: Remove.
8895
8896 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8897
8898 * config.gcc: Remove m32r-rtems support.
8899 * config/m32r/rtems.h: Remove.
8900
8901 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8902
8903 * config.gcc: Remove h8300-rtems support.
8904 * config/h8300/rtems.h: Remove.
8905 * config/h8300/t-rtems: Remove.
8906
8907 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8908
8909 * config.gcc: Remove support for knetbsd.
8910 * configure.ac: Likewise.
8911 * config/i386/knetbsd-gnu.h: Remove. * config/i386/knetbsd-gnu64.h: Remove.
8912 * config/knetbsd-gnu.h: Remove.
8913 * configure: Regenerate.
8914
8915 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8916
8917 * config.gcc: Remove support for openbsd 2 and 3.
8918 * config/openbsd-oldgas.h: Remove.
8919
8920 2016-06-21 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
8921
8922 * config.gcc: Remove interix support.
8923 * config/i386/i386-interix.h: Remove.
8924 * config/i386/interix.opt: Remove.
8925 * config/i386/t-interix: Remove.
8926 * configure: Regenerate.
8927 * configure.ac: Remove interix support.
8928 * doc/install.texi: Remove interix documentation.
8929
8930 2016-06-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
8931
8932 * config/rs6000/rs6000.h: Add conditional preprocessing directives
8933 to disable Power9-specific compiler features if HAVE_AS_POWER9 is
8934 not defined.
8935
8936 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
8937
8938 * tree.c (verify_type_variant): Skip TYPE_SIZE and TYPE_SIZE_UNIT if
8939 they are both PLACEHOLDER_EXPRs.
8940
8941 2016-06-21 Michael Meissner <meissner@linux.vnet.ibm.com>
8942
8943 * stor-layout.c (layout_type): Move setting complex MODE to
8944 layout_type, instead of setting it ahead of time by the caller.
8945 * tree.c (build_complex_type): Likewise.
8946
8947 2016-06-21 Martin Liska <mliska@suse.cz>
8948
8949 * predict.c (force_edge_cold): Replace imposisble with
8950 impossible.
8951
8952 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
8953
8954 * config/i386/i386.c (ix86_emit_swsqrtsf): Emit vrsqrt28ps.
8955 * config/i386/sse.md (define_expand "rsqrtv16sf2"): New.
8956
8957 2016-06-21 Ilya Verbin <ilya.verbin@intel.com>
8958
8959 * config/i386/i386.c (ix86_emit_swdivsf): Emit vrcp28ps.
8960
8961 2016-06-21 H.J. Lu <hongjiu.lu@intel.com>
8962 Ilya Enkovich <ilya.enkovich@intel.com>
8963
8964 PR target/71549
8965 * config/i386/i386.c (timode_scalar_chain::fix_debug_reg_uses):
8966 New member function to convert V1TImode register to SUBREG
8967 TImode in debug insn.
8968 (timode_scalar_chain::convert_insn): Call fix_debug_reg_uses
8969 after changing register mode to V1TImode.
8970
8971 2016-06-21 Virendra Pathak <virendra.pathak@broadcom.com>
8972
8973 * config/aarch64/aarch64-cores.def (vulcan): New core.
8974 * config/aarch64/aarch64-tune.md: Regenerate.
8975 * doc/invoke.texi: Document vulcan as an available option.
8976
8977 2016-06-21 Eric Botcazou <ebotcazou@adacore.com>
8978
8979 * cse.c (canon_asm_operands): New function extracted from...
8980 (canonicalize_insn): ...here. Call it to canonicalize an ASM_OPERANDS
8981 either standalone or member of a PARALLEL.
8982
8983 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
8984
8985 PR target/30417
8986 * config/avr/gen-avr-mmcu-specs.c (print_mcu):
8987 [*link_data_start]: Wrap -Tdata into %{!Tdata:...}.
8988 [*link_text_start]: Wrap -Ttext into %{!Ttext:...}.
8989
8990 2016-06-21 Georg-Johann Lay <avr@gjlay.de>
8991
8992 PR target/71103
8993 * config/avr/avr.md (movqi): Only handle loading subreg:qi of
8994 constant addresses if can_create_pseudo_p.
8995
8996 2016-06-21 Jakub Jelinek <jakub@redhat.com>
8997
8998 PR tree-optimization/71588
8999 * tree-ssa-strlen.c (valid_builtin_call): New function.
9000 (adjust_last_stmt, handle_builtin_memset, strlen_optimize_stmt): Use
9001 it.
9002
9003 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9004
9005 PR middle-end/71581
9006 * tree-ssa-uninit.c (warn_uninit): If EXPR and VAR are NULL,
9007 see if T isn't anonymous SSA_NAME with COMPLEX_EXPR created
9008 for conversion of scalar user var to complex type and use the
9009 underlying SSA_NAME_VAR in that case. If EXPR is still NULL,
9010 punt.
9011
9012 PR rtl-optimization/71591
9013 * toplev.c (toplev::run_self_tests): If no_backend, complain and
9014 don't run any tests.
9015
9016 2016-06-20 Hans-Peter Nilsson <hp@axis.com>
9017
9018 PR target/71571
9019 * config/cris/cris.c (cris_asm_output_mi_thunk): Add missing "ba"
9020 delay-slot "nop" for PIC with CRIS v32. Also add missing leading
9021 space for PIC with non-v32 and the common non-PIC "jump".
9022
9023 2016-06-20 Jakub Jelinek <jakub@redhat.com>
9024
9025 PR target/71559
9026 * config/i386/i386.c (ix86_fp_cmp_code_to_pcmp_immediate): Fix up
9027 returned values and add UN*/LTGT/*ORDERED cases with values matching
9028 D operand modifier on vcmp for AVX.
9029
9030 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9031
9032 * config/aarch64/aarch64.opt
9033 (mpc-relative-literal-loads): Rename internal option name.
9034 * config/aarch64/aarch64.c
9035 (aarch64_nopcrelative_literal_loads): Rename to
9036 aarch64_pcrelative_literal_loads.
9037 (aarch64_expand_mov_immediate): Likewise.
9038 (aarch64_secondary_reload): Likewise.
9039 (aarch64_can_use_per_function_literal_pools_p): Likewise.
9040 (aarch64_override_options_after_change_1): Rename and simplify logic.
9041 (aarch64_classify_symbol): Merge large model checks into switch,
9042 remove pc-relative load check.
9043
9044 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9045
9046 * config/arm/aarch-cost-tables.h (cortexa53_extra_costs): Make FP
9047 costs relative to the cost of a register move.
9048
9049 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9050
9051 * config/aarch64/arm_neon.h (vcvt_n_f64_s64): New.
9052 (vcvt_n_f64_u64): Likewise.
9053 (vcvt_n_s64_f64): Likewise.
9054 (vcvt_n_u64_f64): Likewise.
9055 (vcvt_f64_s64): Likewise.
9056 (vrecpe_f64): Likewise.
9057 (vcvt_f64_u64): Likewise.
9058 (vrecps_f64): Likewise.
9059
9060 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9061
9062 * config/aarch64/aarch64.md
9063 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3): Add attributes to
9064 iterators.
9065 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Likewise. Correct
9066 attributes.
9067 * config/aarch64/aarch64-builtins.c
9068 (aarch64_types_binop_uss_qualifiers): Delete.
9069 (TYPES_BINOP_USS): Likewise.
9070 (aarch64_types_binop_sus_qualifiers): Likewise.
9071 (TYPES_BINOP_SUS): Likewise.
9072 (aarch64_types_fcvt_from_unsigned_qualifiers): New.
9073 (TYPES_FCVTIMM_SUS): Likewise.
9074 * config/aarch64/aarch64-simd-builtins.def (scvtf): Use SHIFTIMM
9075 rather than BINOP.
9076 (ucvtf): Use FCVTIMM_SUS rather than BINOP_SUS.
9077 (fcvtzs): Use SHIFTIMM rather than BINOP.
9078 (fcvtzu): Use SHIFTIMM_USS rather than BINOP_USS.
9079
9080 2016-06-20 James Greenhalgh <james.greenhalgh@arm.com>
9081
9082 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Make FP
9083 costs relative to the cost of a register move.
9084
9085 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9086
9087 * config/aarch64/aarch64.c (aarch64_modes_tieable_p):
9088 Allow scalar/single vector modes to be tieable.
9089
9090 2016-06-20 Wilco Dijkstra <wdijkstr@arm.com>
9091
9092 * config/arm/cortex-a57.md (cortex_a57_fp_cpys): Add fcsel.
9093
9094 2016-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9095
9096 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Use "alignment" instead of
9097 "alignement".
9098 * tree.h (TYPE_ALIGN): Likewise.
9099
9100 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
9101
9102 PR target/71103
9103 * config/avr/avr.md (movqi): Handle loading subreg:qi (const).
9104
9105 2016-06-20 Georg-Johann Lay <avr@gjlay.de>
9106
9107 * config/avr/avr.c (avr_print_operand): Fix "format not a string
9108 literal" build warnings.
9109 (avr_print_operand_address): Dito.
9110
9111 2016-06-19 David Edelsohn <dje.gcc@gmail.com>
9112
9113 PR target/71375
9114 * config/rs6000/aix51.h (TARGET_EXTRA_BUILTINS): Define as 0.
9115 * config/rs6000/aix43.h (TARGET_EXTRA_BUILTINS): Same.
9116
9117 2016-06-18 John David Anglin <danglin@gcc.gnu.org>
9118
9119 * config/pa/pa.h (TARGET_LONG_PIC_PCREL_CALL): Remove.
9120
9121 2016-06-18 Eric Botcazou <ebotcazou@adacore.com>
9122
9123 PR bootstrap/71435
9124 * reload1.c (reload): Pass 0 to finish_spills when called because
9125 update_eliminables_and_spill returns true and remove did_spill.
9126 (finish_spills): Adjust comment and document GLOBAL parameter.
9127
9128 2016-06-17 DJ Delorie <dj@redhat.com>
9129
9130 PR target/71338
9131 * config/rl78/rl78-expand.c (umulqihi3): Enable for G10.
9132 * config/rl78/rl78-virtual.c (umulhi3_shift_virt): Likewise.
9133 (umulqihi3_virt): Likewise.
9134 * config/rl78/rl78-real.c (umulhi3_shift_real): Likewise.
9135 (umulqihi3_real): Likewise.
9136
9137 2016-06-17 Martin Liska <mliska@suse.cz>
9138
9139 * tree-ssa-reassoc.c (transform_add_to_multiply): Use auto_vec.
9140
9141 2016-06-17 Martin Liska <mliska@suse.cz>
9142
9143 * predict.def: PRED_LOOP_EXIT from 92 to 85.
9144
9145 2016-06-17 James Greenhalgh <james.greenhalgh@arm.com>
9146
9147 * config/arm/arm_neon.h (vadd_f32): replace __FAST_MATH with
9148 __FAST_MATH__.
9149 (vaddq_f32): Likewise.
9150 (vmul_f32): Likewise.
9151 (vmulq_f32): Likewise.
9152 (vsub_f32): Likewise.
9153 (vsubq_f32): Likewise.
9154
9155 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9156
9157 PR tree-optimization/71347
9158 * tree-ssa-loop-ivopts.c (determine_group_iv_cost_address): Compute
9159 cost for all uses in group.
9160
9161 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9162
9163 * tree-vect-loop.c (vect_create_epilog_for_reduction): Only
9164 insert gimple seq if it's not empty.
9165
9166 2016-06-17 Bin Cheng <bin.cheng@arm.com>
9167
9168 * tree-vectorizer.h (struct dr_with_seg_len): Remove class
9169 member OFFSET.
9170 * tree-vect-data-refs.c (operator ==): Handle DR_OFFSET directly,
9171 rather than OFFSET.
9172 (comp_dr_with_seg_len_pair): Ditto.
9173 (vect_prune_runtime_alias_test_list): Ditto. Also Canonicalize
9174 struct dr_with_seg_len_pair against DR_OFFSET.
9175 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): Handle
9176 DR_OFFSET directly.
9177
9178 2016-06-17 Szabolcs Nagy <szabolcs.nagy@arm.com>
9179
9180 * config/aarch64/geniterators.sh: Handle parenthesised conditions.
9181
9182 2016-06-16 John David Anglin <danglin@gcc.gnu.org>
9183
9184 * config/pa/pa.c (pa_output_pic_pcrel_sequence): New.
9185 (pa_output_lbranch): Use pa_output_pic_pcrel_sequence.
9186 (pa_output_millicode_call): Likewise.
9187 (pa_output_call): Likewise.
9188 (pa_output_indirect_call): Likewise.
9189 (pa_asm_output_mi_thunk): Likewise.
9190
9191 2016-06-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org>
9192
9193 * doc/invoke.texi (x86 Options): Fix -mno-fp-ret-in-387 typo.
9194
9195 2016-06-16 Martin Liska <mliska@suse.cz>
9196
9197 * predict.c (combine_predictions_for_insn): When we find a first
9198 match predictor, we should consider just predictors with
9199 PRED_FLAG_FIRST_MATCH. Print either first match (if any) or
9200 DS theory predictor.
9201 (combine_predictions_for_bb): Likewise.
9202
9203 2016-06-16 Jakub Jelinek <jakub@redhat.com>
9204
9205 * gimplify.c (gimplify_scan_omp_clauses): Handle COMPONENT_REFs
9206 with base of reference to struct.
9207
9208 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
9209
9210 * doc/invoke.texi (x86 Options): Document -m80387 and -mhard-float.
9211
9212 2016-06-16 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
9213
9214 PR target/71151
9215 * config/avr/avr.c (avr_asm_init_sections): Remove setup of
9216 progmem_swtable_section.
9217 (progmem_swtable_section): Remove.
9218 (avr_asm_function_rodata_section): Remove.
9219 (TARGET_ASM_FUNCTION_RODATA_SECTION): Remove.
9220 * config/avr/avr.h (JUMP_TABLES_IN_TEXT_SECTION: Define to 1.
9221
9222 2016-06-16 Jocelyn Mayer <l_indien@magic.fr>
9223
9224 * config/i386/driver-i386.c (host_detect_local_cpu): Set
9225 PROCESSOR_K8 for signature_CENTAUR_ebx with has_longmode.
9226 <case PROCESSOR_K8>: Pass nano-3000, nano, eden-x2 or k8 for
9227 signature_CENTAUR_ebx.
9228 * config/i386/i386.c (ix86_option_override_internal): Add
9229 definitions for VIA c7, samuel-2, nehemiah, esther, eden-x2, eden-x4,
9230 nano, nano-1000, nano-2000, nano-3000, nano-x2 and nano-x4.
9231 * doc/invoke.texi (x86 Options): Document new VIA -march entries.
9232
9233 2016-06-16 Martin Liska <mliska@suse.cz>
9234
9235 * predict.def: Add fortran loop preheader predictor.
9236 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Properly
9237 fold IFN_BUILTIN_EXPECT with a known constant argument.
9238
9239 2016-06-16 Martin Liska <mliska@suse.cz>
9240
9241 * predict.def: Add 'Fortran' to display text of all
9242 PRED_FORTRAN_* predictors.
9243
9244 2016-06-16 Uros Bizjak <ubizjak@gmail.com>
9245
9246 PR target/71242
9247 * config/ia64/ia64.c (enum ia64_builtins) [IA64_BUILTIN_NANQ]: New.
9248 [IA64_BUILTIN_NANSQ]: Ditto.
9249 (ia64_fold_builtin): New function.
9250 (TARGET_FOLD_BUILTIN): New define.
9251 (ia64_init_builtins) Declare const_string_type node.
9252 Add __builtin_nanq and __builtin_nansq builtin functions.
9253 (ia64_expand_builtin): Handle IA64_BUILTIN_NANQ and IA64_BUILTIN_NANSQ.
9254
9255 2016-06-16 Nick Clifton <nickc@redhat.com>
9256
9257 * config/msp430/msp430-opts.h (msp430_hwmult_types): Add
9258 MSP430_HWMULT_ prefix to enum values.
9259 (msp430_regions): Add MSP430_REGION_ prefix to enum values.
9260 * config/msp430/msp430.c: Update use of enum values.
9261 * config/msp430/msp430.md: Likewise.
9262 * config/msp430/msp430.opt: Likewise.
9263
9264 2016-06-16 Jan Hubicka <hubicka@ucw.cz>
9265
9266 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix estimation
9267 of comparsions in the last iteration.
9268
9269 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
9270 Joern Rennecke <joern.rennecke@embecosm.com>
9271
9272 * config/arc/arc.c (arc_print_operand_address): Handle pc-relative
9273 addresses.
9274 (arc_needs_pcl_p): Add GOTOFFPC.
9275 (arc_legitimate_pic_addr_p): Likewise.
9276 (arc_output_pic_addr_const): Likewise.
9277 (arc_legitimize_pic_address): Generate a pc-relative address using
9278 GOTOFFPC.
9279 (arc_output_libcall): Use @pcl syntax.
9280 (arc_delegitimize_address_0): Delegitimize ARC_UNSPEC_GOTOFFPC.
9281 * config/arc/arc.md ("unspec"): Add ARC_UNSPEC_GOTOFFPC.
9282 (*movsi_insn): Use @pcl syntax.
9283 (doloop_begin_i): Likewise.
9284
9285 2016-06-16 Martin Liska <mliska@suse.cz>
9286
9287 * predict.def: Define a new predictor.
9288
9289 2016-06-16 Claudiu Zissulescu <claziss@synopsys.com>
9290
9291 * config/arc/arc.opt (mtp-regno): Update text.
9292
9293 2016-06-16 Renlin Li <renlin.li@arm.com>
9294
9295 * config/aarch64/aarch64.c (aarch64_legitimize_address): Fix a typo.
9296
9297 2016-06-16 Jakub Jelinek <jakub@redhat.com>
9298
9299 PR target/71554
9300 * config/i386/i386.md (setcc + movzbl peephole2): Use reg_set_p.
9301 (setcc + and peephole2): Likewise.
9302
9303 PR rtl-optimization/71532
9304 * cse.c (cse_insn): For const/pure calls, invalidate argument passing
9305 memory slots.
9306
9307 2016-06-15 Michael Meissner <meissner@linux.vnet.ibm.com>
9308
9309 * config/rs6000/vsx.md (VSINT_84): Add DImode to enable loading
9310 DImode constants with XXSPLTIB in vector registers.
9311 (vsx_extract_<mode>, V2DImode/V2DFmode): Combine both
9312 vsx_extract_<mode>_internal{1,2} into a single insn that handles
9313 direct move (both ISA 2.07 and ISA 3.0 versions), and optimizes
9314 extraction of the element at the top of the register as a scalar
9315 value.
9316 (vsx_extract_<mode>_internal1): Likewise.
9317 (vsx_extract_<mode>_internal2): Likewise.
9318 * config/rs6000/constraints.md (wi constraint): Remove a comment
9319 about DImode not being allowed in Altivec registers.
9320 (wB constraint): New constraint for constants that can be
9321 generated in Altivec registers with VSPLTISW/VUPKHSW.
9322 * config/rs6000/predicates.md (xxspltib_constant_split): Update
9323 comments.
9324 (xxspltib_constant_nosplit): Likewise.
9325 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Add
9326 support for -mupper-regs-di to enable DImode to go into Altivec
9327 registers.
9328 (POWERPC_MASKS): Likewise.
9329 (power7 cpu): Likewise.
9330 * config/rs6000/rs6000.opt (-mupper-regs-di): Likewise.
9331 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): Add support
9332 for DImode being allowed in Altivec registers. Update wi/wj
9333 constraints. Set scalar_in_vmx_p flag.
9334 (rs6000_option_override_internal): Add checks for -mupper-regs-di.
9335 (xxspltib_constant_p): Allow CONST_INT's with VOIDmode. Don't
9336 return true if we could use VSPLTISW/VUPKHSW instead of XXSPLTIB.
9337 (rs6000_opt_masks): Add -mupper-regs-di.
9338 * config/rs6000/rs6000.md (lfiwax): Update clobbers that don't use
9339 direct move to use wi and not wj.
9340 (lfiwzx): Likewise.
9341 (floatsi<mode>2_lfiwax_mem): Combine alternatives into a single
9342 alternative.
9343 (floatunssi<mode>2_lfiwzx_mem): Likewise.
9344 (fix_trunc<mode>di2_fctidz): Change second alternative to allow
9345 any VSX register, instead of just Altivec registers, to allow
9346 either operand to be an Altivec register or both.
9347 (fixuns_trunc<mode>di2_fctiduz): Likewise.
9348 (movdi_internal32): Add support for -mupper-regs-di. Add support
9349 to load constants via XXSPLTIB or VSPLTISW. Add spacing to allow
9350 the alternatives and attributes to be lined up to be easier to
9351 read.
9352 (movdi_internal64): Likewise.
9353 (64-bit DImode splitters): Change predicates to only split loading
9354 up GPR registers. Add splits for using XXSPLTIB or VSPLTISW to
9355 load constants in ISA 3.0 or ISA 2.07 respectively.
9356 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
9357 -mupper-regs-di. Update -mupper-regs-df and -mupper-regs-sf to
9358 mention -mcpu=power9 sets these options.
9359 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the
9360 wB constraint.
9361
9362 2016-06-15 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
9363
9364 PR target/67353
9365 * config/avr/avr.c (avr_set_current_function): Warn misspelled
9366 interrupt/ signal handler if -Wmisspelled-isr flag is enabled.
9367 * config/avr/avr.opt (Wmisspelled-isr): New warning flag. Enabled
9368 by default to warn misspelled interrupt/ signal handler.
9369 * doc/invoke.texi (AVR Options): Document it. Update description
9370 for -nodevicelib option.
9371
9372 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9373
9374 * config/aarch64/aarch64-simd.md (aarch64_<sur>shll_n<mode>): Clean
9375 up parentheses. Use GET_MODE_UNIT_BITSIZE.
9376 (aarch64_<sur>shll2_n<mode>): Likewise.
9377
9378 2016-06-15 Ilya Enkovich <ilya.enkovich@intel.com>
9379
9380 PR middle-end/71529
9381 * ipa-chkp.c (chkp_build_instrumented_fndecl): Fix
9382 DECL_CONTEXT for copied arguments.
9383
9384 2016-06-15 Alan Hayward <alan.hayward@arm.com>
9385
9386 PR tree-optimization/71483
9387 * tree-vect-loop.c (vectorizable_live_operation): Pick correct index
9388 for slp
9389
9390 2016-06-15 Martin Liska <mliska@suse.cz>
9391
9392 * predict.c (tree_predict_by_opcode): Call predict_edge_def
9393 instead of predict_edge w/o a probability.
9394
9395 2016-06-15 Alan Hayward <alan.hayward@arm.com>
9396
9397 PR tree-optimization/71439
9398 * tree-vect-loop.c (vect_analyze_loop_operations): Additional check for
9399 live PHIs.
9400
9401 2016-06-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9402
9403 * ifcvt.c (bb_ok_for_noce_multiple_sets): Allow simple lowpart
9404 register subregs in SET_SRC.
9405
9406 2016-06-15 Richard Biener <rguenther@suse.de>
9407
9408 * tree-vect-stmts.c (vectorizable_store): Remove strided grouped
9409 store restrictions.
9410
9411 2016-06-15 Richard Biener <rguenther@suse.de>
9412
9413 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Do
9414 not consider dependences between accesses that belong to the
9415 same group.
9416 (vect_analyze_data_ref_dependences): Do not analyze read-read
9417 or self-dependences.
9418
9419 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9420
9421 * spellcheck-tree.c: Include spellcheck-tree.h rather than
9422 spellcheck.h.
9423 (find_closest_identifier): Reimplement in terms of
9424 best_match<tree,tree>.
9425 * spellcheck-tree.h: New file.
9426 * spellcheck.c (struct edit_distance_traits<const char *>): New
9427 struct.
9428 (find_closest_string): Reimplement in terms of
9429 best_match<const char *, const char *>.
9430 * spellcheck.h (levenshtein_distance): Move prototype of tree-based
9431 overload to spellcheck-tree.h.
9432 (find_closest_identifier): Likewise.
9433 (struct edit_distance_traits<T>): New template.
9434 (class best_match): New class.
9435
9436 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9437
9438 * selftest-run-tests.c (selftest::run_tests): Call
9439 selftest::spellcheck_tree_c_tests.
9440 * selftest.h (selftest::spellcheck_tree_c_tests): New decl.
9441 * spellcheck-tree.c: Include selftest.h and stringpool.h.
9442 (selftest::test_find_closest_identifier): New function.
9443 (selftest::spellcheck_tree_c_tests): New function.
9444 * spellcheck.c (selftest::test_find_closest_string): Verify that
9445 the order of the vec does not affect the results for this case.
9446 (selftest::test_data): New array.
9447 (selftest::test_metric_conditions): New function.
9448 (selftest::spellcheck_c_tests): Add a test of case-comparison.
9449 Call selftest::test_metric_conditions.
9450
9451 2016-06-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9452
9453 * config/rs6000/rs6000-builtin.def (commentary): Typo.
9454 (BU_P9_MISC_1): Likewise.
9455 (BU_P9_64BIT_MISC_0): Likewise.
9456 (BU_P9_MISC_0): Likewise.
9457
9458 2016-06-14 David Malcolm <dmalcolm@redhat.com>
9459
9460 * gcc-rich-location.c
9461 (gcc_rich_location::add_fixit_misspelled_id): New method.
9462 * gcc-rich-location.h
9463 (gcc_rich_location::add_fixit_misspelled_id): Add decl.
9464
9465 2016-06-14 Andreas Tobler <andreast@gcc.gnu.org>
9466
9467 * config/arm/freebsd.h: Only enable unaligned access for armv6 on
9468 FreeBSD 11 and above.
9469
9470 2016-06-14 Uros Bizjak <ubizjak@gmail.com>
9471
9472 * config/i386/i386.md (signbittf2): Emit sse_movmskps for TARGET_SSE.
9473
9474 2016-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9475
9476 * expmed.h: Close parenthesis in "at your option" in copyright
9477 boilerplate.
9478 * lower-subreg.h: Likewise.
9479
9480 2016-06-14 Richard Biener <rguenther@suse.de>
9481
9482 PR middle-end/71526
9483 * genmatch.c (expr::gen_transform): Use in_type for comparisons
9484 if available.
9485
9486 2015-06-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9487
9488 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
9489 New function.
9490 (aarch64_rtx_costs): Use it. Rewrite CONST_INT_P (op1) case to handle
9491 mask+shift version.
9492 * config/aarch64/aarch64-protos.h (aarch64_mask_and_shift_for_ubfiz_p):
9493 New prototype.
9494 * config/aarch64/aarch64.md (*andim_ashift<mode>_bfiz): Replace
9495 matching condition with aarch64_mask_and_shift_for_ubfiz_p.
9496
9497 2016-06-14 Richard Biener <rguenther@suse.de>
9498
9499 PR tree-optimization/71522
9500 * tree-ssa.c (non_rewritable_lvalue_p): Do not rewrite non-float
9501 copying into float copying.
9502
9503 2016-06-14 Jakub Jelinek <jakub@redhat.com>
9504
9505 PR tree-optimization/71520
9506 * tree-ssa-tail-merge.c (find_duplicate): Handle labels.
9507 (replace_block_by): Move user labels from bb1 to bb2.
9508
9509 2016-06-14 Richard Biener <rguenther@suse.de>
9510
9511 PR middle-end/71310
9512 PR bootstrap/71510
9513 * expr.h (get_bit_range): Declare.
9514 * expr.c (get_bit_range): Export.
9515 * fold-const.c (optimize_bit_field_compare): Use get_bit_range and
9516 word_mode again to constrain the bitfield access.
9517
9518 2016-06-14 Richard Biener <rguenther@suse.de>
9519
9520 PR tree-optimization/71521
9521 * tree-vrp.c (extract_range_from_binary_expr_1): Guard
9522 division int_const_binop against zero divisor.
9523
9524 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
9525
9526 * config/i386/i386.md (signbittf2): New expander.
9527 * config/i386/sse.md (ptesttf2): New insn pattern.
9528
9529 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9530
9531 PR bootstrap/71481
9532 * input.c (selftest::test_reading_source_line): Avoid reading from
9533 __FILE__ by creating a tempfile with known content and reading
9534 from that instead.
9535
9536 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9537
9538 * pretty-print.c (assert_pp_format_colored): Skip the test if
9539 GCC_COLORS is set.
9540 (test_pp_format): Remove comment about GCC_COLORS.
9541
9542 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9543
9544 * input.c (test_reading_source_line): Use SELFTEST_LOCATION.
9545 * pretty-print.c (assert_pp_format_va): Add location param and use
9546 it with ASSERT_STREQ_AT.
9547 (assert_pp_format): Add location param and pass it to
9548 assert_pp_format_va.
9549 (assert_pp_format_colored): Likewise.
9550 (ASSERT_PP_FORMAT_1): New.
9551 (ASSERT_PP_FORMAT_2): New.
9552 (ASSERT_PP_FORMAT_3): New.
9553 (test_pp_format): Provide SELFTEST_LOCATION throughout, either
9554 explicitly, or implicitly via the above macros.
9555 * selftest.c (selftest::pass): Use a selftest::location rather
9556 than file and line.
9557 (selftest::fail): Likewise. Print the function name.
9558 (selftest::fail_formatted): Likewise.
9559 (selftest::assert_streq): Use a selftest::location rather than
9560 file and line.
9561 * selftest.h (selftest::location): New struct.
9562 (SELFTEST_LOCATION): New macro.
9563 (selftest::pass): Accept a const location & rather than file
9564 and line.
9565 (selftest::fail): Likewise.
9566 (selftest::fail_formatted): Likewise.
9567 (selftest::assert_streq): Likewise.
9568 (ASSERT_TRUE): Update for above changes, using SELFTEST_LOCATION.
9569 (ASSERT_FALSE): Likewise.
9570 (ASSERT_EQ): Likewise.
9571 (ASSERT_NE): Likewise.
9572 (ASSERT_STREQ): Likewise.
9573 (ASSERT_PRED1): Likewise.
9574 (ASSERT_STREQ_AT): New macro.
9575
9576 2016-06-13 David Malcolm <dmalcolm@redhat.com>
9577
9578 * selftest.c (selftest::fail_formatted): New function.
9579 (selftest::assert_streq): New function.
9580 * selftest.h (selftests::fail_formatted): New decl.
9581 (selftest::assert_streq): New decl.
9582 (ASSERT_STREQ): Reimplement in terms of selftest::assert_streq.
9583
9584 2016-06-13 Jeff Law <law@redhat.com>
9585
9586 PR tree-optimization/71403
9587 * tree-ssa-threadbackward.c
9588 (convert_and_register_jump_thread_path): No longer accept reference
9589 to path. Do not pop items off the path anymore.
9590 (fsm_find_control_statement_thread_paths): Do not allow threading
9591 to a deeper loop nest. Pop the last item off the path here rather
9592 than in convert_and_register_jump_thread_path.
9593
9594 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
9595 Wilco Dijkstra <Wilco.Dijkstra@arm.com>
9596
9597 [AArch64] Emit division using the Newton series
9598
9599 * config/aarch64/aarch64-protos.h
9600 (cpu_approx_modes): Add new member "division".
9601 (aarch64_emit_approx_div): Declare new function.
9602 * config/aarch64/aarch64.c
9603 (generic_approx_modes): New member "division".
9604 (exynosm1_approx_modes): Likewise.
9605 (xgene1_approx_modes): Likewise.
9606 (aarch64_emit_approx_div): Define new function.
9607 * config/aarch64/aarch64.md ("div<mode>3"): New expansion.
9608 * config/aarch64/aarch64-simd.md ("div<mode>3"): Likewise.
9609 * config/aarch64/aarch64.opt (-mlow-precision-div): Add new option.
9610 * doc/invoke.texi (-mlow-precision-div): Describe new option.
9611
9612 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
9613 Wilco Dijkstra <wilco.dijkstra@arm.com>
9614
9615 [AArch64] Emit square root using the Newton series
9616
9617 * config/aarch64/aarch64-protos.h
9618 (aarch64_emit_approx_rsqrt): Replace with new function
9619 "aarch64_emit_approx_sqrt".
9620 (cpu_approx_modes): New member "sqrt".
9621 * config/aarch64/aarch64.c
9622 (generic_approx_modes): New member "sqrt".
9623 (exynosm1_approx_modes): Likewise.
9624 (xgene1_approx_modes): Likewise.
9625 (aarch64_emit_approx_rsqrt): Replace with new function
9626 "aarch64_emit_approx_sqrt".
9627 (aarch64_override_options_after_change_1): Handle new option.
9628 * config/aarch64/aarch64-simd.md
9629 (rsqrt<mode>2): Use new function instead.
9630 (sqrt<mode>2): New expansion and insn definitions.
9631 * config/aarch64/aarch64.md: Likewise.
9632 * config/aarch64/aarch64.opt
9633 (mlow-precision-sqrt): Add new option description.
9634 * doc/invoke.texi (mlow-precision-sqrt): Likewise.
9635
9636 2016-06-13 Evandro Menezes <e.menezes@samsung.com>
9637
9638 [AArch64] Add more choices for the reciprocal square root approximation
9639
9640 Allow a target to prefer such operation depending on the operation mode.
9641
9642 * config/aarch64/aarch64-protos.h
9643 (AARCH64_APPROX_MODE): New macro.
9644 (AARCH64_APPROX_{NONE,ALL}): Likewise.
9645 (cpu_approx_modes): New structure.
9646 (tune_params): New member "approx_modes".
9647 * config/aarch64/aarch64-tuning-flags.def
9648 (AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
9649 * config/aarch64/aarch64.c
9650 (generic_approx_modes): New core "cpu_approx_modes" structure.
9651 (exynosm1_approx_modes): Likewise.
9652 (xgene1_approx_modes): Likewise.
9653 (generic_tunings): New member "approx_modes".
9654 (cortexa35_tunings): Likewise.
9655 (cortexa53_tunings): Likewise.
9656 (cortexa57_tunings): Likewise.
9657 (cortexa72_tunings): Likewise.
9658 (exynosm1_tunings): Likewise.
9659 (thunderx_tunings): Likewise.
9660 (xgene1_tunings): Likewise.
9661 (use_rsqrt_p): New argument for the mode and use new member from
9662 "tune_params".
9663 (aarch64_builtin_reciprocal): Devise mode from builtin.
9664 (aarch64_optab_supported_p): New argument for the mode.
9665 * doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.
9666
9667 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
9668
9669 * config/rs6000/rs6000.h (RS6000_BTM_COMMON): Add the
9670 RS6000_BTM_MODULO flag into the set of flags that are considered
9671 to be part of the common configuration.
9672
9673 2016-06-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
9674
9675 * config/rs6000/altivec.h (vec_absd): New macro for vector absolute
9676 difference unsigned.
9677 (vec_absdb): New macro for vector absolute difference unsigned
9678 byte.
9679 (vec_absdh): New macro for vector absolute difference unsigned
9680 half-word.
9681 (vec_absdw): New macro for vector absolute difference unsigned word.
9682 * config/rs6000/altivec.md (UNSPEC_VADU): New value.
9683 (vadu<mode>3): New insn.
9684 (*p9_vadu<mode>3): New insn.
9685 * config/rs6000/rs6000-builtin.def (vadub): New built-in
9686 definition.
9687 (vaduh): New built-in definition.
9688 (vaduw): New built-in definition.
9689 (vadu): New overloaded built-in definition.
9690 (vadub): New overloaded built-in definition.
9691 (vaduh): New overloaded built-in definition.
9692 (vaduw): New overloaded built-in definition.
9693 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
9694 overloaded vector absolute difference unsigned functions.
9695 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
9696 the ISA 3.0 vector absolute difference unsigned built-in functions.
9697
9698 2016-06-13 Eric Botcazou <ebotcazou@adacore.com>
9699
9700 * tree-ssa-sccvn.c (vn_reference_lookup_3): Use a uniform test and
9701 update shared_lookup_references only once after changing operands.
9702
9703 2016-06-13 Thomas Schwinge <thomas@codesourcery.com>
9704
9705 PR middle-end/71373
9706 * tree-nested.c (convert_nonlocal_omp_clauses)
9707 (convert_local_omp_clauses): Document missing OMP_CLAUSE_*.
9708
9709 * tree-cfg.c (edge_to_cases_cleanup): Fix CASE_CHAIN typo.
9710 * tree.def (CASE_LABEL_EXPR): Likewise.
9711
9712 2016-06-13 Bernd Edlinger <bernd.edlinger@hotmail.de>
9713
9714 PR bootstrap/71481
9715 * input.c (test_builtins): Fix an assertion.
9716
9717 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
9718
9719 * config/i386/i386.md (paritydi2): Use ix86_expand_setcc.
9720 (paritysi2): Ditto.
9721 (isinfxf2): Ditto.
9722 (isinf<mode>2): Ditto.
9723
9724 2016-06-13 Uros Bizjak <ubizjak@gmail.com>
9725
9726 * ggc-tests.c (test_finalization): Only test need_finalization_p
9727 for GCC_VERSION >= 4003.
9728
9729 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9730
9731 * config/s390/vecintrin.h: Fix file description in comment.
9732
9733 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9734
9735 * config/s390/s390-builtin-types.def: Change builtin type naming
9736 scheme to match builtin-types.def.
9737
9738 2016-06-13 Marc Glisse <marc.glisse@inria.fr>
9739
9740 * fold-const.c (optimize_minmax_comparison): Remove.
9741 (fold_comparison): Remove call to the above.
9742 * match.pd (MIN (X, Y) == X, MIN (X, 5) == 0, MIN (X, C1) < C2):
9743 New transformations.
9744
9745 2016-06-13 Alan Hayward <alan.hayward@arm.com>
9746
9747 PR tree-optimization/71416
9748 * tree-vect-loop.c (vectorizable_live_operation): Let worklist have
9749 multiple entries
9750
9751 2016-06-13 Martin Liska <mliska@suse.cz>
9752
9753 * predict.c (enum predictor_reason): Prefix enum with REASON_.
9754 (combine_predictions_for_insn): Likewise.
9755 (prune_predictions_for_bb): Likewise.
9756 (combine_predictions_for_bb): Likewise.
9757
9758 2016-06-13 Richard Biener <rguenther@suse.de>
9759
9760 PR tree-optimization/71505
9761 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Make
9762 assert match comment.
9763
9764 2016-06-13 Marek Polacek <polacek@redhat.com>
9765
9766 PR middle-end/71476
9767 * gimplify.c (maybe_warn_switch_unreachable): Factored out of
9768 gimplify_switch_expr.
9769 (warn_switch_unreachable_r): New function.
9770
9771 2016-06-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9772
9773 PR target/71379
9774 * config/s390/s390.c (s390_expand_builtin): Increase MAX_ARGS by
9775 one.
9776
9777 2016-06-13 Richard Biener <rguenther@suse.de>
9778
9779 PR middle-end/64516
9780 * fold-const.c (fold_unary_loc): Preserve alignment when
9781 folding a VIEW_CONVERT_EXPR into a MEM_REF.
9782
9783 2016-06-13 Martin Liska <mliska@suse.cz>
9784
9785 PR sanitizer/71458
9786 * toplev.c (process_options): Do not enable -fcheck-pointer-bounds
9787 w/ -fsanitize=bounds.
9788
9789 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
9790
9791 * config/i386/i386.c (ix86_init_builtins): Calculate
9792 FLOAT128_FTYPE_CONST_STRING function type only once.
9793 * doc/extend.texi (x86 Built-in Functions): Update text, __float128
9794 built-in functions are available for x86-32 and x86-64 targets.
9795
9796 2016-06-12 Uros Bizjak <ubizjak@gmail.com>
9797
9798 PR target/71241
9799 * config/i386/i386.i386-builtin-types.def (CONST_STRING):
9800 New primitive type.
9801 (FLOAT128_FTYPE_CONST_STRING): New function type.
9802 * config/i386/i386.c (enum ix86_builtins) [IX86_BUILTIN_NANQ]: New.
9803 [IX86_BUILTIN_NANSQ]: Ditto.
9804 (ix86_fold_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
9805 (ix86_init_builtin_types): Declare const_string_type_node.
9806 (ix86_init_builtins): Add __builtin_nanq and __builtin_nansq
9807 builtin functions.
9808 (ix86_expand_builtin): Handle IX86_BUILTIN_NANQ and IX86_BUILTIN_NANSQ.
9809 * doc/extend.texi (x86 Built-in Functions): Document
9810 __builtin_nanq and __builtin_nansq.
9811
9812 2016-06-11 Jiong Wang <jiong.wang@arm.com>
9813
9814 PR target/71061
9815 * config/arm/arm-protos.h (arm_attr_length_pop_multi): New declaration.
9816 * config/arm/arm.c (arm_attr_length_pop_multi): New function to return
9817 length for pop patterns.
9818 (arm_attr_length_push_multi): Update comments.
9819 * config/arm/arm.md (*load_multiple_with_writeback): Set "length"
9820 attribute.
9821 (*pop_multiple_with_writeback_and_return): Likewise.
9822 (*pop_multiple_with_return): Likewise.
9823
9824 2016-06-11 Segher Boessenkool <segher@kernel.crashing.org>
9825
9826 PR middle-end/71310
9827 * fold-const.c (optimize_bit_field_compare): Don't try to use
9828 word_mode unconditionally for reading the bit field, look at
9829 DECL_BIT_FIELD_REPRESENTATIVE instead.
9830
9831 2016-06-11 Kugan Vivekanandarajah <kuganv@linaro.org>
9832
9833 PR middle-end/71478
9834 * tree-ssa-reassoc.c (reassociate_bb): Remove (-1) from ops list for
9835 vector integer type.
9836
9837 2016-06-10 Jakub Jelinek <jakub@redhat.com>
9838
9839 PR middle-end/71494
9840 * tree-nested.c (convert_nonlocal_reference_stmt): For GIMPLE_GOTO
9841 without LABEL_DECL, set *handled_ops_p to false instead of true.
9842
9843 2016-06-10 Martin Sebor <msebor@redhat.com>
9844
9845 PR c/71392
9846 * builtin-attrs.def (ATTR_NOTHROW_NONNULL_LEAF_LIST): New macro.
9847 (ATTR_NOTHROW_NONNULL_TYPEGENERIC_LEAF): Same.
9848 * builtins.def (BUILT_IN_SADD_OVERFLOW, BUILT_IN_SADDL_OVERFLOW): Use
9849 them.
9850 (BUILT_IN_SADDLL_OVERFLOW, BUILT_IN_SSUB_OVERFLOW): Same.
9851 (BUILT_IN_SSUBL_OVERFLOW, BUILT_IN_SSUBLL_OVERFLOW): Same.
9852 (BUILT_IN_SMUL_OVERFLOW, BUILT_IN_SMULL_OVERFLOW): Same.
9853 (BUILT_IN_SMULLL_OVERFLOW, BUILT_IN_UADD_OVERFLOW): Same.
9854 (BUILT_IN_UADDL_OVERFLOW, BUILT_IN_UADDLL_OVERFLOW): Same.
9855 (BUILT_IN_USUB_OVERFLOW, BUILT_IN_USUBL_OVERFLOW): Same.
9856 (BUILT_IN_USUBLL_OVERFLOW, BUILT_IN_UMUL_OVERFLOW): Same.
9857 (BUILT_IN_UMULL_OVERFLOW, BUILT_IN_UMULLL_OVERFLOW): Same.
9858
9859 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
9860
9861 * config/arm/arm.h (pool_vector_label,
9862 return_used_this_function): Remove.
9863
9864 2016-06-10 Jeff Law <law@redhat.com>
9865
9866 PR tree-optimization/71335
9867 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Filter out
9868 zero length paths here.
9869 (convert_and_register_jump_thread_path): Remove hacks related to
9870 duplicated blocks in the jump thread path.
9871 (fsm_find_control_statement_thread_paths): Avoid putting the same
9872 block on the thread path twice, but ensure the thread path is
9873 unchanged from the caller's point of view.
9874
9875 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
9876
9877 * predict.c (predict_loops): Remove PRED_LOOP_BRANCH.
9878 * predict.def (PRED_LOOP_BRANCH): Remove.
9879
9880 2016-06-10 David Malcolm <dmalcolm@redhat.com>
9881
9882 * Makefile.in (OBJS): Add ggc-tests.o.
9883 (GTFILES): Add ggc-tests.c.
9884 * ggc-tests.c: New file.
9885 * selftest-run-tests.c (selftest::run_tests): Call
9886 selftest::ggc_tests_c_tests.
9887 * selftest.h (selftest::ggc_tests_c_tests): New prototype.
9888
9889 2016-06-10 Alexander Monakov <amonakov@ispras.ru>
9890
9891 * match.pd (-1 / B < A): Use :c to avoid pattern duplication.
9892
9893 2016-06-10 Maxim Ostapenko <m.ostapenko@samsung.com>
9894
9895 PR sanitizer/71480
9896 * varasm.c (place_block_symbol): Adjust alignment for asan protected
9897 STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
9898
9899 2016-06-10 Jan Hubicka <hubicka@ucw.cz>
9900
9901 * profile.c: Include cfgloop.h.
9902 (branch_prob): Compute estimated number of iterations.
9903 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
9904 recompute estimate number of iterations from profile.
9905
9906 2016-06-10 Bernd Edlinger <bernd.edlinger@hotmail.de>
9907
9908 PR inline-asm/68843
9909 * reg-stack.c (check_asm_stack_operands): Explicit input arguments
9910 must be grouped on top of stack. Don't force early clobber
9911 on ordinary reg outputs.
9912
9913 2016-06-10 Richard Biener <rguenther@suse.de>
9914
9915 * targhooks.c (default_builtin_vectorization_cost): Adjust
9916 vec_construct cost.
9917
9918 2016-06-10 Richard Biener <rguenther@suse.de>
9919
9920 * gimple-fold.c (gimple_fold_builtin_memory_op): Make sure
9921 to fold the RHS to a constant if possible.
9922
9923 2016-06-10 Thomas Schwinge <thomas@codesourcery.com>
9924
9925 PR middle-end/71373
9926 * tree-nested.c (convert_nonlocal_omp_clauses)
9927 (convert_local_omp_clauses): Handle OMP_CLAUSE_ASYNC,
9928 OMP_CLAUSE_WAIT, OMP_CLAUSE_INDEPENDENT, OMP_CLAUSE_AUTO,
9929 OMP_CLAUSE__CACHE_, OMP_CLAUSE_TILE.
9930
9931 * gimplify.c (gimplify_adjust_omp_clauses): Discard
9932 OMP_CLAUSE_TILE.
9933 * omp-low.c (scan_sharing_clauses): Don't expect OMP_CLAUSE_TILE.
9934
9935 * omp-low.c (scan_sharing_clauses): Don't expect
9936 OMP_CLAUSE__CACHE_.
9937
9938 2016-06-10 Alan Hayward <alan.hayward@arm.com>
9939
9940 PR tree-optimization/71407
9941 PR tree-optimization/71416
9942 * tree-vect-loop.c (vectorizable_live_operation): Use vectype for
9943 BIT_FIELD_REF type.
9944
9945 2016-06-10 Richard Biener <rguenther@suse.de>
9946
9947 PR middle-end/71477
9948 * cfgloop.c (alloc_loop): Initialize nb_iterations_likely_upper_bound.
9949
9950 2016-06-09 Eric Botcazou <ebotcazou@adacore.com>
9951
9952 * df-problems.c (df_note_bb_compute): Guard use of DF_INSN_INFO_GET.
9953
9954 2016-06-09 Vladimir Makarov <vmakarov@redhat.com>
9955 Jiong Wang <jiong.wang@arm.com>
9956
9957 PR rtl-optimization/70751
9958 * lra-constraints.c (process_alt_operands): Recognize Non-pseudo
9959 spilled into memory.
9960
9961 2016-06-09 Jonathan Yong <10walls@gmail.com>
9962
9963 Revert:
9964 2015-09-21 Jonathan Yong <10walls@gmail.com>
9965
9966 * config/i386/cygwin.h (STARTFILE_SPEC): Explicitly search
9967 sysroot/usr/lib/32api for additional win32 libraries,
9968 fixes failing Cygwin bootstrapping.
9969
9970 2016-06-09 Marcin Baczyński <marbacz@gmail.com>
9971
9972 * diagnostic.h (diagnostic_line_cutoff, diagnostic_flush_buffer):
9973 Delete.
9974
9975 2016-06-09 David Malcolm <dmalcolm@redhat.com>
9976
9977 PR bootstrap/71471
9978 * pretty-print.c (pp_indent): Specify that %p is printed in a
9979 host-dependent manner.
9980 (test_pp_format): Remove the test for %p.
9981
9982 2016-06-09 Maciej W. Rozycki <macro@imgtec.com>
9983
9984 * config/mips/mips.c (mips_output_jump): Fix formatting.
9985
9986 2016-06-09 Richard Biener <rguenther@suse.de>
9987
9988 PR tree-optimization/71462
9989 * tree-ssa-loop-manip.c (find_uses_to_rename): Guard against
9990 removed blocks.
9991
9992 2016-06-09 Martin Liska <mliska@suse.cz>
9993
9994 * predict.c (dump_prediction): Add new argument.
9995 (enum predictor_reason): New enum.
9996 (struct predictor_hash): New struct.
9997 (predictor_hash::hash): New function.
9998 (predictor_hash::equal): Likewise.
9999 (not_removed_prediction_p): New function.
10000 (prune_predictions_for_bb): Likewise.
10001 (combine_predictions_for_bb): Prune predictions.
10002
10003 2016-06-09 Martin Liska <mliska@suse.cz>
10004
10005 * predict.c (filter_predictions): New function.
10006 (remove_predictions_associated_with_edge): Use the filter
10007 function.
10008 (equal_edge_p): New function.
10009
10010 2016-06-09 Stefan Bruens <stefan.bruens@rwth-aachen.de>
10011
10012 * doc/invoke.texi (ARM Options): Use lexicographical ordering.
10013 Correct usage of @samp vs @option, add @samp where appropriate.
10014 Add -march={armv6k,armv6z,arm6zk}, remove -march=ep9312.
10015 Add armv6s-m and document it, as it is no official ARM name.
10016
10017 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10018
10019 * ifcvt.c (struct noce_if_info): Add transform_name field.
10020 (noce_try_move): Set if_info->transform_name to the function name.
10021 (noce_try_ifelse_collapse): Likewise.
10022 (noce_try_store_flag): Likewise.
10023 (noce_try_inverse_constants): Likewise.
10024 (noce_try_store_flag_constants): Likewise.
10025 (noce_try_addcc): Likewise.
10026 (noce_try_store_flag_mask): Likewise.
10027 (noce_try_cmove): Likewise.
10028 (noce_try_cmove_arith): Likewise.
10029 (noce_try_minmax): Likewise.
10030 (noce_try_abs): Likewise.
10031 (noce_try_sign_mask): Likewise.
10032 (noce_try_bitop): Likewise.
10033 (noce_convert_multiple_sets): Likewise.
10034 (noce_process_if_block): Print if_info->transform_name to
10035 dump_file if transformation succeeded.
10036
10037 2016-06-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10038
10039 * config/arm/cortex-a57.md (cortex_a57_alu):
10040 Handle csel type.
10041
10042 2016-06-08 Martin Sebor <msebor@redhat.com>
10043 Jakub Jelinek <jakub@redhat.com>
10044
10045 PR c++/70507
10046 PR c/68120
10047 * builtins.def (BUILT_IN_ADD_OVERFLOW_P, BUILT_IN_SUB_OVERFLOW_P,
10048 BUILT_IN_MUL_OVERFLOW_P): New builtins.
10049 * builtins.c: Include gimple-fold.h.
10050 (fold_builtin_arith_overflow): Handle
10051 BUILT_IN_{ADD,SUB,MUL}_OVERFLOW_P.
10052 (fold_builtin_3): Likewise.
10053 * doc/extend.texi (Integer Overflow Builtins): Document
10054 __builtin_{add,sub,mul}_overflow_p.
10055
10056 2016-06-08 Jose E. Marchesi <jose.marchesi@oracle.com>
10057
10058 * config/sparc/driver-sparc.c (cpu_names): Fix the entry for the
10059 SPARC-M7 and add an entry for SPARC-S7 cpus (Sonoma).
10060
10061 2016-06-08 Alan Lawrence <alan.lawrence@arm.com>
10062
10063 * config/aarch64/aarch64.c (aarch64_function_arg_alignment):
10064 Rewrite, looking one level down for records and arrays.
10065
10066 2016-06-08 David Malcolm <dmalcolm@redhat.com>
10067
10068 * pretty-print.c: Include "selftest.h".
10069 (pp_format): Fix comment.
10070 (identifier_to_locale): Likewise.
10071 (selftest::test_basic_printing): New function.
10072 (selftest::assert_pp_format): New function.
10073 (selftest::test_pp_format): New function.
10074 (selftest::pretty_print_c_tests): New function.
10075 * selftest-run-tests.c (selftest::run_tests): Call
10076 selftest::pretty_print_c_tests.
10077 * selftest.h (pretty_print_c_tests): New declaration.
10078
10079 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10080
10081 * invoke.texi (max-loop-headers-insns): Document.
10082 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): New.
10083 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Update comment.
10084 (ch_base::copy_headers): Use PARAM_MAX_LOOP_HEADER_INSNS.
10085
10086 2016-06-08 Richard Biener <rguenther@suse.de>
10087
10088 * tree-vect-stmts.c (vectorizable_load): Remove restrictions
10089 on strided SLP loads and fall back to scalar loads in case
10090 we can't chunk them.
10091
10092 2016-06-08 Richard Biener <rguenther@suse.de>
10093
10094 PR tree-optimization/71452
10095 * tree-ssa.c (non_rewritable_lvalue_p): Make sure that the
10096 type used for the SSA rewrite has enough precision to cover
10097 the dynamic type of the location.
10098
10099 2016-06-08 Jakub Jelinek <jakub@redhat.com>
10100 Richard Biener <rguenther@suse.de>
10101
10102 PR c++/71448
10103 * fold-const.c (fold_comparison): Handle CONSTANT_CLASS_P (base0)
10104 the same as DECL_P (base0) for indirect_base0. Use equality_code
10105 in one further place.
10106
10107 2016-06-08 Richard Sandiford <richard.sandiford@arm.com>
10108
10109 * expmed.c (store_bit_field_1): Do not restrict a multiword op0
10110 to one word if the field is known to overlap other words.
10111 (extract_bit_field_1): Likewise.
10112 (store_split_bit_field): Remove compensating code.
10113 (extract_split_bit_field): Likewise.
10114
10115 2016-06-08 Bernd Schmidt <bschmidt@redhat.com>
10116
10117 PR debug/71432
10118 PR ada/71413
10119 * tree-ssa-strlen.c (handle_builtin_memcmp): Ignore debug insns.
10120
10121 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10122
10123 * config/aarch64/aarch64-builtins.def (faddp): New builtins for modes in
10124 VDQF.
10125 * config/aarch64/aarch64-simd.md (aarch64_faddp<mode>): New.
10126 (arch64_addpv4sf): Delete.
10127 (reduc_plus_scal_v4sf): Use "gen_aarch64_faddpv4sf" instead of
10128 "gen_aarch64_addpv4sf".
10129 * config/aarch64/arm_neon.h (vpadd_f32): Remove inline assembly. Use
10130 builtin.
10131 (vpadds_f32): Likewise.
10132 (vpaddq_f32): Likewise.
10133 (vpaddq_f64): Likewise.
10134
10135 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10136
10137 * config/aarch64/aarch64-builtins.def (fabd): New builtins for modes
10138 VALLF.
10139 * config/aarch64/aarch64-simd.md (fabd<mode>_3): Extend modes from VDQF
10140 to VALLF. Rename to "fabd<mode>3".
10141 "*fabd_scalar<mode>3): Delete.
10142 * config/aarch64/arm_neon.h (vabds_f32): Remove inline assembly.
10143 Use builtin.
10144 (vabdd_f64): Likewise.
10145 (vabd_f32): Likewise.
10146 (vabd_f64): Likewise.
10147 (vabdq_f32): Likewise.
10148 (vabdq_f64): Likewise.
10149
10150 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10151
10152 * config/aarch64/aarch64-builtins.def (rsqrts): New builtins for modes
10153 VALLF.
10154 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_<mode>3): Rename to
10155 "aarch64_rsqrts<mode>".
10156 * config/aarch64/aarch64.c (get_rsqrts_type): Update gen* name.
10157 * config/aarch64/arm_neon.h (vrsqrtss_f32): Remove inline assembly. Use
10158 builtin.
10159 (vrsqrtsd_f64): Likewise.
10160 (vrsqrts_f32): Likewise.
10161 (vrsqrts_f64): Likewise.
10162 (vrsqrtsq_f32): Likewise.
10163 (vrsqrtsq_f64): Likewise.
10164
10165 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10166
10167 * config/aarch64/aarch64-builtins.def (rsqrte): New builtins for modes
10168 VALLF.
10169 * config/aarch64/aarch64-simd.md (aarch64_rsqrte_<mode>2): Rename to
10170 "aarch64_rsqrte<mode>".
10171 * config/aarch64/aarch64.c (get_rsqrte_type): Update gen* name.
10172 * config/aarch64/arm_neon.h (vrsqrts_f32): Remove inline assembly. Use
10173 builtin.
10174 (vrsqrted_f64): Likewise.
10175 (vrsqrte_f32): Likewise.
10176 (vrsqrte_f64): Likewise.
10177 (vrsqrteq_f32): Likewise.
10178 (vrsqrteq_f64): Likewise.
10179
10180 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10181
10182 * config/aarch64/aarch64-builtins.def (scvtf): Register vector modes.
10183 (ucvtf): Likewise.
10184 (fcvtzs): Likewise.
10185 (fcvtzu): Likewise.
10186 * config/aarch64/aarch64-simd.md
10187 (<FCVT_F2FIXED:fcvt_fixed_insn><VDQF:mode>3): New.
10188 (<FCVT_FIXED2F:fcvt_fixed_insn><VDQ_SDI:mode>3): Likewise.
10189 * config/aarch64/arm_neon.h (vcvt_n_f32_s32): Remove inline assembly.
10190 Use builtin.
10191 (vcvt_n_f32_u32): Likewise.
10192 (vcvt_n_s32_f32): Likewise.
10193 (vcvt_n_u32_f32): Likewise.
10194 (vcvtq_n_f32_s32): Likewise.
10195 (vcvtq_n_f32_u32): Likewise.
10196 (vcvtq_n_f64_s64): Likewise.
10197 (vcvtq_n_f64_u64): Likewise.
10198 (vcvtq_n_s32_f32): Likewise.
10199 (vcvtq_n_s64_f64): Likewise.
10200 (vcvtq_n_u32_f32): Likewise.
10201 (vcvtq_n_u64_f64): Likewise.
10202 * config/aarch64/iterators.md (VDQ_SDI): New mode iterator.
10203 (VSDQ_SDI): Likewise.
10204 (fcvt_target): Support V4DI, V4SI and V2SI.
10205 (FCVT_TARGET): Likewise.
10206
10207 2016-06-08 Jiong Wang <jiong.wang@arm.com>
10208
10209 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_USS): New
10210 (TYPES_BINOP_SUS): Likewise.
10211 (aarch64_simd_builtin_data): Update include file name.
10212 (aarch64_builtins): Likewise.
10213 * config/aarch64/aarch64-simd-builtins.def (scvtf): New entries
10214 for conversion between scalar float-point and fixed-point.
10215 (ucvtf): Likewise.
10216 (fcvtzs): Likewise.
10217 (fcvtzu): Likewise.
10218 * config/aarch64/aarch64.md
10219 (<FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3: New
10220 pattern for conversion between scalar float to fixed-pointer.
10221 (<FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>: Likewise.
10222 (UNSPEC_FCVTZS): New UNSPEC enumeration.
10223 (UNSPEC_FCVTZU): Likewise.
10224 (UNSPEC_SCVTF): Likewise.
10225 (UNSPEC_UCVTF): Likewise.
10226 * config/aarch64/arm_neon.h (vcvtd_n_f64_s64): Remove inline assembly.
10227 Use builtin.
10228 (vcvtd_n_f64_u64): Likewise.
10229 (vcvtd_n_s64_f64): Likewise.
10230 (vcvtd_n_u64_f64): Likewise.
10231 (vcvtd_n_f32_s32): Likewise.
10232 (vcvts_n_f32_u32): Likewise.
10233 (vcvtd_n_s32_f32): Likewise.
10234 (vcvts_n_u32_f32): Likewise.
10235 * config/aarch64/iterators.md (fcvt_target): Support integer to float
10236 mapping.
10237 (FCVT_TARGET): Likewise.
10238 (FCVT_FIXED2F): New iterator.
10239 (FCVT_F2FIXED): Likewise.
10240 (fcvt_fixed_insn): New define_int_attr.
10241
10242 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10243
10244 * predict.c (pass_strip_predict_hints::execute): Cleanup CFG if
10245 some statements was removed.
10246
10247 2016-06-08 Alan Hayward <alan.hayward@arm.com>
10248
10249 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove debug newline.
10250 * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): likewise.
10251 (vect_can_advance_ivs_p): likewise.
10252 (vect_update_ivs_after_vectorizer): likewise.
10253 * tree-vect-loop.c (vect_determine_vectorization_factor): likewise.
10254 (vect_analyze_scalar_cycles_1): likewise.
10255 (vect_analyze_loop_operations): likewise.
10256 (report_vect_op): likewise.
10257 (vect_is_slp_reduction): likewise.
10258 (vect_is_simple_reduction): likewise.
10259 (get_initial_def_for_induction): likewise.
10260 (vect_transform_loop): likewise.
10261 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): likewise.
10262 (vect_recog_sad_pattern): likewise.
10263 (vect_recog_widen_sum_pattern): likewise.
10264 (vect_recog_widening_pattern): likewise.
10265 (vect_recog_divmod_pattern): likewise.
10266 * tree-vect-slp.c (vect-build-slp_tree_1): likewise.
10267 (vect_analyze_slp_instance): likewise.
10268 (vect_transform_slp_perm_load): likewise.
10269 (vect_schedule_slp_instance): likewise.
10270
10271 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10272
10273 * predict.c (predict_iv_comparison): Mention that heuristics is broken.
10274 (return_prediction): PRED_CONST_RETURN predict return as not taken.
10275 * predict.def (PRED_CONTINUE): Change hitrate 50->67
10276 (PRED_LOOP_BRANCH): Document predictor as broken.
10277 (PRED_LOOP_EXIT): Change hitrate 91->92.
10278 (PRED_LOOP_EXTRA_EXIT): Change hitrate 91->83.
10279 (PRED_POINTER, PRED_TREE_POINTER): Change hitrate 85->70.
10280 (PRED_OPCODE_POSITIVE): Change hitrate 79->64.
10281 (PRED_OPCODE_NONEQUAL): Change hitrate 91->66.
10282 (PRED_TREE_OPCODE_POSITIVE): Change hitrate 73->64
10283 (PRED_TREE_OPCODE_NONEQUAL): Chnage hitrate 72->66
10284 (PRED_CALL): Chane hitrate 71->67.
10285 (PRED_TREE_EARLY_RETURN): Document issues, change hitrate 61->54.
10286 (PRED_GOTO): Document as unused right now.
10287 (PRED_CONST_RETURN): Change hitrate 67->69
10288 (PRED_NEGATIVE_RETURN): Change hitrate 96->98
10289 (PRED_NULL_RETURN): Change hitrate 91->90.
10290 (PRED_LOOP_IV_COMPARE_GUESS): Change hitrate to 98.
10291 (PRED_FORTRAN_FAIL_ALLOC): Change hitrate to 62; document issues.
10292 (PRED_FORTRAN_SIZE_ZERO): Change hitrate to 99.
10293
10294 2016-06-07 Bill Seurer <seurer@linux.vnet.ibm.com>
10295
10296 * config/rs6000/altivec.h: Add __builtin_vec_mul.
10297 * config/rs6000/rs6000-builtin.def (vec_mul): Change vec_mul to a
10298 special case Altivec builtin.
10299 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
10300 VSX_BUILTIN_VEC_MUL (replaced with special case code).
10301 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
10302 code for ALTIVEC_BUILTIN_VEC_MUL.
10303 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
10304 for __builtin_vec_mul.
10305
10306 2016-06-07 Peter Bergner <bergner@vnet.ibm.com>
10307
10308 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mhtm and
10309 -mno-htm.
10310
10311 2016-06-07 David Malcolm <dmalcolm@redhat.com>
10312
10313 * spellcheck.c (selftest::test_find_closest_string): New function.
10314 (spellcheck_c_tests): Call the above.
10315
10316 2016-06-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10317
10318 * simplify-rtx.c (simplify_cond_clz_ctz): Delete 'mode' local variable.
10319
10320 2016-06-07 Jakub Jelinek <jakub@redhat.com>
10321
10322 * config/i386/sse.md (avx_vec_concat<mode>): Add v=v,vm and
10323 Yv=Yv,C alternatives.
10324
10325 2016-06-07 Richard Biener <rguenther@suse.de>
10326
10327 PR c/61564
10328 * common.opt (ffast-math): Make Optimization.
10329
10330 2016-06-07 Simon Dardis <simon.dardis@imgtec.com>
10331 Prachi Godbole <prachi.godbole@imgtec.com>
10332
10333 * config/mips/p5600.md (p5600_fpu_fadd): Remove checking for
10334 `fabs' and `fneg' type attributes.
10335 (p5600_fpu_fabs): Add `fmove' to the comment.
10336
10337 2016-06-07 Jan Hubicka <hubicka@ucw.cz>
10338
10339 * gimple.c: Include builtins.h
10340 (gimple_inexpensive_call_p): New function.
10341 * gimple.h (gimple_inexpensive_call_p): Declare.
10342 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use it.
10343 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise;
10344 fix formatting.
10345
10346 2016-06-07 Paolo Carlini <paolo.carlini@oracle.com>
10347
10348 * diagnostic.c (diagnostic_impl, diagnostic_n_impl): New.
10349 (inform, inform_at_rich_loc, inform_n, warning, warning_at,
10350 warning_at_rich_loc, warning_n, pedwarn, permerror,
10351 permerror_at_rich_loc, error, error_n, error_at, error_at_rich_loc,
10352 sorry, fatal_error, internal_error, internal_error_no_backtrace):
10353 Use the above.
10354
10355 2016-06-07 Richard Biener <rguenther@suse.de>
10356
10357 PR tree-optimization/71428
10358 * tree-ssa-math-opts.c (perform_symbolic_merge): Properly distinguish
10359 BIT_FIELD_REF op vs. load.
10360
10361 2016-06-07 Richard Biener <rguenther@suse.de>
10362
10363 PR middle-end/71423
10364 * match.pd ((X | ~Y) -> Y <= X): Properly invert the comparison
10365 for signed ops.
10366
10367 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
10368
10369 * config/pa/pa.md (call): Generate indirect long calls to non-local
10370 functions on TARGET_64BIT.
10371 (call_value): Likewise.
10372
10373 2016-06-06 John David Anglin <danglin@gcc.gnu.org>
10374
10375 * config/pa/pa.md (call_val_reg_64bit): Remove "reg: DI " clobber from
10376 pattern and subsequent splitters.
10377 (call_val_reg_64bit_post_reload): Likewise.
10378
10379 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
10380
10381 PR middle-end/71408
10382 * tree-ssa-reassoc.c (zero_one_operation): Fix NEGATE_EXPR operand for
10383 propagate_op_to_single_use.
10384
10385 2016-06-07 Kugan Vivekanandarajah <kuganv@linaro.org>
10386
10387 PR middle-end/71281
10388 * tree-ssa-reassoc.c (reassociate_bb): Set uid for negate stmt.
10389
10390 2016-06-07 Uros Bizjak <ubizjak@gmail.com>
10391
10392 * config/i386/i386.h (enum ix86_enitity): Add X86_DIRFLAG.
10393 (enum x86_dirflag_state): New enum.
10394 (NUM_MODES_FOR_MODE_SWITCHING): Add X86_DIRFLAG_ANY.
10395 (machine_function): Remove needs_cld.
10396 (ix86_current_function_needs_cld): Remove.
10397 * config/i386/i386.c (ix86_set_func_type): Set
10398 ix86_optimize_mode_switching[X86_DIRFLAG] to 1.
10399 (ix86_expand_prologue): Do not emit CLD here.
10400 (ix86_dirflag_mode_needed): New function.
10401 (ix86_dirflag_mode_entry): Ditto.
10402 (ix86_mode_needed): Handle X86_DIRFLAG entity.
10403 (ix86_mode_after): Ditto.
10404 (ix86_mode_entry): Ditto.
10405 (ix86_mode_exit): Ditto.
10406 (ix86_emit_mode_set): Ditto.
10407 * config/i386/i386.md (strmov_singleop): Set
10408 ix86_optimize_mode_switching[X86_DIRFLAG] to 1 for TARGET_CLD.
10409 Do not set ix86_current_function_needs_cld.
10410 (rep_mov): Ditto.
10411 (strset_singleop): Ditto.
10412 (rep_stos): Ditto.
10413 (cmpstrnqi_nz_1): Ditto.
10414 (cmpstrnqi_1): Ditto.
10415 (strlenqi_1): Ditto.
10416
10417 2016-06-06 Jakub Jelinek <jakub@redhat.com>
10418
10419 PR tree-optimization/71259
10420 * tree-vect-slp.c (vect_get_constant_vectors): For
10421 VECTOR_BOOLEAN_TYPE_P, return all ones constant instead of
10422 one for constant op, and use COND_EXPR for non-constant.
10423
10424 2016-06-06 David Malcolm <dmalcolm@redhat.com>
10425
10426 * Makefile.in (OBJS): Add function-tests.o,
10427 hash-map-tests.o, hash-set-tests.o, rtl-tests.o,
10428 selftest-run-tests.o.
10429 (OBJS-libcommon): Add selftest.o.
10430 (OBJS-libcommon-target): Add selftest.o.
10431 (all.internal): Add "selftest".
10432 (all.cross): Likewise.
10433 (selftest): New phony target.
10434 (s-selftest): New target.
10435 (selftest-gdb): New phony target.
10436 (COLLECT2_OBJS): Add selftest.o.
10437 * bitmap.c: Include "selftest.h".
10438 (selftest::test_gc_alloc): New function.
10439 (selftest::test_set_range): New function.
10440 (selftest::test_clear_bit_in_middle): New function.
10441 (selftest::test_copying): New function.
10442 (selftest::test_bitmap_single_bit_set_p): New function.
10443 (selftest::bitmap_c_tests): New function.
10444 * common.opt (fself-test): New.
10445 * diagnostic-show-locus.c: Include "selftest.h".
10446 (make_range): New function.
10447 (test_range_contains_point_for_single_point): New function.
10448 (test_range_contains_point_for_single_line): New function.
10449 (test_range_contains_point_for_multiple_lines): New function.
10450 (assert_eq): New function.
10451 (test_get_line_width_without_trailing_whitespace): New function.
10452 (selftest::diagnostic_show_locus_c_tests): New function.
10453 * et-forest.c: Include "selftest.h".
10454 (selftest::test_single_node): New function.
10455 (selftest::test_simple_tree): New function.
10456 (selftest::test_disconnected_nodes): New function.
10457 (selftest::et_forest_c_tests): New function.
10458 * fold-const.c: Include "selftest.h".
10459 (selftest::assert_binop_folds_to_const): New function.
10460 (selftest::assert_binop_folds_to_nonlvalue): New function.
10461 (selftest::test_arithmetic_folding): New function.
10462 (selftest::fold_const_c_tests): New function.
10463 * function-tests.c: New file.
10464 * gimple.c: Include "selftest.h".
10465 Include "gimple-pretty-print.h".
10466 (selftest::verify_gimple_pp): New function.
10467 (selftest::test_assign_single): New function.
10468 (selftest::test_assign_binop): New function.
10469 (selftest::test_nop_stmt): New function.
10470 (selftest::test_return_stmt): New function.
10471 (selftest::test_return_without_value): New function.
10472 (selftest::gimple_c_tests): New function.
10473 * hash-map-tests.c: New file.
10474 * hash-set-tests.c: New file.
10475 * input.c: Include "selftest.h".
10476 (selftest::assert_loceq): New function.
10477 (selftest::test_accessing_ordinary_linemaps): New function.
10478 (selftest::test_unknown_location): New function.
10479 (selftest::test_builtins): New function.
10480 (selftest::test_reading_source_line): New function.
10481 (selftest::input_c_tests): New function.
10482 * rtl-tests.c: New file.
10483 * selftest-run-tests.c: New file.
10484 * selftest.c: New file.
10485 * selftest.h: New file.
10486 * spellcheck.c: Include "selftest.h".
10487 (selftest::levenshtein_distance_unit_test_oneway): New function,
10488 adapted from testsuite/gcc.dg/plugin/levenshtein_plugin.c.
10489 (selftest::levenshtein_distance_unit_test): Likewise.
10490 (selftest::spellcheck_c_tests): Likewise.
10491 * toplev.c: Include selftest.h.
10492 (toplev::run_self_tests): New.
10493 (toplev::main): Handle -fself-test.
10494 * toplev.h (toplev::run_self_tests): New.
10495 * tree.c: Include "selftest.h".
10496 (selftest::test_integer_constants): New function.
10497 (selftest::test_identifiers): New function.
10498 (selftest::test_labels): New function.
10499 (selftest::tree_c_tests): New function.
10500 * tree-cfg.c: Include "selftest.h".
10501 (selftest::push_fndecl): New function.
10502 (selftest::test_linear_chain): New function.
10503 (selftest::test_diamond): New function.
10504 (selftest::test_fully_connected): New function.
10505 (selftest::tree_cfg_c_tests): New function.
10506 * vec.c: Include "selftest.h".
10507 (selftest::safe_push_range): New function.
10508 (selftest::test_quick_push): New function.
10509 (selftest::test_safe_push): New function.
10510 (selftest::test_truncate): New function.
10511 (selftest::test_safe_grow_cleared): New function.
10512 (selftest::test_pop): New function.
10513 (selftest::test_safe_insert): New function.
10514 (selftest::test_ordered_remove): New function.
10515 (selftest::test_unordered_remove): New function.
10516 (selftest::test_block_remove): New function.
10517 (selftest::reverse_cmp): New function.
10518 (selftest::test_qsort): New function.
10519 (selftest::vec_c_tests): New function.c.
10520 * wide-int.cc: Include selftest.h and wide-int-print.h.
10521 (selftest::from_int <wide_int>): New function.
10522 (selftest::from_int <offset_int>): New function.
10523 (selftest::from_int <widest_int>): New function.
10524 (selftest::assert_deceq): New function.
10525 (selftest::assert_hexeq): New function.
10526 (selftest::test_printing <VALUE_TYPE>): New function template.
10527 (selftest::test_ops <VALUE_TYPE>): New function template.
10528 (selftest::test_comparisons <VALUE_TYPE>): New function template.
10529 (selftest::run_all_wide_int_tests <VALUE_TYPE>): New function
10530 template.
10531 (selftest::wide_int_cc_tests): New function.
10532
10533 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10534
10535 PR middle-end/37780
10536 * ifcvt.c (noce_try_ifelse_collapse): New function.
10537 Declare prototype.
10538 (noce_process_if_block): Call noce_try_ifelse_collapse.
10539 * simplify-rtx.c (simplify_cond_clz_ctz): New function.
10540 (simplify_ternary_operation): Use the above to simplify
10541 conditional CLZ/CTZ expressions.
10542
10543 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10544
10545 PR middle-end/37780
10546 * config/aarch64/aarch64.md (ctz<mode>2): Convert to
10547 define_insn_and_split.
10548
10549 2016-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10550
10551 PR middle-end/37780
10552 * config/arm/arm.md (ctzsi2): Convert to define_insn_and_split.
10553
10554 2016-06-06 Bernd Edlinger <bernd.edlinger@hotmail.de>
10555
10556 PR c/24414
10557 * cfgexpand.c (expand_asm_loc): Remove handling for ADDR_EXPR.
10558 Implicitly clobber memory for basic asm with non-empty assembler
10559 string. Use targetm.md_asm_adjust also here.
10560 * compare-elim.c (arithmetic_flags_clobber_p): Use asm_noperands here.
10561 * final.c (final_scan_insn): Handle basic asm in PARALLEL block.
10562 * gimple.c (gimple_asm_clobbers_memory_p): Handle basic asm with
10563 non-empty assembler string.
10564 * ira.c (compute_regs_asm_clobbered): Use asm_noperands here.
10565 * recog.c (asm_noperands): Handle basic asm in PARALLEL block.
10566 (decode_asm_operands): Handle basic asm in PARALLEL block.
10567 (extract_insn): Handle basic asm in PARALLEL block.
10568 * doc/extend.texi: Mention new behavior of basic asm.
10569 * config/ia64/ia64 (rtx_needs_barrier): Handle ASM_INPUT here.
10570 * config/pa/pa.c (branch_to_delay_slot_p, branch_needs_nop_p,
10571 branch_needs_nop_p): Use asm_noperands.
10572
10573 2016-06-06 Jose E. Marchesi <jose.marchesi@oracle.com>
10574
10575 * config/sparc/sparc.md (cpu): Add niagara7 cpu type.
10576 Include the M7 SPARC DFA scheduler.
10577 New attribute v3pipe.
10578 Annotate insns with v3pipe where appropriate.
10579 Define cpu_feature vis4.
10580 Add lzd instruction type and set it on clzdi_sp64 and clzsi_sp64.
10581 Add (V8QI "8") to vbits.
10582 Add insns {add,sub}v8qi3
10583 Add insns ss{add,sub}v8qi3
10584 Add insns us{add,sub}{v8qi,v4hi}3
10585 Add insns {min,max}{v8qi,v4hi,v2si}3
10586 Add insns {minu,maxu}{v8qi,v4hi,v2si}3
10587 Add insns fpcmp{le,gt,ule,ug,ule,ugt}{8,16,32}_vis.
10588 * config/sparc/niagara4.md: Add a comment explaining the
10589 discrepancy between the documented latenty numbers and the
10590 implemented ones.
10591 * config/sparc/niagara7.md: New file.
10592 * configure.ac (HAVE_AS_SPARC5_VIS4): Define if the assembler
10593 supports SPARC5 and VIS 4.0 instructions.
10594 * configure: Regenerate.
10595 * config.in: Likewise.
10596 * config.gcc: niagara7 is a supported cpu in sparc*-*-* targets.
10597 * config/sparc/sol2.h (ASM_CPU32_DEFAUILT_SPEC): Set for
10598 TARGET_CPU_niagara7.
10599 (ASM_CPU64_DEFAULT_SPEC): Likewise.
10600 (CPP_CPU_SPEC): Handle niagara7.
10601 (ASM_CPU_SPEC): Likewise.
10602 * config/sparc/sparc-opts.h (processor_type): Add
10603 PROCESSOR_NIAGARA7.
10604 (mvis4): New option.
10605 * config/sparc/sparc.h (TARGET_CPU_niagara7): Define.
10606 (AS_NIAGARA7_FLAG): Define.
10607 (ASM_CPU64_DEFAULT_SPEC): Set for niagara7.
10608 (CPP_CPU64_DEFAULT_SPEC): Likewise.
10609 (CPP_CPU_SPEC): Handle niagara7.
10610 (ASM_CPU_SPEC): Likewise.
10611 * config/sparc/sparc.c (niagara7_costs): Define.
10612 (sparc_option_override): Handle niagara7 and adjust cache-related
10613 parameters with better values for niagara cpus. Also support VIS4.
10614 (sparc32_initialize_trampoline): Likewise.
10615 (sparc_use_sched_lookahead): Likewise.
10616 (sparc_issue_rate): Likewise.
10617 (sparc_register_move_cost): Likewise.
10618 (dump_target_flag_bits): Support VIS4.
10619 (sparc_vis_init_builtins): Likewise.
10620 (sparc_builtins): Likewise.
10621 * config/sparc/sparc-c.c (sparc_target_macros): Define __VIS__ for
10622 VIS4 4.0.
10623 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-M7 and
10624 UltraSparc M7.
10625 * config/sparc/sparc.opt (sparc_processor_type): New value
10626 niagara7.
10627 * config/sparc/visintrin.h (__attribute__): Prototypes for the
10628 VIS4 builtins.
10629 * doc/invoke.texi (SPARC Options): Document -mcpu=niagara7 and
10630 -mvis4.
10631 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
10632 VIS4 builtins.
10633
10634 2016-06-06 Jonathan Wakely <jwakely@redhat.com>
10635
10636 * doc/sourcebuild.texi (Directives): Remove extra closing braces.
10637
10638 2016-06-06 Richard Biener <rguenther@suse.de>
10639
10640 PR tree-optimization/71398
10641 * tree-ssa-loop-ivcanon.c (unloop_loops): First unloop, then
10642 remove edges.
10643
10644 2016-06-05 James Bowman <james.bowman@ftdichip.com>
10645
10646 * config/ft32/ft32.c (ft32_setup_incoming_varargs,
10647 ft32_expand_prolog, ft32_expand_epilogue):
10648 Handle pretend_args.
10649 * config/ft32/ft32.h: Remove OUTGOING_REG_PARM_STACK_SPACE.
10650 * config/ft32/ft32.md: Add pretend_returner.
10651
10652 2016-06-06 Uros Bizjak <ubizjak@gmail.com>
10653
10654 PR target/71389
10655 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
10656 Copy op1 RTX to avoid invalid sharing.
10657 (ix86_expand_vector_move_misalign): Ditto.
10658
10659 2016-06-05 John David Anglin <danglin@gcc.gnu.org>
10660
10661 * expr.c (move_by_pieces_d::generate): Mark mode parameter with
10662 ATTRIBUTE_UNUSED.
10663
10664 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
10665
10666 * predict.c (predicted_by_loop_heuristics_p): New function.
10667 (predict_iv_comparison): Use it.
10668 (predict_loops): Walk from innermost loops; do not predict edges
10669 leaving multiple loops multiple times; implement
10670 PRED_LOOP_ITERATIONS_MAX heuristics.
10671 * predict.def (PRED_LOOP_ITERATIONS_MAX): New predictor.
10672
10673 2016-06-05 Jan Hubicka <hubicka@ucw.cz>
10674
10675 * cfg.c (check_bb_profile): Do not report mismatched profiles when
10676 only edges out of BB are EH edges.
10677
10678 2016-06-04 Martin Sebor <msebor@redhat.com>
10679 Marcin Baczyński <marbacz@gmail.com>
10680
10681 PR c/48116
10682 * doc/invoke.texi (-Wreturn-type): Mention not warning on return with
10683 a void expression in a void function.
10684
10685 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
10686
10687 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Do not check
10688 aux; dump reasons of decisions.
10689 (should_duplicate_loop_header_p): Likewise.
10690 (do_while_loop_p): Likewise.
10691 (ch_base::copy_headers): Dump asi num insns duplicated.
10692
10693 2016-06-04 Jakub Jelinek <jakub@redhat.com>
10694
10695 PR tree-optimization/71405
10696 * tree-ssa.c (execute_update_addresses_taken): For clobber with
10697 incompatible type, build a new clobber with the right type instead
10698 of building a VIEW_CONVERT_EXPR around it.
10699
10700 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
10701
10702 PR tree-optimization/52171
10703 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p): Use
10704 by_pieces_ninsns instead of move_by_pieces_ninsns.
10705
10706 2016-06-04 Oleg Endo <olegendo@gcc.gnu.org>
10707
10708 * config/sh/sh.c (sh_print_operand_address): Don't use hardcoded 'r0'
10709 for reg+reg addressing mode.
10710
10711 2016-06-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10712
10713 * rs6000-c.c (c/c-tree.h): Add #include.
10714 (altivec_resolve_overloaded_builtin): Handle ARRAY_TYPE arguments
10715 in C++ when found in the base position of vec_ld or vec_st.
10716
10717 2016-06-03 Jan Hubicka <hubicka@ucw.cz>
10718
10719 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Avoid
10720 use of profile unless profile status is PROFILE_READ.
10721 * profile.c (compute_branch_probabilities): Set profile status
10722 only after reporting predictor hitrates.
10723
10724 2016-06-03 Joseph Myers <joseph@codesourcery.com>
10725
10726 PR target/71276
10727 PR target/71277
10728 * common.opt (ffp-int-builtin-inexact): New option.
10729 * doc/invoke.texi (-fno-fp-int-builtin-inexact): Document.
10730 * doc/md.texi (floor@var{m}2, btrunc@var{m}2, round@var{m}2)
10731 (ceil@var{m}2): Document dependence on this option.
10732 * ipa-inline-transform.c (inline_call): Handle
10733 flag_fp_int_builtin_inexact.
10734 * ipa-inline.c (can_inline_edge_p): Likewise.
10735 * config/i386/i386.md (rintxf2): Do not test
10736 flag_unsafe_math_optimizations.
10737 (rint<mode>2_frndint): New define_insn.
10738 (rint<mode>2): Do not test flag_unsafe_math_optimizations for 387
10739 or !flag_trapping_math for SSE. Just use gen_rint<mode>2_frndint
10740 for 387 instead of extending and truncating.
10741 (frndintxf2_<rounding>): Test flag_fp_int_builtin_inexact ||
10742 !flag_trapping_math instead of flag_unsafe_math_optimizations.
10743 Change to frndint<mode>2_<rounding>.
10744 (frndintxf2_<rounding>_i387): Likewise. Change to
10745 frndint<mode>2_<rounding>_i387.
10746 (<rounding_insn>xf2): Likewise.
10747 (<rounding_insn><mode>2): Test flag_fp_int_builtin_inexact ||
10748 !flag_trapping_math instead of flag_unsafe_math_optimizations for
10749 x87. Test TARGET_ROUND || !flag_trapping_math ||
10750 flag_fp_int_builtin_inexact instead of !flag_trapping_math for
10751 SSE. Use ROUND_NO_EXC in constant operand of
10752 gen_sse4_1_round<mode>2. Just use gen_frndint<mode>2_<rounding>
10753 for 387 instead of extending and truncating.
10754
10755 2016-06-03 H.J. Lu <hongjiu.lu@intel.com>
10756 Julia Koval <julia.koval@intel.com>
10757
10758 PR target/66960
10759 PR target/67630
10760 PR target/67634
10761 PR target/67841
10762 PR target/68037
10763 PR target/68618
10764 PR target/68661
10765 PR target/69575
10766 PR target/69596
10767 PR target/69734
10768 * config/i386/i386-protos.h (ix86_epilogue_uses): New prototype.
10769 * config/i386/i386.c (ix86_conditional_register_usage): Preserve
10770 all registers, except for function return registers if there are
10771 no caller-saved registers.
10772 (ix86_set_func_type): New function.
10773 (ix86_set_current_function): Call ix86_set_func_type to set
10774 no_caller_saved_registers and func_type. Call reinit_regs if
10775 caller-saved registers are changed. Don't allow MPX, SSE, MMX
10776 nor x87 instructions in interrupt handler nor function with
10777 no_caller_saved_registers attribute.
10778 (ix86_function_ok_for_sibcall): Return false if there are no
10779 caller-saved registers.
10780 (type_natural_mode): Don't warn ABI change for MMX in interrupt
10781 handler.
10782 (ix86_function_arg_advance): Skip for callee in interrupt handler.
10783 (ix86_function_arg): Return special arguments in interrupt handler.
10784 (ix86_promote_function_mode): Promote pointer to word_mode only
10785 for normal functions.
10786 (ix86_can_use_return_insn_p): Don't use `ret' instruction in
10787 interrupt handler.
10788 (ix86_epilogue_uses): New function.
10789 (ix86_hard_regno_scratch_ok): Likewise.
10790 (ix86_save_reg): Preserve all registers in interrupt handler
10791 after reload. Preserve all registers, except for function return
10792 registers, if there are no caller-saved registers after reload.
10793 (find_drap_reg): Always use callee-saved register if there are
10794 no caller-saved registers.
10795 (ix86_minimum_incoming_stack_boundary): Return MIN_STACK_BOUNDARY
10796 for interrupt handler.
10797 (ix86_expand_prologue): Don't allow DRAP in interrupt handler.
10798 Emit cld instruction if stringops are used in interrupt handler
10799 or interrupt handler isn't a leaf function.
10800 (ix86_expand_epilogue): Generate interrupt return for interrupt
10801 handler and pop the 'ERROR_CODE' off the stack before interrupt
10802 return in exception handler.
10803 (ix86_expand_call): Disallow calling interrupt handler directly.
10804 If there are no caller-saved registers, mark all registers that
10805 are clobbered by the call which returns as clobbered.
10806 (ix86_handle_no_caller_saved_registers_attribute): New function.
10807 (ix86_handle_interrupt_attribute): Likewise.
10808 (ix86_attribute_table): Add interrupt and no_caller_saved_registers
10809 attributes.
10810 (TARGET_HARD_REGNO_SCRATCH_OK): Likewise.
10811 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use argument
10812 accumulation in interrupt function if stack may be realigned to
10813 avoid DRAP.
10814 (EPILOGUE_USES): New.
10815 (function_type): New enum.
10816 (machine_function): Add func_type and no_caller_saved_registers.
10817 * config/i386/i386.md (UNSPEC_INTERRUPT_RETURN): New.
10818 (interrupt_return): New pattern.
10819 * doc/extend.texi: Document x86 interrupt and
10820 no_caller_saved_registers attributes.
10821
10822 2016-06-03 Bernd Schmidt <bschmidt@redhat.com>
10823
10824 PR tree-optimization/52171
10825 * builtins.c (expand_cmpstrn_or_cmpmem): Delete, moved elsewhere.
10826 (expand_builtin_memcmp): New arg RESULT_EQ. All callers changed.
10827 Look for constant strings. Move some code to emit_block_cmp_hints
10828 and use it.
10829 * builtins.def (BUILT_IN_MEMCMP_EQ): New.
10830 * defaults.h (COMPARE_MAX_PIECES): New macro.
10831 * expr.c (move_by_pieces_d, store_by_pieces_d): Remove old structs.
10832 (move_by_pieces_1, store_by_pieces_1, store_by_pieces_2): Remvoe.
10833 (clear_by_pieces_1): Don't declare. Move definition before use.
10834 (can_do_by_pieces): New static function.
10835 (can_move_by_pieces): Use it. Return bool.
10836 (by_pieces_ninsns): Renamed from move_by_pieces_ninsns. New arg
10837 OP. All callers changed. Handle COMPARE_BY_PIECES.
10838 (class pieces_addr); New.
10839 (pieces_addr::pieces_addr, pieces_addr::decide_autoinc,
10840 pieces_addr::adjust, pieces_addr::increment_address,
10841 pieces_addr::maybe_predec, pieces_addr::maybe_postinc): New member
10842 functions for it.
10843 (class op_by_pieces_d): New.
10844 (op_by_pieces_d::op_by_pieces_d, op_by_pieces_d::run): New member
10845 functions for it.
10846 (class move_by_pieces_d, class compare_by_pieces_d,
10847 class store_by_pieces_d): New subclasses of op_by_pieces_d.
10848 (move_by_pieces_d::prepare_mode, move_by_pieces_d::generate,
10849 move_by_pieces_d::finish_endp, store_by_pieces_d::prepare_mode,
10850 store_by_pieces_d::generate, store_by_pieces_d::finish_endp,
10851 compare_by_pieces_d::generate, compare_by_pieces_d::prepare_mode,
10852 compare_by_pieces_d::finish_mode): New member functions.
10853 (compare_by_pieces, emit_block_cmp_via_cmpmem): New static
10854 functions.
10855 (expand_cmpstrn_or_cmpmem): Moved here from builtins.c.
10856 (emit_block_cmp_hints): New function.
10857 (move_by_pieces, store_by_pieces, clear_by_pieces): Rewrite to just
10858 use the newly defined classes.
10859 * expr.h (by_pieces_constfn): New typedef.
10860 (can_store_by_pieces, store_by_pieces): Use it in arg declarations.
10861 (emit_block_cmp_hints, expand_cmpstrn_or_cmpmem): Declare.
10862 (move_by_pieces_ninsns): Don't declare.
10863 (can_move_by_pieces): Change return value to bool.
10864 * target.def (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Update docs.
10865 (compare_by_pieces_branch_ratio): New hook.
10866 * target.h (enum by_pieces_operation): Add COMPARE_BY_PIECES.
10867 (by_pieces_ninsns): Declare.
10868 * targethooks.c (default_use_by_pieces_infrastructure_p): Handle
10869 COMPARE_BY_PIECES.
10870 (default_compare_by_pieces_branch_ratio): New function.
10871 * targhooks.h (default_compare_by_pieces_branch_ratio): Declare.
10872 * doc/tm.texi.in (STORE_MAX_PIECES, COMPARE_MAX_PIECES): Document.
10873 * doc/tm.texi: Regenerate.
10874 * tree-ssa-strlen.c: Include "builtins.h".
10875 (handle_builtin_memcmp): New static function.
10876 (strlen_optimize_stmt): Call it for BUILT_IN_MEMCMP.
10877 * tree.c (build_common_builtin_nodes): Create __builtin_memcmp_eq.
10878
10879 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10880
10881 * tree-vect-stmts.c (vect_stmt_relevant_p): Do not vectorize non live
10882 relevant stmts which are simple and invariant.
10883 * tree-vect-loop.c (vectorizable_live_operation): Check relevance
10884 instead of simple and invariant
10885
10886 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10887
10888 * tree-vect-loop.c (vect_analyze_loop_operations): Allow live stmts.
10889 (vectorizable_reduction): Check for new relevant state.
10890 (vectorizable_live_operation): vectorize live stmts using
10891 BIT_FIELD_REF. Remove special case for gimple assigns stmts.
10892 * tree-vect-stmts.c (is_simple_and_all_uses_invariant): New function.
10893 (vect_stmt_relevant_p): Check for stmts which are only used live.
10894 (process_use): Use of a stmt does not inherit it's live value.
10895 (vect_mark_stmts_to_be_vectorized): Simplify relevance inheritance.
10896 (vect_analyze_stmt): Check for new relevant state.
10897 * tree-vectorizer.h (vect_relevant): New entry for a stmt which is used
10898 outside the loop, but not inside it.
10899
10900 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10901
10902 * tree-vectorizer.h (vect_get_vec_def_for_operand_1): New.
10903 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): New.
10904 (vect_get_vec_def_for_operand): Split out code.
10905
10906 2016-06-03 Segher Boessenkool <segher@kernel.crashing.org>
10907
10908 * config/rs6000/rs6000.md (define_peepholes for two mfcr's): Delete.
10909
10910 2016-06-03 Alan Hayward <alan.hayward@arm.com>
10911
10912 * tree-vect-stmts.c (vectorizable_call) Remove GOMP_SIMD_LANE code.
10913
10914 2016-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10915
10916 * config/arm/thumb1.md (*thumb1_mulsi3): Fix typos in comment.
10917
10918 2016-06-03 Jakub Jelinek <jakub@redhat.com>
10919
10920 PR middle-end/71387
10921 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): If redirecting
10922 to noreturn e->callee->decl that has void return type and void
10923 arguments, adjust gimple_call_fntype and remove lhs even if it had
10924 previously addressable type.
10925
10926 2016-06-02 Jeff Law <law@redhat.com>
10927
10928 PR tree-optimization/71328
10929 * tree-ssa-threadupdate.c (duplicate_thread_path): Fix off-by-one
10930 error when checking for a jump back onto the copied path.
10931
10932 2016-06-02 David Malcolm <dmalcolm@redhat.com>
10933
10934 * config/microblaze/microblaze.c (get_branch_target): Add return
10935 NULL_RTX for the non-CALL_P case.
10936 (insert_wic_for_ilb_runout): Remove unused local "wic_addr1".
10937 (insert_wic): Remove unused local "j".
10938
10939 2016-06-02 Martin Liska <mliska@suse.cz>
10940
10941 * predict.def: Fix typo in PRED_FORTRAN_FAIL_IO display name.
10942
10943 2016-06-02 H.J. Lu <hongjiu.lu@intel.com>
10944 Julia Koval <julia.koval@intel.com>
10945
10946 * function.c (assign_parm_setup_stack): Force source into a
10947 register if needed.
10948 * target.def (function_incoming_arg): Update documentation to
10949 allow arbitrary address computation based on hard register.
10950 * doc/tm.texi: Regenerated.
10951
10952 2016-06-02 Martin Liska <mliska@suse.cz>
10953
10954 * predict.c (combine_predictions_for_bb): Fix first match in
10955 cases where a first predictor contains more than one occurence
10956 in list of predictors. Take the best value in such case.
10957
10958 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10959
10960 PR rtl-optimization/71295
10961 * rtlanal.c (subreg_get_info): If taking a subreg at the requested
10962 offset would go over the size of the inner mode reject it.
10963
10964 2016-06-02 Jakub Jelinek <jakub@redhat.com>
10965
10966 * config/i386/sse.md (*vec_concatv4si): Use v=v,v instead of
10967 x=x,x and v=v,m instead of x=x,m.
10968
10969 * config/i386/sse.md (*vec_concatv2si_sse4_1): Add avx512dq v=Yv,rm
10970 alternative. Change x=x,x alternative to v=Yv,Yv and x=rm,C
10971 alternative to v=rm,C.
10972
10973 * config/i386/sse.md (*vec_concatv2di): Add x86_avx512dq v=Yv,rm
10974 alternative. Change x=xm,C alternative to v=vm,C, x=x,x alternative
10975 to v=Yv,Yv and x=x,m to v=v,m. Use maybe_evex prefix attribute
10976 instead of vex for the last two above mentioned alternatives.
10977
10978 2016-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10979
10980 PR target/70830
10981 * config/arm/arm.c (arm_output_multireg_pop): Guard "pop" on update.
10982
10983 2016-06-02 Segher Boessenkool <segher@kernel.crashing.org>
10984
10985 * config/rs6000/dfp.md (trunctddd2): Correct the "length" attribute.
10986
10987 2016-06-01 David Malcolm <dmalcolm@redhat.com>
10988
10989 * config/rl78/rl78.c (rl78_expand_prologue): Convert local
10990 from int to unsigned.
10991
10992 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
10993
10994 * config/rs6000/vsx.md (vsx_splat_<mode>, V2DI/V2DF): Simplify
10995 alternatives, eliminating preferred register class. Add support
10996 for the MTVSRDD instruction in ISA 3.0.
10997 (vsx_splat_v4si_internal): Use splat_input_operand instead of
10998 reg_or_indexed_operand.
10999 (vsx_splat_v4sf_internal): Likewise.
11000
11001 2016-05-31 Michael Meissner <meissner@linux.vnet.ibm.com>
11002
11003 PR target/71186
11004 * config/rs6000/vsx.md (xxspltib_<mode>_nosplit): Add alternatives
11005 for loading up all 0's or all 1's.
11006
11007 2016-06-01 Thomas Preud'homme <thomas.preudhomme@arm.com>
11008
11009 * doc/sourcebuild.texi (arm_acq_rel): Document new effective target.
11010
11011 2016-06-01 Eduard Sanou <dhole@openmailbox.org>
11012
11013 * doc/cppenv.texi: Note that the `%s` in `date` is a non-standard
11014 extension.
11015 * gcc.c (driver_handle_option): Call set_source_date_epoch_envvar.
11016 * gcc.c (set_source_date_epoch_envvar): New function, sets
11017 the SOURCE_DATE_EPOCH environment variable to the current time.
11018
11019 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11020
11021 * tree-vect-loop.c (vect_determine_vectorization_factor): Also compute
11022 the factor for live Phi nodes.
11023
11024 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11025
11026 * loop-dolop.c (doloop_optimize): Us likely max iteration bound.
11027 * tree-parloops.c (parallelize_loops): likewise.
11028 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop,
11029 tree_unswitch_outer_loop): likewise.
11030
11031 2016-06-01 Jakub Jelinek <jakub@redhat.com>
11032
11033 PR middle-end/71371
11034 * gimplify.c (gimplify_omp_for): Temporarily clear gimplify_omp_ctxp
11035 around creation of the temporary.
11036
11037 2016-06-01 Richard Biener <rguenther@suse.de>
11038
11039 PR tree-optimization/71366
11040 * tree-ssa-loop-ivcanon.c (edges_to_remove): New global.
11041 (unloop_loops): Move removing edges here ...
11042 (try_unroll_loop_completely): ... from here.
11043 (try_peel_loop): ... and here.
11044 (tree_unroll_loops_completely_1): Track parent loops via
11045 bitmap of header BBs.
11046 (tree_unroll_loops_completely): Adjust for that.
11047
11048 2016-06-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11049
11050 * config/rs6000/altivec.h (vec_slv): New macro.
11051 (vec_srv): New macro.
11052 * config/rs6000/altivec.md (UNSPEC_VSLV): New value.
11053 (UNSPEC_VSRV): New value.
11054 (vslv): New insn.
11055 (vsrv): New insn.
11056 * config/rs6000/rs6000-builtin.def (vslv): New builtin definition.
11057 (vsrv): New builtin definition.
11058 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VSLV): Macro expansion to
11059 define argument types for new builtin.
11060 (P9V_BUILTIN_VSRV): Macro expansion to define argument types for
11061 new builtin.
11062 * doc/extend.texi: Document the new vec_vslv and vec_srv built-in
11063 functions.
11064
11065 2016-06-01 Uros Bizjak <ubizjak@gmail.com>
11066 Jocelyn Mayer <l_indien@magic.fr>
11067
11068 PR target/67310
11069 * config/i386/driver-i386.c (host_detect_local_cpu): Correctly
11070 detect processor family for signature_CENTAUR_ebx.
11071 <case PROCESSOR_I486>: Pass c3, winchip2 or winchip-c6 for
11072 signature_CENTAUR_ebx.
11073 <case PROCESSOR _PENTIUMPRO>: Pass c3-2 for signature_CENTAUR_ebx.
11074 <default>: Pass x86-64 for has_longmode.
11075
11076 2016-06-01 Nathan Sidwell <nathan@acm.org>
11077
11078 * config/nvptx/nvptx.c (nvptx_assemble_undefined_decl): Reject
11079 undefined weak.
11080
11081 2016-06-01 Richard Biener <rguenther@suse.de>
11082
11083 PR tree-optimization/71261
11084 * tree-vect-patterns.c (check_bool_pattern): Gather a hash-set
11085 of stmts successfully put in the bool pattern. Remove
11086 single-use restriction.
11087 (adjust_bool_pattern_cast): Add cast at the use site via the
11088 pattern def sequence.
11089 (adjust_bool_pattern): Remove recursion, maintain a hash-map
11090 of patterned defs. Use the pattern def seqence instead of
11091 multiple independent patterns.
11092 (sort_after_uid): New qsort compare function.
11093 (adjust_bool_stmts): New function to process stmts in the bool
11094 pattern in IL order.
11095 (vect_recog_bool_pattern): Adjust.
11096 * tree-if-conv.c (ifcvt_split_def_stmt): Remove.
11097 (ifcvt_walk_pattern_tree): Likewise.
11098 (stmt_is_root_of_bool_pattern): Likewise.
11099 (ifcvt_repair_bool_pattern): Likewise.
11100 (tree_if_conversion): Do not call ifcvt_repair_bool_pattern.
11101
11102 2016-06-01 Jan Hubicka <hubicka@ucw.cz>
11103
11104 * loop-unroll.c (decide_unroll_constant_iterations,
11105 decide_unroll_runtime_iterations, decide_unroll_stupid): Use
11106 likely upper bounds.
11107 * loop-iv.c (find_simple_exit): Dump likely upper bounds.
11108
11109 2016-06-01 Thomas Schwinge <thomas@codesourcery.com>
11110
11111 * tree-core.h (enum omp_clause_code): Remove
11112 OMP_CLAUSE_DEVICE_RESIDENT. Adjust all users.
11113
11114 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11115
11116 * config/arm/sync.md (arm_store_exclusive<mode>):
11117 Use 'H' output modifier on operands[2] rather than creating a new
11118 entry in out-of-bounds memory of the operands array.
11119 (arm_store_release_exclusivedi): Likewise.
11120
11121 2016-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11122
11123 * config/arm/arm.c (arm_fusion_enabled_p): New function.
11124 * config/arm/arm-protos.h (arm_fusion_enabled_p): Declare prototype.
11125 * config/arm/crypto.md (crypto_<crypto_pattern>, CRYPTO_UNARY):
11126 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
11127
11128 2016-06-01 Eric Botcazou <ebotcazou@adacore.com>
11129
11130 * tree-vect-loop.c (vect_determine_vectorization_factor): Also take
11131 into account live statements for mask producers.
11132
11133 2016-06-01 Richard Biener <rguenther@suse.de>
11134
11135 PR tree-optimization/71311
11136 * match.pd (@0 < @1 && @0 < @2 -> @0 < min(@1,@2)): Add :c and
11137 restrict to non-INTEGER_CST @0.
11138
11139 2016-06-01 Richard Biener <rguenther@suse.de>
11140
11141 * match.pd ((A & B) - (A & ~B) -> B - (A ^ B)): Add missing :c.
11142 (relational patterns): Use :c to avoid pattern duplications.
11143
11144 2016-06-01 Richard Biener <rguenther@suse.de>
11145
11146 * genmatch.c (comparison_code_p): New predicate.
11147 (swap_tree_comparison): New function.
11148 (commutate): Add for_vec parameter to append new for entries.
11149 Support commutating relational operators by swapping it alongside
11150 operands.
11151 (lower_commutative): Adjust.
11152 (dt_simplify::gen): Do not pass artificial operators to gen
11153 functions.
11154 (decision_tree::gen): Do not add artificial operators as parameters.
11155 (parser::parse_expr): Verify operator commutativity when :c is
11156 applied. Allow :C to override this.
11157 * match.pd: Adjust patterns to use :C instead of :c where required.
11158
11159 2016-06-01 Patrick Palka <ppalka@gcc.gnu.org>
11160
11161 PR tree-optimization/71077
11162 * tree-ssa-threadedge.c (simplify_control_stmt_condition_1): In
11163 the combining step, use boolean_false_node and boolean_true_node
11164 as the designated false/true return values.
11165
11166 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11167
11168 * predict.def (PRED_LOOP_EXTRA_EXIT): Define.
11169 * predict.c (predict_iv_comparison): Also check PRED_LOOP_EXTRA_EXIT.
11170 (predict_extra_loop_exits): Use PRED_LOOP_EXTRA_EXIT instead of
11171 PRED_LOOP_EXIT.
11172
11173 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11174
11175 * doc/invoke.texi (-frename-registers): Drop -fpeel-loops from list
11176 of flags impliying the register renaming.
11177 * toplev.c (process_options): Do not imply flag_rename_registers with
11178 loop peeling.
11179
11180 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11181
11182 * config/sh/sh.h (ASM_OUTPUT_SYMBOL_REF): Remove macro and use the
11183 default implementation.
11184
11185 2016-05-31 Nathan Sidwell <nathan@acm.org>
11186
11187 * dwarf2out.c (cur_line_info_table): Add GTY marker.
11188
11189 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11190
11191 * config/sh/constraints.md (b): Remove constraint.
11192 * config/sh/predicates.md (arith_reg_operand): Remove
11193 TARGET_REGISTER_P.
11194 * config/sh/sh-modes.def (PDI): Remove.
11195 * config/sh/sh.c (sh_target_reg_class,
11196 sh_optimize_target_register_callee_saved): Remove functions.
11197 (sh_option_override): Don't set MASK_SAVE_ALL_TARGET_REGS.
11198 (sh_expand_epilogue): Update comment.
11199 (sh_hard_regno_mode_ok, sh_register_move_cost, calc_live_regs,
11200 sh_secondary_reload): Remove TARGET_REGS related code.
11201 * config/sh/sh.h (FIRST_TARGET_REG, LAST_TARGET_REG,
11202 TARGET_REGISTER_P): Remove macros.
11203 (SH_DBX_REGISTER_NUMBER, REG_ALLOC_ORDER): Remove target regs.
11204 * config/sh/sh.md (PR_MEDIA_REG, T_MEDIA_REG, FR23_REG, TR0_REG,
11205 TR1_REG, TR2_REG): Remove constants.
11206 * config/sh/sh.opt (SAVE_ALL_TARGET_REGS): Remove.
11207
11208 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11209
11210 * config/sh/sh.md (adddi3, subdi3, negdi2, abs<mode>2): Remove
11211 define_expand patterns.
11212 (adddi3_compact): Rename to adddi3.
11213 (subdi3_compact): Rename to subdi3.
11214 (*negdi2): Rename to negdi2.
11215 (*abs<mode>2): Rename to abs<mode>2.
11216
11217 2016-05-31 Oleg Endo <olegendo@gcc.gnu.org>
11218
11219 * config/rx/rx.md (FETCHOP_NO_MINUS): New code iterator.
11220 (atomic_<fetchop_name>_fetchsi): Extract minus operator into ...
11221 (atomic_sub_fetchsi): ... this new pattern.
11222 (mvtc): Add CC_REG clobber.
11223
11224 2016-05-31 Marek Polacek <polacek@redhat.com>
11225
11226 * gimplify.c (gimplify_switch_expr): Also handle GIMPLE_TRY.
11227
11228 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11229
11230 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use
11231 aarch64_fusion_enabled_p to check for fusion capabilities.
11232
11233 2016-05-31 Richard Biener <rguenther@suse.de>
11234
11235 PR tree-optimization/71352
11236 * tree-ssa-reassoc.c (zero_one_operation): Handle op equal to
11237 minus one and a negate.
11238
11239 2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11240
11241 * config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
11242 * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
11243 Delete prototype.
11244 * config/aarch64/iterators.md (insn_count): Add descriptive comment.
11245 * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
11246 Remove use of aarch64_simd_attr_length_move, set length attribute
11247 directly.
11248 (*aarch64_be_movoi): Likewise.
11249 (*aarch64_be_movci): Likewise.
11250 (*aarch64_be_movxi): Likewise.
11251
11252 2016-05-31 Jan Hubicka <hubicka@ucw.cz>
11253
11254 * loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
11255 It no longer does that.
11256 * toplev.c (process_options): Do not enable flag_web with -fpeel-loops.
11257
11258 2016-05-31 Wladimir J. van der Laan <laanwj@gmail.com>
11259
11260 * config/aarch64/arm_neon.h (vdupb_laneq_s8): Remove spurious
11261 attribute __unused__.
11262
11263 2016-05-31 Thomas Preud'homme <thomas.preudhomme@arm.com>
11264
11265 * config/arm/arm-protos.h (arm_arch_thumb1): Declare.
11266 * config/arm/arm.c (arm_arch_thumb1): Define.
11267 (arm_option_override): Initialize arm_arch_thumb1.
11268 * config/arm/arm.h (arm_arch_thumb1): Declare.
11269 (TARGET_ARM_ARCH_ISA_THUMB): Use arm_arch_thumb to determine if target
11270 support Thumb-1 ISA.
11271
11272 2016-05-31 Kirill Yukhin <kirill.yukhin@intel.com>
11273
11274 PR target/71346
11275 * config/i386/sse.md (define_insn_and_split "*vec_extractv4sf_0"): Use
11276 `Yv' for scalar operand.
11277
11278 2016-05-31 Tom de Vries <tom@codesourcery.com>
11279
11280 PR tree-optimization/69068
11281 * graphite-isl-ast-to-gimple.c (copy_bb_and_scalar_dependences): Handle
11282 phis with more than two args.
11283
11284 2016-05-30 Andreas Tobler <andreast@gcc.gnu.org>
11285
11286 * config.gcc: Move hard float support for arm*hf*-*-freebsd* into
11287 armv6*-*-freebsd* for FreeBSD 11. Eliminate the arm*hf*-*-freebsd*
11288 target.
11289
11290 2016-05-30 Jose E. Marchesi <jose.marchesi@oracle.com>
11291
11292 * config.gcc (sparc*-*-*): Support cpu_32, cpu_64, tune_32 and
11293 tune_64.
11294 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document
11295 support on SPARC.
11296 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): Add entries for
11297 cpu_32, cpu_64, tune_32 and tune_64.
11298 * config/sparc/sol2.h (OPTION_DEFAULT_SPECS): Likewise.
11299
11300 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
11301
11302 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
11303
11304 2016-05-30 Andi Kleen <ak@linux.intel.com>
11305
11306 * auto-profile.c (read_profile): Replace asserts with errors
11307 when file does not exist.
11308 * gcov-io.c (gcov_read_words): Dito.
11309
11310 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11311
11312 * tree-cfg.c (print_loop): Print likely upper bounds.
11313
11314 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11315
11316 * doc/invoke.texi (-fpeel-loops,-O3): Update documentation.
11317 * opts.c (default_options): Enable peel loops at -O3.
11318 * tree-ssa-loop-ivcanon.c (peeled_loops): New static var.
11319 (try_peel_loop): Do not re-peel already peeled loops;
11320 use likely upper bounds; fix profile updating.
11321 (pass_complete_unroll::execute): Initialize peeled_loops.
11322
11323 2016-05-30 Martin Liska <mliska@suse.cz>
11324
11325 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Scale
11326 computed costs by frequency of BB they belong to.
11327 (get_scaled_computation_cost_at): New function.
11328
11329 2016-05-30 Alexander Monakov <amonakov@ispras.ru>
11330 Marc Glisse <marc.glisse@inria.fr>
11331
11332 PR tree-optimization/71289
11333 * match.pd (-1 / B < A, A > -1 / B): New transformations.
11334
11335 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11336
11337 * tree-vect-loop.c (vect_transform_loop): Update likely bounds.
11338
11339 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11340
11341 * tree-ssa-loop-ivcanon.c (try_peel_loop): Correctly set wont_exit
11342 for peeled copies; avoid underflow when updating estimates; correctly
11343 scale loop profile.
11344
11345 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11346
11347 * tree-ssa-reassoc.ci (swap_ops_for_binary_stmt): Fix typo from commit
11348 r236875. Corrected oe3 to oe2 as obvious.
11349
11350 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11351
11352 PR middle-end/71269
11353 PR middle-end/71252
11354 * tree-ssa-reassoc.c (insert_stmt_before_use): Use find_insert_point so
11355 that inserted stmt will not dominate stmts that defines its operand.
11356 (rewrite_expr_tree): Add stmt_to_insert before adding the use stmt.
11357 (rewrite_expr_tree_parallel): Likewise.
11358
11359 2016-05-30 Kugan Vivekanandarajah <kuganv@linaro.org>
11360
11361 PR middle-end/71252
11362 * tree-ssa-reassoc.c (swap_ops_for_binary_stmt): Fix swap such that
11363 all fields including stmt_to_insert are swapped.
11364
11365 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11366
11367 * predict.h (force_edge_cold): Declare.
11368 * predict.c (force_edge_cold): New function.
11369 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Fix profile
11370 updating.
11371 (canonicalize_loop_induction_variables): Fix formating.
11372
11373 2016-05-30 Eric Botcazou <ebotcazou@adacore.com>
11374
11375 * config/visium/visium.c (visium_split_double_add): Minor tweaks.
11376 (visium_expand_copysign): Use gen_int_mode directly.
11377 (visium_compute_frame_size): Minor tweaks.
11378
11379 2016-05-30 Jan Hubicka <hubicka@ucw.cz>
11380
11381 * tree-vect-loop.c (vect_analyze_loop_2): Use
11382 likely_max_stmt_executions_int.
11383
11384 2016-05-30 Tom de Vries <tom@codesourcery.com>
11385
11386 PR tree-optimization/69067
11387 * graphite-isl-ast-to-gimple.c (get_def_bb_for_const): Remove assert.
11388
11389 2016-05-29 Uros Bizjak <ubizjak@gmail.com>
11390
11391 PR target/71245
11392 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
11393 New peepholes to remove unneeded fild/fistp pairs.
11394 (define_peephole2 atomic_loaddi_fpu): Ditto.
11395
11396 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11397
11398 * predict.c (maybe_hot_frequency_p): Avoid division.
11399
11400 2016-05-28 Gerald Pfeifer <gerald@pfeifer.com>
11401
11402 * doc/install.texi: Use https for shop.fsf.org.
11403
11404 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11405
11406 * tree-ssa-loop-ivopts.c (estimated_stmt_executions_int): Use
11407 likely_max_stmt_executions_int.
11408
11409 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11410
11411 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Use
11412 likely_max_stmt_executions_int.
11413
11414 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11415
11416 * profile.c (compute_branch_probabilities): Do not report hitrates
11417 here.
11418 (branch_prob): Report hitrates here.
11419 * predict.c (gimple_predict_edge): Do not assert profile status;
11420 fix formatting issues.
11421
11422 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11423
11424 * predict.c (edge_predicted_by_p): New function.
11425 (predict_paths_for_bb): Do not put multiple predictions of the same type
11426 on one edge.
11427
11428 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11429
11430 * tree-ssa-loop-niter.c (number_of_iterations_exit): Revert accidental
11431 commit.
11432
11433 2016-05-28 Alan Modra <amodra@gmail.com>
11434
11435 * dominance.c (verify_dominators): Don't segfault on NULL imm_bb.
11436
11437 2016-05-28 Alan Modra <amodra@gmail.com>
11438
11439 PR rtl-optimization/71275
11440 * ira.c (ira): Free dominance info.
11441
11442 2016-05-27 Gerald Pfeifer <gerald@pfeifer.com>
11443
11444 * doc/sourcebuild.texi: New address for upstream Go repository.
11445
11446 2016-05-27 Thomas Preud'homme <thomas.preudhomme@arm.com>
11447
11448 * config/arm/arm.h (TARGET_ARM_V6M): Remove.
11449 (TARGET_ARM_V7M): Likewise.
11450
11451 2016-05-26 Jeff Law <law@redhat.com>
11452
11453 * tree-ssa-threadedge.c: Remove include of tree-ssa-threadbackward.h.
11454 (thread_across_edge): Remove calls to find_jump_threads_backwards.
11455 * passes.def: Add jump threading passes before DOM/VRP.
11456 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Change
11457 argument to a basic block from an edge. Remove tests which are
11458 handled elsewhere.
11459 (pass_data_thread_jumps, class pass_thread_jumps): New.
11460 (pass_thread_jumps::gate, pass_thread_jumps::execute): New.
11461 (make_pass_thread_jumps): Likewise.
11462 * tree-pass.h (make_pass_thread_jumps): Declare.
11463
11464 2016-05-27 Eric Botcazou <ebotcazou@adacore.com>
11465
11466 * config/visium/visium-protos.h (split_double_move): Rename into...
11467 (visium_split_double_move): ...this.
11468 (visium_split_double_add): Declare.
11469 * config/visium/visium.c (split_double_move): Rename into...
11470 (visium_split_double_move): ...this.
11471 (visium_split_double_add): New function.
11472 (visium_expand_copysign): Renumber operands for consistency.
11473 * config/visium/visium.md (DImode move splitter): Adjust to renaming.
11474 (DFmode move splitter): Likewise.
11475 (*addi3_insn): Split by means of visium_split_double_add.
11476 (*adddi3_insn_flags): Delete.
11477 (*plus_plus_sltu<subst_arith>): New insn.
11478 (*subdi3_insn): Split by means of visium_split_double_add.
11479 (subdi3_insn_flags): Delete.
11480 (*minus_minus_sltu<subst_arith>): New insn.
11481 (*negdi2_insn): Split by means of visium_split_double_add.
11482 (*negdi2_insn_flags): Delete.
11483
11484 2016-05-27 Ulrich Weigand <uweigand@de.ibm.com>
11485
11486 * configure.ac: Treat a --with-headers option without argument
11487 the same as the default (i.e. consult sys-include directory).
11488 * configure: Regenerate.
11489
11490 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11491
11492 * config/aarch64/aarch64.c (aarch64_fusion_enabled_p): New function.
11493 * config/aarch64/aarch64-protos.h (aarch64_fusion_enabled_p): Declare
11494 prototype.
11495 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aesmc_op>v16qi):
11496 Add "=w,0" alternative. Enable it when AES/AESMC fusion is enabled.
11497
11498 2016-05-27 Jiong Wang <jiong.wang@arm.com>
11499
11500 PR target/63596
11501 * config/aarch64/aarch64.c (aarch64_expand_builtin_va_start): Honor
11502 tree-stdarg analysis results.
11503 (aarch64_setup_incoming_varargs): Likewise.
11504
11505 2016-05-27 Jiong Wang <jiong.wang@arm.com>
11506
11507 * config/aarch64/aarch64.c (aarch64_build_builtin_va_list): Initialize
11508 va_list_gpr_counter_field and va_list_fpr_counter_field.
11509
11510 2016-05-27 Wilco Dijkstra <wdijkstr@arm.com>
11511
11512 PR67609
11513 * config/aarch64/aarch64.h (CANNOT_CHANGE_MODE_CLASS): Remove.
11514 * config/aarch64/aarch64.c
11515 (aarch64_cannot_change_mode_class): Remove function.
11516 * config/aarch64/aarch64-protos.h
11517 (aarch64_cannot_change_mode_class): Remove.
11518
11519 2016-05-27 Jan Hubicka <hubicka@ucw.cz>
11520
11521 * cfgloop.c (record_niter_bound): Record likely upper bounds.
11522 (likely_max_stmt_executions_int, get_likely_max_loop_iterations,
11523 get_likely_max_loop_iterations_int): New.
11524 * cfgloop.h (struct loop): Add nb_iterations_likely_upper_bound,
11525 any_likely_upper_bound.
11526 (get_likely_max_loop_iterations_int, get_likely_max_loop_iterations):
11527 Declare.
11528 * cfgloopmanip.c (copy_loop_info): Copy likely upper bounds.
11529 * loop-unroll.c (unroll_loop_constant_iterations): Update likely
11530 upper bound.
11531 (unroll_loop_constant_iterations): Likewise.
11532 (unroll_loop_runtime_iterations): Likewise.
11533 * lto-streamer-in.c (input_cfg): Stream likely upper bounds.
11534 * lto-streamer-out.c (output_cfg): Likewise.
11535 * tree-ssa-loop-ivcanon.c (try_peel_loop): Update likely upper
11536 bounds.
11537 (canonicalize_loop_induction_variables): Dump likely upper bounds.
11538 * tree-ssa-loop-niter.c (record_estimate): Record likely upper bounds.
11539 (likely_max_loop_iterations): New.
11540 (likely_max_loop_iterations_int): New.
11541 (likely_max_stmt_executions): New.
11542 * tree-ssa-loop-niter.h (likely_max_loop_iterations,
11543 likely_max_loop_iterations_int, likely_max_stmt_executions_int,
11544 likely_max_stmt_executions): Declare.
11545
11546 2016-05-27 Marek Polacek <polacek@redhat.com>
11547
11548 PR middle-end/71308
11549 * gimple-fold.c (gimple_fold_call): Check that LHS is not null.
11550
11551 2016-05-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11552
11553 * config/s390/s390.md (2x risbg splitters): Use
11554 reg_overlap_mentioned_p instead of rtx_equal_p.
11555
11556 2016-05-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
11557
11558 * combine.c (make_compound_operation): Take known zero bits into
11559 account when checking for possible zero_extend.
11560
11561 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11562
11563 * config/aarch64/aarch64.md (ashl<mode>3, SHORT modes):
11564 Use const_int_operand for operand 2 predicate. Simplify expand code
11565 as a result.
11566
11567 2016-05-27 Ilya Enkovich <ilya.enkovich@intel.com>
11568
11569 PR middle-end/71279
11570 * fold-const.c (fold_ternary_loc): Don't fold VEC_COND_EXPR
11571 into comparison.
11572
11573 2016-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11574
11575 * config/aarch64/aarch64-modes.def (CC_ZESWP, CC_SESWP): Delete.
11576 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Remove condition
11577 that returns CC_SESWPmode and CC_ZESWPmode.
11578 (aarch64_get_condition_code_1): Remove handling of CC_SESWPmode
11579 and CC_SESWPmode.
11580 (aarch64_rtx_costs): Likewise.
11581
11582 2016-05-26 Michael Meissner <meissner@linux.vnet.ibm.com>
11583
11584 * config/rs6000/rs6000.c (rs6000_emit_p9_fp_minmax): New function
11585 for ISA 3.0 min/max support.
11586 (rs6000_emit_p9_fp_cmove): New function for ISA 3.0 floating point
11587 conditional move support.
11588 (rs6000_emit_cmove): Call rs6000_emit_p9_fp_minmax and
11589 rs6000_emit_p9_fp_cmove if the ISA 3.0 instructions are
11590 available.
11591 * config/rs6000/rs6000.md (SFDF2): New iterator to allow doing
11592 conditional moves where the comparison type is different from move
11593 type.
11594 (fp_minmax): New code iterator for smin/smax.
11595 (minmax): New code attributes for min/max.
11596 (SMINMAX): Likewise.
11597 (smax<mode>3): Combine min, max insns into one insn using the
11598 fp_minmax code iterator. Add support for ISA 3.0 min/max
11599 instructions that don't need -ffast-math.
11600 (s<minmax><mode>3): Likewise.
11601 (smax<mode>3_vsx): Likewise.
11602 (smin<mode>3): Likewise.
11603 (s<minmax><mode>3_vsx): Likewise.
11604 (smin<mode>3_vsx): Likewise.
11605 (pre-VSX min/max splitters): Likewise.
11606 (s<minmax><mode>3_fpr): Likewise.
11607 (movsfcc): Rewrite floating point conditional moves to combine
11608 SFmode/DFmode into a single insn.
11609 (mov<mode>cc): Likewise.
11610 (movdfcc): Likewise.
11611 (fselsfsf4): Combine FSEL cases into a single insn, using SFDF and
11612 SFDF2 iterators to handle all combinations.
11613 (fseldfsf4): Likewise.
11614 (fsel<SFDF:mode><SFDF2:mode>4): Likewise.
11615 (fseldfdf4): Likewise.
11616 (fselsfdf4): Likewise.
11617 (mov<SFDF:mode><SFDF2:mode>cc_p9): Add support for the ISA 3.0
11618 comparison instructions that set a 0/-1 mask, and use it for
11619 floating point conditional move via XXSEL.
11620 (fpmask<mode>): Likewise.
11621 (xxsel<mode>): Likewise.
11622 * config/rs6000/predicates.md (min_max_operator): Delete, no
11623 longer used.
11624 (fpmask_comparison_operaton): New insn for ISA 3.0 comparison
11625 instructions that generate a 0/-1 mask for use with XXSEL.
11626 * config/rs6000/rs6000.h (TARGET_MINMAX_SF): New helper macros to
11627 say whether floating point min/max is available, either through
11628 FSEL, ISA 2.06 min/max, and ISA 3.0 min/max instrucitons.
11629 (TARGET_MINMAX_DF): Likewise.
11630
11631 2016-05-27 Alan Modra <amodra@gmail.com>
11632
11633 PR rtl-optimization/71275
11634 * ira.c (ira): Call loop_optimizer_init to set up bb_loop_depth
11635 for update_equiv_regs and combine_and_move_insns.
11636
11637 2016-05-26 Uros Bizjak <ubizjak@gmail.com>
11638
11639 * config/i386/i386.md (*movqi_internal) <attr "isa">: Use
11640 if_then_else or cond RTXes to calculate attribute value.
11641 * config/i386/mmx.md (*vec_extractv2sf_1) <attr "prefix_rep">: Ditto.
11642 <attr "length_immediate>: Ditto.
11643 (*vec_extractv2sf_1) <attr "length_immediate">: Ditto.
11644 * config/i386/sse.md (sse_loadlps) <attr "length_immediate">: Ditto.
11645 (*vec_concatv2sf_sse4_1) <attr "isa">: Ditto.
11646 <attr "type">: Ditto.
11647 <attr "prefix_data16">: Ditto.
11648 <attr "prefix_extra">: Ditto.
11649 <attr "length_immediate">: Ditto.
11650 <attr "prefix">: Ditto.
11651 (vec_set<mode>_0) <attr "isa">: Ditto.
11652 <attr "prefix_extra">: Ditto.
11653 <attr "length_immediate">: Ditto.
11654 <attr "prefix">: Ditto.
11655 (*vec_interleave_highv2df) <attr "prefix_data16">: Ditto.
11656 (*vec_interleave_lowv2df) <attr "prefix_data16">: Ditto.
11657 (sse2_storelpd) <attr "prefix_data16">: Ditto.
11658 (sse2_loadhpd) <attr "prefix_data16">: Ditto.
11659 (sse2_loadlpd) <attr "prefix_data16">: Ditto.
11660 <attr "length_immediate">: Ditto.
11661 <attr "prefix">: Ditto.
11662 (sse2_movsd) <attr "length_immediate">: Ditto.
11663 <attr "prefix">: Ditto.
11664 (vec_concatv2df) <attr "isa">: Ditto.
11665 <attr "prefix">: Ditto.
11666 (*vec_extractv4si) <attr "prefix_extra">: Ditto.
11667 (*vec_extractv2di_1) <attr "isa">: Ditto.
11668 <attr "type">: Ditto.
11669 <attr "length_immediate">: Ditto.
11670 <attr "prefix_rex">: Ditto.
11671 <attr "prefix_extra">: Ditto.
11672 (*vec_concatv2si_sse4_1) <attr "type">: Ditto.
11673 <attr "prefix_extra">: Ditto.
11674 <attr "length_immediate">: Ditto.
11675 (vec_concatv2di) <attr "isa">: Ditto.
11676 <attr "prefix_extra">: Ditto.
11677 <attr "length_immediate">: Ditto.
11678 <attr "prefix">: Ditto.
11679
11680 2016-05-26 Martin Liska <mliska@suse.cz>
11681
11682 * tree-ssa-loop-ivopts.c (comp_cost::infinite_cost_p): New
11683 function.
11684 (operator+): Likewise.
11685 (operator-): Likewise.
11686 (comp_cost::operator+=): Likewise.
11687 (comp_cost::operator-=): Likewise.
11688 (comp_cost::operator/=): Likewise.
11689 (comp_cost::operator*=): Likewise.
11690 (operator<): Likewise.
11691 (operator==): Likewise.
11692 (operator<=): Likewise.
11693 (new_cost): Remove.
11694 (infinite_cost_p): Likewise.
11695 (add_costs): Likewise.
11696 (sub_costs): Likewise.
11697 (compare_costs): Likewise.
11698 (set_group_iv_cost): Use the newly introduced functions.
11699 (get_address_cost): Likewise.
11700 (get_shiftadd_cost): Likewise.
11701 (force_expr_to_var_cost): Likewise.
11702 (split_address_cost): Likewise.
11703 (ptr_difference_cost): Likewise.
11704 (difference_cost): Likewise.
11705 (get_computation_cost_at): Likewise.
11706 (determine_group_iv_cost_generic): Likewise.
11707 (determine_group_iv_cost_address): Likewise.
11708 (determine_group_iv_cost_cond): Likewise.
11709 (autoinc_possible_for_pair): Likewise.
11710 (determine_group_iv_costs): Likewise.
11711 (cheaper_cost_pair): Likewise.
11712 (iv_ca_recount_cost): Likewise.
11713 (iv_ca_set_no_cp): Likewise.
11714 (iv_ca_set_cp): Likewise.
11715 (iv_ca_cost): Likewise.
11716 (iv_ca_new): Likewise.
11717 (iv_ca_dump): Likewise.
11718 (iv_ca_narrow): Likewise.
11719 (iv_ca_prune): Likewise.
11720 (iv_ca_replace): Likewise.
11721 (try_add_cand_for): Likewise.
11722 (try_improve_iv_set): Likewise.
11723 (find_optimal_iv_set): Likewise.
11724
11725 2016-05-26 Richard Sandiford <richard.sandiford@arm.com>
11726
11727 * tree-ssa-loop-ivopts.c (loop_body_includes_call): Don't assume
11728 that internal functions will clobber all caller-saved registers.
11729
11730 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
11731
11732 * config/aarch64/aarch64.c (aarch64_case_values_threshold):
11733 Return a better case_values_threshold when optimizing.
11734
11735 2016-05-26 Wilco Dijkstra <wdijkstr@arm.com>
11736
11737 * config/aarch64/aarch64-simd.md (aarch64_combinez):
11738 Add ? to integer variant.
11739 (aarch64_combinez_be): Likewise.
11740
11741 2016-05-26 Jakub Jelinek <jakub@redhat.com>
11742
11743 * config/i386/sse.md (*vcvtps2ph_store<mask_name>): Use v constraint
11744 instead of x constraint.
11745 (vcvtps2ph256<mask_name>): Likewise.
11746
11747 * config/i386/sse.md (*ssse3_palignr<mode>_perm): Add avx512bw
11748 alternative. Formatting fix.
11749
11750 * config/i386/sse.md
11751 (<mask_codefor>avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Rename
11752 to ...
11753 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): ... this.
11754 (*avx_vperm_broadcast_v4sf): Use v constraint instead of x. Use
11755 maybe_evex prefix instead of vex.
11756 (*avx_vperm_broadcast_<mode>): Use v constraint instead of x. Handle
11757 EXT_REX_SSE_REG_P (op0) case in the splitter.
11758
11759 2016-05-25 Jeff Law <law@redhat.com>
11760
11761 PR tree-optimization/71272
11762 * tree-ssa-threadbackward.c (convert_and_register_jump_thread_path):
11763 Update comments. Add test for empty path.
11764
11765 2016-05-25 Bill Seurer <seurer@linux.vnet.ibm.com>
11766
11767 * config/rs6000/altivec.h (vec_cmpne): Add #define for vec_cmpne.
11768 * config/rs6000/rs6000-builtin.def (vec_cmpne): Add vec_cmpne as a
11769 special case builtin.
11770 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11771 code for ALTIVEC_BUILTIN_VEC_CMPNE.
11772 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
11773 for __builtin_vec_cmpne.
11774
11775 2016-05-25 Eric Botcazou <ebotcazou@adacore.com>
11776
11777 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Remove
11778 redundant test and bail out if the type of the new operand is not
11779 a GIMPLE register type after stripping a VIEW_CONVERT_EXPR.
11780
11781 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
11782
11783 * config/i386/i386.opt (ix86_target_flags_explicit): Remove.
11784 (x_ix86_target_flags_explicit): Remove.
11785 * config/i386/i386.c (ix86_function_specific_save): Do not copy
11786 x_ix86_target_flags_explicit.
11787 (ix86_function_specific_restore): Ditto.
11788
11789 2016-05-25 Uros Bizjak <ubizjak@gmail.com>
11790 H.J. Lu <hongjiu.lu@intel.com>
11791
11792 PR target/70738
11793 * common/config/i386/i386-common.c
11794 (OPTION_MASK_ISA_GENERAL_REGS_ONLY_UNSET): New.
11795 (ix86_handle_option) <case OPT_mgeneral_regs_only>: Disable
11796 MPX, MMX, SSE and x87 instructions for -mgeneral-regs-only.
11797 * config/i386/i386.opt (ix86_target_flags): Add new Variable.
11798 (-mgeneral-regs-only): Add new option.
11799 * config/i386/i386.c (ix86_option_override_internal): Don't enable
11800 x87 instructions if only general registers are allowed.
11801 (ix86_target_string): Add ix86_flags argument. Handle additional
11802 flags options through ix86_flags argument. Update all callers.
11803 * doc/invoke.texi (x86 Options): Document -mgeneral-regs-only.
11804
11805 2016-05-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11806
11807 PR rtl-optimization/66940
11808 * ifcvt.c (noce_get_alt_condition): Check that incrementing or
11809 decrementing desired_val will not overflow before performing these
11810 operations.
11811
11812 2016-05-25 Ilya Verbin <ilya.verbin@intel.com>
11813
11814 * config/i386/i386-builtin-types.def: Add V16SI_FTYPE_V16SF,
11815 V8DF_FTYPE_V8DF_ROUND, V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND.
11816 * config/i386/i386.c (enum ix86_builtins): Add
11817 IX86_BUILTIN_CVTPS2DQ512_MASK, IX86_BUILTIN_FLOORPS512,
11818 IX86_BUILTIN_FLOORPD512, IX86_BUILTIN_CEILPS512, IX86_BUILTIN_CEILPD512,
11819 IX86_BUILTIN_TRUNCPS512, IX86_BUILTIN_TRUNCPD512,
11820 IX86_BUILTIN_CVTPS2DQ512, IX86_BUILTIN_VEC_PACK_SFIX512,
11821 IX86_BUILTIN_FLOORPS_SFIX512, IX86_BUILTIN_CEILPS_SFIX512,
11822 IX86_BUILTIN_ROUNDPS_AZ_SFIX512.
11823 (builtin_description bdesc_args): Add __builtin_ia32_floorps512,
11824 __builtin_ia32_ceilps512, __builtin_ia32_truncps512,
11825 __builtin_ia32_floorpd512, __builtin_ia32_ceilpd512,
11826 __builtin_ia32_truncpd512, __builtin_ia32_cvtps2dq512,
11827 __builtin_ia32_vec_pack_sfix512, __builtin_ia32_roundps_az_sfix512,
11828 __builtin_ia32_floorps_sfix512, __builtin_ia32_ceilps_sfix512.
11829 Change IX86_BUILTIN_CVTPS2DQ512 to IX86_BUILTIN_CVTPS2DQ512_MASK for
11830 __builtin_ia32_cvtps2dq512_mask.
11831 (ix86_expand_args_builtin): Handle V8DF_FTYPE_V8DF_ROUND,
11832 V16SF_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF_ROUND, V16SI_FTYPE_V16SF.
11833 (ix86_builtin_vectorized_function): Handle builtins mentioned above.
11834 * config/i386/sse.md
11835 (<mask_codefor>avx512f_fix_notruncv16sfv16si<mask_name><round_name>):
11836 Rename to ...
11837 (avx512f_fix_notruncv16sfv16si<mask_name><round_name>): ... this.
11838 (<mask_codefor>avx512f_cvtpd2dq512<mask_name><round_name>): Rename
11839 to ...
11840 (avx512f_cvtpd2dq512<mask_name><round_name>): ... this.
11841 (avx512f_vec_pack_sfix_v8df): New define_expand.
11842 (avx512f_roundpd512): Rename to ...
11843 (avx512f_round<castmode>512): ... this. Change iterator.
11844 (avx512f_roundps512_sfix): New define_expand.
11845 (round<mode>2_sfix): Change iterator.
11846
11847 2016-05-25 Nick Clifton <nickc@redhat.com>
11848
11849 * config/msp430/msp430.c (msp430_attr): Produce an error if a
11850 static interrupt handler is detected.
11851 * config/msp430/msp430.h (LIB_SPEC): Do not use msp430.ld as the
11852 default linker script.
11853 * config/msp430/msp430.md (movpsihi2_lo): New pattern for loading
11854 the low part of a symbolic pointer.
11855
11856 2016-05-25 Richard Biener <rguenther@suse.de>
11857
11858 PR tree-optimization/71261
11859 * tree-if-conv.c (ifcvt_split_def_stmt): Walk uses on the
11860 interesting stmt instead of immediate uses when looking
11861 for the use operand to replace.
11862
11863 2016-05-25 Martin Liska <mliska@suse.cz>
11864
11865 * ipa-inline.c (edge_badness): Use 'w/' instead of 'w'.
11866
11867 2016-05-25 Richard Biener <rguenther@suse.de>
11868
11869 PR tree-optimization/71264
11870 * tree-vect-stmts.c (vect_init_vector): Properly deal with
11871 vector type val.
11872
11873 2016-05-25 Martin Liska <mliska@suse.cz>
11874
11875 PR tree-optimization/71239
11876 * tree.c (array_at_struct_end_p): Do not call operand_equal_p
11877 if DECL_SIZE is NULL.
11878
11879 2016-05-25 Richard Biener <rguenther@suse.de>
11880
11881 * timevar.def (TV_TREE_LOOP_IFCVT): Add.
11882 * tree-if-conv.c (pass_data_if_conversion): Use it.
11883
11884 2016-05-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
11885
11886 * cgraph.c (cgraph_node::get_availability): Fix typo in comment.
11887 * symtab.c (symtab_node::binds_to_current_def_p): Likewise.
11888 * varpool.c (varpool_node::get_availability): Likewise.
11889
11890 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11891
11892 * config/rs6000/altivec.md (VNEG iterator): New iterator for
11893 VNEGW/VNEGD instructions.
11894 (p9_neg<mode>2): New insns for ISA 3.0 VNEGW/VNEGD.
11895 (neg<mode>2): Add expander for V2DImode added in ISA 2.07, and
11896 support for ISA 3.0 VNEGW/VNEGD instructions.
11897
11898 2016-05-24 Cesar Philippidis <cesar@codesourcery.com>
11899
11900 * gimplify.c (omp_notice_variable): Use zero-length arrays for data
11901 pointers inside OACC_DATA regions.
11902 (gimplify_scan_omp_clauses): Prune firstprivate clause associated
11903 with OACC_DATA, OACC_ENTER_DATA and OACC_EXIT data regions.
11904 (gimplify_adjust_omp_clauses): Fix typo in comment.
11905
11906 2016-05-24 Michael Meissner <meissner@linux.vnet.ibm.com>
11907
11908 * config/rs6000/altivec.md (VParity): New mode iterator for vector
11909 parity built-in functions.
11910 (p9v_ctz<mode>2): Add support for ISA 3.0 vector count trailing
11911 zeros.
11912 (p9v_parity<mode>2): Likewise.
11913 * config/rs6000/vector.md (VEC_IP): New mode iterator for vector
11914 parity.
11915 (ctz<mode>2): ISA 3.0 expander for vector count trailing zeros.
11916 (parity<mode>2): ISA 3.0 expander for vector parity.
11917 * config/rs6000/rs6000-builtin.def (BU_P9_MISC_1): New macros for
11918 power9 built-ins.
11919 (BU_P9_64BIT_MISC_0): Likewise.
11920 (BU_P9_MISC_0): Likewise.
11921 (BU_P9V_AV_1): Likewise.
11922 (BU_P9V_AV_2): Likewise.
11923 (BU_P9V_AV_3): Likewise.
11924 (BU_P9V_AV_P): Likewise.
11925 (BU_P9V_VSX_1): Likewise.
11926 (BU_P9V_OVERLOAD_1): Likewise.
11927 (BU_P9V_OVERLOAD_2): Likewise.
11928 (BU_P9V_OVERLOAD_3): Likewise.
11929 (VCTZB): Add vector count trailing zeros support.
11930 (VCTZH): Likewise.
11931 (VCTZW): Likewise.
11932 (VCTZD): Likewise.
11933 (VPRTYBD): Add vector parity support.
11934 (VPRTYBQ): Likewise.
11935 (VPRTYBW): Likewise.
11936 (VCTZ): Add overloaded vector count trailing zeros support.
11937 (VPRTYB): Add overloaded vector parity support.
11938 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
11939 overloaded vector count trailing zeros and parity instructions.
11940 * config/rs6000/rs6000.md (wd mode attribute): Add V1TI and TI for
11941 vector parity support.
11942 * config/rs6000/altivec.h (vec_vctz): Add ISA 3.0 vector count
11943 trailing zeros support.
11944 (vec_cntlz): Likewise.
11945 (vec_vctzb): Likewise.
11946 (vec_vctzd): Likewise.
11947 (vec_vctzh): Likewise.
11948 (vec_vctzw): Likewise.
11949 (vec_vprtyb): Add ISA 3.0 vector parity support.
11950 (vec_vprtybd): Likewise.
11951 (vec_vprtybw): Likewise.
11952 (vec_vprtybq): Likewise.
11953 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document
11954 the ISA 3.0 vector count trailing zeros and vector parity built-in
11955 functions.
11956
11957 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
11958
11959 * tree-ssa-reassoc.c (sort_by_operand_rank): Skip checking gimple_bb
11960 when there is stmt_to_insert.
11961
11962 2016-05-24 Martin Sebor <msebor@redhat.com>
11963
11964 PR c++/71147
11965 * tree.h (complete_or_array_type_p): New inline function.
11966
11967 2016-05-24 Jakub Jelinek <jakub@redhat.com>
11968
11969 * config/i386/i386.h (TARGET_AVOID_4BYTE_PREFIXES): Define.
11970 * config/i386/constraints.md (Yr): Test TARGET_AVOID_4BYTE_PREFIXES
11971 rather than X86_TUNE_AVOID_4BYTE_PREFIXES.
11972
11973 * config/i386/sse.md (<sse4_1>_round<ssemodesuffix><avxsizesuffix>):
11974 Limit 1st alternative to noavx isa, split 2nd alternative into one
11975 noavx and one avx alternative, use *x and Bm in the former and
11976 x and m in the latter.
11977
11978 * config/i386/sse.md (vec_set<mode>_0): Use sse4_noavx isa instead
11979 of sse4 for the first alternative, drop %v from the template
11980 and d operand modifier. Split second alternative into one sse4_noavx
11981 and one avx alternative, use *x instead of *v in the former and v
11982 instead of *v in the latter.
11983 (*sse4_1_extractps): Use noavx isa instead of * for the first
11984 alternative, drop %v from the template. Split second alternative into
11985 one noavx and one avx alternative, use *x instead of *v in the
11986 former and v instead of *v in the latter.
11987 (<vi8_sse4_1_avx2_avx512>_movntdqa): Guard the first 2 alternatives
11988 with noavx and the last one with avx.
11989 (sse4_1_phminposuw): Guard first alternative with noavx isa,
11990 split the second one into one noavx and one avx alternative,
11991 use *x and Bm in the former and x and m in the latter one.
11992 (<sse4_1>_ptest<mode>): Use noavx instead of * for the first two
11993 alternatives.
11994
11995 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Limit
11996 first two alternatives to noavx, use *x instead of *v in the second
11997 one, add avx alternative without *.
11998 (sse4_1_<code>v4qiv4si2<mask_name>, sse4_1_<code>v4hiv4si2<mask_name>,
11999 sse4_1_<code>v2qiv2di2<mask_name>, sse4_1_<code>v2hiv2di2<mask_name>,
12000 sse4_1_<code>v2siv2di2<mask_name>): Likewise.
12001
12002 2016-05-24 Jeff Law <law@redhat.com>
12003
12004 * tree-ssa-threadbackwards.c (convert_and_register_jump_thread_path):
12005 New function, extracted from...
12006 (fsm_find_control_statement_thread_paths): Here. Use the new function.
12007 Allow simple copies and constant initializations in the SSA chain.
12008
12009 2016-05-24 Marek Polacek <polacek@redhat.com>
12010
12011 PR c/71249
12012 * gimplify.c (gimplify_switch_expr): Look into the innermost lexical
12013 scope.
12014
12015 2016-05-24 Jakub Jelinek <jakub@redhat.com>
12016
12017 PR c++/71257
12018 * tree-vect-stmts.c (vectorizable_simd_clone_call): Handle
12019 SIMD_CLONE_ARG_TYPE_LINEAR_REF_CONSTANT_STEP like
12020 SIMD_CLONE_ARG_TYPE_LINEAR_CONSTANT_STEP. Add
12021 SIMD_CLONE_ARG_TYPE_LINEAR_VAL_CONSTANT_STEP and
12022 SIMD_CLONE_ARG_TYPE_LINEAR_UVAL_CONSTANT_STEP cases explicitly.
12023
12024 2016-05-24 Richard Biener <rguenther@suse.de>
12025
12026 PR tree-optimization/71240
12027 * tree-ssa-math-opts.c (init_symbolic_number): Verify the source
12028 has integral type.
12029
12030 2016-05-24 Richard Biener <rguenther@suse.de>
12031
12032 PR tree-optimization/71230
12033 * tree-ssa-reassoc.c (zero_one_operation): Handle negate special ops.
12034
12035 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12036
12037 * tree-vectorizer.h (vectorizable_comparison): Delete.
12038 * tree-vect-loop.c (vectorizable_reduction): Remove redundant
12039 PURE_SLP_STMT check.
12040 * tree-vect-stmts.c (vectorizable_call): Likewise.
12041 (vectorizable_simd_clone_call): Likewise.
12042 (vectorizable_conversion): Likewise.
12043 (vectorizable_assignment): Likewise.
12044 (vectorizable_shift): Likewise.
12045 (vectorizable_operation): Likewise.
12046 (vectorizable_load): Likewise.
12047 (vectorizable_condition): Likewise.
12048 (vectorizable_store): Likewise. Assert that we don't have
12049 hybrid SLP.
12050 (vectorizable_comparison): Make static. Remove redundant
12051 PURE_SLP_STMT check.
12052 (vect_transform_stmt): Assert that we always have an slp_node
12053 if PURE_SLP_STMT.
12054
12055 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12056
12057 * config/arm/neon.md (ashldi3_neon): Replace comparison of INTVAL of
12058 operands[2] against 1 with comparison against CONST1_RTX.
12059 (<shift>di3_neon): Likewise.
12060 * config/arm/predicates.md (const0_operand): Replace with comparison
12061 against CONST0_RTX.
12062
12063 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12064
12065 * config/arm/arm.md (ashldi3): Replace comparison of INTVAL of
12066 operands[2] against 1 with comparison against CONST1_RTX.
12067 (ashrdi3): Likewise.
12068 (lshrdi3): Likewise.
12069 (ashlsi3): Replace cast of INTVAL to unsigned HOST_WIDE_INT with
12070 UINTVAL.
12071 (ashrsi3): Likewise.
12072 (lshrsi3): Likewise.
12073 (rotrsi3): Likewise.
12074 (define_split above *compareqi_eq0): Likewise.
12075 (define_split above "prologue"): Likewise.
12076 * config/arm/arm.c (thumb1_size_rtx_costs): Likewise.
12077 * config/arm/predicates.md (shift_operator): Likewise.
12078 (shift_nomul_operator): Likewise.
12079 (sat_shift_operator): Likewise.
12080 (thumb1_cmp_operand): Likewise.
12081 (const_neon_scalar_shift_amount_operand): Replace manual range
12082 check with IN_RANGE.
12083 * config/arm/thumb1.md (define_peephole2 above *thumb_subdi3):
12084 Replace cast of INTVAL to unsigned HOST_WIDE_INT with UINTVAL.
12085
12086 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12087
12088 * config/arm/arm.md (andsi3): Replace cast of 1 to HOST_WIDE_INT
12089 with HOST_WIDE_INT_1.
12090 (insv): Likewise.
12091 * config/arm/arm.c (optimal_immediate_sequence): Replace cast of
12092 1 to unsigned HOST_WIDE_INT with HOST_WIDE_INT_1U.
12093 (arm_canonicalize_comparison): Likewise.
12094 (thumb1_rtx_costs): Replace cast of 1 to HOST_WIDE_INT with
12095 HOST_WIDE_INT_1.
12096 (thumb1_size_rtx_costs): Likewise.
12097 (vfp_const_double_index): Replace cast of 1 to unsigned
12098 HOST_WIDE_INT with HOST_WIDE_INT_1U.
12099 (get_jump_table_size): Replace cast of 1 to HOST_WIDE_INT with
12100 HOST_WIDE_INT_1.
12101 (arm_asan_shadow_offset): Replace cast of 1 to unsigned
12102 HOST_WIDE_INT with HOST_WIDE_INT_1U.
12103 * config/arm/neon.md (vec_set<mode>): Replace cast of 1 to
12104 HOST_WIDE_INT with HOST_WIDE_INT_1.
12105
12106 2016-05-24 Marek Polacek <polacek@redhat.com>
12107
12108 * tree-cfg.h (should_remove_lhs_p): New predicate.
12109 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Use it.
12110 * gimplify.c (gimplify_modify_expr): Likewise.
12111 * tree-cfg.c (verify_gimple_call): Likewise.
12112 * tree-cfgcleanup.c (fixup_noreturn_call): Likewise.
12113 * gimple-fold.c: Include "tree-cfg.h".
12114 (gimple_fold_call): Use should_remove_lhs_p.
12115
12116 2016-05-24 Richard Biener <rguenther@suse.de>
12117
12118 PR tree-optimization/71253
12119 * cfganal.h (control_dependences): Make robust against edge
12120 and BB removal.
12121 (control_dependences::control_dependences): Remove edge_list argument.
12122 (control_dependences::get_edge): Remove.
12123 (control_dependences::get_edge_src): Add.
12124 (control_dependences::get_edge_dest): Likewise.
12125 (control_dependences::m_el): Make a vector of edge src/dest index.
12126 * cfganal.c (control_dependences::find_control_dependence): Adjust.
12127 (control_dependences::control_dependences): Likewise.
12128 (control_dependences::~control_dependence): Likewise.
12129 (control_dependences::get_edge): Remove.
12130 (control_dependences::get_edge_src): Add.
12131 (control_dependences::get_edge_dest): Likewise.
12132 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Use
12133 get_edge_src.
12134 (perform_tree_ssa_dce): Adjust.
12135 * tree-loop-distribution.c (create_edge_for_control_dependence): Use
12136 get_edge_src.
12137 (pass_loop_distribution::execute): Adjust. Do loop destroying
12138 conditional on changed.
12139
12140 2016-05-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12141
12142 PR target/69857
12143 * config/arm/arm.c (gen_operands_ldrd_strd): Remove bogus early
12144 return. Reindent transformation comment and mention the ARM state
12145 behavior.
12146
12147 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12148
12149 PR middle-end/71252
12150 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Add stmt_to_insert
12151 after build_and_add_sum creates new use stmt.
12152
12153 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12154
12155 * tree-vect-stmts.c (vectorizable_load): Reorder checks so that
12156 load_lanes/grouped_load classification comes first. Don't check
12157 whether the vectorization factor is a multiple of the group size
12158 for load_lanes.
12159
12160 2016-05-24 Richard Sandiford <richard.sandiford@arm.com>
12161
12162 * tree-vect-data-refs.c (vect_analyze_group_access_1): Set
12163 GROUP_GAP for single-element interleaving.
12164 * tree-vect-stmts.c (vectorizable_load): Remove force_peeling
12165 variable.
12166
12167 2016-05-24 Richard Biener <rguenther@suse.de>
12168
12169 PR middle-end/70434
12170 PR c/69504
12171 * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
12172 bases which are accessed with non-invariant indices.
12173 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
12174 constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.
12175
12176 2016-05-24 Kugan Vivekanandarajah <kuganv@linaro.org>
12177
12178 PR middle-end/71170
12179 * tree-ssa-reassoc.c (struct operand_entry): Add field stmt_to_insert.
12180 (add_to_ops_vec): Add stmt_to_insert.
12181 (add_repeat_to_ops_vec): Init stmt_to_insert.
12182 (insert_stmt_before_use): New.
12183 (transform_add_to_multiply): Remove mult_stmt insertion and add it
12184 to ops vector.
12185 (get_ops): Init stmt_to_insert.
12186 (maybe_optimize_range_tests): Likewise.
12187 (rewrite_expr_tree): Insert stmt_to_insert before use stmt.
12188 (rewrite_expr_tree_parallel): Likewise.
12189 (reassociate_bb): Likewise.
12190
12191 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12192
12193 PR target/71201
12194 * config/rs6000/altivec.md (altivec_vperm_<mode>_internal): Drop
12195 ISA 3.0 xxperm fusion alternative.
12196 (altivec_vperm_v8hiv16qi): Likewise.
12197 (altivec_vperm_<mode>_uns_internal): Likewise.
12198 (vperm_v8hiv4si): Likewise.
12199 (vperm_v16qiv8hi): Likewise.
12200
12201 2016-05-23 Michael Meissner <meissner@linux.vnet.ibm.com>
12202 Kelvin Nilsen <kelvin@gcc.gnu.org>
12203
12204 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Generate
12205 vpermr/xxpermr on ISA 3.0.
12206 (altivec_expand_vec_perm_le): Likewise.
12207 * config/rs6000/altivec.md (UNSPEC_VPERMR): New unspec.
12208 (altivec_vpermr_<mode>_internal): Add VPERMR/XXPERMR support for
12209 ISA 3.0.
12210
12211 2016-05-23 Uros Bizjak <ubizjak@gmail.com>
12212
12213 * config/i386/i386.h (IS_STACK_MODE): Enable for
12214 TARGET_MIX_SSE_I387. Rewrite using X87_FLOAT_MODE_P and
12215 SSE_FLOAT_MODE_P macros.
12216 * config/i386/i386.c (ix86_preferred_reload_class): Use
12217 IS_STACK_MODE, INTEGER_CLASS_P, FLOAT_CLASS_P and Q_CLASS_P macros.
12218 Cleanup regclass processing for CONST_DOUBLE_P.
12219 (ix86_preferred_output_reload_class): Use IS_STACK_MODE macro.
12220 (ix86_rtx_costs): Remove redundant TARGET_80387 check
12221 with IS_STACK_MODE macro.
12222 * config/i386/i386.md: Replace SSE_FLOAT_MODE_P (DFmode)
12223 with TARGET_SSE2.
12224 (*movdf_internal): Use IS_STACK_MODE macro.
12225 (*movsf_internal): Ditto.
12226
12227 2016-05-23 Marc Glisse <marc.glisse@inria.fr>
12228
12229 * match.pd (a * (1 << b), ~x & ~y, ~X ^ ~Y, (X ^ Y) ^ Y, ~ (-A),
12230 ~ (A - 1), ~(~X >> Y), ~(~X >>r Y)): Relax constraints.
12231
12232 2016-05-23 Jeff Law <law@redhat.com>
12233
12234 * tree-ssa-threadbackward.c (profitable_jump_thread_path): New function
12235 extracted from ...
12236 (fsm_find_control_statement_thread_paths): Call it.
12237
12238 2016-05-23 Martin Jambor <mjambor@suse.cz>
12239
12240 PR ipa/71234
12241 * ipa-cp.c (ipa_get_indirect_edge_target_1): Only check value of
12242 from_global_constant if t is not NULL.
12243
12244 2016-05-23 Marek Polacek <polacek@redhat.com>
12245
12246 PR c/49859
12247 * common.opt (Wswitch-unreachable): New option.
12248 * doc/invoke.texi: Document -Wswitch-unreachable.
12249 * gimplify.c (gimplify_switch_expr): Implement the -Wswitch-unreachable
12250 warning.
12251
12252 2016-05-23 Bin Cheng <bin.cheng@arm.com>
12253
12254 * tree-ssa-address.c (copy_ref_info): Check NULL TMR_STEP when
12255 TMR_INDEX is non-NULL.
12256
12257 2016-05-23 Richard Biener <rguenther@suse.de>
12258
12259 PR tree-optimization/71230
12260 * tree-ssa-reassoc.c (acceptable_pow_call): Move initial condition...
12261 (try_special_add_to_ops): ... here. Always test for single-use.
12262
12263 2016-05-23 Martin Jambor <mjambor@suse.cz>
12264
12265 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Create an empty
12266 default block if a PHI node in the original one would be resized.
12267
12268 2016-05-23 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
12269
12270 PR tree-optimization/58135
12271 * tree-vect-slp.c: When group size is not multiple
12272 of vector size, allow splitting of store group at
12273 vector boundary.
12274
12275 2016-05-23 Christophe Lyon <christophe.lyon@linaro.org>
12276
12277 * config/arm/arm_neon.h (vtst_p16, vtstq_p16): New.
12278
12279 2016-05-22 Jakub Jelinek <jakub@redhat.com>
12280
12281 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
12282 vec_set_hi_<mode><mask_name>): Add && <mask_avx512dq_condition>
12283 condition. For !TARGET_AVX512DQ, emit 32x4 instruction instead
12284 of 64x2.
12285
12286 * config/i386/sse.md (vec_set_lo_v16hi, vec_set_hi_v16hi,
12287 vec_set_lo_v32qi, vec_set_hi_v32qi): Add alternative with
12288 v constraint instead of x and vinserti32x4 insn.
12289
12290 * config/i386/sse.md (i128vldq): New mode iterator.
12291 (avx2_vbroadcasti128_<mode>, avx_vbroadcastf128_<mode>): Add
12292 avx512dq and avx512vl alternatives.
12293
12294 * config/i386/sse.md (avx2_vec_dupv4df): Use v instead of x
12295 constraint, use maybe_evex prefix instead of vex.
12296 (vec_dupv4sf): Use v constraint instead of x for output
12297 operand except for noavx alternative, use Yv constraint
12298 instead of x for input. Use maybe_evex prefix instead of vex.
12299 (*vec_dupv4si): Likewise.
12300 (*vec_dupv2di): Likewise.
12301
12302 2016-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
12303
12304 PR middle-end/40921
12305 * tree-ssa-reassoc.c (try_special_add_to_ops): New.
12306 (linearize_expr_tree): Call try_special_add_to_ops.
12307 (reassociate_bb): Convert MULT_EXPR by (-1) to NEGATE_EXPR.
12308
12309 2016-05-21 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
12310
12311 * config/avr/avr.c (avr_expand_prologue): Add INCOMING_FRAME_SP_OFFSET
12312 to computed stack_usage.
12313
12314 2016-05-21 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
12315
12316 PR target/71103
12317 * config/avr/avr.md (define_expand "mov<mode>"): If the source
12318 operand is subreg (symbol_ref) then move the symbol ref to register.
12319
12320 2016-05-21 Jan Hubicka <hubicka@ucw.cz>
12321
12322 * tree.c (array_at_struct_end_p): Look through MEM_REF.
12323
12324 2016-05-21 Kugan Vivekanandarajah <kuganv@linaro.org>
12325
12326 PR middle-end/71179
12327 * tree-ssa-reassoc.c (transform_add_to_multiply): Disallow float
12328 VECTOR type.
12329
12330 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
12331
12332 * tree-vrp.c (compare_values_warnv): Simplify handling of symbolic
12333 ranges by calling get_single_symbol and tidy up. Look more closely
12334 into NAME + CST1 vs CST2 comparisons if type overflow is undefined.
12335
12336 2016-05-20 Jeff Law <law@redhat.com>
12337
12338 * bitmap.c (bitmap_find_bit): Remove useless test.
12339
12340 2016-05-20 Segher Boessenkool <segher@kernel.crashing.org>
12341
12342 * function.c (thread_prologue_and_epilogue_insns): Commit the
12343 insertion of the epilogue.
12344
12345 2016-05-20 Martin Jambor <mjambor@suse.cz>
12346
12347 PR tree-optimization/70884
12348 * tree-sra.c (initialize_constant_pool_replacements): Do not check
12349 should_scalarize_away_bitmap and cannot_scalarize_away_bitmap bits.
12350 (sort_and_splice_var_accesses): Do not consider multiple scalar reads
12351 of constant pool data as a reason for scalarization.
12352
12353 2016-05-20 Eric Botcazou <ebotcazou@adacore.com>
12354
12355 * config/arm/arm.c (arm_expand_prologue): Set the stack usage to 0
12356 for naked functions.
12357 (thumb1_expand_prologue): Likewise.
12358
12359 2016-05-20 Nathan Sidwell <nathan@acm.org>
12360
12361 * config/nvptx/nptx.c (nvptx_option_override): Only set
12362 flag_toplevel_reorder, if not explicitly specified. Set
12363 flag_no_common, unless explicitly specified.
12364
12365 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12366
12367 * calls.c (can_implement_as_sibling_call_p): Mark param
12368 reg_parm_stack_space with ATTRIBUTE_UNUSED.
12369
12370 2016-05-20 Uros Bizjak <ubizjak@gmail.com>
12371
12372 * config/i386/i386.c (ix86_rtx_costs) <case CONST_DOUBLE>:
12373 Use IS_STACK_MODE when calculating cost of standard 80387 constants.
12374 Fallthru to CONST_VECTOR case to calculate cost of standard SSE
12375 constants.
12376 <case CONST_WIDE_INT>: Calculate cost of (MEM (SYMBOL_REF)).
12377 (ix86_legitimate_constant_p): Use CASE_CONST_SCALAR_INT
12378 and CASE_CONST_ANY.
12379
12380 2016-05-20 Cesar Philippidis <cesar@codesourcery.com>
12381
12382 * config/nvptx/nvptx.md (sincossf3): New pattern.
12383
12384 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12385
12386 * calls.c (maybe_complain_about_tail_call): New function.
12387 (initialize_argument_information): Call
12388 maybe_complain_about_tail_call when clearing *may_tailcall.
12389 (can_implement_as_sibling_call_p): Call
12390 maybe_complain_about_tail_call when returning false.
12391 (expand_call): Read CALL_EXPR_MUST_TAIL_CALL and, if set,
12392 ensure try_tail_call is set. Call maybe_complain_about_tail_call
12393 if tail-call optimization fails.
12394 * cfgexpand.c (expand_call_stmt): Initialize
12395 CALL_EXPR_MUST_TAIL_CALL from gimple_call_must_tail_p.
12396 * gimple-pretty-print.c (dump_gimple_call): Dump
12397 gimple_call_must_tail_p.
12398 * gimple.c (gimple_build_call_from_tree): Call
12399 gimple_call_set_must_tail with the value of
12400 CALL_EXPR_MUST_TAIL_CALL.
12401 * gimple.h (enum gf_mask): Add GF_CALL_MUST_TAIL_CALL.
12402 (gimple_call_set_must_tail): New function.
12403 (gimple_call_must_tail_p): New function.
12404 * print-tree.c (print_node): Update printing of TREE_STATIC
12405 to reflect its use for CALL_EXPR_MUST_TAIL_CALL.
12406 * tree-core.h (struct tree_base): Add MUST_TAIL_CALL to the
12407 trailing comment listing applicable flags.
12408 * tree.h (CALL_EXPR_MUST_TAIL_CALL): New macro.
12409
12410 2016-05-20 David Malcolm <dmalcolm@redhat.com>
12411
12412 * calls.c (expand_call): Move "Rest of purposes for tail call
12413 optimizations to fail" to...
12414 (can_implement_as_sibling_call_p): ...this new function, and
12415 split into multiple "if" statements.
12416
12417 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12418
12419 * cfgloop.h (expected_loop_iterations_unbounded,
12420 expected_loop_iterations): Unconstify.
12421 * cfgloopanal.c (expected_loop_iterations_unbounded): Sanity check the
12422 profile with known upper bound; return 3 when profile is absent.
12423 (expected_loop_iterations): Update.
12424
12425 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12426
12427 * loop-doloop.c (doloop_optimize): Use get_estimated_loop_iterations_int
12428 and get_max_loop_iterations_int.
12429
12430 2016-05-20 Jan Hubicka <hubicka@ucw.cz>
12431
12432 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can not produce
12433 realistic upper bounds here.
12434
12435 2016-05-20 Jakub Jelinek <jakub@redhat.com>
12436
12437 PR c++/71210
12438 * gimple-fold.c (gimple_fold_call): Do not remove lhs of noreturn
12439 calls if the LHS is variable length or has addressable type.
12440 If targets[0]->decl is a noreturn call with void return type and
12441 zero arguments, adjust fntype and remove lhs in that case.
12442
12443 2016-05-20 Marc Glisse <marc.glisse@inria.fr>
12444
12445 PR tree-optimization/71079
12446 PR tree-optimization/71206
12447 * match.pd ((X ^ Y) ^ (X ^ Z)): Convert the arguments.
12448
12449 2016-05-20 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12450
12451 * tree-vectorizer.c (get_vec_alignment_for_decl): New static function.
12452 (get_vec_alignment_for_array_decl): Likewise.
12453 (get_vec_alignment_for_record_decl): Likewise.
12454 (increase_alignment::execute): Move code to find alignment to
12455 get_vec_alignment_for_array_decl and call get_vec_alignment_for_decl.
12456 (type_align_map): New hash_map.
12457
12458 2016-05-20 Richard Guenther <rguenther@suse.de>
12459
12460 PR tree-optimization/29756
12461 * tree.def (BIT_INSERT_EXPR): New tcc_expression tree code.
12462 * expr.c (expand_expr_real_2): Handle BIT_INSERT_EXPR.
12463 * fold-const.c (operand_equal_p): Likewise.
12464 (fold_ternary_loc): Add constant folding of BIT_INSERT_EXPR.
12465 * gimplify.c (gimplify_expr): Handle BIT_INSERT_EXPR.
12466 * tree-inline.c (estimate_operator_cost): Likewise.
12467 * tree-pretty-print.c (dump_generic_node): Likewise.
12468 * tree-ssa-operands.c (get_expr_operands): Likewise.
12469 * cfgexpand.c (expand_debug_expr): Likewise.
12470 * gimple-pretty-print.c (dump_ternary_rhs): Likewise.
12471 * gimple.c (get_gimple_rhs_num_ops): Handle BIT_INSERT_EXPR.
12472 * tree-cfg.c (verify_gimple_assign_ternary): Verify BIT_INSERT_EXPR.
12473 * tree-ssa.c (non_rewritable_lvalue_p): We can rewrite
12474 vector inserts using BIT_FIELD_REF or MEM_REF on the lhs.
12475 (execute_update_addresses_taken): Do it.
12476
12477 2016-05-20 Richard Biener <rguenther@suse.de>
12478
12479 PR tree-optimization/71185
12480 * tree-ssa-loop-prefetch.c (gather_memory_references): Drop
12481 register operations.
12482
12483 2016-05-20 Richard Biener <rguenther@suse.de>
12484
12485 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Use
12486 gimple_seq_add_seq_without_update.
12487 (release_bb_predicate): Assert we have no operands to free.
12488 (if_convertible_loop_p_1): Calculate post dominators later.
12489 Do not free BB predicates here.
12490 (combine_blocks): Do not recompute BB predicates.
12491 (version_loop_for_if_conversion): Save BB predicates around
12492 loop versioning.
12493
12494 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12495
12496 * function.c (make_epilogue_seq): Remove epilogue_end parameter.
12497 (thread_prologue_and_epilogue_insns): Remove bb_flags. Restructure
12498 code. Ignore sibcalls on EDGE_IGNORE edges.
12499 * shrink-wrap.c (handle_simple_exit): New function. Set EDGE_IGNORE
12500 on edges for sibcalls that run without prologue. The rest of the
12501 function is combined from...
12502 (fix_fake_fallthrough_edge): ... this, and ...
12503 (try_shrink_wrapping): ... a part of this. Remove the bb_with
12504 function argument, make it a local variable.
12505
12506 2016-05-19 Sandra Loosemore <sandra@codesourcery.com>
12507
12508 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Allow
12509 --disable-sjlj-exceptions for TARGET_BI_ARCH to select DWARF-2 EH
12510 for 32-bit mode and SEH for 64-bit.
12511 * config/i386/mingw32.h (SHARED_LIBGCC_UNDEFS_SPEC): Handle
12512 TARGET_64BIT_DEFAULT.
12513
12514 2016-05-19 Ryan Burn <contact@rnburn.com>
12515
12516 * Makefile.in (GTFILES): Add cilk.h and cilk-common.c.
12517 * gengtype.c (open_base_files): Add cilk.h to ifiles.
12518
12519 2016-05-19 Uros Bizjak <ubizjak@gmail.com>
12520
12521 * sched-deps.c (sched_analyze_2) <case TRAP_IF>: Also
12522 force pending loads from memory.
12523
12524 2016-05-19 Kelvin Nilsen <kelvin@gcc.gnu.org>
12525
12526 * config/rs6000/altivec.md (UNSPEC_DARN): New unspec constant.
12527 (UNSPEC_DARN_32): New unspec constant.
12528 (UNSPEC_DARN_RAW): New unspec constant.
12529 (darn_32): New instruction.
12530 (darn_raw): New instruction.
12531 (darn): New instruction.
12532 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_0): Add
12533 support and documentation for this macro.
12534 (BU_P9_MISC_1): New macro definition.
12535 (BU_P9_64BIT_MISC_0): New macro definition.
12536 (BU_P9_MISC_0): New macro definition.
12537 (darn_32): New builtin definition.
12538 (darn_raw): New builtin definition.
12539 (darn): New builtin definition.
12540 * config/rs6000/rs6000.c: Add #define RS6000_BUILTIN_0 and #undef
12541 RS6000_BUILTIN_0 directives to surround each occurrence of
12542 #include "rs6000-builtin.def".
12543 (rs6000_builtin_mask_calculate): Add in the RS6000_BTM_MODULO and
12544 RS6000_BTM_64BIT flags to the returned mask, depending on
12545 configuration.
12546 (def_builtin): Correct an error in the assignments made to the
12547 debugging variable attr_string.
12548 (rs6000_expand_builtin): Add support for no-operand built-in
12549 functions.
12550 (builtin_function_type): Remove fatal_error assertion that is no
12551 longer valid.
12552 (rs6000_common_init_builtins): Add support for no-operand built-in
12553 functions.
12554 * config/rs6000/rs6000.h (RS6000_BTM_MODULO): New macro
12555 definition.
12556 (RS6000_BTM_PURE): Enhance comment to clarify intent of this flag
12557 definition.
12558 (RS6000_BTM_64BIT): New macro definition.
12559 * doc/extend.texi: Document __builtin_darn (void),
12560 __builtin_darn_raw (void), and __builtin_darn_32 (void) built-in
12561 functions.
12562
12563 2016-05-19 Jan Hubicka <hubicka@ucw.cz>
12564
12565 * tree-vect-loop.c (vect_analyze_loop_2): Use also
12566 max_loop_iterations_int.
12567
12568 2016-05-19 Marek Polacek <polacek@redhat.com>
12569
12570 PR tree-optimization/71031
12571 * tree-vrp.c (extract_range_from_binary_expr_1): Turn assert into a
12572 condition and adjust the code a bit.
12573
12574 2016-05-19 Martin Liska <mliska@suse.cz>
12575
12576 * tree-vect-stmts.c (vectorizable_simd_clone_call): Utilize
12577 auto_vec instead of vec.
12578
12579 2016-05-19 Martin Liska <mliska@suse.cz>
12580
12581 * tree-parloops.c (oacc_entry_exit_ok): Release a vector.
12582
12583 2016-05-19 Martin Liska <mliska@suse.cz>
12584
12585 * tree-if-conv.c (ifcvt_repair_bool_pattern): Utilize auto_vecs.
12586
12587 2016-05-19 Martin Liska <mliska@suse.cz>
12588
12589 * ipa-pure-const.c (set_function_state): Remove an existing
12590 funct_state.
12591 (remove_node_data): Do not free it as it's released
12592 in set_function_state.
12593
12594 2016-05-19 Martin Liska <mliska@suse.cz>
12595
12596 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Release
12597 bitmap.
12598
12599 2016-05-19 Martin Liska <mliska@suse.cz>
12600
12601 * omp-simd-clone.c (simd_clone_adjust): Release vector.
12602
12603 2016-05-19 Martin Liska <mliska@suse.cz>
12604
12605 * tree-ssa-reassoc.c (eliminate_duplicate_pair): Truncate
12606 an auto_vec instead of re-creating it.
12607
12608 2016-05-19 Martin Liska <mliska@suse.cz>
12609
12610 * tree-ssa-loop-prefetch.c (determine_loop_nest_reuse): Use
12611 auto_vec instead of vec.
12612
12613 2016-05-19 Martin Liska <mliska@suse.cz>
12614
12615 * lto-section-in.c (lto_get_section_data): Call
12616 lto_check_version with additional argument.
12617 * lto-streamer.c (lto_check_version): Add new argument.
12618 * lto-streamer.h (lto_check_version): Likewise.
12619
12620 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12621
12622 * config/arm/arm.c (arm_new_rtx_costs, SIGN_EXTEND case):
12623 Don't add cost of inner memory when handling sign-extended loads.
12624
12625 2016-05-19 Ilya Enkovich <ilya.enkovich@intel.com>
12626
12627 PR rtl-optimization/71148
12628 * cse.c (cse_main): Free dominance info.
12629 (rest_of_handle_cse): Don't free dominance info.
12630 (rest_of_handle_cse2): Likewise.
12631 (rest_of_handle_cse_after_global_opts): Likewise.
12632
12633 2016-05-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12634
12635 PR target/71056
12636 * config/arm/arm-builtins.c (arm_builtin_vectorized_function): Return
12637 NULL_TREE early if NEON is not available. Remove now redundant check
12638 in ARM_CHECK_BUILTIN_MODE.
12639
12640 2016-05-19 Maxim Ostapenko <m.ostapenko@samsung.com>
12641
12642 PR sanitizer/64354
12643 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add new
12644 builtin __SANITIZE_THREAD__ macros for fsanitize=thread switch.
12645 * doc/cpp.texi: Document new macros.
12646
12647 2016-05-19 Bin Cheng <bin.cheng@arm.com>
12648
12649 PR tree-optimization/69848
12650 * tree-vect-loop.c (vectorizable_reduction): Don't factor
12651 comparison expr out of VEC_COND_EXPR for COND_REDUCTION.
12652
12653 2016-05-19 Segher Boessenkool <segher@kernel.crashing.org>
12654
12655 * function.c (thread_prologue_and_epilogue_insn): Move the
12656 "goto epilogue_done" one block later.
12657
12658 2016-05-19 Richard Biener <rguenther@suse.de>
12659
12660 PR tree-optimization/70729
12661 * passes.def: Move LIM pass before PRE. Remove no longer
12662 required copyprop and move first DCE out of the loop pipeline.
12663
12664 2016-05-18 David Malcolm <dmalcolm@redhat.com>
12665
12666 PR driver/69265
12667 * Makefile.in (GCC_OBJS): Move spellcheck.o to...
12668 (OBJS-libcommon-target): ...here.
12669 * opts-common.c: Include spellcheck.h.
12670 (cmdline_handle_error): Build a vec of valid options and use it
12671 to suggest provide hints for misspelled arguments.
12672
12673 2016-05-18 Jakub Jelinek <jakub@redhat.com>
12674
12675 PR c++/71100
12676 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Don't drop
12677 lhs if it has TREE_ADDRESSABLE type.
12678
12679 2016-05-18 Uros Bizjak <ubizjak@gmail.com>
12680
12681 PR target/71145
12682 * config/alpha/alpha.md (trap): Add (use (reg:DI 29)).
12683 (*exception_receiver_1): Return "#" for TARGET_EXPLICIT_RELOCS.
12684
12685 2016-05-18 Martin Jambor <mjambor@suse.cz>
12686
12687 PR ipa/69708
12688 * ipa-cp.c (ipa_get_jf_pass_through_result): Allow non-ip constant
12689 input for NOP_EXPR pass-through functions.
12690 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Allow
12691 aggregate global constant VAR_DECLs in constant jump functions.
12692
12693 2016-05-18 Martin Jambor <mjambor@suse.cz>
12694
12695 PR ipa/69708
12696 * ipa-prop.c (parm_preserved_before_stmt_p): Return true for loads
12697 from TREE_READONLY parameters.
12698
12699 2016-05-18 Martin Jambor <mjambor@suse.cz>
12700
12701 PR ipa/69708
12702 * cgraph.h (cgraph_indirect_call_info): New field
12703 guaranteed_unmodified.
12704 * ipa-cp.c (ipa_get_indirect_edge_target_1): Also pass parameter value
12705 to ipa_find_agg_cst_for_param, check guaranteed_unmodified when
12706 appropriate.
12707 * ipa-inline-analysis.c (evaluate_conditions_for_known_args): Also
12708 pass the parameter value to ipa_find_agg_cst_for_param.
12709 * ipa-prop.c (ipa_load_from_parm_agg): New parameter
12710 guaranteed_unmodified, store AA results there instead of bailing out
12711 if present.
12712 (ipa_note_param_call): Also initialize guaranteed_unmodified flag.
12713 (ipa_analyze_indirect_call_uses): Also set guaranteed_unmodified flag.
12714 (find_constructor_constant_at_offset): New function.
12715 (ipa_find_agg_cst_from_init): Likewise.
12716 (ipa_find_agg_cst_for_param): Also seearch for aggregate values in
12717 static initializers of contants, report back through a new paameter
12718 from_global_constant if that was the case.
12719 (try_make_edge_direct_simple_call): Also pass parameter value to
12720 ipa_find_agg_cst_for_param, check guaranteed_unmodified when
12721 appropriate.
12722 (ipa_write_indirect_edge_info): Stream new flag guaranteed_unmodified.
12723 (ipa_read_indirect_edge_info): Likewise.
12724 * ipa-prop.h (ipa_find_agg_cst_for_param): Update declaration.
12725 (ipa_load_from_parm_agg): Likewise.
12726
12727 2016-05-18 Jiong Wang <jiong.wang@arm.com>
12728
12729 PR rtl-optimization/71150
12730 * lra-constraint (process_addr_reg): Guard "in_class_p" with REG_P
12731 check.
12732
12733 2016-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
12734
12735 PR target/70915
12736 * config/rs6000/constraints.md (wE constraint): New constraint
12737 for a vector constant that can be loaded with XXSPLTIB.
12738 (wM constraint): New constraint for a vector constant of a 1's.
12739 (wS constraint): New constraint for a vector constant that can be
12740 loaded with XXSPLTIB and a vector sign extend instruction.
12741 * config/rs6000/predicates.md (xxspltib_constant_split): New
12742 predicates for wE/wS constraints.
12743 (xxspltib_constant_nosplit): Likewise.
12744 (easy_vector_constant): Add support for constants that can be
12745 loaded via XXSPLTIB.
12746 (all_ones_constant): New predicate for vector constant with all
12747 1's set.
12748 (splat_input_operand): Add support for ISA 3.0 word splat operations.
12749 * config/rs6000/rs6000.c (xxspltib_constant_p): New function to
12750 return if a constant can be loaded with the ISA 3.0 XXSPLTIB
12751 instruction and possibly with a sign extension.
12752 (output_vec_const_move): Add support for XXSPLTIB. If we are
12753 loading up 0/-1 into Altivec registers, prefer using VSPLTISW
12754 instead of XXLXOR/XXLORC.
12755 (rs6000_expand_vector_init): Add support for ISA 3.0 word splat
12756 operations.
12757 (rs6000_legitimize_reload_address): Likewise.
12758 (rs6000_output_move_128bit): Use output_vec_const_move to emit
12759 constants.
12760 * config/rs6000/vsx.md (VSX_M): Add TImode (if -mvsx-timode) and
12761 combine VSX_M and VSX_M2 into one iterator.
12762 (VSX_M2): Likewise.
12763 (VSINT_84): New iterators for loading constants with XXSPLTIB.
12764 (VSINT_842): Likewise.
12765 (UNSPEC_VSX_SIGN_EXTEND): New UNSPEC.
12766 (xxspltib_v16qi): New insns to load up constants with the ISA 3.0
12767 XXSPLTIB instruction.
12768 (xxspltib_<mode>_nosplit): Likewise.
12769 (xxspltib_<mode>_split): New insn to load up constants with
12770 XXSPLTIB and a sign extend instruction.
12771 (vsx_mov<mode>): Replace single move that handled all vector types
12772 with separate 32-bit and 64-bit moves. Combine the movti_<bit>
12773 moves (when -mvsx-timode is in effect) into the main vector
12774 moves. Eliminate separate moves for <VSr> <VSa>, where the
12775 preferred register class (<VSr>) is listed first, and the
12776 secondary register class (<VSa>) is listed second with a '?' to
12777 discourage use. Prefer loading 0/-1 in any VSX register for ISA
12778 3.0, and Altivec registers for ISA 2.06/2.07 (PR target/70915) so
12779 that if the register was involved in a slow operation, the
12780 clear/set operation does not wait for the slow operation to
12781 finish. Adjust the length attributes for 32-bit mode. Use
12782 rs6000_output_move_128bit and drop the use of the string
12783 instructions for 32-bit movti when -mvsx-timode is in effect. Use
12784 spacing so that the alternatives and attributes don't generate
12785 long lines, and put things in columns, so that it is easier to
12786 match up the operands and attributes with the insn alternatives.
12787 (vsx_mov<mode>_64bit): Likewise.
12788 (vsx_mov<mode>_32bit): Likewise.
12789 (vsx_movti_64bit): Fold movti into normal vector moves.
12790 (vsx_movti_32bit): Likewise.
12791 (vsx_splat_<mode>, V4SI/V4SF modes): Add support for ISA 3.0 word
12792 splat instructions.
12793 (vsx_splat_v4si_internal): Likewise.
12794 (vsx_splat_v4sf_internal): Likewise.
12795 (vector fusion peepholes): Use VSX_M instead of VSX_M2.
12796 (vsx_sign_extend_qi_<mode>): New ISA 3.0 instructions to sign
12797 extend vector elements.
12798 (vsx_sign_extend_hi_<mode>): Likewise.
12799 (vsx_sign_extend_si_v2di): Likewise.
12800 * config/rs6000/rs6000-protos.h (xxspltib_constant_p): Add
12801 declaration.
12802 * doc/md.texi (PowerPC constraints): Document the wE, wM, and wS
12803 constraints. Add trailing period to wL documentation.
12804
12805 2016-05-18 Richard Sandiford <richard.sandiford@arm.com>
12806
12807 PR middle-end/71020
12808 * tree-dfa.h (replace_abnormal_ssa_names): Declare.
12809 * tree-dfa.c (replace_abnormal_ssa_names): New function.
12810 * tree-call-cdce.c: Include tree-dfa.h.
12811 (can_guard_call_p): New function, extracted from...
12812 (can_use_internal_fn): ...here.
12813 (shrink_wrap_one_built_in_call_with_conds): Remove failure path
12814 and return void.
12815 (shrink_wrap_one_built_in_call): Likewise.
12816 (use_internal_fn): Likewise.
12817 (shrink_wrap_conditional_dead_built_in_calls): Update accordingly
12818 and return void. Call replace_abnormal_ssa_names.
12819 (pass_call_cdce::execute): Check can_guard_call_p during the
12820 initial walk. Assume shrink_wrap_conditional_dead_built_in_calls
12821 will always change something.
12822
12823 2016-05-18 Martin Jambor <mjambor@suse.cz>
12824
12825 PR ipa/70646
12826 * ipa-prop.c (determine_locally_known_aggregate_parts): Bail out early
12827 if parameter PARAM_IPA_MAX_AGG_ITEMS is zero.
12828
12829 2016-05-18 Martin Jambor <mjambor@suse.cz>
12830
12831 PR ipa/70646
12832 * ipa-inline.h (condition): New field size.
12833 * ipa-inline-analysis.c (add_condition): New parameter SIZE, use it
12834 for comaprison and store it into the new condition.
12835 (evaluate_conditions_for_known_args): Use condition size to check
12836 access sizes for all but CHANGED conditions.
12837 (unmodified_parm_1): New parameter size_p, store access size into it.
12838 (unmodified_parm): Likewise.
12839 (unmodified_parm_or_parm_agg_item): Likewise.
12840 (eliminated_by_inlining_prob): Pass NULL to unmodified_parm as size_p.
12841 (set_cond_stmt_execution_predicate): Extract access sizes and store
12842 them to conditions.
12843 (set_switch_stmt_execution_predicate): Likewise.
12844 (will_be_nonconstant_expr_predicate): Likewise.
12845 (will_be_nonconstant_predicate): Likewise.
12846 (inline_read_section): Stream condition size.
12847 (inline_write_summary): Likewise.
12848
12849 2016-05-18 Richard Biener <rguenther@suse.de>
12850
12851 * tree-ssa-loop-im.c (determine_max_movement): Properly add
12852 condition cost to PHI cost instead of total_cost.
12853
12854 2016-05-18 Martin Liska <mliska@suse.cz>
12855
12856 PR fortran/70856
12857 * ipa-icf.c (sem_variable::merge): Set DECL_PT_UID for
12858 merged variables.
12859
12860 2016-05-18 Richard Biener <rguenther@suse.de>
12861
12862 * lto-streamer.h (LTO_major_version): Bump to 6.
12863
12864 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
12865
12866 * function.c (make_split_prologue_seq, make_prologue_seq,
12867 make_epilogue_seq): New functions, factored out from...
12868 (thread_prologue_and_epilogue_insns): Here.
12869
12870 2016-05-18 Segher Boessenkool <segher@kernel.crashing.org>
12871
12872 * function.c (rest_of_handle_thread_prologue_and_epilogue): Call
12873 cleanup_cfg with CLEANUP_EXPENSIVE after shrink-wrapping instead
12874 of before. Add a comment.
12875
12876 2016-05-18 Bin Cheng <bin.cheng@arm.com>
12877
12878 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check invariant
12879 expression pointer, not pointer to the pointer.
12880
12881 2016-05-18 Jakub Jelinek <jakub@redhat.com>
12882
12883 * config/i386/sse.md (pbroadcast_evex_isa): New mode attr.
12884 (avx2_pbroadcast<mode>): Add another alternative with v instead
12885 of x constraints in it, using <pbroadcast_evex_isa> isa.
12886 (avx2_pbroadcast<mode>_1): Similarly, add two such alternatives.
12887
12888 * config/i386/sse.md (<ssse3_avx2>_palignr<mode>): Use
12889 constraint x instead of v in second alternative, add avx512bw
12890 alternative.
12891
12892 * config/i386/sse.md (<ssse3_avx2>_pshufb<mode>3<mask_name>): Use
12893 constraint x instead of v in second alternative, add avx512bw
12894 alternative.
12895
12896 * config/i386/sse.md (*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>): Use
12897 constraint x instead of v in second alternative, add avx512bw
12898 alternative.
12899
12900 * config/i386/sse.md (avx2_pmaddubsw256, ssse3_pmaddubsw128): Add
12901 avx512bw alternative.
12902
12903 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
12904
12905 * config/i386/sse.md (define_insn "*andnot<mode>3"): Extend static
12906 array to 128 chars.
12907 (define_insn "*andnottf3"): Ditto.
12908 (define_insn "*<code><mode>3"/any_logic): Ditto.
12909 (define_insn "*<code>tf3"/any_logic): Ditto.
12910 (define_insn "sse2_storehpd"): Use Yv constraint for scalar
12911 operand to block AVX-512VL insn variant emit when it is not enabled.
12912
12913 2016-05-18 Kirill Yukhin <kirill.yukhin@intel.com>
12914
12915 * config/i386/sse.md (define_insn "*vec_concatv2sf_sse4_1"): Use 'Yv'
12916 constraint fot SF mode.
12917
12918 2016-05-18 Petr Murzin <petr.murzin@intel.com>
12919 Kirill Yukhin <kirill.yukhin@intel.com>
12920
12921 * config/i386/sse.md (define_insn "srcp14<mode>"): Use proper operand
12922 modifiers.
12923 (define_insn "rsqrt14<mode>"): Ditto.
12924 (define_insn "<mask_codefor>avx512dq_cvtps2qqv2di<mask_name>"): Ditto.
12925 (define_insn "<fixsuffix>fix_truncv2sfv2di2<mask_name>"): Ditto.
12926 (define_insn "avx512f_<code>v8div16qi2_mask_store"): Ditto.
12927 (define_insn "vec_set_hi_<mode><mask_name>"): Ditto.
12928 (define_insn "<mask_codefor>avx512dq_broadcast<mode><mask_name>"):
12929 Ditto.
12930 (define_insn "*avx512f_gatherdi<mode>"): Ditto.
12931 (define_insn "*avx512f_scatterdi<mode>"): Ditto.
12932 * config/i386/i386.c (ix86_print_operand): Expand check for size
12933 override codes for Intel syntax.
12934
12935 2016-05-18 Richard Biener <rguenther@suse.de>
12936
12937 PR tree-optimization/71168
12938 * tree-loop-distribution.c (distribute_loop): Move *destroy_p
12939 initialization earlier.
12940
12941 2016-05-18 James Greenhalgh <james.greenhalgh@arm.com>
12942
12943 * config/aarch64/aarch64-simd.md
12944 (aarch64_reduc_plus_internal<mode>): Rename to...
12945 (reduc_plus_scal): ...This, and remove previous implementation.
12946
12947 2016-05-18 Richard Biener <rguenther@suse.de>
12948
12949 * passes.def: Put late dse and cd_dce in canonical order.
12950
12951 2016-05-17 Jan Hubicka <hubicka@ucw.cz>
12952
12953 * ipa-inline-transform.c (preserve_function_body_p): Look for
12954 first non-thunk clone.
12955 (save_function_body): Save into first non-thunk.
12956 * lto-cgraph.c (lto_output_edge): When streaming thunk do not look
12957 up call stmt id.
12958 (lto_output_node): Inline thunks don't need body in every
12959 partition.
12960 * lto-streamer-in.c: Do not fixup thunk clones.
12961 * cgraphclones.c (cgraph_node::create_edge_including_clone): Skip
12962 thunks.
12963 * tree-inline.c (copy_bb): Be prepared for target node to be new after
12964 folding suceeds.
12965
12966 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
12967
12968 PR middle-end/63586
12969 * tree-ssa-reassoc.c (transform_add_to_multiply): New.
12970 (reassociate_bb): Call transform_add_to_multiply.
12971
12972 2016-05-17 Kugan Vivekanandarajah <kuganv@linaro.org>
12973
12974 * config/aarch64/aarch64.c (all_extensions): Removed unused
12975 static variable.
12976
12977 2016-05-17 Nathan Sidwell <nathan@acm.org>
12978
12979 * config/nvptx/nvptx.c (nvptx_function_arg_boundary): New.
12980 (TARGET_FUNCTION_ARG_BOUNDARY): Override.
12981
12982 2016-05-17 Mikhail Maltsev <maltsevm@gmail.com>
12983
12984 PR tree-optimization/54579
12985 PR middle-end/55299
12986 * match.pd (~(~X >> Y), ~(~X >>r Y), ~(~X <<r Y)): New patterns.
12987
12988 2016-05-17 Marek Polacek <polacek@redhat.com>
12989
12990 PR ipa/71146
12991 * tree-inline.c (expand_call_inline): Call
12992 maybe_remove_unused_call_args.
12993
12994 2016-05-17 Jim Wilson <jim.wilson@linaro.org>
12995
12996 * doc/cpp.texi (__GNUC__): Major version changes are no longer rare.
12997 * doc/invoke.texi (-mnan=2008): Change signalling to signaling.
12998 * doc/md.texi (fmin@var{m}3): Likewise.
12999
13000 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13001
13002 * match.pd (X & C): New transformation.
13003
13004 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13005
13006 * match.pd (~X & Y): New transformation.
13007
13008 2016-05-17 Marc Glisse <marc.glisse@inria.fr>
13009
13010 * tree-vrp.c (simplify_truth_ops_using_ranges): Set range
13011 information for new SSA_NAME.
13012 (simplify_conversion_using_ranges): Get range through get_range_info
13013 instead of get_value_range.
13014
13015 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13016
13017 * config/aarch64/arm_neon.h (vmvn_s8): Reimplement using C operator.
13018 Remove inline assembly.
13019 (vmvn_s16): Likewise.
13020 (vmvn_s32): Likewise.
13021 (vmvn_u8): Likewise.
13022 (vmvn_u16): Likewise.
13023 (vmvn_u32): Likewise.
13024 (vmvnq_s8): Likewise.
13025 (vmvnq_s16): Likewise.
13026 (vmvnq_s32): Likewise.
13027 (vmvnq_u8): Likewise.
13028 (vmvnq_u16): Likewise.
13029 (vmvnq_u32): Likewise.
13030 (vmvn_p8): Likewise.
13031 (vmvnq_p16): Likewise.
13032
13033 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13034
13035 * config/aarch64/aarch64-simd.md (vmul_n_f32): Remove inline assembly.
13036 Use builtin.
13037 (vmul_n_s16): Likewise.
13038 (vmul_n_s32): Likewise.
13039 (vmul_n_u16): Likewise.
13040 (vmul_n_u32): Likewise.
13041 (vmulq_n_f32): Likewise.
13042 (vmulq_n_f64): Likewise.
13043 (vmulq_n_s16): Likewise.
13044 (vmulq_n_s32): Likewise.
13045 (vmulq_n_u16): Likewise.
13046 (vmulq_n_u32): Likewise.
13047
13048 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13049
13050 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_to_128df): Extend
13051 to all supported modes. Rename to "*aarch64_mul3_elt_from_dup".
13052
13053 2016-05-17 Jiong Wang <jiong.wang@arm.com>
13054
13055 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_to_128df): Rename
13056 to *aarch64_fma4_elt_from_dup<mode>.
13057 (*aarch64_fnma4_elt_to_128df): Rename to
13058 *aarch64_fnma4_elt_from_dup<mode>.
13059 * config/aarch64/arm_neon.h (vfma_n_f64): New.
13060 (vfms_n_f32): Likewise.
13061 (vfms_n_f64): Likewise.
13062 (vfmsq_n_f32): Likewise.
13063 (vfmsq_n_f64): Likewise.
13064
13065 2016-05-17 Gerald Pfeifer <gerald@pfeifer.com>
13066
13067 * wide-int.h: Change fixed_wide_int_storage from class to struct.
13068
13069 2016-05-17 Richard Biener <rguenther@suse.de>
13070
13071 PR tree-optimization/71132
13072 * tree-loop-distribution.c (create_rdg_cd_edges): Pass in loop.
13073 Only add control dependences for blocks in the loop.
13074 (build_rdg): Adjust.
13075 (generate_code_for_partition): Return whether loop should
13076 be destroyed and delay that.
13077 (distribute_loop): Likewise.
13078 (pass_loop_distribution::execute): Record loops to be destroyed
13079 and perform delayed destroying of loops.
13080
13081 2016-05-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13082
13083 PR target/70809
13084 * config/aarch64/aarch64-simd.md (aarch64_vmls<mode>): Delete.
13085
13086 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13087
13088 * config/aarch64/aarch64-elf.h (ASM_OUTPUT_DEF): Delete.
13089
13090 2016-05-17 Ilya Enkovich <ilya.enkovich@intel.com>
13091
13092 PR target/71114
13093 * config/i386/i386.c (dimode_scalar_chain::convert_op): Fix
13094 insertion point for instructions generated by validize_mem.
13095
13096 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13097
13098 * config/aarch64/aarch64.c (SHIFT_COUNT_TRUNCATED): Wrap definition
13099 in brackets.
13100
13101 2016-05-17 James Greenhalgh <james.greenhalgh@arm.com>
13102
13103 * config/aarch64/aarch64.c
13104 (aarch64_output_simd_mov_immediate): Make "buf_size" a variable
13105 rather than a macro.
13106
13107 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13108
13109 * doc/invoke.texi (AArch64 Options): Various updates.
13110
13111 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13112
13113 * ipa-inline-analysis.c (compute_inline_parameters): Disable inlinig
13114 into instrumentation thunks.
13115 * cif-code.def (CIF_CHKP): New.
13116
13117 2016-05-16 Uros Bizjak <ubizjak@gmail.com>
13118
13119 * config/i386/xopintrin.h: Correct "unsinged" typo in the comments.
13120
13121 2016-05-16 Martin Jambor <mjambor@suse.cz>
13122
13123 * hsa-gen.c (fillup_for_decl): Increase alignment to natural one.
13124 (get_symbol_for_decl): Sorry if a global symbol in under-aligned.
13125
13126 2016-05-16 Marek Polacek <polacek@redhat.com>
13127
13128 * gimple.c (maybe_remove_unused_call_args): Fix typos in the
13129 commentary.
13130
13131 2016-05-16 Martin Jambor <mjambor@suse.cz>
13132
13133 PR hsa/70857
13134 * omp-low.c (grid_expand_target_grid_body): Copy RESULT_DECL of
13135 the outlined kernel function.
13136
13137 2016-05-16 Robert Suchanek <robert.suchanek@imgtec.com>
13138
13139 * config/mips/mips.h (ISA_HAS_LSA): Enable for -mmsa.
13140 (ISA_HAS_DLSA): Ditto.
13141
13142 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
13143
13144 * config/mips/m5100.md (m51_int_load): Update the latency to 2.
13145
13146 2016-05-16 Nathan Sidwell <nathan@acm.org>
13147
13148 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): Revert.
13149 (nvptx_name_replacement): Restore. Add comment.
13150 (write_fn_proto, write_fn_proto_from_insn,
13151 nvptx_output_call_insn): Restore
13152 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Delete.
13153
13154 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13155
13156 * config/aarch64/aarch64.md
13157 (add<mode>3_compareC_cconly_imm): Remove use of %w.
13158 (add<mode>3_compareC_imm): Likewise.
13159 (<optab>si3_uxtw): Split into register and immediate variants.
13160 (andsi3_compare0_uxtw): Likewise.
13161 (and<mode>3_compare0): Likewise.
13162 (and<mode>3nr_compare0): Likewise.
13163 (stack_protect_test_<mode>): Don't use %x for memory operands.
13164
13165 2016-05-16 Matthew Fortune <matthew.fortune@imgtec.com>
13166
13167 * config/mips/mips-cpus.def (p5600): Add multi-line brackets.
13168
13169 2016-05-16 Wilco Dijkstra <wdijkstr@arm.com>
13170
13171 * config/aarch64/aarch64.md (aarch64_ashl_sisd_or_int_<mode>3):
13172 Split integer shifts into shift_reg and bfm.
13173 (aarch64_lshr_sisd_or_int_<mode>3): Likewise.
13174 (aarch64_ashr_sisd_or_int_<mode>3): Likewise.
13175 (ror<mode>3_insn): Likewise.
13176 (<optab>si3_insn_uxtw): Likewise.
13177 (<optab><mode>3_insn): Change to rotate_imm.
13178 (extr<mode>5_insn_alt): Likewise.
13179 (extrsi5_insn_uxtw): Likewise.
13180 (extrsi5_insn_uxtw_alt): Likewise.
13181
13182 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13183
13184 * doc/tm.texi: Regenerate.
13185 * doc/tm.texi.in (TARGET_INVALID_PARAMETER_TYPE): Remove.
13186 (TARGET_INVALID_RETURN_TYPE): Remove.
13187 * system.h: Poison TARGET_INVALID_PARAMETER_TYPE and
13188 TARGET_INVALID_RETURN_TYPE.
13189 * target.def (invalid_parameter_type): Remove.
13190 (invalid_return_type): Remove.
13191
13192 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13193
13194 * ipa-inline-analysis.c (compute_inline_parameters): Be more reailistic
13195 on estimating thunk bodies; do not set inline_failed to CIF_THUNK for
13196 calls from thunk.
13197 * ipa-inline-transform.c (inline_call): When inlining into thunk produce
13198 gimple body.
13199 (preserve_function_body_p): No need to preserve function body
13200 * cif-codes.def (CIF_THUNK): Remove.
13201 * cgraphclones.c (duplicate_thunk_for_node): Thunks calls are inlinable.
13202
13203 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13204
13205 * tree-inline.c (expand_call_inline): recurse after inlining thunk.
13206
13207 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13208
13209 * tree.c (free_lang_data_in_decl): Also set target/optimization flags
13210 for thunks.
13211
13212 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13213
13214 * ipa-inline.c (report_inline_failed_reason): Look into thunks, too
13215 (inline_small_functions): Do not look for function symbol when
13216 resetting caches.
13217
13218 2016-05-16 Jan Hubicka <hubicka@ucw.cz>
13219
13220 * lto-cgraph.c (compute_ltrans_boundary, output_symtab): Fix handling
13221 of inline thunks
13222
13223 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13224 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13225 Jiong Wang <jiong.wang@arm.com>
13226
13227 * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro
13228 for __ARM_FP16_FORMAT_IEEE and __ARM_FP16_FORMAT_ALTERNATIVE.
13229 Define __ARM_FP16_ARGS when appropriate.
13230 * config/arm/arm.c (arm_invalid_parameter_type): Remove
13231 declaration.
13232 (arm_invalid_return_type): Likewise.
13233 (TARGET_INVALID_PARAMETER_TYPE): Remove.
13234 (TARGET_INVALID_RETURN_TYPE): Remove.
13235 (aapcs_vfp_sub_candidate): Allow HFmode.
13236 (aapcs_vfp_allocate): Add comment. Support HFmode.
13237 (aapcs_vfp_allocate_return_reg): Likewise.
13238 (struct aapcs_cp_arg_layout): Slightly reword comments for
13239 is_return_candidate and allocate_return_reg.
13240 (output_mov_vfp): Update assert.
13241 (arm_hard_regno_mode_ok): Remove comment, update HF-mode
13242 condition.
13243 (arm_invalid_parameter_type): Remove.
13244 (amr_invalid_return_type): Remove.
13245 * config/arm/arm.h (TARGET_NEON_FP16): Fix definition.
13246 * config/arm/arm.md (*arm32_movhf): Disable for TARGET_VFP.
13247 * config/arm/vfp.md (*movhf_vfp): Enable for TARGET_VFP.
13248
13249 2016-05-16 Matthew Wahab <matthew.wahab@arm.com>
13250
13251 * config/aarch64/aarch64.h (LEGITIMIZE_RELOAD_ADDRESS): Remove.
13252 * config/aarch64/arch64-protos.h
13253 (aarch64_legitimize_reload_address): Remove.
13254 * config/aarch64/aarch64.c (aarch64_legitimize_reload_address):
13255 Remove.
13256
13257 2016-05-16 Eric Botcazou <ebotcazou@adacore.com>
13258
13259 * configure.ac: Add ACX_NONCANONICAL_HOST.
13260 * configure: Regenerate.
13261 * Makefile.in: Set host_noncanonical.
13262
13263 2016-05-14 Uros Bizjak <ubizjak@gmail.com>
13264
13265 PR target/71097
13266 * config/i386/i386.md (*movtf_internal): Before register allocation,
13267 do not allow FP constants for CM_MEDIUM memory model, allow only
13268 standard FP constants for CM_LARGE and CM_LARGE_PIC models.
13269 (*movxf_internal): Ditto.
13270 (*movdf_internal): Ditto.
13271 (*movsf_internal): Ditto.
13272
13273 2016-05-13 Segher Boessenkool <segher@kernel.crashing.org>
13274
13275 PR rtl-optimization/67483
13276 * combine.c (make_compound_operation): Don't call extract_left_shift
13277 with negative shift amounts.
13278
13279 2016-05-13 Jakub Jelinek <jakub@redhat.com>
13280
13281 PR bootstrap/71071
13282 * fold-const.c (fold_checksum_tree): Allow modification
13283 of TYPE_ALIAS_SET during folding.
13284
13285 * config/i386/i386.c (ix86_compute_frame_layout, ix86_expand_prologue,
13286 ix86_expand_split_stack_prologue): Use HOST_WIDE_INT_C macro.
13287 (ix86_split_to_parts): Likewise. Fix up formatting.
13288
13289 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
13290
13291 * tree-ssa-loop-ivopts.c (create_new_ivs): Cast to
13292 unsigned HOST_WIDE_INT with HOST_WIDE_INT_PRINT_UNSIGNED in
13293 printf format.
13294
13295 2016-05-13 Nathan Sidwell <nathan@acm.org>
13296
13297 * config/nvptx/nvptx.c (nvptx_mangle_decl_assembler_name): New.
13298 (nvptx_name_replacement): Delete.
13299 (write_fn_proto, write_fn_proto_from_insn,
13300 nvptx_output_call_insn): Remove nvptx_name_replacement call.
13301 (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Override.
13302 * langhooks.c (add_builtin_funcction_common): Call
13303 targetm.mangle_decl_assembler_name.
13304
13305 * config/nvptx/nvptx.c (write_fn_proto): Handle
13306 BUILT_IN_ATOMIC_COMPARE_EXCHANGE_n oddity.
13307
13308 2016-05-13 Martin Liska <mliska@suse.cz>
13309
13310 * tree-ssa-loop-ivopts.c (create_new_ivs): Use HOST_WIDE_INT_PRINT_DEC
13311 and PRIu64 in printf format.
13312
13313 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13314
13315 * tree-ssa-loop-ivanon.c (try_unroll_loop_completely): Typo fix in
13316 comment.
13317
13318 2016-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13319
13320 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
13321 Change --param max-completely-peeled-times to
13322 --param max-completely-peel-times in dump file printing.
13323
13324 2016-05-13 Richard Biener <rguenther@suse.de>
13325
13326 PR tree-optimization/42587
13327 * tree-ssa-math-opts.c (perform_symbolic_merge): Handle BIT_FIELD_REF.
13328 (find_bswap_or_nop_1): Likewise.
13329 (bswap_replace): Likewise.
13330
13331 2016-05-13 Martin Liska <mliska@suse.cz>
13332
13333 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern):
13334 Initialize a variable with default value.
13335
13336 2016-05-13 Martin Liska <mliska@suse.cz>
13337
13338 * doc/invoke.texi: Enhance explanation of error recovery
13339 of sanitizers.
13340
13341 2016-05-13 Martin Liska <mliska@suse.cz>
13342
13343 * tree-ssa-loop-ivopts.c (avg_loop_niter): Fix coding style.
13344 (struct cost_pair): Change inv_expr_id (int) to inv_expr
13345 (iv_inv_expr_ent *).
13346 (struct iv_inv_expr_ent): Comment struct fields.
13347 (sort_iv_inv_expr_ent): New function.
13348 (struct ivopts_data): Rename inv_expr_id to max_inv_expr_id.
13349 (struct iv_ca): Replace used_inv_expr and num_used_inv_expr with
13350 a hash_map between iv_inv_expr_ent and number of usages.
13351 (niter_for_exit): Fix coding style.
13352 (tree_ssa_iv_optimize_init): Use renamed variable.
13353 (determine_base_object): Fix coding style.
13354 (alloc_iv): Likewise.
13355 (find_interesting_uses_outside): Likewise.
13356 (add_candidate_1): Likewise.
13357 (add_standard_iv_candidates): Likewise.
13358 (set_group_iv_cost): Replace inv_expr_id with inv_expr.
13359 (prepare_decl_rtl): Fix coding style.
13360 (get_address_cost): Likewise.
13361 (get_shiftadd_cost): Likewise.
13362 (force_expr_to_var_cost): Likewise.
13363 (compare_aff_trees): Likewise.
13364 (get_expr_id): Restructure the function.
13365 (get_loop_invariant_expr_id): Renamed to
13366 get_loop_invariant_expr.
13367 (get_computation_cost_at): Replace usage of inv_expr_id with
13368 inv_expr.
13369 (get_computation_cost): Likewise.
13370 (determine_group_iv_cost_generic): Likewise.
13371 (determine_group_iv_cost_address): Likewise.
13372 (iv_period): Fix coding style.
13373 (iv_elimination_compare_lt): Likewise.
13374 (may_eliminate_iv): Likewise.
13375 (determine_group_iv_cost_cond): Replace usage of inv_expr_id with
13376 inv_expr.
13377 (determine_group_iv_costs): Dump invariant expressions.
13378 (iv_ca_recount_cost): Use the newly added hash_map.
13379 (iv_ca_set_remove_invariants): Fix coding style.
13380 (iv_ca_set_add_invariants): Fix coding style.
13381 (iv_ca_set_no_cp): Utilize the newly added hash_map for used
13382 invariants.
13383 (iv_ca_set_cp): Likewise.
13384 (iv_ca_new): Initialize the newly added hash_map and remove
13385 initialization of fields.
13386 (iv_ca_free): Delete the hash_map.
13387 (iv_ca_dump): Dump invariant expressions.
13388 (iv_ca_extend): Fix coding style.
13389 (try_add_cand_for): Likewise.
13390 (create_new_ivs): Dump information about # of avg iterations and
13391 # of used invariant expressions.
13392 (rewrite_use_compare): Fix coding style.
13393 (free_loop_data): Set default value for max_inv_expr_id.
13394
13395 2016-05-13 Ilya Enkovich <ilya.enkovich@intel.com>
13396
13397 * cse.c (rest_of_handle_cse): Use cleanup_cfg
13398 returned value cse_cfg_altered computation.
13399 (rest_of_handle_cse2): Likewise.
13400 (rest_of_handle_cse_after_global_opts): Likewise.
13401
13402 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13403
13404 PR target/53440
13405 * config/arm/arm.c (arm32_output_mi_thunk): New.
13406 (arm_output_mi_thunk): Rename to arm_thumb1_mi_thunk. Rework
13407 to split Thumb1 vs TARGET_32BIT functionality.
13408 (arm_thumb1_mi_thunk): New.
13409
13410 2016-05-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
13411
13412 * config/aarch64/aarch64.c (TARGET_OMIT_STRUCT_RETURN_REG): Set
13413 to true.
13414
13415 2016-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
13416
13417 PR target/71080
13418 * config/i386/i386.c (ix86_in_large_data_p): Guard against NULL exp.
13419
13420 2016-05-13 Eric Botcazou <ebotcazou@adacore.com>
13421
13422 * builtins.c (expand_builtin_memcmp): Do not emit the call here.
13423 (expand_builtin_trap): Emit a regular call.
13424 (set_builtin_user_assembler_name): Remove obsolete cases.
13425 * dse.c (scan_insn): Adjust.
13426 * except.c: Include calls.h.
13427 (sjlj_emit_function_enter): If DONT_USE_BUILTIN_SETJMP is defined,
13428 emit a regular call to setjmp.
13429 * expr.c (emit_block_move_hints): Call emit_block_copy_via_libcall.
13430 (block_move_libcall_safe_for_call_parm): Use memcpy builtin.
13431 (emit_block_move_via_libcall): Delete.
13432 (block_move_fn): Delete.
13433 (init_block_move_fn): Likewise.
13434 (emit_block_move_libcall_fn): Likewise.
13435 (emit_block_op_via_libcall): New function.
13436 (set_storage_via_libcall): Tidy up and use memset builtin.
13437 (block_clear_fn): Delete.
13438 (init_block_clear_fn): Likewise.
13439 (clear_storage_libcall_fn): Likewise.
13440 (expand_assignment): Call emit_block_move_via_libcall.
13441 Do not include gt-expr.h.
13442 * expr.h (emit_block_op_via_libcall): Declare.
13443 (emit_block_copy_via_libcall): New inline function.
13444 (emit_block_move_via_libcall): Likewise.
13445 (emit_block_comp_via_libcall): Likewise.
13446 (block_clear_fn): Delete.
13447 (init_block_move_fn): Likewise.
13448 (init_block_clear_fn): Likewise.
13449 (emit_block_move_via_libcall): Likewise.
13450 (set_storage_via_libcall): Add default parameter value.
13451 * libfuncs.h (enum libfunc_index): Remove obsolete values.
13452 (abort_libfunc): Delete.
13453 (memcpy_libfunc): Likewise.
13454 (memmove_libfunc): Likewise.
13455 (memcmp_libfunc): Likewise.
13456 (memset_libfunc): Likewise.
13457 (setbits_libfunc): Likewise.
13458 (setjmp_libfunc): Likewise.
13459 (longjmp_libfunc): Likewise.
13460 (profile_function_entry_libfunc): Likewise.
13461 (profile_function_exit_libfunc): Likewise.
13462 (gcov_flush_libfunc): Likewise.
13463 * optabs-libfuncs.c (build_libfunc_function): Set DECL_ARTIFICIAL
13464 and DECL_VISIBILITY on the declaration.
13465 (init_optabs): Do not initialize obsolete libfuncs.
13466 * optabs.c (prepare_cmp_insn): Call emit_block_comp_via_libcall.
13467 * tree-core.h (ECF_RET1): Define.
13468 (ECF_TM_PURE): Adjust.
13469 (ECF_TM_BUILTIN): Likewise.
13470 * tree.c (set_call_expr_flags): Deal with ECF_RET1.
13471 (build_common_builtin_nodes): Initialize abort builtin.
13472 Add ECF_RET1 on memcpy, memmove and memset builtins.
13473 Pass final flags for alloca and alloca_with_align builtins.
13474 * config/alpha/alpha.c (alpha_init_libfuncs): Do not initialize
13475 obsolete builtins.
13476 * config/ia64/ia64.c (ia64_vms_init_libfuncs): Likewise.
13477 * config/i386/i386.c (ix86_expand_set_or_movmem): Adjust call to
13478 set_storage_via_libcall and call emit_block_copy_via_libcall.
13479
13480 2016-05-12 Uros Bizjak <ubizjak@gmail.com>
13481
13482 * config/i386/i386.md (*call_got_x32): Change operand 0 to
13483 DImode before it is passed to ix86_output_call_operand.
13484 (*call_value_got_x32): Ditto for operand 1.
13485
13486 2016-05-12 Jiong Wang <jiong.wang@arm.com>
13487
13488 PR rtl-optimization/70904
13489 * lra-constraint.c (process_addr_reg): Relax the restriction on subreg
13490 reload for wide mode.
13491
13492 2016-05-12 Marek Polacek <polacek@redhat.com>
13493
13494 PR c/70756
13495 * langhooks-def.h (lhd_incomplete_type_error): Adjust declaration.
13496 * langhooks.c (lhd_incomplete_type_error): Add location parameter.
13497 * langhooks.h (incomplete_type_error): Likewise.
13498 * tree.c (size_in_bytes_loc): Renamed from size_in_bytes. Add location
13499 parameter, pass it down to incomplete_type_error.
13500 * tree.h (size_in_bytes): New inline overload.
13501 (size_in_bytes_loc): Renamed from size_in_bytes.
13502
13503 2016-05-12 Richard Biener <rguenther@suse.de>
13504
13505 PR tree-optimization/71059
13506 * tree-ssa-pre.c (phi_translate_1): Fully fold translated
13507 nary before looking up or entering the expression into the VN
13508 hashes.
13509 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): Fix comment typo.
13510 Make sure to re-use NARYs without result as inserted by
13511 phi-translation.
13512
13513 2016-05-12 Richard Biener <rguenther@suse.de>
13514
13515 PR tree-optimization/71062
13516 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict
13517 field.
13518 * tree-ssa-structalias.c (set_uids_in_ptset): Set
13519 vars_contains_restrict if the var is a restrict tag.
13520 * tree-ssa-alias.c (ptrs_compare_unequal): If vars_contains_restrict
13521 do not disambiguate pointers against it.
13522 (dump_points_to_solution): Re-structure and adjust for new
13523 vars_contains_restrict flag.
13524 * gimple-pretty-print.c (pp_points_to_solution): Likewise.
13525
13526 2016-05-12 Martin Liska <mliska@suse.cz>
13527
13528 * doc/invoke.texi: Explain connection between
13529 -fsanitize-recover=address and ASAN_OPTIONS="halt_on_error=1".
13530
13531 2016-05-12 Ilya Enkovich <ilya.enkovich@intel.com>
13532
13533 PR tree-optimization/71006
13534 * tree-vect-loop.c (vect_determine_vectorization_factor): Don't
13535 consider COND_EXPR as a mask producer.
13536
13537 2016-05-12 Marek Polacek <polacek@redhat.com>
13538
13539 PR driver/71063
13540 * opts.c (common_handle_option): Detect missing argument for --help^.
13541
13542 2016-05-12 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13543
13544 PR target/70830
13545 * config/arm/arm.c (arm_output_multireg_pop): Avoid POP instruction
13546 when popping the PC and within an interrupt handler routine.
13547 Add missing tab to output of "ldmfd".
13548 (output_return_instruction): Output LDMFD with SP update rather
13549 than POP when returning from interrupt handler.
13550
13551 2016-05-12 Jakub Jelinek <jakub@redhat.com>
13552
13553 * config/i386/i386.md (isa): Add x64_avx512dq, enable if
13554 TARGET_64BIT && TARGET_AVX512DQ.
13555 * config/i386/sse.md (*vec_extract<mode>): Add avx512bw alternatives.
13556 (*vec_extract<PEXTR_MODE12:mode>_zext): Add avx512bw alternative.
13557 (*vec_extract<ssevecmodelower>_0, *vec_extractv4si_0_zext,
13558 *vec_extractv2di_0_sse): Use v constraint instead of x constraint.
13559 (*vec_extractv4si): Add avx512dq and avx512bw alternatives.
13560 (*vec_extractv4si_zext): Add avx512dq alternative.
13561 (*vec_extractv2di_1): Add x64_avx512dq and avx512bw alternatives,
13562 use v instead of x constraint in other alternatives where possible.
13563
13564 * config/i386/sse.md (sse2_loadld): Use v instead of x
13565 constraint in alternatives 0,1,4.
13566
13567 * config/i386/sse.md (pinsr_evex_isa): New mode attr.
13568 (<sse2p4_1>_pinsr<ssemodesuffix>): Add 2 alternatives with
13569 v constraints instead of x and <pinsr_evex_isa> isa attribute.
13570
13571 PR target/71019
13572 * config/i386/sse.md (<sse2_avx2>_packssdw<mask_name>,
13573 <sse4_1_avx2>_packusdw<mask_name>): Make sure EVEX encoded insn
13574 is not emitted unless TARGET_AVX512BW.
13575 (<sse2_avx2>_packuswb<mask_name>, <sse2_avx2>_packsswb<mask_name>):
13576 Likewise. For TARGET_AVX512BW, use "=v" constraint instead of "=x"
13577 for the result operand.
13578
13579 * config/i386/sse.md (*vec_setv4sf_sse4_1, sse4_1_insertps): Use v
13580 constraint instead of x in avx alternatives. Use maybe_evex instead
13581 of vex prefix.
13582
13583 * config/i386/constraints.md (Yv): New constraint.
13584 * config/i386/i386.h (VALID_AVX512VL_128_REG_MODE): Allow
13585 TFmode and V1TImode in xmm16+ registers for TARGET_AVX512VL.
13586 * config/i386/i386.md (avx512fvecmode): New mode attr.
13587 (*pushtf): Use v constraint instead of x.
13588 (*movtf_internal): Likewise. For TARGET_AVX512VL and
13589 xmm16+ registers, use vmovdqu64 or vmovdqa64 instructions.
13590 (*absneg<mode>2): Use Yv constraint instead of x constraint.
13591 (*absnegtf2_sse): Likewise.
13592 (copysign<mode>3_const, copysign<mode>3_var): Likewise.
13593 * config/i386/sse.md (*andnot<mode>3): Add avx512vl and
13594 avx512f alternatives.
13595 (*andnottf3, *<code><mode>3, *<code>tf3): Likewise.
13596
13597 2016-05-12 Richard Biener <rguenther@suse.de>
13598
13599 PR tree-optimization/71060
13600 * tree-data-ref.c (initialize_data_dependence_relation): Do not
13601 require exact match of DR_BASE_OBJECT but only matching address and
13602 type.
13603
13604 2016-05-12 Richard Biener <rguenther@suse.de>
13605
13606 PR tree-optimization/70986
13607 * cfganal.c: Include cfgloop.h.
13608 (dfs_find_deadend): Prefer to take edges exiting loops.
13609
13610 2016-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13611
13612 * gcc.target/powerpc/pr70963.c: Require at least power8 at both
13613 compile and run time.
13614
13615 2016-05-11 Mikhail Maltsev <maltsevm@gmail.com>
13616
13617 PR c/43651
13618 * doc/invoke.texi (Wduplicate-decl-specifier): Document new option.
13619
13620 2016-05-11 Uros Bizjak <ubizjak@gmail.com>
13621
13622 * config/i386/i386.c (legitimize_pic_address): Use
13623 copy_to_suggested_reg instead of gen_movsi.
13624
13625 2016-05-11 Michael Meissner <meissner@linux.vnet.ibm.com>
13626
13627 * config/rs6000/predicates.md (quad_memory_operand): Move most of
13628 the code into quad_address_p and call it to share code with
13629 vsx_quad_dform_memory_operand.
13630 (vsx_quad_dform_memory_operand): New predicate for ISA 3.0 vector
13631 d-form support.
13632 * config/rs6000/rs6000.opt (-mlra): Switch to being an option mask
13633 bit instead of being a separate word. Split -mpower9-dform into
13634 two switches, -mpower9-dform-scalar and -mpower9-dform-vector.
13635 * config/rs6000/rs6000.c (RELOAD_REG_QUAD_OFFSET): New addr_mask
13636 for the register class supporting 128-bit quad word memory offsets.
13637 (mode_supports_vsx_dform_quad): Helper function to return if the
13638 register class uses quad word memory offsets.
13639 (rs6000_debug_addr_mask): Add support for quad word memory offsets.
13640 (rs6000_debug_reg_global): Always print if we are using LRA or not.
13641 (rs6000_setup_reg_addr_masks): If ISA 3.0 vector d-form
13642 instructions are enabled, set up the appropriate addr_masks for
13643 128-bit types.
13644 (rs6000_init_hard_regno_mode_ok): wb constraint is now based on
13645 -mpower9-dform-scalar, instead of -mpower9-dform.
13646 (rs6000_option_override_internal): Split -mpower9-dform into two
13647 switches, -mpower9-dform-scalar and -mpower9-dform-vector. The
13648 -mpower9-dform switch sets or clears both. If we are not using
13649 the LRA register allocator, do not enable -mpower9-dform-vector by
13650 default. If we are using LRA, enable -mpower9-dform-vector and
13651 -mvsx-timode if it is appropriate. Issue a warning if either
13652 -mpower9-dform-vector or -mvsx-timode are explicitly used without
13653 enabling LRA.
13654 (quad_address_offset_p): New helper function to return if the
13655 offset is legal for quad word memory instructions.
13656 (quad_address_p): New function to determin if GPR or vector
13657 register quad word memory addresses are legal.
13658 (mem_operand_gpr): Validate quad word address offsets.
13659 (reg_offset_addressing_ok_p): Add support for ISA 3.0 vector
13660 d-form (register + offset) instructions.
13661 (offsettable_ok_by_alignment): Likewise.
13662 (rs6000_legitimate_offset_address_p): Likewise.
13663 (legitimate_lo_sum_address_p): Likewise.
13664 (rs6000_legitimize_address): Likewise.
13665 (rs6000_legitimize_reload_address): Add more debug statements for
13666 -mdebug=addr.
13667 (rs6000_legitimate_address_p): Add support for ISA 3.0 vector
13668 d-form instructions.
13669 (rs6000_secondary_reload_memory): Add support for ISA 3.0 vector
13670 d-form instructions. Distinguish different cases in debug
13671 output. (rs6000_secondary_reload_inner): Add support for ISA 3.0 vector
13672 d-form instructions.
13673 (rs6000_preferred_reload_class): Likewise.
13674 (rs6000_output_move_128bit): Add support for ISA 3.0 d-form
13675 instructions. If ISA 3.0 is available, generate lxvx/stxvx instead
13676 of the ISA 2.06 indexed memory instructions.
13677 (rs6000_emit_prologue): If we have ISA 3.0 d-form instructions,
13678 use them to save/restore the saved vector registers instead of
13679 using Altivec instructions.
13680 (rs6000_emit_epilogue): Likewise.
13681 (rs6000_lra_p): Use TARGET_LRA instead of the old option word.
13682 (rs6000_opt_masks): Split -mpower9-dform into
13683 -mpower9-dform-scalar and -mpower9-dform-vector.
13684 (rs6000_print_options_internal): Print -mno-<switch> if <switch>
13685 was not selected.
13686 * config/rs6000/vsx.md (p9_vecload_<mode>): Delete hack to emit
13687 ISA 3.0 vector indexed memory instructions, and fold the code into
13688 the normal mov<mode> patterns.
13689 (p9_vecstore_<mode>): Likewise.
13690 (vsx_mov<mode>): Add support for ISA 3.0 vector d-form
13691 instructions.
13692 (vsx_movti_64bit): Likewise.
13693 (vsx_movti_32bit): Likewise.
13694 * config/rs6000/constraints.md (wO constraint): New constraint for
13695 ISA 3.0 vector d-form support.
13696 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Use
13697 -mpower9-dform-scalar instead of -mpower9-dform. Add note not to
13698 include -mpower9-dform-vector until we switch over to LRA.
13699 (POWERPC_MASKS): Add -mlra. Split -mpower9-dform into two.
13700 switches, -mpower9-dform-scalar and -mpower9-dform-vector.
13701 * config/rs6000/rs6000-protos.h (quad_address_p): Add declaration.
13702 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation
13703 for -mpower9-dform and -mlra.
13704 * doc/md.texi (wO constraint): Document wO constraint.
13705
13706 2016-05-11 Alexander Monakov <amonakov@ispras.ru>
13707
13708 * genattr.c (main): Change 'rtx' to 'rtx_insn *' in prototypes of
13709 'insn_latency', 'maximal_insn_latency', 'min_insn_conflict_delay'.
13710 * genautomata.c (output_internal_insn_code_evaluation): Simplify.
13711 Move handling of non-insn arguments inline into the sole user:
13712 (output_trans_func): ...here.
13713 (output_min_insn_conflict_delay_func): Change 'rtx' to 'rtx_insn *'
13714 in emitted function prototype.
13715 (output_internal_insn_latency_func): Ditto. Simplify.
13716 (output_internal_maximal_insn_latency_func): Ditto. Delete
13717 always-unused argument.
13718 (output_insn_latency_func): Ditto.
13719 (output_maximal_insn_latency_func): Ditto.
13720
13721 2016-05-11 Richard Biener <rguenther@suse.de>
13722
13723 PR tree-optimization/71055
13724 * tree-ssa-sccvn.c (vn_reference_lookup_3): When native-interpreting
13725 sth with precision not equal to access size verify we don't chop
13726 off bits.
13727
13728 2016-05-11 Richard Biener <rguenther@suse.de>
13729
13730 PR debug/71057
13731 * dwarf2out.c (retry_incomplete_types): Set early_dwarf.
13732 (dwarf2out_finish): Move retry_incomplete_types call ...
13733 (dwarf2out_early_finish): ... here.
13734
13735 2016-05-11 Richard Biener <rguenther@suse.de>
13736
13737 PR middle-end/71002
13738 * alias.c (reference_alias_ptr_type): Preserve alias-set zero
13739 if the langhook insists on it.
13740 * fold-const.c (make_bit_field_ref): Add arg for the original
13741 reference and preserve its alias-set.
13742 (decode_field_reference): Take exp by reference and adjust it
13743 to the original memory reference.
13744 (optimize_bit_field_compare): Adjust callers.
13745 (fold_truth_andor_1): Likewise.
13746 * gimplify.c (gimplify_expr): Adjust in-SSA form test.
13747
13748 2016-05-11 Ilya Enkovich <ilya.enkovich@intel.com>
13749
13750 PR middle-end/70807
13751 * cfgrtl.h (delete_insn_and_edges): Now return bool.
13752 * cfgrtl.c (delete_insn_and_edges): Likewise.
13753 * config/i386/i386.c (convert_scalars_to_vector): Remove
13754 redundant code.
13755 * cse.c (cse_insn): Compute cse_cfg_altered.
13756 (delete_trivially_dead_insns): Likewise.
13757 (cse_cc_succs): Likewise.
13758 (rest_of_handle_cse): Free dominance info if required.
13759 (rest_of_handle_cse2): Likewise.
13760 (rest_of_handle_cse_after_global_opts): Likewise.
13761
13762 2016-05-11 Alan Modra <amodra@gmail.com>
13763
13764 * config/rs6000/rs6000.c (is_complex_IBM_long_double,
13765 abi_v4_pass_in_fpr): New functions.
13766 (rs6000_function_arg_boundary): Exclude complex IBM long double
13767 from 64-bit alignment when ABI_V4.
13768 (rs6000_function_arg, rs6000_function_arg_advance_1,
13769 rs6000_gimplify_va_arg): Use abi_v4_pass_in_fpr.
13770
13771 2016-05-10 Segher Boessenkool <segher@kernel.crashing.org>
13772
13773 PR rtl-optimization/71028
13774 * cfgcleanup.c (try_optimize_cfg): Do not flip a conditional
13775 jump with just a return in the fallthrough block if the branch
13776 block contains just a return as well.
13777
13778 2016-05-10 Marc Glisse <marc.glisse@inria.fr>
13779
13780 * fold-const.c (fold_binary_loc) [(X ^ Y) & Y]: Remove and merge with...
13781 * match.pd ((X & Y) ^ Y): ... this.
13782 ((X & Y) & Y, (X | Y) | Y, (X ^ Y) ^ Y, (X & Y) & (X & Z), (X | Y)
13783 | (X | Z), (X ^ Y) ^ (X ^ Z)): New transformations.
13784
13785 2016-05-10 David Malcolm <dmalcolm@redhat.com>
13786
13787 * read-md.c (require_char_ws): New function.
13788 (read_string): Simplify using require_char_ws.
13789 (handle_constants): Likewise.
13790 (handle_enum): Likewise.
13791 (handle_file): Likewise.
13792 * read-md.h (require_char_ws): New declaration.
13793 * read-rtl.c (read_conditions): Simplify using require_char_ws.
13794 (read_mapping): Likewise.
13795 (read_rtx_code): Likewise.
13796 (read_nested_rtx): Likewise.
13797
13798 2016-05-10 James Norris <jnorris@codesourcery.com>
13799
13800 * config/rs6000/sysv4.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o
13801 if offloading is enabled and -fopenacc or -fopenmp is specified.
13802 (CRTOFFLOADEND): Likewise.
13803 (STARTFILE_LINUX_SPEC): Add CRTOFFLOADBEGIN.
13804 (ENDFILE_LINUX_SPEC): Add CRTOFFLOADEND.
13805
13806 2016-05-10 Uros Bizjak <ubizjak@gmail.com>
13807
13808 * config/i386/i386.c (legitimize_pic_address): Merge 64-bit and 32-bit
13809 gotoff_operand code paths. Use copy_to_suggested_regs and
13810 expand_simple_binop where appropriate. Cleanup.
13811
13812 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
13813
13814 PR target/70799
13815 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): Allow
13816 integer constants.
13817 (dimode_scalar_chain::vector_const_cost): New.
13818 (dimode_scalar_chain::compute_convert_gain): Handle constants.
13819 (dimode_scalar_chain::convert_op): Likewise.
13820 (dimode_scalar_chain::convert_insn): Likewise.
13821
13822 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
13823
13824 * dwarf2out.c (resolve_args_picking_1): Consider DW_OP_neg as an
13825 unary operation, not a binary one.
13826
13827 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
13828
13829 PR middle-end/70877
13830 * tree-chkp.c (chkp_add_bounds_to_call_stmt): Handle
13831 calls with type casted fndecl.
13832
13833 2016-05-10 Ilya Enkovich <ilya.enkovich@intel.com>
13834
13835 PR tree-optimization/70786
13836 * tree-chkp.c (chkp_find_bounds_1): Support WITH_SIZE_EXPR.
13837 * calls.c (initialize_argument_information): Bind bounds
13838 with corresponding args passed by reference.
13839
13840 2016-05-10 Jakub Jelinek <jakub@redhat.com>
13841
13842 PR target/70927
13843 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>),
13844 *<code><mode>3<mask_name>): For !TARGET_AVX512DQ and EVEX encoding,
13845 use vp*[dq] instead of v*p[sd] instructions and adjust mode attribute
13846 accordingly.
13847
13848 2016-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13849
13850 PR target/70963
13851 * config/rs6000/vsx.md (vsx_xvcvdpsxds_scale): Generate correct
13852 code for a zero scale factor.
13853 (vsx_xvcvdpuxds_scale): Likewise.
13854
13855 2016-05-10 David Malcolm <dmalcolm@redhat.com>
13856
13857 * diagnostic-show-locus.c (layout::layout): Call show_ruler
13858 if show_ruler_p was set on the context.
13859 (layout::show_ruler): New method.
13860 * diagnostic.h (struct diagnostic_context): Add field
13861 "show_ruler_p".
13862
13863 2016-05-10 Richard Biener <rguenther@suse.de>
13864
13865 PR tree-optimization/71039
13866 * tree-ssa-phiprop.c: Include tree-ssa-loop.h.
13867 (chk_uses): New function.
13868 (propagate_with_phi): Verify we can safely replicate the lhs of an
13869 aggregate assignment on all incoming edges.
13870
13871 2016-05-10 Oleg Endo <olegendo@gcc.gnu.org>
13872
13873 * config/rx/rx-protos.h (is_interrupt_func, is_fast_interrupt_func):
13874 Forward declare.
13875 (rx_atomic_sequence): New class.
13876 * config/rx/rx.c (rx_print_operand): Use symbolic names for PSW bits.
13877 (is_interrupt_func, is_fast_interrupt_func): Make non-static and
13878 non-inline.
13879 (rx_atomic_sequence::rx_atomic_sequence,
13880 rx_atomic_sequence::~rx_atomic_sequence): New functions.
13881 * config/rx/rx.md (CTRLREG_PSW, CTRLREG_USP, CTRLREG_FPSW, CTRLREG_CPEN,
13882 CTRLREG_BPSW, CTRLREG_BPC, CTRLREG_ISP, CTRLREG_FINTV,
13883 CTRLREG_INTB): New constants.
13884 (FETCHOP): New code iterator.
13885 (fethcop_name, fetchop_name2): New iterator code attributes.
13886 (QIHI): New mode iterator.
13887 (atomic_exchange<mode>, atomic_exchangesi, xchg_mem<mode>,
13888 atomic_fetch_<fetchop_name>si, atomic_fetch_nandsi,
13889 atomic_<fetchop_name>_fetchsi, atomic_nand_fetchsi): New patterns.
13890
13891 2016-05-10 Martin Liska <mliska@suse.cz>
13892
13893 * tree-inline.c (remap_dependence_clique): Do not remap
13894 debugging statements.
13895
13896 2016-05-10 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13897
13898 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly")
13899 ("*fixuns_truncdfdi2_z13")
13900 ("*fixuns_trunc<FP:mode><GPR:mode>2_z196")
13901 ("*fix_truncdfdi2_bfp_z13", "*floatunsdidf2_z13")
13902 ("*extendsfdf2_z13"): Replace TARGET_Z13 with TARGET_VX.
13903
13904 2016-05-10 Richard Biener <rguenther@suse.de>
13905
13906 PR tree-optimization/70497
13907 PR tree-optimization/28367
13908 * tree-ssa-sccvn.c (vn_nary_build_or_lookup): New function
13909 split out from ...
13910 (visit_reference_op_load): ... here.
13911 (vn_reference_lookup_3): Use it to handle subreg-like accesses
13912 with simplified BIT_FIELD_REFs.
13913 * tree-ssa-pre.c (eliminate_insert): Handle inserting BIT_FIELD_REFs.
13914 * tree-complex.c (extract_component): Handle BIT_FIELD_REFs
13915 correctly.
13916
13917 2016-05-10 Pierre-Marie de Rodat <derodat@adacore.com>
13918
13919 * dwarf2out.c (add_abstract_origin_attribute): Adjust
13920 documentation comment. For BLOCK nodes, add a
13921 DW_AT_abstract_origin attribute that points to the DIE generated
13922 for the origin BLOCK.
13923 (gen_lexical_block_die): Call add_abstract_origin_attribute for
13924 blocks from inlined functions.
13925
13926 2016-05-10 Alan Modra <amodra@gmail.com>
13927
13928 PR target/70947
13929 * config/rs6000/rs6000.c (rs6000_expand_split_stack_prologue): Stop
13930 regrename modifying insns saving lr before __morestack call.
13931 * config/rs6000/rs6000.md (split_stack_return): Similarly for
13932 insns restoring lr after __morestack call.
13933
13934 2016-05-09 Jakub Jelinek <jakub@redhat.com>
13935
13936 * config/i386/i386.md (set_got, set_got_labelled, lwp_llwpcb,
13937 lwp_lwpval<mode>3, lwp_lwpins<mode>3): Remove constraints from
13938 expanders.
13939 * config/i386/sse.md (vec_interleave_high<mode>,
13940 vec_interleave_low<mode>, <avx512>_vpermi2var<mode>3_maskz,
13941 <avx512>_vpermt2var<mode>3_maskz): Likewise.
13942
13943 2016-05-04 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13944
13945 * config/rs6000/rs6000.c (rs6000_reassociation_width): Add
13946 function for TARGET_SCHED_REASSOCIATION_WIDTH to enable
13947 parallel reassociation for power8 and forward.
13948
13949 2016-05-09 Uros Bizjak <ubizjak@gmail.com>
13950
13951 * config/i386/i386.md (absneg splitters with general regs): Use
13952 general_reg_operand predicate.
13953 (btsq peephole2): Use x86_64_immediate_operand to check if new
13954 value is suitable for immediate operand. Generate emitted insn
13955 using RTL expressions.
13956 (btcq peephole2): Ditto.
13957 (btrq peephole2): Ditto. Generate correct immediate operand
13958 for AND masking.
13959
13960 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
13961
13962 * cfgexpand.c (expand_debug_expr): Fix address offset for negative
13963 bitpos.
13964
13965 2016-05-09 Richard Sandiford <richard.sandiford@arm.com>
13966
13967 * tree-affine.c (wide_int_constant_multiple_p): Add missing
13968 pointer dereference.
13969
13970 2016-05-09 Richard Biener <rguenther@suse.de>
13971
13972 PR tree-optimization/70985
13973 * match.pd (BIT_FIELD_REF -> (type)): Disable on GIMPLE when
13974 op0 isn't a gimple register.
13975
13976 2016-05-09 Prachi Godbole <prachi.godbole@imgtec.com>
13977
13978 * config/mips/i6400.md (i6400_fpu_intadd, i6400_fpu_logic)
13979 (i6400_fpu_div, i6400_fpu_cmp, i6400_fpu_float, i6400_fpu_store)
13980 (i6400_fpu_long_pipe, i6400_fpu_logic_l, i6400_fpu_float_l)
13981 (i6400_fpu_mult): New cpu units.
13982 (i6400_msa_add_d, i6400_msa_int_add, i6400_msa_short_logic3)
13983 (i6400_msa_short_logic2, i6400_msa_short_logic, i6400_msa_move)
13984 (i6400_msa_cmp, i6400_msa_short_float2, i6400_msa_div_d)
13985 (i6400_msa_div_w, i6400_msa_div_h, i6400_msa_div_b)
13986 (i6400_msa_copy, i6400_msa_branch, i6400_fpu_msa_store)
13987 (i6400_fpu_msa_load, i6400_fpu_msa_move, i6400_msa_long_logic1)
13988 (i6400_msa_long_logic2, i6400_msa_mult, i6400_msa_long_float2)
13989 (i6400_msa_long_float4, i6400_msa_long_float5)
13990 (i6400_msa_long_float8, i6400_msa_fdiv_df)
13991 (i6400_msa_fdiv_sf): New reservations.
13992 * config/mips/p5600.md (p5600_fpu_intadd, p5600_fpu_cmp)
13993 (p5600_fpu_float, p5600_fpu_logic_a, p5600_fpu_logic_b)
13994 (p5600_fpu_div, p5600_fpu_logic, p5600_fpu_float_a)
13995 (p5600_fpu_float_b, p5600_fpu_float_c, p5600_fpu_float_d)
13996 (p5600_fpu_mult, p5600_fpu_fdiv, p5600_fpu_load): New cpu units.
13997 (msa_short_int_add, msa_short_logic, msa_short_logic_move_v)
13998 (msa_short_cmp, msa_short_float2, msa_short_logic3)
13999 (msa_short_store4, msa_long_load, msa_short_store)
14000 (msa_long_logic, msa_long_float2, msa_long_float4)
14001 (msa_long_float5, msa_long_float8, msa_long_mult)
14002 (msa_long_fdiv, msa_long_div): New reservations.
14003
14004 2016-05-09 Robert Suchanek <robert.suchanek@imgtec.com>
14005 Sameera Deshpande <sameera.deshpande@imgtec.com>
14006 Matthew Fortune <matthew.fortune@imgtec.com>
14007 Graham Stott <graham.stott@imgtec.com>
14008 Chao-ying Fu <chao-ying.fu@imgtec.com>
14009
14010 * config.gcc: Add MSA header file for mips*-*-* target.
14011 * config/mips/constraints.md (YI, YC, YZ, Unv5, Uuv5, Usv5, Uuv6)
14012 (Ubv8i, Urv8): New constraints.
14013 * config/mips/mips-ftypes.def: Add function types for MSA
14014 builtins.
14015 * config/mips/mips-modes.def (V16QI, V8HI, V4SI, V2DI, V4SF)
14016 (V2DF, V32QI, V16HI, V8SI, V4DI, V8SF, V4DF): New modes.
14017 * config/mips/mips-msa.md: New file.
14018 * config/mips/mips-protos.h
14019 (mips_split_128bit_const_insns): New prototype.
14020 (mips_msa_idiv_insns): Likewise.
14021 (mips_split_128bit_move): Likewise.
14022 (mips_split_128bit_move_p): Likewise.
14023 (mips_split_msa_copy_d): Likewise.
14024 (mips_split_msa_insert_d): Likewise.
14025 (mips_split_msa_fill_d): Likewise.
14026 (mips_expand_msa_branch): Likewise.
14027 (mips_const_vector_same_val_p): Likewise.
14028 (mips_const_vector_same_bytes_p): Likewise.
14029 (mips_const_vector_same_int_p): Likewise.
14030 (mips_const_vector_shuffle_set_p): Likewise.
14031 (mips_const_vector_bitimm_set_p): Likewise.
14032 (mips_const_vector_bitimm_clr_p): Likewise.
14033 (mips_msa_vec_parallel_const_half): Likewise.
14034 (mips_msa_output_division): Likewise.
14035 (mips_ldst_scaled_shift): Likewise.
14036 (mips_expand_vec_cond_expr): Likewise.
14037 * config/mips/mips.c (enum mips_builtin_type): Add
14038 MIPS_BUILTIN_MSA_TEST_BRANCH.
14039 (mips_gen_const_int_vector_shuffle): New prototype.
14040 (mips_const_vector_bitimm_set_p): New function.
14041 (mips_const_vector_bitimm_clr_p): Likewise.
14042 (mips_const_vector_same_val_p): Likewise.
14043 (mips_const_vector_same_bytes_p): Likewise.
14044 (mips_const_vector_same_int_p): Likewise.
14045 (mips_const_vector_shuffle_set_p): Likewise.
14046 (mips_symbol_insns): Forbid loading symbols via immediate for
14047 MSA.
14048 (mips_valid_offset_p): Limit offset to 10-bit for MSA loads and
14049 stores.
14050 (mips_valid_lo_sum_p): Forbid loadings symbols via %lo(base) for
14051 MSA.
14052 (mips_lx_address_p): Add support load indexed address for MSA.
14053 (mips_address_insns): Add calculation of instructions needed for
14054 stores and loads for MSA.
14055 (mips_const_insns): Move CONST_DOUBLE below CONST_VECTOR. Handle
14056 CONST_VECTOR for MSA and let it fall through.
14057 (mips_ldst_scaled_shift): New function.
14058 (mips_subword_at_byte): Likewise.
14059 (mips_msa_idiv_insns): Likewise.
14060 (mips_legitimize_move): Validate MSA moves.
14061 (mips_rtx_costs): Add UNGE, UNGT, UNLE, UNLT cases. Add
14062 calculation of costs for MSA division.
14063 (mips_split_move_p): Check if MSA moves need splitting.
14064 (mips_split_move): Split MSA moves if necessary.
14065 (mips_split_128bit_move_p): New function.
14066 (mips_split_128bit_move): Likewise.
14067 (mips_split_msa_copy_d): Likewise.
14068 (mips_split_msa_insert_d): Likewise.
14069 (mips_split_msa_fill_d): Likewise.
14070 (mips_output_move): Handle MSA moves.
14071 (mips_expand_msa_branch): New function.
14072 (mips_print_operand): Add 'E', 'B', 'w', 'v' and 'V' modifiers.
14073 Reinstate 'y' modifier.
14074 (mips_file_start): Add MSA .gnu_attribute.
14075 (mips_hard_regno_mode_ok_p): Allow TImode and 128-bit vectors in
14076 FPRs.
14077 (mips_hard_regno_nregs): Always return 1 for MSA supported mode.
14078 (mips_class_max_nregs): Add register size for MSA supported mode.
14079 (mips_cannot_change_mode_class): Allow conversion between MSA
14080 vector modes and TImode.
14081 (mips_mode_ok_for_mov_fmt_p): Allow MSA to use move.v
14082 instruction.
14083 (mips_secondary_reload_class): Force MSA loads/stores via memory.
14084 (mips_preferred_simd_mode): Add preffered modes for MSA.
14085 (mips_vector_mode_supported_p): Add MSA supported modes.
14086 (mips_autovectorize_vector_sizes): New function.
14087 (mips_msa_output_division): Likewise.
14088 (MSA_BUILTIN, MIPS_BUILTIN_DIRECT_NO_TARGET)
14089 (MSA_NO_TARGET_BUILTIN, MSA_BUILTIN_TEST_BRANCH): New macros.
14090 (CODE_FOR_msa_adds_s_b, CODE_FOR_msa_adds_s_h)
14091 (CODE_FOR_msa_adds_s_w, CODE_FOR_msa_adds_s_d)
14092 (CODE_FOR_msa_adds_u_b, CODE_FOR_msa_adds_u_h)
14093 (CODE_FOR_msa_adds_u_w, CODE_FOR_msa_adds_u_du
14094 (CODE_FOR_msa_addv_b, CODE_FOR_msa_addv_h, CODE_FOR_msa_addv_w)
14095 (CODE_FOR_msa_addv_d, CODE_FOR_msa_and_v, CODE_FOR_msa_bmnz_v)
14096 (CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bmz_v, CODE_FOR_msa_bmzi_b)
14097 (CODE_FOR_msa_bnz_v, CODE_FOR_msa_bz_v, CODE_FOR_msa_bsel_v)
14098 (CODE_FOR_msa_bseli_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w)
14099 (CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b)
14100 (CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w)
14101 (CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clti_u_b)
14102 (CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w)
14103 (CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_s_b)
14104 (CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w)
14105 (CODE_FOR_msa_clei_s_d, CODE_FOR_msa_clei_u_b)
14106 (CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w)
14107 (CODE_FOR_msa_clei_u_d, CODE_FOR_msa_div_s_b)
14108 (CODE_FOR_msa_div_s_h, CODE_FOR_msa_div_s_w)
14109 (CODE_FOR_msa_div_s_d, CODE_FOR_msa_div_u_b)
14110 (CODE_FOR_msa_div_u_h, CODE_FOR_msa_div_u_w)
14111 (CODE_FOR_msa_div_u_d, CODE_FOR_msa_fadd_w, CODE_FOR_msa_fadd_d)
14112 (CODE_FOR_msa_fexdo_w, CODE_FOR_msa_ftrunc_s_w)
14113 (CODE_FOR_msa_ftrunc_s_d, CODE_FOR_msa_ftrunc_u_w)
14114 (CODE_FOR_msa_ftrunc_u_d, CODE_FOR_msa_ffint_s_w)
14115 (CODE_FOR_msa_ffint_s_d, CODE_FOR_msa_ffint_u_w)
14116 (CODE_FOR_msa_ffint_u_d, CODE_FOR_msa_fsub_w)
14117 (CODE_FOR_msa_fsub_d, CODE_FOR_msa_fmsub_d, CODE_FOR_msa_fmadd_w)
14118 (CODE_FOR_msa_fmadd_d, CODE_FOR_msa_fmsub_w, CODE_FOR_msa_fmul_w)
14119 (CODE_FOR_msa_fmul_d, CODE_FOR_msa_fdiv_w, CODE_FOR_msa_fdiv_d)
14120 (CODE_FOR_msa_fmax_w, CODE_FOR_msa_fmax_d, CODE_FOR_msa_fmax_a_w)
14121 (CODE_FOR_msa_fmax_a_d, CODE_FOR_msa_fmin_w, CODE_FOR_msa_fmin_d)
14122 (CODE_FOR_msa_fmin_a_w, CODE_FOR_msa_fmin_a_d)
14123 (CODE_FOR_msa_fsqrt_w, CODE_FOR_msa_fsqrt_d)
14124 (CODE_FOR_msa_max_s_b, CODE_FOR_msa_max_s_h)
14125 (CODE_FOR_msa_max_s_w, CODE_FOR_msa_max_s_d)
14126 (CODE_FOR_msa_max_u_b, CODE_FOR_msa_max_u_h)
14127 (CODE_FOR_msa_max_u_w, CODE_FOR_msa_max_u_d)
14128 (CODE_FOR_msa_min_s_b, CODE_FOR_msa_min_s_h)
14129 (CODE_FOR_msa_min_s_w, CODE_FOR_msa_min_s_d)
14130 (CODE_FOR_msa_min_u_b, CODE_FOR_msa_min_u_h)
14131 (CODE_FOR_msa_min_u_w, CODE_FOR_msa_min_u_d)
14132 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14133 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14134 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14135 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14136 (CODE_FOR_msa_mod_s_b, CODE_FOR_msa_mod_s_h)
14137 (CODE_FOR_msa_mod_s_w, CODE_FOR_msa_mod_s_d)
14138 (CODE_FOR_msa_mod_u_b, CODE_FOR_msa_mod_u_h)
14139 (CODE_FOR_msa_mod_u_w, CODE_FOR_msa_mod_u_d)
14140 (CODE_FOR_msa_mulv_b, CODE_FOR_msa_mulv_h, CODE_FOR_msa_mulv_w)
14141 (CODE_FOR_msa_mulv_d, CODE_FOR_msa_nlzc_b, CODE_FOR_msa_nlzc_h)
14142 (CODE_FOR_msa_nlzc_w, CODE_FOR_msa_nlzc_d, CODE_FOR_msa_nor_v)
14143 (CODE_FOR_msa_or_v, CODE_FOR_msa_ori_b, CODE_FOR_msa_nori_b)
14144 (CODE_FOR_msa_pcnt_b, CODE_FOR_msa_pcnt_h, CODE_FOR_msa_pcnt_w)
14145 (CODE_FOR_msa_pcnt_d, CODE_FOR_msa_xor_v, CODE_FOR_msa_xori_b)
14146 (CODE_FOR_msa_sll_b, CODE_FOR_msa_sll_h, CODE_FOR_msa_sll_w)
14147 (CODE_FOR_msa_sll_d, CODE_FOR_msa_slli_b, CODE_FOR_msa_slli_h)
14148 (CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d, CODE_FOR_msa_sra_b)
14149 (CODE_FOR_msa_sra_h, CODE_FOR_msa_sra_w, CODE_FOR_msa_sra_d)
14150 (CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w)
14151 (CODE_FOR_msa_srai_d, CODE_FOR_msa_srl_b, CODE_FOR_msa_srl_h)
14152 (CODE_FOR_msa_srl_w, CODE_FOR_msa_srl_d, CODE_FOR_msa_srli_b)
14153 (CODE_FOR_msa_srli_h, CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d)
14154 (CODE_FOR_msa_subv_b, CODE_FOR_msa_subv_h, CODE_FOR_msa_subv_w)
14155 (CODE_FOR_msa_subv_d, CODE_FOR_msa_subvi_b, CODE_FOR_msa_subvi_h)
14156 (CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d, CODE_FOR_msa_move_v)
14157 (CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h, CODE_FOR_msa_vshf_w)
14158 (CODE_FOR_msa_vshf_d, CODE_FOR_msa_ilvod_d, CODE_FOR_msa_ilvev_d)
14159 (CODE_FOR_msa_pckod_d, CODE_FOR_msa_pckdev_d, CODE_FOR_msa_ldi_b)
14160 (CODE_FOR_msa_ldi_hi, CODE_FOR_msa_ldi_w)
14161 (CODE_FOR_msa_ldi_d): New code_aliasing macros.
14162 (mips_builtins): Add MSA sll_b, sll_h, sll_w, sll_d, slli_b,
14163 slli_h, slli_w, slli_d, sra_b, sra_h, sra_w, sra_d, srai_b,
14164 srai_h, srai_w, srai_d, srar_b, srar_h, srar_w, srar_d, srari_b,
14165 srari_h, srari_w, srari_d, srl_b, srl_h, srl_w, srl_d, srli_b,
14166 srli_h, srli_w, srli_d, srlr_b, srlr_h, srlr_w, srlr_d, srlri_b,
14167 srlri_h, srlri_w, srlri_d, bclr_b, bclr_h, bclr_w, bclr_d,
14168 bclri_b, bclri_h, bclri_w, bclri_d, bset_b, bset_h, bset_w,
14169 bset_d, bseti_b, bseti_h, bseti_w, bseti_d, bneg_b, bneg_h,
14170 bneg_w, bneg_d, bnegi_b, bnegi_h, bnegi_w, bnegi_d, binsl_b,
14171 binsl_h, binsl_w, binsl_d, binsli_b, binsli_h, binsli_w,
14172 binsli_d, binsr_b, binsr_h, binsr_w, binsr_d, binsri_b, binsri_h,
14173 binsri_w, binsri_d, addv_b, addv_h, addv_w, addv_d, addvi_b,
14174 addvi_h, addvi_w, addvi_d, subv_b, subv_h, subv_w, subv_d,
14175 subvi_b, subvi_h, subvi_w, subvi_d, max_s_b, max_s_h, max_s_w,
14176 max_s_d, maxi_s_b, maxi_s_h, maxi_s_w, maxi_s_d, max_u_b,
14177 max_u_h, max_u_w, max_u_d, maxi_u_b, maxi_u_h, maxi_u_w,
14178 maxi_u_d, min_s_b, min_s_h, min_s_w, min_s_d, mini_s_b, mini_s_h,
14179 mini_s_w, mini_s_d, min_u_b, min_u_h, min_u_w, min_u_d, mini_u_b,
14180 mini_u_h, mini_u_w, mini_u_d, max_a_b, max_a_h, max_a_w, max_a_d,
14181 min_a_b, min_a_h, min_a_w, min_a_d, ceq_b, ceq_h, ceq_w, ceq_d,
14182 ceqi_b, ceqi_h, ceqi_w, ceqi_d, clt_s_b, clt_s_h, clt_s_w,
14183 clt_s_d, clti_s_b, clti_s_h, clti_s_w, clti_s_d, clt_u_b,
14184 clt_u_h, clt_u_w, clt_u_d, clti_u_b, clti_u_h, clti_u_w,
14185 clti_u_d, cle_s_b, cle_s_h, cle_s_w, cle_s_d, clei_s_b, clei_s_h,
14186 clei_s_w, clei_s_d, cle_u_b, cle_u_h, cle_u_w, cle_u_d, clei_u_b,
14187 clei_u_h, clei_u_w, clei_u_d, ld_b, ld_h, ld_w, ld_d, st_b, st_h,
14188 st_w, st_d, sat_s_b, sat_s_h, sat_s_w, sat_s_d, sat_u_b, sat_u_h,
14189 sat_u_w, sat_u_d, add_a_b, add_a_h, add_a_w, add_a_d, adds_a_b,
14190 adds_a_h, adds_a_w, adds_a_d, adds_s_b, adds_s_h, adds_s_w,
14191 adds_s_d, adds_u_b, adds_u_h, adds_u_w, adds_u_d, ave_s_b,
14192 ave_s_h, ave_s_w, ave_s_d, ave_u_b, ave_u_h, ave_u_w, ave_u_d,
14193 aver_s_b, aver_s_h, aver_s_w, aver_s_d, aver_u_b, aver_u_h,
14194 aver_u_w, aver_u_d, subs_s_b, subs_s_h, subs_s_w, subs_s_d,
14195 subs_u_b, subs_u_h, subs_u_w, subs_u_d, subsuu_s_b, subsuu_s_h,
14196 subsuu_s_w, subsuu_s_d, subsus_u_b, subsus_u_h, subsus_u_w,
14197 subsus_u_d, asub_s_b, asub_s_h, asub_s_w, asub_s_d, asub_u_b,
14198 asub_u_h, asub_u_w, asub_u_d, mulv_b, mulv_h, mulv_w, mulv_d,
14199 maddv_b, maddv_h, maddv_w, maddv_d, msubv_b, msubv_h, msubv_w,
14200 msubv_d, div_s_b, div_s_h, div_s_w, div_s_d, div_u_b, div_u_h,
14201 div_u_w, div_u_d, hadd_s_h, hadd_s_w, hadd_s_d, hadd_u_h,
14202 hadd_u_w, hadd_u_d, hsub_s_h, hsub_s_w, hsub_s_d, hsub_u_h,
14203 hsub_u_w, hsub_u_d, mod_s_b, mod_s_h, mod_s_w, mod_s_d, mod_u_b,
14204 mod_u_h, mod_u_w, mod_u_d, dotp_s_h, dotp_s_w, dotp_s_d,
14205 dotp_u_h, dotp_u_w, dotp_u_d, dpadd_s_h, dpadd_s_w, dpadd_s_d,
14206 dpadd_u_h, dpadd_u_w, dpadd_u_d, dpsub_s_h, dpsub_s_w, dpsub_s_d,
14207 dpsub_u_h, dpsub_u_w, dpsub_u_d, sld_b, sld_h, sld_w, sld_d,
14208 sldi_b, sldi_h, sldi_w, sldi_d, splat_b, splat_h, splat_w,
14209 splat_d, splati_b, splati_h, splati_w, splati_d, pckev_b,
14210 pckev_h, pckev_w, pckev_d, pckod_b, pckod_h, pckod_w, pckod_d,
14211 ilvl_b, ilvl_h, ilvl_w, ilvl_d, ilvr_b, ilvr_h, ilvr_w, ilvr_d,
14212 ilvev_b, ilvev_h, ilvev_w, ilvev_d, ilvod_b, ilvod_h, ilvod_w,
14213 ilvod_d, vshf_b, vshf_h, vshf_w, vshf_d, and_v, andi_b, or_v,
14214 ori_b, nor_v, nori_b, xor_v, xori_b, bmnz_v, bmnzi_b, bmz_v,
14215 bmzi_b, bsel_v, bseli_b, shf_b, shf_h, shf_w, bnz_v, bz_v,
14216 fill_b, fill_h, fill_w, fill_d, pcnt_b, pcnt_h, pcnt_w,
14217 pcnt_d, nloc_b, nloc_h, nloc_w, nloc_d, nlzc_b, nlzc_h, nlzc_w,
14218 nlzc_d, copy_s_b, copy_s_h, copy_s_w, copy_s_d, copy_u_b,
14219 copy_u_h, copy_u_w, copy_u_d, insert_b, insert_h, insert_w,
14220 insert_d, insve_b, insve_h, insve_w, insve_d, bnz_b, bnz_h,
14221 bnz_w, bnz_d, bz_b, bz_h, bz_w, bz_d, ldi_b, ldi_h, ldi_w, ldi_d,
14222 fcaf_w, fcaf_d, fcor_w, fcor_d, fcun_w, fcun_d, fcune_w, fcune_d,
14223 fcueq_w, fcueq_d, fceq_w, fceq_d, fcne_w, fcne_d, fclt_w, fclt_d,
14224 fcult_w, fcult_d, fcle_w, fcle_d, fcule_w, fcule_d, fsaf_w,
14225 fsaf_d, fsor_w, fsor_d, fsun_w, fsun_d, fsune_w, fsune_d,
14226 fsueq_w, fsueq_d, fseq_w, fseq_d, fsne_w, fsne_d, fslt_w,
14227 fslt_d, fsult_w, fsult_d, fsle_w, fsle_d, fsule_w, fsule_d,
14228 fadd_w, fadd_d, fsub_w, fsub_d, fmul_w, fmul_d, fdiv_w, fdiv_d,
14229 fmadd_w, fmadd_d, fmsub_w, fmsub_d, fexp2_w, fexp2_d, fexdo_h,
14230 fexdo_w, ftq_h, ftq_w, fmin_w, fmin_d, fmin_a_w, fmin_a_d,
14231 fmax_w, fmax_d, fmax_a_w, fmax_a_d, mul_q_h, mul_q_w, mulr_q_h,
14232 mulr_q_w, madd_q_h, madd_q_w, maddr_q_h, maddr_q_w, msub_q_h,
14233 msub_q_w, msubr_q_h, msubr_q_w, fclass_w, fclass_d, fsqrt_w,
14234 fsqrt_d, frcp_w, frcp_d, frint_w, frint_d, frsqrt_w, frsqrt_d,
14235 flog2_w, flog2_d, fexupl_w, fexupl_d, fexupr_w, fexupr_d, ffql_w,
14236 ffql_d, ffqr_w, ffqr_d, ftint_s_w, ftint_s_d, ftint_u_w,
14237 ftint_u_d, ftrunc_s_w, ftrunc_s_d, ftrunc_u_w, ftrunc_u_d,
14238 ffint_s_w, ffint_s_d, ffint_u_w, ffint_u_d, ctcmsa, cfcmsa,
14239 move_v builtins.
14240 (mips_get_builtin_decl_index): New array.
14241 (MIPS_ATYPE_QI, MIPS_ATYPE_HI, MIPS_ATYPE_V2DI, MIPS_ATYPE_V4SI)
14242 (MIPS_ATYPE_V8HI, MIPS_ATYPE_V16QI, MIPS_ATYPE_V2DF)
14243 (MIPS_ATYPE_V4SF, MIPS_ATYPE_UV2DI, MIPS_ATYPE_UV4SI)
14244 (MIPS_ATYPE_UV8HI, MIPS_ATYPE_UV16QI): New.
14245 (mips_init_builtins): Initialize mips_get_builtin_decl_index
14246 array.
14247 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target
14248 hook.
14249 (mips_expand_builtin_insn): Prepare operands for
14250 CODE_FOR_msa_addvi_b, CODE_FOR_msa_addvi_h, CODE_FOR_msa_addvi_w,
14251 CODE_FOR_msa_addvi_d, CODE_FOR_msa_clti_u_b,
14252 CODE_FOR_msa_clti_u_h, CODE_FOR_msa_clti_u_w,
14253 CODE_FOR_msa_clti_u_d, CODE_FOR_msa_clei_u_b,
14254 CODE_FOR_msa_clei_u_h, CODE_FOR_msa_clei_u_w,
14255 CODE_FOR_msa_clei_u_d, CODE_FOR_msa_maxi_u_b,
14256 CODE_FOR_msa_maxi_u_h, CODE_FOR_msa_maxi_u_w,
14257 CODE_FOR_msa_maxi_u_d, CODE_FOR_msa_mini_u_b,
14258 CODE_FOR_msa_mini_u_h, CODE_FOR_msa_mini_u_w,
14259 CODE_FOR_msa_mini_u_d, CODE_FOR_msa_subvi_b,
14260 CODE_FOR_msa_subvi_h, CODE_FOR_msa_subvi_w, CODE_FOR_msa_subvi_d,
14261 CODE_FOR_msa_ceqi_b, CODE_FOR_msa_ceqi_h, CODE_FOR_msa_ceqi_w,
14262 CODE_FOR_msa_ceqi_d, CODE_FOR_msa_clti_s_b,
14263 CODE_FOR_msa_clti_s_h, CODE_FOR_msa_clti_s_w,
14264 CODE_FOR_msa_clti_s_d, CODE_FOR_msa_clei_s_b,
14265 CODE_FOR_msa_clei_s_h, CODE_FOR_msa_clei_s_w,
14266 CODE_FOR_msa_clei_s_d, CODE_FOR_msa_maxi_s_b,
14267 CODE_FOR_msa_maxi_s_h, CODE_FOR_msa_maxi_s_w,
14268 CODE_FOR_msa_maxi_s_d, CODE_FOR_msa_mini_s_b,
14269 CODE_FOR_msa_mini_s_h, CODE_FOR_msa_mini_s_w,
14270 CODE_FOR_msa_mini_s_d, CODE_FOR_msa_andi_b, CODE_FOR_msa_ori_b,
14271 CODE_FOR_msa_nori_b, CODE_FOR_msa_xori_b, CODE_FOR_msa_bmzi_b,
14272 CODE_FOR_msa_bmnzi_b, CODE_FOR_msa_bseli_b, CODE_FOR_msa_fill_b,
14273 CODE_FOR_msa_fill_h, CODE_FOR_msa_fill_w, CODE_FOR_msa_fill_d,
14274 CODE_FOR_msa_ilvl_b, CODE_FOR_msa_ilvl_h, CODE_FOR_msa_ilvl_w,
14275 CODE_FOR_msa_ilvl_d, CODE_FOR_msa_ilvr_b, CODE_FOR_msa_ilvr_h,
14276 CODE_FOR_msa_ilvr_w, CODE_FOR_msa_ilvr_d, CODE_FOR_msa_ilvev_b,
14277 CODE_FOR_msa_ilvev_h, CODE_FOR_msa_ilvev_w, CODE_FOR_msa_ilvod_b,
14278 CODE_FOR_msa_ilvod_h, CODE_FOR_msa_ilvod_w, CODE_FOR_msa_pckev_b,
14279 CODE_FOR_msa_pckev_h, CODE_FOR_msa_pckev_w, CODE_FOR_msa_pckod_b,
14280 CODE_FOR_msa_pckod_h, CODE_FOR_msa_pckod_w, CODE_FOR_msa_slli_b,
14281 CODE_FOR_msa_slli_h, CODE_FOR_msa_slli_w, CODE_FOR_msa_slli_d,
14282 CODE_FOR_msa_srai_b, CODE_FOR_msa_srai_h, CODE_FOR_msa_srai_w,
14283 CODE_FOR_msa_srai_d, CODE_FOR_msa_srli_b, CODE_FOR_msa_srli_h,
14284 CODE_FOR_msa_srli_w, CODE_FOR_msa_srli_d, CODE_FOR_msa_insert_b,
14285 CODE_FOR_msa_insert_h, CODE_FOR_msa_insert_w,
14286 CODE_FOR_msa_insert_d, CODE_FOR_msa_insve_b,
14287 CODE_FOR_msa_insve_h, CODE_FOR_msa_insve_w, CODE_FOR_msa_insve_d,
14288 CODE_FOR_msa_shf_b, CODE_FOR_msa_shf_h, CODE_FOR_msa_shf_w,
14289 CODE_FOR_msa_shf_w_f, CODE_FOR_msa_vshf_b, CODE_FOR_msa_vshf_h,
14290 CODE_FOR_msa_vshf_w, CODE_FOR_msa_vshf_d.
14291 (mips_expand_builtin): Add case for MIPS_BULTIN_MSA_TEST_BRANCH.
14292 (mips_set_compression_mode): Disallow MSA with MIPS16 code.
14293 (mips_option_override): -mmsa requires -mfp64 and -mhard-float.
14294 These are set implicitly and an error is reported if overridden.
14295 (mips_expand_builtin_msa_test_branch): New function.
14296 (mips_expand_msa_shuffle): Likewise.
14297 (MAX_VECT_LEN): Increase maximum length of a vector to 16 bytes.
14298 (TARGET_SCHED_REASSOCIATION_WIDTH): Define target hook.
14299 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Likewise.
14300 (mips_expand_vec_unpack): Add support for MSA.
14301 (mips_expand_vector_init): Likewise.
14302 (mips_expand_vi_constant): Use CONST0_RTX (element_mode)
14303 instead of const0_rtx.
14304 (mips_msa_vec_parallel_const_half): New function.
14305 (mips_gen_const_int_vector): Likewise.
14306 (mips_gen_const_int_vector_shuffle): Likewise.
14307 (mips_expand_msa_cmp): Likewise.
14308 (mips_expand_vec_cond_expr): Likewise.
14309 * config/mips/mips.h
14310 (TARGET_CPU_CPP_BUILTINS): Add __mips_msa and __mips_msa_width.
14311 (OPTION_DEFAULT_SPECS): Ignore --with-fp-32 if -mmsa is
14312 specified.
14313 (ASM_SPEC): Pass mmsa and mno-msa to the assembler.
14314 (ISA_HAS_MSA): New macro.
14315 (UNITS_PER_MSA_REG): Likewise.
14316 (BITS_PER_MSA_REG): Likewise.
14317 (BIGGEST_ALIGNMENT): Redefine using ISA_HAS_MSA.
14318 (MSA_REG_FIRST): New macro.
14319 (MSA_REG_LAST): Likewise.
14320 (MSA_REG_NUM): Likewise.
14321 (MSA_REG_P): Likewise.
14322 (MSA_REG_RTX_P): Likewise.
14323 (MSA_SUPPORTED_MODE_P): Likewise.
14324 (HARD_REGNO_CALL_PART_CLOBBERED): Redefine using TARGET_MSA.
14325 (ADDITIONAL_REGISTER_NAMES): Add named registers $w0-$w31.
14326 * config/mips/mips.md: Include mips-msa.md.
14327 (alu_type): Add simd_add.
14328 (mode): Add V2DI, V4SI, V8HI, V16QI, V2DF, V4SF.
14329 (type): Add simd_div, simd_fclass, simd_flog2, simd_fadd,
14330 simd_fcvt, simd_fmul, simd_fmadd, simd_fdiv, simd_bitins,
14331 simd_bitmov, simd_insert, simd_sld, simd_mul, simd_fcmp,
14332 simd_fexp2, simd_int_arith, simd_bit, simd_shift, simd_splat,
14333 simd_fill, simd_permute, simd_shf, simd_sat, simd_pcnt,
14334 simd_copy, simd_branch, simd_cmsa, simd_fminmax, simd_logic,
14335 simd_move, simd_load, simd_store. Choose "multi" for moves
14336 for "qword_mode".
14337 (qword_mode): New attribute.
14338 (insn_count): Add instruction count for quad moves.
14339 Increase the count for MIPS SIMD division.
14340 (UNITMODE): Add UNITMODEs for vector types.
14341 (addsub): New code iterator.
14342 * config/mips/mips.opt (mmsa): New option.
14343 * config/mips/msa.h: New file.
14344 * config/mips/mti-elf.h: Don't infer -mfpxx if -mmsa is
14345 specified.
14346 * config/mips/mti-linux.h: Likewise.
14347 * config/mips/predicates.md
14348 (const_msa_branch_operand): New constraint.
14349 (const_uimm3_operand): Likewise.
14350 (const_uimm4_operand): Likewise.
14351 (const_uimm5_operand): Likewise.
14352 (const_uimm8_operand): Likewise.
14353 (const_imm5_operand): Likewise.
14354 (aq10b_operand): Likewise.
14355 (aq10h_operand): Likewise.
14356 (aq10w_operand): Likewise.
14357 (aq10d_operand): Likewise.
14358 (const_m1_operand): Likewise.
14359 (reg_or_m1_operand): Likewise.
14360 (const_exp_2_operand): Likewise.
14361 (const_exp_4_operand): Likewise.
14362 (const_exp_8_operand): Likewise.
14363 (const_exp_16_operand): Likewise.
14364 (const_vector_same_val_operand): Likewise.
14365 (const_vector_same_simm5_operand): Likewise.
14366 (const_vector_same_uimm5_operand): Likewise.
14367 (const_vector_same_uimm6_operand): Likewise.
14368 (const_vector_same_uimm8_operand): Likewise.
14369 (par_const_vector_shf_set_operand): Likewise.
14370 (reg_or_vector_same_val_operand): Likewise.
14371 (reg_or_vector_same_simm5_operand): Likewise.
14372 (reg_or_vector_same_uimm6_operand): Likewise.
14373 * doc/extend.texi (MIPS SIMD Architecture Functions): New
14374 section.
14375 * doc/invoke.texi (-mmsa): Document new option.
14376
14377 2016-05-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
14378
14379 * configure.ac (enable_vtable_verify): Handle --enable-vtable-verify.
14380 * configure: Regenerate.
14381 * config.in: Regenerate.
14382 * gcc.c (VTABLE_VERIFICATION_SPEC) [!ENABLE_VTABLE_VERIFY]: Error
14383 on -fvtable-verify.
14384 * config/sol2.h [!ENABLE_VTABLE_VERIFY] (STARTFILE_VTV_SPEC): Define.
14385 (ENDFILE_VTV_SPEC): Define.
14386
14387 2016-05-09 Kaushik Phatak <kaushik.phatak@kpit.com>
14388
14389 * config/rl78/rl78.c (rl78_expand_prologue): Save the MDUC related
14390 registers in all interrupt handlers if necessary.
14391 (rl78_option_override): Add warning.
14392 (MUST_SAVE_MDUC_REGISTERS): New macro.
14393 (rl78_expand_epilogue): Restore the MDUC registers if necessary.
14394 * config/rl78/rl78.c (check_mduc_usage): New function.
14395 (mduc_regs): New structure to hold MDUC register data.
14396 * config/rl78/rl78.md (is_g13_muldiv_insn): New attribute.
14397 (mulsi3_g13): Add is_g13_muldiv_insn attribute.
14398 (udivmodsi4_g13): Add is_g13_muldiv_insn attribute.
14399 (mulhi3_g13): Add is_g13_muldiv_insn attribute.
14400 * config/rl78/rl78.opt (msave-mduc-in-interrupts): New option.
14401 * doc/invoke.texi (RL78 Options): Add -msave-mduc-in-interrupts.
14402
14403 2016-05-09 Bin Cheng <bin.cheng@arm.com>
14404
14405 * tree-if-conv.c (tree-ssa-loop.h): Include header file.
14406 (tree-ssa-loop-niter.h): Ditto.
14407 (idx_within_array_bound, ref_within_array_bound): New functions.
14408 (ifcvt_memrefs_wont_trap): Check if array ref is within bound.
14409 Factor out check on writable base object to ...
14410 (base_object_writable): ... here.
14411
14412 2016-05-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14413
14414 * config/arm/arm.md (probe_stack): Add modes to set source
14415 and destination.
14416
14417 2016-05-09 Bernd Schmidt <bschmidt@redhat.com>
14418
14419 * regrename.c (base_reg_class_for_rename): New static function.
14420 (scan_rtx_address, scan_rtx): Use it instead of base_reg_class.
14421
14422 2016-05-08 Jan Hubicka <hubicka@ucw.cz>
14423
14424 * cgraph.c (thunk_adjust): Export.
14425 * cgraphclones.c (cgraph_node::create_clone): Clone thunk info.
14426 * cgraphunit.c (thunk_adjust): Export.
14427 (cgraph_node::assemble_thunks_and_aliases): Do not assemble inlined
14428 thunks.
14429 * ipa-inline-analyssi.c (compute_inline_parameters): Thunks are
14430 inlinable.
14431 * tree-inline.c (expand_call_inline): Expand thunks inline.
14432
14433 2016-05-08 Uros Bizjak <ubizjak@gmail.com>
14434
14435 PR target/70998
14436 * config/i386/sse.md (*sse2_vd_cvtsd2ss): New insn pattern.
14437 (*sse2_vd_cvtss2sd): Ditto.
14438 * config/i386/i386.md
14439 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf splitter):
14440 Generate *sse2_vd_cvtsd2ss pattern.
14441 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df splitter):
14442 Generate *sse2_vd_cvtss2sd pattern.
14443
14444 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
14445
14446 * config/sh/sh.h (GET_SH_ARG_CLASS): Convert macro into ...
14447 * config/sh/sh.c (get_sh_arg_class): ... this new function. Update its
14448 users.
14449
14450 2016-05-08 Oleg Endo <olegendo@gcc.gnu.org>
14451
14452 * config/sh/sh-protos.h (sh_media_register_for_return): Remove.
14453 * config/sh/sh.c: Define and declare variables on first use throughout
14454 the file.
14455 (current_function_interrupt): Change to bool type.
14456 (frame_insn): Rename to emit_frame_insn and update users.
14457 (push_regs): Use bool for 'interrupt_handler' argument.
14458 (save_schedule_s): Remove.
14459 (TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_ALIGNED_DI_OP): Remove.
14460 (sh_option_override): Don't nullify targetm.asm_out.aligned_op.di and
14461 targetm.asm_out.unaligned_op.di.
14462 (gen_far_branch): Remove redundant forward declaration.
14463 (sh_media_register_for_return, MAX_SAVED_REGS, save_entry_s, save_entry,
14464 MAX_TEMPS, save_schedule_ssave_schedule): Remove.
14465 (sh_set_return_address, sh_function_ok_for_sibcall,
14466 scavenge_reg): Update comments.
14467 (sh_builtin_saveregs): Use TRAGET_FPU_ANY condition.
14468 (sh2a_get_function_vector_number, sh2a_function_vector_p): Use for loop.
14469 (sh_attr_renesas_p): Remove unnecessary parentheses.
14470 (branch_dest): Simplify.
14471 * config/sh/sh.h (sh_args): Remove byref, byref_regs, stack_regs fields.
14472 Change force_mem, prototype_p, outgoing, renesas_abi fields to bool.
14473 (CUMULATIVE_ARGS): Change macro to typedef.
14474 (current_function_interrupt): Change to bool type.
14475 (sh_arg_class, sh_args, CUMULATIVE_ARGS, current_function_interrupt):
14476 Surround with __cplusplus ifdef.
14477 (sh_compare_op0, sh_compare_op1): Remove.
14478 (EPILOGUE_USES): Use TARGET_FPU_ANY condition.
14479
14480 2016-05-07 Jim Wilson <jim.wilson@linaro.org>
14481
14482 * config/arm/arm.md: (arch): Add neon.
14483 (arch_enabled): Return yes for arch neon when TARGET_NEON.
14484 * config/arm/vfp.md (movdf_vfp): Add w/G as alternative 3. Add
14485 neon_move as type for alt 3. Add arch attr enabling alt 3 for neon.
14486 Emit vmov.i64 for alt 3. Renumber alternatives 3 to 8. Adjust
14487 attributes for alt renumbering. Mark alt 3 as non-predicable.
14488 (thumb2_movdf_vfp): Likewise.
14489
14490 2016-05-07 Uros Bizjak <ubizjak@gmail.com>
14491
14492 * config/i386/i386.md (*addqi_1): Add preferred_for_speed attribute
14493 to disparage alternatives 3 and 4 for TARGET_PARTIAL_REG_STALL targets.
14494 (*andqi_1): Add preferred_for_speed attribute to disparage
14495 alternative 2 for TARGET_PARTIAL_REG_STALL targets.
14496 (*<code>qi_1): Ditto.
14497 (*one_cmplqi2_1): Add preferred_for_speed attribute to disparage
14498 alternative 1 for TARGET_PARTIAL_REG_STALL targets.
14499 (*ashlqi3_1): Ditto.
14500 (*swap<mode>): Merge from *swap<mode>_1 and *swap<mode>_2 patterns.
14501 Add preferred_for_size attribute to disparage alternative 0 and
14502 preferred_for_speed attribute to disparage alternative 1 for
14503 TARGET_PARTIAL_REG_STALL targets.
14504
14505 2016-05-07 Tom de Vries <tom@codesourcery.com>
14506
14507 PR tree-optimization/70956
14508 * graphite-scop-detection.c (build_cross_bb_scalars_def): Handle NULL
14509 def.
14510
14511 2016-05-07 Oleg Endo <olegendo@gcc.gnu.org>
14512
14513 * config/sh/sh-protos.h (sh_cbranch_distance): Declare new function.
14514 * config/sh/sh.c (sh_cbranch_distance): Implement it.
14515 * config/sh/sh.md (branch_zero): Remove define_attr.
14516 (define_delay): Disable delay slot if branch distance is one insn.
14517
14518 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
14519
14520 * config/i386/i386.md (LEAMODE): New mode attribute.
14521 (plus to LEA splitter): Rewrite splitter using LEAMODE mode attribute.
14522 (ashift to LEA splitter): Rewrte splitter using SWI mode iterator
14523 and LEAMODE mode attribute. Use VOIDmode const_0_to_3_operand as
14524 operand 2 predicate.
14525 (*lea<mode>_general_2): Use VOIDmode for const248_operand.
14526 (*lea<mode>_general_3): Ditto.
14527 (*lea<mode>_general_4): Use VOIDmode for const_0_to_3_operand.
14528
14529 2016-05-06 Jakub Jelinek <jakub@redhat.com>
14530
14531 * genmddump.c (main): Convert argv from char ** to const char **.
14532
14533 2016-05-06 David Malcolm <dmalcolm@redhat.com>
14534
14535 * coretypes.h (OVERRIDE): New macro.
14536 (FINAL): New macro.
14537
14538 2016-05-06 Eric Botcazou <ebotcazou@adacore.com>
14539
14540 * tree-ssa-coalesce.c (gimple_can_coalesce_p): In the optimized case,
14541 allow coalescing if the types are compatible.
14542
14543 2016-05-06 David Malcolm <dmalcolm@redhat.com>
14544
14545 * pass_manager.h (pass_manager::register_pass_name): New method.
14546 (pass_manager::get_pass_by_name): New method.
14547 (pass_manager::create_pass_tab): New method.
14548 (pass_manager::m_name_to_pass_map): New field.
14549 * passes.c (name_to_pass_map): Delete global in favor of field
14550 "m_name_to_pass_map" of pass_manager.
14551 (register_pass_name): Rename from a function to...
14552 (pass_manager::register_pass_name): ...this method, updating
14553 for renaming of global "name_to_pass_map" to field
14554 "m_name_to_pass_map".
14555 (create_pass_tab): Rename from a function to...
14556 (pass_manager::create_pass_tab): ...this method, updating
14557 for renaming of global "name_to_pass_map" to field.
14558 (get_pass_by_name): Rename from a function to...
14559 (pass_manager::get_pass_by_name): ...this method.
14560 (enable_disable_pass): Convert use of get_pass_by_name to
14561 a method call, locating the pass_manager singleton.
14562
14563 2016-05-06 David Malcolm <dmalcolm@redhat.com>
14564
14565 * genattr-common.c (main): Convert argv from char ** to const char **.
14566 * genattr.c (main): Likewise.
14567 * genattrtab.c (main): Likewise.
14568 * genautomata.c (initiate_automaton_gen): Likewise.
14569 (main): Likewise.
14570 * gencodes.c (main): Likewise.
14571 * genconditions.c (main): Likewise.
14572 * genconfig.c (main): Likewise.
14573 * genconstants.c (main): Likewise.
14574 * genemit.c (main): Likewise.
14575 * genenums.c (main): Likewise.
14576 * genextract.c (main): Likewise.
14577 * genflags.c (main): Likewise.
14578 * genmddeps.c (main): Likewise.
14579 * genopinit.c (main): Likewise.
14580 * genoutput.c (main): Likewise.
14581 * genpeep.c (main): Likewise.
14582 * genpreds.c (main): Likewise.
14583 * genrecog.c (main): Likewise.
14584 * gensupport.c (init_rtx_reader_args_cb): Likewise.
14585 (init_rtx_reader_args): Likewise.
14586 * gensupport.h (init_rtx_reader_args_cb): Likewise.
14587 (init_rtx_reader_args): Likewise.
14588 * gentarget-def.c (main): Likewise.
14589 * read-md.c (read_md_files): Likewise.
14590 * read-md.h (read_md_files): Likewise.
14591
14592 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
14593
14594 * config/i386/i386.md (int cmove peephole2s): Use general_reg_operand
14595 instead of register_and_not_any_fp_reg_operand as operand 0 predicate.
14596 * config/i386/predicates.md (register_and_not_any_fp_reg_operand):
14597 Remove unused predicate.
14598 (register_and_not_fp_reg_operand): Ditto.
14599
14600 2016-05-06 Martin Liska <mliska@suse.cz>
14601
14602 * tree-if-conv.c (ifcvt_split_critical_edges): Use auto_vec
14603 instead of vec as the vector is local to the function.
14604
14605 2016-05-06 Jakub Jelinek <jakub@redhat.com>
14606
14607 * config/i386/sse.md (*<code>v8hi3, *<code>v16qi3): Add
14608 avx512bw alternative.
14609
14610 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>): Move
14611 before the ashr<mode>3 pattern.
14612
14613 * config/i386/sse.md (*avx2_pmaddwd, *sse2_pmaddwd): Use
14614 v instead of x in vex or maybe_vex alternatives, use
14615 maybe_evex instead of vex in prefix.
14616
14617 * config/i386/sse.md (*vec_extractv4sf_0, *sse4_1_extractps,
14618 *vec_extractv4sf_mem, vec_extract_lo_v16hi, vec_extract_hi_v16hi,
14619 vec_extract_lo_v32qi, vec_extract_hi_v32qi): Use v instead of x
14620 in vex or maybe_vex alternatives, use maybe_evex instead of vex
14621 in prefix.
14622
14623 * config/i386/sse.md (*vec_concatv2sf_sse4_1, *vec_concatv4sf): Use
14624 v instead of x in vex or maybe_vex alternatives, use
14625 maybe_evex instead of vex in prefix.
14626
14627 * config/i386/sse.md (sse_shufps_<mode>, sse_storehps, sse_loadhps,
14628 sse_storelps, sse_movss, avx2_vec_dup<mode>, avx2_vec_dupv8sf_1,
14629 sse2_shufpd_<mode>, sse2_storehpd, sse2_storelpd, sse2_loadhpd,
14630 sse2_loadlpd, sse2_movsd): Use v instead of x in vex or maybe_vex
14631 alternatives, use maybe_evex instead of vex in prefix.
14632
14633 * config/i386/sse.md (vec_interleave_lowv4sf,
14634 *vec_interleave_highv2df, *vec_interleave_lowv2df): Use
14635 v instead of x in vex or maybe_vex alternatives, use
14636 maybe_evex instead of vex in prefix.
14637
14638 * config/i386/sse.md (sse_movhlps, sse_movlhps): Use
14639 v instead of x in vex or maybe_vex alternatives, use
14640 maybe_evex instead of vex in prefix.
14641
14642 * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
14643 v constraint instead of x.
14644
14645 2016-05-06 Nathan Sidwell <nathan@codesourcery.com>
14646
14647 * gimple.c (gimple_call_same_target_p): Unique functions are eq.
14648 * tree-ssa-tail-merge.c (same_succ::equal): Check pointer eq
14649 equality first.
14650
14651 2016-05-06 Richard Biener <rguenther@suse.de>
14652
14653 PR tree-optimization/70948
14654 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call):
14655 Properly clobber all fields of va_list for __builtin_va_start.
14656
14657 2016-05-06 Yuri Rumyantsev <ysrumyan@gmail.com>
14658
14659 PR debug/70935
14660 * tree-ssa-loop-unswitch.c (find_loop_guard): Reject guard edge with
14661 loop latch destination.
14662
14663 2016-05-06 Martin Liska <mliska@suse.cz>
14664
14665 * tree-ssa-uninit.c: Apply manual changes
14666 to the GNU coding style.
14667 (prune_uninit_phi_opnds): Rename from
14668 prune_uninit_phi_opnds_in_unrealizable_paths.
14669
14670 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14671
14672 * config/sh/sh.opt (madjust-unroll, minvalid-symbols, msoft-atomic,
14673 mspace): Remove deprecated options.
14674 * doc/invoke.texi (SH options): Remove -mspace.
14675
14676 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14677
14678 * config/sh/sh.md (ic_invalidate_line_sh4a): Fix insn length.
14679
14680 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14681
14682 * config/sh/sh.md (*cmpeqsi_t): Remove combine insn pattern and similar
14683 corresponding combine split pattern.
14684
14685 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14686
14687 PR target/58219
14688 * config/sh/predicates.md (long_displacement_mem_operand): New.
14689 * config/sh/sh.md (movsi_i): Allow for SH2A, disallow for any FPU.
14690 Add movi20, movi20s alternatives. Adjust length attribute for
14691 alternatives.
14692 (movsi_ie): Allow for any FPU. Adjust length attribute for
14693 alternatives.
14694 (movsi_i_lowpart): Add movi20, movi20s alternatives. Adjust length
14695 attribute for alternatives.
14696 (*mov<mode>): Use long_displacement_mem_operand for length attribute.
14697 (*movdi_i, movdf_k, movdf_i4, movsf_i, movsf_ie, movsf_ie_ra): Adjust
14698 length attribute for alternatives.
14699
14700 2016-05-06 Richard Biener <rguenther@suse.de>
14701
14702 PR tree-optimization/70960
14703 * tree-if-conv.c (ifcvt_walk_pattern_tree): Handle non-SSA ops.
14704
14705 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14706
14707 PR target/52933
14708 * config/sh/sh.md (*cmp_div0s_7, *cmp_div0s_8): Add div0s variants.
14709 * config/sh/sh.c (sh_rtx_costs): Add another div0s case.
14710
14711 2016-05-06 Marek Polacek <polacek@redhat.com>
14712
14713 PR sanitizer/70875
14714 * ubsan.c (get_ubsan_type_info_for_type): Remove assert.
14715
14716 2016-05-06 Oleg Endo <olegendo@gcc.gnu.org>
14717
14718 PR target/54089
14719 * config/sh/sh.md (*rotcr): Add another variant.
14720
14721 2016-05-06 Richard Biener <rguenther@suse.de>
14722
14723 PR middle-end/70931
14724 * dwarf2out.c (native_encode_initializer): Skip zero-sized fields.
14725
14726 2016-05-06 Richard Biener <rguenther@suse.de>
14727
14728 PR middle-end/70941
14729 * fold-const.c (split_tree): Always convert to the original type
14730 before negating.
14731
14732 2016-05-06 Richard Biener <rguenther@suse.de>
14733
14734 * fwprop.c (fwprop): Remove duplicate cleanup_cfg call.
14735 (fwprop_addr): Likewise.
14736
14737 2016-05-06 Uros Bizjak <ubizjak@gmail.com>
14738
14739 PR target/70873
14740 * config/i386/i386-protos.h (ix86_standard_x87sse_constant_load_p):
14741 New prototype.
14742 * config/i386/i386.c (ix86_standard_x87sse_constant_load_p): New.
14743 * config/i386/i386.md (push mem splitter): Use find_constant_src in
14744 the splitter condition.
14745 (FP load splitter): Use ix86_standard_x87sse_constant_load_p in
14746 the splitter condition.
14747 (FP float_extend load splitter): Ditto.
14748
14749 2016-05-05 Uros Bizjak <ubizjak@gmail.com>
14750
14751 * config/i386/i386.md (peehole2 patterns): Change true_regnum
14752 to REGNO in all peephole2 patterns.
14753 (post-reload splitters): Change true_regnum to REGNO in
14754 post-reload splitters.
14755 (zero_extend splitters): Use general_reg_operand and
14756 nonimmediate_gr_operand predicates.
14757
14758 2016-05-05 Jakub Jelinek <jakub@redhat.com>
14759
14760 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>): Use
14761 v constraint instead of x.
14762
14763 2016-05-05 Alan Modra <amodra@gmail.com>
14764
14765 PR target/68662
14766 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
14767 set OPTION_MASK_RELOCATABLE when flag_pic == 2. Set
14768 TARGET_NO_FP_IN_TOC for -mrelocatable.
14769 (MINIMAL_TOC_SECTION_ASM_OP): Remove redundant
14770 TARGET_RELOCATABLE test.
14771 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14772 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14773 * config/rs6000/linux64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
14774 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14775 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14776 * config/rs6000/freebsd64.h (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
14777 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
14778 (ASM_PREFERRED_EH_DATA_FORMAT): Likewise.
14779 * config/rs6000/predicates.md (easy_fp_constant): Likewise.
14780 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
14781 Likewise.
14782 (rs6000_assemble_integer): Update TARGET_RELOCATABLE test.
14783 (rs6000_stack_info): Likewise.
14784 (rs6000_elf_asm_out_constructor): Likewise.
14785 (rs6000_elf_asm_out_destructor): Likewise.
14786 (rs6000_elf_declare_function_name): Likewise.
14787 * config/rs6000/rs6000.md (load_toc_aix_di): Likewise.
14788 * config/rs6000/rs6000.h (MASK_RELOCATABLE, MASK_MINIMAL_TOC):
14789 Don't define.
14790
14791 2016-05-05 Alan Modra <amodra@gmail.com>
14792
14793 * config/rs6000/rs6000.c (rs6000_frame_related): Rewrite.
14794
14795 2016-05-05 Alan Modra <amodra@gmail.com>
14796
14797 * config/rs6000/rs6000.c (rs6000_savres_strategy): Don't use
14798 out-of-line gpr restore for one or two regs if that would add
14799 a save of lr.
14800
14801 2016-05-04 Uros Bizjak <ubizjak@gmail.com>
14802
14803 PR target/70873
14804 * config/i386/i386.md
14805 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_extend sf->df peephole2):
14806 Change to post-epilogue_completed late splitter. Use sse_reg_operand
14807 as operand 0 predicate.
14808 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float_truncate df->sf peephole2):
14809 Ditto.
14810 (TARGET_SSE_PARTIAL_REG_DEPENDENCY float {si,di}->{sf,df} peephole2):
14811 Ditto. Emit the pattern using RTX.
14812
14813 (TARGET_USE_VECTOR_FP_CONVERTS float_extend sf->df splitter):
14814 Use sse_reg_opreand as operand 0 predicate. Do not use true_regnum in
14815 the post-reload splitter. Use lowpart_subreg instead of gen_rtx_REG.
14816 (TARGET_USE_VECTOR_FP_CONVERTS float_truncate df->sf splitter):
14817 Ditto.
14818 (TARGET_USE_VECTOR_CONVERTS float si->{sf,df} splitter): Use
14819 sse_reg_operand as operand 0 predicate.
14820
14821 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_extend sf->df peephole2):
14822 Use sse_reg_opreand as operand 0 predicate. Use lowpart_subreg
14823 instead of gen_rtx_REG.
14824 (TARGET_SPLIT_MEM_OPND_FOR_FP_CONVERTS float_truncate sf->df peephole2):
14825 Ditto.
14826
14827 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
14828
14829 * function.c (emit_use_return_register_into_block): Delete.
14830 (gen_return_pattern): Delete.
14831 (emit_return_into_block): Delete.
14832 (active_insn_between): Delete.
14833 (convert_jumps_to_returns): Delete.
14834 (emit_return_for_exit): Delete.
14835 (thread_prologue_and_epilogue_insns): Delete all code dealing with
14836 simple_return for shrink-wrapped blocks.
14837 * shrink-wrap.c (try_shrink_wrapping): Insert simple_return at the
14838 end of blocks that need one.
14839 (get_unconverted_simple_return): Delete.
14840 (convert_to_simple_return): Delete.
14841 * shrink-wrap.c (get_unconverted_simple_return): Delete declaration.
14842 (convert_to_simple_return): Ditto.
14843
14844 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
14845
14846 * cfgcleanup.c (bb_is_just_return): New function.
14847 (try_optimize_cfg): Simplify jumps to return, branches to return,
14848 and branches around return.
14849
14850 2016-05-04 Segher Boessenkool <segher@kernel.crashing.org>
14851
14852 * cfgcleanup.c (try_simplify_condjump): Don't try to simplify a
14853 branch to a return.
14854
14855 2016-05-04 Jakub Jelinek <jakub@redhat.com>
14856
14857 PR c++/70906
14858 PR c++/70933
14859 * tree-core.h (enum operand_equal_flag): Add OEP_HASH_CHECK.
14860 * tree.c (inchash::add_expr): If !IS_EXPR_CODE_CLASS (tclass),
14861 assert flags & OEP_HASH_CHECK, instead of asserting it
14862 never happens. Handle TARGET_EXPR.
14863 * fold-const.c (operand_equal_p): For hash verification,
14864 or in OEP_HASH_CHECK into flags.
14865
14866 2016-05-04 Eric Botcazou <ebotcazou@adacore.com>
14867
14868 * tree-ssa-coalesce.c (gimple_can_coalesce_p): Fix reference in head
14869 comment.
14870 (compute_samebase_partition_bases): Fix typo.
14871
14872 2016-05-04 Jakub Jelinek <jakub@redhat.com>
14873
14874 * config/i386/sse.md (vec_interleave_highv8sf,
14875 vec_interleave_lowv8sf, vec_interleave_highv4df,
14876 vec_interleave_lowv4df): Remove constraints from expanders.
14877
14878 * config/i386/sse.md (sse2_movq128): Use v constraint instead of x.
14879
14880 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
14881
14882 * tree-inline.c (expand_call_inline): Fix path dealing with
14883 making lhs of call statement undefined.
14884
14885 2016-05-04 Jan Hubicka <hubicka@ucw.cz>
14886
14887 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
14888 Check availability on NODE, too.
14889 * cgraph.h (symtab_node::call_for_symbol_and_aliases): Likewise.
14890 (cgraph_node::call_for_symbol_and_aliases): Likewise.
14891 (varpool_node::call_for_symbol_and_aliase): Likewise.
14892 * ipa-pure-const.c (add_new_function): Analyze all bodies.
14893 (propagate_pure_const): Propagate across interposable functions, too.
14894 (skip_function_for_local_pure_const): Do not skip interposable bodies
14895 with aliases.
14896 (pass_local_pure_const::execute): Update.
14897
14898 2016-05-04 Marek Polacek <polacek@redhat.com>
14899
14900 * doc/invoke.texi: Document -Wdangling-else.
14901
14902 2016-05-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
14903
14904 * config.gcc: Error out when conflicting multilib is detected. Do not
14905 loop over multilibs since no combination is legal.
14906
14907 2016-05-04 Alan Modra <amodra@gmail.com>
14908
14909 * config/rs6000/rs6000.h (PIC_OFFSET_TABLE_REGNUM): Correct.
14910 * config/rs6000/sysv4.h (TARGET_TOC): Simplify.
14911 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op):
14912 Align .toc.
14913
14914 2016-05-04 Matthew Fortune <matthew.fortune@imgtec.com>
14915
14916 * config/mips/mips-cpus.def (p5600): Avoid IMADD by default.
14917 Clean up p5600 comments.
14918
14919 2016-05-04 Richard Biener <rguenther@suse.de>
14920
14921 * match.pd: Add BIT_FIELD_REF canonicalizations and vector
14922 constructor simplifications.
14923 * fold-const.c (fold_ternary_loc): Remove duplicate functionality here.
14924
14925 2016-05-04 Oleg Endo <olegendo@gcc.gnu.org>
14926
14927 * config/sh/predicates (post_inc_mem, pre_dec_mem): New predicates.
14928 * config/sh/sh-protos.h (sh_find_set_of_reg): Return null result if
14929 result.set_rtx is null instead of aborting.
14930 * config/sh/sh.h (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT):
14931 Always enable.
14932 (USE_LOAD_PRE_DECREMENT, USE_STORE_POST_INCREMENT): Enable for SH2A.
14933 * config/sh/sh.md (*extend<mode>si2_predec, *mov<mode>_load_predec,
14934 *mov<mode>_store_postinc): New patterns.
14935
14936 2016-05-04 Marc Glisse <marc.glisse@inria.fr>
14937
14938 * match.pd ((A | B) & (A | C)): Generalize to BIT_XOR_EXPR. Mark
14939 as commutative. Check both conversions are NOP.
14940 ((A & B) OP (C & B)): Remove.
14941
14942 2016-05-04 Alan Modra <amodra@gmail.com>
14943
14944 * combine.c (simplify_set): Correct WORD_REGISTER_OPERATIONS test.
14945
14946 2016-05-04 Alan Modra <amodra@gmail.com>
14947
14948 PR target/70866
14949 * config/rs6000/rs6000.c (rs6000_stack_info): Don't set cr_save_p
14950 when cr2,3,4 are all fixed regs.
14951
14952 2016-05-04 Bernd Schmidt <bschmidt@redhat.com>
14953
14954 PR rtl-optimization/57193
14955 * opts.c (default_options_table): Revert OPT_frename_registers change.
14956 * doc/invoke.texi (-frename-registers, -O2): Likewise.
14957
14958 2016-05-03 Martin Sebor <msebor@redhat.com>
14959
14960 PR c++/66561
14961 * builtins.c (fold_builtin_FILE): New function.
14962 (fold_builtin_FUNCTION, fold_builtin_LINE): New functions.
14963 (fold_builtin_0): Call them.
14964 * gimplify.c (gimplify_call_expr): Remove the handling of
14965 BUILT_IN_FILE, BUILT_IN_FUNCTION, and BUILT_IN_LINE.
14966
14967 PR c++/66561
14968 * doc/extend.texi (Other Builtins): Update __builtin_FILE,
14969 __builtin_FUNCTION, and __builtin_LINE to reflect they yield
14970 constants.
14971
14972 PR c++/66639
14973 * doc/extend.texi (Function Names as Strings): Update __func__,
14974 __FUNCTION__, __PRETTY_FUNCTION__ to reflect they evaluate to
14975 constants.
14976
14977 2016-05-03 Jakub Jelinek <jakub@redhat.com>
14978 Richard Biener <rguenther@suse.de>
14979
14980 PR tree-optimization/70916
14981 * tree-if-conv.c: Include cfganal.h.
14982 (pass_if_conversion::execute): Call connect_infinite_loops_to_exit
14983 and remove_fake_exit_edges around the optimization pass.
14984
14985 2016-05-03 Jan Hubicka <hubicka@ucw.cz>
14986
14987 * cgraph.c (symbol_table::create_edge): Set inline_failed.
14988 (cgraph_edge::make_direct): Likewise.
14989 (cgraph_edge::dump_edge_flags): Dump call_stmt_cannot_inline_p.
14990 * cgraphclones.c (duplicate_thunk_for_node): Set inline_failed.
14991 * cif-code.def (CIF_LTO_MISMATCHED_DECLARATIONS): New code
14992 (CIF_THUNK): New code.
14993 * ipa-inline-analysis.c (initialize_inline_failed): Preserve
14994 CIF_FINAL_ERROR codes; do not deal with call_stmt_cannot_inline_p.
14995 (compute_inline_parameters): Set inline_failed for thunks.
14996 (inline_analyze_function): Cleanup.
14997 * ipa-inline.c (can_inline_edge_p): Do not deal with
14998 call_stmt_cannot_inline_p.
14999 (can_early_inline_edge_p): Likewise.
15000 (early_inliner): Initialize inline_failed.
15001 * lto-cgraph.c (lto_output_edge): Sanity check inline_failed.
15002
15003 2016-05-03 Uros Bizjak <ubizjak@gmail.com>
15004
15005 * config/i386/predicates.md (x87nonimm_ssenomem_operand): Rename
15006 from nonimm_ssenomem_operand.
15007 (nonimm_ssenomem_operand): New predicate.
15008 * config/i386/i386.md (extendsfdf2): Use nonimm_ssenomem_operand
15009 as operand 0 predicate.
15010 (*extendsfdf2): Merge from *extendsfdf2_mixed and *extendsfdf2_i387.
15011 Disable unsupported alternatives using "enabled" attribute.
15012 Use register_ssemem_operand as operand 0 predicate.
15013 (*fop_<mode>_1): Use x87nonimm_ssenomem_operand as operand 1 predicate.
15014
15015 2016-05-03 Marek Polacek <polacek@redhat.com>
15016
15017 PR c/70859
15018 * input.c (expansion_point_location): New function.
15019 * input.h (expansion_point_location): Declare.
15020
15021 2016-05-03 Pierre-Marie de Rodat <derodat@adacore.com>
15022
15023 * dwarf2out.c (resolve_args_picking_1): Replace the frame_offset
15024 occurence with frame_offset_ ones.
15025
15026 2016-05-03 Alan Modra <amodra@gmail.com>
15027
15028 PR rtl-optimization/70890
15029 * ira.c (combine_and_move_insns): When moving def_insn, remove
15030 equivs on use_insn.
15031
15032 2016-05-03 Dominik Vogt <vogt@linux.vnet.ibm.com>
15033
15034 * config/s390/s390.md ("*r<noxa>sbg_<mode>_sll")
15035 ("*r<noxa>sbg_<mode>_srl"): New define_insns.
15036 ("*r<noxa>sbg_<mode>_srl_bitmask"): Rename by adding "_bitmask".
15037 ("*r<noxa>sbg_<mode>_sll_bitmask"): Likewise.
15038
15039 2016-05-03 Alan Modra <amodra@gmail.com>
15040
15041 * config/rs6000/rs6000.c (rs6000_savres_strategy): Correct condition
15042 for SAVE_MULTIPLE/STORE_MULTIPLE.
15043
15044 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15045
15046 * config/i386/i386.md (*truncdfsf_mixed, *truncdfsf_i387,
15047 *truncxfsf2_mixed, *truncxfdf2_mixed): Use v constraint instead of x.
15048
15049 2016-05-03 Richard Biener <rguenther@suse.de>
15050
15051 * gimplify.h (get_initialized_tmp_var): Add allow_ssa parameter
15052 default true.
15053 (gimplify_arg): Likewise.
15054 * gimplify.c (gimplify_expr): Add overload with allow_ssa parameter,
15055 re-writing the result to a decl if required.
15056 (internal_get_tmp_var): Add allow_ssa parameter
15057 and override into_ssa with it.
15058 (get_formal_tmp_var): Adjust.
15059 (get_initialized_tmp_var): Add allow_ssa parameter.
15060 (gimplify_arg): Add allow_ssa parameter and avoid generating
15061 SSA names for the result false.
15062 (gimplify_call_expr): If the call may return twice do not
15063 gimplify parameters into SSA.
15064 (prepare_gimple_addressable): Do not allow an SSA name as temporary.
15065 (gimplify_modify_expr): Adjust assert. For noreturn calls
15066 with a SSA name LHS adjust its def.
15067 (gimplify_save_expr): Do not allow an SSA name as save-expr result.
15068 (gimplify_one_sizepos): Do not allow an SSA name as a sizepos.
15069 (gimplify_body): Init GIMPLE SSA data structures and gimplify into-SSA.
15070 (gimplify_scan_omp_clauses): Make sure OMP_CLAUSE_SIZE is not
15071 an SSA name. Likewise for OMP_CLAUSE_REDUCTION operands.
15072 (gimplify_omp_for): Likewise for OMP_CLAUSE_DECL. Likewise
15073 for OMP_FOR_COND, OMP_FOR_INCR and OMP_CLAUSE_LINEAR_STEP.
15074 (optimize_target_teams): Do not allow SSA names for clause operands.
15075 (gimplify_expr): Likewise for where we mark the result addressable.
15076 * passes.def (pass_init_datastructures): Remove.
15077 * tree-into-ssa.c (mark_def_sites): Ignore existing SSA names.
15078 (rewrite_stmt): Likewise.
15079 * tree-inline.c (initialize_cfun): Properly transfer SSA state.
15080 (replace_locals_op): Replace SSA names.
15081 (copy_gimple_seq_and_replace_locals): Init src_cfun.
15082 * gimple-low.c (lower_builtin_setjmp): Deal with SSA.
15083 * cgraph.c (release_function_body): Free CFG annotations only
15084 when we have a CFG. Simplify.
15085 * gimple-fold.c (gimplify_and_update_call_from_tree): Use
15086 force_gimple_operand instead of get_initialized_tmp_var.
15087 * tree-pass.h (make_pass_init_datastructures): Remove.
15088 * tree-ssa.c (execute_init_datastructures): Remove.
15089 (pass_data_init_datastructures): Likewise.
15090 (class pass_init_datastructures): Likewise.
15091 (make_pass_init_datastructures): Likewise.
15092 * omp-low.c (create_omp_child_function): Init SSA data structures.
15093 (grid_expand_target_grid_body): Likewise.
15094 * tree-cfg.c (move_block_to_fn): Double-check the DEF is an SSA
15095 name before adding it to names_to_release.
15096 (remove_bb): Always release SSA defs.
15097 * tree-ssa-ccp.c (get_default_value): Check SSA_NAME_VAR
15098 before dereferencing it.
15099 * cgraphunit.c (init_lowered_empty_function): Always
15100 int SSA data structures.
15101 * tree-ssanames.c (release_defs): Remove assert that we are in
15102 SSA form.
15103 * trans-mem.c (diagnose_tm_1): Handle SSA name function.
15104
15105 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15106 Uros Bizjak <ubizjak@gmail.com>
15107
15108 PR rtl-optimization/70467
15109 * config/i386/predicates.md (x86_64_hilo_int_operand,
15110 x86_64_hilo_general_operand): New predicates.
15111 * config/i386/constraints.md (Wd): New constraint.
15112 * config/i386/i386.md (mode attr di): Use Wd instead of e.
15113 (general_hilo_operand): New mode attr.
15114 (add<mode>3, sub<mode>3): Use <general_hilo_operand>
15115 instead of <general_operand>.
15116 (*add<dwi>3_doubleword, *sub<dwi>3_doubleword): Use
15117 x86_64_hilo_general_operand instead of <general_operand>.
15118
15119 2016-05-03 Jakub Jelinek <jakub@redhat.com>
15120
15121 PR tree-optimization/70916
15122 * tree-if-conv.c (constant_or_ssa_name): Removed.
15123 (fold_build_cond_expr): Use is_gimple_val instead of
15124 constant_or_ssa_name.
15125
15126 PR tree-optimization/70916
15127 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Give up
15128 if COND_EXPR rhs1 is neither SSA_NAME nor COMPARISON_CLASS_P.
15129
15130 PR target/49244
15131 * tree-ssa-ccp.c: Include stor-layout.h and optabs-query.h.
15132 (optimize_atomic_bit_test_and): New function.
15133 (pass_fold_builtins::execute): Use it.
15134 * optabs.def (atomic_bit_test_and_set_optab,
15135 atomic_bit_test_and_complement_optab,
15136 atomic_bit_test_and_reset_optab): New optabs.
15137 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET,
15138 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_BIT_TEST_AND_RESET): New ifns.
15139 * builtins.h (expand_ifn_atomic_bit_test_and): New prototype.
15140 * builtins.c (expand_ifn_atomic_bit_test_and): New function.
15141 * internal-fn.c (expand_ATOMIC_BIT_TEST_AND_SET,
15142 expand_ATOMIC_BIT_TEST_AND_COMPLEMENT,
15143 expand_ATOMIC_BIT_TEST_AND_RESET): New functions.
15144 * doc/md.texi (atomic_bit_test_and_set@var{mode},
15145 atomic_bit_test_and_complement@var{mode},
15146 atomic_bit_test_and_reset@var{mode}): Document.
15147 * config/i386/sync.md (atomic_bit_test_and_set<mode>,
15148 atomic_bit_test_and_complement<mode>,
15149 atomic_bit_test_and_reset<mode>): New expanders.
15150 (atomic_bit_test_and_set<mode>_1,
15151 atomic_bit_test_and_complement<mode>_1,
15152 atomic_bit_test_and_reset<mode>_1): New insns.
15153
15154 2016-05-03 Richard Sandiford <richard.sandiford@arm.com>
15155
15156 PR rtl-optimization/70687
15157 * combine.c (change_zero_ext): Check for scalar modes. Use wide_int
15158 instead of unsigned HOST_WIDE_INT.
15159
15160 2016-05-03 Bernd Schmidt <bschmidt@redhat.com>
15161
15162 PR rtl-optimization/44281
15163 * hard-reg-set.h (struct target_hard_regs): New field
15164 x_fixed_nonglobal_reg_set.
15165 (fixed_nonglobal_reg_set): New macro.
15166 * reginfo.c (init_reg_sets_1): Initialize it.
15167 * ira.c (setup_alloc_regs): Use fixed_nonglobal_reg_set instead
15168 of fixed_reg_set.
15169 * df-scan.c (df_insn_refs_collect): Asms may reference global regs.
15170
15171 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15172
15173 PR tree-optimization/56541
15174 * doc/invoke.texi (@item max-tree-if-conversion-phi-args): New item.
15175 * params.def (PARAM_MAX_TREE_IF_CONVERSION_PHI_ARGS): new param.
15176 * tree-if-conv.c (MAX_PHI_ARG_NUM): new macro.
15177 (any_complicated_phi): new static variable.
15178 (aggressive_if_conv): delete.
15179 (if_convertible_phi_p): support phis with more than two arguments.
15180 (if_convertible_bb_p): remvoe check on aggressive_if_conv and
15181 critical pred edges.
15182 (ifcvt_split_critical_edges): support phis with more than two
15183 arguments by checking new parameter. only split critical edges
15184 if needed.
15185 (tree_if_conversion): handle simd pragma marked loop using new
15186 local variable aggressive_if_conv. check any_complicated_phi.
15187
15188 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15189
15190 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Check depends_on
15191 before using it.
15192
15193 2016-05-03 Bin Cheng <bin.cheng@arm.com>
15194
15195 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Don't clobber
15196 cbase.
15197
15198 2016-05-03 Oleg Endo <olegendo@gcc.gnu.org>
15199
15200 * config/sh/sh.md (udivsi3, divsi3, mulsi3): Simplify.
15201 (mulhisi3, umulhisi3, (smulsi3_highpart, umulsi3_highpart): Convert to
15202 define_insn_and_split.
15203 (mulsi3_i): New define_insn_and_split.
15204 (mulsi3_call): Convert to define_insn.
15205 (mulsidi3, mulsidi3_compact, umulsidi3, umulsidi3_compact):
15206 Remove constraints.
15207
15208 2016-05-02 Michael Meissner <meissner@linux.vnet.ibm.com>
15209
15210 * machmode.h (mode_complex): Add support to give the complex mode
15211 for a given mode.
15212 (GET_MODE_COMPLEX_MODE): Likewise.
15213 * stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
15214 stored by build_complex_type and gfc_build_complex_type instead of
15215 trying to figure out the appropriate mode based on the size. Raise
15216 an assertion error, if the type was not set.
15217 * genmodes.c (struct mode_data): Add field for the complex type of
15218 the given type.
15219 (blank_mode): Likewise.
15220 (make_complex_modes): Remember the complex mode created in the
15221 base type.
15222 (emit_mode_complex): Write out the mode_complex array to map a
15223 type mode to the complex version.
15224 (emit_insn_modes_c): Likewise.
15225 * tree.c (build_complex_type): Set the complex type to use before
15226 calling layout_type.
15227 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
15228 support for __float128 complex datatypes.
15229 (rs6000_hard_regno_mode_ok): Likewise.
15230 (rs6000_setup_reg_addr_masks): Likewise.
15231 (rs6000_complex_function_value): Likewise.
15232 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
15233 __float128 and __ibm128 complex.
15234 (FLOAT128_IBM_P): Likewise.
15235 (ALTIVEC_ARG_MAX_RETURN): Likewise.
15236 * doc/extend.texi (Additional Floating Types): Document that
15237 -mfloat128 must be used to enable __float128. Document complex
15238 __float128 and __ibm128 support.
15239
15240 2016-05-02 Jakub Jelinek <jakub@redhat.com>
15241
15242 PR target/49244
15243 * gimple.c (gimple_builtin_call_types_compatible_p): Allow
15244 char/short arguments promoted to int because of promote_prototypes.
15245
15246 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
15247
15248 * config/i386/predicates.md (register_ssemem_operand): New predicate.
15249 * config/i386/i386.md (*cmpi<FPCMP:unord><MODEF:mode>): Merge from
15250 *cmpi<FPCMP:unord><MODEF:mode>_mixed and
15251 *cmpi<FPCMP:unord><X87MODEF:mode>_i387. Disable unsupported
15252 alternatives using "enabled" attribute. Use register_ssemem_operand
15253 as operand 1 predicate.
15254 (*cmpi<unord>xf_i387): Split XFmode pattern from
15255 *cmpi<FPCMP:unord><X87MODEF:mode>_i387.
15256 (*absneg<mode>2): Merge from *absneg<mode>2_mixed and
15257 *absneg<mode>2_i387. Disable unsupported alternatives using
15258 "enabled" attribute.
15259 (*absnegxf2_i387): Split XFmode pattern from *absneg<mode>2_i387.
15260
15261 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
15262
15263 * omp-low.c (lower_oacc_head_tail): Assert there is at least one
15264 marker.
15265 (oacc_loop_process): Check mask for loop termination.
15266
15267 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
15268
15269 * cif-code.def (CIF_THUNK): Add.
15270 * ipa-inline-analsysis.c (evaluate_conditions_for_known_args): Revert
15271 accidental change.
15272
15273 2016-05-02 Jan Hubicka <hubicka@ucw.cz>
15274
15275 * ipa-inline-analysis.c (reset_inline_summary): Clear fp_expressions
15276 (dump_inline_summary): Dump it.
15277 (fp_expression_p): New predicate.
15278 (estimate_function_body_sizes): Use it.
15279 (inline_merge_summary): Merge fp_expressions.
15280 (inline_read_section): Read fp_expressions.
15281 (inline_write_summary): Write fp_expressions.
15282 * ipa-inline.c (can_inline_edge_p): Permit inlining across fp math
15283 codegen boundary if either caller or callee is !fp_expressions.
15284 * ipa-inline.h (inline_summary): Add fp_expressions.
15285 * ipa-inline-transform.c (inline_call): When inlining !fp_expressions
15286 to fp_expressions be sure the fp generation flags are updated.
15287
15288 2016-05-02 Jakub Jelinek <jakub@redhat.com>
15289
15290 PR rtl-optimization/70467
15291 * cse.c (cse_insn): Handle no-op MEM moves after folding.
15292
15293 PR rtl-optimization/70467
15294 * ipa-pure-const.c (check_call): Handle internal calls even in
15295 ipa mode like in local mode.
15296
15297 2016-05-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
15298
15299 * doc/install.texi: Document supported in-tree gmp/mpfr/mpc versions.
15300
15301 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
15302
15303 * match.pd (X u< X, X u> X): New transformations.
15304
15305 2016-05-02 Marc Glisse <marc.glisse@inria.fr>
15306
15307 * flag-types.h (enum warn_strict_overflow_code): Move ...
15308 * coretypes.h: ... here.
15309 * fold-const.h (fold_overflow_warning): Declare.
15310 * fold-const.c (fold_overflow_warning): Make non-static.
15311 (fold_comparison): Move the transformation of X +- C1 CMP C2
15312 into X CMP C2 -+ C1 ...
15313 * match.pd: ... here.
15314 * gimple-fold.c (fold_stmt_1): Protect with
15315 fold_defer_overflow_warnings.
15316
15317 2016-05-02 Nathan Sidwell <nathan@codesourcery.com>
15318
15319 * omp-low.c (struct oacc_loop): Add 'inner' field.
15320 (new_oacc_loop_raw): Initialize it to zero.
15321 (oacc_loop_fixed_partitions): Initialize it.
15322 (oacc_loop_auto_partitions): Partition outermost loop to outermost
15323 available partitioning.
15324
15325 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15326
15327 * config/arc/arc.md (mulsidi3): Change operand 0 predicate to
15328 register_operand.
15329 (umulsidi3): Likewise.
15330 (indirect_jump): Fix jump instruction assembly patterns.
15331
15332 2016-05-02 Thomas Schwinge <thomas@codesourcery.com>
15333
15334 PR target/70860
15335 * config/nvptx/nvptx.c (nvptx_libcall_value): Handle NULL cfun.
15336 (nvptx_function_value): Assert non-NULL cfun.
15337
15338 2016-05-02 Eric Botcazou <ebotcazou@adacore.com>
15339
15340 PR rtl-optimization/70886
15341 * sched-deps.c (estimate_dep_weak): Canonicalize cselib values.
15342
15343 * cselib.h (rtx_equal_for_cselib_1): Declare.
15344 (rtx_equal_for_cselib_p: New inline function.
15345 * cselib.c (rtx_equal_for_cselib_p): Delete.
15346 (rtx_equal_for_cselib_1): Make public.
15347
15348 2016-05-02 Uros Bizjak <ubizjak@gmail.com>
15349
15350 * config/i386/predicates.md (nonimm_ssenomem_operand): New predicate.
15351 (register_mixssei387nonimm_operand): Remove predicate.
15352 * config/i386/i386.md (*fop_<mode>_comm): Merge from
15353 *fop_<mode>_comm_mixed and *fop_<mode>_comm_i387. Disable unsupported
15354 alternatives using "enabled" attribute. Also check X87_ENABLE_ARITH
15355 for TARGET_MIX_SSE_I387 alternatives.
15356 (*fop_<mode>_1): Merge from *fop_<mode>_1_mixed and *fop_<mode>_1_i387.
15357 Disable unsupported alternatives using "enabled" attribute. Use
15358 nonimm_ssenomem_operand as operand 1 predicate. Also check
15359 X87_ENABLE_ARITH for TARGET_MIX_SSE_I387 alternatives.
15360
15361 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15362
15363 * tree.c (cst_and_fits_in_hwi): Simplify.
15364
15365 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15366
15367 * tree.h (wi::to_wide): New function.
15368 * expr.c (expand_expr_real_1): Use wi::to_wide.
15369 * fold-const.c (int_const_binop_1): Likewise.
15370 (extract_muldiv_1): Likewise.
15371
15372 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15373
15374 * wide-int.h: Update offset_int and widest_int documentation.
15375 (WI_SIGNED_SHIFT_RESULT): New macro.
15376 (wi::binary_shift): Define signed_shift_result_type for
15377 shifts on offset_int- and widest_int-like types.
15378 (generic_wide_int): Support <<= and >>= if << and >> are supported.
15379 * tree.h (int_bit_position): Use shift operators instead of wi::
15380 shifts.
15381 * alias.c (adjust_offset_for_component_ref): Likewise.
15382 * expr.c (get_inner_reference): Likewise.
15383 * fold-const.c (fold_comparison): Likewise.
15384 * gimple-fold.c (fold_nonarray_ctor_reference): Likewise.
15385 * gimple-ssa-strength-reduction.c (restructure_reference): Likewise.
15386 * tree-dfa.c (get_ref_base_and_extent): Likewise.
15387 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
15388 (stmt_kills_ref_p): Likewise.
15389 * tree-ssa-ccp.c (bit_value_binop_1): Likewise.
15390 * tree-ssa-math-opts.c (find_bswap_or_nop_load): Likewise.
15391 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
15392 (ao_ref_init_from_vn_reference): Likewise.
15393
15394 2016-05-02 Richard Sandiford <richard.sandiford@arm.com>
15395
15396 * wide-int.h: Update offset_int and widest_int documentation.
15397 (WI_SIGNED_BINARY_PREDICATE_RESULT): New macro.
15398 (wi::binary_traits): Allow ordered comparisons between offset_int and
15399 offset_int, between widest_int and widest_int, and between either
15400 of these types and basic C types.
15401 (operator <, <=, >, >=): Define for the same combinations.
15402 * tree.h (tree_int_cst_lt): Use comparison operators instead
15403 of wi:: comparisons.
15404 (tree_int_cst_le): Likewise.
15405 * gimple-fold.c (fold_array_ctor_reference): Likewise.
15406 (fold_nonarray_ctor_reference): Likewise.
15407 * gimple-ssa-strength-reduction.c (record_increment): Likewise.
15408 * tree-affine.c (aff_comb_cannot_overlap_p): Likewise.
15409 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Likewise.
15410 * tree-sra.c (completely_scalarize): Likewise.
15411 * tree-ssa-alias.c (stmt_kills_ref_p): Likewise.
15412 * tree-ssa-reassoc.c (extract_bit_test_mask): Likewise.
15413 * tree-vrp.c (extract_range_from_binary_expr_1): Likewise.
15414 (check_for_binary_op_overflow): Likewise.
15415 (search_for_addr_array): Likewise.
15416 * ubsan.c (ubsan_expand_objsize_ifn): Likewise.
15417
15418 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15419
15420 * config/arc/arc.c (arc_preferred_simd_mode): Remove enum keyword.
15421 (arc_save_restore): Likewise.
15422 (arc_dwarf_register_span): Likewise.
15423 (arc_output_pic_addr_const): Initialize suffix variable.
15424
15425 2016-05-02 Martin Liska <mliska@suse.cz>
15426
15427 * symbol-summary.h (function_summary::function_summary):
15428 Remove checking assert for all cgraph nodes.
15429 (function_summary::get): Check summary_uid.
15430 (symtab_insertion): Check summary_uid.
15431
15432 2016-05-02 Claudiu Zissulescu <claziss@synopsys.com>
15433
15434 * config/arc/arc-protos.h (compact_memory_operand_p): Declare.
15435 * config/arc/arc.c (arc_output_commutative_cond_exec): Consider
15436 bmaskn instruction.
15437 (arc_dwarf_register_span): Remove enum keyword.
15438 (compact_memory_operand_p): New function.
15439 * config/arc/arc.h (reg_class): Add code density register classes.
15440 (REG_CLASS_NAMES): Likewise.
15441 (REG_CLASS_CONTENTS): Likewise.
15442 * config/arc/arc.md (*movqi_insn): Add code density instructions.
15443 (*movhi_insn, *movsi_insn, *movsf_insn): Likewise.
15444 (*extendhisi2_i, andsi3_i, cmpsi_cc_insn_mixed): Likewise.
15445 (*cmpsi_cc_c_insn, *movsi_ne): Likewise.
15446 * config/arc/constraints.md (C2p, Uts, Cm1, Cm3, Ucd): New
15447 constraints.
15448 (h, Rcd, Rsd, Rzd): New register constraints.
15449 (T): Use compact_memory_operand_p function.
15450 * config/arc/predicates.md (compact_load_memory_operand): Remove.
15451
15452 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
15453
15454 * config/sh/sh.md (*negnegt, *movtt): Remove.
15455
15456 2016-05-02 Marek Polacek <polacek@redhat.com>
15457 Tom de Vries <tom@codesourcery.com>
15458
15459 PR tree-optimization/70700
15460 * tree-ssa-structalias.c (dump_pred_graph): Fix getting varinfo for ids
15461 bigger than FIRST_REF_NODE.
15462
15463 2016-05-02 Oleg Endo <olegendo@gcc.gnu.org>
15464
15465 PR target/52898
15466 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4,
15467 TARGET_CMPEQDI_T.
15468 (prepare_cbranch_operands): Don't use scratch register. Assume that
15469 function is used when pseudos can be created.
15470 (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths.
15471 * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created.
15472 (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4
15473 define_expand. Allow it only when pseudos can be created.
15474 * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete.
15475
15476 2016-05-01 Uros Bizjak <ubizjak@gmail.com>
15477
15478 * config/i386/constraints.md (BC): Only allow -1 operands.
15479 * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative.
15480 Add "enabled" attribute. Update XI mode attribute calculation.
15481 * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative.
15482 (*movoi_internal_avx): Update XI mode attribute calculation.
15483 (*movti_internal): Ditto.
15484
15485 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
15486
15487 * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4,
15488 cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints.
15489
15490 2016-05-01 Eric Botcazou <ebotcazou@adacore.com>
15491
15492 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch
15493 statement on instruction code. Remove trailing spaces.
15494 (altivec_expand_stv_builtin): Likewise.
15495
15496 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
15497
15498 * config/sh/sh.h (TARGET_SH4): Remove and use default implementation.
15499 (TARGET_FPU_DOUBLE): Simplify.
15500 (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace
15501 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'.
15502 * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions
15503 with 'TARGET_FPU_DOUBLE'.
15504 * config/sh/sh.md: Likewise.
15505
15506 2016-05-01 Yoshinori Sato <ysato@users.sourceforge.jp>
15507
15508 * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT,
15509 SH_DIV_STR_FOR_SIZE): Remove.
15510 * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT,
15511 SH_DIV_STR_FOR_SIZE): Remove.
15512
15513 2016-05-01 Oleg Endo <olegendo@gcc.gnu.org>
15514
15515 * config/sh/predicates.md (any_register_operand, zero_extend_operand,
15516 logical_reg_operand): Delete.
15517 (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand,
15518 arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand,
15519 logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using
15520 match_operand and match_test.
15521 (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local
15522 variables on their first use. Return bool values.
15523 * config/sh/sh.h (LOAD_EXTEND_OP): Update comment.
15524 * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and
15525 arith_reg_operand for input operand. Remove empty constraints.
15526 (xorsi3): Delete.
15527 (*xorsi3_compact): Rename to xorsi3.
15528 (zero_extend<mode>si2): Use arith_reg_operand for input operand.
15529 (*zero_extend<mode>si2_disp_mem): Update comment.
15530 (mov_nop): Delete.
15531
15532 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
15533
15534 * config/sh/t-sh: Remove SH5 support.
15535 * config.gcc: Likewise.
15536 * configure: Likewise.
15537
15538 2016-04-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15539
15540 * config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus.
15541
15542 2016-04-30 Oleg Endo <olegendo@gcc.gnu.org>
15543
15544 * config/sh/sh.c (register_sh_passes, sh_option_override,
15545 sh_print_operand, prepare_move_operands,
15546 sh_can_follow_jump): Remove TARGET_SH1 checks.
15547 * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P,
15548 PROMOTE_MODE): Likewise.
15549 * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3,
15550 movdi): Likewise.
15551
15552 2016-04-30 Alan Modra <amodra@gmail.com>
15553
15554 * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline
15555 restoring when fixed_reg_p, but allow out-of-line or stmw save.
15556 Check for user regs later to avoid unnecessary looping over regs.
15557 Merge user reg check with non-saved reg check. Don't force
15558 inline VR restore when static chain used.
15559 (rs6000_frame_related): Omit eh_frame info for user regs when
15560 saving.
15561 (fixed_regs_p): Delete.
15562
15563 2016-04-30 Alan Modra <amodra@gmail.com>
15564
15565 * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with..
15566 (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum.
15567 Update all uses.
15568
15569 2016-04-30 Alan Modra <amodra@gmail.com>
15570
15571 PR target/69645
15572 * config/rs6000/rs6000.c (fixed_reg_p): New function.
15573 (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p.
15574 Update all uses.
15575
15576 2016-04-30 Alan Modra <amodra@gmail.com>
15577
15578 * config/rs6000/rs6000.c (rs6000_conditional_register_usage):
15579 Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with
15580 flag_pic test for Darwin.
15581
15582 2016-04-30 Alan Modra <amodra@gmail.com>
15583
15584 * regs.h (struct reg_info_t): Delete freq_calls_crossed and
15585 throw_calls_crossed.
15586 (REG_FREQ_CALLS_CROSSED): Delete.
15587 (REG_N_THROWING_CALLS_CROSSED): Delete.
15588 * regstat.c (regstat_bb_compute_ri): Don't calculate
15589 REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED.
15590 (dump_reg_info): Don't print call cross frequency.
15591 * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED
15592 and REG_N_THROWING_CALLS_CROSSED.
15593
15594 2016-04-30 Alan Modra <amodra@gmail.com>
15595
15596 * regs.h (struct reg_info_t): Delete live_length.
15597 (REG_LIVE_LENGTH): Delete macro.
15598 * regstat.c (regstat_bb_compute_ri): Delete artificial_uses,
15599 local_live, local_processed and local_live_last_luid params.
15600 Replace bb_index param with bb. Don't set REG_LIVE_LENGTH.
15601 Formatting fixes.
15602 (regstat_compute_ri): Adjust for above. Don't set
15603 REG_LIVE_LENGTH.
15604 (dump_reg_info): Don't print live length.
15605 * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH
15606 with test of setjmp_crosses. Don't set REG_LIVE_LENGTH.
15607 Localize loop_depth var.
15608
15609 2016-04-30 Alan Modra <amodra@gmail.com>
15610
15611 * ira.c (enum valid_equiv): New.
15612 (validate_equiv_mem): Return enum.
15613 (update_equiv_mem): Create replacement in more cases.
15614 (add_store_equivs): Update validate_equiv_mem call.
15615
15616 2016-04-30 Alan Modra <amodra@gmail.com>
15617
15618 * ira.c (combine_and_move_insns): Rather than scanning insns,
15619 use DF infrastucture to find use and def insns.
15620
15621 2016-04-30 Alan Modra <amodra@gmail.com>
15622
15623 ira.c (combine_and_move_insns): Move invariant conditions..
15624 (ira.c): ..to here. Call combine_and_move_insns before
15625 add_store_equivs. Call grow_reg_equivs later. Allocate
15626 req_equiv later using max_reg_num() rather than global max_regno.
15627 (contains_replace_regs): Delete.
15628 (add_store_equivs): Remove contains_replace_regs test.
15629
15630 2016-04-30 Alan Modra <amodra@gmail.com>
15631
15632 * ira.c (struct equiv_mem_data): New.
15633 (equiv_mem, equiv_mem_modified): Delete static vars.
15634 (validate_equiv_mem_from_store): Use "data" param to communicate..
15635 (validate_equiv_mem): ..from here.
15636
15637 2016-04-30 Alan Modra <amodra@gmail.com>
15638
15639 * ira.c (add_store_equivs, combine_and_move_insns): New functions,
15640 split out from..
15641 (update_reg_equivs): ..here. Move allocation and freeing of
15642 reg_equiv, and calls to grow_reg_equivs, init_alias_analysis,
15643 end_alias_analysis to..
15644 (ira): ..here.
15645
15646 2016-04-30 Alan Modra <amodra@gmail.com>
15647
15648 * ira.c (pdx_subregs): Delete.
15649 (struct equivalence): Add pdx_subregs field.
15650 (set_paradoxical_subreg): Remove pdx_subregs param. Update
15651 pdx_subregs access.
15652 (update_equiv_regs): Don't create or free pdx_subregs. Update
15653 pdx_subregs access.
15654
15655 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15656
15657 * config/rs6000/altivec.h: Change definitions of vec_xl and
15658 vec_xst.
15659 * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New.
15660 (LD_ELEMREV_V2DI): New.
15661 (LD_ELEMREV_V4SF): New.
15662 (LD_ELEMREV_V4SI): New.
15663 (LD_ELEMREV_V8HI): New.
15664 (LD_ELEMREV_V16QI): New.
15665 (ST_ELEMREV_V2DF): New.
15666 (ST_ELEMREV_V2DI): New.
15667 (ST_ELEMREV_V4SF): New.
15668 (ST_ELEMREV_V4SI): New.
15669 (ST_ELEMREV_V8HI): New.
15670 (ST_ELEMREV_V16QI): New.
15671 (XL): New.
15672 (XST): New.
15673 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
15674 descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST.
15675 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from
15676 TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR.
15677 (altivec_expand_builtin): Add handling for
15678 VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>.
15679 (rs6000_invalid_builtin): Add error-checking for
15680 RS6000_BTM_P9_VECTOR.
15681 (altivec_init_builtins): Define builtins used to implement vec_xl
15682 and vec_xst.
15683 (rs6000_builtin_mask_names): Define power9-vector.
15684 * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define.
15685 (RS6000_BTM_P9_VECTOR): Define.
15686 (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR.
15687 * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn.
15688 (vsx_ld_elemrev_v2df): Likewise.
15689 (vsx_ld_elemrev_v4sf): Likewise.
15690 (vsx_ld_elemrev_v4si): Likewise.
15691 (vsx_ld_elemrev_v8hi): Likewise.
15692 (vsx_ld_elemrev_v16qi): Likewise.
15693 (vsx_st_elemrev_v2df): Likewise.
15694 (vsx_st_elemrev_v2di): Likewise.
15695 (vsx_st_elemrev_v4sf): Likewise.
15696 (vsx_st_elemrev_v4si): Likewise.
15697 (vsx_st_elemrev_v8hi): Likewise.
15698 (vsx_st_elemrev_v16qi): Likewise.
15699 * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct
15700 grammar.
15701
15702 2016-04-29 Patrick Palka <ppalka@gcc.gnu.org>
15703
15704 * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split
15705 out into ...
15706 (simplify_control_stmt_condition_1): ... here. Recurse into
15707 BIT_AND_EXPRs and BIT_IOR_EXPRs.
15708
15709 2016-04-29 David Edelsohn <dje.gcc@gmail.com>
15710
15711 PR target/69810
15712 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode.
15713 (zero_extendqi<mode>2_dot): Revert earlier conversion from
15714 define_insn_and_split to define_insn.
15715 (zero_extendqi<mode>2_dot2): Same.
15716 (extendqi<mode>2_dot): Same.
15717 (extendqi<mode>2_dot2): Same.
15718
15719 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15720
15721 * config/i386/i386.md (unspec): Add UNSPEC_PROBE_STACK.
15722 (probe_stack): New expander.
15723 (probe_stack_<mode>): New insn pattern.
15724
15725 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15726
15727 * config/i386/i386.md
15728 (operations with memory inputs setting flags peephole2):
15729 Remove uneeded REG_P checks. Cleanup pattern generation.
15730
15731 2016-04-29 Ilya Enkovich <ilya.enkovich@intel.com>
15732
15733 * tree-vect-loop.c (vect_transform_loop): Fix
15734 nb_iterations_upper_bound computation for vectorized loop.
15735
15736 2016-04-29 Marek Polacek <polacek@redhat.com>
15737 Jakub Jelinek <jakub@redhat.com>
15738
15739 PR sanitizer/70342
15740 * fold-const.c (tree_single_nonzero_warnv_p): For TARGET_EXPR, use
15741 TARGET_EXPR_SLOT as a base.
15742
15743 2016-04-29 Andrew Burgess <andrew.burgess@embecosm.com>
15744
15745 * config/arc/arc.md (*loadqi_update): Replace use of 'rI' constraint
15746 with 'rCm2' constraints to limit possible immediate size.
15747 (*load_zeroextendqisi_update): Likewise.
15748 (*load_signextendqisi_update): Likewise.
15749 (*loadhi_update): Likewise.
15750 (*load_zeroextendhisi_update): Likewise.
15751 (*load_signextendhisi_update): Likewise.
15752 (*loadsi_update): Likewise.
15753 (*loadsf_update): Likewise.
15754
15755 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15756
15757 * config/i386/predicates.md (constm1_operand): Fix comparison.
15758
15759 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
15760
15761 * testsuite/gcc.target/arc/ieee_eq.c: New test.
15762
15763 2016-04-29 Oleg Endo <olegendo@gcc.gnu.org>
15764
15765 * common/config/sh/sh-common.c (sh_option_optimization_table): Remove
15766 remaining SH5 related settings.
15767 * config/sh/sh-protos.h (shmedia_cleanup_truncate,
15768 shmedia_prepare_call_address): Delete.
15769 * config/sh/sh.c (sh_print_operand, output_stack_adjust,
15770 DWARF_CIE_DATA_ALIGNMENT, LOCAL_ALIGNMENT): Update comments.
15771 * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC,
15772 UNSUPPORTED_SH2A): Remove m5 checks.
15773 (sh_divide_strategy_e): Remove SH5 division strategies.
15774 (TARGET_PTRMEMFUNC_VBIT_LOCATION): Remove and use default.
15775 * config/sh/sh.md (divsf3): Reinstate define_expand pattern.
15776
15777 2016-04-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
15778
15779 * config/s390/s390.c (s390_rtx_costs): Update documentation.
15780
15781 2016-04-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
15782
15783 * config/s390/2964.md ("z13_unit_fxu", "z13_0"): Remove lder.
15784 * config/s390/s390.md ("movsi_larl", "*movsi_esa", "mov<mode>"):
15785 Change lder to ldr.
15786 * config/s390/vector.md ("mov<mode>"): Likewise.
15787
15788 2016-04-29 Ulrich Weigand <uweigand@de.ibm.com>
15789
15790 * config/s390/constraints.md ("U", "W"): Invoke
15791 s390_mem_constraint with "ZR" and "ZT".
15792 * config/s390/s390.c (s390_check_qrst_address): Reject invalid
15793 addresses when using LRA. Accept also short displacements for S
15794 and T constraints. Do not check for long displacement target for
15795 S and T constraints.
15796 (s390_mem_constraint): Remove handling of U and W constraints.
15797 * config/s390/s390.md (various patterns): Remove the short
15798 displacement constraints (Q and R) if a long displacement
15799 constraint is present. Add longdisp as required CPU capability.
15800 * config/s390/vector.md: Likewise.
15801 * config/s390/vx-builtins.md: Likewise.
15802
15803 2016-04-29 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
15804
15805 PR target/60040
15806 * reload1.c (reload): Call finish_spills before
15807 restarting reload loop. Skip select_reload_regs
15808 if update_eliminables_and_spill returns true.
15809
15810 2016-04-29 Claudiu Zissulescu <claziss@synopsys.com>
15811
15812 * config/arc/arc.h (UNSIGNED_INT12, UNSIGNED_INT16): Define.
15813 * config/arc/arc.md (umulhisi3): Use arc_short_operand predicate.
15814 (umulhisi3_imm): Update predicates and constraint letters.
15815 (umulhisi3_reg): Declare instruction as commutative.
15816 * config/arc/constraints.md (J12, J16): New constraints.
15817 * config/arc/predicates.md (short_unsigned_const_operand): New
15818 predicate.
15819 (arc_short_operand): Likewise.
15820 * testsuite/gcc.target/arc/umulsihi3_z.c: New file.
15821
15822 2016-04-29 Richard Biener <rguenther@suse.de>
15823
15824 PR tree-optimization/13962
15825 PR tree-optimization/65686
15826 * tree-ssa-alias.h (ptrs_compare_unequal): Declare.
15827 * tree-ssa-alias.c (ptrs_compare_unequal): New function
15828 using PTA to compare pointers.
15829 * match.pd: Add pattern for pointer equality compare simplification
15830 using ptrs_compare_unequal.
15831
15832 2016-04-29 Richard Biener <rguenther@suse.de>
15833
15834 * stor-layout.c (layout_type): Do not build a pointer-to-element
15835 type for arrays.
15836
15837 2016-04-29 Uros Bizjak <ubizjak@gmail.com>
15838
15839 * config/i386/i386.md (Load+RegOp to Mov+MemOp peephole2):
15840 Use SWI mode iterator. Use general_reg_operand predicate.
15841 (Load+RegOp to Mov+MemOp peephole2 with vector regs): Split
15842 peephole to MMX and SSE part. Use mmx_reg_operand and sse_reg_operand
15843 predicates.
15844
15845 2016-04-29 Jakub Jelinek <jakub@redhat.com>
15846
15847 PR middle-end/70843
15848 * fold-const.c (operand_equal_p): Don't verify hash value equality
15849 if arg0 == arg1.
15850 * tree.c (inchash::add_expr): Handle STATEMENT_LIST. Ignore BLOCK
15851 and OMP_CLAUSE.
15852
15853 2016-04-28 Jakub Jelinek <jakub@redhat.com>
15854
15855 PR target/70858
15856 * config/i386/i386.c (bdesc_special_args): Add | OPTION_MASK_ISA_64BIT
15857 to __builtin_ia32_lwpval64 and __builtin_ia32_lwpins64.
15858 (bdesc_args): Add | OPTION_MASK_ISA_64BIT to __builtin_ia32_bextr_u64,
15859 __builtin_ia32_bextri_u64, __builtin_ia32_bzhi_di,
15860 __builtin_ia32_pdep_di and __builtin_ia32_pext_di.
15861
15862 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15863
15864 * config/rs6000/rs6000.c (compute_save_world_info): Rename info_ptr
15865 to info. Don't initialize separate fields to 0. Clean up
15866 formatting a bit.
15867
15868 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
15869
15870 * config/i386/i386.md (peephole2s for operations with memory inputs):
15871 Use SWI mode iterator.
15872 (peephole2s for operations with memory outputs): Ditto.
15873 Do not check for stack checking probe.
15874
15875 (probe_stack): Remove expander.
15876
15877 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15878 Andrew Burgess <andrew.burgess@embecosm.com>
15879
15880 * config/arc/arc.c (arc_print_operand): Print integer 'H' / 'L'
15881 operands as 32-bits.
15882
15883 2016-04-28 Jason Merrill <jason@redhat.com>
15884
15885 * gdbinit.in: Skip line-map.h.
15886
15887 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15888 Andrew Burgess <andrew.burgess@embecosm.com>
15889
15890 * config/arc/arc.c (arc_conditional_register_usage): Take
15891 TARGET_RRQ_CLASS into account.
15892 (arc_print_operand): Support printing 'p' and 's' operands.
15893 * config/arc/arc.h (TARGET_NPS_BITOPS_DEFAULT): Provide default
15894 as 0.
15895 (TARGET_RRQ_CLASS): Define.
15896 (IS_POWEROF2_OR_0_P): Define.
15897 * config/arc/arc.md (*movsi_insn): Add w/Clo, w/Chi, and w/Cbi
15898 alternatives.
15899 (*tst_movb): New define_insn.
15900 (*tst): Avoid recognition if it could prevent '*tst_movb'
15901 combination; replace c/CnL with c/Chs alternative.
15902 (*tst_bitfield_tst): New define_insn.
15903 (*tst_bitfield_asr): New define_insn.
15904 (*tst_bitfield): New define_insn.
15905 (andsi3_i): Add Rrq variant.
15906 (extzv): New define_expand.
15907 (insv): New define_expand.
15908 (*insv_i): New define_insn.
15909 (*movb): New define_insn.
15910 (*movb_signed): New define_insn.
15911 (*movb_high): New define_insn.
15912 (*movb_high_signed): New define_insn.
15913 (*movb_high_signed + 1): New define_split pattern.
15914 (*mrgb): New define_insn.
15915 (*mrgb + 1): New define_peephole2 pattern.
15916 (*mrgb + 2): New define_peephole2 pattern.
15917 * config/arc/arc.opt (mbitops): New option for nps400, uses
15918 TARGET_NPS_BITOPS_DEFAULT.
15919 * config/arc/constraints.md (q): Make register class conditional.
15920 (Rrq): New register constraint.
15921 (Chs): New constraint.
15922 (Clo): New constraint.
15923 (Chi): New constraint.
15924 (Cbf): New constraint.
15925 (Cbn): New constraint.
15926 (C18): New constraint.
15927 (Cbi): New constraint.
15928
15929 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15930
15931 * cfganal.c (bitmap_intersection_of_succs): Delete assert checking
15932 dst->popcount.
15933 (bitmap_intersection_of_preds): Ditto.
15934 (bitmap_union_of_succs): Ditto.
15935 (bitmap_union_of_preds): Ditto.
15936 * sbitmap.c (do_popcount): Delete.
15937 (BITMAP_DEBUGGING): Delete.
15938 (sbitmap_verify_popcount): Delete.
15939 (sbitmap_alloc): Don't initialize the popcount field.
15940 (sbitmap_alloc_with_popcount): Delete.
15941 (sbitmap_resize): Don't resize the popcount array.
15942 (sbitmap_vector_alloc): Don't initialize the popcount field.
15943 (bitmap_copy): Don't copy the popcount array.
15944 (bitmap_clear): Don't clear the popcount array.
15945 (bitmap_clear): Delete the popcount array handling.
15946 (bitmap_ior_and_compl): Delete the popcount assert.
15947 (bitmap_not): Ditto.
15948 (bitmap_and_compl): Ditto.
15949 (bitmap_and): Delete the popcount array handling.
15950 (bitmap_xor): Ditto.
15951 (bitmap_ior): Ditto.
15952 (bitmap_or_and): Delete the popcount assert.
15953 (bitmap_and_or): Ditto.
15954 (popcount_table): Delete.
15955 (sbitmap_elt_popcount): Delete.
15956 * sbitmap.h (simple_bitmap_def): Delete the popcount field.
15957 (bitmap_set_bit): Delete the popcount assert.
15958 (bitmap_clear_bit): Ditto.
15959 (sbitmap_free): Don't free the popcount array.
15960 (sbitmap_alloc_with_popcount): Delete declaration.
15961 (sbitmap_popcount): Ditto.
15962
15963 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15964 Andrew Burgess <andrew.burgess@embecosm.com>
15965
15966 * config/arc/arc.h (SYMBOL_FLAG_CMEM): Define.
15967 (TARGET_NPS_CMEM_DEFAULT): Provide default definition.
15968 * config/arc/arc.c (arc_address_cost): Return 0 for cmem_address.
15969 (arc_encode_section_info): Set SYMBOL_FLAG_CMEM where indicated.
15970 * config/arc/arc.opt (mcmem): New option.
15971 * config/arc/arc.md (*extendqihi2_i): Add r/Uex alternative,
15972 supply length for r/m alternative.
15973 (*extendqisi2_ac): Likewise.
15974 (*extendhisi2_i): Add r/Uex alternative, supply length for r/m and
15975 r/Uex alternative.
15976 (movqi_insn): Add r/Ucm and Ucm/?Rac alternatives.
15977 (movhi_insn): Likewise.
15978 (movsi_insn): Add r/Ucm,Ucm/w alternatives.
15979 (*zero_extendqihi2_i): Add r/Ucm alternative.
15980 (*zero_extendqisi2_ac): Likewise.
15981 (*zero_extendhisi2_i): Likewise.
15982 * config/arc/constraints.md (Uex): New memory constraint.
15983 (Ucm): New define_constraint.
15984 * config/arc/predicates.md (long_immediate_loadstore_operand):
15985 Return 0 for MEM with cmem_address address.
15986 (cmem_address_0): New predicates.
15987 (cmem_address_1): Likewise.
15988 (cmem_address_2): Likewise.
15989 (cmem_address): Likewise.
15990
15991 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
15992
15993 * config/rs6000/rs6000.c (machine_function): Rename
15994 insn_chain_scanned_p to spe_insn_chain_scanned_p.
15995 (rs6000_stack_info): Adjust.
15996
15997 2016-04-28 Joern Rennecke <joern.rennecke@embecosm.com>
15998 Andrew Burgess <andrew.burgess@embecosm.com>
15999
16000 * config/arc/constraints.md (Usd): Convert to define_constraint.
16001 (Us<): Likewise.
16002 (Us>): Likewise.
16003
16004 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16005
16006 PR target/70821
16007 * config/i386/sync.md (define_peephole2 *atomic_fetch_add_cmp<mode>):
16008 Add new peephole2 where the first insn is *mov<mode>_or instead of
16009 *mov<mode>_internal.
16010
16011 2016-04-28 Segher Boesssenkool <segher@kernel.crashing.org>
16012
16013 * tracer.c (bb_seen): Make static.
16014
16015 2016-04-28 Andrew Burgess <andrew.burgess@embecosm.com>
16016
16017 * common/config/arc/arc-common.c (arc_handle_option): Add NPS400
16018 support, setup defaults.
16019 * config/arc/arc-opts.h (enum processor_type): Add NPS400.
16020 * config/arc/arc.c (arc_init): Add NPS400 support.
16021 * config/arc/arc.h (CPP_SPEC): Add NPS400 defines.
16022 (TARGET_ARC700): NPS400 is also an ARC700.
16023 * config/arc/arc.opt: Add NPS400 options to -mcpu=.
16024
16025 2016-04-28 Segher Boessenkool <segher@kernel.crashing.org>
16026
16027 PR target/70668
16028 * config/nds32/nds32.md (casesi): Don't access the operands array
16029 out of bounds.
16030
16031 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16032
16033 * config/i386/i386.md (zeroing peephole2): Use general_reg_operand.
16034 (or $-1,reg peephole2): Ditto.
16035 (strict_low_part zeroing peephole2): Use SWI12 mode iterator.
16036
16037 2016-04-28 Markus Trippelsdorf <markus@trippelsdorf.de>
16038
16039 * doc/extend.texi (Common Function Attributes) [optimize]:
16040 Discourage use of the optimize attribute.
16041
16042 2016-04-28 Bill Seurer <seurer@linux.vnet.ibm.com>
16043
16044 * config/rs6000/rs6000-builtin.def (vec_adde): Change vec_adde to a
16045 special case builtin.
16046 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove
16047 ALTIVEC_BUILTIN_VEC_ADDE.
16048 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
16049 support for ALTIVEC_BUILTIN_VEC_ADDE.
16050 * config/rs6000/rs6000.c (altivec_init_builtins): Add definition
16051 for __builtin_vec_adde.
16052
16053 2016-04-28 Jakub Jelinek <jakub@redhat.com>
16054
16055 * config/i386/i386.md (sse4_1_round<mode>2): Add avx512f alternative.
16056 * config/i386/sse.md (sse4_1_round<ssescalarmodesuffix>): Likewise.
16057
16058 2016-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16059
16060 PR testsuite/70595
16061 * doc/sourcebuild.texi (Effective-Target Keywords, Other
16062 attributes): Document cilkplus_runtime.
16063
16064 2016-04-28 Martin Jambor <mjambor@suse.cz>
16065
16066 * tree-cfg.c (verify_expr): Verify that local declarations belong to
16067 this function. Call verify_expr on MEM_REFs and bases of other
16068 handled_components.
16069
16070 2016-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16071
16072 * internal-fn.c (expand_arith_overflow): Convert preprocessor check
16073 for WORD_REGISTER_OPERATIONS to runtime check.
16074
16075 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16076
16077 * config/arc/arc.h (ASM_SPEC): Pass mfpuda to assembler.
16078
16079 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16080
16081 * config/arc/arc.c (arc_process_double_reg_moves): Fix for
16082 big-endian compilation.
16083 * config/arc/arc.md (addf3): Likewise.
16084 (subdf3): Likewise.
16085 (muldf3): Likewise.
16086
16087 2016-04-28 Richard Biener <rguenther@suse.de>
16088
16089 PR tree-optimization/70840
16090 * match.pd: powi(-x, y) and powi(|x|,y) -> powi(x,y) if y is even;
16091 Fix pow(copysign(x, y), z) -> pow(x, z) and add powi variant;
16092 Mark x * pow(x,c) -> pow(x,c+1) commutative.
16093 Add powi(x,y) * powi(z,y) -> powi(x*z,y).
16094
16095 2015-04-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16096
16097 * config/aarch64/aarch64.h (WORD_REGISTER_OPERATIONS): Define to 0
16098 and explain why in a comment.
16099
16100 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16101
16102 * config/arc/arc.md (cpu_facility): Add fpx variant.
16103 (subdf3): Prohibit use reverse sub when assist operations option
16104 is enabled.
16105 * config/arc/fpx.md (subdf3_insn, *dsubh_peep2_insn): Allow drsub
16106 instructions only when FPX is enabled.
16107 * testsuite/gcc.target/arc/trsub.c: New test.
16108
16109 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16110
16111 * config/i386/i386.md (*fop_<mode>_1_mixed): Do not check for
16112 mult_operator when calculating "type" attribute.
16113 (*fop_<mode>_1_i387): Ditto.
16114 (*fop_xf_1_i387): Ditto.
16115 (x87 stack loads peephole2): Add "reg = op (mem, reg)" peephole2.
16116 Use std::swap to swap operands. Use RTL expressions to generate
16117 converted pattern.
16118
16119 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16120 Joern Rennecke <joern.rennecke@embecosm.com>
16121
16122 * config/arc/arc-protos.h (arc_legitimize_pic_address): Remove
16123 declaration.
16124 (emit_pic_move): Remove.
16125 (arc_eh_uses, insn_is_tls_gd_dispatch): Declare.
16126 * config/arc/arc.c (emit_pic_move): Removed.
16127 (TARGET_HAVE_TLS): Define.
16128 (arc_conditional_register_usage): Test for arc_tp_regno.
16129 (arc_print_operand, arc_print_operand_address): Handle TLS
16130 unspecs.
16131 (arc_needs_pcl_p): New function.
16132 (arc_legitimate_pc_offset_p): Use arc_needs_pcl_p.
16133 (arc_legitimate_pic_addr_p): Handle TLS unspecs.
16134 (arc_raw_symbolic_reference_mentioned_p): Likewise.
16135 (arc_get_tp, arc_emit_call_tls_get_addr): New function.
16136 (arc_legitimize_tls_address): Likewise.
16137 (DTPOFF_ZERO_SYM): Define.
16138 (arc_legitimize_pic_address): Make it static, handle TLS cases.
16139 (arc_output_pic_addr_const): Print TLS unspecs.
16140 (prepare_pic_move): New function, replaces emit_pic_move.
16141 (arc_legitimate_constant_p): Handle TLS unspecs.
16142 (arc_legitimate_address_p): Likewise.
16143 (arc_rewrite_small_data_p): Use assert for TLS constants.
16144 (prepare_move_operands): Use prepare_pic_move.
16145 (arc_legitimize_address): Legitimize tls addresses.
16146 (arc_epilogue_uses): Check for arc_tp_regno.
16147 (arc_eh_uses, insn_is_tls_gd_dispatch): New function.
16148 * config/arc/arc.h [DEFAULT_LIBC != LIBC_UCLIBC] (EXTRA_SPECS):
16149 Define.
16150 [DEFAULT_LIBC != LIBC_UCLIBC] (ARC_TLS_EXTRA_START_SPEC):
16151 Likewise.
16152 [DEFAULT_LIBC != LIBC_UCLIBC] (STARTFILE_SPEC): Add
16153 %(arc_tls_extra_start_spec).
16154 (TARGET_CPU_CPP_BUILTINS): Define __ARC_TLS_REGNO__.
16155 (REGNO_OK_FOR_BASE_P): Check for arc_tp_regno.
16156 (EH_USES): Define.
16157 (INSN_REFERENCES_ARE_DELAYED): Use insn_is_tls_gd_dispatch.
16158 * config/arc/arc.md (UNSPEC_TLS_GD, UNSPEC_TLS_LD, UNSPEC_TLS_IE)
16159 (UNSPEC_TLS_OFF): Add.
16160 (R10_REG): Define.
16161 (tls_load_tp_soft, tls_gd_load, tls_gd_get_addr, tls_gd_dispatch)
16162 (get_thread_pointersi): New patterns.
16163 * config/arc/arc.opt (mtp-regno): New option.
16164 * config/arc/predicates.md (move_src_operand): Handle TLS symbols.
16165 (move_dest_operand): Likewise.
16166 * configure: Regenerate.
16167 * configure.ac: Add arc*-*-* case to test for tls.
16168 * doc/invoke.texi (ARC options): Document mtp-regno.
16169
16170 2016-04-28 Claudiu Zissulescu <claziss@synopsys.com>
16171
16172 * config/arc/arc.c (arc_vector_mode_supported_p): Add support for
16173 the new ARC HS SIMD instructions.
16174 (arc_preferred_simd_mode): New function.
16175 (arc_autovectorize_vector_sizes): Likewise.
16176 (TARGET_VECTORIZE_PREFERRED_SIMD_MODE)
16177 (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Define.
16178 (arc_init_reg_tables): Accept new ARC HS SIMD modes.
16179 (arc_init_builtins): Add new SIMD builtin types.
16180 (arc_split_move): Handle 64 bit vector moves.
16181 * config/arc/arc.h (TARGET_PLUS_DMPY, TARGET_PLUS_MACD)
16182 (TARGET_PLUS_QMACW): Define.
16183 * config/arc/builtins.def (QMACH, QMACHU, QMPYH, QMPYHU, DMACH)
16184 (DMACHU, DMPYH, DMPYHU, DMACWH, DMACWHU, VMAC2H, VMAC2HU, VMPY2H)
16185 (VMPY2HU, VADDSUB2H, VSUBADD2H, VADDSUB, VSUBADD, VADDSUB4H)
16186 (VSUBADD4H): New builtins.
16187 * config/arc/simdext.md: Add new ARC HS SIMD instructions.
16188 * testsuite/gcc.target/arc/builtin_simdarc.c: New file.
16189
16190 2016-04-28 Eduard Sanou <dhole@openmailbox.org>
16191 Matthias Klose <doko@debian.org>
16192
16193 * doc/cppenv.texi: Document SOURCE_DATE_EPOCH environment variable.
16194
16195 2016-04-28 Richard Biener <rguenther@suse.de>
16196
16197 PR middle-end/70777
16198 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0)
16199 canonicalization.
16200
16201 2016-04-28 Oleg Endo <olegendo@gcc.gnu.org>
16202
16203 * common/config/sh/sh-common.c: Remove SH5 support.
16204 * config/sh/constraints.md: Likewise.
16205 * config/sh/config/sh/elf.h: Likewise.
16206 * config/sh/linux.h: Likewise.
16207 * config/sh/netbsd-elf.h: Likewise.
16208 * config/sh/predicates.md: Likewise.
16209 * config/sh/sh-c.c: Likewise.
16210 * config/sh/sh-protos.h: Likewise.
16211 * config/sh/sh.c: Likewise.
16212 * config/sh/sh.h: Likewise.
16213 * config/sh/sh.md: Likewise.
16214 * config/sh/sh.opt: Likewise.
16215 * config/sh/sync.md: Likewise.
16216 * config/sh/sh64.h: Delete.
16217 * config/sh/shmedia.h: Likewise.
16218 * config/sh/shmedia.md: Likewise.
16219 * config/sh/sshmedia.h: Likewise.
16220 * config/sh/t-netbsd-sh5-64: Likewise.
16221 * config/sh/t-sh64: Likewise.
16222 * config/sh/ushmedia.h: Likewise.
16223
16224 2016-04-28 Uros Bizjak <ubizjak@gmail.com>
16225
16226 * config/i386/i386.md (sign_extend to memory peephole2s): Use
16227 general_reg_operand instead of register_operand predicate.
16228
16229 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16230
16231 * params.def (MIN_PARTITION_SIZE): Set default value to 10000.
16232
16233 2016-04-27 Marc Glisse <marc.glisse@inria.fr>
16234
16235 * match.pd (A - B > A, A + B < A): New transformations.
16236
16237 2016-04-27 Patrick Palka <ppalka@gcc.gnu.org>
16238
16239 * genattrtab.c (write_test_expr): New parameter EMIT_PARENS
16240 which defaults to true. Emit an outer pair of parentheses only if
16241 EMIT_PARENS. When continuing a chain of && or || (or & or |),
16242 don't emit parentheses for the right-hand operand.
16243
16244 2016-04-27 Jeff Law <law@redhat.com>
16245
16246 * tree-ssa-dom.c (record_temporary_equivalences): Fix typo in comment.
16247
16248 2016-04-27 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16249
16250 * config/rs6000/altivec.md (altivec_lvx_<mode>): Remove.
16251 (altivec_lvx_<mode>_internal): Document.
16252 (altivec_lvx_<mode>_2op): New define_insn.
16253 (altivec_lvx_<mode>_1op): Likewise.
16254 (altivec_lvx_<mode>_2op_si): Likewise.
16255 (altivec_lvx_<mode>_1op_si): Likewise.
16256 (altivec_stvx_<mode>): Remove.
16257 (altivec_stvx_<mode>_internal): Document.
16258 (altivec_stvx_<mode>_2op): New define_insn.
16259 (altivec_stvx_<mode>_1op): Likewise.
16260 (altivec_stvx_<mode>_2op_si): Likewise.
16261 (altivec_stvx_<mode>_1op_si): Likewise.
16262 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
16263 Expand vec_ld and vec_st during parsing.
16264 * config/rs6000/rs6000.c (altivec_expand_lvx_be): Commentary
16265 changes.
16266 (altivec_expand_stvx_be): Likewise.
16267 (altivec_expand_lv_builtin): Expand lvx built-ins to expose the
16268 address-masking behavior in RTL.
16269 (altivec_expand_stv_builtin): Expand stvx built-ins to expose the
16270 address-masking behavior in RTL.
16271 (altivec_expand_builtin): Change builtin code arguments for calls
16272 to altivec_expand_stv_builtin and altivec_expand_lv_builtin.
16273 (insn_is_swappable_p): Avoid incorrect swap optimization in the
16274 presence of lvx/stvx patterns.
16275 (alignment_with_canonical_addr): New function.
16276 (alignment_mask): Likewise.
16277 (find_alignment_op): Likewise.
16278 (recombine_lvx_pattern): Likewise.
16279 (recombine_stvx_pattern): Likewise.
16280 (recombine_lvx_stvx_patterns): Likewise.
16281 (rs6000_analyze_swaps): Perform a pre-pass to recognize lvx and
16282 stvx patterns from expand.
16283 * config/rs6000/vector.md (vector_altivec_load_<mode>): Use new
16284 expansions.
16285 (vector_altivec_store_<mode>): Likewise.
16286
16287 2016-04-26 Evandro Menezes <e.menezes@samsung.com>
16288
16289 * config/aarch64/aarch64.md
16290 (*movhf_aarch64): Add "movi %0, #0" to zero up register and
16291 remove the "fp" attributes.
16292 (*movsf_aarch64): Add "movi %0, #0" to zero up register and
16293 add the "simd" attributes.
16294 (*movdf_aarch64): Likewise.
16295 (*movtf_aarch64): Remove the "fp" attributes.
16296 * testsuite/gcc.target/aarch64/fmovf-zero-reg.c: Update accordingly.
16297 * testsuite/gcc.target/aarch64/fmovd-zero-reg.c: Likewise.
16298
16299 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16300
16301 * emit-rtl.c (maybe_set_first_label_num): Strengthen param from
16302 rtx to rtx_code_label *.
16303 * rtl.h (maybe_set_first_label_num): Likewise.
16304
16305 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16306
16307 * df-core.c (df_add_problem): Make the problem param be const.
16308 (df_remove_problem): Make local "problem" be const.
16309 * df-problems.c (problem_RD): Make const.
16310 (problem_LR): Likewise.
16311 (problem_LIVE): Likewise.
16312 (problem_MIR): Likewise.
16313 (problem_CHAIN): Likewise.
16314 (problem_WORD_LR): Likewise.
16315 (problem_NOTE): Likewise.
16316 (problem_MD): Likewise.
16317 * df-scan.c (problem_SCAN): Likewise.
16318 * df.h (struct df_problem): Make field "dependent_problem" be
16319 const.
16320 (struct dataflow): Likewise for field "problem".
16321 (df_add_problem): Make param const.
16322
16323 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
16324
16325 * config/i386/i386.c (ix86_spill_class): Enable for TARGET_SSE2 when
16326 inter-unit moves to/from vector registers are enabled. Do not disable
16327 for TARGET_MMX.
16328
16329 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16330
16331 * df.h (DF_SCAN, DF_LR, DF_LIVE, DF_RD, DF_CHAIN, DF_WORD_LR,
16332 DF_NOTE, DF_MD, DF_MIR, DF_LAST_PROBLEM_PLUS1): Convert from
16333 #define to...
16334 (enum df_problem_id): ...this new enum.
16335 (struct df_problem): Convert field "id" from "int" to
16336 enum df_problem_id.
16337
16338 2016-04-27 David Malcolm <dmalcolm@redhat.com>
16339
16340 * rtl.def: Update comment for "things in the instruction chain" to
16341 reflect the removal of the leading "i" field for INSN_UID in
16342 r210360. Fix bogus apostrophe.
16343
16344 2016-04-27 Uros Bizjak <ubizjak@gmail.com>
16345
16346 * config/i386/i386.md
16347 (lea arith with mem operand + setcc peephole2): Set operator mode.
16348
16349 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
16350
16351 PR target/70155
16352 * config/i386/i386.c (scalar_to_vector_candidate_p): Renamed to ...
16353 (dimode_scalar_to_vector_candidate_p): This.
16354 (timode_scalar_to_vector_candidate_p): New function.
16355 (scalar_to_vector_candidate_p): Likewise.
16356 (timode_check_non_convertible_regs): Likewise.
16357 (timode_remove_non_convertible_regs): Likewise.
16358 (remove_non_convertible_regs): Likewise.
16359 (remove_non_convertible_regs): Renamed to ...
16360 (dimode_remove_non_convertible_regs): This.
16361 (scalar_chain::~scalar_chain): Make it virtual.
16362 (scalar_chain::compute_convert_gain): Make it pure virtual.
16363 (scalar_chain::mark_dual_mode_def): Likewise.
16364 (scalar_chain::convert_insn): Likewise.
16365 (scalar_chain::convert_registers): Likewise.
16366 (scalar_chain::add_to_queue): Make it protected.
16367 (scalar_chain::emit_conversion_insns): Likewise.
16368 (scalar_chain::replace_with_subreg): Likewise.
16369 (scalar_chain::replace_with_subreg_in_insn): Likewise.
16370 (scalar_chain::convert_op): Likewise.
16371 (scalar_chain::convert_reg): Likewise.
16372 (scalar_chain::make_vector_copies): Likewise.
16373 (scalar_chain::convert_registers): New pure virtual function.
16374 (class dimode_scalar_chain): New class.
16375 (class timode_scalar_chain): Likewise.
16376 (scalar_chain::mark_dual_mode_def): Renamed to ...
16377 (dimode_scalar_chain::mark_dual_mode_def): This.
16378 (timode_scalar_chain::mark_dual_mode_def): New function.
16379 (timode_scalar_chain::convert_insn): Likewise.
16380 (dimode_scalar_chain::convert_registers): Likewise.
16381 (scalar_chain::compute_convert_gain): Renamed to ...
16382 (dimode_scalar_chain::compute_convert_gain): This.
16383 (scalar_chain::replace_with_subreg): Renamed to ...
16384 (dimode_scalar_chain::replace_with_subreg): This.
16385 (scalar_chain::replace_with_subreg_in_insn): Renamed to ...
16386 (dimode_scalar_chain::replace_with_subreg_in_insn): This.
16387 (scalar_chain::make_vector_copies): Renamed to ...
16388 (dimode_scalar_chain::make_vector_copies): This.
16389 (scalar_chain::convert_reg): Renamed to ...
16390 (dimode_scalar_chain::convert_reg ): This.
16391 (scalar_chain::convert_op): Renamed to ...
16392 (dimode_scalar_chain::convert_op): This.
16393 (scalar_chain::convert_insn): Renamed to ...
16394 (dimode_scalar_chain::convert_insn): This.
16395 (scalar_chain::convert): Call convert_registers.
16396 (convert_scalars_to_vector): Change to scalar_chain pointer to
16397 use timode_scalar_chain in 64-bit mode and dimode_scalar_chain
16398 in 32-bit mode. Delete scalar_chain pointer. Call
16399 free_dominance_info in 64-bit mode.
16400 (pass_stv::gate): Remove TARGET_64BIT check.
16401 (ix86_option_override): Put the 64-bit STV pass before the CSE
16402 pass.
16403
16404 2016-04-27 Pierre-Marie de Rodat <derodat@adacore.com>
16405
16406 * dwarf2out.h (struct dw_loc_descr_node): Remove the
16407 dw_loc_frame_offset field.
16408 * dwarf2out.c (new_loc_descr): Likewise.
16409 (resolve_args_picking_1): Turn the VISITED hash set into a
16410 FRAME_OFFSET hash map. Use it to associate a frame offset to
16411 visited nodes. Remove uses of the CHECKING_P macro.
16412 (resolve_args_picking): Update call to resolve_args_picking_1.
16413
16414 2016-04-27 Martin Liska <mliska@suse.cz>
16415
16416 * tree-ssa-loop-ivopts.c (iv_ca_dump): Fix level of indentation.
16417 (free_loop_data): Release vuses of groups.
16418
16419 2016-04-27 Bin Cheng <bin.cheng@arm.com>
16420
16421 * tree-ssa-loop-ivopts.c (struct iv): Use pointer to struct iv_use
16422 instead of redundant use_id and boolean have_use_for.
16423 (struct iv_use): Change sub_id into group_id. Remove field next.
16424 Move fields: related_cands, n_map_members, cost_map and selected
16425 to ...
16426 (struct iv_group): ... here. New structure.
16427 (struct iv_common_cand): Use structure declaration directly.
16428 (struct ivopts_data, iv_ca, iv_ca_delta): Rename fields.
16429 (MAX_CONSIDERED_USES): Rename macro to ...
16430 (MAX_CONSIDERED_GROUPS): ... here.
16431 (n_iv_uses, iv_use, n_iv_cands, iv_cand): Delete.
16432 (dump_iv, dump_use, dump_cand): Refactor format of dump information.
16433 (dump_uses): Rename to ...
16434 (dump_groups): ... here. Update all uses.
16435 (tree_ssa_iv_optimize_init, alloc_iv): Update all uses.
16436 (find_induction_variables): Refactor format of dump information.
16437 (record_sub_use): Delete.
16438 (record_use): Update all uses.
16439 (record_group): New function.
16440 (record_group_use, find_interesting_uses_op): Call above functions.
16441 Update all uses.
16442 (find_interesting_uses_cond): Ditto.
16443 (group_compare_offset): New function.
16444 (split_all_small_groups): Rename to ...
16445 (split_small_address_groups_p): ... here. Update all uses.
16446 (split_address_groups): Update all uses.
16447 (find_interesting_uses): Refactor format of dump information.
16448 (add_candidate_1): Update all uses. Remove redundant check on iv,
16449 base and step.
16450 (add_candidate, record_common_cand): Remove redundant assert.
16451 (add_iv_candidate_for_biv): Update use.
16452 (add_iv_candidate_derived_from_uses): Update all uses.
16453 (add_iv_candidate_for_groups, record_important_candidates): Ditto.
16454 (alloc_use_cost_map): Ditto.
16455 (set_use_iv_cost, get_use_iv_cost): Rename to ...
16456 (set_group_iv_cost, get_group_iv_cost): ... here. Update all uses.
16457 (determine_use_iv_cost_generic): Ditto.
16458 (determine_group_iv_cost_generic): Ditto.
16459 (determine_use_iv_cost_address): Ditto.
16460 (determine_group_iv_cost_address): Ditto.
16461 (determine_use_iv_cost_condition): Ditto.
16462 (determine_group_iv_cost_cond): Ditto.
16463 (determine_use_iv_cost): Ditto.
16464 (determine_group_iv_cost): Ditto.
16465 (set_autoinc_for_original_candidates): Update all uses.
16466 (find_iv_candidates): Update all uses. Refactor dump information.
16467 (determine_use_iv_costs): Ditto.
16468 (determine_iv_costs): Ditto.
16469 (iv_ca_cand_for_use): Rename to ...
16470 (iv_ca_cand_for_group): ... here. Update all uses.
16471 (iv_ca_add_use, iv_ca_add_group): Ditto.
16472 (iv_ca_set_cp, iv_ca_cost, iv_ca_delta_add): Update all uses.
16473 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_delta_free): Ditto.
16474 (iv_ca_new, iv_ca_dump, iv_ca_extend, iv_ca_narrow): Ditto.
16475 (iv_ca_prune, cheaper_cost_with_cand, iv_ca_replace): Ditto.
16476 (try_add_cand_for, try_improve_iv_set, find_optimal_iv_set): Ditto.
16477 (create_new_iv, adjust_iv_update_pos): Ditto.
16478 (rewrite_use_address): Delete.
16479 (rewrite_use_address_1): Rename to ...
16480 (rewrite_use_address): ... here.
16481 (rewrite_use_compare): Update all uses.
16482 (rewrite_use): Delete.
16483 (rewrite_uses): Rename to ...
16484 (rewrite_groups): ... here. Update all uses.
16485 (remove_unused_ivs, free_loop_data): Update all uses.
16486 (tree_ssa_iv_optimize_finalize, tree_ssa_iv_optimize_loop): Ditto.
16487
16488 2016-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16489
16490 * rtlanal.c (nonzero_bits1): Convert preprocessor check
16491 for WORD_REGISTER_OPERATIONS to runtime check.
16492
16493 2016-04-27 Richard Biener <rguenther@suse.de>
16494
16495 PR ipa/70760
16496 * tree-ssa-structalias.c (find_func_aliases_for_call): Use
16497 aggregate_value_p to determine if a function result is
16498 returned by reference.
16499 (ipa_pta_execute): Functions having their address taken are
16500 not automatically nonlocal.
16501
16502 2016-04-27 Jakub Jelinek <jakub@redhat.com>
16503
16504 PR sanitizer/70683
16505 * tree-core.h (enum operand_equal_flag): Add OEP_NO_HASH_CHECK.
16506 * fold-const.c (operand_equal_p): If flag_checking and
16507 OEP_NO_HASH_CHECK is not set in flag, recurse with OEP_NO_HASH_CHECK
16508 and if it returns non-zero, assert iterative_hash_expr on both
16509 args is the same.
16510
16511 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
16512
16513 * doc/invoke.texi (-frename-registers): Also enabled at -Os.
16514
16515 2016-04-27 Nick Clifton <nickc@redhat.com>
16516
16517 PR middle-end/49889
16518 * varasm.c (merge_weak): Generate an error if an attempt is made
16519 to convert a non-weak static function into a weak, public function.
16520
16521 2016-04-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
16522
16523 * params.def (MAX_PARTITION_SIZE): New param.
16524 * doc/invoke.texi: Document lto-max-partition.
16525
16526 2016-04-27 Richard Biener <rguenther@suse.de>
16527
16528 PR ipa/70785
16529 * tree-ssa-structalias.c (refered_from_nonlocal_fn): New
16530 function cummulating used_from_other_partition, externally_visible
16531 and force_output from aliases.
16532 (refered_from_nonlocal_var): Likewise.
16533 (ipa_pta_execute): Use call_for_symbol_and_aliases to cummulate
16534 node flags properly.
16535
16536 2016-04-27 Bernd Schmidt <bschmidt@redhat.com>
16537
16538 * doc/invoke.texi (Warning Options): Add -Wmemset-elt-size.
16539 (-Wmemset-elt-size): New item.
16540
16541 2016-04-27 Eric Botcazou <ebotcazou@adacore.com>
16542
16543 PR ada/70759
16544 * stor-layout.h (internal_reference_types): Delete.
16545 * stor-layout.c (reference_types_internal): Likewise.
16546 (internal_reference_types): Likewise.
16547 (layout_type) <REFERENCE_TYPE>: Adjust.
16548
16549 2016-04-27 Jakub Jelinek <jakub@redhat.com>
16550
16551 PR sanitizer/70683
16552 * tree.h (inchash::add_expr): Add FLAGS argument.
16553 * tree.c (inchash::add_expr): Likewise. If not OEP_ADDRESS_OF,
16554 use STRIP_NOPS first. For INTEGER_CST assert not OEP_ADDRESS_OF.
16555 For REAL_CST and !HONOR_SIGNED_ZEROS (t) hash +/- 0 the same.
16556 Formatting fix. Adjust recursive calls. For tcc_comparison,
16557 if swap_tree_comparison (code) is smaller than code, hash that
16558 and arguments in the other order. Hash CONVERT_EXPR the same
16559 as NOP_EXPR. For OEP_ADDRESS_OF hash MEM_REF with 0 offset
16560 of ADDR_EXPR of decl as the decl itself. Add or remove
16561 OEP_ADDRESS_OF from recursive flags as needed. For
16562 FMA_EXPR, WIDEN_MULT_{PLUS,MINUS}_EXPR hash the first two
16563 operands commutatively and only the third one normally.
16564 For internal CALL_EXPR hash in CALL_EXPR_IFN.
16565
16566 2016-04-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
16567
16568 * config/rtems.h (LIB_SPEC): Add -latomic.
16569
16570 2016-04-27 Joel Sherrill <joel@rtems.org>
16571
16572 * config/microblaze/rtems.h: Redefine LINK_SPEC to avoid
16573 xilink.ld and flags not relevant to RTEMS.
16574
16575 2016-04-26 Zhouyi Zhou <yizhouzhou@ict.ac.cn>
16576
16577 * toplev.c (backend_init_target): Avoid calling init_reload when using
16578 LRA.
16579
16580 2016-04-26 Jakub Jelinek <jakub@redhat.com>
16581
16582 * reorg.c (try_merge_delay_insns): Declare i and j inside the
16583 for loops rather than one for the whole function.
16584
16585 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
16586
16587 * match.pd (X + CST CMP X): New transformation.
16588
16589 2016-04-26 Marc Glisse <marc.glisse@inria.fr>
16590
16591 * genmatch.c (write_predicate): Add ATTRIBUTE_UNUSED.
16592 * fold-const.c (fold_binary_loc): Remove 2 transformations
16593 superseded by match.pd.
16594 * match.pd (x+x -> x*2): Generalize to integers.
16595
16596 2016-04-26 Bernd Schmidt <bschmidt@redhat.com>
16597
16598 * config/i386/i386.md (operation on memory peephole): Duplicate an
16599 existing peephole and adapt it to match lea rather than an operation
16600 that clobbers CC.
16601
16602 PR rtl-optimization/57193
16603 * opts.c (default_options_table): Add OPT_frename_registers at -O2
16604 and above.
16605 * doc/invoke.texi (-frename-registers, -O2): Update documentation.
16606
16607 2016-04-26 Bin Cheng <bin.cheng@arm.com>
16608
16609 * tree-if-conv.c (any_pred_load_store): New static variable.
16610 (if_convertible_gimple_assign_stmt_p): Remove parameter. Use
16611 any_pred_load_store instead of and_mask_load_store.
16612 (if_convertible_stmt_p, if_convertible_loop_p_1): Ditto.
16613 (if_convertible_loop_p, insert_gimplified_predicates): Ditto.
16614 (combine_blocks, tree_if_conversion): Ditto.
16615
16616 2016-04-26 Bin Cheng <bin.cheng@arm.com>
16617
16618 PR tree-optimization/70771
16619 PR tree-optimization/70775
16620 * tree-if-conv.c (if_convertible_phi_p): Remove check on special
16621 virtual PHI nodes. Delete parameter.
16622 (if_convertible_loop_p_1): Delete argument to above function.
16623 (predicate_all_scalar_phis): Delete code handling single-argument
16624 PHIs.
16625 (tree_if_conversion): Mark and update virtual SSA.
16626
16627 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16628
16629 PR target/61821
16630 * config/i386/i386.c (LARGECOMM_SECTION_ASM_OP): Define default.
16631 (x86_elf_aligned_common): Rename to ...
16632 (x86_elf_aligned_decl_common): ... this.
16633 Add decl arg. Switch to .lbss for largecomm object. Use
16634 LARGECOMM_SECTION_ASM_OP.
16635 * config/i386/i386-protos.h (x86_elf_aligned_common): Reflect
16636 renaming.
16637 * config/i386/x86-64.h (ASM_OUTPUT_ALIGNED_COMMON): Rename to ...
16638 (ASM_OUTPUT_ALIGNED_DECL_COMMON): ... this.
16639 Pass new decl arg.
16640 * config/i386/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
16641 [!USE_GAS] (LARGECOMM_SECTION_ASM_OP): Define.
16642
16643 2016-04-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16644
16645 PR target/59407
16646 * config/i386/i386.c (SECTION_LARGE): Define.
16647 (x86_64_elf_select_section): Set it for large data/bss sections.
16648 Only clear SECTION_WRITE for .lrodata.
16649 (x86_64_elf_section_type_flags): Set SECTION_LARGE for large
16650 data/bss sections.
16651 * config/i386/sol2.h (MACH_DEP_SECTION_ASM_FLAG): Define.
16652 * varasm.c (default_elf_asm_named_section): Grow flagchars.
16653 [MACH_DEP_SECTION_ASM_FLAG] Emit MACH_DEP_SECTION_ASM_FLAG for
16654 SECTION_MACH_DEP.
16655 * doc/tm.texi.in (Sections, MACH_DEP_SECTION_ASM_FLAG): Describe.
16656 * doc/tm.texi: Regenerate.
16657
16658 2016-04-26 Jakub Jelinek <jakub@redhat.com>
16659
16660 PR bootstrap/70704
16661 * configure.ac (--enable-checking): Document extra flag, for
16662 non-release builds default to --enable-checking=yes,extra.
16663 If misc checking and extra checking, define CHECKING_P to 2 instead
16664 of 1.
16665 * common.opt (fchecking=): Add.
16666 * doc/invoke.texi (-fchecking=): Document.
16667 * doc/install.texi: Document --enable-checking changes.
16668 * configure: Regenerated.
16669 * config.in: Regenerated.
16670
16671 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16672
16673 * config/i386/i386.md (*movxi_internal_avx512f): Use insn type
16674 attribute instead of which_alternative.
16675 * config/i386/sse.md (*mov<mode>_internal): Ditto.
16676 Use EXT_REX_SSE_REG_P where appropriate.
16677
16678 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16679
16680 * config/i386/predicates.md (const0_operand): Do not match
16681 const_wide_int code.
16682 (const1_operand): Ditto.
16683
16684 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16685
16686 * config/i386/i386.md (*movoi_internal_avx): Set mode attribute to XI
16687 for SSE constm1 operands and TARGET_AVX512VL.
16688 (*movti_internal): Ditto.
16689 (*mov<mode>_or): Use constm1_operand predicate.
16690 * config/i386/sse.md (*mov<mode>_internal): Set mode attribute to XI
16691 for SSE vector_all_ones operands and TARGET_AVX512VL.
16692 * config/i386/predicates.md (constm1_operand): New predicate.
16693 * config/i386/i386.c (standard_sse_constant_opcode): Simplify
16694 emission of constant -1 load.
16695
16696 2016-04-25 Jason Merrill <jason@redhat.com>
16697
16698 * gdbinit.in: Skip is-a.h.
16699
16700 * attribs.c (register_scoped_attributes): Fix logic.
16701 * attribs.h: Declare register_scoped_attributes.
16702
16703 2016-04-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
16704
16705 * config/rs6000/rs6000-builtin.def: Correct pasto error for
16706 stxvd2x and stxvw4x built-in functions.
16707
16708 2016-04-25 DJ Delorie <dj@redhat.com>
16709
16710 * config/msp430/msp430.md (ashlhi3): Optimize one bit shifts.
16711 (ashrhi3): Likewise.
16712 (lshrhi3): Likewise.
16713
16714 2016-04-25 Richard Biener <rguenther@suse.de>
16715
16716 PR tree-optimization/70780
16717 * tree-ssa-pre.c (compute_antic_aux): Also return true if the block
16718 wasn't visited yet.
16719 (compute_antic): Mark blocks with abnormal preds as visited as
16720 they have a final empty antic-in solution already.
16721
16722 2016-04-25 Michael Collison <michael.collison@linaro.org>
16723
16724 * ChangeLog(2016-04-25): Fix ChangeLog formatting.
16725
16726 2016-04-25 Michael Collison <michael.collison@linaro.org>
16727
16728 * config/arm/neon.md (widen_<us>sum<mode>): New patterns where
16729 mode is VQI to improve mixed mode vectorization.
16730 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3): New
16731 define_insn to match low half of signed vaddw.
16732 * config/arm/neon.md (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): New
16733 define_insn to match high half of signed vaddw.
16734 * config/arm/neon.md (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): New
16735 define_insn to match low half of unsigned vaddw.
16736 * config/arm/neon.md (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): New
16737 define_insn to match high half of unsigned vaddw.
16738 * config/arm/arm.c (arm_simd_vect_par_cnst_half): New function.
16739 (arm_simd_check_vect_par_cnst_half_p): Likewise.
16740 * config/arm/arm-protos.h (arm_simd_vect_par_cnst_half): Prototype
16741 for new function.
16742 (arm_simd_check_vect_par_cnst_half_p): Likewise.
16743 * config/arm/predicates.md (vect_par_constant_high): Support
16744 big endian and simplify by calling
16745 arm_simd_check_vect_par_cnst_half
16746 (vect_par_constant_low): Likewise.
16747
16748 2016-04-25 Uros Bizjak <ubizjak@gmail.com>
16749
16750 * config/i386/i386.md (*lea<mode>_general_4): Use const_0_to_3_operand
16751 predicate for operand 2.
16752
16753 2016-04-24 Uros Bizjak <ubizjak@gmail.com>
16754 H.J. Lu <hongjiu.lu@intel.com>
16755
16756 * config/i386/i386-protos.h (standard_sse_constant_p): Add
16757 machine_mode argument.
16758 * config/i386/i386.c (standard_sse_constant_p): Return 2 for
16759 constm1_rtx operands. For VOIDmode constants, get mode from
16760 pred_mode. Check mode size if the mode is supported by ABI.
16761 (standard_sse_constant_opcode): Do not use standard_constant_p.
16762 Strictly check ABI support for all-ones operands.
16763 (ix86_legitimate_constant_p): Handle TImode, OImode and XImode
16764 immediates. Update calls to standard_sse_constant_p.
16765 (ix86_expand_vector_move): Update calls to standard_sse_constant_p.
16766 (ix86_rtx_costs): Ditto.
16767 * config/i386/i386.md (*movxi_internal_avx512f): Use
16768 nonimmediate_or_sse_const_operand instead of vector_move_operand.
16769 Use (v,BC) alternative instead of (v,C). Use register_operand
16770 checks instead of MEM_P.
16771 (*movoi_internal_avx): Use nonimmediate_or_sse_const_operand instead
16772 of vector_move_operand. Add (v,BC) alternative and corresponding avx2
16773 isa attribute. Use register_operand checks instead of MEM_P.
16774 (*movti_internal): Use nonimmediate_or_sse_const_operand for
16775 TARGET_SSE. Improve TARGET_SSE insn constraint. Add (v,BC)
16776 alternative and corresponding sse2 isa attribute.
16777 (*movtf_internal, *movdf_internal, *movsf_interal): Update calls
16778 to standard_sse_constant_p.
16779 (FP constant splitters): Ditto.
16780 * config/i386/constraints.md (BC): Do not use standard_sse_constant_p.
16781 (C): Ditto.
16782 * config/i386/predicates.md (constm1_operand): Remove.
16783 (nonimmediate_or_sse_const_operand): Rewrite using RTX.
16784 * config/i386/sse.md (*<avx512>_cvtmask2<ssemodesuffix><mode>): Use
16785 vector_all_ones_operand instead of constm1_operand.
16786
16787 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16788
16789 * print-rtl.c (print_rtx_insn_vec): New function.
16790 * print-rtl.h: New prototype.
16791 * store-motion.c (struct st_expr): Make avail_stores a vector.
16792 (st_expr_entry): Adjust.
16793 (free_st_expr_entry): Likewise.
16794 (print_store_motion_mems): Likewise.
16795 (find_moveable_store): Likewise.
16796 (compute_store_table): Likewise.
16797 (delete_store): Likewise.
16798 (build_store_vectors): Likewise.
16799
16800 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16801
16802 * reorg.c (try_merge_delay_insns): Make merged_insns a vector.
16803
16804 2016-04-24 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
16805
16806 * vec.h (vec_safe_contains): New function.
16807 (vec::contains): Likewise.
16808 (vec::begin): Likewise.
16809 (vec::end): Likewise.
16810
16811 2016-04-23 Jakub Jelinek <jakub@redhat.com>
16812
16813 PR sanitizer/70712
16814 * cfgexpand.c (expand_stack_vars): Fix typo.
16815
16816 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
16817
16818 * system.h (list, map, set, vector): Include conditionally.
16819 * auto-profile.c (INCLUDE_MAP, INCLUDE_SET): Define.
16820 * graphite-isl-ast-to-gimple.c (INCLUDE_MAP): Define.
16821 * ipa-icf.c (INCLUDE_LIST): Define.
16822 * config/aarch64/cortex-a57-fma-steering.c (INCLUDE_LIST): Define.
16823 * config/sh/sh.c (INCLUDE_VECTOR): Define.
16824 * config/sh/sh_treg_combine.cc (INCLUDE_ALGORITHM): Define.
16825 (INCLUDE_LIST, INCLUDE_VECTOR): Define.
16826 * cp/logic.cc (INCLUDE_LIST): Define.
16827 * fortran/trans-common.c (INCLUDE_MAP): Define.
16828
16829 2016-04-22 Szabolcs Nagy <szabolcs.nagy@arm.com>
16830
16831 * auto-profile.c: Remove <string.h> include.
16832 * ipa-icf-gimple.c: Remove <list> include.
16833 * diagnostic.c: Remove <new> include.
16834 * genmatch.c: Likewise.
16835 * pretty-print.c: Likewise.
16836 * toplev.c: Likewise
16837 * c/c-objc-common.c: Likewise.
16838 * cp/error.c: Likewise.
16839 * fortran/error.c: Likewise.
16840
16841 2016-04-22 Richard Biener <rguenther@suse.de>
16842
16843 * lto-streamer-in.c (input_ssa_names): Do not allocate
16844 GIMPLE_NOP for all SSA names.
16845 * lto-streamer-out.c (output_ssa_names): Do not output
16846 SSA names that should have been released.
16847
16848 2016-04-22 Richard Biener <rguenther@suse.de>
16849
16850 PR tree-optimization/70740
16851 * tree-ssa-phiprop.c (propagate_with_phi): Handle inserted
16852 VDEF.
16853
16854 2016-04-21 H.J. Lu <hongjiu.lu@intel.com>
16855
16856 PR target/70750
16857 * config/i386/predicates.md (call_insn_operand): Replace
16858 sibcall_memory_operand with memory_operand.
16859
16860 2016-04-21 Patrick Palka <ppalka@gcc.gnu.org>
16861
16862 * tree-vrp.c (register_edge_assert_for_2): Remove redundant
16863 has_single_use() tests.
16864 (register_edge_assert_for_1): Likewise.
16865 (find_assert_locations_1): Check the liveness bitmap instead of
16866 checking has_single_use().
16867
16868 2016-04-21 Kirill Yukhin <kirill.yukhin@intel.com>
16869
16870 PR target/70728
16871 * config/i386/sse.md (define_insn "<shift_insn><mode>3<mask_name>"):
16872 Extract AVX-512BW constraint from AVX.
16873
16874 2016-04-21 Richard Biener <rguenther@suse.de>
16875
16876 PR tree-optimization/70725
16877 * tree-if-conv.c (if_convertible_phi_p): Adjust guard
16878 for phi_convertible_by_degenerating_args.
16879 (predicate_all_scalar_phis): Handle single-argument PHIs.
16880
16881 2016-04-21 Richard Biener <rguenther@suse.de>
16882
16883 PR middle-end/70747
16884 * fold-const.c (fold_comparison): Return properly typed
16885 constant boolean.
16886
16887 2016-04-21 Bin Cheng <bin.cheng@arm.com>
16888
16889 PR tree-optimization/70715
16890 * tree-ssa-loop-niter.c (loop_exits_before_overflow): Check equality
16891 after expanding BASE using expand_simple_operations.
16892
16893 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
16894
16895 * match.pd (min(-x, -y), max(-x, -y), min(~x, ~y), max(~x, ~y)):
16896 New transformations.
16897
16898 2016-04-21 Marc Glisse <marc.glisse@inria.fr>
16899
16900 * match.pd (min(int_max, x), max(int_min, x)): New transformations.
16901
16902 2016-04-20 Jan Hubicka <jh@suse.cz>
16903
16904 * ipa-inline.c (can_inline_edge_p): Pass caller info to
16905 ultiimate_alias_target.
16906 (update_callee_keys): Likewise.
16907 (lookup_recursive_calls): Likewise.
16908 (speculation_useful_p): Likewise.
16909
16910 2016-04-20 Jan Hubicka <jh@suse.cz>
16911
16912 PR ipa/70018
16913 * cgraph.c (cgraph_set_nothrow_flag_1): Rename to ...
16914 (set_nothrow_flag_1): ... this; handle interposition correctly;
16915 recurse on aliases and thunks.
16916 (cgraph_node::set_nothrow_flag): New.
16917 * ipa-pure-const.c (ignore_edge_for_nothrow): Ignore calls to
16918 functions compiled with non-call exceptions that binds to current
16919 def.
16920 (propagate_nothrow): Be safe WRT interposition.
16921 * cgraph.h (set_nothrow_flag): Update prototype.
16922
16923 2016-04-18 Jan Hubicka <jh@suse.cz>
16924
16925 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
16926 max_loop_iterations_int.
16927 (tree_unswitch_outer_loop): Likewise.
16928
16929 2016-04-20 Bin Cheng <bin.cheng@arm.com>
16930
16931 PR tree-optimization/69489
16932 * tree-if-conv.c (phi_convertible_by_degenerating_args): New.
16933 (if_convertible_phi_p): Call phi_convertible_by_degenerating_args.
16934 Revise dump message.
16935 (if_convertible_bb_p): Remove check on edge count of basic block's
16936 predecessors.
16937
16938 2016-04-20 Bin Cheng <bin.cheng@arm.com>
16939
16940 PR tree-optimization/56625
16941 PR tree-optimization/69489
16942 * tree-data-ref.h (DR_INNERMOST): New macro.
16943 * tree-if-conv.c (innermost_loop_behavior_hash): New class for
16944 hashing struct innermost_loop_behavior.
16945 (ref_DR_map): Remove.
16946 (innermost_DR_map): New map.
16947 (baseref_DR_map): Revise comment.
16948 (hash_memrefs_baserefs_and_store_DRs_read_written_info): Store DR
16949 to innermost_DR_map accroding to its innermost loop behavior.
16950 (ifcvt_memrefs_wont_trap): Get DR from innermost_DR_map according
16951 to its innermost loop behavior.
16952 (if_convertible_loop_p_1): Remove intialization for ref_DR_map.
16953 Add initialization for innermost_DR_map. Record memory reference
16954 in DR_BASE_ADDRESS if the reference is compound one or it doesn't
16955 have innermost loop behavior.
16956 (if_convertible_loop_p): Remove release for ref_DR_map. Release
16957 innermost_DR_map.
16958
16959 2016-04-20 Uros Bizjak <ubizjak@gmail.com>
16960
16961 * config/i386/i386.md (*lea<mode>_general_1): Rename from
16962 *lea_general_1. Use explicit SWI12 mode interator.
16963 (*lea<mode>_general_2): Rename from *lea_general_2.
16964 Use explicit SWI12 mode interator.
16965 (*lea<mode>_general_3): Rename from *lea_general_3.
16966 Use explicit SWI12 mode interator.
16967 (*lea<SWI12:mode>_general_4): Split from *lea_general_4.
16968 Use explicit SWI12 mode interator.
16969 (*lea<SWI48:mode>_general_4): Split from *lea_general_4.
16970 Use explicit SWI48 mode interator.
16971
16972 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
16973
16974 * config/i386/i386.c (ix86_avx256_split_vector_move_misalign):
16975 Short-cut unaligned load and store cases. Handle all integer
16976 vector modes.
16977 (ix86_expand_vector_move_misalign): Short-cut unaligned load
16978 and store cases. Call ix86_avx256_split_vector_move_misalign
16979 directly without checking mode class.
16980
16981 2016-04-20 Andrew Pinski <apinski@cavium.com>
16982 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16983
16984 PR target/64971
16985 * config/aarch64/aarch64.md (sibcall): Force call
16986 address to be DImode for ILP32.
16987 (sibcall_value): Likewise.
16988
16989 2016-04-20 H.J. Lu <hongjiu.lu@intel.com>
16990
16991 * doc/invoke.texi: Replace -skip-rax-setup with -mskip-rax-setup.
16992
16993 2016-04-20 Richard Biener <rguenther@suse.de>
16994
16995 * gimple-match.h (maybe_build_generic_op): Adjust prototype.
16996 * gimple-match-head.c (maybe_build_generic_op): Pass all ops
16997 by reference, clear op1 and op2 when GENERICizing BIT_FIELD_REF.
16998 (maybe_push_res_to_seq): Adjust.
16999 * gimple-fold.c (maybe_build_generic_op): Likewise.
17000
17001 2016-04-20 Marek Polacek <polacek@redhat.com>
17002
17003 * tree-if-conv.c (is_false_predicate): For NULL_TREE return false
17004 rather than true.
17005
17006 2016-04-20 Ilya Enkovich <ilya.enkovich@intel.com>
17007
17008 * config/i386/sse.md (vec_unpacks_lo_hi): Always
17009 use kmovw to support AVX512F target.
17010
17011 2016-04-20 Bin Cheng <bin.cheng@arm.com>
17012
17013 * tree-scalar-evolution.c (interpret_rhs_expr): Handle BIT_AND_EXPR.
17014
17015 2016-04-20 Marek Polacek <polacek@redhat.com>
17016
17017 PR tree-optimization/70725
17018 * tree-if-conv.c (is_false_predicate): New function.
17019 (predicate_mem_writes): Use it.
17020
17021 2016-04-20 Richard Biener <rguenther@suse.de>
17022
17023 PR tree-optimization/70726
17024 * tree-vect-stmts.c (vectorizable_shift): Do not use scalar
17025 shift amounts from a pattern stmt operand.
17026
17027 2016-04-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
17028
17029 PR target/70674
17030 * config/s390/s390.c (s390_restore_gprs_from_fprs): Pick the new
17031 stack_restore_from_fpr pattern when restoring r15.
17032 (s390_optimize_prologue): Strip away the memory barrier in the
17033 parallel when trying to get rid of restore insns.
17034 * config/s390/s390.md ("stack_restore_from_fpr"): New insn
17035 definition for loading the stack pointer from an FPR. Compared to
17036 the normal move insn this pattern includes a full memory barrier.
17037
17038 2016-04-19 Jakub Jelinek <jakub@redhat.com>
17039
17040 PR middle-end/70680
17041 * gimplify.c (gimplify_omp_for): Call omp_notice_variable for
17042 implicitly linear or lastprivate iterator on the outer context.
17043
17044 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17045
17046 * config/i386/i386.c (ix86_legitimate_combined_insn): Remove
17047 alignment check.
17048 * config/i386/i386.md (ssememalign): Removed.
17049 * config/i386/sse.md: Remove ssememalign attribute from patterns.
17050
17051 2016-04-19 H.J. Lu <hongjiu.lu@intel.com>
17052
17053 PR target/69201
17054 * config/i386/avx512bwintrin.h (_mm512_mask_loadu_epi16): Pass
17055 const short * to __builtin_ia32_loaddquhi512_mask.
17056 (_mm512_maskz_loadu_epi16): Likewise.
17057 (_mm512_mask_storeu_epi16): Pass short * to
17058 __builtin_ia32_storedquhi512_mask.
17059 (_mm512_mask_loadu_epi8): Pass const char * to
17060 __builtin_ia32_loaddquqi512_mask.
17061 (_mm512_maskz_loadu_epi8): Likewise.
17062 (_mm512_mask_storeu_epi8): Pass char * to
17063 __builtin_ia32_storedquqi512_mask.
17064 * config/i386/avx512fintrin.h (_mm512_loadu_pd): Pass
17065 const double * to __builtin_ia32_loadupd512_mask.
17066 (_mm512_mask_loadu_pd): Likewise.
17067 (_mm512_maskz_loadu_pd): Likewise.
17068 (_mm512_storeu_pd): Pass double * to
17069 __builtin_ia32_storeupd512_mask.
17070 (_mm512_mask_storeu_pd): Likewise.
17071 (_mm512_loadu_ps): Pass const float * to
17072 __builtin_ia32_loadups512_mask.
17073 (_mm512_mask_loadu_ps): Likewise.
17074 (_mm512_maskz_loadu_ps): Likewise.
17075 (_mm512_storeu_ps): Pass float * to
17076 __builtin_ia32_storeups512_mask.
17077 (_mm512_mask_storeu_ps): Likewise.
17078 (_mm512_mask_loadu_epi64): Pass const long long * to
17079 __builtin_ia32_loaddqudi512_mask.
17080 (_mm512_maskz_loadu_epi64): Likewise.
17081 (_mm512_mask_storeu_epi64): Pass long long *
17082 to __builtin_ia32_storedqudi512_mask.
17083 (_mm512_loadu_si512): Pass const int * to
17084 __builtin_ia32_loaddqusi512_mask.
17085 (_mm512_mask_loadu_epi32): Likewise.
17086 (_mm512_maskz_loadu_epi32): Likewise.
17087 (_mm512_storeu_si512): Pass int * to
17088 __builtin_ia32_storedqusi512_mask.
17089 (_mm512_mask_storeu_epi32): Likewise.
17090 * config/i386/avx512vlbwintrin.h (_mm256_mask_storeu_epi8): Pass
17091 char * to __builtin_ia32_storedquqi256_mask.
17092 (_mm_mask_storeu_epi8): Likewise.
17093 (_mm256_mask_loadu_epi16): Pass const short * to
17094 __builtin_ia32_loaddquhi256_mask.
17095 (_mm256_maskz_loadu_epi16): Likewise.
17096 (_mm_mask_loadu_epi16): Pass const short * to
17097 __builtin_ia32_loaddquhi128_mask.
17098 (_mm_maskz_loadu_epi16): Likewise.
17099 (_mm256_mask_loadu_epi8): Pass const char * to
17100 __builtin_ia32_loaddquqi256_mask.
17101 (_mm256_maskz_loadu_epi8): Likewise.
17102 (_mm_mask_loadu_epi8): Pass const char * to
17103 __builtin_ia32_loaddquqi128_mask.
17104 (_mm_maskz_loadu_epi8): Likewise.
17105 (_mm256_mask_storeu_epi16): Pass short * to.
17106 __builtin_ia32_storedquhi256_mask.
17107 (_mm_mask_storeu_epi16): Pass short * to.
17108 __builtin_ia32_storedquhi128_mask.
17109 * config/i386/avx512vlintrin.h (_mm256_mask_loadu_pd): Pass
17110 const double * to __builtin_ia32_loadupd256_mask.
17111 (_mm256_maskz_loadu_pd): Likewise.
17112 (_mm_mask_loadu_pd): Pass onst double * to
17113 __builtin_ia32_loadupd128_mask.
17114 (_mm_maskz_loadu_pd): Likewise.
17115 (_mm256_mask_storeu_pd): Pass double * to
17116 __builtin_ia32_storeupd256_mask.
17117 (_mm_mask_storeu_pd): Pass double * to
17118 __builtin_ia32_storeupd128_mask.
17119 (_mm256_mask_loadu_ps): Pass const float * to
17120 __builtin_ia32_loadups256_mask.
17121 (_mm256_maskz_loadu_ps): Likewise.
17122 (_mm_mask_loadu_ps): Pass const float * to
17123 __builtin_ia32_loadups128_mask.
17124 (_mm_maskz_loadu_ps): Likewise.
17125 (_mm256_mask_storeu_ps): Pass float * to
17126 __builtin_ia32_storeups256_mask.
17127 (_mm_mask_storeu_ps): ass float * to
17128 __builtin_ia32_storeups128_mask.
17129 (_mm256_mask_loadu_epi64): Pass const long long * to
17130 __builtin_ia32_loaddqudi256_mask.
17131 (_mm256_maskz_loadu_epi64): Likewise.
17132 (_mm_mask_loadu_epi64): Pass const long long * to
17133 __builtin_ia32_loaddqudi128_mask.
17134 (_mm_maskz_loadu_epi64): Likewise.
17135 (_mm256_mask_storeu_epi64): Pass long long * to
17136 __builtin_ia32_storedqudi256_mask.
17137 (_mm_mask_storeu_epi64): Pass long long * to
17138 __builtin_ia32_storedqudi128_mask.
17139 (_mm256_mask_loadu_epi32): Pass const int * to
17140 __builtin_ia32_loaddqusi256_mask.
17141 (_mm256_maskz_loadu_epi32): Likewise.
17142 (_mm_mask_loadu_epi32): Pass const int * to
17143 __builtin_ia32_loaddqusi128_mask.
17144 (_mm_maskz_loadu_epi32): Likewise.
17145 (_mm256_mask_storeu_epi32): Pass int * to
17146 __builtin_ia32_storedqusi256_mask.
17147 (_mm_mask_storeu_epi32): Pass int * to
17148 __builtin_ia32_storedqusi128_mask.
17149 * config/i386/i386-builtin-types.def (PCSHORT): New.
17150 (PINT64): Likewise.
17151 (V64QI_FTYPE_PCCHAR_V64QI_UDI): Likewise.
17152 (V32HI_FTYPE_PCSHORT_V32HI_USI): Likewise.
17153 (V32QI_FTYPE_PCCHAR_V32QI_USI): Likewise.
17154 (V16SF_FTYPE_PCFLOAT_V16SF_UHI): Likewise.
17155 (V8DF_FTYPE_PCDOUBLE_V8DF_UQI): Likewise.
17156 (V16SI_FTYPE_PCINT_V16SI_UHI): Likewise.
17157 (V16HI_FTYPE_PCSHORT_V16HI_UHI): Likewise.
17158 (V16QI_FTYPE_PCCHAR_V16QI_UHI): Likewise.
17159 (V8SF_FTYPE_PCFLOAT_V8SF_UQI): Likewise.
17160 (V8DI_FTYPE_PCINT64_V8DI_UQI): Likewise.
17161 (V8SI_FTYPE_PCINT_V8SI_UQI): Likewise.
17162 (V8HI_FTYPE_PCSHORT_V8HI_UQI): Likewise.
17163 (V4DF_FTYPE_PCDOUBLE_V4DF_UQI): Likewise.
17164 (V4SF_FTYPE_PCFLOAT_V4SF_UQI): Likewise.
17165 (V4DI_FTYPE_PCINT64_V4DI_UQI): Likewise.
17166 (V4SI_FTYPE_PCINT_V4SI_UQI): Likewise.
17167 (V2DF_FTYPE_PCDOUBLE_V2DF_UQI): Likewise.
17168 (V2DI_FTYPE_PCINT64_V2DI_UQI): Likewise.
17169 (VOID_FTYPE_PDOUBLE_V8DF_UQI): Likewise.
17170 (VOID_FTYPE_PDOUBLE_V4DF_UQI): Likewise.
17171 (VOID_FTYPE_PDOUBLE_V2DF_UQI): Likewise.
17172 (VOID_FTYPE_PFLOAT_V16SF_UHI): Likewise.
17173 (VOID_FTYPE_PFLOAT_V8SF_UQI): Likewise.
17174 (VOID_FTYPE_PFLOAT_V4SF_UQI): Likewise.
17175 (VOID_FTYPE_PINT64_V8DI_UQI): Likewise.
17176 (VOID_FTYPE_PINT64_V4DI_UQI): Likewise.
17177 (VOID_FTYPE_PINT64_V2DI_UQI): Likewise.
17178 (VOID_FTYPE_PINT_V16SI_UHI): Likewise.
17179 (VOID_FTYPE_PINT_V8SI_UHI): Likewise.
17180 (VOID_FTYPE_PINT_V4SI_UHI): Likewise.
17181 (VOID_FTYPE_PSHORT_V32HI_USI): Likewise.
17182 (VOID_FTYPE_PSHORT_V16HI_UHI): Likewise.
17183 (VOID_FTYPE_PSHORT_V8HI_UQI): Likewise.
17184 (VOID_FTYPE_PCHAR_V64QI_UDI): Likewise.
17185 (VOID_FTYPE_PCHAR_V32QI_USI): Likewise.
17186 (VOID_FTYPE_PCHAR_V16QI_UHI): Likewise.
17187 (V64QI_FTYPE_PCV64QI_V64QI_UDI): Removed.
17188 (V32HI_FTYPE_PCV32HI_V32HI_USI): Likewise.
17189 (V32QI_FTYPE_PCV32QI_V32QI_USI): Likewise.
17190 (V16HI_FTYPE_PCV16HI_V16HI_UHI): Likewise.
17191 (V16QI_FTYPE_PCV16QI_V16QI_UHI): Likewise.
17192 (V8HI_FTYPE_PCV8HI_V8HI_UQI): Likewise.
17193 (VOID_FTYPE_PV32HI_V32HI_USI): Likewise.
17194 (VOID_FTYPE_PV16HI_V16HI_UHI): Likewise.
17195 (VOID_FTYPE_PV8HI_V8HI_UQI): Likewise.
17196 (VOID_FTYPE_PV64QI_V64QI_UDI): Likewise.
17197 (VOID_FTYPE_PV32QI_V32QI_USI): Likewise.
17198 (VOID_FTYPE_PV16QI_V16QI_UHI): Likewise.
17199 * config/i386/i386.c (ix86_emit_save_reg_using_mov): Don't
17200 use UNSPEC_STOREU.
17201 (ix86_emit_restore_sse_regs_using_mov): Don't use UNSPEC_LOADU.
17202 (ix86_avx256_split_vector_move_misalign): Don't use unaligned
17203 load nor store.
17204 (ix86_expand_vector_move_misalign): Likewise.
17205 (bdesc_special_args): Use CODE_FOR_movvNXY_internal and pointer
17206 to scalar function prototype for unaligned load/store builtins.
17207 (ix86_expand_special_args_builtin): Updated.
17208 * config/i386/sse.md (UNSPEC_LOADU): Removed.
17209 (UNSPEC_STOREU): Likewise.
17210 (VI_ULOADSTORE_BW_AVX512VL): Likewise.
17211 (VI_ULOADSTORE_F_AVX512VL): Likewise.
17212 (ssescalarsize): Handle V4TI, V2TI and V1TI.
17213 (<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17214 (*<sse>_loadu<ssemodesuffix><avxsizesuffix><mask_name>): Likewise.
17215 (<sse>_storeu<ssemodesuffix><avxsizesuffix>): Likewise.
17216 (<avx512>_storeu<ssemodesuffix><avxsizesuffix>_mask): Likewise.
17217 (<sse2_avx_avx512f>_loaddqu<mode><mask_name>): Likewise.
17218 (*<sse2_avx_avx512f>_loaddqu<mode><mask_name>"): Likewise.
17219 (sse2_avx_avx512f>_storedqu<mode>): Likewise.
17220 (<avx512>_storedqu<mode>_mask): Likewise.
17221 (*sse4_2_pcmpestr_unaligned): Likewise.
17222 (*sse4_2_pcmpistr_unaligned): Likewise.
17223 (*mov<mode>_internal): Renamed to ...
17224 (mov<mode>_internal): This. Remove check of AVX and IAMCU on
17225 misaligned operand. Replace vmovdqu64 with vmovdqu<ssescalarsize>.
17226 (movsd/movhpd to movupd peephole): Don't use UNSPEC_LOADU.
17227 (movlpd/movhpd to movupd peephole): Don't use UNSPEC_STOREU.
17228
17229 2016-04-19 Richard Biener <rguenther@suse.de>
17230
17231 PR tree-optimization/70171
17232 * tree-ssa-phiprop.c: Include stor-layout.h.
17233 (phiprop_insert_phi): Handle the aggregate copy case.
17234 (propagate_with_phi): Likewise.
17235
17236 2016-04-19 Uros Bizjak <ubizjak@gmail.com>
17237
17238 * config/i386/i386.c (ix86_decompose_address): Use lowpart_subreg
17239 instead of simplify_gen_subreg (... , 0).
17240 (ix86_delegitimize_address): Ditto.
17241 (ix86_split_divmod): Ditto.
17242 (ix86_split_copysign_const): Ditto.
17243 (ix86_split_copysign_var): Ditto.
17244 (ix86_expand_args_builtin): Ditto.
17245 (ix86_expand_round_builtin): Ditto.
17246 (ix86_expand_special_args_builtin): Ditto.
17247 * config/i386/i386.md (TARGET_USE_VECTOR_FP_CONVERTS splitters): Ditto.
17248 (TARGET_SSE_PARTIAL_REG_DEPENDENCY splitters and peephole2s): Ditto.
17249 (udivmodqi4): Ditto.
17250 (absneg splitters): Ditto.
17251 (*jcc_bt<mode>_1): Ditto.
17252
17253 2016-04-19 Richard Biener <rguenther@suse.de>
17254
17255 PR tree-optimization/70724
17256 * tree-ssa-sccvn.c (scc_vn_restore_ssa_info): Split SSA info
17257 restoring out from ...
17258 (free_scc_vn): ... here.
17259 * tree-ssa-sccvn.h (scc_vn_restore_ssa_info): Declare.
17260 * tres-ssa-pre.c (pass_pre::execute): Restore SSA info before
17261 tail merging.
17262 (pass_fre::execute): Restore SSA info.
17263
17264 2016-04-19 Richard Biener <rguenther@suse.de>
17265
17266 * gimple-walk.h (struct walk_stmt_info): Add stmt member.
17267 * gimple-walk.c (walk_gimple_op): Initialize it.
17268 (walk_gimple_asm): Set wi->is_lhs before each callback invocation.
17269 * tree-inline.c (remap_gimple_op_r): Set SSA_NAME_DEF_STMT when
17270 remapping SSA names of defs.
17271 (copy_bb): Remove walk over all SSA defs and SSA_NAME_DEF_STMT
17272 adjustment.
17273
17274 2016-04-18 Vladimir Makarov <vmakarov@redhat.com>
17275
17276 PR middle-end/70689
17277 * lra-constraints.c (equiv_substition_p): New.
17278 (process_alt_operands): Use it.
17279 (swap_operands): Swap it.
17280 (curr_insn_transform): Update it.
17281
17282 2016-04-18 Michael Matz <matz@suse.de>
17283
17284 * tree.h (TYPE_ALIGN, DECL_ALIGN): Return shifted amount.
17285 (SET_TYPE_ALIGN, SET_DECL_ALIGN): New.
17286 * tree-core.h (tree_type_common.align): Use bit-field.
17287 (tree_type_common.spare): New.
17288 (tree_decl_common.off_align): Make smaller.
17289 (tree_decl_common.align): Use bit-field.
17290
17291 * expr.c (expand_expr_addr_expr_1): Use SET_TYPE_ALIGN.
17292 * omp-low.c (install_var_field): Use SET_DECL_ALIGN.
17293 (scan_sharing_clauses): Ditto.
17294 (finish_taskreg_scan): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17295 (omp_finish_file): Ditto.
17296 * stor-layout.c (do_type_align): Use SET_DECL_ALIGN.
17297 (layout_decl): Ditto.
17298 (relayout_decl): Ditto.
17299 (finalize_record_size): Use SET_TYPE_ALIGN.
17300 (finalize_type_size): Ditto.
17301 (finish_builtin_struct): Ditto.
17302 (layout_type): Ditto.
17303 (initialize_sizetypes): Ditto.
17304 * targhooks.c (std_gimplify_va_arg_expr): Use SET_TYPE_ALIGN.
17305 * tree-nested.c (insert_field_into_struct): Use SET_TYPE_ALIGN.
17306 (lookup_field_for_decl): Use SET_DECL_ALIGN.
17307 (get_chain_field): Ditto.
17308 (get_trampoline_type): Ditto.
17309 (get_nl_goto_field): Ditto.
17310 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
17311 SET_DECL_ALIGN.
17312 (unpack_ts_type_common_value_fields): Use SET_TYPE_ALIGN.
17313 * gimple-expr.c (copy_var_decl): Use SET_DECL_ALIGN.
17314 * tree.c (make_node_stat): Use SET_DECL_ALIGN and SET_TYPE_ALIGN.
17315 (build_qualified_type): Use SET_TYPE_ALIGN.
17316 (build_aligned_type, build_range_type_1): Ditto.
17317 (build_atomic_base): Ditto.
17318 (build_common_tree_nodes): Ditto.
17319 * cfgexpand.c (align_local_variable): Use SET_DECL_ALIGN.
17320 (expand_one_stack_var_at): Ditto.
17321 * coverage.c (build_var): Use SET_DECL_ALIGN.
17322 * except.c (init_eh): Ditto.
17323 * function.c (assign_parm_setup_block): Ditto.
17324 * symtab.c (increase_alignment_1): Ditto.
17325 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Ditto.
17326 * tree-vect-stmts.c (ensure_base_align): Ditto.
17327 * varasm.c (align_variable): Ditto.
17328 (assemble_variable): Ditto.
17329 (build_constant_desc): Ditto.
17330 (output_constant_def_contents): Ditto.
17331
17332 * config/arm/arm.c (arm_relayout_function): Use SET_DECL_ALIGN.
17333 * config/avr/avr.c (avr_adjust_type_node): Use SET_TYPE_ALIGN.
17334 * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Ditto.
17335 * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Ditto.
17336 * config/spu/spu.c (spu_build_builtin_va_list): Use SET_DECL_ALIGN.
17337
17338 2016-04-18 H.J. Lu <hongjiu.lu@intel.com>
17339
17340 PR target/70708
17341 * config/i386/sse.md (sse2_loadlpd): Accept load from "xm" and
17342 replace %vmovsd with "%vmovq".
17343 (vec_concatv2df): Likewise.
17344
17345 2016-04-18 Uros Bizjak <ubizjak@gmail.com>
17346
17347 * config/i386/mmx.md (*vec_extractv2sf_0): Use gen_lowpart.
17348 (*vec_extractv2si_0): Ditto.
17349 * config/i386/sse.md (*vec_extractv4sf_0): Ditto.
17350 (zero_extended_scalar_load_operand splitters): Ditto.
17351 (vec_extract splitters): Ditto.
17352 (*vec_extractv4si_0_zext): Ditto.
17353 (avx_<castmode><avxsizesuffix>_<castmode>): Use gen_lowpart
17354 and lowpart_subreg.
17355 (avx512f_<castmode><avxsizesuffix>_<castmode>): Ditto.
17356 (avx512f_<castmode><avxsizesuffix>_256<castmode>): Ditto.
17357 (*sse4_1_extractps): Use lowpart_subreg.
17358 * config/i386/i386.md (x87 floatsplitter): Use gen_lowpart.
17359
17360 2016-04-18 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
17361
17362 * doc/install.texi (Specific, i?86-*-solaris2.10): Update gas and
17363 gld requirements.
17364 (Specific, *-*-solaris2*): Update Solaris 11 bundled gcc versions.
17365 Mention Solaris 11 packaging changes.
17366 Update gas and gld requirements.
17367 Remove reference to pre-Solaris 10 bug.
17368 (Specific, sparc-sun-solaris2*): Remove reference to pre-Solaris 10
17369 systems and bugs.
17370 (Specific, sparc64-*-solaris2*): Remove reference to bootstrap
17371 with cc.
17372
17373 2016-04-17 Jan Hubicka <jh@suse.cz>
17374
17375 * tree-ssa-loop-ivopts.c (avg_loop_niter): Use also
17376 max_loop_iterations_int.
17377
17378 2016-04-18 Richard Biener <rguenther@suse.de>
17379
17380 PR tree-optimization/43434
17381 * tree-ssa-structalias.c (struct vls_data): New.
17382 (visit_loadstore): Handle all pointer-based accesses.
17383 (compute_dependence_clique): Compute a bitmap of restrict tags
17384 assigned bases and pass it to visit_loadstore.
17385
17386 2016-04-18 Matthew Wahab <matthew.wahab@arm.com>
17387
17388 PR target/70711
17389 * config/arm/bpabi.h (BE8_LINK_SPEC): Add entries for armv8+crc,
17390 armv8.1-a and armv8.1-a+crc.
17391
17392 2016-04-18 Richard Biener <rguenther@suse.de>
17393
17394 PR tree-optimization/70701
17395 * tree-ssa-sccvn.c (vn_reference_lookup_3): Resolve fully constant
17396 references after translating through a memcpy.
17397
17398 2016-04-18 Richard Biener <rguenther@suse.de>
17399
17400 * tree-ssa-pre.c (postorder, postorder_num): Make locals ...
17401 (compute_antic): ... here. For partial antic use regular
17402 postorder and scrap iteration.
17403 (compute_partial_antic_aux): Remove unused return value.
17404 (init_pre): Do not allocate postorder.
17405 (fini_pre): Do not free postorder.
17406
17407 2016-04-18 Richard Biener <rguenther@suse.de>
17408
17409 PR middle-end/37870
17410 * expmed.c (extract_bit_field_1): Remove broken case
17411 using a wider MODE_INT mode.
17412
17413 2016-04-18 Segher Boessenkool <segher@kernel.crashing.org>
17414
17415 * has-brig.c (lendian16): Don't try to use __builtin_bswap16
17416 unless compiling with at least GCC-4.8.
17417
17418 2016-04-17 Jan Hubicka <jh@suse.cz>
17419
17420 PR bootstrap/70706
17421 * graphite.c (graphite_finalize): Update call to
17422 tree_estimate_probability.
17423 * predict.h (tree_estimate_probability): Update prototype.
17424
17425 2016-04-17 Jan Hubicka <jh@suse.cz>
17426
17427 * predict.c (combine_predictions_for_bb): Add dry_run parmaeter.
17428 (tree_estimate_probability): Likewise.
17429 (pass_profile::execute): Update.
17430 (report_predictor_hitrates): New function.
17431 * profile.c (compute_branch_probabilities): Use it.
17432 * predict.h (report_predictor_hitrates): Declare.
17433
17434 2016-04-17 Jan Hubicka <jh@suse.cz>
17435
17436 PR ipa/70018
17437 * cgraph.h (cgraph_node::set_const_flag,
17438 cgraph_node::set_pure_flag): Update prototype to return bool;
17439 update comment.
17440 * cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases): Thunks
17441 of interposable symbol are interposable, too.
17442 (cgraph_set_const_flag_1): Rename to ...
17443 (set_const_flag_1): ... this one; change to self recursive function
17444 instead of call_for_symbol_thunks_and_aliases. Handle correctly
17445 clearnig the flag in all variants and also virtual thunks of const
17446 functions are pure; track if any change was done.
17447 (cgraph_node::set_const_flag): Update.
17448 (struct set_pure_flag_info): New struct.
17449 (cgraph_set_pure_flag_1): Rename to ...
17450 (set_pure_flag_1): ... this one; take set_pure_flag_info parameter
17451 rather than pointer encoded flags; track if any changes was done;
17452 handle correctly clearning flag and setting flag of aliases already
17453 declared const.
17454 (cgraph_node::set_pure_flag): Update.
17455 (cgraph_node::set_nothrow_flag): Handle correctly clearning the flag.
17456
17457 2016-04-17 Tom de Vries <tom@codesourcery.com>
17458
17459 PR other/70433
17460 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Escape
17461 backslash in label.
17462
17463 2016-04-17 Tom de Vries <tom@codesourcery.com>
17464
17465 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Classify chars
17466 '{}<> ' as escape-for-record.
17467
17468 2016-04-17 Tom de Vries <tom@codesourcery.com>
17469
17470 * pretty-print.c (pp_write_text_as_dot_label_to_stream): Simplify loop
17471 structure.
17472
17473 2016-04-17 Tom de Vries <tom@codesourcery.com>
17474
17475 PR other/70185
17476 * tree-pass.h (class opt_pass): Remove graph_dump_initialized member.
17477 * dumpfile.h (struct dump_file_info): Add graph_dump_initialized field.
17478 * dumpfile.c (dump_files): Initialize graph_dump_initialized field.
17479 * passes.c (finish_optimization_passes): Only call
17480 finish_graph_dump_file if dfi->graph_dump_initialized.
17481 (execute_function_dump, pass_init_dump_file): Use
17482 dfi->graph_dump_initialized instead of pass->graph_dump_initialized.
17483
17484 2016-04-17 Tom de Vries <tom@codesourcery.com>
17485
17486 PR tree-optimization/70256
17487 * tree-ssa-structalias.c (dump_varinfo, debug_varinfo, dump_varmap)
17488 (debug_varmap): New function.
17489
17490 2016-04-17 Tom de Vries <tom@codesourcery.com>
17491
17492 PR other/70183
17493 * passes.c (pass_manager::register_pass): Propagate pflags.
17494
17495 2016-04-17 Tom de Vries <tom@codesourcery.com>
17496
17497 PR other/68875
17498 * pass_manager.h (TERMINATE_PASS_LIST): Add pass argument.
17499 * passes.c (pass_manager::pass_manager): Declare and init p_start in
17500 INSERT_PASSES_AFTER. Add pass parameter to TERMINATE_PASS_LIST, and
17501 check if it's equal to p_start.
17502 * passes.def: Add arguments to TERMINATE_PASS_LISTs.
17503
17504 2016-04-15 Jan Hubicka <jh@suse.cz>
17505
17506 PR ipa/70018
17507 * cgraph.c (cgraph_set_const_flag_1): Only set as pure if
17508 function does not bind to current def.
17509 * ipa-pure-const.c (worse_state): Add FROM and TO parameters;
17510 handle conservatively calls to functions that does not need to bind
17511 to current def.
17512 (check_call): Update call of worse_state.
17513 (ignore_edge_for_nothrow): Update.
17514 (ignore_edge_for_pure_const): Likewise.
17515 (propagate_pure_const): Update calls to worse_state.
17516 (skip_function_for_local_pure_const): Reformat comments.
17517
17518 2016-04-15 Jan Hubicka <jh@suse.cz>
17519
17520 PR ipa/70018
17521 * cgraph.c (cgraph_node::get_availability): Add REF parameter.
17522 (cgraph_node::function_symbol): Likewise.
17523 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
17524 * cgraph.h (symtab_node::get_availabbility): Add REF parameter.
17525 (symtab_node::ultimate_alias_target): Add REF parameter.
17526 (symtab_node::binds_to_current_def_p): Declare.
17527 (symtab_node;:ultimate_alias_target_1): Add REF parameter.
17528 (cgraph_node::function_symbol): Likewise.
17529 (cgraph_node::function_or_virtual_thunk_symbol): Likewise.
17530 (cgraph_node::get_availability): Likewise.
17531 (cgraph_edge::binds_to_current_def_p): New inline function.
17532 (varpool_node::get_availability): Add REF parameter.
17533 (varpool_node::ultimate_alias_target): Likewise.
17534 * symtab.c (symtab_node::ultimate_alias_target_1): Likewise.
17535 (symtab_node::binds_to_current_def_p): Likewise.
17536 * varpool.c (varpool_node::get_availability): Likewise.
17537
17538 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
17539
17540 PR target/70662
17541 * config/i386/sse.md(define_insn "<avx512>_vec_dup<mode><mask_name>"):
17542 Fix mode size check.
17543
17544 2016-04-15 Jakub Jelinek <jakub@redhat.com>
17545
17546 * BASE-VER: Set to 7.0.0.
17547
17548 2016-04-15 Alexander Monakov <amonakov@ispras.ru>
17549
17550 * config/nvptx/nvptx.opt (moptimize): Add a period at end of help text.
17551
17552 2016-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17553
17554 * doc/invoke.texi (ARM Options): Add note on deprecation of pre-ARMv4T
17555 architecture revisions.
17556
17557 2016-04-15 Bernd Schmidt <bschmidt@redhat.com>
17558
17559 * config/i386/i386-protos.h (ix86_using_red_zone): Declare.
17560 * config/i386/i386.c (ix86_using_red_zone): No longer static.
17561 * config/i386/i386.md (stack decrement to push peepholes): Guard
17562 with !x86_using_red_zone ().
17563
17564 2016-04-15 Jakub Jelinek <jakub@redhat.com>
17565
17566 PR c++/70675
17567 * tree-pretty-print.c (do_niy): Add FLAGS argument, pass it down
17568 to dump_generic_node.
17569 (NIY): Pass also flags to do_niy.
17570
17571 2016-04-15 Thomas Schwinge <thomas@codesourcery.com>
17572
17573 * omp-low.c (simd_clone_struct_alloc, simd_clone_struct_copy)
17574 (simd_clone_vector_of_formal_parm_types)
17575 (simd_clone_clauses_extract, simd_clone_compute_base_data_type)
17576 (simd_clone_mangle, simd_clone_create)
17577 (simd_clone_adjust_return_type, create_tmp_simd_array)
17578 (simd_clone_adjust_argument_types, simd_clone_init_simd_arrays)
17579 (struct modify_stmt_info, ipa_simd_modify_stmt_ops)
17580 (ipa_simd_modify_function_body, simd_clone_linear_addend)
17581 (simd_clone_adjust, expand_simd_clones, ipa_omp_simd_clone)
17582 (pass_data_omp_simd_clone, class pass_omp_simd_clone)
17583 (pass_omp_simd_clone::gate, make_pass_omp_simd_clone): Move into...
17584 * omp-simd-clone.c: ... this new file.
17585 (simd_clone_vector_of_formal_parm_types): Make it static.
17586 * Makefile.in (OBJS): Add omp-simd-clone.o.
17587
17588 2016-04-15 Kirill Yukhin <kirill.yukhin@intel.com>
17589
17590 PR target/70662
17591 * config/i386/sse.md: Use proper memory operand modifiers.
17592
17593
17594 2016-04-15 Richard Biener <rguenther@suse.de>
17595 Alan Modra <amodra@gmail.com>
17596
17597 PR tree-optimization/70130
17598 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Detect
17599 when alignment stays not the same and no not use the realign
17600 scheme then.
17601
17602 2016-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
17603
17604 PR target/70669
17605 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add
17606 direct move handlers for KFmode. Change TFmode handlers test from
17607 FLOAT128_IEEE_P to FLOAT128_VECTOR_P.
17608
17609 2016-04-14 Jakub Jelinek <jakub@redhat.com>
17610
17611 PR c++/70594
17612 * ipa-utils.h (polymorphic_ctor_dtor_p): New prototype.
17613 * ipa-polymorphic-call.c (polymorphic_ctor_dtor_p): New function.
17614 (inlined_polymorphic_ctor_dtor_block_p): Use it.
17615 * tree-ssa-live.c (remove_unused_scope_block_p): When
17616 in_ctor_dtor_block, avoid discarding not just BLOCKs with
17617 BLOCK_ABSTRACT_ORIGIN being FUNCTION_DECL, but even when
17618 block_ultimate_origin is FUNCTION_DECL.
17619 (remove_unused_locals): If current_function_decl is
17620 polymorphic_ctor_dtor_p, pass initial true to
17621 remove_unused_scope_block_p' is_ctor_dtor_block.
17622
17623 2016-04-14 Martin Sebor <msebor@redhat.com>
17624
17625 PR c++/69517
17626 PR c++/70019
17627 PR c++/70588
17628 * doc/extend.texi (Variable Length): Revert.
17629
17630 2016-04-14 Marek Polacek <polacek@redhat.com>
17631 Jan Hubicka <hubicka@ucw.cz>
17632
17633 PR c++/70029
17634 * tree.c (verify_type): Disable the canonical type of main variant
17635 check.
17636
17637 2016-04-14 Jason Merrill <jason@redhat.com>
17638
17639 * cfgexpand.c, expr.c: Revert previous change.
17640
17641 2016-04-14 Cesar Philippidis <cesar@codesourcery.com>
17642
17643 PR middle-end/70643
17644 * omp-low.c (lower_oacc_reductions): Check for TREE_CONSTANT
17645 when building a mem ref for the incoming reduction variable.
17646
17647 2016-04-14 Richard Biener <rguenther@suse.de>
17648
17649 PR tree-optimization/70614
17650 * tree-scalar-evolution.c (analyze_evolution_in_loop): Terminate
17651 loop if the evolution dropped to chrec_dont_know.
17652 (interpret_condition_phi): Likewise.
17653
17654 2016-04-14 Richard Biener <rguenther@suse.de>
17655
17656 PR tree-optimization/70623
17657 * tree-ssa-pre.c (changed_blocks): Make global ...
17658 (compute_antic): ... local here. Move and fix worklist
17659 handling here. Do not clear EDGE_DFS_BACK or call mark_dfs_back_edges.
17660 (compute_antic_aux): Add dumping for MAX assumed succs. Remove
17661 worklist handling, dump when ANTIC_IN changed.
17662 (compute_partial_antic_aux): Remove worklist handling.
17663 (init_pre): Do not compute post dominators. Add a comment about
17664 the CFG order chosen.
17665 (fini_pre): Do not free post dominators.
17666
17667 2016-04-13 Martin Sebor <msebor@redhat.com>
17668
17669 PR c++/69517
17670 PR c++/70019
17671 PR c++/70588
17672 * doc/extend.texi (Variable Length): Document C++ specifics.
17673
17674 2016-04-13 Jakub Jelinek <jakub@redhat.com>
17675
17676 PR c++/70641
17677 * ipa-pure-const.c (pass_nothrow::execute): Call maybe_clean_eh_stmt
17678 on all recursive call stmts. Return TODO_cleanup_cfg if any dead
17679 eh edges have been purged.
17680
17681 PR c++/70594
17682 * tree-sra.c (create_access_replacement,
17683 get_replaced_param_substitute): Set DECL_NAMELESS on repl if it
17684 gets fancy name.
17685 * tree-pretty-print.c (dump_fancy_name): New function.
17686 (dump_decl_name, dump_generic_node): Use it.
17687
17688 2016-04-13 Jason Merrill <jason@redhat.com>
17689
17690 * cfgexpand.c (pass_expand::execute): Handle attribute "abi warning".
17691 * expr.c (expand_expr_real_1): Likewise.
17692
17693 2016-04-13 Ilya Enkovich <ilya.enkovich@intel.com>
17694
17695 * config/i386/i386.md (kunpckhi): Swap operands.
17696 (kunpcksi): Likewise.
17697 (kunpckdi): Likewise.
17698 * config/i386/sse.md (vec_pack_trunc_qi): Likewise.
17699 (vec_pack_trunc_<mode>): Likewise.
17700
17701 2016-04-13 Jakub Jelinek <jakub@redhat.com>
17702
17703 PR debug/70628
17704 * explow.c (convert_memory_address_addr_space_1): Formatting fix.
17705
17706 PR middle-end/70633
17707 * gimplify.c (gimplify_init_constructor): Clear TREE_STATIC if
17708 gimplification turns some element into non-constant.
17709
17710 PR debug/70628
17711 * rtl.h (convert_memory_address_addr_space_1): New prototype.
17712 * explow.c (convert_memory_address_addr_space_1): No longer static,
17713 add NO_EMIT argument and don't call convert_modes if true, pass
17714 it down recursively, remove break after return.
17715 (convert_memory_address_addr_space): Adjust caller.
17716 * simplify-rtx.c (simplify_unary_operation_1): Call
17717 convert_memory_address_addr_space_1 instead of convert_memory_address,
17718 if it returns NULL, don't simplify.
17719
17720 2016-04-12 Eric Botcazou <ebotcazou@adacore.com>
17721
17722 PR target/70630
17723 * config/sparc/sparc.c (sparc_compute_frame_size): Add parentheses.
17724
17725 2016-04-12 Jakub Jelinek <jakub@redhat.com>
17726
17727 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17728 Bump the upper SIMDLEN limits, so that if the return type or
17729 characteristic type if the return type is void can be passed in
17730 all available SSE2/AVX/AVX2/AVX512-F registers, the SIMDLEN is
17731 allowed.
17732
17733 2016-04-12 Michael Meissner <meissner@linux.vnet.ibm.com>
17734
17735 PR target/70640
17736 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2_internal):
17737 Do not use "=" constraint on an input constraint.
17738 (ieee_128bit_vsx_abs<mode>2_internal): Likewise.
17739 (ieee_128bit_vsx_nabs<mode>2_internal): Likewise.
17740 (ieee_128bit_vsx_nabs<mode>2): Correct splitter so that it
17741 generates (neg (abs ...)) instead of (abs ...).
17742
17743 2016-04-12 Jakub Jelinek <jakub@redhat.com>
17744
17745 PR rtl-optimization/70596
17746 * lra-spills.c (spill_pseudos): Don't delete debug insns, instead
17747 just invalidate LRA data and reset them. Adjust dump wording.
17748
17749 2016-04-12 Martin Liska <mliska@suse.cz>
17750
17751 Revert
17752 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
17753
17754 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
17755 estimates here.
17756 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
17757 max_loop_iterations_int.
17758 (tree_unswitch_outer_loop): Likewise.
17759 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
17760 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
17761
17762 2016-04-12 Tom de Vries <tom@codesourcery.com>
17763
17764 PR tree-optimization/68756
17765 * graphite-isl-ast-to-gimple.c (copy_cond_phi_args): Use new_expr
17766 instead of new_name.
17767
17768 2016-04-12 Jakub Jelinek <jakub@redhat.com>
17769
17770 PR tree-optimization/70602
17771 * tree-sra.c (generate_subtree_copies): Don't write anything into
17772 constant pool decls.
17773
17774 * omp-low.c (lower_omp_target): Use GOMP_MAP_FIRSTPRIVATE_INT
17775 regardless whether there are depend clauses or not.
17776
17777 2016-04-11 Michael Meissner <meissner@linux.vnet.ibm.com>
17778
17779 PR target/70381
17780 * config/rs6000/rs6000.c (rs6000_opt_masks): Disable using the
17781 target attribute and pragma from changing the -mfloat128
17782 and -mfloat128-hardware options.
17783
17784 * doc/extend.texi (Additional Floating Types): Document PowerPC
17785 __float128 restrictions.
17786
17787 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17788
17789 PR target/70133
17790 * config/aarch64/driver-aarch64.c
17791 (aarch64_get_extension_string_for_isa_flags): New.
17792 (arch_extension): Rename to...
17793 (aarch64_arch_extension): ...This.
17794 (ext_to_feat_string): Rename to...
17795 (aarch64_extensions): ...This.
17796 (aarch64_core_data): Keep track of architecture extension flags.
17797 (cpu_data): Rename to...
17798 (aarch64_cpu_data): ...This.
17799 (aarch64_arch_driver_info): Keep track of architecture extension
17800 flags.
17801 (get_arch_name_from_id): Rename to...
17802 (get_arch_from_id): ...This, change return type.
17803 (host_detect_local_cpu): Update and reformat for renames, handle
17804 extensions through common infrastructure.
17805
17806 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17807
17808 PR target/70133
17809 * config/aarch64/aarch64-common.c (aarch64_option_extension): Keep
17810 track of a canonical flag name.
17811 (all_extensions): Likewise.
17812 (arch_to_arch_name): Also track extension flags enabled by the arch.
17813 (all_architectures): Likewise.
17814 (aarch64_parse_extension): Move to here.
17815 (aarch64_get_extension_string_for_isa_flags): Take a new argument,
17816 rework.
17817 (aarch64_rewrite_selected_cpu): Update for above change.
17818 * config/aarch64/aarch64-option-extensions.def: Rework the way flags
17819 are handled, such that the single explicit value enabled by an
17820 extension is kept seperate from the implicit values it also enables.
17821 * config/aarch64/aarch64-protos.h (aarch64_parse_opt_result): Move
17822 to here.
17823 (aarch64_parse_extension): New.
17824 * config/aarch64/aarch64.c (aarch64_parse_opt_result): Move from
17825 here to config/aarch64/aarch64-protos.h.
17826 (aarch64_parse_extension): Move from here to
17827 common/config/aarch64/aarch64-common.c.
17828 (aarch64_option_print): Update.
17829 (aarch64_declare_function_name): Likewise.
17830 (aarch64_start_file): Likewise.
17831 * config/aarch64/driver-aarch64.c (arch_extension): Keep track of
17832 the canonical flag for extensions.
17833 * config.gcc (aarch64*-*-*): Extend regex for capturing extension
17834 flags.
17835
17836 2016-04-11 James Greenhalgh <james.greenhalgh@arm.com>
17837
17838 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH8_1): Also add
17839 AARCH64_FL_CRC.
17840
17841 2016-04-09 Tom de Vries <tom@codesourcery.com>
17842
17843 PR tree-optimization/68953
17844 * graphite-sese-to-poly.c (pdr_add_memory_accesses): Order accesses from
17845 first to last subscript.
17846
17847 2016-04-09 Jakub Jelinek <jakub@redhat.com>
17848
17849 PR tree-optimization/70586
17850 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Return false
17851 for any calls.
17852
17853 2016-04-08 Cesar Philippidis <cesar@codesourcery.com>
17854
17855 PR lto/70289
17856 PR ipa/70348
17857 PR tree-optimization/70373
17858 PR middle-end/70533
17859 PR middle-end/70534
17860 PR middle-end/70535
17861 * gimplify.c (gimplify_adjust_omp_clauses): Add or adjust data
17862 clauses for acc parallel reductions as necessary. Error on those
17863 that are private.
17864 * omp-low.c (scan_sharing_clauses): Don't install variables which
17865 are used in acc parallel reductions.
17866 (lower_rec_input_clauses): Remove dead code.
17867 (lower_oacc_reductions): Add support for reference reductions.
17868 (lower_reduction_clauses): Remove dead code.
17869 (lower_omp_target): Don't remap variables appearing in acc parallel
17870 reductions.
17871 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): New macro.
17872
17873 2016-04-08 Jakub Jelinek <jakub@redhat.com>
17874
17875 PR middle-end/70593
17876 * tree-ssa-coalesce.c (build_ssa_conflict_graph): For stmt
17877 with multiple SSA_NAME defs, force the outputs other than first
17878 to be live before calling live_track_process_def on each output.
17879
17880 PR rtl-optimization/70574
17881 * fwprop.c (forward_propagate_and_simplify): Don't add
17882 REG_EQUAL note if DF_REF_REG (use) is a paradoxical subreg.
17883 (try_fwprop_subst): Don't add REG_EQUAL note if there are any
17884 paradoxical subregs within *loc.
17885
17886 2016-04-08 Thomas Schwinge <thomas@codesourcery.com>
17887
17888 * config/arc/arc.h (LINK_COMMAND_SPEC): Use gt to ignore
17889 -ftree-parallelize-loops={0,1}.
17890 * config/darwin.h (LINK_COMMAND_SPEC_A): Likewise.
17891 * config/i386/mingw32.h (GOMP_SELF_SPECS): Likewise.
17892 * config/ia64/hpux.h (LIB_SPEC): Likewise.
17893 * config/pa/pa-hpux11.h (LIB_SPEC): Likewise.
17894 * config/pa/pa64-hpux.h (LIB_SPEC): Likewise.
17895
17896 2016-04-08 Maxim Ostapenko <m.ostapenko@samsung.com>
17897
17898 PR sanitizer/70541
17899 * asan.c (instrument_derefs): If we get unknown location, extract it
17900 with EXPR_LOCATION.
17901 (maybe_instrument_call): Instrument gimple_call's arguments if needed.
17902
17903 2016-04-08 Tom de Vries <tom@codesourcery.com>
17904
17905 * omp-low.c (lower_omp_target): Set TREE_NO_WARNING for oacc
17906 implicit firstprivate clause.
17907
17908 2016-04-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17909
17910 PR target/70566
17911 * config/arm/thumb2.md (tst + branch-> lsls + branch
17912 peephole below *orsi_not_shiftsi_si): Require that condition
17913 register is dead after the peephole.
17914 (second peephole after the above): Likewise.
17915
17916 2016-04-08 Alan Modra <amodra@gmail.com>
17917
17918 PR target/70117
17919 * builtins.c (fold_builtin_classify): For IBM extended precision,
17920 look at just the high-order double to test for NaN.
17921 (fold_builtin_interclass_mathfn): Similarly for Inf. For isnormal
17922 test just the high double for Inf but both doubles for subnormal
17923 limit.
17924
17925 2016-04-07 Jakub Jelinek <jakub@redhat.com>
17926
17927 * cgraph.h (struct cgraph_simd_clone): Add mask_mode field.
17928 * omp-low.c (simd_clone_init_simd_arrays, simd_clone_adjust): Handle
17929 node->simdclone->mask_mode != VOIDmode masks.
17930 (simd_clone_adjust_argument_types): Likewise. Move sc var definition
17931 earlier, use it instead of node->simdclone.
17932 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17933 Set clonei->mask_mode.
17934
17935 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
17936
17937 PR c/70436
17938 * parser.c (cp_parser_iteration_statement): New parameter IF_P.
17939 Pass it through to cp_parser_already_scoped_statement.
17940 (cp_parser_already_scoped_statement): New parameter IF_P. Pass
17941 it through to cp_parser_statement.
17942 (cp_parser_statement): Pass IF_P through to
17943 cp_parser_iteration_statement.
17944 (cp_parser_pragma): Adjust call to
17945 cp_parser_iteration_statement.
17946
17947 2016-04-06 Patrick Palka <ppalka@gcc.gnu.org>
17948
17949 PR c/70436
17950 * gimplify.c (gimplify_omp_ordered): Add explicit braces to
17951 resolve a future -Wparentheses warning.
17952 * omp-low.c (scan_sharing_clauses): Likewise.
17953 * tree-parloops.c (eliminate_local_variables): Likewise.
17954
17955 2016-04-06 Vladimir Makarov <vmakarov@redhat.com>
17956
17957 PR rtl-optimization/70398
17958 * lra-constraints.c (process_address_1): Check zero scale and code
17959 for reloading with zero scale.
17960
17961 2016-04-06 Uros Bizjak <ubizjak@gmail.com>
17962
17963 * config/i386/sse.md (shuffletype): Add V32HI and V4TI modes.
17964 (ssescalarsize): Add V8SF, V4SF, V4DF and V2DF modes.
17965
17966 2016-04-06 Jakub Jelinek <jakub@redhat.com>
17967
17968 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
17969 Add support for AVX512F clones, include them by default for
17970 exported OpenMP declare simd functions. For AVX2 allow simdlen 32
17971 and use it if charasteric type is 8-bit, for AVX512F allow simdlen
17972 up to 128.
17973
17974 PR middle-end/70550
17975 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT): Define.
17976 * gimplify.c (gimplify_adjust_omp_clauses_1): Set it for implicit
17977 firstprivate clauses.
17978 * omp-low.c (lower_send_clauses): Set TREE_NO_WARNING for
17979 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT !by_ref vars in task contexts.
17980 (lower_omp_target): Set TREE_NO_WARNING for
17981 non-addressable possibly uninitialized vars which are copied into
17982 addressable temporaries or copied for GOMP_MAP_FIRSTPRIVATE_INT.
17983
17984 2016-04-05 John David Anglin <danglin@gcc.gnu.org>
17985
17986 * config/pa/predicates.md (integer_store_memory_operand): Accept
17987 REG+D operands with a large offset when reload_in_progress is true.
17988 (floating_point_store_memory_operand): Likewise.
17989
17990 2016-04-05 Jakub Jelinek <jakub@redhat.com>
17991
17992 PR c++/70336
17993 * match.pd (nested int casts): Limit to GIMPLE.
17994
17995 2016-04-05 Jan Hubicka <hubicka@ucw.cz>
17996
17997 PR ipa/66223
17998 * ipa-devirt.c (maybe_record_node): Fix comment; use
17999 SANITIZE_UNREACHABLE instead of SANITIZE_UNDEFINED.
18000
18001 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18002
18003 PR rtl-optimization/70542
18004 * ree.c (add_removable_extension): For VECTOR_MODE_P punt
18005 if there are any uses other than insn or debug insns.
18006
18007 2016-04-05 Marc Glisse <marc.glisse@inria.fr>
18008 Jakub Jelinek <jakub@redhat.com>
18009
18010 PR tree-optimization/70509
18011 * simplify-rtx.c (simplify_binary_operation_1) <case VEC_SELECT>:
18012 Shift HOST_WIDE_INT_1U instead of 1.
18013
18014 2016-04-05 Zdenek Sojka <zsojka@seznam.cz>
18015
18016 PR tree-optimization/70509
18017 * tree-ssa-forwprop.c (simplify_bitfield_ref): Use bitsize_int instead
18018 of the vector base type for index.
18019
18020 2016-04-05 Uros Bizjak <ubizjak@gmail.com>
18021
18022 PR target/70510
18023 * config/i386/sse.md (iptr): Add V64QI, V32HI, V16SI and V8DI modes.
18024
18025 2016-04-05 Richard Biener <rguenther@suse.de>
18026
18027 PR tree-optimization/70526
18028 * tree-sra.c (build_ref_for_offset): Use prev_base to
18029 extract the alias pointer type.
18030
18031 2016-04-05 Richard Biener <rguenther@suse.de>
18032
18033 * dse.c (struct store_info): Remove alias_set member.
18034 (struct read_info_type): Likewise.
18035 (clear_alias_group, clear_alias_mode_table, clear_alias_mode_holder,
18036 spill_deleted, clear_alias_set_lookup): Remove.
18037 (get_group_info): Remove dead base == NULL_RTX case.
18038 (dse_step0): Remove initialization of removed variables.
18039 (delete_dead_store_insn): Reomve alias set dumping.
18040 (free_read_records): Remove alias_set handling.
18041 (canon_address): Remove alias_set_out parameter.
18042 (record_store): Remove spill_alias_set, it's always zero.
18043 (check_mem_read_rtx): Likewise.
18044 (dse_step2): Rename from ...
18045 (dse_step2_nospill): ... this. Adjust.
18046 (scan_stores): Rename from ...
18047 (scan_stores_nospill): ... this.
18048 (scan_reads): Rename from ...
18049 (scan_reads_nospill): ... this.
18050 (scan_stores_spill, scan_reads_spill): Remove.
18051 (dse_step3_scan): Remove for_spills argument which is always false.
18052 (dse_step3): Likewise.
18053 (dse_step5): Rename from ...
18054 (dse_step5_nospill): ... this. Remove alias_set handling.
18055 (rest_of_handle_dse): Adjust.
18056
18057 2016-04-05 Jakub Jelinek <jakub@redhat.com>
18058
18059 PR target/70525
18060 * config/i386/sse.md (*andnot<mode>3): Simplify assertions.
18061 Use vpandn<ssemodesuffix> for V16SI/V8DImode, vpandnq for
18062 V32HI/V64QImode, don't use <mask_operand3_1>, fix up formatting.
18063 (*andnot<mode>3_mask): Remove insn with VI12_AVX512VL iterator.
18064
18065 2016-04-05 Richard Biener <rguenther@suse.de>
18066
18067 PR middle-end/70499
18068 * gimplify-me.c (gimple_regimplify_operands): Do not rewrite
18069 non-register type temporaries into SSA.
18070
18071 2016-04-04 Jan Hubicka <hubicka@ucw.cz>
18072
18073 PR ipa/66223
18074 * ipa-devirt.c (maybe_record_node): Do not optimize cxa_pure_virtual
18075 calls when sanitizing.
18076 (possible_polymorphic_call_target_p): Fix formatting.
18077
18078 2016-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
18079 Jakub Jelinek <jakub@redhat.com>
18080
18081 PR middle-end/70457
18082 * tree-inline.c (estimate_num_insn): Use gimple_call_builtin_p
18083 to ensure a call statement is compatible with a built-in's
18084 prototype.
18085 * tree-ssa-math-opts.c (pass_optimize_windening_mul::execute):
18086 Likewise.
18087
18088 2016-04-04 Richard Biener <rguenther@suse.de>
18089
18090 PR rtl-optimization/70484
18091 * rtl.h (canon_output_dependence): Declare.
18092 * alias.c (canon_output_dependence): New function.
18093 * dse.c (record_store): Use canon_output_dependence rather
18094 than canon_true_dependence.
18095
18096 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18097
18098 PR ipa/68881
18099 * cgraph.h (symtab_node::copy_visibility_from): New function.
18100 * symtab.c (symtab_node::copy_visibility_from): New function.
18101 * ipa-visibility.c (optimize_weakref): New function.
18102 (function_and_variable_visibility): Use it.
18103
18104 2016-04-04 Martin Liska <mliska@suse.cz>
18105
18106 PR hsa/70402
18107 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Guard index
18108 value that is really in range handled by SBR instruction.
18109 * hsa-brig.c (emit_switch_insn): Do not emit unconditional jump.
18110 * hsa-dump.c (dump_hsa_insn_1): Do not dump default BB.
18111 * hsa.h (hsa_insn_sbr::m_default_bb): Remove field.
18112
18113 2016-04-03 Oleg Endo <olegendo@gcc.gnu.org>
18114
18115 PR target/70416
18116 PR target/67391
18117 * config/sh/sh.md (*addsi3): Allow pattern when reload_in_progress is
18118 set, but not for SP_REG operands.
18119
18120 2016-04-02 Martin Sebor <msebor@redhat.com>
18121
18122 PR c++/67376
18123 * fold-const.c (maybe_nonzero_address): New function.
18124 (fold_comparison): Call it. Fold equality and relational
18125 expressions involving null pointers.
18126 (tree_single_nonzero_warnv_p): Call maybe_nonzero_address.
18127
18128 2016-03-31 Evandro Menezes <e.menezes@samsung.com>
18129
18130 Fix the predicate "aarch64_simd_reg_or_zero" to correctly validate
18131 the "Y" constraint (scalar FP 0.0 immediate).
18132
18133 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero):
18134 Add the "const_double" to the list of operand constraints.
18135
18136 2016-04-01 Jakub Jelinek <jakub@redhat.com>
18137
18138 PR rtl-optimization/70467
18139 * config/i386/i386.md (*add<dwi>3_doubleword, *sub<dwi>3_doubleword):
18140 If low word of the last operand is 0, just emit addition/subtraction
18141 for the high word.
18142
18143 2016-04-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
18144
18145 PR target/70404
18146 * config/s390/s390.c (s390_expand_insv): Check for everything
18147 constant instead of just VOIDmode stuff.
18148
18149 2016-04-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18150
18151 PR target/70496
18152 * config/arm/arm.h (ASM_APP_OFF): Handle TARGET_ARM and TARGET_THUMB.
18153
18154 2016-04-01 Nathan Sidwell <nathan@acm.org>
18155
18156 * tree.def (TRY_CATCH_EXPR): Correct documentation.
18157
18158 2016-03-31 Vladimir Makarov <vmakarov@redhat.com>
18159
18160 PR rtl-optimization/70461
18161 * ira-color.c (allocno_copy_cost_saving): Use allocno class if it
18162 is necessary.
18163
18164 2016-03-31 Martin Liska <mliska@suse.cz>
18165
18166 PR hsa/70399
18167 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Emit either
18168 a tree value or an immediate integer value to a buffer
18169 that is eventually copied to a BRIG section.
18170 (emit_immediate_operand): Call the function here.
18171 * hsa-dump.c (dump_hsa_immed): Remove checking assert.
18172 * hsa-gen.c (hsa_op_immed::hsa_op_immed): Remove initialization
18173 of class' fields that are removed.
18174 (hsa_op_immed::~hsa_op_immed): Remove deinitialization.
18175 * hsa.h (class hsa_op_immed): Remove m_brig_repr and
18176 m_brig_repr_size fields.
18177
18178 2016-03-31 Martin Liska <mliska@suse.cz>
18179
18180 PR hsa/70391
18181 * hsa-gen.c (hsa_function_representation::update_dominance): New
18182 function.
18183 (convert_addr_to_flat_segment): Likewise.
18184 (gen_hsa_memory_set): New alignment argument.
18185 (gen_hsa_ctor_assignment): Likewise.
18186 (gen_hsa_insns_for_single_assignment): Provide alignment
18187 to gen_hsa_ctor_assignment.
18188 (gen_hsa_insns_for_direct_call): Add new argument.
18189 (expand_lhs_of_string_op): New function.
18190 (expand_string_operation_builtin): Likewise.
18191 (expand_memory_copy): New function.
18192 (expand_memory_set): New function.
18193 (gen_hsa_insns_for_call): Use HOST_WIDE_INT.
18194 (convert_switch_statements): Change signature.
18195 (generate_hsa): Use a return value of the function.
18196 (pass_gen_hsail::execute): Do not call
18197 convert_switch_statements here.
18198 * hsa-regalloc.c (hsa_regalloc): Call update_dominance.
18199 * hsa.h (hsa_function_representation::m_modified_cfg): New flag.
18200 (hsa_function_representation::update_dominance): New function.
18201
18202 2016-03-31 Martin Liska <mliska@suse.cz>
18203
18204 PR hsa/70391
18205 * hsa-brig.c (emit_directive_variable): Emit alignment
18206 according to hsa_symbol::m_align.
18207 * hsa-dump.c (hsa_byte_alignment): Move the function to another file.
18208 (dump_hsa_symbol): Dump alignment of HSA symbols.
18209 * hsa-gen.c (get_symbol_for_decl): Set-up alignment of a symbol.
18210 (gen_hsa_addr_with_align): New function.
18211 (hsa_bitmemref_alignment): Use newly added function.
18212 (gen_hsa_insns_for_load): Likewise.
18213 (gen_hsa_insns_for_store): Likewise.
18214 (gen_hsa_memory_copy): New argument added.
18215 (gen_hsa_insns_for_single_assignment): Respect
18216 alignment for assignments processed via gen_hsa_memory_copy.
18217 (gen_hsa_insns_for_direct_call): Likewise.
18218 (gen_hsa_insns_for_return): Likewise.
18219 (gen_function_def_parameters): Set default alignment.
18220 * hsa.c (hsa_object_alignment): New function.
18221 (hsa_byte_alignment): Pasted function.
18222 * hsa.h (hsa_symbol::m_align): New field.
18223
18224 2016-03-31 Bin Cheng <bin.cheng@arm.com>
18225
18226 * tree-ssa-loop-ivopts.c (get_computation_cost_at): Initialize
18227 scratch field for goto case.
18228
18229 2016-03-31 James Greenhalgh <james.greenhalgh@arm.com>
18230
18231 * config/arm/linux-elf.h (ASM_OUTPUT_DEF): Delete.
18232
18233 2016-03-31 Ilya Enkovich <enkovich.gnu@gmail.com>
18234
18235 PR target/70442
18236 * config/i386/i386.c (scalar_chain::convert_op): Fix description.
18237 (scalar_chain::convert_insn): Call convert_op for reg
18238 moves to handle undefined registers.
18239
18240 2016-03-31 Nathan Sidwell <nathan@acm.org>
18241
18242 PR c++/70393
18243 * varasm.c (output_constructor_regular_field): Flush bitfield earlier.
18244 Assert we don't want to move backwards.
18245
18246 2016-03-31 Kirill Yukhin <kirill.yukhin@intel.com>
18247
18248 PR target/70453
18249 * config/i386/sse.md (define_mode_attr shuffletype): Fix typo.
18250
18251 2016-03-31 Jakub Jelinek <jakub@redhat.com>
18252
18253 PR rtl-optimization/70460
18254 * ira.c (indirect_jump_optimize): Don't substitute LABEL_REF
18255 with operand from REG_LABEL_OPERAND, instead substitute
18256 SET_SRC or REG_EQUAL note content if it is a LABEL_REF.
18257 Don't do anything for REG_NON_LOCAL_GOTO jumps.
18258
18259 2016-03-31 Martin Liska <mliska@suse.cz>
18260
18261 * passes.c (execute_one_pass): Do not call
18262 todo_after for a discarded function.
18263
18264 2016-03-31 Bin Cheng <bin.cheng@arm.com>
18265
18266 * tree-ssa-loop-ivopts.c (struct comp_cost): New scrach field.
18267 (no_cost, infinite_cost): Initialize the new field.
18268 (get_computation_cost_at): Record setup cost.
18269 (determine_use_iv_cost_address): Skip cost computation for sub
18270 uses if we can estimate it without losing accuracy.
18271
18272 2016-03-30 Jan Hubicka <hubicka@ucw.cz>
18273
18274 * tree-ssa-loop-niter.c (idx_infer_loop_bounds): We can't get realistic
18275 estimates here.
18276 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Use also
18277 max_loop_iterations_int.
18278 (tree_unswitch_outer_loop): Likewise.
18279 * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise.
18280 * tree-vect-loop.c (vect_analyze_loop_2): Likewise.
18281
18282 2016-03-30 Richard Biener <rguenther@suse.de>
18283
18284 PR middle-end/70450
18285 * fold-const.c (extract_muldiv_1): Fix thinko in wide_int::from usage.
18286
18287 2016-03-30 Jakub Jelinek <jakub@redhat.com>
18288
18289 PR target/70421
18290 * config/i386/i386.c (ix86_expand_vector_set): Fix up argument order
18291 in gen_blendm expander.
18292
18293 2016-03-30 Nick Clifton <nickc@redhat.com>
18294
18295 PR target/62254
18296 * config/arm/arm.c (arm_reload_out_hi): Add code to handle the
18297 case where we are already provided with an SImode SUBREG.
18298
18299 2016-03-30 H.J. Lu <hongjiu.lu@intel.com>
18300
18301 PR target/70439
18302 * config/i386/i386.c (ix86_expand_epilogue): Properly check
18303 conflict between DRAP register and __builtin_eh_return.
18304
18305 2016-03-30 Michael Matz <matz@suse.de>
18306 Richard Biener <rguenther@suse.de>
18307
18308 PR ipa/12392
18309 * ipa-polymorphic-call.c (struct type_change_info): Change
18310 speculative to an unsigned allowing to limit the work we do.
18311 (csftc_abort_walking_p): New inline function..
18312 (check_stmt_for_type_change): Limit the number of may-defs
18313 skipped for speculative devirtualization to
18314 max-speculative-devirt-maydefs.
18315 * params.def (max-speculative-devirt-maydefs): New param.
18316 * doc/invoke.texi (--param max-speculative-devirt-maydefs): Document.
18317
18318 2016-03-30 Mike Stump <mrs@gcc.gnu.org>
18319
18320 PR target/63890
18321 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Use when profiling
18322 and TARGET_MACHO.
18323
18324 2016-03-30 Patrick Palka <ppalka@gcc.gnu.org>
18325
18326 PR tree-optimization/59124
18327 * tree-vrp.c (register_edge_assert_for_2): For NAME != CST1
18328 where NAME = A +- CST2 add the assertion A != (CST1 -+ CST2).
18329
18330 2016-03-29 Jeff Law <law@redhat.com>
18331
18332 * tree-ssa-coalesce.c (struct ssa_conflicts): Fix typo in comment.
18333
18334 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
18335
18336 * tree-ssa-loop-ivcanon.c (try_peel_loop): Change type of peel
18337 to HOST_WIDE_INT.
18338
18339 2016-03-29 Thomas Schwinge <thomas@codesourcery.com>
18340
18341 * config/gnu.h (CPP_SPEC, LIB_SPEC): Don't override.
18342 * config/i386/gnu.h (STARTFILE_SPEC): Use gcrt1.o instead of
18343 gcrt0.o if linking dynamically.
18344
18345 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
18346
18347 PR ipa/70283
18348 * ipa-devirt.c (methods_equal_p): New function.
18349 (compare_virtual_tables): Use it.
18350 * cgraph.h (symbol_table::symbol_suffix_separator): Declare.
18351 * cgraphclones.c (clone_function_name_1): Use
18352 symbol_table::symbol_suffix_separator.
18353 * coverage.c (build_var): Likewise.
18354 * symtab.c (symbol_table::symbol_suffix_separator): New.
18355
18356 2016-03-29 Jakub Jelinek <jakub@redhat.com>
18357
18358 PR rtl-optimization/70429
18359 * combine.c (simplify_shift_const_1): For ASHIFTRT don't optimize
18360 (cst1 >> count) >> cst2 into (cst1 >> cst2) >> count if
18361 mode != result_mode.
18362
18363 PR c++/70353
18364 * tree-inline.c (remap_decls): Don't add_local_decl if cfun is null.
18365
18366 PR tree-optimization/70405
18367 * ssa-iterators.h (num_imm_uses): Add missing braces.
18368
18369 2016-03-29 Vladimir Makarov <vmakarov@redhat.com>
18370
18371 PR rtl-optimization/68695
18372 * ira-color.c (allocno_copy_cost_saving): New.
18373 (improve_allocation): Use it.
18374
18375 2016-03-29 Richard Henderson <rth@redhat.com>
18376
18377 PR middle-end/70355
18378 * lower-subreg.c (simplify_subreg_concatn): Reject paradoxical subregs.
18379
18380 2016-03-29 Richard Biener <rguenther@suse.de>
18381
18382 PR middle-end/70424
18383 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Always
18384 use alignment returned by get_pointer_alignment_1 if it is
18385 bigger than BITS_PER_UNIT.
18386 * builtins.c (get_pointer_alignment_1): Do not return true
18387 for alignment extracted from SSA info.
18388
18389 2016-03-28 James Bowman <james.bowman@ftdichip.com>
18390
18391 * config/ft32/ft32.opt (mnodiv): New.
18392 * config/ft32/ft32.md (*divsi3, *modsi3): Qualify with TARGET_NODIV.
18393 * doc/invoke.texi (FT32 Options -mnodiv): New.
18394
18395 2016-03-28 Kirill Yukhin <kirill.yukhin@intel.com>
18396
18397 PR target/70406
18398 * config/i386/i386.md (define_split, andn): Fix modes.
18399
18400 2016-03-26 Richard Biener <rguenther@suse.de>
18401 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18402
18403 PR ipa/70366
18404 * ipa-inline-transform.c (inline_call): Pass opts_for_fn (to->decl)
18405 instead of
18406 TREE_OPTIMIZATION (DECL_FUNCTION_SPECIFIC_OPTIMIZATION (to->decl))
18407 as 2nd argument to cl_optimization_restore().
18408
18409 2016-03-25 Richard Henderson <rth@redhat.com>
18410
18411 PR target/70120
18412 * config/aarch64/aarch64.c (aarch64_asm_output_pool_epilogue): New.
18413 * config/aarch64/aarch64-protos.h: Declare it.
18414 * config/aarch64/aarch64.h (ASM_OUTPUT_POOL_EPILOGUE): New.
18415
18416 2016-03-25 Alan Modra <amodra@gmail.com>
18417
18418 PR target/70052
18419 * config/rs6000/constraints.md (j): Simplify.
18420 * config/rs6000/predicates.md (easy_fp_constant): Exclude
18421 decimal float 0.D.
18422 * config/rs6000/rs6000.md (zero_fp): New mode_attr.
18423 (mov<mode>_hardfloat, mov<mode>_hardfloat32, mov<mode>_hardfloat64,
18424 mov<mode>_64bit_dm, mov<mode>_32bit): Use zero_fp in place of j
18425 in all constraint alternatives.
18426 (movtd_64bit_nodm): Delete "j" constraint alternative.
18427
18428 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
18429
18430 * tree-ssa-propagate.c: Enhance docs for
18431 SSA_PROP_NOT_INTERESTING.
18432
18433 2016-03-24 Aldy Hernandez <aldyh@redhat.com>
18434
18435 * doc/extend.texi: Fix typo in documentation to pure attribute.
18436
18437 2016-03-24 John David Anglin <danglin@gcc.gnu.org>
18438
18439 PR target/70319
18440 * config/pa/pa.md (bswapdi2): Use a scratch register.
18441
18442 2016-03-24 Richard Henderson <rth@redhat.com>
18443
18444 PR middle-end/69845
18445 * fold-const.c (extract_muldiv_1): Correct test for multiplication
18446 overflow.
18447
18448 2016-03-24 Uros Bizjak <ubizjak@gmail.com>
18449
18450 * config/i386/i386.md (*anddi3_doubleword): Generate AND insn
18451 using ix86_expand_binary_operator instead of gen_andsi3.
18452
18453 2016-03-24 Richard Biener <rguenther@suse.de>
18454
18455 PR tree-optimization/70396
18456 * tree-vect-stmts.c (vectorizable_comparison): Use
18457 get_vectype_for_scalar_type.
18458
18459 2016-03-24 Richard Biener <rguenther@suse.de>
18460
18461 PR middle-end/70370
18462 * gimplify.c (gimplify_asm_expr): Handle !allows_mem outputs
18463 with register bases.
18464
18465 2016-03-24 Richard Biener <rguenther@suse.de>
18466
18467 PR tree-optimization/70372
18468 * tree-ssa-reassoc.c (eliminate_plus_minus_pair): Use
18469 build_all_ones_cst to also handle vector types correctly.
18470
18471 2016-03-23 Michael Meissner <meissner@linux.vnet.ibm.com>
18472
18473 PR target/70381
18474 * config/rs6000/rs6000-cpus.def (ISA_2_6_MASKS_SERVER): Do not set
18475 -mfloat128 here.
18476
18477 2016-03-23 Marek Polacek <polacek@redhat.com>
18478
18479 PR c++/69884
18480 * doc/invoke.texi: Document -Wignored-attributes.
18481
18482 2016-03-23 Bin Cheng <bin.cheng@arm.com>
18483
18484 PR tree-optimization/69042
18485 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND): Increase the
18486 parameter from 30 to 40.
18487
18488 2016-03-23 Bin Cheng <bin.cheng@arm.com>
18489
18490 PR tree-optimization/69042
18491 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Add IV cand
18492 for use with constant offset stripped in base.
18493
18494 2016-03-23 Richard Biener <rguenther@suse.de>
18495
18496 PR middle-end/70251
18497 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Adjust
18498 mode compatibility check.
18499 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18500
18501 2016-03-23 Jeff Law <law@redhat.com>
18502
18503 PR tree-optimization/64058
18504 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field
18505 CONFLICT_COUNT.
18506 (struct ssa_conflicts): Move up earlier in the file.
18507 (conflicts_, var_map_): New static variables.
18508 (initialize_conflict_count): New function to initialize the
18509 CONFLICT_COUNT field for each conflict pair.
18510 (compare_pairs): Lazily initialize the conflict count and use it
18511 as the first tie-breaker.
18512 (sort_coalesce_list): Add new arguments conflicts, map. Initialize
18513 and wipe conflicts_ and map_ around the call to qsort. Remove
18514 special case for 2 coalesce pairs.
18515 * bitmap.c (bitmap_count_unique_bits): New function.
18516 (bitmap_count_bits_in_word): New function, extracted from
18517 bitmap_count_bits.
18518 (bitmap_count_bits): Use bitmap_count_bits_in_word.
18519 * bitmap.h (bitmap_count_unique_bits): Declare it.
18520
18521 2016-03-23 Ilya Enkovich <enkovich.gnu@gmail.com>
18522
18523 PR target/69917
18524 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Follow
18525 transparent alias chain for decl assembler name.
18526 * config/sol2.c (solaris_assemble_visibility): Likewise.
18527
18528 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18529
18530 * config/arm/arm1020e.md (1020call_op): Reduce reservation
18531 duration.
18532 (v10_fdivs): Likewise.
18533 (v10_fdivd): Likewise.
18534
18535 2016-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
18536
18537 PR driver/70132
18538 * config/arm/driver-arm.c (host_detect_local_cpu): Reorder exit logic
18539 to not call fclose twice on file.
18540
18541 2016-03-23 Jakub Jelinek <jakub@redhat.com>
18542
18543 PR tree-optimization/70354
18544 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
18545 oprnd0 is wider than oprnd1 and there is a cast from the wider
18546 type to oprnd1, mask it with the mask of the narrower type.
18547
18548 PR target/70321
18549 * config/i386/i386.md (*anddi3_doubleword, *<code>di3_doubleword):
18550 Optimize TARGET_STV splitters, if high or low word of last argument
18551 is 0 or -1.
18552
18553 2016-03-22 Jeff Law <law@redhat.com>
18554
18555 PR target/70232
18556 tree-ssa-threadbackward.c
18557 (fsm_find_control_statement_thread_paths): Correctly distinguish
18558 between old style jump threads vs FSM jump threads.
18559
18560 2016-03-22 Ilya Enkovich <enkovich.gnu@gmail.com>
18561
18562 PR target/70302
18563 * config/i386/i386.c (scalar_chain::convert_op): Support
18564 uninitialized register usage case.
18565
18566 2016-03-22 Richard Biener <rguenther@suse.de>
18567
18568 PR middle-end/70251
18569 * genmatch.c (gen_transform): Adjust last parameter to a three-state
18570 int...
18571 (capture::gen_transform): ... to change behavior when substituting
18572 a condition into cond or not-cond expr context.
18573 (dt_simplify::gen_1): Adjust.
18574 * gimple-match-head.c: Include gimplify.h for unshare_expr.
18575 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Revert
18576 last change and instead change to
18577 A + (B vcmp C ? 1 : 0) -> A - (B vcmp C ? -1 : 0).
18578 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18579
18580 2016-03-22 Anthony Green <green@moxielogic.com>
18581
18582 * config/moxie/moxiebox.h (CC1_SPEC): Define. Fix endianness
18583 issue for moxiebox targets.
18584 (CC1PLUS_SPEC): Ditto.
18585
18586 2016-03-22 Richard Biener <rguenther@suse.de>
18587
18588 PR middle-end/70333
18589 * fold-const.c (extract_muldiv_1): Properly perform multiplication
18590 in the wide type.
18591
18592 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
18593
18594 * config/i386/i386.c (def_builtin): Remove duplicated functionality.
18595
18596 2016-03-22 Kirill Yukhin <kirill.yukhin@intel.com>
18597
18598 PR target/70325
18599 * config/i386/i386.c (def_builtin): Handle
18600 OPTION_MASK_ISA_AVX512VL to be and-ed with other
18601 bits.
18602 (const struct builtin_description bdesc_special_args[]):
18603 Remove duplicate ISA bits.
18604
18605 2016-03-22 Jakub Jelinek <jakub@redhat.com>
18606
18607 PR target/70329
18608 * config/i386/i386.c (ix86_expand_vecop_qihi): Don't bother computing
18609 d.perm[i] for i >= d.nelt. If not full_interleave, compute d.perm[i]
18610 in a way that works also for AVX512BW.
18611
18612 PR target/70300
18613 * config/i386/i386.md (cvtsd2ss splitter): Unpack in destination
18614 instead of source if operands[1] is xmm16 and above and
18615 !TARGET_AVX512VL. Use avx512f_vec_dupv16sf_1 instead of
18616 vec_interleave_lowv4sf if we need to unpack xmm16 and above.
18617
18618 PR c++/70295
18619 * gimplify.c (gimplify_modify_expr): Call gimple_set_no_warning
18620 on assign if (*from_p) is a comparison, set it to
18621 TREE_NO_WARNING (*from_p).
18622
18623 2016-03-21 Jakub Jelinek <jakub@redhat.com>
18624
18625 PR middle-end/70326
18626 * lra.c (restore_scratches): Ignore deleted insns.
18627
18628 2016-03-21 Marc Glisse <marc.glisse@inria.fr>
18629 Jakub Jelinek <jakub@redhat.com>
18630
18631 PR tree-optimization/70317
18632 * match.pd (cmp @0 @0): Pass @0 instead of TYPE_MODE (TREE_TYPE (@0))
18633 to HONOR_NANS.
18634
18635 2016-03-21 Uros Bizjak <ubizjak@gmail.com>
18636
18637 PR target/70327
18638 * config/i386/i386.md (movxi): Use ix86_expand_vector_move instead
18639 of ix86_expand_move.
18640 (movoi): Ditto.
18641 (movti): Use general_operand for operand 1 predicate.
18642
18643 2016-03-21 Martin Liska <mliska@suse.cz>
18644
18645 * hsa-dump.c (dump_hsa_insn_1): dump default branch of SBR
18646 insns.
18647 (dump_hsa_symbol): Dump BRIG offset of hsa_symbols.
18648
18649 2016-03-21 Martin Liska <mliska@suse.cz>
18650
18651 PR ipa/70306
18652 * ipa-icf.c (sem_function::parse): Skip static
18653 constructors and destructors.
18654
18655 2016-03-21 Jakub Jelinek <jakub@redhat.com>
18656
18657 PR target/70296
18658 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If IDENT is
18659 function-like macro, peek following token(s) if it is followed
18660 by CPP_OPEN_PAREN token with optional padding in between, and
18661 if not, don't treat it like a macro.
18662
18663 2016-03-21 Thomas Schwinge <thomas@codesourcery.com>
18664 Alexander Monakov <amonakov@ispras.ru>
18665
18666 * config/nvptx/nvptx.c (nvptx_option_override): Don't emit sorry
18667 for the stabs debug format.
18668
18669 2016-03-21 Richard Biener <rguenther@suse.de>
18670
18671 PR tree-optimization/70310
18672 * tree-vect-generic.c (expand_vector_condition): Fold the built
18673 condition.
18674
18675 2016-03-21 Kirill Yukhin <kirill.yukhin@intel.com>
18676
18677 PR target/70293
18678 * config/i386/sse.md: (define_insn "*vec_dup<mode>"/AVX2):
18679 Block third alternative for AVX-512VL target,
18680
18681 2016-03-21 Martin Liska <mliska@suse.cz>
18682
18683 PR hsa/70234
18684 * hsa-brig.c (emit_function_directives): Mark unemitted
18685 global variables for emission.
18686 * hsa-gen.c (hsa_symbol::hsa_symbol): Initialize a new flag.
18687 (get_symbol_for_decl): Likewise.
18688 * hsa.h (struct hsa_symbol): New flag.
18689
18690 2016-03-21 Richard Biener <rguenther@suse.de>
18691
18692 PR tree-optimization/70288
18693 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Make sure
18694 we do not estimate unsimplified all-constant conditionals or
18695 switches as optimized away.
18696
18697 2016-03-21 Andrey Belevantsev <abel@ispras.ru>
18698
18699 PR rtl-optimization/69102
18700 * sched-deps.c (sched_analyze_insn): Do not set last_args_size field
18701 when we have a readonly dependency context.
18702
18703 2016-03-18 Jeff Law <law@redhat.com>
18704
18705 PR rtl-optimization/70263
18706 * ira.c (memref_used_between_p): Assert we found END in the insn chain.
18707 (update_equiv_regs): When trying to move a store to after the insn
18708 that sets the source of the store, make sure the store occurs after
18709 the insn that sets the source of the store. When successful note
18710 the REG_EQUIV note created in the dump file.
18711
18712 2016-03-16 David Wohlferd <dw@LimeGreenSocks.com>
18713 Bernd Schmidt <bschmidt@redhat.com>
18714
18715 * doc/extend.texi: Document more potential problems with basic asms.
18716
18717 2016-03-18 Bernd Schmidt <bschmidt@redhat.com>
18718
18719 PR rtl-optimization/70278
18720 * lra-constraints.c (split_reg): Handle the case where biggest_mode is
18721 VOIDmode.
18722
18723 2016-03-18 Jason Merrill <jason@redhat.com>
18724
18725 * calls.c (load_register_parameters): Fix zero size sibcall logic.
18726
18727 2016-03-18 Kirill Yukhin <kirill.yukhin@intel.com>
18728
18729 * config/i386/sse.md: Use vpbroadcastq for broadcasting DF
18730 values to 128b regs.
18731
18732 2016-03-18 Ilya Enkovich <enkovich.gnu@gmail.com>
18733
18734 PR tree-optimization/70252
18735 * tree-vect-stmts.c (supportable_widening_operation): Check resulting
18736 boolean vector has a proper number of elements.
18737 (supportable_narrowing_operation): Likewise.
18738
18739 2016-03-18 Tom de Vries <tom@codesourcery.com>
18740
18741 PR ipa/70269
18742 * cgraph.c (cgraph_node::get_body): Set dump_file to NULL after save.
18743
18744 2016-03-18 Jakub Jelinek <jakub@redhat.com>
18745
18746 * reload1.c (emit_input_reload_insns): Use simplify_replace_rtx
18747 instead of replace_rtx for DEBUG_INSNs.
18748
18749 2016-03-18 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
18750
18751 * config/i386/znver1.md : Fix latencies of FP/SSE/AVX
18752 load type reservations.
18753
18754 2016-03-17 John David Anglin <danglin@gcc.gnu.org>
18755
18756 PR target/70188
18757 * config/pa/constraints.md: Revert 2015-02-13 change. Use
18758 define_constraint for "Q" and "T" constraints.
18759
18760 2016-03-17 Evandro Menezes <e.menezes@samsung.com>
18761
18762 Tweak the pipeline model for Exynos M1
18763
18764 * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching
18765 model.
18766
18767 2016-03-17 David Malcolm <dmalcolm@redhat.com>
18768
18769 PR c/70264
18770 * diagnostic-show-locus.c (compatible_locations_p): Handle the case
18771 where one or both locations aren't within a line_map.
18772
18773 2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
18774
18775 PR driver/70192
18776 * opts.c (finish_options): Don't set flag_pie to the default if
18777 -fpic, -fPIC, -fno-pic or -fno-PIC is used. Set flag_pic to 0
18778 if it is -1.
18779
18780 2016-03-17 Joern Rennecke <joern.rennecke@embecosm.com>
18781
18782 * config/i386/i386.md (*movv4qicc_insn+1..36): Pass
18783 true as ALL_REGS argument to replace_rtx.
18784
18785 2016-03-17 Richard Biener <rguenther@suse.de>
18786
18787 PR debug/70271
18788 * dwarf2out.c (dwarf2out_early_finish): Process deferred_asm_name
18789 last.
18790
18791 2016-03-17 Jakub Jelinek <jakub@redhat.com>
18792
18793 PR target/70245
18794 * rtl.h (replace_rtx): Add ALL_REGS argument.
18795 * rtlanal.c (replace_rtx): Likewise. If true, use REGNO
18796 equality and assert mode is the same, instead of just rtx pointer
18797 equality.
18798 * config/i386/i386.md (mov + arithmetics with load peephole): Pass
18799 true as ALL_REGS argument to replace_rtx.
18800
18801 2016-03-17 Ilya Enkovich <enkovich.gnu@gmail.com>
18802
18803 * match.pd (A + (B vcmp C ? 1 : 0) -> A - (B vcmp C)): Apply
18804 for boolean vector with vector mode only.
18805 (A - (B vcmp C ? 1 : 0) -> A + (B vcmp C)): Likewise.
18806
18807 2016-03-17 Nick Clifton <nickc@redhat.com>
18808
18809 PR target/70162
18810 * config/rx/rx.c (rx_print_integer): Print negative constants in
18811 decimal.
18812
18813 2016-03-17 Jakub Jelinek <jakub@redhat.com>
18814
18815 PR target/70261
18816 * rtlanal.c (replace_rtx): Revert 2016-03-16 change.
18817
18818 2016-03-16 Richard Henderson <rth@redhat.com>
18819 Richard Biener <rguenth@suse.de>
18820
18821 PR middle-end/70240
18822 PR middle-end/68215
18823 PR tree-opt/68714
18824 * gimplify.c (gimplify_expr) [VEC_COND_EXPR]: Gimplify the
18825 first operand as is_gimple_condexpr.
18826
18827 PR middle-end/70240
18828 PR middle-end/68215
18829 Revert r231575
18830 2015-12-11 Eric Botcazou <ebotcazou@adacore.com>
18831 * tree-vect-generic.c (tree_vec_extract): Remove GSI parameter.
18832 Do not gimplify the result.
18833 (do_unop): Adjust call to tree_vec_extract.
18834 (do_binop): Likewise.
18835 (do_compare): Likewise.
18836 (do_plus_minus): Likewise.
18837 (do_negate): Likewise.
18838 (expand_vector_condition): Likewise.
18839 (do_cond): Likewise.
18840
18841 2016-03-16 Richard Henderson <rth@redhat.com>
18842
18843 PR target/70048
18844 * config/aarch64/aarch64.c (virt_or_elim_regno_p): New.
18845 (aarch64_classify_address): Use it.
18846 (aarch64_legitimize_address): Force all subexpressions of PLUS
18847 into registers. Simplify as (sfp+const)+reg or (reg+reg)+const.
18848
18849 2016-03-16 Jakub Jelinek <jakub@redhat.com>
18850 Richard Biener <rguenth@suse.de>
18851
18852 PR target/70245
18853 * rtlanal.c (replace_rtx): For REG, if from is a REG,
18854 return to even if only REGNO is equal, and assert
18855 mode is the same.
18856
18857 2016-03-11 Jeff Law <law@redhat.com>
18858
18859 PR rtl-optimization/70224
18860 * reorg.c (relax_delay_slots): Pass right argument to CROSSING_JUMP_P.
18861
18862 2016-03-16 Richard Henderson <rth@redhat.com>
18863
18864 PR middle-end/70199
18865 * function.h (struct function): Add has_forced_label_in_static.
18866 * gimplify.c (force_labels_r): Set it.
18867 * lto-streamer-in.c (input_struct_function_base): Read it.
18868 * lto-streamer-out.c (output_struct_function_base): Write it.
18869 * tree-inline.c (has_label_address_in_static_1): Remove.
18870 (copy_forbidden): Remove fndecl parameter; test
18871 has_forced_label_in_static.
18872 (inline_forbidden_p): Update call to copy_forbidden.
18873 (tree_versionable_function_p): Likewise.
18874 * ipa-chkp.c (chkp_instrumentable_p): Likewise.
18875 (chkp_versioning): Likewise.
18876 * tree-inline.h (copy_forbidden): Update decl.
18877
18878 2016-03-16 Marek Polacek <polacek@redhat.com>
18879
18880 PR c/70093
18881 * cgraphunit.c (cgraph_node::expand_thunk): Also build call to the
18882 function being thunked if the result type doesn't have fixed size.
18883 * gimplify.c (gimplify_modify_expr): Also set LHS if the result type
18884 doesn't have fixed size.
18885
18886 2016-03-16 Bin Cheng <bin.cheng@arm.com>
18887
18888 * tree-vect-loop.c (vect_analyze_loop_2): Fix wrong dump info by
18889 reporting malformed loop nest.
18890
18891 2016-03-16 Tom de Vries <tom@codesourcery.com>
18892
18893 PR lto/70187
18894 * ipa-devirt.c (possible_polymorphic_call_targets): Move
18895 nodes.length () == 1 test to before first nodes[0] access.
18896
18897 2016-03-16 Tom de Vries <tom@codesourcery.com>
18898
18899 PR tree-optimization/68715
18900 * graphite-scop-detection.c (scop_detection::merge_sese): Add missing
18901 single_pred_p test.
18902
18903 2016-03-16 Tom de Vries <tom@codesourcery.com>
18904
18905 PR tree-optimization/68809
18906 * graphite-scop-detection.c (same_close_phi_node): Test if result types
18907 are the same.
18908
18909 2016-03-16 Carlos O'Donell <carlos@redhat.com>
18910 Sandra Loosemore <sandra@codesourcery.com>
18911
18912 * doc/extend.texi (Common Function Attributes): Describe ifunc impact
18913 on leaf attribute. Mention ELF interposition problems.
18914
18915 2016-03-16 Alan Modra <amodra@gmail.com>
18916
18917 PR rtl-optimization/69195
18918 PR rtl-optimization/47992
18919 * ira.c (indirect_jump_optimize): Ignore artificial defs.
18920 Add comments.
18921
18922 2016-03-15 Eric Botcazou <ebotcazou@adacore.com>
18923
18924 PR bootstrap/69513
18925 * dwarf2out.c (flush_limbo_die_list): Really flush the limbo list.
18926
18927 2016-03-15 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
18928
18929 * config/avr/avr.md (rotl<mode>3): Set mode for operand 2.
18930
18931 2016-03-15 Jakub Jelinek <jakub@redhat.com>
18932
18933 PR rtl-optimization/70222
18934 * combine.c (simplify_shift_const_1): For A >> B >> C LSHIFTRT
18935 optimization if mode is different from result_mode, queue up masking
18936 of the result in outer_op. Formatting fix.
18937
18938 PR middle-end/70239
18939 * tree-ssa-sccvn.c (VN_INFO_GET): Use safe_grow_cleared instead
18940 of safe_grow.
18941
18942 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18943
18944 PR rtl-optimization/69032
18945 * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
18946 looping backwards over basic block insns.
18947
18948 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18949
18950 PR target/66660
18951 * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
18952 to non-speculative when propagating trap bits.
18953
18954 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18955
18956 PR rtl-optimization/63384
18957 * sel-sched.c (invoke_aftermath_hooks): Do not decrease issue_more on
18958 DEBUG_INSN_P insns.
18959
18960 2016-03-15 Andrey Belevantsev <abel@ispras.ru>
18961
18962 PR target/64411
18963 * sched-deps.c (get_implicit_reg_pending_clobbers): New function,
18964 factored out from ...
18965 (sched_analyze_insn): ... here.
18966 * sched-int.h (get_implicit_reg_pending_clobbers): Declare it.
18967 * sel-sched-ir.c (setup_id_implicit_regs): New function, use
18968 get_implicit_reg_pending_clobbers in it.
18969 (setup_id_reg_sets): Use setup_id_implicit_regs.
18970 (deps_init_id): Ditto.
18971
18972 2016-03-15 Tom de Vries <tom@codesourcery.com>
18973
18974 PR ipa/70161
18975 * cgraph.c (cgraph_node::get_body): Save, reset and restore
18976 dump_file_name.
18977 * passes.c (execute_one_ipa_transform_pass): Add missing argument to
18978 execute_function_dump.
18979 (execute_one_pass): Don't dump function if it will be dumped after ipa
18980 transform.
18981
18982 2016-03-15 Segher Boessenkool <segher@kernel.crashing.org>
18983
18984 * genrecog.c (match_pattern_2): If pred is NULL don't call
18985 safe_predicate_mode on it.
18986
18987 2016-03-14 Jakub Jelinek <jakub@redhat.com>
18988
18989 PR middle-end/70219
18990 * lra-constraints.c (delete_move_and_clobber): Change assertion
18991 to also allow dregno == 0.
18992
18993 2016-03-14 Richard Henderson <rth@redhat.com>
18994
18995 PR tree-opt/68714
18996 * tree-ssa-reassoc.c (ovce_extract_ops, optimize_vec_cond_expr): New.
18997 (can_reassociate_p): Allow ANY_INTEGRAL_TYPE_P.
18998 (reassociate_bb): Use optimize_vec_cond_expr; avoid
18999 optimize_range_tests, attempt_builtin_copysign and attempt_builtin_powi
19000 on vectors.
19001
19002 2016-03-14 Bernd Schmidt <bschmidt@redhat.com>
19003
19004 PR target/70083
19005 * lra-lives.c (process_bb_lives): Also update biggest mode for hard
19006 regs.
19007 (lra_create_live_ranges_1): initialize hard register biggest_mode to
19008 VOIDmode.
19009 * lra-constraints.c (split_reg): For hard regs, try to find the
19010 biggest single-register mode used in the function.
19011
19012 2016-03-14 Richard Biener <rguenther@suse.de>
19013
19014 PR tree-optimization/56365
19015 * tree-ssa-phiopt.c (minmax_replacement): Handle alternate
19016 constants to compare against.
19017
19018 2016-03-14 Segher Boessenkool <segher@kernel.crashing.org>
19019
19020 PR target/70098
19021 * config/rs6000/rs6000.md (*ctr<mode>_internal1, *ctr<mode>_internal2,
19022 *ctr<mode>_internal5, *ctr<mode>_internal6): Also allow "d" as output.
19023 (define_split for the GPR case): Use int_reg_operand instead of
19024 gpc_reg_operand for the output.
19025
19026 2016-03-14 Tom de Vries <tom@codesourcery.com>
19027
19028 PR tree-optimization/70045
19029 * graphite-isl-ast-to-gimple.c (graphite_create_new_loop_guard): Unshare
19030 create_empty_if_region_on_edge argument.
19031
19032 2016-03-13 Eric Botcazou <ebotcazou@adacore.com>
19033
19034 * config/arm/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Define.
19035 (STACK_CHECK_PROTECT): Likewise.
19036 * config/i386/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19037 (STACK_CHECK_PROTECT): Likewise.
19038 * config/rs6000/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise
19039 (STACK_CHECK_PROTECT): Likewise.
19040 * config/rs6000/vxworksae.h (STACK_CHECK_PROTECT): Likewise.
19041 * config/sparc/vxworks.h (STACK_CHECK_STATIC_BUILTIN): Likewise.
19042 (STACK_CHECK_PROTECT): Likewise.
19043
19044 2016-03-12 Andrey Belevantsev <abel@ispras.ru>
19045
19046 PR rtl-optimization/69307
19047 * sel-sched.c (choose_best_pseudo_reg): Properly check for hard
19048 registers in modes that span more than one register.
19049
19050 2016-03-12 Vladimir Makarov <vmakarov@redhat.com>
19051
19052 PR target/69614
19053 * lra-constraints.c (delete_move_and_clobber): New.
19054 (remove_inheritance_pseudos): Use it.
19055
19056 2016-03-12 Eric Botcazou <ebotcazou@adacore.com>
19057
19058 PR ada/70017
19059 * calls.c (emit_library_call_value_1): Clear the ECF_NOTHROW flag if
19060 the libcall is LCT_THROW.
19061 * explow.c (probe_stack_range): Pass LCT_THROW to emit_library_call
19062 for the checking routine.
19063
19064 2016-03-11 Michael Meissner <meissner@linux.vnet.ibm.com>
19065
19066 PR target/70131
19067 * config/rs6000/rs6000.md (round32<mode>2_fprs): Do not do the
19068 optimization if we have direct move.
19069 (roundu32<mode>2_fprs): Likewise.
19070
19071 2016-03-11 Bernd Schmidt <bschmidt@redhat.com>
19072
19073 PR target/70123
19074 * lra-remat.c (operand_to_remat): Disallow hard regs in the value t
19075 be rematerialized.
19076 (reg_overlap_for_remat_p): Renamed from input_regno_present_p.
19077 Arguments swapped. All callers changed. Take reg_renumber into
19078 account, and Calculate and compare register ranges for hard regs.
19079
19080 2016-03-11 Jeff Law <law@redhat.com>
19081
19082 PR tree-optimization/70190
19083 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19084 Handle cases where we can not extract the taken edge, even though we
19085 found a constant value.
19086
19087 PR tree-optimization/64058
19088 * tree-ssa-coalesce.c (struct coalesce_pair): Add new field INDEX.
19089 (num_coalesce_pairs): Move up earlier in file.
19090 (find_coalesce_pair): Initialize the INDEX field for each pair
19091 discovered.
19092 (compare_pairs): No longer sort on the elements in each pair.
19093 Instead break ties with the index of the coalesce pair.
19094
19095 2016-03-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19096
19097 PR target/70002
19098 * config/aarch64/aarch64-protos.h
19099 (aarch64_save_restore_target_globals): New prototype.
19100 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse):
19101 Call the above when popping pragma.
19102 * config/aarch64/aarch64.c (aarch64_save_restore_target_globals):
19103 New function.
19104 (aarch64_set_current_function): Rewrite using the above.
19105
19106 2016-03-11 Jakub Jelinek <jakub@redhat.com>
19107
19108 PR tree-optimization/70177
19109 * gimple-expr.h (extract_ops_from_tree_1): Renamed to ...
19110 (extract_ops_from_tree): ... this. In the 2 argument
19111 overload remove _1 suffix.
19112 * gimple-expr.c (extract_ops_from_tree_1): Renamed to ...
19113 (extract_ops_from_tree): ... this.
19114 * gimple.c (gimple_build_assign, gimple_assign_set_rhs_from_tree):
19115 Adjust callers.
19116 * tree-ssa-loop-niter.c (derive_constant_upper_bound): Likewise.
19117 * tree-ssa-forwprop.c (defcodefor_name): Call 3 operand
19118 extract_ops_from_tree instead of 2 operand one.
19119
19120 2016-03-11 Alan Lawrence <alan.lawrence@arm.com>
19121
19122 PR tree-optimization/70013
19123 * tree-sra.c (analyze_access_subtree): Also set grp_unscalarized_data
19124 for constant-pool entries.
19125
19126 2016-03-11 Jakub Jelinek <jakub@redhat.com>
19127
19128 PR rtl-optimization/70174
19129 * expmed.c (store_bit_field_using_insv): Use gen_lowpart_if_possible
19130 followed by gen_lowpart on force_reg instead of just gen_lowpart.
19131
19132 PR tree-optimization/70169
19133 * tree-ssa-loop.c (gen_lsm_tmp_name): Handle FUNCTION_DECL and
19134 LABEL_DECL like VAR_DECL. Emit nothing instead of gcc_unreachable
19135 for unknown codes.
19136
19137 2016-03-11 Ilya Enkovich <enkovich.gnu@gmail.com>
19138 Jakub Jelinek <jakub@redhat.com>
19139
19140 PR target/70160
19141 * config/i386/i386.c (scalar_chain::convert_reg): Skip uses
19142 of uninitialized values.
19143
19144 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19145
19146 * config/s390/s390.md ("trunctddd2"): Turn former define_insn into
19147 define_expand.
19148 ("*trunctddd2"): New pattern definition.
19149 ("trunctdsd2"): Set prep_for_short_prec rounding mode for the
19150 TD->DD truncation.
19151
19152 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19153
19154 * config/s390/s390.md (BFP_RND_*, DFP_RND_*): Add new constant
19155 definitions for BFP and DFP rounding modes.
19156 ("fixuns_truncdddi2", "fixuns_trunctddi2")
19157 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2")
19158 ("fix_trunc<DSF:mode><GPR:mode>2", "fix_trunc<mode>di2")
19159 ("fix_trunctf<mode>2"): Use the new constants instead of magic
19160 numbers.
19161
19162 2016-03-11 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19163
19164 * config/s390/constraints.md: Adjust comment.
19165 ("Y"): Adjust comment. Rename s390_decompose_shift_count to
19166 s390_decompose_addrstyle_without_index.
19167 * config/s390/predicates.md (shift_count_or_setmem_operand):
19168 Rename to setmem_operand.
19169 * config/s390/s390-protos.h
19170 (s390_decompose_shift_count): Rename to
19171 s390_decompose_addrstyle_without_index.
19172 * config/s390/s390.c (s390_decompose_shift_count)
19173 (s390_mem_constraint, print_shift_count_operand)
19174 (print_operand_address, print_operand): Rename
19175 s390_decompose_shift_count to
19176 s390_decompose_addrstyle_without_index and rename
19177 print_shift_count_operand to print_addrstyle_operand troughout the
19178 file.
19179 * config/s390/s390.md ("setmem_long_<P:mode>", "*setmem_long")
19180 ("*setmem_long_and", "*setmem_long_31z", "*setmem_long_and_31z"):
19181 Rename shift_count_or_setmem_operand to setmem_operand.
19182 * config/s390/vx-builtins.md ("vec_insert<mode>")
19183 ("vec_promote<mode>"): Replace shift_count_or_setmem_operand with
19184 nonmemory_operand.
19185
19186 2016-03-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
19187
19188 PR target/70168
19189 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
19190 Handle overlapping retval and newval.
19191
19192 2016-03-10 Nick Clifton <nickc@redhat.com>
19193
19194 PR target/7044
19195 * config/aarch64/aarch64.c
19196 (aarch64_override_options_after_change_1): When forcing
19197 flag_omit_frame_pointer to be true, use a special value that can
19198 be detected if this function is called again, thus preventing
19199 flag_omit_leaf_frame_pointer from being forced to be false.
19200
19201 2016-03-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19202
19203 * common/config/aarch64/aarch64-common.c (aarch64_handle_option):
19204 Set x_flag_omit_leaf_frame_pointer when handling
19205 -momit-leaf-frame-pointer.
19206
19207 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19208
19209 PR lto/69589
19210 * cgraph.c (cgraph_node::dump): Dump split_part and
19211 indirect_call_target.
19212 * cgraph.h (cgraph_node): Add indirect_call_target flag.
19213 * ipa.c (has_addr_references_p): Cleanup.
19214 (is_indirect_call_target_p): New.
19215 (walk_polymorphic_call_targets): Do not mark virtuals that may be
19216 called indirectly as local.
19217 (symbol_table::remove_unreachable_nodes): Compute indirect_call_target.
19218
19219 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19220
19221 PR ipa/69630
19222 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
19223 on cxa_pure_virtual.
19224
19225 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19226
19227 PR lto/69589
19228 * tree.c (free_lang_data_in_decl): Clear visibility of TYPE_DECL.
19229
19230 2016-03-10 Jan Hubicka <hubicka@ucw.cz>
19231
19232 PR lto/69589
19233 * tree.c (need_assembler_name_p): Only record main variant type names.
19234
19235 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
19236
19237 PR target/70113.
19238 * config/aarch64/aarch64.h (TARGET_FIX_ERR_A53_843419_DEFAULT):
19239 Always define to 0 or 1.
19240 (TARGET_FIX_ERR_A53_843419): New macro.
19241 * config/aarch64/aarch64-elf-raw.h
19242 (TARGET_FIX_ERR_A53_843419_DEFAULT): Update for above changes.
19243 * config/aarch64/aarch64-linux.h: Likewise.
19244 * config/aarch64/aarch64.c
19245 (aarch64_override_options_after_change_1): Do not default
19246 aarch64_nopcrelative_literal_loads to true if Cortex-A53 erratum
19247 843419 is on.
19248 (aarch64_attributes): Handle fix-cortex-a53-843419.
19249 (aarch64_can_inline_p): Likewise.
19250 * config/aarch64/aarch64.opt (aarch64_fix_a53_err843419): Save.
19251
19252 2016-03-10 Alan Lawrence <alan.lawrence@arm.com>
19253 Jakub Jelinek <jakub@redhat.com>
19254
19255 * common.opt (funconstrained-commons, flag_unconstrained_commons): New.
19256 * tree.c (array_at_struct_end_p): Do not limit to size of decl for
19257 DECL_COMMONS if flag_unconstrained_commons is set.
19258 * tree-dfa.c (get_ref_base_and_extent): Likewise.
19259 * doc/invoke.texi (Optimize Options): Add -funconstrained-commons.
19260 (funconstrained-commons): Document.
19261
19262 2016-03-10 Christophe Lyon <christophe.lyon@linaro.org>
19263
19264 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add
19265 aarch64-fusion-pairs.def and aarch64-tuning-flags.def
19266
19267 2016-03-10 Ilya Enkovich <enkovich.gnu@gmail.com>
19268
19269 * tree-vect-stmts.c (vectorizable_mask_load_store): Check mask
19270 has a proper number of elements.
19271
19272 2016-03-10 Alan Modra <amodra@gmail.com>
19273
19274 PR rtl-optimization/69195
19275 PR rtl-optimization/47992
19276 * ira.c (recorded_label_ref): Delete.
19277 (update_equiv_regs): Return void.
19278 (indirect_jump_optimize): New function.
19279 (ira): Call indirect_jump_optimize and delete_trivially_dead_insns
19280 before regstat_compute_ri. Don't rebuild_jump_labels here.
19281 Delete update_regstat.
19282
19283 2016-03-10 Richard Biener <rguenther@suse.de>
19284
19285 PR tree-optimization/70128
19286 * tree-ssa-structalias.c (set_uids_in_ptset): Set
19287 vars_contains_nonlocal for any FUNCTION_DECL or LABEL_DECL.
19288
19289 2016-03-09 Jakub Jelinek <jakub@redhat.com>
19290
19291 PR tree-optimization/70152
19292 * tree-sra.c (replace_removed_params_ssa_names): Copy over
19293 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from old_name to new_name.
19294
19295 PR target/70086
19296 * config/i386/i386.md (truncdfsf2 splitter): Use gen_vec_concatv2df
19297 instead of gen_sse2_loadlpd.
19298 * config/i386/sse.md (*vec_concatv2df): Rename to...
19299 (vec_concatv2df): ... this.
19300
19301 PR tree-optimization/70127
19302 * fold-const.c (operand_equal_p): Revert the 2015-10-28 change.
19303
19304 2016-03-09 David Malcolm <dmalcolm@redhat.com>
19305
19306 PR c/68473
19307 PR c++/70105
19308 * diagnostic-show-locus.c (compatible_locations_p): New function.
19309 (layout::layout): Sanitize ranges using compatible_locations_p.
19310
19311 2016-03-09 David Malcolm <dmalcolm@redhat.com>
19312
19313 PR c/68473
19314 PR c++/70105
19315 * diagnostic-show-locus.c (layout_range::layout_range): Replace
19316 location_range param with three const expanded_locations * and a
19317 bool.
19318 (layout::layout): Replace call to
19319 rich_location::lazily_expand_location with get_expanded_location.
19320 Extract the range and perform location expansion here, passing
19321 the results to the layout_range ctor.
19322 * diagnostic.c (source_range::debug): Delete.
19323 * diagnostic.h (diagnostic_expand_location): Reimplement in terms
19324 of rich_location::get_expanded_location.
19325 * gcc-rich-location.c (get_range_for_expr): Delete.
19326 (gcc_rich_location::add_expr): Reimplement to avoid the
19327 rich_location::add_range overload that took a location_range,
19328 passing a location_t instead.
19329
19330 2016-03-09 Richard Biener <rguenther@suse.de>
19331 Jakub Jelinek <jakub@redhat.com>
19332
19333 PR tree-optimization/70138
19334 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
19335 Also skip vect_double_reduction_def.
19336
19337 2016-03-09 Jakub Jelinek <jakub@redhat.com>
19338
19339 PR target/70049
19340 * config/i386/sse.md (*vec_extract<mode>): Use %0 instead of %k0
19341 if the operand is "m".
19342
19343 2016-03-09 Nathan Sidwell <nathan@acm.org>
19344
19345 * config/nvptx/nvptx.c (nvptx_option_override): Don't kill debug level.
19346
19347 2016-03-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
19348
19349 * config/i386/i386.c (processor_target_table): Fix cost table
19350 intialization order for znver1.
19351
19352 2016-03-08 Jakub Jelinek <jakub@redhat.com>
19353
19354 * ipa-polymorphic-call.c (walk_ssa_copies): Fix spelling
19355 - becuase -> because.
19356 * ipa-reference.c (ignore_module_statics): Likewise.
19357 * cgraph.c (cgraph_node::get_body): Likewise.
19358 * ipa-inline.c (early_inliner): Likewise.
19359 * ipa-devirt.c (types_same_for_odr): Likewise.
19360 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
19361 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Likewise.
19362
19363 2016-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19364
19365 * tree-ssa-math-opts.c: Fix typo in comment.
19366
19367 2016-03-08 Jakub Jelinek <jakub@redhat.com>
19368
19369 PR target/70110
19370 * config/i386/i386.c (scalar_chain::make_vector_copies,
19371 scalar_chain::convert_reg): Call end_sequence in between
19372 get_insns and emit_conversion_insns rather than after both
19373 calls.
19374
19375 2016-03-07 Uros Bizjak <ubizjak@gmail.com>
19376
19377 PR target/70064
19378 * config/i386/i386.h (machine_function): Add
19379 pc_thunk_call_expanded flag.
19380 (ix86_pc_thunk_call_expanded): New define.
19381 * config/i386/i386.md (set_got, set_got_labelled): New expanders.
19382 (*set_got): Rename insn pattern from set_got.
19383 (*set_got_labelled): Rename inst pattern from set_got_labelled.
19384 * config/i386/i386.c (ix86_compute_frame_layout): Use
19385 ix86_pc_thunk_call_expanded to prevent red-zone.
19386
19387 2016-03-07 Martin Jambor <mjambor@suse.cz>
19388
19389 * hsa.h (hsa_get_ctor_statements): Declare.
19390 (hsa_get_dtor_statements): Likewise.
19391 (hsa_get_kernel_dispatch_type): Likewise.
19392 * hsa.c (hsa_get_ctor_statements): New function.
19393 (hsa_get_dtor_statements): Likewise.
19394 (hsa_get_kernel_dispatch_type): Likewise.
19395 * hsa-brig.c (hsa_cdtor_statements): Removed.
19396 (hsa_output_libgomp_mapping): Use hsa_get_ctor_statements and
19397 hsa_get_dtor_statements.
19398 * hsa-gen.c (hsa_kernel_dispatch_type): Removed.
19399 (get_hsa_kernel_dispatch_offset): Use hsa_get_kernel_dispatch_type.
19400
19401 2016-03-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
19402
19403 * config/arm/arm-cores.def (cortex-r8): New.
19404 * config/arm/arm-tables.opt (cortex-r8): Regenerate.
19405 * config/arm/arm-tune.md: Likewise.
19406 * doc/invoke.texi: Add cortex-r8 to list of cpu values.
19407
19408 2016-03-07 Martin Sebor <msebor@redhat.com>
19409
19410 PR rtl-optimization/19705
19411 * doc/invoke.texi (Options That Control Optimization): Clarify
19412 -fno-branch-count-reg.
19413
19414 2016-02-26 Richard Biener <rguenther@suse.de>
19415 Jeff Law <law@redhat.com>
19416
19417 PR tree-optimization/69740
19418 * cfghooks.c (remove_edge): Request loop fixups if we delete
19419 an edge that might turn an irreducible loop into a natural
19420 loop.
19421 * cfgloop.h (check_verify_loop_structure): Clear LOOPS_NEED_FIXUP.
19422 Move after definition of loops_state_clear.
19423
19424 2016-03-07 Bin Cheng <bin.cheng@arm.com>
19425
19426 PR rtl-optimization/69052
19427 * rtlanal.c (commutative_operand_precedence): Set higher precedence
19428 to CONST_WIDE_INT.
19429
19430 2016-03-07 Tom de Vries <tom@codesourcery.com>
19431
19432 PR tree-optimization/70116
19433 * tree-ssa-tail-merge.c (merge_stmts_p): New function, handling
19434 is_tm_ending stmts and ubsan/asan internal functions.
19435 (find_duplicate): Use it. Don't test is_tm_ending here.
19436
19437 2016-03-07 Richard Biener <rguenther@suse.de>
19438
19439 PR tree-optimization/70115
19440 * tree-ssa-loop-ivcanon.c (propagate_into_all_uses): Remove.
19441 (propagate_constants_for_unrolling): Use replace_uses_by.
19442
19443 2016-03-07 Nathan Sidwell <nathan@codesourcery.com>
19444
19445 PR middle-end/69916
19446 * omp-low.c (struct oacc_loop): Add ifns.
19447 (new_oacc_loop_raw): Initialize it.
19448 (finish_oacc_loop): Clear mask & flags if no ifns.
19449 (oacc_loop_discover_walk): Count IFN_GOACC_LOOP calls.
19450 (oacc_loop_xform_loop): Add ifns arg & adjust.
19451 (oacc_loop_process): Adjust oacc_loop_xform_loop call.
19452
19453 2016-03-07 Richard Henderson <rth@redhat.com>
19454
19455 PR rtl-opt/70061
19456 * tree-outofssa.c (emit_partition_copy): Flush pending stack adjust.
19457 (insert_value_copy_on_edge): Likewise.
19458
19459 2016-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19460
19461 * config/arm/arm_neon.h: Show error if using with soft-float ABI.
19462
19463 2016-03-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
19464
19465 PR target/62281
19466 * config/i386/sol2.h (STACK_REALIGN_DEFAULT): Define.
19467
19468 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
19469
19470 * config/i386/i386.c (znver1_cost): Fix Multiply cost.
19471
19472 2016-03-05 Venkataramanan Kumar <Venkataramanan.kumar@amd.com>
19473
19474 Fix sseimul type attribute.
19475 * config/i386/znver1.md
19476 (znver1_sseimul, znver1_sseimul_avx256, znver1_sseimul_load,
19477 znver1_sseimul_avx256_load) : Fix the type attribute.
19478 (znver1_sseimul_di, znver1_sseimul_load_di): Fix type attribute,
19479 pipe usage and latency.
19480
19481 2016-03-05 Jakub Jelinek <jakub@redhat.com>
19482
19483 PR c++/70084
19484 * tree-inline.c (copy_tree_body_r): When cancelling ADDR_EXPR
19485 of INDIRECT_REF and ADDR_EXPR changed type, fold_convert it
19486 to the right type.
19487
19488 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
19489
19490 PR c/69973
19491 * targhooks.c (default_vector_alignment): Limit to MAX_OFILE_ALIGNMENT.
19492
19493 PR rtl-optimization/69941
19494 * postreload.c (reload_combine_recognize_pattern): Ensure all uses of
19495 the reg share its mode.
19496
19497 2016-03-04 Jeff Law <law@redhat.com>
19498
19499 PR tree-optimization/69196
19500 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19501 If the both SSA_NAMEs are anonymous, then consider them unassociated
19502 and include the PHI in the statement count.
19503
19504 2016-03-05 Tom de Vries <tom@codesourcery.com>
19505
19506 * omp-low.c (check_omp_nesting_restrictions): Check for non-oacc
19507 construct in oacc routine. Check for oacc region in oacc routine.
19508
19509 2016-03-04 Jakub Jelinek <jakub@redhat.com>
19510
19511 PR target/70062
19512 * config/i386/i386.c (decide_alg): Add RECUR argument. Revert
19513 2016-02-22 changes, instead don't recurse if RECUR is already true.
19514 Don't change *dynamic_check if RECUR. Adjust recursive caller
19515 to pass true to the new argument.
19516 (ix86_expand_set_or_movmem): Adjust decide_alg caller.
19517
19518 PR target/70059
19519 * config/i386/sse.md (vec_set_lo_<mode><mask_name>,
19520 <extract_type_2>_vinsert<shuffletype><extract_suf_2>_mask): Formatting
19521 fixes.
19522 (vec_set_hi_<mode><mask_name>): Likewise. Swap VEC_CONCAT operands.
19523
19524 2016-03-04 Bernd Schmidt <bschmidt@redhat.com>
19525
19526 PR rtl-optimization/57676
19527 * lra-assigns.c (lra_assign): Guard test for maximum iterations
19528 with flag_checking.
19529
19530 2016-03-04 Ilya Enkovich <enkovich.gnu@gmail.com>
19531
19532 * tree-vect-patterns.c (search_type_for_mask): Handle
19533 comparison of booleans.
19534
19535 2016-03-04 Jakub Jelinek <jakub@redhat.com>
19536
19537 * doc/extend.texi (__builtin_alloca, __builtin_alloca_with_align):
19538 Fix @xref usage.
19539
19540 PR debug/69947
19541 * dwarf2out.c (prune_unused_types_walk_loc_descr): Handle
19542 all other ops that have dw_val_class_die_ref operands,
19543 and DW_OP_GNU_entry_value.
19544
19545 2016-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
19546
19547 PR rtl-optimization/69904
19548 * config/arm/arm.c (arm_cannot_copy_insn_p):
19549 Return true for load-exclusive instructions.
19550
19551 2016-03-03 Jakub Jelinek <jakub@redhat.com>
19552
19553 PR target/70021
19554 * tree-vect-stmts.c (vect_mark_relevant): Remove USED_IN_PATTERN
19555 argument, if STMT_VINFO_IN_PATTERN_P (stmt_info), always mark
19556 the pattern no matter if it is used just by non-pattern, pattern
19557 or mix thereof.
19558 (process_use, vect_mark_stmts_to_be_vectorized): Adjust callers.
19559 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): If
19560 oprnd1 def_stmt is in pattern, don't look through it.
19561
19562 2016-03-03 Marek Polacek <polacek@redhat.com>
19563
19564 PR middle-end/70050
19565 * match.pd (X % -Y): Add INTEGRAL_TYPE_P check.
19566
19567 2016-03-03 Martin Liska <mliska@suse.cz>
19568
19569 PR tree-optimization/70043
19570 * tree-vect-loop.c (optimize_mask_stores): Move iterator to
19571 previous statement if we see a debug statement.
19572
19573 2016-03-03 Richard Biener <rguenther@suse.de>
19574
19575 PR tree-optimization/55936
19576 * tree-vrp.c (compare_name_with_value): Add use_equiv_p
19577 parameter and guard unsafe equivalence use.
19578 (vrp_evaluate_conditional_warnv_with_ops): Always use
19579 safe equivalences but not via the quadratic compare_names
19580 helper.
19581
19582 2016-03-03 Michael Collison <michael.collison@linaro.org>
19583
19584 PR target/70014
19585 * config/arm/arm.md (*subsi3_carryin_const): Change predicate
19586 for operand 1 to s_register_operand. Change predicate for operand
19587 2 to arm_not_immediate_operand.
19588
19589 2016-03-02 H.J. Lu <hongjiu.lu@intel.com>
19590
19591 * doc/tm.texi: Regenerated.
19592
19593 2016-03-02 Richard Henderson <rth@redhat.com>
19594
19595 PR rtl-opt/67145
19596 * simplify-rtx.c (simplify_plus_minus): Allow reassoc without
19597 simplification when all args are positive non-fixed registers.
19598
19599 2016-03-02 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
19600
19601 * target.def (lra_p): Specify that new ports should use LRA.
19602
19603 2016-03-02 Jakub Jelinek <jakub@redhat.com>
19604
19605 PR libgomp/69555
19606 * gimplify.c (gimplify_decl_expr): For decls with REFERENCE_TYPE, also
19607 gimplify_type_sizes the type they refer to.
19608 (omp_notice_variable): Handle reference vars to VLAs.
19609 * omp-low.c (lower_omp_target): Emit setup of OMP_CLAUSE_PRIVATE
19610 reference to VLA decls in the second pass instead of first pass.
19611
19612 2016-03-02 Tom de Vries <tom@codesourcery.com>
19613
19614 PR tree-optimization/68659
19615 * graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
19616 new_expr == NULL_TREE.
19617 (get_new_name): Handle ADDR_EXPR.
19618
19619 2016-03-02 Bin Cheng <bin.cheng@arm.com>
19620
19621 PR rtl-optimization/69052
19622 * loop-invariant.c (canonicalize_address): New function.
19623 (inv_can_prop_to_addr_use): Check validity of address expression
19624 which is canonicalized by above function.
19625
19626 2016-03-02 Alan Modra <amodra@gmail.com>
19627
19628 PR ipa/69990
19629 * ipa-icf.c (sem_variable::merge): Do not merge an alias with
19630 larger alignment.
19631
19632 2016-03-02 Jakub Jelinek <jakub@redhat.com>
19633
19634 PR target/70028
19635 * config/i386/i386.md (kmovw): Move m constraint to 2nd alternative.
19636 (*movhi_internal): Put mask moves from and to memory separately
19637 from moves from/to GPRs.
19638
19639 2016-03-02 Richard Biener <rguenther@suse.de>
19640
19641 * genmatch.c (dt_node::gen_kids): Fix match code-gen for embedded
19642 GENERIC expressions in GIMPLE.
19643
19644 2016-03-02 Richard Biener <rguenther@suse.de>
19645
19646 * config/i386/i386.c (type_natural_mode): Fix typo.
19647
19648 2016-03-02 Nick Clifton <nickc@redhat.com>
19649
19650 * config.gcc (mep-*-elf): Add newlib-stdint.h to tm_file.
19651
19652 2016-03-02 Richard Biener <rguenther@suse.de>
19653 Uros Bizjak <ubizjak@gmail.com>
19654
19655 PR target/67278
19656 * config/i386/i386.c (type_natural_mode): Handle XFmode vectors.
19657
19658 2016-03-02 Richard Biener <rguenther@suse.de>
19659
19660 PR middle-end/67278
19661 * tree-cfg.c (verify_expr): Adjust BIT_FIELD_REF case.
19662
19663 2016-03-02 Marek Polacek <polacek@redhat.com>
19664
19665 PR c/67854
19666 * gimplify.c (gimplify_va_arg_expr): Use expanded location for the
19667 "is promoted to" warning.
19668
19669 2016-03-01 DJ Delorie <dj@redhat.com>
19670
19671 * config.gcc: Deprecate mep-*.
19672
19673 2016-03-01 Vladimir Makarov <vmakarov@redhat.com>
19674
19675 PR middle-end/70025
19676 * lra-constraints.c (regno_val_use_in): New.
19677 (match_reload): Use it instead of regno_use_in.
19678
19679 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
19680
19681 PR rtl-optimization/70007
19682 * gcse.c (compute_ld_motion_mems): Tidy up and also invalidate memory
19683 references present in REG_EQUAL notes attached to non-SET patterns.
19684
19685 2016-03-01 Jeff Law <law@redhat.com>
19686
19687 PR tree-optimization/69196
19688 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19689 Appropriately clamp the number of statements to copy when the
19690 thread path does not traverse a loop backedge.
19691
19692 PR tree-optimization/69196
19693 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
19694 Do count some PHIs in the thread path against the insn count. Decrease
19695 final statement count by one as the control statement in the last
19696 block will get removed. Remove special cased code for handling PHIs
19697 in the last block.
19698
19699 2016-03-01 Uros Bizjak <ubizjak@gmail.com>
19700
19701 PR target/70027
19702 * config/i386/i386.c (ix86_output_call_insn): Add -masm=intel
19703 asm dialect alternatives to explicit GOTPCREL calls.
19704
19705 2016-03-01 Eric Botcazou <ebotcazou@adacore.com>
19706
19707 PR ada/70017
19708 * ira.c (do_reload): Issue warning for generic stack checking here...
19709 * reload1.c (reload): ...instead of here and streamline it.
19710
19711 2016-03-01 Nick Clifton <nickc@redhat.com>
19712
19713 * config.gcc (cr16-*-elf): Add newlib-stdint.h to tm_file.
19714
19715 2016-03-01 Richard Biener <rguenther@suse.de>
19716
19717 PR tree-optimization/69983
19718 * tree-chrec.c (eq_evolutions_p): Handle conversions, compare
19719 types and fall back to operand_equal_p.
19720
19721 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19722
19723 Revert
19724 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19725
19726 * config/s390/constraints.md ("jm8"): New constraint.
19727 * config/s390/predicates.md ("const_int_8bitset_operand"): New
19728 predicate.
19729 * config/s390/s390.md ("*setmem_long", "*setmem_long_and"): Merge
19730 into ...
19731 ("*setmem_long<setmem_and>"): New pattern.
19732 ("*setmem_long_31z", "*setmem_long_and_31z"): Merge
19733 into ...
19734 ("*setmem_long_31z<setmem_and>"): New pattern.
19735 * config/s390/subst.md ("setmem_31z_subst", "setmem_and_subst"):
19736 New substitution rules with the required attributes.
19737
19738
19739 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19740
19741 Revert
19742 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19743
19744 * gensupport.c (process_substs_on_one_elem): Split loop to
19745 complete mark_operands_used_in_match_dup on all expressions in the
19746 vector first.
19747 (adjust_operands_numbers): Inline into process_substs_on_one_elem
19748 and remove function.
19749
19750 2016-03-01 Richard Biener <rguenther@suse.de>
19751
19752 PR middle-end/70022
19753 * fold-const.c (fold_indirect_ref_1): Fix range checking for
19754 vector BIT_FIELD_REF extract.
19755
19756 2016-03-01 Richard Biener <rguenther@suse.de>
19757
19758 PR tree-optimization/69994
19759 * tree-ssa-reassoc.c (ops_equal_values_p): Handle missing case.
19760
19761 2016-03-01 Ilya Enkovich <enkovich.gnu@gmail.com>
19762
19763 PR tree-optimization/69956
19764 * tree-vect-stmts.c (supportable_widening_operation): Support
19765 multi-step conversion of boolean vectors.
19766 (supportable_narrowing_operation): Likewise.
19767
19768 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19769
19770 * config/s390/s390.c (s390_decompose_address): Don't accept SImode
19771 anymore.
19772
19773 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19774
19775 * config/s390/subst.md (DSI_VI): New mode iterator.
19776 ("addr_style_op_subst"): Use DSI_VI instead of DSI.
19777 * config/s390/vector.md ("vec_set<mode>"): Move expander before
19778 the insn definition.
19779 ("*vec_set<mode>"): Change predicate and add alternative to
19780 support only either register or const_int operands as element
19781 selector.
19782 ("*vec_set<mode>_plus"): New pattern to support reg + const_int
19783 operands.
19784 ("vec_extract<mode>"): New expander.
19785 ("*vec_extract<mode>"): New insn definition supporting reg and
19786 const_int element selectors.
19787 ("*vec_extract<mode>_plus"): New insn definition supporting
19788 reg+const_int element selectors.
19789 ("rotl<mode>3", "ashl<mode>3", "ashr<mode>3"): Merge into the
19790 following expander+insn definition.
19791 ("<vec_shifts_name><mode>3"): New expander.
19792 ("*<vec_shifts_name><mode>3<addr_style_op>"): New insn definition.
19793
19794 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19795
19796 * config/s390/s390.md ("*tabort_1"): Change predicate to
19797 nonmemory_operand. Add a second alternative to cover
19798 register as well as const int operands.
19799 ("*tabort_1_plus"): New pattern definition.
19800
19801 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19802
19803 * config/s390/s390.md ("*ashrdi3_cc_31")
19804 ("*ashrdi3_cconly_31""*ashrdi3_cc_31_and")
19805 ("*ashrdi3_cconly_31_and", "*ashrdi3_31_and", "*ashrdi3_31"):
19806 Merge insn definitions into ...
19807 ("*ashrdi3_31<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
19808 New pattern definition.
19809 ("*ashr<mode>3_cc", "*ashr<mode>3_cconly", "ashr<mode>3", )
19810 ("*ashr<mode>3_cc_and", "*ashr<mode>3_cconly_and")
19811 ("*ashr<mode>3_and"): Merge insn definitions into ...
19812 ("*ashr<mode>3<addr_style_op_cc><masked_op_cc><setcc><cconly>"):
19813 New pattern definition.
19814 * config/s390/subst.md ("addr_style_op_cc_subst")
19815 ("masked_op_cc_subst", "setcc_subst", "cconly_subst"): New
19816 substitutions patterns plus attributes.
19817 Add ashiftrt to SUBST iterator.
19818
19819 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19820
19821 * config/s390/s390.md ("<shift><mode>3"): Change predicate of
19822 op2 to nonmemory_operand.
19823 ("*<shift>di3_31", "*<shift>di3_31_and"):
19824 Merge into single pattern definition ...
19825 ("*<shift>di3_31<addr_style_op><masked_op>"): New pattern.
19826 ("*<shift><mode>3", "*<shift><mode>3_and"): Merge into single
19827 pattern definition ...
19828 ("*<shift><mode>3<addr_style_op><masked_op>"): New pattern.
19829 * config/s390/subst.md: Add ashift and lshiftrt to SUBST
19830 iterator.
19831
19832 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19833
19834 * config/s390/predicates.md (const_int_6bitset_operand): New
19835 predicate.
19836 * config/s390/s390.md: Include subst.md.
19837 ("rotl<mode>3"): New expander.
19838 ("rotl<mode>3", "*rotl<mode>3_and"): Merge insn definitions into
19839 ...
19840 ("*rotl<mode>3<addr_style_op><masked_op>"): New insn definition.
19841 * config/s390/subst.md: New file.
19842
19843 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19844
19845 * config/s390/s390.md ("op_type", "atype", "length" attributes):
19846 Remove RRR type. It doesn't really exist.
19847 ("RRer", "f0", "v0", "vf", "vd", "op1", "Rf"): Remove mode
19848 attributes.
19849 ("BFP", "DFP", "nDSF", "nDFDI"): Add mode attributes.
19850 ("*cmp<mode>_ccs", "floatdi<mode>2", "add<mode>3")
19851 ("*add<mode>3_cc", "*add<mode>3_cconly", "sub<mode>3")
19852 ("*sub<mode>3_cc", "*sub<mode>3_cconly", "mul<mode>3")
19853 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2")
19854 ("*abs<mode>2", "*negabs<mode>2", "sqrt<mode>2"): Override
19855 `enabled' attribute.
19856
19857 2016-03-01 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
19858
19859 * gensupport.c (process_substs_on_one_elem): Split loop to
19860 complete mark_operands_used_in_match_dup on all expressions in the
19861 vector first.
19862 (adjust_operands_numbers): Inline into process_substs_on_one_elem
19863 and remove function.
19864
19865 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
19866
19867 PR target/69706
19868 * config/sparc/sparc.c (NWORDS_UP): Rename to...
19869 (CEIL_NWORDS): ...this. Use CEIL macro.
19870 (compute_fp_layout): Adjust to above renaming.
19871 (function_arg_union_value): Likewise.
19872 (sparc_arg_partial_bytes): Likewise.
19873 (sparc_function_arg_advance): Likewise.
19874
19875 2016-02-29 Jeff Law <law@redhat.com>
19876
19877 PR tree-optimization/70005
19878 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Handle case
19879 where an object with a boolean range is compared against a value
19880 outside [0..1].
19881
19882 PR tree-optimization/69999
19883 * gimple-ssa-split-paths.c (split_paths): When duplicating a block
19884 with an outgoing edge marked with EDGE_IRREDUCIBLE_LOOP, schedule
19885 loop cleanups.
19886
19887 2016-02-29 Richard Biener <rguenther@suse.de>
19888
19889 PR tree-optimization/69994
19890 * tree-ssa-reassoc.c (gimple_nop_conversion_p): New function.
19891 (get_unary_op): Look through nop conversions.
19892 (ops_equal_values_p): New function, look for equality diregarding
19893 nop conversions.
19894 (eliminate_plus_minus_pair): Use ops_equal_values_p
19895 (repropagate_negates): Do not use get_unary_op here.
19896
19897 2016-02-29 Martin Liska <mliska@suse.cz>
19898
19899 * system.h: Poison ENABLE_CHECKING macro.
19900
19901 2016-02-29 Martin Liska <mliska@suse.cz>
19902
19903 * hsa-gen.c (gen_body_from_gimple): Dump only if TDF_DETAILS
19904 is presented in dump flags.
19905 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
19906 (hsa_regalloc): Likewise.
19907
19908 2016-02-19 Richard Biener <rguenther@suse.de>
19909
19910 PR tree-optimization/69980
19911 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Update
19912 permutation of those we need to keep.
19913
19914 2016-02-29 Eric Botcazou <ebotcazou@adacore.com>
19915
19916 PR target/69706
19917 * config/sparc/sparc.c (ROUND_ADVANCE): Rename to...
19918 (NWORDS_UP): ...this
19919 (init_cumulative_args): Minor tweaks.
19920 (sparc_promote_function_mode): Likewise.
19921 (scan_record_type): Delete.
19922 (traverse_record_type): New function template.
19923 (classify_data_t): New structure type.
19924 (classify_registers): New inline function.
19925 (function_arg_slotno): In 64-bit mode, bail out early if FP slots are
19926 exhausted. Instantiate traverse_record_type on classify_registers and
19927 deal with the case of a structure passed in slot #15 with no FP field
19928 in the first word.
19929 (assign_data_t): New structure type.
19930 (compute_int_layout): New static function.
19931 (compute_fp_layout): Likewise.
19932 (count_registers): New inline function.
19933 (assign_int_registers): New static function.
19934 (assign_fp_registers): Likewise.
19935 (assign_registers): New inline function.
19936 (function_arg_record_value_1): Delete.
19937 (function_arg_record_value_2): Likewise.
19938 (function_arg_record_value_3): Likewise.
19939 (function_arg_record_value): Adjust to above changes. Instantiate
19940 traverse_record_type on count_registers to first count the number of
19941 registers to be used and then on assign_registers to assign them.
19942 (function_arg_union_value): Adjust to above renaming.
19943 (sparc_function_arg_1); Minor tweaks. Remove commented out code.
19944 (sparc_arg_partial_bytes): Adjust to above renaming. Deal with the
19945 case of a structure passed in slot #15
19946 (sparc_function_arg_advance): Likewise.
19947 (function_arg_padding): Minor tweak.
19948
19949 2016-02-29 Richard Biener <rguenther@suse.de>
19950
19951 PR tree-optimization/69720
19952 * tree-vect-loop.c (get_initial_def_for_reduction): Avoid
19953 the adjustment_def path for possibly vectorized defs.
19954 (vect_create_epilog_for_reduction): Handle vectorized initial
19955 defs properly.
19956
19957 2016-02-28 Eric Botcazou <ebotcazou@adacore.com>
19958
19959 * config/i386/cygming.h (STACK_REALIGN_DEFAULT): Define.
19960
19961 2016-02-27 Jeff Law <law@redhat.com>
19962
19963 Revert
19964 2016-02-26 Richard Biener <rguenther@suse.de>
19965 Jeff Law <law@redhat.com>
19966
19967 PR tree-optimization/69740
19968 * cfghooks.c (remove_edge): Request loop fixups if we delete
19969 an edge that might turn an irreducible loop into a natural
19970 loop.
19971
19972 2016-02-27 Jakub Jelinek <jakub@redhat.com>
19973
19974 PR rtl-optimization/69896
19975 * tree-vect-generic.c (get_compute_type): Avoid single element
19976 vector types.
19977
19978 2016-02-26 Evandro Menezes <e.menezes@samsung.com>
19979
19980 Rename the AArch64 tuning option and related functions to enable the
19981 Newton series for the reciprocal square root to reflect its
19982 approximative characteristic.
19983
19984 * config/aarch64/aarch64-protos.h (aarch64_emit_swrsqrt): Rename
19985 function to "aarch64_emit_approx_rsqrt".
19986 * config/aarch64/aarch64-tuning-flags.def: Rename tuning flag to
19987 AARCH64_EXTRA_TUNE_APPROX_RSQRT.
19988 * config/aarch64/aarch64.c (exynosm1_tunigs): Use new flag name.
19989 (xgene1_tunings): Likewise.
19990 (use_rsqrt_p): Likewise.
19991 (aarch64_emit_swrsqrt): Use new function name.
19992 * config/aarch64/aarch64-simd.md (aarch64_rsqrts_*): Likewise.
19993 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): Reword the
19994 text explaining this option.
19995 * doc/invoke.texi (-mlow-precision-recip-sqrt): Likewise.
19996
19997 2016-02-26 Jakub Jelinek <jakub@redhat.com>
19998
19999 PR target/69969
20000 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't
20001 complain about -mallow-movmisalign without -mvsx if
20002 TARGET_ALLOW_MOVMISALIGN was not set explicitly.
20003
20004 2016-02-26 Joel Sherrill <joel@rtems.org>
20005
20006 * config.gcc: Add x86_64-*-rtems*.
20007 * config/i386/rtems-64.h: New file.
20008
20009 2016-02-26 Joel Sherrill <joel@rtems.org>
20010
20011 * config.gcc: Add aarch64-*-rtems*.
20012 * config/aarch64/rtems.h: New file.
20013
20014 2016-02-26 Segher Boessenkool <segher@kernel.crashing.org>
20015
20016 PR target/69946
20017 * config/rs6000/rs6000.c (rs6000_insn_for_shift_mask): Print rlwinm
20018 shift amount using %h. Add comment.
20019
20020 2016-02-26 Richard Biener <rguenther@suse.de>
20021 Jeff Law <law@redhat.com>
20022
20023 PR tree-optimization/69740
20024 * cfghooks.c (remove_edge): Request loop fixups if we delete
20025 an edge that might turn an irreducible loop into a natural
20026 loop.
20027
20028 2016-02-26 Martin Jambor <mjambor@suse.cz>
20029
20030 PR middle-end/69920
20031 * tree-sra.c (sra_modify_assign): Do not remove loads of
20032 uninitialized aggregates to SSA_NAMEs.
20033
20034 2016-02-26 Richard Henderson <rth@redhat.com>
20035
20036 PR target/69709
20037 * config/s390/s390.md (risbg and risbgn splitters): Allocate new
20038 pseudo in case the target rtx matches the source of the left
20039 shift.
20040
20041 2016-02-26 Martin Jambor <mjambor@suse.cz>
20042
20043 PR hsa/69568
20044 * hsa.h (hsa_type_packed_p): Declare.
20045 * hsa.c (hsa_type_packed_p): New function.
20046 * hsa-gen.c (mem_type_for_type): Use unsigned type for packed
20047 loads.
20048 (gen_hsa_insns_for_store): Use hsa_type_packed_p.
20049 * hsa-brig.c (emit_basic_insn): Likewise.
20050
20051 2016-02-26 Martin Jambor <mjambor@suse.cz>
20052
20053 pr hsa/69674
20054 * hsa-gen.c (gen_hsa_phi_from_gimple_phi): Use proper hsa type for
20055 pointers.
20056 (gen_hsa_addr): Allow integer constants in TMR_INDEX2.
20057
20058 2016-02-26 Martin Jambor <mjambor@suse.cz>
20059
20060 * hsa.h (is_a_helper): New overload for hsa_op_immed for
20061 hsa_op_with_type operands.
20062 (hsa_unsigned_type_for_type): Declare.
20063 * hsa.c (hsa_unsigned_type_for_type): New function.
20064 * hsa-gen.c (gen_hsa_binary_operation): Use hsa_unsigned_type_for_type.
20065 (gen_hsa_insns_for_operation_assignment): Satisfy constrains of
20066 the finalizer. Do not emit extra move.
20067
20068 2016-02-26 Martin Jambor <mjambor@suse.cz>
20069
20070 * hsa-gen.c (gen_hsa_ternary_atomic_for_builtin): Fail in presence of
20071 atomic operations in private segment.
20072
20073 2016-02-26 Martin Jambor <mjambor@suse.cz>
20074
20075 * omp-low.c (grid_find_ungridifiable_statement): Store problematic
20076 statements to wi->info. Also disallow omp simd constructs.
20077 (grid_target_follows_gridifiable_pattern): Use wi.info to dump reason
20078 for not gridifying. Dump special string for omp_for.
20079
20080 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20081
20082 PR target/69245
20083 * config/aarch64/aarch64.c (aarch64_set_current_function):
20084 Save/restore target globals when switching to
20085 target_option_default_node.
20086
20087 2016-02-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20088
20089 PR target/69613
20090 * config/aarch64/aarch64.c (aarch64_shift_truncation_mask):
20091 Return 0 if !SHIFT_COUNT_TRUNCATED.
20092
20093 2016-02-26 Jakub Jelinek <jakub@redhat.com>
20094 Eric Botcazou <ebotcazou@adacore.com>
20095
20096 PR rtl-optimization/69891
20097 * dse.c (scan_insn): If we can't figure out memset arguments
20098 or they are non-constant, call clear_rhs_from_active_local_stores.
20099
20100 2016-02-26 Martin Liska <mliska@suse.cz>
20101
20102 * doc/extend.texi: Mention clog10, clog10f an clog10l
20103 in Builtins section.
20104
20105 2016-02-26 Martin Liska <mliska@suse.cz>
20106
20107 * dwarf2out.c (new_loc_descr): Replace ENABLE_CHECKING with
20108 CHECKING_P.
20109 (resolve_args_picking_1): Likewise.
20110 * dwarf2out.h (struct GTY): Likewise.
20111
20112 2016-02-26 Martin Liska <mliska@suse.cz>
20113
20114 * hsa-gen.c (generate_hsa): Replace ENABLE_CHECKING macro
20115 with flag_checking.
20116 * hsa-regalloc.c (linear_scan_regalloc): Likewise.
20117
20118 2016-02-26 Markus Trippelsdorf <markus@trippelsdorf.de>
20119 Martin Liska <mliska@suse.cz>
20120
20121 * doc/install.texi: Mention --enable-valgrind-annotations.
20122
20123 2016-02-26 Richard Biener <rguenther@suse.de>
20124
20125 PR tree-optimization/69551
20126 * tree-ssa-structalias.c (get_constraint_for_ssa_var): When
20127 looking through aliases adjust DECL_PT_UID to refer to the
20128 ultimate alias target.
20129
20130 2016-02-25 Martin Liska <mliska@suse.cz>
20131
20132 PR middle-end/69919
20133 * alloc-pool.c (after_memory_report): New variable.
20134 * alloc-pool.h (base_pool_allocator ::release): Do not use
20135 the infrastructure if after_memory_report.
20136 * toplev.c (toplev::main): Mark after memory report.
20137
20138 2016-02-25 Richard Biener <rguenther@suse.de>
20139
20140 PR tree-optimization/48795
20141 * tree-vrp.c (check_array_ref): Use array_at_struct_end_p.
20142
20143 2016-02-25 Ilya Verbin <ilya.verbin@intel.com>
20144
20145 PR driver/68463
20146 * config/gnu-user.h (CRTOFFLOADBEGIN): Define. Add crtoffloadbegin.o if
20147 offloading is enabled and -fopenacc or -fopenmp is specified.
20148 (CRTOFFLOADEND): Likewise.
20149 (GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
20150 (GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
20151 * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
20152 (offload_objects_file_name): New static var.
20153 (tool_cleanup): Remove offload_objects_file_name file.
20154 (find_offloadbeginend): Replace with ...
20155 (find_crtoffloadtable): ... this.
20156 (run_gcc): Remove offload_argc and offload_argv.
20157 Get offload_objects_file_name from -foffload-objects=... option.
20158 Read names of object files with offload from this file, pass them to
20159 compile_images_for_offload_targets. Don't call find_offloadbeginend and
20160 don't pass offloadbegin and offloadend to the linker. Don't pass
20161 offload non-LTO files to the linker, because now they're not claimed.
20162
20163 2016-02-25 Jan Hubicka <hubicka@ucw.cz>
20164
20165 PR ipa/69630
20166 * ipa-devirt.c (possible_polymorphic_call_targets): Do not ICE
20167 on builtin_unreachable.
20168
20169 2016-02-25 Jakub Jelinek <jakub@redhat.com>
20170
20171 PR rtl-optimization/69896
20172 * regcprop.c: Include cfgrtl.h.
20173 (copyprop_hardreg_forward_1): If noop_p insn uses narrower
20174 than remembered mode, either delete it (if noop_move_p), or
20175 treat like copy_p but not noop_p instruction.
20176
20177 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20178
20179 PR debug/69705
20180 * dwarf2out.c (gen_variable_die): Work around buggy LTO
20181 - allow NULL decl for Fortran DW_TAG_common_block variables.
20182
20183 2016-02-24 Jason Merrill <jason@redhat.com>
20184
20185 * common.opt (flifetime-dse): Add -flifetime-dse=1.
20186
20187 2016-02-24 Richard Biener <rguenther@suse.de>
20188 Jakub Jelinek <jakub@redhat.com>
20189
20190 PR middle-end/69760
20191 * tree-scalar-evolution.c (interpret_rhs_expr): Re-write
20192 conditionally executed ops to well-defined overflow behavior.
20193
20194 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20195
20196 PR middle-end/69915
20197 * tree.c (build_vector_from_ctor): Fix handling of VECTOR_CST
20198 elements.
20199
20200 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20201
20202 PR rtl-optimization/69886
20203 * gcse.c (can_assign_to_reg_without_clobbers_p): Accept mode
20204 argument. Use it when checking validity of set instructions.
20205 (want_to_gcse_p): Pass mode to can_assign_to_reg_without_clobbers_p.
20206 (compute_ld_motion_mems): Update can_assign_to_reg_without_clobbers_p
20207 callsite.
20208 * rtl.h (can_assign_to_reg_without_clobbers_p): Update prototype.
20209 * store-motion.c (find_moveable_store): Update
20210 can_assign_to_reg_without_clobbers_p callsite.
20211
20212 2016-02-24 Richard Biener <rguenther@suse.de>
20213
20214 PR middle-end/68963
20215 * tree-ssa-loop-niter.c (derive_constant_upper_bound_ops): Fix
20216 bogus check.
20217 (record_nonwrapping_iv): Do not fall back to the low/high bound
20218 for non-constant IV bases if the stmt is not always executed.
20219
20220 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20221
20222 * config/arm/arm-cores.def (cortex-a32): New entry.
20223 * config/arm/arm-tables.opt: Regenerate.
20224 * config/arm/arm-tune.md: Regenerate.
20225 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a32.
20226 * config/arm/t-aprofile: Handle mcpu=cortex-a32.
20227 * doc/invoke.texi (ARM Options): Document cortex-a32 as value
20228 for -mcpu and -mtune.
20229
20230 2016-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20231
20232 PR target/69875
20233 * config/arm/arm.h (TARGET_HAVE_LPAE): Define.
20234 * config/arm/unspecs.md (VUNSPEC_LDRD_ATOMIC): New value.
20235 * config/arm/sync.md (arm_atomic_loaddi2_ldrd): New pattern.
20236 (atomic_loaddi_1): Delete.
20237 (atomic_loaddi): Rewrite expander using the above changes.
20238
20239 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20240
20241 PR c/69918
20242 * params.def (PARAM_MAX_SSA_NAME_QUERY_DEPTH): Bump default from
20243 2 to 3.
20244
20245 2016-02-24 Jakub Jelinek <jakub@redhat.com>
20246 Richard Biener <rguenth@suse.de>
20247
20248 PR middle-end/69909
20249 * expr.c (expand_expr_real_1) <normal_inner_ref>: Avoid
20250 set_mem_attributes if tem is SSA_NAME which got expanded
20251 as a MEM.
20252
20253 2016-02-24 Richard Biener <rguenther@suse.de>
20254
20255 PR tree-optimization/69907
20256 * tree-vect-stmts.c (vectorizable_load): Check for gaps at the
20257 end of permutations for BB vectorization.
20258
20259 2016-02-24 Christian Bruel <christian.bruel@st.com>
20260
20261 * config/arm/arm-c.c (arm_option_override): Initialize
20262 target_option_current_node.
20263 * config/arm/arm.c (arm_pragma_target_parse): Replace
20264 build_target_option_node call by target_option_current_node.
20265 Set target_option_current_node.
20266 Fix comments.
20267
20268 2016-02-23 David Edelsohn <dje.gcc@gmail.com>
20269
20270 PR target/69810
20271 * config/rs6000/rs6000.md (zero_extendqi<mode>2_dot): Convert from
20272 define_insn_and_split to define_insn.
20273 (zero_extendqi<mode>2_dot2): Same.
20274 (extendqi<mode>2_dot): Same.
20275 (extendqi<mode>2_dot2): Same.
20276
20277 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
20278
20279 * config/arm/exynos-m1.md: Change cost of STP, fix bypass for stores
20280 and add bypass for AES{D,E} and AESMC pairs.
20281 * config/aarch64/aarch64.c (exynosm1_tunings): Enable fusion of AES{D,E}
20282 and AESMC pairs.
20283
20284 2016-02-23 Evandro Menezes <e.menezes@samsung.com>
20285
20286 * config/aarch64/aarch64.c (exynosm1_tunings): Enable the Newton
20287 series for reciprocal square root in Exynos M1.
20288
20289 2016-02-23 Martin Sebor <msebor@redhat.com>
20290
20291 PR c/69759
20292 * doc/extend.texi (Other Builtins): Document __builtin_alloca and
20293 __builtin_alloca_with_align.
20294
20295 2016-02-23 Richard Henderson <rth@redhat.com>
20296
20297 * config/i386/i386-c.c (ix86_target_macros): Remove __SEG_TLS.
20298 (ix86_register_pragmas): Remove __seg_tls.
20299 * config/i386/i386-protos.h (ADDR_SPACE_SEG_TLS): Remove.
20300 * config/i386/i386.c (ix86_print_operand_address_as): Don't handle it.
20301 (ix86_addr_space_subset_p, TARGET_ADDR_SPACE_SUBSET_P): Remove.
20302 (ix86_addr_space_convert, TARGET_ADDR_SPACE_CONVERT): Remove.
20303 (ix86_addr_space_debug, TARGET_ADDR_SPACE_DEBUG): Remove.
20304 * doc/extend.texi (__seg_tls): Remove item.
20305
20306 2016-02-23 Richard Biener <rguenther@suse.de>
20307
20308 * alloc-pool.h (struct allocation_object): Make id member
20309 conditional on CHECKING_P again.
20310 (get_instance): Adjust.
20311 (base_pool_allocator): Likewise.
20312
20313 2016-02-23 Thomas Schwinge <thomas@codesourcery.com>
20314
20315 * tree-parloops.c (create_parallel_loop, gen_parallel_loop)
20316 (parallelize_loops): In OpenACC kernels mode, set n_threads to
20317 zero.
20318 (pass_parallelize_loops::gate): In OpenACC kernels mode, gate on
20319 flag_openacc.
20320 * tree-ssa-loop.c (gate_oacc_kernels): Likewise.
20321
20322 2016-02-23 Richard Biener <rguenther@suse.de>
20323
20324 * mem-stats.h (struct mem_usage): Use PRIu64 for printing size_t.
20325 * bitmap.h (struct bitmap_usage): Likewise.
20326 (bitmap_move): Declare.
20327 * bitmap.c (register_overhead): Take size_t argument.
20328 (bitmap_move): New function.
20329 * df-problems.c (df_rd_transfer_function): Use bitmap_move
20330 to properly account overhead.
20331 * tree.c (free_node): Use tree_size.
20332
20333 2016-02-23 Jakub Jelinek <jakub@redhat.com>
20334
20335 PR c++/69902
20336 * fold-const.c (fold_truth_not_expr): Propagate TREE_NO_WARNING
20337 when inverting comparison.
20338
20339 PR c/69900
20340 * common.opt (Wunreachable-code): Add Warning flag.
20341
20342 2016-02-23 Mark Wielaard <mjw@redhat.com>
20343 Jakub Jelinek <jakub@redhat.com>
20344
20345 PR c/69911
20346 * cgraphunit.c (check_global_declaration): Check main_input_filename
20347 and DECL_SOURCE_FILE are not NULL.
20348
20349 2016-02-23 Martin Jambor <mjambor@suse.cz>
20350
20351 PR tree-optimization/69666
20352 * tree-sra.c (sra_modify_assign): Do not attempt to create
20353 default_def replacements for unscalarizable regions.
20354
20355 2016-02-20 Mark Wielaard <mjw@redhat.com>
20356
20357 PR c/28901
20358 * cgraphunit.c (check_global_declaration): Check level of
20359 warn_unused_const_variable and main_input_filename.
20360 * doc/invoke.texi (Warning Options): Add -Wunused-const-variable=.
20361 (-Wunused-variable): For C implies -Wunused-const-variable=1.
20362 (-Wunused-const-variable): Explain levels 1 and 2.
20363
20364 2016-02-22 Jakub Jelinek <jakub@redhat.com>
20365
20366 PR target/69888
20367 * config/i386/i386.c (decide_alg): Ensure we don't recurse with
20368 identical arguments. Formatting and spelling fixes.
20369
20370 PR target/69885
20371 * doc/md.texi (ashl@var{m}3): Document that mode of operand 2 must
20372 be specified.
20373
20374 PR target/69894
20375 PR target/69895
20376 * config/m68k/t-opts (OPTIONS_H_EXTRA): Add m68k-microarchs.def
20377 and m68k-devices.def.
20378 * config/c6x/t-c6x (OPTIONS_H_EXTRA): Add c6x-isas.def.
20379 * config/aarch64/t-aarch64 (OPTIONS_H_EXTRA): Add aarch64-arches.def.
20380
20381 2016-02-22 Cesar Philippidis <cesar@codesourcery.com>
20382
20383 * config/nvptx/nvptx.c (nvptx_gen_shuffle): Add support for QImode
20384 and HImode registers.
20385
20386 2016-02-22 Richard Biener <rguenther@suse.de>
20387
20388 PR tree-optimization/69882
20389 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Properly
20390 preserve permutations present because of gaps.
20391 (vect_supported_load_permutation_p): Always continue checking
20392 permutations after vect_attempt_slp_rearrange_stmts.
20393
20394 2016-02-22 Bin Cheng <bin.cheng@arm.com>
20395
20396 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Dump
20397 min_profitable_estimate, rather than min_profitable_iters.
20398
20399 2016-02-22 Jakub Jelinek <jakub@redhat.com>
20400
20401 PR target/69885
20402 * config/m68k/m68k.md (ashldi3, ashrdi3, lshrdi3): Use
20403 SImode for last match_operand.
20404
20405 2016-02-22 Martin Liska <mliska@suse.cz>
20406
20407 * hsa-gen.c (gen_hsa_clrsb): In case of zero value,
20408 return bitsize - 1 as the return value.
20409
20410 2016-02-22 Oleg Endo <olegendo@gcc.gnu.org>
20411
20412 PR target/69806
20413 PR target/54089
20414 * config/sh/sh.c (sh_lshrsi_clobbers_t_reg_p, sh_dynamicalize_shift_p):
20415 Handle negative shift counts.
20416 * config/sh/sh.md (ashlsi3, lshrsi3_n, lshrsi3_n_clobbers_t): Don't use
20417 force_reg on the shift constant.
20418 (lshrsi3): Likewise. Expand into lshrsi3_n* instead of lshrsi3_d.
20419 (lshrsi3_d): Handle negative shift counts.
20420
20421 2016-02-22 Richard Biener <rguenther@suse.de>
20422 Tom de Vries <tom@codesourcery.com>
20423
20424 * graph.c: Include dumpfile.h.
20425 (print_graph_cfg): Split into three overloads.
20426 * gdbhooks.py (class DotFn): Add and instantiate, adding command dot-fn.
20427
20428 2016-02-22 Tom de Vries <tom@codesourcery.com>
20429
20430 * gdbhooks.py (class DumpFn): Add and instantiate, adding command
20431 dump-fn.
20432
20433 2016-02-22 Richard Biener <rguenther@suse.de>
20434
20435 PR ipa/37448
20436 * ipa-inline-transform.c (inline_call): When not updating
20437 overall summaries adjust self size by the growth estimate.
20438 * ipa-inline.c (inline_to_all_callers_1): Add to the callers
20439 hash-set, do not update overall summaries here. Renamed from ...
20440 (inline_to_all_callers): ... this which is now wrapping the
20441 above and performing delayed overall summary update.
20442 (early_inline_small_functions): Delay updating of the overall
20443 summary.
20444
20445 2016-02-21 Markus Trippelsdorf <markus@trippelsdorf.de>
20446
20447 * tree-chkp.c (chkp_mark_invalid_bounds_walker): Initialize
20448 variable.
20449
20450 2016-02-19 Jakub Jelinek <jakub@redhat.com>
20451
20452 PR driver/69805
20453 * gcc.c (LINK_COMMAND_SPEC, GOMP_SELF_SPECS): Use
20454 :%* in %:gt() argument.
20455 (greater_than_spec_func): Adjust for expecting only numbers,
20456 if there are more than two numbers, compare the last two.
20457
20458 2016-02-19 Jonathan Wakely <jwakely@redhat.com>
20459
20460 * doc/invoke.texi (C++ Dialect Options): Clarify interaction of
20461 -Wnarrowing with -std.
20462
20463 2016-02-19 Jakub Jelinek <jakub@redhat.com>
20464
20465 PR c++/69851
20466 * expr.c (store_field): Don't use bit-field path if exp is
20467 COMPONENT_REF with TREE_ADDRESSABLE type, where TYPE_SIZE is
20468 different from bitsize, but DECL_SIZE of FIELD_DECL is bitsize
20469 and the assignment can be performed by bitwise copy. Formatting
20470 fix.
20471
20472 PR middle-end/69838
20473 * lra.c (lra_process_new_insns): If non-call exceptions are enabled,
20474 call copy_reg_eh_region_note_forward on before and/or after sequences
20475 and remove note from insn if it no longer can throw.
20476
20477 PR target/69820
20478 * config/i386/sse.md (VI_512): Only include V64QImode and V32HImode
20479 if TARGET_AVX512BW.
20480
20481 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20482
20483 * config/s390/vector.md: Add missing commutative operand markers
20484 to the patterns which qualify for one.
20485 * config/s390/vx-builtins.md: Likewise.
20486
20487 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20488
20489 * config/s390/vector.md (VI, VI_QHS): Add single element vector
20490 types to mode iterators.
20491 (vec_double): ... and mode attribute.
20492 * config/s390/vx-builtins.md (non_vec_int): Likewise.
20493
20494 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20495
20496 * config/s390/vector.md ("<ti*>add<mode>3", "<ti*>sub<mode>3"):
20497 Change the predicate of op2 from nonimmediate to general and let
20498 reload fix it if necessary.
20499
20500 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20501
20502 * config/s390/vecintrin.h (vec_sub_u128): Define missing macro.
20503
20504 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20505
20506 * config/s390/s390.c (s390_expand_vcond): Use the compare operand
20507 mode.
20508
20509 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20510
20511 * config/s390/s390-protos.h: Add s390_expand_vec_movstr prototype.
20512 * config/s390/s390.c (s390_expand_vec_movstr): New function.
20513 * config/s390/s390.md ("movstr<P:mode>"): Call
20514 s390_expand_vec_movstr.
20515
20516 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20517
20518 * config/s390/s390.md: Add missing output modifier for operand 1
20519 to print it as address properly.
20520
20521 2016-02-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
20522
20523 * config/s390/2827.md: Rename ooo_* insn attributes to zEC12_*.
20524 * config/s390/2964.md: New file.
20525 * config/s390/s390.c (s390_get_sched_attrmask): Use the right set
20526 of insn grouping attributes depending on the CPU level.
20527 (s390_get_unit_mask): New function.
20528 (s390_sched_score): Remove the OOO from the scheduling macros.
20529 Add loop to calculate a score for the instruction mix.
20530 (s390_sched_reorder): Likewise plus improve debug output.
20531 (s390_sched_variable_issue): Rename macros as above. Calculate
20532 the unit distances after actually scheduling an insn. Improve
20533 debug output.
20534 (s390_sched_init): Clear last_scheduled_unit_distance array.
20535 * config/s390/s390.md: Include 2964.md.
20536
20537 2016-02-18 Jakub Jelinek <jakub@redhat.com>
20538
20539 PR target/69671
20540 * config/i386/sse.md (*<floatsuffix>floatv2div2sf2_mask_1,
20541 *avx512vl_<code>v2div2qi2_mask_1, *avx512vl_<code><mode>v4qi2_mask_1,
20542 *avx512vl_<code><mode>v8qi2_mask_1, *avx512vl_<code><mode>v4hi2_mask_1,
20543 *avx512vl_<code>v2div2hi2_mask_1, *avx512vl_<code>v2div2si2_mask_1,
20544 *avx512f_<code>v8div16qi2_mask_1): New insns.
20545
20546 2016-02-18 Michael Meissner <meissner@linux.vnet.ibm.com>
20547
20548 PR target/68404
20549 * config/rs6000/predicates.md (fusion_gpr_addis): Revert
20550 2016-02-09 change.
20551
20552 * config/rs6000/rs6000.md (fusion_gpr_load_<mode>): Remove
20553 earlyclobber from target. Use wF constraint for fused memory
20554 address.
20555 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise.
20556
20557 2016-02-18 Jakub Jelinek <jakub@redhat.com>
20558 Martin Liska <mliska@suse.cz>
20559
20560 PR sanitizer/69863
20561 * cfgexpand.c (asan_sanitize_stack_p): New function.
20562 (partition_stack_vars): Use the function.
20563 (expand_stack_vars): Likewise.
20564 (defer_stack_allocation): Likewise.
20565 (expand_used_vars): Likewise.
20566
20567 2016-02-18 Richard Biener <rguenther@suse.de>
20568
20569 PR middle-end/69553
20570 * fold-const.c (operand_equal_p): Properly compare offsets for
20571 IMAGPART_EXPR and ARRAY_REF.
20572
20573 2016-02-18 Nick Clifton <nickc@redhat.com>
20574
20575 PR target/62254
20576 PR target/69610
20577 * config/arm/arm.c (arm_option_override_internal): Disable
20578 interworking if the target does not support thumb instructions.
20579 (arm_reload_in_hi): Handle the case where a register to register
20580 move needs reloading because there is no simple pattern to handle
20581 it.
20582 (arm_reload_out_hi): Likewise.
20583
20584 2016-02-18 Richard Biener <rguenther@suse.de>
20585
20586 PR middle-end/69854
20587 * match.pd: Don't use fold_binary or fold_unary for folding
20588 constants.
20589
20590 2016-02-17 Jakub Jelinek <jakub@redhat.com>
20591
20592 PR c++/69850
20593 * gimplify.c (gimplify_cond_expr): Call gimple_set_no_warning
20594 on the cond_stmt from TREE_NO_WARNING on COND_EXPR_COND.
20595 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Don't
20596 warn on gimple_no_warning_p statements.
20597
20598 2016-02-17 Jonathan Wakely <jwakely@redhat.com>
20599
20600 * doc/extend.texi (C++ Attributes): Correct description of
20601 warn_unused type attribute.
20602
20603 2016-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
20604
20605 * config/rs6000/altivec.md (*altivec_lvxl_<mode>_internal): Output
20606 correct instruction.
20607
20608 2016-02-17 Richard Biener <rguenther@suse.de>
20609
20610 PR rtl-optimization/69609
20611 * bb-reorder.c (struct bbro_basic_block_data): Add priority member.
20612 (find_traces_1_round): When ending a trace update cached priority
20613 of successors.
20614 (bb_to_key): Use cached priority when available.
20615 (copy_bb): Initialize cached priority.
20616 (reorder_basic_blocks_software_trace_cache): Likewise.
20617
20618 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20619
20620 PR target/69161
20621 * config/aarch64/predicates.md (aarch64_comparison_operator_mode):
20622 New predicate.
20623 (aarch64_comparison_operator): Break overly long line into two.
20624 (aarch64_comparison_operation): Likewise.
20625 * config/aarch64/aarch64.md (cstorecc4): Use
20626 aarch64_comparison_operator_mode instead of
20627 aarch64_comparison_operator.
20628 (cstore<mode>4): Likewise.
20629 (aarch64_cstore<mode>): Likewise.
20630 (*cstoresi_insn_uxtw): Likewise.
20631 (cstore<mode>_neg): Likewise.
20632 (*cstoresi_neg_uxtw): Likewise.
20633
20634 2016-02-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
20635
20636 PR target/69161
20637 * config/arm/predicates.md (arm_comparison_operator_mode):
20638 New predicate.
20639 * config/arm/arm.md (*mov_scc): Use arm_comparison_operator_mode
20640 instead of arm_comparison_operator.
20641 (*mov_negscc): Likewise.
20642 (*mov_notscc): Likewise.
20643 * config/arm/thumb2.md (*thumb2_mov_scc): Likewise.
20644 (*thumb2_mov_negscc): Likewise.
20645 (*thumb2_mov_negscc_strict_it): Likewise.
20646 (*thumb2_mov_notscc): Likewise.
20647 (*thumb2_mov_notscc_strict_it): Likewise.
20648
20649 2016-02-17 Wilco Dijkstra <wdijkstr@arm.com>
20650
20651 * config/aarch64/aarch64.c (aarch64_internal_mov_immediate):
20652 Add missing return.
20653
20654 2016-02-17 Eric Botcazou <ebotcazou@adacore.com>
20655
20656 * config/visium/visium.c (machine_libfunc_index): New enum.
20657 (machine_libfuncs): New structure.
20658 (visium_libfuncs): New static variable.
20659 (TARGET_INIT_LIBFUNCS): Define to...
20660 (visium_init_libfuncs): ...this. New function.
20661 (expand_block_move_4): Use the appropriate libfunc.
20662 (expand_block_move_2): Likewise.
20663 (expand_block_move_1): Likewise.
20664 (expand_block_set_4): Likewise.
20665 (expand_block_set_2): Likewise.
20666 (expand_block_set_1): Likewise.
20667 (visium_trampoline_init): Likewise.
20668
20669 2016-02-17 Nick Clifton <nickc@redhat.com>
20670
20671 * config/msp430/msp430.c (msp430_mcu_data): Sync with data from
20672 TI's devices.csv file as of March 2016.
20673
20674 2016-02-16 Kelvin Nilsen <kelvin@gcc.gnu.org>
20675
20676 PR Target/48344
20677 * opts-global.c (handle_common_deferred_options): Introduce and
20678 initialize two global variables to remember command-line options
20679 specifying a stack-limiting register.
20680 * opts.h: Add extern declarations of the two new global variables.
20681 * emit-rtl.c (init_emit_once): Initialize the stack_limit_rtx
20682 variable based on the values of the two new global variables.
20683
20684 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20685
20686 PR c/69835
20687 * common.opt (Wnonnull-compare): New warning.
20688 * doc/invoke.texi (-Wnonnull): Remove text about comparison
20689 of arguments against NULL.
20690 (-Wnonnull-compare): Document.
20691 * Makefile.in (OBJS): Add gimple-ssa-nonnull-compare.o.
20692 * tree-pass.h (make_pass_warn_nonnull_compare): Declare.
20693 * passes.def (pass_warn_nonnull_compare): Add.
20694 * gimple-ssa-nonnull-compare.c: New file.
20695
20696 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20697
20698 * config/aarch64/aarch64.c (cortexa57_tunings): Remove
20699 AARCH64_EXTRA_TUNE_RECIP_SQRT.
20700
20701 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20702
20703 * config/aarch64/aarch64.c (use_rsqrt_p): Always use software
20704 reciprocal sqrt for -mlow-precision-recip-sqrt.
20705
20706 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20707 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
20708
20709 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Refactor,
20710 always use lane loads to construct non-constant vectors.
20711
20712 2016-02-16 James Greenhalgh <james.greenhalgh@arm.com>
20713
20714 * config/aarch64/aarch64.md
20715 (arch64_sqrdml<SQRDMLH_AS:rdma_as>h_lane<mode>): Fix register
20716 constraints for operand 3.
20717 (aarch64_sqrdml<SQRDMLH_AS:rdma_as>h_laneq<mode>): Likewise.
20718
20719 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20720 Richard Biener <rguenther@suse.de>
20721
20722 PR tree-optimization/69820
20723 * tree-vect-patterns.c (type_conversion_p): Return false if
20724 *orig_type is unsigned single precision or boolean.
20725 (vect_recog_dot_prod_pattern, vect_recog_widen_mult_pattern):
20726 Formatting fix.
20727
20728 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20729
20730 PR rtl-optimization/69764
20731 PR rtl-optimization/69771
20732 * optabs.c (expand_binop): Ensure for shift optabs invalid CONST_INT
20733 op1 is valid for GET_MODE_INNER (mode) and force it into a reg.
20734
20735 2016-02-16 Richard Biener <rguenther@suse.de>
20736
20737 PR tree-optimization/69776
20738 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Get alias
20739 sets from caller.
20740 (indirect_refs_may_alias_p): Likewise.
20741 (refs_may_alias_p_1): Pass alias sets as from ao_ref.
20742 * tree-ssa-sccvn.c (vn_reference_lookup): Also adjust vr alias-set
20743 according to tbaa_p.
20744 * tree-ssa-dom.c (lookup_avail_expr): Add tbaa_p flag.
20745 (optimize_stmt): For redundant store discovery do not allow tbaa.
20746
20747 2016-02-16 Bernd Schmidt <bschmidt@redhat.com>
20748
20749 PR tree-optimization/69714
20750 * tree-ssa-math-opts.c (find_bswap_or_nop): Revert previous change.
20751 Return NULL if we have irrelevant high bytes on BIG_ENDIAN.
20752
20753 2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
20754
20755 * config/arc/arc-modes.def (CC_FPU, CC_FPU_UNEQ): New modes.
20756 * config/arc/arc-opts.h (FPU_SP, FPU_SF, FPU_SC, FPU_SD, FPU_DP)
20757 (FPU_DF, FPU_DC, FPU_DD, FXP_DP): Define.
20758 * config/arc/arc.c (arc_init): Check FPU options.
20759 (get_arc_condition_code): Handle new CC_FPU* modes.
20760 (arc_select_cc_mode): Likewise.
20761 (arc_conditional_register_usage): Allow 64 bit datum into even-odd
20762 register pair only. Allow access for ARCv2 accumulator.
20763 (gen_compare_reg): Whenever we have FPU support use FPU compare
20764 instructions.
20765 (arc_reorg): Don't generate brcc insns when FPU compare
20766 instructions are involved.
20767 * config/arc/arc.h (TARGET_DPFP): Add TARGET_FP_DPAX condition.
20768 (TARGET_OPTFPE): Add condition when ARC EM can use optimized
20769 floating point emulation.
20770 (ACC_REG_FIRST, ACC_REG_LAST, ACCL_REGNO, ACCH_REGNO): Define.
20771 (REVERSE_CONDITION): Add new CC_FPU* modes.
20772 (TARGET_FP_SP_BASE): Define.
20773 (TARGET_FP_DP_BASE): Likewise.
20774 (TARGET_FP_SP_FUSED): Likewise.
20775 (TARGET_FP_DP_FUSED): Likewise.
20776 (TARGET_FP_SP_CONV): Likewise.
20777 (TARGET_FP_DP_CONV): Likewise.
20778 (TARGET_FP_SP_SQRT): Likewise.
20779 (TARGET_FP_DP_SQRT): Likewise.
20780 (TARGET_FP_DP_AX): Likewise.
20781 * config/arc/arc.md (ARCV2_ACC): New constant.
20782 (type): New fpu type attribute.
20783 (SDF): Conditional iterator.
20784 (cstore<mode>, cbranch<mode>): Change expand condition.
20785 (addsf3, subsf3, mulsf3, adddf3, subdf3, muldf3): New expands,
20786 handles FPU/FPX cases as well.
20787 * config/arc/arc.opt (mfpu): New option.
20788 * config/arc/fpx.md (addsf3_fpx, subsf3_fpx, mulsf3_fpx):
20789 Renamed.
20790 (adddf3, muldf3, subdf3): Removed.
20791 * config/arc/predicates.md (proper_comparison_operator): Recognize
20792 CC_FPU* modes.
20793 * config/arc/fpu.md: New file.
20794 * doc/invoke.texi (ARC Options): Document mfpu option.
20795
20796 2016-02-16 Richard Biener <rguenther@suse.de>
20797
20798 PR rtl-optimization/69291
20799 * ifcvt.c (noce_try_store_flag_constants): Re-instantiate
20800 noce_operand_ok check.
20801
20802 2016-02-16 Tom de Vries <tom@codesourcery.com>
20803
20804 PR lto/67709
20805 * omp-low.c (simd_clone_create): Remove call to
20806 symtab->call_cgraph_insertion_hooks.
20807
20808 2016-02-16 Jakub Jelinek <jakub@redhat.com>
20809
20810 PR tree-optimization/69802
20811 * tree-ssa-reassoc.c (update_range_test): If op is
20812 SSA_NAME_IS_DEFAULT_DEF, give up unless tem is a positive
20813 op == 1 test of precision 1 integral op, otherwise handle
20814 that case as op itself. Fix up formatting.
20815 (optimize_range_tests_to_bit_test, optimize_range_tests): Fix
20816 up formatting.
20817
20818 2016-02-16 Richard Biener <rguenther@suse.de>
20819
20820 PR tree-optimization/69586
20821 * tree-vrp.c (register_edge_assert_for_2): Handle all integral
20822 types for conversion sources.
20823
20824 2016-02-16 Richard Biener <rguenther@suse.de>
20825
20826 PR middle-end/69801
20827 * fold-const.c (operand_equal_p): For COND_EXPR zero operand
20828 mask OEP_ADDRESS_OF.
20829
20830 2016-02-16 Alan Modra <amodra@gmail.com>
20831
20832 PR target/68973
20833 * config/rs6000/rs6000.md (reload_vsx_from_gprsf): Rewrite splitter.
20834 (p8_mtvsrd_df, p8_mtvsrd_sf): New.
20835 (p8_mtvsrd_1, p8_mtvsrd_2): Delete.
20836 (p8_mtvsrwz): New.
20837 (p8_mtvsrwz_1, p8_mtvsrwz_2): Delete.
20838 (p8_xxpermdi_<mode>): Take two DF inputs rather than one TF.
20839 (p8_fmrgow_<mode>): Likewise.
20840 (reload_vsx_from_gpr<mode>): Make clobber IF. Adjust for above
20841 changes.
20842 (reload_fpr_from_gpr<mode>): Similarly. Use "d" for op0 constraint.
20843 (reload_vsx_from_gprsf): Use p8_mtvsrd_sf rather than attempting
20844 to use movdi_internal64. Remove op0_di.
20845 * config/rs6000/vsx.md (vsx_xscvspdpn_directmove): Make op1 SFmode.
20846
20847 2016-02-15 Evandro Menezes <e.menezes@samsung.com>
20848
20849 Add support for the FCCMP insn types
20850
20851 * config/aarch64/aarch64.md (fccmp): Change insn type.
20852 (fccmpe): Likewise.
20853 * config/aarch64/thunderx.md (thunderx_fcmp): Add "fccmp{s,d}" types.
20854 * config/arm/cortex-a53.md (cortex_a53_fpalu): Likewise.
20855 * config/arm/cortex-a57.md (cortex_a57_fp_cmp): Likewise.
20856 * config/arm/xgene1.md (xgene1_fcmp): Likewise.
20857 * config/arm/exynos-m1.md (exynos_m1_fp_ccmp): New insn reservation.
20858 * config/arm/types.md (fccmps): Add new insn type.
20859 (fccmpd): Likewise.
20860
20861 2016-02-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
20862
20863 * alias.c (get_alias_set): Fix a typo in comment.
20864
20865 2016-02-15 Richard Biener <rguenther@suse.de>
20866
20867 PR tree-optimization/69595
20868 * match.pd: Complete range test simplification to true.
20869
20870 2016-02-15 Bernd Schmidt <bschmidt@redhat.com>
20871
20872 PR rtl-optimization/69648
20873 * lra-constraints.c (update_ebb_live_info): Don't remove sets of
20874 pic_offset_table_rtx.
20875
20876 PR rtl-optimization/69752
20877 * ira.c (update_equiv_regs): When looking for more than a single SET,
20878 also take other side effects into account.
20879
20880 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
20881
20882 * config/s390/s390.c (s390_function_profiler): Add a new sequence
20883 for z900+ CPUs in 31-bit mode.
20884
20885 2016-02-15 Marcin Kościelnicki <koriakin@0x04.net>
20886
20887 * common/config/s390/s390-common.c (s390_supports_split_stack):
20888 New function.
20889 (TARGET_SUPPORTS_SPLIT_STACK): New macro.
20890 * config/s390/s390-protos.h: Add s390_expand_split_stack_prologue.
20891 * config/s390/s390.c (struct machine_function): New field
20892 split_stack_varargs_pointer.
20893 (s390_register_info): Mark r12 as clobbered if it'll be used as temp
20894 in s390_emit_prologue.
20895 (s390_emit_prologue): Use r12 as temp if r1 is taken by split-stack
20896 vararg pointer.
20897 (morestack_ref): New global.
20898 (SPLIT_STACK_AVAILABLE): New macro.
20899 (s390_expand_split_stack_prologue): New function.
20900 (s390_live_on_entry): New function.
20901 (s390_va_start): Use split-stack vararg pointer if appropriate.
20902 (s390_asm_file_end): Emit the split-stack note sections.
20903 (TARGET_EXTRA_LIVE_ON_ENTRY): New macro.
20904 * config/s390/s390.md (UNSPEC_STACK_CHECK): New unspec.
20905 (UNSPECV_SPLIT_STACK_CALL): New unspec.
20906 (UNSPECV_SPLIT_STACK_DATA): New unspec.
20907 (split_stack_prologue): New expand.
20908 (split_stack_space_check): New expand.
20909 (split_stack_data): New insn.
20910 (split_stack_call): New expand.
20911 (split_stack_call_*): New insn.
20912 (split_stack_cond_call): New expand.
20913 (split_stack_cond_call_*): New insn.
20914
20915 2016-02-15 Richard Biener <rguenther@suse.de>
20916
20917 PR tree-optimization/69783
20918 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
20919 Add trivially correct cases.
20920
20921 2016-02-15 Tom de Vries <tom@codesourcery.com>
20922
20923 PR lto/69655
20924 * lto-cgraph.c (input_offload_tables): Add and handle bool parameter
20925 do_force_output.
20926 * lto-streamer.h (input_offload_tables): Add and handle bool parameter.
20927
20928 2016-02-15 Richard Biener <rguenther@suse.de>
20929
20930 PR tree-optimization/69776
20931 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust prototype.
20932 * tree-ssa-sccvn.c (vn_reference_lookup): Add parameter to
20933 indicate whether we can use TBAA to disambiguate against stores.
20934 Use alias-set zero if not.
20935 (visit_reference_op_store): Do not use TBAA when looking up
20936 redundant stores.
20937 * tree-ssa-pre.c (compute_avail): Use TBAA here.
20938 (eliminate_dom_walker::before_dom_children): But not when looking
20939 up redundant stores.
20940
20941 2016-02-14 John David Anglin <danglin@gcc.gnu.org>
20942
20943 * config/pa/pa.md (absqi2, absghi2, bswaphi2, bswapsi2, bswapdi2): New.
20944
20945 2016-02-14 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
20946
20947 * config/i386/znver1.md
20948 (znver1_pop, znver1_pop_mem,
20949 znver1_load_imov_double_store,
20950 znver1_load_imov_direct_store,
20951 znver1_load_imov_direct_load,
20952 znver1_load_imov_double_load): Add new.
20953 (znver1_insn, znver1_insn_load): Add icmov type.
20954 (znver1_sseavx_fma,
20955 znver1_sseavx_fma_load,
20956 znver1_avx256_fma,
20957 znver1_avx256_fma_load): Fix pipe usage.
20958
20959 2016-02-14 Alan Modra <amodra@gmail.com>
20960
20961 PR target/68973
20962 * reload.c (find_reloads_address_1): For pre/post-inc/dec
20963 with an invalid hard reg, reload just the reg not the entire
20964 pre/post-inc/dec address expression.
20965
20966 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
20967
20968 PR target/67260
20969 * config/sh/sh.md (sibcall_value_pcrel): Replace =&k scratch reg with
20970 fixed R1_REG scratch reg.
20971 (sibcall_value_pcrel_fdpic): Likewise.
20972
20973 2016-02-13 Oleg Endo <olegendo@gcc.gnu.org>
20974
20975 PR target/67636
20976 PR target/64345
20977 * config/sh/sh.md (*zero_extract_3): New insn_and_split pattern.
20978
20979 2016-02-12 Walter Lee <walt@tilera.com>
20980
20981 * config/tilepro/t-tilepro: Replace CC_FOR_BUILD with CXX_FOR_BUILD.
20982 * config/tilegx/t-tilegx: Likewise.
20983
20984 2016-02-12 David Malcolm <dmalcolm@redhat.com>
20985
20986 PR other/69554
20987 * diagnostic-show-locus.c (struct line_span): New struct.
20988 (layout::get_first_line): Delete.
20989 (layout::get_last_line): Delete.
20990 (layout::get_num_line_spans): New member function.
20991 (layout::get_line_span): Likewise.
20992 (layout::print_heading_for_line_span_index_p): Likewise.
20993 (layout::get_expanded_location): Likewise.
20994 (layout::calculate_line_spans): Likewise.
20995 (layout::m_first_line): Delete.
20996 (layout::m_last_line): Delete.
20997 (layout::m_line_spans): New field.
20998 (layout::layout): Update comment. Replace m_first_line and
20999 m_last_line with m_line_spans, replacing their initialization
21000 with a call to calculate_line_spans.
21001 (diagnostic_show_locus): When printing source lines and
21002 annotations, rather than looping over a single span
21003 of lines, instead loop over each line_span within
21004 the layout, with an inner loop over the lines within them.
21005 Call the context's start_span callback when changing line spans.
21006 * diagnostic.c (diagnostic_initialize): Initialize start_span.
21007 (diagnostic_build_prefix): Break out the building of the location
21008 part of the string into...
21009 (diagnostic_get_location_text): ...this new function, rewriting
21010 it from nested ternary expressions to a sequence of "if"
21011 statements.
21012 (default_diagnostic_start_span_fn): New function.
21013 * diagnostic.h (diagnostic_start_span_fn): New typedef.
21014 (diagnostic_context::start_span): New field.
21015 (default_diagnostic_start_span_fn): New prototype.
21016
21017 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21018
21019 PR driver/69779
21020 * gcc.c (driver::finalize): Fix cleanup of "specs".
21021
21022 2016-02-12 David Malcolm <dmalcolm@redhat.com>
21023
21024 PR driver/69265
21025 PR driver/69453
21026 * gcc.c (driver::driver): Initialize m_option_suggestions.
21027 (driver::~driver): Clean up m_option_suggestions.
21028 (suggest_option): Convert to...
21029 (driver::suggest_option): ...this, and split out into
21030 driver::build_option_suggestions and find_closest_string.
21031 (driver::build_option_suggestions): New function, from
21032 first half of suggest_option. Special-case
21033 OPT_fsanitize_ and OPT_fsanitize_recover_, making use of
21034 the sanitizer_opts array. For options of enum types, add the
21035 various enum values to the candidate strings.
21036 (driver::handle_unrecognized_options): Remove "const".
21037 * gcc.h (driver::handle_unrecognized_options): Likewise.
21038 (driver::build_option_suggestions): New decl.
21039 (driver::suggest_option): New decl.
21040 (driver::m_option_suggestions): New field.
21041 * opts-common.c (add_misspelling_candidates): New function.
21042 * opts.c (sanitizer_opts): Remove decl of struct sanitizer_opts_s
21043 and make non-static.
21044 * opts.h (sanitizer_opts): New array decl.
21045 (add_misspelling_candidates): New function decl.
21046 * spellcheck.c (find_closest_string): New function.
21047 * spellcheck.h (find_closest_string): New function decl.
21048
21049 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21050
21051 PR rtl-optimization/69764
21052 PR rtl-optimization/69771
21053 * optabs.c (expand_binop_directly): For shift_optab_p, force
21054 convert_modes with VOIDmode if xop1 has VOIDmode.
21055
21056 2016-02-12 Ilya Enkovich <enkovich.gnu@gmail.com>
21057
21058 PR target/69729
21059 * lto-streamer-out.c (lto_output): Use thunk.add_pointer_bounds_args
21060 to correctly determine instrumentation thunks.
21061
21062 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21063
21064 PR ipa/69241
21065 * ipa-split.c (split_function): If split part returns TREE_ADDRESSABLE
21066 type by reference, force lhs on the call.
21067
21068 PR ipa/68672
21069 * ipa-split.c (split_function): Don't compute/use main_part_return_p.
21070 Compute retval and retbnd early in all cases if split_part_return_p
21071 and return_bb is not EXIT. Remove all clobber stmts and reset
21072 all debug stmts that refer to SSA_NAMEs defined in split part,
21073 except if it is retval, in that case replace the old retval with the
21074 lhs of the call to the split part.
21075
21076 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21077
21078 revert:
21079 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21080
21081 PR middle-end/66726
21082 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21083 whose result is used in PHI.
21084 (maybe_optimize_range_tests): Likewise.
21085 (final_range_test_p): Likweise.
21086
21087 2016-02-12 Kugan Vivekanandarajah <kuganv@linaro.org>
21088
21089 PR middle-end/66726
21090 * tree-ssa-reassoc.c (optimize_range_tests): Handle tcc_compare stmt
21091 whose result is used in PHI.
21092 (maybe_optimize_range_tests): Likewise.
21093 (final_range_test_p): Likweise.
21094
21095 2016-02-12 Jakub Jelinek <jakub@redhat.com>
21096
21097 * cgraph.c: Spelling fixes - behaviour -> behavior and
21098 neighbour -> neighbor.
21099 * target.def: Likewise.
21100 * sel-sched.c: Likewise.
21101 * config/mips/mips.c: Likewise.
21102 * config/arc/arc.md: Likewise.
21103 * config/arm/cortex-a57.md: Likewise.
21104 * config/arm/arm.c: Likewise.
21105 * config/arm/neon.md: Likewise.
21106 * config/arm/arm-c.c: Likewise.
21107 * config/vms/vms-c.c: Likewise.
21108 * config/s390/s390.c: Likewise.
21109 * config/i386/znver1.md: Likewise.
21110 * config/i386/i386.c: Likewise.
21111 * config/ia64/hpux-unix2003.h: Likewise.
21112 * config/msp430/msp430.md: Likewise.
21113 * config/rx/rx.c: Likewise.
21114 * config/rx/rx.md: Likewise.
21115 * config/aarch64/aarch64-simd.md: Likewise.
21116 * config/aarch64/aarch64.c: Likewise.
21117 * config/nvptx/nvptx.c: Likewise.
21118 * config/bfin/bfin.c: Likewise.
21119 * config/cris/cris.opt: Likewise.
21120 * config/rs6000/rs6000.c: Likewise.
21121 * target.h: Likewise.
21122 * spellcheck.c: Likewise.
21123 * ira-build.c: Likewise.
21124 * tree-inline.c: Likewise.
21125 * builtins.c: Likewise.
21126 * lra-constraints.c: Likewise.
21127 * explow.c: Likewise.
21128 * hwint.h: Likewise.
21129 * targhooks.c: Likewise.
21130 * tree-vect-data-refs.c: Likewise.
21131 * expr.c: Likewise.
21132 * doc/tm.texi: Likewise.
21133 * doc/extend.texi: Likewise.
21134 * doc/install.texi: Likewise.
21135 * doc/md.texi: Likewise.
21136 * tree-ssa-tail-merge.c: Likewise.
21137 * sched-int.h: Likewise.
21138 * match.pd: Likewise.
21139 * sched-ebb.c: Likewise.
21140 * target.def (omit_struct_return_reg): Likewise.
21141 * gimple-ssa-isolate-paths.c: Likewise.
21142 (find_implicit_erroneous_behaviour): Renamed to...
21143 (find_implicit_erroneous_behavior): ... this.
21144 (find_explicit_erroneous_behaviour): Renamed to...
21145 (find_explicit_erroneous_behavior): ... this.
21146 (gimple_ssa_isolate_erroneous_paths): Adjust caller.
21147
21148 2016-02-11 Segher Boessenkool <segher@kernel.crashing.org>
21149
21150 PR rtl-optimization/64682
21151 PR rtl-optimization/69567
21152 PR rtl-optimization/69737
21153 * combine.c (distribute_notes) <REG_DEAD>: If the register is set
21154 in I2 as well, just lose it.
21155
21156 2016-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21157
21158 * config/aarch64/aarch64.c (aarch64_last_printed_arch_string):
21159 New variable.
21160 (aarch64_last_printed_tune_string): Likewise.
21161 (aarch64_declare_function_name): Only output .arch assembler
21162 directive if it will be different from the previously output
21163 directive. Same for .tune comment but only if -dA is set.
21164 (aarch64_start_file): New function.
21165 (TARGET_ASM_FILE_START): Define.
21166
21167 2016-02-11 David Malcolm <dmalcolm@redhat.com>
21168
21169 PR plugins/69758
21170 * Makefile.in (PLUGIN_HEADERS): Add params.list.
21171
21172 2016-02-11 Jakub Jelinek <jakub@redhat.com>
21173
21174 PR target/65313
21175 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid
21176 -Wmaybe-uninitialized warning.
21177
21178 2016-02-11 Oleg Endo <olegendo@gcc.gnu.org>
21179
21180 PR target/69713
21181 * config/sh/sh.md (casesi_worker_0): Add T_REG use.
21182
21183 2016-02-11 Richard Biener <rguenther@suse.de>
21184
21185 PR rtl-optimization/69291
21186 * ifcvt.c (noce_try_store_flag_constants): Do not allow
21187 subexpressions affected by changing the result.
21188
21189 2016-02-10 Vladimir Makarov <vmakarov@redhat.com>
21190
21191 PR target/69148
21192 * lra-constraints.c (curr_insn_transform): Find in/out operands
21193 for secondary memory moves. Update dups.
21194
21195 2016-02-10 Yuri Rumyantsev <ysrumyan@gmail.com>
21196
21197 PR tree-optimization/69652
21198 * tree-vect-loop.c (optimize_mask_stores): Move declaration of STMT1
21199 to nested loop, did source re-formatting, skip debug statements,
21200 add check on statement with volatile operand, remove dead scalar
21201 statements.
21202
21203 2016-02-10 Jakub Jelinek <jakub@redhat.com>
21204 Patrick Palka <ppalka@gcc.gnu.org>
21205
21206 PR ipa/69241
21207 PR c++/69649
21208 * gimplify.c (gimplify_modify_expr): Set lhs even for noreturn
21209 calls if the return type is TREE_ADDRESSABLE.
21210 * cgraphunit.c (cgraph_node::expand_thunk): Likewise.
21211 * ipa-split.c (split_function): Fix doubled "we" in comment.
21212 Use void return type for the split part even if
21213 !split_point->split_part_set_retval.
21214
21215 2016-02-10 Bin Cheng <bin.cheng@arm.com>
21216
21217 PR tree-optimization/68021
21218 * tree-ssa-loop-ivopts.c (get_computation_aff): Set ratio to 1 if
21219 when computing the value of biv cand by itself.
21220
21221 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
21222
21223 * config/aarch64/aarch64.c (cortexa53_tunings): Enable AES fusion.
21224 (cortexa57_tunings): Likewise.
21225 (cortexa72_tunings): Likewise.
21226 (arch_macro_fusion_pair_p): Add support for AES fusion.
21227 * config/aarch64/aarch64-fusion-pairs.def: Add AES_AESMC entry.
21228 * config/arm/aarch-common.c (aarch_crypto_can_dual_issue):
21229 Allow virtual registers before reload so early scheduling works.
21230 * config/arm/cortex-a57.md (cortex_a57_crypto_simple): Use
21231 correct latency and pipeline.
21232 (cortex_a57_crypto_complex): Likewise.
21233 (cortex_a57_crypto_xor): Likewise.
21234 (define_bypass): Add AES bypass.
21235
21236 2016-02-10 Richard Biener <rguenther@suse.de>
21237
21238 PR tree-optimization/69726
21239 * passes.def: Add DCE pass before late uninit.
21240 * match.pd: Add A ? B : (!A ? C : X) -> A ? B : C patterns to
21241 really fixup if-conversions job.
21242
21243 2016-02-10 Wilco Dijkstra <wdijkstr@arm.com>
21244
21245 * config/arm/arm.c (arm_cortex_a53_tune): Enable AES fusion.
21246 (arm_cortex_a57_tune): Likewise.
21247 (aarch_macro_fusion_pair_p): Add support for AES fusion.
21248 * config/arm/arm-protos.h (fuse_ops): Add FUSE_AES_AESMC.
21249
21250 2016-02-10 Eric Botcazou <ebotcazou@adacore.com>
21251
21252 * timevar.def (TV_PHASE_DBGINFO): Delete.
21253 (TV_PHASE_CHECK_DBGINFO): Likewise.
21254 * varpool.c (varpool_node::assemble_decl): Do not change timevar.
21255
21256 2016-02-10 Richard Biener <rguenther@suse.de>
21257
21258 PR tree-optimization/69719
21259 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21260 Adjust previous fix by ensuring that dr_a1 is left of dr_a2.
21261
21262 2016-02-09 Andrew Pinski <apinski@cavium.com>
21263
21264 PR tree-opt/69282
21265 * optabs-tree.c (expand_vec_cond_expr_p): Don't early return if
21266 get_vcond_mask_icode returns false.
21267
21268 2016-02-09 Michael Meissner <meissner@linux.vnet.ibm.com>
21269
21270 PR target/68404
21271 * config/rs6000/predicates.md (fusion_gpr_addis): Prevent fusing
21272 an ADDIS that adds a pointer to a large constant that sets the
21273 upper16 bits with a load operation.
21274
21275 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
21276
21277 PR target/68532
21278 * config/arm/arm.c (arm_evpc_neon_vzip): Allow for big endian lane
21279 order.
21280 * config/arm/arm_neon.h (vzipq_s8): Adjust shuffle patterns for big
21281 endian.
21282 (vzipq_s16): Likewise.
21283 (vzipq_s32): Likewise.
21284 (vzipq_f32): Likewise.
21285 (vzipq_u8): Likewise.
21286 (vzipq_u16): Likewise.
21287 (vzipq_u32): Likewise.
21288 (vzipq_p8): Likewise.
21289 (vzipq_p16): Likewise.
21290
21291 2016-02-09 Charles Baylis <charles.baylis@linaro.org>
21292
21293 PR target/68532
21294 * config/arm/arm.c (neon_endian_lane_map): New function.
21295 (neon_vector_pair_endian_lane_map): New function.
21296 (arm_evpc_neon_vuzp): Allow for big endian lane order.
21297 * config/arm/arm_neon.h (vuzpq_s8): Adjust shuffle patterns for big
21298 endian.
21299 (vuzpq_s16): Likewise.
21300 (vuzpq_s32): Likewise.
21301 (vuzpq_f32): Likewise.
21302 (vuzpq_u8): Likewise.
21303 (vuzpq_u16): Likewise.
21304 (vuzpq_u32): Likewise.
21305 (vuzpq_p8): Likewise.
21306 (vuzpq_p16): Likewise.
21307
21308 2016-02-11 Alexandre Oliva <aoliva@redhat.com>
21309
21310 PR target/69634
21311 * regstat.c (regstat_bb_compute_calls_crossed): Disregard
21312 debug insns.
21313
21314 2016-02-09 Uros Bizjak <ubizjak@gmail.com>
21315
21316 * config/i386/i386.md (insv<mode>_1): Use gen_int_mode to
21317 truncate const_int operand 1 to QImode.
21318
21319 2016-02-09 Eric Botcazou <ebotcazou@adacore.com>
21320
21321 * gimple-ssa-backprop.c (optimize_phi): Do not replace an argument
21322 corresponding to an abnormal edge.
21323
21324 2016-02-09 Tom de Vries <tom@codesourcery.com>
21325
21326 PR tree-optimization/69599
21327 * tree-ssa-structalias.c (fndecl_maybe_in_other_partition): New
21328 function.
21329 (find_func_aliases_for_builtin_call, find_func_clobbers)
21330 (ipa_pta_execute): Handle case that foo and foo._0 are not in same lto
21331 partition.
21332
21333 2016-02-09 Richard Biener <rguenther@suse.de>
21334
21335 PR tree-optimization/69715
21336 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl
21337 LHS on calls as non-rewritable.
21338
21339 2016-02-09 Tom de Vries <tom@codesourcery.com>
21340
21341 PR lto/69707
21342 * lto-wrapper.c (append_diag_options): New function.
21343 (compile_offload_image): Call append_diag_options.
21344
21345 2016-02-08 Sandra Loosemore <sandra@codesourcery.com>
21346
21347 PR other/69722
21348 * doc/extend.texi (Flag Output Operands): Correct sectioning.
21349 Minor copy-edit to fix verb tenses.
21350
21351 2016-02-08 Jakub Jelinek <jakub@redhat.com>
21352
21353 PR tree-optimization/69209
21354 * ipa-split.c (split_function): If split part is not
21355 returning retval, retval has gimple type but is not
21356 gimple value, force it into a SSA_NAME first.
21357
21358 2016-02-08 Nicklas Bo Jensen <nbjensen@gmail.com>
21359
21360 * doc/tree-ssa.texi (Preserving the virtual SSA form): Remove
21361 outdated section.
21362
21363 2016-02-08 Jason Merrill <jason@redhat.com>
21364
21365 PR c++/69631
21366 * convert.c (convert_to_integer_1): Check dofold on truncation
21367 distribution.
21368 (convert_to_pointer_maybe_fold, convert_to_real_maybe_fold)
21369 (convert_to_integer_maybe_fold, convert_to_complex_maybe_fold):
21370 Rename from *_nofold.
21371 * convert.h (convert_to_pointer_nofold, convert_to_integer_nofold)
21372 (convert_to_real_nofold, convert_to_complex_nofold): New inlines.
21373
21374 2016-02-08 Bernd Schmidt <bschmidt@redhat.com>
21375
21376 PR target/60410
21377 * tree.c (build_common_tree_nodes): Remove short_double argument.
21378 All callers changed.
21379 * tree.h (build_common_tree_nodes): Adjust declaration.
21380 * doc/invoke.texi (-fshort-double): Remove documentation.
21381 * config/mips/t-img-elf (MULTILIB_OPTIONS, MULTILIB_DIRNAMES,
21382 MULTILIB_EXCEPTIONS): Remove -fshort-double variant.
21383 * lto-wrapper.c (merge_and_complain, append_compiler_options)
21384 (append_linker_options): Don't handle OPT_fshort_double.
21385
21386 PR rtl-optimization/68730
21387 * lra-remat.c (insn_to_cand_activation): New static variable.
21388 (lra_remat): Allocate and free it.
21389 (create_cand): New arg activation. Initialize a field in
21390 insn_to_cand_activation if it is nonnull.
21391 (create_cands): Pass the activation insn to create_cand when making
21392 a candidate involving an output reload. Reorganize code a little.
21393 (do_remat): Keep track of active status of candidates in a separate
21394 bitmap.
21395
21396 2016-02-08 Richard Biener <rguenther@suse.de>
21397
21398 PR tree-optimization/69719
21399 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
21400 Properly use absolute of the difference of the two offsets to
21401 compare or adjust the segment length.
21402
21403 2016-02-08 Richard Biener <rguenther@suse.de>
21404 Jeff Law <law@redhat.com>
21405
21406 PR target/68273
21407 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified
21408 types for anonymous SSA names.
21409
21410 2016-02-08 Richard Biener <rguenther@suse.de>
21411
21412 PR rtl-optimization/69274
21413 * ira.c (ira_setup_alts): Do not change recog_data.operand order.
21414
21415 2016-02-08 Jeff Law <law@redhat.com>
21416
21417 PR tree-optimization/65917
21418 * tree-ssa-dom.c (record_temporary_equivalences): Record both
21419 equivalences from if (x == y) style conditionals.
21420 (loop_depth_of_name): Remove.
21421 (record_equality): Remove loop depth check.
21422 * tree-ssa-scopedtables.h (const_and_copies): Refine comments.
21423 (const_and_copies::record_const_or_copy_raw): New member function.
21424 * tree-ssa-scopedtables.c
21425 (const_and_copies::record_const_or_copy_raw): New, factored out of
21426 (const_and_copies::record_const_or_copy): Call new member function.
21427
21428 2016-02-05 Jeff Law <law@redhat.com>
21429
21430 PR tree-optimization/68541
21431 * gimple-ssa-split-paths.c: Include tree-cfg.h and params.h.
21432 (count_stmts_in_block): New function.
21433 (poor_ifcvt_candidate_code): Likewise.
21434 (is_feasible_trace): Add some heuristics to determine when path
21435 splitting is profitable.
21436 (find_block_to_duplicate_for_splitting_paths): Make sure the graph
21437 is a diamond with a single exit.
21438
21439 2016-02-05 Martin Sebor <msebor@redhat.com>
21440
21441 PR c++/69662
21442 * doc/invoke.texi: Update -Wplacement-new to take an optional
21443 argument.
21444
21445 2016-02-06 Richard Henderson <rth@redhat.com>
21446
21447 PR c/69643
21448 * tree.c (tree_nop_conversion_p): Do not strip casts into or
21449 out of non-standard address spaces.
21450
21451 2016-02-05 Jakub Jelinek <jakub@redhat.com>
21452
21453 PR rtl-optimization/69691
21454 * lra-eliminations.c (move_plus_up): Don't add the addend twice.
21455
21456 2016-02-05 Pat Haugen <pthaugen@us.ibm.com>
21457
21458 * config/rs6000/crypto.md (crypto_vpermxor_<mode>): Correct insn type.
21459 * config/rs6000/rs6000.md (mov<mode>_hardfloat): Likewise.
21460 (*ieee128_mfvsrd_64bit): Likewise.
21461 (*ieee128_mfvsrd_32bit): Likewise.
21462
21463 2016-02-05 Ilya Enkovich <enkovich.gnu@gmail.com>
21464
21465 PR target/69369
21466 Revert r232560:
21467 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
21468
21469 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
21470 instrumented_version.
21471
21472 2016-01-05 Jeremy Bennett <jeremy.bennett@embecosm.com>
21473
21474 * doc/invoke.texi (Optimize Options): In table of --param options
21475 rename second occurrence of tracer-min-branch-ratio to
21476 tracer-min-branch-probability, rename
21477 tracer-min-branch-ratio-feedback to
21478 tracer-min-branch-probability-feedback and clarify description,
21479 rename sched-spec-state-edge-prob-cutoff to
21480 sched-state-edge-prob-cutoff, rename selsched-max-insns-to-rename
21481 to selsched-insns-to-rename, rename lto-minpartition to
21482 lto-min-partition, delete reorder-blocks-duplicate and
21483 reorder-blocks-duplicate-feedback.
21484
21485 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21486
21487 * config/s390/s390.c (s390_register_info_set_ranges): Remove
21488 superfluous loops.
21489
21490 2016-02-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
21491
21492 * doc/extend.texi: S/390: Correct some typos.
21493
21494 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21495
21496 * config/s390/s390.c (s390_emit_call): Add missing 64 bit check.
21497
21498 2016-02-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
21499
21500 PR target/69625
21501 * config/s390/s390.c (SAVE_SLOT_NONE, SAVE_SLOT_STACK): New defines.
21502 (s390_register_info_gprtofpr): Use new macros above.
21503 (s390_register_info_stdarg_fpr): Adjust max_fpr to better match
21504 its name.
21505 (s390_register_info_stdarg_gpr): Adjust max_gpr to better match
21506 its name. Adjust restore and save gpr ranges.
21507 (s390_register_info_set_ranges): New function.
21508 (s390_register_info): Use new macros above. Call
21509 s390_register_info_set_ranges.
21510 (s390_optimize_register_info): Likewise.
21511 (s390_hard_regno_rename_ok): Use new macros.
21512 (s390_hard_regno_scratch_ok): Likewise.
21513 (s390_emit_epilogue): Likewise.
21514 (s390_can_use_return_insn): Likewise.
21515 (s390_optimize_prologue): Likewise.
21516 * config/s390/s390.md (GPR2_REGNUM, GPR6_REGNUM): New constants.
21517
21518 2016-02-05 Jakub Jelinek <jakub@redhat.com>
21519
21520 PR bootstrap/69677
21521 * config/i386/i386.c (convert_scalars_to_vector): Readd stack
21522 alignment fixes.
21523 (ix86_option_override_internal): Disable TARGET_STV even for
21524 -m{incoming,preferred}-stack-boundary=3.
21525
21526 2016-02-03 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
21527
21528 * config.gcc: Mark deprecated rtems targets as obsolete.
21529
21530 2016-02-04 Segher Boessenkool <segher@kernel.crashing.org>
21531
21532 PR rtl-optimization/64682
21533 PR rtl-optimization/69567
21534 * combine.c (distribute_notes) <REG_DEAD>: Place the death note
21535 before I2 only if the register is both used and set in I2.
21536
21537 2016-02-04 DJ Delorie <dj@redhat.com>
21538
21539 * config/msp430/msp430.c (msp430_start_function): Add function type.
21540
21541 2016-02-04 Jakub Jelinek <jakub@redhat.com>
21542
21543 PR fortran/69368
21544 * tree-dfa.c (get_ref_base_and_extent): Remove unreachable code.
21545
21546 2016-02-04 Uros Bizjak <ubizjak@gmail.com>
21547
21548 PR rtl-optimization/69577
21549 Revert:
21550 2015-10-29 Richard Henderson <rth@redhat.com>
21551
21552 PR target/68124
21553 PR rtl-opt/67609
21554 * config/i386/i386.c (ix86_cannot_change_mode_class): Tighten
21555 sse check to the exact conditions of PR 67609.
21556
21557 2016-02-04 Michael Meissner <meissner@linux.vnet.ibm.com>
21558
21559 PR target/69667
21560 * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Use 'd' constraint
21561 instead of 'ws', and 'wh' instead of 'wm' since TFmode/IFmode are
21562 not allowed into the traditional Altivec registers.
21563 (movtd_64bit_nodm): Likewise.
21564 (mov<mode>_32bit, FMOVE128_FPR iterator): Likewise.
21565
21566 2016-02-04 David Malcolm <dmalcolm@redhat.com>
21567
21568 * config/aarch64/cortex-a57-fma-steering.c
21569 (aarch64_register_fma_steering): Remove "static" from arguments
21570 to register_pass.
21571
21572 2016-02-04 Wilco Dijkstra <wdijkstr@arm.com>
21573
21574 PR target/69619
21575 * ccmp.c (expand_ccmp_expr_1): Avoid evaluating gs0/gs1
21576 twice when complex.
21577
21578 2016-02-04 Mike Frysinger <vapier@gentoo.org>
21579
21580 * doc/invoke.texi: Delete -mno-fma4.
21581
21582 2016-02-04 Richard Sandiford <richard.sandiford@arm.com>
21583
21584 PR rtl-optimization/69577
21585 * reginfo.c (record_subregs_of_mode): Add a partial_def parameter.
21586 (find_subregs_of_mode): Update accordingly. Iterate over partial
21587 definitions.
21588
21589 2016-02-04 Alan Lawrence <alan.lawrence@arm.com>
21590
21591 * config/arm/arm-protos.h (neon_reinterpret): Remove.
21592 * config/arm/arm.c (neon_reinterpret): Remove.
21593 * config/arm/arm_neon_builtins.def (vreinterpretv8qi, vreinterpretv4hi,
21594 vreinterpretv2si, vreinterpretv2sf, vreinterpretdi, vreinterpretv16qi,
21595 vreinterpretv8hi, vreinterpretv4si, vreinterpretv4sf, vreinterpretv2di,
21596 vreinterpretti): Remove.
21597 * config/arm/neon.md (neon_vreinterpretv8qi<mode>,
21598 neon_vreinterpretv4hi<mode>, neon_vreinterpretv2si<mode>,
21599 neon_vreinterpretv2sf<mode>, neon_vreinterpretdi<mode>,
21600 neon_vreinterpretti<mode>, neon_vreinterpretv16qi<mode>,
21601 neon_vreinterpretv8hi<mode>, neon_vreinterpretv4si<mode>,
21602 neon_vreinterpretv4sf<mode>, neon_vreinterpretv2di<mode>): Remove.
21603 * config/arm/arm_neon.h (vreinterpret_p8_p16, vreinterpret_p8_f32,
21604 vreinterpret_p8_p64, vreinterpret_p8_s64, vreinterpret_p8_u64,
21605 vreinterpret_p8_s8, vreinterpret_p8_s16, vreinterpret_p8_s32,
21606 vreinterpret_p8_u8, vreinterpret_p8_u16, vreinterpret_p8_u32,
21607 vreinterpret_p16_p8, vreinterpret_p16_f32, vreinterpret_p16_p64,
21608 vreinterpret_p16_s64, vreinterpret_p16_u64, vreinterpret_p16_s8,
21609 vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_u8,
21610 vreinterpret_p16_u16, vreinterpret_p16_u32, vreinterpret_f32_p8,
21611 vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpret_f32_s64,
21612 vreinterpret_f32_u64, vreinterpret_f32_s8, vreinterpret_f32_s16,
21613 vreinterpret_f32_s32, vreinterpret_f32_u8, vreinterpret_f32_u16,
21614 vreinterpret_f32_u32, vreinterpret_p64_p8, vreinterpret_p64_p16,
21615 vreinterpret_p64_f32, vreinterpret_p64_s64, vreinterpret_p64_u64,
21616 vreinterpret_p64_s8, vreinterpret_p64_s16, vreinterpret_p64_s32,
21617 vreinterpret_p64_u8, vreinterpret_p64_u16, vreinterpret_p64_u32,
21618 vreinterpret_s64_p8, vreinterpret_s64_p16, vreinterpret_s64_f32,
21619 vreinterpret_s64_p64, vreinterpret_s64_u64, vreinterpret_s64_s8,
21620 vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_u8,
21621 vreinterpret_s64_u16, vreinterpret_s64_u32, vreinterpret_u64_p8,
21622 vreinterpret_u64_p16, vreinterpret_u64_f32, vreinterpret_u64_p64,
21623 vreinterpret_u64_s64, vreinterpret_u64_s8, vreinterpret_u64_s16,
21624 vreinterpret_u64_s32, vreinterpret_u64_u8, vreinterpret_u64_u16,
21625 vreinterpret_u64_u32, vreinterpret_s8_p8, vreinterpret_s8_p16,
21626 vreinterpret_s8_f32, vreinterpret_s8_p64, vreinterpret_s8_s64,
21627 vreinterpret_s8_u64, vreinterpret_s8_s16, vreinterpret_s8_s32,
21628 vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32,
21629 vreinterpret_s16_p8, vreinterpret_s16_p16, vreinterpret_s16_f32,
21630 vreinterpret_s16_p64, vreinterpret_s16_s64, vreinterpret_s16_u64,
21631 vreinterpret_s16_s8, vreinterpret_s16_s32, vreinterpret_s16_u8,
21632 vreinterpret_s16_u16, vreinterpret_s16_u32, vreinterpret_s32_p8,
21633 vreinterpret_s32_p16, vreinterpret_s32_f32, vreinterpret_s32_p64,
21634 vreinterpret_s32_s64, vreinterpret_s32_u64, vreinterpret_s32_s8,
21635 vreinterpret_s32_s16, vreinterpret_s32_u8, vreinterpret_s32_u16,
21636 vreinterpret_s32_u32, vreinterpret_u8_p8, vreinterpret_u8_p16,
21637 vreinterpret_u8_f32, vreinterpret_u8_p64, vreinterpret_u8_s64,
21638 vreinterpret_u8_u64, vreinterpret_u8_s8, vreinterpret_u8_s16,
21639 vreinterpret_u8_s32, vreinterpret_u8_u16, vreinterpret_u8_u32,
21640 vreinterpret_u16_p8, vreinterpret_u16_p16, vreinterpret_u16_f32,
21641 vreinterpret_u16_p64, vreinterpret_u16_s64, vreinterpret_u16_u64,
21642 vreinterpret_u16_s8, vreinterpret_u16_s16, vreinterpret_u16_s32,
21643 vreinterpret_u16_u8, vreinterpret_u16_u32, vreinterpret_u32_p8,
21644 vreinterpret_u32_p16, vreinterpret_u32_f32, vreinterpret_u32_p64,
21645 vreinterpret_u32_s64, vreinterpret_u32_u64, vreinterpret_u32_s8,
21646 vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_u8,
21647 vreinterpret_u32_u16, vreinterpretq_p8_p16, vreinterpretq_p8_f32,
21648 vreinterpretq_p8_p64, vreinterpretq_p8_p128, vreinterpretq_p8_s64,
21649 vreinterpretq_p8_u64, vreinterpretq_p8_s8, vreinterpretq_p8_s16,
21650 vreinterpretq_p8_s32, vreinterpretq_p8_u8, vreinterpretq_p8_u16,
21651 vreinterpretq_p8_u32, vreinterpretq_p16_p8, vreinterpretq_p16_f32,
21652 vreinterpretq_p16_p64, vreinterpretq_p16_p128, vreinterpretq_p16_s64,
21653 vreinterpretq_p16_u64, vreinterpretq_p16_s8, vreinterpretq_p16_s16,
21654 vreinterpretq_p16_s32, vreinterpretq_p16_u8, vreinterpretq_p16_u16,
21655 vreinterpretq_p16_u32, vreinterpretq_f32_p8, vreinterpretq_f32_p16,
21656 vreinterpretq_f32_p64, vreinterpretq_f32_p128, vreinterpretq_f32_s64,
21657 vreinterpretq_f32_u64, vreinterpretq_f32_s8, vreinterpretq_f32_s16,
21658 vreinterpretq_f32_s32, vreinterpretq_f32_u8, vreinterpretq_f32_u16,
21659 vreinterpretq_f32_u32, vreinterpretq_p64_p8, vreinterpretq_p64_p16,
21660 vreinterpretq_p64_f32, vreinterpretq_p64_p128, vreinterpretq_p64_s64,
21661 vreinterpretq_p64_u64, vreinterpretq_p64_s8, vreinterpretq_p64_s16,
21662 vreinterpretq_p64_s32, vreinterpretq_p64_u8, vreinterpretq_p64_u16,
21663 vreinterpretq_p64_u32, vreinterpretq_p128_p8, vreinterpretq_p128_p16,
21664 vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64,
21665 vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16,
21666 vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16,
21667 vreinterpretq_p128_u32, vreinterpretq_s64_p8, vreinterpretq_s64_p16,
21668 vreinterpretq_s64_f32, vreinterpretq_s64_p64, vreinterpretq_s64_p128,
21669 vreinterpretq_s64_u64, vreinterpretq_s64_s8, vreinterpretq_s64_s16,
21670 vreinterpretq_s64_s32, vreinterpretq_s64_u8, vreinterpretq_s64_u16,
21671 vreinterpretq_s64_u32, vreinterpretq_u64_p8, vreinterpretq_u64_p16,
21672 vreinterpretq_u64_f32, vreinterpretq_u64_p64, vreinterpretq_u64_p128,
21673 vreinterpretq_u64_s64, vreinterpretq_u64_s8, vreinterpretq_u64_s16,
21674 vreinterpretq_u64_s32, vreinterpretq_u64_u8, vreinterpretq_u64_u16,
21675 vreinterpretq_u64_u32, vreinterpretq_s8_p8, vreinterpretq_s8_p16,
21676 vreinterpretq_s8_f32, vreinterpretq_s8_p64, vreinterpretq_s8_p128,
21677 vreinterpretq_s8_s64, vreinterpretq_s8_u64, vreinterpretq_s8_s16,
21678 vreinterpretq_s8_s32, vreinterpretq_s8_u8, vreinterpretq_s8_u16,
21679 vreinterpretq_s8_u32, vreinterpretq_s16_p8, vreinterpretq_s16_p16,
21680 vreinterpretq_s16_f32, vreinterpretq_s16_p64, vreinterpretq_s16_p128,
21681 vreinterpretq_s16_s64, vreinterpretq_s16_u64, vreinterpretq_s16_s8,
21682 vreinterpretq_s16_s32, vreinterpretq_s16_u8, vreinterpretq_s16_u16,
21683 vreinterpretq_s16_u32, vreinterpretq_s32_p8, vreinterpretq_s32_p16,
21684 vreinterpretq_s32_f16, vreinterpretq_s32_f32, vreinterpretq_s32_p64,
21685 vreinterpretq_s32_p128, vreinterpretq_s32_s64, vreinterpretq_s32_u64,
21686 vreinterpretq_s32_s8, vreinterpretq_s32_s16, vreinterpretq_s32_u8,
21687 vreinterpretq_s32_u16, vreinterpretq_s32_u32, vreinterpretq_u8_p8,
21688 vreinterpretq_u8_p16, vreinterpretq_u8_f32, vreinterpretq_u8_p64,
21689 vreinterpretq_u8_p128, vreinterpretq_u8_s64, vreinterpretq_u8_u64,
21690 vreinterpretq_u8_s8, vreinterpretq_u8_s16, vreinterpretq_u8_s32,
21691 vreinterpretq_u8_u16, vreinterpretq_u8_u32, vreinterpretq_u16_p8,
21692 vreinterpretq_u16_p16, vreinterpretq_u16_f32, vreinterpretq_u16_p64,
21693 vreinterpretq_u16_p128, vreinterpretq_u16_s64, vreinterpretq_u16_u64,
21694 vreinterpretq_u16_s8, vreinterpretq_u16_s16, vreinterpretq_u16_s32,
21695 vreinterpretq_u16_u8, vreinterpretq_u16_u32, vreinterpretq_u32_p8,
21696 vreinterpretq_u32_p16, vreinterpretq_u32_f32, vreinterpretq_u32_p64,
21697 vreinterpretq_u32_p128, vreinterpretq_u32_s64, vreinterpretq_u32_u64,
21698 vreinterpretq_u32_s8, vreinterpretq_u32_s16, vreinterpretq_u32_s32,
21699 vreinterpretq_u32_u8, vreinterpretq_u32_u16): Rewrite using casts.
21700
21701 2016-02-04 Martin Liska <mliska@suse.cz>
21702
21703 PR sanitizer/69276
21704 * asan.c (has_stmt_been_instrumented_p): Instrument gimple calls
21705 that are gimple_store_p.
21706 (maybe_instrument_call): Likewise.
21707
21708 2016-02-04 Bin Cheng <bin.cheng@arm.com>
21709
21710 * config/aarch64/aarch64.c (aarch64_legitimize_address): Force
21711 register scaling out of memory reference and comment why.
21712
21713 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21714
21715 PR target/65932
21716 PR target/67714
21717 * cse.c (cse_insn): Pass NULL to fold_rtx when initially
21718 folding the source of a SET.
21719
21720 2016-02-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
21721
21722 PR target/65932
21723 PR target/67714
21724 * config/arm/arm.c (arm_new_rtx_costs, MULT case): Properly extract
21725 the operands of the SIGN_EXTENDs from a SMUL[TB][TB] rtx.
21726
21727 2016-02-04 Jim Wilson <jim.wilson@linaro.org>
21728
21729 PR target/65932
21730 PR target/67714
21731 * config/arm/arm.h (PROMOTE_MODE): Don't set UNSIGNEDP for QImode and
21732 HImode.
21733
21734 2016-02-04 Christian Bruel <christian.bruel@st.com>
21735
21736 * config/arm/arm-c.c (arm_reset_previous_fndecl): Style fix and typo.
21737 * config/arm/arm.c (arm_set_current_function): Likewise.
21738
21739 2016-02-04 Jakub Jelinek <jakub@redhat.com>
21740 Ilya Enkovich <enkovich.gnu@gmail.com>
21741 H.J. Lu <hongjiu.lu@intel.com>
21742
21743 PR target/69454
21744 * config/i386/i386.c (convert_scalars_to_vector): Remove
21745 stack alignment fixes.
21746 (ix86_option_override_internal): Disable TARGET_STV if stack
21747 might not be aligned enough.
21748 (ix86_minimum_alignment): Assert that TARGET_STV is false.
21749
21750 2016-02-04 Victoria Stepanyan <victoria.stepanyan@amd.com>
21751
21752 * config/i386/x86-tune.def: Disable default prefetching
21753 for -march=znver1.
21754
21755 2016-02-03 Michael Meissner <meissner@linux.vnet.ibm.com>
21756 Vladimir Makarov <vmakarov@redhat.com>
21757
21758 PR target/69461
21759 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Fix thinko
21760 in validating fused toc addresses.
21761
21762 2016-02-03 Jakub Jelinek <jakub@redhat.com>
21763
21764 PR c/69627
21765 * diagnostic-show-locus.c (layout::get_state_at_point): Don't read
21766 range->m_caret fields if range->m_show_caret_p is false.
21767
21768 PR target/69644
21769 * config/rs6000/rs6000.c (rs6000_expand_atomic_compare_and_swap):
21770 Force oldval into register if it does not satisfy reg_or_short_operand
21771 predicate. Fix up formatting.
21772
21773 2016-02-03 Vladimir Makarov <vmakarov@redhat.com>
21774 Alexandre Oliva <aoliva@redhat.com>
21775
21776 PR target/69461
21777 * lra-constraints.c (simplify_operand_subreg): Check additionally
21778 address validity after potential reloading.
21779 (process_address_1): Check insns validity. In case of failure do
21780 nothing.
21781
21782 2016-02-03 Kirill Yukhin <kirill.yukhin@intel.com>
21783
21784 PR target/69118
21785 * config/i386/sse.md (define_insn "avx512f_maskcmp<mode>3"):
21786 Fix target.
21787
21788 2016-02-02 Jakub Jelinek <jakub@redhat.com>
21789
21790 * wide-int.cc (canonize_uhwi): New function.
21791 (wi::divmod_internal): Use it.
21792
21793 2016-02-02 James Norris <jnorris@codesourcery.com>
21794
21795 * gimplify.c (omp_notice_variable): Add usage check.
21796
21797 2016-02-02 Alexander Monakov <amonakov@ispras.ru>
21798
21799 * config/nvptx/nvptx.c (nvptx_print_operand): Treat LEU, GEU, LTU, GTU
21800 like LE, GE, LT, GT when emitting relational operator.
21801
21802 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
21803
21804 * ira-costs.c (find_costs_and_classes): Add extra argument.
21805 * target.def (ira_change_pseudo_allocno_class): Add parameter.
21806 * targhooks.h (ira_change_pseudo_allocno_class): Likewise.
21807 * targhooks.c (ira_change_pseudo_allocno_class): Likewise.
21808 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class)
21809 Add best_class parameter, and return it if not ALL_REGS.
21810 * config/mips/mips.c (mips_ira_change_pseudo_allocno_class):
21811 Add parameter.
21812 * doc/tm.texi (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS):
21813 Update target hook.
21814
21815 2016-02-02 Wilco Dijkstra <wdijkstr@arm.com>
21816
21817 * config/aarch64/aarch64.c
21818 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): New define.
21819 (aarch64_ira_change_pseudo_allocno_class): New function.
21820
21821 2016-02-02 Uros Bizjak <ubizjak@gmail.com>
21822
21823 PR target/67032
21824 * config/i386/i386.c (geode_cost): Increase cost of MMX and SSE moves.
21825
21826 2016-02-02 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
21827
21828 * config/avr/avr.c (avr_option_override): Set
21829 PARAM_ALLOW_STORE_DATA_RACES to 1.
21830
21831 2016-02-02 Richard Biener <rguenther@suse.de>
21832
21833 PR tree-optimization/69595
21834 * match.pd: Add range test simplifications to true/false.
21835
21836 2016-02-02 Thomas Schwinge <thomas@codesourcery.com>
21837
21838 * omp-builtins.def (BUILT_IN_GOACC_HOST_DATA): Remove.
21839 * omp-low.c (expand_omp_target): Use BUILT_IN_GOACC_DATA_START
21840 instead.
21841
21842 2016-02-02 Richard Biener <rguenther@suse.de>
21843
21844 PR tree-optimization/69606
21845 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive
21846 info on the result before moving a stmt.
21847
21848 2016-02-02 Yuri Rumyantsev <ysrumyan@gmail.com>
21849
21850 PR middle-end/68542
21851 * config/i386/i386.c (ix86_expand_branch): Add support for conditional
21852 branch with vector comparison.
21853 * config/i386/sse.md (VI48_AVX): New mode iterator.
21854 (define_expand "cbranch<mode>4): Add support for conditional branch
21855 with vector comparison.
21856 * tree-vect-loop.c (optimize_mask_stores): New function.
21857 * tree-vect-stmts.c (vectorizable_mask_load_store): Initialize
21858 has_mask_store field of vect_info.
21859 * tree-vectorizer.c (vectorize_loops): Invoke optimaze_mask_stores for
21860 vectorized loops having masked stores after vec_info destroy.
21861 * tree-vectorizer.h (loop_vec_info): Add new has_mask_store field and
21862 correspondent macros.
21863 (optimize_mask_stores): Add prototype.
21864
21865 2016-02-02 Alan Modra <amodra@gmail.com>
21866
21867 PR target/69548
21868 * config/rs6000/predicates.md (quad_int_reg_operand): Don't
21869 allow subregs.
21870
21871 2016-02-02 Alan Modra <amodra@gmail.com>
21872
21873 PR target/68662
21874 * config/rs6000/rs6000.c (need_toc_init): New var, set it
21875 whenever toc_label_name used.
21876 (rs6000_file_start): Don't set up toc section here,
21877 (rs6000_output_function_epilogue): do so here instead,
21878 (rs6000_xcoff_file_start): and here.
21879 * config/rs6000/rs6000.md (load_toc_aix_si): Set need_toc_init.
21880 (load_toc_aix_di): Likewise.
21881
21882 2016-02-01 Jakub Jelinek <jakub@redhat.com>
21883
21884 PR rtl-optimization/69592
21885 * rtlanal.c (nonzero_bits_binary_arith_p): New inline function.
21886 (cached_nonzero_bits): Use it instead of ARITHMETIC_P.
21887 (num_sign_bit_copies_binary_arith_p): New inline function.
21888 (cached_num_sign_bit_copies): Use it instead of ARITHMETIC_P.
21889
21890 2016-02-01 Jeff Law <law@redhat.com>
21891
21892 PR tree-optimization/69580
21893 * params.def (FSM_MAXIMUM_PHI_ARGUMENTS): New param.
21894 * tree-ssa-threadbackward.c
21895 (fsm_find_control_statement_thread_paths): Do not try to walk
21896 through large PHI nodes.
21897
21898 2016-02-01 Jakub Jelinek <jakub@redhat.com>
21899
21900 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return false
21901 when count is incremented above limit, don't analyze further
21902 insns afterwards.
21903
21904 * omp-low.c (oacc_parse_default_dims): Avoid
21905 -Wsign-compare warning, make sure value fits into int
21906 rather than just unsigned int.
21907
21908 2016-02-01 Bin Cheng <bin.cheng@arm.com>
21909
21910 PR tree-optimization/67921
21911 * fold-const.c (split_tree): New parameters. Convert pointer
21912 type variable part to proper type before negating.
21913 (fold_binary_loc): Pass new arguments to split_tree.
21914
21915 2016-02-01 Nathan Sidwell <nathan@codesourcery.com>
21916
21917 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): New.
21918 (nvptx_goacc_validate_dims): Extend to handle global defaults.
21919 * target.def (OACC_VALIDATE_DIMS): Extend documentation.
21920 * doc/tm.texti: Rebuilt.
21921 * doc/invoke.texi (fopenacc-dim): Document.
21922 * lto-wrapper.c (merge_and_complain): Add OPT_fopenacc_dim_ case.
21923 (append_compiler_options): Likewise.
21924 * omp-low.c (oacc_default_dims, oacc_min_dims): New.
21925 (oacc_parse_default_dims): New.
21926 (oacc_validate_dims): Add USED arg. Select non-unity default when
21927 possible.
21928 (oacc_loop_fixed_partitions): Return mask of used partitions.
21929 (oacc_loop_auto_partitions): Emit dump info.
21930 (oacc_loop_partition): Return mask of used partitions.
21931 (execute_oacc_device_lower): Parse default dimension arg. Adjust
21932 loop partitioning and validation calls.
21933
21934 2016-02-01 Richard Biener <rguenther@suse.de>
21935
21936 PR middle-end/69556
21937 * match.pd: Guard (C1/X)*C2 -> (C1*C2)/X with single_use.
21938
21939 2016-02-01 Richard Biener <rguenther@suse.de>
21940
21941 PR tree-optimization/69574
21942 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead
21943 of asserting return chrec_dont_know.
21944
21945 2016-02-01 Martin Liska <mliska@suse.cz>
21946
21947 * mem-stats-traits.h: Add copyright header.
21948 * mem-stats.h: Likewise.
21949
21950 2016-02-01 Richard Biener <rguenther@suse.de>
21951
21952 PR tree-optimization/69579
21953 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
21954 Do not propagate through abnormal PHI results.
21955
21956 2016-02-01 Eric Botcazou <ebotcazou@adacore.com>
21957
21958 * postreload.c (reload_cse_simplify): Remove dead code.
21959
21960 2016-02-01 Jakub Jelinek <jakub@redhat.com>
21961
21962 PR rtl-optimization/69570
21963 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Return true only
21964 if there is more than one set, not if there is a single set.
21965
21966 2016-02-01 Richard Henderson <rth@redhat.com>
21967
21968 PR rtl-opt/69535
21969 * combine.c (make_compound_operation): When looking through a
21970 subreg, make sure to re-extend to the width of the outer mode.
21971
21972 2016-01-30 Jakub Jelinek <jakub@redhat.com>
21973
21974 PR tree-optimization/69546
21975 * wide-int.cc (wi::divmod_internal): For unsigned division
21976 where both operands fit into uhwi, if o1 is 1 and o0 has
21977 msb set, if divident_prec is larger than bits per hwi,
21978 clear another quotient word and return 2 instead of 1.
21979 Similarly for remainder with msb in HWI set, if dividend_prec
21980 is larger than bits per hwi.
21981
21982 2016-01-29 Martin Jambor <mjambor@suse.cz>
21983
21984 * hsa-gen.c (get_memory_order_name): Mask with MEMMODEL_BASE_MASK.
21985 Use short lowercase names.
21986 (get_memory_order): Mask with MEMMODEL_BASE_MASK. Support
21987 MEMMODEL_CONSUME with acquire semantics and MEMMODEL_SEQ_CST with
21988 acq_rel one. Protect warning agains segfaults if
21989 get_memory_order_name returns NULL.
21990 (gen_hsa_ternary_atomic_for_builtin): Support with MEMMODEL_SEQ_CST
21991 with release semantics. Do not warn if get_memory_order already did.
21992 (gen_hsa_insns_for_call): Support with MEMMODEL_SEQ_CST with acquire
21993 semantics. Fix check for relaxed or acquire semantics. Do not warn
21994 if get_memory_order already did.
21995
21996 2016-01-29 Sebastian Pop <s.pop@samsung.com>
21997
21998 * doc/install.texi: Document that isl-0.16 is supported.
21999
22000 2016-01-29 Vladimir Makarov <vmakarov@redhat.com>
22001
22002 PR target/69299
22003 * config/i386/constraints.md (Bm): Describe as special memory
22004 constraint.
22005 * doc/md.texi (DEFINE_SPECIAL_MEMORY_CONSTRAINT): Describe it.
22006 * genoutput.c (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22007 * genpreds.c (struct constraint_data): Add is_special_memory.
22008 (have_special_memory_constraints, special_memory_start): New
22009 static vars.
22010 (special_memory_end): Ditto.
22011 (add_constraint): Add new arg is_special_memory. Add code to
22012 process its true value. Update have_special_memory_constraints.
22013 (process_define_constraint): Pass the new arg.
22014 (process_define_register_constraint): Ditto.
22015 (choose_enum_order): Process special memory.
22016 (write_tm_preds_h): Generate enum const CT_SPECIAL_MEMORY and
22017 function insn_extra_special_memory_constraint.
22018 (main): Process DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22019 * gensupport.c (process_rtx): Process
22020 DEFINE_SPECIAL_MEMORY_CONSTRAINT.
22021 * ira-costs.c (record_reg_classes): Process CT_SPECIAL_MEMORY.
22022 * ira-lives.c (single_reg_class): Use
22023 insn_extra_special_memory_constraint.
22024 * ira.c (ira_setup_alts): Process CT_SPECIAL_MEMORY.
22025 * lra-constraints.c (process_alt_operands): Ditto.
22026 (curr_insn_transform): Use insn_extra_special_memory_constraint.
22027 * recog.c (asm_operand_ok, preprocess_constraints): Process
22028 CT_SPECIAL_MEMORY.
22029 * reload.c (find_reloads): Ditto.
22030 * rtl.def (DEFINE_SPECIFAL_MEMORY_CONSTRAINT): New.
22031 * stmt.c (parse_input_constraint): Use
22032 insn_extra_special_memory_constraint.
22033
22034 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22035
22036 PR target/69530
22037 * lra-splill.c (lra_final_code_change): Revert r229087 by
22038 removing all sub-registers.
22039
22040 2016-01-29 Steve Ellcey <sellcey@imgtec.com>
22041
22042 PR target/65604
22043 * config/mips/mips.c (mips_output_division): Check flag_delayed_branch.
22044
22045 2016-01-29 Jakub Jelinek <jakub@redhat.com>
22046
22047 PR target/69551
22048 * config/i386/i386.c (ix86_expand_vector_set) <case V4SImode>: For
22049 SSE1, copy target into the temporary reg first before recursing
22050 on it.
22051
22052 2016-01-29 H.J. Lu <hongjiu.lu@intel.com>
22053
22054 * config/i386/sse.md (sse2_cvtps2pd<mask_name>): Replace vBm
22055 with vm.
22056
22057 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
22058
22059 * ginclude/stdarg.h: Test __cplusplus instead of
22060 __GXX_EXPERIMENTAL_CXX0X__.
22061
22062 2016-01-29 Richard Biener <rguenther@suse.de>
22063
22064 PR tree-optimization/69547
22065 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1):
22066 Do not mark clobbers necessary.
22067 (mark_all_reaching_defs_necessary_1): Likewise.
22068
22069 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22070
22071 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Format
22072 declaration name with %qs and print it in both error messages.
22073 Also fix indentation.
22074
22075 2016-01-29 Dominik Vogt <vogt@linux.vnet.ibm.com>
22076
22077 PR other/69006
22078 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Remove
22079 trailing blank line from error message.
22080
22081 2016-01-29 Jonathan Wakely <jwakely@redhat.com>
22082
22083 PR c++/69462
22084 * ginclude/float.h: Also provide FLT_EVAL_METHOD and DECIMAL_DIG
22085 for C++-11.
22086
22087 2016-01-29 Richard Biener <rguenther@suse.de>
22088
22089 PR middle-end/69537
22090 * match.pd: Allow all integral types when simplifying a
22091 widening or sign-changing conversion.
22092
22093 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22094
22095 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Revert assert
22096 back to setting codegen_error to fail codegen.
22097
22098 2016-01-28 Uros Bizjak <ubizjak@gmail.com>
22099
22100 PR target/69459
22101 * config/i386/constraints.md (C): Only accept constant zero operand.
22102 (BC): New constraint.
22103 * config/i386/sse.md (*mov<mode>_internal): Use BC constraint
22104 instead of C constraint.
22105 * doc/md.texi (Machine Constraints): Update description
22106 of C constraint.
22107
22108 2016-01-28 Steve Ellcey <sellcey@imgtec.com>
22109
22110 PR target/68400
22111 * config/mips/mips.c (and_operands_ok): Add MIPS16 check.
22112
22113 2016-01-28 Jakub Jelinek <jakub@redhat.com>
22114
22115 PR middle-end/69542
22116 * lra-remat.c (calculate_local_reg_remat_bb_data): Only consider
22117 non-debug insns.
22118
22119 2016-01-28 Pat Haugen <pthaugen@us.ibm.com>
22120
22121 * config/rs6000/rs6000.c (output_cbranch): Don't statically predict
22122 branches if using guessed profile.
22123
22124 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
22125
22126 * graphite-optimize-isl.c (optimize_isl): Fix dump.
22127
22128 2016-01-28 Richard Henderson <rth@redhat.com>
22129
22130 PR target/69305
22131 * config/aarch64/aarch64-modes.def (CC_Cmode): New
22132 * config/aarch64/aarch64-protos.h: Update.
22133 * config/aarch64/aarch64.c (aarch64_zero_extend_const_eq): New.
22134 (aarch64_select_cc_mode): Add check for use of CC_Cmode.
22135 (aarch64_get_condition_code_1): Handle CC_Cmode.
22136 * config/aarch64/aarch64.md (addti3): Use adddi3_compareC.
22137 (*add<mode>3_compareC_cconly_imm): New.
22138 (*add<mode>3_compareC_cconly): New.
22139 (*add<mode>3_compareC_imm): New.
22140 (add<mode>3_compareC): New.
22141 (add<mode>3_carryin, *addsi3_carryin_uxtw): Sort compare operand
22142 to be first. Use aarch64_carry_operation.
22143 (*add<mode>3_carryin_alt1, *addsi3_carryin_alt1_uxtw): Remove.
22144 (*add<mode>3_carryin_alt2, *addsi3_carryin_alt2_uxtw): Remove.
22145 (*add<mode>3_carryin_alt3, *addsi3_carryin_alt3_uxtw): Remove.
22146 (subti3): Use subdi3_compare1.
22147 (*sub<mode>3_compare0): Rename from sub<mode>3_compare0.
22148 (sub<mode>3_compare1): New.
22149 (*sub<mode>3_carryin0, *subsi3_carryin_uxtw): New.
22150 (*sub<mode>3_carryin): Use aarch64_borrow_operation.
22151 (*subsi3_carryin_uxtw): Likewise.
22152 (*ngc<mode>, *ngcsi_uxtw): Likewise.
22153 (*sub<mode>3_carryin_alt, *subsi3_carryin_alt_uxtw): New.
22154 * config/aarch64/iterators.md (DWI): New.
22155 * config/aarch64/predicates.md (aarch64_carry_operation): New.
22156 (aarch64_borrow_operation): New.
22157
22158 2016-01-28 Abderrazek Zaafrani <a.zaafrani@samsung.com>
22159
22160 * graphite-optimize-isl.c (optimize_isl): Print a different debug
22161 message when isl does not return a valid schedule.
22162
22163 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22164
22165 * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple):
22166 Remove comments from class declarations: they are already in the code
22167 close by the defs.
22168
22169 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22170
22171 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Call
22172 codegen_error_p.
22173 (ternary_op_to_tree): Same.
22174 (unary_op_to_tree): Same.
22175 (nary_op_to_tree): Same.
22176 (gcc_expression_from_isl_expr_op): Same.
22177 (gcc_expression_from_isl_expression): Same.
22178 (graphite_create_new_loop): Same.
22179 (graphite_create_new_loop_guard): Same.
22180 (build_iv_mapping): Same.
22181 (graphite_create_new_guard): Same.
22182 (translate_isl_ast_to_gimple::copy_loop_phi_nodes): Same.
22183 (translate_isl_ast_to_gimple::translate_pending_phi_nodes): Same.
22184
22185 2016-01-28 Sebastian Pop <s.pop@samsung.com>
22186
22187 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Assert
22188 instead of setting codegen_error to fail codegen.
22189
22190 2016-01-28 Jason Merrill <jason@redhat.com>
22191
22192 * tree.h (BINFO_FLAG_0): Rename from BINFO_MARKED.
22193
22194 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22195
22196 * config/aarch64/aarch64.c (aarch64_if_then_else_costs):
22197 Remove CONST_INT_P check in CCMP cost calculation.
22198
22199 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22200
22201 * config/aarch64/aarch64.c (generic_vector_cost):
22202 Set vec_permute_cost.
22203 (cortexa57_vector_cost): Likewise.
22204 (exynosm1_vector_cost): Likewise.
22205 (xgene1_vector_cost): Likewise.
22206 (aarch64_builtin_vectorization_cost): Use vec_permute_cost.
22207 * config/aarch64/aarch64-protos.h (cpu_vector_cost):
22208 Add vec_permute_cost entry.
22209
22210 2016-01-28 Wilco Dijkstra <wdijkstr@arm.com>
22211
22212 * config/aarch64/aarch64.md (ccmp<mode>): Disassemble
22213 immediate as %1.
22214 (add<mode>3_compare0): Likewise.
22215 (addsi3_compare0_uxtw): Likewise.
22216 (add<mode>3nr_compare0): Likewise.
22217 (compare_neg<mode>): Likewise.
22218 (<optab><mode>3): Likewise.
22219
22220 2016-01-28 Ilya Enkovich <enkovich.gnu@gmail.com>
22221
22222 * tree-vect-stmts.c (vectorizable_comparison): Add
22223 NULL check for vectype.
22224
22225 2016-01-28 Richard Biener <rguenther@suse.de>
22226
22227 PR tree-optimization/69466
22228 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges):
22229 Account for PHIs we couldn't duplicate.
22230
22231 2016-01-28 Martin Liska <mliska@suse.cz>
22232
22233 PR pch/68758
22234 * ggc-common.c (gt_pch_save): Use ENABLE_VALGRIND_ANNOTATIONS macro
22235 instead of ENABLE_VALGRIND_CHECKING.
22236
22237 2016-01-27 Richard Henderson <rth@redhat.com>
22238
22239 PR rtl-opt/69447
22240 * lra-remat.c (subreg_regs): New.
22241 (dump_candidates_and_remat_bb_data): Dump it.
22242 (operand_to_remat): Reject if operand in subreg_regs.
22243 (set_bb_regs): Collect subreg_regs.
22244 (lra_remat): Init and free subreg_regs. Compute
22245 calculate_local_reg_remat_bb_data before create_cands.
22246
22247 2016-01-27 H.J. Lu <hongjiu.lu@intel.com>
22248
22249 PR target/68986
22250 * config/i386/i386.c (ix86_update_stack_boundary): Don't
22251 change stack_alignment_needed for __tls_get_addr call.
22252
22253 2016-01-27 Segher Boessenkool <segher@kernel.crashing.org>
22254
22255 * config/rs6000/rs6000.c (print_operand): Rollback 's' removal.
22256
22257 2016-01-27 Jeff Law <law@redhat.com>
22258
22259 PR tree-optimization/68398
22260 PR tree-optimization/69196
22261 * params.def (PARAM_FSM_SCALE_PATH_STMTS): New parameter.
22262 (PARAM_FSM_SCALE_PATH_BLOCKS): Likewise.
22263 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22264 Only count PHIs in the last block in the path. The others will
22265 const/copy propagate away. Add heuristic to allow more irreducible
22266 subloops to be created when it is likely profitable to do so.
22267
22268 * tree-ssa-threadbackward.c (fsm_find_control_statement_thread_paths):
22269 Fix typo in comment. Use gsi_after_labels and remove the GIMPLE_LABEL
22270 check from within the loop. Use gsi_next_nondebug rather than gsi_next.
22271
22272 2016-01-27 Jakub Jelinek <jakub@redhat.com>
22273
22274 PR lto/69254
22275 * sanitizer.def: Add BEGIN_SANITIZER_BUILTINS and
22276 END_SANITIZER_BUILTINS markers using DEF_BUILTIN_STUB.
22277 * asan.c (DEF_BUILTIN_STUB): Temporarily define.
22278 * tree-streamer-in.c: Include asan.h.
22279 (streamer_get_builtin_tree): For builtins in sanitizer
22280 range call initialize_sanitizer_builtins and retry.
22281
22282 2016-01-27 Ian Lance Taylor <iant@google.com>
22283
22284 * common.opt (fkeep-gc-roots-live): New undocumented option.
22285 * tree-ssa-loop-ivopts.c (add_candidate_1): If
22286 -fkeep-gc-roots-live, skip pointers.
22287 (add_iv_candidate_for_biv): Handle add_candidate_1 returning
22288 NULL.
22289
22290 2016-01-27 Uros Bizjak <ubizjak@gmail.com>
22291
22292 PR target/69512
22293 * config/i386/i386.md (*zext<mode>_doubleword_and): New pattern.
22294 (*zext<mode>_doubleword): Disable for TARGET_ZERO_EXTEND_WITH_AND.
22295
22296 2016-01-27 Thomas Klausner <wiz@NetBSD.org>
22297
22298 PR target/68380
22299 * configure.ac: NetBSD provides SSP in its C library.
22300 * configure: Updated.
22301
22302 2016-01-27 Richard Biener <rguenther@suse.de>
22303
22304 PR tree-optimization/69166
22305 * tree-vect-loop.c (vect_is_simple_reduction): Always check
22306 reduction code for commutativity / associativity.
22307
22308 2016-01-27 Martin Jambor <mjambor@suse.cz>
22309
22310 PR tree-optimization/69355
22311 * tree-sra.c (analyze_access_subtree): Correct hole detection when
22312 total_scalarization fails.
22313
22314 2016-01-27 David Edelsohn <dje.gcc@gmail.com>
22315
22316 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add
22317 power9.
22318
22319 2016-01-27 Christian Bruel <christian.bruel@st.com>
22320
22321 PR target/69245
22322 * config/arm/arm-c.c (arm_pragma_target_parse): Add comments.
22323 Move arm_reset_previous_fndecl and set_target_option_current_node in
22324 the conditional part. Call save_restore_target_globals.
22325 * config/arm/arm.c (arm_set_current_function):
22326 Refactor to better support #pragma target and attribute mix.
22327 Call save_restore_target_globals.
22328 * config/arm/arm-protos.h (save_restore_target_globals): New function.
22329
22330 2016-01-27 Martin Liska <mliska@suse.cz>
22331
22332 * hsa.c (hsa_summary_t::link_functions): Create IPA_REF_ADDR
22333 reference for an HSA kernel and its host function.
22334
22335 2016-01-27 Jakub Jelinek <jakub@redhat.com>
22336
22337 PR tree-optimization/69399
22338 * wide-int.h (wi::lrshift): For larger precisions, only
22339 use fast path if shift is known to be < HOST_BITS_PER_WIDE_INT.
22340
22341 2016-01-27 Claudiu Zissulescu <claziss@synopsys.com>
22342
22343 * config/arc/predicates.md (proper_comparison_operator): Reject
22344 constant-constant comparison.
22345
22346 2016-01-26 Tom de Vries <tom@codesourcery.com>
22347
22348 PR tree-optimization/69110
22349 * tree-data-ref.c (initialize_data_dependence_relation): Handle
22350 DR_NUM_DIMENSIONS == 0.
22351
22352 2016-01-26 Abderrazek Zaafrani <a.zaafrani@samsung.com>
22353 Sebastian Pop <s.pop@samsung.com>
22354
22355 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Handle
22356 isl_ast_op_cond and isl_ast_op_select.
22357 (gcc_expression_from_isl_expr_op): Same.
22358
22359 2016-01-26 Jason Merrill <jason@redhat.com>
22360
22361 PR c++/68782
22362 * tree.c (recompute_constructor_flags): Split out from
22363 build_constructor.
22364 (verify_constructor_flags): New.
22365 * tree.h: Declare them.
22366
22367 2016-01-26 Iain Buclaw <ibuclaw@gdcproject.org>
22368
22369 PR rtl-optimization/69217
22370 * var-tracking.c (tracked_record_parameter_p): Don't segfault if there
22371 are no TYPE_FIELDS set for the record type.
22372
22373 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22374
22375 PR target/68662
22376 * config/rs6000/rs6000.c (rs6000_option_override_internal): Initialize
22377 toc_label_name unconditionally.
22378 (rs6000_emit_load_toc_table): Call ggc_strdup on toc_label_name for
22379 SYMBOL_REF string. Use toc_label_name instead of constructing
22380 LCTOC1.
22381 (rs6000_elf_declare_function_name): Use toc_label_name instead of
22382 constructing LCTOC1.
22383
22384 2016-01-26 Martin Sebor <msebor@redhat.com>
22385
22386 PR other/69477
22387 * doc/extend.texi (Common Type Attributes): Move text that talks about
22388 attribute packed from attribute aligned to the section discussing
22389 the former attribute for clarity.
22390
22391 2016-01-26 Richard Henderson <rth@redhat.com>
22392
22393 PR middle-end/60908
22394 * trans-mem.c (tm_region_init): Mark entry block as visited.
22395
22396 2016-01-26 David Malcolm <dmalcolm@redhat.com>
22397
22398 PR other/69006
22399 * diagnostic-show-locus.c (layout::print_source_line): Replace
22400 call to pp_newline with call to layout::print_newline.
22401 (layout::print_annotation_line): Likewise.
22402 (layout::move_to_column): Likewise.
22403 (layout::print_any_fixits): After printing any fixits, print a
22404 trailing newline, if necessary.
22405 (layout::print_newline): New method, resetting any colorization
22406 before a newline.
22407 (diagnostic_show_locus): Move the pp_newline to before the
22408 early bailout. Remove dummy block enclosing the layout instance.
22409 * diagnostic.c (default_diagnostic_finalizer): Replace invocation
22410 of pp_newline_and_flush with pp_flush.
22411 (diagnostic_append_note): Delete use of pp_newline.
22412 (diagnostic_append_note_at_rich_loc): Delete.
22413 * diagnostic.h (diagnostic_append_note_at_rich_loc): Delete.
22414 * pretty-print.h (output_buffer_append_r): Reset buff->line_length
22415 when newline characters are added to the buffer.
22416
22417 2016-01-26 Michael Matz <matz@suse.de>
22418
22419 * configure.ac (ac_cv_std_swap_in_utility): New test.
22420 * system.h (<algorithm>): Check HAVE_SWAP_IN_UTILITY as well.
22421 * configure: Regenerate.
22422 * config.in: Regenerate.
22423
22424 2016-01-26 Claudiu Zissulescu <claziss@synopsys.com>
22425
22426 * config/arc/arc.md (cstoresi4): Force operand into register.
22427 (arcset<code>): Fix predicate.
22428 (arcsetltu): Likewise.
22429 (arcsetgeu): Likewise.
22430 (arcsethi): Likewise.
22431 (arcsetls): Likewise.
22432
22433 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22434
22435 PR tree-optimization/69483
22436 * gimple-fold.c (canonicalize_constructor_val): Return NULL
22437 if base has error_mark_node type.
22438
22439 2016-01-26 Christophe Lyon <christophe.lyon@linaro.org>
22440
22441 PR target/68620
22442 * config/arm/arm.c (neon_valid_immediate): Handle FP16 vectors.
22443 * config/arm/arm_neon.h (__ARM_NUM_LANES, __arm_lane, arm_lanq):
22444 New helper macros.
22445 (vget_lane_f16): Handle big-endian.
22446 (vgetq_lane_f16): Likewise.
22447 (vset_lane_f16): Likewise.
22448 (vsetq_lane_f16): Likewise.
22449 * config/arm/iterators.md (VQXMOV): Add V8HF.
22450 (VDQ): Add V4HF and V8HF.
22451 (V_reg): Handle V4HF and V8HF.
22452 (Is_float_mode): Likewise.
22453 * config/arm/neon.md (movv4hf, movv8hf, neon_vdup_nv4hf,
22454 neon_vdup_nv8hf): New patterns.
22455 (vec_set<mode>_internal, vec_extract<mode>, neon_vld1_dup<mode>):
22456 Use VD_LANE iterator.
22457 (neon_vld1_dup<mode>): Use VQ2 iterator.
22458
22459 2016-01-26 Nathan Sidwell <nathan@acm.org>
22460
22461 * omp-low.h (oacc_fn_attrib_kernels_p): Declare.
22462 (set_oacc_fn_attrib): Add IS_KERNEL arg.
22463 * omp-low.c (set_oacc_fn_attrib): Add IS_KERNEL arg.
22464 (oacc_fn_attrib_kernels_p, oacc_fn_attrib_level): New.
22465 (expand_omp_target): Pass is_kernel to set_oacc_fn_attrib.
22466 (oacc_validate_dims): Add LEVEL arg, don't return level.
22467 (new_oacc_loop_routine): Use oacc_fn_attrib_level, not
22468 oacc_validate_dims.
22469 (execute_oacc_device_lower): Adjust, add more dump output.
22470 * tree-ssa-loop.c (gate_oacc_kernels): Use
22471 oacc_fn_attrib_kernels_p.
22472 * tree-parloops.c (create_parallel_loop): Adjust
22473 set_oacc_fn_attrib call.
22474
22475 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22476
22477 PR lto/69254
22478 * lto-wrapper.c (merge_and_complain): Handle -fcilkplus.
22479 (append_compiler_options): Handle -fcilkplus.
22480 (append_linker_options): Ignore -fno-{openmp,openacc,cilkplus}.
22481
22482 2016-01-26 Nick Clifton <nickc@redhat.com>
22483
22484 PR target/66655
22485 * config/i386/winnt.c (i386_pe_binds_local_p): If a function has
22486 been marked as DECL_ONE_ONLY but we do not the means to make it
22487 so, then do not allow it to bind locally.
22488
22489 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22490
22491 PR lto/69254
22492 * opts.h (parse_sanitizer_options): New prototype.
22493 * opts.c (sanitizer_opts): New array.
22494 (parse_sanitizer_options): New function.
22495 (common_handle_option): Use parse_sanitizer_options.
22496
22497 2016-01-26 H.J. Lu <hongjiu.lu@intel.com>
22498
22499 PR target/68986
22500 * config/i386/i386.c (ix86_compute_frame_layout): Move stack
22501 alignment adjustment to ...
22502 (ix86_update_stack_boundary): Here. Don't over-align stack for
22503 __tls_get_addr.
22504 (ix86_finalize_stack_realign_flags): Use stack_alignment_needed
22505 if __tls_get_addr is called.
22506
22507 2016-01-26 Christian Bruel <christian.bruel@st.com>
22508
22509 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Remove.
22510
22511 2016-01-26 Eric Botcazou <ebotcazou@adacore.com>
22512
22513 * config/ia64/ia64.c (ia64_expand_vecint_compare): Use gen_int_mode.
22514
22515 2016-01-26 Richard Biener <rguenther@suse.de>
22516
22517 PR middle-end/69467
22518 * match.pd: Guard X * CST CMP 0 pattern with single_use.
22519
22520 2016-01-26 Richard Biener <rguenther@suse.de>
22521
22522 PR tree-optimization/69452
22523 * tree-ssa-loop-im.c (move_computations_dom_walker): Remove.
22524 (move_computations_dom_walker::before_dom_children): Rename
22525 to ...
22526 (move_computations_worker): This.
22527 (move_computations): Perform an RPO rather than a DOM walk.
22528
22529 2016-01-26 Jakub Jelinek <jakub@redhat.com>
22530
22531 PR target/69442
22532 * combine.c (combine_instructions): For REG_EQUAL note with
22533 SET_DEST being ZERO_EXTRACT, also temporarily set SET_DEST
22534 to the underlying register.
22535 * doc/rtl.texi (REG_EQUAL): Document the behavior of
22536 REG_EQUAL/REG_EQUIV notes if SET_DEST is ZERO_EXTRACT.
22537
22538 2016-01-26 Roger Ferrer Ibáñez <rofirrim@gmail.com>
22539
22540 PR target/67896
22541 * config/aarch64/aarch64-builtins.c
22542 (aarch64_init_simd_builtin_types): Do not set structural
22543 equality to __Poly{8,16,64,128}_t types.
22544
22545 2016-01-26 Richard Sandiford <richard.sandiford@arm.com>
22546
22547 PR tree-optimization/69400
22548 * wide-int.cc (wi_pack): Take the precision as argument and
22549 perform canonicalization here rather than in the callers.
22550 Use the main loop to handle all full-width HWIs. Add a
22551 zero HWI if in_len isn't a full result.
22552 (wi::divmod_internal): Update accordingly.
22553 (wi::mul_internal): Likewise. Simplify.
22554
22555 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
22556 Sebastian Pop <s.pop@samsung.com>
22557
22558 * graphite-poly.c (apply_poly_transforms): Simplify.
22559 (print_isl_set): Use more readable format: ISL_YAML_STYLE_BLOCK.
22560 (print_isl_map): Same.
22561 (print_isl_union_map): Same.
22562 (print_isl_schedule): New.
22563 (debug_isl_schedule): New.
22564 * graphite-dependences.c (scop_get_reads): Do not call
22565 isl_union_map_add_map that is undocumented isl functionality.
22566 (scop_get_must_writes): Same.
22567 (scop_get_may_writes): Same.
22568 (scop_get_original_schedule): Remove.
22569 (scop_get_dependences): Do not call isl_union_map_compute_flow that
22570 is deprecated in isl 0.15. Instead, use isl_union_access_* interface.
22571 (compute_deps): Remove.
22572 * graphite-isl-ast-to-gimple.c (print_schedule_ast): New.
22573 (debug_schedule_ast): New.
22574 (translate_isl_ast_to_gimple::scop_to_isl_ast): Call
22575 set_separate_option.
22576 (graphite_regenerate_ast_isl): Add dump.
22577 (translate_isl_ast_to_gimple::scop_to_isl_ast): Generate code
22578 from scop->transformed_schedule.
22579 (graphite_regenerate_ast_isl): Add more dump.
22580 * graphite-optimize-isl.c (optimize_isl): Set
22581 scop->transformed_schedule. Check whether schedules are equal.
22582 (apply_poly_transforms): Move here.
22583 * graphite-poly.c (apply_poly_transforms): ... from here.
22584 (free_poly_bb): Static.
22585 (free_scop): Static.
22586 (pbb_number_of_iterations_at_time): Remove.
22587 (print_isl_ast): New.
22588 (debug_isl_ast): New.
22589 (debug_scop_pbb): New.
22590 * graphite-scop-detection.c (print_edge): Move.
22591 (print_sese): Move.
22592 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Remove.
22593 (build_scop_scattering): Remove.
22594 (create_pw_aff_from_tree): Assert instead of bailing out.
22595 (add_condition_to_pbb): Remove unused code, do not fail.
22596 (add_conditions_to_domain): Same.
22597 (add_conditions_to_constraints): Remove.
22598 (build_scop_context): New.
22599 (add_iter_domain_dimension): New.
22600 (build_iteration_domains): Initialize pbb->iterators.
22601 Call add_conditions_to_domain.
22602 (nested_in): New.
22603 (loop_at): New.
22604 (index_outermost_in_loop): New.
22605 (index_pbb_in_loop): New.
22606 (outermost_pbb_in): New.
22607 (add_in_sequence): New.
22608 (add_outer_projection): New.
22609 (outer_projection_mupa): New.
22610 (add_loop_schedule): New.
22611 (build_schedule_pbb): New.
22612 (build_schedule_loop): New.
22613 (embed_in_surrounding_loops): New.
22614 (build_schedule_loop_nest): New.
22615 (build_original_schedule): New.
22616 (build_poly_scop): Call build_original_schedule.
22617 * graphite.h: Declare print_isl_schedule and debug_isl_schedule.
22618 (free_poly_dr): Remove.
22619 (struct poly_bb): Add iterators. Remove schedule, transformed, saved.
22620 (free_poly_bb): Remove.
22621 (debug_loop_vec): Remove.
22622 (print_isl_ast): Declare.
22623 (debug_isl_ast): Declare.
22624 (scop_do_interchange): Remove.
22625 (scop_do_strip_mine): Remove.
22626 (scop_do_block): Remove.
22627 (flatten_all_loops): Remove.
22628 (optimize_isl): Remove.
22629 (pbb_number_of_iterations_at_time): Remove.
22630 (debug_scop_pbb): Declare.
22631 (print_schedule_ast): Declare.
22632 (debug_schedule_ast): Declare.
22633 (struct scop): Remove schedule. Add original_schedule,
22634 transformed_schedule.
22635 (free_gimple_poly_bb): Remove.
22636 (print_generated_program): Remove.
22637 (debug_generated_program): Remove.
22638 (unify_scattering_dimensions): Remove.
22639 * sese.c (print_edge): ... here.
22640 (print_sese): ... here.
22641 (debug_edge): ... here.
22642 (debug_sese): ... here.
22643 * sese.h (print_edge): Declare.
22644 (print_sese): Declare.
22645 (dump_edge): Declare.
22646 (dump_sese): Declare.
22647
22648 2016-01-25 Aditya Kumar <aditya.k7@samsung.com>
22649 Sebastian Pop <s.pop@samsung.com>
22650
22651 * Makefile.in: Set ISLVER in site.exp.
22652
22653 2016-01-25 Jakub Jelinek <jakub@redhat.com>
22654
22655 * omp-low.c (lower_omp_target) <case USE_DEVICE_PTR>: Set
22656 DECL_VALUE_EXPR of new_var even for the non-array case. Look
22657 through DECL_VALUE_EXPR for expansion.
22658
22659 2016-01-25 Bernd Edlinger <bernd.edlinger@hotmail.de>
22660
22661 * config/mips/mips.c (mips_compute_frame_info): Skip re-computing
22662 the frame info after reload completed.
22663
22664 2016-01-25 Jeff Law <law@redhat.com>
22665
22666 PR tree-optimization/69196
22667 PR tree-optimization/68398
22668 * tree-ssa-threadupdate.h (enum bb_dom_status): Moved here from
22669 tree-ssa-threadupdate.c.
22670 (determine_bb_domination_status): Prototype
22671 * tree-ssa-threadupdate.c (enum bb_dom_status): Remove
22672 (determine_bb_domination_status): No longer static.
22673 (valid_jump_thread_path): Remove code to detect characteristics
22674 of the jump thread path not associated with correctness.
22675 * tree-ssa-threadbackward.c (fsm_find_control_statment_thread_paths):
22676 Correct test for thread path length. Count PHIs for real operands as
22677 statements that need to be copied. Do not count ASSERT_EXPRs.
22678 Look at all the blocks in the thread path. Compute and selectively
22679 filter thread paths based on threading through the latch, threading
22680 a multiway branch or crossing a multiway branch.
22681
22682 2016-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22683
22684 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Add
22685 decl with __attribute__ ((unused)) annotation.
22686
22687 2016-01-25 Ilya Enkovich <enkovich.gnu@gmail.com>
22688
22689 PR target/69421
22690 * tree-vect-stmts.c (vectorizable_condition): Check vectype
22691 of operands is compatible with a statement vectype.
22692
22693 2016-01-25 Eric Botcazou <ebotcazou@adacore.com>
22694
22695 * doc/extend.texi (scalar_storage_order type attribute): Fix typo and
22696 improve wording for mixed storage order support.
22697
22698 2016-01-25 Bilyan Borisov <bilyan.borisov@arm.com>
22699
22700 * config/aarch64/arm_neon.h (vcvt_s64_f64): New intrinsic.
22701 (vcvt_u64_f64): Likewise.
22702 (vcvta_s64_f64): Likewise.
22703 (vcvta_u64_f64): Likewise.
22704 (vcvtm_s64_f64): Likewise.
22705 (vcvtm_u64_f64): Likewise.
22706 (vcvtn_s64_f64): Likewise.
22707 (vcvtn_u64_f64): Likewise.
22708 (vcvtp_s64_f64): Likewise.
22709 (vcvtp_u64_f64): Likewise.
22710
22711 2016-01-25 Claudiu Zissulescu <claziss@synopsys.com>
22712
22713 * config/arc/arc.c (TARGET_DWARF_REGISTER_SPAN): Define.
22714 (arc_init): Check validity mll64 option.
22715 (arc_save_restore): Use double load/store instruction.
22716 (arc_expand_movmem): Likewise.
22717 (arc_split_move): Don't split if we have double load/store
22718 instructions. Returns a boolean.
22719 (arc_process_double_reg_moves): Change function to return boolean
22720 instead of a sequence of instructions.
22721 (arc_dwarf_register_span): New function.
22722 * config/arc/arc-protos.h (arc_split_move): Change prototype.
22723 * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Define __ARC_LL64__.
22724 * config/arc/arc.md (*movdi_insn): Emit ldd/std instructions.
22725 (*movdf_insn): Likewise.
22726 * config/arc/arc.opt (mll64): New option.
22727 * config/arc/predicates.md (even_register_operand): New predicate.
22728 * doc/invoke.texi (ARC Options): Add mll64 documentation.
22729
22730 2016-01-25 Richard Biener <rguenther@suse.de>
22731
22732 PR lto/69393
22733 * dwarf2out.c (is_naming_typedef_decl): Not when DECL_NAMELESS.
22734 * tree-streamer-out.c (pack_ts_base_value_fields): Stream
22735 DECL_NAMELESS.
22736 * tree-streamer-in.c (unpack_ts_base_value_fields): Likewise.
22737
22738 2016-01-25 Richard Biener <rguenther@suse.de>
22739
22740 PR tree-optimization/69376
22741 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add range_info_anti_range_p
22742 flag.
22743 (VN_INFO_ANTI_RANGE_P): New inline.
22744 (VN_INFO_RANGE_TYPE): Likewise.
22745 * tree-ssa-sccvn.c (set_ssa_val_to): Also record and copy
22746 SSA_NAME_ANTI_RANGE_P.
22747 (free_scc_vn): Restore SSA_NAME_ANTI_RANGE_P.
22748 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
22749 Properly query VN_INFO_RANGE_TYPE.
22750
22751 2016-01-25 Nick Clifton <nickc@redhat.com>
22752
22753 PR target/66655
22754 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Remove definition.
22755
22756 2016-01-23 Tom de Vries <tom@codesourcery.com>
22757
22758 PR tree-optimization/69426
22759 * tree-parloops.c (eliminate_local_variables_stmt): Handle vdef of
22760 removed clobber.
22761
22762 2016-01-23 Jakub Jelinek <jakub@redhat.com>
22763
22764 * tree-ssanames.c (release_free_names_and_compact_live_names): Replace
22765 "the the" with "the" in the comments.
22766 * ipa-devirt.c (build_type_inheritance_graph,
22767 update_type_inheritance_graph): Likewise.
22768 * tree.c (build_function_type_list_1): Likewise.
22769 * cfgloopmanip.c (scale_loop_profile): Likewise.
22770 * tree-ssa-loop-ivopts.c (get_shiftadd_cost): Likewise.
22771 * gimple-ssa-split-paths.c
22772 (find_block_to_duplicate_for_splitting_paths): Likewise.
22773 * tree-sra.c (init_subtree_with_zero, clobber_subtree): Likewise.
22774 * expr.c (convert_move): Likewise.
22775 * var-tracking.c (vt_stack_adjustments): Likewise.
22776 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
22777 * tree-vrp.c (test_for_singularity): Likewise.
22778
22779 * tree-vect-stmts.c (vectorizable_condition): Build a VEC_COND_EXPR
22780 directly instead of building a temporary tree.
22781
22782 PR bootstrap/69434
22783 * genrecog.c: Define INCLUDE_ALGORITHM before including system.h,
22784 remove <algorithm> include.
22785
22786 2016-01-22 Jakub Jelinek <jakub@redhat.com>
22787
22788 PR target/69432
22789 * config/i386/i386.c: Include dojump.h.
22790 (expand_small_movmem_or_setmem,
22791 expand_set_or_movmem_prologue_epilogue_by_misaligned_moves): Spelling
22792 fixes.
22793 (ix86_expand_set_or_movmem): Call do_pending_stack_adjust () early
22794 if dynamic_check != -1.
22795
22796 2016-01-21 Jeff Law <law@redhat.com>
22797
22798 PR middle-end/69347
22799 * tree-ssa-dom.c (back_propagate_equivalences): Factored out of
22800 record_temporary_equivalences. Rewritten to avoid unnecessary calls
22801 into dominated_by_p.
22802 (cprop_into_successor_phis): Avoid unnecessary tests.
22803
22804 2016-01-22 Richard Henderson <rth@redhat.com>
22805
22806 PR target/69416
22807 * config/aarch64/aarch64.md (UNSPEC_NZCV): New.
22808 (ccmp<mode>, fccmp<mode>, fccmpe<mode>): Use it.
22809
22810 2016-01-22 Michael Matz <matz@suse.de>
22811
22812 * system.h (string, algorithm): Include only conditionally.
22813 (new): Include always under C++.
22814 * bb-reorder.c (toplevel): Define INCLUDE_ALGORITHM.
22815 * final.c (toplevel): Ditto.
22816 * ipa-chkp.c (toplevel): Define INCLUDE_STRING.
22817 * genconditions.c (write_header): Make gencondmd.c define
22818 INCLUDE_STRING.
22819 * mem-stats.h (mem_usage::print_dash_line): Don't use std::string.
22820
22821 * config/aarch64/aarch64.c (toplevel): Define INCLUDE_STRING.
22822 * common/config/aarch64/aarch64-common.c (toplevel): Ditto.
22823
22824 2016-01-22 Christian Bruel <christian.bruel@st.com>
22825
22826 PR target/68674
22827 * expr.c (expand_expr_real_1): Reset DECL_MODE if VECTOR_TYPE_P changed.
22828
22829 2016-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22830
22831 PR target/69403
22832 * config/arm/thumb2.md (*thumb2_ior_scc_strict_it): Convert to
22833 define_insn_and_split. Ensure operands[1] and operands[0] do not
22834 get assigned the same register.
22835
22836 2016-01-22 Kugan Vivekanandarajah <kuganv@linaro.org>
22837
22838 * ipa-prop.c (ipa_set_jf_constant): Remove redundant unshare_expr.
22839
22840 2016-01-22 Christian Bruel <christian.bruel@st.com>
22841
22842 * config/arm/arm-c.c (arm_pragma_target_parse):
22843 Remove warn_builtin_macro_redefined overwrite.
22844
22845 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
22846
22847 * ipa-inline.c (can_inline_edge_p): Back out overzealous check on
22848 flag_non_call_exceptions compatibility.
22849
22850 2016-01-22 Jakub Jelinek <jakub@redhat.com>
22851
22852 PR debug/66668
22853 * dwarf2out.c (add_child_die_after): New function.
22854 (dwarf_qual_info_t): New type.
22855 (dwarf_qual_info): New variable.
22856 (qualified_die_p): New function.
22857 (modified_type_die): For -fdebug-types-section, ensure
22858 canonical order of qualifiers. Put qualified DIEs adjacent
22859 to the corresponding non-qualified type DIE and search there
22860 for existing qualified DIEs.
22861
22862 2016-01-22 Eric Botcazou <ebotcazou@adacore.com>
22863
22864 * doc/extend.texi (scalar_storage_order type attribute): Document
22865 restriction on type punning and aliasing, and remove future tense.
22866
22867 2016-01-21 Roman Zhuykov <zhroma@ispras.ru>
22868
22869 PR target/69252
22870 * modulo-sched.c (optimize_sc): Allow branch-scheduling to add a new
22871 first stage.
22872
22873 2016-01-21 Jeff Law <law@redhat.com>
22874
22875 PR middle-end/69347
22876 * tree-ssa-dom.c (dom_opt_dom_walker::thread_across_edge): Avoid
22877 useless call to record_temporary_equivalences.
22878 * tree-ssa-threadbackward.c (find_jump_threads_backwards): Just
22879 allocate 10 slots in the bb_path vector and let it grow as needed.
22880 (fsm_find_control_statement_thread_paths): Similarly for the next_path
22881 vector.
22882
22883 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
22884
22885 * configure.ac (gcc_cv_as_powerpc_mfcrf, gcc_cv_as_machine_directive):
22886 Detangle.
22887 * configure: Regenerate.
22888
22889 2016-01-21 Pat Haugen <pthaugen@us.ibm.com>
22890
22891 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add entry for Power9.
22892 * config/rs6000/driver-rs6000.c (struct asm_names): Likewise.
22893
22894 2016-01-21 Bernd Schmidt <bschmidt@redhat.com>
22895
22896 PR middle-end/66178
22897 * expr.c (expand_expr_real_2) [PLUS_EXPR, MINUS_EXPR]: Don't
22898 drop EXPAND_INITIALIZER.
22899 * rtl.h (contains_symbolic_reference_p): Declare.
22900 * rtlanal.c (contains_symbolic_reference_p): New function.
22901 * simplify-rtx.c (simplify_binary_operation_1): Don't turn
22902 a subtraction into a NOT if symbolic constants are involved.
22903
22904 2016-01-21 Anton Blanchard <anton@samba.org>
22905 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
22906
22907 PR target/63354
22908 * config/rs6000/linux64.h (TARGET_KEEP_LEAF_WHEN_PROFILED): New
22909 #define.
22910 * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): New
22911 function.
22912
22913 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
22914
22915 * config/microblaze/microblaze.c
22916 (get_branch_target): New.
22917 (insert_wic_for_ilb_runout): New.
22918 (insert_wic): New.
22919 (microblaze_machine_dependent_reorg): New.
22920 (TARGET_MACHINE_DEPENDENT_REORG): Define macro.
22921 * config/microblaze/microblaze.md
22922 (UNSPEC_IPREFETCH): Define.
22923 (iprefetch): New pattern
22924 * config/microblaze/microblaze.opt
22925 (mxl-prefetch): New flag.
22926
22927 2016-01-21 Ajit Agarwal <ajitkum@xilinx.com>
22928
22929 * config/microblaze/microblaze.h
22930 (FIXED_REGISTERS): Update in macro.
22931 (CALL_USED_REGISTERS): Update in macro.
22932
22933 2016-01-21 Yuri Rumyantsev <ysrumyan@gmail.com>
22934
22935 PR rtl-optimization/68920
22936 * ifcvt.c (cond_move_process_if_block): Limit number of conditional
22937 moves.
22938
22939 2016-01-21 Vladimir Makarov <vmakarov@redhat.com>
22940
22941 PR rtl-optimization/68990
22942 * lra-coalesce.c (lra_coalesce): Invalidate value for the result
22943 pseudo instead of inheritance ones.
22944
22945 2016-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
22946 Nick Clifton <nickc@redhat.com>
22947
22948 PR target/69129
22949 PR target/69012
22950 * config/mips/mips.c (mips_compute_frame_info): Initialise
22951 args_size and hard_frame_pointer_offset fields of the frame
22952 structure before calling mips_global_pointer.
22953
22954 2016-01-21 David Edelsohn <dje.gcc@gmail.com>
22955
22956 * configure.ac (gcc_cv_as_dwloc): Test support for debug frame section
22957 label reference.
22958 * configure: Regenerate.
22959
22960 2016-01-21 Richard Biener <rguenther@suse.de>
22961
22962 * graphite-optimize-isl.c (get_schedule_map): Fix typo.
22963
22964 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
22965
22966 * config/s390/s390.c (s390_asm_declare_function_size): Add code
22967 to actually emit the .size directive.
22968
22969 2016-01-21 Stefan Sørensen <stefan.sorensen@spectralink.com>
22970 Jakub Jelinek <jakub@redhat.com>
22971
22972 PR target/69187
22973 PR target/65624
22974 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Increase
22975 args array size by one to avoid buffer overflow.
22976
22977 2016-01-21 Marcin Kościelnicki <koriakin@0x04.net>
22978
22979 * config/s390/s390.md (pool_section_start): Use switch_to_section
22980 to select proper read-only data section instead of hardcoding
22981 .rodata.
22982 (pool_section_end): Use switch_to_section to match the above.
22983
22984 2016-01-21 Richard Biener <rguenther@suse.de>
22985
22986 PR tree-optimization/69378
22987 * tree-ssa-sccvn.c (dominated_by_p_w_unex): New function.
22988 (set_ssa_val_to): Use it for dominance checks taking into
22989 account not executable edges.
22990
22991 2016-01-21 Jakub Jelinek <jakub@redhat.com>
22992
22993 PR c++/69355
22994 * tree-dfa.c (get_ref_base_and_extent): Use GET_MODE_BITSIZE (mode)
22995 for bitsize instead of GET_MODE_PRECISION (mode).
22996
22997 2016-01-20 Martin Sebor <msebor@redhat.com>
22998
22999 PR c/52291
23000 * extend.texi (__sync Builtins): Clarify the semantics of
23001 __sync_fetch_and_OP built-ins on pointers.
23002 (__atomic Builtins): Same.
23003
23004 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23005 Sebastian Pop <s.pop@samsung.com>
23006
23007 * graphite-isl-ast-to-gimple.c (enum phi_node_kind): New.
23008 (class translate_isl_ast_to_gimple): Use phi_node_kind instead of bool.
23009 (is_valid_rename): Same.
23010 (translate_isl_ast_to_gimple::get_rename): Same.
23011 (translate_isl_ast_to_gimple::rename_all_uses): Same.
23012 (translate_isl_ast_to_gimple::rename_uses): Same.
23013 (get_new_name): Check for close_phi nodes.
23014 (copy_loop_phi_args): Use phi_node_kind.
23015 (translate_isl_ast_to_gimple::copy_loop_close_phi_args): Same.
23016 (translate_isl_ast_to_gimple::copy_cond_phi_args): Same.
23017
23018 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23019 Sebastian Pop <s.pop@samsung.com>
23020
23021 Revert commit r229783.
23022 * graphite-isl-ast-to-gimple.c (gcc_expression_from_isl_ast_expr_id):
23023 Remove use of parameter_rename_map.
23024 (copy_def): Remove.
23025 (copy_internal_parameters): Remove.
23026 (graphite_regenerate_ast_isl): Remove call to copy_internal_parameters.
23027 * sese.c (new_sese_info): Do not initialize parameter_rename_map.
23028 (free_sese_info): Do not free parameter_rename_map.
23029 (set_rename): Do not use parameter_rename_map.
23030 (rename_uses): Update call to set_rename.
23031 (graphite_copy_stmts_from_block): Do not use parameter_rename_map.
23032 * sese.h (parameter_rename_map_t): Remove.
23033 (struct sese_info_t): Remove field parameter_rename_map.
23034
23035 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23036 Sebastian Pop <s.pop@samsung.com>
23037
23038 * graphite-isl-ast-to-gimple.c: Fix comment.
23039 * graphite-scop-detection.c (defined_in_loop_p): New.
23040 (canonicalize_loop_closed_ssa): Do not add close phi nodes for SSA
23041 names defined in loop.
23042
23043 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23044 Sebastian Pop <s.pop@samsung.com>
23045
23046 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
23047 Discard unstructured if-then-else regions.
23048
23049 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23050 Sebastian Pop <s.pop@samsung.com>
23051
23052 * graphite-sese-to-poly.c (set_scop_parameter_dim): Remove.
23053 (cleanup_loop_iter_dom): Remove.
23054 (build_loop_iteration_domains): Remove.
23055 (build_scop_context): Remove.
23056 (build_scop_iteration_domain): Remove.
23057 (add_loop_constraints): New.
23058 (build_iteration_domains): New.
23059 (build_poly_scop): Call build_iteration_domains.
23060
23061 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23062 Sebastian Pop <s.pop@samsung.com>
23063
23064 * graphite-scop-detection.c
23065 (scop_detection::harmful_loop_in_region): Free dom and loops.
23066 (scop_detection::loop_body_is_valid_scop): Free bbs.
23067
23068 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23069 Sebastian Pop <s.pop@samsung.com>
23070
23071 * graphite-scop-detection.c (record_loop_in_sese): New.
23072 (gather_bbs::before_dom_children): Call record_loop_in_sese.
23073 (build_scops): Remove call to build_sese_loop_nests.
23074 * sese.c (sese_record_loop): Remove.
23075 (build_sese_loop_nests): Remove.
23076 (new_sese_info): Remove region->loops.
23077 (free_sese_info): Same.
23078 * sese.h (sese_contains_loop): Same.
23079 (build_sese_loop_nests): Remove.
23080 (sese_contains_loop): Remove.
23081
23082 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23083 Sebastian Pop <s.pop@samsung.com>
23084
23085 * graphite-scop-detection.c (loop_is_valid_scop): Renamed
23086 loop_is_valid_in_scop.
23087 (scop_detection::harmful_stmt_in_region): Renamed
23088 harmful_loop_in_region.
23089 Call loop_is_valid_in_scop.
23090
23091 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23092 Sebastian Pop <s.pop@samsung.com>
23093
23094 * graphite-isl-ast-to-gimple.c (translate_isl_ast): Also handle
23095 isl_ast_node_mark.
23096
23097 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23098 Sebastian Pop <s.pop@samsung.com>
23099
23100 * graphite-poly.c (new_poly_bb): Remove use of PBB_IS_REDUCTION.
23101 * graphite.h (struct poly_bb): Remove field is_reduction.
23102 (PBB_IS_REDUCTION): Remove.
23103
23104 2016-01-21 Aditya Kumar <aditya.k7@samsung.com>
23105 Sebastian Pop <s.pop@samsung.com>
23106
23107 * graphite-dependences.c (constrain_domain): Add call to isl_*_coalesce.
23108 (add_pdr_constraints): Same.
23109 (scop_get_reads): Same.
23110 (scop_get_must_writes): Same.
23111 (scop_get_may_writes): Same.
23112 (scop_get_original_schedule): Same.
23113 (extend_schedule): Same.
23114 (apply_schedule_on_deps): Same.
23115 (carries_deps): Same.
23116 (compute_deps): Same.
23117 (scop_get_dependences): Same.
23118 * graphite-isl-ast-to-gimple.c
23119 (translate_isl_ast_to_gimple::generate_isl_schedule): Same.
23120 * graphite-optimize-isl.c (get_schedule_for_band): Same.
23121 (get_schedule_for_band_list): Same.
23122 (get_schedule_map): Same.
23123 (apply_schedule_map_to_scop): Same.
23124 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): Same.
23125 (build_loop_iteration_domains): Same.
23126 (add_condition_to_pbb): Same.
23127 (add_param_constraints): Same.
23128 (pdr_add_memory_accesses): Same.
23129 (pdr_add_data_dimensions): Same.
23130
23131 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
23132
23133 * doc/invoke.texi (Instrumentation Options): Clarify -mmpx linking
23134 requirements.
23135
23136 2016-01-20 Sandra Loosemore <sandra@codesourcery.com>
23137
23138 * common.opt (feliminate-dwarf2-dups): Replace references to
23139 "DWARF 2" with just "DWARF".
23140 * config/ia64/ia64.opt (mdwarf2-asm): Likewise.
23141 * doc/extend.texi: Likewise.
23142 * doc/cpp.texi: Likewise.
23143 * doc/invoke.texi: Likewise.
23144 (Option Summary): Add -gdwarf to list of Debugging Options.
23145 (Debugging Options): Document -gdwarf.
23146 * doc/contrib.texi: Spell "DWARF" like that.
23147
23148 2016-01-21 Jakub Jelinek <jakub@redhat.com>
23149
23150 * omp-low.c (expand_omp_target): Avoid -Wmaybe-uninitialized
23151 warning. Fix up formatting.
23152
23153 PR middle-end/67653
23154 * gimplify.c (gimplify_asm_expr): Warn if it is too late to
23155 attempt to mark memory input operand addressable and
23156 call prepare_gimple_addressable in that case. Don't adjust
23157 input_location for diagnostics, use error_at instead.
23158
23159 2016-01-20 Peter Bergner <bergner@vnet.ibm.com>
23160
23161 * config/rs6000/ppc-auxv.h: New file.
23162 * config/rs6000/rs6000-builtin.def (cpu_init): Add new builtin.
23163 (cpu_is): Likewise.
23164 (cpu_supports): Likewise.
23165 * config/rs6000/rs6000.c: include "ppc-auxv.h".
23166 (cpu_is_info): New variable.
23167 (cpu_supports_info): Likewise.
23168 (tcb_verification_symbol): Likewise.
23169 (cpu_builtin_p): Likewise.
23170 (cpu_expand_builtin): New function.
23171 (rs6000_expand_ternop_builtin): Add support for CPU builtin functions.
23172 (rs6000_init_builtins): Likewise.
23173 (rs6000_elf_file_end): Emit HWCAP in TCB verification symbol.
23174 * config/rs6000/rs6000.h (TLS_REGNUM): New define.
23175 * configure.ac (gcc_cv_libc_provides_hwcap_in_tcb): New test.
23176 * configure: Regenerate.
23177 * config.in: Likewise.
23178 * doc/extend.texi (PowerPC Built-in Functions): Document
23179 __builtin_cpu_init, __builtin_cpu_is and __builtin_cpu_supports.
23180
23181 2016-01-20 David Edelsohn <dje.gcc@gmail.com>
23182
23183 PR target/68609
23184 * config/rs6000/rs6000.c (rs6000_emit_swsqrt): Add vector sqrt
23185 domain check.
23186 * config/rs6000/vector.md (sqrt<mode>2): Call rs6000_emit_swsqrt
23187 for V4SFmode.
23188
23189 2016-01-20 Richard Henderson <rth@redhat.com>
23190
23191 PR bootstrap/69343
23192 PR bootstrap/69339
23193 PR tree-opt/68964
23194 Revert:
23195 * tree.c (tm_define_builtin): New.
23196 (find_tm_vector_type): New.
23197 (build_tm_vector_builtins): New.
23198 (build_common_builtin_nodes): Call it.
23199
23200 2016-01-20 Christophe Lyon <christophe.lyon@linaro.org>
23201
23202 * doc/sourcebuild.texi (arm_crypto_pragma_ok): Document new entry.
23203 (arm_fp_ok): Likewise.
23204 (arm_fp): Likewise.
23205 (arm_crypto): Likewise.
23206
23207 2016-01-20 Ilya Enkovich <enkovich.gnu@gmail.com>
23208 Richard Biener <rguenther@suse.de>
23209
23210 PR tree-optimization/69328
23211 * tree-vect-stmts.c (vect_is_simple_cond): Check compared
23212 vectors have same number of elements.
23213 (vectorizable_condition): Fix masked version recognition.
23214
23215 2016-01-20 Richard Biener <rguenther@suse.de>
23216
23217 PR tree-optimization/69345
23218 * tree-ssa-sccvn.h (VN_INFO_RANGE_INFO): New inline function.
23219 (VN_INFO_PTR_INFO): Likewise.
23220 * tree-ssa-sccvn.c (set_ssa_val_to): Avoid clearing points-to
23221 info when it is equal between non-dominating SSA names.
23222 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
23223 Make sure to look at original SSA infos.
23224
23225 2016-01-20 Jeff Law <law@redhat.com>
23226
23227 PR target/25114
23228 * config/m68k/predicates.md (pow2_m1_operand): New predicate
23229 extracted from ...
23230 (reg_or_pow2_m1_operand): Call pow2_m1_operand.
23231 (pc_or_label_operand): New predicate.
23232 * config/m68k/m68k.md: Add new peephole2 patterns for GTU/LEU
23233 tests for small integers that are 2^n - 1.
23234
23235 2016-01-20 Jonathan Wakely <jwakely@redhat.com>
23236
23237 * doc/invoke.texi (Options Summary): Add '.' after @xref.
23238
23239 2016-01-19 Jeff Law <law@redhat.com>
23240
23241 PR middle-end/69347
23242 * tree-ssa-threadbackwards.c
23243 (fsm_find_control_statement_thread_paths): Do not try to lookup
23244 FSM paths for SSA_NAMEs appearing in abnormal PHIs.
23245
23246 2016-01-20 Kugan Vivekanandarajah <kuganv@linaro.org>
23247
23248 * doc/lto.texi: Remove text that says only Gold has linker plugin
23249 support.
23250
23251 2016-01-19 Eric Botcazou <ebotcazou@adacore.com>
23252
23253 * dwarf2out.c (need_endianity_attribute_p): New inline predicate.
23254 (base_type_die): Add REVERSE parameter and attach DW_AT_endianity to
23255 the DIE accordingly.
23256 (modified_type_die): Add REVERSE parameter and pass it recursively,
23257 as well as to base_type_die. Adjust presence check accordingly.
23258 (base_type_for_mode): Adjust call to modified_type_die.
23259 (add_type_attribute): Add REVERSE parameter and pass it to
23260 modified_type_die.
23261 (generic_parameter_die): Adjust call to add_type_attribute.
23262 (add_scalar_info): Likewise.
23263 (add_subscript_info): Likewise.
23264 (gen_array_type_die): Likewise.
23265 (gen_descr_array_type_die): Likewise.
23266 (gen_entry_point_die): Likewise.
23267 (gen_enumeration_type_die): Likewise.
23268 (gen_formal_parameter_die): Likewise.
23269 (gen_subprogram_die): Likewise.
23270 (gen_variable_die ): Likewise.
23271 (gen_const_die): Likewise.
23272 (gen_field_die): Likewise.
23273 (gen_pointer_type_die): Likewise.
23274 (gen_reference_type_die): Likewise.
23275 (gen_ptr_to_mbr_type_die): Likewise.
23276 (gen_inheritance_die): Likewise.
23277 (gen_subroutine_type_die): Likewise.
23278 (gen_typedef_die): Likewise.
23279 (force_type_die): Adjust call to modified_type_die.
23280
23281 2016-01-19 Sandra Loosemore <sandra@codesourcery.com>
23282
23283 * doc/standards.texi: Copy-editing for grammar, markup, and sentence
23284 flow throughout the file. Fix broken link to Objective-C 2.0
23285 documentation.
23286 * doc/invoke.texi: More copy-editing; fix numerous typos and spelling
23287 errors.
23288
23289 2016-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23290
23291 * ccmp.c (expand_ccmp_expr_1): Avoid spurious unused warnings.
23292
23293 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23294
23295 PR ipa/66223
23296 * ipa-devirt.c (is_cxa_pure_virtual_p): New function.
23297 (maybe_record_node): Record cxa_pure_virtual as the only possible
23298 target if there are not ohter candidates.
23299 (possible_polymorphic_call_target_p): Accept cxa_pure_virtual.
23300
23301 2016-01-19 Richard Biener <rguenther@suse.de>
23302
23303 * hsa-gen.c (get_memory_order_name): Use MEMMODEL_ constants.
23304 (get_memory_order): Likewise.
23305
23306 2016-01-19 Kirill Yukhin <kirill.yukhin@intel.com>
23307
23308 * tree-vect-stmts.c (vectorizable_store): Check
23309 rhs vectype.
23310
23311 2016-01-19 David Malcolm <dmalcolm@redhat.com>
23312
23313 PR jit/68446
23314 * gcc.c (driver::decode_argv): Add call to
23315 init_opts_obstack before init_options_struct.
23316 * opts.c (init_opts_obstack): Remove idempotency.
23317 (init_options_struct): Replace call to init_opts_obstack
23318 with a gcc_assert to verify that it has already been called.
23319 * toplev.c (toplev::main): Add call to init_opts_obstack before
23320 calls to init_options_struct.
23321 (toplev::finalize): Move cleanup of opts_obstack next to
23322 cleanup of save_decoded_options, clearing the latter, and
23323 save_decoded_options_count.
23324
23325 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23326
23327 PR target/69135
23328 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): Set "conds"
23329 attribute to unconditional. Remove %? from output template.
23330
23331 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23332 Jiong Wang <jiong.wang@arm.com>
23333
23334 * ccmp.c (expand_ccmp_expr_1): Cost the instruction sequences
23335 generated from different expand order.
23336
23337 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23338
23339 * /config/aarch64/aarch64.c (aarch64_if_then_else_costs):
23340 Add support for CCMP costing.
23341
23342 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23343
23344 * ccmp.c (ccmp_candidate_p): Remove integer-only restriction.
23345 * config/aarch64/aarch64.md (fccmp<mode>): New pattern.
23346 (fccmpe<mode>): Likewise.
23347 (fcmp): Rename to fcmp and globalize pattern.
23348 (fcmpe): Likewise.
23349 * config/aarch64/aarch64.c (aarch64_gen_ccmp_first): Add FP support.
23350 (aarch64_gen_ccmp_next): Add FP support.
23351
23352 2015-01-19 Wilco Dijkstra <wdijkstr@arm.com>
23353
23354 * target.def (gen_ccmp_first): Update documentation.
23355 (gen_ccmp_next): Likewise.
23356 * doc/tm.texi (gen_ccmp_first): Update documentation.
23357 (gen_ccmp_next): Likewise.
23358 * ccmp.c (expand_ccmp_expr): Extract cmp_code from return value of
23359 expand_ccmp_expr_1. Improve comments.
23360 * config/aarch64/aarch64.md (ccmp_and): Use if_then_else for ccmp.
23361 (ccmp_ior<mode>): Remove pattern.
23362 (cmp<mode>): Remove expand.
23363 (cmp): Globalize pattern.
23364 (cstorecc4): Use cc_register.
23365 (mov<mode>cc): Remove ccmp_cc_register check.
23366 * config/aarch64/aarch64.c (aarch64_get_condition_code_1):
23367 Simplify after removal of CC_DNE/* modes.
23368 (aarch64_ccmp_mode_to_code): Remove.
23369 (aarch64_print_operand): Remove 'K' case. Merge 'm' and 'M' cases.
23370 In 'k' case use integer as condition.
23371 (aarch64_nzcv_codes): Remove inverted cases.
23372 (aarch64_code_to_ccmode): Remove.
23373 (aarch64_gen_ccmp_first): Use cmp pattern directly. Return the correct
23374 comparison with CC register to be used in folowing CCMP/branch/CSEL.
23375 (aarch64_gen_ccmp_next): Use previous comparison and mode in CCMP
23376 pattern. Return the comparison with CC register. Invert conditions
23377 when bitcode is OR.
23378 * config/aarch64/aarch64-modes.def: Remove CC_DNE/* modes.
23379 * config/aarch64/predicates.md (ccmp_cc_register): Remove.
23380
23381 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23382
23383 * cgraphunit.c (cgraph_node::reset): Clear thunk info and
23384 instrumented_version.
23385
23386 2016-01-19 Richard Biener <rguenther@suse.de>
23387
23388 PR tree-optimization/69336
23389 * tree-ssa-scopedtables.c (avail_expr_hash): Handle all
23390 handled components with get_ref_base_and_extent.
23391 (equal_mem_array_ref_p): Adjust.
23392
23393 2016-01-19 Jakub Jelinek <jakub@redhat.com>
23394
23395 PR debug/65779
23396 * shrink-wrap.c: Include valtrack.h.
23397 (move_insn_for_shrink_wrap): Add DEBUG argument. If
23398 MAY_HAVE_DEBUG_INSNS, call dead_debug_add on DEBUG_INSNs
23399 in between insn and where it will be moved to. Call
23400 dead_debug_insert_temp.
23401 (prepare_shrink_wrap): Adjust caller. Call dead_debug_local_init
23402 first and dead_debug_local_finish at the end.
23403 For uses and defs bitmap, handle all regs in between REGNO and
23404 END_REGNO, not just the first one.
23405
23406 2016-01-19 Richard Biener <rguenther@suse.de>
23407
23408 PR tree-optimization/69352
23409 * tree-ssa-scopedtables.c (avail_expr_hash): Check for size == -1.
23410 (equal_mem_array_ref_p): Constrain size and max size properly.
23411 Compare the reverse flag.
23412
23413 2016-01-19 Bernd Schmidt <bschmidt@redhat.com>
23414
23415 * ira.c (ira): Update regstat data if we deleted insns.
23416
23417 2016-01-19 Jakub Jelinek <jakub@redhat.com>
23418
23419 PR rtl-optimization/68955
23420 PR rtl-optimization/64557
23421 * dse.c (record_store, check_mem_read_rtx): Don't call get_addr
23422 here. Fix up formatting.
23423 * alias.c (get_addr): Handle VALUE +/- CONST_SCALAR_INT_P.
23424
23425 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23426
23427 PR lto/69133
23428 * cgraphunit.c (cgraph_node::expand_thunk): When forcing gimple
23429 assume that the node has body.
23430 * cgraph.c (cgraph_node::get_untransformed_body): Use gimple_body_p
23431 check.
23432
23433 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23434
23435 * lto-streamer-out.c (lto_output): Do not stream instrumentation
23436 thunks.
23437
23438 2016-01-19 Jan Hubicka <hubicka@ucw.cz>
23439
23440 * symtab.c (symtab_node::asm_name): Do not call printable name directly.
23441 (symtab_node::name): Report name as unnamed if DECL_NAME is not set.
23442
23443 2016-01-19 Martin Jambor <mjambor@suse.cz>
23444 Martin Liska <mliska@suse.cz>
23445 Michael Matz <matz@suse.de>
23446
23447 * Makefile.in (OBJS): Add new source files.
23448 (GTFILES): Add hsa.c.
23449 * common.opt (disable_hsa): New variable.
23450 (-Whsa): New warning.
23451 * config.in (ENABLE_HSA): New.
23452 * configure.ac: Treat hsa differently from other accelerators.
23453 (OFFLOAD_TARGETS): Define ENABLE_OFFLOADING according to
23454 $enable_offloading.
23455 (ENABLE_HSA): Define ENABLE_HSA according to $enable_hsa.
23456 * doc/install.texi (Configuration): Document --with-hsa-runtime,
23457 --with-hsa-runtime-include, --with-hsa-runtime-lib and
23458 --with-hsa-kmt-lib.
23459 * doc/invoke.texi (-Whsa): Document.
23460 (hsa-gen-debug-stores): Likewise.
23461 * lto-wrapper.c (compile_images_for_offload_targets): Do not attempt
23462 to invoke offload compiler for hsa acclerator.
23463 * opts.c (common_handle_option): Determine whether HSA offloading
23464 should be performed.
23465 * params.def (PARAM_HSA_GEN_DEBUG_STORES): New parameter.
23466 * builtin-types.def (BT_FN_VOID_UINT_PTR_INT_PTR): New.
23467 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_INT_INT): Removed.
23468 (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_UINT_PTR_PTR): New.
23469 * gimple-low.c (lower_stmt): Also handle GIMPLE_OMP_GRID_BODY.
23470 * gimple-pretty-print.c (dump_gimple_omp_for): Also handle
23471 GF_OMP_FOR_KIND_GRID_LOOP.
23472 (dump_gimple_omp_block): Also handle GIMPLE_OMP_GRID_BODY.
23473 (pp_gimple_stmt_1): Likewise.
23474 * gimple-walk.c (walk_gimple_stmt): Likewise.
23475 * gimple.c (gimple_build_omp_grid_body): New function.
23476 (gimple_copy): Also handle GIMPLE_OMP_GRID_BODY.
23477 * gimple.def (GIMPLE_OMP_GRID_BODY): New.
23478 * gimple.h (enum gf_mask): Added GF_OMP_PARALLEL_GRID_PHONY,
23479 GF_OMP_FOR_KIND_GRID_LOOP, GF_OMP_FOR_GRID_PHONY and
23480 GF_OMP_TEAMS_GRID_PHONY.
23481 (gimple_statement_omp_single_layout): Updated comments.
23482 (gimple_build_omp_grid_body): New function.
23483 (gimple_has_substatements): Also handle GIMPLE_OMP_GRID_BODY.
23484 (gimple_omp_for_grid_phony): New function.
23485 (gimple_omp_for_set_grid_phony): Likewise.
23486 (gimple_omp_parallel_grid_phony): Likewise.
23487 (gimple_omp_parallel_set_grid_phony): Likewise.
23488 (gimple_omp_teams_grid_phony): Likewise.
23489 (gimple_omp_teams_set_grid_phony): Likewise.
23490 (gimple_return_set_retbnd): Also handle GIMPLE_OMP_GRID_BODY.
23491 * omp-builtins.def (BUILT_IN_GOMP_OFFLOAD_REGISTER): New.
23492 (BUILT_IN_GOMP_OFFLOAD_UNREGISTER): Likewise.
23493 (BUILT_IN_GOMP_TARGET): Updated type.
23494 * omp-low.c: Include symbol-summary.h, hsa.h and params.h.
23495 (adjust_for_condition): New function.
23496 (get_omp_for_step_from_incr): Likewise.
23497 (extract_omp_for_data): Moved parts to adjust_for_condition and
23498 get_omp_for_step_from_incr.
23499 (build_outer_var_ref): Handle GIMPLE_OMP_GRID_BODY.
23500 (fixup_child_record_type): Bail out if receiver_decl is NULL.
23501 (scan_sharing_clauses): Handle OMP_CLAUSE__GRIDDIM_.
23502 (scan_omp_parallel): Do not create child functions for phony
23503 constructs.
23504 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_GRID_BODY.
23505 (scan_omp_1_op): Checking assert we are not remapping to
23506 ERROR_MARK. Also also handle GIMPLE_OMP_GRID_BODY.
23507 (parallel_needs_hsa_kernel_p): New function.
23508 (expand_parallel_call): Register apprpriate parallel child
23509 functions as HSA kernels.
23510 (grid_launch_attributes_trees): New type.
23511 (grid_attr_trees): New variable.
23512 (grid_create_kernel_launch_attr_types): New function.
23513 (grid_insert_store_range_dim): Likewise.
23514 (grid_get_kernel_launch_attributes): Likewise.
23515 (get_target_argument_identifier_1): Likewise.
23516 (get_target_argument_identifier): Likewise.
23517 (get_target_argument_value): Likewise.
23518 (push_target_argument_according_to_value): Likewise.
23519 (get_target_arguments): Likewise.
23520 (expand_omp_target): Call get_target_arguments instead of looking
23521 up for teams and thread limit.
23522 (grid_expand_omp_for_loop): New function.
23523 (grid_arg_decl_map): New type.
23524 (grid_remap_kernel_arg_accesses): New function.
23525 (grid_expand_target_kernel_body): New function.
23526 (expand_omp): Call it.
23527 (lower_omp_for): Do not emit phony constructs.
23528 (lower_omp_taskreg): Do not emit phony constructs but create for them
23529 a temporary variable receiver_decl.
23530 (lower_omp_taskreg): Do not emit phony constructs.
23531 (lower_omp_teams): Likewise.
23532 (lower_omp_grid_body): New function.
23533 (lower_omp_1): Call it.
23534 (grid_reg_assignment_to_local_var_p): New function.
23535 (grid_seq_only_contains_local_assignments): Likewise.
23536 (grid_find_single_omp_among_assignments_1): Likewise.
23537 (grid_find_single_omp_among_assignments): Likewise.
23538 (grid_find_ungridifiable_statement): Likewise.
23539 (grid_target_follows_gridifiable_pattern): Likewise.
23540 (grid_remap_prebody_decls): Likewise.
23541 (grid_copy_leading_local_assignments): Likewise.
23542 (grid_process_kernel_body_copy): Likewise.
23543 (grid_attempt_target_gridification): Likewise.
23544 (grid_gridify_all_targets_stmt): Likewise.
23545 (grid_gridify_all_targets): Likewise.
23546 (execute_lower_omp): Call grid_gridify_all_targets.
23547 (make_gimple_omp_edges): Handle GIMPLE_OMP_GRID_BODY.
23548 * tree-core.h (omp_clause_code): Added OMP_CLAUSE__GRIDDIM_.
23549 (tree_omp_clause): Added union field dimension.
23550 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE__GRIDDIM_.
23551 * tree.c (omp_clause_num_ops): Added number of arguments of
23552 OMP_CLAUSE__GRIDDIM_.
23553 (omp_clause_code_name): Added name of OMP_CLAUSE__GRIDDIM_.
23554 (walk_tree_1): Handle OMP_CLAUSE__GRIDDIM_.
23555 * tree.h (OMP_CLAUSE_GRIDDIM_DIMENSION): New.
23556 (OMP_CLAUSE_SET_GRIDDIM_DIMENSION): Likewise.
23557 (OMP_CLAUSE_GRIDDIM_SIZE): Likewise.
23558 (OMP_CLAUSE_GRIDDIM_GROUP): Likewise.
23559 * passes.def: Schedule pass_ipa_hsa and pass_gen_hsail.
23560 * tree-pass.h (make_pass_gen_hsail): Declare.
23561 (make_pass_ipa_hsa): Likewise.
23562 * ipa-hsa.c: New file.
23563 * lto-section-in.c (lto_section_name): Add hsa section name.
23564 * lto-streamer.h (lto_section_type): Add hsa section.
23565 * timevar.def (TV_IPA_HSA): New.
23566 * hsa-brig-format.h: New file.
23567 * hsa-brig.c: New file.
23568 * hsa-dump.c: Likewise.
23569 * hsa-gen.c: Likewise.
23570 * hsa.c: Likewise.
23571 * hsa.h: Likewise.
23572 * toplev.c (compile_file): Call hsa_output_brig.
23573 * hsa-regalloc.c: New file.
23574
23575 2016-01-18 Jeff Law <law@redhat.com>
23576
23577 PR tree-optimization/69320
23578 * tree-ssa-dom.c (record_edge_info): For comparisons against a boolean
23579 ranged object, do nothing if the RHS constant is not [0..1].
23580 (optimize_stmt): Comparing a boolean ranged object against a
23581 constant outside [0..1] results in a compile-time constant.
23582
23583 * tree-ssanames.c (ssa_name_has_boolean_range): Remove unnecessary
23584 test.
23585
23586 2016-01-18 Sandra Loosemore <sandra@codesourcery.com>
23587
23588 * doc/invoke.texi (Invoking GCC): Add new section to menu.
23589 (Option Summary): Update to reflect new section and moved options.
23590 (C++ Dialect Options): Move -fstats to new section.
23591 (Debugging Options): Move all dump, statistics, and other GCC
23592 developer options to new section. Rewrite section introduction
23593 and re-order remaining options to put the more basic ones first.
23594 (Optimization Options): Move -fira-verbose and -flto-report* to
23595 new section.
23596 (Developer Options): New section incorporating moved options.
23597 * doc/cppopts.texi (-dM): Update cross-reference.
23598
23599 2016-01-18 Richard Henderson <rth@redhat.com>
23600
23601 PR target/69176
23602 * config/aarch64/aarch64.md (add<GPI>3): Move long immediate
23603 operands to pseudo only if CSE is expected. Split long immediate
23604 operands only after reload, and for the stack pointer.
23605 (*add<GPI>3_pluslong): Remove.
23606 (*addsi3_aarch64, *adddi3_aarch64): Merge into...
23607 (*add<GPI>3_aarch64): ... here. Add r/rk/Upl alternative.
23608 (*addsi3_aarch64_uxtw): Add r/rk/Upl alternative.
23609 (*add<GPI>3 peepholes): New.
23610 (*add<GPI>3 splitters): New.
23611 * config/aarch64/constraints.md (Upl): New.
23612 * config/aarch64/predicates.md (aarch64_pluslong_strict_immedate): New.
23613
23614 2016-01-18 Richard Biener <rguenther@suse.de>
23615
23616 PR tree-optimization/69297
23617 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Count each scalar
23618 stmt at most once.
23619 (vect_bb_vectorization_profitable_p): Clear visited flag again.
23620
23621 2016-01-18 Yuri Rumyantsev <ysrumyan@gmail.com>
23622
23623 PR middle-end/68542
23624 * fold-const.c (fold_binary_op_with_conditional_arg): Bail out for case
23625 of mixind vector and scalar types.
23626 (fold_relational_const): Add handling of vector
23627 comparison with boolean result.
23628 * tree-cfg.c (verify_gimple_comparison): Add argument CODE, allow
23629 comparison of vector operands with boolean result for EQ/NE only.
23630 (verify_gimple_assign_binary): Adjust call for verify_gimple_comparison.
23631 (verify_gimple_cond): Likewise.
23632 * tree-vrp.c (extract_code_and_val_from_cond_with_ops): Modify check on
23633 valid type of VAL.
23634
23635 2016-01-18 Joseph Myers <joseph@codesourcery.com>
23636
23637 * config/mips/mips.h (ISA_HAS_PAIRED_SINGLE): Require
23638 !TARGET_OCTEON.
23639
23640 2016-01-18 Richard Biener <rguenther@suse.de>
23641
23642 PR middle-end/69308
23643 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND.
23644
23645 2016-01-18 Tom de Vries <tom@codesourcery.com>
23646
23647 * passes.def: Add pass_parallelize_loops to pass_oacc_kernels.
23648
23649 2016-01-18 Tom de Vries <tom@codesourcery.com>
23650
23651 * omp-low.c (set_oacc_fn_attrib): Make extern.
23652 * omp-low.h (set_oacc_fn_attrib): Declare.
23653 * tree-parloops.c (struct reduction_info): Add reduc_addr field.
23654 (create_call_for_reduction_1): Handle case that reduc_addr is non-NULL.
23655 (create_parallel_loop, gen_parallel_loop, try_create_reduction_list):
23656 Add and handle function parameter oacc_kernels_p.
23657 (find_reduc_addr, get_omp_data_i_param): New function.
23658 (ref_conflicts_with_region, oacc_entry_exit_ok_1)
23659 (oacc_entry_exit_single_gang, oacc_entry_exit_ok): New function.
23660 (parallelize_loops): Add and handle function parameter oacc_kernels_p.
23661 Calculate dominance info. Skip loops that are not in a kernels region
23662 in oacc_kernels_p mode. Skip inner loops of parallelized loops.
23663 (pass_parallelize_loops::execute): Call parallelize_loops with
23664 oacc_kernels_p argument.
23665 (pass_parallelize_loops::clone, pass_parallelize_loops::set_pass_param):
23666 New member function.
23667 (pass_parallelize_loops::bool oacc_kernels_p): New member var.
23668 * passes.def: Add argument to pass_parallelize_loops instantation.
23669
23670 2016-01-18 Tom de Vries <tom@codesourcery.com>
23671
23672 * tree-parloops.c (pass_parallelize_loops::execute): Allow
23673 pass_parallelize_loops to be run outside the loop pipeline.
23674
23675 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
23676
23677 * tree-scalar-evolution.c (follow_copies_to_constant): New.
23678 (analyze_initial_condition, analyze_scalar_evolution_1): Call previous.
23679
23680 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
23681
23682 PR target/63679
23683 * tree-ssa-scopedtables.c (avail_expr_hash): Hash MEM_REF and ARRAY_REF
23684 using get_ref_base_and_extent.
23685 (equal_mem_array_ref_p): New.
23686 (hashable_expr_equal_p): Add call to previous.
23687
23688 2016-01-18 Alan Lawrence <alan.lawrence@arm.com>
23689
23690 PR target/63679
23691 * tree-sra.c (disqualified_constants, constant_decl_p): New.
23692 (sra_initialize): Allocate disqualified_constants.
23693 (sra_deinitialize): Free disqualified_constants.
23694 (disqualify_candidate): Update disqualified_constants when appropriate.
23695 (create_access): Scan for constant-pool entries as we go along.
23696 (scalarizable_type_p): Add check against type_contains_placeholder_p.
23697 (maybe_add_sra_candidate): Allow constant-pool entries.
23698 (load_assign_lhs_subreplacements): Bind debug for constant pool vars.
23699 (initialize_constant_pool_replacements): New.
23700 (sra_modify_assign): Avoid mangling assignments created by previous,
23701 and don't generate writes into constant pool.
23702 (sra_modify_function_body): Call initialize_constant_pool_replacements.
23703
23704 2016-01-18 Ilya Enkovich <enkovich.gnu@gmail.com>
23705
23706 * config/i386/i386.c (scalar_to_vector_candidate_p): Support
23707 andnot instruction.
23708 (scalar_chain::convert_op): Likewise.
23709 * config/i386/i386.md (*andndi3_doubleword): New.
23710
23711 2016-01-18 Richard Biener <rguenther@suse.de>
23712
23713 PR tree-optimization/69170
23714 * tree-vect-slp.c (vect_build_slp_tree): Verify we are not
23715 building a vector from scalar results of a pattern stmt.
23716
23717 2016-01-18 Jakub Jelinek <jakub@redhat.com>
23718
23719 * haifa-sched.c (autopref_multipass_init): Work around
23720 -Wmaybe-uninitialized warning.
23721
23722 2016-01-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
23723
23724 * config/arm/arm.c (thumb1_reorg): Check that the comparison is
23725 against the constant 0.
23726
23727 2016-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
23728
23729 PR tree-optimization/68799
23730 * gimple-ssa-strength-reduction.c (create_phi_basis): Directly
23731 look up phi candidates in the statement-candidate map.
23732 (phi_add_costs): Likewise.
23733 (record_phi_increments): Likewise.
23734 (phi_incr_cost): Likewise.
23735 (ncd_with_phi): Likewise.
23736 (all_phi_incrs_profitable): Likewise.
23737
23738 2016-01-17 Jakub Jelinek <jakub@redhat.com>
23739
23740 * omp-low.c (mark_loops_in_oacc_kernels_region): Work around
23741 -Wmaybe-uninitialized warning.
23742
23743 2016-01-16 Sandra Loosemore <sandra@codesourcery.com>
23744
23745 * doc/invoke.texi (Invoking GCC): Add new section to menu.
23746 (Option Summary): Update to reflect new section and moved options.
23747 (C++ Dialect Options): Move -fvtable-verify and related options.
23748 (Debugging Options): Move Sanitizer, Pointer Bounds Checker,
23749 and profiling-related options.
23750 (Optimization Options): Move profile generation options and
23751 -fstack-protector and related options.
23752 (Instrumentation Options): New section incorporating moved options.
23753 (Code Generation Options): Move -finstrument-functions and
23754 related options, -fstack-check, -fstack-limit*, and -fbounds-check.
23755
23756 2016-01-16 Tom de Vries <tom@codesourcery.com>
23757
23758 * passes.def: Move pass_expand_omp_ssa out of pass_parallelize_loops.
23759
23760 2016-01-16 Tom de Vries <tom@codesourcery.com>
23761
23762 * omp-low.c (expand_omp_atomic_fetch_op): Release defs of update stmt.
23763
23764 2016-01-16 Richard Sandiford <richard.sandiford@arm.com>
23765
23766 * hash-table.h (hash_table::empty): Turn into an inline wrapper
23767 that checks whether the table is already empty. Rename the
23768 original implementation to...
23769 (hash_table::empty_slot): ...this new private function.
23770
23771 2016-01-15 David Malcolm <dmalcolm@redhat.com>
23772
23773 PR diagnostic/68899
23774 * diagnostic-show-locus.c (layout::print_source_line): Move x
23775 offset of line until after call to
23776 get_line_width_without_trailing_whitespace.
23777
23778 2016-01-15 Jeff Law <law@redhat.com>
23779
23780 PR tree-optimization/69270
23781 * tree-ssanames.c (ssa_name_has_boolean_range): Moved here from
23782 tree-ssa-dom.c. Improve test for [0..1] ranve from VRP.
23783 * tree-ssa-dom.c (ssa_name_has_boolean_range): Remove.
23784 * tree-ssanames.h (ssa_name_has_boolean_range): Prototype.
23785 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use
23786 ssa_name_has_boolean_range and constant_boolean_node.
23787
23788 2016-01-15 Vladimir Makarov <vmakarov@redhat.com>
23789
23790 PR rtl-optimization/69030
23791 * lra-spills.c (remove_pseudos): Check nrefs and make the function
23792 returning bool.
23793 (spill_pseudos): Delete debug insn for dead pseudo.
23794 (lra_spill): Initiate spill_hard_reg and slots memory separately.
23795
23796 2016-01-15 Jiong Wang <jiong.wang@arm.com>
23797
23798 * config/aarch64/aarch64-builtins.c (aarch64_types_unopus_qualifiers):
23799 New.
23800 (TYPES_UNOPUS): Likewise.
23801 * config/aarch64/aarch64-simd-builtins.def (lbtruncuv2sf): Correct
23802 builtin type, from UNOP to UNOPUS.
23803 (lbtruncuv4sf): Likewise.
23804 (lbtruncuv2df): Likewise.
23805 (lrounduv2sf): Likewise.
23806 (lrounduv4sf): Likewise.
23807 (lrounduv2df): Likewise.
23808 (lroundusf): Likewise.
23809 (lroundusf): Likewise.
23810 (lceiluv2sf): Likewise.
23811 (lceiluv4sf): Likewise.
23812 (lceiluv2df): Likewise.
23813 (lceilusf): Likewise.
23814 (lceiludf): Likewise.
23815 (lflooruv2sf): Likewise.
23816 (lflooruv4sf): Likewise.
23817 (lflooruv2df): Likewise.
23818 (lfloorusf): Likewise.
23819 (lfloorudf): Likewise.
23820 (lfrintnuv2sf): Likewise.
23821 (lfrintnuv4sf): Likewise.
23822 (lfrintnuv2df): Likewise.
23823 (lfrintnusf): Likewise.
23824 (lfrintnudf): Likewise.
23825 * config/aarch64/arm_neon.h (vcvt_u32_f32): Remove unncessary type
23826 conversion.
23827 (vcvtq_u32_f32): Likewise.
23828 (vcvtq_u64_f64): Likewise.
23829 (vcvta_u32_f32): Likewise.
23830 (vcvtaq_u32_f32): Likewise.
23831 (vcvtaq_u64_f64): Likewise.
23832 (vcvtm_u32_f32): Likewise.
23833 (vcvtmq_u32_f32): Likewise.
23834 (vcvtmq_u64_f64): Likewise.
23835 (vcvtn_u32_f32): Likwise.
23836 (vcvtnq_u32_f32): Likewise.
23837 (vcvtnq_u64_f64): Likewise.
23838 (vcvtp_u32_f32): Likewise.
23839 (vcvtpq_u32_f32): Likewise.
23840 (vcvtpq_u64_f64): Likewise.
23841 (vcvtmd_u64_f64): Likewise.
23842 (vcvtms_u32_f32): Likewise.
23843 (vcvtad_u64_f64): Likewise.
23844 (vcvtas_u32_f32): Likewise.
23845 (vcvtnd_u64_f64): Likewise.
23846 (vcvtns_u32_f32): Likewise.
23847 (vcvtpd_u64_f64): Likewise.
23848 (vcvtps_u32_f32): Likewise.
23849
23850 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23851
23852 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Handle
23853 CSEL of zero_extended registers.
23854
23855 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23856
23857 * config/aarch64/aarch64.c (aarch64_rtx_costs, COMPARE case):
23858 Handle COMPARE of ZERO_EXTRACT against zero form of TST-immediate.
23859
23860 2016-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
23861
23862 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Return
23863 false when argument string is not found in the attributes table
23864 at all.
23865
23866 2016-01-15 David Edelsohn <dje.gcc@gmail.com>
23867
23868 PR target/68609
23869 * config/rs6000/rs6000.c (rs6000_emit_msub): Delete.
23870 (rs6000_emit_swsqrt): Convert to Goldschmidt's Algorithm
23871 * config/rs6000/rs6000.md (sqrt<mode>2): Limit swsqrt to high
23872 precision estimate.
23873
23874 2016-01-15 Richard Biener <rguenther@suse.de>
23875
23876 PR tree-optimization/66856
23877 * tree-vect-loop.c (vect_transform_loop): Free SLP instances here.
23878 * tree-vect-slp.c (vect_free_slp_tree): Decrement stmt reference count.
23879 (vect_create_new_slp_node): Increment stmt reference count.
23880 (vect_get_and_check_slp_defs): Make sure stmts are nor already in
23881 an SLP tree before swapping operands.
23882 (vect_build_slp_tree): Likewise.
23883 (destroy_bb_vec_info): Free stmt info after SLP instances.
23884 * tree-vect-stmts.c (new_stmt_vec_info): Initialize reference count.
23885 * tree-vectorizer.h (struct _stmt_vec_info): Add num_slp_uses field.
23886 (STMT_VINFO_NUM_SLP_USES): New macro.
23887
23888 2016-01-15 Richard Biener <rguenther@suse.de>
23889
23890 PR debug/69137
23891 * dwarf2out.c (add_linkage_name_raw): New function split out from ...
23892 (add_linkage_name): ... here.
23893 (gen_typedef_die): Use add_linkage_name_raw instead of
23894 add_linkage_attr to delay DECL_ASSEMBLER_NAME computation
23895 if necessary.
23896
23897 2016-01-15 Cesar Philippidis <cesar@codesourcery.com>
23898
23899 * gimplify.c (oacc_default_clause): Decode reference and pointer
23900 types for both kernels and parallel regions.
23901
23902 2016-01-15 Richard Sandiford <richard.sandiford@arm.com>
23903
23904 PR middle-end/69246
23905 * calls.c (emit_call_1): Force n_popped to zero for sibcalls.
23906
23907 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
23908
23909 * config/i386/i386.c (scalar_chain::compute_convert_gain): Fix typo.
23910 (convert_scalars_to_vector): Likewise.
23911
23912 2016-01-15 Jonathan Wakely <jwakely@redhat.com>
23913
23914 * doc/extend.texi (Type Traits): Fix grammar.
23915
23916 2016-01-15 Martin Jambor <mjambor@suse.cz>
23917
23918 * tree-inline.c (remap_decl): Use existing dclarations if
23919 remapping a type and prevent_decl_creation_for_types.
23920 (replace_locals_stmt): Do an initial remapping of non-VLA typed
23921 decls first. Do real remapping with
23922 prevent_decl_creation_for_types set.
23923 * tree-inline.h (copy_body_data): New field
23924 prevent_decl_creation_for_types, moved remap_var_for_cilk to avoid
23925 padding.
23926
23927 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
23928
23929 * config/s390/s390.opt (mmvcle): More verbose help text.
23930
23931 2016-01-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
23932
23933 * config/s390/s390.opt: Add period to -mzvector option text.
23934
23935 2016-01-15 Richard Biener <rguenther@suse.de>
23936
23937 PR tree-optimization/68961
23938 * tree-vect-slp.c (vect_analyze_slp_cost_1): Consider cost
23939 of invariants in stores again.
23940
23941 2016-01-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
23942
23943 * config/arm/t-rtems: Add cortex-m7/fpv5-d16 multilib.
23944
23945 2016-01-15 Ilya Enkovich <enkovich.gnu@gmail.com>
23946
23947 * config/i386/i386.c (ix86_expand_branch): Don't split
23948 DI mode xor instruction to SI mode.
23949
23950 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
23951
23952 PR ipa/68148
23953 * ipa-icf.c (sem_function::merge): Virtual functions may become
23954 reachable even if they address is not taken and there are no
23955 idrect calls.
23956
23957 2016-01-15 Jan Hubicka <hubicka@ucw.cz>
23958
23959 * lto-streamer-out.c (subtract_estimated_size): New function.
23960 (get_symbol_initial_value): Use it.
23961
23962 2016-01-15 Christian Bruel <christian.bruel@st.com>
23963
23964 PR target/65837
23965 * config/arm/arm-builtins.c (ARM_BUILTIN_CRYPTO_BASE): New enum tag.
23966 (arm_init_neon_builtins_internal): Rename arm_init_neon_builtins,
23967 (arm_init_crypto_builtins_internal): Rename arm_init_crypto_builtins.
23968 use add_builtin_function_ext_scope instead of add_builtin_function.
23969 (neon_set_p, neon_crypto_set_p): Remove.
23970 (arm_init_builtins): Always call arm_init_neon_builtins and
23971 arm_init_crypto_builtins.
23972 (arm_expand_builtin): Check that builtins are allowed for the arch.
23973 * config/arm/arm-protos.h (arm_init_neon_builtins): Remove prototype.
23974 * config/arm/arm.c (arm_valid_target_attribute_tree): Remove
23975 arm_init_neon_builtins call.
23976
23977 2016-01-15 Richard Biener <rguenther@suse.de>
23978
23979 PR tree-optimization/69117
23980 * tree-ssa-sccvn.h (struct vn_ssa_aux): Add info member.
23981 * tree-ssa-sccvn.c (set_ssa_val_to): Save and adjust SSA name info
23982 of the leader conservatively.
23983 (free_scc_vn): Restore original SSA name infos.
23984
23985 2016-01-14 Jeff Law <law@redhat.com>
23986
23987 PR tree-optimization/69270
23988 * tree-ssa-dom.c (ssa_name_has_boolean_range): If the type has a
23989 single bit of precision, verify it's also unsigned.
23990 (record_edge_info): Use constant_boolean_node rather than fold_convert
23991 to convert boolean_true/boolean_false to the right type.
23992
23993 2016-01-14 Richard Henderson <rth@redhat.com>
23994
23995 PR rtl-opt/69014
23996 * loop-doloop.c (record_reg_sets): New.
23997 (doloop_optimize): Reject the transform if the sequence
23998 clobbers registers live at the end of the loop block.
23999 (doloop_optimize_loops): Enable df_live if needed.
24000
24001 2016-01-14 Michael Meissner <meissner@linux.vnet.ibm.com>
24002
24003 * config/rs6000/rs6000-builtin.def: Revert 2016-01-13 change.
24004 * config/rs6000/rs6000.c: Likewise.
24005 * config/rs6000/rs6000.h: Likewise.
24006 * config/rs6000/rs6000.md: Likewise.
24007 * doc/extend.texi: Likewsie.
24008
24009 2016-01-14 Jeff Law <law@redhat.com>
24010
24011 * tree-ssa-dom.c (ssa_name_has_boolean_range): Fix comment
24012 typo.
24013
24014 2016-01-14 Richard Henderson <rth@redhat.com>
24015
24016 PR c/69272
24017 PR tree-opt/68964
24018 * trans-mem.c (tm_log_emit_stmt): Fix unit size to bit size.
24019 * tree.c (build_tm_vector_builtins): Use builtin_decl_explicit_p
24020 instead of builtin_decl_declared_p to test for declaration.
24021
24022 2016-01-14 Nicklas Bo Jensen <nbjensen@gmail.com>
24023
24024 * doc/loop.texi (Loop Analysis and Representation): Document
24025 loop_depth function.
24026
24027 2016-01-14 Tom de Vries <tom@codesourcery.com>
24028
24029 PR tree-optimization/68773
24030 * omp-low.c (expand_omp_target): Don't set force_output.
24031 * varpool.c (varpool_node::get_create): Same.
24032 * lto-cgraph.c (input_offload_tables): Mark entries in offload_vars and
24033 offload_funcs with force_output.
24034
24035 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24036
24037 PR debug/69244
24038 * lra-eliminations.c (move_plus_up): Don't change anything if either
24039 the outer or inner subreg mode is not MODE_INT.
24040 * dwarf2out.c (mem_loc_descriptor): For SUBREG, if outer mode is
24041 integral <= DWARF2_ADDR_SIZE, convert to untyped afterwards.
24042
24043 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24044
24045 * doc/md.texi (reduc_smin_@var{m}, reduc_smax_@var{m},
24046 reduc_umin_@var{m}, reduc_umax_@var{m}, reduc_splus_@var{m},
24047 reduc_uplus_@var{m}): Remove.
24048 * expr.c (expand_expr_real_2): Remove expansion path for
24049 reduc_[us](min|max|plus) optabs.
24050 * optabs-tree.c (scalar_reduc_to_vector): Remove.
24051 * optabs-tree.h (scalar_reduc_to_vector): Remove.
24052 * optabs.def (reduc_smax_optab, reduc_smin_optab, reduc_splus_optab,
24053 reduc_umax_optab, reduc_umin_optab, reduc_uplus_optab): Remove.
24054 * tree-vect-loop.c (vectorizable_reduction): Remove test for
24055 reduc_[us](min|max|plus) optabs.
24056
24057 2016-01-14 Alan Lawrence <alan.lawrence@arm.com>
24058
24059 * config/mips/mips-ps-3d.md (reduc_splus_v2sf): Remove.
24060 (reduc_plus_scal_v2sf): New.
24061 (reduc_smax_v2sf): Rename to...
24062 (reduc_smax_scal_v2sf): ...here, make result SFmode, add vec_extract.
24063 (reduc_smin_v2sf): Rename to...
24064 (reduc_smin_scal_v2sf): ...here, make result SFmode, add vec_extract.
24065
24066 2016-01-14 Jan Hubicka <hubicka@ucw.cz>
24067
24068 * alias.c (compare_base_symbol_refs): New function.
24069 (rtx_equal_for_memref_p, base_alias_check, memrefs_conflict_p): Use
24070 it.
24071
24072 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24073
24074 PR middle-end/68146
24075 PR tree-optimization/69155
24076 * tree-complex.c: Include cfganal.h.
24077 (phis_to_revisit): New variable.
24078 (extract_component): Add phiarg_p argument. Assert that returned
24079 SSA_NAME has non-NULL SSA_NAME_DEF_STMT unless phiarg_p is true.
24080 (update_phi_components): Partly rewrite to use loop over real/imag
24081 components instead of code duplication. If extract_component returns
24082 SSA_NAME with NULL SSA_NAME_DEF_STMT, store SSA_NAME_VAR or
24083 create_tmp_reg into the PHI node instead, and mention the phi triplet
24084 in phis_to_revisit.
24085 (tree_lower_complex): Walk bbs in rpo order. Adjust phis recorded
24086 in phis_to_revisit at the end.
24087
24088 2016-01-14 Richard Biener <rguenther@suse.de>
24089
24090 PR tree-optimization/68060
24091 * tree-vect-loop.c (vect_is_simple_reduction): Check the
24092 outer loop reduction is only used in the inner loop before
24093 detecting a double reduction.
24094
24095 2016-01-14 Jakub Jelinek <jakub@redhat.com>
24096
24097 PR target/68269
24098 * combine.c (expand_field_assignment): Punt if compute_mode is
24099 unsupported scalar mode.
24100
24101 2016-01-14 Richard Biener <rguenther@suse.de>
24102
24103 PR tree-optimization/66856
24104 * tree-vect-slp.c (vect_build_slp_tree): Refactor to build
24105 SLP node only if it built successfully.
24106 (vect_analyze_slp_instance): Adjust.
24107
24108 2016-01-14 Jeff Law <law@redhat.com>
24109
24110 PR tree-optimization/69270
24111 * tree-ssa-dom.c (ssa_name_has_boolean_range): New function.
24112 (record_edge_info): Use it. Convert boolean_{true,false}_node
24113 to the type of op0.
24114
24115 2016-01-13 Jan Hubicka <hubicka@ucw.cz>
24116
24117 PR ipa/66487
24118 * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
24119 use block_ultimate_origin
24120 (noncall-stmt_may_be_vtbl_ptr_store): Likewise.
24121
24122 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
24123
24124 * doc/invoke.texi (Submodel Options): Rename section to
24125 "Machine-Dependent Options" to better reflect its content.
24126 Rewrite introductory text to remove archaic CPU names.
24127 Update references.
24128
24129 2016-01-13 Sandra Loosemore <sandra@codesourcery.com>
24130
24131 * doc/invoke.texi (Code Gen Options): Move section up in file,
24132 before target-specific options. Update menu and option summary
24133 to reflect the new section ordering.
24134
24135 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
24136
24137 * doc/invoke.texi (C Dialect Options): Adjust -std default for C++.
24138 (C++ Dialect Options): Add cross-reference to -std option.
24139 * doc/standards.texi (C++ Language): Document C++14 support.
24140
24141 2016-01-13 Michael Meissner <meissner@linux.vnet.ibm.com>
24142
24143 * config/rs6000/rs6000-builtin.def (BU_FLOAT128_2): Add support
24144 for pack/unpack functions for __ibm128.
24145 (PACK_IF): Likewise.
24146 (UNPACK_IF): Likewise.
24147
24148 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add
24149 support for __ibm128 pack/unpack functions.
24150 (rs6000_invalid_builtin): Likewise.
24151 (rs6000_init_builtins): Likewise.
24152 (rs6000_opt_masks): Likewise.
24153
24154 * config/rs6000/rs6000.h (MASK_FLOAT128): Add short name.
24155 (RS6000_BTM_FLOAT128): Add support for __ibm128 pack/unpack
24156 functions
24157 (RS6000_BTM_COMMON): Likewise.
24158
24159 * config/rs6000/rs6000.md (f128_vsx): New mode attribute.
24160 (unpack<mode>): Use FMOVE128_FPR iterator instead of FMOVE128, to
24161 disallow __builtin_{pack,unpack}_longdouble if long double is IEEE
24162 128-bit floating point. Add support for the double values to be
24163 in Altivec registers for TF/IF packing and unpacking, but restrict
24164 TD packing sub-fields to be FPR registers. Don't allow overlapped
24165 register support for packing. Allow pack inputs to be memory
24166 locations. Don't build generator functions for unpack<mode>_dm
24167 and unpack<mode>_nodm.
24168 (unpack<mode>_dm): Likewise.
24169 (unpack<mode>_nodm): Likewise.
24170 (pack<mode>): Likewise.
24171
24172 * config/rs6000/rs6000-builtin.def (__builtin_pack_ibm128): Add
24173 built-in functions to pack/unpack explicit __ibm128 values.
24174 (__builtin_unpack_ibm128): Likewise.
24175
24176 * doc/extend.texi (PowerPC Built-in Functions): Document
24177 __builtin_pack_ibm128 and __builtin_unpack_ibm128.
24178
24179 2016-01-13 Bernd Schmidt <bschmidt@redhat.com>
24180
24181 PR c/66208
24182 * c-common.c (check_function_nonnull): Remove unnecessary declaration.
24183 Add new arg loc and pass it down as context.
24184 (check_nonnull_arg): Don't mark ctx arg as unused. Use it as a pointer
24185 to the location to use for the warning.
24186 (check_function_arguments): New arg loc. All callers changed. Pass
24187 it to check_function_nonnull.
24188 * c-common.h (check_function_arguments): Adjust declaration.
24189
24190 2016-01-13 Jakub Jelinek <jakub@redhat.com>
24191
24192 PR tree-optimization/69156
24193 * gimple.c (validate_type): Removed.
24194 (gimple_builtin_call_types_compatible_p): Use
24195 useless_type_conversion_p instead of validate_type.
24196 * value-prof.c (gimple_stringop_fixed_value): Fold
24197 icall_size to correct type.
24198
24199 2016-01-13 Jonathan Wakely <jwakely@redhat.com>
24200
24201 * doc/extend.texi (__atomic Builtins): Clarify compare_exchange
24202 effects.
24203
24204 2016-01-13 Richard Henderson <rth@redhat.com>
24205
24206 PR tree-opt/68964
24207 * target.def (builtin_tm_load, builtin_tm_store): Remove.
24208 * config/i386/i386.c (ix86_builtin_tm_load): Remove.
24209 (ix86_builtin_tm_store): Remove.
24210 (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24211 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24212 * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_TM_LOAD): Remove.
24213 (TARGET_VECTORIZE_BUILTIN_TM_STORE): Remove.
24214 * doc/tm.texi: Rebuild.
24215
24216 * gtm-builtins.def (BUILT_IN_TM_MEMCPY_RNWT): New.
24217 (BUILT_IN_TM_MEMCPY_RTWN): New.
24218 * trans-mem.c (tm_log_emit_stmt): Rearrange code for better
24219 fallback from vector to integer helpers.
24220 (build_tm_load): Handle vector types directly, instead of
24221 via target hook.
24222 (build_tm_store): Likewise.
24223 (expand_assign_tm): Prepare for register types not handled by
24224 the above. Copy them to memory and use memcpy.
24225 * tree.c (tm_define_builtin): New.
24226 (find_tm_vector_type): New.
24227 (build_tm_vector_builtins): New.
24228 (build_common_builtin_nodes): Call it.
24229
24230 2016-01-13 Uros Bizjak <ubizjak@gmail.com>
24231
24232 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Return -1 for
24233 TARGET_SSE_MATH without TARGET_SSE2. Rewrite.
24234
24235 2016-01-13 Tom de Vries <tom@codesourcery.com>
24236
24237 PR tree-optimization/69169
24238 * tree-ssa-structalias.c (create_variable_info_for_1): Add and handle
24239 handled_struct_type param.
24240 (create_variable_info_for, intra_create_variable_infos): Call
24241 create_variable_info_for_1 with extra arg.
24242
24243 2016-01-13 Yvan Roux <yvan.roux@linaro.org>
24244
24245 * config/arm/arm-arches.def: Remove spurious whitespace in "armv8.1-a"
24246 and "armv8.1-a+crc" entries.
24247
24248 2016-01-13 Alexander Fomin <alexander.fomin@intel.com>
24249
24250 PR target/69228
24251 * config/i386/sse.md (define_expand "avx512pf_gatherpf<mode>sf"):
24252 Change first operand predicate from register_or_constm1_operand
24253 to register_operand.
24254 (define_expand "avx512pf_gatherpf<mode>df"): Likewise.
24255 (define_expand "avx512pf_scatterpf<mode>sf"): Likewise.
24256 (define_expand "avx512pf_scatterpf<mode>df"): Likewise.
24257 (define_insn "*avx512pf_gatherpf<mode>sf"): Remove.
24258 (define_insn "*avx512pf_gatherpf<mode>df"): Likewise.
24259 (define_insn "*avx512pf_scatterpf<mode>sf"): Likewise.
24260 (define_insn "*avx512pf_scatterpf<mode>df"): Likewise.
24261 * config/i386/i386.c (ix86_expand_builtin): Remove first operand
24262 comparison with constm1_rtx from vec_prefetch_gen part.
24263
24264 2016-01-13 Richard Biener <rguenther@suse.de>
24265
24266 PR tree-optimization/69013
24267 * tree-ssa-uninit.c (prune_uninit_phi_opnds_in_unrealizable_paths):
24268 Exchange assert for a test.
24269
24270 2016-01-13 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
24271
24272 PR target/69247
24273 * config/s390/s390.md (bswaphi splitter): Use simplify_gen_subreg.
24274
24275 2016-01-13 Richard Biener <rguenther@suse.de>
24276
24277 PR tree-optimization/69242
24278 * tree-ssa-sccvn.c (visit_reference_op_load): Replace bogus
24279 assert with a check.
24280
24281 2016-01-13 Richard Biener <rguenther@suse.de>
24282
24283 PR tree-optimization/69186
24284 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment):
24285 Properly guard vect_update_misalignment_for_peel call.
24286
24287 2016-01-12 Jeff Law <law@redhat.com>
24288
24289 PR tree-optimization/pr67755
24290 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add new field
24291 "need_profile_correction".
24292 (thread_block_1): Initialize new field to false by default. If we
24293 have multiple thread paths through a common joiner to different
24294 final targets, then set new field to true.
24295 (compute_path_counts): Only do count adjustment when it's really
24296 needed.
24297
24298 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24299
24300 * doc/invoke.texi (Spec Files): Move section down in file, past
24301 all command-line option descriptions.
24302
24303 2016-01-12 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
24304
24305 PR middle-end/54809
24306 * doc/gty.texi: Remove documentation of mark_hook.
24307 * gengtype.c (struct write_types_data): Remove code to support
24308 mark_hook attribute.
24309 (walk_type): Likewise.
24310 (write_func_for_structure): Likewise.
24311
24312 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24313
24314 * doc/invoke.texi (Option Summary) Move -no-canonical-prefixes to
24315 Directory Options, and -specs= to Overall Options.
24316 (Overall Options): Adjust similarly. Reorder to group related
24317 options together. Make -specs= cross-reference the spec file details.
24318 (Directory Options): Adjust similarly.
24319
24320 2016-01-12 Jeff Law <law@redhat.com>
24321
24322 * tree-ssa-threadupdate.c: Various whitespace and typo fixes.
24323
24324 2016-01-12 Olivier Hainque <hainque@adacore.com>
24325
24326 * gcc.c (spec_undefvar_allowed): New global.
24327 (process_command): Set to true when running for --version or --help,
24328 alone or together.
24329 (getenv_spec_function): When the variable is not defined, use the
24330 variable name as the variable value if we're allowed not to issue
24331 a fatal error.
24332
24333 2016-01-12 Bin Cheng <bin.cheng@arm.com>
24334
24335 PR tree-optimization/68911
24336 * tree-vrp.c (adjust_range_with_scev): Check overflow in range
24337 information computed for expression "init + nit * step".
24338
24339 2016-01-12 Sandra Loosemore <sandra@codesourcery.com>
24340
24341 * doc/invoke.texi (Invoking GCC): Copy-edit. Incorporate information
24342 about name of GCC executable. Remove deleted node from menu.
24343 (Directory Options) <-B>: Remove cross-reference to deleted node.
24344 (Target Options): Delete section.
24345
24346 2016-01-12 Christian Bruel <christian.bruel@st.com>
24347
24348 PR target/69180
24349 * config/arm/arm-c.c (arm_pragma_target_parse): Set NODE_CONDITIONAL
24350 for __ARM_NEON_FP, __ARM_FP, _ARM_FEATURE_LDREX.
24351
24352 2016-01-12 Jakub Jelinek <jakub@redhat.com>
24353
24354 PR target/69198
24355 * config/i386/i386.c (ix86_expand_special_args_builtin): Ensure
24356 aligned_mem is properly set for AVX512-VL floating point masked
24357 stores.
24358
24359 PR target/69175
24360 * ifcvt.c (cond_exec_process_if_block): When removing the last
24361 insn from then_bb, remove also any possible barriers that follow it.
24362
24363 2016-01-12 H.J. Lu <hongjiu.lu@intel.com>
24364
24365 PR target/68456
24366 PR target/69226
24367 * config/i386/iamcu.h (SIZE_TYPE): New macro.
24368 (PTRDIFF_TYPE): Likewise.
24369 (WCHAR_TYPE): Likewise.
24370 (WCHAR_TYPE_SIZE): Likewise.
24371 (STDINT_LONG32): Likewise.
24372
24373 2016-01-12 Richard Biener <rguenther@suse.de>
24374
24375 PR tree-optimization/69053
24376 * tree-vect-loop.c (get_initial_def_for_reduction): Properly
24377 convert initial value for cond reductions.
24378
24379 2016-01-12 Richard Biener <rguenther@suse.de>
24380
24381 PR tree-optimization/69007
24382 * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Move
24383 widen_sum after dot_prod and sad.
24384
24385 2016-01-12 Richard Biener <rguenther@suse.de>
24386
24387 PR tree-optimization/69168
24388 * tree-vect-loop.c (vect_analyze_loop_2): Reset both main and
24389 pattern stmt SLP type.
24390 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Patterns may
24391 end up unused so cope with that case.
24392
24393 2016-01-12 Richard Biener <rguenther@suse.de>
24394
24395 PR tree-optimization/69157
24396 * tree-vect-stmts.c (vectorizable_mask_load_store): Check
24397 stmts def type only during analyze phase.
24398 (vectorizable_call): Likewise.
24399 (vectorizable_simd_clone_call): Likewise.
24400 (vectorizable_conversion): Likewise.
24401 (vectorizable_assignment): Likewise.
24402 (vectorizable_shift): Likewise.
24403 (vectorizable_operation): Likewise.
24404 (vectorizable_store): Likewise.
24405 (vectorizable_load): Likewise.
24406
24407 2016-01-12 Richard Biener <rguenther@suse.de>
24408
24409 PR tree-optimization/69174
24410 * tree-vect-stmts.c (vect_mark_relevant): Remove excessive vertical
24411 space.
24412 (vectorizable_load): Properly compute the number of loads needed
24413 for permuted strided SLP loads and do not spuriously assign
24414 to SLP_TREE_VEC_STMTS.
24415
24416 2016-01-12 Andris Pavenis <andris.pavenis@iki.fi>
24417
24418 * config/i386/djgpp.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2
24419 (TARGET_ASM_OUTPUT_IDENT): Define to default_asm_output_ident_directive
24420 (MD_EXEC_PREFIX): Remove.
24421 (MD_STARTFILE_PREFIX) Removee.
24422 (FILE_NAME_ABSOLUTE_P): Remove.
24423 (CPP_SPEC): Do not read macros from sys/version.h.
24424 (LINK_COMMAND_SPEC): Remove.
24425 (LOCAL_INCLUDE_DIR): Remove.
24426 (TARGET_ASM_NAMED_SECTION): Define to i386_djgpp_asm_named_section
24427 (TARGET_OS_CPP_BUILTINS): Add DJGPP (non ISO only), __DJGPP, __DJGPP__, unix.
24428 (POST_LINK_SPEC): Define to invoke stubify after linker
24429 (LIBSTDCXX): Remove define
24430 (DBX_REGISTER_NUMBER): Define to svr4_dbx_register_map.
24431 (DEFAULT_PCC_STRUCT_RETURN): Define to 1.
24432 (SUBTARGET_OVERRIDE_OPTIONS): Remove warning about -mbnu2210.
24433 (SUBTARGET_OVERRIDE_OPTIONS): Ignore -fPIC and generate message.
24434 (SUBTARGET_OVERRIDE_OPTIONS): Default to DWARF2 debugging info.
24435 (IX86_MAYBE_NO_LIBGCC_TFMODE): Remove.
24436 (i386_djgpp_asm_named_section): Add propotype of new procedure
24437
24438 * config/i386/xm-djgpp.h (NATIVE_SYSTEM_HEADER_DIR): Define.
24439 (MD_EXEC_PREFIX): Define (moved from config/i386/djgpp.h).
24440 (STANDARD_STARTFILE_PREFIX_1): Define (moved from MD_STARTFILE_PREFIX
24441 in config/i386/djgpp.h).
24442 (STANDARD_STARTFILE_PREFIX_2): Define identical to
24443 STANDARD_STARTFILE_PREFIX_1.
24444 (LOCAL_INCLUDE_DIR): Define (moved from config/i386/djgpp.h).
24445 (GCC_DRIVER_HOST_INITIALIZATION): Fix reporting fatal
24446 installation errors.
24447 (MAX_OFILE_ALIGNMENT): Define to 128.
24448 (HAVE_FTW_H): Undefine as DJGPP do not have nftw, but have ftw.h.
24449
24450 * config/i386/djgpp.c: New file. Add implementation of
24451 i386_djgpp_asm_named_section.
24452
24453 * config/i386/djgpp.opt: Remove obsolete option -mbnu210.
24454
24455 * config/i386/t-djgpp: New file. Add djgpp.o to EXTRA_OBJS.
24456 Add rule for building djgpp.o.
24457
24458 2016-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24459
24460 * config/rs6000/rs6000.c (v2df_reduction_p): New function.
24461 (rtx_is_swappable_p): Reductions are swappable.
24462 (insn_is_swappable_p): V2DF reductions are swappable.
24463
24464 2016-01-11 John David Anglin <danglin@gcc.gnu.org>
24465
24466 * config/pa/pa.c (pa_emit_move_sequence): Handle floating point
24467 reloads for other unsupported memory operands.
24468
24469 2016-01-12 Kugan Vivekanandarajah <kuganv@linaro.org>
24470 Jim Wilson <jim.wilson@linaro.org>
24471
24472 PR target/69194
24473 * config/arm/arm-builtins.c (arm_expand_neon_args): Call
24474 copy_to_mode_reg instead of force_reg.
24475
24476 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
24477
24478 PR target/69225
24479 * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Set to 2 only if
24480 TARGET_80387 is true.
24481
24482 2016-01-11 Jakub Jelinek <jakub@redhat.com>
24483
24484 PR target/69071
24485 * lra-eliminations.c (move_plus_up): Only move plus up
24486 if subreg of the constant can be simplified into constant
24487 and use the simplified subreg of the constant instead of
24488 the original constant.
24489
24490 * fold-const.c (fold_convertible_p): Don't return true
24491 for conversion of VECTOR_TYPE to same sized integral type.
24492 (fold_convert_loc): Fix up formatting. Fold conversion of
24493 VECTOR_TYPE to same sized integral type using VIEW_CONVERT_EXPR
24494 instead of NOP_EXPR.
24495
24496 PR tree-optimization/69214
24497 * tree-vrp.c (simplify_cond_using_ranges): Don't propagate
24498 innerop into a comparison if SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
24499 Formatting fix.
24500
24501 PR tree-optimization/69207
24502 * tree-vect-slp.c (vect_get_constant_vectors): For
24503 VECTOR_BOOLEAN_TYPE_P, assert op has integral type instead of
24504 fold_convertible_p to vector_type's element type, and always
24505 use VCE for non-VECTOR_BOOLEAN_TYPE_P.
24506
24507 2016-01-11 Richard Biener <rguenther@suse.de>
24508
24509 PR tree-optimization/69173
24510 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Only
24511 fixup the cycle if all stmts are in a pattern.
24512
24513 2016-01-11 Uros Bizjak <ubizjak@gmail.com>
24514
24515 PR middle-end/68999
24516 * alias.c (base_alias_check): Move check for addresses with
24517 alignment ANDs before the call for compare_base_decls.
24518 (memrefs_conflict_p): Return -1 for different decls
24519 that went through alignment adjustments.
24520
24521 2016-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24522
24523 PR rtl-optimization/68796
24524 * config/aarch64/aarch64.md (*and<mode>_compare0): New pattern.
24525 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Handle HImode
24526 and QImode comparisons against zero with CC_NZmode.
24527 * config/aarch64/iterators.md (short_mask): New mode_attr.
24528
24529 2016-01-11 H.J. Lu <hongjiu.lu@intel.com>
24530
24531 * config/i386/sse.md (<avx512>_load<mode>_mask): Remove snprintf.
24532 (<avx512>_store<mode>_mask): Likewise.
24533
24534 2016-01-11 Bernd Schmidt <bschmidt@redhat.com>
24535 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24536
24537 PR rtl-optimization/68841
24538 * ifcvt.c (struct noce_if_info): Add orig_x field.
24539 (bbs_ok_for_cmove_arith): Add to_rename parameter.
24540 Don't record conflicts on to_rename if it's present.
24541 Allow memory destinations in sets.
24542 (noce_try_cmove_arith): Call bbs_ok_for_cmove_arith even on simple
24543 blocks, passing orig_x to the checks.
24544 (noce_process_if_block): Set if_info->orig_x appropriately.
24545
24546 2016-01-11 Tom de Vries <tom@codesourcery.com>
24547
24548 PR tree-optimization/69069
24549 * tree-parloops.c (create_parallel_loop): Add missing phi args.
24550
24551 2016-01-11 Yuri Rumyantsev <ysrumyan@gmail.com>
24552
24553 PR rtl-optimization/68920
24554 * config/i386/i386.c (ix86_option_override_internal): Restrict number
24555 of conditional moves for RTL if-conversion to 1 for
24556 TARGET_ONE_IF_CONV_INSN.
24557 * config/i386/i386.h (TARGET_ONE_IF_CONV_INSN): New macros.
24558 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): New macros.
24559 * params.def (PARAM_MAX_RTL_IF_CONVERSION_INSNS) : Introduce new
24560 parameter to restirct number of conditional moves for
24561 RTL if-conversion.
24562 * doc/invoke.texi (max-rtl-if-conversion-insns): Document it.
24563 * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Limit number of
24564 conditionl moves.
24565
24566 2016-01-11 Alexandre Oliva <aoliva@redhat.com>
24567
24568 PR bootstrap/69123
24569 * var-tracking.c (drop_overlapping_mem_locs): Operate on all
24570 onepart vars. Fix typo in comment. Fix reversed condition in
24571 unshare test.
24572 (dataflow_set_remove_mem_locs): Operate on all onepart vars.
24573
24574 PR bootstrap/69123
24575 * var-tracking.c (dump_onepart_variable_differences): New.
24576 (dataflow_set_different): If a detailed dump is requested,
24577 delay early returns and dump differences between onepart
24578 variables present before and after, and added variables.
24579
24580 2016-01-11 Ilya Enkovich <enkovich.gnu@gmail.com>
24581
24582 PR target/69010
24583 * expr.c (expand_expr_real_1): For boolean vector constants
24584 with a scalar mode use const_scalar_mask_from_tree.
24585 (const_scalar_mask_from_tree): New.
24586 * optabs.c (expand_vec_cond_mask_expr): Use mask mode
24587 assigned to a mask type to handle constants.
24588
24589 2016-01-11 Martin Jambor <mjambor@suse.cz>
24590
24591 PR ipa/69044
24592 * ipa-cp.c (estimate_local_effects): Do not clone for removal of
24593 useless parameters if we cannot change function signature.
24594
24595 2016-01-11 Martin Jambor <mjambor@suse.cz>
24596
24597 PR ipa/66616
24598 * cgraphclones.c (duplicate_thunk_for_node): Copy can_change_signature
24599 flag.
24600
24601 2016-01-11 Tom de Vries <tom@codesourcery.com>
24602
24603 PR tree-optimization/69109
24604 * tree-parloops.c (try_transform_to_exit_first_loop_alt): Don't allow
24605 latch with phi.
24606
24607 2016-01-11 Tom de Vries <tom@codesourcery.com>
24608
24609 PR tree-optimization/69108
24610 * tree-parloops.c (gather_scalar_reductions): Handle case that outer phi
24611 res is not used in a phi.
24612
24613 2016-01-11 Yury Gribov <y.gribov@samsung.com>
24614
24615 PR 67425
24616 * common.opt (frandom-seed): Fix parameter name.
24617 * doc/invoke.texi (frandom-seed): Ditto and describe parameter.
24618
24619 2016-01-11 Tom de Vries <tom@codesourcery.com>
24620
24621 PR tree-optimization/69058
24622 * tree-parloops.c (pass_parallelize_loops::execute): Return 0 if libgomp
24623 not supported.
24624
24625 2016-01-11 Andrew Burgess <andrew.burgess@embecosm.com>
24626
24627 * config/arc/arc.opt (mdiv-rem): Add period to the end.
24628 (mcode-density): Likewise.
24629
24630 2016-01-10 Tom de Vries <tom@codesourcery.com>
24631
24632 PR tree-optimization/69062
24633 * tree-parloops.c (loop_has_phi_with_address_arg): New function.
24634 (parallelize_loops): Don't paralelize loop that has phi with address
24635 arg.
24636
24637 2016-01-10 Tom de Vries <tom@codesourcery.com>
24638
24639 PR tree-optimization/69039
24640 * tree-parloops.c (try_create_reduction_list): Only allow single exit
24641 phi for reduction.
24642
24643 2016-01-09 John David Anglin <danglin@gcc.gnu.org>
24644
24645 PR middle-end/68743
24646 * match.pd: Require target has function_c99_misc before doing
24647 truncl(extend(x)) and trunc(extend(x)) -> extend(truncf(x)), etc.
24648
24649 2016-01-09 Gerald Pfeifer <gerald@pfeifer.com>
24650
24651 * configure.ac (isl_options_set_schedule_serialize_sccs): Also
24652 use GMPINC.
24653 * configure: Regenerate.
24654
24655 2016-01-09 Jakub Jelinek <jakub@redhat.com>
24656
24657 PR middle-end/50865
24658 PR tree-optimization/69097
24659 * fold-const.h (expr_not_equal_to): New prototype.
24660 * fold-const.c: Include stringpool.h and tree-ssanames.h.
24661 (expr_not_equal_to): New function.
24662 * match.pd (X % -Y is the same as X % Y): Don't optimize
24663 unless X is known not to be equal to minimum or Y is known
24664 not to be equal to -1.
24665 * tree-vrp.c (simplify_div_or_mod_using_ranges): Add GSI argument.
24666 fold TRUNC_MOD_EXPR if the second argument is not a power of two.
24667 (simplify_stmt_using_ranges): Adjust caller.
24668 (vrp_finalize): Call set_value_range on SSA_NAMEs before calling
24669 substitute_and_fold.
24670
24671 2016-01-09 Jan Hubicka <hubicka@ucw.cz>
24672
24673 * ipa-icf.c (sem_item_optimizer::merge_classes): Do not ICE on VAR_DECL
24674 w/o DECL_NAME.
24675
24676 2016-01-08 Jakub Jelinek <jakub@redhat.com>
24677
24678 PR tree-optimization/69167
24679 * gimple-fold.c (replace_stmt_with_simplification): Also punt if
24680 new SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs appear in operands of
24681 ops[0] comparison.
24682 * gimple-match-head.c (maybe_push_res_to_seq): Likewise.
24683
24684 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
24685 Richard Biener <rguenther@suse.de>
24686
24687 PR tree-optimization/68707
24688 * tree-vect-slp.c (vect_analyze_slp_instance): Cancel permuted SLP
24689 instances that can be handled via vect_load_lanes.
24690
24691 2016-01-08 Uros Bizjak <ubizjak@gmail.com>
24692
24693 * symtab.c (symtab_node::equal_address_to): Return -1 instead of 2
24694 if we can't determine address equivalence.
24695 * alias.c (compare_base_decl): Update for changed return value of
24696 symtab_node::equal_address_to.
24697
24698 2016-01-08 Jason Merrill <jason@redhat.com>
24699
24700 PR c++/68983
24701 PR c++/67557
24702 * function.c (assign_temp): Guard against TREE_ADDRESSABLE types here.
24703 * expr.c (store_field): Not here.
24704 * tree-cfgcleanup.c (fixup_noreturn_call): Don't clear LHS of a
24705 call with TREE_ADDRESSABLE type.
24706 * tree-cfg.c (verify_gimple_call): Adjust.
24707
24708 2016-01-08 Olivier Hainque <hainque@adacore.com>
24709
24710 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Don't link shared RTPs with
24711 libc_internal.
24712
24713 2016-01-08 Alan Lawrence <alan.lawrence@arm.com>
24714
24715 * gcc.target/rs6000/paired.md (reduc_smax_v2sf): Rename to...
24716 (reduc_smax_scal_v2sf): ...here, make result SFmode, extract element.
24717 (reduc_smin_v2sf): Rename to...
24718 (reduc_smin_scal_v2sf): ...here, make result SFmode, extract element.
24719 (reduc_splus_v2sf): Rename to...
24720 (reduc_plus_scal_v2sf): ...here, make result SFmode, extract element.
24721
24722 2016-01-08 Jakub Jelinek <jakub@redhat.com>
24723
24724 PR tree-optimization/69162
24725 * gimplify.c (gimplify_va_arg_expr): Encode original type of
24726 valist argument in another argument.
24727 (gimplify_modify_expr): Adjust for the above change. Cleanup.
24728 * tree-stdarg.c (expand_ifn_va_arg_1): Use new 3rd argument
24729 to determine the va_list type, build a MEM_REF instead of
24730 build_fold_indirect_ref.
24731
24732 PR tree-optimization/69172
24733 * gimple-fold.c (gimple_fold_builtin_memory_chk): Pass type to
24734 gimple_build.
24735
24736 2016-01-08 Thomas Preud'homme <thomas.preudhomme@arm.com>
24737
24738 PR tree-optimization/67781
24739 * tree-ssa-math-opts.c (find_bswap_or_nop): Zero out bytes in cmpxchg
24740 and cmpnop in two steps: first the ones not accessed in original
24741 gimple expression in a endian independent way and then the ones not
24742 accessed in the final result in an endian-specific way.
24743
24744 2016-01-08 Jakub Jelinek <jakub@redhat.com>
24745
24746 PR tree-optimization/69083
24747 * tree-vect-slp.c (vect_get_constant_vectors): For
24748 VECTOR_BOOLEAN_TYPE_P assert op is fold_convertible_p to vector_type's
24749 element type. If op is fold_convertible_p to vector_type's element
24750 type, use NOP_EXPR instead of VCE.
24751
24752 2016-01-08 Segher Boessenkool <segher@kernel.crashing.org>
24753
24754 PR rtl-optimization/67778
24755 PR rtl-optimization/68634
24756 PR rtl-optimization/68909
24757 * shrink-wrap.c (try_shrink_wrapping): Add comment. Don't pop
24758 block from the stack until done with it. Remove a superfluous
24759 bitmap set. Remove a superfluous bitmap test.
24760
24761 2016-01-07 Martin Sebor <msebor@redhat.com>
24762
24763 PR c/68966
24764 * doc/extend.texi (__atomic Builtins, __sync Builtins): Document
24765 constraint on the type of arguments.
24766
24767 2016-01-07 Andreas Tobler <andreast@gcc.gnu.org>
24768
24769 * config/arm/freebsd.h: Rename SUBTARGET_OVERRIDE_OPTIONS to
24770 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS. Adjust to check
24771 unaligned_access on the gcc_options set.
24772 * config/arm/arm.c (arm_option_override_internal): Use
24773 SUBTARGET_OVERRIDE_INTERNAL_OPTIONS.
24774
24775 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
24776
24777 PR target/69140
24778 * config/i386/i386.c (ix86_frame_pointer_required): Enable
24779 frame pointer for TARGET_64BIT_MS_ABI when stack is misaligned.
24780
24781 2016-01-07 Uros Bizjak <ubizjak@gmail.com>
24782
24783 Revert
24784 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
24785
24786 PR target/69140
24787 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
24788 depending on frame_pointer_needed before remaining integer and SSE
24789 registers are saved.
24790
24791 2016-01-07 Sandra Loosemore <sandra@codesourcery.com>
24792
24793 PR 1078
24794 * doc/extend.texi (Nvidia PDX Function Attributes): New section.
24795
24796 2016-01-07 H.J. Lu <hongjiu.lu@intel.com>
24797
24798 PR target/69171
24799 * config/i386/sse.md (<sse>_sqrt<mode>2<mask_name><round_name>):
24800 Use the "xBm" constraint.
24801 (float<sseintvecmodelower><mode>2<mask_name><round_name):
24802 Likewise.
24803 (sse_cvtsi2ss<round_name>): Use round_nimm_scalar_predicate.
24804 (sse_cvtsi2ssq<round_name>): Likewise.
24805 (sse_cvtss2si<round_name>): Likewise.
24806 (sse_cvtss2siq<round_name>): Likewise.
24807 (sse2_cvtsi2sdq<round_name>): Likewise.
24808 (sse2_cvtsd2si<round_name>): Likewise.
24809 (sse2_cvtsd2siq<round_name>): Likewise.
24810 * config/i386/subst.md (round_nimm_scalar_predicate): New
24811 predicate.
24812
24813 2015-12-15 Bernd Schmidt <bschmidt@redhat.com>
24814
24815 PR middle-end/67639
24816 * varasm.c (make_decl_rtl): Mark invalid register vars as
24817 DECL_EXTERNAL.
24818
24819 PR rtl-optimization/66206
24820 * bt-load.c (find_btr_use): Change first arg to be a pointer to an rtx.
24821 All callers changed.
24822
24823 2016-01-07 Jakub Jelinek <jakub@redhat.com>
24824
24825 PR tree-optimization/69141
24826 * tree-ssa-pre.c: Include langhooks.h.
24827 (eliminate_dom_walker::before_dom_children): Use
24828 lang_hooks.decl_printable_name instead of
24829 cgraph_node::get ()->name ().
24830
24831 PR middle-end/68960
24832 * gimple-expr.c (copy_var_decl): If var has DECL_USER_ALIGN set, copy
24833 it and DECL_ALIGN too.
24834
24835 2016-01-06 Robert Suchanek <robert.suchanek@imgtec.com>
24836
24837 * config/mips/mips-ftypes.def: Sort to lexicographical order.
24838
24839 2016-01-06 Uros Bizjak <ubizjak@gmail.com>
24840
24841 PR target/69140
24842 * config/i386/i386.c (ix86_expand_prologue): Declare fs.sp_valid
24843 depending on frame_pointer_needed before remaining integer and SSE
24844 registers are saved.
24845
24846 2015-01-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
24847
24848 * config/rs6000/vsx.md (*p9_vecload_<mode>): Replace VSX_M
24849 mode iterator with VSX_M2.
24850 (*p9_vecstore_<mode>): Likewise.
24851 (*vsx_le_permute_<mode>): Restrict to !TARGET_P9_VECTOR.
24852 (*vsx_le_perm_load_<mode> for VSX_LE_128): Likewise.
24853 (*vsx_le_perm_store_<mode> for VSX_LE_128): Likewise.
24854 (define_split for VSX_LE128 stores): Likewise.
24855 (define_peephole2 for TImode LE swaps): Likewise.
24856 (define_split for VSX_LE128 post-reload stores): Likewise.
24857
24858 2016-01-06 Marek Polacek <polacek@redhat.com>
24859
24860 PR sanitizer/69099
24861 * convert.c (convert_to_integer_1): Adjust call to
24862 ubsan_instrument_float_cast. Use NULL_TREE instead of NULL.
24863 * ubsan.c (ubsan_instrument_float_cast): Drop the ARG parameter. Use
24864 EXPR instead of ARG.
24865 * ubsan.h (ubsan_instrument_float_cast): Adjust declaration.
24866
24867 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
24868
24869 PR 1078
24870 * doc/extend.texi (RL78 Variable Attributes): New section.
24871
24872 2016-01-05 Marek Polacek <polacek@redhat.com>
24873
24874 PR c/69104
24875 * builtins.c (get_memmodel): Use expansion point location rather than
24876 the input location. Call warning_at rather than warning.
24877 (expand_builtin_atomic_compare_exchange): Likewise.
24878 (expand_builtin_atomic_load): Likewise.
24879 (expand_builtin_atomic_store): Likewise.
24880 (expand_builtin_atomic_clear): Likewise.
24881
24882 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
24883
24884 PR target/68991
24885 * config/i386/i386.c (ix86_expand_vector_logical_operator):
24886 Replace nonimmediate_operand with vector_operand.
24887 * config/i386/predicates.md (vector_operand): New predicate.
24888 (general_vector_operand): Replace nonimmediate_operand with
24889 vector_operand.
24890 * config/i386/sse.md: Replace nonimmediate_operand with
24891 vector_operand and m constraint with Bm constraint on SSE
24892 patterns with 16-byte memory operand.
24893 * config/i386/subst.md (round_nimm_predicate): Replace
24894 nonimmediate_operand with vector_operand.
24895 (round_saeonly_nimm_predicate): Likewise.
24896 (round_saeonly_nimm_scalar_predicate): New.
24897
24898 2016-01-05 H.J. Lu <hongjiu.lu@intel.com>
24899
24900 PR target/68991
24901 * config/i386/constraints.md (Bm): New constraint.
24902 * config/i386/predicates.md (vector_memory_operand): New
24903 predicate.
24904 * config/i386/sse.md: Replace xm with xBm in plusminus and
24905 any_logic patterns.
24906
24907 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
24908
24909 PR 1078
24910 * doc/extend.texi (V850 Function Attributes): New section.
24911 (V850 Variable Attributes): New section.
24912
24913 2016-01-05 Sandra Loosemore <sandra@codesourcery.com>
24914
24915 PR 1078
24916 * doc/extend.texi (MicroBlaze Function Attributes): Document
24917 interrupt_handler and fast_interrupt attributes.
24918
24919 2016-01-05 Sergei Trofimovich <siarheit@google.com>
24920
24921 PR other/60465
24922 * config/ia64/ia64.c (ia64_expand_load_address): Use gprel64
24923 for local symbolic operands.
24924 * config/ia64/predicates.md (local_symbolic_operand64): New
24925 predicate.
24926
24927 2016-01-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
24928
24929 PR rtl-optimization/68651
24930 * combine.c (combine_simplify_rtx): Canonicalize x + x into
24931 x << 1.
24932
24933 2016-01-05 Nathan Sidwell <nathan@acm.org>
24934
24935 * alias.c (compare_base_decls): Use symtab_node::get.
24936
24937 2016-01-05 Nick Clifton <nickc@redhat.com>
24938
24939 PR target/68770
24940 * ira-costs.c (copy_cost): Initialise the t_icode field of the
24941 secondary_reload_info structure.
24942
24943 PR target/66655
24944 * config/i386/cygming.h (MAKE_DECL_ONE_ONLY): Define to use weak
24945 decls if weak support is available.
24946
24947 2016-01-04 Martin Sebor <msebor@redhat.com>
24948
24949 * doc/invoke.texi (Warning Options): Document -Winvalid-memory-model.
24950
24951 2016-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
24952
24953 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Add
24954 OPTION_MASK_P9_DFORM.
24955
24956 * config/rs6000/constraints.md (wo constraint): New constraint for
24957 ISA 3.0 (power9).
24958
24959 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add support
24960 for wo constraint.
24961 (rs6000_init_hard_regno_mode_ok): Likewise.
24962
24963 * config/rs6000/rs6000.h (r6000_reg_class_enum): Add support for
24964 wo constraint.
24965
24966 * config/rs6000/altivec.md (altivec_vperm_<mode>): Clean up vperm
24967 expanders not to have constraints. Add support for ISA 3.0 xxperm
24968 instruction. Add support for fusing xxlor with xxperm.
24969 (altivec_vperm_<mode>_internal): Likewise.
24970 (altivec_vperm_v8hiv16qi): Likewise.
24971 (altivec_vperm_<mode>v16q): Likewise.
24972 (altivec_vperm_<mode>_uns): Likewise.
24973 (vperm_v8hiv4si): Likewise.
24974 (vperm_v16qiv8hi): Likewise.
24975
24976 * doc/md.texi (RS/6000 constraints): Document wo constraint.
24977
24978 2016-01-04 Jakub Jelinek <jakub@redhat.com>
24979
24980 Update copyright years.
24981
24982 * gcc.c (process_command): Update copyright notice dates.
24983 * gcov-dump.c (print_version): Ditto.
24984 * gcov.c (print_version): Ditto.
24985 * gcov-tool.c (print_version): Ditto.
24986 * gengtype.c (create_file): Ditto.
24987 * doc/cpp.texi: Bump @copying's copyright year.
24988 * doc/cppinternals.texi: Ditto.
24989 * doc/gcc.texi: Ditto.
24990 * doc/gccint.texi: Ditto.
24991 * doc/gcov.texi: Ditto.
24992 * doc/install.texi: Ditto.
24993 * doc/invoke.texi: Ditto.
24994
24995 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
24996
24997 * config/arm/arm.c (aapcs_vfp_allocate_return_reg): Treat all integer
24998 modes larger than TImode as TImode if NEON is not enabled.
24999
25000 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25001
25002 PR target/69100
25003 * config/sparc/sparc.h (FUNCTION_ARG_REGNO_P): Return true in 64-bit
25004 mode for %f0-%f31 only if TARGET_FPU.
25005
25006 2016-01-04 Eric Botcazou <ebotcazou@adacore.com>
25007
25008 PR target/69072
25009 * config/sparc/sparc.c (scan_record_type): Take into account subfields
25010 to compute the PACKED_P predicate.
25011 (function_arg_record_value): Minor tweaks.
25012
25013 2016-01-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
25014
25015 * doc/install.texi (--with-multilib-list): Describe the meaning of the
25016 option for arm*-*-* targets.
25017
25018 2016-01-03 Sandra Loosemore <sandra@codesourcery.com>
25019
25020 * doc/extend.texi (Common Function Attributes): Move docs for
25021 MSP430-specific attributes to....
25022 (MSP430 Function Attributes): ...here. Delete the redundant
25023 entries and copy-edit the remaining text.
25024 (MSP430 Variable Attributes): Use uniform format for index
25025 entries and add a cross-reference to the corresponding function
25026 attribute docs.
25027
25028 2016-01-03 Vladimír Čunát <vcunat@gmail.com>
25029
25030 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix
25031 -finite-math typo.
25032 (x86 Options): Likewise.
25033
25034 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25035
25036 PR 1078
25037
25038 * extend.texi (Common Function Attributes) <no_stack_limit>: New.
25039 * invoke.texi (Code Gen Options) <-fno-stack-limit>: Add pointer
25040 to corresponding attribute.
25041
25042 2016-01-01 Sandra Loosemore <sandra@codesourcery.com>
25043
25044 * doc/extend.texi (Common Function Attributes) <noplt>: Move
25045 to correct alphabetization of table. Copy-edit and correct
25046 markup.
25047 <stack_protect>: Likewise.
25048 <target_clones>: Likewise.
25049 <simd>: Likewise.
25050 * doc/invoke.texi (Optimize Options) <-fstack-protector-explicit>:
25051 Correct punctuation.
25052 (Code Gen Options) <-fno-plt>: Copy-edit.
25053
25054 2016-01-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
25055
25056 PR target/68917
25057 * config/tilegx/tilegx.md (clzsi2): Don't create DI subregs of
25058 SI values. Explicitly convert SI to DI and vice-versa.
25059
25060 2016-01-01 Jakub Jelinek <jakub@redhat.com>
25061
25062 PR tree-optimization/69070
25063 * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Only test
25064 REAL_VALUE_ISSIGNALING_NAN on arg0 if arg0 is a REAL_CST.
25065
25066 PR sanitizer/69055
25067 * ubsan.c (ubsan_instrument_float_cast): Call
25068 initialize_sanitizer_builtins.
25069
25070 PR target/69015
25071 * ifcvt.c (find_cond_trap): Give up if returnjump_p (jump).
25072 \f
25073 Copyright (C) 2016 Free Software Foundation, Inc.
25074
25075 Copying and distribution of this file, with or without modification,
25076 are permitted in any medium without royalty provided the copyright
25077 notice and this notice are preserved.