1 2021-10-18 Michael Matz <matz@suse.de>
3 * final.c (get_some_local_dynamic_name): Call
4 emit_patchable_function_entry.
5 * varasm.c (emit_patchable_function_entry): New.
7 2019-11-14 Release Manager
11 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
13 Backport from mainline
14 2019-10-13 Iain Sandoe <iain@sandoe.co.uk>
16 * config/darwin.c (machopic_indirection_name): Rework the
17 function to emit linker-visible symbols only for indirections
18 in the data section. Clean up the code and update comments.
20 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
22 Backport from mainline
23 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
25 * config/darwin.c (darwin_override_options): Make the check for
26 Objective-C ABI version more specific for 64bit code.
28 Backport from mainline
29 2019-10-06 Iain Sandoe <iain@sandoe.co.uk>
31 * config/darwin.c (darwin_override_options): Adjust objective-c
32 ABI version error messages to avoid punctuation and contracted
35 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
37 Backport from mainline
38 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
40 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
41 (STARTFILE_SPEC): Split crt3 into a separate spec.
42 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
43 (DARWIN_CRT2_SPEC): New.
44 (DARWIN_CRT3_SPEC): New.
45 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
46 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
47 (DARWIN_CRT3_SPEC): New.
49 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
51 Backport from mainline
52 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
54 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
57 Backport from mainline
58 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
60 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
62 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
64 Backport from mainline
65 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
67 * config/darwin.c (darwin_emit_unwind_label): New default to false.
68 (darwin_override_options): Set darwin_emit_unwind_label as needed.
70 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
72 Backport from mainline
73 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
75 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
77 (darwin_override_options): Likewise.
78 * config/darwin.h: Likewise.
79 * config/darwin.opt: Likewise.
80 * config/i386/i386.c (output_pic_addr_const): Likewise.
81 * config/rs6000/darwin.h: Likewise.
82 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
83 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
84 ... this TARGET_MACHO_SYMBOL_STUBS.
85 (FUNCTION_PROFILER):Likewise.
86 * config/i386/i386.h: Likewise.
88 Backport from mainline
89 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
91 * config/darwin.c (machopic_indirect_call_target): Use renamed
92 darwin_picsymbol_stubs to decide on output.
93 (darwin_override_options): Handle darwin_picsymbol_stubs.
94 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
95 (LD64_VERSION): Revise default.
96 * config/darwin.opt: (mpic-symbol-stubs): New option.
97 (darwin_picsymbol_stubs): New variable.
98 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
99 rename to TARGET_MACHO_PICSYM_STUBS.
100 * config/i386/i386.c (output_pic_addr_const): Likewise.
101 * config/i386/i386.h Likewise.
102 * config/rs6000/darwin.h: Likewise.
103 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
104 darwin_picsymbol_stubs.
106 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
108 Backport from mainline
109 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
111 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
112 override on extra_headers.
114 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
116 Backport from mainline
117 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
119 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
120 user-specified float mode choice for kernel mode code.
122 2019-11-01 Iain Sandoe <iain@sandoe.co.uk>
124 Backport from mainline
125 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
127 * config/rs6000/darwin.h: Handle GCC target pragma.
129 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
131 Backport from mainline
132 2019-10-17 Iain Sandoe <iain@sandoe.co.uk>
135 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete.
136 (movdi_low_st): Delete.
137 * config/rs6000/rs6000.c
138 (darwin_rs6000_legitimate_lo_sum_const_p): New.
139 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately.
140 * config/rs6000/rs6000.md (movsi_low): Delete.
142 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
144 Backport from mainline
145 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
148 * config/darwin.c (machopic_indirection): New field to flag
149 non-lazy-symbol-pointers in the data section.
150 (machopic_indirection_name): Compute if an indirection should
151 appear in the data section.
152 (machopic_output_data_section_indirection): New callback split
153 from machopic_output_indirection.
154 (machopic_output_stub_indirection): Likewise.
155 (machopic_output_indirection): Retain the code for non-lazy
156 symbol pointers in their regular section.
157 (machopic_finish): Use the new callbacks to order the indirection
160 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
162 Backport from mainline
163 2019-10-12 Iain Sandoe <iain@sandoe.co.uk>
165 * config/darwin-protos.h (machopic_finish): Delete.
166 * config/darwin.c (machopic_finish): Make static.
168 Backport from mainline
169 2019-10-09 Iain Sandoe <iain@sandoe.co.uk>
171 * config/darwin.c (machopic_indirect_data_reference): Set flag to
172 indicate that the new symbol is an indirection.
173 (machopic_indirect_call_target): Likewise.
174 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New.
175 (MACHO_SYMBOL_INDIRECTION_P): New.
176 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number.
178 Backport from mainline
179 2019-10-08 Iain Sandoe <iain@sandoe.co.uk>
181 * config/darwin.c (machopic_indirect_data_reference): Check for
182 required indirections before making direct access to defined
184 (machopic_output_indirection): Place the indirected pointes for
185 required indirections into the non-lazy symbol pointers section.
186 (darwin_encode_section_info):
187 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New.
188 (MACHO_SYMBOL_MUST_INDIRECT_P): New.
190 Backport from mainline
191 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
193 * config/darwin.c (machopic_output_indirection): Don't put
194 hidden symbol indirections into the .data section, use the
195 non-lazy symbol pointers section as normal.
196 (darwin_encode_section_info): Record if a symbol is hidden.
197 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New.
198 (MACHO_SYMBOL_HIDDEN_VIS_P): New.
200 Backport from mainline
201 2019-10-07 Iain Sandoe <iain@sandoe.co.uk>
203 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag
204 predicates instead of accessing bits directly.
205 (machopic_indirect_call_target): Likewise.
206 (machopic_output_indirection): Likewise.
207 (darwin_encode_section_info): Improve description. Use renamed
208 symbol flags. Use predicate macros for variables and functions.
210 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE.
211 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED.
212 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC.
213 (MACHO_SYMBOL_VARIABLE_P): New.
214 (MACHO_SYMBOL_DEFINED_P):New.
215 (MACHO_SYMBOL_STATIC_P): New.
216 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete.
217 (SYMBOL_FLAG_SUBT_DEP): New.
218 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New.
220 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
222 Backport from mainline
223 2019-10-05 Iain Sandoe <iain@sandoe.co.uk>
226 * config/darwin.c (darwin_rodata_section): Add relocation flag,
227 choose const_data section for constants with relocations.
228 (machopic_select_section): Pass relocation flag to
229 darwin_rodata_section ().
231 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
233 Backport from mainline
234 2019-09-21 Iain Sandoe <iain@sandoe.co.uk>
236 * config/darwin.c (machopic_legitimize_pic_address): Check
237 for lra, rather than reload.
239 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
241 Backport from mainline
242 2019-10-03 Iain Sandoe <iain@sandoe.co.uk>
245 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New.
246 (darwin_driver_init): Use the sysroot provided by SDKROOT when that
247 is available and the user has not set one on the command line.
249 2019-10-29 Iain Sandoe <iain@sandoe.co.uk>
251 Backport from mainline
252 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
254 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
255 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
256 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
258 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
261 Backport from mainline
262 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
264 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
265 and DARWIN_NOPIE_SPEC.
266 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
267 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
268 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
269 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
270 (DARWIN_EXPORT_DYNAMIC): Delete.
271 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
272 and pie options processing to darwin.h.
273 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
275 2019-10-25 Richard Earnshaw <rearnsha@arm.com>
277 Backport from mainline
278 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
279 Richard Earnshaw <rearnsha@arm.com>
281 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
283 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
284 (thumb1_compute_save_core_reg_mask): Don't force a spare work
285 register if both the epilogue and prologue can use call-clobbered
287 (thumb1_unexpanded_epilogue): Use
288 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
289 picking temporaries for restoring high regs to match that of the
290 prologue where possible.
291 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
292 the list of work registers. Detect if the return address is still live
293 at the end of the prologue and avoid using it for a work register if so.
294 If the return address is not live, add LR to the list of pushable regs
295 after the first pass.
297 2019-10-24 Richard Biener <rguenther@suse.de>
299 Backport from mainline
300 2019-10-17 Richard Biener <rguenther@suse.de>
303 * dwarf2out.c (gen_formal_parameter_die): Also try to match
304 context_die against a DW_TAG_GNU_formal_parameter_pack parent.
306 2019-09-19 Richard Biener <rguenther@suse.de>
308 PR tree-optimization/91812
309 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace
312 2019-10-23 Eric Botcazou <ebotcazou@adacore.com>
314 PR tree-optimization/92131
315 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting
316 range would be symbolic, drop to varying for any explicit overflow
317 in the constant part or if neither range is a singleton.
319 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
322 2019-10-18 Georg-Johann Lay <avr@gjlay.de>
325 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return.
327 2019-10-17 Segher Boessenkool <segher@kernel.crashing.org>
330 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
332 PR rtl-optimization/89721
333 * lra-constraints (invariant_p): Return false if side_effects_p holds.
335 2019-10-17 Richard Earnshaw <rearnsha@arm.com>
337 Backport from mainline
338 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
341 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
342 Restrict 'all' variant to 32-bit configurations.
343 (unaligned_loadhiu): Likewise.
344 (unaligned_storehi): Likewise.
345 (unaligned_storesi): Likewise.
346 (unaligned_loadhis): Disable when compiling for thumb1.
348 2019-10-16 Peter Bergner <bergner@linux.ibm.com>
350 Backport from mainline
351 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
353 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and
354 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and
355 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain.
357 2019-10-11 Oleg Endo <olegendo@gcc.gnu.org>
359 Backport from mainline
360 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org>
363 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro.
364 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns
365 also for TARGET_FPU_SH4_300.
366 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of
368 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition.
369 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr.
370 (*negsf2_i): Split into ...
371 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns.
372 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc.
373 (**abssf2_i): Split into ...
374 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns.
375 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr.
376 (*negdf2_i): Split into ...
377 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns.
378 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc.
379 (**abssf2_i): Split into ...
380 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns.
382 2019-10-07 Bill Schmidt <wschmidt@linux.ibm.com>
384 Backport from mainline
385 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com>
388 * config/rs6000/rs6000.c (rtx_is_swappable_p): Don't swap
391 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
393 Backport from mainline
395 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org>
398 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use
399 sh_check_add_incdec_notes to preserve REG_INC notes when replacing
400 a memory access insn.
402 2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
404 Backport from mainline.
405 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
408 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
411 2019-09-28 Iain Sandoe <iain@sandoe.co.uk>
413 Backport from mainline.
414 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
417 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
418 (ix86_output_indirect_branch_via_reg): Use output mechanism
419 accounting for __USER_LABEL_PREFIX__.
420 (ix86_output_indirect_branch_via_push): Likewise.
421 (ix86_output_function_return): Likewise.
422 (ix86_output_indirect_function_return): Likewise.
424 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
426 Backport from mainline
427 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
430 * config/sh/sh.c (parse_validate_atomic_model_option): Use
431 std::string::compare instead of std::string::find.
433 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org>
435 Backport from mainline
436 2018-07-15 Jeff Law <law@redhat.com>
439 * config/sh/sh.c (output_mi_thunk): Remove dead conditional
442 2019-09-27 Iain Sandoe <iain@sandoe.co.uk>
444 Backport from mainline
445 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
447 * config/darwin.opt (prebind, noprebind, seglinkedit,
448 noseglinkedit): Add RejectNegative.
450 Backport from mainline
451 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
453 * config/darwin.opt: Add RejectNegative where needed, reorder
454 and add minimal functional descriptions.
456 2019-09-23 Max Filippov <jcmvbkbc@gmail.com>
458 Backport from mainline
459 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
461 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
462 pointer adjustment for the case of no callee-saved registers and
463 stack frame bigger than 128 bytes.
465 2019-09-20 John David Anglin <danglin@gcc.gnu.org>
467 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended
470 2019-09-20 Andreas Krebbel <krebbel@linux.ibm.com>
472 Backport from mainline
473 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
475 PR rtl-optimization/88751
476 * ira.c (ira): Use the number of the actually referenced registers
477 when calculating the threshold.
479 2019-09-11 Eric Botcazou <ebotcazou@adacore.com>
481 PR rtl-optimization/89795
482 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from
483 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set.
485 2019-09-09 Jakub Jelinek <jakub@redhat.com>
488 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi
492 * config/i386/avxintrin.h (__v32qs): New typedef.
493 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs
496 2019-09-08 Iain Sandoe <iain@sandoe.co.uk>
498 Backport from mainline
499 2018-12-23 Iain Sandoe <iain@sandoe.co.uk>
501 * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New.
503 2019-08-22 Iain Sandoe <iain@sandoe.co.uk>
505 Backport from mainline
506 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
508 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
510 2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
512 Backport from mainline
513 2019-08-18 Iain Sandoe <iain@sandoe.co.uk>
515 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts
516 for cpu and machine. Factor 64/32b builtins.
518 Backport from mainline
519 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
521 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
523 2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
525 Backport from mainline
526 2019-08-23 Iain Sandoe <iain@sandoe.co.uk>
529 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure
530 and issue any diagnostics needed before collecting the pre-PCH
533 2019-09-05 Iain Sandoe <iain@sandoe.co.uk>
535 Backport from mainline
536 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
539 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
542 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
543 * config/i386/darwin32-biarch.h .. to here.
544 * config/i386/darwin64-biarch.h: Adjust comments.
545 * config/rs6000/darwin32-biarch.h: Likewise.
546 * config/rs6000/darwin64-biarch.h: Likewise.
547 * config.gcc: Missed commit from r273746
548 (*-*-darwin*): Don't include CPU t-darwin here.
549 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
550 an error message if i686-darwin configuration is attempted for
553 Backport from mainline
554 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
557 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
558 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
559 an error message if i686-darwin configuration is attempted for
561 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
562 (powerpc-*-darwin*): Use biarch files where needed.
563 (powerpc64-*-darwin*): Likewise.
564 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
565 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
567 * config/i386/darwin32-biarch.h: New.
568 * config/i386/darwin64.h: Rename.
569 * gcc/config/i386/darwin64-biarch.h: To this.
570 * config/i386/t-darwin: Rename.
571 * gcc/config/i386/t-darwin32-biarch: To this.
572 * config/i386/t-darwin64: Rename.
573 * gcc/config/i386/t-darwin64-biarch: To this.
574 * config/rs6000/darwin32-biarch.h: New.
575 * config/rs6000/darwin64.h: Rename.
576 * config/rs6000/darwin64-biarch.h: To this.
577 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
579 * config/rs6000/t-darwin8: Rename.
580 * config/rs6000/t-darwin32-biarch: To this.
581 * config/rs6000/t-darwin64 Rename.
582 * config/rs6000/t-darwin64-biarch: To this.
584 2019-09-05 Richard Biener <rguenther@suse.de>
586 * lto-streamer.h (LTO_minor_version): Bump.
588 Backport from mainline
589 2019-05-06 Richard Biener <rguenther@suse.de>
591 PR tree-optimization/90328
592 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
593 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
594 is valid in the loop nest before using it.
595 (initialize_data_dependence_relation): Adjust.
596 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
597 loop as loop-nest to dr_may_alias_p.
599 2019-03-08 Richard Biener <rguenther@suse.de>
602 * cfgloop.h (struct loop): Add owned_clique field.
603 * cfgloopmanip.c (copy_loop_info): Copy it.
604 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
606 * tree-inline.c (copy_loops): Remap owned_clique.
607 * lto-streamer-in.c (input_cfg): Stream owned_clique.
608 * lto-streamer-out.c (output_cfg): Likewise.
610 2019-02-22 Richard Biener <rguenther@suse.de>
612 PR tree-optimization/87609
613 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
615 2019-02-22 Richard Biener <rguenther@suse.de>
618 * cfghooks.h (dependence_hash): New typedef.
619 (struct copy_bb_data): New type.
620 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
621 (duplicate_block): Likewise.
622 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
623 (copy_bbs): Create and pass down copy_bb_data.
624 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
625 (rtl_duplicate_bb): Likewise.
626 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
627 remap dependence info.
629 2019-02-22 Richard Biener <rguenther@suse.de>
631 PR tree-optimization/87609
632 * tree-core.h (tree_base): Document special clique values.
633 * tree-inline.c (remap_dependence_clique): Do not use the
634 special clique value of one.
635 (maybe_set_dependence_info): Use clique one.
636 (clear_dependence_clique): New callback.
637 (compute_dependence_clique): Clear clique one from all refs
638 before assigning it (again).
640 2019-08-27 Iain Sandoe <iain@sandoe.co.uk>
642 Backport from mainline
643 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
645 * config/darwin.c (darwin_override_options): Make a final check on PIC
648 2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
650 Backport from mainline
651 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
652 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
655 2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
657 Backport from mainline
658 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
660 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
661 use longcall for 64b code.
663 2019-09-04 Iain Sandoe <iain@sandoe.co.uk>
665 Backport from mainline
666 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
668 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
669 in computing the number of options to be moved.
671 Backport from mainline
672 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
674 * config/darwin-driver.c (validate_macosx_version_min): New.
675 (darwin_default_min_version): Cleanup and validate supplied version.
676 (darwin_driver_init): Likewise and push cleaned version into opts.
678 2019-09-04 Richard Biener <rguenther@suse.de>
680 Backport from mainline
681 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
683 PR tree-optimization/81740
684 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
685 In case of outer loop vectorization, check for backward dependence
686 at the inner loop if outer loop dependence is reversed.
688 2019-09-04 Richard Biener <rguenther@suse.de>
690 Backport from mainline
691 2018-11-23 Richard Biener <rguenther@suse.de>
693 PR tree-optimization/88149
694 * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect
695 the case where there are two different def types for the
696 same operand at different operand position in the same stmt.
698 2019-09-04 Richard Biener <rguenther@suse.de>
700 Backport from mainline
701 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
703 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
704 use gimple_expr_type for load and store calls. Skip over the
705 condition argument in a conditional internal function.
706 Protect use of TREE_INT_CST_LOW.
708 2019-04-08 Richard Biener <rguenther@suse.de>
710 PR tree-optimization/90006
711 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
714 2019-03-14 Richard Biener <rguenther@suse.de>
717 * fold-const.c (operand_equal_p): For INDIRECT_REF check
718 that the access types are similar.
720 2019-01-18 Richard Biener <rguenther@suse.de>
722 PR tree-optimization/88903
723 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
724 scalar stmts a SLP shift amount is composed of when detecting
727 2018-12-11 Richard Biener <rguenther@suse.de>
731 * tree-complex.c (update_complex_assignment): Properly transfer
732 or clean EH info around gimple_assign_set_rhs_with_ops.
734 2018-11-15 Richard Biener <rguenther@suse.de>
736 PR tree-optimization/88030
737 * tree-complex.c (need_eh_cleanup): New global.
738 (update_complex_assignment): Mark blocks that need EH update.
739 (expand_complex_comparison): Likewise.
740 (tree_lower_complex): Allocate and deallocate need_eh_cleanup,
741 perform EH cleanup and schedule CFG cleanup if that did anything.
743 2018-11-08 Richard Biener <rguenther@suse.de>
745 PR tree-optimization/87929
746 * tree-complex.c (expand_complex_comparison): Clean EH.
748 2017-07-25 Eric Botcazou <ebotcazou@adacore.com>
750 * gimple.c (gimple_assign_set_rhs_with_ops): Do not ask gsi_replace
751 to update EH info here.
753 2019-09-03 Iain Sandoe <iain@sandoe.co.uk>
755 Backport from mainline
756 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
758 * config/darwin-c.c (darwin_register_objc_includes): Do not
759 prepend the sysroot when building gnu-runtime header search
762 2019-09-03 Iain Sandoe <iain@sandoe.co.uk>
764 Backport from mainline
765 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
767 * config/darwin.c (darwin_file_end): Use switch_to_section ()
768 instead of direct output of the asm.
770 2019-09-03 Iain Sandoe <iain@sandoe.co.uk>
772 Backport from mainline
773 2018-08-22 Iain Sandoe <iain@sandoe.co.uk>
775 * config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options
778 2019-09-02 Richard Biener <rguenther@suse.de>
780 Backport from mainline
781 2019-03-14 Richard Biener <rguenther@suse.de>
783 PR tree-optimization/89710
784 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
787 2019-03-14 Richard Biener <rguenther@suse.de>
790 * tree-scalar-evolution.c (get_loop_exit_condition): Use
792 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
793 Use gimple_location_safe.
795 2019-02-18 Richard Biener <rguenther@suse.de>
797 PR tree-optimization/89296
798 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
799 of no-warning flag to cases that might emit the bogus warning.
801 2019-01-31 Richard Biener <rguenther@suse.de>
803 PR tree-optimization/89135
804 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
807 2019-09-02 Richard Biener <rguenther@suse.de>
809 Backport from mainline
810 2019-07-19 Richard Biener <rguenther@suse.de>
812 PR tree-optimization/91200
813 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
814 no PHI nodes in middle-bb.
816 2019-07-15 Richard Biener <rguenther@suse.de>
819 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
820 node make sure to replace all uses with something valid.
822 2019-07-11 Richard Biener <rguenther@suse.de>
825 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
826 when the object is volatile and we have not cleared it even though
827 there are no nonzero elements.
829 2019-07-10 Richard Biener <rguenther@suse.de>
831 PR tree-optimization/91126
832 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
833 native encoding offset for BYTES_BIG_ENDIAN.
834 (vn_reference_lookup_3): Likewise.
836 2019-07-10 Richard Biener <rguenther@suse.de>
838 PR tree-optimization/91126
839 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust
840 native encoding offset for BYTES_BIG_ENDIAN.
842 2019-04-29 Richard Biener <rguenther@suse.de>
844 PR tree-optimization/90278
845 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
846 EH on comparison simplification.
848 2019-04-11 Richard Biener <rguenther@suse.de>
850 PR tree-optimization/90020
851 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
852 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
853 * tree-ssa-pre.c (compute_avail): Use it to not put
854 possibly trapping references after a call that might not
856 * gcse.c (compute_hash_table_work): Do not elide
857 marking a block containing a call if the call might not
860 2019-09-02 Bin Cheng <bin.linux@linux.alibaba.com>
862 Backport from mainline
863 2019-07-18 Bin Cheng <bin.linux@linux.alibaba.com>
865 PR tree-optimization/91137
866 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
867 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
868 Init, use and fini the above new field.
869 (determine_base_object_1): New function.
870 (determine_base_object): Reimplement using walk_tree.
872 2019-08-30 Richard Biener <rguenther@suse.de>
874 Backport from mainline
875 2019-05-27 Richard Biener <rguenther@suse.de>
877 PR tree-optimization/90637
878 * tree-ssa-sink.c (statement_sink_location): Honor the
879 computed sink location for single-uses.
881 * gcc.dg/gomp/pr90637.c: New testcase.
883 2019-06-21 Richard Biener <rguenther@suse.de>
885 PR tree-optimization/90930
886 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
887 flag on new stmts to avoid re-processing them.
889 2019-04-25 Richard Biener <rguenther@suse.de>
892 * match.pd: Add pattern to simplify view-conversion of an
895 2019-04-24 Richard Biener <rguenther@suse.de>
898 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
899 by size and BITS_PER_UNIT on poly-wide-ints.
901 2019-04-15 Richard Biener <rguenther@suse.de>
903 PR tree-optimization/90071
904 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
905 abnormal operands from def stmts.
907 2019-03-13 Richard Biener <rguenther@suse.de>
910 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
911 throw FP expressions at tree-affine.
913 2019-08-30 Segher Boessenkool <segher@kernel.crashing.org>
916 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
919 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
921 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and
923 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32.
924 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW.
925 (darn): Use an unspec_volatile, and UNSPECV_DARN.
927 2019-08-30 Segher Boessenkool <segher@kernel.crashing.org>
930 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org>
932 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32,
933 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to...
934 * config/rs6000/rs6000.md (unspec): ... here.
935 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb,
936 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
937 cmpeqb, *cmpeqb_internal): Delete, move to...
938 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb,
939 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal,
940 cmpeqb, *cmpeqb_internal): ... here.
942 2019-08-30 Jakub Jelinek <jakub@redhat.com>
944 Backported from mainline
945 2019-07-30 Jakub Jelinek <jakub@redhat.com>
948 * config/i386/i386.c (expand_vec_perm_blend): Change mask type
949 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
950 comparison to unsigned HOST_WIDE_INT before shifting it left.
952 2019-07-04 Jakub Jelinek <jakub@redhat.com>
955 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
956 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
957 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
958 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
959 ctx->add_safelen1 is set.
961 PR rtl-optimization/90756
962 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
965 2019-06-12 Jakub Jelinek <jakub@redhat.com>
968 * symtab.c (symtab_node::set_section): Allow being called on aliases
969 as long as they aren't analyzed yet.
971 2019-04-19 Jakub Jelinek <jakub@redhat.com>
974 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
975 assign_temp instead of gen_reg_rtx.
977 2019-06-11 Jakub Jelinek <jakub@redhat.com>
980 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
983 2019-05-29 Jakub Jelinek <jakub@redhat.com>
986 * lto-streamer.h (LTO_minor_version): Bump to 1.
988 2019-05-16 Jakub Jelinek <jakub@redhat.com>
991 * tree-core.h (struct tree_decl_common): Document
992 decl_nonshareable_flag for PARM_DECLs.
993 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
994 * calls.c (expand_call): Don't try tail call if caller
995 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
996 passed on the stack and callee needs to pass any arguments on the
998 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
999 else if instead of series of mutually exclusive ifs. Handle
1000 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
1001 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
1003 2019-04-24 Jakub Jelinek <jakub@redhat.com>
1006 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
1007 a register if both if_true and if_false are MEMs.
1009 PR tree-optimization/90208
1010 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
1011 after labels of new_bb, not before them.
1013 2019-04-16 Jakub Jelinek <jakub@redhat.com>
1015 PR rtl-optimization/90082
1016 * dce.c (can_delete_call): New function.
1017 (deletable_insn_p, mark_insn): Use it.
1019 PR tree-optimization/90090
1020 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
1023 2019-04-09 Jakub Jelinek <jakub@redhat.com>
1025 PR tree-optimization/89998
1026 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
1027 instead of integer_type_node if possible, don't add ranges if return
1028 type is not compatible with int.
1029 * gimple-fold.c (gimple_fold_builtin_sprintf,
1030 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
1033 2019-03-29 Jakub Jelinek <jakub@redhat.com>
1036 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
1037 non-addressable complit into its initializer if it is volatile.
1039 2019-03-28 Jakub Jelinek <jakub@redhat.com>
1042 * tree-inline.h (struct copy_body_data): Add
1043 dont_remap_vla_if_no_change flag.
1044 * tree-inline.c (remap_type_3, remap_type_2): New functions.
1045 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
1046 and remap_type_2 returns false.
1047 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
1049 2019-03-20 Jakub Jelinek <jakub@redhat.com>
1052 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
1053 update this_alternative nor this_alternative_set.
1055 2019-03-19 Jakub Jelinek <jakub@redhat.com>
1057 PR rtl-optimization/89768
1058 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
1060 (unroll_loop_runtime_iterations): Likewise.
1063 * gimplify.c (gimplify_asm_expr): For output argument with
1064 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
1068 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
1069 compensation use x2 += 1 instead of x2 -= -1 and when honoring
1070 signed zeros, do another copysign after the compensation.
1072 2019-03-15 Jakub Jelinek <jakub@redhat.com>
1075 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
1076 SIGN_EXTEND and ZERO_EXTEND.
1078 2019-03-14 Jakub Jelinek <jakub@redhat.com>
1080 PR rtl-optimization/89679
1081 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
1082 would contain a paradoxical SUBREG.
1084 PR tree-optimization/89703
1085 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
1086 aren't compatible also with builtin_decl_explicit. Check pure
1087 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
1088 and BUILT_IN_STPNCPY{,_CHK}.
1090 2019-03-13 Jakub Jelinek <jakub@redhat.com>
1093 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
1094 (ipa_simd_modify_function_body): Handle PHIs.
1096 2019-03-12 Jakub Jelinek <jakub@redhat.com>
1099 * builtins.c (expand_builtin_int_roundingfn,
1100 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
1101 gcc_unreachable if validate_arglist fails.
1103 2019-03-09 Jakub Jelinek <jakub@redhat.com>
1106 * tree.c (handle_dll_attribute): Don't clear TREE_STATIC for
1107 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
1109 2019-03-05 Jakub Jelinek <jakub@redhat.com>
1112 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
1116 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
1117 exactly one argument.
1119 2019-02-28 Jakub Jelinek <jakub@redhat.com>
1122 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
1123 builtins if they don't have a single scalar floating point argument.
1126 2019-02-20 Jakub Jelinek <jakub@redhat.com>
1129 * expr.c (expand_assignment): If result is a MEM, use change_address
1130 instead of simplify_gen_subreg.
1132 2019-02-20 Jakub Jelinek <jakub@redhat.com>
1133 David Malcolm <dmalcolm@redhat.com>
1136 * fold-const.c (decode_field_reference): Return NULL_TREE if
1137 lang_hooks.types.type_for_size returns NULL. Check it before
1138 overwriting *exp_. Use return NULL_TREE instead of return 0.
1140 2019-02-20 Jakub Jelinek <jakub@redhat.com>
1144 * toplev.c (do_compile): Double the emin/emax exponents to workaround
1147 2019-02-19 Richard Biener <rguenther@suse.de>
1150 * toplev.c (do_compile): Initialize mpfr's exponent range
1151 based on available float modes.
1153 2019-02-18 Jakub Jelinek <jakub@redhat.com>
1156 * config/s390/s390.c (s390_indirect_branch_attrvalue,
1157 s390_indirect_branch_settings): Define unconditionally.
1158 (s390_set_current_function): Likewise, but guard the whole body except
1159 the s390_indirect_branch_settings call with
1160 #if S390_USE_TARGET_ATTRIBUTE.
1161 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
1163 2019-02-15 Richard Biener <rguenther@suse.de>
1164 Jakub Jelinek <jakub@redhat.com>
1166 PR tree-optimization/89278
1167 * tree-loop-distribution.c: Include tree-eh.h.
1168 (generate_memset_builtin, generate_memcpy_builtin): Call
1169 rewrite_to_non_trapping_overflow on builtin->size before passing it
1170 to force_gimple_operand_gsi.
1172 2019-02-15 Jakub Jelinek <jakub@redhat.com>
1175 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
1177 * opth-gen.awk: Likewise.
1179 2019-02-14 Jakub Jelinek <jakub@redhat.com>
1181 PR rtl-optimization/89354
1182 * combine.c (make_extraction): Punt if extraction_mode is narrower
1185 PR tree-optimization/89314
1186 * fold-const.c (fold_binary_loc): Cast strlen argument to
1187 const char * before dereferencing it. Formatting fixes.
1189 2019-02-13 Jakub Jelinek <jakub@redhat.com>
1192 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
1193 into pt->vars_contains_escaped_heap instead of setting
1194 pt->vars_contains_escaped_heap to it.
1197 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
1198 INTVAL (size), compare it to GET_MODE_MASK instead of
1199 1 << GET_MODE_BITSIZE.
1201 2019-02-09 Jakub Jelinek <jakub@redhat.com>
1204 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1205 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
1206 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
1208 2019-01-16 David Malcolm <dmalcolm@redhat.com>
1211 * combine.c (delete_noop_moves): Convert to "bool" return,
1212 returning true if any edges are eliminated.
1213 (combine_instructions): Also return true if delete_noop_moves
1216 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1218 PR rtl-optimization/89234
1219 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
1220 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
1221 (copy_reg_eh_region_note_backward): Likewise.
1223 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1226 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
1227 can throw, non-call exceptions are enabled and we can't delete
1228 dead exceptions or alter cfg. Set must_clean if
1229 delete_insn_and_edges returns true, don't set it blindly for calls.
1231 PR rtl-optimization/89195
1232 * combine.c (make_extraction): For MEMs, don't extract bytes outside
1233 of the original MEM.
1236 * optabs.c (prepare_cmp_insn): Pass x and y to
1237 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
1239 2019-02-02 Jakub Jelinek <jakub@redhat.com>
1242 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1243 Punt with warning on aggregate return or argument types. Ignore
1244 type/mode checking for uniform arguments.
1246 2019-02-01 Jakub Jelinek <jakub@redhat.com>
1248 PR tree-optimization/88107
1249 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
1250 instead of assertion that eh_region_outermost is non-NULL, if it
1251 is NULL, set *ALL to true and return NULL.
1252 (move_sese_region_to_fn): Adjust caller, if all is set, call
1253 duplicate_eh_regions with NULL region.
1255 2019-01-29 Jakub Jelinek <jakub@redhat.com>
1259 * omp-simd-clone.c (simd_clone_clauses_extract)
1260 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1261 OMP_CLAUSE_ALIGNED_ALIGNMENT.
1263 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1266 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
1267 for lastprivate/linear IV, push gimplify context around gimplify_assign
1268 and, if it needed any temporaries, pop it into a gimple bind around the
1271 2019-01-27 Jakub Jelinek <jakub@redhat.com>
1274 * config/i386/sse.md
1275 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
1276 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
1277 first constants in pairs are multiples of 2. Formatting fixes.
1278 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
1279 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
1280 first constants in each quadruple are multiples of 4. Formatting fixes.
1282 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1284 PR rtl-optimization/49429
1286 PR rtl-optimization/86334
1288 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
1289 addressable from here...
1290 (emit_block_op_via_libcall): ... to here.
1292 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1294 PR rtl-optimization/88870
1295 * dce.c (deletable_insn_p): Never delete const/pure calls that can
1296 throw if we can't alter the cfg or delete dead exceptions.
1297 (mark_insn): Don't call find_call_stack_args for such calls.
1299 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1302 * tree.c (handle_dll_attribute): Clear TREE_STATIC after setting
1305 2019-01-05 Jakub Jelinek <jakub@redhat.com>
1309 * expr.c (expand_assignment): For calls returning VLA structures
1310 if to_rtx is not a MEM, force it into a stack temporary.
1312 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1315 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1316 of GET_MODE (opN) as modes of the libcall arguments.
1318 2019-01-03 Jakub Jelinek <jakub@redhat.com>
1321 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1322 change it to qualified_type.
1324 2018-12-21 Jakub Jelinek <jakub@redhat.com>
1328 * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition
1330 (expand_omp_for_generic): Don't clobber t temporary for ordered loops.
1332 PR rtl-optimization/88563
1333 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode
1334 and mode arguments to convert_modes. Likewise swap mode and word_mode
1335 arguments. Handle both arguments with VOIDmode before convert_modes
1336 of one of them. Formatting fixes.
1338 2018-12-13 Jakub Jelinek <jakub@redhat.com>
1340 PR rtl-optimization/88470
1341 * cfgcleanup.c (outgoing_edges_match): If the function is
1342 shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake
1343 edge to EXIT, return false.
1345 PR rtl-optimization/88416
1346 * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify
1347 even if !AUTO_INC_DEC.
1349 2018-12-07 Jakub Jelinek <jakub@redhat.com>
1352 * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage
1353 for functions with naked attribute.
1355 2018-11-20 Jakub Jelinek <jakub@redhat.com>
1357 PR tree-optimization/87895
1358 * omp-simd-clone.c (ipa_simd_modify_function_body): When removing
1359 or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT.
1360 (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that
1361 redirects edges to EXIT to edges to incr_bb, iterate while EXIT
1362 has any preds and always use EDGE_PRED (, 0).
1364 2018-10-20 Jakub Jelinek <jakub@redhat.com>
1367 * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
1369 2018-10-19 Jakub Jelinek <jakub@redhat.com>
1373 * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without
1374 depend closely nested inside of loop with ordered clause with
1377 2019-08-25 Uroš Bizjak <ubizjak@gmail.com>
1380 Backport from mainline
1381 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
1383 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
1384 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
1385 Use CODE_FOR_ssse3_absv8qi2.
1386 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
1387 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
1389 2019-08-21 Richard Biener <rguenther@suse.de>
1391 PR tree-optimization/91510
1392 Backport from mainline
1393 2017-09-26 Martin Jambor <mjambor@suse.cz>
1395 * tree-sra.c (compare_access_positions): Put integral types first,
1396 stabilize sorting of integral types, remove conditions putting
1397 non-full-precision integers last.
1398 (sort_and_splice_var_accesses): Disable scalarization if a
1399 non-integert would be represented by a non-full-precision integer.
1401 2019-08-20 Eric Botcazou <ebotcazou@adacore.com>
1403 PR rtl-optimization/91347
1404 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls
1405 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER.
1407 2019-07-22 Martin Liska <mliska@suse.cz>
1409 Backport from mainline
1410 2019-07-22 Martin Liska <mliska@suse.cz>
1413 * opts-common.c (decode_cmdline_option): Decode
1414 argument of -Werror and check it for a wrong language.
1415 * opts-global.c (complain_wrong_lang): Remove such case.
1417 2019-07-16 Wilco Dijkstra <wdijkstr@arm.com>
1419 Backport from mainline
1420 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
1423 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
1424 to decide when to split off a non-zero offset from a symbol.
1425 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
1426 in function symbols.
1428 2019-07-15 Andreas Krebbel <krebbel@linux.ibm.com>
1430 Backport from mainline
1431 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
1433 * config/s390/vector.md: Fix shift count operand printing.
1435 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
1437 PR rtl-optimization/91136
1438 * df-core.c (ACCESSING REFS): Fix typos in comment.
1439 * resource.c (mark_target_live_reg): Add artificial defs that occur at
1440 the beginning of the block to the initial set of live registers.
1442 2019-06-28 Jeff Law <law@redhat.com>
1444 Backport from mainline
1445 2019-06-21 Jeff Law <law@redhat.com>
1447 PR tree-optimization/90949
1448 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
1449 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
1451 2019-06-27 Martin Jambor <mjambor@suse.cz>
1453 Backport from mainline
1454 2019-06-25 Martin Jambor <mjambor@suse.cz>
1457 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
1459 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
1462 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
1463 frame clobbers and schedule block.
1464 (builtin_longjmp): Likewise.
1466 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
1469 * config/pa/pa.c (pa_cannot_change_mode_class): Accept mode changes
1470 from DImode to SImode in floating-point registers on 64-bit target.
1471 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
1472 register_operand in xmpyu patterns.
1474 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
1476 Backported from mainline
1477 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
1479 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
1480 %ebx and %ecx bafore calling cpuid with leaf 1 or
1481 non-constant leaf argument.
1483 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
1486 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
1487 Avoid calling gen_lowpart with CONST operand.
1489 2019-05-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
1491 Backport from mainline.
1492 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
1495 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1496 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
1497 to compute vector element selector for both constant and variable
1500 2019-01-03 Iain Sandoe <iain@sandoe.co.uk>
1503 Backport from mainline
1504 2017-09-25 Iain Sandoe <iain@codesourcery.com>
1507 * config/i386/darwin.h (REAL_LIB_SPEC): New; put libSystem ahead
1508 of libgcc_eh for m64.
1509 * config/i386/darwin64.h: Likewise.
1511 2019-05-15 David Edelsohn <dje.gcc@gmail.com>
1513 Backport from mainline
1514 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
1515 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
1516 * xcoffout.c (xcoff_private_rodata_section_name): Define.
1517 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
1518 read_only_private_data_section using coff_private_rodata_section_name.
1519 (rs6000_xcoff_file_start): Generate coff_private_rodata_section_name.
1521 2018-12-04 David Edelsohn <dje.gcc@gmail.com>
1522 2018-12-13 David Edelsohn <dje.gcc@gmail.com>
1524 * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates
1525 in FPRs on AIX. Ensure type is non-NULL.
1526 (rs6000_arg_partial_bytes): Same.
1528 2019-05-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
1530 * config/arm/t-rtems: Replace -march=armv7-m multilibs with
1531 -mcpu=cortex-m3 and -mcpu=cortex-m4 multilibs.
1533 2019-05-13 Kelvin Nilsen <kelvin@gcc.gnu.org>
1535 Backport from mainline.
1536 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
1539 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1540 handling of V1TImode.
1542 2019-05-07 Richard Sandiford <richard.sandiford@arm.com>
1544 Backport from mainline:
1545 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1548 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1549 instead of accessing TREE_INT_CST_ELT directly.
1551 2019-05-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1553 Backport from mainline.
1554 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1556 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
1557 Define __ARM_FEATURE_ATOMICS
1559 2019-04-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
1562 * config/aarch64/iterators.md (V_INT_EQUIV): Add mode for
1563 integer equivalent of floating point values.
1565 Backport from mainline
1566 2018-12-11 Richard Earnshaw <Richard.Earnshaw@arm.com>
1568 * config/aarch64/iterators.md (sizem1): Add sizes for
1570 (Vbtype): Add SFmode mapping.
1571 * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete.
1572 (copysign<GPF:mode>3): New expand pattern.
1573 (copysign<GPF:mode>3_insn): New insn pattern.
1575 2019-04-22 Kelvin Nilsen <kelvin@gcc.gnu.org>
1577 Backport from mainline
1578 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
1581 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1582 When handling vec_extract, use modular arithmetic to allow
1583 constant selectors greater than vector length.
1584 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
1585 V1TImode vectors to have constant selector values greater than 0.
1586 Use modular arithmetic to compute vector index.
1587 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
1588 index for in-memory vectors. Correct code generation for
1589 in-register vectors. Use inner mode of vector rather than mode of
1590 destination for move instruction.
1591 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
1594 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
1597 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
1598 Use QI inner mode with V16QI vector mode.
1600 2019-04-19 Xiong Hu Luo <luoxhu@linux.ibm.com>
1603 2018-05-23 Segher Boessenkool <segher@kernel.crashing.org>
1605 * doc/sourcebuild.texi (Endianness): New subsubsection.
1607 2019-04-11 Martin Liska <mliska@suse.cz>
1609 Backport from mainline
1610 2019-03-08 Martin Liska <mliska@suse.cz>
1613 * config/i386/i386.c (ix86_option_override_internal): Disable
1614 jump tables when retpolines are used.
1616 2019-04-10 Matthew Malcomson <matthew.malcomson@arm.com>
1619 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
1620 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
1622 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
1623 differences directly.
1624 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
1626 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
1629 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
1630 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
1632 2019-04-06 Eric Botcazou <ebotcazou@adacore.com>
1634 Backport from mainline
1635 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
1637 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
1638 as long as the epilogue isn't completed.
1640 2019-04-03 Richard Biener <rguenther@suse.de>
1643 * lto-wrapper.c (run_gcc): Avoid implicit rules making
1644 the all target phony.
1646 2019-04-02 Xiong Hu Luo <luoxhu@linux.ibm.com>
1648 Backport from trunk r250477.
1650 2017-07-24 Carl Love <cel@us.ibm.com>
1652 * config/rs6000/rs6000-c.c: Add support for built-in functions
1653 vector float vec_extract_fp32_from_shorth (vector unsigned short);
1654 vector float vec_extract_fp32_from_shortl (vector unsigned short);
1655 * config/rs6000/altivec.h (vec_extract_fp_from_shorth,
1656 vec_extract_fp_from_shortl): Add defines for the two builtins.
1657 * config/rs6000/rs6000-builtin.def (VEXTRACT_FP_FROM_SHORTH,
1658 VEXTRACT_FP_FROM_SHORTL): Add BU_P9V_OVERLOAD_1 and BU_P9V_VSX_1
1660 * config/rs6000/vsx.md vsx_xvcvhpsp): Add define_insn.
1661 (vextract_fp_from_shorth, vextract_fp_from_shortl): Add define_expands.
1662 * doc/extend.texi: Update the built-in documentation file for the
1663 new built-in function.
1665 Backport from trunk r255555.
1667 2017-12-11 Carl Love <cel@us.ibm.com>
1669 * config/rs6000/altivec.h (vec_extract_fp32_from_shorth,
1670 vec_extract_fp32_from_shortl]): Add #defines.
1671 * config/rs6000/rs6000-builtin.def (VSLDOI_2DI): Add macro expansion.
1672 * config/rs6000/rs6000-c.c (ALTIVEC_BUILTIN_VEC_UNPACKH,
1673 ALTIVEC_BUILTIN_VEC_UNPACKL, ALTIVEC_BUILTIN_VEC_AND,
1674 ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SRL,
1675 ALTIVEC_BUILTIN_VEC_SRO, ALTIVEC_BUILTIN_VEC_SLD,
1676 ALTIVEC_BUILTIN_VEC_SLL): Add expansions.
1677 * doc/extend.texi: Add documentation for the added builtins.
1679 2019-03-28 Martin Liska <mliska@suse.cz>
1681 Backport from mainline
1682 2018-11-05 Martin Liska <mliska@suse.cz>
1685 * doc/invoke.texi: Remove options that are
1686 not disabled with -Os.
1688 2019-02-26 Richard Biener <rguenther@suse.de>
1690 Backport from mainline
1691 2019-02-12 Richard Biener <rguenther@suse.de>
1693 PR tree-optimization/89253
1694 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
1697 2019-02-08 Richard Biener <rguenther@suse.de>
1700 * tree-data-ref.c (initialize_matrix_A): Fail if constant
1702 (analyze_subscript_affine_affine): Handle failure from
1703 initialize_matrix_A.
1705 2019-01-28 Richard Biener <rguenther@suse.de>
1707 PR tree-optimization/88739
1708 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
1709 BIT_FIELD_REFs of non-mode-precision integral operands.
1711 2019-03-26 Richard Biener <rguenther@suse.de>
1713 Backport from mainline
1714 2019-01-08 Richard Biener <rguenther@suse.de>
1716 PR tree-optimization/86554
1717 * tree-ssa-sccvn.c (visit_nary_op): When value-numbering to
1718 expressions with different overflow behavior make sure there's an
1719 available expression on the path.
1721 2018-11-20 Richard Biener <rguenther@suse.de>
1723 PR tree-optimization/88105
1724 * tree-ssa-dom.c (pass_dominator::execute): Do not walk
1727 2018-03-08 Richard Biener <rguenther@suse.de>
1730 * tree-scalar-evolution.c: Include tree-into-ssa.h.
1731 (follow_copies_to_constant): Do not follow SSA names registered
1734 2019-03-21 Bill Schmidt <wschmidt@linux.ibm.com>
1736 * config/rs6000/rs6000.c (rs6000_analyze_swaps): Rebuild
1737 ud- and du-chains between phases.
1739 2019-03-21 Matthias Klose <doko@ubuntu.com>
1741 Backport from mainline
1742 2019-02-26 Richard Biener <rguenther@suse.de>
1744 PR tree-optimization/89505
1745 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
1746 to handle restrict pointed-to vars with multiple subvars
1749 2019-03-17 H.J. Lu <hongjiu.lu@intel.com>
1751 Backport from mainline
1752 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
1755 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
1756 addr32 prefix to VSIB address for X32.
1757 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
1759 (*avx512pf_gatherpf<mode>df_mask): Likewise.
1760 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
1761 (*avx512pf_scatterpf<mode>df_mask): Likewise.
1762 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
1763 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
1764 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
1765 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
1766 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
1767 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
1768 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
1769 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
1770 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
1771 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
1772 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
1773 (*avx512f_scatterdi<mode>): Likewise.
1775 2019-03-14 Martin Jambor <mjambor@suse.cz>
1777 Backport from mainline
1778 2019-03-07 Martin Jambor <mjambor@suse.cz>
1781 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
1782 for extern inline functions.
1784 2019-03-14 Richard Biener <rguenther@suse.de>
1786 Backport from mainline
1787 2018-02-16 Jakub Jelinek <jakub@redhat.com>
1790 * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest):
1791 Use ++iter rather than iter++ for std::list iterators.
1792 (func_fma_steering::dfs): Likewise. Don't delete nodes right away,
1793 defer deleting them until all nodes in the forest are processed. Do
1794 free even leaf nodes. Change to_process into auto_vec.
1796 2019-03-13 Andre Vieira <andre.simoesdiasvieira@arm.com>
1798 Backport from mainline
1799 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
1801 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
1804 2019-03-11 Martin Liska <mliska@suse.cz>
1806 Backport from mainline
1807 2019-02-11 David Malcolm <dmalcolm@redhat.com>
1810 * input.c (selftest::test_line_offset_overflow): New selftest.
1811 (selftest::input_c_tests): Call it.
1813 2019-03-07 Xiong Hu Luo <luoxhu@linux.ibm.com>
1815 Backport of r268834 from mainline to gcc-7-branch.
1816 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1818 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
1819 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
1820 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
1821 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
1822 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
1823 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
1825 * config/rs6000/rs6000.c (builtin_function_type)
1826 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
1827 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
1828 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
1829 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
1830 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
1832 2019-02-27 Uroš Bizjak <ubizjak@gmail.com>
1835 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
1836 TARGET_SSE in addition to TARGET_SSE_MATH.
1838 (ix86_excess_precision): Ditto.
1839 (ix86_float_exceptions_rounding_supported_p): Ditto.
1840 (use_rsqrt_p): Ditto.
1841 * config/i386/sse.md (rsqrt<mode>2): Ditto.
1843 2019-02-15 Martin Liska <mliska@suse.cz>
1845 Backport from mainline
1846 2019-02-14 Martin Liska <mliska@suse.cz>
1848 PR rtl-optimization/89242
1849 * dce.c (delete_unmarked_insns): Call free_dominance_info we
1850 process a transformation.
1852 2019-02-15 Martin Liska <mliska@suse.cz>
1854 Backport from mainline
1855 2019-02-11 Martin Liska <mliska@suse.cz>
1858 * ipa-cp.c (build_toporder_info): Remove usage of a param.
1859 * ipa-inline.c (inline_small_functions): Likewise.
1860 * ipa-pure-const.c (propagate_pure_const): Likewise.
1861 (propagate_nothrow): Likewise.
1862 * ipa-reference.c (propagate): Likewise.
1863 * ipa-utils.c (struct searchc_env): Remove unused field.
1864 (searchc): Always search across AVAIL_INTERPOSABLE.
1865 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
1866 the only called IPA pure const can properly not propagate
1867 across interposable boundary.
1868 * ipa-utils.h (ipa_reduced_postorder): Remove param.
1870 2019-02-11 Stefan Agner <stefan@agner.ch>
1872 Backport from mainline.
1873 2019-01-10 Stefan Agner <stefan@agner.ch>
1876 * config/arm/arm.c (arm_option_override_internal): Force
1877 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
1879 2019-02-09 Alan Modra <amodra@gmail.com>
1882 * config/rs6000/rs6000.c (rs6000_reg_live_or_pic_offset_p): Match
1883 logic in rs6000_emit_prologue emitting pic_offset_table setup.
1885 2019-02-08 Eric Botcazou <ebotcazou@adacore.com>
1887 Backport from mainline
1888 2018-06-11 Segher Boessenkool <segher@kernel.crashing.org>
1891 * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers
1892 on the correct operand.
1893 (*movdi_internal64): Ditto.
1895 2019-02-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
1897 Backport from mainline.
1898 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1899 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
1900 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
1901 type of vector element when vec_extract is implemented by direct
1904 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
1906 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1907 after restoring registers saved to allocate the frame on Windows.
1909 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1911 Backport from mainline
1912 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1915 * config/s390/s390.md: Remove load and test FP splitter.
1917 2019-02-04 Bill Schmidt <wshmidt@linux.ibm.com>
1920 Backport from mainline
1922 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
1925 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1926 Disable for little-endian.
1928 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1931 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
1932 Disable for little endian.
1934 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1936 Backport from mainline
1937 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1939 PR tree-optimization/89008
1940 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1941 process anything of the form X * 0.
1943 2019-01-31 Richard Biener <rguenther@suse.de>
1945 Backport from mainline
1946 2019-01-31 Richard Biener <rguenther@suse.de>
1948 PR rtl-optimization/89115
1949 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1951 2019-01-30 Richard Biener <rguenther@suse.de>
1953 PR rtl-optimization/89115
1954 * opts.c (default_options_optimization): Reduce
1955 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
1956 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
1959 2019-01-30 Kewen Lin <linkw@gcc.gnu.org>
1961 Backport from mainline.
1962 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
1964 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
1965 prototypes for vec_st.
1966 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
1967 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
1968 mainly on signed/unsigned long long and double.
1970 2019-01-27 Uroš Bizjak <ubizjak@gmail.com>
1973 * rtl.h (prepare_copy_insn): New prototype.
1974 * gcse.c (prepare_copy_insn): New function, split out from
1975 process_insert_insn.
1976 (process_insert_insn): Use prepare_copy_insn.
1977 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1978 instead of gen_move_insn.
1980 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1983 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
1984 Disparage MMX alternative.
1985 (sse2_cvtpd2pi): Ditto.
1986 (sse2_cvttpd2pi): Ditto.
1988 2019-01-24 Richard Biener <rguenther@suse.de>
1990 Backport from mainline
1991 2019-01-23 Richard Biener <rguenther@suse.de>
1993 PR tree-optimization/89008
1994 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
1995 not leave another stray operand.
1997 2019-01-22 Uroš Bizjak <ubizjak@gmail.com>
2000 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2001 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2003 2019-01-18 Uroš Bizjak <ubizjak@gmail.com>
2005 * config/alpha/alpha.c (alpha_gimplify_va_arg):
2006 Handle split indirect COMPLEX_TYPE arguments.
2008 2019-01-16 Martin Jambor <mjambor@suse.cz>
2010 Backported from mainline
2011 2018-12-10 Martin Jambor <mjambor@suse.cz>
2014 * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure
2015 we check pointers against pointers.
2017 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2018 James Clarke <jrtc27@jrtc27.com>
2021 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
2022 consistently in TLS address generation and adjust code to the renaming
2023 of patterns. Mark calls to __tls_get_addr as const.
2024 * config/sparc/sparc.md (tgd_hi22): Turn into...
2025 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
2026 (tgd_lo10): Turn into...
2027 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
2028 (tgd_add32): Merge into...
2029 (tgd_add64): Likewise.
2030 (tgd_add<P:mode>): ...this and use Pmode throughout.
2031 (tldm_hi22): Turn into...
2032 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
2033 (tldm_lo10): Turn into...
2034 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
2035 (tldm_add32): Merge into...
2036 (tldm_add64): Likewise.
2037 (tldm_add<P:mode>): ...this and use Pmode throughout.
2038 (tldm_call32): Merge into...
2039 (tldm_call64): Likewise.
2040 (tldm_call<P:mode>): ...this and use Pmode throughout.
2041 (tldo_hix22): Turn into...
2042 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
2043 (tldo_lox10): Turn into...
2044 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
2045 (tldo_add32): Merge into...
2046 (tldo_add64): Likewise.
2047 (tldo_add<P:mode>): ...this and use Pmode throughout.
2048 (tie_hi22): Turn into...
2049 (tie_hi22<P:mode>): ...this and use Pmode throughout.
2050 (tie_lo10): Turn into...
2051 (tie_lo10<P:mode>): ...this and use Pmode throughout.
2052 (tie_ld64): Use DImode throughout.
2053 (tie_add32): Merge into...
2054 (tie_add64): Likewise.
2055 (tie_add<P:mode>): ...this and use Pmode throughout.
2056 (tle_hix22_sp32): Merge into...
2057 (tle_hix22_sp64): Likewise.
2058 (tle_hix22<P:mode>): ...this and use Pmode throughout.
2059 (tle_lox22_sp32): Merge into...
2060 (tle_lox22_sp64): Likewise.
2061 (tle_lox22<P:mode>): ...this and use Pmode throughout.
2062 (*tldo_ldub_sp32): Merge into...
2063 (*tldo_ldub_sp64): Likewise.
2064 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
2065 (*tldo_ldub1_sp32): Merge into...
2066 (*tldo_ldub1_sp64): Likewise.
2067 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
2068 (*tldo_ldub2_sp32): Merge into...
2069 (*tldo_ldub2_sp64): Likewise.
2070 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
2071 (*tldo_ldsb1_sp32): Merge into...
2072 (*tldo_ldsb1_sp64): Likewise.
2073 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
2074 (*tldo_ldsb2_sp32): Merge into...
2075 (*tldo_ldsb2_sp64): Likewise.
2076 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
2077 (*tldo_ldub3_sp64): Use DImode throughout.
2078 (*tldo_ldsb3_sp64): Likewise.
2079 (*tldo_lduh_sp32): Merge into...
2080 (*tldo_lduh_sp64): Likewise.
2081 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
2082 (*tldo_lduh1_sp32): Merge into...
2083 (*tldo_lduh1_sp64): Likewise.
2084 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
2085 (*tldo_ldsh1_sp32): Merge into...
2086 (*tldo_ldsh1_sp64): Likewise.
2087 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
2088 (*tldo_lduh2_sp64): Use DImode throughout.
2089 (*tldo_ldsh2_sp64): Likewise.
2090 (*tldo_lduw_sp32): Merge into...
2091 (*tldo_lduw_sp64): Likewise.
2092 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
2093 (*tldo_lduw1_sp64): Use DImode throughout.
2094 (*tldo_ldsw1_sp64): Likewise.
2095 (*tldo_ldx_sp64): Likewise.
2096 (*tldo_stb_sp32): Merge into...
2097 (*tldo_stb_sp64): Likewise.
2098 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
2099 (*tldo_sth_sp32): Merge into...
2100 (*tldo_sth_sp64): Likewise.
2101 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
2102 (*tldo_stw_sp32): Merge into...
2103 (*tldo_stw_sp64): Likewise.
2104 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
2105 (*tldo_stx_sp64): Use DImode throughout.
2107 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2109 * doc/invoke.texi (-Os): Add reference to -finline-functions.
2110 (-finline-small-functions): Add references to -O3 and -Os.
2111 (-findirect-inlining): Likewise.
2112 (-finline-functions): Add references to -Os, -fprofile-use and
2115 2019-01-03 Iain Sandoe <iain@sandoe.co.uk>
2118 2018-12-30 Iain Sandoe <iain@sandoe.co.uk>
2120 backport from mainline.
2121 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org>
2122 Iain Sandoe <iain@sandoe.co.uk>
2125 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
2126 unless it has been used.
2127 (first_reg_to_save): Remove dead code.
2129 2019-01-02 Segher Boessenkool <segher@kernel.crashing.org>
2132 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org>
2135 * doc/extend.texi (Basic Asm): Update grammar.
2136 (Extended Asm): Update grammar.
2139 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org>
2141 * doc/extend.texi (Using Assembly Language with C): Document asm inline.
2142 (Size of an asm): Fix typo. Document asm inline.
2143 * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline.
2144 * gimple.h (enum gf_mask): Add GF_ASM_INLINE.
2145 (gimple_asm_set_volatile): Fix typo.
2146 (gimple_asm_inline_p): New.
2147 (gimple_asm_set_inline): New.
2148 * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from
2150 * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the
2151 gimple_asm_inline_p flag, too.
2152 * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P
2154 * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return
2155 a minimum size for an asm.
2156 * tree.h (ASM_INLINE_P): New.
2158 2018-12-30 Iain Sandoe <iain@sandoe.co.uk>
2160 backport from mainline.
2161 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org>
2162 Iain Sandoe <iain@sandoe.co.uk>
2165 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg
2166 unless it has been used.
2167 (first_reg_to_save): Remove dead code.
2169 2018-12-24 Iain Sandoe <iain@sandoe.co.uk>
2171 Backport from mainline
2172 2018-12-06 Iain Sandoe <iain@sandoe.co.uk>
2175 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the
2177 * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New.
2179 2018-12-24 Iain Sandoe <iain@sandoe.co.uk>
2181 Backport from mainline
2182 2018-12-06 Iain Sandoe <iain@sandoe.co.uk>
2185 * config/i386/darwin.h (STACK_BOUNDARY): Remove macro.
2186 * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b
2187 stack alignment in non-leaf functions.
2189 2018-12-24 Iain Sandoe <iain@sandoe.co.uk>
2191 Backport from mainline
2192 2018-08-15 Iain Sandoe <iain@sandoe.co.uk>
2195 * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION,
2196 DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION,
2197 DEBUG_PUBTYPES_SECTION) update to include GNU variant.
2199 2018-12-21 Uros Bizjak <ubizjak@gmail.com>
2201 Backport from mainline
2202 2018-12-10 Uros Bizjak <ubizjak@gmail.com>
2205 * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes,
2206 check operand 1 with vector_operand predicate.
2207 (ix86_expand_sse_movcc): For vector modes, check op_true with
2208 vector_operand, not nonimmediate_operand.
2210 2018-12-19 Bill Schmidt <wschmidt@linux.ibm.com>
2212 Backport from mainline
2213 2018-12-18 Bill Schmidt <wschmidt@linux.ibm.com>
2215 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions):
2216 Describe when a typedef name can be used as the type specifier for
2217 a vector type, and when it cannot.
2219 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
2222 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org>
2225 * config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load):
2226 Require TARGET_POWERPC64.
2228 2018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
2231 2018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com>
2233 PR rtl-optimization/88253
2234 * combine.c (combine_simplify_rtx): Test for side-effects before
2235 substituting by zero.
2237 2018-12-15 Segher Boessenkool <segher@kernel.crashing.org>
2240 2018-12-14 Segher Boessenkool <segher@kernel.crashing.org>
2242 PR rtl-optimization/88001
2243 * function.c (match_asm_constraints_1): Don't invalidly share RTL.
2245 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com>
2247 Backport from mainline
2248 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com>
2250 * config/s390/s390-builtins.def (s390_vec_double_s64): Map to
2251 s390_vec_double_s64 instead of s390_vcdgb.
2252 (s390_vec_double_u64): Map to s390_vec_double_u64 instead of
2255 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com>
2257 Backport from mainline
2258 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com>
2260 * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64")
2261 ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT.
2262 ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT.
2264 2018-12-12 Peter Bergner <bergner@linux.ibm.com>
2266 Backport from mainline
2267 2018-12-07 Peter Bergner <bergner@linux.ibm.com>
2270 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
2271 -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128.
2272 Do not error for -mabi=ibmlongdouble and no ISA 2.06 support.
2273 * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble
2274 require -mlong-double-128.
2276 2018-12-06 Richard Biener <rguenther@suse.de>
2278 * BASE-VER: Increment to 7.4.1.
2280 2018-12-06 Release Manager
2282 * GCC 7.4.0 released.
2284 2018-11-28 Richard Biener <rguenther@suse.de>
2286 PR tree-optimization/79351
2287 * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from
2288 empty CONSTRUCTORs ensure the store is at a constant position.
2290 2018-11-26 Iain Sandoe <iain@sandoe.co.uk>
2292 Backport from mainline
2293 2018-08-22 Iain Sandoe <iain@sandoe.co.uk>
2298 * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New.
2299 (dwarf2out_switch_text_section): Generate a local label for the second
2300 function sub-section and apply it as the second FDE start label.
2301 * gcc/final.c (final_scan_insn_1): Emit second FDE label after the
2302 second sub-section start.
2304 2018-11-26 Iain Sandoe <iain@sandoe.co.uk>
2306 2018-08-15 Iain Sandoe <iain@sandoe.co.uk>
2309 (darwin_function_switched_text_sections): Delete.
2310 * gcc/config/darwin.h
2311 (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise.
2313 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com>
2315 Backport from mainline
2316 2018-11-20 Andreas Krebbel <krebbel@linux.ibm.com>
2318 * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the
2319 DImode parts of the target operand.
2321 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com>
2323 Backport from mainline
2324 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com>
2326 * doc/invoke.texi: Document z14/arch12 -march option.
2328 2018-10-19 Richard Biener <rguenther@suse.de>
2331 Backport from mainline
2332 2018-07-12 Richard Biener <rguenther@suse.de>
2334 * gimple-match-head.c (gimple_resimplify1): Apply recursion
2336 (gimple_resimplify2): Likewise.
2337 (gimple_resimplify3): Likewise.
2338 (gimple_resimplify4): Likewise.
2340 2018-11-26 Richard Biener <rguenther@suse.de>
2342 Backport from mainline
2343 2018-10-15 Richard Biener <rguenther@suse.de>
2346 * tree-ssa-structalias.c (struct vls_data): Add escaped_p member.
2347 (visit_loadstore): When a used restrict tag escaped verify that
2348 the points-to solution of "other" pointers do not include
2350 (compute_dependence_clique): If a used restrict tag escaped
2351 communicated that down to visit_loadstore.
2353 2018-10-25 Richard Biener <rguenther@suse.de>
2355 PR tree-optimization/87665
2356 PR tree-optimization/87745
2357 * tree-vectorizer.h (get_earlier_stmt): Remove.
2358 (get_later_stmt): Pick up UID from the original non-pattern stmt.
2360 2018-10-24 Richard Biener <rguenther@suse.de>
2362 PR tree-optimization/87665
2363 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust
2366 2018-11-26 Richard Biener <rguenther@suse.de>
2368 Backport from mainline
2369 2018-06-14 Richard Biener <rguenther@suse.de>
2372 * tree-vect-generic.c (build_word_mode_vector_type): Remove
2373 duplicate and harmful type_hash_canon.
2375 2018-06-15 Richard Biener <rguenther@suse.de>
2378 * tree-cfg.c (move_stmt_op): unshare invariant addresses
2379 before adjusting their block.
2381 2018-11-22 Uros Bizjak <ubizjak@gmail.com>
2383 Backport from mainline
2384 2018-11-16 Uros Bizjak <ubizjak@gmail.com>
2387 * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC.
2388 (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec.
2390 2018-11-22 Tom de Vries <tom@codesourcery.com>
2392 backport from trunk:
2393 2017-11-19 Tom de Vries <tom@codesourcery.com>
2396 * vmsdbgout.c (vmsdbgout_early_finish): New function.
2397 (vmsdbg_debug_hooks): Set early_finish field to vmsdbgout_early_finish.
2399 2018-11-21 Mihail Ionescu <mihail.ionescu@arm.com>
2402 Backport from mainiline
2403 2018-09-26 Eric Botcazou <ebotcazou@adacore.com>
2405 * config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks.
2406 (arm32_output_mi_thunk): Deal with long calls.
2408 2018-11-20 Richard Biener <rguenther@suse.de>
2410 Backport from mainline
2411 2018-03-12 Richard Biener <rguenther@suse.de>
2413 PR tree-optimization/84777
2414 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For
2415 force-vectorize loops ignore whether we are optimizing for size.
2417 2018-01-26 Richard Biener <rguenther@suse.de>
2419 PR rtl-optimization/84003
2420 * dse.c (record_store): Only record redundant stores when
2421 the earlier store aliases at least all accesses the later one does.
2423 2018-11-20 Xuepeng Guo <xuepeng.guo@intel.com>
2425 Backport from mainline
2426 2018-11-05 Xuepeng Guo <xuepeng.guo@intel.com>
2429 * config/i386/emmintrin.h (__v16qs): New to cope with option
2431 (_mm_cmpeq_epi8): Replace __v16qi with __v16qs.
2432 (_mm_cmplt_epi8): Likewise.
2433 (_mm_cmpgt_epi8): Likewise.
2435 2018-11-20 Eric Botcazou <ebotcazou@adacore.com>
2437 PR rtl-optimization/85925
2438 * rtl.h (word_register_operation_p): New predicate.
2439 * combine.c (record_dead_and_set_regs_1): Only apply specific handling
2440 for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX.
2441 * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments.
2442 (num_sign_bit_copies1): Likewise.
2444 2018-11-18 Uros Bizjak <ubizjak@gmail.com>
2446 Backport from mainline
2447 2018-11-11 Uros Bizjak <ubizjak@gmail.com>
2450 * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI
2451 instead of (TARGET_64BIT && ix86_abi == MS_ABI).
2452 * config/i386/darwin.h (STACK_BOUNDARY): Ditto.
2453 * config/i386/cygming.h (STACK_BOUNDARY): Remove.
2455 2018-11-15 Nathan Sidwell <nathan@acm.org>
2459 * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat
2462 2018-11-11 Uros Bizjak <ubizjak@gmail.com>
2464 Backport from mainline
2465 2018-11-04 Uros Bizjak <ubizjak@gmail.com>
2468 * cfgexpand.c (pass_expand::execute): Move the call to
2469 finish_eh_generation in front of the call to expand_stack_alignment.
2471 2018-11-07 Max Filippov <jcmvbkbc@gmail.com>
2473 Backport from mainline
2474 2018-11-05 Max Filippov <jcmvbkbc@gmail.com>
2476 * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0.
2478 2018-10-26 Bill Schmidt <wschmidt@linux.ibm.com>
2480 Backport from mainline
2481 2018-10-19 Bill Schmidt <wschmidt@linux.ibm.com>
2483 PR tree-optimization/87473
2484 * gimple-ssa-strength-reduction.c (record_phi_increments): For
2485 phi arguments identical to the base expression of the phi
2486 candidate, record a phi-adjust increment of zero minus the index
2487 expression of the hidden basis.
2488 (phi_incr_cost): For phi arguments identical to the base
2489 expression of the phi candidate, the difference to compare against
2490 the increment is zero minus the index expression of the hidden
2491 basis, and there is no potential savings from replacing the (phi)
2493 (ncd_with_phi): For phi arguments identical to the base expression
2494 of the phi candidate, the difference to compare against the
2495 increment is zero minus the index expression of the hidden basis.
2496 (all_phi_incrs_profitable): For phi arguments identical to the
2497 base expression of the phi candidate, the increment to be checked
2498 for profitability is zero minus the index expression of the hidden
2501 2018-10-19 Andreas Krebbel <krebbel@linux.ibm.com>
2503 Backport from mainline
2504 2018-10-15 Andreas Krebbel <krebbel@linux.ibm.com>
2506 * config/s390/s390.c (s390_expand_vec_init): Force vector element
2507 into reg if it isn't a general operand.
2509 2018-10-17 Eric Botcazou <ebotcazou@adacore.com>
2512 * fold-const.c (fold_truth_andor_1): If the right side is not constant,
2513 bail out if both sides do not have the same storage order.
2515 2018-10-16 Wilco Dijkstra <wdijkstr@arm.com>
2517 Backported from mainline
2519 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
2520 Use HOST_WIDE_INT_1U for shift.
2522 2018-10-12 Jakub Jelinek <jakub@redhat.com>
2524 Backported from mainline
2525 2018-10-10 Jakub Jelinek <jakub@redhat.com>
2528 * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set
2529 to special_args set.
2531 2018-09-12 Jakub Jelinek <jakub@redhat.com>
2534 * fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that
2535 BIT_AND_EXPR's second operand is a power of two. Formatting fix.
2537 2018-08-27 Jakub Jelinek <jakub@redhat.com>
2539 PR rtl-optimization/87065
2540 * combine.c (simplify_if_then_else): Formatting fix.
2541 (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P
2543 (known_cond): Don't return const_true_rtx for vector modes. Use
2544 CONST0_RTX instead of const0_rtx. Formatting fixes.
2546 2018-07-24 Jakub Jelinek <jakub@redhat.com>
2549 * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN
2550 and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT
2551 and abs_d == d, do the power of two handling if profitable.
2553 2018-07-17 Jakub Jelinek <jakub@redhat.com>
2556 * omp-low.c (create_task_copyfn): Copy over also fields corresponding
2557 to _looptemp_ clauses, other than the first two.
2560 * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init
2561 and cond temporaries don't have reference type if iterator has
2562 pointer type. For init use &for_pre_body instead of pre_p if
2563 for_pre_body is non-empty.
2565 2018-07-26 Jakub Jelinek <jakub@redhat.com>
2568 * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for
2569 declare target to variables if they have always,{to,from,tofrom} map
2572 2018-10-12 Richard Biener <rguenther@suse.de>
2574 Backport from mainline
2575 2018-08-23 Richard Biener <rguenther@suse.de>
2578 * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len
2581 2018-08-17 Richard Biener <rguenther@suse.de>
2584 * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len ()
2585 across a va-arg-pack using call adjust its return value accordingly.
2587 2018-10-09 H.J. Lu <hongjiu.lu@intel.com>
2589 Backport from mainline
2590 2018-09-29 H.J. Lu <hongjiu.lu@intel.com>
2593 * config/i386/i386.c (construct_container): Use TImode for
2594 BLKmode values in 2 integer registers.
2596 2018-10-08 H.J. Lu <hongjiu.lu@intel.com>
2598 Backport from mainline
2599 2018-10-08 H.J. Lu <hongjiu.lu@intel.com>
2602 * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd):
2603 Defined with __builtin_ia32_vfmaddsubpd512_mask.
2605 2018-10-05 H.J. Lu <hongjiu.lu@intel.com>
2607 Backport from mainline
2608 2018-10-05 H.J. Lu <hongjiu.lu@intel.com>
2611 * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to
2612 assembler for -mavx.
2613 * config/i386/gnu-user64.h (ASM_SPEC): Likewise.
2615 2018-10-03 Uros Bizjak <ubizjak@gmail.com>
2617 Backport from mainline
2618 2018-09-28 Uros Bizjak <ubizjak@gmail.com>
2620 * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG.
2621 (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename.
2623 2018-10-03 Jonathan Wakely <jwakely@redhat.com>
2626 * doc/invoke.texi (Link Options): Fix formatting and grammar.
2628 2018-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2630 Backport from mainline
2631 2018-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2633 * config/arm/arm.c (output_move_double): Don't allow STRD instructions
2634 if starting source register is not even.
2636 2018-09-29 Jakub Jelinek <jakub@redhat.com>
2639 * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use
2640 __m512d type for __A argument rather than __m512.
2642 2018-09-27 Michael Meissner <meissner@linux.ibm.com>
2644 Backport from mainline
2645 2018-08-20 Michael Meissner <meissner@linux.ibm.com>
2648 * config/rs6000/rs6000.md (extendsi<mode>2): Change constraints
2649 from 'Y' to 'YZ' to enable the LWAX instruction to be generated
2652 2018-09-21 Eric Botcazou <ebotcazou@adacore.com>
2654 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false
2655 if the call takes a static chain.
2657 2018-09-19 John David Anglin <danglin@gcc.gnu.org>
2659 * config/pa/pa.md (atomic_storeqi): Restore deleted expander.
2660 (atomic_storehi): Likewise.
2661 (atomic_storesi): Likewise.
2662 (atomic_loaddi): Restore compare and swap exchange loop code.
2664 2018-09-12 Segher Boessenkool <segher@kernel.crashing.org>
2667 2018-08-24 Segher Boessenkool <segher@kernel.crashing.org>
2670 * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is
2673 2018-09-12 Andreas Krebbel <krebbel@linux.ibm.com>
2675 Backport from mainline
2676 2018-09-12 Andreas Krebbel <krebbel@linux.ibm.com>
2678 * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New
2680 ("trunc<BFP:mode><DFP_ALL:mode>2")
2681 ("trunc<DFP_ALL:mode><BFP:mode>2")
2682 ("extend<BFP:mode><DFP_ALL:mode>2")
2683 ("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode
2684 according to the target operand type.
2686 2018-09-04 Max Filippov <jcmvbkbc@gmail.com>
2688 Backport from mainline
2689 2018-09-04 Max Filippov <jcmvbkbc@gmail.com>
2691 * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and
2692 XOR operations in NAND case.
2694 2018-09-04 Jonathan Wakely <jwakely@redhat.com>
2696 * doc/invoke.texi (Option Summary): Add -Waligned-new.
2698 2018-09-03 Tom de Vries <tdevries@suse.de>
2700 backport from trunk:
2701 2018-06-21 Tom de Vries <tdevries@suse.de>
2703 PR tree-optimization/85859
2704 * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call
2705 test with comment from bb_no_side_effects_p.
2707 2018-08-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2709 Backport from mainline
2711 * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array
2712 with all enabled __intN types.
2714 * gcc/testsuite/gcc.target/msp430/pr86662.c: New test.
2716 2018-08-21 H.J. Lu <hongjiu.lu@intel.com>
2718 Backport from mainline
2719 2018-08-20 H.J. Lu <hongjiu.lu@intel.com>
2722 * config/i386/i386.md (eh_return): Always update EH return
2723 address in word_mode.
2725 2018-08-17 John David Anglin <danglin@gcc.gnu.org>
2727 Backport from mainline
2728 2018-08-11 John David Anglin <danglin@gcc.gnu.org>
2730 * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum.
2731 Update comment for atomic instructions.
2732 (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf,
2733 atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1):
2735 (atomic_loaddi): Revise fence expansion to only emit fence prior to
2736 load for __ATOMIC_SEQ_CST model.
2737 (atomic_loaddi_1): Remove float register target.
2738 (atomic_storedi): Handle CONST_INT values.
2739 (atomic_storedi_1): Remove float register source. Add special case
2741 (memory_barrier): New expander and insn.
2743 2018-08-13 Segher Boessenkool <segher@kernel.crashing.org>
2745 Backport from mainline
2746 2018-05-09 Segher Boessenkool <segher@kernel.crashing.org>
2748 PR rtl-optimization/85645
2749 * regrename.c (build_def_use): Also kill the chains that include the
2750 destination of a REG_CFA_REGISTER note.
2752 PR rtl-optimization/85645
2753 * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an
2754 insn that has a REG_CFA_REGISTER note.
2756 2018-08-10 Segher Boessenkool <segher@kernel.crashing.org>
2758 Backport from mainline
2759 2018-06-19 Segher Boessenkool <segher@kernel.crashing.org>
2762 * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An
2763 ieee128 argument takes up only one (vector) register, not two (floating
2766 2018-08-02 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2768 Backport from mainline
2769 2018-07-31 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2772 * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when
2773 MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the
2774 requested variable alignment.
2775 (expand_one_ssa_partition): Likewise.
2776 (expand_one_var): Likewise.
2778 2018-08-01 Richard Biener <rguenther@suse.de>
2781 * graphite.h: Include isl/id.h and isl/space.h to allow build
2784 2018-07-29 John David Anglin <danglin@gcc.gnu.org>
2786 * config/pa/pa.c (pa_output_addr_vec): Align address table.
2787 * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment.
2788 * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define.
2790 2018-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2792 Backport from mainline
2794 2017-09-28 Joseph Myers <joseph@codesourcery.com>
2796 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor)
2797 (aarch64_elf_asm_destructor): Pass SECTION_NOTYPE to get_section
2798 when creating .init_array and .fini_array sections with priority
2801 2018-07-12 Richard Biener <rguenther@suse.de>
2804 * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC):
2805 Remove -mieee-fp handling.
2807 2018-07-10 Carl Love <cel@us.ibm.com>
2809 Backport from mainline
2810 2017-09-07 Carl Love <cel@us.ibm.com>
2812 * config/rs6000/vsx.md (define_insn "*stxvl"): Add missing argument to
2813 the sldi instruction.
2815 2018-06-29 Martin Liska <mliska@suse.cz>
2817 Backport from mainline
2818 2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
2820 * lex.c (search_line_fast): Remove illegal coercion of an
2821 unaligned pointer value to vector pointer type and replace with
2822 use of __builtin_vec_vsx_ld () built-in function, which operates
2823 on unaligned pointer values.
2825 2018-06-27 David Edelsohn <dje.gcc@gmail.com>
2827 2018-06-19 Tony Reix <tony.reix@atos.com>
2828 Damien Bergamini <damien.bergamini@atos.com>
2829 David Edelsohn <dje.gcc@gmail.com>
2831 * collect2.c (static_obj): New variable.
2832 (static_libs): New variable.
2833 (is_in_list): Uncomment declaration.
2834 (main): Track AIX libraries linked statically.
2835 (is_in_list): Uncomment definition.
2836 (scan_prog_file): Don't add AIX shared libraries initializer
2837 to constructor list if linking statically.
2839 2018-06-26 Kelvin Nilsen <kelvin@gcc.gnu.org>
2841 Backported from mainline
2842 2018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
2844 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change
2845 behavior of vec_packsu (vector unsigned long long, vector unsigned
2846 long long) to match behavior of vec_packs with same signature.
2848 2018-06-26 Robin Dapp <rdapp@linux.vnet.ibm.com>
2850 * config/s390/s390.h (enum processor_flags): Do not use
2851 default tune parameter when -march was specified.
2853 2018-06-26 Jakub Jelinek <jakub@redhat.com>
2856 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s):
2857 Check reg_overlap_mentioned_p in addition to reg_set_p with the same
2860 2018-06-25 Michael Meissner <meissner@linux.vnet.ibm.com>
2862 Back port from trunk
2863 2018-04-17 Michael Meissner <meissner@linux.vnet.ibm.com>
2866 * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack
2867 where the inputs overlap with the output.
2869 2018-06-25 Jakub Jelinek <jakub@redhat.com>
2872 * config/i386/sse.md (vshift_count): New mode attr.
2873 (<shift_insn><mode>3<mask_name>): Use <vshift_count>N instead of vN
2874 as last operand's constraint for VI2_AVX2_AVX512BW shifts. Use YvN
2875 instead of vN as last operand's constraint for VI48_AVX2 shifts.
2877 2018-06-23 Richard Sandiford <richard.sandiford@linaro.org>
2879 PR tree-optimization/85989
2880 * gimple-ssa-backprop.c (backprop::m_visited_phis): New member
2882 (backprop::intersect_uses): Check it when deciding whether this
2883 is a backedge reference.
2884 (backprop::process_block): Add each phi to m_visited_phis
2885 after visiting it, then clear it at the end.
2887 2018-06-22 Jakub Jelinek <jakub@redhat.com>
2889 Backported from mainline
2890 2018-06-20 Jakub Jelinek <jakub@redhat.com>
2892 PR tree-optimization/86231
2893 * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and
2894 anti-range don't overwrite *vr0min before using it to compute *vr0max.
2896 2018-06-15 Jakub Jelinek <jakub@redhat.com>
2899 * expr.c (expand_assignment): Only call store_expr for halves if the
2902 2018-06-14 Jakub Jelinek <jakub@redhat.com>
2905 * lower-subreg.c (find_decomposable_subregs): Don't decompose float
2906 subregs of multi-word pseudos unless the float mode has word size.
2908 2018-06-04 Jakub Jelinek <jakub@redhat.com>
2911 * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE.
2913 2018-05-06 Jakub Jelinek <jakub@redhat.com>
2916 * cfgexpand.c (expand_asm_stmt): Don't create a temporary if
2917 the type is addressable. Don't force op into register if it has
2920 2018-05-01 Jakub Jelinek <jakub@redhat.com>
2923 * doc/install.texi2html: Replace _002d with - and _002a with * in
2924 generated html files using sed.
2926 2018-04-27 Jakub Jelinek <jakub@redhat.com>
2928 PR tree-optimization/85529
2929 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB
2930 argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE,
2931 rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious
2932 zero extension or masking of the MSB bit.
2933 (optimize_range_tests): Add FIRST_BB argument, pass it through
2934 to optimize_range_tests_var_bound.
2935 (maybe_optimize_range_tests, reassociate_bb): Adjust
2936 optimize_range_tests callers.
2938 2018-04-19 Jakub Jelinek <jakub@redhat.com>
2940 PR tree-optimization/85446
2941 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require
2942 the integral and pointer types to have the same precision.
2944 2018-04-18 David Malcolm <dmalcolm@redhat.com>
2947 * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version
2948 by using gcc_base_ver to generate a gcc_driver_version, and use
2949 it when generating GCC_DRIVER_NAME.
2950 * configure: Regenerate.
2952 2018-04-17 Jakub Jelinek <jakub@redhat.com>
2954 PR rtl-optimization/85431
2955 * dse.c (record_store): Ignore zero width stores.
2958 * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu.
2960 2018-04-10 Jakub Jelinek <jakub@redhat.com>
2962 PR rtl-optimization/85300
2963 * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also
2964 into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if
2965 simplify_unary_operation fails.
2967 2018-04-07 Jakub Jelinek <jakub@redhat.com>
2969 PR tree-optimization/85257
2970 * fold-const.c (native_encode_vector): If not all elts could fit
2971 and off is -1, return 0 rather than offset.
2972 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass
2973 (offset - offset2) / BITS_PER_UNIT as 4th argument to
2974 native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't
2975 adjust buffer in native_interpret_expr call.
2977 2018-04-06 Jakub Jelinek <jakub@redhat.com>
2980 * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only
2981 build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST.
2983 2018-04-03 Jakub Jelinek <jakub@redhat.com>
2985 PR rtl-optimization/85167
2986 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and
2987 bb_defs if *split_p, instead preinitialize it to NULL.
2989 2018-03-28 Jakub Jelinek <jakub@redhat.com>
2992 * config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0,
2993 *sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns.
2995 2018-03-23 Jakub Jelinek <jakub@redhat.com>
2998 * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have
2999 known size by default.
3002 * function.c (match_asm_constraints_1): Don't optimize if input
3003 doesn't satisfy general_operand predicate for output's mode.
3006 * alias.c (write_dependence_p): Don't require for x_canonicalized
3007 non-VOIDmode if x has VOIDmode.
3009 2018-03-22 Jakub Jelinek <jakub@redhat.com>
3012 * function.c (match_asm_constraints_1): Don't do the optimization
3013 if input isn't a REG, SUBREG, MEM or constant.
3016 * dwarf2asm.c (dw2_output_indirect_constant_1): Set
3017 DECL_INITIAL (decl) to decl at the end.
3018 * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change,
3021 2018-03-20 Jakub Jelinek <jakub@redhat.com>
3024 * dce.c (delete_unmarked_insns): Don't remove frame related noop moves
3025 holding REG_CFA_RESTORE notes, instead turn them into a USE.
3028 * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type
3029 instead of TREE_TYPE (s1) for the return value.
3032 * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off
3033 flag_section_anchors.
3034 * varasm.c (use_blocks_for_decl_p): Remove hack for
3035 dw2_force_const_mem.
3037 2018-03-19 Jakub Jelinek <jakub@redhat.com>
3040 * dwarf2asm.c: Include fold-const.c.
3041 (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR
3042 of decl rather than decl itself.
3044 2018-03-19 Maxim Ostapenko <m.ostapenko@samsung.com>
3047 * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before
3048 calling assemble_variable.
3050 2018-03-16 Jakub Jelinek <jakub@redhat.com>
3053 * postreload.c (reload_combine_recognize_pattern): Perform
3054 INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and
3055 truncate_int_for_mode the result for the destination's mode.
3057 PR tree-optimization/84841
3058 * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from
3060 (FLOAT_ONE_CONST_TYPE): Define.
3061 (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0.
3062 (sort_by_operand_rank): Put entries with higher constant_type last
3063 rather than first to match comments.
3065 2018-03-15 Jakub Jelinek <jakub@redhat.com>
3068 * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment
3069 check and use address of target always.
3072 * optabs.c (emit_conditional_move): Pass address of cmode's copy
3073 rather than address of cmode as last argument to prepare_cmp_insn.
3075 2018-03-13 Jakub Jelinek <jakub@redhat.com>
3078 * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of
3079 integer_pow2p@2 and test integer_pow2p in condition.
3080 (A < 0 ? C : 0): Similarly for @1.
3083 * config/i386/i386.md (round<mode>2): For 387 fancy math, disable
3084 pattern if -ftrapping-math -fno-fp-int-builtin-inexact.
3087 * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v
3088 on the last operand.
3090 2018-03-09 Jakub Jelinek <jakub@redhat.com>
3093 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp
3094 temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY.
3097 * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped
3098 decl, use remap_type if we want to use the type.
3100 2018-03-08 Jakub Jelinek <jakub@redhat.com>
3102 PR tree-optimization/84739
3103 * tree-tailcall.c (find_tail_calls): Check call arguments against
3104 DECL_ARGUMENTS (current_function_decl) rather than
3105 DECL_ARGUMENTS (func) when checking for tail recursion.
3107 2018-03-05 Jakub Jelinek <jakub@redhat.com>
3110 * combine.c (combine_simplify_rtx): Don't try to simplify if
3111 if_then_else_cond returned non-NULL, but either true_rtx or false_rtx
3114 2018-06-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
3116 Backport from mainline
3117 2018-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
3119 * config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to
3121 (cmse_check_pointed_object): Likewise.
3123 2018-06-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
3125 Backport from mainline
3126 2018-05-17 Jerome Lambourg <lambourg@adacore.com>
3128 * config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove
3129 #include <stdint.h>. Replace intptr_t with __INTPTR_TYPE__.
3131 2018-06-21 Sebastian Huber <sebastian.huber@embedded-brains.de>
3133 Backport from mainline
3134 2018-06-15 Sebastian Huber <sebastian.huber@embedded-brains.de>
3136 * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom
3137 multilibs for *-*-rtems*.
3138 * config/riscv/t-rtems: New file.
3140 2018-06-19 Max Filippov <jcmvbkbc@gmail.com>
3142 Backport from mainline
3143 2018-06-19 Max Filippov <jcmvbkbc@gmail.com>
3145 * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec
3147 (allocate_stack, frame_blockage, *frame_blockage): New patterns.
3149 2018-06-19 Eric Botcazou <ebotcazou@adacore.com>
3151 * gimplify.c (gimplify_init_constructor): Really never clear for an
3152 incomplete constructor if CONSTRUCTOR_NO_CLEARING is set.
3154 2018-06-18 Martin Sebor <msebor@redhat.com>
3157 * calls.c (alloc_max_size): Correct a logic error/typo.
3158 Treat excessive arguments as infinite. Warn for invalid arguments.
3159 * doc/invoke.texi (-Walloc-size-larger-than): Update.
3161 2018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
3163 Backport from mainline
3164 2018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de>
3166 * config/rtems.h (STDINT_LONG32): Define.
3168 2018-06-11 Peter Bergner <bergner@vnet.ibm.com>
3170 Backport from mainline
3171 2018-06-08 Peter Bergner <bergner@vnet.ibm.com>
3174 * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC
3177 2018-06-07 Peter Bergner <bergner@vnet.ibm.com>
3179 Backport from mainline
3180 2018-06-06 Peter Bergner <bergner@vnet.ibm.com>
3183 * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9.
3184 Don't handle -mcpu=power8 if -mpower9-vector is also used.
3186 2018-06-07 Richard Biener <rguenther@suse.de>
3188 Backport from mainline
3189 2018-05-04 Richard Biener <rguenther@suse.de>
3192 * fold-const.c (negate_expr_p): Restrict negation of operand
3193 zero of a division to when we know that can happen without
3195 (fold_negate_expr_1): Likewise.
3197 2018-05-02 Richard Biener <rguenther@suse.de>
3200 * gimplify.c (gimplify_save_expr): When in SSA form allow
3201 SAVE_EXPRs to compute to SSA vars.
3203 2018-05-02 Richard Biener <rguenther@suse.de>
3205 PR tree-optimization/85597
3206 * tree-vect-stmts.c (vectorizable_operation): For ternary SLP
3207 do not use split vect_get_vec_defs call but call vect_get_slp_defs
3210 2018-06-05 Andreas Krebbel <krebbel@linux.ibm.com>
3212 Backport from mainline
3213 2018-06-05 Andreas Krebbel <krebbel@linux.ibm.com>
3215 * config/s390/s390-builtin-types.def: Add void function type.
3216 * config/s390/s390-builtins.def: Use the function type for the
3219 2018-06-01 Bill Schmidt <wschmidt@linux.ibm.com>
3221 PR tree-optimization/85712
3222 Backport from mainline:
3223 2018-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
3225 PR tree-optimization/85712
3226 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add
3228 (alloc_cand_and_find_basis): Initialize first_interp field.
3229 (slsr_process_mul): Modify first_interp field.
3230 (slsr_process_add): Likewise.
3231 (slsr_process_cast): Modify first_interp field for each new
3233 (slsr_process_copy): Likewise.
3234 (dump_candidate): Dump first_interp field.
3235 (replace_mult_candidate): Process all interpretations, not just
3237 (replace_rhs_if_not_dup): Likewise.
3238 (replace_one_candidate): Likewise.
3240 Backport from mainline:
3241 2018-05-25 Bill Schmidt <wschmidt@linux.ibm.com>
3243 PR tree-optimization/85712
3244 * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if
3245 this candidate has already been replaced in-situ by a copy.
3247 2018-05-24 Uros Bizjak <ubizjak@gmail.com>
3249 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>):
3250 Add {q} suffix to insn mnemonic.
3252 2018-05-24 Uros Bizjak <ubizjak@gmail.com>
3255 * config/i386/sse.md (movdi_to_sse): Do not generate pseudo
3256 when memory input operand is handled.
3258 2018-05-21 Pat Haugen <pthaugen@us.ibm.com>
3260 Backport from mainline
3261 2018-05-17 Pat Haugen <pthaugen@us.ibm.com>
3262 Segher Boessenkool <segher@kernel.crashing.org>
3265 * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check
3268 2018-05-17 Martin Jambor <mjambor@suse.cz>
3270 Backport from mainline
3271 2018-05-11 Martin Jambor <mjambor@suse.cz>
3274 * ipa-cp.c (intersect_with_plats): Check that the lattice contains
3277 2018-05-01 Tom de Vries <tom@codesourcery.com>
3279 backport from trunk:
3280 2018-04-16 Cesar Philippidis <cesar@codesourcery.com>
3281 Tom de Vries <tom@codesourcery.com>
3284 * omp-expand.c (expand_oacc_for): Add dummy false branch for
3285 tiled basic blocks without omp continue statements.
3287 2018-04-26 Richard Biener <rguenther@suse.de>
3289 Backport from mainline
3290 2018-04-09 Richard Biener <rguenther@suse.de>
3292 PR tree-optimization/85284
3293 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
3294 Only use the niter constraining form of simple_iv when the exit
3297 2018-04-06 Richard Biener <rguenther@suse.de>
3300 * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
3301 after seeing a component reference with an adjacent field. Treat
3302 refs to arrays at struct end of external decls similar to
3303 refs to unconstrained commons.
3305 2018-04-04 Richard Biener <rguenther@suse.de>
3307 PR tree-optimization/85168
3308 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid
3309 propagating abnormals.
3311 2018-04-24 Martin Liska <mliska@suse.cz>
3313 Backport from mainline
3314 2018-04-17 Martin Liska <mliska@suse.cz>
3317 * ipa-devirt.c (odr_types_equivalent_p): Remove trailing
3318 in message, remote space in between '_G' and '('.
3320 2018-04-24 Martin Liska <mliska@suse.cz>
3322 Backport from mainline
3323 2018-04-17 Jan Hubicka <jh@suse.cz>
3326 * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields.
3328 2018-04-24 Martin Liska <mliska@suse.cz>
3330 Backport from mainline
3331 2018-03-28 Jakub Jelinek <jakub@redhat.com>
3332 Martin Liska <mliska@suse.cz>
3335 * gimplify.c (asan_poison_variable): Don't do the check for
3336 gimplify_omp_ctxp here.
3337 (gimplify_decl_expr): Do it here.
3338 (gimplify_target_expr): Likewise.
3340 2018-04-24 Martin Liska <mliska@suse.cz>
3342 Backport from mainline
3343 2018-03-21 Martin Liska <mliska@suse.cz>
3346 * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove
3347 not intended return statement.
3349 2018-04-24 Martin Liska <mliska@suse.cz>
3351 Backport from mainline
3352 2018-03-13 Martin Liska <mliska@suse.cz>
3355 * (sem_item_optimizer::sem_item_optimizer): Initialize new
3357 (sem_item_optimizer::~sem_item_optimizer): Release it.
3358 (sem_item_optimizer::merge_classes): Register variable aliases.
3359 (sem_item_optimizer::fixup_pt_set): New function.
3360 (sem_item_optimizer::fixup_points_to_sets): Likewise.
3361 * ipa-icf.h: Declare new variables and functions.
3363 2018-04-23 Aaron Sawdey <acsawdey@linux.ibm.com>
3365 Backport from mainline
3366 2018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com>
3369 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark
3370 vec_extract expression as having side effects to make sure it gets
3373 2018-04-23 Eric Botcazou <ebotcazou@adacore.com>
3376 * expr.c (store_field): In the bitfield case, if the value comes from
3377 a function call and is returned in registers by means of a PARALLEL,
3378 do not change the mode of the temporary unless BLKmode and VOIDmode.
3380 2018-04-20 Peter Bergner <bergner@vnet.ibm.com>
3382 Backport from mainline
3383 2018-03-09 Peter Bergner <bergner@vnet.ibm.com>
3386 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype.
3387 Add strict argument and use it.
3388 (rs6000_split_multireg_move): Update for new strict argument.
3389 (mem_operand_gpr): Disallow all non-offsettable addresses.
3390 * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint.
3392 2018-04-18 Thomas Preud'homme <thomas.preudhomme@arm.com>
3394 Backport from mainline
3395 2018-04-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
3398 * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand
3401 2018-04-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3403 Backport from mainline
3404 2018-04-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3406 * config/s390/s390.c (s390_output_indirect_thunk_function): Check
3407 also for flag_dwarf2_cfi_asm.
3409 2018-04-11 Uros Bizjak <ubizjak@gmail.com>
3411 * config/alpha/alpha.md (stack_probe_internal): Rename
3412 from "probe_stack". Update all callers.
3414 2018-04-11 Thomas Preud'homme <thomas.preudhomme@arm.com>
3416 Backport from mainline
3417 2018-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
3420 * config/arm/arm-builtins.c (arm_expand_builtin): Change
3421 expansion to perform a bitwise AND of the argument followed by a
3422 boolean negation of the result.
3424 2018-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3426 Backport from mainline
3427 2018-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3430 * config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern
3431 as clobbering CC_REGNUM.
3433 2018-04-06 Eric Botcazou <ebotcazou@adacore.com>
3436 * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
3437 based on LABEL_REF. Remove useless assertion.
3438 (pic_address_needs_scratch): Fix formatting.
3439 (sparc_legitimize_pic_address): Minor tweaks.
3440 (sparc_delegitimize_address): Adjust assertion accordingly.
3441 * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
3442 into symbolic_operand.
3443 (movsi_high_pic_label_ref): Likewise.
3444 (movsi_lo_sum_pic_label_ref): Likewise.
3445 (movdi_pic_label_ref): Likewise.
3446 (movdi_high_pic_label_ref): Likewise.
3447 (movdi_lo_sum_pic_label_ref): Likewise.
3449 2018-04-06 Amaan Cheval <amaan.cheval@gmail.com>
3451 * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
3452 custom LIB_SPEC setup.
3454 2018-04-05 Uros Bizjak <ubizjak@gmail.com>
3457 * config/i386/i386.md (define_attr "memory"): Handle rotate1 type.
3459 2018-04-04 Peter Bergner <bergner@vnet.ibm.com>
3461 Backport from mainline
3462 2018-04-04 Peter Bergner <bergner@vnet.ibm.com>
3464 PR rtl-optimization/84878
3465 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine
3466 the basic block. Assert the use reference is not artificial and that
3467 it has an associated insn.
3469 2018-04-03 Uros Bizjak <ubizjak@gmail.com>
3471 * config/i386/i386.c (emit_i387_cw_initialization): Always use logic
3472 instructions when changing rounding bits to preserve precision bits
3473 in the x87 control word.
3475 2018-04-03 Cesar Philippidis <cesar@codesourcery.com>
3477 Backport from mainline
3478 2018-03-27 Cesar Philippidis <cesar@codesourcery.com>
3481 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to
3482 extern array declarations.
3484 2018-04-02 Peter Bergner <bergner@vnet.ibm.com>
3486 Backport from mainline
3487 2018-03-28 Peter Bergner <bergner@vnet.ibm.com>
3490 * config/rs6000/rs6000.h: Update copyright date.
3491 (RS6000_BTM_POWERPC64): New define.
3492 (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64.
3493 * config/rs6000/rs6000.c: Update copyright date.
3494 (rs6000_builtin_mask_calculate): Add support for RS6000_BTM_POWERPC64.
3495 (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64
3496 (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64.
3497 * config/rs6000/rs6000-builtin.def: Update copyright date.
3498 (BU_P7_POWERPC64_MISC_2): New macro definition.
3502 Backport from mainline
3503 2018-03-28 Peter Bergner <bergner@vnet.ibm.com>
3506 * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion.
3507 (DIVWEUO): Likewise.
3509 (DIVDEUO): Likewise.
3510 * config/rs6000/rs6000.c (builtin_function_type): Remove support for
3511 DIVWEUO and DIVDEUO.
3512 * config/rs6000/rs6000.md: Update copyright date.
3513 (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs.
3514 (UNSPEC_DIV_EXTEND): Remove deleted unspecs.
3515 (div_extend): Likewise.
3516 * doc/extend.texi: Update copyright date.
3517 (__builtin_divweo): Remove documentation for deleted builtin function.
3518 (__builtin_divweuo): Likewise.
3519 (__builtin_divdeo): Likewise.
3520 (__builtin_divdeuo): Likewise.
3522 2018-04-02 Peter Bergner <bergner@vnet.ibm.com>
3524 Backport from mainline
3525 2018-03-30 Peter Bergner <bergner@vnet.ibm.com>
3528 * config/rs6000/vsx.md (??r): New mode attribute.
3529 (*vsx_mov<mode>_64bit): Use it.
3530 (*vsx_mov<mode>_32bit): Likewise.
3532 2018-03-29 Sebastian Peryt <sebastian.peryt@intel.com>
3535 * config/i386/avx512vlintrin.h (_mm256_permutexvar_epi64)
3536 (_mm256_permutexvar_epi32, _mm256_permutex_epi64): New intrinsics.
3538 2018-03-29 Sudakshina Das <sudi.das@arm.com>
3540 Backport from mainline
3541 2018-03-22 Sudakshina Das <sudi.das@arm.com>
3544 * config/arm/arm.h (machine_function): Add static_chain_stack_bytes.
3545 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid
3546 re-computing once computed.
3547 (arm_expand_prologue): Compute machine->static_chain_stack_bytes.
3548 (arm_init_machine_status): Initialize
3549 machine->static_chain_stack_bytes.
3551 2018-03-28 Sudakshina Das <sudi.das@arm.com>
3553 2018-03-19 Sudakshina Das <sudi.das@arm.com>
3556 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Modify
3557 instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED.
3559 2018-03-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3561 Backport from mainline
3562 2018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3565 * config/arm/arm.md (unaligned_loadhis): Remove first alternative.
3566 Clean up attributes.
3568 2018-03-28 Segher Boessenkool <segher@kernel.crashing.org>
3570 Backport from mainline
3571 2018-03-08 Segher Boessenkool <segher@kernel.crashing.org>
3574 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put
3575 readonly data in sdata, if that is disabled.
3576 * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option.
3577 * doc/invoke.texi (RS/6000 and PowerPC Options): Document
3578 -mreadonly-in-sdata option.
3580 2018-03-27 Sudakshina Das <sudi.das@arm.com>
3582 Backport from mainline:
3583 2018-03-20 Sudakshina Das <sudi.das@arm.com>
3586 * config/arm/neon.md (ashldi3_neon): Update ?s for constraints
3587 to favor GPR over NEON registers.
3588 (<shift>di3_neon): Likewise.
3590 2018-03-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3592 Backport from mainline
3593 2018-03-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3596 * config/arm/arm.c (arm_array_mode_supported_p): Return false for
3599 2018-03-23 Peter Bergner <bergner@vnet.ibm.com>
3601 Backport from mainline
3602 2018-03-20 Peter Bergner <bergner@vnet.ibm.com>
3605 * config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn.
3606 (altivec_lvx_<mode>_1op): Likewise.
3607 (altivec_stvx_<mode>_2op): Likewise.
3608 (altivec_stvx_<mode>_1op): Likewise.
3609 (altivec_lvx_<VM2:mode>): New define_expand.
3610 (altivec_stvx_<VM2:mode>): Likewise.
3611 (altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn.
3612 (altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
3613 (altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise.
3614 (altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise.
3615 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise.
3616 (altivec_expand_stv_builtin): Likewise.
3617 (altivec_expand_builtin): Likewise.
3618 * config/rs6000/vector.md: Likewise.
3620 2018-03-23 Carl Love <cel@us.ibm.com>
3622 Backport from mainline:
3623 2018-03-14 Carl Love <cel@us.ibm.com>
3625 * config/rs6000/r6000.c (rtx_is_swappable_p): Add case UNSPEC_VPERMXOR.
3627 2018-03-22 Tom de Vries <tom@codesourcery.com>
3629 backport from trunk:
3630 2018-03-22 Tom de Vries <tom@codesourcery.com>
3632 PR tree-optimization/84956
3633 * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with
3634 bb_has_abnormal_pred.
3636 2018-03-19 H.J. Lu <hongjiu.lu@intel.com>
3638 Backport from mainline
3639 2018-03-15 H.J. Lu <hongjiu.lu@intel.com>
3642 * config/i386/i386.c (indirect_thunk_needed): Update comments.
3643 (indirect_thunk_bnd_needed): Likewise.
3644 (indirect_thunks_used): Likewise.
3645 (indirect_thunks_bnd_used): Likewise.
3646 (indirect_return_needed): New.
3647 (indirect_return_bnd_needed): Likewise.
3648 (output_indirect_thunk_function): Add a bool argument for
3650 (output_indirect_thunk_function): Don't generate alias for
3651 function return thunk.
3652 (ix86_code_end): Call output_indirect_thunk_function to generate
3653 function return thunks.
3654 (ix86_output_function_return): Set indirect_return_bnd_needed
3655 and indirect_return_needed instead of indirect_thunk_bnd_needed
3656 and indirect_thunk_needed.
3658 2018-03-14 John David Anglin <danglin@gcc.gnu.org>
3661 * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload
3662 insn for floating-point loads and stores.
3664 2018-03-12 Jonathan Wakely <jwakely@redhat.com>
3666 * doc/invoke.texi (-mclflushopt): Fix spelling of option.
3668 2018-03-12 Richard Sandiford <richard.sandiford@linaro.org>
3670 PR tree-optimization/84485
3671 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Return
3672 true for zero dependence distances if the step might be zero,
3673 and if there is no metadata that guarantees correctness.
3674 (vect_analyze_data_ref_access): Check safelen as well as
3677 2018-03-11 John David Anglin <danglin@gcc.gnu.org>
3679 Backport from mainline
3680 2018-02-14 John David Anglin <danglin@gcc.gnu.org>
3683 * config/pa/pa.md: Load address of PIC label using the linkage table
3684 if the label is nonlocal.
3686 Backport from mainline
3687 2018-03-06 John David Anglin <danglin@gcc.gnu.org>
3689 * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use
3691 (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change.
3692 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
3693 * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above.
3695 2018-03-09 Kugan Vivekanandarajah <kuganv@linaro.org>
3697 Backport from mainline
3698 2017-09-13 Kugan Vivekanandarajah <kuganv@linaro.org>
3700 * config/aarch64/aarch64.c (aarch64_override_options_after_change_1):
3701 Disable pc relative literal load irrespective of
3702 TARGET_FIX_ERR_A53_84341 for default.
3704 2018-03-06 Denis Chertykov <chertykov@gmail.com>
3706 Backport from mainline
3707 2018-02-07 Georg-Johann Lay <avr@gjlay.de>
3710 * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros.
3711 * config/avr/avr.md: Only post-reload split REG-REG moves if
3712 either register is GENERAL_REG_P.
3714 2018-03-06 Carl Love <cel@us.ibm.com>
3716 Backport from mainline
3717 2/16/18 commit 257748 Carl Love <cel@us.ibm.com>
3719 * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b.
3720 * config/rs6000/rs6000-builtin.def: Remove macro expansion for
3721 VINSERT4B_DI and VINSERT4B.
3722 * config/rs6000/rs6000.c: Remove case statements for
3723 P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI,
3724 and P9V_BUILTIN_VEC_VINSERT4B.
3725 * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for
3726 P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B.
3727 * config/rs6000/vsx.md: Remove define_expand vinsert4b,
3728 define_insn *vinsert4b_internal, define_insn "*vinsert4b_di_internal.
3729 * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for
3732 2018-03-06 Martin Liska <mliska@suse.cz>
3734 Backport from mainline
3735 2018-02-20 Martin Liska <mliska@suse.cz>
3739 * final.c (shorten_branches): Build align_tab array with one
3741 * opts.c (finish_options): Add alignment option limit check.
3742 (MAX_CODE_ALIGN): Likewise.
3743 (MAX_CODE_ALIGN_VALUE): Likewise.
3744 * doc/invoke.texi: Document maximum allowed option value for
3745 all -falign-* options.
3747 2018-03-06 Martin Liska <mliska@suse.cz>
3749 Backport from mainline
3750 2018-02-19 Martin Liska <mliska@suse.cz>
3753 * doc/invoke.texi: Fix typo.
3754 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise.
3756 2018-03-06 Martin Liska <mliska@suse.cz>
3758 Backport from mainline
3759 2018-02-05 Martin Liska <mliska@suse.cz>
3761 PR gcov-profile/84137
3762 * doc/gcov.texi: Fix typo in documentation.
3764 2018-03-06 Martin Liska <mliska@suse.cz>
3766 Backport from mainline
3767 2018-02-05 Martin Liska <mliska@suse.cz>
3769 PR gcov-profile/83879
3770 * doc/gcov.texi: Document necessity of --dynamic-list-data when
3771 using dlopen functionality.
3773 2018-03-06 Martin Liska <mliska@suse.cz>
3775 Backport from mainline
3776 2017-12-19 Martin Liska <mliska@suse.cz>
3778 PR rtl-optimization/82675
3779 * loop-unroll.c (unroll_loop_constant_iterations): Allocate one
3780 more element in sbitmap.
3782 2018-03-06 Martin Liska <mliska@suse.cz>
3784 Backport from mainline
3785 2018-03-05 Martin Liska <mliska@suse.cz>
3787 * ipa-utils.c (ipa_merge_profiles): Do not merge alias or
3788 a function without profile.
3790 2018-03-06 Martin Liska <mliska@suse.cz>
3792 Backport from mainline
3793 2018-02-21 Jan Hubicka <hubicka@ucw.cz>
3796 * ipa-cp.c (determine_versionability): Do not version functions caling
3799 2018-03-06 Martin Liska <mliska@suse.cz>
3801 Backport from mainline
3802 2018-02-08 Jan Hubicka <hubicka@ucw.cz>
3805 * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare
3806 * symtab.c: Include builtins.h
3807 (symtab_node::output_to_lto_symbol_table_p): Move here
3808 from lto-streamer-out.c:output_symbol_p.
3809 * lto-streamer-out.c (write_symbol): Turn early exit to assert.
3810 (output_symbol_p): Move all logic to symtab.c
3811 (produce_symtab): Update.
3813 2018-03-06 Peter Bergner <bergner@vnet.ibm.com>
3815 Backport from mainline
3816 2018-02-22 Vladimir Makarov <vmakarov@redhat.com>
3819 * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
3820 * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
3822 * lra-constraints.c (curr_insn_transform): Set up
3823 LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use
3825 (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
3826 * lra-eliminations.c (spill_pseudos): Ditto.
3827 (process_insn_for_elimination): Ditto.
3828 * lra-lives.c (reg_early_clobber_p): Use the new macros.
3829 * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
3830 LRA_NON_CLOBBERED_ALT.
3832 2018-03-06 Richard Biener <rguenther@suse.de>
3834 Backport from mainline
3835 2018-03-05 Richard Biener <rguenther@suse.de>
3837 PR tree-optimization/84486
3838 * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code.
3839 When inserting a __builtin_assume_aligned call set the LHS
3840 SSA name alignment info accordingly.
3842 2018-02-28 Richard Biener <rguenther@suse.de>
3845 * genmatch.c (capture_info::walk_match): Do not mark
3846 captured expressions without operands as expr_p given
3847 they act more like predicates and should be subject to
3848 "lost tail" side-effect preserving.
3850 2018-03-05 Jakub Jelinek <jakub@redhat.com>
3853 * config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with
3855 (*<plusminus_insn><mode>3): Likewise. Remove <mask_operand3> uses.
3857 2018-03-03 Jakub Jelinek <jakub@redhat.com>
3859 Backported from mainline
3860 2018-03-02 Jakub Jelinek <jakub@redhat.com>
3861 Richard Biener <rguenther@suse.de>
3864 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics
3865 for error or warning attributes if CALL_FROM_THUNK_P is set.
3868 2018-03-02 Jakub Jelinek <jakub@redhat.com>
3871 * config/i386/i386.c (ix86_print_operand): Use conditional
3872 output_operand_lossage instead of gcc_assert if CONST_VECTOR is not
3875 2018-02-23 Jakub Jelinek <jakub@redhat.com>
3877 * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and
3878 p->max as pointers rather than using iterative_hash_expr.
3880 2017-11-10 Jakub Jelinek <jakub@redhat.com>
3883 * gimple-ssa-store-merging.c
3884 (pass_store_merging::terminate_all_aliasing_chains): For
3885 gimple_store_p stmts also call refs_output_dependent_p.
3887 2018-02-19 Jakub Jelinek <jakub@redhat.com>
3890 * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t)
3893 2018-02-16 Jakub Jelinek <jakub@redhat.com>
3896 * ipa-inline.c (inline_small_functions): Fix a typo.
3898 2018-02-13 Jakub Jelinek <jakub@redhat.com>
3901 * stor-layout.c (place_field): For variable length fields, adjust
3902 offset_align afterwards not just based on the field's alignment,
3903 but also on the size.
3905 2018-02-10 Jakub Jelinek <jakub@redhat.com>
3908 * omp-low.c (maybe_remove_omp_member_access_dummy_vars,
3909 remove_member_access_dummy_vars): New functions.
3910 (lower_omp_for, lower_omp_taskreg, lower_omp_target,
3911 lower_omp_1, execute_lower_omp): Use them.
3913 PR rtl-optimization/84308
3914 * shrink-wrap.c (spread_components): Release todo vector.
3916 2018-02-09 Jakub Jelinek <jakub@redhat.com>
3919 * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS,
3920 STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like
3923 2018-02-09 Marek Polacek <polacek@redhat.com>
3924 Jakub Jelinek <jakub@redhat.com>
3927 * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro.
3928 Formatting fixes. Verify first that tree_fits_shwi_p (op01).
3929 Sync some changes from cxx_fold_indirect_ref.
3931 2018-02-07 Jakub Jelinek <jakub@redhat.com>
3933 * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for
3934 *DIV_EXPR and *MOD_EXPR.
3936 2018-02-01 Jakub Jelinek <jakub@redhat.com>
3938 PR tree-optimization/81661
3939 PR tree-optimization/84117
3940 * tree-eh.h (rewrite_to_non_trapping_overflow): Declare.
3941 * tree-eh.c: Include gimplify.h.
3942 (find_trapping_overflow, replace_trapping_overflow,
3943 rewrite_to_non_trapping_overflow): New functions.
3944 * tree-vect-loop.c: Include tree-eh.h.
3945 (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow.
3947 2018-01-30 Jakub Jelinek <jakub@redhat.com>
3949 PR rtl-optimization/83986
3950 * sched-deps.c (sched_analyze_insn): For frame related insns, add anti
3951 dependence against last_pending_memory_flush in addition to
3954 2018-01-27 Jakub Jelinek <jakub@redhat.com>
3957 * sched-deps.c (sched_macro_fuse_insns): Return immediately if
3960 2018-01-24 Jakub Jelinek <jakub@redhat.com>
3963 * tree-inline.c (tree_function_versioning): Remove "omp declare simd"
3964 attributes from DECL_ATTRIBUTES (new_decl) without affecting
3965 DECL_ATTRIBUTES (old_decl).
3967 2018-01-20 Jakub Jelinek <jakub@redhat.com>
3970 * tree-emutls.c: Include gimplify.h.
3971 (lower_emutls_2): New function.
3972 (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree
3973 with lower_emutls_2 callback finds some TLS decl in it, unshare_expr
3974 it before further processing.
3977 * simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use
3978 UINTVAL (trueop1) instead of INTVAL (op1).
3980 2018-01-09 Jakub Jelinek <jakub@redhat.com>
3982 PR preprocessor/83722
3983 * gcc.c (try_generate_repro): Pass
3984 &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than
3985 &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to
3988 2018-01-05 Jakub Jelinek <jakub@redhat.com>
3990 PR tree-optimization/83605
3991 * gimple-ssa-strength-reduction.c: Include tree-eh.h.
3992 (find_candidates_dom_walker::before_dom_children): Ignore stmts that
3995 2018-03-01 H.J. Lu <hongjiu.lu@intel.com>
3997 Backport from mainline
3998 2018-02-26 H.J. Lu <hongjiu.lu@intel.com>
4001 * config/i386/constraints.md (Bs): Replace
4002 ix86_indirect_branch_register with
4003 TARGET_INDIRECT_BRANCH_REGISTER.
4005 * config/i386/i386.md (indirect_jump): Likewise.
4006 (tablejump): Likewise.
4007 (*sibcall_memory): Likewise.
4008 (*sibcall_value_memory): Likewise.
4009 Peepholes of indirect call and jump via memory: Likewise.
4010 (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER.
4011 (*sibcall_value_GOT_32): Likewise.
4012 * config/i386/predicates.md (indirect_branch_operand): Likewise.
4013 (GOT_memory_operand): Likewise.
4014 (call_insn_operand): Likewise.
4015 (sibcall_insn_operand): Likewise.
4016 (GOT32_symbol_operand): Likewise.
4017 * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New.
4019 2018-03-01 H.J. Lu <hongjiu.lu@intel.com>
4021 Backport from mainline
4022 2018-02-26 H.J. Lu <hongjiu.lu@intel.com>
4024 * config/i386/i386.c (ix86_output_indirect_jmp): Update comments.
4026 2018-02-26 H.J. Lu <hongjiu.lu@intel.com>
4029 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove
4031 (ix86_output_indirect_function_return): New prototype.
4032 (ix86_split_simple_return_pop_internal): Likewise.
4033 * config/i386/i386.c (indirect_return_via_cx): New.
4034 (indirect_return_via_cx_bnd): Likewise.
4035 (indirect_thunk_name): Handle return va CX_REG.
4036 (output_indirect_thunk_function): Create alias for
4037 __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd.
4038 (ix86_output_indirect_jmp): Remove the bool argument.
4039 (ix86_output_indirect_function_return): New function.
4040 (ix86_split_simple_return_pop_internal): Likewise.
4041 * config/i386/i386.md (*indirect_jump): Don't pass false
4042 to ix86_output_indirect_jmp.
4043 (*tablejump_1): Likewise.
4044 (simple_return_pop_internal): Change it to define_insn_and_split.
4045 Call ix86_split_simple_return_pop_internal to split it for
4047 (simple_return_indirect_internal): Call
4048 ix86_output_indirect_function_return instead of
4049 ix86_output_indirect_jmp.
4051 2017-03-02 Thomas Schwinge <thomas@codesourcery.com>
4053 Backport from trunk r256891:
4054 2018-01-19 Cesar Philippidis <cesar@codesourcery.com>
4057 * config/nvptx/nvptx.c (output_init_frag): Don't use generic address
4058 spaces for function labels.
4060 2018-02-26 Carl Love <cel@us.ibm.com>
4062 Backport from mainline: commit 257747 on 2018-02-16.
4064 * config/rs6000/altivec.h: Add builtin names vec_extract4b
4066 * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B
4068 * config/rs6000/rs6000-c.c: Add the definitions for
4069 P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B.
4070 * config/rs6000/rs6000.c (altivec_expand_builtin): Add
4071 P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements.
4072 * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand
4073 definition for insert4b and define insn *insert3b_internal.
4074 * doc/extend.texi: Add documentation for vec_extract4b.
4076 2018-02-26 Eric Botcazou <ebotcazou@adacore.com>
4078 PR rtl-optimization/83496
4079 * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from
4080 booleans to RTXes. Call fix_reg_dead_note on every non-null element.
4081 (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a
4082 redundant insn, if any.
4083 (relax_delay_slots): Likewise.
4084 (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN.
4086 2018-02-22 Sudakshina Das <sudi.das@arm.com>
4087 Bin Cheng <bin.cheng@arm.com>
4089 Backport from mainline:
4090 2017-12-14 Sudakshina Das <sudi.das@arm.com>
4091 Bin Cheng <bin.cheng@arm.com>
4094 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Move LTGT to
4096 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_cmp_result>): Add
4099 2018-02-16 Jozef Lawrynowicz <jozefl.gcc@gmail.com>
4102 * machmode.def: Define a complex mode for PARTIAL_INT.
4103 * genmodes.c (complex_class): Return MODE_COMPLEX_INT for
4105 * doc/rtl.texi: Document CSPImode.
4106 * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode
4108 (msp430_hard_regno_nregs_with_padding): Likewise.
4110 2018-02-16 Sudakshina Das <sudi.das@arm.com>
4113 2018-01-10 Sudakshina Das <sudi.das@arm.com>
4116 * expmed.c (emit_store_flag_force): Swap if const op0
4117 and change VOIDmode to mode of op0.
4119 2018-02-16 Richard Biener <rguenther@suse.de>
4121 PR tree-optimization/84190
4122 * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch
4123 volatile accesses if the decl isn't volatile.
4125 2018-02-15 Michael Meissner <meissner@linux.vnet.ibm.com>
4127 Back port from trunk
4128 2018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com>
4131 * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2):
4132 Convert from define_expand to be define_insn_and_split. Rework
4133 float/double/_Float128 conversions to QI/HI/SImode to work with
4134 both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where
4135 conversions to QI/HImode types did a store and then a load to
4136 truncate the value. For conversions to VSX registers, don't split
4137 the insn, instead emit the code directly. Use the code iterator
4138 any_fix to combine signed and unsigned conversions.
4139 (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise.
4140 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise.
4141 (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise.
4142 (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise.
4143 (fix_<mode>di2_hw): Likewise.
4144 (fixuns_<mode>di2_hw): Likewise.
4145 (fix_<mode>si2_hw): Likewise.
4146 (fixuns_<mode>si2_hw): Likewise.
4147 (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise.
4148 (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise.
4149 (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to
4150 fix<uns>_trunc<SFDF:mode>si2_p8.
4151 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer
4153 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise.
4154 (fix<uns>_<mode>_mem): Likewise.
4155 (fctiw<u>z_<mode>_mem): Likewise.
4156 (fix<uns>_<mode>_mem): Likewise.
4157 (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent
4158 the register allocator from doing a direct move to the GPRs to do
4159 a store, and instead use the ISA 3.0 store byte/half-word from
4160 vector register instruction. For IEEE 128-bit floating point,
4161 also optimize stores of 32-bit ints.
4162 (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise.
4164 2018-02-15 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4166 Back port from mainline
4167 2018-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4170 * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return
4173 2018-02-14 Peter Bergner <bergner@vnet.ibm.com>
4175 Back port from mainline
4176 2018-02-13 Peter Bergner <bergner@vnet.ibm.com>
4179 * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses.
4181 2018-02-14 Martin Jambor <mjambor@suse.cz>
4184 * ipa-prop.c (ipa_modify_call_arguments): Use location of call
4185 statements, also set location of a load to a temporary.
4187 2018-02-10 John David Anglin <danglin@gcc.gnu.org>
4189 * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as
4192 Backport from mainline
4193 2018-02-01 Aldy Hernandez <aldyh@redhat.com>
4196 * config/pa/predicates.md (base14_operand): Handle VOIDmode.
4198 2018-02-09 Martin Jambor <mjambor@suse.cz>
4200 Backport from mainline
4201 2018-02-08 Martin Jambor <mjambor@suse.cz>
4203 * hsa-gen.c (get_symbol_for_decl): Set program allocation for
4204 static local variables.
4206 2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4208 Backport from mainline
4209 2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4212 * config/s390/s390.c (s390_set_current_function): Invoke
4213 s390_indirect_branch_settings also if fndecl didn't change.
4215 2018-02-08 Iain Sandoe <iain@codesourcery.com>
4218 * config/rs6000/altivec.md (*restore_world): Remove LR use.
4219 * config/rs6000/predicates.md (restore_world_operation): Adjust op
4220 count, remove one USE.
4222 2018-02-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4224 Backport from mainline
4225 2018-02-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4227 * config/s390/s390-opts.h (enum indirect_branch): Define.
4228 * config/s390/s390-protos.h (s390_return_addr_from_memory)
4229 (s390_indirect_branch_via_thunk)
4230 (s390_indirect_branch_via_inline_thunk): Add function prototypes.
4231 (enum s390_indirect_branch_type): Define.
4232 * config/s390/s390.c (struct s390_frame_layout, struct
4233 machine_function): Remove.
4234 (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask)
4235 (indirect_branch_table_label_no, indirect_branch_table_name):
4237 (INDIRECT_BRANCH_NUM_OPTIONS): Define macro.
4238 (enum s390_indirect_branch_option): Define.
4239 (s390_return_addr_from_memory): New function.
4240 (s390_handle_string_attribute): New function.
4241 (s390_attribute_table): Add new attribute handler.
4242 (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns.
4243 (s390_indirect_branch_via_thunk): New function.
4244 (s390_indirect_branch_via_inline_thunk): New function.
4245 (s390_function_ok_for_sibcall): When jumping via thunk disallow
4246 sibling call optimization for non z10 compiles.
4247 (s390_emit_call): Force indirect branch target to be a single
4248 register. Add r1 clobber for non-z10 compiles.
4249 (s390_emit_epilogue): Emit return jump via return_use expander.
4250 (s390_reorg): Handle JUMP_INSNs as execute targets.
4251 (s390_option_override_internal): Perform validity checks for the
4252 new command line options.
4253 (s390_indirect_branch_attrvalue): New function.
4254 (s390_indirect_branch_settings): New function.
4255 (s390_set_current_function): Invoke s390_indirect_branch_settings.
4256 (s390_output_indirect_thunk_function): New function.
4257 (s390_code_end): Implement target hook.
4258 (s390_case_values_threshold): Implement target hook.
4259 (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target
4261 * config/s390/s390.h (struct s390_frame_layout)
4262 (struct machine_function): Move here from s390.c.
4263 (TARGET_INDIRECT_BRANCH_NOBP_RET)
4264 (TARGET_INDIRECT_BRANCH_NOBP_JUMP)
4265 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK)
4266 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK)
4267 (TARGET_INDIRECT_BRANCH_NOBP_CALL)
4268 (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE)
4269 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL)
4270 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX)
4271 (TARGET_INDIRECT_BRANCH_TABLE): Define macros.
4272 * config/s390/s390.md (UNSPEC_EXECUTE_JUMP)
4273 (INDIRECT_BRANCH_THUNK_REGNUM): Define constants.
4274 (mnemonic attribute): Add values which aren't recognized
4276 ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable
4277 pattern for branch conversion. Fix mnemonic attribute.
4278 ("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit
4279 indirect branch via thunk if requested.
4280 ("indirect_jump", "<code>"): Expand patterns for branch conversion.
4281 ("*indirect_jump"): Disable for branch conversion using out of
4283 ("indirect_jump_via_thunk<mode>_z10")
4284 ("indirect_jump_via_thunk<mode>")
4285 ("indirect_jump_via_inlinethunk<mode>_z10")
4286 ("indirect_jump_via_inlinethunk<mode>", "*casesi_jump")
4287 ("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>")
4288 ("casesi_jump_via_inlinethunk<mode>_z10")
4289 ("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10")
4290 ("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10")
4291 ("*basr_r_via_thunk", "return<mode>_prez10"): New pattern.
4292 ("*indirect2_jump"): Disable for branch conversion.
4293 ("casesi_jump"): Turn into expander and expand patterns for branch
4295 ("return_use"): New expander.
4296 ("*return"): Emit return via thunk and rename it to ...
4297 ("*return<mode>"): ... this one.
4298 * config/s390/s390.opt: Add new options and and enum for the
4301 2018-02-08 Richard Biener <rguenther@suse.de>
4303 PR tree-optimization/84233
4304 * tree-ssa-phiprop.c (propagate_with_phi): Use separate
4305 changed flag instead of boguously re-using phi_inserted.
4307 2018-02-07 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4309 Backport from mainline
4310 2018-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4312 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4313 Display warning message for -mno-speculate-indirect-jumps.
4315 2018-02-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4317 Backport from mainline
4318 2018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4321 * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86.
4322 * configure: Regenerate.
4324 2018-02-05 Peter Bergner <bergner@vnet.ibm.com>
4326 Back port from mainline
4327 2018-02-01 Peter Bergner <bergner@vnet.ibm.com>
4331 * config/rs6000/driver-rs6000.c: #include "diagnostic.h".
4333 (rs6000_supported_cpu_names): New static variable.
4334 (linux_cpu_translation_table): Likewise.
4335 (elf_platform) <cpu>: Define new static variable and use it.
4336 Translate kernel AT_PLATFORM name to canonical name if needed.
4337 Error if platform name is unknown.
4339 2018-02-02 H.J. Lu <hongjiu.lu@intel.com>
4341 Backport from mainline
4342 2018-02-02 H.J. Lu <hongjiu.lu@intel.com>
4344 * config/i386/i386.c (ix86_output_function_return): Pass
4345 INVALID_REGNUM, instead of -1, as invalid register number to
4346 indirect_thunk_name and output_indirect_thunk.
4348 2018-02-01 Uros Bizjak <ubizjak@gmail.com>
4350 Backport from mainline
4351 2018-01-31 Uros Bizjak <ubizjak@gmail.com>
4353 PR rtl-optimization/84123
4354 * combine.c (change_zero_ext): Check if hard register satisfies
4355 can_change_dest_mode before calling gen_lowpart_SUBREG.
4357 2018-02-01 Renlin Li <renlin.li@arm.com>
4359 Backport from mainline
4360 2018-02-01 Renlin Li <renlin.li@arm.com>
4363 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle
4365 (aarch64_register_move_cost): Likewise.
4366 * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to
4368 (REG_CLASS_NAMES): Likewise.
4369 (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to
4370 TAILCALL_ADDR_REGS. Remove IP registers.
4371 * config/aarch64/aarch64.md (Ucs): Update register constraint.
4373 2018-02-01 Richard Biener <rguenther@suse.de>
4375 Backport from mainline
4376 2017-11-02 Richard Biener <rguenther@suse.de>
4378 PR tree-optimization/82795
4379 * tree-if-conv.c (predicate_mem_writes): Remove bogus assert.
4381 2018-01-31 Richard Biener <rguenther@suse.de>
4382 Kelvin Nilsen <kelvin@gcc.gnu.org>
4384 Backport from mainline
4385 2018-01-29 Richard Biener <rguenther@suse.de>
4386 Kelvin Nilsen <kelvin@gcc.gnu.org>
4389 * tree-vect-stmts.c (vectorizable_call): Don't call
4390 targetm.vectorize_builtin_md_vectorized_function if callee is
4393 2018-01-31 Eric Botcazou <ebotcazou@adacore.com>
4395 PR rtl-optimization/84071
4396 * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case.
4397 * doc/tm.texi: Regenerate.
4399 2018-01-31 Eric Botcazou <ebotcazou@adacore.com>
4401 PR rtl-optimization/84071
4402 * combine.c (record_dead_and_set_regs_1): Record the source unmodified
4403 for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target.
4405 2018-01-29 Joseph Myers <joseph@codesourcery.com>
4407 Backport from mainline
4408 2018-01-24 Joseph Myers <joseph@codesourcery.com>
4411 * config/m68k/m68k.c (m68k_promote_function_mode): New function.
4412 (TARGET_PROMOTE_FUNCTION_MODE): New macro.
4414 2018-01-29 Uros Bizjak <ubizjak@gmail.com>
4416 Backport from mainline
4417 2018-01-26 Uros Bizjak <ubizjak@gmail.com>
4420 * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber
4421 to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives.
4423 2018-01-29 Alan Modra <amodra@gmail.com>
4425 Backport from mainline
4426 2018-01-26 Alan Modra <amodra@gmail.com>
4428 * config/rs6000/rs6000.c (rtx_is_swappable_p): Exclude
4431 2018-01-27 H.J. Lu <hongjiu.lu@intel.com>
4433 Backport from mainline
4434 2018-01-27 H.J. Lu <hongjiu.lu@intel.com>
4436 * doc/invoke.texi: Replace -mfunction-return==@var{choice} with
4437 -mfunction-return=@var{choice}.
4439 2018-01-27 H.J. Lu <hongjiu.lu@intel.com>
4441 Backport from mainline
4442 2018-01-23 H.J. Lu <hongjiu.lu@intel.com>
4445 * config/i386/i386.c (ix86_expand_prologue): Use cost reference
4446 of struct ix86_frame.
4447 (ix86_expand_epilogue): Likewise. Add a local variable for
4448 the reg_save_offset field in struct ix86_frame.
4450 2018-01-26 Jakub Jelinek <jakub@redhat.com>
4452 PR rtl-optimization/83985
4453 * dce.c (deletable_insn_p): Return false for separate shrink wrapping
4454 REG_CFA_RESTORE insns.
4455 (delete_unmarked_insns): Don't ignore separate shrink wrapping
4456 REG_CFA_RESTORE insns here.
4458 2018-01-25 Uros Bizjak <ubizjak@gmail.com>
4460 Backport from mainline
4461 2018-01-17 Uros Bizjak <ubizjak@gmail.com>
4463 * config/i386/i386.c (indirect_thunk_name): Declare regno
4464 as unsigned int. Compare regno with INVALID_REGNUM.
4465 (output_indirect_thunk): Ditto.
4466 (output_indirect_thunk_function): Ditto.
4467 (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM
4468 in the call to output_indirect_thunk_function.
4470 2018-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
4472 Back port from trunk
4473 2018-01-22 Michael Meissner <meissner@linux.vnet.ibm.com>
4476 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete,
4478 * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise.
4479 * config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE
4480 128-bit to produce an UNSPEC move to get the double word with the
4481 signbit and then a shift directly to do signbit.
4482 (signbit<mode>2_dm): Replace old IEEE 128-bit signbit
4483 implementation with a new version that just does either a direct
4484 move or a regular move. Move memory interface to separate insns.
4485 Move insns so they are next to the expander.
4486 (signbit<mode>2_dm_mem_be): New combiner insns to combine load
4487 with signbit move. Split big and little endian case.
4488 (signbit<mode>2_dm_mem_le): Likewise.
4489 (signbit<mode>2_dm_<su>ext): Delete, no longer used.
4490 (signbit<mode>2_dm2): Likewise.
4492 2018-01-25 Peter Bergner <bergner@vnet.ibm.com>
4494 Back port from mainline
4495 2018-01-10 Peter Bergner <bergner@vnet.ibm.com>
4498 * config/rs6000/rs6000.c (print_operand) <'y'>: Use
4499 VECTOR_MEM_ALTIVEC_OR_VSX_P.
4500 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use
4501 indexed_or_indirect_operand predicate.
4502 (*vsx_le_perm_load_<mode> for VSX_W): Likewise.
4503 (*vsx_le_perm_load_v8hi): Likewise.
4504 (*vsx_le_perm_load_v16qi): Likewise.
4505 (*vsx_le_perm_store_<mode> for VSX_D): Likewise.
4506 (*vsx_le_perm_store_<mode> for VSX_W): Likewise.
4507 (*vsx_le_perm_store_v8hi): Likewise.
4508 (*vsx_le_perm_store_v16qi): Likewise.
4509 (eight unnamed splitters): Likewise.
4511 2018-01-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4513 Backport from mainline
4514 2018-01-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4516 * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store):
4518 (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a
4519 swap associated with both a load and a store.
4521 2018-01-25 Richard Biener <rguenther@suse.de>
4523 * BASE-VER: Increment to 7.3.1.
4525 2018-01-25 Release Manager
4527 * GCC 7.3.0 released.
4529 2018-01-23 Eric Botcazou <ebotcazou@adacore.com>
4531 PR rtl-optimization/81443
4532 * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
4533 from inner REGs to paradoxical SUBREGs.
4535 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4537 Backport from mainline
4538 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4539 David Edelsohn <dje.gcc@gmail.com>
4542 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
4543 Change "crset eq" to "crset 2".
4544 (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
4545 (*call_indirect_aix<mode>_nospec): Likewise.
4546 (*call_value_indirect_aix<mode>_nospec): Likewise.
4547 (*call_indirect_elfv2<mode>_nospec): Likewise.
4548 (*call_value_indirect_elfv2<mode>_nospec): Likewise.
4549 (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
4550 change assembly output from . to $.
4551 (*sibcall_value_nonlocal_sysv<mode>): Likewise.
4552 (indirect_jump<mode>_nospec): Change assembly output from . to $.
4553 (*tablejump<mode>_internal1_nospec): Likewise.
4555 2018-01-21 Oleg Endo <olegendo@gcc.gnu.org>
4557 Backport from mainline
4558 2018-01-21 Oleg Endo <olegendo@gcc.gnu.org>
4561 * config/sh/sh_optimize_sett_clrt.cc:
4562 Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
4564 2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4566 Backport from mainline
4567 2018-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4569 * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
4570 -mspeculate-indirect-jumps.
4571 * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
4572 for -mno-speculate-indirect-jumps.
4573 (*call_indirect_elfv2<mode>_nospec): New define_insn.
4574 (*call_value_indirect_elfv2<mode>): Disable for
4575 -mno-speculate-indirect-jumps.
4576 (*call_value_indirect_elfv2<mode>_nospec): New define_insn.
4577 (indirect_jump): Emit different RTL for
4578 -mno-speculate-indirect-jumps.
4579 (*indirect_jump<mode>): Disable for
4580 -mno-speculate-indirect-jumps.
4581 (*indirect_jump<mode>_nospec): New define_insn.
4582 (tablejump): Emit different RTL for
4583 -mno-speculate-indirect-jumps.
4584 (tablejumpsi): Disable for -mno-speculate-indirect-jumps.
4585 (tablejumpsi_nospec): New define_expand.
4586 (tablejumpdi): Disable for -mno-speculate-indirect-jumps.
4587 (tablejumpdi_nospec): New define_expand.
4588 (*tablejump<mode>_internal1): Disable for
4589 -mno-speculate-indirect-jumps.
4590 (*tablejump<mode>_internal1_nospec): New define_insn.
4591 * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
4594 Backport from mainline
4595 2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4597 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
4598 Generate different code for -mno-speculate-indirect-jumps.
4599 (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
4600 (*call_indirect_aix<mode>): Disable for
4601 -mno-speculate-indirect-jumps.
4602 (*call_indirect_aix<mode>_nospec): New define_insn.
4603 (*call_value_indirect_aix<mode>): Disable for
4604 -mno-speculate-indirect-jumps.
4605 (*call_value_indirect_aix<mode>_nospec): New define_insn.
4606 (*sibcall_nonlocal_sysv<mode>): Generate different code for
4607 -mno-speculate-indirect-jumps.
4608 (*sibcall_value_nonlocal_sysv<mode>): Likewise.
4610 2018-01-17 Richard Biener <rguenther@suse.de>
4612 Backport from mainline
4613 2017-12-18 Richard Biener <rguenther@suse.de>
4615 PR tree-optimization/81877
4616 * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
4617 (outermost_indep_loop): Adjust.
4618 (ref_indep_loop_p_1): Likewise. Remove safelen handling again.
4619 (can_sm_ref_p): Adjust.
4621 2017-12-08 Richard Biener <rguenther@suse.de>
4624 * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
4625 handle accesses outside of zero-sized vars.
4627 2018-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4629 Backport from mailine
4630 2018-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4633 * config/arm/iterators.md (VF): New mode iterator.
4634 * config/arm/neon.md (neon_vabd<mode>_2): Use the above.
4635 Remove integer-related logic from pattern.
4636 (neon_vabd<mode>_3): Likewise.
4638 2018-01-17 Martin Liska <mliska@suse.cz>
4640 Backport from mainline
4641 2018-01-04 Martin Liska <mliska@suse.cz>
4644 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
4646 2018-01-17 Martin Liska <mliska@suse.cz>
4648 Backport from mainline
4649 2018-01-03 Martin Liska <mliska@suse.cz>
4652 * cif-code.def (VARIADIC_THUNK): New enum value.
4653 * ipa-inline-analysis.c (compute_inline_parameters):
4654 Do not inline variadic thunks.
4656 2018-01-17 Martin Liska <mliska@suse.cz>
4658 Backport from mainline
4659 2017-12-27 Martin Liska <mliska@suse.cz>
4661 PR tree-optimization/83552
4662 * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result
4663 of get_string_lenth to a SSA_NAME if not a GIMPLE value.
4665 2018-01-16 Segher Boessenkool <segher@kernel.crashing.org>
4667 Backport from mainline
4668 2017-12-18 Segher Boessenkool <segher@kernel.crashing.org>
4670 PR rtl-optimization/83424
4671 * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
4673 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
4675 * config/i386/i386.c (ix86_expand_prologue): Don't use reference
4676 of struct ix86_frame.
4677 (ix86_expand_epilogue): Likewise.
4679 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
4681 Backport from mainline
4682 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
4684 * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
4685 -mcmodel=large with -mindirect-branch=thunk,
4686 -mindirect-branch=thunk-extern, -mfunction-return=thunk and
4687 -mfunction-return=thunk-extern.
4688 * doc/invoke.texi: Document -mcmodel=large is incompatible with
4689 -mindirect-branch=thunk, -mindirect-branch=thunk-extern,
4690 -mfunction-return=thunk and -mfunction-return=thunk-extern.
4692 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
4694 Backport from mainline
4695 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
4697 * config/i386/i386.c (print_reg): Print the name of the full
4698 integer register without '%'.
4699 (ix86_print_operand): Handle 'V'.
4700 * doc/extend.texi: Document 'V' modifier.
4702 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
4704 Backport from mainline
4705 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4707 * config/i386/predicates.md (indirect_branch_operand): Rewrite
4708 ix86_indirect_branch_register logic.
4710 Backport from mainline
4711 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4713 * config/i386/constraints.md (Bs): Update
4714 ix86_indirect_branch_register check. Don't check
4715 ix86_indirect_branch_register with GOT_memory_operand.
4717 * config/i386/predicates.md (GOT_memory_operand): Don't check
4718 ix86_indirect_branch_register here.
4719 (GOT32_symbol_operand): Likewise.
4721 Backport from mainline
4722 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4724 * config/i386/predicates.md (constant_call_address_operand):
4725 Rewrite ix86_indirect_branch_register logic.
4726 (sibcall_insn_operand): Likewise.
4728 Backport from mainline
4729 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4731 * config/i386/constraints.md (Bs): Replace
4732 ix86_indirect_branch_thunk_register with
4733 ix86_indirect_branch_register.
4735 * config/i386/i386.md (indirect_jump): Likewise.
4736 (tablejump): Likewise.
4737 (*sibcall_memory): Likewise.
4738 (*sibcall_value_memory): Likewise.
4739 Peepholes of indirect call and jump via memory: Likewise.
4740 * config/i386/i386.opt: Likewise.
4741 * config/i386/predicates.md (indirect_branch_operand): Likewise.
4742 (GOT_memory_operand): Likewise.
4743 (call_insn_operand): Likewise.
4744 (sibcall_insn_operand): Likewise.
4745 (GOT32_symbol_operand): Likewise.
4747 Backport from mainline
4748 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
4750 * config/i386/constraints.md (Bs): Disallow memory operand for
4751 -mindirect-branch-register.
4753 * config/i386/predicates.md (indirect_branch_operand): Likewise.
4754 (GOT_memory_operand): Likewise.
4755 (call_insn_operand): Likewise.
4756 (sibcall_insn_operand): Likewise.
4757 (GOT32_symbol_operand): Likewise.
4758 * config/i386/i386.md (indirect_jump): Call convert_memory_address
4759 for -mindirect-branch-register.
4760 (tablejump): Likewise.
4761 (*sibcall_memory): Likewise.
4762 (*sibcall_value_memory): Likewise.
4763 Disallow peepholes of indirect call and jump via memory for
4764 -mindirect-branch-register.
4765 (*call_pop): Replace m with Bw.
4766 (*call_value_pop): Likewise.
4767 (*sibcall_pop_memory): Replace m with Bs.
4768 * config/i386/i386.opt (mindirect-branch-register): New option.
4769 * doc/invoke.texi: Document -mindirect-branch-register option.
4771 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
4773 Backport from mainline
4774 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4777 * config/i386/i386.c (output_indirect_thunk_function): Use
4778 ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
4779 for __x86.return_thunk.
4781 Backport from mainline
4782 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
4784 * config/i386/i386-protos.h (ix86_output_function_return): New.
4785 * config/i386/i386.c (ix86_set_indirect_branch_type): Also
4786 set function_return_type.
4787 (indirect_thunk_name): Add ret_p to indicate thunk for function
4789 (output_indirect_thunk_function): Pass false to
4790 indirect_thunk_name.
4791 (ix86_output_indirect_branch_via_reg): Likewise.
4792 (ix86_output_indirect_branch_via_push): Likewise.
4793 (output_indirect_thunk_function): Create alias for function
4794 return thunk if regno < 0.
4795 (ix86_output_function_return): New function.
4796 (ix86_handle_fndecl_attribute): Handle function_return.
4797 (ix86_attribute_table): Add function_return.
4798 * config/i386/i386.h (machine_function): Add
4799 function_return_type.
4800 * config/i386/i386.md (simple_return_internal): Use
4801 ix86_output_function_return.
4802 (simple_return_internal_long): Likewise.
4803 * config/i386/i386.opt (mfunction-return=): New option.
4804 (indirect_branch): Mention -mfunction-return=.
4805 * doc/extend.texi: Document function_return function attribute.
4806 * doc/invoke.texi: Document -mfunction-return= option.
4808 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
4810 Backport from mainline
4811 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
4813 * config/i386/i386-opts.h (indirect_branch): New.
4814 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
4815 * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
4816 with local indirect jump when converting indirect call and jump.
4817 (ix86_set_indirect_branch_type): New.
4818 (ix86_set_current_function): Call ix86_set_indirect_branch_type.
4819 (indirectlabelno): New.
4820 (indirect_thunk_needed): Likewise.
4821 (indirect_thunk_bnd_needed): Likewise.
4822 (indirect_thunks_used): Likewise.
4823 (indirect_thunks_bnd_used): Likewise.
4824 (INDIRECT_LABEL): Likewise.
4825 (indirect_thunk_name): Likewise.
4826 (output_indirect_thunk): Likewise.
4827 (output_indirect_thunk_function): Likewise.
4828 (ix86_output_indirect_branch_via_reg): Likewise.
4829 (ix86_output_indirect_branch_via_push): Likewise.
4830 (ix86_output_indirect_branch): Likewise.
4831 (ix86_output_indirect_jmp): Likewise.
4832 (ix86_code_end): Call output_indirect_thunk_function if needed.
4833 (ix86_output_call_insn): Call ix86_output_indirect_branch if
4835 (ix86_handle_fndecl_attribute): Handle indirect_branch.
4836 (ix86_attribute_table): Add indirect_branch.
4837 * config/i386/i386.h (machine_function): Add indirect_branch_type
4838 and has_local_indirect_jump.
4839 * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
4841 (tablejump): Likewise.
4842 (*indirect_jump): Use ix86_output_indirect_jmp.
4843 (*tablejump_1): Likewise.
4844 (simple_return_indirect_internal): Likewise.
4845 * config/i386/i386.opt (mindirect-branch=): New option.
4846 (indirect_branch): New.
4849 (thunk-inline): Likewise.
4850 (thunk-extern): Likewise.
4851 * doc/extend.texi: Document indirect_branch function attribute.
4852 * doc/invoke.texi: Document -mindirect-branch= option.
4854 2018-01-16 Richard Biener <rguenther@suse.de>
4856 Backport from mainline
4857 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
4860 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
4861 with a symbol for LRA.
4863 2018-01-15 Segher Boessenkool <segher@kernel.crashing.org>
4865 Backport from mainline
4866 2018-01-10 Segher Boessenkool <segher@kernel.crashing.org>
4869 * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
4870 load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
4872 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4874 Backport from mainline
4876 * config/i386/i386.c (ix86_function_arg_advance): Set
4877 outgoing_args_on_stack to true if there are outgoing arguments
4879 (ix86_function_arg): Likewise.
4880 (ix86_compute_frame_layout): Align stack frame if argument is
4882 * config/i386/i386.h (machine_function): Add
4883 outgoing_args_on_stack.
4885 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4887 Backport from mainline
4888 * config/i386/i386.c (ix86_expand_prologue): Use reference of
4890 (ix86_expand_epilogue): Likewise.
4892 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4894 Backport from mainline
4895 2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
4897 * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
4898 of struct ix86_frame.
4899 (ix86_initial_elimination_offset): Likewise.
4900 (ix86_expand_split_stack_prologue): Likewise.
4902 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
4904 Backport from mainline
4905 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
4907 * config/i386/i386.c (ix86_frame): Moved to ...
4908 * config/i386/i386.h (ix86_frame): Here.
4909 (machine_function): Add frame.
4910 * config/i386/i386.c (ix86_compute_frame_layout): Repace the
4911 frame argument with &cfun->machine->frame.
4912 (ix86_can_use_return_insn_p): Don't pass &frame to
4913 ix86_compute_frame_layout. Copy frame from cfun->machine->frame.
4914 (ix86_can_eliminate): Likewise.
4915 (ix86_expand_prologue): Likewise.
4916 (ix86_expand_epilogue): Likewise.
4917 (ix86_expand_split_stack_prologue): Likewise.
4919 2018-01-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4921 Backport from mainline
4922 2018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4925 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
4926 Reverse order of second and third operands in first alternative.
4927 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
4928 of first and second elements in UNSPEC_VPERMR vector.
4929 (altivec_expand_vec_perm_le): Likewise.
4931 2018-01-14 Uros Bizjak <ubizjak@gmail.com>
4933 Backport from mainline
4934 2018-01-12 Uros Bizjak <ubizjak@gmail.com>
4937 * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
4938 (*saddl_se_1): Ditto.
4940 (*ssubl_se_1): Ditto.
4942 Backport from mainline
4943 2018-01-09 Uros Bizjak <ubizjak@gmail.com>
4946 * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
4947 op_mode in the force_to_mode call.
4949 2018-01-12 Oleg Endo <olegendo@gcc.gnu.org>
4951 Backport from mainline
4952 2018-01-12 Oleg Endo <olegendo@gcc.gnu.org>
4955 * config/rx/rx.c (rx_is_restricted_memory_address):
4958 2018-01-12 Eric Botcazou <ebotcazou@adacore.com>
4960 PR rtl-optimization/83565
4961 * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
4962 not extend the result to a larger mode for rotate operations.
4963 (num_sign_bit_copies1): Likewise.
4965 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4967 Backport from mainline
4968 2018-01-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4971 * cgraphunit.c (symbol_table::compile): Switch to text_section
4972 before calling assembly_start debug hook.
4974 2018-01-11 Oleg Endo <olegendo@gcc.gnu.org>
4976 Backport from mainline
4977 2018-01-11 Oleg Endo <olegendo@gcc.gnu.org>
4980 * config/rx/rx.md (BW): New mode attribute.
4981 (sync_lock_test_and_setsi): Add mode suffix to insn output.
4983 2018-01-09 Richard Biener <rguenther@suse.de>
4985 Backport from mainline
4986 2018-01-08 Richard Biener <rguenther@suse.de>
4989 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
4991 2018-01-08 Jim Wilson <jimw@sifive.com>
4993 Backport from mainline
4994 2018-01-08 Monk Chiang <sh.chiang04@gmail.com>
4995 Kito Cheng <kito.cheng@gmail.com>
4997 * config/riscv/riscv.c (machine_function::is_leaf): Remove field.
4998 (riscv_leaf_function_p): Delete.
4999 (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
5001 2018-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5003 Backport from mainline
5004 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5007 * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
5009 2018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
5011 Backported from mainline
5012 2018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
5014 * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
5015 * config/epiphany/rtems.h: New file.
5017 2018-01-04 Uros Bizjak <ubizjak@gmail.com>
5020 * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
5021 instead of MULT rtx. Update all corresponding splitters.
5023 (*ssub<modesuffix>): Ditto.
5025 (*cmp_sadd_di): Update split patterns.
5026 (*cmp_sadd_si): Ditto.
5027 (*cmp_sadd_sidi): Ditto.
5028 (*cmp_ssub_di): Ditto.
5029 (*cmp_ssub_si): Ditto.
5030 (*cmp_ssub_sidi): Ditto.
5031 * config/alpha/predicates.md (const23_operand): New predicate.
5032 * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
5033 Look for ASHIFT, not MULT inner operand.
5034 (alpha_split_conditional_move): Update for *sadd<modesuffix> change.
5036 2018-01-02 Andrew Waterman <andrew@sifive.com>
5038 * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New.
5039 * config/riscv/riscv.md (clear_cache): Use it.
5041 2018-01-01 Jakub Jelinek <jakub@redhat.com>
5044 * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
5045 convert_modes if target mode has the right side, but different mode
5049 * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
5050 last argument when extracting from CONCAT. If either from_real or
5051 from_imag is NULL, use expansion through memory. If result is not
5052 a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
5053 the parts directly to inner mode, if even that fails, use expansion
5057 * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
5058 check for bswap in mode rather than HImode and use that in expand_unop
5061 2017-12-23 Jakub Jelinek <jakub@redhat.com>
5064 * fold-const.c (struct contains_label_data): New type.
5065 (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
5066 inside of a SWITCH_BODY seen during the walk.
5067 (contains_label_p): Use walk_tree instead of
5068 walk_tree_without_duplicates, prepare data for contains_label_1 and
5071 2017-12-22 Martin Jambor <mjambor@suse.cz>
5074 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
5077 2017-12-22 Jakub Jelinek <jakub@redhat.com>
5079 Backported from mainline
5080 2017-12-21 Jakub Jelinek <jakub@redhat.com>
5083 * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
5084 if navail is >= dir.len.
5086 PR rtl-optimization/80747
5087 PR rtl-optimization/83512
5088 * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
5089 succ edge from ENTRY, copy partition from e->dest to the newly
5091 * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
5092 ENTRY, use BB_PARTITION of its successor block as current_partition.
5093 Don't copy partition when splitting succ edge from ENTRY.
5095 PR tree-optimization/83523
5096 * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
5097 for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
5098 (convert_mult_to_fma): Likewise.
5100 PR tree-optimization/83521
5101 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
5102 gimple_build_assign without code on result of
5103 fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
5104 a VIEW_CONVERT_EXPR.
5106 2017-12-19 Jakub Jelinek <jakub@redhat.com>
5110 * ipa-inline.c (flatten_remove_node_hook): New function.
5111 (ipa_inline): Keep only nodes with flatten attribute at the end of
5112 the array in the order from ipa_reverse_postorder, only walk that
5113 portion of array for flattening, if there is more than one such
5114 node, temporarily register a removal hook and ignore removed nodes.
5116 2017-12-21 Uros Bizjak <ubizjak@gmail.com>
5119 * config/i386/i386.md (*ashl<mode>3_mask): Add operand
5120 constraints to operand 2.
5121 (*<shift_insn><mode>3_mask): Ditto.
5122 (*<rotate_insn><mode>3_mask): Ditto.
5124 2017-12-19 Bin Cheng <bin.cheng@arm.com>
5126 Backport from mainline
5127 2017-11-15 Bin Cheng <bin.cheng@arm.com>
5129 PR tree-optimization/82726
5130 PR tree-optimization/70754
5131 * tree-predcom.c (order_drefs_by_pos): New function.
5132 (combine_chains): Move code setting has_max_use_after to...
5133 (try_combine_chains): ...here. New parameter. Sort combined chains
5134 according to position information.
5135 (tree_predictive_commoning_loop): Update call to above function.
5136 (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
5138 2017-11-15 Bin Cheng <bin.cheng@arm.com>
5140 PR tree-optimization/82726
5142 2017-01-23 Bin Cheng <bin.cheng@arm.com>
5144 PR tree-optimization/70754
5145 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
5146 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
5147 combined stmt before it if not NULL.
5148 (combine_chains): Process refs reversely and compute dominance point
5152 2017-02-23 Bin Cheng <bin.cheng@arm.com>
5154 PR tree-optimization/79663
5155 * tree-predcom.c (combine_chains): Process refs in reverse order
5156 only for ZERO length chains, and add explaining comment.
5158 2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
5160 Backport from mainline
5161 2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
5164 * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
5167 2017-12-19 Daniel Cederman <cederman@gaisler.com>
5169 Backport from mainline
5170 2017-12-19 Daniel Cederman <cederman@gaisler.com>
5172 * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
5173 the jump is to a label.
5175 2017-12-17 John David Anglin <danglin@gcc.gnu.org>
5177 Backport from mainline
5178 2017-12-03 John David Anglin <danglin@gcc.gnu.org>
5180 * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
5181 require base operand is a REG_POINTER prior to reload on targets
5182 with non-equivalent space registers.
5184 2017-12-15 Jakub Jelinek <jakub@redhat.com>
5186 PR tree-optimization/83269
5187 * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
5188 subtraction in arg0's type if type is signed and arg0 is unsigned.
5191 Backported from mainline
5192 2017-12-14 Jakub Jelinek <jakub@redhat.com>
5194 PR tree-optimization/83198
5195 * gimple-ssa-sprintf.c (format_floating): Set type solely based on
5196 dir.modifier, regardless of TREE_TYPE (arg). Assume non-REAL_CST
5197 value if arg is a REAL_CST with incompatible type.
5199 2017-12-12 Jakub Jelinek <jakub@redhat.com>
5201 PR tree-optimization/80631
5202 * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
5203 (vect_create_epilog_for_reduction): Add INDUC_VAL argument, for
5204 INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
5205 hardcoding zero as the value if COND_EXPR is never true. For
5206 INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
5207 INDUC_VAL is equal to INITIAL_DEF.
5208 (vectorizable_reduction): Compute INDUC_VAL for
5209 vect_create_epilog_for_reduction, if no value is suitable, don't
5210 use INTEGER_INDUC_COND_REDUCTION for now. Formatting fixes.
5212 2017-12-08 Joseph Myers <joseph@codesourcery.com>
5213 Alexander Monakov <amonakov@ispras.ru>
5214 Jakub Jelinek <jakub@redhat.com>
5217 * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
5219 2017-12-02 Jakub Jelinek <jakub@redhat.com>
5222 * tree-cfg.c (pass_warn_function_return::execute): Handle
5223 __builtin_ubsan_handle_missing_return like __builtin_unreachable
5224 with BUILTINS_LOCATION.
5228 * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
5229 is BLKmode for vector field with vector raw mode, use TYPE_MODE
5230 instead of DECL_MODE.
5232 2017-11-29 Jakub Jelinek <jakub@redhat.com>
5235 * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
5238 2017-11-25 Jakub Jelinek <jakub@redhat.com>
5240 PR rtl-optimization/81553
5241 * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
5242 to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
5243 is a shift where C1 has different mode than the whole shift, use C1's
5244 mode for MULT rather than the shift's mode.
5246 2017-11-24 Jakub Jelinek <jakub@redhat.com>
5249 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
5250 instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling
5253 * tree-object-size.c (pass_through_call): Do not handle
5254 BUILT_IN_STPNCPY_CHK which is not a pass through call.
5256 2017-11-23 Jakub Jelinek <jakub@redhat.com>
5259 * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
5260 bitpos/bitsize covering the whole destination, use store_expr only if
5261 the complex mode is the same. Otherwise, use expand_normal and if
5262 it returns CONCAT, subreg each part separately instead of trying to
5263 subreg the whole result.
5265 2017-11-22 Jakub Jelinek <jakub@redhat.com>
5268 * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
5269 debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
5270 (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
5273 2017-11-21 James Cowgill <James.Cowgill@imgtec.com>
5274 Jakub Jelinek <jakub@redhat.com>
5277 * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
5278 Remove static keyword from f variable.
5280 2017-12-15 Richard Biener <rguenther@suse.de>
5283 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5284 Adjust remaining gimple_set_modified to use the modified
5287 2017-12-15 Eric Botcazou <ebotcazou@adacore.com>
5290 * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
5291 * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
5292 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
5294 2017-12-15 Richard Biener <rguenther@suse.de>
5296 Backport from mainline
5297 PR tree-optimization/82060
5298 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
5299 Move devirtualization after stmt folding and before EH/AB/noreturn
5300 cleanup to get the stmt refs canonicalized. Use a bool instead
5301 of gimple_modified_p since that doesn't work for NOPs. Schedule
5302 NOPs generated by folding for removal.
5304 2017-12-15 Richard Biener <rguenther@suse.de>
5306 Backport from mainline
5307 2017-09-05 Richard Biener <rguenther@suse.de>
5309 PR tree-optimization/82102
5310 * tree-ssa-pre.c (eliminate): Check if lhs is NULL.
5312 2017-09-13 Richard Biener <rguenther@suse.de>
5315 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
5316 default-def to avoid breaking iterator update with the weird
5317 interaction with cgraph_update_edges_for_call_stmt_node.
5319 2017-12-15 Richard Biener <rguenther@suse.de>
5321 Backport from mainline
5322 2017-11-24 Richard Biener <rguenther@suse.de>
5324 PR tree-optimization/82402
5325 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
5326 set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
5328 2017-10-24 Richard Biener <rguenther@suse.de>
5330 PR tree-optimization/82697
5331 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
5332 zero for conditional load and unconditional store.
5334 2017-11-02 Richard Biener <rguenther@suse.de>
5337 * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
5338 Truncate ARRAY_REF index and element size.
5340 2017-11-09 Richard Biener <rguenther@suse.de>
5342 PR tree-optimization/82902
5343 * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
5345 2017-12-14 Peter Bergner <bergner@vnet.ibm.com>
5347 Backport from mainline
5348 2017-10-02 Peter Bergner <bergner@vnet.ibm.com>
5351 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
5352 function to not use the have_cpu variable. Do not set cpu_index,
5353 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
5355 (rs6000_valid_attribute_p): Remove duplicate initializations of
5356 old_optimize and func_optimize.
5357 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
5358 (rs6000_activate_target_options): Make global.
5359 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
5362 2017-12-13 Peter Bergner <bergner@vnet.ibm.com>
5364 Backport from mainline
5365 2017-12-13 Peter Bergner <bergner@vnet.ibm.com>
5367 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
5368 * config/rs6000/rs6000.c (cpu_supports_info): Use it.
5370 2017-12-11 Michael Meissner <meissner@linux.vnet.ibm.com>
5372 Back port from trunk
5373 2017-12-01 Michael Meissner <meissner@linux.vnet.ibm.com>
5376 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
5377 whether we can allocate pseudos before trying to fix an address.
5378 * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
5379 memory address is indexed or indirect.
5380 (floatuns_<mode>si2_hw2): Likewise.
5382 2017-12-11 Sudakshina Das <sudi.das@arm.com>
5384 Backported from trunk
5385 2017-12-01 Sudakshina Das <sudi.das@arm.com>
5387 * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
5389 2017-12-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
5392 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
5395 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
5396 rs6000_store_data_bypass_p in seven define_bypass directives and
5397 in several comments.
5398 * config/rs6000/rs6000-protos.h: Add prototype for
5399 rs6000_store_data_bypass_p function.
5400 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
5401 function implements slightly different (rs6000-specific) semantics
5402 than store_data_bypass_p, returning false rather than aborting
5403 with assertion error when arguments do not satisfy the
5404 requirements of store data bypass.
5405 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
5406 rs6000_store_data_bypass_p.
5408 2017-12-06 Eric Botcazou <ebotcazou@adacore.com>
5411 2017-11-29 Martin Aberg <maberg@gaisler.com>
5413 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
5414 to prevent b2bst errata sequence.
5415 (sqrtdf2_fix): Likewise.
5417 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
5419 Backport from mainline
5420 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
5421 * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
5423 (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
5424 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
5427 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
5429 Backport from mainline
5430 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
5431 * config/xtensa/xtensa-protos.h
5432 (xtensa_initial_elimination_offset): New declaration.
5433 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
5434 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
5435 macro definition, add case for FRAME_POINTER_REGNUM when
5436 FRAME_GROWS_DOWNWARD.
5437 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro
5439 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
5440 xtensa_initial_elimination_offset.
5442 2017-12-04 Eric Botcazou <ebotcazou@adacore.com>
5444 * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
5445 instead of MEM_P in a couple more places. Fix formatting issues.
5447 2017-12-04 Sebastian Peryt <sebastian.peryt@intel.com>
5448 H.J. Lu <hongjiu.lu@intel.com>
5450 Bakcported from trunk
5454 * config/i386/i386.c (pass_insert_vzeroupper): Remove
5455 TARGET_AVX512F check from gate condition.
5456 (ix86_check_avx256_register): Changed to ...
5457 (ix86_check_avx_upper_register): ... this. Add extra check for
5458 VALID_AVX512F_REG_OR_XI_MODE.
5459 (ix86_avx_u128_mode_needed): Changed
5460 ix86_check_avx256_register to ix86_check_avx_upper_register.
5461 (ix86_check_avx256_stores): Changed to ...
5462 (ix86_check_avx_upper_stores): ... this. Changed
5463 ix86_check_avx256_register to ix86_check_avx_upper_register.
5464 (ix86_avx_u128_mode_after): Changed
5465 avx_reg256_found to avx_upper_reg_found. Changed
5466 ix86_check_avx256_stores to ix86_check_avx_upper_stores.
5467 (ix86_avx_u128_mode_entry): Changed
5468 ix86_check_avx256_register to ix86_check_avx_upper_register.
5469 (ix86_avx_u128_mode_exit): Ditto.
5470 (ix86_option_override_internal): Set MASK_VZEROUPPER if
5471 neither -mzeroupper nor -mno-zeroupper is used and
5472 TARGET_EMIT_VZEROUPPER is set.
5473 * config/i386/i386.h: (host_detect_local_cpu): New define.
5474 (TARGET_EMIT_VZEROUPPER): New.
5475 * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER
5477 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
5479 Backport from mainline
5480 2017-11-28 Segher Boessenkool <segher@kernel.crashing.org>
5483 * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
5484 TARGET_ISEL && !TARGET_MFCRF differently. Simplify code.
5486 2017-11-30 Jim Wilson <jimw@sifive.com>
5488 Backport from mainline
5489 2017-11-30 Jim Wilson <jimw@sifive.com>
5490 * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
5491 -mno-memcpy options. For -mplt, -mfdiv, -mdiv, -msave-restore, and
5492 -mstrict-align, add info on default value. Delete redundant lines for
5493 -mabi. Add missing -mexplicit-relocs docs.
5495 Backport from mainline
5496 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com>
5497 * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
5498 * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
5499 and medany code models, and describe what they do.
5501 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com>
5503 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
5505 2017-11-29 Martin Jambor <mjambor@suse.cz>
5508 * tree.c (expr_type_first_operand_type_p): New function.
5509 * tree.h (expr_type_first_operand_type_p): Declare it.
5510 * ipa-cp.c (ipa_get_jf_pass_through_result): Use it.
5512 2017-11-29 Daniel Cederman <cederman@gaisler.com>
5514 * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
5515 movsi_pic_gotdata_op instruction as a load for the UT699 errata
5518 2017-11-29 Martin Aberg <maberg@gaisler.com>
5520 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
5521 to prevent b2bst errata sequence.
5522 (sqrtdf2_fix): Likewise.
5524 2017-11-29 Daniel Cederman <cederman@gaisler.com>
5526 * config/sparc/sparc.c (fpop_reg_depend_p): New function.
5527 (div_sqrt_insn_p): New function.
5528 (sparc_do_work_around_errata): Insert NOP instructions to
5529 prevent sequences that could trigger the TN-0013 errata for
5530 certain LEON3 processors.
5531 (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
5532 (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
5533 * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
5534 (in_branch_delay): Prevent div and sqrt in delay slot if
5536 * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
5538 2017-11-29 Daniel Cederman <cederman@gaisler.com>
5540 * config/sparc/sparc.c (atomic_insn_p): New function.
5541 (sparc_do_work_around_errata): Insert NOP instructions to
5542 prevent sequences that could trigger the TN-0010 errata for
5544 * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
5545 instruction referable in atomic_insns_p.
5547 2017-11-29 Daniel Cederman <cederman@gaisler.com>
5549 * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
5550 (atomic_compare_and_swap_leon3_1): Likewise.
5553 2017-11-29 Daniel Cederman <cederman@gaisler.com>
5555 * config/sparc/sparc.c (fpop_insn_p): New function.
5556 (sparc_do_work_around_errata): Insert NOP instructions to
5557 prevent sequences that could trigger the TN-0012 errata for
5559 (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
5560 * config/sparc/sparc.md (fix_gr712rc): New attribute.
5561 (in_branch_annul_delay): Prevent floating-point instructions
5562 in delay slot of annulled integer branch.
5564 2017-11-28 Jim Wilson <jimw@sifive.com>
5566 Backport from mainline
5567 2017-11-04 Andrew Waterman <andrew@sifive.com>
5569 * config/riscv/riscv.c (riscv_option_override): Conditionally set
5570 TARGET_STRICT_ALIGN based upon -mtune argument.
5572 Backport from mainline
5573 2017-05-04 Andrew Waterman <andrew@sifive.com>
5575 * config/riscv/riscv.opt (mstrict-align): New option.
5576 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
5577 (SLOW_UNALIGNED_ACCESS): Define.
5578 (riscv_slow_unaligned_access): Declare.
5579 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
5581 (riscv_slow_unaligned_access): New variable.
5582 (rocket_tune_info): Set slow_unaligned_access to true.
5583 (optimize_size_tune_info): Set slow_unaligned_access to false.
5584 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
5585 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
5586 (riscv_option_override): Set riscv_slow_unaligned_access.
5587 * doc/invoke.texi: Add -mstrict-align to RISC-V.
5589 Backport from mainline
5590 2017-11-07 Michael Clark <michaeljclark@mac.com>
5592 * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
5593 (MUSL_DYNAMIC_LINKER): Likewise.
5595 2017-11-27 Jim Wilson <jimw@sifive.com>
5597 Backport from mainline
5598 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com>
5600 * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
5601 * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
5602 mark as a sign-extending load.
5603 (local_pic_load_u): Define.
5605 Backport from mainline
5606 2017-11-03 Kito Cheng <kito.cheng@gmail.com>
5608 * config/riscv/riscv.c (riscv_legitimize_move): Handle
5609 non-legitimate address.
5611 2017-11-24 Segher Boessenkool <segher@kernel.crashing.org>
5613 Backport from mainline
5614 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org>
5616 PR rtl-optimization/82621
5617 * combine.c (try_combine): Do not split PARALLELs of two SETs if the
5618 dest of one of those SETs is unused.
5620 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org>
5622 Backport from mainline
5623 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org>
5626 * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
5627 sibcall_value_pcrel_fdpic): Use local variable instead of
5629 (calli_tbr_rel): Add missing operand 2.
5630 (call_valuei_tbr_rel): Add missing operand 3.
5632 2017-11-22 Richard Biener <rguenther@suse.de>
5635 2017-11-21 Martin Liska <mliska@suse.cz>
5637 Backport from mainline
5638 2017-11-21 Martin Liska <mliska@suse.cz>
5640 PR rtl-optimization/82044
5641 PR tree-optimization/82042
5642 * dse.c (check_mem_read_rtx): Check for overflow.
5644 2017-11-21 Martin Liska <mliska@suse.cz>
5646 Backport from mainline
5647 2017-10-27 Martin Liska <mliska@suse.cz>
5649 PR gcov-profile/82457
5650 * doc/invoke.texi: Document that one needs a non-strict ISO mode
5651 for fork-like functions to be properly instrumented.
5653 2017-11-21 Pat Haugen <pthaugen@us.ibm.com>
5655 Backport from mainline
5656 2017-11-21 Pat Haugen <pthaugen@us.ibm.com>
5658 * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
5660 2017-11-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
5662 Backport from mainline
5663 2017-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
5665 * config/arm/arm.c (output_return_instruction): Add comments to
5666 indicate requirement for cmse_nonsecure_entry return to account
5667 for the size of clearing instruction output here.
5668 (thumb_exit): Likewise.
5669 * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
5670 return in hardfloat mode.
5672 2017-11-21 Martin Liska <mliska@suse.cz>
5674 Backport from mainline
5675 2017-11-21 Martin Liska <mliska@suse.cz>
5677 PR rtl-optimization/82044
5678 PR tree-optimization/82042
5679 * dse.c (check_mem_read_rtx): Check for overflow.
5681 2017-11-21 Martin Liska <mliska@suse.cz>
5683 Backport from mainline
5684 2017-11-08 Martin Liska <mliska@suse.cz>
5686 * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
5687 of gimple_call_internal_p.
5689 2017-11-21 Martin Liska <mliska@suse.cz>
5691 Backport from mainline
5692 2017-11-08 Martin Liska <mliska@suse.cz>
5695 * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
5697 2017-11-21 Martin Liska <mliska@suse.cz>
5699 Backport from mainline
5700 2017-10-31 Martin Liska <mliska@suse.cz>
5702 PR gcov-profile/82633
5703 * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
5704 their interaction with GCOV infrastructure.
5706 2017-11-21 Martin Liska <mliska@suse.cz>
5708 Backport from mainline
5709 2017-10-19 Martin Liska <mliska@suse.cz>
5712 * file-find.c (remove_prefix): Remove.
5713 * file-find.h (remove_prefix): Likewise.
5714 * gcc-ar.c: Remove smartness of lookup.
5716 2017-11-21 Martin Liska <mliska@suse.cz>
5718 Backport from mainline
5719 2017-10-18 Martin Liska <mliska@suse.cz>
5722 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
5723 on an abnormal edge.
5725 2017-11-21 Martin Liska <mliska@suse.cz>
5727 Backport from mainline
5728 2017-10-11 Martin Liska <mliska@suse.cz>
5730 * print-rtl.c (print_insn): Move declaration of idbuf
5731 to same scope as name.
5733 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
5735 Backport from mainline
5736 2017-11-17 Vineet Gupta <vgupta@synopsys.com>
5738 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
5739 upstreaming review comments.
5741 2017-11-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5743 Backport from mainline
5744 2017-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5746 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
5747 Solaris 11. Update comment.
5748 * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
5750 * config/sol2.h (STARTFILE_SPEC): Likewise.
5751 * configure: Regenerate.
5753 2017-11-20 Segher Boessenkool <segher@kernel.crashing.org>
5755 Backport from mainline
5756 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
5759 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
5760 address instead of to r1 and r11.
5762 2017-11-17 Vineet Gupta <vgupta@synopsys.com>
5764 * config.gcc: Remove uclibc from arc target spec.
5766 2017-11-16 Uros Bizjak <ubizjak@gmail.com>
5768 * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
5769 explicitly as a stream of bytes.
5771 2017-11-15 Richard Biener <rguenther@suse.de>
5773 PR tree-optimization/82985
5774 Backport from mainline
5775 2017-08-15 Richard Biener <rguenther@suse.de>
5777 PR tree-optimization/81790
5778 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
5779 CONSTRUCTORs from simplifying and VN.
5781 2017-11-15 Pierre-Marie de Rodat <derodat@adacore.com>
5783 Backport from mainline
5784 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
5787 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
5788 on the FUNCTION_DECL function context if it has a DIE that is a
5791 2017-11-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5793 Backport from mainline
5794 2017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5796 * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
5797 supports -xbrace_comment option.
5798 * configure: Regenerate.
5799 * config.in: Regenerate.
5800 * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
5801 (ASM_CPU_SPEC): Use it.
5803 2017-11-09 Segher Boessenkool <segher@kernel.crashing.org>
5805 Backport from mainline
5806 2017-11-01 Segher Boessenkool <segher@kernel.crashing.org>
5808 PR rtl-optimization/64682
5809 PR rtl-optimization/69567
5810 PR rtl-optimization/69737
5811 PR rtl-optimization/82683
5812 * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
5813 register mentioned in the note, drop the note, unless it came from I3,
5814 in which case it should go to I3 again.
5816 2017-11-07 Eric Botcazou <ebotcazou@adacore.com>
5818 Backport from mainline
5819 2017-10-31 Matthew Fortune <matthew.fortune@imgtec.com>
5820 Eric Botcazou <ebotcazou@adacore.com>
5822 PR rtl-optimization/81803
5823 * lra-constraints.c (curr_insn_transform): Also reload the whole
5824 register for a strict subreg no wider than a word if this is for
5825 a WORD_REGISTER_OPERATIONS target.
5827 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com>
5830 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
5831 Check special value of flag_omit_frame_pointer.
5832 (aarch64_can_eliminate): Likewise.
5833 (aarch64_override_options_after_change_1): Simplify handling of
5834 -fomit-frame-pointer and -fomit-leaf-frame-pointer.
5836 2017-11-01 Martin Jambor <mjambor@suse.cz>
5839 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
5841 2017-10-31 Uros Bizjak <ubizjak@gmail.com>
5844 * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
5846 2017-10-27 Jakub Jelinek <jakub@redhat.com>
5848 Backported from mainline
5849 2017-10-12 Jakub Jelinek <jakub@redhat.com>
5852 * expr.c (store_field): Don't optimize away bitsize == 0 store
5853 from CALL_EXPR with addressable return type.
5855 2017-09-21 Jakub Jelinek <jakub@redhat.com>
5858 * tree-inline.c (expand_call_inline): Emit clobber stmts for
5859 VAR_DECLs to which addressable non-volatile parameters are mapped
5860 and for id->retvar after the return value assignment, though
5861 for -fsanitize=kernel-address only. Clear id->retval and id->retbnd
5864 2017-09-18 Jakub Jelinek <jakub@redhat.com>
5867 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
5869 2017-09-15 Jakub Jelinek <jakub@redhat.com>
5871 PR rtl-optimization/82192
5872 * combine.c (make_extraction): Don't look through non-paradoxical
5873 SUBREGs or TRUNCATE if pos + len is or might be bigger than
5876 2017-10-27 Jakub Jelinek <jakub@redhat.com>
5879 * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
5880 * config/i386/i386.c (maybe_get_pool_constant): Removed.
5881 (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
5882 maybe_get_pool_constant.
5883 * config/i386/predicates.md (zero_extended_scalar_load_operand):
5886 2017-10-24 Qing Zhao <qing.zhao@oracle.com>
5887 Wilco Dijkstra <wilco.dijkstra@arm.com>
5889 * builtins.c (expand_builtin_update_setjmp_buf): Add a
5890 converstion to Pmode from the buf_addr.
5892 2017-10-20 Richard Biener <rguenther@suse.de>
5894 PR tree-optimization/82603
5895 * tree-if-conv.c (predicate_mem_writes): Make sure to only
5896 remove false predicated stores.
5898 2017-10-20 Richard Biener <rguenther@suse.de>
5900 Backport from mainline
5901 2017-10-06 Richard Biener <rguenther@suse.de>
5903 PR tree-optimization/82436
5904 * tree-vect-slp.c (vect_supported_load_permutation_p): More
5905 conservatively choose the vectorization factor when checking
5906 whether we can perform the required load permutation.
5907 (vect_transform_slp_perm_load): Assert when we may not fail.
5909 2017-10-19 Richard Earnshaw <rearnsha@arm.com>
5912 * config/arm/arm.c (align_ok_ldrd_strd): New function.
5913 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of
5915 (gen_operands_ldrd_strd): Validate the alignment of the accesses.
5917 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org>
5919 PR rtl-optimization/82602
5920 * ira.c (rtx_moveable_p): Return false for volatile asm.
5922 2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
5925 * lra-constraints.c (curr_insn_transform): Use non-input operand
5926 instead of output one for matched reload.
5928 2017-10-17 Jakub Jelinek <jakub@redhat.com>
5930 PR tree-optimization/82549
5931 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
5932 Formatting fixes. Instead of calling make_bit_field_ref with negative
5935 2017-10-13 Jakub Jelinek <jakub@redhat.com>
5938 * internal-fn.c (expand_mul_overflow): If both operands have
5939 the same highpart of -1 or 0 and the topmost bit of lowpart
5940 is different, overflow is if res <= 0 rather than res < 0.
5943 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
5944 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
5945 =Q constraints to +Q and into insn condition add check
5946 that operands[0] and operands[1] are equal.
5947 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
5948 =Q constraints to +Q and into insn condition add check
5949 that operands[0] is equal to either operands[1] or operands[2].
5951 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
5953 Backported from mainline r253602
5954 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
5956 * config.gcc: (armv7*-*-freebsd*): New target.
5957 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
5959 2017-10-06 Christophe Lyon <christophe.lyon@linaro.org>
5961 Backport from mainline r253242.
5962 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
5965 * config/aarch64/aarch64.c
5966 (aarch64_builtin_support_vector_misalignment): Always return false
5967 when misalignment is unknown.
5969 2017-10-04 Jason Merrill <jason@redhat.com>
5971 PR c++/82406 - C++ error with noexcept function type
5972 PR c++/70029 - ICE with ref-qualifier and -flto
5973 * langhooks.h (struct lang_hooks_for_types): Add
5974 copy_lang_qualifiers.
5975 * attribs.c (build_type_attribute_qual_variant): Use it.
5976 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
5978 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
5979 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
5981 2017-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5983 Backport from mainline
5984 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5986 PR tree-optimization/82337
5987 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
5988 phi definition if the PHI result appears in an abnormal PHI.
5989 (find_basis_for_base_expr): Don't record a basis if the LHS of the
5990 basis appears in an abnormal PHI.
5992 2017-09-30 Jakub Jelinek <jakub@redhat.com>
5994 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
5995 always SImode for DIV and MOD in REG_EQUAL notes.
5997 Backported from mainline
5998 2017-09-27 Jakub Jelinek <jakub@redhat.com>
6001 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
6002 lhs from calls if the lhs has addressable type.
6004 2017-09-29 Krister Walfridsson <krister.walfridsson@gmail.com>
6006 Backport from mainline
6007 2017-06-29 Maya Rashish <coypu@sdf.org>
6010 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
6013 2017-09-29 Krister Walfridsson <krister.walfridsson@gmail.com>
6015 Backport from mainline
6016 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
6019 * gcc/config/netbsd-protos.h: New file.
6020 * gcc/config/netbsd.c: New file.
6021 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
6022 * gcc/config/t-netbsd: New file.
6023 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
6024 (tmake_file) Add t-netbsd.
6025 (extra_objs) Add netbsd.o.
6027 2017-09-28 Krister Walfridsson <krister.walfridsson@gmail.com>
6029 Backport from mainline
6030 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
6033 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
6035 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
6037 Backport from trunk r249639.
6038 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
6040 * doc/sourcebuild.texi (ARM-specific attributes): Document new
6041 arm_neon_ok_no_float_abi effective target.
6043 2017-09-26 Richard Biener <rguenther@suse.de>
6045 Backport from mainline
6046 2017-09-19 Richard Biener <rguenther@suse.de>
6048 PR tree-optimization/82244
6049 * tree-vrp.c (remove_range_assertions): Do not propagate
6050 a constant to abnormals but replace the assert with a copy.
6052 2017-09-21 Richard Biener <rguenther@suse.de>
6054 PR tree-optimization/82276
6055 PR tree-optimization/82244
6056 * tree-vrp.c (build_assert_expr_for): Set
6057 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
6059 (remove_range_assertions): Revert earlier change.
6061 2017-09-20 Richard Biener <rguenther@suse.de>
6063 PR tree-optimization/82264
6064 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
6066 (vn_phi_lookup): Likewise.
6067 (vn_phi_insert): Likewise.
6068 * is-a.h (safe_dyn_cast): New.
6070 2017-09-25 Richard Biener <rguenther@suse.de>
6072 PR tree-optimization/82285
6073 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
6076 2017-09-22 Richard Biener <rguenther@suse.de>
6078 PR tree-optimization/82291
6079 * tree-if-conv.c (predicate_mem_writes): Make sure to
6080 remove writes in blocks predicated with false.
6082 2017-09-21 Alan Modra <amodra@gmail.com>
6085 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
6086 stack_pointer_rtx for count 0. Update comments. Break up
6087 large rtl expression.
6089 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
6092 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
6094 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
6096 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
6097 to processor_model and "amdfam17h" to arch_names_table.
6098 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
6100 2017-09-19 Martin Liska <mliska@suse.cz>
6103 * config/i386/i386.c (sorted_attr_string): Skip empty strings.
6105 2017-09-19 Martin Liska <mliska@suse.cz>
6108 2017-08-10 Martin Liska <mliska@suse.cz>
6111 * c-attribs.c (handle_target_attribute):
6112 Report warning for an empty string argument of target attribute.
6114 2017-09-18 Richard Biener <rguenther@suse.de>
6116 Backport from mainline
6117 2017-09-04 Richard Biener <rguenther@suse.de>
6119 PR tree-optimization/82084
6120 * fold-const.h (can_native_encode_string_p): Declare.
6121 * fold-const.c (can_native_encode_string_p): Factor out from ...
6122 (native_encode_string): ... here.
6123 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
6124 vectorizing stores from constants we later cannot handle.
6126 2017-09-06 Richard Biener <rguenther@suse.de>
6128 PR tree-optimization/82108
6129 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
6130 for gap in the non-permutation SLP case.
6132 2017-09-15 Jakub Jelinek <jakub@redhat.com>
6134 Backported from mainline
6135 2017-09-14 Jakub Jelinek <jakub@redhat.com>
6138 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
6139 if and where to split a bb, except for splitting before debug insn
6140 sequences followed by non-label real insn. Delete debug insns
6141 in between basic blocks.
6143 2017-09-12 Jakub Jelinek <jakub@redhat.com>
6146 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
6147 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
6148 on it early, rather than manual conversion late. For
6149 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
6150 instead of performing manual conversion.
6152 2017-09-15 Martin Liska <mliska@suse.cz>
6154 Backport from mainline
6155 2017-09-14 Martin Liska <mliska@suse.cz>
6157 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
6158 Add proper printf format.
6160 2017-09-15 Martin Liska <mliska@suse.cz>
6162 Backport from mainline
6163 2017-08-30 Martin Liska <mliska@suse.cz>
6166 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
6168 (func_checker::compare_asm_inputs_outputs): ... this function.
6169 (func_checker::compare_gimple_asm): Use the function to compare
6170 also ASM constrains.
6171 * ipa-icf-gimple.h: Rename the function.
6173 2017-09-15 Martin Liska <mliska@suse.cz>
6175 Backport from mainline
6176 2017-08-29 Martin Liska <mliska@suse.cz>
6179 * gcc.c (driver_handle_option): Add new argument.
6180 * opts-common.c (handle_option): Pass
6181 target_option_override_hook.
6182 * opts-global.c (lang_handle_option): Add new option.
6183 (set_default_handlers): Add new argument.
6184 (decode_options): Likewise.
6185 * opts.c (target_handle_option): Likewise.
6186 (common_handle_option): Call target_option_override_hook.
6187 * opts.h (struct cl_option_handler_func): Add hook for
6188 target option override.
6189 (struct cl_option_handlers): Likewise.
6190 (set_default_handlers): Add new argument.
6191 (decode_options): Likewise.
6192 (common_handle_option): Likewise.
6193 (target_handle_option): Likewise.
6194 * toplev.c (toplev::main): Pass targetm.target_option.override
6197 2017-09-15 Martin Liska <mliska@suse.cz>
6199 Backport from mainline
6200 2017-08-10 Martin Liska <mliska@suse.cz>
6203 * c-attribs.c (handle_target_attribute):
6204 Report warning for an empty string argument of target attribute.
6206 2017-09-15 Martin Liska <mliska@suse.cz>
6208 Backport from mainline
6209 2017-08-08 Martin Liska <mliska@suse.cz>
6212 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
6213 LABEL_DECLs that can be from a different function.
6215 2017-09-15 Martin Liska <mliska@suse.cz>
6217 Backport from mainline
6218 2017-06-28 Martin Liska <mliska@suse.cz>
6221 * ipa-visibility.c (non_local_p): Handle visibility.
6223 2017-09-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6225 Backport from mainline
6226 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6229 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
6230 define_insn to a define_expand.
6231 (altivec_vsum2sws_direct): New define_insn.
6232 (altivec_vsumsws): Convert from a define_insn to a define_expand.
6234 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
6236 Backport from mainline
6238 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
6239 words of DImode object are reachable by xtensa_uimm8x4 access.
6241 2017-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6243 Backport from mainline
6244 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6247 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6248 Account for direct move costs for vec_construct of integer
6251 Backport from mainline
6252 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6255 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
6256 Reduce cost estimate for direct moves.
6258 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
6261 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
6262 (*mulsi3_sp64): New instruction.
6263 (mulsi3): New expander.
6265 2017-09-07 Jakub Jelinek <jakub@redhat.com>
6267 Backported from mainline
6268 2017-09-05 Jakub Jelinek <jakub@redhat.com>
6271 * omp-low.c (lower_omp_for): Recompute tree invariant if
6272 gimple_omp_for_initial/final is ADDR_EXPR.
6275 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
6276 into gimple val before gimplification fo the COND_EXPR.
6278 2017-09-04 Jakub Jelinek <jakub@redhat.com>
6280 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
6282 2017-09-01 Jakub Jelinek <jakub@redhat.com>
6285 * asan.c (create_odr_indicator): Strip name encoding from assembler
6286 name before appending it after __odr_asan_.
6288 2017-08-09 Jakub Jelinek <jakub@redhat.com>
6291 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
6293 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
6294 or DECL_NONLOCAL labels.
6295 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
6296 or DECL_NONLOCAL labels here.
6298 2017-08-03 Jakub Jelinek <jakub@redhat.com>
6301 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
6302 after setting changeable df flags.
6305 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
6306 instead of 10??LU, perform unit multiplication in wide_int,
6307 don't change alloc_object_size_limit if the limit is larger
6311 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
6312 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
6314 2017-09-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6316 Backport from mainline:
6317 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6319 PR tree-optimization/81987
6320 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
6321 insert an initializer in a location not dominated by the stride
6324 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6326 Backport from mainline
6327 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6328 Jakub Jelinek <jakub@redhat.com>
6329 Richard Biener <rguenther@suse.de>
6331 PR tree-optimization/81503
6332 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
6333 folded constant fits in the target type; reorder tests for clarity.
6335 2017-09-05 Pierre-Marie de Rodat <derodat@adacore.com>
6339 * dwarf2out.c (modified_type_die): For C typedef types that have
6340 an ultimate origin, process the ultimate origin instead of the
6342 (gen_typedef_die): Assert that input DECLs have no ultimate
6344 (gen_type_die_with_usage): For typedef variants that have an
6345 ultimate origin, just call gen_decl_die on the original DECL.
6346 (process_scope_var): Avoid creating DIEs for local typedefs and
6347 concrete static variables.
6349 2017-08-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6351 Backport from mainline
6352 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6355 * config/rs6000/rs6000.c (find_alignment_op): Add reference
6356 parameter and_insn and return it.
6357 (recombine_lvx_pattern): Insert a copy to ensure availability of
6358 the base register of the copied masking operation at the point of
6359 the instruction replacement.
6360 (recombine_stvx_pattern): Likewise.
6362 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
6364 Back port from trunk
6365 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
6368 * config/rs6000/vsx.md (vsx_concat_<mode>_1): New combiner insns
6369 to recognize inserting into a vector from a double word element
6370 that was extracted from another vector, and eliminate extra
6371 XXPERMDI instructions.
6372 (vsx_concat_<mode>_2): Likewise.
6373 (vsx_concat_<mode>_3): Likewise.
6374 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
6375 concat to allow optimizing inserts from previous extracts.
6377 2017-08-29 Alan Modra <amodra@gmail.com>
6380 2017-08-12 Alan Modra <amodra@gmail.com>
6383 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
6384 match gnu-user.h startfile.
6385 (ENDFILE_LINUX_SPEC): Similarly.
6387 2017-08-08 Alan Modra <amodra@gmail.com>
6388 H.J. Lu <hongjiu.lu@intel.com>
6392 * gcc.c (NO_PIE_SPEC): Delete.
6393 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
6395 (LINK_PIE_SPEC): ..to here.
6396 (LINK_COMMAND_SPEC): Support -no-pie.
6397 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
6398 chain of crtbegin*.o selection, update for PIE_SPEC changes and
6400 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
6401 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
6402 (ENDFILE_CRTEND_SPEC): Similarly.
6404 2017-08-29 Richard Biener <rguenther@suse.de>
6406 Backport from mainline
6407 2017-08-28 Richard Biener <rguenther@suse.de>
6409 PR tree-optimization/81977
6410 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
6413 2017-08-28 Richard Biener <rguenther@suse.de>
6416 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
6417 Do nothing for removed DIEs.
6419 2017-08-28 Richard Biener <rguenther@suse.de>
6421 Backport from mainline
6422 2017-06-14 Richard Biener <rguenther@suse.de>
6425 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
6427 (fold_binary_loc): When associating do not treat pre-existing
6428 TREE_OVERFLOW on literal constants as a reason to allow
6429 TREE_OVERFLOW on associated literal constants.
6431 2017-06-13 Richard Biener <rguenther@suse.de>
6434 * fold-const.c (extract_muldiv_1): Remove bogus distribution
6435 case of C * (x * C2 + C3).
6436 (fold_addr_of_array_ref_difference): Properly fold index difference.
6438 2017-06-07 Marek Polacek <polacek@redhat.com>
6441 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
6442 TYPE_OVERFLOW_WRAPS check.
6444 2017-08-28 Richard Biener <rguenther@suse.de>
6446 Backport from mainline
6447 2017-08-21 Richard Biener <rguenther@suse.de>
6450 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
6451 at struct end conservatively when comparing common bases.
6453 2017-05-04 Richard Biener <rguenther@suse.de>
6455 * tree.c (array_at_struct_end_p): Handle arrays at struct
6456 end with flexarrays more conservatively. Refactor and treat
6457 arrays of arrays or aggregates more strict. Fix
6458 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
6459 * tree.h (array_at_struct_end_p): Adjust prototype.
6460 * gimple-fold.c (get_range_strlen): Likewise.
6461 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
6463 2017-08-28 Richard Biener <rguenther@suse.de>
6465 Backport from mainline
6466 2017-08-01 Richard Biener <rguenther@suse.de>
6468 PR tree-optimization/81181
6469 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
6470 (compute_antic): ... end of iteration here.
6472 2017-08-08 Richard Biener <rguenther@suse.de>
6474 PR tree-optimization/81723
6475 * tree-vect-slp.c (struct bst_traits): New hash traits.
6476 (bst_fail): New global.
6477 (vect_build_slp_tree_2): New worker, split out from ...
6478 (vect_build_slp_tree): ... this now wrapping it with using
6479 bst_fail set to cache SLP tree build fails. Properly handle
6481 (vect_analyze_slp_instance): Allocate and free bst_fail.
6483 2017-08-24 Richard Biener <rguenther@suse.de>
6486 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
6488 (ix86_can_inline_p): When ix86_fpmath flags do not match
6489 check whether the callee uses FP math at all.
6491 2017-08-23 Peter Bergner <bergner@vnet.ibm.com>
6493 Backport from mainline
6494 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
6497 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
6498 operands residing in integer registers.
6499 (*vsx_le_perm_load_<mode>): Likewise.
6500 (*vsx_le_perm_store_<mode>): Likewise.
6501 (define_peephole2): Add peepholes to optimize the above.
6503 2017-08-22 Peter Bergner <bergner@vnet.ibm.com>
6505 Backport from mainline
6506 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
6509 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
6510 (rs6000_set_current_function): Rewrite function to use it.
6512 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
6514 Backport from mainline
6515 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
6517 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
6518 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
6519 (DOT_SYMBOLS): Likewise.
6520 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
6521 (RELOCATABLE_NEEDS_FIXUP): Likewise.
6522 (RS6000_ABI_NAME): Likewise.
6523 (TARGET_CMODEL): Likewise.
6524 (TOC_SECTION_ASM_OP): Likewise.
6525 (SET_CMODEL): New macro.
6526 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
6528 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
6530 Backport from 2017-08-22 trunk r251256.
6533 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
6534 not VAR_P. Filter attribute warnings with OPT_Wattributes.
6535 (avr_attribute_table) <io, io_low, address>: Initialize
6536 .decl_required with true.
6538 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
6541 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
6543 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
6546 * doc/extend.texi (x86 Built-in Functions): Correct the name of
6547 __builtin_ia32_lzcnt_u16.
6549 2017-08-17 Uros Bizjak <ubizjak@gmail.com>
6551 Backport from mainline
6552 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
6555 * config/i386/i386.c (ix86_option_override_internal): Save target
6556 specific options after ix86_stack_protector_guard_reg was changed.
6558 2017-08-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6560 Backport from mainline
6561 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6563 PR tree-optimization/81354
6564 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
6565 Insert on edges rather than explicitly creating landing pads.
6566 (analyze_candidates_and_replace): Commit edge inserts.
6568 2017-08-15 Joseph Myers <joseph@codesourcery.com>
6572 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
6573 constant count if that count is less than 32.
6575 2017-08-14 Richard Biener <rguenther@suse.de>
6577 * BASE-VER: Set to 7.2.1.
6579 2017-08-14 Release Manager
6581 * GCC 7.2.0 released.
6583 2017-08-08 Richard Biener <rguenther@suse.de>
6586 * function.c (thread_prologue_and_epilogue_insns): Restore
6587 behavior of always calling find_many_sub_basic_blocks on
6588 the inserted prologue.
6590 2017-08-02 Jakub Jelinek <jakub@redhat.com>
6593 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
6594 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
6595 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
6596 prologue_seq sequences - if any.
6598 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
6601 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
6602 print "ds:" only for immediates in generic address space.
6604 2017-08-01 Jakub Jelinek <jakub@redhat.com>
6607 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
6608 __builtin_vec_cmpne verify both arguments are compatible vectors
6609 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
6610 verify arg1_type is a pointer or array type. For __builtin_vec_st,
6611 move computation of aligned to after checking the argument types.
6614 2017-08-01 Martin Liska <mliska@suse.cz>
6616 Backport from mainline
6617 2017-07-26 Martin Liska <mliska@suse.cz>
6619 PR gcov-profile/81561
6620 * gcov.c (unblock): Make unblocking safe as we need to preserve
6621 index correspondence of blocks and block_lists.
6623 2017-08-01 Richard Biener <rguenther@suse.de>
6625 PR tree-optimization/71752
6626 PR tree-optimization/81633
6627 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands
6628 in the original suggested way.
6630 2017-08-01 Richard Sandiford <richard.sandiford@linaro.org>
6632 PR tree-optimization/80769
6633 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
6634 for malloc and calloc. Document the new invariant that all related
6635 strinfos have delayed lengths or none do.
6636 (get_next_strinfo): New function.
6637 (verify_related_strinfos): Move earlier in file.
6638 (set_endptr_and_length): New function, split out from...
6639 (get_string_length): ...here. Also set the lengths of related
6642 2017-08-01 Jakub Jelinek <jakub@redhat.com>
6644 PR tree-optimization/81588
6645 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
6646 ranges[i].in_p, invert comparison code ccode. For >/>=,
6647 swap rhs1 and rhs2 and comparison code unconditionally,
6648 for </<= don't do that. Don't swap rhs1/rhs2 again if
6649 ranges[i].in_p, instead invert comparison code ccode if
6650 opcode or oe->rank is BIT_IOR_EXPR.
6652 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6654 Backport from mainline
6655 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6657 * config.gcc: Add z14.
6658 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
6659 CPU model numbers for z13s and z14.
6660 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
6662 * config/s390/s390-opts.h (enum processor_type): Rename
6663 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
6664 * config/s390/s390.c (processor_table): Add field for CPU name to
6665 be passed to Binutils.
6666 (s390_asm_output_machine_for_arch): Use the new field in
6667 processor_table for Binutils.
6668 (s390_expand_builtin): Replace arch12 with z14.
6669 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
6670 (s390_get_sched_attrmask): Likewise.
6671 (s390_get_unit_mask): Likewise.
6672 * config/s390/s390.opt: Add z14 to processor_type enum.
6674 2017-07-31 Jakub Jelinek <jakub@redhat.com>
6677 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
6678 change type to the element type, instead add eltype variable and
6679 use it where we are interested in the element type.
6681 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
6683 Backport from mainline
6684 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
6686 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
6687 (PPC_FEATURE2_SCV): Likewise.
6688 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
6690 2017-07-28 David Edelsohn <dje.gcc@gmail.com>
6692 Backport from mainline
6693 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
6695 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
6697 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
6698 to dl_section_ref. On AIX, append an expression to subtract
6699 the size of the section length to dl_section_ref.
6701 2017-07-28 Bin Cheng <bin.cheng@arm.com>
6703 Backport from mainline r250496
6704 2017-07-25 Bin Cheng <bin.cheng@arm.com>
6707 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
6708 instructions if no du chain is found.
6710 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6712 Backport from mainline
6713 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6715 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
6717 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
6718 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
6719 (CRT_CALL_STATIC_FUNCTION): Likewise.
6720 (ASM_DEFAULT_SPEC): New define.
6721 (ASM_SPEC32): Likewise.
6722 (ASM_SPEC64): Likewise.
6723 (ASM_SPEC_COMMON): Likewise.
6724 (ASM_SPEC): Likewise.
6725 (INVALID_64BIT): Likewise.
6726 (LINK_OS_DEFAULT_SPEC): Likewise.
6727 (LINK_OS_SPEC32): Likewise.
6728 (LINK_OS_SPEC64): Likewise.
6729 (POWERPC_LINUX): Likewise.
6730 (PTRDIFF_TYPE): Likewise.
6731 (RESTORE_FP_PREFIX): Likewise.
6732 (RESTORE_FP_SUFFIX): Likewise.
6733 (SAVE_FP_PREFIX): Likewise.
6734 (SAVE_FP_SUFFIX): Likewise.
6735 (SIZE_TYPE): Likewise.
6736 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
6737 (TARGET_64BIT): Likewise.
6738 (TARGET_64BIT): Likewise.
6739 (TARGET_AIX): Likewise.
6740 (WCHAR_TYPE_SIZE): Likewise.
6741 (WCHAR_TYPE): Undefine.
6742 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
6743 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
6744 (CPP_OS_RTEMS_SPEC): Delete.
6745 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
6746 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
6748 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
6750 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
6752 Backport from mainline
6753 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
6755 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
6756 * config/riscv/rtems.h: New file.
6758 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
6760 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
6761 earlier and only if MASK_FPU is set. Adjust formatting.
6763 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6765 Backport from mainline
6766 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6769 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
6770 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
6771 Change s_operand to memory_operand.
6773 2017-07-27 Jakub Jelinek <jakub@redhat.com>
6775 PR tree-optimization/81555
6776 PR tree-optimization/81556
6777 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
6778 if true, force CHANGED for the recursive invocation.
6779 (reassociate_bb): Remember original length of ops array, pass
6780 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
6782 2017-07-27 Martin Liska <mliska@suse.cz>
6784 Backport from mainline
6785 2017-07-17 Martin Liska <mliska@suse.cz>
6788 * opts.c (finish_options): Do not allow -fgnu-tm
6789 w/ -fsanitize={kernel-,}address. Say sorry.
6791 2017-07-27 Martin Liska <mliska@suse.cz>
6793 Backport from mainline
6794 2017-07-26 Martin Liska <mliska@suse.cz>
6797 * function.c (expand_function_start): Make expansion of
6798 nonlocal_goto_save_area after parm_birth_insn.
6800 2017-07-27 Martin Liska <mliska@suse.cz>
6802 Backport from mainline
6803 2017-06-30 Martin Liska <mliska@suse.cz>
6806 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
6807 before BUILT_IN_UNWIND_RESUME when ASAN is used.
6809 2017-07-27 Martin Liska <mliska@suse.cz>
6811 Backport from mainline
6812 2017-06-28 Martin Liska <mliska@suse.cz>
6815 * asan.c (instrument_derefs): Bail out inner references
6816 that are hard register variables.
6818 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
6820 Backport from mainline
6821 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
6823 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
6824 (sparc_option_override): Honour MASK_FSMULD.
6825 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
6826 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
6827 * config/sparc/sparc.opt (mfsmuld): New option.
6828 * doc/invoke.texi (mfsmuld): Document option.
6830 2017-07-26 Georg-Johann Lay <avr@gjlay.de>
6832 Backport from 2017-07-25 trunk r250499.
6835 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
6836 * gimple-pretty-print.c (dump_probability): Same.
6837 * tree-ssa-structalias.c (alias_get_name): Same.
6839 2017-07-26 Richard Biener <rguenther@suse.de>
6841 Backport from mainline
6842 2017-06-18 Richard Biener <rguenther@suse.de>
6844 PR tree-optimization/81410
6845 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
6846 the gap in the ! slp_perm SLP case after each group.
6848 2017-07-25 Richard Biener <rguenther@suse.de>
6850 PR tree-optimization/81455
6851 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
6852 not walk in cycles when looking for guards.
6854 2017-07-25 Richard Biener <rguenther@suse.de>
6857 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
6860 2017-06-28 Jakub Jelinek <jakub@redhat.com>
6863 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
6864 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
6866 2017-06-26 Richard Biener <rguenther@suse.de>
6869 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
6870 Use def_builtin_pure for all gather builtins.
6872 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
6874 * config/i386/i386.c (struct builtin_isa): New field pure_p.
6875 Reorder for compactness.
6876 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
6877 (def_builtin_pure, def_builtin_pure2): New functions.
6878 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
6880 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
6882 Backport from mainline
6883 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
6885 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
6886 from all CPU target flags enable members.
6888 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
6890 Backport from mainline
6891 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
6894 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
6896 * config/arm/rtems.h: Likewise.
6897 * config/bfin/rtems.h: Likewise.
6898 * config/i386/rtemself.h: Likewise.
6899 * config/lm32/rtems.h: Likewise.
6900 * config/m32c/rtems.h: Likewise.
6901 * config/m68k/rtemself.h: Likewise.
6902 * config/microblaze/rtems.h: Likewise.
6903 * config/mips/rtems.h: Likewise.
6904 * config/moxie/rtems.h: Likewise.
6905 * config/nios2/rtems.h: Likewise.
6906 * config/rs6000/rtems.h: Likewise.
6907 * config/rtems.h: Likewise.
6908 * config/sh/rtems.h: Likewise.
6909 * config/sh/rtemself.h: Likewise.
6910 * config/sparc/rtemself.h: Likewise.
6912 2017-07-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6914 Backport from mainline
6915 2017-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6917 PR tree-optimization/81162
6918 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
6919 replace a negate with an add.
6921 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
6923 Backport from 2017-07-12 trunk r250151.
6926 * config/avr/avr.c (avr_encode_section_info)
6927 [progmem && !TREE_READONLY]: Error if progmem object needs
6930 2017-07-25 Wilco Dijkstra <wdijkstr@arm.com>
6933 * config/aarch64/aarch64.c (aarch64_classify_symbol):
6934 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
6936 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
6938 Backport from trunk r247719.
6940 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
6942 PR rtl-optimization/75964
6943 * simplify-rtx.c (simplify_const_relational_operation): Remove
6944 invalid handling of comparisons of integer ABS.
6946 2017-07-25 Bin Cheng <bin.cheng@arm.com>
6948 Backport from 2017-07-20 trunk r250384.
6950 PR tree-optimization/81388
6952 2016-07-21 Bin Cheng <bin.cheng@arm.com>
6954 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
6955 by removing computation of may_be_zero.
6957 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
6960 * config/i386/i386.c (ix86_option_override_internal): Disable
6961 BMI, BMI2 and TBM instructions for -m16.
6963 2017-07-19 Michael Meissner <meissner@linux.vnet.ibm.com>
6965 Back port from trunk
6966 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
6969 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
6970 provides the hardware capability bits, define the macro
6971 __BUILTIN_CPU_SUPPORTS__.
6972 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
6973 if GLIBC does not provide the hardware capability bits. Add a
6974 gcc_unreachable call if the built-in cpu function is neither
6975 __builtin_cpu_is nor __builtin_cpu_supports.
6976 * doc/extend.texi (PowerPC built-in functions): Document that
6977 GLIBC 2.23 or newer is needed by __builtin_cpu_is and
6978 __builtin_cpu_supports. Document the macros defined by GCC if the
6979 newer GLIBC is available.
6981 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
6984 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
6985 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
6986 operand 2 predicate.
6987 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
6988 operand 2 predicate.
6989 (ror,rol -> rorx splitters): Use const_int_operand as
6990 operand 2 predicate.
6992 2017-07-18 Tom de Vries <tom@codesourcery.com>
6994 backport from mainline:
6996 2017-07-17 Tom de Vries <tom@codesourcery.com>
6998 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
7001 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
7003 Backport from 2017-07-18 trunk r250301.
7006 * config/avr/avr.c (avr_optimize_casesi): Don't use
7007 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
7009 2017-07-17 Jakub Jelinek <jakub@redhat.com>
7011 PR tree-optimization/81428
7012 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
7013 can't be built for those types.
7015 PR tree-optimization/81365
7016 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
7017 aggregate moves onto bb predecessor edges, make sure there are no
7018 loads that could alias the lhs in between the start of bb and the
7021 Backported from mainline
7022 2017-06-30 Jakub Jelinek <jakub@redhat.com>
7025 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For
7026 V8FI, V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
7027 of nonimmediate_operand and <store_mask_constraint> instead of m for
7028 the input operand. For V8FI iterator, always split if input is a MEM.
7029 For V16FI and V8SF_256 iterators, don't test if both operands are MEM
7030 if <mask_applied>. For VI4F_256 iterator, use <store_mask_predicate>
7031 instead of register_operand and <store_mask_constraint> instead of v for
7032 the input operand. Make sure both operands aren't MEMs for if not
7035 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
7037 Backport from 2017-07-17 trunk r250258.
7040 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
7041 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
7042 [LSHIFTRT, outer_code = TRUNCATE]: Same.
7044 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
7046 Backport from mainline
7047 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
7049 * gcc/config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
7050 conditional builtin define __FIX_LEON3FT_B2BST.
7052 2017-07-17 Daniel Cederman <cederman@gaisler.com>
7054 Backport from mainline
7055 2017-07-17 Daniel Cederman <cederman@gaisler.com>
7057 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
7058 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
7061 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
7063 PR rtl-optimization/81424
7064 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
7065 to remove potential trapping from operands if -fnon-call-exceptions.
7067 2017-07-16 Daniel Cederman <cederman@gaisler.com>
7069 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
7070 to back store errata sensitive sequence from being generated.
7071 (sqrtdf2_fix): Likewise.
7073 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
7075 Backport from 2017-07-12 trunk r250156.
7078 * config/avr/avr.c (avr_set_current_function): In diagnostic
7079 messages: Quote keywords and (parts of) identifiers.
7080 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
7083 2017-07-11 Daniel Cederman <cederman@gaisler.com>
7085 * config/sparc/sparc.opt (mfix-ut700): New option.
7086 (mfix-gr712rc): Likewise.
7087 (sparc_fix_b2bst): New variable.
7088 * doc/invoke.texi (SPARC options): Document them.
7089 (ARM options): Fix warnings.
7090 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
7091 instructions to prevent sequences that can trigger the store-store
7092 errata for certain LEON3FT processors.
7093 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
7094 (sparc_option_override): Set sparc_fix_b2bst appropriately.
7095 * config/sparc/sparc.md (fix_b2bst): New attribute.
7096 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
7098 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
7101 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
7103 (*rsqrtsf2_sse): Ditto.
7105 (div<mode>3): Macroize insn from divdf3 and divsf3
7106 using MODEF mode iterator.
7108 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
7110 Backport from mainline
7111 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
7114 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
7115 correct operand in doing the split.
7117 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7119 * config/sparc/m8.md: New file.
7120 * config/sparc/sparc.md: Include m8.md.
7122 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7124 * config/sparc/sparc.opt: New option -mvis4b.
7125 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
7126 (sparc_option_override): Handle VIS4B.
7127 (enum sparc_builtins): Define
7128 SPARC_BUILTIN_DICTUNPACK{8,16,32},
7129 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
7130 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
7131 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
7132 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
7133 (check_constant_argument): New function.
7134 (sparc_vis_init_builtins): Define builtins
7135 __builtin_vis_dictunpack{8,16,32},
7136 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
7137 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
7138 __builtin_vis_fpcmpde{8,16,32}shl and
7139 __builtin_vis_fpcmpur{8,16,32}shl.
7140 (sparc_expand_builtin): Check that the constant operands to
7141 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
7142 constant and in range.
7143 * config/sparc/sparc-c.c (sparc_target_macros): Handle
7145 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
7146 (SPARC_IMM5_P): Likewise.
7147 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
7148 (enabled): Handle vis4b.
7149 (UNSPEC_DICTUNPACK): New unspec.
7150 (UNSPEC_FPCMPSHL): Likewise.
7151 (UNSPEC_FPUCMPSHL): Likewise.
7152 (UNSPEC_FPCMPDESHL): Likewise.
7153 (UNSPEC_FPCMPURSHL): Likewise.
7154 (cpu_feature): New CPU feature `vis4b'.
7155 (dictunpack{8,16,32}): New insns.
7156 (FPCSMODE): New mode iterator.
7157 (fpcscond): New code iterator.
7158 (fpcsucond): Likewise.
7159 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
7160 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
7161 (fpcmpde{8,16,32}{si,di}shl): Likewise.
7162 (fpcmpur{8,16,32}{si,di}shl): Likewise.
7163 * config/sparc/constraints.md: Define constraints `q' for unsigned
7164 2-bit integer constants and `t' for unsigned 5-bit integer
7166 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
7168 (imm5_operand_dictunpack16): Likewise.
7169 (imm5_operand_dictunpack32): Likewise.
7170 (imm2_operand): Likewise.
7171 * doc/invoke.texi (SPARC Options): Document -mvis4b.
7172 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
7173 ditunpack* and fpcmp*shl builtins.
7175 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7177 * config.gcc: Handle m8 in --with-{cpu,tune} options.
7178 * config.in: Add HAVE_AS_SPARC6 define.
7179 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
7181 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
7183 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
7184 (CPP_CPU_SPEC): Handle m8.
7185 (ASM_CPU_SPEC): Likewise.
7186 * config/sparc/sparc-opts.h (enum processor_type): Add
7188 * config/sparc/sparc.c (m8_costs): New struct.
7189 (sparc_option_override): Handle TARGET_CPU_m8.
7190 (sparc32_initialize_trampoline): Likewise.
7191 (sparc64_initialize_trampoline): Likewise.
7192 (sparc_issue_rate): Likewise.
7193 (sparc_register_move_cost): Likewise.
7194 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
7195 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
7196 (ASM_CPU64_DEFAULT_SPEC): Likewise.
7197 (CPP_CPU_SPEC): Handle M8.
7198 (ASM_CPU_SPEC): Likewise.
7199 (AS_M8_FLAG): Define.
7200 * config/sparc/sparc.md: Add m8 to the cpu attribute.
7201 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
7202 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
7204 * configure: Regenerate.
7205 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
7208 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7210 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
7212 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
7213 ("*movdi_insn_sp32"): Do not set v3pipe.
7214 ("*movsi_insn"): Likewise.
7215 ("*movdi_insn_sp64"): Likewise.
7216 ("*movsf_insn"): Likewise.
7217 ("*movdf_insn_sp32"): Likewise.
7218 ("*movdf_insn_sp64"): Likewise.
7219 ("*zero_extendsidi2_insn_sp64"): Likewise.
7220 ("*sign_extendsidi2_insn"): Likewise.
7221 ("*mov<VM32:mode>_insn"): Likewise.
7222 ("*mov<VM64:mode>_insn_sp64"): Likewise.
7223 ("*mov<VM64:mode>_insn_sp32"): Likewise.
7224 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
7225 ("<vlop:code><VL:mode>3"): Likewise.
7226 ("*not_<vlop:code><VL:mode>3"): Likewise.
7227 ("*nand<VL:mode>_vis"): Likewise.
7228 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
7229 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
7230 ("one_cmpl<VL:mode>2"): Likewise.
7231 ("faligndata<VM64:mode>_vis"): Likewise.
7232 ("alignaddrsi_vis"): Likewise.
7233 ("alignaddrdi_vis"): Likweise.
7234 ("alignaddrlsi_vis"): Likewise.
7235 ("alignaddrldi_vis"): Likewise.
7236 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
7237 ("bmaskdi_vis"): Likewise.
7238 ("bmasksi_vis"): Likewise.
7239 ("bshuffle<VM64:mode>_vis"): Likewise.
7240 ("cmask8<P:mode>_vis"): Likewise.
7241 ("cmask16<P:mode>_vis"): Likewise.
7242 ("cmask32<P:mode>_vis"): Likewise.
7243 ("pdistn<P:mode>_vis"): Likewise.
7244 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
7246 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7248 * config/sparc/sparc.md ("subtype"): New insn attribute.
7249 ("*wrgsr_sp64"): Set insn subtype.
7250 ("*rdgsr_sp64"): Likewise.
7251 ("alignaddrsi_vis"): Likewise.
7252 ("alignaddrdi_vis"): Likewise.
7253 ("alignaddrlsi_vis"): Likewise.
7254 ("alignaddrldi_vis"): Likewise.
7255 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
7256 ("fexpand_vis"): Likewise.
7257 ("fpmerge_vis"): Likewise.
7258 ("faligndata<VM64:mode>_vis"): Likewise.
7259 ("bshuffle<VM64:mode>_vis"): Likewise.
7260 ("cmask8<P:mode>_vis"): Likewise.
7261 ("cmask16<P:mode>_vis"): Likewise.
7262 ("cmask32<P:mode>_vis"): Likewise.
7263 ("fchksm16_vis"): Likewise.
7264 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
7265 ("fmean16_vis"): Likewise.
7266 ("fp<plusminus_insn>64_vis"): Likewise.
7267 ("<plusminus_insn>v8qi3"): Likewise.
7268 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
7269 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
7270 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
7271 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
7272 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
7273 ("*movqi_insn"): Likewise.
7274 ("*movhi_insn"): Likewise.
7275 ("*movsi_insn"): Likewise.
7276 ("movsi_pic_gotdata_op"): Likewise.
7277 ("*movdi_insn_sp32"): Likewise.
7278 ("*movdi_insn_sp64"): Likewise.
7279 ("movdi_pic_gotdata_op"): Likewise.
7280 ("*movsf_insn"): Likewise.
7281 ("*movdf_insn_sp32"): Likewise.
7282 ("*movdf_insn_sp64"): Likewise.
7283 ("*zero_extendhisi2_insn"): Likewise.
7284 ("*zero_extendqihi2_insn"): Likewise.
7285 ("*zero_extendqisi2_insn"): Likewise.
7286 ("*zero_extendqidi2_insn"): Likewise.
7287 ("*zero_extendhidi2_insn"): Likewise.
7288 ("*zero_extendsidi2_insn_sp64"): Likewise.
7289 ("ldfsr"): Likewise.
7290 ("prefetch_64"): Likewise.
7291 ("prefetch_32"): Likewise.
7292 ("tie_ld32"): Likewise.
7293 ("tie_ld64"): Likewise.
7294 ("*tldo_ldub_sp32"): Likewise.
7295 ("*tldo_ldub1_sp32"): Likewise.
7296 ("*tldo_ldub2_sp32"): Likewise.
7297 ("*tldo_ldub_sp64"): Likewise.
7298 ("*tldo_ldub1_sp64"): Likewise.
7299 ("*tldo_ldub2_sp64"): Likewise.
7300 ("*tldo_ldub3_sp64"): Likewise.
7301 ("*tldo_lduh_sp32"): Likewise.
7302 ("*tldo_lduh1_sp32"): Likewise.
7303 ("*tldo_lduh_sp64"): Likewise.
7304 ("*tldo_lduh1_sp64"): Likewise.
7305 ("*tldo_lduh2_sp64"): Likewise.
7306 ("*tldo_lduw_sp32"): Likewise.
7307 ("*tldo_lduw_sp64"): Likewise.
7308 ("*tldo_lduw1_sp64"): Likewise.
7309 ("*tldo_ldx_sp64"): Likewise.
7310 ("*mov<VM32:mode>_insn"): Likewise.
7311 ("*mov<VM64:mode>_insn_sp64"): Likewise.
7312 ("*mov<VM64:mode>_insn_sp32"): Likewise.
7314 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7316 * config/sparc/sparc.md ("type"): New insn type viscmp.
7317 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
7319 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
7320 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
7321 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
7322 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
7324 ("n7_vis_logical_11cycle"): Likewise.
7325 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
7326 * config/sparc/niagara2.md ("niag3_vis": Likewise.
7327 * config/sparc/niagara.md ("niag_vis"): Likewise.
7328 * config/sparc/ultra3.md ("us3_fga"): Likewise.
7329 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
7331 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
7333 * config/sparc/sparc.md: New instruction type `bmask'.
7334 (bmaskdi_vis): Use the `bmask' type.
7335 (bmasksi_vis): Likewise.
7336 * config/sparc/ultra3.md (us3_array): Likewise.
7337 * config/sparc/niagara7.md (n7_array): Likewise.
7338 * config/sparc/niagara4.md (n4_array): Likewise.
7339 * config/sparc/niagara2.md (niag2_vis): Likewise.
7340 (niag3_vis): Likewise.
7341 * config/sparc/niagara.md (niag_vis): Likewise.
7343 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
7345 Backport from 2017-07-05 trunk r249995.
7348 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
7349 Don't depend on "optimize > 0".
7350 (out_movhi_r_mr, out_movqi_mr_r): Same.
7351 (out_movhi_mr_r, out_movqi_r_mr): Same.
7352 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
7353 io_address_operand on "optimize > 0".
7355 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
7358 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
7359 Require dead FLAGS_REG at the beginning of a peephole.
7361 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
7364 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
7365 arguments in the call to __builtin_ia32_sbb_u32.
7366 (_subborrow_u64): Swap _X and _Y arguments in the call to
7367 __builtin_ia32_sbb_u64.
7369 2017-07-03 Segher Boessenkool <segher@kernel.crashing.org>
7371 Backport from trunk:
7373 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
7375 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
7378 2017-07-03 Tom de Vries <tom@codesourcery.com>
7380 backport from mainline:
7381 PR tree-optimization/81192
7382 2017-07-03 Tom de Vries <tom@codesourcery.com>
7384 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
7385 BB_SAME_SUCC (bb) == NULL.
7387 2017-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
7389 Backport from mainline
7390 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
7393 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
7394 32-bit, since indexed is not valid for DImode.
7395 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
7396 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
7397 (define_peephole2 for Altivec d-form load): Add 32-bit support.
7398 (define_peephole2 for Altivec d-form store): Likewise.
7400 Backport from mainline
7401 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
7404 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
7405 for doing vector set of SFmode on ISA 3.0.
7406 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
7407 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
7409 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
7410 SFmode value into a V4SF variable that was extracted from another
7411 V4SF variable without converting the element to double precision
7412 and back to single precision vector format.
7413 (vsx_insert_extract_v4sf_p9_2): Likewise.
7415 2017-06-29 Richard Biener <rguenther@suse.de>
7417 Backport from mainline
7418 2017-06-19 Richard Biener <rguenther@suse.de>
7421 * ipa-prop.c (find_constructor_constant_at_offset): Handle
7422 RANGE_EXPR conservatively.
7424 2017-06-28 Richard Biener <rguenther@suse.de>
7426 Backport from mainline
7427 2017-06-09 Richard Biener <rguenther@suse.de>
7430 * ipa-polymorphic-call.c
7431 (ipa_polymorphic_call_context::restrict_to_inner_class):
7432 Skip FIELD_DECLs with error_mark_node type.
7433 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
7436 2017-06-14 Richard Biener <rguenther@suse.de>
7438 PR tree-optimization/81083
7439 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
7442 2017-06-27 Segher Boessenkool <segher@kernel.crashing.org>
7444 Backports from trunk:
7446 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
7448 * real.c (do_compare): Give decimal_do_compare preference over
7449 comparing just the signs.
7451 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
7453 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
7454 splitter result in the canonical way.
7456 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
7458 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
7459 gen_add3_insn did not fail.
7460 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
7461 r0, construct that number in a temporary reg and add that reg to r0.
7462 If asked to put the result in r0 as well, fail.
7464 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
7466 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
7467 a call, force the call to not be a tail call.
7469 2017-06-27 Jakub Jelinek <jakub@redhat.com>
7472 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
7475 * gimple-fold.c (replace_call_with_call_and_fold): Handle
7476 gimple_vuse copying separately from gimple_vdef copying.
7478 2017-06-24 Jim Wilson <jim.wilson@linaro.org>
7480 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
7482 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
7483 * config/arm/arm-cpu-cdata.h: Regenerate.
7484 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
7485 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
7486 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
7487 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
7488 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
7490 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
7492 * config/arm/t-rmprofile: Likewise.
7493 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
7495 2017-06-24 Marek Polacek <polacek@redhat.com>
7497 Backport from mainline
7498 2017-05-04 Marek Polacek <polacek@redhat.com>
7500 PR tree-optimization/80612
7501 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
7503 2017-06-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
7505 Backport from mainline
7506 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7508 * config/arm/arm-builtins.c (arm_init_builtins): Rename
7509 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
7510 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
7512 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
7515 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
7518 2017-06-22 Martin Liska <mliska@suse.cz>
7520 Backport from mainline
7521 2017-06-19 Martin Liska <mliska@suse.cz>
7524 * gimplify.c (gimplify_switch_expr):
7525 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
7527 2017-06-22 Martin Liska <mliska@suse.cz>
7529 Backport from mainline
7530 2017-05-31 Martin Liska <mliska@suse.cz>
7533 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
7535 2017-06-22 Martin Liska <mliska@suse.cz>
7537 Backport from mainline
7538 2017-05-30 Martin Liska <mliska@suse.cz>
7541 * auto-profile.c (get_function_decl_from_block): Fix
7544 2017-06-22 Martin Liska <mliska@suse.cz>
7546 Backport from mainline
7547 2017-05-26 Martin Liska <mliska@suse.cz>
7550 * params.def: Bound partial-inlining-entry-probability param.
7552 2017-06-22 Martin Liska <mliska@suse.cz>
7554 Backport from mainline
7555 2017-05-16 Martin Liska <mliska@suse.cz>
7559 * ipa-devirt.c (warn_types_mismatch): Fix typo.
7560 (odr_types_equivalent_p): Likewise.
7562 2017-06-22 Martin Liska <mliska@suse.cz>
7564 Backport from mainline
7565 2017-05-15 Martin Liska <mliska@suse.cz>
7568 * gcc.c (process_command): Do not allow empty argument of -o option.
7570 2017-06-22 Martin Liska <mliska@suse.cz>
7572 Backport from mainline
7573 2017-05-02 Martin Liska <mliska@suse.cz>
7575 * doc/gcov.texi: Add missing preposition.
7576 * gcov.c (function_info::function_info): Properly fill up
7577 all member variables.
7579 2017-06-22 Martin Liska <mliska@suse.cz>
7581 Backport from mainline
7582 2017-05-02 Martin Liska <mliska@suse.cz>
7585 * common.opt: Fix typo.
7586 * doc/invoke.texi: Likewise.
7588 2017-06-22 Martin Liska <mliska@suse.cz>
7590 Backport from mainline
7591 2017-04-28 Martin Liska <mliska@suse.cz>
7593 * doc/gcov.texi: Enhance documentation of gcov.
7595 2017-06-22 Martin Liska <mliska@suse.cz>
7597 Backport from mainline
7598 2017-04-28 Martin Liska <mliska@suse.cz>
7600 * doc/gcov.texi: Sort options in alphabetic order.
7601 * doc/gcov-dump.texi: Likewise.
7602 * doc/gcov-tool.texi: Likewise.
7603 * gcov.c (print_usage): Likewise.
7604 * gcov-dump.c (print_usage): Likewise.
7605 * gcov-tool.c (print_merge_usage_message): Likewise.
7606 (print_rewrite_usage_message): Likewise.
7607 (print_overlap_usage_message): Likewise.
7609 2017-06-22 Martin Liska <mliska@suse.cz>
7611 Backport from mainline
7612 2017-04-28 Martin Liska <mliska@suse.cz>
7614 PR gcov-profile/53915
7615 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
7617 2017-06-22 Martin Liska <mliska@suse.cz>
7619 Backport from mainline
7620 2017-04-28 Martin Liska <mliska@suse.cz>
7623 * coverage.c (coverage_remove_note_file): New function.
7624 * coverage.h: Declare the function.
7625 * toplev.c (finalize): Clean if an error has been seen.
7627 2017-06-21 Jakub Jelinek <jakub@redhat.com>
7630 * config/i386/sse.md (round<mode>2): Renumber match_dup and
7631 operands indexes to avoid gap between operands and match_dups.
7634 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
7635 with ctors/dtors if GOVD_SHARED is set.
7637 Backported from mainline
7638 2017-06-20 Jakub Jelinek <jakub@redhat.com>
7641 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
7642 splitter): Require TARGET_SSE2 in the condition.
7645 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
7646 by removing enum keyword.
7647 (ubsan_type_descriptor): Likewise. Formatting fix.
7649 2017-06-19 Jakub Jelinek <jakub@redhat.com>
7652 * ubsan.h (enum ubsan_encode_value_phase): New.
7653 (ubsan_encode_value): Change second argument to
7654 enum ubsan_encode_value_phase with default value of
7655 UBSAN_ENCODE_VALUE_GENERIC.
7656 * ubsan.c (ubsan_encode_value): Change second argument to
7657 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
7658 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
7659 create_tmp_var_raw instead of create_tmp_var and use a
7661 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
7662 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
7663 ubsan_encode_value callers.
7666 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
7667 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
7668 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
7670 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
7672 Backport from Mainline
7673 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
7676 2017-06-20 Andreas Schwab <schwab@suse.de>
7679 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
7682 2017-06-19 James Greenhalgh <james.greenhalgh@arm.com>
7684 Backport from mainline
7685 2017-06-19 James Greenhalgh <james.greenhalgh@arm.com>
7688 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
7689 if given a non-constant argument for an intrinsic which requires a
7692 2017-06-19 Alexander Monakov <amonakov@ispras.ru>
7694 * doc/invoke.texi (mcx16): Rewrite.
7696 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
7698 PR rtl-optimization/80474
7699 * reorg.c (update_block): Do not ignore instructions in a delay slot.
7701 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
7703 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
7704 (MASK_FEATURES): New macro.
7705 * config/sparc/sparc.c (sparc_option_override): Remove the special
7706 handling of -mfpu and generalize it to all MASK_FEATURES switches.
7708 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
7710 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
7712 2017-06-12 David S. Miller <davem@davemloft.net>
7715 * config/sparc/sparc.md (return expander): Emit frame blockage if
7716 function uses alloca.
7718 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
7722 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
7725 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
7728 2017-06-08 David Edelsohn <dje.gcc@gmail.com>
7730 Backport from mainline
7731 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
7733 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
7734 (dl_section_ref): New.
7735 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
7736 On AIX, append an expression to subtract the size of the
7737 section length to dl_section_ref.
7739 2017-06-07 Richard Biener <rguenther@suse.de>
7741 Backport from mainline
7742 2017-05-02 Richard Biener <rguenther@suse.de>
7744 PR tree-optimization/80549
7745 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
7746 (cleanup_tree_cfg_noloop): Create forwarders to known loop
7747 headers if they do not have a preheader.
7749 2017-05-26 Richard Biener <rguenther@suse.de>
7751 PR tree-optimization/80842
7752 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
7755 2017-05-31 Richard Biener <rguenther@suse.de>
7757 PR tree-optimization/80906
7758 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
7759 and pass through iv_map.
7760 (copy_bb_and_scalar_dependences): Adjust.
7761 (translate_pending_phi_nodes): Likewise.
7762 (copy_loop_close_phi_args): Handle code-generating IVs instead
7765 2017-05-11 Richard Biener <rguenther@suse.de>
7767 PR tree-optimization/80705
7768 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
7769 bases are not vectorizable.
7771 2017-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
7773 Back port from mainline
7774 2017-05-19 Michael Meissner <meissner@linux.vnet.ibm.com>
7777 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Prefer
7778 VSX registers over GPRs, particularly on ISA 2.07 which does not
7779 have the MTVSRDD instruction.
7781 2017-06-06 David S. Miller <davem@davemloft.net>
7784 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
7785 blockage if function uses alloca.
7787 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
7789 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
7791 2017-06-02 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7793 Backport from mainline
7794 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
7795 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
7798 * config/arm/arm.md (use_literal_pool): Remove.
7799 (64-bit immediate split): No longer takes cost into consideration
7800 if arm_disable_literal_pool is enabled.
7801 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
7802 used when arm_disable_literal_pool is enabled.
7803 (arm_max_const_double_inline_cost): Remove use of
7804 arm_disable_literal_pool.
7805 (push_minipool_fix): Add assert.
7806 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
7807 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
7808 (no_literal_pool_sf_immediate): New.
7810 2017-06-02 Jakub Jelinek <jakub@redhat.com>
7812 PR rtl-optimization/80903
7813 * loop-doloop.c (add_test): Unshare sequence.
7815 2017-05-31 Martin Jambor <mjambor@suse.cz>
7817 Backport from mainline
7818 2017-04-24 Martin Jambor <mjambor@suse.cz>
7820 PR tree-optimization/80293
7821 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
7822 char arrays not totally scalarizable if it is false.
7823 (analyze_all_variable_accesses): Pass correct value in the new
7824 parameter. Add a statistics counter.
7826 2017-05-30 Max Filippov <jcmvbkbc@gmail.com>
7828 Backport from mainline
7829 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
7831 * config/xtensa/xtensa.c (xtensa_emit_call): Use
7832 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
7833 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
7836 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
7838 * doc/install.texi (Options specification): Restore entry of
7839 --enable-sjlj-exceptions.
7841 2017-05-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7843 Backport from mainline
7844 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7847 * config/s390/s390.c (s390_check_qrst_address): Check incoming
7848 address against address_operand predicate.
7849 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
7851 2017-05-28 Uros Bizjak <ubizjak@gmail.com>
7853 Backport from mainline
7854 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
7856 * config/i386/i386.md (*movdi_internal): Remove SSE4
7857 alternative 18 (?r, *v). Update insn attributes.
7858 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
7859 Update insn attributes.
7860 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
7861 Update insn attributes.
7862 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
7863 alternative 1 (r, v). Remove isa attribute.
7864 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
7865 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
7866 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
7868 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
7870 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
7871 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
7872 and (?*y,m). Update insn attributes.
7874 2017-05-26 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
7876 Backported from mainline
7877 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
7879 * config/sparc/sparc.md (length): Return the correct value for -mflat
7880 sibcalls to match output_sibcall.
7882 2017-05-26 Marek Polacek <polacek@redhat.com>
7884 Backported from mainline
7885 2017-05-26 Marek Polacek <polacek@redhat.com>
7888 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
7891 2017-05-26 Jakub Jelinek <jakub@redhat.com>
7893 Backported from mainline
7894 2017-05-22 Jakub Jelinek <jakub@redhat.com>
7897 * omp-low.c (finish_taskreg_remap): New function.
7898 (finish_taskreg_scan): If unit size of ctx->record_type
7899 is non-constant, unshare the size expression and replace
7900 decls in it with possible outer var refs.
7903 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
7904 GOVD_SHARED rather than GOVD_PRIVATE with it.
7905 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
7906 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
7909 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
7910 as last argument to build_outer_var_ref for pointer bases of array
7913 2017-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
7916 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
7919 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
7922 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
7923 (define_peephole2 for Altivec d-form load): Add peepholes to catch
7924 cases where the register allocator uses a move and an offsettable
7925 memory operation to/from a FPR register on ISA 2.06/2.07.
7926 (define_peephole2 for Altivec d-form store): Likewise.
7929 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
7932 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
7933 are now unused after splitting mov{sf,sd}_hardfloat.
7934 (f32_lr2): Likewise.
7936 (f32_lm2): Likewise.
7938 (f32_li2): Likewise.
7941 (f32_sr2): Likewise.
7943 (f32_sm2): Likewise.
7945 (f32_si2): Likewise.
7948 (f32_vsx): Likewise.
7950 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
7951 For movsf, order stores so the VSX stores occur before the GPR
7952 store which encourages the register allocator to use a traditional
7953 FPR instead of a GPR. For movsd, order the stores so that the GPR
7954 store comes before the VSX stores to allow the power6 to work.
7955 This is due to the power6 not having a 32-bit integer store
7956 instruction from a FPR.
7957 (movsf_hardfloat): Likewise.
7958 (movsd_hardfloat): Likewise.
7960 2017-05-25 Wilco Dijkstra <wdijkstr@arm.com>
7962 Backport from mainlin
7963 PR rtl-optimization/80754
7964 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
7966 2017-05-25 Wilco Dijkstra <wdijkstr@arm.com>
7968 Backport from mainline
7970 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
7971 Move member access before delete.
7973 2017-05-23 Sheldon Lobo <sheldon.lobo@oracle.com>
7975 Backport from mainline
7976 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
7978 * config/sparc/sparc.c (sparc_option_override): Set function
7979 alignment for -mcpu=niagara7 to 64 to match the I$ line.
7980 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
7982 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
7984 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
7986 2017-05-19 Uros Bizjak <ubizjak@gmail.com>
7988 Backport from mainline
7989 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
7992 * config/i386/mmx.md (*mov<mode>_internal): Enable
7993 alternatives 11, 12, 13 and 14 also for 32bit targets.
7994 Remove alternatives 15, 16, 17 and 18.
7995 * config/i386/sse.md (vec_concatv2di): Change
7996 alternative (!x, *y) to (x, ?!*Yn).
7998 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
8000 Backport from mainline
8001 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
8004 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
8005 (UNSPEC_STX_ATOMIC): Ditto.
8006 (loaddi_via_sse): New insn.
8007 (storedi_via_sse): Ditto.
8008 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
8009 Update corresponding peephole2 patterns.
8010 (atomic_storedi_fpu): Ditto.
8012 2017-05-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8014 Backport from mainline
8015 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8017 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
8018 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
8019 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
8020 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
8021 VF=2 that require versioning.
8023 2017-05-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8025 Backport from mainline
8026 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8028 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
8029 built-ins for vec_xl and vec_xst with short and char pointer
8032 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
8035 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
8036 handle calling assemble_external ourself.
8039 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
8040 modes with zero size. Enhance comment.
8042 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
8044 Back port from mainline
8045 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
8050 * config/rs6000/rs6000.md (u code attribute): Add FIX and
8052 (extendsi<mode>2): Add support for doing sign extension via
8053 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
8054 don't have ISA 3.0 instructions.
8055 (extendsi<mode>2 splitter): Likewise.
8056 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
8057 generate the normal insns since SImode can now go in vector
8058 registers. Disallow the special UNSPECs needed for previous
8059 machines to hide SImode being used. Add new insns
8060 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
8061 (fix_trunc<mode>si2_stfiwx): Likewise.
8062 (fix_trunc<mode>si2_internal): Likewise.
8063 (fixuns_trunc<mode>si2): Likewise.
8064 (fixuns_trunc<mode>si2_stfiwx): Likewise.
8065 (fctiw<u>z_<mode>_smallint): Likewise.
8066 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
8067 of floating point to 32-bit integer from doing a direct move to
8068 the GPR registers to do a store.
8069 (fctiwz_<mode>): Break long line.
8071 2017-05-08 Tamar Christina <tamar.christina@arm.com>
8074 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
8075 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
8077 2017-05-03 Jan Beulich <jbeulich@suse.com>
8079 Backport from mainline
8080 2017-05-01 Jan Beulich <jbeulich@suse.com>
8082 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
8083 swapping, add (x,x,m,x,n) alternative.
8085 2017-05-03 Richard Biener <rguenther@suse.de>
8087 Backport from mainline
8088 2017-04-20 Richard Biener <rguenther@suse.de>
8090 PR tree-optimization/80453
8091 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
8092 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
8093 from the conditions.
8094 (vn_phi_eq): Pass them down.
8095 (vn_phi_lookup): Record them.
8096 (vn_phi_insert): Likewise.
8098 2017-04-25 Richard Biener <rguenther@suse.de>
8100 PR tree-optimization/80492
8101 * alias.c (compare_base_decls): Handle registers with asm
8102 specification conservatively.
8104 2017-04-27 Richard Biener <rguenther@suse.de>
8107 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
8108 being in loop-closed SSA form conservatively.
8109 (chrec_fold_multiply_poly_poly): Likewise.
8111 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
8113 Backport from mainline
8114 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
8117 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
8118 __get_cpuid_max returns 0.
8119 (__get_cpuid_count): Ditto.
8121 2017-05-02 Jakub Jelinek <jakub@redhat.com>
8123 Backported from mainline
8124 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8126 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
8129 2017-05-02 Jakub Jelinek <jakub@redhat.com>
8131 * BASE-VER: Set to 7.1.1.
8133 2017-05-02 Release Manager
8135 * GCC 7.1.0 released.
8137 2017-05-02 Richard Biener <rguenther@suse.de>
8139 PR tree-optimization/80591
8141 2017-04-10 Richard Biener <rguenther@suse.de>
8143 * tree-ssa-structalias.c (find_func_aliases): Properly handle
8146 2017-04-28 Jakub Jelinek <jakub@redhat.com>
8149 * cgraph.h (symtab_node::debug_symtab): No longer inline.
8150 * symtab.c (symtab_node::debug_symtab): Move definition here.
8152 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
8155 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
8156 that the logic for permitting reciprocal estimates matches that
8159 2017-04-27 Jakub Jelinek <jakub@redhat.com>
8162 * tree.c (type_cache_hasher::equal): Only compare
8163 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
8164 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
8165 non-aggregate element types.
8166 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
8167 about the flag on ARRAY_TYPEs in the comment, formatting fix.
8170 * reg-stack.c (emit_swap_insn): If i1src mentions the stack pointer,
8171 punt if tmp contains autoinc of stack pointer.
8174 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
8175 (aarch64_function_arg_alignment): Return unsigned int again, but still
8176 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
8177 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8178 Don't emit -Wpsabi note.
8179 (aarch64_function_arg_boundary): Likewise.
8180 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8183 2017-04-25 Martin Sebor <msebor@redhat.com>
8185 PR tree-optimization/80497
8186 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
8187 constants are representable in HOST_WIDE_INT.
8188 (parse_directive): Ditto.
8190 2017-04-25 Marek Polacek <polacek@redhat.com>
8192 2017-04-25 Marek Polacek <polacek@redhat.com>
8193 Backport from mainline
8196 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8197 first argument to type.
8199 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8200 Jakub Jelinek <jakub@redhat.com>
8203 * config/arm/arm.c: Include gimple.h.
8204 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
8205 returns negative, increment ncrn only if it returned positive.
8206 (arm_needs_doubleword_align): Return int instead of bool,
8207 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
8208 members, but if there is any such non-FIELD_DECL
8209 > PARM_BOUNDARY aligned decl, return -1 instead of false.
8210 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
8211 returns negative, increment nregs only if it returned positive.
8212 (arm_setup_incoming_varargs): Likewise.
8213 (arm_function_arg_boundary): Emit -Wpsabi note if
8214 arm_needs_doubleword_align returns negative, return
8215 DOUBLEWORD_ALIGNMENT only if it returned positive.
8217 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
8219 Backport from mainline
8221 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
8222 type checks to test for compatibility instead of equality.
8224 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8225 Jakub Jelinek <jakub@redhat.com>
8228 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
8230 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
8231 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
8232 the alignment computation, but return their maximum in warn_alignment.
8233 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
8234 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
8236 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
8237 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
8240 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8242 Backport from mainline
8243 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8246 * config/s390/vector.md: Split MEM->GPR vector moves for
8247 non-s_operand addresses.
8249 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8251 Backport from mainline
8252 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8255 * config/s390/predicates.md (reload_const_wide_int_operand): New
8257 * config/s390/s390.md ("movti"): Remove d/P alternative.
8258 ("movti_bigconst"): New pattern definition.
8260 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8262 Backport from maineline
8263 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8266 * s390-protos.h (s390_expand_cs_hqi): Removed.
8267 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
8268 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
8269 modes as well as CCZ1mode and CCZmode.
8270 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
8271 signature of s390_emit_compare_and_swap.
8272 (s390_expand_cs_hqi): Likewise, make static.
8273 (s390_expand_cs_tdsi): Generate an explicit compare before trying
8274 compare-and-swap, in some cases.
8275 (s390_expand_cs): Wrapper function.
8276 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
8278 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
8279 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
8280 patterns for small and large integers. Forbid symref memory operands.
8281 Move expander to s390.c. Require cc register.
8282 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
8283 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
8284 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
8285 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
8286 symref memory operands. Remove CC mode and call s390_match_ccmode
8288 ("atomic_exchange<mode>"): Allow and implement all integer modes.
8290 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8292 Backport from mainline
8293 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8295 * config/s390/s390.md (define_peephole2): New peephole to help
8296 combining the load-and-test pattern with volatile memory.
8299 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8301 Backport from mainline
8302 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
8304 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
8305 with CCZmode for TARGET_Z196.
8307 2017-04-25 Jakub Jelinek <jakub@redhat.com>
8309 PR rtl-optimization/80501
8310 * combine.c (make_compound_operation_int): Set subreg_code to SET
8311 even for AND with mask of the sign bit of mode.
8313 PR rtl-optimization/80500
8314 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
8315 sum's initial value.
8317 2017-04-24 Martin Liska <mliska@suse.cz>
8319 Backport from mainline
8320 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
8323 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
8325 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8327 Backport from mainline
8328 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
8330 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear
8331 and lastprivate clauses in SIMT case.
8333 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
8335 Backport from mainline
8336 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
8338 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
8339 uninitialized variable warning to avoid buffer overrun.
8341 2017-04-20 Jakub Jelinek <jakub@redhat.com>
8343 * DEV-PHASE: Set to prerelease.
8345 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
8347 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
8348 priority .init_array and .fini_array section with SECTION_NOTYPE
8351 2017-04-20 Jakub Jelinek <jakub@redhat.com>
8354 * tree.h (build_array_type): Add typeless_storage default argument.
8355 * tree.c (type_cache_hasher::equal): Also compare
8356 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
8357 (build_array_type): Add typeless_storage argument, set
8358 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
8360 (build_nonshared_array_type): Adjust build_array_type_1 caller.
8361 (build_array_type): Likewise. Add typeless_storage argument.
8363 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
8364 Jakub Jelinek <jakub@redhat.com>
8366 PR tree-optimization/80426
8367 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
8368 operation on symbolic operands, also compute the overflow for the
8369 invariant part when the operation degenerates into a negation.
8371 2017-04-19 Jakub Jelinek <jakub@redhat.com>
8374 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
8375 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
8378 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
8380 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
8383 * config/avr/avr.c (tree.h): Include it.
8384 (cgraph.h): Include it.
8385 (avr_encode_section_info): Don't warn for uninitialized progmem
8386 variable if it's just an alias.
8388 2017-04-19 Richard Biener <rguenther@suse.de>
8391 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
8392 when needed by AutoPGO.
8394 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
8397 * doc/lto.texi: Remove an extra 'that'.
8399 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
8401 PR rtl-optimization/80429
8402 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
8403 are only used in debug insns.
8405 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
8406 Vladimir Makarov <vmakarov@redhat.com>
8408 * config/sparc/predicates.md (input_operand): Add comment. Return
8409 true for any memory operand when LRA is in progress.
8410 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
8412 2017-04-18 Jeff Law <law@redhat.com>
8415 * mips.md ({return,simple_return}_internal): Do not overwrite
8418 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8420 PR tree-optimization/80443
8421 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
8422 instead of adding 1, subtract -1 and similarly instead of subtracting
8425 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
8427 PR rtl-optimization/80357
8428 * haifa-sched.c (tmp_bitmap): New variable.
8429 (model_recompute): Handle duplicate use records.
8430 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
8431 (free_global_sched_pressure_data): Free it.
8433 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
8436 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
8437 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
8438 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
8439 instead of SYSTEM_HEADER_DIR.
8441 2017-04-18 Jeff Law <law@redhat.com>
8444 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
8445 predecessors after walking up the insn chain.
8447 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8450 * dwarf2out.c (modified_type_die): Try harder not to emit internal
8451 sizetype type into debug info.
8453 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
8456 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
8457 unneeded test for TARGET_UPPER_REGS_SF.
8458 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
8460 2017-04-18 Jakub Jelinek <jakub@redhat.com>
8463 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
8464 instead of gsi_after_labels.
8466 2017-04-18 Jeff Law <law@redhat.com>
8468 * regcprop.c (maybe_mode_change): Avoid creating copies of the
8472 2017-04-13 Jeff Law <law@redhat.com>
8473 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
8474 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
8476 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
8479 * config/avr/avr.c (intl.h): Include it.
8480 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
8482 2017-04-18 Martin Liska <mliska@suse.cz>
8484 PR gcov-profile/78783
8485 * gcov-tool.c (gcov_output_files): Validate that destination
8486 file is either removed by the tool or by a user.
8488 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
8489 Guy Benyei <guybe@mellanox.com>
8491 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
8492 block, and do not negate it, the stored id is already negative.
8494 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
8496 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
8498 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
8501 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
8502 masks of options that should be turned off if the VSX vector
8503 options are turned off.
8504 (OTHER_P8_VECTOR_MASKS): Likewise.
8505 (OTHER_VSX_VECTOR_MASKS): Likewise.
8506 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
8507 rs6000_disable_incompatible_switches to validate no type switches
8509 (rs6000_incompatible_switch): New function to disallow turning on
8510 other vector options if -mno-vsx, -mno-power8-vector, or
8511 -mno-power9-vector are specified.
8513 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8515 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
8517 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8519 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
8520 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
8521 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
8522 (ARG_POINTER_CFA_OFFSET): Likewise.
8524 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
8526 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
8527 conditions to take advantage of various optimizations.
8529 2017-04-13 Jeff Law <law@redhat.com>
8531 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
8532 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
8533 (zero_extendsidi2_dext): Likewise.
8535 2017-04-13 Jakub Jelinek <jakub@redhat.com>
8538 * fold-const.c (fold_ternary_loc): Revert
8539 use op0 instead of fold_convert_loc (loc, type, arg0) part of
8542 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
8544 PR rtl-optimization/80343
8545 * lra-remat.c (update_scratch_ops): Assign original hard reg to
8548 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
8551 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
8552 to ubsan_encode_value.
8554 2017-04-13 Jeff Law <law@redhat.com>
8556 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
8557 appearing in DEBUG_INSNs.
8559 2017-04-13 Martin Liska <mliska@suse.cz>
8561 PR gcov-profile/80413
8562 * gcov-io.c (gcov_write_string): Copy to buffer just when
8563 allocated size is greater than zero.
8565 2017-04-13 Jakub Jelinek <jakub@redhat.com>
8568 * dwarf2out.c (decls_for_scope): Ignore declarations of
8569 current_function_decl in BLOCK_NONLOCALIZED_VARS.
8571 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
8574 * ipa-visibility.c (non_local_p): Fix typos.
8575 (localize_node): When localizing symbol in same comdat group,
8576 dissolve the group only when we know external symbols are going
8578 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
8580 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8582 PR tree-optimization/79390
8583 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
8584 order does not result in usable sequence, retry with reversed operand
8590 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
8591 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
8592 op0 instead of fold_convert_loc (loc, type, arg0).
8594 2017-04-12 Jeff Law <law@redhat.com>
8596 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
8597 has a delay slot in the generated code.
8599 * config/cris/cris.md (cris_preferred_reload_class): Return
8600 GENNONACR_REGS rather than GENERAL_REGS.
8602 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8605 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
8606 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
8607 signedness of the result type.
8609 2017-04-12 Richard Biener <rguenther@suse.de>
8610 Jeff Law <law@redhat.com>
8612 PR tree-optimization/80359
8613 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
8614 trim stores to TARGET_MEM_REFs.
8616 2017-04-12 Richard Biener <rguenther@suse.de>
8618 PR tree-optimization/79390
8619 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
8620 threading case even more.
8622 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
8625 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
8626 for quad_address_p for TImode, instead of just not indexed_address.
8628 2017-04-12 Richard Biener <rguenther@suse.de>
8629 Bernd Edlinger <bernd.edlinger@hotmail.de>
8632 * alias.c (component_uses_parent_alias_set_from): Handle
8633 TYPE_TYPELESS_STORAGE.
8634 (get_alias_set): Likewise.
8635 * tree-core.h (tree_type_common): Add typeless_storage flag.
8636 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
8637 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
8638 for types containing members with TYPE_TYPELESS_STORAGE.
8639 (place_field): Likewise.
8640 (layout_type): Likewise for ARRAY_TYPE.
8641 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
8642 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
8643 TYPE_TYPELESS_STORAGE.
8644 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
8646 2017-04-12 Jakub Jelinek <jakub@redhat.com>
8649 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
8650 first argument to type.
8652 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
8656 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
8657 CONST0_RTX (mode) rather than const0_rtx where appropriate.
8658 (rs6000_expand_binop_builtin): Likewise.
8659 (rs6000_expand_ternop_builtin): Likewise; also add missing
8660 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
8661 vshasigma built-ins.
8662 * doc/extend.texi: Document that vec_xxpermdi's third argument
8665 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
8667 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
8668 Use shift_const cost parameter when calculating gain of STV shifts.
8670 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
8672 PR rtl-optimization/70478
8673 * lra-constraints.c (process_alt_operands): Check memory for
8674 disfavoring memory insn operand.
8676 2017-04-11 Jakub Jelinek <jakub@redhat.com>
8679 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
8680 left shift in unsigned HOST_WIDE_INT type.
8682 PR rtl-optimization/80385
8683 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
8684 (not (neg X)) into (plus X -1) for complex or non-integral modes.
8687 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
8688 if they have any depend clauses.
8690 2017-04-11 Martin Liska <mliska@suse.cz>
8693 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
8694 * ipa-split.c (split_function): Create a local comdat symbol
8695 if caller is in a comdat group.
8697 2017-04-11 Martin Liska <mliska@suse.cz>
8700 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
8703 2017-04-11 Martin Sebor <msebor@redhat.com>
8706 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
8707 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
8709 (directive::set_width, directive::set_precision, format_character):
8711 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
8714 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
8717 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
8718 conflict, set target->arch_name instead of target->cpu_name.
8720 2017-04-11 Richard Biener <rguenther@suse.de>
8722 PR tree-optimization/80374
8723 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
8724 build_zero_cst, remove fold_convertible_p check again.
8726 2017-04-11 Martin Liska <mliska@suse.cz>
8729 * ubsan.c (instrument_object_size): Do not instrument register
8732 2017-04-11 Jakub Jelinek <jakub@redhat.com>
8735 * config/i386/i386-builtin-types.def
8736 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
8737 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
8738 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
8739 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
8740 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
8741 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
8742 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
8743 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
8744 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
8745 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
8746 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
8747 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
8748 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
8749 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
8750 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
8751 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
8752 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
8753 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
8754 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
8755 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
8756 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
8757 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
8758 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
8759 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
8760 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
8761 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
8762 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
8763 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
8764 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
8765 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
8766 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
8767 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
8768 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
8769 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
8770 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
8771 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
8772 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
8773 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
8774 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
8775 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
8776 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
8777 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
8778 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
8779 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
8780 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
8781 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
8783 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
8784 flag to second_arg_count, handle 4 argument function type _COUNT
8785 aliases, handle second_arg_count on second argument rather than last.
8787 2017-04-10 Jeff Law <law@redhat.com>
8789 PR tree-optimization/80374
8790 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
8791 record anything if we can not convert integer_zero_node to the
8794 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
8797 * config/rs6000/rs6000.c (rs6000_option_override_internal):
8798 Enhance special handling given to the TARGET_P9_MINMAX option in
8799 relation to certain other options.
8801 2017-04-10 Bin Cheng <bin.cheng@arm.com>
8803 PR tree-optimization/80153
8804 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
8805 remove POINTER_PLUS_EXPR's base part directly, rather than through
8808 2017-04-10 Richard Biener <rguenther@suse.de>
8809 Bin Cheng <bin.cheng@arm.com>
8811 PR tree-optimization/80153
8812 * tree-affine.c (aff_combination_to_tree): Get base pointer from
8813 the first element of pointer type aff_tree. Build result expr in
8815 (add_elt_to_tree): Convert to type unconditionally. Remove other
8817 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
8818 (rewrite_use_nonlinear_expr): Check invariant using iv information.
8820 2017-04-10 Richard Biener <rguenther@suse.de>
8822 * tree-ssa-structalias.c (find_func_aliases): Properly handle
8825 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
8827 PR rtl-optimization/70478
8828 * lra-constraints.c (curr_small_class_check): New.
8829 (update_and_check_small_class_inputs): New.
8830 (process_alt_operands): Update curr_small_class_check. Disfavor
8831 alternative insn memory operands. Check available regs for small
8834 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
8837 * config/mips/mips.opt (-mvirt): Update description.
8838 * doc/invoke.texi (-mvirt): Likewise.
8840 2017-04-10 Richard Biener <rguenther@suse.de>
8843 * fold-const.c (fold_binary_loc): Look at unstripped ops when
8844 looking for NEGATE_EXPR in -A / -B to A / B folding.
8846 2017-04-10 Martin Liska <mliska@suse.cz>
8848 PR gcov-profile/80224
8849 * gcov.c (print_usage): Fix usage string.
8850 (get_gcov_intermediate_filename): Remove.
8851 (output_gcov_file): Use both for normal and intermediate format.
8852 (generate_results): Do not initialize special file for
8853 intermediate format.
8855 2017-04-10 Richard Biener <rguenther@suse.de>
8857 PR tree-optimization/80304
8858 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
8861 2017-04-10 Nathan Sidwell <nathan@acm.org>
8864 * config/rs6000/rs6000.c (rs6000_vector_type): New.
8865 (rs6000_init_builtins): Use it.
8867 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8869 * config/arm/arm.md (<mrc>): Add mode to SET source.
8872 2017-04-10 Richard Biener <rguenther@suse.de>
8875 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
8877 2017-04-10 Jakub Jelinek <jakub@redhat.com>
8880 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
8881 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
8882 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
8883 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
8884 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
8885 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
8886 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
8887 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
8888 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
8889 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
8890 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
8891 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
8892 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
8893 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
8894 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
8895 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
8896 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
8897 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
8898 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
8899 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
8900 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
8901 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
8902 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
8904 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
8906 PR rtl-optimization/70478
8907 * lra-constraints.c: Reverse the last patch.
8909 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
8911 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
8912 Add comment for WCHAR_T.
8914 2017-04-08 Martin Liska <mliska@suse.cz>
8917 2017-04-07 Martin Liska <mliska@suse.cz>
8920 * ipa-split.c (split_function): Add function part to a same comdat
8923 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8926 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
8928 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
8930 * rs6000/rs6000.c (vec_load_pendulum): Rename...
8931 (vec_pairing): ...to this.
8932 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
8933 (rs6000_sched_init): Adjust for name change.
8934 (struct rs6000_sched_context): Likewise.
8935 (rs6000_init_sched_context): Likewise.
8936 (rs6000_set_sched_context): Likewise.
8938 2017-04-07 Jakub Jelinek <jakub@redhat.com>
8944 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
8946 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
8947 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
8948 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
8950 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
8952 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
8954 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
8956 PR rtl-optimization/70703
8957 * ira-color.c (update_conflict_hard_regno_costs): Use
8958 int64_t instead of HOST_WIDE_INT.
8960 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
8962 PR rtl-optimization/70478
8963 * lra-constraints.c (process_alt_operands): Disfavor alternative
8964 insn memory operands.
8966 2017-04-07 Jeff Law <law@redhat.com>
8968 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
8969 CALL and NOTE_INSN_CALL_ARG_LOCATION.
8971 2017-04-07 Martin Liska <mliska@suse.cz>
8974 * config/aarch64/aarch64.c (aarch64_process_target_attr):
8975 Show error message instead of an ICE.
8977 2017-04-07 Martin Liska <mliska@suse.cz>
8980 * ipa-split.c (split_function): Add function part to a same comdat
8983 2017-04-07 Richard Biener <rguenther@suse.de>
8986 * tree.c (get_unwidened): Also handle ! for_type case for
8988 * convert.c (do_narrow): Split out from ...
8989 (convert_to_integer_1): ... here. Do not pass final truncation
8990 type to get_unwidened for TRUNC_DIV_EXPR.
8992 2017-04-07 Richard Biener <rguenther@suse.de>
8994 * tree-affine.c (wide_int_ext_for_comb): Take type rather
8996 (aff_combination_const): Adjust.
8997 (aff_combination_scale): Likewise.
8998 (aff_combination_add_elt): Likewise.
8999 (aff_combination_add_cst): Likewise.
9000 (aff_combination_convert): Likewise.
9001 (add_elt_to_tree): Likewise. Remove unused argument.
9002 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
9004 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
9006 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
9008 * config/arm/arm.c (arm_default_short_enums): Use
9009 ARM_DEFAULT_SHORT_ENUMS.
9010 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
9012 2017-04-06 Jakub Jelinek <jakub@redhat.com>
9015 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
9016 members with redundant out-of-class redeclaration.
9018 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9021 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
9022 * config/i386/i386.md (*zero_extendsidi2):
9023 Add (?*x,*x) and (?*v,*v) alternatives.
9025 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
9028 * config/i386/i386.c (ix86_expand_builtin)
9029 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
9030 mode from insn data. Convert operands to insn operand mode.
9031 Copy operands that don't satisfy insn predicate to a register.
9033 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
9035 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
9038 2017-04-06 Richard Biener <rguenther@suse.de>
9040 PR tree-optimization/80334
9041 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
9042 preserve alignment of accesses.
9044 2017-04-06 Richard Biener <rguenther@suse.de>
9046 PR tree-optimization/80262
9047 * tree-sra.c (build_ref_for_offset): Preserve address-space
9049 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
9050 Drop useless address-space information on MEM_REF offsets.
9052 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
9054 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
9056 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9058 PR rtl-optimization/70703
9059 * ira-color.c (update_conflict_hard_regno_costs): Use
9060 HOST_WIDE_INT instead of long.
9062 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
9065 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
9066 not defined for x86_64 target. Add -mmmx target option when __SSE2__
9068 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
9069 for x86_64 target. Handle -m3dnowa option.
9071 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
9073 PR rtl-optimization/70703
9074 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
9075 (update_conflict_hard_regno_costs): Use long instead of unsigned
9076 arithmetic for cost calculation.
9078 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9079 Bernd Edlinger <bernd.edlinger@hotmail.de>
9082 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
9085 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
9088 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
9089 ptr_mode with Pmode throughout.
9090 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
9091 into probe_stack_range and use DImode.
9093 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
9096 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
9097 call_eh_return is true.
9099 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9101 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
9102 Initialize last_match_fntype_index.
9104 2017-04-05 Jakub Jelinek <jakub@redhat.com>
9107 * tree-nvr.c: Include internal-fn.h.
9108 (pass_return_slot::execute): Ignore internal calls without
9111 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9112 Richard Biener <rguenther@suse.de>
9115 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
9116 captures used multiple times, except for the last use.
9117 * generic-match-head.c: Include gimplify.h.
9119 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9121 PR tree-optimization/79390
9122 * target.h (struct noce_if_info): Declare.
9123 * targhooks.h (default_noce_conversion_profitable_p): Declare.
9124 * target.def (noce_conversion_profitable_p): New target hook.
9125 * ifcvt.h (struct noce_if_info): New type, moved from ...
9126 * ifcvt.c (struct noce_if_info): ... here.
9127 (noce_conversion_profitable_p): Renamed to ...
9128 (default_noce_conversion_profitable_p): ... this. No longer
9130 (noce_try_store_flag_constants, noce_try_addcc,
9131 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
9132 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
9133 instead of noce_conversion_profitable_p.
9134 * config/i386/i386.c: Include ifcvt.h.
9135 (ix86_option_override_internal): Don't override
9136 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
9137 (ix86_noce_conversion_profitable_p): New function.
9138 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
9139 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
9140 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
9141 * doc/tm.texi: Regenerated.
9143 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9145 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
9148 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
9151 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
9152 instructions for small multiply cores.
9154 2017-04-04 Jeff Law <law@redhat.com>
9156 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
9158 (mips_expand_vec_perm_const): Initialize elements in orig_perm
9159 that are not set by the loop over the elements.
9161 2017-04-04 Jakub Jelinek <jakub@redhat.com>
9164 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
9165 int mode, convert_modes it to mode as unsigned, otherwise use
9166 lowpart_subreg to mode rather than SImode.
9167 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
9168 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
9169 Use DImode instead of SImode for the shift count operand.
9170 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
9173 2017-04-04 Richard Biener <rguenther@suse.de>
9176 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
9177 arithmetic done for the negate or the plus. Simplify.
9178 (A - (-B) -> A + B): Likewise.
9179 * fold-const.c (split_tree): Make sure to not negate pointers.
9181 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
9183 PR rtl-optimization/60818
9184 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
9185 a compare of comparisons with the thing compared if this results
9186 in a different machine mode.
9188 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
9190 * alias.c (base_alias_check): Fix typo in comment.
9191 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
9192 * cgraphunit.c (symbol_table::compile): Likewise.
9193 * collect2.c (maybe_run_lto_and_relink): Likewise.
9194 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
9195 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
9196 * config/avr/avr.c (avr_map_op_t): Likewise.
9197 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
9198 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
9199 * config/epiphany/epiphany.md (movcc): Likewise.
9200 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
9201 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
9203 * config/mips/mips.c (mips_save_restore_reg): Likewise.
9204 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
9205 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
9206 * config/sh/sh.c (sh_rtx_costs): Likewise.
9207 * fold-const.c (fold_truth_andor): Likewise.
9208 * genautomata.c (collapse_flag): Likewise.
9209 * gengtype.h (struct type::u::s): Likewise.
9210 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
9211 * input.c (FORMAT_AMOUNT): Likewise.
9212 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
9213 (known_aggs_to_agg_replacement_list): Likewise.
9214 * ipa-inline-analysis.c: Likewise.
9215 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
9216 * ipa-polymorphic-call.c
9217 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
9218 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
9219 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
9221 * modulo-sched.c (apply_reg_moves): Likewise.
9222 * omp-expand.c (build_omp_regions_1): Likewise.
9223 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
9224 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
9225 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
9226 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
9227 * value-prof.c: Likewise.
9228 * var-tracking.c (val_reset): Likewise.
9230 2017-04-03 Richard Biener <rguenther@suse.de>
9232 PR tree-optimization/80275
9233 * fold-const.c (split_address_to_core_and_offset): Handle
9236 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
9238 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
9239 descriptors is at least equal to that of functions.
9241 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9243 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
9245 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
9248 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
9249 (mov<IMOD4:mode>): New expander.
9250 (*mov<IMOD4:mode>_internal): New insn and split pattern.
9252 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
9254 PR rtl-optimization/79405
9255 * fwprop.c (propagations_left): New variable.
9256 (forward_propagate_into): Decrement it.
9257 (fwprop_init): Initialize it.
9258 (fw_prop): If the variable has reached zero, stop propagating.
9259 (fwprop_addr): Ditto.
9261 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9264 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
9265 a FUNCTION_DECL, pass it as decl instead of origin to
9268 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
9270 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
9273 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
9276 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
9277 TARGET_VSX_SMALL_INTEGER.
9279 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9281 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
9282 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
9284 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
9286 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
9287 extraction from odd-numbered MSA register.
9289 2017-03-31 Jakub Jelinek <jakub@redhat.com>
9292 * expmed.c (store_bit_field_1): Don't attempt to create
9293 a word subreg out of hard registers wider than word if they
9294 have HARD_REGNO_NREGS of 1 for their mode.
9297 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
9298 conversions to integer types wider than word and pointer.
9301 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
9302 (rtx_equal_for_cselib_p): Pass 0 to it.
9303 * cselib.c (cselib_hasher::equal): Likewise.
9304 (rtx_equal_for_cselib_1): Add depth argument. If depth
9305 is 128, don't look up VALUE locs and punt. Increment
9306 depth in recursive calls when walking VALUE locs.
9308 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
9310 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
9311 (make_gcov_file_name): Use the canonical path name for generating
9313 (read_line): Fix handling of files with ascii null bytes.
9315 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
9317 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
9318 to initialise a vector register instead
9319 of using a const_int.
9321 2017-03-30 Jakub Jelinek <jakub@redhat.com>
9323 PR translation/80189
9324 * gimplify.c (omp_default_clause): Use %qs instead of %s in
9325 diagnostic messages.
9327 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
9330 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
9331 (dfp_diex_<mode>): Update mode of operand 1.
9332 * doc/extend.texi (dxex, dxexq): Document change to return type.
9333 (diex, diexq): Document change to argument type.
9335 2017-03-30 Martin Jambor <mjambor@suse.cz>
9338 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
9339 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
9340 it reflects the signature changes performed at the callee side.
9341 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
9342 to cgraph_build_function_type_skip_args.
9343 (build_function_decl_skip_args): Adjust call to the above function.
9345 2017-03-30 Jakub Jelinek <jakub@redhat.com>
9348 * config/i386/sse.md
9349 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
9350 register as dest whenever it is a MEM not rtx_equal_p to the
9351 corresponding dup operand, and when forcing into reg move the
9352 reg into the memory afterwards.
9353 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
9354 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
9355 for the force_reg mode.
9356 (avx512vl_vextractf128<mode>): Use register as dest either
9357 always when a MEM, or when it is a MEM not rtx_equal_p to the
9358 corresponding dup operand, or even not when it is a CONST_VECTOR
9359 depending on the mode and lo vs. hi.
9360 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
9362 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
9363 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
9364 Likewise. Require that operands[2] is even.
9365 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
9366 Remove extraneous parens. Require that operands[2] is a multiple
9368 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
9369 operands[0] is a MEM if <mask_applied>, the predicates/constraints
9370 disallow memory then.
9372 2017-03-30 Richard Biener <rguenther@suse.de>
9374 PR tree-optimization/77498
9375 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
9376 to non-constants over backedges.
9378 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
9380 PR rtl-optimization/80233
9381 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
9382 as last_combined_insn. Do not test for BARRIER_P separately.
9384 2017-03-29 Andreas Schwab <schwab@suse.de>
9387 * calls.c (prepare_call_address): Convert funexp to Pmode before
9388 copying to temp reg.
9390 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9392 PR tree-optimization/80158
9393 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
9394 Handle possible future case of more than one alternate
9396 (replace_rhs_if_not_dup): Likewise.
9397 (replace_one_candidate): Likewise.
9399 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
9401 PR rtl-optimization/80193
9402 * ira.c (ira): Do not check allocation for LRA.
9404 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
9406 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
9407 (nvptx_output_simt_exit): Declare.
9408 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
9409 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
9410 (init_softstack_frame): Move initialization of crtl->is_leaf to...
9411 (nvptx_declare_function_name): ...here. Emit declaration of local
9412 memory space buffer for omp_simt_enter insn.
9413 (nvptx_output_unisimt_switch): New.
9414 (nvptx_output_softstack_switch): New.
9415 (nvptx_output_simt_enter): New.
9416 (nvptx_output_simt_exit): New.
9417 * config/nvptx/nvptx.h (struct machine_function): New fields
9418 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
9419 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
9420 (UNSPECV_SIMT_EXIT): Ditto.
9421 (omp_simt_enter_insn): New insn.
9422 (omp_simt_enter): New expansion.
9423 (omp_simt_exit): New insn.
9424 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
9426 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
9427 (expand_GOMP_SIMT_ENTER_ALLOC): New.
9428 (expand_GOMP_SIMT_EXIT): New.
9429 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
9430 (GOMP_SIMT_ENTER_ALLOC): Ditto.
9431 (GOMP_SIMT_EXIT): Ditto.
9432 * target-insns.def (omp_simt_enter): New insn.
9433 (omp_simt_exit): Ditto.
9434 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
9436 (lower_rec_simd_input_clauses): Implement SIMT privatization.
9437 (lower_rec_input_clauses): Likewise.
9438 (lower_lastprivate_clauses): Handle SIMT privatization.
9440 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
9441 (ompdevlow_adjust_simt_enter): New.
9442 (find_simtpriv_var_op): New.
9443 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
9444 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
9446 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
9447 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
9448 (copy_decl_for_dup_finish): Ditto.
9450 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
9452 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
9455 * config/i386/i386.c (ix86_option_override_internal): Always
9456 allow -mpreferred-stack-boundary=3 for 64-bit targets.
9458 2017-03-28 Bin Cheng <bin.cheng@arm.com>
9460 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
9462 2017-03-28 Bin Cheng <bin.cheng@arm.com>
9464 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
9465 mark new edge's irreducible flag accordign to it.
9466 (vect_do_peeling): Check loop preheader edge's irreducible flag
9467 and pass it to function slpeel_add_loop_guard.
9469 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
9471 PR tree-optimization/80218
9472 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
9473 Update block frequencies and counts.
9475 2017-03-28 Richard Biener <rguenther@suse.de>
9477 PR tree-optimization/78644
9478 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
9479 of a simplification result we may not use it at all.
9481 2017-03-28 Richard Biener <rguenther@suse.de>
9484 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
9485 without arguments, generate default definition of a SSA name.
9487 2017-03-28 Richard Biener <rguenther@suse.de>
9490 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
9491 TYPE_REF_CAN_ALIAS_ALL references.
9492 * fold-const.c (fold_indirect_ref_1): Likewise.
9494 2017-03-28 Martin Liska <mliska@suse.cz>
9497 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
9498 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
9500 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
9501 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
9503 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
9504 (EXTRA_SPECS): Define.
9505 (SUBTARGET_EXTRA_SPECS): Likewise.
9506 (SUBTARGET_CPP_SPEC): Likewise.
9507 * config/arc/elf.h (EXTRA_SPECS): Renamed to
9508 SUBTARGET_EXTRA_SPECS.
9509 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
9511 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
9513 * config/arc/simdext.md (vst64_insn): Update pattern.
9514 (vld32wh_insn): Likewise.
9515 (vld32wl_insn): Likewise.
9516 (vld64_insn): Likewise.
9517 (vld32_insn): Likewise.
9519 2017-03-28 Marek Polacek <polacek@redhat.com>
9522 * fold-const.c (fold_comparison): Use protected_set_expr_location
9523 instead of SET_EXPR_LOCATION.
9525 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
9527 * tree.c (add_expr): Avoid name lookup warning.
9529 2017-03-27 Jeff Law <law@redhat.com>
9531 PR tree-optimization/80216
9532 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
9533 function name. Limit recursion depth.
9534 (record_temporary_equivalences): Corresponding changes.
9536 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
9538 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
9541 2017-03-27 Jakub Jelinek <jakub@redhat.com>
9544 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
9546 * cfgcleanup.c (reg_note_cfa_p): New array.
9547 (insns_have_identical_cfa_notes): New function.
9548 (old_insns_match_p): Don't cross-jump in between /f
9549 and non-/f instructions. If both i1 and i2 are frame related,
9550 verify all CFA notes, their order and content.
9552 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
9555 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
9556 HImode and SImode with zero extend to DImode to one insn.
9557 (bswap<mode>2_extenddi): Likewise.
9558 (bswapsi2_extenddi): Likewise.
9559 (bswaphi2_extendsi): Likewise.
9560 (bswaphi2): Combine bswap HImode and SImode into one insn.
9561 Separate memory insns from swapping register.
9562 (bswapsi2): Likewise.
9563 (bswap<mode>2): Likewise.
9564 (bswaphi2_internal): Delete, no longer used.
9565 (bswapsi2_internal): Likewise.
9566 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
9567 store, and gpr<-gpr swap insns.
9568 (bswap<mode>2_store): Likewise.
9569 (bswaphi2_reg): Register only splitter, combine with the splitter.
9570 (bswaphi2 splitter): Likewise.
9571 (bswapsi2_reg): Likewise.
9572 (bswapsi2 splitter): Likewise.
9573 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
9574 the insns into load, store, and register/register insns.
9575 (bswapdi2_ldbrx): Likewise.
9576 (bswapdi2_load): Likewise.
9577 (bswapdi2_store): Likewise.
9578 (bswapdi2_reg): Likewise.
9580 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
9582 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
9583 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
9585 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
9588 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
9590 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
9591 special handling for target option conflicts between dform
9592 options (-mpower9-dform, -mpower9-dform-vector,
9593 -mpower9-dform-scalar) and -mno-direct-move.
9595 2017-03-27 Richard Biener <rguenther@suse.de>
9597 PR tree-optimization/80181
9598 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
9600 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9602 * config/arc/predicates.md (move_double_src_operand): Replace the
9603 call to move_double_src_operand with a call to address_operand.
9605 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9607 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
9608 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
9609 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
9611 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9613 * config/arc/predicates.md (long_immediate_loadstore_operand):
9614 Consider scaled addresses cases.
9616 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
9618 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
9619 restored when in interrupt.
9620 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
9621 doesn't have delay slot.
9623 2017-03-27 Richard Biener <rguenther@suse.de>
9626 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
9627 inlined thunk clones.
9629 2017-03-27 Jakub Jelinek <jakub@redhat.com>
9632 * asan.c (instrument_derefs): Copy over last operand from
9633 original COMPONENT_REF to the new COMPONENT_REF with
9634 DECL_BIT_FIELD_REPRESENTATIVE.
9635 * ubsan.c (instrument_object_size): Likewise.
9637 2017-03-27 Richard Biener <rguenther@suse.de>
9639 PR tree-optimization/80170
9640 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
9641 sure DR/SCEV didnt fold in constants we do not see when looking
9642 at the reference base alignment.
9644 2017-03-27 Richard Biener <rguenther@suse.de>
9647 * gimple-fold.c (fold_ctor_reference): Properly guard against
9648 NULL return value from canonicalize_constructor_val.
9650 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
9653 * config/i386/i386.c (ix86_expand_builtin)
9654 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
9655 flags reg setting and flags reg using instructions.
9656 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
9657 clobbering instructions to zero extend op2.
9659 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
9661 * doc/install.texi (Configuration) <--with-aix-soname>:
9662 Update link to AIX ld.
9664 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
9666 PR rtl-optimization/80160
9667 PR rtl-optimization/80159
9668 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
9669 reg_alternate_class into account.
9671 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
9674 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
9675 to consider in curr_insn_transform.
9677 2017-03-24 Jakub Jelinek <jakub@redhat.com>
9679 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
9680 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
9681 and emit_mode_inner.
9683 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9685 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
9686 argument to the overloaded builtin variants. Use the new flag to
9687 deprecate certain builtin variants.
9688 * config/s390/s390-builtin-types.def: Add new builtin types.
9689 * config/s390/s390-builtins.h: Support new flags field for
9690 overloaded builtins.
9691 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
9692 (s390_macro_to_expand): Enable vector float data type.
9693 (s390_cpu_cpp_builtins_internal): Indicate support of the new
9694 builtins by incrementing the __VEC__ version number.
9695 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
9697 (s390_resolve_overloaded_builtin): Emit error messages depending
9698 on the builtin flags.
9699 * config/s390/s390.c (s390_expand_builtin): Support additional
9700 flags argument. Change error message to match the messages
9701 emitted in s390-c.c.
9702 * config/s390/s390.md: New UNSPEC_* constants.
9703 (op_type): Add new instruction types.
9704 * config/s390/vecintrin.h: Add new builtins and test data class
9706 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
9707 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
9708 (VEC_INEXACT, VEC_NOINEXACT): New constants.
9709 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
9710 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
9711 ("vec_mergel<mode>"): V_HW -> VEC_HW.
9713 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
9714 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
9715 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
9716 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
9718 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
9719 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
9720 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
9721 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
9723 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
9724 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
9725 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
9726 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
9727 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
9728 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
9729 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
9731 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
9732 ("vec_scatter_element<V_HW_4:mode>_DI")
9733 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
9734 ("vec_fpint<mode>", "vflls")
9735 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
9736 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
9737 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
9738 ("*vec_cmphe<mode>_cc"): ... these.
9740 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
9741 mode constant instead of magic value.
9743 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9745 * config/s390/s390.c (s390_expand_vec_compare): Support other
9746 vector floating point modes than just V2DF.
9747 (s390_expand_vcond): Likewise.
9748 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
9749 (s390_cannot_change_mode_class): Prevent mode changes between TF
9750 and V1TF in vector registers.
9751 * config/s390/s390.md (DF, SF): New mode attributes.
9752 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
9753 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
9754 SFmode support for VRs.
9755 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
9757 (VFT, VF_HW): New mode iterators.
9758 (vw, sdx): New mode attributes.
9759 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
9760 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
9761 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
9762 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
9763 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
9764 also the new vector floating point modes. Renaming to ...
9766 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
9767 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
9768 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
9769 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
9770 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
9771 ("vec_unordered<mode>"): ... these.
9773 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
9774 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
9775 ("*vec_extendv2df"): New insn definitions.
9777 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9779 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
9780 ("mulditi3_2", "*muldi3_sign"): New patterns.
9781 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
9782 rename the pattern definition.
9784 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9786 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
9788 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
9790 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9792 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
9793 instruction if possible.
9794 * config/s390/vector.md (vec_halfnumelts): New mode
9796 ("*vec_vllezlf<mode>"): New pattern.
9798 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9800 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
9801 ("popcountv4si2", "popcountv2di2"): Rename to ...
9802 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
9803 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
9805 ("popcount<mode>2_vxe"): New pattern.
9807 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9809 * common/config/s390/s390-common.c (processor_flags_table): Add
9811 * config.gcc: Add arch12.
9812 * config/s390/driver-native.c (s390_host_detect_local_cpu):
9813 Default to arch12 for unknown CPU model numbers.
9814 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
9815 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
9816 PROCESSOR_max sanity check.
9817 * config/s390/s390-opts.h (enum processor_type): Add
9819 * config/s390/s390.c (processor_table): Add arch12.
9820 (s390_expand_builtin): Add check for B_VXE flag.
9821 (s390_issue_rate): Add PROCESSOR_ARCH12.
9822 (s390_get_sched_attrmask): Likewise.
9823 (s390_get_unit_mask): Likewise.
9824 (s390_sched_score): Enable z13 scheduling for arch12.
9825 (s390_sched_reorder): Likewise.
9826 (s390_sched_variable_issue): Likewise.
9827 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
9829 (s390_tune_attr): Use z13 scheduling also for arch12.
9830 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
9831 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
9832 (TARGET_VXE_P): New macros.
9833 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
9834 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
9835 * config/s390/s390.opt: Add arch12 as processor_type.
9837 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9839 * config/s390/s390.md
9840 ("fixuns_truncdddi2", "fixuns_trunctddi2")
9841 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
9842 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
9844 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
9845 Rename expanders to ...
9847 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
9848 ("fixuns_truncdddi2_emu"): ... these.
9850 ("fixuns_trunc<mode>si2_emu"): New expander.
9852 ("*fixuns_truncdfdi2_z13"): Rename to ...
9853 ("*fixuns_truncdfdi2_vx"): ... this.
9855 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9857 * config/s390/2964.md: Remove the single element vector compare
9858 instructions which are no longer used.
9859 * config/s390/s390.c (s390_select_ccmode): Remove handling of
9861 (s390_canonicalize_comparison): Remove handling of DFmode
9863 (s390_expand_vec_compare_scalar): Remove function.
9864 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
9865 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
9867 ("*cmp<mode>_ccs"): Add wfcdb instruction.
9869 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9871 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
9873 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
9874 will anyway by matched by mov<mode>_64dfp.
9876 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9878 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
9879 vlef/vstef. Add missing operand to vleif.
9881 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9883 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
9884 pair for all vector types with 64 bit elements.
9885 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
9886 * config/s390/vector.md (V_HW_64): ... here.
9887 (V_128_NOSINGLE): New mode iterator.
9888 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
9889 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
9890 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
9891 ("*vec_load_pairv2di"): Change to ...
9892 ("*vec_load_pair<mode>"): ... this one.
9894 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9896 * config/s390/constraints.md: Add comments.
9897 (jKK): Reject element sizes > 8 bytes.
9898 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
9900 * config/s390/s390.md: Add the s_operand checks formerly in
9901 s390_split_ok_p to various splitters where they are still
9903 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
9904 for 128 bit vectors. Plus two splitters.
9906 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9908 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
9911 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
9914 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
9915 error if the boundary argument is not constant.
9917 2017-03-24 Jakub Jelinek <jakub@redhat.com>
9919 PR rtl-optimization/80112
9920 * loop-doloop.c (doloop_condition_get): Don't check condition
9921 if cmp isn't SET with IF_THEN_ELSE src.
9923 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9925 PR tree-optimization/80158
9926 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
9927 replacing a candidate statement, also replace it for the
9928 candidate's alternate interpretation.
9929 (replace_rhs_if_not_dup): Likewise.
9930 (replace_one_candidate): Likewise.
9932 2017-03-24 Richard Biener <rguenther@suse.de>
9934 PR tree-optimization/80167
9935 * graphite-isl-ast-to-gimple.c
9936 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
9938 (translate_isl_ast_to_gimple::get_rename): Likewise.
9940 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
9942 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
9943 handling of certain combinations of target options, including the
9944 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
9945 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
9947 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9950 * config/arm/arm.md (*load_multiple): Add reload_completed to
9953 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9954 Richard Biener <rguenth@suse.de>
9956 PR tree-optimization/79908
9957 PR tree-optimization/80136
9958 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
9959 been cast away, gimplify_and_add suffices.
9961 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
9963 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
9965 2017-03-23 Richard Biener <rguenther@suse.de>
9967 PR tree-optimization/80032
9968 * gimplify.c (gimple_push_cleanup): Forced unconditional
9969 cleanups still have to go to the conditional_cleanups
9972 2017-03-22 Jakub Jelinek <jakub@redhat.com>
9974 PR tree-optimization/80072
9975 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
9977 (next_operand_entry_id): Change type to unsigned int.
9978 (sort_by_operand_rank): Make sure to return the right return value
9979 even if unsigned fields are bigger than INT_MAX.
9980 (struct oecount): Change cnt and id type to unsigned int.
9981 (oecount_hasher::equal): Formatting fix.
9982 (oecount_cmp): Make sure to return the right return value
9983 even if unsigned fields are bigger than INT_MAX.
9984 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
9987 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
9988 TREE_READONLY on result if writing it more than once.
9991 * doc/invoke.texi (-fsanitize=thread): Document that with
9992 -fnon-call-exceptions atomics are not able to throw
9996 * tsan.c: Include tree-eh.h.
9997 (instrument_builtin_call): Call maybe_clean_eh_stmt or
9998 maybe_clean_or_replace_eh_stmt where needed.
9999 (instrument_memory_accesses): Add cfg_changed argument.
10000 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
10001 if it returned true.
10002 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
10004 PR rtl-optimization/63191
10005 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
10006 wrapper function, moved the whole old content into ...
10007 (ix86_delegitimize_address_1): ... this. New inline function.
10008 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
10009 true as last argument instead of ix86_delegitimize_address.
10011 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10013 * config/aarch64/aarch64.c (generic_branch_cost): Copy
10014 cortexa57_branch_cost.
10016 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
10018 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
10020 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10023 * doc/md.texi (Constraints): Document wA constraint.
10024 * config/rs6000/constraints.md (wA): New.
10025 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
10026 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
10027 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
10028 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
10030 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
10033 * gimplify.c (is_oacc_declared): New function.
10034 (oacc_default_clause): Use it to set default flags for acc declared
10035 variables inside parallel regions.
10036 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
10037 declared variables.
10038 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
10039 declare attribute to any decl as necessary.
10041 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
10044 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
10045 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
10046 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
10047 (arm_arch_lpae): This.
10048 * config/arm/arm.c (arm_arch7ve): Rename into ...
10049 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
10050 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
10053 2017-03-22 Martin Liska <mliska@suse.cz>
10056 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
10057 error message instead of an ICE.
10059 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10061 * doc/extend.texi (6.11 Additional Floating Types): Revise.
10063 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
10065 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
10067 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
10070 2017-03-21 Martin Sebor <msebor@redhat.com>
10072 * doc/extend.texi: Use "cannot" instead of "can't."
10073 * doc/hostconfig.texi: Same.
10074 * doc/install.texi: Same.
10075 * doc/invoke.texi: Same.
10076 * doc/loop.texi: Same.
10077 * doc/md.texi: Same.
10078 * doc/objc.texi: Same.
10079 * doc/rtl.texi: Same.
10080 * doc/tm.texi: Same.
10081 * doc/tm.texi.in: Same.
10082 * doc/trouble.texi: Same.
10084 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
10087 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
10088 (collect_checksum_attributes): Set it.
10089 (die_checksum_ordered): Use it.
10091 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10093 PR tree-optimization/79908
10094 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
10095 change: For a VA_ARG whose LHS has been cast away, use
10096 force_gimple_operand to construct the side effects.
10098 2017-03-21 David Malcolm <dmalcolm@redhat.com>
10100 PR translation/80001
10101 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
10102 more amenable to translation.
10103 (oacc_loop_auto_partitions): Likewise.
10105 2017-03-21 Marek Polacek <polacek@redhat.com>
10106 Martin Sebor <msebor@redhat.com>
10108 PR tree-optimization/80109
10109 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
10110 on INTEGRAL_TYPE_P.
10112 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10113 Segher Boessenkool <segher@kernel.crashing.org>
10116 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
10117 check reg_used_between_p between insn and one of succ or succ2
10118 depending on if succ is artificial insn not inserted into insn
10121 2017-03-21 Martin Liska <mliska@suse.cz>
10123 PR gcov-profile/80081
10124 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
10125 * doc/gcc.texi: Include gcov-dump stuff.
10126 * doc/gcov-dump.texi: New file.
10128 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
10130 PR rtl-optimization/79150
10131 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
10132 conditional jump, if the jump is the last insn of the loop.
10134 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10135 Richard Biener <rguenth@suse.de>
10137 PR tree-optimization/79908
10138 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
10139 been cast away, use force_gimple_operand to construct the side
10142 2017-03-21 Martin Liska <mliska@suse.cz>
10144 PR libfortran/79956
10145 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
10148 2017-03-21 Brad Spengler <spender@grsecurity.net>
10151 * plugin.c (htab_hash_plugin): New function.
10152 (add_new_plugin): Use it and adjust.
10153 (parse_plugin_arg_opt): Adjust.
10154 (init_one_plugin): Likewise.
10156 2017-03-21 Richard Biener <rguenther@suse.de>
10158 PR tree-optimization/80032
10159 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
10160 if set force the cleanup to happen unconditionally.
10161 (gimplify_target_expr): Push inserted clobbers with force_uncond
10162 to avoid them being removed by control-dependent DCE.
10164 2017-03-21 Richard Biener <rguenther@suse.de>
10166 PR tree-optimization/80122
10167 * tree-inline.c (copy_bb): Do not expans va-arg packs or
10168 va_arg_pack_len when the inlined call stmt requires pack
10170 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
10172 2017-03-21 Jakub Jelinek <jakub@redhat.com>
10175 * tsan.c (instrument_builtin_call): If the memory model argument
10176 is not a constant, assume it is valid.
10179 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
10182 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10184 PR rtl-optimization/79910
10185 * combine.c (can_combine_p): Do not allow combining an I0 or I1
10186 if its dest is used by an insn before I2 (other than the combined
10187 insns themselves, which are properly handled already).
10189 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
10192 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10194 * combine.c (record_used_regs): New static function.
10195 (try_combine): Handle situations where there is an additional
10196 instruction between I2 and I3 which needs to have a LOG_LINK
10200 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10202 * combine.c (try_combine): Delete redundant i1 test. Call
10203 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10205 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10208 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
10209 alternatives 13/14.
10211 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10213 PR tree-optimization/80054
10214 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
10215 the optimization if a PHI or any of its arguments is not dominated
10216 by the candidate's basis. Use gphi* rather than gimple* as
10218 (replace_profitable_candidates): Clean up a gimple* variable that
10219 should be a gphi* variable.
10221 2017-03-20 Martin Sebor <msebor@redhat.com>
10224 * doc/extend.texi (attribute constructor): Document present limitation.
10226 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
10229 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
10230 __POWER9_VECTOR__ #ifdef control, change template definition to
10231 use Power9-specific built-in function.
10232 (vec_any_eq): Likewise.
10233 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
10234 to control outcomes from this test.
10235 (vector_ae_<mode>p): For VEC_F modes, likewise.
10237 2017-03-20 Ian Lance Taylor <iant@google.com>
10239 * config/i386/i386.c (ix86_function_regparm): Save an extra
10240 register for -fsplit-stack with DECL_STATIC_CHAIN.
10242 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10245 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
10246 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
10248 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
10250 * config/riscv/riscv.c (riscv_print_operand): Use "fence
10252 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
10255 2017-03-20 Marek Polacek <polacek@redhat.com>
10258 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
10260 2017-03-20 Richard Biener <rguenther@suse.de>
10262 PR tree-optimization/80113
10263 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
10264 allocate extra SSA name for PHI def.
10265 (add_close_phis_to_outer_loops): Likewise.
10266 (add_close_phis_to_merge_points): Likewise.
10267 (copy_loop_close_phi_args): Likewise.
10268 (copy_cond_phi_nodes): Likewise.
10270 2017-03-20 Martin Liska <mliska@suse.cz>
10272 PR middle-end/79753
10273 * tree-chkp.c (chkp_build_returned_bound): Do not build
10274 returned bounds for a LHS that's not a BOUNDED_P type.
10276 2017-03-20 Martin Liska <mliska@suse.cz>
10280 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
10281 COMPLEX_CST and VECTOR_CST.
10283 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10286 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
10287 target operand. A new splitter adds the clobber statement in case
10288 the target operand is dead anyway.
10290 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
10292 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
10293 to age-old versions of binutils and glibc.
10295 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
10297 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
10299 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10301 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
10303 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
10305 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
10306 requirement for binutils 2.13.
10308 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
10310 * combine.c (try_combine): Delete redundant i1 test. Call
10311 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
10313 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
10315 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
10316 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
10318 <riscv64-*-elf>: Re-arrange section
10319 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
10320 <riscv32-*-linux>: Likewise.
10321 <riscv64-*-elf>: Likewise
10322 <riscv64-*-linux>: Likewise.
10324 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
10327 * aarch64.opt(verbose-cost-dump): Fix typo.
10329 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
10332 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
10333 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
10335 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
10337 * reload.c (find_reloads): When reloading a nonoffsettable address,
10338 use RELOAD_OTHER for it and its address reloads.
10340 PR rtl-optimization/79910
10341 * combine.c (record_used_regs): New static function.
10342 (try_combine): Handle situations where there is an additional
10343 instruction between I2 and I3 which needs to have a LOG_LINK
10346 2017-03-17 Jeff Law <law@redhat.com>
10348 PR tree-optimization/71437
10349 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
10350 conditional in the hash table first.
10351 (vrp_dom_walker::before_dom_children): Extract condition from
10352 ASSERT_EXPR. Record condition, its inverion and any implied
10353 conditions as well.
10355 2017-03-17 Marek Polacek <polacek@redhat.com>
10356 Markus Trippelsdorf <markus@trippelsdorf.de>
10358 PR tree-optimization/80079
10359 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
10362 2017-03-17 Richard Biener <rguenther@suse.de>
10364 PR middle-end/80075
10365 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
10366 Properly verify the LHS before the RHS possibly claims to be
10368 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
10371 2017-03-17 Martin Jambor <mjambor@suse.cz>
10373 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
10374 (List of -O2 options): Likewise.
10375 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
10378 2017-03-17 Tom de Vries <tom@codesourcery.com>
10380 * gcov-dump.c (print_usage): Print bug_report_url.
10382 2017-03-17 Richard Biener <rguenther@suse.de>
10384 PR middle-end/80050
10385 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
10386 (parser::peek): Likewise.
10388 2017-03-17 Richard Biener <rguenther@suse.de>
10390 PR tree-optimization/80048
10391 * sese.c (free_sese_info): Properly release rename_map and
10392 copied_bb_map elements.
10394 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
10396 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
10397 Add linked-list forward and backlinks. Insert on
10398 construction, remove on destruction.
10399 (class pass_store_merging): Add m_stores_head field.
10400 (pass_store_merging::terminate_and_process_all_chains):
10401 Iterate over m_stores_head list.
10402 (pass_store_merging::terminate_all_aliasing_chains):
10404 (pass_store_merging::execute): Check for debug stmts first.
10405 Push new chains onto the m_stores_head stack.
10407 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
10410 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
10411 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
10412 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
10414 2017-03-16 Jeff Law <law@redhat.com>
10416 PR tree-optimization/71437
10417 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
10418 member function. Implementation moved into after_dom_children
10419 member function and into the threader's thread_outgoing_edges
10421 (dom_opt_dom_walker::after_dom_children): Simplify by moving
10422 some code into new thread_outgoing_edges.
10423 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
10424 definition. Simplify marker handling (do it here). Assume we always
10425 have the available expression and the const/copies tables.
10426 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
10428 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
10429 * tree-vrp.c (equiv_stack): No longer file scoped.
10430 (vrp_dom_walker): New class.
10431 (vrp_dom_walker::before_dom_children): New member function.
10432 (vrp_dom_walker::after_dom_children): Likewise.
10433 (identify_jump_threads): Setup domwalker. Use it rather than
10434 walking edges in a random order by hand. Simplify setup/finalization.
10435 (finalize_jump_threads): Remove.
10436 (vrp_finalize): Do not call identify_jump_threads here.
10437 (execute_vrp): Do it here instead and call thread_through_all_blocks
10440 PR tree-optimization/71437
10441 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
10443 (simplify_stmt_for_jump_threading): Add basic_block argument. All
10445 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
10446 (dom_opt_dom_walker::thread_across_edge): Remove
10447 handle_dominating_asserts argument. All callers changed.
10448 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
10449 changes. Remove calls to lhs_of_dominating_assert. Other
10450 uses of handle_dominating_asserts turn into unconditional code
10451 (simplify_control_stmt_condition_1): Likewise.
10452 (simplify_control_stmt_condition): Likewise.
10453 (thread_through_normal_block, thread_across_edge): Likewise.
10454 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
10455 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
10456 object if it is not an SSA_NAME.
10457 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
10458 before calling into the VRP specific simplifiers.
10459 (identify_jump_threads): Remove handle_dominating_asserts
10462 2017-03-16 Jakub Jelinek <jakub@redhat.com>
10465 * tree-diagnostic.c (default_tree_printer): No longer static.
10466 * tree-diagnostic.h (default_tree_printer): New prototype.
10468 2017-03-16 Tamar Christina <tamar.christina@arm.com>
10470 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
10471 Change ins into fmov.
10473 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10475 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
10476 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
10477 Use h_con constraint for operand 1.
10478 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
10479 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
10481 2017-03-15 Jeff Law <law@redhat.com>
10483 PR tree-optimization/71437
10484 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
10485 (record_temporary_equivalences): Use it.
10487 PR tree-optimization/71437
10488 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
10489 tree-ssa-scopedtables.
10490 (lookup_avail_expr, build_and_record_new_cond): Likewise.
10491 (record_conditions, record_cond, vuse_eq): Likewise.
10492 (record_edge_info): Adjust to API tweak of record_conditions.
10493 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
10494 (record_temporary_equivalences, optimize_stmt): Likewise.
10495 (eliminate_redundant_computations): Likewise.
10496 (record_equivalences_from_stmt): Likewise.
10497 * tree-ssa-scopedtables.c: Include options.h and params.h.
10498 (vuse_eq): New function, moved from tree-ssa-dom.c
10499 (build_and_record_new_cond): Likewise.
10500 (record_conditions): Likewise. Accept vector of conditions rather
10501 than edge_equivalence structure for first argument.
10502 for the first argument.
10503 (avail_exprs_stack::lookup_avail_expr): New member function, moved
10504 from tree-ssa-dom.c.
10505 (avail_exprs_stack::record_cond): Likewise.
10506 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
10507 from tree-ssa-dom.c.
10508 (avail_exprs_stack): Add new member functions lookup_avail_expr
10510 (record_conditions): Declare.
10512 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
10515 * lra-constraints.c (process_alt_operands): Increase reject for
10516 reloading an input/output operand.
10518 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
10521 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
10522 insns to convert from signed/unsigned char/short to IEEE 128-bit
10524 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
10526 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
10529 * config/i386/i386.c (ix86_vector_duplicate_value): Create
10530 subreg of inner mode for values already in registers.
10532 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
10534 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
10535 iteration reg is used after the loop.
10537 2017-03-14 Martin Sebor <msebor@redhat.com>
10539 PR tree-optimization/79800
10540 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
10541 precision in negative-positive range.
10542 (format_floating): Call non-const overload with adjusted precision.
10544 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
10547 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
10550 2017-03-14 Martin Sebor <msebor@redhat.com>
10552 PR middle-end/80020
10553 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
10554 * builtins.def (aligned_alloc): Use it.
10557 * Makefile.in (GTFILES): Add calls.c.
10558 * calls.c: Include "gt-calls.h".
10560 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
10562 PR rtl-optimization/79728
10563 * regs.h (struct target_regs): New field
10564 x_contains_allocatable_regs_of_mode.
10565 (contains_allocatable_regs_of_mode): New macro.
10566 * reginfo.c (init_reg_sets_1): Initialize it, and change
10567 contains_reg_of_mode so it includes global regs as well.
10568 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
10569 rather than contains_regs_of_mode.
10571 2017-03-14 Martin Liska <mliska@suse.cz>
10573 * doc/invoke.texi: Document options that can't be combined with
10574 -fcheck-pointer-bounds.
10576 2017-03-14 Martin Liska <mliska@suse.cz>
10578 PR middle-end/79831
10579 * doc/invoke.texi (-Wchkp): Document the option.
10581 2017-03-14 Martin Liska <mliska@suse.cz>
10583 * Makefile.in: Install gcov-dump.
10585 2017-03-14 Martin Liska <mliska@suse.cz>
10587 * multiple_target.c (expand_target_clones): Bail out for
10588 an invalid attribute.
10590 2017-03-14 Richard Biener <rguenther@suse.de>
10592 * alias.c (struct alias_set_entry): Pack properly.
10593 * cfgloop.h (struct loop): Likewise.
10594 * cse.c (struct set): Likewise.
10595 * ipa-utils.c (struct searchc_env): Likewise.
10596 * loop-invariant.c (struct invariant): Likewise.
10597 * lra-remat.c (struct cand): Likewise.
10598 * recog.c (struct change_t): Likewise.
10599 * rtl.h (struct address_info): Likewise.
10600 * symbol-summary.h (function_summary): Likewise.
10601 * tree-loop-distribution.c (struct partition): Likewise.
10602 * tree-object-size.c (struct object_size_info): Likewise.
10603 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
10604 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
10605 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
10606 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
10607 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
10608 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
10609 (struct _stmt_vec_info): Likewise.
10611 2017-03-14 Martin Liska <mliska@suse.cz>
10614 * multiple_target.c (create_dispatcher_calls): Check that
10615 a target can create a function dispatcher.
10617 2017-03-14 Martin Liska <mliska@suse.cz>
10620 * multiple_target.c (expand_target_clones): Drop local.local
10621 flag for default implementation.
10623 2017-03-14 Richard Biener <rguenther@suse.de>
10625 PR tree-optimization/80030
10626 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
10628 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
10630 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
10631 gcc_fallthrough() instead of __attribute__((fallthrough));
10633 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
10635 * doc/gcc.texi: Remove "up" link to (DIR).
10636 * doc/gccint.texi: Ditto.
10638 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
10640 * doc/install.texi (Specific) <avr>: Remove reference to
10643 2017-03-13 Jeff Law <law@redhat.com>
10645 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
10646 attribute rather than comments.
10648 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
10649 match_scratch operand is highest.
10651 2017-03-13 Martin Liska <mliska@suse.cz>
10653 PR middle-end/78339
10654 * ipa-pure-const.c (warn_function_noreturn): If the declarations
10655 is a CHKP clone, use original declaration.
10657 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10659 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
10660 (arc_conditional_register_usage): Use a different allocation order
10661 when optimizing for size.
10662 * common/config/arc/arc-common.c (arc_option_optimization_table):
10663 Section anchors default on when optimizing for size.
10665 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10667 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
10669 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10671 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
10672 * config/arc/arc.md (cpu_facility): Add cd variant.
10673 (*movqi_insn): Add code density variant.
10674 (*movhi_insn): Likewise.
10675 (*movqi_insn): Likewise.
10676 (*addsi3_mixed): Likewise.
10677 (subsi3_insn): Likewise.
10679 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10681 * config/arc/arc.md (movsi_cond_exec): Update constraint.
10683 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
10685 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
10686 expressions with MINUS and UNARY ops.
10688 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10691 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
10693 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
10694 between vec_select and vector argument.
10695 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
10696 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
10697 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
10698 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
10699 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
10700 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
10702 2017-03-13 Richard Biener <rguenther@suse.de>
10705 * params.def (vect-max-peeling-for-alignment): Fix typo.
10707 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10709 * doc/install.texi (Specific) <mips-*-*>: Remove description of
10710 issue that only occurred with binutils below 2.18.
10712 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10714 * doc/install.texi (Specific) <cris-axis-elf>: No longer
10715 refer to binutils 2.11/2.12 minimum.
10717 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
10719 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
10720 ftp.kernel.org and simplify binutils requirement.
10722 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
10724 * doc/invoke.texi (Warning Options): Fix spelling of link-time
10726 (Optimize Options): Ditto. Also remove redundancy.
10728 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10730 PR translation/79848
10731 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
10733 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
10734 to G_ to avoid double translation.
10736 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10738 PR translation/79923
10739 * auto-profile.c (get_combined_location): Convert leading
10740 character of diagnostics to lower case and remove trailing period.
10741 (read_profile): Likewise for various diagnostics.
10742 * config/arm/arm.c (arm_option_override): Remove trailing period
10743 from various diagnostics.
10744 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
10745 (msp430_expand_delay_cycles): Likewise.
10747 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10750 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
10751 full command-line argument, rather than just "str".
10752 (aarch64_validate_march): Likewise.
10753 (aarch64_validate_mtune): Likewise.
10755 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
10757 PR rtl-optimization/78911
10758 * lra-assigns.c (must_not_spill_p): New function.
10759 (spill_for): Use it.
10761 2017-03-10 Jakub Jelinek <jakub@redhat.com>
10763 PR tree-optimization/79981
10764 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
10765 ATOMIC_COMPARE_EXCHANGE ifn result.
10766 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
10767 IFN_ATOMIC_COMPARE_EXCHANGE.
10769 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10772 * opts.c (parse_sanitizer_options): Add missing question mark to
10773 "did you mean" message.
10775 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10777 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
10779 (VMULEUH_UNS): Likewise.
10780 (VMULOUB_UNS): Likewise.
10781 (VMULOUH_UNS): Likewise.
10782 * config/rs6000/rs6000.c (builtin_function_type): Remove
10783 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
10785 2017-03-10 David Malcolm <dmalcolm@redhat.com>
10788 * read-rtl-function.c (function_reader::read_rtx_operand): Update
10789 x with result of extra_parsing_for_operand_code_0.
10790 (function_reader::extra_parsing_for_operand_code_0): Convert
10791 return type from void to rtx, returning x. When reading
10792 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
10793 larger size containing struct block_symbol.
10795 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
10797 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
10798 -mfloat128-hardware without -m64.
10800 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
10803 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
10804 entries to the case statement that marks unsigned arguments to
10805 overloaded functions.
10807 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
10809 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
10810 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
10812 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
10815 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
10816 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
10818 2017-03-10 Martin Liska <mliska@suse.cz>
10822 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
10823 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
10826 2017-03-10 Olivier Hainque <hainque@adacore.com>
10828 * tree-switch-conversion (array_value_type): Start by resetting
10829 candidate type to it's main variant.
10831 2017-03-10 Jakub Jelinek <jakub@redhat.com>
10833 PR rtl-optimization/79909
10834 * combine.c (try_combine): Use simplify_replace_rtx on individual
10835 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
10836 of the whole CALL_INSN_FUNCTION_USAGE.
10838 PR tree-optimization/79972
10839 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
10840 get_range_info on SSA_NAMEs. Formatting fixes.
10842 2017-03-10 Richard Biener <rguenther@suse.de>
10843 Jakub Jelinek <jakub@redhat.com>
10845 PR tree-optimization/77975
10846 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
10847 edge to be constant.
10848 (get_val_for): For constant x return it. Formatting fix.
10849 (loop_niter_by_eval): Avoid pointless looping if the next iteration
10850 would use the same bases as the current one.
10852 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10854 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
10855 instead of vec_select for V1TImode.
10856 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
10858 (VSX_LE_128): Add V1TI to this mode iterator.
10859 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
10860 (*vsx_le_perm_store_<mode>): Likewise.
10861 (pre-reload splitter for VSX stores): Likewise.
10862 (post-reload splitter for VSX stores): Likewise.
10863 (*vsx_xxpermdi2_le_<mode>): Likewise.
10864 (*vsx_lxvd2x2_le_<mode>): Likewise.
10865 (*vsx_stxvd2x2_le_<mode>): Likewise.
10867 2017-03-09 Michael Eager <eager@eagercon.com>
10869 Correct failures with --enable-checking=yes,rtl.
10871 * config/microblaze/microblaze.c (microblaze_expand_shift):
10872 Replace GET_CODE test with CONST_INT_P and INTVAL test with
10873 test for const0_rtx.
10874 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
10875 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
10877 2017-03-09 Richard Biener <rguenther@suse.de>
10879 PR tree-optimization/79977
10880 * graphite-scop-detection.c (scop_detection::merge_sese):
10881 Handle the case of extra exits to blocks dominating the entry.
10883 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
10885 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
10888 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
10890 PR rtl-optimization/79949
10891 * lra-constraints.c (process_alt_operands): Check memory when
10892 trying to predict a cycle. Print about the overall increase.
10894 2017-03-09 Richard Biener <rguenther@suse.de>
10896 PR middle-end/79971
10897 * gimple-expr.c (useless_type_conversion_p): Preserve
10898 TYPE_SATURATING for fixed-point types.
10900 2017-03-09 Richard Biener <rguenther@suse.de>
10903 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
10904 alignment of BLKmode params.
10906 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10909 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
10910 (VALL_NO_V2Q): Likewise.
10912 * config/aarch64/aarch64-simd.md
10913 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
10915 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
10916 VALL_NO_V2Q mode iterator.
10917 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
10919 2017-03-09 Martin Liska <mliska@suse.cz>
10921 PR tree-optimization/79631
10922 * tree-chkp-opt.c (chkp_is_constant_addr): Call
10923 tree_int_cst_sign_bit just for INTEGER constants.
10925 2017-03-09 Martin Liska <mliska@suse.cz>
10929 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
10932 2017-03-09 Marek Polacek <polacek@redhat.com>
10935 * tree.c (inchash::add_expr): Handle TREE_VEC.
10937 2017-03-09 Martin Liska <mliska@suse.cz>
10940 (chkp_narrow_size_and_offset): New function.
10941 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
10942 (void chkp_parse_bit_field_ref): New function.
10943 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
10944 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
10946 2017-03-09 Martin Liska <mliska@suse.cz>
10949 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
10950 (chkp_find_bounds_1): Remove gcc_unreachable.
10952 2017-03-09 Jakub Jelinek <jakub@redhat.com>
10955 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
10956 BUILT_IN_SYNC*, determine the access type from the size suffix and
10957 always build a MEM_REF with that type. Handle forgotten
10958 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
10961 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
10962 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
10963 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
10964 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
10965 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
10966 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
10967 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
10968 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
10969 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
10970 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
10971 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
10972 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
10973 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
10974 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
10975 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
10976 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
10977 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
10978 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
10979 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
10980 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
10981 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
10982 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
10983 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
10984 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
10985 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
10986 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
10987 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
10988 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
10989 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
10990 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
10991 definitions outside of __OPTIMIZE__ guarded section.
10994 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
10995 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
10996 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
10997 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
11000 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11002 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
11003 ("vfenez<mode>"): Add missing constraints.
11005 2017-03-08 Martin Sebor <msebor@redhat.com>
11008 * config/nds32/nds32.c (nds32_option_override):
11009 Fix misspelled diagnostic.
11011 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11014 * gimplify.c (gimplify_omp_for): Replace index var in outer
11015 taskloop statement with an artificial variable and add
11016 OMP_CLAUSE_PRIVATE clause for it.
11018 2017-03-08 Richard Biener <rguenther@suse.de>
11020 PR tree-optimization/79955
11021 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
11022 for accesses that are completely outside of the variable.
11024 2017-03-08 Andrew Haley <aph@redhat.com>
11026 PR tree-optimization/79943
11027 * tree-ssa-loop-split.c (compute_new_first_bound): When
11028 calculating the new upper bound, (END-BEG) should be added, not
11031 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11033 * config/avr/avr.md (setmemhi): Make sure match_dup
11034 operand number comes before match_scratch.
11036 2017-03-08 Richard Biener <rguenther@suse.de>
11038 PR tree-optimization/79920
11039 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
11040 with ncopies == 1 to ...
11041 (vect_transform_slp_perm_load): ... here. Properly compute
11042 all element loads by iterating VF times over the group. Do
11043 not handle ncopies (computed in a broken way) in
11044 vect_create_mask_and_perm.
11046 2017-03-08 Jakub Jelinek <jakub@redhat.com>
11049 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
11050 is a uniform vector, use uniform_vector_p return value instead of
11051 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
11053 2017-03-07 Marek Polacek <polacek@redhat.com>
11055 PR middle-end/79809
11056 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
11057 (alloca_call_type): Likewise.
11059 2017-03-07 Martin Liska <mliska@suse.cz>
11061 * gcov.c (process_args): Put comment to correct location.
11063 2017-03-07 Martin Liska <mliska@suse.cz>
11065 PR middle-end/68270
11066 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
11067 Use array_at_struct_end_p instead of DECL_CHAIN (field).
11068 (chkp_narrow_bounds_for_field): Likewise.
11069 (chkp_parse_array_and_component_ref): Pass one more argument to
11072 2017-03-07 Richard Biener <rguenther@suse.de>
11074 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
11077 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
11079 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
11080 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
11082 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11085 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
11086 to end of description.
11087 (PARAM_MAX_STORES_TO_MERGE): Likewise.
11089 2017-03-07 Jakub Jelinek <jakub@redhat.com>
11091 PR rtl-optimization/79901
11092 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
11094 (*avx512f_<code><mode>3<mask_name>): ... this.
11095 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
11096 iterator instead of VI8_AVX2_AVX512BW.
11098 PR rtl-optimization/79901
11099 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
11100 min/max expander, expand it using expand_vec_cond_expr.
11103 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
11106 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11109 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
11110 to void * for PCH reasons.
11111 * dwarf2out.c (output_loc_operands, output_die): Cast
11112 v.val_vec.array to unsigned char *.
11114 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
11117 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
11120 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
11122 PR rtl-optimization/79571
11123 * lra-constraints.c (process_alt_operands): Calculate static
11124 reject and subtract it from overall when only addresses will be
11127 2017-03-06 Julia Koval <julia.koval@intel.com>
11130 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
11131 incoming stack boundary to 128 for 64-bit targets.
11133 2017-03-06 Richard Biener <rguenther@suse.de>
11135 PR tree-optimization/79894
11136 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
11137 to NULL after folding it.
11139 2017-03-06 Richard Biener <rguenther@suse.de>
11141 PR tree-optimization/79824
11142 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
11143 check disabling peeling for gaps.
11145 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
11147 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
11148 attributes): Document gettimeofday.
11150 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11152 * config/s390/s390.c (s390_option_override_internal): Set
11153 PARAM_MIN_VECT_LOOP_BOUND
11155 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
11157 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
11158 * config/s390/s390.md: Likewise.
11160 2017-03-06 Jakub Jelinek <jakub@redhat.com>
11163 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
11164 (<avx2_avx512>_perm<mode>): Rename to ...
11165 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
11167 (<avx512>_perm<mode>_mask): Rename to ...
11168 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
11170 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
11171 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
11172 instead of VI8F_256_512.
11173 (avx512f_perm<mode>): New define_expand.
11174 (avx512f_perm<mode>_mask): Likewise.
11175 (avx512f_perm<mode>_1<mask_name>): New define_insn.
11176 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
11178 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11180 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
11181 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
11183 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
11185 2017-03-06 Martin Liska <mliska@suse.cz>
11188 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
11189 when having a SSA NAME w/o VAR_DECL assigned to it.
11191 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11193 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
11194 msa_dpsub_<su>_d): Fix MODE for vec_select.
11196 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
11198 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
11200 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
11202 2017-03-06 Richard Biener <rguenther@suse.de>
11204 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
11205 * plugin.c (register_plugin_info): Likewise.
11206 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
11208 2017-03-05 Jakub Jelinek <jakub@redhat.com>
11210 * config/i386/sse.md (sse_storehps, sse_storelps,
11211 avx_<castmode><avxsizesuffix>_<castmode>,
11212 avx512f_<castmode><avxsizesuffix>_<castmode>,
11213 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
11214 in condition that at least one operand is not a MEM.
11216 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11218 PR middle-end/79805
11219 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
11220 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
11222 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
11223 gimple_call_nothrow_p flag based on whether original builtin can throw.
11224 If it can, emit following stmts on the fallthrough edge.
11225 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
11226 don't create new bb if inserting just debug stmts on the edge, try to
11227 insert them on the fallthru bb or just reset debug stmts.
11229 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
11232 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
11233 restore recog_data (including the operand rtxes inside it) around
11234 the call to get_insn_template.
11236 2017-03-03 Martin Sebor <msebor@redhat.com>
11238 PR tree-optimization/79699
11239 * context.c (context::~context): Free MPFR caches to avoid
11240 a memory leak on program exit.
11242 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11244 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
11245 Use wide_int::ulow () instead of .elt (0).
11247 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11249 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
11250 (*pushxf): Limit oF constraint to 32bit targets and add oC
11251 constraint for 64bit targets.
11252 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
11253 (*pushdf): Change rmF constraint to rmC.
11255 2017-03-03 Martin Liska <mliska@suse.cz>
11257 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
11258 Remove unused variable.
11260 2017-03-03 Jakub Jelinek <jakub@redhat.com>
11263 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
11264 is a memory operand, increase num_memory.
11265 (ix86_expand_args_builtin): Likewise.
11267 2017-03-03 Jan Hubicka <jh@suse.cz>
11270 * ipa-devirt.c (maybe_record_node): Properly handle
11271 __cxa_pure_virtual visibility.
11273 2017-03-03 Martin Liska <mliska@suse.cz>
11275 PR tree-optimization/79803
11276 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
11278 (pass_loop_prefetch::execute): Disabled optimization if an
11279 assumption about L1 cache size is not met.
11281 2017-03-03 Martin Liska <mliska@suse.cz>
11283 PR rtl-optimization/79574
11284 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
11285 (hash_scan_set): Likewise.
11286 (dump_hash_table): Likewise.
11287 (hoist_code): Likewise.
11289 2017-03-03 Richard Biener <rguenther@suse.de>
11291 * fixed-value.c (fixed_from_string): Restore use of elt (1)
11292 in place of uhigh ().
11293 (fixed_convert_from_real): Likewise.
11295 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
11298 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
11300 2017-03-03 Richard Biener <rguenther@suse.de>
11302 PR middle-end/79818
11303 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
11304 TYPE_OVERFLOW_UNDEFINED check.
11306 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11308 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
11310 (vector_ae_<mode>_p): Likewise.
11311 (vector_nez_<mode>_p): Likewise.
11312 (vector_ne_v2di_p): Likewise.
11313 (vector_ae_v2di_p): Likewise.
11314 (vector_ne_<mode>_p): Likewise.
11315 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
11317 (vsx_tsqrt<mode>2_fe): Likewise.
11319 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
11322 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
11324 2017-03-02 Jakub Jelinek <jakub@redhat.com>
11326 PR rtl-optimization/79780
11327 * cprop.c (one_cprop_pass): When second and further conditional trap
11328 in a single basic block is turned into an unconditional trap, turn it
11329 into a deleted note to avoid RTL verification failures.
11331 2017-03-02 Richard Biener <rguenther@suse.de>
11333 * fold-const.c (const_binop): Use ulow () instead of elt (0).
11335 2017-03-02 Richard Biener <rguenther@suse.de>
11337 PR tree-optimization/79345
11339 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
11340 param and abort the walk, returning -1 if it is hit.
11341 (walk_aliased_vdefs): Take a limit param and pass it on.
11342 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
11343 defaulting to 0 and return a signed int.
11344 * tree-ssa-uninit.c (struct check_defs_data): New struct.
11345 (check_defs): New helper.
11346 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
11347 about uninitialized memory.
11348 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
11349 bogus uninitialized warning.
11350 (fixed_convert_from_real): Likewise.
11352 2017-03-02 Bin Cheng <bin.cheng@arm.com>
11354 PR tree-optimization/66768
11355 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
11356 iv_use if base object can't be determined.
11358 2017-03-02 Jakub Jelinek <jakub@redhat.com>
11360 PR tree-optimization/79345
11361 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
11362 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
11363 (get_pattern_stats): Initialize it.
11364 * genemit.c (gen_expand): Verify match_scratch numbers come after
11365 match_operand/match_dup numbers.
11366 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
11367 match_scratch numbers.
11368 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
11370 * config/s390/s390.md (trunctdsd2): Likewise.
11372 2017-03-02 Richard Biener <rguenther@suse.de>
11374 * wide-int.h (wide_int_storage::operator=): Implement in terms
11377 2017-03-02 Richard Biener <rguenther@suse.de>
11379 PR tree-optimization/79777
11380 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
11381 the to insert expression to sth existing.
11383 2017-03-01 Martin Sebor <msebor@redhat.com>
11385 PR middle-end/79692
11386 * gimple-ssa-sprintf.c
11387 (directive::known_width_and_precision): New function.
11388 (format_integer): Use it.
11389 (get_mpfr_format_length): Consider the full range of precision
11390 when computing %g output with the # flag. Set the likely byte
11391 count to 3 rather than 1 when precision is indeterminate.
11392 (format_floating): Correct the lower bound of precision.
11394 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
11396 * doc/invoke.texi: Document default code model for 64-bit Linux.
11398 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
11401 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
11402 udiv rather than div since input pattern is unsigned.
11404 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
11406 * config/i386/i386.c (print_reg): Warn for values of
11407 unsupported size in integer register.
11409 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
11412 * config/rs6000/predicates.md (current_file_function_operand): Do
11413 not allow self calls to be local if the function is replaceable.
11415 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
11418 * config/rs6000/altivec.h (vec_ctz and others): Change the
11419 preprocessor macro that controls conditional compilation from
11420 _ARCH_PWR9 to __POWER9_VECTOR__.
11421 (vec_all_ne): Change parameterization of __altivec_scalar_pred
11422 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
11423 control (instead of _ARCH_PWR9 control) so that template
11424 definition uses power9-specific function.
11425 (vec_any_eq): Likewise.
11426 (vec_all_ne): Change macro definition to use a power9-specific
11427 expansion under #ifdef __POWER9_VECTOR__ control (instead of
11428 _ARCH_PWR9 control).
11429 (vec_any_eq) Likewise.
11430 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
11431 expansion for CMPNEF to remove support for xvcmpnesp instruction.
11432 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
11433 support for xvcmpnedp instruction.
11434 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
11435 macro expansion so that Power9 implementation of vec_all_ne does
11436 not use the AltiVec predicate framework.
11437 (VCMPNEH_P): Likewise.
11438 (VCMPNEW_P): Likewise.
11439 (VCMPNED_P): Likewise.
11440 (VCMPNEFP_P): Likewise.
11441 (VCMPNEDP_P): Likewise.
11442 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
11443 implementation of vec_any_eq to not use AltiVec predicate
11445 (VCMPAEH_P): Likewise.
11446 (VCMPAEW_P): Likewise.
11447 (VCMPAED_P): Likewise.
11448 (VCMPAEFP_P): Likewise.
11449 (VCMPAEDP_P): Likewise.
11450 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
11451 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
11452 not use the AltiVec predicate framework.
11453 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
11454 of vec_any_eq to not use AltiVec predicate framework.
11455 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
11456 support for predefined __POWER9_VECTOR__ macro to indicate that
11457 Power9 instruction selection is enabled.
11458 (altivec_overloaded_builtins): Remove extraneous
11459 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
11460 function argument types RS6000_BTI_bool_V16QI and
11461 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
11462 entry for overloaded function argument types RS6000_BTI_bool_V4SI
11463 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
11464 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
11465 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
11466 Power9 for implementations of vec_cmpne. Change the signature for
11467 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
11468 (representing vec_all_ne) to remove the previously described first
11469 argument of type RS6000_BTI_INTSI, as this was an artifact of
11470 reliance on the AltiVec predicate framework, which is no longer
11471 used in the implementation of these functions. Add
11472 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
11473 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
11474 since, unlike the AltiVec predicate framework implementation, we
11475 do not share function descriptors between vec_alle and vec_anyeq.
11476 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
11477 set of modes that receive special treatment even when
11478 TARGET_P9_VECTOR is true. The special treatment emits code that
11479 does not depend on Power9 instructions.
11480 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
11481 define_expand to not rely on AltiVec predicate framework.
11482 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
11484 (vector_ne_v2di_p): Change this define_expand to not rely on
11485 AltiVec predicate framework.
11486 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
11488 (vector_ne_<mode>_p): Change this define_expand to not rely on
11489 AltiVec predicate framework.
11490 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
11492 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
11493 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
11494 define_insn pattern.
11495 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
11496 define_insn pattern because the xvcmpne<VSs>. instruction is not
11498 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
11499 instruction is not supported.
11501 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11503 * config/nvptx/nvptx.c: Include intl.h.
11505 2017-03-01 Martin Jambor <mjambor@suse.cz>
11508 * ipa-prop.h (ipa_bits): Removed field known.
11509 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
11510 to pointers. Adjusted their comments to warn about their sharing.
11511 (ipcp_transformation_summary): Change bits to a vector of pointers.
11512 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
11513 (ipa_get_ipa_bits_for_value): Declare.
11514 * tree-vrp.h (value_range): Mark as GTY((for_user)).
11515 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
11516 (ipa_bits_hash_table): Likewise.
11517 (ipa_vr_ggc_hash_traits): Likewise.
11518 (ipa_vr_hash_table): Likewise.
11519 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
11520 being pointers and vr_known being removed.
11521 (ipa_set_jf_unknown): Likewise.
11522 (ipa_get_ipa_bits_for_value): New function.
11523 (ipa_set_jfunc_bits): Likewise.
11524 (ipa_get_value_range): New overloaded functions.
11525 (ipa_set_jfunc_vr): Likewise.
11526 (ipa_compute_jump_functions_for_edge): Use the above functions to
11527 construct bits and vr parts of jump functions.
11528 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
11529 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
11531 (ipcp_grow_transformations_if_necessary): Also allocate
11532 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
11534 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
11535 them. Fix too long lines.
11536 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
11537 vr_known being removed.
11538 (ipa_read_jump_function): Use new setter functions to construct bits
11539 and vr parts of jump functions or set them to NULL.
11540 (write_ipcp_transformation_info): Adjust for bits being pointers.
11541 (read_ipcp_transformation_info): Likewise.
11542 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
11544 Include gt-ipa-prop.h.
11545 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
11547 (ipcp_store_bits_results): Likewise.
11548 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
11549 Do not write to existing jump functions but use a temporary instead.
11551 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11554 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
11555 attempt to use its first operand as BIT_FIELD_REF base.
11557 2017-03-01 Richard Biener <rguenther@suse.de>
11559 PR middle-end/79721
11560 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
11561 interpolating formula in wrapping arithmetic.
11562 (chrec_apply): Convert chrec_evaluate return value to wanted type.
11564 2017-03-01 Jakub Jelinek <jakub@redhat.com>
11566 PR tree-optimization/79734
11567 * tree-vect-generic.c (expand_vector_condition): Optimize
11568 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
11569 Handle VEC_COND_EXPR where comparison has different inner width from
11570 type's inner width.
11572 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
11574 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
11575 markup, and similar issues. Remove @opindex entries for things
11576 that aren't options. Add missing -mmpy-option entries.
11578 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11580 PR tree-optimization/79737
11581 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
11582 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
11583 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
11584 instead of byte_size. Formatting fix.
11585 (shift_bytes_in_array_right): Formatting fix.
11587 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
11590 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
11591 condition on optimize for the leaf function test.
11593 2017-02-28 Martin Liska <mliska@suse.cz>
11596 * read-rtl-function.c (function_reader::handle_unknown_directive):
11597 Bail out when one uses -flto.
11599 2017-02-28 Martin Liska <mliska@suse.cz>
11601 * common.opt: Replace space with tabular for options of <number>
11603 * config/i386/i386.opt: Show <number> value for
11604 -mlarge-data-threshold.
11605 * opts.c (print_filtered_help): Do not display number in hexadecimal
11608 2017-02-28 Martin Liska <mliska@suse.cz>
11610 * common.opt: Fix --help=option -Q for options which are of
11613 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
11615 * config/i386/i386.c (print_reg): Error out for values
11616 of 8-bit size in invalid integer register.
11618 2017-02-28 Martin Sebor <msebor@redhat.com>
11620 PR tree-optimization/79691
11621 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
11623 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11626 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
11627 gcc_unreachable with output_operand_lossage.
11629 2017-02-28 Richard Biener <rguenther@suse.de>
11631 PR tree-optimization/79740
11632 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
11634 (visit_nary_op): Insert the nary into the hashtable if we
11635 pattern-matched sth.
11636 * tree-ssa-pre.c (eliminate_insert): Robustify.
11638 2017-02-28 Richard Biener <rguenther@suse.de>
11640 PR middle-end/79731
11641 * fold-const.c (decode_field_reference): Reject out-of-bound
11644 2017-02-28 Jakub Jelinek <jakub@redhat.com>
11646 * config/i386/i386.c: Include intl.h.
11647 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
11648 instead of just cond ? "..." : "...".
11649 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
11650 * coverage.c (read_counts_file): Likewise.
11651 * omp-offload.c: Include intl.h.
11652 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
11653 of just cond ? "..." : "...".
11654 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
11655 of just cond ? "..." : "...".
11657 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
11660 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
11662 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
11663 'tune for' CPU name.
11664 * config/arm/arm-cpu-data.h: Regenerated.
11666 2017-02-28 Richard Biener <rguenther@suse.de>
11668 PR tree-optimization/79732
11669 * tree-inline.c (expand_call_inline): Do not shadow var.
11671 2017-02-28 Richard Biener <rguenther@suse.de>
11673 PR tree-optimization/79723
11674 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
11675 address-space properly.
11677 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
11679 * doc/optinfo.texi (Optimization groups): Fix option used for
11681 * doc/invoke.texi (-fopt-info): Document "omp".
11682 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
11683 (OPTGROUP_ALL): Add OPTGROUP_OMP.
11684 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
11685 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
11686 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
11688 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
11690 * dumpfile.c (optgroup_options): Instead of "openmp", associate
11691 OPTGROUP_OMP with "omp".
11693 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
11696 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
11697 for arithmetic shift of unsigned V2DI.
11699 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
11701 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
11702 arc/linux.h headers.
11703 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
11704 (LINK_SPEC): Likewise.
11705 (ARC_TLS_EXTRA_START_SPEC): Likewise.
11706 (EXTRA_SPECS): Likewise.
11707 (STARTFILE_SPEC): Likewise.
11708 (ENDFILE_SPEC): Likewise.
11709 (LIB_SPEC): Likewise.
11710 (TARGET_SDATA_DEFAULT): Likewise.
11711 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
11712 (MULTILIB_DEFAULTS): Likewise.
11713 (DWARF2_UNWIND_INFO): Likewise.
11714 * config/arc/big.h: New file.
11715 * config/arc/elf.h: Likewise.
11716 * config/arc/linux.h: Likewise.
11717 * config/arc/t-uClibc: Remove.
11719 2017-02-27 Bin Cheng <bin.cheng@arm.com>
11721 PR tree-optimization/77536
11722 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
11723 (tree_transform_and_unroll_loop): Use above function to compute the
11724 estimated niter of unrolled loop and use it when scaling profile.
11725 Also use count info rather than frequency if it's non-zero.
11726 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
11727 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
11728 (vect_transform_loop): Call above function.
11730 2017-02-27 Richard Biener <rguenther@suse.de>
11732 PR tree-optimization/45397
11733 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
11734 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
11735 (visit_nary_op): Add pattern matching for CSEing sign-changed
11736 or truncated operations with wider ones.
11738 2017-02-27 Richard Biener <rguenther@suse.de>
11740 PR tree-optimization/79690
11741 * tree-vect-stmts.c (vectorizable_store): Use vector type
11742 built from the DR with address-space.
11744 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
11746 * doc/invoke.texi (Optimize Options): Refine the description
11747 of asan-use-after-return.
11749 2017-02-25 Alan Modra <amodra@gmail.com>
11751 PR rtl-optimization/79584
11752 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
11753 base, not ad->base_term, the reg within base. Remove assertion
11754 that ad->base == ad->base_term. Replace gen_int_mode using
11755 bogus mode with const0_rtx.
11757 2017-02-25 Jakub Jelinek <jakub@redhat.com>
11759 PR middle-end/79396
11760 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
11761 FMA_EXPR like tcc_binary or tcc_unary.
11763 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
11766 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
11768 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
11769 (output_loc_operands): Handle DW_OP_call_ref and
11770 DW_OP_GNU_variable_value.
11771 (struct variable_value_struct): New type.
11772 (struct variable_value_hasher): Likewise.
11773 (variable_value_hash): New variable.
11774 (string_types): Remove.
11775 (copy_loc_descr): New function.
11776 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
11777 (prepend_loc_descr_to_each): New function.
11778 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
11779 instead of add_loc_descr_to_each if the first argument is single
11780 location list and the second has multiple.
11781 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
11782 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
11783 when looking for variable value which doesn't have other location info.
11784 (loc_list_from_tree): Formatting fix.
11785 (gen_array_type_die): Simplify DW_AT_string_length handling.
11786 (adjust_string_types): Remove.
11787 (gen_subprogram_die): Don't call adjust_string_types nor test/set
11788 string_types. Call resolve_variable_values.
11789 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
11790 (resolve_addr_in_expr): Likewise. Add A argument.
11791 (copy_deref_exprloc): Remove deref argument. Adjust for the
11792 original expression being DW_OP_GNU_variable_value with optionally
11793 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
11794 optionally after it.
11795 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
11796 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
11797 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
11798 (variable_value_hasher::hash, variable_value_hasher::equal): New
11800 (resolve_variable_value_in_expr, resolve_variable_value,
11801 resolve_variable_values, note_variable_value_in_expr,
11802 note_variable_value): New functions.
11803 (dwarf2out_early_finish): Call note_variable_value on all toplevel
11806 2017-02-24 Jakub Jelinek <jakub@redhat.com>
11809 * opts.h (handle_generated_option): Add GENERATED_P argument.
11810 * opts-common.c (handle_option): Adjust function comment.
11811 (handle_generated_option): Add GENERATED_P argument, pass it to
11813 (control_warning_option): Pass false to handle_generated_option
11815 * opts.c (maybe_default_option): Pass true to handle_generated_option
11817 * optc-gen.awk: Likewise.
11819 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11821 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
11822 a REG, look at the REG it is a SUBREG of.
11823 (splitter for cmpeqsi_t): Ditto.
11825 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11827 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
11828 the special USEs with the pattern of the insn, not the insn itself.
11830 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
11833 * doc/invoke.texi: Document -mload-store-pairs.
11835 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11836 Sandra Loosemore <sandra@codesourcery.com>
11838 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
11839 argument isn't a CONST_INT.
11840 (nios2_alternate_compare_const): Assert op is a CONST_INT.
11841 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
11842 (nios2_validate_compare): Bypass alternate compare logic if *op2
11843 is not a CONST_INT.
11844 (ldstwm_operation_p): Return false if first_base is not a REG or
11845 if first_offset is not a CONST_INT.
11847 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11849 * config/cris/cris.md: Use correct operand in a define_peephole2.
11851 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11853 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
11855 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
11857 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
11858 this_insn if it is an INSN or JUMP_INSN.
11859 (force_offsettable): Look at base, not at addr.
11860 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
11861 on things that aren't necessarily CONST_INTs.
11863 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
11865 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
11866 -mfpmath=sse is the default also for x86-32 targets with SSE2
11867 instruction set when @option{-ffast-math} is enabled
11869 2017-02-24 Jeff Law <law@redhat.com>
11871 PR rtl-optimizatoin/79286
11872 * ira.c (update_equiv_regs): Drop may_trap_p exception to
11875 2017-02-24 Richard Biener <rguenther@suse.de>
11877 PR tree-optimization/79389
11878 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
11881 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
11883 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
11884 function comment to reflect reality.
11885 (loop_exits_before_overflow): Fix typo in function description.
11887 2017-02-24 Richard Biener <rguenther@suse.de>
11889 PR tree-optimization/79389
11890 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
11891 properly that a threading opportunity exists. Detect conditional
11892 copy/constant propagation opportunities.
11894 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
11896 * config/visium/visium.md (type): Add trap.
11897 (b): New mode attribute.
11898 (*btst): Rename into...
11899 (*btst<mode>): ...this and adjust.
11900 (*cbranchsi4_btst_insn): Rename into...
11901 (*cbranch<mode>4_btst_insn): ...this and adjust.
11902 (trap): New define_insn.
11904 2017-02-23 Jakub Jelinek <jakub@redhat.com>
11906 PR tree-optimization/79389
11907 * ifcvt.c (struct noce_if_info): Add rev_cond field.
11908 (noce_reversed_cond_code): New function.
11909 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
11910 reversed_comparison_code. Formatting fix.
11911 (noce_try_store_flag): Test rev_cond != NULL in addition to
11912 reversed_comparison_code.
11913 (noce_try_store_flag_constants): Likewise.
11914 (noce_try_store_flag_mask): Likewise.
11915 (noce_try_addcc): Use rev_cond if non-NULL instead of
11916 reversed_comparison_code.
11917 (noce_try_cmove_arith): Likewise. Formatting fixes.
11918 (noce_try_minmax, noce_try_abs): Clear rev_cond.
11919 (noce_find_if_block): Initialize rev_cond.
11920 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
11921 instead of false as last argument never attempt to reverse it
11924 2017-02-23 Bin Cheng <bin.cheng@arm.com>
11926 PR tree-optimization/79663
11927 * tree-predcom.c (combine_chains): Process refs in reverse order
11928 only for ZERO length chains, and add explaining comment.
11930 2017-02-23 Jeff Law <law@redhat.com>
11932 PR tree-optimization/79578
11933 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
11934 in call to operand_equal_p.
11936 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
11939 * config/i386/cpuid.h: Fix another undefined behavior.
11941 2017-02-23 Richard Biener <rguenther@suse.de>
11943 PR tree-optimization/79683
11944 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
11945 vector types for data-refs.
11947 2017-02-23 Martin Liska <mliska@suse.cz>
11949 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
11951 2017-02-23 Jakub Jelinek <jakub@redhat.com>
11953 PR middle-end/79665
11954 * internal-fn.c (get_range_pos_neg): Moved to ...
11955 * tree.c (get_range_pos_neg): ... here. No longer static.
11956 * tree.h (get_range_pos_neg): New prototype.
11957 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
11958 are known to be in between 0 and signed maximum inclusive, try to
11959 expand both unsigned and signed divmod and use the cheaper one from
11962 2017-02-22 Jeff Law <law@redhat.com>
11964 PR tree-optimization/79578
11965 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
11966 to compare base operands.
11968 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
11971 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
11972 gpc_reg_operand instead of fpr_reg_operand.
11974 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
11976 * config/mips/mips.c (mips_return_in_memory): Force FP
11977 vector types to be returned in memory for o32 ABI.
11979 2017-02-22 Jakub Jelinek <jakub@redhat.com>
11981 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
11982 instead of DW_TAG_member for static data member declarations and don't
11983 set no_linkage_name for static inline data members.
11984 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
11987 2017-02-22 Martin Liska <mliska@suse.cz>
11989 * doc/invoke.texi: Replace inequality signs with square brackets
11992 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
11995 * lra-constraints.c (simplify_operand_subreg): Handle
11996 WORD_REGISTER_OPERATIONS targets.
11998 2017-02-22 Jakub Jelinek <jakub@redhat.com>
12001 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
12002 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
12003 elimination by swapping fld*.
12005 2017-02-22 Richard Biener <rguenther@suse.de>
12007 PR tree-optimization/79673
12008 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
12009 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
12010 irrelevant address-space qualifiers and avoiding a
12011 ADDR_SPACE_CONVERT_EXPR from fold_convert.
12013 2017-02-22 Richard Biener <rguenther@suse.de>
12015 PR tree-optimization/79666
12016 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
12017 to not symbolically negate if that may introduce undefined
12020 2017-02-22 Martin Liska <mliska@suse.cz>
12023 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
12024 * data-streamer-out.c (streamer_write_gcov_count_stream):
12026 * value-prof.c (stream_out_histogram_value): Make assert more
12027 precise based on type of counter.
12029 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
12032 * config/i386/i386.md (standard_x87sse_constant_load splitter):
12033 Use nonimmediate_operand instead of memory_operand for operand 1.
12034 (float-extend standard_x87sse_constant_load splitter): Ditto.
12036 2017-02-21 Jeff Law <law@redhat.com>
12038 PR tree-optimization/79621
12039 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
12040 blocks with edges to themselves.
12042 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12045 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
12046 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
12047 Use gimple_call_builtin_p.
12050 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
12051 on temporarily removed DEBUG_INSNs.
12053 PR tree-optimization/79649
12054 * tree-loop-distribution.c (classify_partition): Give up on
12055 non-generic address space loads/stores.
12057 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
12059 * doc/loop.texi (Loop manipulation): Remove nonexistent
12060 tree_ssa_loop_version from the documentation.
12061 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
12063 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12066 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
12067 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
12068 * config/rs6000/rs6000.c: Include except.h.
12069 (rs6000_expand_split_stack_prologue): Call
12070 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
12072 2017-02-21 Martin Jambor <mjambor@suse.cz>
12075 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
12076 have been analyzed.
12078 2017-02-21 Martin Jambor <mjambor@suse.cz>
12080 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
12081 for backward compatibility only.
12082 * doc/invoke.texi (Option Summary): Remove all references to
12083 -fipa-cp-alignment.
12085 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
12089 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12091 * lra-constraints.c (curr_insn_transform): Handle
12092 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12094 2017-02-21 Martin Liska <mliska@suse.cz>
12096 * config/i386/i386.opt: Replace -masm-dialect with -masm.
12098 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
12100 PR translation/79638
12101 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
12103 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
12106 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
12107 (arm_function_ok_for_sibcall): Return false for an indirect call by
12108 descriptor if all the argument registers are used.
12109 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
12110 alignment of the function.
12112 2017-02-21 Jakub Jelinek <jakub@redhat.com>
12114 PR tree-optimization/61441
12115 * simplify-rtx.c (simplify_const_unary_operation): For
12116 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
12117 the sNaN unmodified.
12119 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
12121 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
12122 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
12123 instead of SYSTEM_HEADER_DIR.
12125 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
12126 Martin Liška <mliska@suse.cz>
12128 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
12129 Fix typos and grammar, use active voice, and clarify.
12131 2017-02-20 Marek Polacek <polacek@redhat.com>
12133 PR middle-end/79537
12134 * gimplify.c (gimplify_expr): Handle unused *&&L;.
12137 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
12139 2017-02-20 Jakub Jelinek <jakub@redhat.com>
12142 * config/i386/i386.c (ix86_expand_builtin): Handle
12143 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
12144 ix86_builtins_isa[fcode].isa as a requirement of those
12145 flags and any other flag in the bitmask.
12146 (ix86_init_mmx_sse_builtins): Use 0 instead of
12147 ~OPTION_MASK_ISA_64BIT as mask.
12148 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
12149 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
12150 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
12151 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
12153 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12156 * lra-constraints.c (split_reg): Check requested split mode
12157 is supported by the register.
12159 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12161 * lra-constraints.c (simplify_operand_subreg): Remove early
12164 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12167 * lra-constraints.c (curr_insn_transform): Tighten condition
12168 for converting SUBREG reloads from OP_OUT to OP_INOUT.
12170 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
12173 * lra-constraints.c (curr_insn_transform): Handle
12174 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
12176 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
12179 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
12181 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
12183 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
12186 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
12189 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12191 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
12194 2017-02-18 Jakub Jelinek <jakub@redhat.com>
12196 * final.c (last_columnnum, override_columnnum): New variables.
12197 (final_start_function): Set last_columnnum, pass it to begin_prologue
12198 hook and pass 0 to dwarf2out_begin_prologue.
12199 (final_scan_insn): Update override_columnnum. Pass last_columnnum
12200 to source_line debug hook.
12201 (notice_source_line): Compute last_columnnum and for debug_column_info
12202 return true on column changes.
12203 * debug.h (struct gcc_debug_hooks): Add column argument to
12204 source_line and begin_prologue hooks.
12205 (debug_nothing_int_charstar_int_bool): Remove prototype.
12206 (debug_nothing_int_int_charstar,
12207 debug_nothing_int_int_charstar_int_bool): New prototypes.
12208 (dwarf2out_begin_prologue): Add column argument.
12209 * debug.c (do_nothing_debug_hooks): Adjust source_line and
12210 begin_prologue hooks.
12211 (debug_nothing_int_charstar_int_bool): Remove.
12212 (debug_nothing_int_int_charstar,
12213 debug_nothing_int_int_charstar_int_bool): New functions.
12214 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
12215 through to dwarf2out_source_line.
12216 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
12217 (dwarf2out_source_line): Add column argument, emit it if requested.
12218 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
12220 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12221 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
12222 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
12223 through to dwarf2out_begin_prologue.
12224 (vmsdbgout_source_line): Add column argument, pass it through to
12225 dwarf2out_source_line.
12226 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
12227 dbxout_source_line caller.
12228 (dbxout_source_line): Add column argument.
12230 * common.opt (gno-column-info, gcolumn-info): New options.
12231 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
12232 (check_die): Also test for multiple DW_AT_decl_column attributes.
12233 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
12234 DW_AT_decl_column if requested.
12235 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
12237 (gen_variable_die): Likewise.
12238 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
12239 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
12242 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
12243 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
12244 (ix86_handle_option): Handle OPT_m3dnowa.
12245 * doc/invoke.texi (-m3dnowa): Document.
12246 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
12247 -m3dnowa instead of -m3dnow -march=athlon.
12250 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
12251 instead of gcc_assert for K, r and R code checks. Formatting fixes.
12253 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
12256 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
12257 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
12258 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
12259 generator for vsx_xxpermdi_<mode>_be.
12260 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
12261 force big-endian semantics.
12262 (vsx_xxpermdi_<mode>_be): New define_expand with same
12263 implementation as previous version of vsx_xxpermdi_<mode>.
12265 2017-02-17 Jakub Jelinek <jakub@redhat.com>
12267 PR tree-optimization/79327
12268 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
12269 variable, its initialization and use.
12271 2017-02-17 Julia Koval <julia.koval@intel.com>
12273 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
12274 (OPTION_MASK_ISA_PKU_UNSET): New.
12275 (ix86_handle_option): Handle -mrdpid.
12276 * config/i386/cpuid.h (bit_RDPID): New.
12277 * config/i386/driver-i386.c (host_detect_local_cpu):
12278 Detect RDPID feature.
12279 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
12280 * config/i386/i386-c.c (ix86_target_macros_internal):
12282 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
12283 (ix86_valid_target_attribute_inner_p): Add "rdpid".
12284 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
12285 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
12286 * config/i386/i386.md (define_insn "rdpid"): New.
12287 * config/i386/i386.opt Add -mrdpid.
12288 * config/i386/immintrin.h (_rdpid_u32): New.
12290 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
12292 PR rtl-optimization/79541
12293 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
12294 instead of transforming it into USE.
12296 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
12298 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
12299 If HONOR_SNANS (SFmode) force the input to a register.
12300 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
12301 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
12302 an frsp or similar insn.
12304 2017-02-17 Martin Liska <mliska@suse.cz>
12306 PR rtl-optimization/79577
12307 * params.def (selsched-max-sched-times): Increase minimum to 1.
12309 2017-02-17 Martin Liska <mliska@suse.cz>
12311 PR rtl-optimization/79574
12312 * gcse.c (want_to_gcse_p): Prevent integer overflow.
12314 2017-02-17 Martin Liska <mliska@suse.cz>
12316 PR tree-optimization/79529
12317 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
12318 ssa_defined_default_def_p to handle cases which are implicitly
12320 * tree-ssa.c (ssa_defined_default_def_p): New function.
12321 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
12322 which are implicitly defined.
12323 * tree-ssa.h (ssa_defined_default_def_p): Declare.
12325 2017-02-17 Richard Biener <rguenther@suse.de>
12327 PR middle-end/79576
12328 * params.def (max-ssa-name-query-depth): Limit to 10.
12330 2017-02-17 Richard Biener <rguenther@suse.de>
12332 PR tree-optimization/79552
12333 * tree-ssa-structalias.c (visit_loadstore): Properly verify
12336 2017-02-17 Richard Biener <rguenther@suse.de>
12339 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
12341 2017-02-17 Marek Polacek <polacek@redhat.com>
12343 PR middle-end/79536
12344 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
12345 (fold_negate_expr): New wrapper.
12347 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
12349 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
12350 Correct terminology and de-emphasize pre-standard behavior.
12352 2017-02-16 Alan Modra <amodra@gmail.com>
12354 PR rtl-optimization/79286
12355 * ira.c (def_dominates_uses): New function.
12356 (update_equiv_regs): Don't create an equivalence for insns that
12357 may trap where the register def does not dominate the use.
12359 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
12361 PR rtl-optimization/78127
12362 * lra.c (lra): Call lra_eliminate before finish the loop after
12365 2017-02-16 Richard Biener <rguenther@suse.de>
12367 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
12369 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
12370 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
12371 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
12372 (isl_val_int_from_wi): New function.
12373 (extract_affine_gmp): Rename to ...
12374 (extract_affine_wi): ... this, take a widest_int.
12375 (extract_affine_int): Just wrap extract_affine_wi.
12376 (add_param_constraints): Use isl_val_int_from_wi.
12377 (add_loop_constraints): Likewise, and extract_affine_wi.
12379 2017-02-15 Jeff Law <law@redhat.com>
12381 PR middle-end/79521
12382 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
12383 ira_init_register_move_cost_if_necessary.
12385 2017-02-15 Martin Sebor <msebor@redhat.com>
12387 PR middle-end/32003
12388 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
12389 removed in a prior commit.
12391 2017-02-15 Bin Cheng <bin.cheng@arm.com>
12393 PR tree-optimization/79347
12394 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
12395 counters during peeling.
12397 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
12399 * Makefile.in (site.exp): Remove "set ISLVER".
12401 2017-02-15 Jakub Jelinek <jakub@redhat.com>
12404 * real.c (real_from_integer): Call real_convert even for decimal.
12406 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
12409 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
12411 2017-02-14 Andrew Pinski <apinski@cavium.com>
12413 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
12414 cores and change the partno/implementer to be correct.
12415 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
12416 the 'B" as the implementer.
12417 * config/aarch64/aarch64-tune.md: Regenerate.
12419 2017-02-14 Carl Love <cel@us.ibm.com>
12421 * config/rs6000/rs6000.c: Add case statement entry to make the
12422 xvcvuxdsp built-in argument unsigned.
12423 * config/rs6000/vsx.md: Fix the source and return operand types so they
12424 match the instruction definitions from the ISA document. Fix typo
12425 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
12428 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
12431 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
12432 member early_clobber_alts.
12433 * lra-lives.c (reg_early_clobber_p): New.
12434 (process_bb_lives): Use it.
12435 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
12436 (debug_operand_data): Initialize early_clobber_alts.
12437 (setup_operand_alternative): Set up early_clobber_alts.
12438 (collect_non_operand_hard_regs): Ditto. Pass early clobber
12439 alternatives to new_insn_reg.
12440 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
12442 (lra_update_insn_regno_info): Pass the new arg.
12444 2017-02-14 Jakub Jelinek <jakub@redhat.com>
12446 PR middle-end/79505
12447 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
12448 (new_oacc_loop_raw): Don't clear already cleared fields.
12451 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
12452 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
12453 _mm512_prefetch_i64gather_ps): New inline functions and macros.
12455 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
12458 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
12460 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
12463 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
12464 the extra instruction to the right place to store 128-bit constant
12467 2017-02-14 Martin Sebor <msebor@redhat.com>
12469 PR middle-end/79448
12470 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
12471 warning for strings of unknown length.
12473 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
12475 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
12477 2017-02-14 Jeff Law <law@redhat.com>
12480 * ira-costs.c (scan_one_insn): Initialize register move costs
12481 for pseudos seen in USE/CLOBBER insns.
12483 PR tree-optimization/79095
12484 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
12485 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
12486 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
12487 if the operands are known to be not equal, then the resulting range
12489 (intersect_ranges): If the new range is ~[0,0] and the old range is
12490 wide, then prefer ~[0,0].
12491 * tree-vrp.c (overflow_comparison_p_1): New function.
12492 (overflow_comparison_p): New function.
12493 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
12494 if NAME is used in an overflow test.
12495 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
12496 overflow check that can be expressed as an equality test, then adjust
12497 ops to be that equality test.
12499 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
12501 * config/s390/s390-builtin-types.def: Remove flags argument.
12502 * config/s390/s390.c (s390_init_builtins): Likewise.
12504 2017-02-14 Martin Liska <mliska@suse.cz>
12506 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
12507 vector. Fix trailing white spaces.
12509 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
12511 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
12514 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12516 PR rtl-optimization/68664
12517 * config/arm/arm.c (arm_sched_can_speculate_insn):
12518 New function. Declare prototype.
12519 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
12521 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12523 PR rtl-optimization/68664
12524 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
12526 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
12528 2017-02-14 Amit Pawar <amit.pawar@amd.com>
12530 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
12531 max skip bytes for function, loop and jump.
12533 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12535 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
12536 ABS_EXPR for gimple dump.
12538 2017-02-14 Jakub Jelinek <jakub@redhat.com>
12541 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
12543 PR tree-optimization/79408
12544 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
12545 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
12546 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
12547 also if rhs1 is INTEGER_CST.
12549 2017-02-14 Richard Biener <rguenther@suse.de>
12551 PR middle-end/79432
12552 * tree-into-ssa.c (insert_phi_nodes): When the function can
12553 have abnormal edges rewrite SSA names with broken use-def
12554 dominance out of SSA and register them for PHI insertion.
12556 2017-02-13 Martin Sebor <msebor@redhat.com>
12558 PR middle-end/79496
12559 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
12560 clearing info.nowrite flag when snprintf size argument is a range.
12562 2017-02-13 Jakub Jelinek <jakub@redhat.com>
12564 * cprop.c (cprop_jump): Add missing space in string literal.
12565 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
12566 (get_constraint_for_component_ref): Likewise.
12567 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
12568 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
12569 * lra-constraints.c (process_alt_operands): Likewise.
12570 * ipa-inline.c (inline_small_functions): Likewise.
12571 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
12572 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
12573 * trans-mem.c (diagnose_tm_1_op): Likewise.
12574 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
12575 (grid_parallel_clauses_gridifiable): Likewise.
12577 * config/nvptx/mkoffload.c (process): Add space in between
12580 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
12581 "MOD4_SSE_REGS" and "ALL_REGS".
12583 * spellcheck.c (test_data): Add , in between "foo" and "food".
12585 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12588 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
12589 boundary crossing check and subsequent code generation agree.
12591 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12593 * config/aarch64/aarch64.c (has_memory_op): Delete.
12594 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
12597 2017-02-13 Jakub Jelinek <jakub@redhat.com>
12599 PR rtl-optimization/79388
12600 PR rtl-optimization/79450
12601 * combine.c (distribute_notes): When removing TEM_INSN for which
12602 corresponding dest has last value recorded, invalidate that last
12605 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12607 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
12608 of explicit '@'. Add missing assembly comment marker on branch costs
12611 2017-02-13 Nathan Sidwell <nathan@acm.org>
12613 * gengtype-lex.l (<in_struct>): Add '/'.
12615 2017-02-13 Martin Liska <mliska@suse.cz>
12618 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
12620 2017-02-13 Richard Biener <rguenther@suse.de>
12622 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
12624 * configure: Re-generate.
12625 * config.in: Likewise.
12626 * graphite-dependences.c: Simplify as if
12627 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
12628 * graphite-isl-ast-to-gimple.c: Likewise.
12629 * graphite-optimize-isl.c: Likewise.
12630 * graphite-poly.c: Likewise.
12631 * graphite-sese-to-poly.c: Likewise.
12632 * graphite.h: Likewise.
12633 * toplev.c: Include isl/version.h and use isl_version () for
12634 printing the ISL version.
12635 * doc/install.texi: Update ISL requirement.
12637 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12639 * doc/standards.texi (Standards): Update reference to
12642 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
12644 * doc/extend.texi (Named Address Spaces): sourceware.org now
12646 * doc/install.texi (Binaries): Ditto.
12649 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
12651 * doc/cpp.texi: Replace "stringify"/"stringification" with C
12652 standard terminology "stringize"/"stringizing" throughout.
12653 * doc/cppinternals.texi: Likewise.
12655 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
12657 * doc/extend.texi: Fix some spelling mistakes and typos.
12658 * doc/invoke.texi: Likewise.
12660 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
12663 * params.def (inline-min-speedup) Change from 10 to 8.
12665 2017-02-11 Jakub Jelinek <jakub@redhat.com>
12667 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
12670 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
12673 * ipa-inline-analysis.c (get_minimal_bb): New function.
12674 (record_modified): Use it.
12675 (remap_edge_change_prob): Handle also ancestor functions.
12677 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
12679 * doc/contrib.texi (Contributors): Remove broken link into
12680 the Mauve CVS repository.
12682 2017-02-11 Jakub Jelinek <jakub@redhat.com>
12684 PR middle-end/79454
12685 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
12686 result computation whenever lhs doesn't have vector mode, not
12687 just when it has BLKmode.
12689 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12691 * doc/makefile.texi (profiledbootstrap): Refer to the
12692 installation instructions only in textual form.
12694 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
12697 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
12699 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
12701 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
12702 (Specific): Update mingw-w64 reference.
12704 (Specific): Remove broken link to Renesas RX processor.
12706 2017-02-10 Richard Biener <rguenther@suse.de>
12708 * toplev.c (process_options): Do not mention obsolete graphite
12709 options when printing sorry message about missing graphite support.
12710 Mention -floop-nest-optimize.
12712 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
12714 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
12715 (vtst_p16): Likewise.
12716 (vtstq_p8): Likewise.
12717 (vtstq_p16): Likewise.
12719 (vtstq_p64): Likewise.
12720 * config/arm/arm_neon.h (vgetq_lane_p64): New.
12721 (vset_lane_p64): New.
12722 (vsetq_lane_p64): New.
12724 2017-02-10 Jakub Jelinek <jakub@redhat.com>
12726 PR tree-optimization/79411
12727 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
12728 stmt operands are SSA_NAMEs used in abnormal phis.
12729 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
12732 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
12735 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
12738 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
12740 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
12742 2017-02-09 Jakub Jelinek <jakub@redhat.com>
12744 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
12748 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
12749 not arbitrary TREE_CONSTANT.
12752 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
12753 "omp declare target link" attribute unless is_global_var.
12754 * omp-offload.c (find_link_var_op): Likewise.
12756 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
12757 Chung-Lin Tang <cltang@codesourcery.com>
12759 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
12761 (gimplify_adjust_omp_clauses): Don't delete TILE.
12762 (gimplify_omp_for): Deal with TILE.
12763 * internal-fn.c (expand_GOACC_TILE): New function.
12764 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
12766 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
12767 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
12769 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
12770 avoid DIV for outermost collapse var.
12771 (expand_oacc_for): Insert tile element loop as needed. Adjust.
12772 Remove out of date comments, fix whitespace.
12773 * omp-general.c (omp_extract_for_data): Deal with tiling.
12774 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
12775 adjust OLF_DIM_BASE value.
12776 (struct omp_for_data): Add tiling field.
12777 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
12778 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
12779 for auto loops. Remove default auto determining, moved to
12780 oacc_loop_fixed_partitions.
12781 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
12782 stmts, add e_mask field.
12783 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
12784 (oacc_thread_numbers): Use oacc_dim_call.
12785 (oacc_xform_tile): New.
12786 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
12787 (finish_oacc_loop): Adjust for ifns vector.
12788 (oacc_loop_discover_walk): Append loop abstraction sites to list,
12789 add case for GOACC_TILE fns.
12790 (oacc_loop_xform_loop): Delete.
12791 (oacc_loop_process): Iterate over call list directly, and add
12792 handling for GOACC_TILE fns.
12793 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
12795 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
12796 vector partitioning to outer loops. Assign 2 partitions to loops
12797 when available. Add TILE handling.
12798 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
12799 (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
12800 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
12801 * tree.c (omp_clause_num_ops): Adjust TILE ops.
12802 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
12804 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
12806 * configure.ac (ACX_BUGURL): Update.
12807 * configure: Regenerate.
12809 2017-02-09 Richard Biener <rguenther@suse.de>
12811 PR tree-optimization/69823
12812 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
12813 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
12815 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
12817 * config/arc/arc-c.def: Add __NPS400__ definition.
12818 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
12819 (TARGET_NPS400): Define.
12821 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
12823 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
12825 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
12826 pointer, arch_info.
12827 (arc_cpu_types): Fill the arch_info field with a pointer into the
12828 arc_arch_types table.
12829 (arc_selected_cpu): Declare.
12830 * config/arc/arc.c (arc_selected_cpu): Make global.
12831 (arc_selected_arch): Delete.
12832 (arc_base_cpu): Delete.
12833 (arc_override_options): Remove references to deleted variables,
12834 update access to arch information.
12835 (ARC_OPT): Update access to arch information.
12836 (ARC_OPTX): Likewise.
12837 * config/arc/arc.h (arc_base_cpu): Remove declaration.
12838 (TARGET_ARC600): Update access to arch information.
12839 (TARGET_ARC601): Likewise.
12840 (TARGET_ARC700): Likewise.
12841 (TARGET_EM): Likewise.
12842 (TARGET_HS): Likewise.
12843 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
12846 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
12849 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
12850 condition/operands for integer GE/LE/GEU/LEU operations.
12852 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
12854 PR translation/79397
12855 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
12858 2017-02-08 Martin Jambor <mjambor@suse.cz>
12861 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
12862 whether allocation happened.
12863 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
12864 nothing was allocated.
12866 2017-02-08 Jakub Jelinek <jakub@redhat.com>
12868 PR tree-optimization/79408
12869 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
12870 constant, but SSA_NAME with a known integer range, use the minimum
12871 of that range instead of op1 to determine if modulo can be replaced
12872 with its first operand.
12874 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
12876 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
12878 2017-02-08 Richard Biener <rguenther@suse.de>
12880 PR tree-optimization/71824
12881 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
12882 Check all loops contained in the merged region.
12884 2017-02-07 Andrew Pinski <apinski@cavium.com>
12886 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
12888 2017-02-07 Andrew Pinski <apinski@cavium.com>
12890 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
12891 (thunderxt88): Likewise.
12892 (thunderxt81): Disable LSE and change v8.1 to v8.
12893 (thunderxt83): Likewise.
12895 2017-02-07 Jakub Jelinek <jakub@redhat.com>
12896 Richard Biener <rguenther@suse.de>
12898 PR middle-end/79399
12899 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
12900 type from int to size_t.
12901 * ira-costs.c (struct_costs_size): Change type from int to size_t.
12903 2017-02-07 Jakub Jelinek <jakub@redhat.com>
12905 PR rtl-optimization/79386
12906 * cprop.c (bypass_conditional_jumps): Initialize
12907 bypass_last_basic_block already before splitting bbs after
12908 unconditional traps...
12909 (bypass_conditional_jumps): ... rather than here.
12912 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
12913 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
12914 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
12915 fix -masm=intel patterns.
12917 2017-02-07 Richard Biener <rguenther@suse.de>
12919 PR tree-optimization/79256
12920 PR middle-end/79278
12921 * builtins.c (get_object_alignment_2): Use min_align_of_type
12922 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
12923 and ADJUST_FIELD_ALIGN.
12925 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
12927 * doc/tm.texi: Regenerate.
12928 * stor-layout.c (layout_decl): Adjust.
12929 (update_alignment_for_field): Likewise.
12930 (place_field): Likewise.
12931 (min_align_of_type): Likewise.
12932 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
12933 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
12934 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
12935 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
12936 * config/frv/frv.c (frv_adjust_field_align): Likewise.
12937 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
12938 * config/i386/i386.c (x86_field_alignment): Likewise.
12939 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
12940 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
12941 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
12942 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
12943 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
12944 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
12948 2017-01-30 Richard Biener <rguenther@suse.de>
12950 PR tree-optimization/79256
12951 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
12952 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
12955 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
12957 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
12958 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
12959 builtins to SImode and emit a zero-extend, if necessary.
12961 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
12963 * docs/invoke.texi (RISC-V Options): Alphabetize.
12965 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
12967 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
12970 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
12972 * config/riscv/riscv.c: New file.
12973 * gcc/common/config/riscv/riscv-common.c: Likewise.
12974 * config.gcc: Likewise.
12975 * config/riscv/constraints.md: Likewise.
12976 * config/riscv/elf.h: Likewise.
12977 * config/riscv/generic.md: Likewise.
12978 * config/riscv/linux.h: Likewise.
12979 * config/riscv/multilib-generator: Likewise.
12980 * config/riscv/peephole.md: Likewise.
12981 * config/riscv/pic.md: Likewise.
12982 * config/riscv/predicates.md: Likewise.
12983 * config/riscv/riscv-builtins.c: Likewise.
12984 * config/riscv/riscv-c.c: Likewise.
12985 * config/riscv/riscv-ftypes.def: Likewise.
12986 * config/riscv/riscv-modes.def: Likewise.
12987 * config/riscv/riscv-opts.h: Likewise.
12988 * config/riscv/riscv-protos.h: Likewise.
12989 * config/riscv/riscv.h: Likewise.
12990 * config/riscv/riscv.md: Likewise.
12991 * config/riscv/riscv.opt: Likewise.
12992 * config/riscv/sync.md: Likewise.
12993 * config/riscv/t-elf-multilib: Likewise.
12994 * config/riscv/t-linux: Likewise.
12995 * config/riscv/t-linux-multilib: Likewise.
12996 * config/riscv/t-riscv: Likewise.
12997 * configure.ac: Likewise.
12998 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
12999 Waterman as RISC-V maintainers.
13000 * doc/install.texi: Add RISC-V entries.
13001 * doc/invoke.texi: Add RISC-V options section.
13002 * doc/md.texi: Add RISC-V constraints section.
13003 * configure: Regenerated.
13005 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
13008 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
13009 false values to be constant vectors with all 0 or all 1 bits set.
13010 (vcondu<mode><mode>): Likewise.
13011 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
13013 (fpmask_comparison_operator): Update comment.
13014 (vecint_comparison_operator): New predicate.
13015 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
13016 vector conditionals when the true and false values are constant
13017 vectors with all 0 bits or all 1 bits set.
13019 2017-02-06 Martin Sebor <msebor@redhat.com>
13021 PR tree-optimization/79376
13022 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
13024 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
13026 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
13027 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
13028 to simplify split condition.
13030 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13032 * omp-expand.c (oxpand_omp_atomic_fetch_op,
13033 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
13036 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
13038 PR rtl-optimization/68664
13039 * target.def (can_speculate_insn): New hook.
13040 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
13041 * doc/tm.texi: Regenerate.
13042 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
13043 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
13044 (rs6000_sched_can_speculate_insn): New function.
13046 2017-02-06 Jakub Jelinek <jakub@redhat.com>
13048 PR tree-optimization/79284
13049 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
13050 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
13051 vectorizable_mask_load_store, vectorizable_operation,
13052 vect_is_simple_cond, get_same_sized_vectype): Use it instead
13053 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
13054 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
13055 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
13056 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
13057 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
13058 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
13059 is_gimple_assign (stmt). Replace another such test with
13060 is_gimple_assign (stmt).
13062 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13065 * config/avr/avr.c (rtl-iter.h): Include it.
13066 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
13067 (avr_legitimate_combined_insn): ...and implementation.
13069 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
13071 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
13072 * config/s390/s390.c (s390_const_operand_ok)
13073 (s390_canonicalize_comparison, s390_extract_part)
13074 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
13075 (s390_contiguous_bitmask_p, s390_rtx_costs)
13076 (legitimize_pic_address): Likewise.
13077 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
13078 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
13079 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
13080 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
13081 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
13083 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
13085 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
13086 REGNO($0) == REGNO($1).
13088 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13090 * config/s390/linux.h(SIZE_TYPE): Add comment.
13092 2017-02-06 Julian Brown <julian@codesourcery.com>
13093 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13094 Virendra Pathak <virendra.pathak@broadcom.com>
13096 * config/aarch64/aarch64-cores.def: Change the scheduler
13098 * config/aarch64/aarch64.md: Include thunderx2t99.md.
13099 * config/aarch64/thunderx2t99.md: New file.
13101 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13103 * doc/standards.texi (Go Language): Update link to language
13106 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13108 * tree-eh.c (lower_resx): Sanitize profile.
13109 (cleanup_empty_eh_move_lp): Likewise.
13111 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
13114 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
13116 * cfgloopmanip.h (loop_version): Update prototype.
13117 * modulo-sched.c (sms_schedule): Update call of loop_version.
13118 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
13119 * tree-parloops.c (gen_parallel_loop): Likewise.
13120 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
13121 * tree-ssa-loop-split.c (split_loop): Likewise.
13122 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
13123 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
13125 2017-02-05 Martin Liska <mliska@suse.cz>
13128 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
13130 (print_operand_address): Initialize a struct to zero.
13132 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13134 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
13135 garbage collector only in textual form.
13137 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
13139 * doc/extend.texi (x86 specific memory model extensions for
13140 transactional memory): Simplify a phrase.
13142 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
13145 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
13146 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
13147 (atomic_storedi_1): Likewise.
13149 2017-02-04 Jakub Jelinek <jakub@redhat.com>
13151 PR tree-optimization/79338
13152 * tree-parloops.c (gather_scalar_reductions): Don't call
13153 vect_analyze_loop_form for loop->inner before destroying loop's
13156 2017-02-03 Martin Sebor <msebor@redhat.com>
13158 PR tree-optimization/79327
13159 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
13160 when precision has resulted in leading zeros.
13161 (format_integer): Adjust the likely counter to assume an unknown
13162 argument that may be zero is non-zero.
13164 2017-02-03 Jason Merrill <jason@redhat.com>
13167 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
13168 avoid copying non-taken branch.
13170 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13172 PR tree-optimization/79340
13173 * tree-vect-loop.c (vectorizable_reduction): Release
13174 vec_defs elements after safe_splicing them into other vectors.
13177 PR tree-optimization/79327
13178 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
13179 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
13181 (format_integer): Use wide_int_to_tree instead of build_int_cst
13182 + to_?hwi. If argmin is NULL, just set argmin and argmax to
13183 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
13184 of shortest and longest sequence.
13186 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
13188 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
13189 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
13191 2017-02-03 Walter Lee <walt@tilera.com>
13194 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
13195 after initial stackframe link reg save.
13196 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
13198 2017-02-03 Jakub Jelinek <jakub@redhat.com>
13201 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
13202 wu for stxssp alternative.
13204 2017-02-03 Martin Sebor <msebor@redhat.com>
13206 PR tree-optimization/79352
13207 * gimple-fold.c (get_range_strlen): Add argument.
13208 (get_range_strlen): Change return type to bool.
13209 (get_maxval_strlen): Pass in a dummy argument.
13210 * gimple-fold.h (get_range_strlen): Change return type to bool.
13211 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
13212 * tree.h (array_at_struct_end_p): Add argument.
13213 * tree.c (array_at_struct_end_p): Handle it.
13215 2017-02-03 Martin Liska <mliska@suse.cz>
13218 * multiple_target.c (create_dispatcher_calls): Redirect edge
13219 from a caller of a dispatcher.
13220 (expand_target_clones): Make the clones local.
13221 (ipa_target_clone): Do both target clones and resolvers.
13222 (ipa_dispatcher_calls): Remove the pass.
13223 (pass_dispatcher_calls::gate): Likewise.
13224 (make_pass_dispatcher_calls): Likewise.
13225 * passes.def (pass_target_clone): Put as very first IPA early
13228 2017-02-03 Martin Liska <mliska@suse.cz>
13230 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
13231 in case of a function with ifunc attribute.
13233 2017-02-03 Martin Liska <mliska@suse.cz>
13235 * cgraph.c (cgraph_node::dump): Dump function version info.
13236 * symtab.c (symtab_node::dump_base): Add missing new line.
13238 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13240 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
13241 (ifcombine_ifandif): Use it.
13243 2017-02-03 Martin Liska <mliska@suse.cz>
13245 * doc/invoke.texi: Document default value for
13246 use-after-scope-direct-emission-threshold.
13248 2017-02-03 Martin Liska <mliska@suse.cz>
13250 PR tree-optimization/79339
13251 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
13252 (format_floating): Likewise.
13254 2017-02-03 Martin Liska <mliska@suse.cz>
13257 * ipa-prop.c (ipa_node_params_t::insert): Remove current
13259 (ipa_node_params_t::remove): Likewise.
13260 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
13261 initialization from removed ipa_node_params_t::insert.
13262 (ipa_node_params::~ipa_node_params): Move from removed
13263 ipa_node_params_t::release.
13264 * symbol-summary.h (symbol_summary::m_released): New member.
13265 Do not release a summary twice. Do not allow to call finalizer
13266 for types of a summary that live in GGC memory.
13268 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
13270 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
13273 2017-02-02 Martin Sebor <msebor@redhat.com>
13275 PR middle-end/79275
13276 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
13277 (format_string): Tighten up the range of output for non-constant
13278 strings and correct the expected range for wide non-constant strings.
13280 2017-02-02 Martin Sebor <msebor@redhat.com>
13282 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
13284 PR middle-end/32003
13285 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
13287 (-fdump-tree-@var): Add to index and document how to come up
13288 with pass-specific option and dump file names.
13289 (-fdump-passes): Clarify where to look for output.
13291 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
13293 PR middle-end/77445
13294 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
13295 statistics of the analyzed path; allow threading for speed when
13296 any of BBs along the path are optimized for speed.
13298 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
13300 PR middle-end/78468
13301 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
13302 settings of the virtual registers.
13305 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
13307 * explow.c (get_dynamic_stack_size): Take known alignment of stack
13308 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
13311 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13313 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
13314 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
13316 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13318 * config/s390/s390.md: Add missing comments with the expanded
13320 * config/s390/vector.md: Likewise.
13321 * config/s390/vx-builtins.md: Likewise.
13323 2017-02-02 Jakub Jelinek <jakub@redhat.com>
13326 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
13327 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
13328 conditions on a single line.
13330 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13332 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
13333 __S390_VX__ to __VX__.
13335 2017-02-01 Andrew Pinski <apinski@cavium.com>
13337 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
13338 stmt_info to record_stmt_cost.
13339 (vect_get_known_peeling_cost): Pass stmt_info if known to
13341 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
13342 cpu_vector_cost field into
13343 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
13344 field into vec_int_stmt_cost and vec_fp_stmt_cost.
13345 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
13346 splitting of scalar_stmt_cost and vec_stmt_cost.
13347 (thunderx_vector_cost): Likewise.
13348 (cortexa57_vector_cost): LIkewise.
13349 (exynosm1_vector_cost): Likewise.
13350 (xgene1_vector_cost): Likewise.
13351 (thunderx2t99_vector_cost): Improve after the splitting of the two
13353 (aarch64_builtin_vectorization_cost): Update for the splitting of
13354 scalar_stmt_cost and vec_stmt_cost.
13356 2017-02-01 Torvald Riegel <triegel@redhat.com>
13357 Richard Henderson <rth@redhat.com>
13359 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
13360 conditional on existance of a fast atomic load.
13361 * optabs-query.c (can_atomic_load_p): New function.
13362 * optabs-query.h (can_atomic_load_p): Declare it.
13363 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
13364 no fast atomic load is available for the particular size of access.
13365 (expand_atomic_compare_and_swap): Likewise.
13366 (expand_atomic_load): Likewise.
13367 (expand_atomic_store): Likewise.
13368 (expand_atomic_fetch_op): Likewise.
13369 * testsuite/lib/target-supports.exp
13370 (check_effective_target_sync_int_128): Remove x86 because it provides
13371 no fast atomic load.
13372 (check_effective_target_sync_int_128_runtime): Likewise.
13374 2017-02-01 Richard Biener <rguenther@suse.de>
13376 * graphite.c: Include tree-vectorizer.h for find_loop_location.
13377 (graphite_transform_loops): Provide opt-info for optimized nests.
13378 * tree-parloop.c (parallelize_loops): Provide opt-info for
13379 parallelized loops.
13381 2017-02-01 Richard Biener <rguenther@suse.de>
13383 PR middle-end/79315
13384 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
13385 was not set before.
13387 2017-02-01 Richard Biener <rguenther@suse.de>
13389 PR tree-optimization/71824
13390 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
13391 Verify the loops are valid in the merged SESE region.
13392 (scop_detection::can_represent_loop_1): Check analyzing the
13393 evolution of the number of iterations in the region succeeds.
13395 2017-01-31 Ian Lance Taylor <iant@golang.org>
13397 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
13398 REG_ARGS_SIZE note to 32-bit push insns and call insn.
13400 2017-01-31 David Malcolm <dmalcolm@redhat.com>
13402 PR preprocessor/79210
13403 * input.c (get_substring_ranges_for_loc): Replace line_width
13404 assertion with error-handling.
13406 2017-01-31 Richard Biener <rguenther@suse.de>
13408 PR tree-optimization/77318
13409 * graphite-sese-to-poly.c (extract_affine): Fix assert.
13410 (create_pw_aff_from_tree): Take loop parameter.
13411 (add_condition_to_pbb): Pass loop of the condition to
13412 create_pw_aff_from_tree.
13414 2017-01-31 Jakub Jelinek <jakub@redhat.com>
13416 * config/s390/s390.c (s390_asan_shadow_offset): New function.
13417 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
13419 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
13423 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
13425 (convert_int_to_float128): Likewise.
13426 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
13427 (convert_int_to_float128): Likewise.
13428 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
13429 (UNSPEC_IEEE128_CONVERT): Likewise.
13430 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
13431 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
13432 Use local variables for IBM extended format.
13433 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
13434 (fix_trunc<mode>si2_fprs): Likewise.
13435 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
13436 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
13437 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
13438 to know that we can now have integers of all sizes in vector
13440 (fix<uns>_<mode>di2_hw): Likewise.
13441 (float<uns>_<mode>si2_hw): Likewise.
13442 (fix_<mode>si2_hw): Likewise.
13443 (fixuns_<mode>si2_hw): Likewise.
13444 (float<uns>_<mode>di2_hw): Likewise.
13445 (float_<mode>di2_hw): Likewise.
13446 (float_<mode>si2_hw): Likewise.
13447 (floatuns_<mode>di2_hw): Likewise.
13448 (floatuns_<mode>si2_hw): Likewise.
13449 (xscvqp<su>wz_<mode>): Delete, no longer used.
13450 (xscvqp<su>dz_<mode>): Likewise.
13451 (xscv<su>dqp_<mode>): Likewise.
13452 (ieee128_mfvsrd_64bit): Likewise.
13453 (ieee128_mfvsrd_32bit): Likewise.
13454 (ieee128_mfvsrwz): Likewise.
13455 (ieee128_mtvsrw): Likewise.
13456 (ieee128_mtvsrd_64bit): Likewise.
13457 (ieee128_mtvsrd_32bit): Likewise.
13459 2017-01-31 Martin Liska <mliska@suse.cz>
13462 * ipa-prop.c (ipa_free_all_node_params): Call release method
13463 instead of ~sumbol_summary to not to trigger double times
13466 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
13468 PR tree-optimization/71691
13469 * bitmap.h (class auto_bitmap): New.
13470 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
13471 is_maybe_undefined instead of ssa_undefined_value_p.
13473 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
13475 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
13476 __S390_ARCH_LEVEL__ to __ARCH__.
13478 2017-01-31 Jakub Jelinek <jakub@redhat.com>
13480 PR tree-optimization/79267
13481 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
13482 if should_remove_lhs_p is true.
13484 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
13487 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
13488 (add_alignment_attribute): New.
13489 (base_type_die): Add alignment attribute.
13490 (subrange_type_die): Likewise.
13491 (modified_type_die): Likewise.
13492 (gen_array_type_die): Likewise.
13493 (gen_descr_array_type_die: Likewise.
13494 (gen_enumeration_type_die): Likewise.
13495 (gen_subprogram_die): Likewise.
13496 (gen_variable_die): Likewise.
13497 (gen_field_die): Likewise.
13498 (gen_ptr_to_mbr_type_die): Likewise.
13499 (gen_struct_or_union_type_die): Likewise.
13500 (gen_subroutine_type_die): Likewise.
13501 (gen_typedef_die): Likewise.
13502 (base_type_cmp): Compare alignment attribute.
13504 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
13507 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
13508 (setb_unsigned) New pattern for setb with CCUNS.
13509 * config/rs6000/rs6000.c (expand_block_compare): Use a different
13510 subfc./subfe sequence to avoid overflow problems. Generate a
13511 shorter sequence with cmpld/setb for power9.
13512 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
13513 for generating subfc. instruction.
13514 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
13515 now uses this instruction.
13517 2017-01-30 Ian Lance Taylor <iant@google.com>
13520 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
13521 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
13523 2017-01-30 Martin Sebor <msebor@redhat.com>
13525 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
13526 Move constant to the right of a relational operator.
13527 (get_mpfr_format_length, format_character, format_string): Ditto.
13528 (should_warn_p, maybe_warn): Same.
13530 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
13532 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
13535 * asan.c (get_translation_unit_decl): Remove function.
13536 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
13538 2017-01-30 Martin Liska <mliska@suse.cz>
13540 PR gcov-profile/79259
13541 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
13542 -fprofile-generate.
13544 2017-01-30 Martin Liska <mliska@suse.cz>
13547 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
13548 Initialize variables with NULL value.
13550 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
13553 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
13555 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
13557 2017-01-30 Richard Biener <rguenther@suse.de>
13559 PR tree-optimization/79276
13560 * tree-vrp.c (process_assert_insertions): Properly adjust common
13561 when removing a duplicate.
13563 2017-01-30 Richard Biener <rguenther@suse.de>
13565 PR tree-optimization/79256
13566 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
13567 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
13569 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
13571 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
13574 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
13575 ("*r<noxa>sbg_<mode>_sll_bitmask")
13576 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
13577 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
13578 Use contiguous_bitmask_nowrap_operand.
13580 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13583 * config/rs6000/altivec.h (vec_xl): Revise #define.
13584 (vec_xst): Likewise.
13586 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
13588 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
13590 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
13592 PR rtl-optimization/79194
13593 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
13594 traps before call to bypass_conditional_jumps.
13596 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
13598 PR tree-optimization/71374
13599 * lra-constraints.c (check_conflict_input_operands): New.
13600 (match_reload): Use it.
13602 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
13605 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
13606 account to calculate conflict_set.
13608 2017-01-27 Bin Cheng <bin.cheng@arm.com>
13610 PR rtl-optimization/78559
13611 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
13612 other_insn in combine.
13614 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
13616 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
13617 uint16_type_node for BT_UINT16.
13619 2017-01-27 David Malcolm <dmalcolm@redhat.com>
13621 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
13622 "RTL Tests" to menu.
13623 (GIMPLE Tests): New node.
13624 (RTL Tests): New node.
13626 2017-01-27 Richard Biener <rguenther@suse.de>
13628 PR tree-optimization/79245
13629 * tree-loop-distribution.c (distribute_loop): Apply cost
13630 modeling also to detected patterns.
13632 2017-01-27 Richard Biener <rguenther@suse.de>
13634 PR tree-optimization/71433
13635 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
13636 (compare_assert_loc): New function.
13637 (process_assert_insertions): Sort and optimize assert locations
13638 to remove duplicates and push down identical assertions on
13639 edges to their destination block.
13641 2017-01-27 Richard Biener <rguenther@suse.de>
13643 PR tree-optimization/79244
13644 * tree-vrp.c (remove_range_assertions): Forcefully propagate
13645 out SSA names even if abnormal.
13647 2017-01-27 Jakub Jelinek <jakub@redhat.com>
13649 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
13650 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
13651 instead of MPFR_RNDN.
13653 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
13656 * arm.c (arm_option_override): Don't call build_target_option_node
13657 until after doing all option overrides.
13658 (arm_valid_target_attribute_tree): Likewise.
13660 2017-01-27 Martin Liska <mliska@suse.cz>
13662 * doc/invoke.texi (-fprofile-arcs): Document profiling support
13663 for {cd}tors and C++ {cd}tors.
13665 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
13667 * config/s390/s390.md ("*setmem_long_and")
13668 ("*setmem_long_and_31z"): Use zero_extend instead of and.
13670 2017-01-26 Martin Sebor <msebor@redhat.com>
13672 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
13675 2017-01-26 Martin Sebor <msebor@redhat.com>
13677 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
13678 HAVE_DFmode before using XFmode or DFmode.
13679 (parse_directive): Avoid using the z length modifier to avoid
13680 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
13682 PR middle-end/78703
13683 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
13684 to accept adjustment as an array.
13685 (get_int_range): New function.
13686 (struct directive): Make width and prec arrays.
13687 (directive::set_width, directive::set_precision): Call get_int_range.
13688 (format_integer, format_floating): Handle width and precision ranges.
13689 (format_string, parse_directive): Same.
13691 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13694 * dwarf2out.c (generate_skeleton_bottom_up): For children with
13695 comdat_type_p set, just clone them, but keep the children in the
13699 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
13700 which have direct callers with -fvar-tracking-assignments enabled
13702 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
13703 inside of type units.
13705 2017-01-26 Martin Sebor <msebor@redhat.com>
13707 PR middle-end/78703
13708 * gimple-ssa-sprintf.c (struct result_range): Add likely and
13710 (struct format_result): Replace number_chars, number_chars_min,
13711 and number_chars_max with a single member of struct result_range.
13713 (format_result::operator+=): Adjust.
13714 (struct fmtresult): Remove bounded. Handle likely and unlikely
13716 (fmtresult::adjust_for_width_or_precision): New function.
13717 (fmtresult:type_max_digits): New function.
13718 (bytes_remaining): Handle likely and unlikely counters.
13719 (min_bytes_remaining): Remove.
13720 (format_percent): Simplify.
13721 (format_integer, format_floating): Set likely and unlikely counters.
13722 (get_string_length, format_character, format_string): Same.
13723 (format_plain, should_warn_p): New function.
13724 (maybe_warn): Call should_warn_p. Update diagnostic messages
13725 and handle those for all directives, including plain strings.
13726 (format_directive): Handle likely and unlikely counters.
13727 Remove unnecessary quoting from diagnostics. Add an informational
13729 (add_bytes): Remove.
13730 (pass_sprintf_length::compute_format_length): Simplify.
13731 (try_substitute_return_value): Handle likely and unlikely counters.
13733 2017-01-26 Carl Love <cel@us.ibm.com>
13735 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
13736 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
13738 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
13741 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
13742 endianess for subregs into account.
13743 * lra-constraints.c (lra_constraints): Do risky transformations
13744 always on the first iteration.
13745 * lra-lives.c (check_pseudos_live_through_calls): Add arg
13746 last_call_used_reg_set.
13747 (process_bb_lives): Define and use last_call_used_reg_set.
13748 * lra.c (lra): Always continue after lra_constraints on the first
13751 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
13753 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
13755 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
13757 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13759 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
13760 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
13761 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
13762 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
13763 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
13764 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
13765 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
13766 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
13767 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
13769 2017-01-26 Marek Polacek <polacek@redhat.com>
13772 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
13773 for the third operand.
13775 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13777 PR middle-end/79236
13778 * omp-low.c (struct omp_context): Add simt_stmt field.
13779 (scan_omp_for): Return omp_context *.
13780 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
13781 context to the _simt_ SIMD stmt.
13782 (lower_omp_for): For combined SIMD with sibling _simt_
13783 SIMD, make sure to use the same decls in _looptemp_
13784 clauses as in the sibling.
13786 2017-01-26 David Sherwood <david.sherwood@arm.com>
13788 PR middle-end/79212
13789 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
13792 2017-01-26 Jakub Jelinek <jakub@redhat.com>
13795 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
13796 emit fld b; fld a; if possible.
13798 * brig-builtins.def: Update copyright years.
13799 * config/arm/arm_acle_builtins.def: Update copyright years.
13801 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
13804 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
13805 constraint instead of o for the stxsd instruction.
13807 2017-01-25 Carl Love <cel@us.ibm.com>
13809 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
13810 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
13812 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
13814 * doc/invoke.texi (C++ Dialect Options): Fix typo.
13816 2017-01-25 Richard Biener <rguenther@suse.de>
13818 PR tree-optimization/69264
13819 * target.def (vector_alignment_reachable): Improve documentation.
13820 * doc/tm.texi: Regenerate.
13821 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
13823 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
13824 earlier changes with respect to TYPE_USER_ALIGN.
13825 (vector_alignment_reachable_p): Likewise. Improve dumping.
13827 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13830 * config/arm/arm.md (xordi3): Force constant operand into a register
13833 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
13835 * doc/invoke.texi (-fstore-merging): Correct default optimization
13836 levels at which it is enabled.
13837 (-O): Move -fstore-merging from list to...
13840 2017-01-25 Richard Biener <rguenther@suse.de>
13843 * omp-expand.c: Include debug.h.
13844 (expand_omp_taskreg): Make sure to generate early debug before
13845 outlining anything from a function.
13846 (expand_omp_target): Likewise.
13847 (grid_expand_target_grid_body): Likewise.
13849 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
13852 * asan.c (get_translation_unit_decl): New function.
13853 (asan_add_global): Extract modules file name from globals
13854 TRANSLATION_UNIT_DECL name.
13856 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
13859 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
13860 for long calls with APCS frame and VFP.
13862 2017-01-24 David Malcolm <dmalcolm@redhat.com>
13864 * cfg.c (original_copy_tables_initialized_p): New function.
13865 * cfg.h (original_copy_tables_initialized_p): New decl.
13866 * cfgrtl.c (relink_block_chain): Guard the call to
13867 free_original_copy_tables with a call to
13868 original_copy_tables_initialized_p.
13869 * cgraph.h (symtab_node::native_rtl_p): New decl.
13870 * cgraphunit.c (symtab_node::native_rtl_p): New function.
13871 (symtab_node::needed_p): Don't assert for early assembly output
13872 for __RTL functions.
13873 (cgraph_node::finalize_function): Set "force_output" for __RTL
13875 (cgraph_node::analyze): Bail out early for __RTL functions.
13876 (analyze_functions): Update assertion to support __RTL functions.
13877 (cgraph_node::expand): Bail out early for __RTL functions.
13878 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
13880 * function.h (struct function): Update comment for field
13882 * gimple-expr.c: Include "tree-pass.h".
13883 (gimple_has_body_p): Return false for __RTL functions.
13884 * Makefile.in (OBJS): Add run-rtl-passes.o.
13885 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
13887 (gcc::pass_manager::get_clean_slate): New accessor.
13888 * passes.c: Include "insn-addr.h".
13889 (should_skip_pass_p): Add logging. Update logic for running
13890 "expand" to be compatible with both __GIMPLE and __RTL. Guard
13891 property-provider override so it is only done for gimple passes.
13893 (skip_pass): New function.
13894 (execute_one_pass): Call skip_pass when skipping passes.
13895 * read-md.c (md_reader::read_char): Support filtering
13896 the input to a subset of line numbers.
13897 (md_reader::md_reader): Initialize fields
13898 m_first_line and m_last_line.
13899 (md_reader::read_file_fragment): New function.
13900 * read-md.h (md_reader::read_file_fragment): New decl.
13901 (md_reader::m_first_line): New field.
13902 (md_reader::m_last_line): New field.
13903 * read-rtl-function.c (function_reader::create_function): Only
13904 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
13905 curr_properties. Set DECL_INITIAL to a dummy block.
13906 (read_rtl_function_body_from_file_range): New function.
13907 * read-rtl-function.h (read_rtl_function_body_from_file_range):
13909 * run-rtl-passes.c: New file.
13910 * run-rtl-passes.h: New file.
13912 2017-01-24 Jeff Law <law@redhat.com>
13914 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
13917 2017-01-24 Bin Cheng <bin.cheng@arm.com>
13919 PR tree-optimization/79159
13920 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
13921 (record_nonwrapping_iv): Improve boundary using above function if no
13922 value range information.
13924 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
13925 Martin Jambor <mjambor@suse.cz>
13927 * brig-builtins.def: New file.
13928 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
13929 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
13930 (DEF_HSAIL_SAT_BUILTIN): Likewise.
13931 (DEF_HSAIL_INTR_BUILTIN): Likewise.
13932 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
13933 * builtin-types.def (BT_INT8): New.
13934 (BT_INT16): Likewise.
13935 (BT_UINT8): Likewise.
13936 (BT_UINT16): Likewise.
13937 (BT_FN_ULONG): Likewise.
13938 (BT_FN_UINT_INT): Likewise.
13939 (BT_FN_UINT_ULONG): Likewise.
13940 (BT_FN_UINT_LONG): Likewise.
13941 (BT_FN_UINT_PTR): Likewise.
13942 (BT_FN_ULONG_PTR): Likewise.
13943 (BT_FN_INT8_FLOAT): Likewise.
13944 (BT_FN_INT16_FLOAT): Likewise.
13945 (BT_FN_UINT32_FLOAT): Likewise.
13946 (BT_FN_UINT16_FLOAT): Likewise.
13947 (BT_FN_UINT8_FLOAT): Likewise.
13948 (BT_FN_UINT64_FLOAT): Likewise.
13949 (BT_FN_UINT16_UINT32): Likewise.
13950 (BT_FN_UINT32_UINT16): Likewise.
13951 (BT_FN_UINT16_UINT16_UINT16): Likewise.
13952 (BT_FN_INT_PTR_INT): Likewise.
13953 (BT_FN_UINT_PTR_UINT): Likewise.
13954 (BT_FN_LONG_PTR_LONG): Likewise.
13955 (BT_FN_ULONG_PTR_ULONG): Likewise.
13956 (BT_FN_VOID_UINT64_UINT64): Likewise.
13957 (BT_FN_UINT8_UINT8_UINT8): Likewise.
13958 (BT_FN_INT8_INT8_INT8): Likewise.
13959 (BT_FN_INT16_INT16_INT16): Likewise.
13960 (BT_FN_INT_INT_INT): Likewise.
13961 (BT_FN_UINT_FLOAT_UINT): Likewise.
13962 (BT_FN_FLOAT_UINT_UINT): Likewise.
13963 (BT_FN_ULONG_UINT_UINT): Likewise.
13964 (BT_FN_ULONG_UINT_PTR): Likewise.
13965 (BT_FN_ULONG_ULONG_ULONG): Likewise.
13966 (BT_FN_UINT_UINT_UINT): Likewise.
13967 (BT_FN_VOID_UINT_PTR): Likewise.
13968 (BT_FN_UINT_UINT_PTR: Likewise.
13969 (BT_FN_UINT32_UINT64_PTR): Likewise.
13970 (BT_FN_INT_INT_UINT_UINT): Likewise.
13971 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
13972 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
13973 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
13974 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
13975 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
13976 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
13977 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
13978 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
13979 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
13980 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
13981 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
13982 * doc/frontends.texi: List BRIG FE.
13983 * doc/install.texi (Testing): Add BRIG tesring requirements.
13984 * doc/invoke.texi (Overall Options): Mention BRIG.
13985 * doc/standards.texi (Standards): Doucment BRIG HSA version.
13987 2017-01-24 Richard Biener <rguenther@suse.de>
13989 PR translation/79208
13990 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
13992 2017-01-24 Martin Jambor <mjambor@suse.cz>
13995 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
13996 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
13997 and known_contexts.
13999 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
14001 PR middle-end/79123
14002 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
14003 casts from signed to unsigned really don't have a range.
14005 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
14007 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
14008 GMP_RNDx for compatiblity.
14010 2017-01-24 Martin Liska <mliska@suse.cz>
14013 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
14014 that would prevent us to call alloca with -1 as argument.
14016 2017-01-24 Jakub Jelinek <jakub@redhat.com>
14018 * dwarf2out.c (output_compilation_unit_header, output_file_names):
14019 Avoid -Wformat-security warning.
14021 2017-01-23 Andrew Pinski <apinski@cavium.com>
14023 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
14026 2017-01-23 Martin Sebor <msebor@redhat.com>
14028 PR middle-end/78703
14029 * gimple-ssa-sprintf.c (warn_level): New global.
14030 (format_integer): Use it here and throughout the rest of the file.
14031 Use the same switch to compute sign as base.
14032 (maybe_warn): New function.
14033 (format_directive): Factor out warnings into maybe_warn.
14034 Add debugging output. Use warn_level.
14035 (add_bytes): Use warn_level.
14036 (pass_sprintf_length::compute_format_length): Add debugging output.
14037 (try_substitute_return_value): Same.
14038 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
14040 PR middle-end/78703
14041 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
14042 (struct fmtresult, format_integer, format_floating): Adjust.
14043 (fmtresult::fmtresult): Set max correctly in two argument ctor.
14044 (get_string_length, format_string,format_directive): Same.
14045 (pass_sprintf_length::compute_format_length): Same.
14046 (try_substitute_return_value): Simplify slightly.
14048 PR middle-end/78703
14049 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
14050 (fmtresult::operator+=): Outlined.
14051 (struct fmtresult): Add ctors.
14052 (struct conversion_spec): Rename...
14053 (struct directive): ...to this. Add and remove data members.
14054 (directive::set_width, directive::set_precision): New functions.
14055 (format_percent): Use fmtresult ctor.
14056 (get_width_and_precision): Remove.
14057 (format_integer): Make naming changes. Avoid computing width and
14059 (format_floating): Same. Adjust indentation.
14060 (format_character, format_none): New functions.
14061 (format_string): Moved character handling to format_character.
14062 (format_directive): Remove arguments, change return type.
14063 (parse_directive): New function.
14064 (pass_sprintf_length::compute_format_length): Move directive
14065 parsing to parse_directive.
14067 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14069 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
14070 (assign_assembler_name_if_needed): ... this.
14071 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
14072 (assign_assembler_name_if_needed): ... this.
14073 (free_lang_data_in_cgraph): Adjust callers.
14074 * cgraphunit.c (cgraph_node::analyze): Likewise.
14075 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
14078 2017-01-23 Richard Biener <rguenther@suse.de>
14080 PR tree-optimization/79088
14081 PR tree-optimization/79188
14082 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
14083 resetting loop bounds after last path deletion. Reset loop
14084 bounds of the target loop, make code match the comments.
14085 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
14086 Make sure loops need no fixups.
14088 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
14090 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
14091 exponent support with double type for first argument.
14092 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
14093 type returned by __builtin_vec_extract_sig,
14094 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
14095 functions from "vector int" to "vector unsigned int" or from
14096 "vector long long int" to "vector unsigned long long int".
14097 Changed type returned by __builtin_vec_extract_exp,
14098 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
14099 functions from "vector int" to "vector unsigned int" or from
14100 "vector long long int" to "vector unsigned long long int".
14101 Changed return type of __builtin_vec_test_data_class,
14102 __builtin_vec_test_data_class_sp, and
14103 __builtin_vec_test_data_class_dp from "vector int" to
14104 "vector bool int" or from "vector long long int" to "vector bool
14105 long long int" and changed second argument type from "unsigned
14106 int" to "int". Added new overloaded function forms "vector float
14107 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
14108 "vector float __builtin_vec_insert_exp_sp (vector float, vector
14109 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
14110 double, vector unsigned long long int)" and "vector double
14111 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
14112 long int)". Changed return type of
14113 __builtin_scalar_test_data_class and
14114 __builtin_scalar_test_data_class_sp and
14115 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
14116 int" and changed second argument from "unsigned int" to "int".
14117 Changed type returned by __builtin_scalar_test_neg,
14118 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
14119 from "int" to "bool int". Added new overloaded function form
14120 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
14121 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
14122 exponent double-precision with floating point first argument.
14123 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
14124 documentation of scalar_test_data_class, scalar_test_neg,
14125 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
14126 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
14127 vec_test_data_class built-in functions to reflect refinements in
14128 their type signatures.
14130 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
14132 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
14134 (aarch64_elf_asm_destructor): Likewise.
14136 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
14138 PR rtl-optimization/78634
14139 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
14140 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
14141 * ifcvt.c (noce_try_cmove): Add missing cost check.
14143 PR rtl-optimization/71724
14144 * combine.c (if_then_else_cond): Look for situations where it is
14145 beneficial to undo the work of one of the recursive calls.
14147 2017-01-23 Bin Cheng <bin.cheng@arm.com>
14149 PR tree-optimization/70754
14150 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
14151 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
14152 combined stmt before it if not NULL.
14153 (combine_chains): Process refs reversely and compute dominance point
14156 2017-01-23 Martin Liska <mliska@suse.cz>
14158 PR tree-optimization/79196
14159 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
14160 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
14162 (strlen_optimize_stmt): Call the renamed function.
14164 2017-01-23 Michael Matz <matz@suse.de>
14166 PR tree-optimization/78384
14167 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
14169 2017-01-23 Richard Biener <rguenther@suse.de>
14171 PR tree-optimization/79186
14172 * tree-vrp.c (register_new_assert_for): Make sure we've seen
14173 both incoming edges before moving an assert.
14175 2017-01-23 Martin Jambor <mjambor@suse.cz>
14177 * ipa-prop.c (load_from_param_1): Removed.
14178 (load_from_unmodified_param): Bits from load_from_param_1 put back
14180 (load_from_param): Removed.
14181 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
14182 with stmt. Reverted back to use of load_from_unmodified_param.
14184 2017-01-23 Martin Jambor <mjambor@suse.cz>
14187 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
14188 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
14189 field a pointer to garbage collected vector, mark lattices and
14190 ipcp_orig_node with GTY((skip)).
14191 (ipa_get_param_count): Adjust to descriptors being a pointer.
14192 (ipa_get_param): Likewise.
14193 (ipa_get_type): Likewise.
14194 (ipa_get_param_move_cost): Likewise.
14195 (ipa_set_param_used): Likewise.
14196 (ipa_get_controlled_uses): Likewise.
14197 (ipa_set_controlled_uses): Likewise.
14198 (ipa_is_param_used): Likewise.
14199 (ipa_node_params_t): Move into garbage collector. New methods insert
14201 (ipa_node_params_sum): Annotate wth GTY(()).
14202 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
14204 (ipa_load_from_parm_agg): Adjust declaration.
14205 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
14206 * ipa-profile.c (ipa_profile): Likewise.
14207 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
14208 (ipa_populate_param_decls): Make descriptors parameter garbage
14210 (ipa_dump_param): Adjust to descriptors being a pointer.
14211 (ipa_alloc_node_params): Likewise.
14212 (ipa_initialize_node_params): Likewise.
14213 (load_from_param_1): Make descriptors parameter garbage collected.
14214 (load_from_unmodified_param): Likewise.
14215 (load_from_param): Likewise.
14216 (ipa_load_from_parm_agg): Likewise.
14217 (ipa_node_params::~ipa_node_params): Removed.
14218 (ipa_free_all_node_params): Remove call to delete operator.
14219 (ipa_node_params_t::insert): New.
14220 (ipa_node_params_t::remove): Likewise.
14221 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
14222 copy known_csts and known_contexts vectors.
14223 (ipa_read_node_info): Adjust to descriptors being a pointer.
14224 (ipcp_modif_dom_walker): Make m_descriptors field garbage
14226 (ipcp_transform_function): Make descriptors variable garbage
14229 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
14231 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
14232 * config/i386/avx512dqintrin.h: Ditto.
14233 * config/i386/avx512fintrin.h: Ditto.
14234 * gcc/config/i386/i386.c: Handle new builtins.
14235 * config/i386/i386-builtin.def: Add new builtins.
14236 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
14237 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
14239 2017-01-23 Jakub Jelinek <jakub@redhat.com>
14240 Martin Liska <mliska@suse.cz>
14242 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
14243 * asan.c (asan_expand_poison_ifn): Support stores and use
14244 appropriate ASAN report function.
14245 * internal-fn.c (expand_ASAN_POISON_USE): New function.
14246 * internal-fn.def (ASAN_POISON_USE): Declare.
14247 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
14248 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
14249 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
14250 ASAN_POISON calls w/o LHS.
14251 * tree-ssa.c (execute_update_addresses_taken): Create clobber
14252 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
14253 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
14254 * gimplify.c (asan_poison_variables): Add attribute
14255 use_after_scope_memory to variables that really needs to live
14257 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
14258 having the attribute.
14260 2017-01-23 Martin Liska <mliska@suse.cz>
14262 * asan.c (create_asan_shadow_var): New function.
14263 (asan_expand_poison_ifn): Likewise.
14264 * asan.h (asan_expand_poison_ifn): New declaration.
14265 * internal-fn.c (expand_ASAN_POISON): Likewise.
14266 * internal-fn.def (ASAN_POISON): New builtin.
14267 * sanopt.c (pass_sanopt::execute): Expand
14268 asan_expand_poison_ifn.
14269 * tree-inline.c (copy_decl_for_dup_finish): Make function
14271 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
14272 * tree-ssa.c (is_asan_mark_p): New function.
14273 (execute_update_addresses_taken): Rewrite local variables
14274 (identified just by use-after-scope as addressable) into SSA.
14276 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14278 * doc/install.texi (Specific): opensource.apple.com uses https
14279 now. Remove trailing slash.
14281 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
14283 * README.Portability: Remove note on an Irix compatibility issue.
14285 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
14287 * gcov.c (INCLUDE_ALGORITHM): Define.
14288 (INCLUDE_VECTOR): Define.
14289 No longer include <vector> and <algorithm> directly.
14291 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
14293 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
14295 * doc/invoke.texi (Code Gen Options): Ditto.
14297 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
14300 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
14302 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
14304 rtl-optimization/79125
14305 * cprop.c (local_cprop_pass): Handle cases where we make an
14306 unconditional trap.
14308 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
14312 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
14313 read from, for big endian.
14315 2017-01-20 Jiong Wang <jiong.wang@arm.com>
14317 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
14318 register pauth builtins for LP64 only.
14320 2017-01-20 Marek Polacek <polacek@redhat.com>
14323 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
14326 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
14328 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
14330 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
14331 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
14332 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
14334 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14337 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
14338 in big-endian mode when they are not a single duplicated value.
14340 2017-01-20 Richard Biener <rguenther@suse.de>
14342 * BASE-VER: Bump to 7.0.1.
14344 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
14346 * omp-low.c (omplow_simd_context): New struct. Use it...
14347 (lower_rec_simd_input_clauses): ...here and...
14348 (lower_rec_input_clauses): ...here to hold common data. Adjust all
14349 references to idx, lane, max_vf, is_simt.
14351 2017-01-20 Graham Markall <graham.markall@embecosm.com>
14353 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
14356 2017-01-20 Martin Jambor <mjambor@suse.cz>
14358 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
14359 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
14361 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
14362 (GTFILES): Rename hsa.c to hsa-common.c.
14363 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
14364 * hsa-dump.c: Likewise.
14365 * hsa-gen.c: Likewise.
14366 * hsa-regalloc.c: Likewise.
14367 * ipa-hsa.c: Likewise.
14368 * omp-expand.c: Likewise.
14369 * omp-low.c: Likewise.
14370 * toplev.c: Likewise.
14372 2017-01-20 Marek Polacek <polacek@redhat.com>
14375 * doc/invoke.texi: Document -Wduplicated-branches.
14376 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
14377 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
14378 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
14379 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
14380 return 0 only when not OEP_LEXICOGRAPHIC.
14381 (fold_build_cleanup_point_expr): Use the expression
14382 location when building CLEANUP_POINT_EXPR.
14383 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
14384 * tree.c (add_expr): Handle error_mark_node.
14386 2017-01-20 Martin Liska <mliska@suse.cz>
14389 * tree-profile.c (init_ic_make_global_vars): Do not call
14391 (gimple_init_gcov_profiler): Likewise.
14393 2017-01-20 Martin Liska <mliska@suse.cz>
14396 * cgraph.h (maybe_create_reference): Remove argument and
14398 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
14400 * ipa-cp.c (create_specialized_node): Likewise.
14401 * symtab.c (symtab_node::maybe_create_reference): Handle
14402 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
14404 2017-01-20 Martin Liska <mliska@suse.cz>
14406 * read-rtl-function.c (function_reader::create_function): Use
14407 build_decl instread of build_decl_stat.
14409 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
14411 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
14412 * config/i386/avx512dqintrin.h: Ditto.
14413 * config/i386/avx512fintrin.h: Ditto.
14414 * config/i386/i386-builtin-types.def: Add new types.
14415 * gcc/config/i386/i386.c: Handle new types.
14416 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
14417 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
14418 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
14419 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
14420 (__builtin_ia32_kshiftridi): New.
14421 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
14423 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
14427 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
14428 define to rs6000_init_stack_protect_guard.
14429 (rs6000_init_stack_protect_guard): New function.
14431 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
14432 Yunqiang Su <yunqiang.su@imgtec.com>
14434 * config.gcc (supported_defaults): Add madd4.
14435 (with_madd4): Add validation.
14436 (all_defaults): Add madd4.
14437 * config/mips/mips.opt (mmadd4): New option.
14438 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14440 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
14442 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
14443 (ISA_HAS_FUSED_MADD4): Likewise.
14444 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
14445 * gcc/doc/install.texi (--with-madd4): Document the new option.
14447 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14449 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
14450 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
14451 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
14452 (aarch64_init_pauth_hint_builtins): New.
14453 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
14454 (aarch64_expand_builtin): Expand new builtins.
14456 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14458 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
14459 * combine-stack-adj.c (no_unhandled_cfa): Handle
14460 REG_CFA_TOGGLE_RA_MANGLE.
14461 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
14462 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
14463 info for return address signing.
14464 (aarch64_expand_epilogue): Likewise.
14466 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14468 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
14469 * config/aarch64/aarch64-protos.h
14470 (aarch64_return_address_signing_enabled): New declaration.
14471 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
14473 (aarch64_expand_prologue): Sign return address before it's pushed onto
14475 (aarch64_expand_epilogue): Authenticate return address fetched from
14477 (aarch64_override_options): Sanity check for ILP32 and ISA level.
14478 (aarch64_attributes): New function attributes for "sign-return-address".
14479 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
14480 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
14481 ("*do_return"): Generate combined instructions according to key index.
14482 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
14483 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
14485 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
14486 * config/aarch64/aarch64.opt (msign-return-address=): New.
14487 * doc/extend.texi (AArch64 Function Attributes): Documents
14488 "sign-return-address=".
14489 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
14491 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
14493 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
14494 overall option summary.
14496 2017-01-19 Jiong Wang <jiong.wang@arm.com>
14498 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
14499 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
14500 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
14501 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
14503 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
14505 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
14506 -mpower9-minmax by default for -mcpu=power9.
14507 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
14508 128-bit floating point.
14510 2017-01-20 Alan Modra <amodra@gmail.com>
14512 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
14513 optimizing for size.
14515 2017-01-20 Alan Modra <amodra@gmail.com>
14518 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
14519 for strcmp and strncmp from corresponding builtin decl.
14521 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
14523 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
14524 instead of i386/rtems-64.h.
14525 * config/i386/rtems-64.h: Remove.
14527 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
14531 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
14533 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
14535 2017-01-19 Tamar Christina <tamar.christina@arm.com>
14537 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
14538 Change int to HOST_WIDE_INT.
14539 * config/aarch64/aarch64-protos.h
14540 (aarch64_simd_gen_const_vector_dup): Likewise.
14541 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
14543 2017-01-19 David Malcolm <dmalcolm@redhat.com>
14545 * langhooks-def.h (lhd_type_for_size): New decl.
14546 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
14547 * langhooks.c (lhd_type_for_size): New function, taken from
14550 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
14552 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
14553 define_bypass for CR latency.
14554 (power9-cracked-alu): Update bypass latency and remove power9-branch.
14555 (power9-alu2): Add define_bypass for CR latency.
14557 (power9-mul): Update insn latency.
14558 (power9-mul-compare): Update insn latency, bypass latency and remove
14561 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
14563 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
14565 * config/aarch64/aarch64.md
14566 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
14567 aarch64_nopcrelative_literal_loads.
14568 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
14570 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
14572 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
14573 TARGET_LOONGSON_3A.
14574 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
14576 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
14579 * config.gcc (supported_defaults): Add lxc1-sxc1.
14580 (with_lxc1_sxc1): Add validation.
14581 (all_defaults): Add lxc1-sxc1.
14582 * config/mips/mips.opt (mlxc1-sxc1): New option.
14583 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
14585 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
14586 __mips_no_lxc1_sxc1.
14587 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
14588 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
14589 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
14591 2017-01-19 Richard Biener <rguenther@suse.de>
14593 PR tree-optimization/72488
14594 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
14595 sure to restore SSA info.
14596 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
14598 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
14600 PR rtl-optimization/79121
14601 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
14602 of the inner type when shifting an extended value.
14604 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
14607 * symtab.c (symtab_node::equal_address_to): Fix comparing of
14608 interposable aliases.
14610 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
14613 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
14614 Use the evmergelohi instruction.
14615 (mov_si<mode>_e500_subreg4_2_le): Likewise.
14616 (mov_sitf_e500_subreg8_2_be): Likewise.
14617 (mov_sitf_e500_subreg12_2_le): Likewise.
14618 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
14619 (mov_si<mode>_e500_subreg4_2_be): Likewise.
14620 (mov_sitf_e500_subreg8_2_le): Likewise.
14621 (mov_sitf_e500_subreg12_2_be): Likewise.
14623 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14625 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
14626 attribute from vecsimple to vecperm.
14627 (altivec_vbpermq2): Likewise.
14629 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14632 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
14634 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
14635 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
14636 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
14637 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
14638 case where N arg is SIZE_MAX.
14639 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
14640 (cmpstrsi): Add pattern.
14642 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
14644 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
14645 __builtin_vec_revb builtins.
14646 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
14647 built-in functions to support generation of the ISA 3.0 XXBR<x>
14648 vector byte reverse instructions.
14649 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
14650 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
14651 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
14652 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
14653 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
14654 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
14655 (P9V_BUILTIN_VEC_REVB): Likewise.
14656 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
14657 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
14658 (p9_xxbrq_v16qi): Likewise.
14659 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
14660 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
14661 (p9_xxbrh_v8hi): Likewise.
14662 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
14663 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
14664 vec_revb built-in functions.
14666 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
14668 PR rtl-optimization/78952
14669 * config/i386/i386.md (any_extract): New code iterator.
14670 (*insvqi_2): Use any_extract for source operand.
14671 (*insvqi_3): Use any_shiftrt for source operand.
14673 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
14675 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
14677 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
14679 2017-01-18 Matthias Klose <doko@ubuntu.com>
14681 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
14683 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14685 * config/rs6000/altivec.h (vec_bperm): Change #define.
14686 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
14687 (altivec_vbpermq2): New define_insn.
14688 (altivec_vbpermd): Likewise.
14689 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
14690 function interface.
14691 (VBPERMD): Likewise.
14692 (VBPERM): New polymorphic function interface.
14693 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
14694 Add entries for P9V_BUILTIN_VEC_VBPERM.
14695 * doc/extend.texi: Add interfaces for vec_bperm.
14697 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
14699 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
14700 first letter of error messages.
14701 (s390_resolve_overloaded_builtin): Likewise.
14702 * config/s390/s390.c (s390_expand_builtin): Likewise.
14703 (s390_invalid_arg_for_unprototyped_fn): Likewise.
14704 (s390_valid_target_attribute_inner_p): Likewise.
14705 * config/s390/s390.md ("tabort"): Likewise.
14707 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
14709 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
14710 (ISA_AVOID_DIV_HILO): New macro.
14711 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
14712 (ISA_HAS_DDIV): Likewise.
14714 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14716 * doc/invoke.texi (fabi-version): Correct number of occurrences.
14718 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14720 * doc/invoke.texi (fabi-version): Spelling fix.
14722 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14725 * doc/invoke.texi (fabi-version): Mention mangling fix for
14728 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
14731 * doc/invoke.texi (fabi-version): Document discriminator mangling.
14733 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
14736 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
14737 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
14739 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
14741 (stack_protect_test): Ditto.
14742 * config/rs6000/rs6000.opt (mstack-protector-guard=,
14743 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
14745 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
14746 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
14747 -mstack-protector-guard-offset=.
14748 (RS/6000 and PowerPC Options): Ditto.
14750 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
14752 * config/i386/i386.h (MASK_CLASS_P): New define.
14753 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
14754 there are no registers from different register sets also when
14755 mask registers are used. Update function comment.
14756 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
14757 to (*k/*r) and (*k/*km) alternatives.
14759 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
14761 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
14762 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
14763 (EH_RETURN_HANDLER_RTX): New define.
14764 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
14765 Force frame pointer in EH return functions.
14766 (aarch64_expand_epilogue): Add barrier for eh_return.
14767 (aarch64_final_eh_return_addr): Remove.
14768 (aarch64_eh_return_handler_rtx): New function.
14769 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
14771 (aarch64_eh_return_handler_rtx): New prototype.
14773 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
14775 * config/rs6000/altivec.h (vec_rlmi): New #define.
14776 (vec_vrlnm): Likewise.
14777 (vec_rlnm): Likewise.
14778 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
14779 (UNSPEC_VRLNM): Likewise.
14780 (VIlong): New mode iterator.
14781 (altivec_vrl<VI_char>mi): New define_insn.
14782 (altivec_vrl<VI_char>nm): Likewise.
14783 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
14785 (VRLDNM): Likewise.
14786 (RLNM): New polymorphic function entry.
14787 (VRLWMI): New monomorphic function entry.
14788 (VRLDMI): Likewise.
14789 (RLMI): New polymorphic function entry.
14790 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
14791 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
14792 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
14795 2017-01-17 Jakub Jelinek <jakub@redhat.com>
14798 * dwarf2out.c (field_byte_offset): Restore the
14799 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
14800 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
14801 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
14804 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
14807 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
14809 2017-01-17 Jakub Jelinek <jakub@redhat.com>
14812 * dwarf2out.c (add_data_member_location_attribute): For constant
14813 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
14814 instead of DW_AT_data_member_location, DW_AT_bit_offset and
14815 DW_AT_byte_size attributes.
14817 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
14819 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
14820 after forcing to constant memory when the code model is medium.
14822 2017-01-17 Julia Koval <julia.koval@intel.com>
14825 * config/i386/avx512fintrin.h
14826 (_mm512_i32gather_ps): Change __addr type to void const*.
14827 (_mm512_mask_i32gather_ps): Ditto.
14828 (_mm512_i32gather_pd): Ditto.
14829 (_mm512_mask_i32gather_pd): Ditto.
14830 (_mm512_i64gather_ps): Ditto.
14831 (_mm512_mask_i64gather_ps): Ditto.
14832 (_mm512_i64gather_pd): Ditto.
14833 (_mm512_mask_i64gather_pd): Ditto.
14834 (_mm512_i32gather_epi32): Ditto.
14835 (_mm512_mask_i32gather_epi32): Ditto.
14836 (_mm512_i32gather_epi64): Ditto.
14837 (_mm512_mask_i32gather_epi64): Ditto.
14838 (_mm512_i64gather_epi32): Ditto.
14839 (_mm512_mask_i64gather_epi32): Ditto.
14840 (_mm512_i64gather_epi64): Ditto.
14841 (_mm512_mask_i64gather_epi64): Ditto.
14842 (_mm512_i32scatter_ps): Change __addr type to void*.
14843 (_mm512_mask_i32scatter_ps): Ditto.
14844 (_mm512_i32scatter_pd): Ditto.
14845 (_mm512_mask_i32scatter_pd): Ditto.
14846 (_mm512_i64scatter_ps): Ditto.
14847 (_mm512_mask_i64scatter_ps): Ditto.
14848 (_mm512_i64scatter_pd): Ditto.
14849 (_mm512_mask_i64scatter_pd): Ditto.
14850 (_mm512_i32scatter_epi32): Ditto.
14851 (_mm512_mask_i32scatter_epi32): Ditto.
14852 (_mm512_i32scatter_epi64): Ditto.
14853 (_mm512_mask_i32scatter_epi64): Ditto.
14854 (_mm512_i64scatter_epi32): Ditto.
14855 (_mm512_mask_i64scatter_epi32): Ditto.
14856 (_mm512_i64scatter_epi64): Ditto.
14857 (_mm512_mask_i64scatter_epi64): Ditto.
14858 * config/i386/avx512pfintrin.h
14859 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
14860 (_mm512_mask_prefetch_i32gather_ps): Ditto.
14861 (_mm512_mask_prefetch_i64gather_pd): Ditto.
14862 (_mm512_mask_prefetch_i64gather_ps): Ditto.
14863 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
14864 (_mm512_prefetch_i32scatter_ps): Ditto.
14865 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
14866 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
14867 (_mm512_prefetch_i64scatter_pd): Ditto.
14868 (_mm512_prefetch_i64scatter_ps): Ditto.
14869 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
14870 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
14871 * config/i386/avx512vlintrin.h
14872 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
14873 (_mm_mmask_i32gather_ps): Ditto.
14874 (_mm256_mmask_i32gather_pd): Ditto.
14875 (_mm_mmask_i32gather_pd): Ditto.
14876 (_mm256_mmask_i64gather_ps): Ditto.
14877 (_mm_mmask_i64gather_ps): Ditto.
14878 (_mm256_mmask_i64gather_pd): Ditto.
14879 (_mm_mmask_i64gather_pd): Ditto.
14880 (_mm256_mmask_i32gather_epi32): Ditto.
14881 (_mm_mmask_i32gather_epi32): Ditto.
14882 (_mm256_mmask_i32gather_epi64): Ditto.
14883 (_mm_mmask_i32gather_epi64): Ditto.
14884 (_mm256_mmask_i64gather_epi32): Ditto.
14885 (_mm_mmask_i64gather_epi32): Ditto.
14886 (_mm256_mmask_i64gather_epi64): Ditto.
14887 (_mm_mmask_i64gather_epi64): Ditto.
14888 (_mm256_i32scatter_ps): Change __addr type to void*.
14889 (_mm256_mask_i32scatter_ps): Ditto.
14890 (_mm_i32scatter_ps): Ditto.
14891 (_mm_mask_i32scatter_ps): Ditto.
14892 (_mm256_i32scatter_pd): Ditto.
14893 (_mm256_mask_i32scatter_pd): Ditto.
14894 (_mm_i32scatter_pd): Ditto.
14895 (_mm_mask_i32scatter_pd): Ditto.
14896 (_mm256_i64scatter_ps): Ditto.
14897 (_mm256_mask_i64scatter_ps): Ditto.
14898 (_mm_i64scatter_ps): Ditto.
14899 (_mm_mask_i64scatter_ps): Ditto.
14900 (_mm256_i64scatter_pd): Ditto.
14901 (_mm256_mask_i64scatter_pd): Ditto.
14902 (_mm_i64scatter_pd): Ditto.
14903 (_mm_mask_i64scatter_pd): Ditto.
14904 (_mm256_i32scatter_epi32): Ditto.
14905 (_mm256_mask_i32scatter_epi32): Ditto.
14906 (_mm_i32scatter_epi32): Ditto.
14907 (_mm_mask_i32scatter_epi32): Ditto.
14908 (_mm256_i32scatter_epi64): Ditto.
14909 (_mm256_mask_i32scatter_epi64): Ditto.
14910 (_mm_i32scatter_epi64): Ditto.
14911 (_mm_mask_i32scatter_epi64): Ditto.
14912 (_mm256_i64scatter_epi32): Ditto.
14913 (_mm256_mask_i64scatter_epi32): Ditto.
14914 (_mm_i64scatter_epi32): Ditto.
14915 (_mm_mask_i64scatter_epi32): Ditto.
14916 (_mm256_i64scatter_epi64): Ditto.
14917 (_mm256_mask_i64scatter_epi64): Ditto.
14918 (_mm_i64scatter_epi64): Ditto.
14919 (_mm_mask_i64scatter_epi64): Ditto.
14920 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
14921 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
14922 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
14923 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
14924 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
14925 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
14926 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
14927 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
14928 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
14929 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
14930 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
14931 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
14932 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
14933 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
14934 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
14935 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
14936 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
14937 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
14938 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
14939 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
14940 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
14941 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
14942 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
14943 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
14944 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
14945 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
14946 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
14947 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
14948 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
14949 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
14950 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
14951 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
14952 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
14953 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
14954 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
14955 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
14956 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
14957 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
14958 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
14959 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
14960 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
14961 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
14962 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
14963 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
14964 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
14965 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
14966 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
14967 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
14968 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
14969 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
14970 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
14971 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
14972 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
14973 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
14974 definitions accordingly.
14976 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
14977 Kuan-Lin Chen <kuanlinchentw@gmail.com>
14980 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
14983 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
14986 * ira-conflicts.c (ira_build_conflicts): Update total conflict
14987 hard regs for inner regno.
14989 2017-01-17 Martin Liska <mliska@suse.cz>
14992 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
14993 assumption and add comment.
14995 2017-01-17 Nathan Sidwell <nathan@acm.org>
14997 * ipa-visibility.c (localize_node): New function, broken out of ...
14998 (function_and_variable_visibility): ... here. Call it.
15000 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
15002 PR middle-end/77445
15003 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
15004 correctly set frequency of oudgoing edge.
15005 (duplicate_thread_path): Fix profile updating.
15007 2017-01-17 Jakub Jelinek <jakub@redhat.com>
15010 * configure.ac: Add GCC_BASE_VER.
15011 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
15012 version from BASE-VER file.
15013 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
15014 (gcc.o): Depend on $(BASEVER).
15015 * common.opt (dumpfullversion): New option.
15016 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
15017 * doc/invoke.texi: Document -dumpfullversion.
15018 * doc/install.texi: Document --with-gcc-major-version-only.
15019 * configure: Regenerated.
15021 2017-01-17 Richard Biener <rguenther@suse.de>
15023 PR tree-optimization/71433
15024 * tree-vrp.c (register_new_assert_for): Merge same asserts
15025 on all incoming edges.
15026 (process_assert_insertions_for): Handle insertions at the
15029 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
15031 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
15032 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
15034 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
15037 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
15040 2017-01-17 Alan Modra <amodra@gmail.com>
15043 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
15044 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
15045 symbolic stack limit when pic.
15047 2017-01-16 Martin Sebor <msebor@redhat.com>
15049 PR tree-optimization/78608
15050 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
15052 2017-01-16 Jeff Law <law@redhat.com>
15055 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
15056 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
15057 for several include directories that may be relative to sysroot.
15058 * config/i386/x-mingw32 (gplus_includedir): Define.
15059 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
15060 (native_system_includedir): Likewise.
15061 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
15062 override if TARGET_SYSTEM_ROOT is defined.
15063 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
15065 PR tree-optimization/79090
15066 PR tree-optimization/33562
15067 PR tree-optimization/61912
15068 PR tree-optimization/77485
15069 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
15070 and computed trims into the dump file.
15072 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
15074 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
15076 2017-01-16 Jakub Jelinek <jakub@redhat.com>
15079 * gimplify.c (gimplify_init_constructor): If want_value and
15080 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
15084 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
15085 sequence. Formatting fixes.
15086 (doloop_optimize): Formatting fixes.
15089 * gcc.c (debug_level_greater_than_spec_func): New function.
15090 (static_spec_functions): Add debug-level-gt spec function.
15091 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
15093 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15094 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
15095 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
15096 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
15097 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
15098 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
15100 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
15102 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
15103 QImode fixups to general and mask registers only.
15105 2017-01-16 Carl Love <cel@us.ibm.com>
15107 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
15108 for built-in functions
15109 vector signed char vec_nabs (vector signed char)
15110 vector signed short vec_nabs (vector signed short)
15111 vector signed int vec_nabs (vector signed int)
15112 vector signed long long vec_nabs (vector signed long long)
15113 vector float vec_nabs (vector float)
15114 vector double vec_nabs (vector double)
15115 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
15117 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
15118 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
15119 * doc/extend.texi: Update the documentation file for the new built-in
15122 2017-01-16 Martin Sebor <msebor@redhat.com>
15124 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
15127 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15129 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
15130 UNSPEC_VSX__XXSPLTD to require special splat handling.
15132 2017-01-16 David Malcolm <dmalcolm@redhat.com>
15135 * system.h: Poison strndup.
15137 2017-01-16 Alan Modra <amodra@gmail.com>
15140 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
15143 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
15145 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
15147 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
15149 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
15150 call recog here. Assert that INSN_CODE (insn) is non-negative.
15152 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15155 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
15157 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
15158 in the currently scheduled RTL fragment.
15160 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
15162 PR rtl-optimization/78751
15163 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
15166 2017-01-14 Jeff Law <law@redhat.com>
15168 PR tree-optimization/79090
15169 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
15170 variable length stores.
15171 (compute_trims): Delete dead assignment to *trim_tail.
15172 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
15175 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
15177 PR rtl-optimization/78626
15178 PR rtl-optimization/78727
15179 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
15180 of a block, and split such blocks after everything else is finished.
15182 2017-01-14 Alan Modra <amodra@gmail.com>
15185 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
15186 target legitimate_combined_insn.
15187 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
15188 (rs6000_legitimate_combined_insn): New function.
15189 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
15191 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
15192 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
15193 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
15195 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
15197 * doc/frontends.texi (G++ and GCC): Remove references to Java.
15199 2017-01-13 Jeff Law <law@redhat.com>
15201 PR tree-optimization/33562
15202 PR tree-optimization/61912
15203 PR tree-optimization/77485
15204 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
15206 (delete_dead_assignment): Likewise.
15207 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
15208 statement to delete_dead_call and delete_dead_assignment.
15210 2017-01-13 David Malcolm <dmalcolm@redhat.com>
15213 * substring-locations.c (format_warning_va): Strengthen case 1 so
15214 that both endpoints of the substring must be within the format
15215 range for just the substring to be printed.
15217 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
15219 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
15220 * config/i386/i386.c (ix86_target_string): Add missing options
15221 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
15222 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
15223 flags_other and ix86_target_other to flags2_other. Display unknown
15225 (ix86_valid_target_attribute_inner_p): Add missing options and
15226 reorder options by implied ISAs, as in ix86_target_string.
15228 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15230 * hash-table.h (hash_table::too_empty_p): New function.
15231 (hash_table::expand): Use it.
15232 (hash_table::traverse): Likewise.
15233 (hash_table::empty_slot): Use sizeof (value_type) instead of
15234 sizeof (PTR) to convert bytes to elements. Shrink the table
15235 if the current size is excessive for the current number of
15238 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
15240 * ira-costs.c (record_reg_classes): Break from the inner loop
15241 early once alt_fail is known to be true. Update outer loop
15242 handling accordingly.
15244 2017-01-13 Jeff Law <law@redhat.com>
15246 * tree-ssa-dse.c (decrement_count): New function.
15247 (increment_start_addr, maybe_trim_memstar_call): Likewise.
15248 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
15249 when we know the partially dead statement is a mem* function.
15251 PR tree-optimization/61912
15252 PR tree-optimization/77485
15253 * tree-ssa-dse.c: Include expr.h.
15254 (maybe_trim_constructor_store): New function.
15255 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
15257 PR tree-optimization/33562
15258 PR tree-optimization/61912
15259 PR tree-optimization/77485
15260 * doc/invoke.texi: Document new dse-max-object-size param.
15261 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
15262 * tree-ssa-dse.c: Include params.h.
15263 (dse_store_status): New enum.
15264 (initialize_ao_ref_for_dse): New, partially extracted from
15266 (valid_ao_ref_for_dse, normalize_ref): New.
15267 (setup_live_bytes_from_ref, compute_trims): Likewise.
15268 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
15269 (maybe_trim_partially_dead_store): Likewise.
15270 (maybe_trim_complex_store): Likewise.
15271 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
15272 Track what bytes live from the original store. Return tri-state
15273 for dead, partially dead or live.
15274 (dse_dom_walker): Add constructor, destructor and new private members.
15275 (delete_dead_call, delete_dead_assignment): New extracted from
15277 (dse_optimize_stmt): Make a member of dse_dom_walker.
15278 Use initialize_ao_ref_for_dse.
15280 PR tree-optimization/33562
15281 PR tree-optimization/61912
15282 PR tree-optimization/77485
15283 * sbitmap.h (bitmap_count_bits): Prototype.
15284 (bitmap_clear_range, bitmap_set_range): Likewise.
15285 * sbitmap.c (bitmap_clear_range): New function.
15286 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
15288 2017-01-13 Martin Liska <mliska@suse.cz>
15291 * function.c (set_cfun): Add new argument force.
15292 * function.h (set_cfun): Likewise.
15293 * ipa-inline-transform.c (inline_call): Use the function when
15294 strict alising from is dropped for function we inline to.
15296 2017-01-13 Richard Biener <rguenther@suse.de>
15298 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
15299 for dumping GIMPLE INTEGER_CSTs.
15301 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
15303 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
15304 to 201112L since C++17.
15306 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
15309 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
15310 if -fsanitize=kernel-address is present.
15312 2017-01-13 Richard Biener <rguenther@suse.de>
15314 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
15315 as _Literal ( type ) number in case usual suffixes do not
15316 preserve all information.
15318 2017-01-13 Richard Biener <rguenther@suse.de>
15320 PR tree-optimization/77283
15321 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
15322 and ssa-iterators.h.
15323 (is_feasible_trace): Implement a cost model based on joiner
15326 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
15329 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
15330 char or short to __float128/_Float128 directly.
15332 2017-01-12 Martin Sebor <msebor@redhat.com>
15334 to -Wformat-overflow.
15335 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
15336 (min_bytes_remaining): Same.
15337 (get_string_length): Same.
15338 (format_string): Same.
15339 (format_directive): Same.
15341 (pass_sprintf_length::handle_gimple_call): Same.
15343 2017-01-12 Jakub Jelinek <jakub@redhat.com>
15345 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
15346 info.nowrite calls with no lhs that can't throw. Return bool
15347 whether gsi_remove has been called or not.
15348 (pass_sprintf_length::handle_gimple_call): Return bool whether
15349 try_substitute_return_value called gsi_remove. Formatting fix.
15350 (pass_sprintf_length::execute): Don't use gsi_remove if
15351 handle_gimple_call returned true.
15354 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
15355 be removed due to side-effects, don't remove following barrier nor
15356 turn the successor edge into fallthru edge.
15358 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15361 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
15362 element-reversing loads and stores as not swappable.
15364 2017-01-12 Nathan Sidwell <nathan@acm.org>
15365 Nicolai Stange <nicstange@gmail.com>
15367 * combine.c (try_combine): Don't ignore result of overlap checking
15368 loop. Combine overlap & asm check into single loop.
15370 2017-01-12 Richard Biener <rguenther@suse.de>
15372 * tree-pretty-print.c (dump_generic_node): Provide -gimple
15373 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
15375 2017-01-12 Richard Biener <rguenther@suse.de>
15377 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
15378 and TS_TARGET_OPTION directly derive from TS_BASE.
15379 * tree-core.h (tree_optimization_option): Derive from tree_base.
15380 (tree_target_option): Likewise.
15382 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
15384 * config/i386/i386.c (memory_address_length): Increase len
15385 only when rip_relative_addr_p returns false.
15387 2017-01-11 Julia Koval <julia.koval@intel.com>
15389 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
15390 (OPTION_MASK_ISA_SGX_SET): New.
15391 (ix86_handle_option): Handle OPT_msgx.
15392 * config.gcc: Added sgxintrin.h.
15393 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
15394 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
15395 * config/i386/i386.c (ix86_target_string): Add -msgx.
15397 (ix86_option_override_internal): Handle new options.
15398 (ix86_valid_target_attribute_inner_p): Add sgx.
15399 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
15400 * config/i386/i386.opt: Add msgx.
15401 * config/i386/sgxintrin.h: New file.
15402 * config/i386/x86intrin.h: Add sgxintrin.h.
15404 2017-01-11 Jakub Jelinek <jakub@redhat.com>
15407 * fold-const.c (maybe_nonzero_address): Return 1 for function
15409 (tree_single_nonzero_warnv_p): Don't handle function local objects
15413 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
15416 2017-01-11 David Malcolm <dmalcolm@redhat.com>
15419 * opts.c: Include "spellcheck.h"
15420 (struct string_fragment): New struct.
15421 (struct edit_distance_traits<const string_fragment &>): New
15423 (get_closest_sanitizer_option): New function.
15424 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
15426 2017-01-11 Jakub Jelinek <jakub@redhat.com>
15428 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
15430 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
15431 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
15432 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
15433 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
15434 for initial die_offset if dwarf_split_debug_info.
15435 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
15436 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
15438 (output_skeleton_debug_sections): Formatting fix. Use
15439 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
15440 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
15442 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
15444 * config/arm/cortex-a53.md: Add bypasses for
15445 cortex_a53_r2f_cvt.
15446 (cortex_a53_r2f): Only use for transfers.
15447 (cortex_a53_f2r): Likewise.
15448 (cortex_a53_r2f_cvt): Add reservation for conversions.
15449 (cortex_a53_f2r_cvt): Likewise.
15451 2017-01-11 Tamar Christina <tamar.christina@arm.com>
15453 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
15454 to all inlined functions, change static to extern.
15456 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
15459 * config/arm/arm.c (legitimize_pic_address): Handle reference to
15461 (arm_assemble_integer): Likewise.
15463 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
15465 * config.gcc: Use new awk script to check CPU, FPU and architecture
15466 parameters for --with-... options.
15467 * config/arm/parsecpu.awk: New file
15468 * config/arm/arm-cpus.in: New file.
15469 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
15471 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
15473 * config/arm/t-arm: Update dependency rules.
15474 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
15475 of processing .def files.
15476 * config/arm/genopt.sh: Deleted.
15477 * config/arm/gentune.sh: Deleted.
15478 * config/arm/arm-cores.def: Deleted.
15479 * config/arm/arm-arches.def: Deleted.
15480 * config/arm/arm-fpus.def: Deleted.
15481 * config/arm/arm-tune.md: Regenerated.
15482 * config/arm/arm-tables.opt: Regenerated.
15483 * config/arm/arm-cpu.h: New generated file.
15484 * config/arm/arm-cpu-data.h: New generated file.
15485 * config/arm/arm-cpu-cdata.h: New generated file.
15487 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
15490 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
15492 (input_varpool_node): Unpack dynamically_initialized bit.
15494 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
15496 PR rtl-optimization/79032
15497 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
15498 the alignment of the adjusted memory reference against that of MODE,
15499 instead of the alignment of the original memory reference.
15501 2017-01-11 Martin Jambor <mjambor@suse.cz>
15503 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
15505 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
15506 decorated functions.
15508 2017-01-11 Richard Biener <rguenther@suse.de>
15510 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
15511 set range/nonnull info for PHI results. Do not set it on
15512 stmts marked for removal.
15514 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
15516 * expr.c (store_field): In the bitfield case, fetch the return value
15517 from the registers before applying a single big-endian adjustment.
15518 Always do a final load for a BLKmode value not larger than a word.
15520 2017-01-10 David Malcolm <dmalcolm@redhat.com>
15523 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
15524 that we correctly handle column numbers greater than
15525 LINE_MAP_MAX_COLUMN_NUMBER.
15527 2017-01-10 Martin Sebor <msebor@redhat.com>
15529 PR middle-end/78245
15530 * gimple-ssa-sprintf.c (get_destination_size): Call
15531 {init,fini}object_sizes.
15532 * tree-object-size.c (addr_object_size): Adjust.
15533 (pass_through_call): Adjust.
15534 (pass_object_sizes::execute): Adjust.
15535 * tree-object-size.h (fini_object_sizes): Declare.
15537 2017-01-10 Martin Sebor <msebor@redhat.com>
15539 PR tree-optimization/78775
15540 * builtins.c (get_size_range): Move...
15541 * calls.c: ...to here.
15542 (alloc_max_size): Accept zero argument.
15543 (operand_signed_p): Remove.
15544 (maybe_warn_alloc_args_overflow): Call get_size_range.
15545 * calls.h (get_size_range): Declare.
15547 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
15549 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
15550 from TI's devices.csv file as of September 2016.
15551 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
15553 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
15555 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
15556 * doc/invoke.texi: Likewise.
15557 * doc/md.texi: Likewise.
15558 * doc/objc.texi: Likewise.
15560 2017-01-10 Joshua Conner <joshconner@google.com>
15562 * config/arm/fuchsia-elf.h: New file.
15563 * config/fuchsia.h: New file.
15564 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
15565 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
15567 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
15569 2016-01-10 Richard Biener <rguenther@suse.de>
15571 PR tree-optimization/79034
15572 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
15573 Propagate out degenerate PHIs in the joiner.
15575 2017-01-10 Martin Liska <mliska@suse.cz>
15577 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
15578 (sort_congruence_classes_by_decl_uid): Likewise.
15579 (sort_congruence_class_groups_by_decl_uid): Likewise.
15580 (sem_item_optimizer::merge_classes): Sort class, groups in these
15581 classes and members in the groups by DECL_UID of declarations.
15582 This would make merge operations stable.
15584 2017-01-10 Martin Liska <mliska@suse.cz>
15586 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
15587 usage of m_classes_vec.
15588 (sem_item_optimizer::~sem_item_optimizer): Likewise.
15589 (sem_item_optimizer::get_group_by_hash): Likewise.
15590 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
15591 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
15592 (sem_item_optimizer::verify_classes): Likewise.
15593 (sem_item_optimizer::process_cong_reduction): Likewise.
15594 (sem_item_optimizer::dump_cong_classes): Likewise.
15595 (sem_item_optimizer::merge_classes): Likewise.
15596 * ipa-icf.h (congruence_class_hash): Rename from
15597 congruence_class_group_hash. Remove declaration of m_classes_vec.
15599 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
15601 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
15602 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
15603 * config.gcc: Add avx512vpopcntdqintrin.h.
15604 * config/i386/avx512vpopcntdqintrin.h: New.
15605 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
15606 * config/i386/i386-builtin-types.def: Add new types.
15607 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
15608 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
15609 __builtin_ia32_vpopcountq_v8di_mask): New.
15610 * config/i386/i386-c.c (ix86_target_macros_internal): Define
15611 __AVX512VPOPCNTDQ__.
15612 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
15613 (PTA_AVX512VPOPCNTDQ): Define.
15614 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
15615 TARGET_AVX512VPOPCNTDQ_P): Define.
15616 * config/i386/i386.opt: Add mavx512vpopcntdq.
15617 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
15618 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
15620 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
15622 PR middle-end/77484
15623 * predict.def (PRED_CALL): Set to 67.
15625 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
15627 * expr.c (store_field): In the bitfield case, if the value comes from
15628 a function call and is of an aggregate type returned in registers, do
15629 not modify the field mode; extract the value in all cases if the mode
15630 is BLKmode and the size is not larger than a word.
15632 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
15635 * config/i386/cpuid.h: Fix undefined behavior.
15637 2017-01-04 Jeff Law <law@redhat.com>
15639 PR tree-optimization/79007
15640 PR tree-optimization/67955
15641 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
15642 conservative for pt.null when flag_non_call_exceptions is on.
15644 2017-01-09 Jakub Jelinek <jakub@redhat.com>
15646 PR translation/79019
15647 PR translation/79020
15648 * params.def (PARAM_INLINE_MIN_SPEEDUP,
15649 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
15650 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
15652 * config/avr/avr.opt (maccumulate-args): Likewise.
15653 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
15654 * common.opt (freport-bug): Likewise.
15655 * cif-code.def (CIF_FINAL_ERROR): Likewise.
15656 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
15657 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
15658 translatable string.
15659 * config/i386/i386.c (function_value_32): Likewise.
15660 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
15661 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
15663 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
15664 * common/config/msp430/msp430-common.c (msp430_handle_option):
15666 * symtab.c (symtab_node::verify_base): Likewise.
15667 * opts.c (set_debug_level): Likewise.
15668 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
15669 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
15670 missing whitespace to translatable strings.
15671 * config/avr/avr.md (bswapsi2): Fix typo in comment.
15672 * config/sh/superh.h: Likewise.
15673 * config/i386/xopintrin.h: Likewise.
15674 * config/i386/znver1.md: Likewise.
15675 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
15676 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
15677 * double-int.h (struct double_int): Likewise.
15678 * double-int.c (div_and_round_double): Likewise.
15679 * wide-int.cc: Likewise.
15680 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
15681 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
15682 * cfgcleanup.c (crossjumps_occured): Renamed to ...
15683 (crossjumps_occurred): ... this.
15684 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
15687 PR tree-optimization/78899
15688 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
15689 returning bool return struct loop *, NULL for failure and the new
15691 (versionable_outer_loop_p): Don't version outer loop if it has
15692 dont_vectorized bit set.
15693 (tree_if_conversion): When versioning outer loop, ensure
15694 tree_if_conversion is performed also on the inner loop of the
15695 non-vectorizable outer loop copy.
15696 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
15697 LOOP_VECTORIZED in inner loop of the scalar outer loop and
15698 prevent vectorization of it.
15699 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
15700 the outer loop vectorization of the non-scalar version is attempted
15701 before vectorization of the inner loop in scalar version. If
15702 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
15703 vectorization of its inner loop.
15704 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
15705 has 2 inner loops, rename also on edges from bb whose single pred
15706 is outer_loop->header. Fix typo in function comment.
15708 2017-01-09 Martin Sebor <msebor@redhat.com>
15711 * asan.c (asan_emit_stack_protection): Increase local buffer size
15712 to avoid snprintf truncation warning.
15714 2017-01-09 Andrew Pinski <apinski@cavium.com>
15716 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
15717 to reference thunderx2t99 for the tuning structure
15718 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
15720 (thunderx2t99_extra_costs): This.
15721 * config/aarch64/aarch64-tune.md: Regenerate.
15722 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
15723 (vulcan_addrcost_table): This.
15724 (vulcan_regmove_cost): Rename to ...
15725 (thunderx2t99_regmove_cost): This.
15726 (vulcan_vector_cost): Rename to ...
15727 (thunderx2t99_vector_cost): this.
15728 (vulcan_branch_cost): Rename to ...
15729 (thunderx2t99_branch_cost): This.
15730 (vulcan_tunings): Rename to ...
15731 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
15732 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
15734 2017-01-09 Martin Jambor <mjambor@suse.cz>
15738 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
15739 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
15740 (propagate_vr_accross_jump_function): Use the above function for all
15741 value range computations for pass-through jump functions and type
15742 converasion from explicit value range values.
15743 (ipcp_propagate_stage): Do not attempt to deduce types of formal
15744 parameters from TYPE_ARG_TYPES.
15745 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
15746 (ipa_write_node_info): Stream type of the actual argument.
15747 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
15749 2017-01-09 Martin Liska <mliska@suse.cz>
15752 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
15753 (lookup_compiler): Do not show error message with have_E.
15755 2017-01-09 Jakub Jelinek <jakub@redhat.com>
15757 PR tree-optimization/78938
15758 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
15759 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
15760 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
15761 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
15764 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15766 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
15769 2017-01-09 Richard Biener <rguenther@suse.de>
15771 PR tree-optimization/78997
15772 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
15773 name condition properly.
15775 2017-01-09 Richard Biener <rguenther@suse.de>
15778 * dwarf2out.c (is_cxx): New overload with context.
15779 (is_naming_typedef_decl): Use it.
15781 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15783 * invoke.texi (Option Summary): Correct spacing in option lists
15784 and add line breaks to fix over-long lines.
15786 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15788 PR middle-end/17660
15790 * extend.texi (Common Variable Attributes): Add xref to GCC
15791 Internals manual to explain mode attribute keywords.
15793 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
15796 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
15797 and Preprocessor Options.
15798 (Options for Linking): Document -pthread here....
15799 (RS/6000 and PowerPC Options): ...not here.
15800 (Solaris 2 Options): ...or here.
15801 * doc/cppopts.texi: Document -pthread.
15803 2017-01-08 Martin Sebor <msebor@redhat.com>
15805 PR middle-end/77708
15806 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
15807 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
15808 New member functions.
15809 (format_directive): Used them.
15811 (pass_sprintf_length::handle_gimple_call): Same.
15812 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
15813 to avoid truncation for any argument.
15814 (extract_affine_mul): Same.
15815 * tree.c (get_file_function_name): Same.
15817 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
15819 PR middle-end/77484
15820 * predict.def (PRED_INDIR_CALL): Set to 86.
15822 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15824 PR preprocessor/54124
15825 * doc/cppopts.texi: Reformat -d subtable to list the full name
15826 of the options. Add cross-reference to the docs for the general
15827 compiler -d options.
15828 * doc/invoke.texi (Developer Options): Add cross-reference to the
15829 preprocessor-specific -d option documentation.
15831 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15833 PR preprocessor/13498
15834 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
15835 redudant material, and reflect new command-line options.
15836 (System Headers): Likewise.
15838 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
15840 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
15841 -isystem, and -idirafter. Copy-edit.
15842 * doc/cppopts.texi: Copy-edit. Remove contradiction about
15843 default for -ftrack-macro-expansion. Delete obsolete and
15844 badly-formatted implementation details about -fdebug-cpp output.
15845 * doc/cppwarnopts.texi: Copy-edit.
15847 2017-01-07 David Malcolm <dmalcolm@redhat.com>
15850 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
15851 that the transition from a max line width >= 1<<10 to narrower
15852 lines works correctly.
15854 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
15856 * doc/options.texi (PerFunction): New.
15857 * opt-functions.awk (switch_flags): Map both Optimization and
15858 PerFunction to CL_OPTIMIZATION.
15859 * opth-gen.awk: Test for PerFunction flag along with
15861 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
15862 it only when the latter is present. Skip those that don't in
15863 the hash function generator.
15864 * common.opt (fvar-tracking): Mark as PerFunction instead of
15866 (fvar-tracking-assignments): Likewise.
15867 (fvar-tracking-assignments-toggle): Likewise.
15868 (fvar-tracking-uninit): Likewise.
15870 2017-01-07 Jakub Jelinek <jakub@redhat.com>
15872 PR translation/79018
15873 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
15876 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
15879 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
15880 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
15881 TARGET_LONG_JUMP_TABLE_OFFSETS.
15882 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
15883 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
15884 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
15885 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
15886 * config/m68k/m68k.md (tablejump expander): Likewise.
15887 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
15888 TARGET_LONG_JUMP_TABLE_OFFSETS.
15889 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
15890 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
15892 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
15893 David Holsgrove <david.holsgrove@xilinx.com>
15895 * common/config/microblaze/microblaze-common.c
15896 (TARGET_EXCEPT_UNWIND_INFO): Remove.
15897 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
15899 * config/microblaze/microblaze.c (microblaze_must_save_register)
15900 (microblaze_expand_epilogue, microblaze_return_addr): Handle
15902 (microblaze_eh_return): New function.
15903 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
15904 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
15905 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
15906 * config/microblaze/microblaze.md (eh_return): New pattern.
15908 2017-01-06 Jakub Jelinek <jakub@redhat.com>
15910 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
15911 GCC_DIAGNOSTIC_STRINGIFY): Define.
15913 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
15915 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15917 * config/arm/arm.md (<mcrr>): New.
15919 * config/arm/arm.c (arm_arch5te): New.
15920 (arm_option_override): Set arm_arch5te.
15921 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
15923 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
15924 (arm_mcrr_qualifiers): ... this. New.
15925 (MRRC_QUALIFIERS): Define to...
15926 (arm_mrrc_qualifiers): ... this. New.
15927 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
15929 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
15930 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
15931 (MRRCI, mrrc, MRRC): New.
15932 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
15933 VUNSPEC_MRRC2): New.
15935 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15937 * config/arm/arm.md (<mcr>): New.
15939 * config/arm/arm.c (arm_coproc_builtin_available): Add
15940 support for mcr, mrc, mcr2 and mrc2.
15941 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
15942 (arm_mcr_qualifiers): ... this. New.
15943 (MRC_QUALIFIERS): Define to ...
15944 (arm_mrc_qualifiers): ... this. New.
15945 (MCR_QUALIFIERS): Define to ...
15946 (arm_mcr_qualifiers): ... this. New.
15947 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
15949 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
15950 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
15951 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
15952 VUNSPEC_MRC2): New.
15954 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15956 * config/arm/arm.md (*ldc): New.
15960 * config/arm/arm.c (arm_coproc_builtin_available): Add
15961 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
15962 (arm_coproc_ldc_stc_legitimate_address): New.
15963 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
15964 'qualifier_const_pointer'.
15965 (LDC_QUALIFIERS): Define to...
15966 (arm_ldc_qualifiers): ... this. New.
15967 (STC_QUALIFIERS): Define to...
15968 (arm_stc_qualifiers): ... this. New.
15969 * config/arm/arm-protos.h
15970 (arm_coproc_ldc_stc_legitimate_address): New.
15971 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
15972 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
15973 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
15974 stc2, stcl, stc2l): New.
15975 * config/arm/constraints.md (Uz): New.
15976 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
15977 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
15978 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
15979 VUNSPEC_STC2L): New.
15981 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
15983 * config/arm/arm.md (<cdp>): New.
15984 * config/arm/arm.c (neon_const_bounds): Rename this ...
15985 (arm_const_bounds): ... this.
15986 (arm_coproc_builtin_available): New.
15987 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
15988 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
15989 (CDP_QUALIFIERS): Define to...
15990 (arm_cdp_qualifiers): ... this. New.
15992 (arm_expand_builtin_args): Add case for 6 arguments.
15993 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
15994 (arm_const_bounds): ... this.
15995 (arm_coproc_builtin_available): New.
15996 * config/arm/arm_acle.h (__arm_cdp): New.
15998 * config/arm/arm_acle_builtins.def (cdp): New.
16000 * config/arm/iterators.md (CDPI,CDP,cdp): New.
16001 * config/arm/neon.md: Rename all 'neon_const_bounds' to
16002 'arm_const_bounds'.
16003 * config/arm/types.md (coproc): New.
16004 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
16005 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
16006 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
16007 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
16009 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16011 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
16012 (UBINOP_QUALIFIERS): New.
16014 (acle_builtin_data): New. Change comment.
16015 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
16016 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
16017 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
16018 arm_acle_builtins.def.
16019 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
16020 (arm_init_acle_builtins): New.
16021 (CRC32_BUILTIN): Remove.
16022 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
16023 crc32cb, crc32ch and crc32cw.
16024 (arm_init_crc32_builtins): Remove.
16025 (arm_init_builtins): Use arm_init_acle_builtins rather
16026 than arm_init_crc32_builtins.
16027 (arm_expand_acle_builtin): New.
16028 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
16029 * config/arm/arm_acle_builtins.def: New.
16031 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
16033 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
16034 (arm_builtin_datum): ... this.
16035 (arm_init_neon_builtin): Rename to ...
16036 (arm_init_builtin): ... this. Add a new parameters PREFIX
16037 and USE_SIG_IN_NAME.
16038 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
16039 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
16040 'arm_builtin_datum'.
16041 (arm_init_vfp_builtins): Likewise.
16042 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
16043 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
16044 (arm_expand_neon_args): Rename to ...
16045 (arm_expand_builtin_args): ... this. Rename builtin_arg
16046 enum values and differentiate between ARG_BUILTIN_MEMORY
16047 and ARG_BUILTIN_NEON_MEMORY.
16048 (arm_expand_neon_builtin_1): Rename to ...
16049 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
16050 values, arm_expand_builtin_args and add bool parameter NEON.
16051 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
16052 (arm_expand_vfp_builtin): Likewise.
16053 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
16055 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16057 PR middle-end/77484
16058 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
16059 * predict.c (tree_estimate_probability_bb): Reverse direction of
16060 polymorphic call predictor.
16062 2017-01-06 David Malcolm <dmalcolm@redhat.com>
16064 * passes.c (execute_one_pass): Split out pass-skipping logic into...
16065 (determine_pass_name_match): ...this new function and...
16066 (should_skip_pass_p): ...this new function.
16068 2017-01-06 Nathan Sidwell <nathan@acm.org>
16070 * ipa-visibility.c (function_and_variable_visibility): Reformat
16071 comments and long lines. Remove extrneous if.
16072 * symtab.c (symtab_node::make_decl_local): Fix code format.
16073 (symtab_node::set_section_for_node): Fix comment typo.
16075 2017-01-06 Martin Liska <mliska@suse.cz>
16078 * lra-constraints.c: Rename invariant to lra_invariant.
16079 * predict.c (set_even_probabilities): Initialize e to NULL.
16081 2017-01-05 Martin Sebor <msebor@redhat.com>
16083 PR tree-optimization/78910
16084 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
16085 (format_integer): Correct off-by-one error in the handling
16086 of precision with negative numbers in signed conversions..
16088 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
16090 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
16092 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16094 PR tree-optimization/71016
16095 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
16096 factor_out_conditional_conversion. Formatting fix.
16097 (factor_out_conditional_conversion): Add cond_stmt argument.
16098 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
16099 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
16102 2017-01-05 David Malcolm <dmalcolm@redhat.com>
16104 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
16105 read-rtl-function.o, and selftest-rtl.o.
16106 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
16107 (selftest::aarch64_test_loading_full_dump): New function.
16108 (selftest::aarch64_run_selftests): New function.
16109 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
16110 selftest::aarch64_run_selftests.
16111 * config/i386/i386.c
16112 (selftest::ix86_test_loading_dump_fragment_1): New function.
16113 (selftest::ix86_test_loading_call_insn): New function.
16114 (selftest::ix86_test_loading_full_dump): New function.
16115 (selftest::ix86_test_loading_unspec): New function.
16116 (selftest::ix86_run_selftests): Call the new functions.
16117 * emit-rtl.c (maybe_set_max_label_num): New function.
16118 * emit-rtl.h (maybe_set_max_label_num): New decl.
16119 * function.c (instantiate_decls): Guard call to
16120 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
16121 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
16123 * gensupport.c (gen_reader::gen_reader): Pass "false"
16124 for new "compact" param of rtx_reader.
16125 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
16126 rather than an empty string for NULL strings.
16127 * read-md.c: Potentially include config.h rather than bconfig.h.
16128 Wrap include of errors.h with #ifdef GENERATOR_FILE.
16129 (have_error): New global, copied from errors.c.
16130 (md_reader::read_name): Rename to...
16131 (md_reader::read_name_1): ...this, adding "out_loc" param,
16132 and converting "missing name or number" to returning false, rather
16134 (md_reader::read_name): Reimplement in terms of read_name_1.
16135 (md_reader::read_name_or_nil): New function.
16136 (md_reader::read_string): Handle "(nil)" by returning NULL.
16137 (md_reader::md_reader): Add new param "compact".
16138 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
16139 (md_reader::read_file): New method.
16140 * read-md.h (md_reader::md_reader): Add new param "compact".
16141 (md_reader::read_file): New method.
16142 (md_reader::is_compact): New accessor.
16143 (md_reader::read_name): Convert return type from void to file_location.
16144 (md_reader::read_name_or_nil): New decl.
16145 (md_reader::read_name_1): New decl.
16146 (md_reader::m_compact): New field.
16147 (noop_reader::noop_reader): Pass "false" for new "compact" param
16149 (rtx_reader::rtx_reader): Add new "compact" param.
16150 (rtx_reader::read_rtx_operand): Make virtual and convert return
16151 type from void to rtx.
16152 (rtx_reader::read_until): New decl.
16153 (rtx_reader::handle_any_trailing_information): New virtual function.
16154 (rtx_reader::postprocess): New virtual function.
16155 (rtx_reader::finalize_string): New virtual function.
16156 (rtx_reader::m_in_call_function_usage): New field.
16157 (rtx_reader::m_reuse_rtx_by_id): New field.
16158 * read-rtl-function.c: New file.
16159 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
16160 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
16161 (selftest::verify_three_block_rtl_cfg): New decl.
16162 * read-rtl-function.h: New file.
16163 * read-rtl.c: Potentially include config.h rather than bconfig.h.
16164 For host, include function.h, memmodel.h, and emit-rtl.h.
16165 (one_time_initialization): New function.
16166 (struct compact_insn_name): New struct.
16167 (compact_insn_names): New array.
16168 (find_code): Handle insn codes in compact dumps.
16169 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
16170 (bind_subst_iter_and_attr): Likewise.
16171 (add_condition_to_string): Likewise.
16172 (add_condition_to_rtx): Likewise.
16173 (apply_attribute_uses): Likewise.
16174 (add_current_iterators): Likewise.
16175 (apply_iterators): Likewise.
16176 (initialize_iterators): Guard usage of apply_subst_iterator with
16177 #ifdef GENERATOR_FILE.
16178 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
16179 (md_reader::read_mapping): Likewise.
16180 (add_define_attr_for_define_subst): Likewise.
16181 (add_define_subst_attr): Likewise.
16182 (read_subst_mapping): Likewise.
16183 (check_code_iterator): Likewise.
16184 (rtx_reader::read_rtx): Likewise. Move one-time initialization
16186 (one_time_initialization): New function.
16187 (rtx_reader::read_until): New method.
16188 (read_flags): New function.
16189 (parse_reg_note_name): New function.
16190 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
16191 Handle reuse_rtx ids.
16192 Wrap iterator lookup within #ifdef GENERATOR_FILE.
16193 Add parsing support for RTL dumps, mirroring the special-cases in
16194 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
16195 values, and calling handle_any_trailing_information.
16196 (rtx_reader::read_rtx_operand): Convert return type from void
16197 to rtx, returning return_rtx. Handle case 'e'. Call
16198 finalize_string on XSTR and XTMPL fields.
16199 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
16200 "(nil)" values were omitted. Call the postprocess vfunc on the
16202 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
16203 class ctor. Initialize m_in_call_function_usage. Call
16204 one_time_initialization.
16205 * rtl-tests.c (selftest::test_uncond_jump): Call
16206 set_new_first_and_last_insn.
16207 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
16208 * selftest-rtl.c: New file.
16209 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
16210 (selftest::get_insn_by_uid): New decl.
16211 * selftest-run-tests.c (selftest::run_tests): Call
16212 read_rtl_function_c_tests.
16213 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
16214 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
16217 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
16219 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
16220 operands in a special way. Assert that pos+len <= mode precision.
16222 2017-01-05 Jakub Jelinek <jakub@redhat.com>
16224 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
16225 3 argument Alias with unlimited for the negative form.
16226 (fno-vect-cost-model): Removed.
16228 2017-01-05 Martin Liska <mliska@suse.cz>
16230 * hsa-gen.c (gen_hsa_divmod): New function.
16231 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
16233 2017-01-05 Martin Liska <mliska@suse.cz>
16236 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
16239 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16241 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
16242 small constant length operands.
16244 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
16246 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
16247 between loop iterations.
16249 2017-01-05 Martin Liska <mliska@suse.cz>
16252 * gimplify.c (gimplify_decl_expr): Compare to
16253 asan_poisoned_variables instread of checking flags.
16254 (gimplify_target_expr): Likewise.
16255 (gimplify_expr): Likewise.
16256 (gimplify_function_tree): Conditionally initialize
16257 asan_poisoned_variables.
16259 2017-01-04 Jeff Law <law@redhat.com>
16261 PR tree-optimizatin/78812
16262 * rtl.h (contains_mem_rtx_p): Prototype.
16263 * ifcvt.c (containts_mem_rtx_p): Move from here to...
16264 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
16265 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
16266 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
16267 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
16269 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16271 * input.c (assert_char_at_range): Default-initialize actual_range.
16273 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16275 * df-scan.c (df_ref_create_structure): Make regno unsigned,
16276 to match the caller.
16278 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16280 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
16281 insns after final jump in test to emit dummy move.
16283 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16285 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
16286 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
16288 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
16290 * multiple_target.c (create_dispatcher_calls): Init e_next.
16291 * tree-ssa-loop-split.c (split_loop): Init border.
16292 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
16295 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
16300 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
16301 (altivec_register_operand): Do not return true if the operand
16302 contains a SUBREG mixing SImode and SFmode.
16303 (vsx_register_operand): Likewise.
16304 (vsx_reg_sfsubreg_ok): New predicate.
16305 (vfloat_operand): Do not return true if the operand contains a
16306 SUBREG mixing SImode and SFmode.
16307 (vint_operand): Likewise.
16308 (vlogical_operand): Likewise.
16309 (gpc_reg_operand): Likewise.
16310 (int_reg_operand): Likewise.
16311 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
16312 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
16313 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
16315 (rs6000_emit_move_si_sf_subreg): New helper function.
16316 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
16317 fixup SUBREGs involving SImode and SFmode.
16318 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
16319 numbers for the new peephole2 optimization.
16320 (peephole2 for SFmode unions): New peephole2 to optimize cases in
16321 the GLIBC math library that do AND/IOR/XOR operations on single
16322 precision floating point.
16323 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
16324 target macros to say whether we need to avoid SUBREGs mixing
16326 (TARGET_ALLOW_SF_SUBREG): Likewise.
16327 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
16328 (UNSPEC_SI_FROM_SF): Likewise.
16329 (iorxor): Change spacing.
16330 (and_ior_xor): New iterator for AND, IOR, and XOR.
16331 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
16332 (movdi_from_sf_zero_ext): Likewise.
16333 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
16334 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
16335 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
16336 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
16337 (fms<mode>4): Likewise.
16338 (fnma<mode>4): Likewise.
16339 (fnms<mode>4): Likewise.
16340 (nfma<mode>4): Likewise.
16341 (nfms<mode>4): Likewise.
16343 2017-01-04 Marek Polacek <polacek@redhat.com>
16346 * doc/invoke.texi: Document -Wpointer-compare.
16348 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16350 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
16353 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
16354 descriptions for -gdwarf-5 and emit them as uleb128 instead of
16357 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
16360 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
16361 documentation of the powerpc_popcntb_ok attribute.
16362 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
16363 code to issue warning messages if a requested CPU configuration is
16364 not supported by the binary (assembler and loader) toolchain.
16365 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
16366 made to define a built-in function that has been disabled.
16367 (paired_init_builtins): Add assertion to prevent ICE if attempt is
16368 made to define a built-in function that has been disabled.
16369 (altivec_init_builtins): Add comment explaining why definition
16370 of the DST built-in functions is not preceded by an assertion
16371 check. Add assertions to prevent ICE if attempts are made to
16372 define an altivec predicate or an abs* built-in function that has
16374 (htm_init_builtins): Add comment explaining why definition of the
16375 htm built-in functions is not preceded by an assertion check.
16377 2017-01-04 Jeff Law <law@redhat.com>
16379 PR tree-optimizatin/67955
16380 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
16381 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
16382 the points-to solution does not include pt_null. Use DECL_PT_UID
16385 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
16387 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
16388 Use gen_int_mode instead of gen_lopwart for const_int operands.
16390 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16392 PR tree-optimization/71563
16393 * match.pd: Simplify X << Y into X if Y is known to be 0 or
16394 out of range value - has low bits known to be zero.
16396 2017-01-04 Alan Modra <amodra@gmail.com>
16398 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
16399 * configure: Regenerate.
16400 * config.in: Regenerate.
16402 2017-01-04 Jakub Jelinek <jakub@redhat.com>
16405 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
16406 a substring of the message, but strcmp with the whole message. Ifdef
16407 ENABLE_NLS, translate the message first using dgettext.
16409 2017-01-03 Jeff Law <law@redhat.com>
16411 PR tree-optimizatin/78856
16412 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
16413 (mark_threaded_blocks): Remove code to truncate thread paths that
16414 cross multiple loop headers. Instead invalidate the cached loop
16415 iteration information and handle case of a thread path walking
16416 into an irreducible region.
16418 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
16421 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
16422 assertions. Add support for doing the signbit if the IEEE 128-bit
16423 floating point value is in a GPR.
16424 * config/rs6000/rs6000.md (Fsignbit): Delete.
16425 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
16426 Update the length attribute if the value is in a GPR.
16427 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
16428 the sign or zero extension instruction, since the value is always 0/1.
16429 (signbit<mode>2_dm2): Delete using <Fsignbit>.
16432 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
16433 extracting SImode to a GPR register so that we can generate a
16434 store, limit the vector to be in a traditional Altivec register
16435 for the vextuwrx instruction.
16437 2017-01-03 Ian Lance Taylor <iant@google.com>
16439 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
16441 2017-01-03 Martin Sebor <msebor@redhat.com>
16443 PR tree-optimization/78696
16444 * gimple-ssa-sprintf.c (format_floating): Correct handling of
16445 precision. Use MPFR for %f for greater fidelity. Correct handling
16447 (pass_sprintf_length::compute_format_length): Set width and precision
16448 specified by asrerisk to void_node for vararg functions.
16449 (try_substitute_return_value): Adjust dump output.
16451 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
16453 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
16455 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
16457 * doc/invoke.texi (SPARC options): Document -mlra as the default.
16458 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
16459 -mlra/-mno-lra was passed to the compiler.
16461 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
16463 PR rtl-optimization/65618
16464 * emit-rtl.c (try_split): Move initialization of "before" and
16465 "after" to just before the call to emit_insn_after_setloc.
16467 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
16469 * doc/md.texi (Standard Names): Remove reference to Java frontend.
16471 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
16473 * dwarf2out.c (gen_enumeration_type_die): When
16474 -gno-strict-dwarf, add a DW_AT_encoding attribute.
16476 2017-01-03 Jakub Jelinek <jakub@redhat.com>
16478 PR tree-optimization/78965
16479 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
16480 Change first argument from const call_info & to call_info &. For %n
16481 set info.nowrite to false.
16483 PR middle-end/78901
16484 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
16485 possibly throwing calls.
16487 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
16488 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
16489 and fns handling, rather than in a separate case SSA_NAME.
16491 2017-01-02 Jeff Law <law@redhat.com>
16493 * config/darwin-driver.c (darwin_driver_init): Const-correctness
16494 fixes for first_period and second_period variables.
16496 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
16499 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
16500 (*insvqi_1): New insn pattern.
16501 (*insvqi_1_mem_rex64): Ditto.
16502 (*insvqi_2): Ditto.
16503 (*insvqi_3): Rename from *insvqi.
16505 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
16507 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
16509 * doc/cfg.texi (Edges): Remove reference to Java.
16510 (Maintaining the CFG): Ditto.
16512 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16514 PR middle-end/77674
16515 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
16516 transparent aliases.
16518 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
16520 PR middle-end/77484
16521 * predict.def (PRED_CALL): Update hitrate.
16522 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
16523 * predict.c (tree_estimate_probability_bb): Split CALL predictor
16524 into direct/indirect/polymorphic variants.
16526 2017-01-01 Jakub Jelinek <jakub@redhat.com>
16528 Update copyright years.
16530 * gcc.c (process_command): Update copyright notice dates.
16531 * gcov-dump.c (print_version): Ditto.
16532 * gcov.c (print_version): Ditto.
16533 * gcov-tool.c (print_version): Ditto.
16534 * gengtype.c (create_file): Ditto.
16535 * doc/cpp.texi: Bump @copying's copyright year.
16536 * doc/cppinternals.texi: Ditto.
16537 * doc/gcc.texi: Ditto.
16538 * doc/gccint.texi: Ditto.
16539 * doc/gcov.texi: Ditto.
16540 * doc/install.texi: Ditto.
16541 * doc/invoke.texi: Ditto.
16543 Copyright (C) 2017 Free Software Foundation, Inc.
16545 Copying and distribution of this file, with or without modification,
16546 are permitted in any medium without royalty provided the copyright
16547 notice and this notice are preserved.