1 2018-01-25 Release Manager
5 2018-01-23 Eric Botcazou <ebotcazou@adacore.com>
7 PR rtl-optimization/81443
8 * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results
9 from inner REGs to paradoxical SUBREGs.
11 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
13 Backport from mainline
14 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
15 David Edelsohn <dje.gcc@gmail.com>
18 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
19 Change "crset eq" to "crset 2".
20 (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
21 (*call_indirect_aix<mode>_nospec): Likewise.
22 (*call_value_indirect_aix<mode>_nospec): Likewise.
23 (*call_indirect_elfv2<mode>_nospec): Likewise.
24 (*call_value_indirect_elfv2<mode>_nospec): Likewise.
25 (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2";
26 change assembly output from . to $.
27 (*sibcall_value_nonlocal_sysv<mode>): Likewise.
28 (indirect_jump<mode>_nospec): Change assembly output from . to $.
29 (*tablejump<mode>_internal1_nospec): Likewise.
31 2018-01-21 Oleg Endo <olegendo@gcc.gnu.org>
33 Backport from mainline
34 2018-01-21 Oleg Endo <olegendo@gcc.gnu.org>
37 * config/sh/sh_optimize_sett_clrt.cc:
38 Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes.
40 2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
42 Backport from mainline
43 2018-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
45 * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for
46 -mspeculate-indirect-jumps.
47 * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable
48 for -mno-speculate-indirect-jumps.
49 (*call_indirect_elfv2<mode>_nospec): New define_insn.
50 (*call_value_indirect_elfv2<mode>): Disable for
51 -mno-speculate-indirect-jumps.
52 (*call_value_indirect_elfv2<mode>_nospec): New define_insn.
53 (indirect_jump): Emit different RTL for
54 -mno-speculate-indirect-jumps.
55 (*indirect_jump<mode>): Disable for
56 -mno-speculate-indirect-jumps.
57 (*indirect_jump<mode>_nospec): New define_insn.
58 (tablejump): Emit different RTL for
59 -mno-speculate-indirect-jumps.
60 (tablejumpsi): Disable for -mno-speculate-indirect-jumps.
61 (tablejumpsi_nospec): New define_expand.
62 (tablejumpdi): Disable for -mno-speculate-indirect-jumps.
63 (tablejumpdi_nospec): New define_expand.
64 (*tablejump<mode>_internal1): Disable for
65 -mno-speculate-indirect-jumps.
66 (*tablejump<mode>_internal1_nospec): New define_insn.
67 * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New
70 Backport from mainline
71 2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
73 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>):
74 Generate different code for -mno-speculate-indirect-jumps.
75 (*call_value_indirect_nonlocal_sysv<mode>): Likewise.
76 (*call_indirect_aix<mode>): Disable for
77 -mno-speculate-indirect-jumps.
78 (*call_indirect_aix<mode>_nospec): New define_insn.
79 (*call_value_indirect_aix<mode>): Disable for
80 -mno-speculate-indirect-jumps.
81 (*call_value_indirect_aix<mode>_nospec): New define_insn.
82 (*sibcall_nonlocal_sysv<mode>): Generate different code for
83 -mno-speculate-indirect-jumps.
84 (*sibcall_value_nonlocal_sysv<mode>): Likewise.
86 2018-01-17 Richard Biener <rguenther@suse.de>
88 Backport from mainline
89 2017-12-18 Richard Biener <rguenther@suse.de>
91 PR tree-optimization/81877
92 * tree-ssa-loop-im.c (ref_indep_loop_p): Remove safelen parameters.
93 (outermost_indep_loop): Adjust.
94 (ref_indep_loop_p_1): Likewise. Remove safelen handling again.
95 (can_sm_ref_p): Adjust.
97 2017-12-08 Richard Biener <rguenther@suse.de>
100 * tree-ssa-uninit.c (warn_uninitialized_vars): Properly
101 handle accesses outside of zero-sized vars.
103 2018-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
105 Backport from mailine
106 2018-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
109 * config/arm/iterators.md (VF): New mode iterator.
110 * config/arm/neon.md (neon_vabd<mode>_2): Use the above.
111 Remove integer-related logic from pattern.
112 (neon_vabd<mode>_3): Likewise.
114 2018-01-17 Martin Liska <mliska@suse.cz>
116 Backport from mainline
117 2018-01-04 Martin Liska <mliska@suse.cz>
120 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary.
122 2018-01-17 Martin Liska <mliska@suse.cz>
124 Backport from mainline
125 2018-01-03 Martin Liska <mliska@suse.cz>
128 * cif-code.def (VARIADIC_THUNK): New enum value.
129 * ipa-inline-analysis.c (compute_inline_parameters):
130 Do not inline variadic thunks.
132 2018-01-17 Martin Liska <mliska@suse.cz>
134 Backport from mainline
135 2017-12-27 Martin Liska <mliska@suse.cz>
137 PR tree-optimization/83552
138 * tree-ssa-strlen.c (fold_strstr_to_strncmp): Assign result
139 of get_string_lenth to a SSA_NAME if not a GIMPLE value.
141 2018-01-16 Segher Boessenkool <segher@kernel.crashing.org>
143 Backport from mainline
144 2017-12-18 Segher Boessenkool <segher@kernel.crashing.org>
146 PR rtl-optimization/83424
147 * rtlanal.c (dead_or_set_regno_p): Handle CLOBBER just like SET.
149 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
151 * config/i386/i386.c (ix86_expand_prologue): Don't use reference
152 of struct ix86_frame.
153 (ix86_expand_epilogue): Likewise.
155 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
157 Backport from mainline
158 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
160 * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow
161 -mcmodel=large with -mindirect-branch=thunk,
162 -mindirect-branch=thunk-extern, -mfunction-return=thunk and
163 -mfunction-return=thunk-extern.
164 * doc/invoke.texi: Document -mcmodel=large is incompatible with
165 -mindirect-branch=thunk, -mindirect-branch=thunk-extern,
166 -mfunction-return=thunk and -mfunction-return=thunk-extern.
168 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
170 Backport from mainline
171 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
173 * config/i386/i386.c (print_reg): Print the name of the full
174 integer register without '%'.
175 (ix86_print_operand): Handle 'V'.
176 * doc/extend.texi: Document 'V' modifier.
178 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
180 Backport from mainline
181 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
183 * config/i386/predicates.md (indirect_branch_operand): Rewrite
184 ix86_indirect_branch_register logic.
186 Backport from mainline
187 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
189 * config/i386/constraints.md (Bs): Update
190 ix86_indirect_branch_register check. Don't check
191 ix86_indirect_branch_register with GOT_memory_operand.
193 * config/i386/predicates.md (GOT_memory_operand): Don't check
194 ix86_indirect_branch_register here.
195 (GOT32_symbol_operand): Likewise.
197 Backport from mainline
198 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
200 * config/i386/predicates.md (constant_call_address_operand):
201 Rewrite ix86_indirect_branch_register logic.
202 (sibcall_insn_operand): Likewise.
204 Backport from mainline
205 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
207 * config/i386/constraints.md (Bs): Replace
208 ix86_indirect_branch_thunk_register with
209 ix86_indirect_branch_register.
211 * config/i386/i386.md (indirect_jump): Likewise.
212 (tablejump): Likewise.
213 (*sibcall_memory): Likewise.
214 (*sibcall_value_memory): Likewise.
215 Peepholes of indirect call and jump via memory: Likewise.
216 * config/i386/i386.opt: Likewise.
217 * config/i386/predicates.md (indirect_branch_operand): Likewise.
218 (GOT_memory_operand): Likewise.
219 (call_insn_operand): Likewise.
220 (sibcall_insn_operand): Likewise.
221 (GOT32_symbol_operand): Likewise.
223 Backport from mainline
224 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
226 * config/i386/constraints.md (Bs): Disallow memory operand for
227 -mindirect-branch-register.
229 * config/i386/predicates.md (indirect_branch_operand): Likewise.
230 (GOT_memory_operand): Likewise.
231 (call_insn_operand): Likewise.
232 (sibcall_insn_operand): Likewise.
233 (GOT32_symbol_operand): Likewise.
234 * config/i386/i386.md (indirect_jump): Call convert_memory_address
235 for -mindirect-branch-register.
236 (tablejump): Likewise.
237 (*sibcall_memory): Likewise.
238 (*sibcall_value_memory): Likewise.
239 Disallow peepholes of indirect call and jump via memory for
240 -mindirect-branch-register.
241 (*call_pop): Replace m with Bw.
242 (*call_value_pop): Likewise.
243 (*sibcall_pop_memory): Replace m with Bs.
244 * config/i386/i386.opt (mindirect-branch-register): New option.
245 * doc/invoke.texi: Document -mindirect-branch-register option.
247 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
249 Backport from mainline
250 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
253 * config/i386/i386.c (output_indirect_thunk_function): Use
254 ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO
255 for __x86.return_thunk.
257 Backport from mainline
258 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
260 * config/i386/i386-protos.h (ix86_output_function_return): New.
261 * config/i386/i386.c (ix86_set_indirect_branch_type): Also
262 set function_return_type.
263 (indirect_thunk_name): Add ret_p to indicate thunk for function
265 (output_indirect_thunk_function): Pass false to
267 (ix86_output_indirect_branch_via_reg): Likewise.
268 (ix86_output_indirect_branch_via_push): Likewise.
269 (output_indirect_thunk_function): Create alias for function
270 return thunk if regno < 0.
271 (ix86_output_function_return): New function.
272 (ix86_handle_fndecl_attribute): Handle function_return.
273 (ix86_attribute_table): Add function_return.
274 * config/i386/i386.h (machine_function): Add
275 function_return_type.
276 * config/i386/i386.md (simple_return_internal): Use
277 ix86_output_function_return.
278 (simple_return_internal_long): Likewise.
279 * config/i386/i386.opt (mfunction-return=): New option.
280 (indirect_branch): Mention -mfunction-return=.
281 * doc/extend.texi: Document function_return function attribute.
282 * doc/invoke.texi: Document -mfunction-return= option.
284 2018-01-16 H.J. Lu <hongjiu.lu@intel.com>
286 Backport from mainline
287 2018-01-14 H.J. Lu <hongjiu.lu@intel.com>
289 * config/i386/i386-opts.h (indirect_branch): New.
290 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise.
291 * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone
292 with local indirect jump when converting indirect call and jump.
293 (ix86_set_indirect_branch_type): New.
294 (ix86_set_current_function): Call ix86_set_indirect_branch_type.
295 (indirectlabelno): New.
296 (indirect_thunk_needed): Likewise.
297 (indirect_thunk_bnd_needed): Likewise.
298 (indirect_thunks_used): Likewise.
299 (indirect_thunks_bnd_used): Likewise.
300 (INDIRECT_LABEL): Likewise.
301 (indirect_thunk_name): Likewise.
302 (output_indirect_thunk): Likewise.
303 (output_indirect_thunk_function): Likewise.
304 (ix86_output_indirect_branch_via_reg): Likewise.
305 (ix86_output_indirect_branch_via_push): Likewise.
306 (ix86_output_indirect_branch): Likewise.
307 (ix86_output_indirect_jmp): Likewise.
308 (ix86_code_end): Call output_indirect_thunk_function if needed.
309 (ix86_output_call_insn): Call ix86_output_indirect_branch if
311 (ix86_handle_fndecl_attribute): Handle indirect_branch.
312 (ix86_attribute_table): Add indirect_branch.
313 * config/i386/i386.h (machine_function): Add indirect_branch_type
314 and has_local_indirect_jump.
315 * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump
317 (tablejump): Likewise.
318 (*indirect_jump): Use ix86_output_indirect_jmp.
319 (*tablejump_1): Likewise.
320 (simple_return_indirect_internal): Likewise.
321 * config/i386/i386.opt (mindirect-branch=): New option.
322 (indirect_branch): New.
325 (thunk-inline): Likewise.
326 (thunk-extern): Likewise.
327 * doc/extend.texi: Document indirect_branch function attribute.
328 * doc/invoke.texi: Document -mindirect-branch= option.
330 2018-01-16 Richard Biener <rguenther@suse.de>
332 Backport from mainline
333 2017-09-29 Vladimir Makarov <vmakarov@redhat.com>
336 * ira-costs.c (scan_one_insn): Don't take into account PIC equiv
337 with a symbol for LRA.
339 2018-01-15 Segher Boessenkool <segher@kernel.crashing.org>
341 Backport from mainline
342 2018-01-10 Segher Boessenkool <segher@kernel.crashing.org>
345 * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b,
346 load_toc_v4_PIC_3c): Wrap const term in CONST RTL.
348 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
350 Backport from mainline
352 * config/i386/i386.c (ix86_function_arg_advance): Set
353 outgoing_args_on_stack to true if there are outgoing arguments
355 (ix86_function_arg): Likewise.
356 (ix86_compute_frame_layout): Align stack frame if argument is
358 * config/i386/i386.h (machine_function): Add
359 outgoing_args_on_stack.
361 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
363 Backport from mainline
364 * config/i386/i386.c (ix86_expand_prologue): Use reference of
366 (ix86_expand_epilogue): Likewise.
368 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
370 Backport from mainline
371 2017-11-06 H.J. Lu <hongjiu.lu@intel.com>
373 * config/i386/i386.c (ix86_can_use_return_insn_p): Use reference
374 of struct ix86_frame.
375 (ix86_initial_elimination_offset): Likewise.
376 (ix86_expand_split_stack_prologue): Likewise.
378 2018-01-15 H.J. Lu <hongjiu.lu@intel.com>
380 Backport from mainline
381 2017-06-01 Bernd Edlinger <bernd.edlinger@hotmail.de>
383 * config/i386/i386.c (ix86_frame): Moved to ...
384 * config/i386/i386.h (ix86_frame): Here.
385 (machine_function): Add frame.
386 * config/i386/i386.c (ix86_compute_frame_layout): Repace the
387 frame argument with &cfun->machine->frame.
388 (ix86_can_use_return_insn_p): Don't pass &frame to
389 ix86_compute_frame_layout. Copy frame from cfun->machine->frame.
390 (ix86_can_eliminate): Likewise.
391 (ix86_expand_prologue): Likewise.
392 (ix86_expand_epilogue): Likewise.
393 (ix86_expand_split_stack_prologue): Likewise.
395 2018-01-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
397 Backport from mainline
398 2018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
401 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal):
402 Reverse order of second and third operands in first alternative.
403 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order
404 of first and second elements in UNSPEC_VPERMR vector.
405 (altivec_expand_vec_perm_le): Likewise.
407 2018-01-14 Uros Bizjak <ubizjak@gmail.com>
409 Backport from mainline
410 2018-01-12 Uros Bizjak <ubizjak@gmail.com>
413 * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern.
414 (*saddl_se_1): Ditto.
416 (*ssubl_se_1): Ditto.
418 Backport from mainline
419 2018-01-09 Uros Bizjak <ubizjak@gmail.com>
422 * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of
423 op_mode in the force_to_mode call.
425 2018-01-12 Oleg Endo <olegendo@gcc.gnu.org>
427 Backport from mainline
428 2018-01-12 Oleg Endo <olegendo@gcc.gnu.org>
431 * config/rx/rx.c (rx_is_restricted_memory_address):
434 2018-01-12 Eric Botcazou <ebotcazou@adacore.com>
436 PR rtl-optimization/83565
437 * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do
438 not extend the result to a larger mode for rotate operations.
439 (num_sign_bit_copies1): Likewise.
441 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
443 Backport from mainline
444 2018-01-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
447 * cgraphunit.c (symbol_table::compile): Switch to text_section
448 before calling assembly_start debug hook.
450 2018-01-11 Oleg Endo <olegendo@gcc.gnu.org>
452 Backport from mainline
453 2018-01-11 Oleg Endo <olegendo@gcc.gnu.org>
456 * config/rx/rx.md (BW): New mode attribute.
457 (sync_lock_test_and_setsi): Add mode suffix to insn output.
459 2018-01-09 Richard Biener <rguenther@suse.de>
461 Backport from mainline
462 2018-01-08 Richard Biener <rguenther@suse.de>
465 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks.
467 2018-01-08 Jim Wilson <jimw@sifive.com>
469 Backport from mainline
470 2018-01-08 Monk Chiang <sh.chiang04@gmail.com>
471 Kito Cheng <kito.cheng@gmail.com>
473 * config/riscv/riscv.c (machine_function::is_leaf): Remove field.
474 (riscv_leaf_function_p): Delete.
475 (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE.
477 2018-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
479 Backport from mainline
480 2017-12-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
483 * config/arm/arm.h (TEST_REGNO): Adjust comment as expected in r255830.
485 2018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
487 Backported from mainline
488 2018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de>
490 * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration.
491 * config/epiphany/rtems.h: New file.
493 2018-01-04 Uros Bizjak <ubizjak@gmail.com>
496 * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT
497 instead of MULT rtx. Update all corresponding splitters.
499 (*ssub<modesuffix>): Ditto.
501 (*cmp_sadd_di): Update split patterns.
502 (*cmp_sadd_si): Ditto.
503 (*cmp_sadd_sidi): Ditto.
504 (*cmp_ssub_di): Ditto.
505 (*cmp_ssub_si): Ditto.
506 (*cmp_ssub_sidi): Ditto.
507 * config/alpha/predicates.md (const23_operand): New predicate.
508 * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]:
509 Look for ASHIFT, not MULT inner operand.
510 (alpha_split_conditional_move): Update for *sadd<modesuffix> change.
512 2018-01-02 Andrew Waterman <andrew@sifive.com>
514 * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New.
515 * config/riscv/riscv.md (clear_cache): Use it.
517 2018-01-01 Jakub Jelinek <jakub@redhat.com>
520 * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of
521 convert_modes if target mode has the right side, but different mode
525 * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg
526 last argument when extracting from CONCAT. If either from_real or
527 from_imag is NULL, use expansion through memory. If result is not
528 a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg
529 the parts directly to inner mode, if even that fails, use expansion
533 * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT,
534 check for bswap in mode rather than HImode and use that in expand_unop
537 2017-12-23 Jakub Jelinek <jakub@redhat.com>
540 * fold-const.c (struct contains_label_data): New type.
541 (contains_label_1): Return non-NULL even for CASE_LABEL_EXPR, unless
542 inside of a SWITCH_BODY seen during the walk.
543 (contains_label_p): Use walk_tree instead of
544 walk_tree_without_duplicates, prepare data for contains_label_1 and
547 2017-12-22 Martin Jambor <mjambor@suse.cz>
550 * lto-cgraph.c (output_cgraph_opt_summary_p): Also check former
553 2017-12-22 Jakub Jelinek <jakub@redhat.com>
555 Backported from mainline
556 2017-12-21 Jakub Jelinek <jakub@redhat.com>
559 * gimple-ssa-sprintf.c (maybe_warn): Don't call set_caret_index
560 if navail is >= dir.len.
562 PR rtl-optimization/80747
563 PR rtl-optimization/83512
564 * cfgrtl.c (force_nonfallthru_and_redirect): When splitting
565 succ edge from ENTRY, copy partition from e->dest to the newly
567 * bb-reorder.c (reorder_basic_blocks_simple): If last_tail is
568 ENTRY, use BB_PARTITION of its successor block as current_partition.
569 Don't copy partition when splitting succ edge from ENTRY.
571 PR tree-optimization/83523
572 * tree-ssa-math-opts.c (is_widening_mult_p): Return false if
573 for INTEGER_TYPE TYPE_OVERFLOW_TRAPS.
574 (convert_mult_to_fma): Likewise.
576 PR tree-optimization/83521
577 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Use
578 gimple_build_assign without code on result of
579 fold_build1 (VIEW_CONVERT_EXPR, ...), as it might not create
582 2017-12-19 Jakub Jelinek <jakub@redhat.com>
586 * ipa-inline.c (flatten_remove_node_hook): New function.
587 (ipa_inline): Keep only nodes with flatten attribute at the end of
588 the array in the order from ipa_reverse_postorder, only walk that
589 portion of array for flattening, if there is more than one such
590 node, temporarily register a removal hook and ignore removed nodes.
592 2017-12-21 Uros Bizjak <ubizjak@gmail.com>
595 * config/i386/i386.md (*ashl<mode>3_mask): Add operand
596 constraints to operand 2.
597 (*<shift_insn><mode>3_mask): Ditto.
598 (*<rotate_insn><mode>3_mask): Ditto.
600 2017-12-19 Bin Cheng <bin.cheng@arm.com>
602 Backport from mainline
603 2017-11-15 Bin Cheng <bin.cheng@arm.com>
605 PR tree-optimization/82726
606 PR tree-optimization/70754
607 * tree-predcom.c (order_drefs_by_pos): New function.
608 (combine_chains): Move code setting has_max_use_after to...
609 (try_combine_chains): ...here. New parameter. Sort combined chains
610 according to position information.
611 (tree_predictive_commoning_loop): Update call to above function.
612 (update_pos_for_combined_chains, pcom_stmt_dominates_stmt_p): New.
614 2017-11-15 Bin Cheng <bin.cheng@arm.com>
616 PR tree-optimization/82726
618 2017-01-23 Bin Cheng <bin.cheng@arm.com>
620 PR tree-optimization/70754
621 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
622 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
623 combined stmt before it if not NULL.
624 (combine_chains): Process refs reversely and compute dominance point
628 2017-02-23 Bin Cheng <bin.cheng@arm.com>
630 PR tree-optimization/79663
631 * tree-predcom.c (combine_chains): Process refs in reverse order
632 only for ZERO length chains, and add explaining comment.
634 2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
636 Backport from mainline
637 2017-12-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
640 * config/rs6000/t-rtems (MULTILIB_REQUIRED): Remove 64-bit soft-float
643 2017-12-19 Daniel Cederman <cederman@gaisler.com>
645 Backport from mainline
646 2017-12-19 Daniel Cederman <cederman@gaisler.com>
648 * config/sparc/sparc.c (sparc_do_work_around_errata): Make sure
649 the jump is to a label.
651 2017-12-17 John David Anglin <danglin@gcc.gnu.org>
653 Backport from mainline
654 2017-12-03 John David Anglin <danglin@gcc.gnu.org>
656 * config/pa/pa.c (pa_legitimate_address_p): For scaled indexing,
657 require base operand is a REG_POINTER prior to reload on targets
658 with non-equivalent space registers.
660 2017-12-15 Jakub Jelinek <jakub@redhat.com>
662 PR tree-optimization/83269
663 * fold-const.c (fold_binary_loc): Perform (-A) - B -> (-B) - A
664 subtraction in arg0's type if type is signed and arg0 is unsigned.
667 Backported from mainline
668 2017-12-14 Jakub Jelinek <jakub@redhat.com>
670 PR tree-optimization/83198
671 * gimple-ssa-sprintf.c (format_floating): Set type solely based on
672 dir.modifier, regardless of TREE_TYPE (arg). Assume non-REAL_CST
673 value if arg is a REAL_CST with incompatible type.
675 2017-12-12 Jakub Jelinek <jakub@redhat.com>
677 PR tree-optimization/80631
678 * tree-vect-loop.c (get_initial_def_for_reduction): Fix comment typo.
679 (vect_create_epilog_for_reduction): Add INDUC_VAL argument, for
680 INTEGER_INDUC_COND_REDUCTION use INDUC_VAL instead of
681 hardcoding zero as the value if COND_EXPR is never true. For
682 INTEGER_INDUC_COND_REDUCTION don't emit the final COND_EXPR if
683 INDUC_VAL is equal to INITIAL_DEF.
684 (vectorizable_reduction): Compute INDUC_VAL for
685 vect_create_epilog_for_reduction, if no value is suitable, don't
686 use INTEGER_INDUC_COND_REDUCTION for now. Formatting fixes.
688 2017-12-08 Joseph Myers <joseph@codesourcery.com>
689 Alexander Monakov <amonakov@ispras.ru>
690 Jakub Jelinek <jakub@redhat.com>
693 * config/i386/i386.c (ix86_expand_rint): Handle flag_rounding_math.
695 2017-12-02 Jakub Jelinek <jakub@redhat.com>
698 * tree-cfg.c (pass_warn_function_return::execute): Handle
699 __builtin_ubsan_handle_missing_return like __builtin_unreachable
700 with BUILTINS_LOCATION.
704 * expr.c (get_inner_reference): If DECL_MODE of a non-bitfield
705 is BLKmode for vector field with vector raw mode, use TYPE_MODE
706 instead of DECL_MODE.
708 2017-11-29 Jakub Jelinek <jakub@redhat.com>
711 * config/i386/sse.md (vec_concatv2di): Remove * from (=Yr,0,*rm)
714 2017-11-25 Jakub Jelinek <jakub@redhat.com>
716 PR rtl-optimization/81553
717 * combine.c (simplify_if_then_else): In (if_then_else COND (OP Z C1) Z)
718 to (OP Z (mult COND (C1 * STORE_FLAG_VALUE))) optimization, if OP
719 is a shift where C1 has different mode than the whole shift, use C1's
720 mode for MULT rather than the shift's mode.
722 2017-11-24 Jakub Jelinek <jakub@redhat.com>
725 * ubsan.c (ubsan_type_descriptor): Use pp_unsigned_wide_integer
726 instead of pp_printf with HOST_WIDE_INT_PRINT_DEC. Avoid calling
729 * tree-object-size.c (pass_through_call): Do not handle
730 BUILT_IN_STPNCPY_CHK which is not a pass through call.
732 2017-11-23 Jakub Jelinek <jakub@redhat.com>
735 * expr.c (expand_assignment): For CONCAT to_rtx, complex type from and
736 bitpos/bitsize covering the whole destination, use store_expr only if
737 the complex mode is the same. Otherwise, use expand_normal and if
738 it returns CONCAT, subreg each part separately instead of trying to
739 subreg the whole result.
741 2017-11-22 Jakub Jelinek <jakub@redhat.com>
744 * valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
745 debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
746 (dead_debug_insert_temp): Likewise, but also ignore even non-volatile
749 2017-11-21 James Cowgill <James.Cowgill@imgtec.com>
750 Jakub Jelinek <jakub@redhat.com>
753 * config/mips/frame-header-opt.c (mips_register_frame_header_opt):
754 Remove static keyword from f variable.
756 2017-12-15 Richard Biener <rguenther@suse.de>
759 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
760 Adjust remaining gimple_set_modified to use the modified
763 2017-12-15 Eric Botcazou <ebotcazou@adacore.com>
766 * ggc-page.c (HOST_BITS_PER_PTR): Do not define here...
767 * hwint.h (HOST_BITS_PER_PTR): ...but here instead.
768 * config/i386/xm-mingw32.h (HOST_BITS_PER_PTR): Delete.
770 2017-12-15 Richard Biener <rguenther@suse.de>
772 Backport from mainline
773 PR tree-optimization/82060
774 * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
775 Move devirtualization after stmt folding and before EH/AB/noreturn
776 cleanup to get the stmt refs canonicalized. Use a bool instead
777 of gimple_modified_p since that doesn't work for NOPs. Schedule
778 NOPs generated by folding for removal.
780 2017-12-15 Richard Biener <rguenther@suse.de>
782 Backport from mainline
783 2017-09-05 Richard Biener <rguenther@suse.de>
785 PR tree-optimization/82102
786 * tree-ssa-pre.c (eliminate): Check if lhs is NULL.
788 2017-09-13 Richard Biener <rguenther@suse.de>
791 * gimple-fold.c (gimple_fold_call): Update SSA name in-place to
792 default-def to avoid breaking iterator update with the weird
793 interaction with cgraph_update_edges_for_call_stmt_node.
795 2017-12-15 Richard Biener <rguenther@suse.de>
797 Backport from mainline
798 2017-11-24 Richard Biener <rguenther@suse.de>
800 PR tree-optimization/82402
801 * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Properly
802 set SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
804 2017-10-24 Richard Biener <rguenther@suse.de>
806 PR tree-optimization/82697
807 * tree-ssa-phiopt.c (cond_store_replacement): Use alias-set
808 zero for conditional load and unconditional store.
810 2017-11-02 Richard Biener <rguenther@suse.de>
813 * varasm.c (decode_addr_const): Make offset HOST_WIDE_INT.
814 Truncate ARRAY_REF index and element size.
816 2017-11-09 Richard Biener <rguenther@suse.de>
818 PR tree-optimization/82902
819 * tree-ssa-phiprop.c (propagate_with_phi): Test proper type.
821 2017-12-14 Peter Bergner <bergner@vnet.ibm.com>
823 Backport from mainline
824 2017-10-02 Peter Bergner <bergner@vnet.ibm.com>
827 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rewrite
828 function to not use the have_cpu variable. Do not set cpu_index,
829 rs6000_cpu_index or rs6000_tune_index if we end up using TARGET_DEFAULT
831 (rs6000_valid_attribute_p): Remove duplicate initializations of
832 old_optimize and func_optimize.
833 (rs6000_pragma_target_parse): Call rs6000_activate_target_options ().
834 (rs6000_activate_target_options): Make global.
835 * config/rs6000/rs6000-protos.h (rs6000_activate_target_options): Add
838 2017-12-13 Peter Bergner <bergner@vnet.ibm.com>
840 Backport from mainline
841 2017-12-13 Peter Bergner <bergner@vnet.ibm.com>
843 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_HTM_NO_SUSPEND): New define.
844 * config/rs6000/rs6000.c (cpu_supports_info): Use it.
846 2017-12-11 Michael Meissner <meissner@linux.vnet.ibm.com>
849 2017-12-01 Michael Meissner <meissner@linux.vnet.ibm.com>
852 * config/rs6000/rs6000.c (rs6000_address_for_fpconvert): Check for
853 whether we can allocate pseudos before trying to fix an address.
854 * config/rs6000/rs6000.md (float_<mode>si2_hw): Make sure the
855 memory address is indexed or indirect.
856 (floatuns_<mode>si2_hw2): Likewise.
858 2017-12-11 Sudakshina Das <sudi.das@arm.com>
860 Backported from trunk
861 2017-12-01 Sudakshina Das <sudi.das@arm.com>
863 * config/arm/vfp.md (*movhf_vfp_fp16): Add conds attribute.
865 2017-12-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
868 2017-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org>
871 * config/rs6000/power6.md: Replace store_data_bypass_p calls with
872 rs6000_store_data_bypass_p in seven define_bypass directives and
874 * config/rs6000/rs6000-protos.h: Add prototype for
875 rs6000_store_data_bypass_p function.
876 * config/rs6000/rs6000.c (rs6000_store_data_bypass_p): New
877 function implements slightly different (rs6000-specific) semantics
878 than store_data_bypass_p, returning false rather than aborting
879 with assertion error when arguments do not satisfy the
880 requirements of store data bypass.
881 (rs6000_adjust_cost): Replace six calls of store_data_bypass_p with
882 rs6000_store_data_bypass_p.
884 2017-12-06 Eric Botcazou <ebotcazou@adacore.com>
887 2017-11-29 Martin Aberg <maberg@gaisler.com>
889 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
890 to prevent b2bst errata sequence.
891 (sqrtdf2_fix): Likewise.
893 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
895 Backport from mainline
896 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
897 * config/xtensa/xtensa.c (xtensa_asan_shadow_offset): New
899 (TARGET_ASAN_SHADOW_OFFSET): New macro definition.
900 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): Set to 1 if
903 2017-12-05 Max Filippov <jcmvbkbc@gmail.com>
905 Backport from mainline
906 2017-05-08 Max Filippov <jcmvbkbc@gmail.com>
907 * config/xtensa/xtensa-protos.h
908 (xtensa_initial_elimination_offset): New declaration.
909 * config/xtensa/xtensa.c (xtensa_initial_elimination_offset):
910 New function. Move its body from the INITIAL_ELIMINATION_OFFSET
911 macro definition, add case for FRAME_POINTER_REGNUM when
912 FRAME_GROWS_DOWNWARD.
913 * config/xtensa/xtensa.h (FRAME_GROWS_DOWNWARD): New macro
915 (INITIAL_ELIMINATION_OFFSET): Replace body with call to
916 xtensa_initial_elimination_offset.
918 2017-12-04 Eric Botcazou <ebotcazou@adacore.com>
920 * config/sparc/sparc.c (sparc_do_work_around_errata): Use mem_ref
921 instead of MEM_P in a couple more places. Fix formatting issues.
923 2017-12-04 Sebastian Peryt <sebastian.peryt@intel.com>
924 H.J. Lu <hongjiu.lu@intel.com>
926 Bakcported from trunk
930 * config/i386/i386.c (pass_insert_vzeroupper): Remove
931 TARGET_AVX512F check from gate condition.
932 (ix86_check_avx256_register): Changed to ...
933 (ix86_check_avx_upper_register): ... this. Add extra check for
934 VALID_AVX512F_REG_OR_XI_MODE.
935 (ix86_avx_u128_mode_needed): Changed
936 ix86_check_avx256_register to ix86_check_avx_upper_register.
937 (ix86_check_avx256_stores): Changed to ...
938 (ix86_check_avx_upper_stores): ... this. Changed
939 ix86_check_avx256_register to ix86_check_avx_upper_register.
940 (ix86_avx_u128_mode_after): Changed
941 avx_reg256_found to avx_upper_reg_found. Changed
942 ix86_check_avx256_stores to ix86_check_avx_upper_stores.
943 (ix86_avx_u128_mode_entry): Changed
944 ix86_check_avx256_register to ix86_check_avx_upper_register.
945 (ix86_avx_u128_mode_exit): Ditto.
946 (ix86_option_override_internal): Set MASK_VZEROUPPER if
947 neither -mzeroupper nor -mno-zeroupper is used and
948 TARGET_EMIT_VZEROUPPER is set.
949 * config/i386/i386.h: (host_detect_local_cpu): New define.
950 (TARGET_EMIT_VZEROUPPER): New.
951 * config/i386/x86-tune.def: Add X86_TUNE_EMIT_VZEROUPPER
953 2017-12-01 Segher Boessenkool <segher@kernel.crashing.org>
955 Backport from mainline
956 2017-11-28 Segher Boessenkool <segher@kernel.crashing.org>
959 * config/rs6000/rs6000.c (rs6000_rtx_costs): Do not handle
960 TARGET_ISEL && !TARGET_MFCRF differently. Simplify code.
962 2017-11-30 Jim Wilson <jimw@sifive.com>
964 Backport from mainline
965 2017-11-30 Jim Wilson <jimw@sifive.com>
966 * doc/invoke.texi (RISC-V Options): Delete nonexistent -mmemcpy and
967 -mno-memcpy options. For -mplt, -mfdiv, -mdiv, -msave-restore, and
968 -mstrict-align, add info on default value. Delete redundant lines for
969 -mabi. Add missing -mexplicit-relocs docs.
971 Backport from mainline
972 2017-11-01 Palmer Dabbelt <palmer@dabbelt.com>
973 * doc/invoke.texi (RISC-V Options): Use "@minus{}2 GB", not "-2 GB".
974 * doc/invoke.texi (RISC-V Options): Explicitly name the medlow
975 and medany code models, and describe what they do.
977 2017-10-27 Palmer Dabbelt <palmer@dabbelt.com>
979 * doc/invoke.texi (RISC-V) <-mabi>: Correct and improve.
981 2017-11-29 Martin Jambor <mjambor@suse.cz>
984 * tree.c (expr_type_first_operand_type_p): New function.
985 * tree.h (expr_type_first_operand_type_p): Declare it.
986 * ipa-cp.c (ipa_get_jf_pass_through_result): Use it.
988 2017-11-29 Daniel Cederman <cederman@gaisler.com>
990 * config/sparc/sparc.c (sparc_do_work_around_errata): Treat the
991 movsi_pic_gotdata_op instruction as a load for the UT699 errata
994 2017-11-29 Martin Aberg <maberg@gaisler.com>
996 * config/sparc/sparc.md (divdf3_fix): Add NOP and adjust length
997 to prevent b2bst errata sequence.
998 (sqrtdf2_fix): Likewise.
1000 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1002 * config/sparc/sparc.c (fpop_reg_depend_p): New function.
1003 (div_sqrt_insn_p): New function.
1004 (sparc_do_work_around_errata): Insert NOP instructions to
1005 prevent sequences that could trigger the TN-0013 errata for
1006 certain LEON3 processors.
1007 (pass_work_around_errata::gate): Also test sparc_fix_lost_divsqrt.
1008 (sparc_option_override): Set sparc_fix_lost_divsqrt appropriately.
1009 * config/sparc/sparc.md (fix_lost_divsqrt): New attribute.
1010 (in_branch_delay): Prevent div and sqrt in delay slot if
1012 * config/sparc/sparc.opt (sparc_fix_lost_divsqrt): New variable.
1014 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1016 * config/sparc/sparc.c (atomic_insn_p): New function.
1017 (sparc_do_work_around_errata): Insert NOP instructions to
1018 prevent sequences that could trigger the TN-0010 errata for
1020 * config/sparc/sync.md (atomic_compare_and_swap_leon3_1): Make
1021 instruction referable in atomic_insns_p.
1023 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1025 * config/sparc/sync.md (swapsi): 16-byte align if sparc_fix_gr712rc.
1026 (atomic_compare_and_swap_leon3_1): Likewise.
1029 2017-11-29 Daniel Cederman <cederman@gaisler.com>
1031 * config/sparc/sparc.c (fpop_insn_p): New function.
1032 (sparc_do_work_around_errata): Insert NOP instructions to
1033 prevent sequences that could trigger the TN-0012 errata for
1035 (pass_work_around_errata::gate): Also test sparc_fix_gr712rc.
1036 * config/sparc/sparc.md (fix_gr712rc): New attribute.
1037 (in_branch_annul_delay): Prevent floating-point instructions
1038 in delay slot of annulled integer branch.
1040 2017-11-28 Jim Wilson <jimw@sifive.com>
1042 Backport from mainline
1043 2017-11-04 Andrew Waterman <andrew@sifive.com>
1045 * config/riscv/riscv.c (riscv_option_override): Conditionally set
1046 TARGET_STRICT_ALIGN based upon -mtune argument.
1048 Backport from mainline
1049 2017-05-04 Andrew Waterman <andrew@sifive.com>
1051 * config/riscv/riscv.opt (mstrict-align): New option.
1052 * config/riscv/riscv.h (STRICT_ALIGNMENT): Use it. Update comment.
1053 (SLOW_UNALIGNED_ACCESS): Define.
1054 (riscv_slow_unaligned_access): Declare.
1055 * config/riscv/riscv.c (riscv_tune_info): Add slow_unaligned_access
1057 (riscv_slow_unaligned_access): New variable.
1058 (rocket_tune_info): Set slow_unaligned_access to true.
1059 (optimize_size_tune_info): Set slow_unaligned_access to false.
1060 (riscv_cpu_info_table): Add entry for optimize_size_tune_info.
1061 (riscv_valid_lo_sum_p): Use TARGET_STRICT_ALIGN.
1062 (riscv_option_override): Set riscv_slow_unaligned_access.
1063 * doc/invoke.texi: Add -mstrict-align to RISC-V.
1065 Backport from mainline
1066 2017-11-07 Michael Clark <michaeljclark@mac.com>
1068 * config/riscv/linux.h (MUSL_ABI_SUFFIX): New define.
1069 (MUSL_DYNAMIC_LINKER): Likewise.
1071 2017-11-27 Jim Wilson <jimw@sifive.com>
1073 Backport from mainline
1074 2017-10-25 Palmer Dabbelt <palmer@dabbelt.com>
1076 * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Define.
1077 * config/riscv/pic.md (local_pic_load): Rename to local_pic_load_s,
1078 mark as a sign-extending load.
1079 (local_pic_load_u): Define.
1081 Backport from mainline
1082 2017-11-03 Kito Cheng <kito.cheng@gmail.com>
1084 * config/riscv/riscv.c (riscv_legitimize_move): Handle
1085 non-legitimate address.
1087 2017-11-24 Segher Boessenkool <segher@kernel.crashing.org>
1089 Backport from mainline
1090 2017-11-17 Segher Boessenkool <segher@kernel.crashing.org>
1092 PR rtl-optimization/82621
1093 * combine.c (try_combine): Do not split PARALLELs of two SETs if the
1094 dest of one of those SETs is unused.
1096 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org>
1098 Backport from mainline
1099 2017-11-23 Oleg Endo <olegendo@gcc.gnu.org>
1102 * config/sh/sh.md (udivsi3, divsi3, sibcall_value_pcrel,
1103 sibcall_value_pcrel_fdpic): Use local variable instead of
1105 (calli_tbr_rel): Add missing operand 2.
1106 (call_valuei_tbr_rel): Add missing operand 3.
1108 2017-11-22 Richard Biener <rguenther@suse.de>
1111 2017-11-21 Martin Liska <mliska@suse.cz>
1113 Backport from mainline
1114 2017-11-21 Martin Liska <mliska@suse.cz>
1116 PR rtl-optimization/82044
1117 PR tree-optimization/82042
1118 * dse.c (check_mem_read_rtx): Check for overflow.
1120 2017-11-21 Martin Liska <mliska@suse.cz>
1122 Backport from mainline
1123 2017-10-27 Martin Liska <mliska@suse.cz>
1125 PR gcov-profile/82457
1126 * doc/invoke.texi: Document that one needs a non-strict ISO mode
1127 for fork-like functions to be properly instrumented.
1129 2017-11-21 Pat Haugen <pthaugen@us.ibm.com>
1131 Backport from mainline
1132 2017-11-21 Pat Haugen <pthaugen@us.ibm.com>
1134 * config/rs6000/ppc-asm.h (f50, vs50): Fix values.
1136 2017-11-21 Thomas Preud'homme <thomas.preudhomme@arm.com>
1138 Backport from mainline
1139 2017-11-09 Thomas Preud'homme <thomas.preudhomme@arm.com>
1141 * config/arm/arm.c (output_return_instruction): Add comments to
1142 indicate requirement for cmse_nonsecure_entry return to account
1143 for the size of clearing instruction output here.
1144 (thumb_exit): Likewise.
1145 * config/arm/thumb2.md (thumb2_cmse_entry_return): Fix length for
1146 return in hardfloat mode.
1148 2017-11-21 Martin Liska <mliska@suse.cz>
1150 Backport from mainline
1151 2017-11-21 Martin Liska <mliska@suse.cz>
1153 PR rtl-optimization/82044
1154 PR tree-optimization/82042
1155 * dse.c (check_mem_read_rtx): Check for overflow.
1157 2017-11-21 Martin Liska <mliska@suse.cz>
1159 Backport from mainline
1160 2017-11-08 Martin Liska <mliska@suse.cz>
1162 * gimplify.c (expand_FALLTHROUGH_r): Simplify usage
1163 of gimple_call_internal_p.
1165 2017-11-21 Martin Liska <mliska@suse.cz>
1167 Backport from mainline
1168 2017-11-08 Martin Liska <mliska@suse.cz>
1171 * gimplify.c (expand_FALLTHROUGH_r): Skip IFN_ASAN_MARK.
1173 2017-11-21 Martin Liska <mliska@suse.cz>
1175 Backport from mainline
1176 2017-10-31 Martin Liska <mliska@suse.cz>
1178 PR gcov-profile/82633
1179 * doc/gcov.texi: Document -fkeep-{static,inline}-functions and
1180 their interaction with GCOV infrastructure.
1182 2017-11-21 Martin Liska <mliska@suse.cz>
1184 Backport from mainline
1185 2017-10-19 Martin Liska <mliska@suse.cz>
1188 * file-find.c (remove_prefix): Remove.
1189 * file-find.h (remove_prefix): Likewise.
1190 * gcc-ar.c: Remove smartness of lookup.
1192 2017-11-21 Martin Liska <mliska@suse.cz>
1194 Backport from mainline
1195 2017-10-18 Martin Liska <mliska@suse.cz>
1198 * asan.c (asan_expand_poison_ifn): Do not put gimple stmt
1199 on an abnormal edge.
1201 2017-11-21 Martin Liska <mliska@suse.cz>
1203 Backport from mainline
1204 2017-10-11 Martin Liska <mliska@suse.cz>
1206 * print-rtl.c (print_insn): Move declaration of idbuf
1207 to same scope as name.
1209 2017-11-21 Claudiu Zissulescu <claziss@synopsys.com>
1211 Backport from mainline
1212 2017-11-17 Vineet Gupta <vgupta@synopsys.com>
1214 * config/arc/linux.h: GLIBC_DYNAMIC_LINKER update per glibc
1215 upstreaming review comments.
1217 2017-11-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1219 Backport from mainline
1220 2017-11-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1222 * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit since
1223 Solaris 11. Update comment.
1224 * configure.ac (gcc_cv_ld_pid): Adapt comment for Solaris 12
1226 * config/sol2.h (STARTFILE_SPEC): Likewise.
1227 * configure: Regenerate.
1229 2017-11-20 Segher Boessenkool <segher@kernel.crashing.org>
1231 Backport from mainline
1232 2017-09-20 Segher Boessenkool <segher@kernel.crashing.org>
1235 * config/rs6000/rs6000.md (stack_restore_tie): Store to a scratch
1236 address instead of to r1 and r11.
1238 2017-11-17 Vineet Gupta <vgupta@synopsys.com>
1240 * config.gcc: Remove uclibc from arc target spec.
1242 2017-11-16 Uros Bizjak <ubizjak@gmail.com>
1244 * config/i386/i386.c (x86_print_call_or_nop): Emit 5 byte nop
1245 explicitly as a stream of bytes.
1247 2017-11-15 Richard Biener <rguenther@suse.de>
1249 PR tree-optimization/82985
1250 Backport from mainline
1251 2017-08-15 Richard Biener <rguenther@suse.de>
1253 PR tree-optimization/81790
1254 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Handle both
1255 CONSTRUCTORs from simplifying and VN.
1257 2017-11-15 Pierre-Marie de Rodat <derodat@adacore.com>
1259 Backport from mainline
1260 2017-09-25 Pierre-Marie de Rodat <derodat@adacore.com>
1263 * dwarf2out.c (dwarf2out_early_global_decl): Call dwarf2out_decl
1264 on the FUNCTION_DECL function context if it has a DIE that is a
1267 2017-11-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1269 Backport from mainline
1270 2017-10-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1272 * configure.ac (gcc_cv_as_ix86_xbrace_comment): Check if assembler
1273 supports -xbrace_comment option.
1274 * configure: Regenerate.
1275 * config.in: Regenerate.
1276 * config/i386/sol2.h (ASM_XBRACE_COMMENT_SPEC): Define.
1277 (ASM_CPU_SPEC): Use it.
1279 2017-11-09 Segher Boessenkool <segher@kernel.crashing.org>
1281 Backport from mainline
1282 2017-11-01 Segher Boessenkool <segher@kernel.crashing.org>
1284 PR rtl-optimization/64682
1285 PR rtl-optimization/69567
1286 PR rtl-optimization/69737
1287 PR rtl-optimization/82683
1288 * combine.c (distribute_notes) <REG_DEAD>: If the new I2 sets the same
1289 register mentioned in the note, drop the note, unless it came from I3,
1290 in which case it should go to I3 again.
1292 2017-11-07 Eric Botcazou <ebotcazou@adacore.com>
1294 Backport from mainline
1295 2017-10-31 Matthew Fortune <matthew.fortune@imgtec.com>
1296 Eric Botcazou <ebotcazou@adacore.com>
1298 PR rtl-optimization/81803
1299 * lra-constraints.c (curr_insn_transform): Also reload the whole
1300 register for a strict subreg no wider than a word if this is for
1301 a WORD_REGISTER_OPERATIONS target.
1303 2017-11-03 Wilco Dijkstra <wdijkstr@arm.com>
1306 * config/aarch64/aarch64.c (aarch64_frame_pointer_required)
1307 Check special value of flag_omit_frame_pointer.
1308 (aarch64_can_eliminate): Likewise.
1309 (aarch64_override_options_after_change_1): Simplify handling of
1310 -fomit-frame-pointer and -fomit-leaf-frame-pointer.
1312 2017-11-01 Martin Jambor <mjambor@suse.cz>
1315 * gimple-fold.c (gimple_get_virt_method_for_vtable): Remove assert.
1317 2017-10-31 Uros Bizjak <ubizjak@gmail.com>
1320 * config/alpha/sync.md (fetchop_constr) <and>: Change to "rINM".
1322 2017-10-27 Jakub Jelinek <jakub@redhat.com>
1324 Backported from mainline
1325 2017-10-12 Jakub Jelinek <jakub@redhat.com>
1328 * expr.c (store_field): Don't optimize away bitsize == 0 store
1329 from CALL_EXPR with addressable return type.
1331 2017-09-21 Jakub Jelinek <jakub@redhat.com>
1334 * tree-inline.c (expand_call_inline): Emit clobber stmts for
1335 VAR_DECLs to which addressable non-volatile parameters are mapped
1336 and for id->retvar after the return value assignment, though
1337 for -fsanitize=kernel-address only. Clear id->retval and id->retbnd
1340 2017-09-18 Jakub Jelinek <jakub@redhat.com>
1343 * doc/extend.texi: Add @findex entry for __builtin_shuffle.
1345 2017-09-15 Jakub Jelinek <jakub@redhat.com>
1347 PR rtl-optimization/82192
1348 * combine.c (make_extraction): Don't look through non-paradoxical
1349 SUBREGs or TRUNCATE if pos + len is or might be bigger than
1352 2017-10-27 Jakub Jelinek <jakub@redhat.com>
1355 * config/i386/i386-protos.h (maybe_get_pool_constant): Removed.
1356 * config/i386/i386.c (maybe_get_pool_constant): Removed.
1357 (ix86_split_to_parts): Use avoid_constant_pool_reference instead of
1358 maybe_get_pool_constant.
1359 * config/i386/predicates.md (zero_extended_scalar_load_operand):
1362 2017-10-24 Qing Zhao <qing.zhao@oracle.com>
1363 Wilco Dijkstra <wilco.dijkstra@arm.com>
1365 * builtins.c (expand_builtin_update_setjmp_buf): Add a
1366 converstion to Pmode from the buf_addr.
1368 2017-10-20 Richard Biener <rguenther@suse.de>
1370 PR tree-optimization/82603
1371 * tree-if-conv.c (predicate_mem_writes): Make sure to only
1372 remove false predicated stores.
1374 2017-10-20 Richard Biener <rguenther@suse.de>
1376 Backport from mainline
1377 2017-10-06 Richard Biener <rguenther@suse.de>
1379 PR tree-optimization/82436
1380 * tree-vect-slp.c (vect_supported_load_permutation_p): More
1381 conservatively choose the vectorization factor when checking
1382 whether we can perform the required load permutation.
1383 (vect_transform_slp_perm_load): Assert when we may not fail.
1385 2017-10-19 Richard Earnshaw <rearnsha@arm.com>
1388 * config/arm/arm.c (align_ok_ldrd_strd): New function.
1389 (mem_ok_for_ldrd_strd): New parameter align. Extract the alignment of
1391 (gen_operands_ldrd_strd): Validate the alignment of the accesses.
1393 2017-10-18 Segher Boessenkool <segher@kernel.crashing.org>
1395 PR rtl-optimization/82602
1396 * ira.c (rtx_moveable_p): Return false for volatile asm.
1398 2017-10-18 Vladimir Makarov <vmakarov@redhat.com>
1401 * lra-constraints.c (curr_insn_transform): Use non-input operand
1402 instead of output one for matched reload.
1404 2017-10-17 Jakub Jelinek <jakub@redhat.com>
1406 PR tree-optimization/82549
1407 * fold-const.c (optimize_bit_field_compare, fold_truth_andor_1):
1408 Formatting fixes. Instead of calling make_bit_field_ref with negative
1411 2017-10-13 Jakub Jelinek <jakub@redhat.com>
1414 * internal-fn.c (expand_mul_overflow): If both operands have
1415 the same highpart of -1 or 0 and the topmost bit of lowpart
1416 is different, overflow is if res <= 0 rather than res < 0.
1419 * config/i386/i386.md (addqi_ext_1, andqi_ext_1,
1420 *andqi_ext_1_cc, *<code>qi_ext_1, *xorqi_ext_1_cc): Change
1421 =Q constraints to +Q and into insn condition add check
1422 that operands[0] and operands[1] are equal.
1423 (*addqi_ext_2, *andqi_ext_2, *<code>qi_ext_2): Change
1424 =Q constraints to +Q and into insn condition add check
1425 that operands[0] is equal to either operands[1] or operands[2].
1427 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
1429 Backported from mainline r253602
1430 2017-10-10 Andreas Tobler <andreast@gcc.gnu.org>
1432 * config.gcc: (armv7*-*-freebsd*): New target.
1433 (armv6*-*-freebsd*): Remove obsolete TARGET_FREEBSD_ARMv6 define.
1435 2017-10-06 Christophe Lyon <christophe.lyon@linaro.org>
1437 Backport from mainline r253242.
1438 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
1441 * config/aarch64/aarch64.c
1442 (aarch64_builtin_support_vector_misalignment): Always return false
1443 when misalignment is unknown.
1445 2017-10-04 Jason Merrill <jason@redhat.com>
1447 PR c++/82406 - C++ error with noexcept function type
1448 PR c++/70029 - ICE with ref-qualifier and -flto
1449 * langhooks.h (struct lang_hooks_for_types): Add
1450 copy_lang_qualifiers.
1451 * attribs.c (build_type_attribute_qual_variant): Use it.
1452 * langhooks-def.h (LANG_HOOKS_COPY_LANG_QUALIFIERS): Default to
1454 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use it.
1455 * tree.c (verify_type): Re-enable TYPE_CANONICAL main variant check.
1457 2017-10-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1459 Backport from mainline
1460 2017-09-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1462 PR tree-optimization/82337
1463 * gimple-ssa-strength-reduction.c (find_phi_def): Don't record a
1464 phi definition if the PHI result appears in an abnormal PHI.
1465 (find_basis_for_base_expr): Don't record a basis if the LHS of the
1466 basis appears in an abnormal PHI.
1468 2017-09-30 Jakub Jelinek <jakub@redhat.com>
1470 * config/i386/i386.c (ix86_split_idivmod): Use mode instead of
1471 always SImode for DIV and MOD in REG_EQUAL notes.
1473 Backported from mainline
1474 2017-09-27 Jakub Jelinek <jakub@redhat.com>
1477 * gimplify.c (gimplify_modify_expr): Don't optimize away zero sized
1478 lhs from calls if the lhs has addressable type.
1480 2017-09-29 Krister Walfridsson <krister.walfridsson@gmail.com>
1482 Backport from mainline
1483 2017-06-29 Maya Rashish <coypu@sdf.org>
1486 * config/netbsd.h (NETBSD_LIB_SPEC): Add -lc when creating shared
1489 2017-09-29 Krister Walfridsson <krister.walfridsson@gmail.com>
1491 Backport from mainline
1492 2017-09-26 Krister Walfridsson <krister.walfridsson@gmail.com>
1495 * gcc/config/netbsd-protos.h: New file.
1496 * gcc/config/netbsd.c: New file.
1497 * gcc/config/netbsd.h (SUBTARGET_INIT_BUILTINS): Define.
1498 * gcc/config/t-netbsd: New file.
1499 * gcc/config.gcc (tm_p_file): Add netbsd-protos.h.
1500 (tmake_file) Add t-netbsd.
1501 (extra_objs) Add netbsd.o.
1503 2017-09-28 Krister Walfridsson <krister.walfridsson@gmail.com>
1505 Backport from mainline
1506 2017-05-14 Krister Walfridsson <krister.walfridsson@gmail.com>
1509 * config/netbsd.h (NETBSD_LIBGCC_SPEC): Always add -lgcc.
1511 2017-09-27 Christophe Lyon <christophe.lyon@linaro.org>
1513 Backport from trunk r249639.
1514 2017-06-26 Christophe Lyon <christophe.lyon@linaro.org>
1516 * doc/sourcebuild.texi (ARM-specific attributes): Document new
1517 arm_neon_ok_no_float_abi effective target.
1519 2017-09-26 Richard Biener <rguenther@suse.de>
1521 Backport from mainline
1522 2017-09-19 Richard Biener <rguenther@suse.de>
1524 PR tree-optimization/82244
1525 * tree-vrp.c (remove_range_assertions): Do not propagate
1526 a constant to abnormals but replace the assert with a copy.
1528 2017-09-21 Richard Biener <rguenther@suse.de>
1530 PR tree-optimization/82276
1531 PR tree-optimization/82244
1532 * tree-vrp.c (build_assert_expr_for): Set
1533 SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the variable we assert on
1535 (remove_range_assertions): Revert earlier change.
1537 2017-09-20 Richard Biener <rguenther@suse.de>
1539 PR tree-optimization/82264
1540 * tree-ssa-sccvn.c (vn_phi_eq): Use safe_dyn_cast to check
1542 (vn_phi_lookup): Likewise.
1543 (vn_phi_insert): Likewise.
1544 * is-a.h (safe_dyn_cast): New.
1546 2017-09-25 Richard Biener <rguenther@suse.de>
1548 PR tree-optimization/82285
1549 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle
1552 2017-09-22 Richard Biener <rguenther@suse.de>
1554 PR tree-optimization/82291
1555 * tree-if-conv.c (predicate_mem_writes): Make sure to
1556 remove writes in blocks predicated with false.
1558 2017-09-21 Alan Modra <amodra@gmail.com>
1561 * gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
1562 stack_pointer_rtx for count 0. Update comments. Break up
1563 large rtl expression.
1565 2017-09-21 Wilco Dijkstra <wdijkstr@arm.com>
1568 * config/aarch64/aarch64.h (LIBGCC2_UNWIND_ATTRIBUTE): Define.
1570 2017-09-19 Uros Bizjak <ubizjak@gmail.com>
1572 * config/i386/i386.c (fold_builtin_cpu): Add M_AMDFAM17H
1573 to processor_model and "amdfam17h" to arch_names_table.
1574 * doc/extend.texi (__builtin_cpu_is): Document amdfam17h CPU name.
1576 2017-09-19 Martin Liska <mliska@suse.cz>
1579 * config/i386/i386.c (sorted_attr_string): Skip empty strings.
1581 2017-09-19 Martin Liska <mliska@suse.cz>
1584 2017-08-10 Martin Liska <mliska@suse.cz>
1587 * c-attribs.c (handle_target_attribute):
1588 Report warning for an empty string argument of target attribute.
1590 2017-09-18 Richard Biener <rguenther@suse.de>
1592 Backport from mainline
1593 2017-09-04 Richard Biener <rguenther@suse.de>
1595 PR tree-optimization/82084
1596 * fold-const.h (can_native_encode_string_p): Declare.
1597 * fold-const.c (can_native_encode_string_p): Factor out from ...
1598 (native_encode_string): ... here.
1599 * tree-vect-stmts.c (vectorizable_store): Call it to avoid
1600 vectorizing stores from constants we later cannot handle.
1602 2017-09-06 Richard Biener <rguenther@suse.de>
1604 PR tree-optimization/82108
1605 * tree-vect-stmts.c (vectorizable_load): Fix pointer adjustment
1606 for gap in the non-permutation SLP case.
1608 2017-09-15 Jakub Jelinek <jakub@redhat.com>
1610 Backported from mainline
1611 2017-09-14 Jakub Jelinek <jakub@redhat.com>
1614 * cfgbuild.c (find_bb_boundaries): Ignore debug insns in decisions
1615 if and where to split a bb, except for splitting before debug insn
1616 sequences followed by non-label real insn. Delete debug insns
1617 in between basic blocks.
1619 2017-09-12 Jakub Jelinek <jakub@redhat.com>
1622 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
1623 ALTIVEC_BUILTIN_VEC_LD if arg1 has array type call default_conversion
1624 on it early, rather than manual conversion late. For
1625 ALTIVEC_BUILTIN_VEC_ST if arg2 has array type call default_conversion
1626 instead of performing manual conversion.
1628 2017-09-15 Martin Liska <mliska@suse.cz>
1630 Backport from mainline
1631 2017-09-14 Martin Liska <mliska@suse.cz>
1633 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
1634 Add proper printf format.
1636 2017-09-15 Martin Liska <mliska@suse.cz>
1638 Backport from mainline
1639 2017-08-30 Martin Liska <mliska@suse.cz>
1642 * ipa-icf-gimple.c (func_checker::compare_tree_list_operand):
1644 (func_checker::compare_asm_inputs_outputs): ... this function.
1645 (func_checker::compare_gimple_asm): Use the function to compare
1646 also ASM constrains.
1647 * ipa-icf-gimple.h: Rename the function.
1649 2017-09-15 Martin Liska <mliska@suse.cz>
1651 Backport from mainline
1652 2017-08-29 Martin Liska <mliska@suse.cz>
1655 * gcc.c (driver_handle_option): Add new argument.
1656 * opts-common.c (handle_option): Pass
1657 target_option_override_hook.
1658 * opts-global.c (lang_handle_option): Add new option.
1659 (set_default_handlers): Add new argument.
1660 (decode_options): Likewise.
1661 * opts.c (target_handle_option): Likewise.
1662 (common_handle_option): Call target_option_override_hook.
1663 * opts.h (struct cl_option_handler_func): Add hook for
1664 target option override.
1665 (struct cl_option_handlers): Likewise.
1666 (set_default_handlers): Add new argument.
1667 (decode_options): Likewise.
1668 (common_handle_option): Likewise.
1669 (target_handle_option): Likewise.
1670 * toplev.c (toplev::main): Pass targetm.target_option.override
1673 2017-09-15 Martin Liska <mliska@suse.cz>
1675 Backport from mainline
1676 2017-08-10 Martin Liska <mliska@suse.cz>
1679 * c-attribs.c (handle_target_attribute):
1680 Report warning for an empty string argument of target attribute.
1682 2017-09-15 Martin Liska <mliska@suse.cz>
1684 Backport from mainline
1685 2017-08-08 Martin Liska <mliska@suse.cz>
1688 * ipa-icf-gimple.c (func_checker::compare_cst_or_decl): Consider
1689 LABEL_DECLs that can be from a different function.
1691 2017-09-15 Martin Liska <mliska@suse.cz>
1693 Backport from mainline
1694 2017-06-28 Martin Liska <mliska@suse.cz>
1697 * ipa-visibility.c (non_local_p): Handle visibility.
1699 2017-09-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1701 Backport from mainline
1702 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1705 * config/rs6000/altivec.md (altivec_vsum2sws): Convert from a
1706 define_insn to a define_expand.
1707 (altivec_vsum2sws_direct): New define_insn.
1708 (altivec_vsumsws): Convert from a define_insn to a define_expand.
1710 2017-09-11 Max Filippov <jcmvbkbc@gmail.com>
1712 Backport from mainline
1714 * config/xtensa/xtensa.c (xtensa_mem_offset): Check that both
1715 words of DImode object are reachable by xtensa_uimm8x4 access.
1717 2017-09-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1719 Backport from mainline
1720 2017-05-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1723 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1724 Account for direct move costs for vec_construct of integer
1727 Backport from mainline
1728 2017-07-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1731 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost):
1732 Reduce cost estimate for direct moves.
1734 2017-09-08 Eric Botcazou <ebotcazou@adacore.com>
1737 * config/sparc/sparc.md (mulsi3): Rename into *mulsi3_sp32.
1738 (*mulsi3_sp64): New instruction.
1739 (mulsi3): New expander.
1741 2017-09-07 Jakub Jelinek <jakub@redhat.com>
1743 Backported from mainline
1744 2017-09-05 Jakub Jelinek <jakub@redhat.com>
1747 * omp-low.c (lower_omp_for): Recompute tree invariant if
1748 gimple_omp_for_initial/final is ADDR_EXPR.
1751 * omp-expand.c (expand_omp_simd): Force second operands of COND_EXPR
1752 into gimple val before gimplification fo the COND_EXPR.
1754 2017-09-04 Jakub Jelinek <jakub@redhat.com>
1756 * lra-remat.c (reg_overlap_for_remat_p): Fix a pasto.
1758 2017-09-01 Jakub Jelinek <jakub@redhat.com>
1761 * asan.c (create_odr_indicator): Strip name encoding from assembler
1762 name before appending it after __odr_asan_.
1764 2017-08-09 Jakub Jelinek <jakub@redhat.com>
1767 * omp-low.c (omp_copy_decl): Don't remap FORCED_LABEL or DECL_NONLOCAL
1769 * tree-cfg.c (move_stmt_op): Don't adjust DECL_CONTEXT of FORCED_LABEL
1770 or DECL_NONLOCAL labels.
1771 (move_stmt_r) <case GIMPLE_LABEL>: Adjust DECL_CONTEXT of FORCED_LABEL
1772 or DECL_NONLOCAL labels here.
1774 2017-08-03 Jakub Jelinek <jakub@redhat.com>
1777 * bb-reorder.c (pass_partition_blocks::execute): Return TODO_df_finish
1778 after setting changeable df flags.
1781 * calls.c (alloc_max_size): Use HOST_WIDE_INT_UC (10??)
1782 instead of 10??LU, perform unit multiplication in wide_int,
1783 don't change alloc_object_size_limit if the limit is larger
1787 * omp-low.c (diagnose_sb_0): Handle flag_openmp_simd like flag_openmp.
1788 (pass_diagnose_omp_blocks::gate): Enable also for flag_openmp_simd.
1790 2017-09-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1792 Backport from mainline:
1793 2017-08-30 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1795 PR tree-optimization/81987
1796 * gimple-ssa-strength-reduction.c (insert_initializers): Don't
1797 insert an initializer in a location not dominated by the stride
1800 2017-09-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1802 Backport from mainline
1803 2017-08-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1804 Jakub Jelinek <jakub@redhat.com>
1805 Richard Biener <rguenther@suse.de>
1807 PR tree-optimization/81503
1808 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Ensure
1809 folded constant fits in the target type; reorder tests for clarity.
1811 2017-09-05 Pierre-Marie de Rodat <derodat@adacore.com>
1815 * dwarf2out.c (modified_type_die): For C typedef types that have
1816 an ultimate origin, process the ultimate origin instead of the
1818 (gen_typedef_die): Assert that input DECLs have no ultimate
1820 (gen_type_die_with_usage): For typedef variants that have an
1821 ultimate origin, just call gen_decl_die on the original DECL.
1822 (process_scope_var): Avoid creating DIEs for local typedefs and
1823 concrete static variables.
1825 2017-08-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1827 Backport from mainline
1828 2017-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1831 * config/rs6000/rs6000.c (find_alignment_op): Add reference
1832 parameter and_insn and return it.
1833 (recombine_lvx_pattern): Insert a copy to ensure availability of
1834 the base register of the copied masking operation at the point of
1835 the instruction replacement.
1836 (recombine_stvx_pattern): Likewise.
1838 2017-08-29 Michael Meissner <meissner@linux.vnet.ibm.com>
1840 Back port from trunk
1841 2017-08-07 Michael Meissner <meissner@linux.vnet.ibm.com>
1844 * config/rs6000/vsx.md (vsx_concat_<mode>_1): New combiner insns
1845 to recognize inserting into a vector from a double word element
1846 that was extracted from another vector, and eliminate extra
1847 XXPERMDI instructions.
1848 (vsx_concat_<mode>_2): Likewise.
1849 (vsx_concat_<mode>_3): Likewise.
1850 (vsx_set_<mode>, VSX_D): Rewrite vector set in terms of vector
1851 concat to allow optimizing inserts from previous extracts.
1853 2017-08-29 Alan Modra <amodra@gmail.com>
1856 2017-08-12 Alan Modra <amodra@gmail.com>
1859 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Upgrade to
1860 match gnu-user.h startfile.
1861 (ENDFILE_LINUX_SPEC): Similarly.
1863 2017-08-08 Alan Modra <amodra@gmail.com>
1864 H.J. Lu <hongjiu.lu@intel.com>
1868 * gcc.c (NO_PIE_SPEC): Delete.
1869 (PIE_SPEC): Define as !no-pie/pie. Move static|shared|r
1871 (LINK_PIE_SPEC): ..to here.
1872 (LINK_COMMAND_SPEC): Support -no-pie.
1873 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Correct
1874 chain of crtbegin*.o selection, update for PIE_SPEC changes and
1876 (GNU_USER_TARGET_ENDFILE_SPEC): Similarly.
1877 * config/sol2.h (STARTFILE_CRTBEGIN_SPEC): Similarly.
1878 (ENDFILE_CRTEND_SPEC): Similarly.
1880 2017-08-29 Richard Biener <rguenther@suse.de>
1882 Backport from mainline
1883 2017-08-28 Richard Biener <rguenther@suse.de>
1885 PR tree-optimization/81977
1886 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix look through
1889 2017-08-28 Richard Biener <rguenther@suse.de>
1892 * dwarf2out.c (gen_remaining_tmpl_value_param_die_attributes):
1893 Do nothing for removed DIEs.
1895 2017-08-28 Richard Biener <rguenther@suse.de>
1897 Backport from mainline
1898 2017-06-14 Richard Biener <rguenther@suse.de>
1901 * fold-const.c (split_tree): Drop TREE_OVERFLOW flag from
1903 (fold_binary_loc): When associating do not treat pre-existing
1904 TREE_OVERFLOW on literal constants as a reason to allow
1905 TREE_OVERFLOW on associated literal constants.
1907 2017-06-13 Richard Biener <rguenther@suse.de>
1910 * fold-const.c (extract_muldiv_1): Remove bogus distribution
1911 case of C * (x * C2 + C3).
1912 (fold_addr_of_array_ref_difference): Properly fold index difference.
1914 2017-06-07 Marek Polacek <polacek@redhat.com>
1917 * fold-const.c (extract_muldiv_1) <case MINUS_EXPR>: Add
1918 TYPE_OVERFLOW_WRAPS check.
1920 2017-08-28 Richard Biener <rguenther@suse.de>
1922 Backport from mainline
1923 2017-08-21 Richard Biener <rguenther@suse.de>
1926 * tree-ssa-alias.c (stmt_kills_ref_p): Handle array accesses
1927 at struct end conservatively when comparing common bases.
1929 2017-05-04 Richard Biener <rguenther@suse.de>
1931 * tree.c (array_at_struct_end_p): Handle arrays at struct
1932 end with flexarrays more conservatively. Refactor and treat
1933 arrays of arrays or aggregates more strict. Fix
1934 VIEW_CONVERT_EXPR handling. Remove allow_compref argument.
1935 * tree.h (array_at_struct_end_p): Adjust prototype.
1936 * gimple-fold.c (get_range_strlen): Likewise.
1937 * tree-chkp.c (chkp_may_narrow_to_field): Likewise.
1939 2017-08-28 Richard Biener <rguenther@suse.de>
1941 Backport from mainline
1942 2017-08-01 Richard Biener <rguenther@suse.de>
1944 PR tree-optimization/81181
1945 * tree-ssa-pre.c (compute_antic_aux): Defer clean() to ...
1946 (compute_antic): ... end of iteration here.
1948 2017-08-08 Richard Biener <rguenther@suse.de>
1950 PR tree-optimization/81723
1951 * tree-vect-slp.c (struct bst_traits): New hash traits.
1952 (bst_fail): New global.
1953 (vect_build_slp_tree_2): New worker, split out from ...
1954 (vect_build_slp_tree): ... this now wrapping it with using
1955 bst_fail set to cache SLP tree build fails. Properly handle
1957 (vect_analyze_slp_instance): Allocate and free bst_fail.
1959 2017-08-24 Richard Biener <rguenther@suse.de>
1962 * config/i386/i386.c: Include symbol-summary.h, ipa-prop.h
1964 (ix86_can_inline_p): When ix86_fpmath flags do not match
1965 check whether the callee uses FP math at all.
1967 2017-08-23 Peter Bergner <bergner@vnet.ibm.com>
1969 Backport from mainline
1970 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
1973 * config/rs6000/vsx.md (*vsx_le_permute_<mode>): Add support for
1974 operands residing in integer registers.
1975 (*vsx_le_perm_load_<mode>): Likewise.
1976 (*vsx_le_perm_store_<mode>): Likewise.
1977 (define_peephole2): Add peepholes to optimize the above.
1979 2017-08-22 Peter Bergner <bergner@vnet.ibm.com>
1981 Backport from mainline
1982 2017-08-17 Peter Bergner <bergner@vnet.ibm.com>
1985 * config/rs6000/rs6000.c (rs6000_activate_target_options): New function.
1986 (rs6000_set_current_function): Rewrite function to use it.
1988 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
1990 Backport from mainline
1991 2017-08-22 Sebastian Huber <sebastian.huber@embedded-brains.de>
1993 * config.gcc (powerpc-*-rtems*): Add rs6000/linux64.opt.
1994 * config/rs6000/rtems.h (ASM_PREFERRED_EH_DATA_FORMAT): New define.
1995 (DOT_SYMBOLS): Likewise.
1996 (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
1997 (RELOCATABLE_NEEDS_FIXUP): Likewise.
1998 (RS6000_ABI_NAME): Likewise.
1999 (TARGET_CMODEL): Likewise.
2000 (TOC_SECTION_ASM_OP): Likewise.
2001 (SET_CMODEL): New macro.
2002 (SUBSUBTARGET_OVERRIDE_OPTIONS): Evaluate cmodel options.
2004 2017-08-22 Georg-Johann Lay <avr@gjlay.de>
2006 Backport from 2017-08-22 trunk r251256.
2009 * config/avr/avr.c (avr_handle_addr_attribute): Early return if
2010 not VAR_P. Filter attribute warnings with OPT_Wattributes.
2011 (avr_attribute_table) <io, io_low, address>: Initialize
2012 .decl_required with true.
2014 2017-08-21 Georg-Johann Lay <avr@gjlay.de>
2017 * config/avr/avr.c (avr_set_current_function): Typo in diagnostic.
2019 2017-08-19 Uros Bizjak <ubizjak@gmail.com>
2022 * doc/extend.texi (x86 Built-in Functions): Correct the name of
2023 __builtin_ia32_lzcnt_u16.
2025 2017-08-17 Uros Bizjak <ubizjak@gmail.com>
2027 Backport from mainline
2028 2017-08-17 Maxim Ostapenko <m.ostapenko@samsung.com>
2031 * config/i386/i386.c (ix86_option_override_internal): Save target
2032 specific options after ix86_stack_protector_guard_reg was changed.
2034 2017-08-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2036 Backport from mainline
2037 2017-08-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2039 PR tree-optimization/81354
2040 * gimple-ssa-strength-reduction.c (create_add_on_incoming_edge):
2041 Insert on edges rather than explicitly creating landing pads.
2042 (analyze_candidates_and_replace): Commit edge inserts.
2044 2017-08-15 Joseph Myers <joseph@codesourcery.com>
2048 * config/sh/sh-mem.cc (sh_expand_cmpnstr): Only unroll for
2049 constant count if that count is less than 32.
2051 2017-08-14 Richard Biener <rguenther@suse.de>
2053 * BASE-VER: Set to 7.2.1.
2055 2017-08-14 Release Manager
2057 * GCC 7.2.0 released.
2059 2017-08-08 Richard Biener <rguenther@suse.de>
2062 * function.c (thread_prologue_and_epilogue_insns): Restore
2063 behavior of always calling find_many_sub_basic_blocks on
2064 the inserted prologue.
2066 2017-08-02 Jakub Jelinek <jakub@redhat.com>
2069 * function.c (thread_prologue_and_epilogue_insns): Determine blocks
2070 for find_many_sub_basic_blocks bitmap by looking up BLOCK_FOR_INSN
2071 of first NONDEBUG_INSN_P in each of the split_prologue_seq and
2072 prologue_seq sequences - if any.
2074 2017-08-01 Uros Bizjak <ubizjak@gmail.com>
2077 * config/i386/i386.c (ix86_print_operand_address_as): For -masm=intel
2078 print "ds:" only for immediates in generic address space.
2080 2017-08-01 Jakub Jelinek <jakub@redhat.com>
2083 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): For
2084 __builtin_vec_cmpne verify both arguments are compatible vectors
2085 before looking at TYPE_MODE on the element type. For __builtin_vec_ld
2086 verify arg1_type is a pointer or array type. For __builtin_vec_st,
2087 move computation of aligned to after checking the argument types.
2090 2017-08-01 Martin Liska <mliska@suse.cz>
2092 Backport from mainline
2093 2017-07-26 Martin Liska <mliska@suse.cz>
2095 PR gcov-profile/81561
2096 * gcov.c (unblock): Make unblocking safe as we need to preserve
2097 index correspondence of blocks and block_lists.
2099 2017-08-01 Richard Biener <rguenther@suse.de>
2101 PR tree-optimization/71752
2102 PR tree-optimization/81633
2103 * tree-vect-slp.c (vect_get_slp_defs): Handle null operands
2104 in the original suggested way.
2106 2017-08-01 Richard Sandiford <richard.sandiford@linaro.org>
2108 PR tree-optimization/80769
2109 * tree-ssa-strlen.c (strinfo): Document that "stmt" is also used
2110 for malloc and calloc. Document the new invariant that all related
2111 strinfos have delayed lengths or none do.
2112 (get_next_strinfo): New function.
2113 (verify_related_strinfos): Move earlier in file.
2114 (set_endptr_and_length): New function, split out from...
2115 (get_string_length): ...here. Also set the lengths of related
2118 2017-08-01 Jakub Jelinek <jakub@redhat.com>
2120 PR tree-optimization/81588
2121 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If
2122 ranges[i].in_p, invert comparison code ccode. For >/>=,
2123 swap rhs1 and rhs2 and comparison code unconditionally,
2124 for </<= don't do that. Don't swap rhs1/rhs2 again if
2125 ranges[i].in_p, instead invert comparison code ccode if
2126 opcode or oe->rank is BIT_IOR_EXPR.
2128 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2130 Backport from mainline
2131 2017-07-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2133 * config.gcc: Add z14.
2134 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add
2135 CPU model numbers for z13s and z14.
2136 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Replace
2138 * config/s390/s390-opts.h (enum processor_type): Rename
2139 PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
2140 * config/s390/s390.c (processor_table): Add field for CPU name to
2141 be passed to Binutils.
2142 (s390_asm_output_machine_for_arch): Use the new field in
2143 processor_table for Binutils.
2144 (s390_expand_builtin): Replace arch12 with z14.
2145 (s390_issue_rate): Rename PROCESSOR_ARCH12 to PROCESSOR_3906_Z14.
2146 (s390_get_sched_attrmask): Likewise.
2147 (s390_get_unit_mask): Likewise.
2148 * config/s390/s390.opt: Add z14 to processor_type enum.
2150 2017-07-31 Jakub Jelinek <jakub@redhat.com>
2153 * ubsan.c (ubsan_type_descriptor): For UBSAN_PRINT_ARRAY don't
2154 change type to the element type, instead add eltype variable and
2155 use it where we are interested in the element type.
2157 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
2159 Backport from mainline
2160 2017-07-28 Peter Bergner <bergner@vnet.ibm.com>
2162 * config/rs6000/ppc-auxv.h (PPC_FEATURE2_DARN): New define.
2163 (PPC_FEATURE2_SCV): Likewise.
2164 * config/rs6000/rs6000.c (cpu_supports_info): Use them.
2166 2017-07-28 David Edelsohn <dje.gcc@gmail.com>
2168 Backport from mainline
2169 2017-07-25 David Edelsohn <dje.gcc@gmail.com>
2171 * dwarf2asm.c (dw2_asm_output_nstring): Encode double quote
2173 * dwarf2out.c (output_macinfo): Copy debug_line_section_label
2174 to dl_section_ref. On AIX, append an expression to subtract
2175 the size of the section length to dl_section_ref.
2177 2017-07-28 Bin Cheng <bin.cheng@arm.com>
2179 Backport from mainline r250496
2180 2017-07-25 Bin Cheng <bin.cheng@arm.com>
2183 * config/aarch64/cortex-a57-fma-steering.c (analyze): Skip fmul/fmac
2184 instructions if no du chain is found.
2186 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
2188 Backport from mainline
2189 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
2191 * config.gcc (powerpc-*-rtems*): Remove rs6000/eabi.h. Add
2193 * config/rs6000/rtems.h (ASM_DECLARE_FUNCTION_SIZE): New macro.
2194 (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
2195 (CRT_CALL_STATIC_FUNCTION): Likewise.
2196 (ASM_DEFAULT_SPEC): New define.
2197 (ASM_SPEC32): Likewise.
2198 (ASM_SPEC64): Likewise.
2199 (ASM_SPEC_COMMON): Likewise.
2200 (ASM_SPEC): Likewise.
2201 (INVALID_64BIT): Likewise.
2202 (LINK_OS_DEFAULT_SPEC): Likewise.
2203 (LINK_OS_SPEC32): Likewise.
2204 (LINK_OS_SPEC64): Likewise.
2205 (POWERPC_LINUX): Likewise.
2206 (PTRDIFF_TYPE): Likewise.
2207 (RESTORE_FP_PREFIX): Likewise.
2208 (RESTORE_FP_SUFFIX): Likewise.
2209 (SAVE_FP_PREFIX): Likewise.
2210 (SAVE_FP_SUFFIX): Likewise.
2211 (SIZE_TYPE): Likewise.
2212 (SUBSUBTARGET_OVERRIDE_OPTIONS): Likewise.
2213 (TARGET_64BIT): Likewise.
2214 (TARGET_64BIT): Likewise.
2215 (TARGET_AIX): Likewise.
2216 (WCHAR_TYPE_SIZE): Likewise.
2217 (WCHAR_TYPE): Undefine.
2218 (TARGET_OS_CPP_BUILTINS): Add 64-bit PowerPC defines.
2219 (CPP_OS_DEFAULT_SPEC): Use previous CPP_OS_RTEMS_SPEC.
2220 (CPP_OS_RTEMS_SPEC): Delete.
2221 (SUBSUBTARGET_EXTRA_SPECS): Remove cpp_os_rtems. Add
2222 asm_spec_common, asm_spec32, asm_spec64, link_os_spec32, and
2224 * config/rs6000/t-rtems: Add mcpu=e6500/m64 multilibs.
2226 2017-07-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
2228 Backport from mainline
2229 2017-07-27 Sebastian Huber <sebastian.huber@embedded-brains.de>
2231 * config.gcc (riscv*-*-elf*): Add (riscv*-*-rtems*).
2232 * config/riscv/rtems.h: New file.
2234 2017-07-27 Eric Botcazou <ebotcazou@adacore.com>
2236 * config/sparc/sparc.c (sparc_option_override): Set MASK_FSMULD flag
2237 earlier and only if MASK_FPU is set. Adjust formatting.
2239 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2241 Backport from mainline
2242 2017-07-27 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2245 * config/s390/s390.md ("*atomic_compare_and_swap<mode>_1")
2246 ("*atomic_compare_and_swapdi_2", "*atomic_compare_and_swapsi_3"):
2247 Change s_operand to memory_operand.
2249 2017-07-27 Jakub Jelinek <jakub@redhat.com>
2251 PR tree-optimization/81555
2252 PR tree-optimization/81556
2253 * tree-ssa-reassoc.c (rewrite_expr_tree): Add NEXT_CHANGED argument,
2254 if true, force CHANGED for the recursive invocation.
2255 (reassociate_bb): Remember original length of ops array, pass
2256 len != orig_len as NEXT_CHANGED in rewrite_expr_tree call.
2258 2017-07-27 Martin Liska <mliska@suse.cz>
2260 Backport from mainline
2261 2017-07-17 Martin Liska <mliska@suse.cz>
2264 * opts.c (finish_options): Do not allow -fgnu-tm
2265 w/ -fsanitize={kernel-,}address. Say sorry.
2267 2017-07-27 Martin Liska <mliska@suse.cz>
2269 Backport from mainline
2270 2017-07-26 Martin Liska <mliska@suse.cz>
2273 * function.c (expand_function_start): Make expansion of
2274 nonlocal_goto_save_area after parm_birth_insn.
2276 2017-07-27 Martin Liska <mliska@suse.cz>
2278 Backport from mainline
2279 2017-06-30 Martin Liska <mliska@suse.cz>
2282 * tree-eh.c (lower_resx): Call BUILT_IN_ASAN_HANDLE_NO_RETURN
2283 before BUILT_IN_UNWIND_RESUME when ASAN is used.
2285 2017-07-27 Martin Liska <mliska@suse.cz>
2287 Backport from mainline
2288 2017-06-28 Martin Liska <mliska@suse.cz>
2291 * asan.c (instrument_derefs): Bail out inner references
2292 that are hard register variables.
2294 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
2296 Backport from mainline
2297 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
2299 * config/sparc/sparc.c (dump_target_flag_bits): Dump MASK_FSMULD.
2300 (sparc_option_override): Honour MASK_FSMULD.
2301 * config/sparc/sparc.h (MASK_FEATURES): Add MASK_FSMULD.
2302 * config/sparc/sparc.md (muldf3_extend): Use TARGET_FSMULD.
2303 * config/sparc/sparc.opt (mfsmuld): New option.
2304 * doc/invoke.texi (mfsmuld): Document option.
2306 2017-07-26 Georg-Johann Lay <avr@gjlay.de>
2308 Backport from 2017-07-25 trunk r250499.
2311 * hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
2312 * gimple-pretty-print.c (dump_probability): Same.
2313 * tree-ssa-structalias.c (alias_get_name): Same.
2315 2017-07-26 Richard Biener <rguenther@suse.de>
2317 Backport from mainline
2318 2017-06-18 Richard Biener <rguenther@suse.de>
2320 PR tree-optimization/81410
2321 * tree-vect-stmts.c (vectorizable_load): Properly adjust for
2322 the gap in the ! slp_perm SLP case after each group.
2324 2017-07-25 Richard Biener <rguenther@suse.de>
2326 PR tree-optimization/81455
2327 * tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
2328 not walk in cycles when looking for guards.
2330 2017-07-25 Richard Biener <rguenther@suse.de>
2333 * fold-const.c (fold_negate_const): TREE_OVERFLOW should be
2336 2017-06-28 Jakub Jelinek <jakub@redhat.com>
2339 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
2340 rather than def_builtin_pure for __builtin_ia32_gatherpf*.
2342 2017-06-26 Richard Biener <rguenther@suse.de>
2345 * config/i386/i386.c (ix86_init_mmx_sse_builtins):
2346 Use def_builtin_pure for all gather builtins.
2348 2017-06-21 Marc Glisse <marc.glisse@inria.fr>
2350 * config/i386/i386.c (struct builtin_isa): New field pure_p.
2351 Reorder for compactness.
2352 (def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
2353 (def_builtin_pure, def_builtin_pure2): New functions.
2354 (ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.
2356 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
2358 Backport from mainline
2359 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
2361 * config/sparc/sparc.c (sparc_option_override): Remove MASK_FPU
2362 from all CPU target flags enable members.
2364 2017-07-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
2366 Backport from mainline
2367 2017-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
2370 * config/aarch64/rtems.h: Add GCC Runtime Library Exception.
2372 * config/arm/rtems.h: Likewise.
2373 * config/bfin/rtems.h: Likewise.
2374 * config/i386/rtemself.h: Likewise.
2375 * config/lm32/rtems.h: Likewise.
2376 * config/m32c/rtems.h: Likewise.
2377 * config/m68k/rtemself.h: Likewise.
2378 * config/microblaze/rtems.h: Likewise.
2379 * config/mips/rtems.h: Likewise.
2380 * config/moxie/rtems.h: Likewise.
2381 * config/nios2/rtems.h: Likewise.
2382 * config/rs6000/rtems.h: Likewise.
2383 * config/rtems.h: Likewise.
2384 * config/sh/rtems.h: Likewise.
2385 * config/sh/rtemself.h: Likewise.
2386 * config/sparc/rtemself.h: Likewise.
2388 2017-07-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2390 Backport from mainline
2391 2017-07-14 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2393 PR tree-optimization/81162
2394 * gimple-ssa-strength-reduction.c (replace_mult_candidate): Don't
2395 replace a negate with an add.
2397 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
2399 Backport from 2017-07-12 trunk r250151.
2402 * config/avr/avr.c (avr_encode_section_info)
2403 [progmem && !TREE_READONLY]: Error if progmem object needs
2406 2017-07-25 Wilco Dijkstra <wdijkstr@arm.com>
2409 * config/aarch64/aarch64.c (aarch64_classify_symbol):
2410 Avoid SYMBOL_SMALL_ABSOLUTE for literals with pc-relative literals.
2412 2017-07-25 Georg-Johann Lay <avr@gjlay.de>
2414 Backport from trunk r247719.
2416 2017-05-06 Richard Sandiford <richard.sandiford@linaro.org>
2418 PR rtl-optimization/75964
2419 * simplify-rtx.c (simplify_const_relational_operation): Remove
2420 invalid handling of comparisons of integer ABS.
2422 2017-07-25 Bin Cheng <bin.cheng@arm.com>
2424 Backport from 2017-07-20 trunk r250384.
2426 PR tree-optimization/81388
2428 2016-07-21 Bin Cheng <bin.cheng@arm.com>
2430 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Clean up
2431 by removing computation of may_be_zero.
2433 2017-07-23 Uros Bizjak <ubizjak@gmail.com>
2436 * config/i386/i386.c (ix86_option_override_internal): Disable
2437 BMI, BMI2 and TBM instructions for -m16.
2439 2017-07-19 Michael Meissner <meissner@linux.vnet.ibm.com>
2441 Back port from trunk
2442 2017-07-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2445 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If GLIBC
2446 provides the hardware capability bits, define the macro
2447 __BUILTIN_CPU_SUPPORTS__.
2448 * config/rs6000/rs6000.c (cpu_expand_builtin): Generate a warning
2449 if GLIBC does not provide the hardware capability bits. Add a
2450 gcc_unreachable call if the built-in cpu function is neither
2451 __builtin_cpu_is nor __builtin_cpu_supports.
2452 * doc/extend.texi (PowerPC built-in functions): Document that
2453 GLIBC 2.23 or newer is needed by __builtin_cpu_is and
2454 __builtin_cpu_supports. Document the macros defined by GCC if the
2455 newer GLIBC is available.
2457 2017-07-18 Uros Bizjak <ubizjak@gmail.com>
2460 * config/i386/i386.md (rorx_immediate_operand): New mode attribute.
2461 (*bmi2_rorx<mode>3_1): Use rorx_immediate_operand as
2462 operand 2 predicate.
2463 (*bmi2_rorxsi3_1_zext): Use const_0_to_31_operand as
2464 operand 2 predicate.
2465 (ror,rol -> rorx splitters): Use const_int_operand as
2466 operand 2 predicate.
2468 2017-07-18 Tom de Vries <tom@codesourcery.com>
2470 backport from mainline:
2472 2017-07-17 Tom de Vries <tom@codesourcery.com>
2474 * config/nvptx/nvptx.c (nvptx_single): Insert diverging branch as late
2477 2017-07-18 Georg-Johann Lay <avr@gjlay.de>
2479 Backport from 2017-07-18 trunk r250301.
2482 * config/avr/avr.c (avr_optimize_casesi): Don't use
2483 INT8_MIN, INT8_MAX, UINT8_MAX, INT16_MIN, INT16_MAX, UINT16_MAX.
2485 2017-07-17 Jakub Jelinek <jakub@redhat.com>
2487 PR tree-optimization/81428
2488 * match.pd (X / X -> one): Don't optimize _Fract divisions, as 1
2489 can't be built for those types.
2491 PR tree-optimization/81365
2492 * tree-ssa-phiprop.c (propagate_with_phi): When considering hoisting
2493 aggregate moves onto bb predecessor edges, make sure there are no
2494 loads that could alias the lhs in between the start of bb and the
2497 Backported from mainline
2498 2017-06-30 Jakub Jelinek <jakub@redhat.com>
2501 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): For
2502 V8FI, V16FI and VI8F_256 iterators, use <store_mask_predicate> instead
2503 of nonimmediate_operand and <store_mask_constraint> instead of m for
2504 the input operand. For V8FI iterator, always split if input is a MEM.
2505 For V16FI and V8SF_256 iterators, don't test if both operands are MEM
2506 if <mask_applied>. For VI4F_256 iterator, use <store_mask_predicate>
2507 instead of register_operand and <store_mask_constraint> instead of v for
2508 the input operand. Make sure both operands aren't MEMs for if not
2511 2017-07-17 Georg-Johann Lay <avr@gjlay.de>
2513 Backport from 2017-07-17 trunk r250258.
2516 * config/avr/avr.c (avr_mul_highpart_cost): New static function.
2517 (avr_rtx_costs_1) [TRUNCATE]: Use it to compute mul_highpart cost.
2518 [LSHIFTRT, outer_code = TRUNCATE]: Same.
2520 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2522 Backport from mainline
2523 2017-07-17 Sebastian Huber <sebastian.huber@embedded-brains.de>
2525 * gcc/config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
2526 conditional builtin define __FIX_LEON3FT_B2BST.
2528 2017-07-17 Daniel Cederman <cederman@gaisler.com>
2530 Backport from mainline
2531 2017-07-17 Daniel Cederman <cederman@gaisler.com>
2533 * config/sparc/t-rtems: Add mfix-gr712rc multilibs. Replace
2534 MULTILIB_EXCEPTIONS with MULTILIB_REQUIRED. Match -mfix-gr712rc
2537 2017-07-16 Eric Botcazou <ebotcazou@adacore.com>
2539 PR rtl-optimization/81424
2540 * optabs.c (prepare_cmp_insn): Use copy_to_reg instead of force_reg
2541 to remove potential trapping from operands if -fnon-call-exceptions.
2543 2017-07-16 Daniel Cederman <cederman@gaisler.com>
2545 * config/sparc/sparc.md (divdf3_fix): Add NOP to prevent back
2546 to back store errata sensitive sequence from being generated.
2547 (sqrtdf2_fix): Likewise.
2549 2017-07-12 Georg-Johann Lay <avr@gjlay.de>
2551 Backport from 2017-07-12 trunk r250156.
2554 * config/avr/avr.c (avr_set_current_function): In diagnostic
2555 messages: Quote keywords and (parts of) identifiers.
2556 [WITH_AVRLIBC]: Warn for functions named "ISR", "SIGNAL" or
2559 2017-07-11 Daniel Cederman <cederman@gaisler.com>
2561 * config/sparc/sparc.opt (mfix-ut700): New option.
2562 (mfix-gr712rc): Likewise.
2563 (sparc_fix_b2bst): New variable.
2564 * doc/invoke.texi (SPARC options): Document them.
2565 (ARM options): Fix warnings.
2566 * config/sparc/sparc.c (sparc_do_work_around_errata): Insert NOP
2567 instructions to prevent sequences that can trigger the store-store
2568 errata for certain LEON3FT processors.
2569 (pass_work_around_errata::gate): Also test sparc_fix_b2bst.
2570 (sparc_option_override): Set sparc_fix_b2bst appropriately.
2571 * config/sparc/sparc.md (fix_b2bst): New attribute.
2572 (in_branch_delay): Prevent stores in delay slot if fix_b2bst.
2574 2017-07-10 Uros Bizjak <ubizjak@gmail.com>
2577 * config/i386/i386.md (divsf3): Add TARGET_SSE to TARGET_SSE_MATH.
2579 (*rsqrtsf2_sse): Ditto.
2581 (div<mode>3): Macroize insn from divdf3 and divsf3
2582 using MODEF mode iterator.
2584 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2586 Backport from mainline
2587 2017-07-07 Michael Meissner <meissner@linux.vnet.ibm.com>
2590 * config/rs6000/rs6000.md (HI sign_extend splitter): Use the
2591 correct operand in doing the split.
2593 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2595 * config/sparc/m8.md: New file.
2596 * config/sparc/sparc.md: Include m8.md.
2598 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2600 * config/sparc/sparc.opt: New option -mvis4b.
2601 * config/sparc/sparc.c (dump_target_flag_bits): Handle MASK_VIS4B.
2602 (sparc_option_override): Handle VIS4B.
2603 (enum sparc_builtins): Define
2604 SPARC_BUILTIN_DICTUNPACK{8,16,32},
2605 SPARC_BUILTIN_FPCMP{LE,GT,EQ,NE}{8,16,32}SHL,
2606 SPARC_BUILTIN_FPCMPU{LE,GT}{8,16,32}SHL,
2607 SPARC_BUILTIN_FPCMPDE{8,16,32}SHL and
2608 SPARC_BUILTIN_FPCMPUR{8,16,32}SHL.
2609 (check_constant_argument): New function.
2610 (sparc_vis_init_builtins): Define builtins
2611 __builtin_vis_dictunpack{8,16,32},
2612 __builtin_vis_fpcmp{le,gt,eq,ne}{8,16,32}shl,
2613 __builtin_vis_fpcmpu{le,gt}{8,16,32}shl,
2614 __builtin_vis_fpcmpde{8,16,32}shl and
2615 __builtin_vis_fpcmpur{8,16,32}shl.
2616 (sparc_expand_builtin): Check that the constant operands to
2617 __builtin_vis_fpcmp*shl and _builtin_vis_dictunpack* are indeed
2618 constant and in range.
2619 * config/sparc/sparc-c.c (sparc_target_macros): Handle
2621 * config/sparc/sparc.h (SPARC_IMM2_P): Define.
2622 (SPARC_IMM5_P): Likewise.
2623 * config/sparc/sparc.md (cpu_feature): Add new feagure "vis4b".
2624 (enabled): Handle vis4b.
2625 (UNSPEC_DICTUNPACK): New unspec.
2626 (UNSPEC_FPCMPSHL): Likewise.
2627 (UNSPEC_FPUCMPSHL): Likewise.
2628 (UNSPEC_FPCMPDESHL): Likewise.
2629 (UNSPEC_FPCMPURSHL): Likewise.
2630 (cpu_feature): New CPU feature `vis4b'.
2631 (dictunpack{8,16,32}): New insns.
2632 (FPCSMODE): New mode iterator.
2633 (fpcscond): New code iterator.
2634 (fpcsucond): Likewise.
2635 (fpcmp{le,gt,eq,ne}{8,16,32}{si,di}shl): New insns.
2636 (fpcmpu{le,gt}{8,16,32}{si,di}shl): Likewise.
2637 (fpcmpde{8,16,32}{si,di}shl): Likewise.
2638 (fpcmpur{8,16,32}{si,di}shl): Likewise.
2639 * config/sparc/constraints.md: Define constraints `q' for unsigned
2640 2-bit integer constants and `t' for unsigned 5-bit integer
2642 * config/sparc/predicates.md (imm5_operand_dictunpack8): New
2644 (imm5_operand_dictunpack16): Likewise.
2645 (imm5_operand_dictunpack32): Likewise.
2646 (imm2_operand): Likewise.
2647 * doc/invoke.texi (SPARC Options): Document -mvis4b.
2648 * doc/extend.texi (SPARC VIS Built-in Functions): Document the
2649 ditunpack* and fpcmp*shl builtins.
2651 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2653 * config.gcc: Handle m8 in --with-{cpu,tune} options.
2654 * config.in: Add HAVE_AS_SPARC6 define.
2655 * config/sparc/driver-sparc.c (cpu_names): Add entry for the SPARC
2657 * config/sparc/sol2.h (CPP_CPU64_DEFAULT_SPEC): Define for
2659 (ASM_CPU32_DEFAUILT_SPEC): Likewise.
2660 (CPP_CPU_SPEC): Handle m8.
2661 (ASM_CPU_SPEC): Likewise.
2662 * config/sparc/sparc-opts.h (enum processor_type): Add
2664 * config/sparc/sparc.c (m8_costs): New struct.
2665 (sparc_option_override): Handle TARGET_CPU_m8.
2666 (sparc32_initialize_trampoline): Likewise.
2667 (sparc64_initialize_trampoline): Likewise.
2668 (sparc_issue_rate): Likewise.
2669 (sparc_register_move_cost): Likewise.
2670 * config/sparc/sparc.h (TARGET_CPU_m8): Define.
2671 (CPP_CPU64_DEFAULT_SPEC): Define for M8.
2672 (ASM_CPU64_DEFAULT_SPEC): Likewise.
2673 (CPP_CPU_SPEC): Handle M8.
2674 (ASM_CPU_SPEC): Likewise.
2675 (AS_M8_FLAG): Define.
2676 * config/sparc/sparc.md: Add m8 to the cpu attribute.
2677 * config/sparc/sparc.opt: New option -mcpu=m8 for sparc targets.
2678 * configure.ac (HAVE_AS_SPARC6): Check for assembler support for
2680 * configure: Regenerate.
2681 * doc/invoke.texi (SPARC Options): Document -mcpu=m8 and
2684 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2686 * config/sparc/niagara7.md: Rework the DFA scheduler to use insn
2688 * config/sparc/sparc.md: Remove the `v3pipe' insn attribute.
2689 ("*movdi_insn_sp32"): Do not set v3pipe.
2690 ("*movsi_insn"): Likewise.
2691 ("*movdi_insn_sp64"): Likewise.
2692 ("*movsf_insn"): Likewise.
2693 ("*movdf_insn_sp32"): Likewise.
2694 ("*movdf_insn_sp64"): Likewise.
2695 ("*zero_extendsidi2_insn_sp64"): Likewise.
2696 ("*sign_extendsidi2_insn"): Likewise.
2697 ("*mov<VM32:mode>_insn"): Likewise.
2698 ("*mov<VM64:mode>_insn_sp64"): Likewise.
2699 ("*mov<VM64:mode>_insn_sp32"): Likewise.
2700 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
2701 ("<vlop:code><VL:mode>3"): Likewise.
2702 ("*not_<vlop:code><VL:mode>3"): Likewise.
2703 ("*nand<VL:mode>_vis"): Likewise.
2704 ("*<vlnotop:code>_not1<VL:mode>_vis"): Likewise.
2705 ("*<vlnotop:code>_not2<VL:mode>_vis"): Likewise.
2706 ("one_cmpl<VL:mode>2"): Likewise.
2707 ("faligndata<VM64:mode>_vis"): Likewise.
2708 ("alignaddrsi_vis"): Likewise.
2709 ("alignaddrdi_vis"): Likweise.
2710 ("alignaddrlsi_vis"): Likewise.
2711 ("alignaddrldi_vis"): Likewise.
2712 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
2713 ("bmaskdi_vis"): Likewise.
2714 ("bmasksi_vis"): Likewise.
2715 ("bshuffle<VM64:mode>_vis"): Likewise.
2716 ("cmask8<P:mode>_vis"): Likewise.
2717 ("cmask16<P:mode>_vis"): Likewise.
2718 ("cmask32<P:mode>_vis"): Likewise.
2719 ("pdistn<P:mode>_vis"): Likewise.
2720 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
2722 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2724 * config/sparc/sparc.md ("subtype"): New insn attribute.
2725 ("*wrgsr_sp64"): Set insn subtype.
2726 ("*rdgsr_sp64"): Likewise.
2727 ("alignaddrsi_vis"): Likewise.
2728 ("alignaddrdi_vis"): Likewise.
2729 ("alignaddrlsi_vis"): Likewise.
2730 ("alignaddrldi_vis"): Likewise.
2731 ("<plusminus_insn><VADDSUB:mode>3"): Likewise.
2732 ("fexpand_vis"): Likewise.
2733 ("fpmerge_vis"): Likewise.
2734 ("faligndata<VM64:mode>_vis"): Likewise.
2735 ("bshuffle<VM64:mode>_vis"): Likewise.
2736 ("cmask8<P:mode>_vis"): Likewise.
2737 ("cmask16<P:mode>_vis"): Likewise.
2738 ("cmask32<P:mode>_vis"): Likewise.
2739 ("fchksm16_vis"): Likewise.
2740 ("v<vis3_shift_patname><GCM:mode>3"): Likewise.
2741 ("fmean16_vis"): Likewise.
2742 ("fp<plusminus_insn>64_vis"): Likewise.
2743 ("<plusminus_insn>v8qi3"): Likewise.
2744 ("<vis3_addsub_ss_patname><VASS:mode>3"): Likewise.
2745 ("<vis4_minmax_patname><VMMAX:mode>3"): Likewise.
2746 ("<vis4_uminmax_patname><VMMAX:mode>3"): Likewise.
2747 ("<vis3_addsub_ss_patname>v8qi3"): Likewise.
2748 ("<vis4_addsub_us_patname><VAUS:mode>3"): Likewise.
2749 ("*movqi_insn"): Likewise.
2750 ("*movhi_insn"): Likewise.
2751 ("*movsi_insn"): Likewise.
2752 ("movsi_pic_gotdata_op"): Likewise.
2753 ("*movdi_insn_sp32"): Likewise.
2754 ("*movdi_insn_sp64"): Likewise.
2755 ("movdi_pic_gotdata_op"): Likewise.
2756 ("*movsf_insn"): Likewise.
2757 ("*movdf_insn_sp32"): Likewise.
2758 ("*movdf_insn_sp64"): Likewise.
2759 ("*zero_extendhisi2_insn"): Likewise.
2760 ("*zero_extendqihi2_insn"): Likewise.
2761 ("*zero_extendqisi2_insn"): Likewise.
2762 ("*zero_extendqidi2_insn"): Likewise.
2763 ("*zero_extendhidi2_insn"): Likewise.
2764 ("*zero_extendsidi2_insn_sp64"): Likewise.
2765 ("ldfsr"): Likewise.
2766 ("prefetch_64"): Likewise.
2767 ("prefetch_32"): Likewise.
2768 ("tie_ld32"): Likewise.
2769 ("tie_ld64"): Likewise.
2770 ("*tldo_ldub_sp32"): Likewise.
2771 ("*tldo_ldub1_sp32"): Likewise.
2772 ("*tldo_ldub2_sp32"): Likewise.
2773 ("*tldo_ldub_sp64"): Likewise.
2774 ("*tldo_ldub1_sp64"): Likewise.
2775 ("*tldo_ldub2_sp64"): Likewise.
2776 ("*tldo_ldub3_sp64"): Likewise.
2777 ("*tldo_lduh_sp32"): Likewise.
2778 ("*tldo_lduh1_sp32"): Likewise.
2779 ("*tldo_lduh_sp64"): Likewise.
2780 ("*tldo_lduh1_sp64"): Likewise.
2781 ("*tldo_lduh2_sp64"): Likewise.
2782 ("*tldo_lduw_sp32"): Likewise.
2783 ("*tldo_lduw_sp64"): Likewise.
2784 ("*tldo_lduw1_sp64"): Likewise.
2785 ("*tldo_ldx_sp64"): Likewise.
2786 ("*mov<VM32:mode>_insn"): Likewise.
2787 ("*mov<VM64:mode>_insn_sp64"): Likewise.
2788 ("*mov<VM64:mode>_insn_sp32"): Likewise.
2790 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2792 * config/sparc/sparc.md ("type"): New insn type viscmp.
2793 ("fcmp<gcond:code><GCM:gcm_name><P:mode>_vis"): Set insn type to
2795 ("fpcmp<gcond:code>8<P:mode>_vis"): Likewise.
2796 ("fucmp<gcond:code>8<P:mode>_vis"): Likewise.
2797 ("fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis"): Likewise.
2798 * config/sparc/niagara7.md ("n7_vis_logical_v3pipe"): Handle
2800 ("n7_vis_logical_11cycle"): Likewise.
2801 * config/sparc/niagara4.md ("n4_vis_logical"): Likewise.
2802 * config/sparc/niagara2.md ("niag3_vis": Likewise.
2803 * config/sparc/niagara.md ("niag_vis"): Likewise.
2804 * config/sparc/ultra3.md ("us3_fga"): Likewise.
2805 * config/sparc/ultra1_2.md ("us1_fga_double"): Likewise.
2807 2017-07-07 Jose E. Marchesi <jose.marchesi@oracle.com>
2809 * config/sparc/sparc.md: New instruction type `bmask'.
2810 (bmaskdi_vis): Use the `bmask' type.
2811 (bmasksi_vis): Likewise.
2812 * config/sparc/ultra3.md (us3_array): Likewise.
2813 * config/sparc/niagara7.md (n7_array): Likewise.
2814 * config/sparc/niagara4.md (n4_array): Likewise.
2815 * config/sparc/niagara2.md (niag2_vis): Likewise.
2816 (niag3_vis): Likewise.
2817 * config/sparc/niagara.md (niag_vis): Likewise.
2819 2017-07-05 Georg-Johann Lay <avr@gjlay.de>
2821 Backport from 2017-07-05 trunk r249995.
2824 * config/avr/avr.c (avr_out_movhi_mr_r_xmega) [CONSTANT_ADDRESS_P]:
2825 Don't depend on "optimize > 0".
2826 (out_movhi_r_mr, out_movqi_mr_r): Same.
2827 (out_movhi_mr_r, out_movqi_r_mr): Same.
2828 (avr_address_cost) [CONSTANT_ADDRESS_P]: Don't depend cost for
2829 io_address_operand on "optimize > 0".
2831 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
2834 * config/i386/i386.md (setcc + movzbl/and to xor + setcc peepholes):
2835 Require dead FLAGS_REG at the beginning of a peephole.
2837 2017-07-04 Uros Bizjak <ubizjak@gmail.com>
2840 * config/i386/adxintrin.h (_subborrow_u32): Swap _X and _Y
2841 arguments in the call to __builtin_ia32_sbb_u32.
2842 (_subborrow_u64): Swap _X and _Y arguments in the call to
2843 __builtin_ia32_sbb_u64.
2845 2017-07-03 Segher Boessenkool <segher@kernel.crashing.org>
2847 Backport from trunk:
2849 2017-06-15 Segher Boessenkool <segher@kernel.crashing.org>
2851 * config/rs6000/rs6000.md (add<mode>3): Use reg_or_subregno instead
2854 2017-07-03 Tom de Vries <tom@codesourcery.com>
2856 backport from mainline:
2857 PR tree-optimization/81192
2858 2017-07-03 Tom de Vries <tom@codesourcery.com>
2860 * tree-ssa-tail-merge.c (same_succ_flush_bb): Handle
2861 BB_SAME_SUCC (bb) == NULL.
2863 2017-06-29 Michael Meissner <meissner@linux.vnet.ibm.com>
2865 Backport from mainline
2866 2017-06-23 Michael Meissner <meissner@linux.vnet.ibm.com>
2869 * config/rs6000/rs6000.md (ALTIVEC_DFORM): Do not allow DImode in
2870 32-bit, since indexed is not valid for DImode.
2871 (mov<mode>_hardfloat32): Reorder ISA 2.07 load/stores before ISA
2872 3.0 d-form load/stores to be the same as mov<mode>_hardfloat64.
2873 (define_peephole2 for Altivec d-form load): Add 32-bit support.
2874 (define_peephole2 for Altivec d-form store): Likewise.
2876 Backport from mainline
2877 2017-06-20 Michael Meissner <meissner@linux.vnet.ibm.com>
2880 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Add support
2881 for doing vector set of SFmode on ISA 3.0.
2882 * config/rs6000/vsx.md (vsx_set_v4sf_p9): Likewise.
2883 (vsx_set_v4sf_p9_zero): Special case setting 0.0f to a V4SF
2885 (vsx_insert_extract_v4sf_p9): Add an optimization for inserting a
2886 SFmode value into a V4SF variable that was extracted from another
2887 V4SF variable without converting the element to double precision
2888 and back to single precision vector format.
2889 (vsx_insert_extract_v4sf_p9_2): Likewise.
2891 2017-06-29 Richard Biener <rguenther@suse.de>
2893 Backport from mainline
2894 2017-06-19 Richard Biener <rguenther@suse.de>
2897 * ipa-prop.c (find_constructor_constant_at_offset): Handle
2898 RANGE_EXPR conservatively.
2900 2017-06-28 Richard Biener <rguenther@suse.de>
2902 Backport from mainline
2903 2017-06-09 Richard Biener <rguenther@suse.de>
2906 * ipa-polymorphic-call.c
2907 (ipa_polymorphic_call_context::restrict_to_inner_class):
2908 Skip FIELD_DECLs with error_mark_node type.
2909 * passes.def (all_lowering_passes): Run pass_build_cgraph_edges
2912 2017-06-14 Richard Biener <rguenther@suse.de>
2914 PR tree-optimization/81083
2915 * tree-ssa-sccvn.c (vn_reference_lookup_3): Do not use abnormals
2918 2017-06-27 Segher Boessenkool <segher@kernel.crashing.org>
2920 Backports from trunk:
2922 2017-05-17 Segher Boessenkool <segher@kernel.crashing.org>
2924 * real.c (do_compare): Give decimal_do_compare preference over
2925 comparing just the signs.
2927 2017-05-31 Segher Boessenkool <segher@kernel.crashing.org>
2929 * config/rs6000/vector.md (*vector_uneq<mode>): Write the nor in the
2930 splitter result in the canonical way.
2932 2017-06-09 Segher Boessenkool <segher@kernel.crashing.org>
2934 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Assert that
2935 gen_add3_insn did not fail.
2936 * config/rs6000/rs6000.md (add<mode>3): If asked to add a constant to
2937 r0, construct that number in a temporary reg and add that reg to r0.
2938 If asked to put the result in r0 as well, fail.
2940 2017-06-23 Segher Boessenkool <segher@kernel.crashing.org>
2942 * builtins.c (expand_builtin_atomic_fetch_op): If emitting code after
2943 a call, force the call to not be a tail call.
2945 2017-06-27 Jakub Jelinek <jakub@redhat.com>
2948 * ubsan.c (ubsan_encode_value): Initialize DECL_CONTEXT on var.
2951 * gimple-fold.c (replace_call_with_call_and_fold): Handle
2952 gimple_vuse copying separately from gimple_vdef copying.
2954 2017-06-24 Jim Wilson <jim.wilson@linaro.org>
2956 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
2958 * config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
2959 * config/arm/arm-cpu-cdata.h: Regenerate.
2960 * config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
2961 * config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
2962 * config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
2963 * config/arm/arm.c (arm_qdf24xx_tune): Delete.
2964 * config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
2966 * config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
2968 * config/arm/t-rmprofile: Likewise.
2969 * doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.
2971 2017-06-24 Marek Polacek <polacek@redhat.com>
2973 Backport from mainline
2974 2017-05-04 Marek Polacek <polacek@redhat.com>
2976 PR tree-optimization/80612
2977 * calls.c (get_size_range): Check for INTEGRAL_TYPE_P.
2979 2017-06-23 Thomas Preud'homme <thomas.preudhomme@arm.com>
2981 Backport from mainline
2982 2017-05-04 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
2984 * config/arm/arm-builtins.c (arm_init_builtins): Rename
2985 __builtin_arm_ldfscr to __builtin_arm_get_fpscr, and rename
2986 __builtin_arm_stfscr to __builtin_arm_set_fpscr.
2988 2017-06-23 Jonathan Wakely <jwakely@redhat.com>
2991 * doc/invoke.texi (-Wnoexcept-type): Fix name of option, from
2994 2017-06-22 Martin Liska <mliska@suse.cz>
2996 Backport from mainline
2997 2017-06-19 Martin Liska <mliska@suse.cz>
3000 * gimplify.c (gimplify_switch_expr):
3001 Initialize live_switch_vars for SWITCH_BODY == STATEMENT_LIST.
3003 2017-06-22 Martin Liska <mliska@suse.cz>
3005 Backport from mainline
3006 2017-05-31 Martin Liska <mliska@suse.cz>
3009 * config/i386/cpuid.h: Fix typo in a comment in cpuid.h.
3011 2017-06-22 Martin Liska <mliska@suse.cz>
3013 Backport from mainline
3014 2017-05-30 Martin Liska <mliska@suse.cz>
3017 * auto-profile.c (get_function_decl_from_block): Fix
3020 2017-06-22 Martin Liska <mliska@suse.cz>
3022 Backport from mainline
3023 2017-05-26 Martin Liska <mliska@suse.cz>
3026 * params.def: Bound partial-inlining-entry-probability param.
3028 2017-06-22 Martin Liska <mliska@suse.cz>
3030 Backport from mainline
3031 2017-05-16 Martin Liska <mliska@suse.cz>
3035 * ipa-devirt.c (warn_types_mismatch): Fix typo.
3036 (odr_types_equivalent_p): Likewise.
3038 2017-06-22 Martin Liska <mliska@suse.cz>
3040 Backport from mainline
3041 2017-05-15 Martin Liska <mliska@suse.cz>
3044 * gcc.c (process_command): Do not allow empty argument of -o option.
3046 2017-06-22 Martin Liska <mliska@suse.cz>
3048 Backport from mainline
3049 2017-05-02 Martin Liska <mliska@suse.cz>
3051 * doc/gcov.texi: Add missing preposition.
3052 * gcov.c (function_info::function_info): Properly fill up
3053 all member variables.
3055 2017-06-22 Martin Liska <mliska@suse.cz>
3057 Backport from mainline
3058 2017-05-02 Martin Liska <mliska@suse.cz>
3061 * common.opt: Fix typo.
3062 * doc/invoke.texi: Likewise.
3064 2017-06-22 Martin Liska <mliska@suse.cz>
3066 Backport from mainline
3067 2017-04-28 Martin Liska <mliska@suse.cz>
3069 * doc/gcov.texi: Enhance documentation of gcov.
3071 2017-06-22 Martin Liska <mliska@suse.cz>
3073 Backport from mainline
3074 2017-04-28 Martin Liska <mliska@suse.cz>
3076 * doc/gcov.texi: Sort options in alphabetic order.
3077 * doc/gcov-dump.texi: Likewise.
3078 * doc/gcov-tool.texi: Likewise.
3079 * gcov.c (print_usage): Likewise.
3080 * gcov-dump.c (print_usage): Likewise.
3081 * gcov-tool.c (print_merge_usage_message): Likewise.
3082 (print_rewrite_usage_message): Likewise.
3083 (print_overlap_usage_message): Likewise.
3085 2017-06-22 Martin Liska <mliska@suse.cz>
3087 Backport from mainline
3088 2017-04-28 Martin Liska <mliska@suse.cz>
3090 PR gcov-profile/53915
3091 * gcov.c (format_gcov): Print 'NAN %' when top > bottom.
3093 2017-06-22 Martin Liska <mliska@suse.cz>
3095 Backport from mainline
3096 2017-04-28 Martin Liska <mliska@suse.cz>
3099 * coverage.c (coverage_remove_note_file): New function.
3100 * coverage.h: Declare the function.
3101 * toplev.c (finalize): Clean if an error has been seen.
3103 2017-06-21 Jakub Jelinek <jakub@redhat.com>
3106 * config/i386/sse.md (round<mode>2): Renumber match_dup and
3107 operands indexes to avoid gap between operands and match_dups.
3110 * gimplify.c (omp_add_variable): Don't force GOVD_SEEN for types
3111 with ctors/dtors if GOVD_SHARED is set.
3113 Backported from mainline
3114 2017-06-20 Jakub Jelinek <jakub@redhat.com>
3117 * config/i386/i386.md (TARGET_USE_VECTOR_CONVERTS float si->{sf,df}
3118 splitter): Require TARGET_SSE2 in the condition.
3121 * ubsan.h (ubsan_encode_value): Workaround buggy clang++ parser
3122 by removing enum keyword.
3123 (ubsan_type_descriptor): Likewise. Formatting fix.
3125 2017-06-19 Jakub Jelinek <jakub@redhat.com>
3128 * ubsan.h (enum ubsan_encode_value_phase): New.
3129 (ubsan_encode_value): Change second argument to
3130 enum ubsan_encode_value_phase with default value of
3131 UBSAN_ENCODE_VALUE_GENERIC.
3132 * ubsan.c (ubsan_encode_value): Change second argument to
3133 enum ubsan_encode_value_phase PHASE from bool IN_EXPAND_P,
3134 adjust uses, for UBSAN_ENCODE_VALUE_GENERIC use just
3135 create_tmp_var_raw instead of create_tmp_var and use a
3137 (ubsan_expand_bounds_ifn, ubsan_build_overflow_builtin,
3138 instrument_bool_enum_load, ubsan_instrument_float_cast): Adjust
3139 ubsan_encode_value callers.
3142 * ubsan.c (ubsan_encode_value): If current_function_decl is NULL,
3143 use create_tmp_var_raw instead of create_tmp_var, mark it addressable
3144 just by setting TREE_ADDRESSABLE on the result and use a TARGET_EXPR.
3146 2017-06-20 James Greenhalgh <james.greenhalgh@arm.com>
3148 Backport from Mainline
3149 * config/aarch64/aarch64-option-extensions.def (fp16): Fix expected
3152 2017-06-20 Andreas Schwab <schwab@suse.de>
3155 * config/m68k/m68k.md (bsetdreg, bchgdreg, bclrdreg): Use "=d"
3158 2017-06-19 James Greenhalgh <james.greenhalgh@arm.com>
3160 Backport from mainline
3161 2017-06-19 James Greenhalgh <james.greenhalgh@arm.com>
3164 * config/arm/arm-builtins.c (arm_expand_builtin_args): Return TARGET
3165 if given a non-constant argument for an intrinsic which requires a
3168 2017-06-19 Alexander Monakov <amonakov@ispras.ru>
3170 * doc/invoke.texi (mcx16): Rewrite.
3172 2017-06-15 Eric Botcazou <ebotcazou@adacore.com>
3174 PR rtl-optimization/80474
3175 * reorg.c (update_block): Do not ignore instructions in a delay slot.
3177 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
3179 * config/sparc/sparc.h (MASK_ISA): Add MASK_LEON and MASK_LEON3.
3180 (MASK_FEATURES): New macro.
3181 * config/sparc/sparc.c (sparc_option_override): Remove the special
3182 handling of -mfpu and generalize it to all MASK_FEATURES switches.
3184 2017-06-14 Eric Botcazou <ebotcazou@adacore.com>
3186 * config/sparc/driver-sparc.c (cpu_names): Add SPARC-T5 entry.
3188 2017-06-12 David S. Miller <davem@davemloft.net>
3191 * config/sparc/sparc.md (return expander): Emit frame blockage if
3192 function uses alloca.
3194 2017-06-08 Uros Bizjak <ubizjak@gmail.com>
3198 2016-12-14 Uros Bizjak <ubizjak@gmail.com>
3201 * config/i386/i386.md (*ctzhi2): New insn_and_split pattern.
3204 2017-06-08 David Edelsohn <dje.gcc@gmail.com>
3206 Backport from mainline
3207 2017-06-02 David Edelsohn <dje.gcc@gmail.com>
3209 * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE_STR): New.
3210 (dl_section_ref): New.
3211 (dwarf2out_finish): Copy debug_line_section_label to dl_section_ref.
3212 On AIX, append an expression to subtract the size of the
3213 section length to dl_section_ref.
3215 2017-06-07 Richard Biener <rguenther@suse.de>
3217 Backport from mainline
3218 2017-05-02 Richard Biener <rguenther@suse.de>
3220 PR tree-optimization/80549
3221 * tree-cfgcleanup.c (mfb_keep_latches): New helper.
3222 (cleanup_tree_cfg_noloop): Create forwarders to known loop
3223 headers if they do not have a preheader.
3225 2017-05-26 Richard Biener <rguenther@suse.de>
3227 PR tree-optimization/80842
3228 * tree-ssa-ccp.c (set_lattice_value): Always meet with the old
3231 2017-05-31 Richard Biener <rguenther@suse.de>
3233 PR tree-optimization/80906
3234 * graphite-isl-ast-to-gimple.c (copy_loop_close_phi_nodes): Get
3235 and pass through iv_map.
3236 (copy_bb_and_scalar_dependences): Adjust.
3237 (translate_pending_phi_nodes): Likewise.
3238 (copy_loop_close_phi_args): Handle code-generating IVs instead
3241 2017-05-11 Richard Biener <rguenther@suse.de>
3243 PR tree-optimization/80705
3244 * tree-vect-data-refs.c (vect_analyze_data_refs): DECL_NONALIASED
3245 bases are not vectorizable.
3247 2017-06-06 Michael Meissner <meissner@linux.vnet.ibm.com>
3249 Back port from mainline
3250 2017-05-19 Michael Meissner <meissner@linux.vnet.ibm.com>
3253 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Prefer
3254 VSX registers over GPRs, particularly on ISA 2.07 which does not
3255 have the MTVSRDD instruction.
3257 2017-06-06 David S. Miller <davem@davemloft.net>
3260 * config/sparc/sparc.c (sparc_expand_prologue): Emit frame
3261 blockage if function uses alloca.
3263 2017-06-05 Volker Reichelt <v.reichelt@netcologne.de>
3265 * doc/invoke.texi (-Wduplicated-branches): Add to warning list.
3267 2017-06-02 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
3269 Backport from mainline
3270 2017-05-05 Andre Vieira <andre.simoesdiasvieira@arm.com>
3271 Prakhar Bahuguna <prakhar.bahuguna@arm.com>
3274 * config/arm/arm.md (use_literal_pool): Remove.
3275 (64-bit immediate split): No longer takes cost into consideration
3276 if arm_disable_literal_pool is enabled.
3277 * config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
3278 used when arm_disable_literal_pool is enabled.
3279 (arm_max_const_double_inline_cost): Remove use of
3280 arm_disable_literal_pool.
3281 (push_minipool_fix): Add assert.
3282 (arm_reorg): Add return if arm_disable_literal_pool is enabled.
3283 * config/arm/vfp.md (no_literal_pool_df_immediate): New.
3284 (no_literal_pool_sf_immediate): New.
3286 2017-06-02 Jakub Jelinek <jakub@redhat.com>
3288 PR rtl-optimization/80903
3289 * loop-doloop.c (add_test): Unshare sequence.
3291 2017-05-31 Martin Jambor <mjambor@suse.cz>
3293 Backport from mainline
3294 2017-04-24 Martin Jambor <mjambor@suse.cz>
3296 PR tree-optimization/80293
3297 * tree-sra.c (scalarizable_type_p): New parameter const_decl, make
3298 char arrays not totally scalarizable if it is false.
3299 (analyze_all_variable_accesses): Pass correct value in the new
3300 parameter. Add a statistics counter.
3302 2017-05-30 Max Filippov <jcmvbkbc@gmail.com>
3304 Backport from mainline
3305 2017-05-29 Max Filippov <jcmvbkbc@gmail.com>
3307 * config/xtensa/xtensa.c (xtensa_emit_call): Use
3308 HOST_WIDE_INT_PRINT_HEX instead of 0x%lx format string.
3309 (print_operand): Use HOST_WIDE_INT_PRINT_DEC instead of %ld
3312 2017-05-29 Eric Botcazou <ebotcazou@adacore.com>
3314 * doc/install.texi (Options specification): Restore entry of
3315 --enable-sjlj-exceptions.
3317 2017-05-29 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3319 Backport from mainline
3320 2017-05-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3323 * config/s390/s390.c (s390_check_qrst_address): Check incoming
3324 address against address_operand predicate.
3325 * config/s390/s390.md ("*indirect_jump"): Swap alternatives.
3327 2017-05-28 Uros Bizjak <ubizjak@gmail.com>
3329 Backport from mainline
3330 2017-05-23 Uros Bizjak <ubizjak@gmail.com>
3332 * config/i386/i386.md (*movdi_internal): Remove SSE4
3333 alternative 18 (?r, *v). Update insn attributes.
3334 (*movsi_internal): Remove SSE4 alternative 13 (?r, *v).
3335 Update insn attributes.
3336 (*zero_extendsidi2): Remove SSE4 alternative (?r, *x).
3337 Update insn attributes.
3338 * config/i386/sse.md (vec_extract<ssevecmodelower>_0): Remove SSE4
3339 alternative 1 (r, v). Remove isa attribute.
3340 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
3341 Always move value through stack for !TARGET_INTER_UNIT_MOVES_TO_VEC
3342 and !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
3344 2017-05-16 Uros Bizjak <ubizjak@gmail.com>
3346 * config/i386/i386.md (*movsi_internal): Split (?rm,*y) alternative
3347 to (?r,*Yn) and (?m,*y) alternatives, and (?*y,rm) to (?*Ym,r)
3348 and (?*y,m). Update insn attributes.
3350 2017-05-26 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
3352 Backported from mainline
3353 2017-05-24 Sheldon Lobo <smlobo@sheldon.us.oracle.com>
3355 * config/sparc/sparc.md (length): Return the correct value for -mflat
3356 sibcalls to match output_sibcall.
3358 2017-05-26 Marek Polacek <polacek@redhat.com>
3360 Backported from mainline
3361 2017-05-26 Marek Polacek <polacek@redhat.com>
3364 * fold-const.c (fold_binary_loc) <case MULT_EXPR>: Check if OP1
3367 2017-05-26 Jakub Jelinek <jakub@redhat.com>
3369 Backported from mainline
3370 2017-05-22 Jakub Jelinek <jakub@redhat.com>
3373 * omp-low.c (finish_taskreg_remap): New function.
3374 (finish_taskreg_scan): If unit size of ctx->record_type
3375 is non-constant, unshare the size expression and replace
3376 decls in it with possible outer var refs.
3379 * gimplify.c (omp_add_variable): For GOVD_DEBUG_PRIVATE use
3380 GOVD_SHARED rather than GOVD_PRIVATE with it.
3381 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Expect
3382 GOVD_SHARED rather than GOVD_PRIVATE with GOVD_DEBUG_PRIVATE.
3385 * omp-low.c (lower_reduction_clauses): Pass OMP_CLAUSE_PRIVATE
3386 as last argument to build_outer_var_ref for pointer bases of array
3389 2017-05-25 Michael Meissner <meissner@linux.vnet.ibm.com>
3392 2017-05-18 Michael Meissner <meissner@linux.vnet.ibm.com>
3395 * config/rs6000/predicates.md (simple_offsettable_mem_operand):
3398 * config/rs6000/rs6000.md (ALTIVEC_DFORM): New iterator.
3399 (define_peephole2 for Altivec d-form load): Add peepholes to catch
3400 cases where the register allocator uses a move and an offsettable
3401 memory operation to/from a FPR register on ISA 2.06/2.07.
3402 (define_peephole2 for Altivec d-form store): Likewise.
3405 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
3408 * config/rs6000/rs6000.md (f32_lr): Delete mode attributes that
3409 are now unused after splitting mov{sf,sd}_hardfloat.
3410 (f32_lr2): Likewise.
3412 (f32_lm2): Likewise.
3414 (f32_li2): Likewise.
3417 (f32_sr2): Likewise.
3419 (f32_sm2): Likewise.
3421 (f32_si2): Likewise.
3424 (f32_vsx): Likewise.
3426 (mov<mode>_hardfloat): Split into separate movsf and movsd pieces.
3427 For movsf, order stores so the VSX stores occur before the GPR
3428 store which encourages the register allocator to use a traditional
3429 FPR instead of a GPR. For movsd, order the stores so that the GPR
3430 store comes before the VSX stores to allow the power6 to work.
3431 This is due to the power6 not having a 32-bit integer store
3432 instruction from a FPR.
3433 (movsf_hardfloat): Likewise.
3434 (movsd_hardfloat): Likewise.
3436 2017-05-25 Wilco Dijkstra <wdijkstr@arm.com>
3438 Backport from mainlin
3439 PR rtl-optimization/80754
3440 * lra-remat.c (do_remat): Add overlap checks for dst_regno.
3442 2017-05-25 Wilco Dijkstra <wdijkstr@arm.com>
3444 Backport from mainline
3446 * config/aarch64/cortex-a57-fma-steering.c (merge_forest):
3447 Move member access before delete.
3449 2017-05-23 Sheldon Lobo <sheldon.lobo@oracle.com>
3451 Backport from mainline
3452 2017-05-18 Sheldon Lobo <sheldon.lobo@oracle.com>
3454 * config/sparc/sparc.c (sparc_option_override): Set function
3455 alignment for -mcpu=niagara7 to 64 to match the I$ line.
3456 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC M7 branch
3458 * config/sparc/sparc.h (BRANCH_COST): Set the SPARC T4 branch
3460 * config/sparc/sol2.h: Fix a ASM_CPU32_DEFAULT_SPEC typo.
3462 2017-05-19 Uros Bizjak <ubizjak@gmail.com>
3464 Backport from mainline
3465 2017-05-18 Uros Bizjak <ubizjak@gmail.com>
3468 * config/i386/mmx.md (*mov<mode>_internal): Enable
3469 alternatives 11, 12, 13 and 14 also for 32bit targets.
3470 Remove alternatives 15, 16, 17 and 18.
3471 * config/i386/sse.md (vec_concatv2di): Change
3472 alternative (!x, *y) to (x, ?!*Yn).
3474 2017-05-14 Uros Bizjak <ubizjak@gmail.com>
3476 Backport from mainline
3477 2017-05-11 Uros Bizjak <ubizjak@gmail.com>
3480 * config/i386/sync.md (UNSPEC_LDX_ATOMIC): New unspec.
3481 (UNSPEC_STX_ATOMIC): Ditto.
3482 (loaddi_via_sse): New insn.
3483 (storedi_via_sse): Ditto.
3484 (atomic_loaddi_fpu): Emit loaddi_via_sse and storedi_via_sse.
3485 Update corresponding peephole2 patterns.
3486 (atomic_storedi_fpu): Ditto.
3488 2017-05-13 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3490 Backport from mainline
3491 2017-05-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3493 * config/rs6000/rs6000.c (rs6000_vect_nonmem): New static var.
3494 (rs6000_init_cost): Initialize rs6000_vect_nonmem.
3495 (rs6000_add_stmt_cost): Update rs6000_vect_nonmem.
3496 (rs6000_finish_cost): Avoid vectorizing simple copy loops with
3497 VF=2 that require versioning.
3499 2017-05-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3501 Backport from mainline
3502 2017-05-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
3504 * config/rs6000/rs6000.c (altivec_init_builtins): Define POWER8
3505 built-ins for vec_xl and vec_xst with short and char pointer
3508 2017-05-10 John David Anglin <danglin@gcc.gnu.org>
3511 * config/pa/pa.c (pa_assemble_integer): When outputting a SYMBOL_REF,
3512 handle calling assemble_external ourself.
3515 * config/pa/pa.c (pa_cannot_change_mode_class): Reject changes to/from
3516 modes with zero size. Enhance comment.
3518 2017-05-09 Michael Meissner <meissner@linux.vnet.ibm.com>
3520 Back port from mainline
3521 2017-05-05 Michael Meissner <meissner@linux.vnet.ibm.com>
3526 * config/rs6000/rs6000.md (u code attribute): Add FIX and
3528 (extendsi<mode>2): Add support for doing sign extension via
3529 VUPKHSW and XXPERMDI if the value is in Altivec registers and we
3530 don't have ISA 3.0 instructions.
3531 (extendsi<mode>2 splitter): Likewise.
3532 (fix_trunc<mode>si2): If we are at ISA 2.07 (VSX small integer),
3533 generate the normal insns since SImode can now go in vector
3534 registers. Disallow the special UNSPECs needed for previous
3535 machines to hide SImode being used. Add new insns
3536 fctiw{,w}_<mode>_smallint if SImode can go in vector registers.
3537 (fix_trunc<mode>si2_stfiwx): Likewise.
3538 (fix_trunc<mode>si2_internal): Likewise.
3539 (fixuns_trunc<mode>si2): Likewise.
3540 (fixuns_trunc<mode>si2_stfiwx): Likewise.
3541 (fctiw<u>z_<mode>_smallint): Likewise.
3542 (fctiw<u>z_<mode>_mem): New combiner pattern to prevent conversion
3543 of floating point to 32-bit integer from doing a direct move to
3544 the GPR registers to do a store.
3545 (fctiwz_<mode>): Break long line.
3547 2017-05-08 Tamar Christina <tamar.christina@arm.com>
3550 * expr.c (expand_expr_real_2): Move TRUNC_MOD_EXPR, FLOOR_MOD_EXPR,
3551 CEIL_MOD_EXPR, ROUND_MOD_EXPR cases.
3553 2017-05-03 Jan Beulich <jbeulich@suse.com>
3555 Backport from mainline
3556 2017-05-01 Jan Beulich <jbeulich@suse.com>
3558 * config/i386/sse.md (xop_vpermil2<mode>3): Do not allow operand
3559 swapping, add (x,x,m,x,n) alternative.
3561 2017-05-03 Richard Biener <rguenther@suse.de>
3563 Backport from mainline
3564 2017-04-20 Richard Biener <rguenther@suse.de>
3566 PR tree-optimization/80453
3567 * tree-ssa-sccvn.h (struct vn_phi_s): Add cclhs and ccrhs members.
3568 * tree-ssa-sccvn.c (cond_stmts_equal_p): Use recorded lhs and rhs
3569 from the conditions.
3570 (vn_phi_eq): Pass them down.
3571 (vn_phi_lookup): Record them.
3572 (vn_phi_insert): Likewise.
3574 2017-04-25 Richard Biener <rguenther@suse.de>
3576 PR tree-optimization/80492
3577 * alias.c (compare_base_decls): Handle registers with asm
3578 specification conservatively.
3580 2017-04-27 Richard Biener <rguenther@suse.de>
3583 * tree-chrec.c (chrec_fold_plus_poly_poly): Deal with not
3584 being in loop-closed SSA form conservatively.
3585 (chrec_fold_multiply_poly_poly): Likewise.
3587 2017-05-02 Uros Bizjak <ubizjak@gmail.com>
3589 Backport from mainline
3590 2017-05-01 Uros Bizjak <ubizjak@gmail.com>
3593 * config/i386/cpuid.h (__get_cpuid): Always return 0 when
3594 __get_cpuid_max returns 0.
3595 (__get_cpuid_count): Ditto.
3597 2017-05-02 Jakub Jelinek <jakub@redhat.com>
3599 Backported from mainline
3600 2017-04-25 Jakub Jelinek <jakub@redhat.com>
3602 * Makefile.in (s-options): Invoke opt-gather.awk with LC_ALL=C in the
3605 2017-05-02 Jakub Jelinek <jakub@redhat.com>
3607 * BASE-VER: Set to 7.1.1.
3609 2017-05-02 Release Manager
3611 * GCC 7.1.0 released.
3613 2017-05-02 Richard Biener <rguenther@suse.de>
3615 PR tree-optimization/80591
3617 2017-04-10 Richard Biener <rguenther@suse.de>
3619 * tree-ssa-structalias.c (find_func_aliases): Properly handle
3622 2017-04-28 Jakub Jelinek <jakub@redhat.com>
3625 * cgraph.h (symtab_node::debug_symtab): No longer inline.
3626 * symtab.c (symtab_node::debug_symtab): Move definition here.
3628 2017-04-27 Richard Earnshaw <rearnsha@arm.com>
3631 * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
3632 that the logic for permitting reciprocal estimates matches that
3635 2017-04-27 Jakub Jelinek <jakub@redhat.com>
3638 * tree.c (type_cache_hasher::equal): Only compare
3639 TYPE_TYPELESS_STORAGE flag on non-aggregate element types.
3640 (build_array_type_1): Only hash TYPE_TYPELESS_STORAGE flag on
3641 non-aggregate element types.
3642 * tree.h (TYPE_TYPELESS_STORAGE): Fix comment typo, add more details
3643 about the flag on ARRAY_TYPEs in the comment, formatting fix.
3646 * reg-stack.c (emit_swap_insn): If i1src mentions the stack pointer,
3647 punt if tmp contains autoinc of stack pointer.
3650 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): Remove.
3651 (aarch64_function_arg_alignment): Return unsigned int again, but still
3652 ignore TYPE_FIELDS chain decls other than FIELD_DECLs.
3653 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3654 Don't emit -Wpsabi note.
3655 (aarch64_function_arg_boundary): Likewise.
3656 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3659 2017-04-25 Martin Sebor <msebor@redhat.com>
3661 PR tree-optimization/80497
3662 * gimple-ssa-sprintf.c (get_int_range): Avoid assuming all integer
3663 constants are representable in HOST_WIDE_INT.
3664 (parse_directive): Ditto.
3666 2017-04-25 Marek Polacek <polacek@redhat.com>
3668 2017-04-25 Marek Polacek <polacek@redhat.com>
3669 Backport from mainline
3672 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
3673 first argument to type.
3675 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3676 Jakub Jelinek <jakub@redhat.com>
3679 * config/arm/arm.c: Include gimple.h.
3680 (aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
3681 returns negative, increment ncrn only if it returned positive.
3682 (arm_needs_doubleword_align): Return int instead of bool,
3683 ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
3684 members, but if there is any such non-FIELD_DECL
3685 > PARM_BOUNDARY aligned decl, return -1 instead of false.
3686 (arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
3687 returns negative, increment nregs only if it returned positive.
3688 (arm_setup_incoming_varargs): Likewise.
3689 (arm_function_arg_boundary): Emit -Wpsabi note if
3690 arm_needs_doubleword_align returns negative, return
3691 DOUBLEWORD_ALIGNMENT only if it returned positive.
3693 2017-04-25 Bill Seurer <seurer@linux.vnet.ibm.com>
3695 Backport from mainline
3697 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Change
3698 type checks to test for compatibility instead of equality.
3700 2017-04-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3701 Jakub Jelinek <jakub@redhat.com>
3704 * config/aarch64/aarch64.c (struct aarch64_fn_arg_alignment): New
3706 (aarch64_function_arg_alignment): Return aarch64_fn_arg_alignment
3707 struct. Ignore DECL_ALIGN of decls other than FIELD_DECL for
3708 the alignment computation, but return their maximum in warn_alignment.
3709 (aarch64_layout_arg): Adjust aarch64_function_arg_alignment caller.
3710 Emit a -Wpsabi note if warn_alignment is 16 bytes, but alignment
3712 (aarch64_function_arg_boundary): Likewise. Simplify using MIN/MAX.
3713 (aarch64_gimplify_va_arg_expr): Adjust aarch64_function_arg_alignment
3716 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3718 Backport from mainline
3719 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3722 * config/s390/vector.md: Split MEM->GPR vector moves for
3723 non-s_operand addresses.
3725 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3727 Backport from mainline
3728 2017-04-25 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3731 * config/s390/predicates.md (reload_const_wide_int_operand): New
3733 * config/s390/s390.md ("movti"): Remove d/P alternative.
3734 ("movti_bigconst"): New pattern definition.
3736 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
3738 Backport from maineline
3739 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
3742 * s390-protos.h (s390_expand_cs_hqi): Removed.
3743 (s390_expand_cs, s390_expand_atomic_exchange_tdsi): New prototypes.
3744 * config/s390/s390.c (s390_emit_compare_and_swap): Handle all integer
3745 modes as well as CCZ1mode and CCZmode.
3746 (s390_expand_atomic_exchange_tdsi, s390_expand_atomic): Adapt to new
3747 signature of s390_emit_compare_and_swap.
3748 (s390_expand_cs_hqi): Likewise, make static.
3749 (s390_expand_cs_tdsi): Generate an explicit compare before trying
3750 compare-and-swap, in some cases.
3751 (s390_expand_cs): Wrapper function.
3752 (s390_expand_atomic_exchange_tdsi): New backend specific expander for
3754 (s390_match_ccmode_set): Allow CCZmode <-> CCZ1 mode.
3755 * config/s390/s390.md ("atomic_compare_and_swap<mode>"): Merge the
3756 patterns for small and large integers. Forbid symref memory operands.
3757 Move expander to s390.c. Require cc register.
3758 ("atomic_compare_and_swap<DGPR:mode><CCZZ1:mode>_internal")
3759 ("*atomic_compare_and_swap<TDI:mode><CCZZ1:mode>_1")
3760 ("*atomic_compare_and_swapdi<CCZZ1:mode>_2")
3761 ("*atomic_compare_and_swapsi<CCZZ1:mode>_3"): Use s_operand to forbid
3762 symref memory operands. Remove CC mode and call s390_match_ccmode
3764 ("atomic_exchange<mode>"): Allow and implement all integer modes.
3766 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
3768 Backport from mainline
3769 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
3771 * config/s390/s390.md (define_peephole2): New peephole to help
3772 combining the load-and-test pattern with volatile memory.
3775 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
3777 Backport from mainline
3778 2017-04-25 Dominik Vogt <vogt@linux.vnet.ibm.com>
3780 * config/s390/s390.md ("cstorecc4"): Use load-on-condition and deal
3781 with CCZmode for TARGET_Z196.
3783 2017-04-25 Jakub Jelinek <jakub@redhat.com>
3785 PR rtl-optimization/80501
3786 * combine.c (make_compound_operation_int): Set subreg_code to SET
3787 even for AND with mask of the sign bit of mode.
3789 PR rtl-optimization/80500
3790 * loop-unroll.c (combine_var_copies_in_loop_exit): Call copy_rtx on
3791 sum's initial value.
3793 2017-04-24 Martin Liska <mliska@suse.cz>
3795 Backport from mainline
3796 2017-04-24 Jan Hubicka <hubicka@ucw.cz>
3799 * ipa-devirt.c (dump_possible_polymorphic_call_targets): Fix ICE.
3801 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
3803 Backport from mainline
3804 2017-04-20 Alexander Monakov <amonakov@ispras.ru>
3806 * omp-low.c (lower_lastprivate_clauses): Correct handling of linear
3807 and lastprivate clauses in SIMT case.
3809 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
3811 Backport from mainline
3812 2017-04-20 Matthew Fortune <matthew.fortune@imgtec.com>
3814 * config/mips/mips.c (mips_expand_vec_perm_const): Re-fix
3815 uninitialized variable warning to avoid buffer overrun.
3817 2017-04-20 Jakub Jelinek <jakub@redhat.com>
3819 * DEV-PHASE: Set to prerelease.
3821 2017-04-20 Thomas Preud'homme <thomas.preudhomme@arm.com>
3823 * config/arm/arm.c (arm_elf_asm_cdtor): Create non-default
3824 priority .init_array and .fini_array section with SECTION_NOTYPE
3827 2017-04-20 Jakub Jelinek <jakub@redhat.com>
3830 * tree.h (build_array_type): Add typeless_storage default argument.
3831 * tree.c (type_cache_hasher::equal): Also compare
3832 TYPE_TYPELESS_STORAGE flag for ARRAY_TYPEs.
3833 (build_array_type): Add typeless_storage argument, set
3834 TYPE_TYPELESS_STORAGE to it, if shared also hash it, and pass to
3836 (build_nonshared_array_type): Adjust build_array_type_1 caller.
3837 (build_array_type): Likewise. Add typeless_storage argument.
3839 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
3840 Jakub Jelinek <jakub@redhat.com>
3842 PR tree-optimization/80426
3843 * tree-vrp.c (extract_range_from_binary_expr_1): For an additive
3844 operation on symbolic operands, also compute the overflow for the
3845 invariant part when the operation degenerates into a negation.
3847 2017-04-19 Jakub Jelinek <jakub@redhat.com>
3850 * dwarf2out.c (modified_type_die, gen_type_die_with_usage):
3851 Check for t with zero TYPE_QUALS_NO_ADDR_SPACE.
3854 * tree-ssa-loop-manip.c (find_uses_to_rename_def): Ignore debug uses.
3856 2017-04-19 Georg-Johann Lay <avr@gjlay.de>
3859 * config/avr/avr.c (tree.h): Include it.
3860 (cgraph.h): Include it.
3861 (avr_encode_section_info): Don't warn for uninitialized progmem
3862 variable if it's just an alias.
3864 2017-04-19 Richard Biener <rguenther@suse.de>
3867 * auto-profile.c (afdo_vpt_for_early_inline): Update SSA
3868 when needed by AutoPGO.
3870 2017-04-19 Paulo J. Matos <paulo@matos-sorge.com>
3873 * doc/lto.texi: Remove an extra 'that'.
3875 2017-04-19 Segher Boessenkool <segher@kernel.crashing.org>
3877 PR rtl-optimization/80429
3878 * ira.c (split_live_ranges_for_shrink_wrap): Don't split regs that
3879 are only used in debug insns.
3881 2017-04-19 Eric Botcazou <ebotcazou@adacore.com>
3882 Vladimir Makarov <vmakarov@redhat.com>
3884 * config/sparc/predicates.md (input_operand): Add comment. Return
3885 true for any memory operand when LRA is in progress.
3886 * config/sparc/sparc.c (sparc_expand_move): Minor formatting fix.
3888 2017-04-18 Jeff Law <law@redhat.com>
3891 * mips.md ({return,simple_return}_internal): Do not overwrite
3894 2017-04-18 Jakub Jelinek <jakub@redhat.com>
3896 PR tree-optimization/80443
3897 * tree-vrp.c (intersect_ranges): For signed 1-bit precision type,
3898 instead of adding 1, subtract -1 and similarly instead of subtracting
3901 2017-04-18 Richard Sandiford <richard.sandiford@arm.com>
3903 PR rtl-optimization/80357
3904 * haifa-sched.c (tmp_bitmap): New variable.
3905 (model_recompute): Handle duplicate use records.
3906 (alloc_global_sched_pressure_data): Initialize tmp_bitmap.
3907 (free_global_sched_pressure_data): Free it.
3909 2017-04-18 Bernd Edlinger <bernd.edlinger@hotmail.de>
3912 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
3913 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
3914 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
3915 instead of SYSTEM_HEADER_DIR.
3917 2017-04-18 Jeff Law <law@redhat.com>
3920 * cfgcleanup.c (try_crossjump_to_edge): Verify SRC1 and SRC2 have
3921 predecessors after walking up the insn chain.
3923 2017-04-18 Jakub Jelinek <jakub@redhat.com>
3926 * dwarf2out.c (modified_type_die): Try harder not to emit internal
3927 sizetype type into debug info.
3929 2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
3932 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Eliminate
3933 unneeded test for TARGET_UPPER_REGS_SF.
3934 * config/rs6000/vsx.md (vsx_extract_v4sf_var): Likewise.
3936 2017-04-18 Jakub Jelinek <jakub@redhat.com>
3939 * sancov.c (sancov_pass): Use gsi_start_nondebug_after_labels_bb
3940 instead of gsi_after_labels.
3942 2017-04-18 Jeff Law <law@redhat.com>
3944 * regcprop.c (maybe_mode_change): Avoid creating copies of the
3948 2017-04-13 Jeff Law <law@redhat.com>
3949 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
3950 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
3952 2017-04-18 Georg-Johann Lay <avr@gjlay.de>
3955 * config/avr/avr.c (intl.h): Include it.
3956 (avr_pgm_check_var_decl) [reason]: Wrap diagnostic snippets into _().
3958 2017-04-18 Martin Liska <mliska@suse.cz>
3960 PR gcov-profile/78783
3961 * gcov-tool.c (gcov_output_files): Validate that destination
3962 file is either removed by the tool or by a user.
3964 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
3965 Guy Benyei <guybe@mellanox.com>
3967 * config/arc/arc.c (arc_reorg): Move loop_end_id into a more local
3968 block, and do not negate it, the stored id is already negative.
3970 2017-04-14 Andrew Burgess <andrew.burgess@embecosm.com>
3972 * config/arc/arc.md (doloop_begin_i): Use @pcl assembler syntax.
3974 2017-04-14 Michael Meissner <meissner@linux.vnet.ibm.com>
3977 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS): Define
3978 masks of options that should be turned off if the VSX vector
3979 options are turned off.
3980 (OTHER_P8_VECTOR_MASKS): Likewise.
3981 (OTHER_VSX_VECTOR_MASKS): Likewise.
3982 * config/rs6000/rs6000.c (rs6000_option_override_internal): Call
3983 rs6000_disable_incompatible_switches to validate no type switches
3985 (rs6000_incompatible_switch): New function to disallow turning on
3986 other vector options if -mno-vsx, -mno-power8-vector, or
3987 -mno-power9-vector are specified.
3989 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
3991 * config/arc/arc.h (CRT_CALL_STATIC_FUNCTION): Use long calls.
3993 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
3995 * config/arc/arc-protos.h (arc_decl_pretend_args): Remove.
3996 * config/arc/arc.c (arc_decl_pretend_args): Likewise.
3997 * config/arc/arc.h (CFA_FRAME_BASE_OFFSET): Likewise.
3998 (ARG_POINTER_CFA_OFFSET): Likewise.
4000 2017-04-14 Claudiu Zissulescu <claziss@synopsys.com>
4002 * config/arc/arc.c (arc_mode_dependent_address_p): Relax
4003 conditions to take advantage of various optimizations.
4005 2017-04-13 Jeff Law <law@redhat.com>
4007 * config/mips.mips.md (zero_extendsidi2): Do not allow SP to appear
4008 in operands[1] if it is a MEM and TARGET_MIPS16 is active.
4009 (zero_extendsidi2_dext): Likewise.
4011 2017-04-13 Jakub Jelinek <jakub@redhat.com>
4014 * fold-const.c (fold_ternary_loc): Revert
4015 use op0 instead of fold_convert_loc (loc, type, arg0) part of
4018 2017-04-13 Vladimir Makarov <vmakarov@redhat.com>
4020 PR rtl-optimization/80343
4021 * lra-remat.c (update_scratch_ops): Assign original hard reg to
4024 2017-04-13 Denis Khalikov <d.khalikov@partner.samsung.com>
4027 * ubsan.c (ubsan_expand_bounds_ifn): Pass original index
4028 to ubsan_encode_value.
4030 2017-04-13 Jeff Law <law@redhat.com>
4032 * reload1.c (eliminate_regs_1): Call gen_rtx_raw_SUBREG for SUBREGs
4033 appearing in DEBUG_INSNs.
4035 2017-04-13 Martin Liska <mliska@suse.cz>
4037 PR gcov-profile/80413
4038 * gcov-io.c (gcov_write_string): Copy to buffer just when
4039 allocated size is greater than zero.
4041 2017-04-13 Jakub Jelinek <jakub@redhat.com>
4044 * dwarf2out.c (decls_for_scope): Ignore declarations of
4045 current_function_decl in BLOCK_NONLOCALIZED_VARS.
4047 2017-04-12 Jan Hubicka <hubicka@ucw.cz>
4050 * ipa-visibility.c (non_local_p): Fix typos.
4051 (localize_node): When localizing symbol in same comdat group,
4052 dissolve the group only when we know external symbols are going
4054 (function_and_variable_visibility): Do not localize DECL_EXTERNAL.
4056 2017-04-12 Jakub Jelinek <jakub@redhat.com>
4058 PR tree-optimization/79390
4059 * optabs.c (emit_conditional_move): If the preferred op2/op3 operand
4060 order does not result in usable sequence, retry with reversed operand
4066 * fold-const.c (fold_ternary_loc): Use op1 instead of arg1 as argument
4067 to fold_build2_loc. Convert TREE_OPERAND (tem, 0) to type. Use
4068 op0 instead of fold_convert_loc (loc, type, arg0).
4070 2017-04-12 Jeff Law <law@redhat.com>
4072 * genattrtab.c (write_eligible_delay): Verify DELAY_INSN still
4073 has a delay slot in the generated code.
4075 * config/cris/cris.md (cris_preferred_reload_class): Return
4076 GENNONACR_REGS rather than GENERAL_REGS.
4078 2017-04-12 Jakub Jelinek <jakub@redhat.com>
4081 * expr.c <CASE_CONVERT>: For EXPAND_INITIALIZER determine SIGN_EXTEND
4082 vs. ZERO_EXTEND based on signedness of treeop0's type rather than
4083 signedness of the result type.
4085 2017-04-12 Richard Biener <rguenther@suse.de>
4086 Jeff Law <law@redhat.com>
4088 PR tree-optimization/80359
4089 * tree-ssa-dse.c (maybe_trim_partially_dead_store): Do not
4090 trim stores to TARGET_MEM_REFs.
4092 2017-04-12 Richard Biener <rguenther@suse.de>
4094 PR tree-optimization/79390
4095 * gimple-ssa-split-paths.c (is_feasible_trace): Restrict
4096 threading case even more.
4098 2017-04-12 Segher Boessenkool <segher@kernel.crashing.org>
4101 * config/rs6000/sync.md (atomic_load<mode>, atomic_store<mode): Test
4102 for quad_address_p for TImode, instead of just not indexed_address.
4104 2017-04-12 Richard Biener <rguenther@suse.de>
4105 Bernd Edlinger <bernd.edlinger@hotmail.de>
4108 * alias.c (component_uses_parent_alias_set_from): Handle
4109 TYPE_TYPELESS_STORAGE.
4110 (get_alias_set): Likewise.
4111 * tree-core.h (tree_type_common): Add typeless_storage flag.
4112 * tree.h (TYPE_TYPELESS_STORAGE): New macro.
4113 * stor-layout.c (place_union_field): Set TYPE_TYPELESS_STORAGE
4114 for types containing members with TYPE_TYPELESS_STORAGE.
4115 (place_field): Likewise.
4116 (layout_type): Likewise for ARRAY_TYPE.
4117 * lto-streamer-out.c (hash_tree): Hash TYPE_TYPELESS_STORAGE.
4118 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Stream
4119 TYPE_TYPELESS_STORAGE.
4120 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise.
4122 2017-04-12 Jakub Jelinek <jakub@redhat.com>
4125 * fold-const.c (fold_binary_loc) <case BIT_IOR_EXPR>: Convert arg0's
4126 first argument to type.
4128 2017-04-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4132 * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return
4133 CONST0_RTX (mode) rather than const0_rtx where appropriate.
4134 (rs6000_expand_binop_builtin): Likewise.
4135 (rs6000_expand_ternop_builtin): Likewise; also add missing
4136 vsx_xxpermdi_* variants; also fix typo (arg1 => arg2) for
4137 vshasigma built-ins.
4138 * doc/extend.texi: Document that vec_xxpermdi's third argument
4141 2017-04-11 Uros Bizjak <ubizjak@gmail.com>
4143 * config/i386/i386.c (dimode_scalar_chain::compute_convert_gain):
4144 Use shift_const cost parameter when calculating gain of STV shifts.
4146 2017-04-11 Vladimir Makarov <vmakarov@redhat.com>
4148 PR rtl-optimization/70478
4149 * lra-constraints.c (process_alt_operands): Check memory for
4150 disfavoring memory insn operand.
4152 2017-04-11 Jakub Jelinek <jakub@redhat.com>
4155 * simplify-rtx.c (simplify_binary_operation_1) <case IOR>: Perform
4156 left shift in unsigned HOST_WIDE_INT type.
4158 PR rtl-optimization/80385
4159 * simplify-rtx.c (simplify_unary_operation_1): Don't transform
4160 (not (neg X)) into (plus X -1) for complex or non-integral modes.
4163 * omp-low.c (scan_omp_task): Don't optimize away empty tasks
4164 if they have any depend clauses.
4166 2017-04-11 Martin Liska <mliska@suse.cz>
4169 * cgraph.c (cgraph_node::dump): Dump calls_comdat_local.
4170 * ipa-split.c (split_function): Create a local comdat symbol
4171 if caller is in a comdat group.
4173 2017-04-11 Martin Liska <mliska@suse.cz>
4176 * ipa-cp.c (determine_versionability): Handle calls_comdat_local
4179 2017-04-11 Martin Sebor <msebor@redhat.com>
4182 * gimple-ssa-sprintf.c (get_int_range): Remove second argument and
4183 always use the int type. Use INTEGRAL_TYPE_P() rather than testing
4185 (directive::set_width, directive::set_precision, format_character):
4187 (parse_directive): Use INTEGRAL_TYPE_P() rather than testing for
4190 2017-04-11 Richard Earnshaw <rearnsha@arm.com>
4193 * config/arm/arm.c (arm_configure_build_target): When -mcpu and -arch
4194 conflict, set target->arch_name instead of target->cpu_name.
4196 2017-04-11 Richard Biener <rguenther@suse.de>
4198 PR tree-optimization/80374
4199 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Use
4200 build_zero_cst, remove fold_convertible_p check again.
4202 2017-04-11 Martin Liska <mliska@suse.cz>
4205 * ubsan.c (instrument_object_size): Do not instrument register
4208 2017-04-11 Jakub Jelinek <jakub@redhat.com>
4211 * config/i386/i386-builtin-types.def
4212 (V16HI_FTYPE_V16HI_INT_V16HI_UHI_COUNT,
4213 V16HI_FTYPE_V16HI_V8HI_V16HI_UHI_COUNT,
4214 V16SI_FTYPE_V16SI_INT_V16SI_UHI_COUNT,
4215 V16SI_FTYPE_V16SI_V4SI_V16SI_UHI_COUNT,
4216 V2DI_FTYPE_V2DI_INT_V2DI_UQI_COUNT,
4217 V2DI_FTYPE_V2DI_V2DI_V2DI_UQI_COUNT,
4218 V32HI_FTYPE_V32HI_INT_V32HI_USI_COUNT,
4219 V32HI_FTYPE_V32HI_V8HI_V32HI_USI_COUNT,
4220 V4DI_FTYPE_V4DI_INT_V4DI_UQI_COUNT,
4221 V4DI_FTYPE_V4DI_V2DI_V4DI_UQI_COUNT,
4222 V4SI_FTYPE_V4SI_INT_V4SI_UQI_COUNT,
4223 V4SI_FTYPE_V4SI_V4SI_V4SI_UQI_COUNT,
4224 V8DI_FTYPE_V8DI_INT_V8DI_UQI_COUNT,
4225 V8DI_FTYPE_V8DI_V2DI_V8DI_UQI_COUNT,
4226 V8HI_FTYPE_V8HI_INT_V8HI_UQI_COUNT,
4227 V8HI_FTYPE_V8HI_V8HI_V8HI_UQI_COUNT,
4228 V8SI_FTYPE_V8SI_INT_V8SI_UQI_COUNT,
4229 V8SI_FTYPE_V8SI_V4SI_V8SI_UQI_COUNT): New function type aliases.
4230 * config/i386/i386-builtin.def (__builtin_ia32_pslld512_mask,
4231 __builtin_ia32_pslldi512_mask, __builtin_ia32_psllq512_mask,
4232 __builtin_ia32_psllqi512_mask, __builtin_ia32_psrad512_mask,
4233 __builtin_ia32_psradi512_mask, __builtin_ia32_psraq512_mask,
4234 __builtin_ia32_psraqi512_mask, __builtin_ia32_psrld512_mask,
4235 __builtin_ia32_psrldi512_mask, __builtin_ia32_psrlq512_mask,
4236 __builtin_ia32_psrlqi512_mask, __builtin_ia32_psllwi128_mask,
4237 __builtin_ia32_pslldi128_mask, __builtin_ia32_psllqi128_mask,
4238 __builtin_ia32_psllw128_mask, __builtin_ia32_pslld128_mask,
4239 __builtin_ia32_psllq128_mask, __builtin_ia32_psllwi256_mask,
4240 __builtin_ia32_psllw256_mask, __builtin_ia32_pslldi256_mask,
4241 __builtin_ia32_pslld256_mask, __builtin_ia32_psllqi256_mask,
4242 __builtin_ia32_psllq256_mask, __builtin_ia32_psradi128_mask,
4243 __builtin_ia32_psrad128_mask, __builtin_ia32_psradi256_mask,
4244 __builtin_ia32_psrad256_mask, __builtin_ia32_psraqi128_mask,
4245 __builtin_ia32_psraq128_mask, __builtin_ia32_psraqi256_mask,
4246 __builtin_ia32_psraq256_mask, __builtin_ia32_psrldi128_mask,
4247 __builtin_ia32_psrld128_mask, __builtin_ia32_psrldi256_mask,
4248 __builtin_ia32_psrld256_mask, __builtin_ia32_psrlqi128_mask,
4249 __builtin_ia32_psrlq128_mask, __builtin_ia32_psrlqi256_mask,
4250 __builtin_ia32_psrlq256_mask, __builtin_ia32_psrawi256_mask,
4251 __builtin_ia32_psraw256_mask, __builtin_ia32_psrawi128_mask,
4252 __builtin_ia32_psraw128_mask, __builtin_ia32_psrlwi256_mask,
4253 __builtin_ia32_psrlw256_mask, __builtin_ia32_psrlwi128_mask,
4254 __builtin_ia32_psrlw128_mask, __builtin_ia32_psllwi512_mask,
4255 __builtin_ia32_psllw512_mask, __builtin_ia32_psrawi512_mask,
4256 __builtin_ia32_psraw512_mask, __builtin_ia32_psrlwi512_mask,
4257 __builtin_ia32_psrlw512_mask): Use _COUNT suffixed function type
4259 * config/i386/i386.c (ix86_expand_args_builtin): Rename last_arg_count
4260 flag to second_arg_count, handle 4 argument function type _COUNT
4261 aliases, handle second_arg_count on second argument rather than last.
4263 2017-04-10 Jeff Law <law@redhat.com>
4265 PR tree-optimization/80374
4266 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Do not try to
4267 record anything if we can not convert integer_zero_node to the
4270 2017-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
4273 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4274 Enhance special handling given to the TARGET_P9_MINMAX option in
4275 relation to certain other options.
4277 2017-04-10 Bin Cheng <bin.cheng@arm.com>
4279 PR tree-optimization/80153
4280 * tree-ssa-loop-ivopts.c (add_iv_candidate_for_use): Check and
4281 remove POINTER_PLUS_EXPR's base part directly, rather than through
4284 2017-04-10 Richard Biener <rguenther@suse.de>
4285 Bin Cheng <bin.cheng@arm.com>
4287 PR tree-optimization/80153
4288 * tree-affine.c (aff_combination_to_tree): Get base pointer from
4289 the first element of pointer type aff_tree. Build result expr in
4291 (add_elt_to_tree): Convert to type unconditionally. Remove other
4293 * tree-ssa-loop-ivopts.c (alloc_iv): Pass in consistent types.
4294 (rewrite_use_nonlinear_expr): Check invariant using iv information.
4296 2017-04-10 Richard Biener <rguenther@suse.de>
4298 * tree-ssa-structalias.c (find_func_aliases): Properly handle
4301 2017-04-10 Vladimir Makarov <vmakarov@redhat.com>
4303 PR rtl-optimization/70478
4304 * lra-constraints.c (curr_small_class_check): New.
4305 (update_and_check_small_class_inputs): New.
4306 (process_alt_operands): Update curr_small_class_check. Disfavor
4307 alternative insn memory operands. Check available regs for small
4310 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
4313 * config/mips/mips.opt (-mvirt): Update description.
4314 * doc/invoke.texi (-mvirt): Likewise.
4316 2017-04-10 Richard Biener <rguenther@suse.de>
4319 * fold-const.c (fold_binary_loc): Look at unstripped ops when
4320 looking for NEGATE_EXPR in -A / -B to A / B folding.
4322 2017-04-10 Martin Liska <mliska@suse.cz>
4324 PR gcov-profile/80224
4325 * gcov.c (print_usage): Fix usage string.
4326 (get_gcov_intermediate_filename): Remove.
4327 (output_gcov_file): Use both for normal and intermediate format.
4328 (generate_results): Do not initialize special file for
4329 intermediate format.
4331 2017-04-10 Richard Biener <rguenther@suse.de>
4333 PR tree-optimization/80304
4334 * tree-ssa-loop-im.c (ref_indep_loop_p_1): Also recurse
4337 2017-04-10 Nathan Sidwell <nathan@acm.org>
4340 * config/rs6000/rs6000.c (rs6000_vector_type): New.
4341 (rs6000_init_builtins): Use it.
4343 2016-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4345 * config/arm/arm.md (<mrc>): Add mode to SET source.
4348 2017-04-10 Richard Biener <rguenther@suse.de>
4351 * gimplify.c (is_gimple_mem_rhs_or_call): Allow CLOBBERs.
4353 2017-04-10 Jakub Jelinek <jakub@redhat.com>
4356 * config/i386/avx512fintrin.h (_mm512_reduce_add_epi32,
4357 _mm512_reduce_mul_epi32, _mm512_reduce_and_epi32,
4358 _mm512_reduce_or_epi32, _mm512_mask_reduce_add_epi32,
4359 _mm512_mask_reduce_mul_epi32, _mm512_mask_reduce_and_epi32,
4360 _mm512_mask_reduce_or_epi32, _mm512_reduce_min_epi32,
4361 _mm512_reduce_max_epi32, _mm512_reduce_min_epu32,
4362 _mm512_reduce_max_epu32, _mm512_mask_reduce_min_epi32,
4363 _mm512_mask_reduce_max_epi32, _mm512_mask_reduce_min_epu32,
4364 _mm512_mask_reduce_max_epu32, _mm512_reduce_add_ps,
4365 _mm512_reduce_mul_ps, _mm512_mask_reduce_add_ps,
4366 _mm512_mask_reduce_mul_ps, _mm512_reduce_min_ps, _mm512_reduce_max_ps,
4367 _mm512_mask_reduce_min_ps, _mm512_mask_reduce_max_ps,
4368 _mm512_reduce_add_epi64, _mm512_reduce_mul_epi64,
4369 _mm512_reduce_and_epi64, _mm512_reduce_or_epi64,
4370 _mm512_mask_reduce_add_epi64, _mm512_mask_reduce_mul_epi64,
4371 _mm512_mask_reduce_and_epi64, _mm512_mask_reduce_or_epi64,
4372 _mm512_reduce_min_epi64, _mm512_reduce_max_epi64,
4373 _mm512_mask_reduce_min_epi64, _mm512_mask_reduce_max_epi64,
4374 _mm512_reduce_min_epu64, _mm512_reduce_max_epu64,
4375 _mm512_mask_reduce_min_epu64, _mm512_mask_reduce_max_epu64,
4376 _mm512_reduce_add_pd, _mm512_reduce_mul_pd, _mm512_mask_reduce_add_pd,
4377 _mm512_mask_reduce_mul_pd, _mm512_reduce_min_pd, _mm512_reduce_max_pd,
4378 _mm512_mask_reduce_min_pd, _mm512_mask_reduce_max_pd): New intrinsics.
4380 2017-04-08 Vladimir Makarov <vmakarov@redhat.com>
4382 PR rtl-optimization/70478
4383 * lra-constraints.c: Reverse the last patch.
4385 2017-04-08 Andreas Tobler <andreast@gcc.gnu.org>
4387 * config/aarch64/aarch64-freebsd.h: Define MCOUNT_NAME.
4388 Add comment for WCHAR_T.
4390 2017-04-08 Martin Liska <mliska@suse.cz>
4393 2017-04-07 Martin Liska <mliska@suse.cz>
4396 * ipa-split.c (split_function): Add function part to a same comdat
4399 2017-04-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
4402 * config/rs6000/rs6000.c (expand_block_compare): Fix boundary check.
4404 2017-04-07 Pat Haugen <pthaugen@us.ibm.com>
4406 * rs6000/rs6000.c (vec_load_pendulum): Rename...
4407 (vec_pairing): ...to this.
4408 (power9_sched_reorder2): Rewrite code for pairing vector/vecload insns.
4409 (rs6000_sched_init): Adjust for name change.
4410 (struct rs6000_sched_context): Likewise.
4411 (rs6000_init_sched_context): Likewise.
4412 (rs6000_set_sched_context): Likewise.
4414 2017-04-07 Jakub Jelinek <jakub@redhat.com>
4420 * config/i386/avxintrin.h (_mm256_cvtsd_f64, _mm256_cvtss_f32): New
4422 * config/i386/avx512fintrin.h (_mm512_int2mask, _mm512_mask2int,
4423 _mm512_abs_ps, _mm512_mask_abs_ps, _mm512_abs_pd, _mm512_mask_abs_pd,
4424 _mm512_cvtsd_f64, _mm512_cvtss_f32): Likewise.
4426 2017-04-07 Andreas Tobler <andreast@gcc.gnu.org>
4428 * config/aarch64/aarch64-freebsd.h: Define WCHAR_TYPE.
4430 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
4432 PR rtl-optimization/70703
4433 * ira-color.c (update_conflict_hard_regno_costs): Use
4434 int64_t instead of HOST_WIDE_INT.
4436 2017-04-07 Vladimir Makarov <vmakarov@redhat.com>
4438 PR rtl-optimization/70478
4439 * lra-constraints.c (process_alt_operands): Disfavor alternative
4440 insn memory operands.
4442 2017-04-07 Jeff Law <law@redhat.com>
4444 * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a
4445 CALL and NOTE_INSN_CALL_ARG_LOCATION.
4447 2017-04-07 Martin Liska <mliska@suse.cz>
4450 * config/aarch64/aarch64.c (aarch64_process_target_attr):
4451 Show error message instead of an ICE.
4453 2017-04-07 Martin Liska <mliska@suse.cz>
4456 * ipa-split.c (split_function): Add function part to a same comdat
4459 2017-04-07 Richard Biener <rguenther@suse.de>
4462 * tree.c (get_unwidened): Also handle ! for_type case for
4464 * convert.c (do_narrow): Split out from ...
4465 (convert_to_integer_1): ... here. Do not pass final truncation
4466 type to get_unwidened for TRUNC_DIV_EXPR.
4468 2017-04-07 Richard Biener <rguenther@suse.de>
4470 * tree-affine.c (wide_int_ext_for_comb): Take type rather
4472 (aff_combination_const): Adjust.
4473 (aff_combination_scale): Likewise.
4474 (aff_combination_add_elt): Likewise.
4475 (aff_combination_add_cst): Likewise.
4476 (aff_combination_convert): Likewise.
4477 (add_elt_to_tree): Likewise. Remove unused argument.
4478 (aff_combination_to_tree): Adjust calls to add_elt_to_tree.
4480 2017-04-07 Sebastian Huber <sebastian.huber@embedded-brains.de>
4482 * config/arm/arm.h (ARM_DEFAULT_SHORT_ENUMS): Provide default
4484 * config/arm/arm.c (arm_default_short_enums): Use
4485 ARM_DEFAULT_SHORT_ENUMS.
4486 * config/arm/rtems.h (ARM_DEFAULT_SHORT_ENUMS): Define.
4488 2017-04-06 Jakub Jelinek <jakub@redhat.com>
4491 * dwarf2out.c (gen_member_die): Handle C++17 inline static data
4492 members with redundant out-of-class redeclaration.
4494 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
4497 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): New pattern.
4498 * config/i386/i386.md (*zero_extendsidi2):
4499 Add (?*x,*x) and (?*v,*v) alternatives.
4501 2017-04-06 Uros Bizjak <ubizjak@gmail.com>
4504 * config/i386/i386.c (ix86_expand_builtin)
4505 <case IX86_BUILTIN_K{,OR}TEST{C,Z}{8,16,32,64}>: Determine insn operand
4506 mode from insn data. Convert operands to insn operand mode.
4507 Copy operands that don't satisfy insn predicate to a register.
4509 2017-04-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
4511 * config/rs6000/x-aix: Increase memory limit for genautomata on AIX.
4514 2017-04-06 Richard Biener <rguenther@suse.de>
4516 PR tree-optimization/80334
4517 * tree-ssa-loop-ivopts.c (rewrite_use_address): Properly
4518 preserve alignment of accesses.
4520 2017-04-06 Richard Biener <rguenther@suse.de>
4522 PR tree-optimization/80262
4523 * tree-sra.c (build_ref_for_offset): Preserve address-space
4525 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
4526 Drop useless address-space information on MEM_REF offsets.
4528 2017-04-05 Andreas Schwab <schwab@linux-m68k.org>
4530 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): Fix type.
4532 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
4534 PR rtl-optimization/70703
4535 * ira-color.c (update_conflict_hard_regno_costs): Use
4536 HOST_WIDE_INT instead of long.
4538 2017-04-05 Uros Bizjak <ubizjak@gmail.com>
4541 * config/i386/mmintrin.h: Add -msse target option when __SSE__ is
4542 not defined for x86_64 target. Add -mmmx target option when __SSE2__
4544 * config/i386/mm3dnow.h: Add -msse target when __SSE__ is not defined
4545 for x86_64 target. Handle -m3dnowa option.
4547 2017-04-05 Vladimir Makarov <vmakarov@redhat.com>
4549 PR rtl-optimization/70703
4550 * ira-color.c (update_costs_from_allocno): Use the smallest mode.
4551 (update_conflict_hard_regno_costs): Use long instead of unsigned
4552 arithmetic for cost calculation.
4554 2017-04-05 Jakub Jelinek <jakub@redhat.com>
4555 Bernd Edlinger <bernd.edlinger@hotmail.de>
4558 * asan.c (asan_store_shadow_bytes): Fix location of last_chunk_value
4561 2017-04-05 Eric Botcazou <ebotcazou@adacore.com>
4564 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Replace
4565 ptr_mode with Pmode throughout.
4566 * config/aarch64/aarch64.md (probe_stack_range_<PTR:mode): Rename
4567 into probe_stack_range and use DImode.
4569 2017-04-05 Dominik Vogt <vogt@linux.vnet.ibm.com>
4572 * config/s390/s390.c (s390_register_info_gprtofpr): Return if
4573 call_eh_return is true.
4575 2017-04-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
4577 * config/s390/s390-c.c (s390_resolve_overloaded_builtin):
4578 Initialize last_match_fntype_index.
4580 2017-04-05 Jakub Jelinek <jakub@redhat.com>
4583 * tree-nvr.c: Include internal-fn.h.
4584 (pass_return_slot::execute): Ignore internal calls without
4587 2017-04-04 Jakub Jelinek <jakub@redhat.com>
4588 Richard Biener <rguenther@suse.de>
4591 * genmatch.c (capture::gen_transform): For GENERIC unshare_expr
4592 captures used multiple times, except for the last use.
4593 * generic-match-head.c: Include gimplify.h.
4595 2017-04-04 Jakub Jelinek <jakub@redhat.com>
4597 PR tree-optimization/79390
4598 * target.h (struct noce_if_info): Declare.
4599 * targhooks.h (default_noce_conversion_profitable_p): Declare.
4600 * target.def (noce_conversion_profitable_p): New target hook.
4601 * ifcvt.h (struct noce_if_info): New type, moved from ...
4602 * ifcvt.c (struct noce_if_info): ... here.
4603 (noce_conversion_profitable_p): Renamed to ...
4604 (default_noce_conversion_profitable_p): ... this. No longer
4606 (noce_try_store_flag_constants, noce_try_addcc,
4607 noce_try_store_flag_mask, noce_try_cmove, noce_try_cmove_arith,
4608 noce_convert_multiple_sets): Use targetm.noce_conversion_profitable_p
4609 instead of noce_conversion_profitable_p.
4610 * config/i386/i386.c: Include ifcvt.h.
4611 (ix86_option_override_internal): Don't override
4612 PARAM_MAX_RTL_IF_CONVERSION_INSNS default.
4613 (ix86_noce_conversion_profitable_p): New function.
4614 (TARGET_NOCE_CONVERSION_PROFITABLE_P): Redefine.
4615 * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Adjust comment.
4616 * doc/tm.texi.in (TARGET_NOCE_CONVERSION_PROFITABLE_P): Add.
4617 * doc/tm.texi: Regenerated.
4619 2017-04-04 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4621 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Grammar
4624 2017-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com>
4627 * config/arm/arm.c (thumb1_rtx_costs): Give a cost of 32
4628 instructions for small multiply cores.
4630 2017-04-04 Jeff Law <law@redhat.com>
4632 * config/mips/mips.c (mips_multi_add): Zero initialize the newly
4634 (mips_expand_vec_perm_const): Initialize elements in orig_perm
4635 that are not set by the loop over the elements.
4637 2017-04-04 Jakub Jelinek <jakub@redhat.com>
4640 * config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
4641 int mode, convert_modes it to mode as unsigned, otherwise use
4642 lowpart_subreg to mode rather than SImode.
4643 * config/i386/sse.md (<mask_codefor>ashr<mode>3<mask_name>,
4644 ashr<mode>3, ashr<mode>3<mask_name>, <shift_insn><mode>3<mask_name>):
4645 Use DImode instead of SImode for the shift count operand.
4646 * config/i386/mmx.md (mmx_ashr<mode>3, mmx_<shift_insn><mode>3):
4649 2017-04-04 Richard Biener <rguenther@suse.de>
4652 * match.pd (A + (-B) -> A - B): Make sure to preserve unsigned
4653 arithmetic done for the negate or the plus. Simplify.
4654 (A - (-B) -> A + B): Likewise.
4655 * fold-const.c (split_tree): Make sure to not negate pointers.
4657 2017-04-04 Segher Boessenkool <segher@kernel.crashing.org>
4659 PR rtl-optimization/60818
4660 * simplify-rtx.c (simplify_binary_operation_1): Do not replace
4661 a compare of comparisons with the thing compared if this results
4662 in a different machine mode.
4664 2017-04-03 Jonathan Wakely <jwakely@redhat.com>
4666 * alias.c (base_alias_check): Fix typo in comment.
4667 * cgraph.h (class ipa_polymorphic_call_context): Likewise.
4668 * cgraphunit.c (symbol_table::compile): Likewise.
4669 * collect2.c (maybe_run_lto_and_relink): Likewise.
4670 * config/arm/arm.c (arm_thumb1_mi_thunk): Likewise.
4671 * config/avr/avr-arch.h (avr_arch_info_t): Likewise.
4672 * config/avr/avr.c (avr_map_op_t): Likewise.
4673 * config/cr16/cr16.h (DATA_ALIGNMENT): Likewise.
4674 * config/epiphany/epiphany.c (TARGET_ARG_PARTIAL_BYTES): Likewise.
4675 * config/epiphany/epiphany.md (movcc): Likewise.
4676 * config/i386/i386.c (legitimize_pe_coff_extern_decl): Likewise.
4677 * config/m68k/m68k.c (struct _sched_ib, m68k_sched_variable_issue):
4679 * config/mips/mips.c (mips_save_restore_reg): Likewise.
4680 * config/rx/rx.c (rx_is_restricted_memory_address): Likewise.
4681 * config/s390/s390.c (Z10_EARLYLOAD_DISTANCE): Likewise.
4682 * config/sh/sh.c (sh_rtx_costs): Likewise.
4683 * fold-const.c (fold_truth_andor): Likewise.
4684 * genautomata.c (collapse_flag): Likewise.
4685 * gengtype.h (struct type::u::s): Likewise.
4686 * gensupport.c (has_subst_attribute, add_mnemonic_string): Likewise.
4687 * input.c (FORMAT_AMOUNT): Likewise.
4688 * ipa-cp.c (class ipcp_lattice, agg_replacements_to_vector)
4689 (known_aggs_to_agg_replacement_list): Likewise.
4690 * ipa-inline-analysis.c: Likewise.
4691 * ipa-inline.h (estimate_edge_time, estimate_edge_hints): Likewise.
4692 * ipa-polymorphic-call.c
4693 (ipa_polymorphic_call_context::restrict_to_inner_class): Likewise.
4694 * loop-unroll.c (analyze_insn_to_expand_var): Likewise.
4695 * lra.c (lra_optional_reload_pseudos, lra_subreg_reload_pseudos):
4697 * modulo-sched.c (apply_reg_moves): Likewise.
4698 * omp-expand.c (build_omp_regions_1): Likewise.
4699 * trans-mem.c (struct tm_wrapper_hasher): Likewise.
4700 * tree-ssa-loop-ivopts.c (may_eliminate_iv): Likewise.
4701 * tree-ssa-loop-niter.c (maybe_lower_iteration_bound): Likewise.
4702 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise.
4703 * value-prof.c: Likewise.
4704 * var-tracking.c (val_reset): Likewise.
4706 2017-04-03 Richard Biener <rguenther@suse.de>
4708 PR tree-optimization/80275
4709 * fold-const.c (split_address_to_core_and_offset): Handle
4712 2017-04-03 Eric Botcazou <ebotcazou@adacore.com>
4714 * tree-nested.c (get_descriptor_type): Make sure that the alignment of
4715 descriptors is at least equal to that of functions.
4717 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
4719 * config/i386/sse.md (movdi_to_sse): Add missing DONE.
4721 2017-04-02 Uros Bizjak <ubizjak@gmail.com>
4724 * config/i386/sse.md (mov<IMOD4:mode>): Remove insn pattern.
4725 (mov<IMOD4:mode>): New expander.
4726 (*mov<IMOD4:mode>_internal): New insn and split pattern.
4728 2017-03-31 Segher Boessenkool <segher@kernel.crashing.org>
4730 PR rtl-optimization/79405
4731 * fwprop.c (propagations_left): New variable.
4732 (forward_propagate_into): Decrement it.
4733 (fwprop_init): Initialize it.
4734 (fw_prop): If the variable has reached zero, stop propagating.
4735 (fwprop_addr): Ditto.
4737 2017-03-31 Jakub Jelinek <jakub@redhat.com>
4740 * dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
4741 a FUNCTION_DECL, pass it as decl instead of origin to
4744 2017-03-31 Alexander Monakov <amonakov@ispras.ru>
4746 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Correct format
4749 2017-03-31 Pat Haugen <pthaugen@us.ibm.com>
4752 * config/rs6000/rs6000.md (extendhi<mode>2): Add test for
4753 TARGET_VSX_SMALL_INTEGER.
4755 2017-03-31 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4757 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Add
4758 reference to the OpenPOWER 64-Bit ELF V2 ABI Specification.
4760 2017-03-31 Matthew Fortune <matthew.fortune@imgtec.com>
4762 * config/mips/mips-msa.md (msa_vec_extract_<msafmt_f>): Update
4763 extraction from odd-numbered MSA register.
4765 2017-03-31 Jakub Jelinek <jakub@redhat.com>
4768 * expmed.c (store_bit_field_1): Don't attempt to create
4769 a word subreg out of hard registers wider than word if they
4770 have HARD_REGNO_NREGS of 1 for their mode.
4773 * varasm.c (initializer_constant_valid_p_1): Disallow sign-extending
4774 conversions to integer types wider than word and pointer.
4777 * cselib.h (rtx_equal_for_cselib_1): Add depth argument.
4778 (rtx_equal_for_cselib_p): Pass 0 to it.
4779 * cselib.c (cselib_hasher::equal): Likewise.
4780 (rtx_equal_for_cselib_1): Add depth argument. If depth
4781 is 128, don't look up VALUE locs and punt. Increment
4782 depth in recursive calls when walking VALUE locs.
4784 2017-03-31 Bernd Edlinger <bernd.edlinger@hotmail.de>
4786 * gcov.c (md5sum_to_hex): Fix output of MD5 hex bytes.
4787 (make_gcov_file_name): Use the canonical path name for generating
4789 (read_line): Fix handling of files with ascii null bytes.
4791 2017-03-30 Matthew Fortune <matthew.fortune@imgtec.com>
4793 * config/mips/mips.c (mips_expand_vector_init): Create a const_vector
4794 to initialise a vector register instead
4795 of using a const_int.
4797 2017-03-30 Jakub Jelinek <jakub@redhat.com>
4799 PR translation/80189
4800 * gimplify.c (omp_default_clause): Use %qs instead of %s in
4801 diagnostic messages.
4803 2017-03-30 Peter Bergner <bergner@vnet.ibm.com>
4806 * config/rs6000/dfp.md (dfp_dxex_<mode>): Update mode of operand 0.
4807 (dfp_diex_<mode>): Update mode of operand 1.
4808 * doc/extend.texi (dxex, dxexq): Document change to return type.
4809 (diex, diexq): Document change to argument type.
4811 2017-03-30 Martin Jambor <mjambor@suse.cz>
4814 * cgraph.h (cgraph_build_function_type_skip_args): Declare.
4815 * cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
4816 it reflects the signature changes performed at the callee side.
4817 * cgraphclones.c (build_function_type_skip_args): Make public, renamed
4818 to cgraph_build_function_type_skip_args.
4819 (build_function_decl_skip_args): Adjust call to the above function.
4821 2017-03-30 Jakub Jelinek <jakub@redhat.com>
4824 * config/i386/sse.md
4825 (<extract_type>_vextract<shuffletype><extract_suf>_mask): Use
4826 register as dest whenever it is a MEM not rtx_equal_p to the
4827 corresponding dup operand, and when forcing into reg move the
4828 reg into the memory afterwards.
4829 (<extract_type_2>_vextract<shuffletype><extract_suf_2>_mask):
4830 Likewise. Use <ssehalfvecmode> instead of <ssequartermode>
4831 for the force_reg mode.
4832 (avx512vl_vextractf128<mode>): Use register as dest either
4833 always when a MEM, or when it is a MEM not rtx_equal_p to the
4834 corresponding dup operand, or even not when it is a CONST_VECTOR
4835 depending on the mode and lo vs. hi.
4836 (avx512dq_vextract<shuffletype>64x2_1_maskm): Remove extraneous
4838 (avx512f_vextract<shuffletype>32x4_1_maskm): Likewise.
4839 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name>):
4840 Likewise. Require that operands[2] is even.
4841 (<mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name>):
4842 Remove extraneous parens. Require that operands[2] is a multiple
4844 (vec_extract_lo_<mode><mask_name>): Don't bother testing if
4845 operands[0] is a MEM if <mask_applied>, the predicates/constraints
4846 disallow memory then.
4848 2017-03-30 Richard Biener <rguenther@suse.de>
4850 PR tree-optimization/77498
4851 * tree-ssa-pre.c (phi_translate_1): Do not allow simplifications
4852 to non-constants over backedges.
4854 2017-03-29 Segher Boessenkool <segher@kernel.crashing.org>
4856 PR rtl-optimization/80233
4857 * combine.c (combine_instructions): Only take NONDEBUG_INSN_P insns
4858 as last_combined_insn. Do not test for BARRIER_P separately.
4860 2017-03-29 Andreas Schwab <schwab@suse.de>
4863 * calls.c (prepare_call_address): Convert funexp to Pmode before
4864 copying to temp reg.
4866 2017-03-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
4868 PR tree-optimization/80158
4869 * gimple-ssa-strength-reduction.c (replace_mult_candidate):
4870 Handle possible future case of more than one alternate
4872 (replace_rhs_if_not_dup): Likewise.
4873 (replace_one_candidate): Likewise.
4875 2017-03-28 Vladimir Makarov <vmakarov@redhat.com>
4877 PR rtl-optimization/80193
4878 * ira.c (ira): Do not check allocation for LRA.
4880 2017-03-28 Alexander Monakov <amonakov@ispras.ru>
4882 * config/nvptx/nvptx-protos.h (nvptx_output_simt_enter): Declare.
4883 (nvptx_output_simt_exit): Declare.
4884 * config/nvptx/nvptx.c (nvptx_init_unisimt_predicate): Use
4885 cfun->machine->unisimt_location. Handle NULL unisimt_predicate.
4886 (init_softstack_frame): Move initialization of crtl->is_leaf to...
4887 (nvptx_declare_function_name): ...here. Emit declaration of local
4888 memory space buffer for omp_simt_enter insn.
4889 (nvptx_output_unisimt_switch): New.
4890 (nvptx_output_softstack_switch): New.
4891 (nvptx_output_simt_enter): New.
4892 (nvptx_output_simt_exit): New.
4893 * config/nvptx/nvptx.h (struct machine_function): New fields
4894 has_simtreg, unisimt_location, simt_stack_size, simt_stack_align.
4895 * config/nvptx/nvptx.md (UNSPECV_SIMT_ENTER): New unspec.
4896 (UNSPECV_SIMT_EXIT): Ditto.
4897 (omp_simt_enter_insn): New insn.
4898 (omp_simt_enter): New expansion.
4899 (omp_simt_exit): New insn.
4900 * config/nvptx/nvptx.opt (msoft-stack-reserve-local): New option.
4902 * internal-fn.c (expand_GOMP_SIMT_ENTER): New.
4903 (expand_GOMP_SIMT_ENTER_ALLOC): New.
4904 (expand_GOMP_SIMT_EXIT): New.
4905 * internal-fn.def (GOMP_SIMT_ENTER): New internal function.
4906 (GOMP_SIMT_ENTER_ALLOC): Ditto.
4907 (GOMP_SIMT_EXIT): Ditto.
4908 * target-insns.def (omp_simt_enter): New insn.
4909 (omp_simt_exit): Ditto.
4910 * omp-low.c (struct omplow_simd_context): New fields simt_eargs,
4912 (lower_rec_simd_input_clauses): Implement SIMT privatization.
4913 (lower_rec_input_clauses): Likewise.
4914 (lower_lastprivate_clauses): Handle SIMT privatization.
4916 * omp-offload.c: Include langhooks.h, tree-nested.h, stor-layout.h.
4917 (ompdevlow_adjust_simt_enter): New.
4918 (find_simtpriv_var_op): New.
4919 (execute_omp_device_lower): Handle IFN_GOMP_SIMT_ENTER,
4920 IFN_GOMP_SIMT_ENTER_ALLOC, IFN_GOMP_SIMT_EXIT.
4922 * tree-inline.h (struct copy_body_data): New field dst_simt_vars.
4923 * tree-inline.c (expand_call_inline): Handle SIMT privatization.
4924 (copy_decl_for_dup_finish): Ditto.
4926 * tree-ssa.c (execute_update_addresses_taken): Handle GOMP_SIMT_ENTER.
4928 2017-03-28 Uros Bizjak <ubizjak@gmail.com>
4931 * config/i386/i386.c (ix86_option_override_internal): Always
4932 allow -mpreferred-stack-boundary=3 for 64-bit targets.
4934 2017-03-28 Bin Cheng <bin.cheng@arm.com>
4936 * tree-vect-loop.c (optimize_mask_stores): Add bb to the right loop.
4938 2017-03-28 Bin Cheng <bin.cheng@arm.com>
4940 * tree-vect-loop-manip.c (slpeel_add_loop_guard): New param and
4941 mark new edge's irreducible flag accordign to it.
4942 (vect_do_peeling): Check loop preheader edge's irreducible flag
4943 and pass it to function slpeel_add_loop_guard.
4945 2017-03-28 Richard Sandiford <richard.sandiford@arm.com>
4947 PR tree-optimization/80218
4948 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
4949 Update block frequencies and counts.
4951 2017-03-28 Richard Biener <rguenther@suse.de>
4953 PR tree-optimization/78644
4954 * tree-ssa-ccp.c (evaluate_stmt): When we may not use the value
4955 of a simplification result we may not use it at all.
4957 2017-03-28 Richard Biener <rguenther@suse.de>
4960 * tree-inline.c (copy_phis_for_bb): Do not create PHI node
4961 without arguments, generate default definition of a SSA name.
4963 2017-03-28 Richard Biener <rguenther@suse.de>
4966 * gimple-fold.c (gimple_fold_indirect_ref): Do not touch
4967 TYPE_REF_CAN_ALIAS_ALL references.
4968 * fold-const.c (fold_indirect_ref_1): Likewise.
4970 2017-03-28 Martin Liska <mliska@suse.cz>
4973 * cgraphunit.c (cgraph_node::expand_thunk): Mark argument of a
4974 thunk call as DECL_GIMPLE_REG_P when vector or complex type.
4976 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
4977 Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
4979 * config/arc/arc.h (CPP_SPEC): Add subtarget_cpp_spec.
4980 (EXTRA_SPECS): Define.
4981 (SUBTARGET_EXTRA_SPECS): Likewise.
4982 (SUBTARGET_CPP_SPEC): Likewise.
4983 * config/arc/elf.h (EXTRA_SPECS): Renamed to
4984 SUBTARGET_EXTRA_SPECS.
4985 * config/arc/linux.h (SUBTARGET_CPP_SPEC): Define.
4987 2017-03-28 Claudiu Zissulescu <claziss@synopsys.com>
4989 * config/arc/simdext.md (vst64_insn): Update pattern.
4990 (vld32wh_insn): Likewise.
4991 (vld32wl_insn): Likewise.
4992 (vld64_insn): Likewise.
4993 (vld32_insn): Likewise.
4995 2017-03-28 Marek Polacek <polacek@redhat.com>
4998 * fold-const.c (fold_comparison): Use protected_set_expr_location
4999 instead of SET_EXPR_LOCATION.
5001 2017-03-28 Markus Trippelsdorf <markus@trippelsdorf.de>
5003 * tree.c (add_expr): Avoid name lookup warning.
5005 2017-03-27 Jeff Law <law@redhat.com>
5007 PR tree-optimization/80216
5008 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): Fix typo in
5009 function name. Limit recursion depth.
5010 (record_temporary_equivalences): Corresponding changes.
5012 2017-03-27 Jonathan Wakely <jwakely@redhat.com>
5014 * doc/invoke.texi (-Wno-narrowing): Reorder so default behavior is
5017 2017-03-27 Jakub Jelinek <jakub@redhat.com>
5020 * reg-notes.def (REG_CFA_NOTE): Define. Use it for CFA related
5022 * cfgcleanup.c (reg_note_cfa_p): New array.
5023 (insns_have_identical_cfa_notes): New function.
5024 (old_insns_match_p): Don't cross-jump in between /f
5025 and non-/f instructions. If both i1 and i2 are frame related,
5026 verify all CFA notes, their order and content.
5028 2017-03-27 Michael Meissner <meissner@linux.vnet.ibm.com>
5031 * config/rs6000/rs6000.md (bswaphi2_extenddi): Combine bswap
5032 HImode and SImode with zero extend to DImode to one insn.
5033 (bswap<mode>2_extenddi): Likewise.
5034 (bswapsi2_extenddi): Likewise.
5035 (bswaphi2_extendsi): Likewise.
5036 (bswaphi2): Combine bswap HImode and SImode into one insn.
5037 Separate memory insns from swapping register.
5038 (bswapsi2): Likewise.
5039 (bswap<mode>2): Likewise.
5040 (bswaphi2_internal): Delete, no longer used.
5041 (bswapsi2_internal): Likewise.
5042 (bswap<mode>2_load): Split bswap HImode/SImode into separate load,
5043 store, and gpr<-gpr swap insns.
5044 (bswap<mode>2_store): Likewise.
5045 (bswaphi2_reg): Register only splitter, combine with the splitter.
5046 (bswaphi2 splitter): Likewise.
5047 (bswapsi2_reg): Likewise.
5048 (bswapsi2 splitter): Likewise.
5049 (bswapdi2): If we have the LDBRX and STDBRX instructions, split
5050 the insns into load, store, and register/register insns.
5051 (bswapdi2_ldbrx): Likewise.
5052 (bswapdi2_load): Likewise.
5053 (bswapdi2_store): Likewise.
5054 (bswapdi2_reg): Likewise.
5056 2017-03-27 Gunther Nikl <gnikl@users.sourceforge.net>
5058 * system.h (HAVE_DESIGNATED_INITIALIZERS): Fix non C++ case.
5059 (HAVE_DESIGNATED_UNION_INITIALIZERS): Likewise.
5061 2017-03-27 Kelvin Nilsen <kelvin@gcc.gnu.org>
5064 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Edit and
5066 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5067 special handling for target option conflicts between dform
5068 options (-mpower9-dform, -mpower9-dform-vector,
5069 -mpower9-dform-scalar) and -mno-direct-move.
5071 2017-03-27 Richard Biener <rguenther@suse.de>
5073 PR tree-optimization/80181
5074 * tree-ssa-ccp.c (likely_value): UNDEFINED ^ X is UNDEFINED.
5076 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
5078 * config/arc/predicates.md (move_double_src_operand): Replace the
5079 call to move_double_src_operand with a call to address_operand.
5081 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
5083 * config/arc/elf.h (ARGET_ARC_TP_REGNO_DEFAULT): Define.
5084 * config/arc/linux.h (ARGET_ARC_TP_REGNO_DEFAULT): Likewise.
5085 * config/arc/arc.opt (mtp-regno): Use ARGET_ARC_TP_REGNO_DEFAULT.
5087 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
5089 * config/arc/predicates.md (long_immediate_loadstore_operand):
5090 Consider scaled addresses cases.
5092 2017-03-27 Claudiu Zissulescu <claziss@synopsys.com>
5094 * config/arc/arc.c (arc_epilogue_uses): BLINK should be also
5095 restored when in interrupt.
5096 * config/arc/arc.md (simple_return): ARCv2 rtie instruction
5097 doesn't have delay slot.
5099 2017-03-27 Richard Biener <rguenther@suse.de>
5102 * tree-ssa-structalias.c (associate_varinfo_to_alias): Skip
5103 inlined thunk clones.
5105 2017-03-27 Jakub Jelinek <jakub@redhat.com>
5108 * asan.c (instrument_derefs): Copy over last operand from
5109 original COMPONENT_REF to the new COMPONENT_REF with
5110 DECL_BIT_FIELD_REPRESENTATIVE.
5111 * ubsan.c (instrument_object_size): Likewise.
5113 2017-03-27 Richard Biener <rguenther@suse.de>
5115 PR tree-optimization/80170
5116 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Make
5117 sure DR/SCEV didnt fold in constants we do not see when looking
5118 at the reference base alignment.
5120 2017-03-27 Richard Biener <rguenther@suse.de>
5123 * gimple-fold.c (fold_ctor_reference): Properly guard against
5124 NULL return value from canonicalize_constructor_val.
5126 2017-03-25 Uros Bizjak <ubizjak@gmail.com>
5129 * config/i386/i386.c (ix86_expand_builtin)
5130 <IX86_BUILTIN_RDSEED{16,32,64}_STEP>: Do not expand arg0 between
5131 flags reg setting and flags reg using instructions.
5132 <IX86_BUILTIN_RDRAND{16,32,64}_STEP>: Ditto. Use non-flags reg
5133 clobbering instructions to zero extend op2.
5135 2017-03-25 Gerald Pfeifer <gerald@pfeifer.com>
5137 * doc/install.texi (Configuration) <--with-aix-soname>:
5138 Update link to AIX ld.
5140 2017-03-25 Bernd Schmidt <bschmidt@redhat.com>
5142 PR rtl-optimization/80160
5143 PR rtl-optimization/80159
5144 * lra-assigns.c (must_not_spill_p): Tighten new test to also take
5145 reg_alternate_class into account.
5147 2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
5150 * lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
5151 to consider in curr_insn_transform.
5153 2017-03-24 Jakub Jelinek <jakub@redhat.com>
5155 * genrecog.c (validate_pattern): Add VEC_SELECT validation.
5156 * genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
5157 and emit_mode_inner.
5159 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5161 * config/s390/s390-builtins.def: Add VXE builtins. Add a flags
5162 argument to the overloaded builtin variants. Use the new flag to
5163 deprecate certain builtin variants.
5164 * config/s390/s390-builtin-types.def: Add new builtin types.
5165 * config/s390/s390-builtins.h: Support new flags field for
5166 overloaded builtins.
5167 * config/s390/s390-c.c (OB_DEF_VAR): New flags field.
5168 (s390_macro_to_expand): Enable vector float data type.
5169 (s390_cpu_cpp_builtins_internal): Indicate support of the new
5170 builtins by incrementing the __VEC__ version number.
5171 (s390_expand_overloaded_builtin): Support expansion of vec_xl and
5173 (s390_resolve_overloaded_builtin): Emit error messages depending
5174 on the builtin flags.
5175 * config/s390/s390.c (s390_expand_builtin): Support additional
5176 flags argument. Change error message to match the messages
5177 emitted in s390-c.c.
5178 * config/s390/s390.md: New UNSPEC_* constants.
5179 (op_type): Add new instruction types.
5180 * config/s390/vecintrin.h: Add new builtins and test data class
5182 * config/s390/vx-builtins.md (V_HW_32_64): Add V4SF.
5183 (V_HW_4, VEC_HW, VECF_HW): New mode iterators.
5184 (VEC_INEXACT, VEC_NOINEXACT): New constants.
5185 ("vec_splats<mode>", "vec_insert<mode>", "vec_promote<mode>")
5186 ("vec_insert_and_zero<mode>", "vec_mergeh<mode>")
5187 ("vec_mergel<mode>"): V_HW -> VEC_HW.
5189 ("vlrlrv16qi", "vstrlrv16qi", "vbpermv16qi", "vec_msumv2di")
5190 ("vmslg", "*vftci<mode>_cconly", "vftci<mode>_intcconly")
5191 ("*vftci<mode>", "vftci<mode>_intcc", "vec_double_s64")
5192 ("vec_double_u64", "vfmin<mode>", "vfmax<mode>"): New definition.
5194 ("and_av2df3", "and_cv2df3", "vec_andc_av2df3")
5195 ("vec_andc_cv2df3", "xor_av2df3", "xor_cv2df3", "vec_nor_av2df3")
5196 ("vec_nor_cv2df3", "ior_av2df3", "ior_cv2df3", "vec_nabs")
5197 ("*vftcidb", "*vftcidb_cconly", "vftcidb"): Remove definition.
5199 ("vec_all_<fpcmpcc:code>v2df", "vec_any_<fpcmpcc:code>v2df")
5200 ("vec_scatter_elementv4si_DI", "vec_cmp<fpcmp:code>v2df")
5201 ("vec_di_to_df_s64", "vec_di_to_df_u64", "vec_df_to_di_u64")
5202 ("vfidb", "*vldeb", "*vledb", "*vec_cmp<insn_cmp>v2df_cconly")
5203 ("vec_cmpeqv2df_cc", "vec_cmpeqv2df_cc", "vec_cmphv2df_cc")
5204 ("vec_cmphev2df_cc", "*vec_cmpeqv2df_cc")
5205 ("*vec_cmphv2df_cc", "*vec_cmphev2df_cc"): Enable new modes as ...
5207 ("vec_all_<fpcmpcc:code><mode>", "vec_any_<fpcmpcc:code><mode>")
5208 ("vec_scatter_element<V_HW_4:mode>_DI")
5209 ("vec_cmp<fpcmp:code><mode>", "vcdgb", "vcdlgb", "vclgdb")
5210 ("vec_fpint<mode>", "vflls")
5211 ("vflrd", "*vec_cmp<insn_cmp><mode>_cconly", "vec_cmpeq<mode>_cc")
5212 ("vec_cmpeq<mode>_cc", "vec_cmph<mode>_cc", "vec_cmphe<mode>_cc")
5213 ("*vec_cmpeq<mode>_cc", "*vec_cmph<mode>_cc")
5214 ("*vec_cmphe<mode>_cc"): ... these.
5216 ("vec_ctd_s64", "vec_ctsl", "vec_ctul", "vec_st2f"): Use rounding
5217 mode constant instead of magic value.
5219 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5221 * config/s390/s390.c (s390_expand_vec_compare): Support other
5222 vector floating point modes than just V2DF.
5223 (s390_expand_vcond): Likewise.
5224 (s390_hard_regno_mode_ok): Allow SFmode values in VRs.
5225 (s390_cannot_change_mode_class): Prevent mode changes between TF
5226 and V1TF in vector registers.
5227 * config/s390/s390.md (DF, SF): New mode attributes.
5228 ("*cmp<mode>_ccs", "add<mode>3", "sub<mode>3", "mul<mode>3")
5229 ("fma<mode>4", "fms<mode>4", "div<mode>3", "*neg<mode>2"): Add
5230 SFmode support for VRs.
5231 * config/s390/vector.md (V_HW, V_HW2, VT_HW, ti*, nonvec): Add new
5233 (VFT, VF_HW): New mode iterators.
5234 (vw, sdx): New mode attributes.
5235 ("addv2df3", "subv2df3", "mulv2df3", "divv2df3", "sqrtv2df2")
5236 ("fmav2df4","fmsv2df4", "negv2df2", "absv2df2", "*negabsv2df2")
5237 ("smaxv2df3", "sminv2df3", "*vec_cmp<VFCMP_HW_OP:code>v2df_nocc")
5238 ("vec_cmpuneqv2df", "vec_cmpltgtv2df", "vec_orderedv2df")
5239 ("vec_unorderedv2df"): Adjust the v2df only patterns to support
5240 also the new vector floating point modes. Renaming to ...
5242 ("add<mode>3", "sub<mode>3", "mul<mode>3", "div<mode>3")
5243 ("sqrt<mode>2", "fma<mode>4", "fms<mode>4", "neg<mode>2")
5244 ("abs<mode>2", "negabs<mode>2", "smax<mode>3")
5245 ("smin<mode>3", "*vec_cmp<VFCMP_HW_OP:code><mode>_nocc")
5246 ("vec_cmpuneq<mode>", "vec_cmpltgt<mode>", "vec_ordered<mode>")
5247 ("vec_unordered<mode>"): ... these.
5249 ("neg_fma<mode>4", "neg_fms<mode>4", "*smax<mode>3_vxe")
5250 ("*smin<mode>3_vxe", "*sminv2df3_vx", "*vec_extendv4sf")
5251 ("*vec_extendv2df"): New insn definitions.
5253 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5255 * config/s390/s390.md ("*adddi3_sign", "*subdi3_sign", "mulditi3")
5256 ("mulditi3_2", "*muldi3_sign"): New patterns.
5257 ("muldi3", "*muldi3", "mulsi3", "*mulsi3"): Add an expander and
5258 rename the pattern definition.
5260 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5262 * config/s390/s390.md ("indirect_jump"): Turn insn definition into
5264 ("*indirect_jump", "*indirect2_jump"): New pattern definitions.
5266 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5268 * config/s390/s390.c (s390_expand_vec_init): Use vllezl
5269 instruction if possible.
5270 * config/s390/vector.md (vec_halfnumelts): New mode
5272 ("*vec_vllezlf<mode>"): New pattern.
5274 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5276 * config/s390/vector.md ("popcountv16qi2", "popcountv8hi2")
5277 ("popcountv4si2", "popcountv2di2"): Rename to ...
5278 ("popcount<mode>2", "popcountv8hi2_vx", "popcountv4si2_vx")
5279 ("popcountv2di2_vx"): ... these and add !TARGET_VXE to the
5281 ("popcount<mode>2_vxe"): New pattern.
5283 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5285 * common/config/s390/s390-common.c (processor_flags_table): Add
5287 * config.gcc: Add arch12.
5288 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5289 Default to arch12 for unknown CPU model numbers.
5290 * config/s390/s390-builtins.def: Add B_VXE builtin flag.
5291 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Adjust
5292 PROCESSOR_max sanity check.
5293 * config/s390/s390-opts.h (enum processor_type): Add
5295 * config/s390/s390.c (processor_table): Add arch12.
5296 (s390_expand_builtin): Add check for B_VXE flag.
5297 (s390_issue_rate): Add PROCESSOR_ARCH12.
5298 (s390_get_sched_attrmask): Likewise.
5299 (s390_get_unit_mask): Likewise.
5300 (s390_sched_score): Enable z13 scheduling for arch12.
5301 (s390_sched_reorder): Likewise.
5302 (s390_sched_variable_issue): Likewise.
5303 * config/s390/s390.h (enum processor_flags): Add PF_ARCH12 and
5305 (s390_tune_attr): Use z13 scheduling also for arch12.
5306 (TARGET_CPU_ARCH12, TARGET_CPU_ARCH12_P, TARGET_CPU_VXE)
5307 (TARGET_CPU_VXE_P, TARGET_ARCH12, TARGET_ARCH12_P, TARGET_VXE)
5308 (TARGET_VXE_P): New macros.
5309 * config/s390/s390.md: Add arch12 to cpu attribute. Add arch12
5310 and vxe to cpu_facility. Add arch12 and vxe to enabled attribute.
5311 * config/s390/s390.opt: Add arch12 as processor_type.
5313 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5315 * config/s390/s390.md
5316 ("fixuns_truncdddi2", "fixuns_trunctddi2")
5317 ("fixuns_trunc<BFP:mode><GPR:mode>2"): Merge into ...
5318 ("fixuns_trunc<FP:mode><GPR:mode>2"): New expander.
5320 ("fixuns_trunc<BFP:mode><GPR:mode>2", "fixuns_trunc<mode>si2"):
5321 Rename expanders to ...
5323 ("fixuns_trunc<BFP:mode><GPR:mode>2_emu")
5324 ("fixuns_truncdddi2_emu"): ... these.
5326 ("fixuns_trunc<mode>si2_emu"): New expander.
5328 ("*fixuns_truncdfdi2_z13"): Rename to ...
5329 ("*fixuns_truncdfdi2_vx"): ... this.
5331 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5333 * config/s390/2964.md: Remove the single element vector compare
5334 instructions which are no longer used.
5335 * config/s390/s390.c (s390_select_ccmode): Remove handling of
5337 (s390_canonicalize_comparison): Remove handling of DFmode
5339 (s390_expand_vec_compare_scalar): Remove function.
5340 (s390_emit_compare): Don't call s390_expand_vec_compare_scalar.
5341 * config/s390/s390.md ("*vec_cmp<insn_cmp>df_cconly"): Remove
5343 ("*cmp<mode>_ccs"): Add wfcdb instruction.
5345 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5347 * config/s390/s390.md ("mov<mode>_64dfp" DD_DF): Use vleig for loading a
5349 ("*mov<mode>_64" DD_DF): Remove the vector instructions. These
5350 will anyway by matched by mov<mode>_64dfp.
5352 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5354 * config/s390/s390.md ("mov<mode>" SD_SF): Change vleg/vsteg to
5355 vlef/vstef. Add missing operand to vleif.
5357 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5359 * config/s390/s390.c (s390_expand_vec_init): Enable vector load
5360 pair for all vector types with 64 bit elements.
5361 * config/s390/vx-builtins.md (V_HW_64): Move mode iterator to ...
5362 * config/s390/vector.md (V_HW_64): ... here.
5363 (V_128_NOSINGLE): New mode iterator.
5364 ("vec_init<V_HW:mode>"): Use V_128 as mode iterator.
5365 ("*vec_splat<mode>"): Use V_128_NOSINGLE mode iterator.
5366 ("*vec_tf_to_v1tf", "*vec_ti_to_v1ti"): New pattern definitions.
5367 ("*vec_load_pairv2di"): Change to ...
5368 ("*vec_load_pair<mode>"): ... this one.
5370 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5372 * config/s390/constraints.md: Add comments.
5373 (jKK): Reject element sizes > 8 bytes.
5374 * config/s390/s390.c (s390_split_ok_p): Enable splitting also for
5376 * config/s390/s390.md: Add the s_operand checks formerly in
5377 s390_split_ok_p to various splitters where they are still
5379 * config/s390/vector.md ("mov<mode>" V_128): Add GPR alternatives
5380 for 128 bit vectors. Plus two splitters.
5382 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5384 * config/s390/s390.md: Rename the cpu facilty vec to vx throughout
5387 2017-03-24 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5390 * config/s390/s390-c.c (s390_adjust_builtin_arglist): Issue an
5391 error if the boundary argument is not constant.
5393 2017-03-24 Jakub Jelinek <jakub@redhat.com>
5395 PR rtl-optimization/80112
5396 * loop-doloop.c (doloop_condition_get): Don't check condition
5397 if cmp isn't SET with IF_THEN_ELSE src.
5399 2017-03-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5401 PR tree-optimization/80158
5402 * gimple-ssa-strength-reduction.c (replace_mult_candidate): When
5403 replacing a candidate statement, also replace it for the
5404 candidate's alternate interpretation.
5405 (replace_rhs_if_not_dup): Likewise.
5406 (replace_one_candidate): Likewise.
5408 2017-03-24 Richard Biener <rguenther@suse.de>
5410 PR tree-optimization/80167
5411 * graphite-isl-ast-to-gimple.c
5412 (translate_isl_ast_to_gimple::is_valid_rename): Handle default-defs
5414 (translate_isl_ast_to_gimple::get_rename): Likewise.
5416 2017-03-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
5418 * config/rs6000/rs6000.c (rs6000_option_override_internal): Change
5419 handling of certain combinations of target options, including the
5420 combinations -mpower8-vector vs. -mno-vsx, -mpower9-vector vs.
5421 -mno-power8-vector, and -mpower9_dform vs. -mno-power9-vector.
5423 2017-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5426 * config/arm/arm.md (*load_multiple): Add reload_completed to
5429 2017-03-23 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5430 Richard Biener <rguenth@suse.de>
5432 PR tree-optimization/79908
5433 PR tree-optimization/80136
5434 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
5435 been cast away, gimplify_and_add suffices.
5437 2017-03-23 Markus Trippelsdorf <markus@trippelsdorf.de>
5439 * tree-vrp.c (identify_jump_threads): Delete avail_exprs.
5441 2017-03-23 Richard Biener <rguenther@suse.de>
5443 PR tree-optimization/80032
5444 * gimplify.c (gimple_push_cleanup): Forced unconditional
5445 cleanups still have to go to the conditional_cleanups
5448 2017-03-22 Jakub Jelinek <jakub@redhat.com>
5450 PR tree-optimization/80072
5451 * tree-ssa-reassoc.c (struct operand_entry): Change id field type
5453 (next_operand_entry_id): Change type to unsigned int.
5454 (sort_by_operand_rank): Make sure to return the right return value
5455 even if unsigned fields are bigger than INT_MAX.
5456 (struct oecount): Change cnt and id type to unsigned int.
5457 (oecount_hasher::equal): Formatting fix.
5458 (oecount_cmp): Make sure to return the right return value
5459 even if unsigned fields are bigger than INT_MAX.
5460 (undistribute_ops_list): Change next_oecount_id type to unsigned int.
5463 * gimplify.c (gimplify_modify_expr_rhs) <case COND_EXPR>: Clear
5464 TREE_READONLY on result if writing it more than once.
5467 * doc/invoke.texi (-fsanitize=thread): Document that with
5468 -fnon-call-exceptions atomics are not able to throw
5472 * tsan.c: Include tree-eh.h.
5473 (instrument_builtin_call): Call maybe_clean_eh_stmt or
5474 maybe_clean_or_replace_eh_stmt where needed.
5475 (instrument_memory_accesses): Add cfg_changed argument.
5476 Call gimple_purge_dead_eh_edges on each block and set *cfg_changed
5477 if it returned true.
5478 (tsan_pass): Adjust caller. Return TODO_cleanup_cfg if cfg_changed.
5480 PR rtl-optimization/63191
5481 * config/i386/i386.c (ix86_delegitimize_address): Turn into small
5482 wrapper function, moved the whole old content into ...
5483 (ix86_delegitimize_address_1): ... this. New inline function.
5484 (ix86_find_base_term): Use ix86_delegitimize_address_1 with
5485 true as last argument instead of ix86_delegitimize_address.
5487 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
5489 * config/aarch64/aarch64.c (generic_branch_cost): Copy
5490 cortexa57_branch_cost.
5492 2017-03-22 Wilco Dijkstra <wdijkstr@arm.com>
5494 * config/aarch64/aarch64.c (generic_tunings): Add AES fusion.
5496 2017-03-21 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5499 * doc/md.texi (Constraints): Document wA constraint.
5500 * config/rs6000/constraints.md (wA): New.
5501 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Add wA reg_class.
5502 (rs6000_init_hard_regno_mode_ok): Init wA constraint.
5503 * config/rs6000/rs6000.h (RS6000_CONSTRAINT_wA): New.
5504 * config/rs6000/vsx.md (vsx_splat_<mode>): Use wA constraint.
5506 2017-03-22 Cesar Philippidis <cesar@codesourcery.com>
5509 * gimplify.c (is_oacc_declared): New function.
5510 (oacc_default_clause): Use it to set default flags for acc declared
5511 variables inside parallel regions.
5512 (gimplify_scan_omp_clauses): Strip firstprivate pointers for acc
5514 (gimplify_oacc_declare): Gimplify the declare clauses. Add the
5515 declare attribute to any decl as necessary.
5517 2017-03-22 Thomas Preud'homme <thomas.preudhomme@arm.com>
5520 * config/arm/arm-isa.h (isa_bit_lpae): New feature bit.
5521 (ISA_ARMv7ve): Add isa_bit_lpae to the definition.
5522 * config/arm/arm-protos.h (arm_arch7ve): Rename into ...
5523 (arm_arch_lpae): This.
5524 * config/arm/arm.c (arm_arch7ve): Rename into ...
5525 (arm_arch_lpae): This. Define it in term of isa_bit_lpae.
5526 * config/arm/arm.h (TARGET_HAVE_LPAE): Redefine in term of
5529 2017-03-22 Martin Liska <mliska@suse.cz>
5532 * config/rs6000/rs6000.c (rs6000_inner_target_options): Show
5533 error message instead of an ICE.
5535 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5537 * doc/extend.texi (6.11 Additional Floating Types): Revise.
5539 2017-03-21 Kelvin Nilsen <kelvin@gcc.gnu.org>
5541 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
5543 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
5546 2017-03-21 Martin Sebor <msebor@redhat.com>
5548 * doc/extend.texi: Use "cannot" instead of "can't."
5549 * doc/hostconfig.texi: Same.
5550 * doc/install.texi: Same.
5551 * doc/invoke.texi: Same.
5552 * doc/loop.texi: Same.
5553 * doc/md.texi: Same.
5554 * doc/objc.texi: Same.
5555 * doc/rtl.texi: Same.
5556 * doc/tm.texi: Same.
5557 * doc/tm.texi.in: Same.
5558 * doc/trouble.texi: Same.
5560 2017-03-21 Alexandre Oliva <aoliva@redhat.com>
5563 * dwarf2out.c (struct checksum_attributes): Add at_alignment.
5564 (collect_checksum_attributes): Set it.
5565 (die_checksum_ordered): Use it.
5567 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5569 PR tree-optimization/79908
5570 * tree-stdarg.c (expand_ifn_va_arg_1): Revert the following
5571 change: For a VA_ARG whose LHS has been cast away, use
5572 force_gimple_operand to construct the side effects.
5574 2017-03-21 David Malcolm <dmalcolm@redhat.com>
5576 PR translation/80001
5577 * omp-offload.c (oacc_loop_fixed_partitions): Make diagnostics
5578 more amenable to translation.
5579 (oacc_loop_auto_partitions): Likewise.
5581 2017-03-21 Marek Polacek <polacek@redhat.com>
5582 Martin Sebor <msebor@redhat.com>
5584 PR tree-optimization/80109
5585 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call get_range_info
5588 2017-03-21 Jakub Jelinek <jakub@redhat.com>
5589 Segher Boessenkool <segher@kernel.crashing.org>
5592 * combine.c (can_combine_p): Revert the 2017-03-20 change, only
5593 check reg_used_between_p between insn and one of succ or succ2
5594 depending on if succ is artificial insn not inserted into insn
5597 2017-03-21 Martin Liska <mliska@suse.cz>
5599 PR gcov-profile/80081
5600 * Makefile.in: Add gcov-dump and fix installation of gcov-tool.
5601 * doc/gcc.texi: Include gcov-dump stuff.
5602 * doc/gcov-dump.texi: New file.
5604 2017-03-21 Toma Tabacu <toma.tabacu@imgtec.com>
5606 PR rtl-optimization/79150
5607 * config/mips/mips.c (mips_block_move_loop): Emit a NOP after the
5608 conditional jump, if the jump is the last insn of the loop.
5610 2017-03-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5611 Richard Biener <rguenth@suse.de>
5613 PR tree-optimization/79908
5614 * tree-stdarg.c (expand_ifn_va_arg_1): For a VA_ARG whose LHS has
5615 been cast away, use force_gimple_operand to construct the side
5618 2017-03-21 Martin Liska <mliska@suse.cz>
5621 * simplify-rtx.c (simplify_immed_subreg): Initialize a variable
5624 2017-03-21 Brad Spengler <spender@grsecurity.net>
5627 * plugin.c (htab_hash_plugin): New function.
5628 (add_new_plugin): Use it and adjust.
5629 (parse_plugin_arg_opt): Adjust.
5630 (init_one_plugin): Likewise.
5632 2017-03-21 Richard Biener <rguenther@suse.de>
5634 PR tree-optimization/80032
5635 * gimplify.c (gimple_push_cleanup): Add force_uncond parameter,
5636 if set force the cleanup to happen unconditionally.
5637 (gimplify_target_expr): Push inserted clobbers with force_uncond
5638 to avoid them being removed by control-dependent DCE.
5640 2017-03-21 Richard Biener <rguenther@suse.de>
5642 PR tree-optimization/80122
5643 * tree-inline.c (copy_bb): Do not expans va-arg packs or
5644 va_arg_pack_len when the inlined call stmt requires pack
5646 * tree-inline.h (struct copy_body_data): Make call_stmt a gcall *.
5648 2017-03-21 Jakub Jelinek <jakub@redhat.com>
5651 * tsan.c (instrument_builtin_call): If the memory model argument
5652 is not a constant, assume it is valid.
5655 * fold-const.c (round_up_loc): Negate divisor in unsigned type to
5658 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
5660 PR rtl-optimization/79910
5661 * combine.c (can_combine_p): Do not allow combining an I0 or I1
5662 if its dest is used by an insn before I2 (other than the combined
5663 insns themselves, which are properly handled already).
5665 2017-03-20 Segher Boessenkool <segher@kernel.crashing.org>
5668 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
5670 * combine.c (record_used_regs): New static function.
5671 (try_combine): Handle situations where there is an additional
5672 instruction between I2 and I3 which needs to have a LOG_LINK
5676 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
5678 * combine.c (try_combine): Delete redundant i1 test. Call
5679 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
5681 2017-03-20 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
5684 * config/rs6000/rs6000.md (*movsi_internal1): Fix constraints for
5687 2017-03-20 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
5689 PR tree-optimization/80054
5690 * gimple-ssa-strength-reduction.c (all_phi_incrs_profitable): Fail
5691 the optimization if a PHI or any of its arguments is not dominated
5692 by the candidate's basis. Use gphi* rather than gimple* as
5694 (replace_profitable_candidates): Clean up a gimple* variable that
5695 should be a gphi* variable.
5697 2017-03-20 Martin Sebor <msebor@redhat.com>
5700 * doc/extend.texi (attribute constructor): Document present limitation.
5702 2017-03-20 Kelvin Nilsen <kelvin@gcc.gnu.org>
5705 * config/rs6000/altivec.h (vec_all_ne): Under __cplusplus__ and
5706 __POWER9_VECTOR__ #ifdef control, change template definition to
5707 use Power9-specific built-in function.
5708 (vec_any_eq): Likewise.
5709 * config/rs6000/vector.md (vector_ae_v2di_p): Change the flag used
5710 to control outcomes from this test.
5711 (vector_ae_<mode>p): For VEC_F modes, likewise.
5713 2017-03-20 Ian Lance Taylor <iant@google.com>
5715 * config/i386/i386.c (ix86_function_regparm): Save an extra
5716 register for -fsplit-stack with DECL_STATIC_CHAIN.
5718 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
5721 * config/riscv/riscv.c (riscv_preferred_reload_class): Remove.
5722 (TARGET_PREFERRED_RELOAD_CLASS): Likewise.
5724 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com>
5726 * config/riscv/riscv.c (riscv_print_operand): Use "fence
5728 * config/riscv/sync.mc (mem_thread_fence_1): Use "fence
5731 2017-03-20 Marek Polacek <polacek@redhat.com>
5734 * asan.c (DEF_SANITIZER_BUILTIN): Use do { } while (0).
5736 2017-03-20 Richard Biener <rguenther@suse.de>
5738 PR tree-optimization/80113
5739 * graphite-isl-ast-to-gimple.c (copy_loop_phi_nodes): Do not
5740 allocate extra SSA name for PHI def.
5741 (add_close_phis_to_outer_loops): Likewise.
5742 (add_close_phis_to_merge_points): Likewise.
5743 (copy_loop_close_phi_args): Likewise.
5744 (copy_cond_phi_nodes): Likewise.
5746 2017-03-20 Martin Liska <mliska@suse.cz>
5749 * tree-chkp.c (chkp_build_returned_bound): Do not build
5750 returned bounds for a LHS that's not a BOUNDED_P type.
5752 2017-03-20 Martin Liska <mliska@suse.cz>
5756 * tree-chkp.c (chkp_find_bounds_1): Handle REAL_CST,
5757 COMPLEX_CST and VECTOR_CST.
5759 2017-03-20 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
5762 * config/s390/s390.md ("cmp<mode>_ccs_0"): Add a clobber of the
5763 target operand. A new splitter adds the clobber statement in case
5764 the target operand is dead anyway.
5766 2017-03-19 Gerald Pfeifer <gerald@pfeifer.com>
5768 * doc/install.texi (Specific) <sparc-*-linux*>: No longer refer
5769 to age-old versions of binutils and glibc.
5771 2017-03-18 Segher Boessenkool <segher@kernel.crashing.org>
5773 * doc/contrib.texi (Contributors): Remove duplicate entry for myself.
5775 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
5777 * doc/contrib.texi (Contributors): Add Segher Boessenkool.
5779 2017-03-18 Gerald Pfeifer <gerald@pfeifer.com>
5781 * doc/install.texi (Specific) <arm-*-eabi>: Remove old
5782 requirement for binutils 2.13.
5784 2017-03-17 Jim Wilson <jim.wilson@linaro.org>
5786 * combine.c (try_combine): Delete redundant i1 test. Call
5787 prev_nonnote_nondebug_insn instead of prev_nonnote_insn.
5789 2017-03-17 Palmer Dabbelt <palmer@dabbelt.com
5791 * doc/install.texi (Specific) <riscv32-*-elf>: Add riscv32-*-elf,
5792 riscv32-*-linux, riscv64-*-elf, riscv64-*-linux to the table of
5794 <riscv64-*-elf>: Re-arrange section
5795 <riscv32-*-elf>: Add a note about requiring binutils 2.28.
5796 <riscv32-*-linux>: Likewise.
5797 <riscv64-*-elf>: Likewise
5798 <riscv64-*-linux>: Likewise.
5800 2017-03-17 Richard Earnshaw <rearnsha@arm.com>
5803 * aarch64.opt(verbose-cost-dump): Fix typo.
5805 2017-03-17 Pat Haugen <pthaugen@us.ibm.com>
5808 * config/rs6000/rs6000.md (copysign<mode>3_fcpsgn): Test
5809 for VECTOR_UNIT_VSX_P (<MODE>mode) too.
5811 2017-03-17 Bernd Schmidt <bschmidt@redhat.com>
5813 * reload.c (find_reloads): When reloading a nonoffsettable address,
5814 use RELOAD_OTHER for it and its address reloads.
5816 PR rtl-optimization/79910
5817 * combine.c (record_used_regs): New static function.
5818 (try_combine): Handle situations where there is an additional
5819 instruction between I2 and I3 which needs to have a LOG_LINK
5822 2017-03-17 Jeff Law <law@redhat.com>
5824 PR tree-optimization/71437
5825 * tree-vrp.c (simplify_stmt_for_jump_threading): Lookup the
5826 conditional in the hash table first.
5827 (vrp_dom_walker::before_dom_children): Extract condition from
5828 ASSERT_EXPR. Record condition, its inverion and any implied
5831 2017-03-17 Marek Polacek <polacek@redhat.com>
5832 Markus Trippelsdorf <markus@trippelsdorf.de>
5834 PR tree-optimization/80079
5835 * gimple-ssa-store-merging.c (class pass_store_merging): Initialize
5838 2017-03-17 Richard Biener <rguenther@suse.de>
5841 * tree-eh.c (stmt_could_throw_1_p): Only handle gimple assigns.
5842 Properly verify the LHS before the RHS possibly claims to be
5844 (stmt_could_throw_p): Hande gimple conds fully here. Clobbers
5847 2017-03-17 Martin Jambor <mjambor@suse.cz>
5849 * doc/invoke.texi (Option Options): Include -fipa-vrp in the list.
5850 (List of -O2 options): Likewise.
5851 (-fipa-bit-cp): Replace "ipa" with "interprocedural."
5854 2017-03-17 Tom de Vries <tom@codesourcery.com>
5856 * gcov-dump.c (print_usage): Print bug_report_url.
5858 2017-03-17 Richard Biener <rguenther@suse.de>
5861 * genmatch.c (parser::next): Remove pointless check for CPP_EOF.
5862 (parser::peek): Likewise.
5864 2017-03-17 Richard Biener <rguenther@suse.de>
5866 PR tree-optimization/80048
5867 * sese.c (free_sese_info): Properly release rename_map and
5868 copied_bb_map elements.
5870 2017-03-16 Alexandre Oliva <aoliva@redhat.com>
5872 * gimple-ssa-store-merging.c (struct imm_store_chain_info):
5873 Add linked-list forward and backlinks. Insert on
5874 construction, remove on destruction.
5875 (class pass_store_merging): Add m_stores_head field.
5876 (pass_store_merging::terminate_and_process_all_chains):
5877 Iterate over m_stores_head list.
5878 (pass_store_merging::terminate_all_aliasing_chains):
5880 (pass_store_merging::execute): Check for debug stmts first.
5881 Push new chains onto the m_stores_head stack.
5883 2017-03-16 Michael Meissner <meissner@linux.vnet.ibm.com>
5886 * config/rs6000/vsx.md (vsx_splat_<mode>, VSX_D iterator): Allow a
5887 SPLAT operation on ISA 2.07 64-bit systems that have direct move,
5888 but no MTVSRDD support, by doing MTVSRD and XXPERMDI.
5890 2017-03-16 Jeff Law <law@redhat.com>
5892 PR tree-optimization/71437
5893 * tree-ssa-dom.c (dom_opt_dom_walker): Remove thread_across_edge
5894 member function. Implementation moved into after_dom_children
5895 member function and into the threader's thread_outgoing_edges
5897 (dom_opt_dom_walker::after_dom_children): Simplify by moving
5898 some code into new thread_outgoing_edges.
5899 * tree-ssa-threadedge.c (thread_across_edge): Make static and simplify
5900 definition. Simplify marker handling (do it here). Assume we always
5901 have the available expression and the const/copies tables.
5902 (thread_outgoing_edges): New function extracted from tree-ssa-dom.c
5904 * tree-ssa-threadedge.h (thread_outgoing_edges): Declare.
5905 * tree-vrp.c (equiv_stack): No longer file scoped.
5906 (vrp_dom_walker): New class.
5907 (vrp_dom_walker::before_dom_children): New member function.
5908 (vrp_dom_walker::after_dom_children): Likewise.
5909 (identify_jump_threads): Setup domwalker. Use it rather than
5910 walking edges in a random order by hand. Simplify setup/finalization.
5911 (finalize_jump_threads): Remove.
5912 (vrp_finalize): Do not call identify_jump_threads here.
5913 (execute_vrp): Do it here instead and call thread_through_all_blocks
5916 PR tree-optimization/71437
5917 * tree-ssa-dom.c (pfn_simplify): Add basic_block argument. All
5919 (simplify_stmt_for_jump_threading): Add basic_block argument. All
5921 (lhs_of_dominating_assert): Moved from here into tree-vrp.c.
5922 (dom_opt_dom_walker::thread_across_edge): Remove
5923 handle_dominating_asserts argument. All callers changed.
5924 (record_temporary_equivalences_from_stmts_at_dest): Corresponding
5925 changes. Remove calls to lhs_of_dominating_assert. Other
5926 uses of handle_dominating_asserts turn into unconditional code
5927 (simplify_control_stmt_condition_1): Likewise.
5928 (simplify_control_stmt_condition): Likewise.
5929 (thread_through_normal_block, thread_across_edge): Likewise.
5930 * tree-ssa-threadedge.h (thread_across_edge): Corresponding changes.
5931 * tree-vrp.c (lhs_of_dominating_assert): Move here. Return original
5932 object if it is not an SSA_NAME.
5933 (simplify_stmt_for_jump_threading): Call lhs_of_dominating_assert
5934 before calling into the VRP specific simplifiers.
5935 (identify_jump_threads): Remove handle_dominating_asserts
5938 2017-03-16 Jakub Jelinek <jakub@redhat.com>
5941 * tree-diagnostic.c (default_tree_printer): No longer static.
5942 * tree-diagnostic.h (default_tree_printer): New prototype.
5944 2017-03-16 Tamar Christina <tamar.christina@arm.com>
5946 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>)
5947 Change ins into fmov.
5949 2017-03-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5951 * config/aarch64/iterators.md (h_con): Return "x" for V4HF and V8HF.
5952 * config/aarch64/aarch64-simd.md (*aarch64_fma4_elt_from_dup<mode>):
5953 Use h_con constraint for operand 1.
5954 (*aarch64_fnma4_elt_from_dup<mode>): Likewise.
5955 (*aarch64_mulx_elt_from_dup<mode>): Likewise for operand 2.
5957 2017-03-15 Jeff Law <law@redhat.com>
5959 PR tree-optimization/71437
5960 * tree-ssa-dom.c (derive_equivalences_from_bit_ior): New function.
5961 (record_temporary_equivalences): Use it.
5963 PR tree-optimization/71437
5964 * tree-ssa-dom.c (struct cond_equivalence): Moved from here into
5965 tree-ssa-scopedtables.
5966 (lookup_avail_expr, build_and_record_new_cond): Likewise.
5967 (record_conditions, record_cond, vuse_eq): Likewise.
5968 (record_edge_info): Adjust to API tweak of record_conditions.
5969 (simplify_stmt_for_jump_threading): Similarly for lookup_avail_expr.
5970 (record_temporary_equivalences, optimize_stmt): Likewise.
5971 (eliminate_redundant_computations): Likewise.
5972 (record_equivalences_from_stmt): Likewise.
5973 * tree-ssa-scopedtables.c: Include options.h and params.h.
5974 (vuse_eq): New function, moved from tree-ssa-dom.c
5975 (build_and_record_new_cond): Likewise.
5976 (record_conditions): Likewise. Accept vector of conditions rather
5977 than edge_equivalence structure for first argument.
5978 for the first argument.
5979 (avail_exprs_stack::lookup_avail_expr): New member function, moved
5980 from tree-ssa-dom.c.
5981 (avail_exprs_stack::record_cond): Likewise.
5982 * tree-ssa-scopedtables.h (struct cond_equivalence): Moved here
5983 from tree-ssa-dom.c.
5984 (avail_exprs_stack): Add new member functions lookup_avail_expr
5986 (record_conditions): Declare.
5988 2017-03-15 Vladimir Makarov <vmakarov@redhat.com>
5991 * lra-constraints.c (process_alt_operands): Increase reject for
5992 reloading an input/output operand.
5994 2017-03-15 Michael Meissner <meissner@linux.vnet.ibm.com>
5997 * config/rs6000/rs6000.md (float<QHI:mode><IEEE128:mode>2): Define
5998 insns to convert from signed/unsigned char/short to IEEE 128-bit
6000 (floatuns<QHI:mode><IEEE128:mode>2): Likewise.
6002 2017-03-15 Uros Bizjak <ubizjak@gmail.com>
6005 * config/i386/i386.c (ix86_vector_duplicate_value): Create
6006 subreg of inner mode for values already in registers.
6008 2017-03-15 Bernd Schmidt <bschmidt@redhat.com>
6010 * config/c6x/c6x.c (hwloop_optimize): Handle case where the old
6011 iteration reg is used after the loop.
6013 2017-03-14 Martin Sebor <msebor@redhat.com>
6015 PR tree-optimization/79800
6016 * gimple-ssa-sprintf.c (format_floating: Add argument. Handle
6017 precision in negative-positive range.
6018 (format_floating): Call non-const overload with adjusted precision.
6020 2017-03-14 Michael Meissner <meissner@linux.vnet.ibm.com>
6023 * config/rs6000/rs6000.h (TARGET_FRSQRTES): Add check for
6026 2017-03-14 Martin Sebor <msebor@redhat.com>
6029 * builtin-attrs.def (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): New macro.
6030 * builtins.def (aligned_alloc): Use it.
6033 * Makefile.in (GTFILES): Add calls.c.
6034 * calls.c: Include "gt-calls.h".
6036 2017-03-14 Bernd Schmidt <bschmidt@redhat.com>
6038 PR rtl-optimization/79728
6039 * regs.h (struct target_regs): New field
6040 x_contains_allocatable_regs_of_mode.
6041 (contains_allocatable_regs_of_mode): New macro.
6042 * reginfo.c (init_reg_sets_1): Initialize it, and change
6043 contains_reg_of_mode so it includes global regs as well.
6044 * reload.c (push_reload): Use contains_allocatable_regs_of_mode
6045 rather than contains_regs_of_mode.
6047 2017-03-14 Martin Liska <mliska@suse.cz>
6049 * doc/invoke.texi: Document options that can't be combined with
6050 -fcheck-pointer-bounds.
6052 2017-03-14 Martin Liska <mliska@suse.cz>
6055 * doc/invoke.texi (-Wchkp): Document the option.
6057 2017-03-14 Martin Liska <mliska@suse.cz>
6059 * Makefile.in: Install gcov-dump.
6061 2017-03-14 Martin Liska <mliska@suse.cz>
6063 * multiple_target.c (expand_target_clones): Bail out for
6064 an invalid attribute.
6066 2017-03-14 Richard Biener <rguenther@suse.de>
6068 * alias.c (struct alias_set_entry): Pack properly.
6069 * cfgloop.h (struct loop): Likewise.
6070 * cse.c (struct set): Likewise.
6071 * ipa-utils.c (struct searchc_env): Likewise.
6072 * loop-invariant.c (struct invariant): Likewise.
6073 * lra-remat.c (struct cand): Likewise.
6074 * recog.c (struct change_t): Likewise.
6075 * rtl.h (struct address_info): Likewise.
6076 * symbol-summary.h (function_summary): Likewise.
6077 * tree-loop-distribution.c (struct partition): Likewise.
6078 * tree-object-size.c (struct object_size_info): Likewise.
6079 * tree-ssa-loop-ivopts.c (struct cost_pair): Likewise.
6080 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Likewise.
6081 * tree-vect-data-refs.c (struct _vect_peel_info): Likewise.
6082 * tree-vect-slp.c (struct _slp_oprnd_info): Likewise.
6083 * tree-vect-stmts.c (struct simd_call_arg_info): Likewise.
6084 * tree-vectorizer.h (struct _loop_vec_info): Likewise.
6085 (struct _stmt_vec_info): Likewise.
6087 2017-03-14 Martin Liska <mliska@suse.cz>
6090 * multiple_target.c (create_dispatcher_calls): Check that
6091 a target can create a function dispatcher.
6093 2017-03-14 Martin Liska <mliska@suse.cz>
6096 * multiple_target.c (expand_target_clones): Drop local.local
6097 flag for default implementation.
6099 2017-03-14 Richard Biener <rguenther@suse.de>
6101 PR tree-optimization/80030
6102 * tree-vect-stmts.c (vectorizable_store): Plug memleak.
6104 2017-03-13 Kito Cheng <kito.cheng@gmail.com>
6106 * config/riscv/riscv.c (riscv_emit_float_compare>: Use
6107 gcc_fallthrough() instead of __attribute__((fallthrough));
6109 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
6111 * doc/gcc.texi: Remove "up" link to (DIR).
6112 * doc/gccint.texi: Ditto.
6114 2017-03-13 Gerald Pfeifer <gerald@pfeifer.com>
6116 * doc/install.texi (Specific) <avr>: Remove reference to
6119 2017-03-13 Jeff Law <law@redhat.com>
6121 * config/riscv/riscv.c (riscv_emit_float_compare): Use fallthru
6122 attribute rather than comments.
6124 * config/pdp11/pdp11.md (movmemhi): Adjust operand numbers to
6125 match_scratch operand is highest.
6127 2017-03-13 Martin Liska <mliska@suse.cz>
6130 * ipa-pure-const.c (warn_function_noreturn): If the declarations
6131 is a CHKP clone, use original declaration.
6133 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
6135 * config/arc/arc.c (arc_init): Use multiplier whenever we have it.
6136 (arc_conditional_register_usage): Use a different allocation order
6137 when optimizing for size.
6138 * common/config/arc/arc-common.c (arc_option_optimization_table):
6139 Section anchors default on when optimizing for size.
6141 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
6143 * config/arc/arc.md (*tst_bitfield_tst): Fix pattern.
6145 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
6147 * config/arc/arc.c (arc_output_addsi): Emit code density adds.
6148 * config/arc/arc.md (cpu_facility): Add cd variant.
6149 (*movqi_insn): Add code density variant.
6150 (*movhi_insn): Likewise.
6151 (*movqi_insn): Likewise.
6152 (*addsi3_mixed): Likewise.
6153 (subsi3_insn): Likewise.
6155 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
6157 * config/arc/arc.md (movsi_cond_exec): Update constraint.
6159 2017-03-13 Claudiu Zissulescu <claziss@synopsys.com>
6161 * config/arc/arc.c (arc_legitimize_pic_address): Handle PIC
6162 expressions with MINUS and UNARY ops.
6164 2017-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6167 * config/arm/neon.md (vec_sel_widen_ssum_lo<VQI:mode><VW:mode>3):
6169 (vec_sel_widen_ssum_lo<mode><V_half>3): ... This. Avoid mismatch
6170 between vec_select and vector argument.
6171 (vec_sel_widen_ssum_hi<VQI:mode><VW:mode>3): Rename to...
6172 (vec_sel_widen_ssum_hi<mode><V_half>3): ... This. Likewise.
6173 (vec_sel_widen_usum_lo<VQI:mode><VW:mode>3): Rename to...
6174 (vec_sel_widen_usum_lo<mode><V_half>3): ... This.
6175 (vec_sel_widen_usum_hi<VQI:mode><VW:mode>3): Rename to...
6176 (vec_sel_widen_usum_hi<mode><V_half>3): ... This.
6178 2017-03-13 Richard Biener <rguenther@suse.de>
6181 * params.def (vect-max-peeling-for-alignment): Fix typo.
6183 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6185 * doc/install.texi (Specific) <mips-*-*>: Remove description of
6186 issue that only occurred with binutils below 2.18.
6188 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6190 * doc/install.texi (Specific) <cris-axis-elf>: No longer
6191 refer to binutils 2.11/2.12 minimum.
6193 2017-03-12 Gerald Pfeifer <gerald@pfeifer.com>
6195 * doc/install.texi (Specific) <powerpc-*-*>: Remove link to
6196 ftp.kernel.org and simplify binutils requirement.
6198 2017-03-11 Gerald Pfeifer <gerald@pfeifer.com>
6200 * doc/invoke.texi (Warning Options): Fix spelling of link-time
6202 (Optimize Options): Ditto. Also remove redundancy.
6204 2017-03-10 David Malcolm <dmalcolm@redhat.com>
6206 PR translation/79848
6207 * ipa-devirt.c (warn_types_mismatch): Simplify uses of "%<%s%>" to
6209 * ipa-pure-const.c (suggest_attribute): Likewise. Convert _
6210 to G_ to avoid double translation.
6212 2017-03-10 David Malcolm <dmalcolm@redhat.com>
6214 PR translation/79923
6215 * auto-profile.c (get_combined_location): Convert leading
6216 character of diagnostics to lower case and remove trailing period.
6217 (read_profile): Likewise for various diagnostics.
6218 * config/arm/arm.c (arm_option_override): Remove trailing period
6219 from various diagnostics.
6220 * config/msp430/msp430.c (msp430_expand_delay_cycles): Likewise.
6221 (msp430_expand_delay_cycles): Likewise.
6223 2017-03-10 David Malcolm <dmalcolm@redhat.com>
6226 * config/aarch64/aarch64.c (aarch64_validate_mcpu): Quote the
6227 full command-line argument, rather than just "str".
6228 (aarch64_validate_march): Likewise.
6229 (aarch64_validate_mtune): Likewise.
6231 2017-03-10 Bernd Schmidt <bschmidt@redhat.com>
6233 PR rtl-optimization/78911
6234 * lra-assigns.c (must_not_spill_p): New function.
6235 (spill_for): Use it.
6237 2017-03-10 Jakub Jelinek <jakub@redhat.com>
6239 PR tree-optimization/79981
6240 * tree-vrp.c (extract_range_basic): Handle IMAGPART_EXPR of
6241 ATOMIC_COMPARE_EXCHANGE ifn result.
6242 (stmt_interesting_for_vrp, vrp_visit_stmt): Handle
6243 IFN_ATOMIC_COMPARE_EXCHANGE.
6245 2017-03-10 David Malcolm <dmalcolm@redhat.com>
6248 * opts.c (parse_sanitizer_options): Add missing question mark to
6249 "did you mean" message.
6251 2017-03-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6253 * config/rs6000/rs6000-builtin.def (VMULEUB_UNS): Remove orphaned
6255 (VMULEUH_UNS): Likewise.
6256 (VMULOUB_UNS): Likewise.
6257 (VMULOUH_UNS): Likewise.
6258 * config/rs6000/rs6000.c (builtin_function_type): Remove
6259 references to ALTIVEC_BUILTIN_VMUL[EO]U[BH]_UNS.
6261 2017-03-10 David Malcolm <dmalcolm@redhat.com>
6264 * read-rtl-function.c (function_reader::read_rtx_operand): Update
6265 x with result of extra_parsing_for_operand_code_0.
6266 (function_reader::extra_parsing_for_operand_code_0): Convert
6267 return type from void to rtx, returning x. When reading
6268 SYMBOL_REF with SYMBOL_FLAG_HAS_BLOCK_INFO, reallocate x to the
6269 larger size containing struct block_symbol.
6271 2017-03-10 Segher Boessenkool <segher@kernel.crashing.org>
6273 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow
6274 -mfloat128-hardware without -m64.
6276 2017-03-10 Will Schmidt <will_schmidt@vnet.ibm.com>
6279 * config/rs6000/rs6000.c (builtin_function_type): Add VMUL*U[HB]
6280 entries to the case statement that marks unsigned arguments to
6281 overloaded functions.
6283 2017-03-10 Kelvin Nilsen <kelvin@gcc.gnu.org>
6285 * config/rs6000/rs6000.c (rs6000_option_override_internal): Fix
6286 two typographic errors in the handling of TARGET_UPPER_REGS_DI.
6288 2017-03-10 Pat Haugen <pthaugen@us.ibm.com>
6291 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Test
6292 TARGET_UPPER_REGS_DI when setting 'wi' constraint regclass.
6294 2017-03-10 Martin Liska <mliska@suse.cz>
6298 * toplev.c (process_options): Enable MPX with LSAN and UBSAN.
6299 * tree-chkp.c (chkp_walk_pointer_assignments): Verify that
6302 2017-03-10 Olivier Hainque <hainque@adacore.com>
6304 * tree-switch-conversion (array_value_type): Start by resetting
6305 candidate type to it's main variant.
6307 2017-03-10 Jakub Jelinek <jakub@redhat.com>
6309 PR rtl-optimization/79909
6310 * combine.c (try_combine): Use simplify_replace_rtx on individual
6311 CALL_INSN_FUNCTION_USAGE elements instead of replace_rtx on copy_rtx
6312 of the whole CALL_INSN_FUNCTION_USAGE.
6314 PR tree-optimization/79972
6315 * gimple-ssa-warn-alloca.c (alloca_call_type): Only call
6316 get_range_info on SSA_NAMEs. Formatting fixes.
6318 2017-03-10 Richard Biener <rguenther@suse.de>
6319 Jakub Jelinek <jakub@redhat.com>
6321 PR tree-optimization/77975
6322 * tree-ssa-loop-niter.c (get_base_for): Allow phi argument from latch
6323 edge to be constant.
6324 (get_val_for): For constant x return it. Formatting fix.
6325 (loop_niter_by_eval): Avoid pointless looping if the next iteration
6326 would use the same bases as the current one.
6328 2017-03-09 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6330 * config/rs6000/rs6000.c (rs6000_gen_le_vsx_permute): Use rotate
6331 instead of vec_select for V1TImode.
6332 * conifg/rs6000/vsx.md (VSX_LE): Remove mode iterator that is no
6334 (VSX_LE_128): Add V1TI to this mode iterator.
6335 (*vsx_le_perm_load_<mode>): Change to use VSX_D mode iterator.
6336 (*vsx_le_perm_store_<mode>): Likewise.
6337 (pre-reload splitter for VSX stores): Likewise.
6338 (post-reload splitter for VSX stores): Likewise.
6339 (*vsx_xxpermdi2_le_<mode>): Likewise.
6340 (*vsx_lxvd2x2_le_<mode>): Likewise.
6341 (*vsx_stxvd2x2_le_<mode>): Likewise.
6343 2017-03-09 Michael Eager <eager@eagercon.com>
6345 Correct failures with --enable-checking=yes,rtl.
6347 * config/microblaze/microblaze.c (microblaze_expand_shift):
6348 Replace GET_CODE test with CONST_INT_P and INTVAL test with
6349 test for const0_rtx.
6350 * config/microblaze/microblaze.md (ashlsi3_byone, ashrsi3_byone,
6351 lshrsi3_byone): Replace INTVAL with test for const1_rtx.
6353 2017-03-09 Richard Biener <rguenther@suse.de>
6355 PR tree-optimization/79977
6356 * graphite-scop-detection.c (scop_detection::merge_sese):
6357 Handle the case of extra exits to blocks dominating the entry.
6359 2017-03-09 Toma Tabacu <toma.tabacu@imgtec.com>
6361 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes):
6364 2017-03-09 Vladimir Makarov <vmakarov@redhat.com>
6366 PR rtl-optimization/79949
6367 * lra-constraints.c (process_alt_operands): Check memory when
6368 trying to predict a cycle. Print about the overall increase.
6370 2017-03-09 Richard Biener <rguenther@suse.de>
6373 * gimple-expr.c (useless_type_conversion_p): Preserve
6374 TYPE_SATURATING for fixed-point types.
6376 2017-03-09 Richard Biener <rguenther@suse.de>
6379 * ipa-prop.c (ipa_modify_formal_parameters): Avoid changing
6380 alignment of BLKmode params.
6382 2017-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6385 * config/aarch64/iterators.md (VALL_F16_NO_V2Q): New mode iterator.
6386 (VALL_NO_V2Q): Likewise.
6388 * config/aarch64/aarch64-simd.md
6389 (aarch64_dup_lane_<vswap_width_name><mode>): Use VALL_F16_NO_V2Q
6391 (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Use
6392 VALL_NO_V2Q mode iterator.
6393 (*aarch64_vgetfmulx<mode>): Use VDQF iterator.
6395 2017-03-09 Martin Liska <mliska@suse.cz>
6397 PR tree-optimization/79631
6398 * tree-chkp-opt.c (chkp_is_constant_addr): Call
6399 tree_int_cst_sign_bit just for INTEGER constants.
6401 2017-03-09 Martin Liska <mliska@suse.cz>
6405 * toplev.c (process_options): Disable -fcheck-pointer-bounds with
6408 2017-03-09 Marek Polacek <polacek@redhat.com>
6411 * tree.c (inchash::add_expr): Handle TREE_VEC.
6413 2017-03-09 Martin Liska <mliska@suse.cz>
6416 (chkp_narrow_size_and_offset): New function.
6417 (chkp_parse_array_and_component_ref): Support BIT_FIELD_REF.
6418 (void chkp_parse_bit_field_ref): New function.
6419 (chkp_make_addressed_object_bounds): Add case for BIT_FIELD_REF.
6420 (chkp_process_stmt): Use chkp_parse_bit_field_ref.
6422 2017-03-09 Martin Liska <mliska@suse.cz>
6425 * tree-chkp.c (chkp_get_bound_for_parm): Get bounds for a param.
6426 (chkp_find_bounds_1): Remove gcc_unreachable.
6428 2017-03-09 Jakub Jelinek <jakub@redhat.com>
6431 * asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
6432 BUILT_IN_SYNC*, determine the access type from the size suffix and
6433 always build a MEM_REF with that type. Handle forgotten
6434 BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.
6437 * config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
6438 _mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
6439 _mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
6440 _mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
6441 _mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
6442 _mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
6443 _mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
6444 _mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
6445 _mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
6446 _mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
6447 _mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
6448 _mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
6449 _mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
6450 _mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
6451 _mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
6452 _mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
6453 _mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
6454 _mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
6455 _mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
6456 _mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
6457 _mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
6458 _mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
6459 _mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
6460 _mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
6461 _mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
6462 _mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
6463 _mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
6464 _mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
6465 _mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
6466 _mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
6467 definitions outside of __OPTIMIZE__ guarded section.
6470 * config/i386/avx512bwintrin.h (_mm512_packs_epi32,
6471 _mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
6472 _mm512_packus_epi32, _mm512_maskz_packus_epi32,
6473 _mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
6476 2017-03-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
6478 * config/s390/vx-builtins.md ("vfee<mode>", "vfeez<mode>")
6479 ("vfenez<mode>"): Add missing constraints.
6481 2017-03-08 Martin Sebor <msebor@redhat.com>
6484 * config/nds32/nds32.c (nds32_option_override):
6485 Fix misspelled diagnostic.
6487 2017-03-08 Jakub Jelinek <jakub@redhat.com>
6490 * gimplify.c (gimplify_omp_for): Replace index var in outer
6491 taskloop statement with an artificial variable and add
6492 OMP_CLAUSE_PRIVATE clause for it.
6494 2017-03-08 Richard Biener <rguenther@suse.de>
6496 PR tree-optimization/79955
6497 * tree-ssa-uninit.c (warn_uninitialized_vars): Do not warn
6498 for accesses that are completely outside of the variable.
6500 2017-03-08 Andrew Haley <aph@redhat.com>
6502 PR tree-optimization/79943
6503 * tree-ssa-loop-split.c (compute_new_first_bound): When
6504 calculating the new upper bound, (END-BEG) should be added, not
6507 2017-03-08 Jakub Jelinek <jakub@redhat.com>
6509 * config/avr/avr.md (setmemhi): Make sure match_dup
6510 operand number comes before match_scratch.
6512 2017-03-08 Richard Biener <rguenther@suse.de>
6514 PR tree-optimization/79920
6515 * tree-vect-slp.c (vect_create_mask_and_perm): Remove and inline
6516 with ncopies == 1 to ...
6517 (vect_transform_slp_perm_load): ... here. Properly compute
6518 all element loads by iterating VF times over the group. Do
6519 not handle ncopies (computed in a broken way) in
6520 vect_create_mask_and_perm.
6522 2017-03-08 Jakub Jelinek <jakub@redhat.com>
6525 * internal-fn.c (expand_vector_ubsan_overflow): If arg0 or arg1
6526 is a uniform vector, use uniform_vector_p return value instead of
6527 building ARRAY_REF on folded VIEW_CONVERT_EXPR to array type.
6529 2017-03-07 Marek Polacek <polacek@redhat.com>
6532 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Use HOST_WIDE_INT.
6533 (alloca_call_type): Likewise.
6535 2017-03-07 Martin Liska <mliska@suse.cz>
6537 * gcov.c (process_args): Put comment to correct location.
6539 2017-03-07 Martin Liska <mliska@suse.cz>
6542 * tree-chkp.c (chkp_may_narrow_to_field): Add new argument ref.
6543 Use array_at_struct_end_p instead of DECL_CHAIN (field).
6544 (chkp_narrow_bounds_for_field): Likewise.
6545 (chkp_parse_array_and_component_ref): Pass one more argument to
6548 2017-03-07 Richard Biener <rguenther@suse.de>
6550 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Preserve
6553 2017-03-07 Segher Boessenkool <segher@kernel.crashing.org>
6555 * config/i386/i386.c (ix86_local_alignment): Align most aggregates
6556 of 16 bytes and more to 16 bytes, not those of 16 bits and more.
6558 2017-03-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6561 * params.def (PARAM_STORE_MERGING_ALLOW_UNALIGNED): Add full stop
6562 to end of description.
6563 (PARAM_MAX_STORES_TO_MERGE): Likewise.
6565 2017-03-07 Jakub Jelinek <jakub@redhat.com>
6567 PR rtl-optimization/79901
6568 * config/i386/sse.md (*avx512bw_<code><mode>3<mask_name>): Renamed to
6570 (*avx512f_<code><mode>3<mask_name>): ... this.
6571 (<code><mode>3 with maxmin code iterator): Use VI8_AVX2_AVX512F
6572 iterator instead of VI8_AVX2_AVX512BW.
6574 PR rtl-optimization/79901
6575 * expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
6576 min/max expander, expand it using expand_vec_cond_expr.
6579 * ubsan.c (ubsan_encode_value): Call mark_addressable on the
6582 2017-03-06 Jakub Jelinek <jakub@redhat.com>
6585 * dwarf2out.h (dw_vec_const): Change array type from unsigned char *
6586 to void * for PCH reasons.
6587 * dwarf2out.c (output_loc_operands, output_die): Cast
6588 v.val_vec.array to unsigned char *.
6590 2017-03-06 John David Anglin <danglin@gcc.gnu.org>
6593 * config/pa/pa-64.h (PAD_VARARGS_DOWN): Don't pad down complex and
6596 2017-03-06 Vladimir Makarov <vmakarov@redhat.com>
6598 PR rtl-optimization/79571
6599 * lra-constraints.c (process_alt_operands): Calculate static
6600 reject and subtract it from overall when only addresses will be
6603 2017-03-06 Julia Koval <julia.koval@intel.com>
6606 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): Set
6607 incoming stack boundary to 128 for 64-bit targets.
6609 2017-03-06 Richard Biener <rguenther@suse.de>
6611 PR tree-optimization/79894
6612 * tree-vectorizer.c (vectorize_loops): Set loop_vectorized_call
6613 to NULL after folding it.
6615 2017-03-06 Richard Biener <rguenther@suse.de>
6617 PR tree-optimization/79824
6618 * tree-vect-stmts.c (get_group_load_store_type): Fix alignment
6619 check disabling peeling for gaps.
6621 2017-03-06 Toma Tabacu <toma.tabacu@imgtec.com>
6623 * doc/sourcebuild.texi (Effective-Target Keywords, Environment
6624 attributes): Document gettimeofday.
6626 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
6628 * config/s390/s390.c (s390_option_override_internal): Set
6629 PARAM_MIN_VECT_LOOP_BOUND
6631 2017-03-06 Robin Dapp <rdapp@linux.vnet.ibm.com>
6633 * config/s390/s390.c (s390_asm_output_function_label): Use nopr %r0.
6634 * config/s390/s390.md: Likewise.
6636 2017-03-06 Jakub Jelinek <jakub@redhat.com>
6639 * config/i386/sse.md (VI8F_256_512): Remove mode iterator.
6640 (<avx2_avx512>_perm<mode>): Rename to ...
6641 (avx2_perm<mode>): ... this. Use VI8F_256 iterator instead
6643 (<avx512>_perm<mode>_mask): Rename to ...
6644 (avx512vl_perm<mode>_mask): ... this. Use VI8F_256 iterator instead
6646 (<avx2_avx512>_perm<mode>_1<mask_name>): Rename to ...
6647 (avx2_perm<mode>_1<mask_name): ... this. Use VI8F_256 iterator
6648 instead of VI8F_256_512.
6649 (avx512f_perm<mode>): New define_expand.
6650 (avx512f_perm<mode>_mask): Likewise.
6651 (avx512f_perm<mode>_1<mask_name>): New define_insn.
6652 (<avx512>_vec_dup<mode>_1): Fix up vec_select mode.
6654 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
6656 * config/mips/mips-msa.md (msa_fmax_a_<msafmt>, msa_fmin_a_<msafmt>,
6657 msa_max_a_<msafmt>, msa_min_a_<msafmt>): Introduce mode interator for
6659 (smin<mode>3, smax<mode>3): Change operand print code from 'B' to 'E'.
6661 2017-03-06 Martin Liska <mliska@suse.cz>
6664 * asan.c (asan_expand_poison_ifn): Do not expand ASAN_POISON
6665 when having a SSA NAME w/o VAR_DECL assigned to it.
6667 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
6669 * config/mips/mips-msa.md (msa_dotp_<su>_d, msa_dpadd_<su>_d,
6670 msa_dpsub_<su>_d): Fix MODE for vec_select.
6672 2017-03-06 Prachi Godbole <prachi.godbole@imgtec.com>
6674 * config/mips/mips.c (mips_gen_const_int_vector): Change type of last
6676 * config/mips/mips-protos.h (mips_gen_const_int_vector): Likewise.
6678 2017-03-06 Richard Biener <rguenther@suse.de>
6680 * lto-streamer.c (lto_check_version): Use %qs in diagnostics.
6681 * plugin.c (register_plugin_info): Likewise.
6682 * tree-chkp.c (chkp_make_static_const_bounds): Likewise.
6684 2017-03-05 Jakub Jelinek <jakub@redhat.com>
6686 * config/i386/sse.md (sse_storehps, sse_storelps,
6687 avx_<castmode><avxsizesuffix>_<castmode>,
6688 avx512f_<castmode><avxsizesuffix>_<castmode>,
6689 avx512f_<castmode><avxsizesuffix>_256<castmode>): Require
6690 in condition that at least one operand is not a MEM.
6692 2017-03-03 Jakub Jelinek <jakub@redhat.com>
6695 * internal-fn.def (ATOMIC_BIT_TEST_AND_SET, ATOMIC_BIT_TEST_AND_RESET,
6696 ATOMIC_BIT_TEST_AND_COMPLEMENT, ATOMIC_COMPARE_EXCHANGE): Remove
6698 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Set
6699 gimple_call_nothrow_p flag based on whether original builtin can throw.
6700 If it can, emit following stmts on the fallthrough edge.
6701 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Similarly, except
6702 don't create new bb if inserting just debug stmts on the edge, try to
6703 insert them on the fallthru bb or just reset debug stmts.
6705 2017-03-03 Segher Boesssenkool <segher@kernel.crashing.org>
6708 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Save and
6709 restore recog_data (including the operand rtxes inside it) around
6710 the call to get_insn_template.
6712 2017-03-03 Martin Sebor <msebor@redhat.com>
6714 PR tree-optimization/79699
6715 * context.c (context::~context): Free MPFR caches to avoid
6716 a memory leak on program exit.
6718 2017-03-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6720 * config/aarch64/aarch64.c (aarch64_float_const_representable_p):
6721 Use wide_int::ulow () instead of .elt (0).
6723 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
6725 * config/i386/i386.md (*pushtf): Change *roF constraint to *roC.
6726 (*pushxf): Limit oF constraint to 32bit targets and add oC
6727 constraint for 64bit targets.
6728 (pushxf splitter): Use PUSH_ROUNDING to calculate stack adjustment.
6729 (*pushdf): Change rmF constraint to rmC.
6731 2017-03-03 Martin Liska <mliska@suse.cz>
6733 * tree-ssa-loop-prefetch.c (pass_loop_prefetch::execute):
6734 Remove unused variable.
6736 2017-03-03 Jakub Jelinek <jakub@redhat.com>
6739 * config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
6740 is a memory operand, increase num_memory.
6741 (ix86_expand_args_builtin): Likewise.
6743 2017-03-03 Jan Hubicka <jh@suse.cz>
6746 * ipa-devirt.c (maybe_record_node): Properly handle
6747 __cxa_pure_virtual visibility.
6749 2017-03-03 Martin Liska <mliska@suse.cz>
6751 PR tree-optimization/79803
6752 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Remove
6754 (pass_loop_prefetch::execute): Disabled optimization if an
6755 assumption about L1 cache size is not met.
6757 2017-03-03 Martin Liska <mliska@suse.cz>
6759 PR rtl-optimization/79574
6760 * gcse.c (struct gcse_expr): Use HOST_WIDE_INT instead of int.
6761 (hash_scan_set): Likewise.
6762 (dump_hash_table): Likewise.
6763 (hoist_code): Likewise.
6765 2017-03-03 Richard Biener <rguenther@suse.de>
6767 * fixed-value.c (fixed_from_string): Restore use of elt (1)
6768 in place of uhigh ().
6769 (fixed_convert_from_real): Likewise.
6771 2017-03-03 Uros Bizjak <ubizjak@gmail.com>
6774 * config/i386/i386.md (*pushxf_rounded): Use Pmode instead of DImode.
6776 2017-03-03 Richard Biener <rguenther@suse.de>
6779 * match.pd ( X +- C1 CMP C2 -> X CMP C2 -+ C1): Add missing
6780 TYPE_OVERFLOW_UNDEFINED check.
6782 2017-03-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6784 * config/rs6000/vector.md (vector_ne_<mode>_p): Correct operand
6786 (vector_ae_<mode>_p): Likewise.
6787 (vector_nez_<mode>_p): Likewise.
6788 (vector_ne_v2di_p): Likewise.
6789 (vector_ae_v2di_p): Likewise.
6790 (vector_ne_<mode>_p): Likewise.
6791 * config/rs6000/vsx.md (vsx_tsqrt<mode>2_fg): Correct operand
6793 (vsx_tsqrt<mode>2_fe): Likewise.
6795 2017-03-02 Uros Bizjak <ubizjak@gmail.com>
6798 * config/i386/i386.md (*pushxf_rounded): New insn_and_split pattern.
6800 2017-03-02 Jakub Jelinek <jakub@redhat.com>
6802 PR rtl-optimization/79780
6803 * cprop.c (one_cprop_pass): When second and further conditional trap
6804 in a single basic block is turned into an unconditional trap, turn it
6805 into a deleted note to avoid RTL verification failures.
6807 2017-03-02 Richard Biener <rguenther@suse.de>
6809 * fold-const.c (const_binop): Use ulow () instead of elt (0).
6811 2017-03-02 Richard Biener <rguenther@suse.de>
6813 PR tree-optimization/79345
6815 * tree-ssa-alias.c (walk_aliased_vdefs_1): Take a limit
6816 param and abort the walk, returning -1 if it is hit.
6817 (walk_aliased_vdefs): Take a limit param and pass it on.
6818 * tree-ssa-alias.h (walk_aliased_vdefs): Add a limit param,
6819 defaulting to 0 and return a signed int.
6820 * tree-ssa-uninit.c (struct check_defs_data): New struct.
6821 (check_defs): New helper.
6822 (warn_uninitialized_vars): Use walk_aliased_vdefs to warn
6823 about uninitialized memory.
6824 * fixed-value.c (fixed_from_string): Use ulow/uhigh to avoid
6825 bogus uninitialized warning.
6826 (fixed_convert_from_real): Likewise.
6828 2017-03-02 Bin Cheng <bin.cheng@arm.com>
6830 PR tree-optimization/66768
6831 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Skip addr
6832 iv_use if base object can't be determined.
6834 2017-03-02 Jakub Jelinek <jakub@redhat.com>
6836 PR tree-optimization/79345
6837 * gensupport.h (struct pattern_stats): Add min_scratch_opno field.
6838 * gensupport.c (get_pattern_stats_1) <case MATCH_SCRATCH>: Update it.
6839 (get_pattern_stats): Initialize it.
6840 * genemit.c (gen_expand): Verify match_scratch numbers come after
6841 match_operand/match_dup numbers.
6842 * config/i386/i386.md (<s>mul<mode>3_highpart): Swap match_dup and
6843 match_scratch numbers.
6844 * config/i386/sse.md (avx2_gathersi<mode>, avx2_gatherdi<mode>):
6846 * config/s390/s390.md (trunctdsd2): Likewise.
6848 2017-03-02 Richard Biener <rguenther@suse.de>
6850 * wide-int.h (wide_int_storage::operator=): Implement in terms
6853 2017-03-02 Richard Biener <rguenther@suse.de>
6855 PR tree-optimization/79777
6856 * tree-ssa-pre.c (eliminate_insert): Give up if we simplify
6857 the to insert expression to sth existing.
6859 2017-03-01 Martin Sebor <msebor@redhat.com>
6862 * gimple-ssa-sprintf.c
6863 (directive::known_width_and_precision): New function.
6864 (format_integer): Use it.
6865 (get_mpfr_format_length): Consider the full range of precision
6866 when computing %g output with the # flag. Set the likely byte
6867 count to 3 rather than 1 when precision is indeterminate.
6868 (format_floating): Correct the lower bound of precision.
6870 2017-03-01 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
6872 * doc/invoke.texi: Document default code model for 64-bit Linux.
6874 2017-03-01 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
6877 * config/rs6000/rs6000.md (peephole2 for udiv/umod): Should emit
6878 udiv rather than div since input pattern is unsigned.
6880 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
6882 * config/i386/i386.c (print_reg): Warn for values of
6883 unsupported size in integer register.
6885 2017-03-01 Michael Meissner <meissner@linux.vnet.ibm.com>
6888 * config/rs6000/predicates.md (current_file_function_operand): Do
6889 not allow self calls to be local if the function is replaceable.
6891 2017-03-01 Kelvin Nilsen <kelvin@gcc.gnu.org>
6894 * config/rs6000/altivec.h (vec_ctz and others): Change the
6895 preprocessor macro that controls conditional compilation from
6896 _ARCH_PWR9 to __POWER9_VECTOR__.
6897 (vec_all_ne): Change parameterization of __altivec_scalar_pred
6898 macro expansion under preprocessor #ifdef __POWER9_VECTOR__
6899 control (instead of _ARCH_PWR9 control) so that template
6900 definition uses power9-specific function.
6901 (vec_any_eq): Likewise.
6902 (vec_all_ne): Change macro definition to use a power9-specific
6903 expansion under #ifdef __POWER9_VECTOR__ control (instead of
6904 _ARCH_PWR9 control).
6905 (vec_any_eq) Likewise.
6906 * config/rs6000/rs6000-builtin.def (CMPNEF): Remove BU_P9V_AV_2
6907 expansion for CMPNEF to remove support for xvcmpnesp instruction.
6908 (CMPNED): Remove BU_P9V_AV2 expansion for CMPNED to remove
6909 support for xvcmpnedp instruction.
6910 (VCMPNEB_P): Replace BU_P9V_AV_P macro expansion with BU_P9V_AV_2
6911 macro expansion so that Power9 implementation of vec_all_ne does
6912 not use the AltiVec predicate framework.
6913 (VCMPNEH_P): Likewise.
6914 (VCMPNEW_P): Likewise.
6915 (VCMPNED_P): Likewise.
6916 (VCMPNEFP_P): Likewise.
6917 (VCMPNEDP_P): Likewise.
6918 (VCMPAEB_P): Add BU_P9V_AV_2 macro expansion to change
6919 implementation of vec_any_eq to not use AltiVec predicate
6921 (VCMPAEH_P): Likewise.
6922 (VCMPAEW_P): Likewise.
6923 (VCMPAED_P): Likewise.
6924 (VCMPAEFP_P): Likewise.
6925 (VCMPAEDP_P): Likewise.
6926 (VCMPNE_P): Replace BU_P9V_OVERLOAD_P macro expansion with
6927 BU_P9V_OVERLOAD_2 so that Power9 implementation of vec_all_ne does
6928 not use the AltiVec predicate framework.
6929 (VCMPAE_P): Add BU_P9V_OVERLOAD_2 macro to change implementation
6930 of vec_any_eq to not use AltiVec predicate framework.
6931 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Add
6932 support for predefined __POWER9_VECTOR__ macro to indicate that
6933 Power9 instruction selection is enabled.
6934 (altivec_overloaded_builtins): Remove extraneous
6935 ALTIVEC_BUILTIN_VEC_CMPNE entry for overloaded
6936 function argument types RS6000_BTI_bool_V16QI and
6937 RS6000_BTI_bool_V16QI. Remove erroneous ALTIVEC_BUILTIN_VEC_CMPNE
6938 entry for overloaded function argument types RS6000_BTI_bool_V4SI
6939 andRS6000_BTI_bool_V4SI, mapping to P9V_BUILTIN_CMPNEB. Remove
6940 two entries mapping to P9V_BUITIN_CMPNED and one entry mapping to
6941 P9V_BUILTIN_CMPNEF to force use of instructions not specific to
6942 Power9 for implementations of vec_cmpne. Change the signature for
6943 all definitions of the overloaded P9V_BUILTIN_VEC_CMPNE_P function
6944 (representing vec_all_ne) to remove the previously described first
6945 argument of type RS6000_BTI_INTSI, as this was an artifact of
6946 reliance on the AltiVec predicate framework, which is no longer
6947 used in the implementation of these functions. Add
6948 P9V_BUILTIN_VEC_VCMPAE_P entries (representing the vec_anyeq
6949 function) to match all of the P9V_BUILTIN_VEC_VCMNE_P entries
6950 since, unlike the AltiVec predicate framework implementation, we
6951 do not share function descriptors between vec_alle and vec_anyeq.
6952 (altivec_resolve_overloaded_builtin): Add SFmode and DFmode to the
6953 set of modes that receive special treatment even when
6954 TARGET_P9_VECTOR is true. The special treatment emits code that
6955 does not depend on Power9 instructions.
6956 * config/rs6000/vector.md (vector_ne_<mode>_p): Change this
6957 define_expand to not rely on AltiVec predicate framework.
6958 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
6960 (vector_ne_v2di_p): Change this define_expand to not rely on
6961 AltiVec predicate framework.
6962 (vector_ae_v2di_p): New define_expand to represent vec_any_eq
6964 (vector_ne_<mode>_p): Change this define_expand to not rely on
6965 AltiVec predicate framework.
6966 (vector_ae_<mode>p): New define_expand to represent vec_any_eq
6968 * config/rs6000/vsx.md (*vsx_ne_<mode>_p): For modes VSX_EXTRACT_I
6969 (V16QI, V8HI, V4SI), correct a typo in the code emitted for this
6970 define_insn pattern.
6971 (*vsx_ne_<mode>_p): For modes VSX_F (V4SF and V2DF), remove this
6972 define_insn pattern because the xvcmpne<VSs>. instruction is not
6974 (vcmpne<VSs>): Remove this define_insn because xvcmpne<VSs>
6975 instruction is not supported.
6977 2017-03-01 Jakub Jelinek <jakub@redhat.com>
6979 * config/nvptx/nvptx.c: Include intl.h.
6981 2017-03-01 Martin Jambor <mjambor@suse.cz>
6984 * ipa-prop.h (ipa_bits): Removed field known.
6985 (ipa_jump_func): Removed field vr_known. Changed fields bits and m_vr
6986 to pointers. Adjusted their comments to warn about their sharing.
6987 (ipcp_transformation_summary): Change bits to a vector of pointers.
6988 (ipa_check_create_edge_args): Moved to ipa-prop.c, declare.
6989 (ipa_get_ipa_bits_for_value): Declare.
6990 * tree-vrp.h (value_range): Mark as GTY((for_user)).
6991 * ipa-prop.c (ipa_bit_ggc_hash_traits): New.
6992 (ipa_bits_hash_table): Likewise.
6993 (ipa_vr_ggc_hash_traits): Likewise.
6994 (ipa_vr_hash_table): Likewise.
6995 (ipa_print_node_jump_functions_for_edge): Adjust for bits and m_vr
6996 being pointers and vr_known being removed.
6997 (ipa_set_jf_unknown): Likewise.
6998 (ipa_get_ipa_bits_for_value): New function.
6999 (ipa_set_jfunc_bits): Likewise.
7000 (ipa_get_value_range): New overloaded functions.
7001 (ipa_set_jfunc_vr): Likewise.
7002 (ipa_compute_jump_functions_for_edge): Use the above functions to
7003 construct bits and vr parts of jump functions.
7004 (ipa_check_create_edge_args): Move here from ipa-prop.h, also allocate
7005 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7007 (ipcp_grow_transformations_if_necessary): Also allocate
7008 ipa_bits_hash_table and ipa_vr_hash_table if they do not already
7010 (ipa_node_params_t::duplicate): Do not copy bits, just pointers to
7011 them. Fix too long lines.
7012 (ipa_write_jump_function): Adjust for bits and m_vr being pointers and
7013 vr_known being removed.
7014 (ipa_read_jump_function): Use new setter functions to construct bits
7015 and vr parts of jump functions or set them to NULL.
7016 (write_ipcp_transformation_info): Adjust for bits being pointers.
7017 (read_ipcp_transformation_info): Likewise.
7018 (ipcp_update_bits): Likewise. Fix excessively long lines a trailing
7020 Include gt-ipa-prop.h.
7021 * ipa-cp.c (propagate_bits_across_jump_function): Adjust for bits
7023 (ipcp_store_bits_results): Likewise.
7024 (propagate_vr_across_jump_function): Adjust for m_vr being a pointer.
7025 Do not write to existing jump functions but use a temporary instead.
7027 2017-03-01 Jakub Jelinek <jakub@redhat.com>
7030 * fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
7031 attempt to use its first operand as BIT_FIELD_REF base.
7033 2017-03-01 Richard Biener <rguenther@suse.de>
7036 * tree-chrec.c (chrec_evaluate): Perform computation of Newtons
7037 interpolating formula in wrapping arithmetic.
7038 (chrec_apply): Convert chrec_evaluate return value to wanted type.
7040 2017-03-01 Jakub Jelinek <jakub@redhat.com>
7042 PR tree-optimization/79734
7043 * tree-vect-generic.c (expand_vector_condition): Optimize
7044 AVX512 vector boolean VEC_COND_EXPRs into bitwise operations.
7045 Handle VEC_COND_EXPR where comparison has different inner width from
7048 2017-02-28 Sandra Loosemore <sandra@codesourcery.com>
7050 * doc/invoke.texi (ARC Options): Copy-edit to fix punctuation,
7051 markup, and similar issues. Remove @opindex entries for things
7052 that aren't options. Add missing -mmpy-option entries.
7054 2017-02-28 Jakub Jelinek <jakub@redhat.com>
7056 PR tree-optimization/79737
7057 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): If bitlen is
7058 a multiple of BITS_PER_UNIT and !BYTES_BIG_ENDIAN, clear
7059 tmpbuf[byte_size - 1]. Call natice_encode_expr with byte_size - 1
7060 instead of byte_size. Formatting fix.
7061 (shift_bytes_in_array_right): Formatting fix.
7063 2017-02-28 Eric Botcazou <ebotcazou@adacore.com>
7066 * config/sparc/sparc.c (sparc_frame_pointer_required): Add missing
7067 condition on optimize for the leaf function test.
7069 2017-02-28 Martin Liska <mliska@suse.cz>
7072 * read-rtl-function.c (function_reader::handle_unknown_directive):
7073 Bail out when one uses -flto.
7075 2017-02-28 Martin Liska <mliska@suse.cz>
7077 * common.opt: Replace space with tabular for options of <number>
7079 * config/i386/i386.opt: Show <number> value for
7080 -mlarge-data-threshold.
7081 * opts.c (print_filtered_help): Do not display number in hexadecimal
7084 2017-02-28 Martin Liska <mliska@suse.cz>
7086 * common.opt: Fix --help=option -Q for options which are of
7089 2017-02-28 Uros Bizjak <ubizjak@gmail.com>
7091 * config/i386/i386.c (print_reg): Error out for values
7092 of 8-bit size in invalid integer register.
7094 2017-02-28 Martin Sebor <msebor@redhat.com>
7096 PR tree-optimization/79691
7097 * passes.def (pass_all_optimizations_g): Enable pass_sprintf_length.
7099 2017-02-28 Jakub Jelinek <jakub@redhat.com>
7102 * config/i386/i386.c (ix86_print_operand) <case 'R'>: Replace
7103 gcc_unreachable with output_operand_lossage.
7105 2017-02-28 Richard Biener <rguenther@suse.de>
7107 PR tree-optimization/79740
7108 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Allow redundant
7110 (visit_nary_op): Insert the nary into the hashtable if we
7111 pattern-matched sth.
7112 * tree-ssa-pre.c (eliminate_insert): Robustify.
7114 2017-02-28 Richard Biener <rguenther@suse.de>
7117 * fold-const.c (decode_field_reference): Reject out-of-bound
7120 2017-02-28 Jakub Jelinek <jakub@redhat.com>
7122 * config/i386/i386.c: Include intl.h.
7123 (ix86_option_override_internal): Use cond ? G_("...") : G_("...")
7124 instead of just cond ? "..." : "...".
7125 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Likewise.
7126 * coverage.c (read_counts_file): Likewise.
7127 * omp-offload.c: Include intl.h.
7128 (oacc_loop_fixed_partitions): Use cond ? G_("...") : G_("...") instead
7129 of just cond ? "..." : "...".
7130 * gcov.c (read_count_file): Use cond ? N_("...") : N_("...") instead
7131 of just cond ? "..." : "...".
7133 2017-02-28 Richard Earnshaw <rearnsha@arm.com>
7136 * config/arm/parsecpu.awk (gen_data): Set tuning target to 'tune for'
7138 * config/arm/arm-cpus.in (cortex-m0plus.small-multiply): Correct
7139 'tune for' CPU name.
7140 * config/arm/arm-cpu-data.h: Regenerated.
7142 2017-02-28 Richard Biener <rguenther@suse.de>
7144 PR tree-optimization/79732
7145 * tree-inline.c (expand_call_inline): Do not shadow var.
7147 2017-02-28 Richard Biener <rguenther@suse.de>
7149 PR tree-optimization/79723
7150 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Preserve
7151 address-space properly.
7153 2017-02-28 Thomas Schwinge <thomas@codesourcery.com>
7155 * doc/optinfo.texi (Optimization groups): Fix option used for
7157 * doc/invoke.texi (-fopt-info): Document "omp".
7158 * dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
7159 (OPTGROUP_ALL): Add OPTGROUP_OMP.
7160 * hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
7161 * ipa-hsa.c (pass_data_ipa_hsa): Likewise.
7162 * omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
7164 * dumpfile.h (OPTGROUP_OPENMP): Rename to OPTGROUP_OMP. Adjust
7166 * dumpfile.c (optgroup_options): Instead of "openmp", associate
7167 OPTGROUP_OMP with "omp".
7169 2017-02-27 Pat Haugen <pthaugen@us.ibm.com>
7172 * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Use VSRAD
7173 for arithmetic shift of unsigned V2DI.
7175 2017-02-27 Claudiu Zissulescu <claziss@synopsys.com>
7177 * config.gcc (arc*-): Clean up, use arc/big.h, arc/elf.h, and
7178 arc/linux.h headers.
7179 * config/arc/arc.h (TARGET_OS_CPP_BUILTINS): Remove.
7180 (LINK_SPEC): Likewise.
7181 (ARC_TLS_EXTRA_START_SPEC): Likewise.
7182 (EXTRA_SPECS): Likewise.
7183 (STARTFILE_SPEC): Likewise.
7184 (ENDFILE_SPEC): Likewise.
7185 (LIB_SPEC): Likewise.
7186 (TARGET_SDATA_DEFAULT): Likewise.
7187 (TARGET_MMEDIUM_CALLS_DEFAULT): Likewise.
7188 (MULTILIB_DEFAULTS): Likewise.
7189 (DWARF2_UNWIND_INFO): Likewise.
7190 * config/arc/big.h: New file.
7191 * config/arc/elf.h: Likewise.
7192 * config/arc/linux.h: Likewise.
7193 * config/arc/t-uClibc: Remove.
7195 2017-02-27 Bin Cheng <bin.cheng@arm.com>
7197 PR tree-optimization/77536
7198 * tree-ssa-loop-manip.c (niter_for_unrolled_loop): New function.
7199 (tree_transform_and_unroll_loop): Use above function to compute the
7200 estimated niter of unrolled loop and use it when scaling profile.
7201 Also use count info rather than frequency if it's non-zero.
7202 * tree-ssa-loop-manip.h niter_for_unrolled_loop(): New declaration.
7203 * tree-vect-loop.c (scale_profile_for_vect_loop): New function.
7204 (vect_transform_loop): Call above function.
7206 2017-02-27 Richard Biener <rguenther@suse.de>
7208 PR tree-optimization/45397
7209 * tree-ssa-pre.c (eliminate_insert): Handle BIT_AND_EXPR.
7210 * tree-ssa-sccvn.c (valueized_wider_op): New helper.
7211 (visit_nary_op): Add pattern matching for CSEing sign-changed
7212 or truncated operations with wider ones.
7214 2017-02-27 Richard Biener <rguenther@suse.de>
7216 PR tree-optimization/79690
7217 * tree-vect-stmts.c (vectorizable_store): Use vector type
7218 built from the DR with address-space.
7220 2017-02-26 Gerald Pfeifer <gerald@pfeifer.com>
7222 * doc/invoke.texi (Optimize Options): Refine the description
7223 of asan-use-after-return.
7225 2017-02-25 Alan Modra <amodra@gmail.com>
7227 PR rtl-optimization/79584
7228 * lra-constraints.c (base_to_reg): Reload ad->base, the entire
7229 base, not ad->base_term, the reg within base. Remove assertion
7230 that ad->base == ad->base_term. Replace gen_int_mode using
7231 bogus mode with const0_rtx.
7233 2017-02-25 Jakub Jelinek <jakub@redhat.com>
7236 * tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
7237 FMA_EXPR like tcc_binary or tcc_unary.
7239 * tree-ssa-loop-niter.c (number_of_iterations_exit): Simplify warning.
7242 * dwarf2out.c (struct dw_loc_list_struct): Add noted_variable_value
7244 (size_of_loc_descr): Handle DW_OP_GNU_variable_value.
7245 (output_loc_operands): Handle DW_OP_call_ref and
7246 DW_OP_GNU_variable_value.
7247 (struct variable_value_struct): New type.
7248 (struct variable_value_hasher): Likewise.
7249 (variable_value_hash): New variable.
7250 (string_types): Remove.
7251 (copy_loc_descr): New function.
7252 (add_loc_descr_to_each): Clarify comment. Use copy_loc_descr.
7253 (prepend_loc_descr_to_each): New function.
7254 (add_loc_list): Fix comment typo. Use prepend_loc_descr_to_each
7255 instead of add_loc_descr_to_each if the first argument is single
7256 location list and the second has multiple.
7257 (resolve_args_picking_1): Handle DW_OP_GNU_variable_value.
7258 (loc_list_from_tree_1): For early_dwarf, emit DW_OP_GNU_variable_value
7259 when looking for variable value which doesn't have other location info.
7260 (loc_list_from_tree): Formatting fix.
7261 (gen_array_type_die): Simplify DW_AT_string_length handling.
7262 (adjust_string_types): Remove.
7263 (gen_subprogram_die): Don't call adjust_string_types nor test/set
7264 string_types. Call resolve_variable_values.
7265 (prune_unused_types_walk_loc_descr): Handle DW_OP_GNU_variable_value.
7266 (resolve_addr_in_expr): Likewise. Add A argument.
7267 (copy_deref_exprloc): Remove deref argument. Adjust for the
7268 original expression being DW_OP_GNU_variable_value with optionally
7269 DW_OP_stack_value after it instead of DW_OP_call4 with DW_OP_deref
7270 optionally after it.
7271 (optimize_string_length): Rework for DW_OP_GNU_variable_value.
7272 (resolve_addr): Adjust optimize_string_length and resolve_addr_in_expr
7273 callers. Set remove_AT_byte_size if removing DW_AT_string_length.
7274 (variable_value_hasher::hash, variable_value_hasher::equal): New
7276 (resolve_variable_value_in_expr, resolve_variable_value,
7277 resolve_variable_values, note_variable_value_in_expr,
7278 note_variable_value): New functions.
7279 (dwarf2out_early_finish): Call note_variable_value on all toplevel
7282 2017-02-24 Jakub Jelinek <jakub@redhat.com>
7285 * opts.h (handle_generated_option): Add GENERATED_P argument.
7286 * opts-common.c (handle_option): Adjust function comment.
7287 (handle_generated_option): Add GENERATED_P argument, pass it to
7289 (control_warning_option): Pass false to handle_generated_option
7291 * opts.c (maybe_default_option): Pass true to handle_generated_option
7293 * optc-gen.awk: Likewise.
7295 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
7297 * config/sh/sh.md (tstsi_t): If operands[0] is a SUBREG instead of
7298 a REG, look at the REG it is a SUBREG of.
7299 (splitter for cmpeqsi_t): Ditto.
7301 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
7303 * config/pa/pa.c (pa_combine_instructions): Do not share RTL. Make
7304 the special USEs with the pattern of the insn, not the insn itself.
7306 2017-02-24 Matthew Fortune <matthew.fortune@imgtec.com>
7309 * doc/invoke.texi: Document -mload-store-pairs.
7311 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
7312 Sandra Loosemore <sandra@codesourcery.com>
7314 * config/nios2/nios2.c (nios2_simple_const_p): Returns false if the
7315 argument isn't a CONST_INT.
7316 (nios2_alternate_compare_const): Assert op is a CONST_INT.
7317 (nios2_valid_compare_const_p): Assert op is a CONST_INT.
7318 (nios2_validate_compare): Bypass alternate compare logic if *op2
7320 (ldstwm_operation_p): Return false if first_base is not a REG or
7321 if first_offset is not a CONST_INT.
7323 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
7325 * config/cris/cris.md: Use correct operand in a define_peephole2.
7327 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
7329 * config/c6x/c6x.c (predicate_insn): Do not incorrectly share RTL.
7331 2017-02-24 Segher Boessenkool <segher@kernel.crashing.org>
7333 * config/arc/arc.c (arc_ccfsm_advance): Only take the PATTERN of
7334 this_insn if it is an INSN or JUMP_INSN.
7335 (force_offsettable): Look at base, not at addr.
7336 * config/arc/predicates.md (brcc_nolimm_operator): Don't call INTVAL
7337 on things that aren't necessarily CONST_INTs.
7339 2017-02-24 Uros Bizjak <ubizjak@gmail.com>
7341 * doc/invoke.texi (x86 Options, -mfpmath=sse): Mention that
7342 -mfpmath=sse is the default also for x86-32 targets with SSE2
7343 instruction set when @option{-ffast-math} is enabled
7345 2017-02-24 Jeff Law <law@redhat.com>
7347 PR rtl-optimizatoin/79286
7348 * ira.c (update_equiv_regs): Drop may_trap_p exception to
7351 2017-02-24 Richard Biener <rguenther@suse.de>
7353 PR tree-optimization/79389
7354 * gimple-ssa-split-paths.c (is_feasible_trace): Properly skip
7357 2017-02-24 Aldy Hernandez <aldyh@redhat.com>
7359 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update
7360 function comment to reflect reality.
7361 (loop_exits_before_overflow): Fix typo in function description.
7363 2017-02-24 Richard Biener <rguenther@suse.de>
7365 PR tree-optimization/79389
7366 * gimple-ssa-split-paths.c (is_feasible_trace): Verify more
7367 properly that a threading opportunity exists. Detect conditional
7368 copy/constant propagation opportunities.
7370 2017-02-23 Eric Botcazou <ebotcazou@adacore.com>
7372 * config/visium/visium.md (type): Add trap.
7373 (b): New mode attribute.
7374 (*btst): Rename into...
7375 (*btst<mode>): ...this and adjust.
7376 (*cbranchsi4_btst_insn): Rename into...
7377 (*cbranch<mode>4_btst_insn): ...this and adjust.
7378 (trap): New define_insn.
7380 2017-02-23 Jakub Jelinek <jakub@redhat.com>
7382 PR tree-optimization/79389
7383 * ifcvt.c (struct noce_if_info): Add rev_cond field.
7384 (noce_reversed_cond_code): New function.
7385 (noce_emit_store_flag): Use rev_cond if non-NULL instead of
7386 reversed_comparison_code. Formatting fix.
7387 (noce_try_store_flag): Test rev_cond != NULL in addition to
7388 reversed_comparison_code.
7389 (noce_try_store_flag_constants): Likewise.
7390 (noce_try_store_flag_mask): Likewise.
7391 (noce_try_addcc): Use rev_cond if non-NULL instead of
7392 reversed_comparison_code.
7393 (noce_try_cmove_arith): Likewise. Formatting fixes.
7394 (noce_try_minmax, noce_try_abs): Clear rev_cond.
7395 (noce_find_if_block): Initialize rev_cond.
7396 (find_cond_trap): Call noce_get_condition with then_bb == trap_bb
7397 instead of false as last argument never attempt to reverse it
7400 2017-02-23 Bin Cheng <bin.cheng@arm.com>
7402 PR tree-optimization/79663
7403 * tree-predcom.c (combine_chains): Process refs in reverse order
7404 only for ZERO length chains, and add explaining comment.
7406 2017-02-23 Jeff Law <law@redhat.com>
7408 PR tree-optimization/79578
7409 * tree-ssa-dse.c (clear_bytes_written_by): Use OEP_ADDRESS_OF
7410 in call to operand_equal_p.
7412 2017-01-23 Dominique d'Humieres <dominiq@lps.ens.fr>
7415 * config/i386/cpuid.h: Fix another undefined behavior.
7417 2017-02-23 Richard Biener <rguenther@suse.de>
7419 PR tree-optimization/79683
7420 * tree-vect-stmts.c (vect_analyze_stmt): Do not overwrite
7421 vector types for data-refs.
7423 2017-02-23 Martin Liska <mliska@suse.cz>
7425 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): Change default to 0.
7427 2017-02-23 Jakub Jelinek <jakub@redhat.com>
7430 * internal-fn.c (get_range_pos_neg): Moved to ...
7431 * tree.c (get_range_pos_neg): ... here. No longer static.
7432 * tree.h (get_range_pos_neg): New prototype.
7433 * expr.c (expand_expr_real_2) <case TRUNC_DIV_EXPR>: If both arguments
7434 are known to be in between 0 and signed maximum inclusive, try to
7435 expand both unsigned and signed divmod and use the cheaper one from
7438 2017-02-22 Jeff Law <law@redhat.com>
7440 PR tree-optimization/79578
7441 * tree-ssa-dse.c (clear_bytes_written_by): Use operand_equal_p
7442 to compare base operands.
7444 2017-02-22 Segher Boessenkool <segher@kernel.crashing.org>
7447 * config/rs6000/rs6000.md (*fsel<SFDF:mode><SFDF2:mode>4): Use
7448 gpc_reg_operand instead of fpr_reg_operand.
7450 2017-02-22 Sameera Deshpande <sameera.deshpande@imgtec.com>
7452 * config/mips/mips.c (mips_return_in_memory): Force FP
7453 vector types to be returned in memory for o32 ABI.
7455 2017-02-22 Jakub Jelinek <jakub@redhat.com>
7457 * dwarf2out.c (gen_variable_die): For -gdwarf-5, use DW_TAG_variable
7458 instead of DW_TAG_member for static data member declarations and don't
7459 set no_linkage_name for static inline data members.
7460 (gen_member_die): For -gdwarf-5 don't change DW_TAG_variable
7463 2017-02-22 Martin Liska <mliska@suse.cz>
7465 * doc/invoke.texi: Replace inequality signs with square brackets
7468 2017-02-22 Matthew Fortune <matthew.fortune@imgtec.com>
7471 * lra-constraints.c (simplify_operand_subreg): Handle
7472 WORD_REGISTER_OPERATIONS targets.
7474 2017-02-22 Jakub Jelinek <jakub@redhat.com>
7477 * reg-stack.c (emit_swap_insn): Treat (float_extend:?F (mem:?F))
7478 and (const_double:?F) like (mem:?F) for the purpose of fxch %st(1)
7479 elimination by swapping fld*.
7481 2017-02-22 Richard Biener <rguenther@suse.de>
7483 PR tree-optimization/79673
7484 * tree-ssa-pre.c (compute_avail): Use wide_int_to_tree to
7485 convert the [TARGET_]MEM_REF offset INTEGER_CST, scrapping off
7486 irrelevant address-space qualifiers and avoiding a
7487 ADDR_SPACE_CONVERT_EXPR from fold_convert.
7489 2017-02-22 Richard Biener <rguenther@suse.de>
7491 PR tree-optimization/79666
7492 * tree-vrp.c (extract_range_from_binary_expr_1): Make sure
7493 to not symbolically negate if that may introduce undefined
7496 2017-02-22 Martin Liska <mliska@suse.cz>
7499 * data-streamer-in.c (streamer_read_gcov_count): Remove assert.
7500 * data-streamer-out.c (streamer_write_gcov_count_stream):
7502 * value-prof.c (stream_out_histogram_value): Make assert more
7503 precise based on type of counter.
7505 2017-02-21 Uros Bizjak <ubizjak@gmail.com>
7508 * config/i386/i386.md (standard_x87sse_constant_load splitter):
7509 Use nonimmediate_operand instead of memory_operand for operand 1.
7510 (float-extend standard_x87sse_constant_load splitter): Ditto.
7512 2017-02-21 Jeff Law <law@redhat.com>
7514 PR tree-optimization/79621
7515 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): Ignore
7516 blocks with edges to themselves.
7518 2017-02-21 Jakub Jelinek <jakub@redhat.com>
7521 * tree-chkp-opt.c (chkp_optimize_string_function_calls): Use
7522 is_gimple_call instead of comparing gimple_code with GIMPLE_CALL.
7523 Use gimple_call_builtin_p.
7526 * sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
7527 on temporarily removed DEBUG_INSNs.
7529 PR tree-optimization/79649
7530 * tree-loop-distribution.c (classify_partition): Give up on
7531 non-generic address space loads/stores.
7533 2017-02-21 Aldy Hernandez <aldyh@redhat.com>
7535 * doc/loop.texi (Loop manipulation): Remove nonexistent
7536 tree_ssa_loop_version from the documentation.
7537 * cfgloopmanip.c (loop_version): Document CONDITION_BB argument.
7539 2017-02-21 Jakub Jelinek <jakub@redhat.com>
7542 * config/i386/i386.c (ix86_expand_split_stack_prologue): Call
7543 make_reg_eh_region_note_nothrow_nononlocal on call_insn.
7544 * config/rs6000/rs6000.c: Include except.h.
7545 (rs6000_expand_split_stack_prologue): Call
7546 make_reg_eh_region_note_nothrow_nononlocal on the call insn.
7548 2017-02-21 Martin Jambor <mjambor@suse.cz>
7551 * ipa-prop.c (ipa_prop_write_jump_functions): Bail out if no edges
7554 2017-02-21 Martin Jambor <mjambor@suse.cz>
7556 * common.opt (-fipa-cp-alignment): Mark as ignored and preserved
7557 for backward compatibility only.
7558 * doc/invoke.texi (Option Summary): Remove all references to
7561 2017-02-21 Matthew Fortune <matthew.fortune@imgtec.com>
7565 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
7567 * lra-constraints.c (curr_insn_transform): Handle
7568 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
7570 2017-02-21 Martin Liska <mliska@suse.cz>
7572 * config/i386/i386.opt: Replace -masm-dialect with -masm.
7574 2017-02-21 Thomas Schwinge <thomas@codesourcery.com>
7576 PR translation/79638
7577 * config/nvptx/nvptx.c (ENTRY_TEMPLATE): Single out "%ntid.y".
7579 2017-02-21 Eric Botcazou <ebotcazou@adacore.com>
7582 * config/arm/arm.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define.
7583 (arm_function_ok_for_sibcall): Return false for an indirect call by
7584 descriptor if all the argument registers are used.
7585 (arm_relayout_function): Use FUNCTION_ALIGNMENT macro to adjust the
7586 alignment of the function.
7588 2017-02-21 Jakub Jelinek <jakub@redhat.com>
7590 PR tree-optimization/61441
7591 * simplify-rtx.c (simplify_const_unary_operation): For
7592 -fsignaling-nans and sNaN operand, return NULL_RTX rather than
7593 the sNaN unmodified.
7595 2017-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de>
7597 * Makefile.in (BUILD_SYSTEM_HEADER_DIR): New make variabe.
7598 (LIMITS_H_TEST, if_multiarch, stmp-fixinc): Use BUILD_SYSTEM_HEADER_DIR
7599 instead of SYSTEM_HEADER_DIR.
7601 2017-02-20 Gerald Pfeifer <gerald@pfeifer.com>
7602 Martin Liška <mliska@suse.cz>
7604 * doc/invoke.texi (use-after-scope-direct-emission-threshold):
7605 Fix typos and grammar, use active voice, and clarify.
7607 2017-02-20 Marek Polacek <polacek@redhat.com>
7610 * gimplify.c (gimplify_expr): Handle unused *&&L;.
7613 * ubsan.c (ubsan_type_descriptor): Check if TYPE_MAX_VALUE is null.
7615 2017-02-20 Jakub Jelinek <jakub@redhat.com>
7618 * config/i386/i386.c (ix86_expand_builtin): Handle
7619 OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
7620 ix86_builtins_isa[fcode].isa as a requirement of those
7621 flags and any other flag in the bitmask.
7622 (ix86_init_mmx_sse_builtins): Use 0 instead of
7623 ~OPTION_MASK_ISA_64BIT as mask.
7624 * config/i386/i386-builtin.def (__builtin_ia32_rdtsc,
7625 __builtin_ia32_rdtscp, __builtin_ia32_pause, __builtin_ia32_bsrsi,
7626 __builtin_ia32_rdpmc, __builtin_ia32_rolqi, __builtin_ia32_rolhi,
7627 __builtin_ia32_rorqi, __builtin_ia32_rorhi): Likewise.
7629 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
7632 * lra-constraints.c (split_reg): Check requested split mode
7633 is supported by the register.
7635 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
7637 * lra-constraints.c (simplify_operand_subreg): Remove early
7640 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
7643 * lra-constraints.c (curr_insn_transform): Tighten condition
7644 for converting SUBREG reloads from OP_OUT to OP_INOUT.
7646 2017-02-20 Matthew Fortune <matthew.fortune@imgtec.com>
7649 * lra-constraints.c (curr_insn_transform): Handle
7650 WORD_REGISTER_OPERATIONS requirements when reloading SUBREGs.
7652 2017-02-19 Uros Bizjak <ubizjak@gmail.com>
7655 2016-05-30 Uros Bizjak <ubizjak@gmail.com>
7657 * config/i386/sync.md (mfence_nosse): Use "lock orl $0, -4(%esp)".
7659 2017-02-19 Jonathan Wakely <jwakely@redhat.com>
7662 * doc/invoke.texi (C++ Dialect Options) [-Wliteral-suffix]: Update
7665 2017-02-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7667 * gimple-pretty-print.c (dump_ternary_rhs): Adjust gimple dump format
7670 2017-02-18 Jakub Jelinek <jakub@redhat.com>
7672 * final.c (last_columnnum, override_columnnum): New variables.
7673 (final_start_function): Set last_columnnum, pass it to begin_prologue
7674 hook and pass 0 to dwarf2out_begin_prologue.
7675 (final_scan_insn): Update override_columnnum. Pass last_columnnum
7676 to source_line debug hook.
7677 (notice_source_line): Compute last_columnnum and for debug_column_info
7678 return true on column changes.
7679 * debug.h (struct gcc_debug_hooks): Add column argument to
7680 source_line and begin_prologue hooks.
7681 (debug_nothing_int_charstar_int_bool): Remove prototype.
7682 (debug_nothing_int_int_charstar,
7683 debug_nothing_int_int_charstar_int_bool): New prototypes.
7684 (dwarf2out_begin_prologue): Add column argument.
7685 * debug.c (do_nothing_debug_hooks): Adjust source_line and
7686 begin_prologue hooks.
7687 (debug_nothing_int_charstar_int_bool): Remove.
7688 (debug_nothing_int_int_charstar,
7689 debug_nothing_int_int_charstar_int_bool): New functions.
7690 * dwarf2out.c (dwarf2out_begin_prologue): Add column argument, pass it
7691 through to dwarf2out_source_line.
7692 (dwarf2_lineno_debug_hooks): Adjust begin_prologue hook.
7693 (dwarf2out_source_line): Add column argument, emit it if requested.
7694 * sdbout.c (sdbout_source_line, sdbout_begin_prologue): Add column
7696 * xcoffout.h (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
7697 * xcoffout.c (xcoffout_begin_prologue, xcoffout_source_line): Likewise.
7698 * vmsdbgout.c (vmsdbgout_begin_prologue): Add column argument, pass it
7699 through to dwarf2out_begin_prologue.
7700 (vmsdbgout_source_line): Add column argument, pass it through to
7701 dwarf2out_source_line.
7702 * dbxout.c (dbxout_begin_prologue): Add column argument, adjust
7703 dbxout_source_line caller.
7704 (dbxout_source_line): Add column argument.
7706 * common.opt (gno-column-info, gcolumn-info): New options.
7707 * dwarf2out.c (dwarf2_lineno_debug_hooks): Formatting fix.
7708 (check_die): Also test for multiple DW_AT_decl_column attributes.
7709 (add_src_coords_attributes, dwarf2out_imported_module_or_decl_1): Add
7710 DW_AT_decl_column if requested.
7711 (gen_subprogram_die): Compare and/or add also DW_AT_decl_column
7713 (gen_variable_die): Likewise.
7714 (add_call_src_coords_attributes): Add DW_AT_call_column if requested.
7715 * doc/invoke.texi (-gcolumn-info, -gno-column-info): Document.
7718 * config/i386/i386.opt (m3dnowa): Replace Undocumented with Report.
7719 * common/config/i386/i386-common.c (OPTION_MASK_ISA_3DNOW_A_SET): Define.
7720 (ix86_handle_option): Handle OPT_m3dnowa.
7721 * doc/invoke.texi (-m3dnowa): Document.
7722 * doc/extend.texi (__builtin_ia32_pmulhuw, __builtin_ia32_pf2iw): Use
7723 -m3dnowa instead of -m3dnow -march=athlon.
7726 * config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
7727 instead of gcc_assert for K, r and R code checks. Formatting fixes.
7729 2017-02-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
7732 * config/rs6000/rs6000.c (rs6000_expand_ternop_builtin): Add
7733 support for CODE_FOR_vsx_xxpermdi_v2d[fi]_be.
7734 * config/rs6000/rs6000.md (reload_gpr_from_vsx<mode>): Call
7735 generator for vsx_xxpermdi_<mode>_be.
7736 * config/rs6000/vsx.md (vsx_xxpermdi_<mode>): Remove logic to
7737 force big-endian semantics.
7738 (vsx_xxpermdi_<mode>_be): New define_expand with same
7739 implementation as previous version of vsx_xxpermdi_<mode>.
7741 2017-02-17 Jakub Jelinek <jakub@redhat.com>
7743 PR tree-optimization/79327
7744 * gimple-ssa-sprintf.c (format_integer): Remove likely_adjust
7745 variable, its initialization and use.
7747 2017-02-17 Julia Koval <julia.koval@intel.com>
7749 * common/config/i386/i386-common.c (OPTION_MASK_ISA_RDPID_SET): New.
7750 (OPTION_MASK_ISA_PKU_UNSET): New.
7751 (ix86_handle_option): Handle -mrdpid.
7752 * config/i386/cpuid.h (bit_RDPID): New.
7753 * config/i386/driver-i386.c (host_detect_local_cpu):
7754 Detect RDPID feature.
7755 * config/i386/i386-builtin.def (__builtin_ia32_rdpid): New.
7756 * config/i386/i386-c.c (ix86_target_macros_internal):
7758 * config/i386/i386.c (ix86_target_string): Add -mrdpid to isa2_opts.
7759 (ix86_valid_target_attribute_inner_p): Add "rdpid".
7760 (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID.
7761 * config/i386/i386.h (TARGET_RDPID, TARGET_RDPID_P): New.
7762 * config/i386/i386.md (define_insn "rdpid"): New.
7763 * config/i386/i386.opt Add -mrdpid.
7764 * config/i386/immintrin.h (_rdpid_u32): New.
7766 2017-02-17 Vladimir Makarov <vmakarov@redhat.com>
7768 PR rtl-optimization/79541
7769 * lra-constraints.c (curr_insn_transform): Remove wrong asm insn
7770 instead of transforming it into USE.
7772 2017-02-17 Segher Boessenkool <segher@kernel.crashing.org>
7774 * config/rs6000/rs6000.md (extendsfdf2): Remove default arguments.
7775 If HONOR_SNANS (SFmode) force the input to a register.
7776 (*extendsfdf2_fpr): Add !HONOR_SNANS (SFmode) condition.
7777 (*extendsfdf2_snan): New pattern, used when using SNaNs; it generates
7778 an frsp or similar insn.
7780 2017-02-17 Martin Liska <mliska@suse.cz>
7782 PR rtl-optimization/79577
7783 * params.def (selsched-max-sched-times): Increase minimum to 1.
7785 2017-02-17 Martin Liska <mliska@suse.cz>
7787 PR rtl-optimization/79574
7788 * gcse.c (want_to_gcse_p): Prevent integer overflow.
7790 2017-02-17 Martin Liska <mliska@suse.cz>
7792 PR tree-optimization/79529
7793 * tree-ssa-loop-unswitch.c (is_maybe_undefined): Use
7794 ssa_defined_default_def_p to handle cases which are implicitly
7796 * tree-ssa.c (ssa_defined_default_def_p): New function.
7797 (ssa_undefined_value_p): Use ssa_defined_default_def_p to handle cases
7798 which are implicitly defined.
7799 * tree-ssa.h (ssa_defined_default_def_p): Declare.
7801 2017-02-17 Richard Biener <rguenther@suse.de>
7804 * params.def (max-ssa-name-query-depth): Limit to 10.
7806 2017-02-17 Richard Biener <rguenther@suse.de>
7808 PR tree-optimization/79552
7809 * tree-ssa-structalias.c (visit_loadstore): Properly verify
7812 2017-02-17 Richard Biener <rguenther@suse.de>
7815 * genmatch.c (output_line_directive): Handle DIR_SEPARATOR_2.
7817 2017-02-17 Marek Polacek <polacek@redhat.com>
7820 * fold-const.c (fold_negate_expr_1): Renamed from fold_negate_expr.
7821 (fold_negate_expr): New wrapper.
7823 2017-02-16 Sandra Loosemore <sandra@codesourcery.com>
7825 * doc/invoke.texi (C++ Dialect Options) [-Wno-non-template-friend]:
7826 Correct terminology and de-emphasize pre-standard behavior.
7828 2017-02-16 Alan Modra <amodra@gmail.com>
7830 PR rtl-optimization/79286
7831 * ira.c (def_dominates_uses): New function.
7832 (update_equiv_regs): Don't create an equivalence for insns that
7833 may trap where the register def does not dominate the use.
7835 2017-02-16 Vladimir Makarov <vmakarov@redhat.com>
7837 PR rtl-optimization/78127
7838 * lra.c (lra): Call lra_eliminate before finish the loop after
7841 2017-02-16 Richard Biener <rguenther@suse.de>
7843 * graphite.h: Do not include isl/isl_val_gmp.h, instead include
7845 * graphite-isl-ast-to-gimple.c (gmp_cst_to_tree): Remove.
7846 (gcc_expression_from_isl_expr_int): Use generic isl_val interface.
7847 * graphite-sese-to-poly.c: Do not include isl/isl_val_gmp.h.
7848 (isl_val_int_from_wi): New function.
7849 (extract_affine_gmp): Rename to ...
7850 (extract_affine_wi): ... this, take a widest_int.
7851 (extract_affine_int): Just wrap extract_affine_wi.
7852 (add_param_constraints): Use isl_val_int_from_wi.
7853 (add_loop_constraints): Likewise, and extract_affine_wi.
7855 2017-02-15 Jeff Law <law@redhat.com>
7858 * ira-costs.c (scan_one_insn): Check have_regs_of_mode before calling
7859 ira_init_register_move_cost_if_necessary.
7861 2017-02-15 Martin Sebor <msebor@redhat.com>
7864 * doc/invoke.texi (-fdump-final-insns): Replace option accidentally
7865 removed in a prior commit.
7867 2017-02-15 Bin Cheng <bin.cheng@arm.com>
7869 PR tree-optimization/79347
7870 * tree-vect-loop-manip.c (vect_do_peeling): Maintain profile
7871 counters during peeling.
7873 2017-02-15 Thomas Schwinge <thomas@codesourcery.com>
7875 * Makefile.in (site.exp): Remove "set ISLVER".
7877 2017-02-15 Jakub Jelinek <jakub@redhat.com>
7880 * real.c (real_from_integer): Call real_convert even for decimal.
7882 2017-02-15 Dominik Vogt <vogt@linux.vnet.ibm.com>
7885 * config/s390/s390.c: define TARGET_CUSTOM_FUNCTION_DESCRIPTORS.
7887 2017-02-14 Andrew Pinski <apinski@cavium.com>
7889 * config/aarch64/aarch64-cores.def (thunderx2t99): Move to under 'C"
7890 cores and change the partno/implementer to be correct.
7891 (thunderx2t99p1): New core which replaces thunderx2t99 and still has
7892 the 'B" as the implementer.
7893 * config/aarch64/aarch64-tune.md: Regenerate.
7895 2017-02-14 Carl Love <cel@us.ibm.com>
7897 * config/rs6000/rs6000.c: Add case statement entry to make the
7898 xvcvuxdsp built-in argument unsigned.
7899 * config/rs6000/vsx.md: Fix the source and return operand types so they
7900 match the instruction definitions from the ISA document. Fix typo
7901 in the instruction generation for the (define_insn "vsx_xvcvuxdsp"
7904 2017-02-14 Vladimir Makarov <vmakarov@redhat.com>
7907 * lra-int.h (struct lra_operand_data, struct lra_insn_reg): Add
7908 member early_clobber_alts.
7909 * lra-lives.c (reg_early_clobber_p): New.
7910 (process_bb_lives): Use it.
7911 * lra.c (new_insn_reg): New arg early_clobber_alts. Use it.
7912 (debug_operand_data): Initialize early_clobber_alts.
7913 (setup_operand_alternative): Set up early_clobber_alts.
7914 (collect_non_operand_hard_regs): Ditto. Pass early clobber
7915 alternatives to new_insn_reg.
7916 (add_regs_to_insn_regno_info): Add arg early_clobber_alts. Use
7918 (lra_update_insn_regno_info): Pass the new arg.
7920 2017-02-14 Jakub Jelinek <jakub@redhat.com>
7923 * omp-offload.c (free_oacc_loop): Release loop->ifns vector.
7924 (new_oacc_loop_raw): Don't clear already cleared fields.
7927 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd,
7928 _mm512_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd,
7929 _mm512_prefetch_i64gather_ps): New inline functions and macros.
7931 2017-02-14 Uros Bizjak <ubizjak@gmail.com>
7934 * config/i386/i386.md (*movxf_internal): Add (o,rC) alternative.
7936 2017-02-14 H.J. Lu <hongjiu.lu@intel.com>
7939 * config/i386/i386.c (timode_scalar_chain::convert_insn): Insert
7940 the extra instruction to the right place to store 128-bit constant
7943 2017-02-14 Martin Sebor <msebor@redhat.com>
7946 * gimple-ssa-sprintf.c (format_directive): Avoid issuing INT_MAX
7947 warning for strings of unknown length.
7949 2017-02-13 Segher Boessenkool <segher@kernel.crashing.org>
7951 * config.gcc (supported_defaults) [powerpc*-*-*]: Update.
7953 2017-02-14 Jeff Law <law@redhat.com>
7956 * ira-costs.c (scan_one_insn): Initialize register move costs
7957 for pseudos seen in USE/CLOBBER insns.
7959 PR tree-optimization/79095
7960 * tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
7961 if the numerator has the range ~[0,0] make the resultant range ~[0,0].
7962 (extract_range_from_binary_expr): For MINUS_EXPR with no derived range,
7963 if the operands are known to be not equal, then the resulting range
7965 (intersect_ranges): If the new range is ~[0,0] and the old range is
7966 wide, then prefer ~[0,0].
7967 * tree-vrp.c (overflow_comparison_p_1): New function.
7968 (overflow_comparison_p): New function.
7969 * tree-vrp.c (register_edge_assert_for_2): Register additional asserts
7970 if NAME is used in an overflow test.
7971 (vrp_evaluate_conditional_warnv_with_ops): If the ops represent an
7972 overflow check that can be expressed as an equality test, then adjust
7973 ops to be that equality test.
7975 2017-02-14 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
7977 * config/s390/s390-builtin-types.def: Remove flags argument.
7978 * config/s390/s390.c (s390_init_builtins): Likewise.
7980 2017-02-14 Martin Liska <mliska@suse.cz>
7982 * tree-ssa-loop-unswitch.c (hoist_guard): Release get_loop_body
7983 vector. Fix trailing white spaces.
7985 2017-02-14 James Greenhalgh <james.greenhalgh@arm.com>
7987 * config/aarch64/aarch64.c (aarch64_simd_container_mode): Handle
7990 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7992 PR rtl-optimization/68664
7993 * config/arm/arm.c (arm_sched_can_speculate_insn):
7994 New function. Declare prototype.
7995 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
7997 2017-02-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7999 PR rtl-optimization/68664
8000 * config/aarch64/aarch64.c (aarch64_sched_can_speculate_insn):
8002 (TARGET_SCHED_CAN_SPECULATE_INSN): Define.
8004 2017-02-14 Amit Pawar <amit.pawar@amd.com>
8006 * config/i386/i386.c (znver1_cost): Fix the alignment for function and
8007 max skip bytes for function, loop and jump.
8009 2017-02-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8011 * gimple-pretty-print.c (dump_unary_rhs): Adjust dump format for
8012 ABS_EXPR for gimple dump.
8014 2017-02-14 Jakub Jelinek <jakub@redhat.com>
8017 * config/sh/sh.c (expand_cbranchdi4): Don't clear operands[4].
8019 PR tree-optimization/79408
8020 * tree-vrp.c (simplify_div_or_mod_using_ranges): Handle also the
8021 case when on TRUNC_MOD_EXPR op0 is INTEGER_CST.
8022 (simplify_stmt_using_ranges): Call simplify_div_or_mod_using_ranges
8023 also if rhs1 is INTEGER_CST.
8025 2017-02-14 Richard Biener <rguenther@suse.de>
8028 * tree-into-ssa.c (insert_phi_nodes): When the function can
8029 have abnormal edges rewrite SSA names with broken use-def
8030 dominance out of SSA and register them for PHI insertion.
8032 2017-02-13 Martin Sebor <msebor@redhat.com>
8035 * gimple-ssa-sprintf.c (pass_sprintf_length::handle_gimple_call): Avoid
8036 clearing info.nowrite flag when snprintf size argument is a range.
8038 2017-02-13 Jakub Jelinek <jakub@redhat.com>
8040 * cprop.c (cprop_jump): Add missing space in string literal.
8041 * tree-ssa-structalias.c (rewrite_constraints): Likewise.
8042 (get_constraint_for_component_ref): Likewise.
8043 * df-core.c (df_worklist_dataflow_doublequeue): Likewise.
8044 * tree-outof-ssa.c (insert_partition_copy_on_edge): Likewise.
8045 * lra-constraints.c (process_alt_operands): Likewise.
8046 * ipa-inline.c (inline_small_functions): Likewise.
8047 * tree-ssa-sccvn.c (visit_reference_op_store): Likewise.
8048 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise.
8049 * trans-mem.c (diagnose_tm_1_op): Likewise.
8050 * omp-grid.c (grid_find_single_omp_among_assignments): Likewise.
8051 (grid_parallel_clauses_gridifiable): Likewise.
8053 * config/nvptx/mkoffload.c (process): Add space in between
8056 * config/i386/i386.h (REG_CLASS_NAMES): Add , in between
8057 "MOD4_SSE_REGS" and "ALL_REGS".
8059 * spellcheck.c (test_data): Add , in between "foo" and "food".
8061 2017-02-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8064 * config/rs6000/rs6000.c (expand_block_compare): Make sure runtime
8065 boundary crossing check and subsequent code generation agree.
8067 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8069 * config/aarch64/aarch64.c (has_memory_op): Delete.
8070 (aarch64_madd_needs_nop): Use contains_mem_rtx_p instead of
8073 2017-02-13 Jakub Jelinek <jakub@redhat.com>
8075 PR rtl-optimization/79388
8076 PR rtl-optimization/79450
8077 * combine.c (distribute_notes): When removing TEM_INSN for which
8078 corresponding dest has last value recorded, invalidate that last
8081 2017-02-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8083 * config/arm/arm.c (arm_print_tune_info): Use ASM_COMMENT_START instead
8084 of explicit '@'. Add missing assembly comment marker on branch costs
8087 2017-02-13 Nathan Sidwell <nathan@acm.org>
8089 * gengtype-lex.l (<in_struct>): Add '/'.
8091 2017-02-13 Martin Liska <mliska@suse.cz>
8094 * calls.c (expand_call): Replace XALLOCAVEC with XCNEWVEC.
8096 2017-02-13 Richard Biener <rguenther@suse.de>
8098 * configure.ac (HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS):
8100 * configure: Re-generate.
8101 * config.in: Likewise.
8102 * graphite-dependences.c: Simplify as if
8103 HAVE_ISL_OPTIONS_SET_SCHEDULE_SERIALIZE_SCCS was defined.
8104 * graphite-isl-ast-to-gimple.c: Likewise.
8105 * graphite-optimize-isl.c: Likewise.
8106 * graphite-poly.c: Likewise.
8107 * graphite-sese-to-poly.c: Likewise.
8108 * graphite.h: Likewise.
8109 * toplev.c: Include isl/version.h and use isl_version () for
8110 printing the ISL version.
8111 * doc/install.texi: Update ISL requirement.
8113 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
8115 * doc/standards.texi (Standards): Update reference to
8118 2017-02-12 Gerald Pfeifer <gerald@pfeifer.com>
8120 * doc/extend.texi (Named Address Spaces): sourceware.org now
8122 * doc/install.texi (Binaries): Ditto.
8125 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
8127 * doc/cpp.texi: Replace "stringify"/"stringification" with C
8128 standard terminology "stringize"/"stringizing" throughout.
8129 * doc/cppinternals.texi: Likewise.
8131 2017-02-11 Sandra Loosemore <sandra@codesourcery.com>
8133 * doc/extend.texi: Fix some spelling mistakes and typos.
8134 * doc/invoke.texi: Likewise.
8136 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
8139 * params.def (inline-min-speedup) Change from 10 to 8.
8141 2017-02-11 Jakub Jelinek <jakub@redhat.com>
8143 * doc/invoke.texi (fopenmp): Bump OpenMP version from 4.0 to
8146 2017-02-11 Jan Hubicka <hubicka@ucw.cz>
8149 * ipa-inline-analysis.c (get_minimal_bb): New function.
8150 (record_modified): Use it.
8151 (remap_edge_change_prob): Handle also ancestor functions.
8153 2017-02-11 Gerald Pfeifer <gerald@pfeifer.com>
8155 * doc/contrib.texi (Contributors): Remove broken link into
8156 the Mauve CVS repository.
8158 2017-02-11 Jakub Jelinek <jakub@redhat.com>
8161 * internal-fn.c (expand_vector_ubsan_overflow): Use piece-wise
8162 result computation whenever lhs doesn't have vector mode, not
8163 just when it has BLKmode.
8165 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
8167 * doc/makefile.texi (profiledbootstrap): Refer to the
8168 installation instructions only in textual form.
8170 2017-02-10 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8173 * config/rs6000/altivec.md (bcd<bcd_add_sub>): Fix constraints.
8175 2017-02-10 Gerald Pfeifer <gerald@pfeifer.com>
8177 * doc/install.texi (Specific): Use https for blackfin.uclinux.org.
8178 (Specific): Update mingw-w64 reference.
8180 (Specific): Remove broken link to Renesas RX processor.
8182 2017-02-10 Richard Biener <rguenther@suse.de>
8184 * toplev.c (process_options): Do not mention obsolete graphite
8185 options when printing sorry message about missing graphite support.
8186 Mention -floop-nest-optimize.
8188 2017-02-10 Christophe Lyon <christophe.lyon@linaro.org>
8190 * config/aarch64/arm_neon.h (vtst_p8): Rewrite without asm.
8191 (vtst_p16): Likewise.
8192 (vtstq_p8): Likewise.
8193 (vtstq_p16): Likewise.
8195 (vtstq_p64): Likewise.
8196 * config/arm/arm_neon.h (vgetq_lane_p64): New.
8197 (vset_lane_p64): New.
8198 (vsetq_lane_p64): New.
8200 2017-02-10 Jakub Jelinek <jakub@redhat.com>
8202 PR tree-optimization/79411
8203 * tree-ssa-reassoc.c (is_reassociable_op): Return false if
8204 stmt operands are SSA_NAMEs used in abnormal phis.
8205 (can_reassociate_p): Return false if op is SSA_NAME used in abnormal
8208 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
8211 * cgraphunit.c (cgraph_node::add_new_function): Set externally_visible
8214 2017-02-09 Jan Hubicka <hubicka@ucw.cz>
8216 * tree-ssa-loop-unswitch.c (hoist_guard): Update profile.
8218 2017-02-09 Jakub Jelinek <jakub@redhat.com>
8220 * omp-offload.c (oacc_loop_auto_partitions): Use || instead of |
8224 * gimplify.h (is_gimple_sizepos): Only test for INTEGER_CST constants,
8225 not arbitrary TREE_CONSTANT.
8228 * gimplify.c (gimplify_adjust_omp_clauses): Ignore
8229 "omp declare target link" attribute unless is_global_var.
8230 * omp-offload.c (find_link_var_op): Likewise.
8232 2017-02-09 Nathan Sidwell <nathan@codesourcery.com>
8233 Chung-Lin Tang <cltang@codesourcery.com>
8235 * gimplify.c (gimplify_scan_omp_clauses): No special handling for
8237 (gimplify_adjust_omp_clauses): Don't delete TILE.
8238 (gimplify_omp_for): Deal with TILE.
8239 * internal-fn.c (expand_GOACC_TILE): New function.
8240 * internal-fn.def (GOACC_DIM_POS): Comment may be overly conservative.
8242 * omp-expand.c (struct oacc_collapse): Add tile and outer fields.
8243 (expand_oacc_collapse_init): Add LOC paramter. Initialize tile
8245 (expand_oacc_collapse_vars): Add INNER parm, adjust for tiling,
8246 avoid DIV for outermost collapse var.
8247 (expand_oacc_for): Insert tile element loop as needed. Adjust.
8248 Remove out of date comments, fix whitespace.
8249 * omp-general.c (omp_extract_for_data): Deal with tiling.
8250 * omp-general.h (enum oacc_loop_flags): Add OLF_TILE flag,
8251 adjust OLF_DIM_BASE value.
8252 (struct omp_for_data): Add tiling field.
8253 * omp-low.c (scan_sharing_clauses): Allow OMP_CLAUSE_TILE.
8254 (lower_oacc_head_mark): Add OLF_TILE as appropriate. Ensure 2 levels
8255 for auto loops. Remove default auto determining, moved to
8256 oacc_loop_fixed_partitions.
8257 * omp-offload.c (struct oacc_loop): Change 'ifns' to vector of call
8258 stmts, add e_mask field.
8259 (oacc_dim_call): New function, abstracted out from oacc_thread_numbers.
8260 (oacc_thread_numbers): Use oacc_dim_call.
8261 (oacc_xform_tile): New.
8262 (new_oacc_loop_raw): Initialize e_mask, adjust for ifns vector.
8263 (finish_oacc_loop): Adjust for ifns vector.
8264 (oacc_loop_discover_walk): Append loop abstraction sites to list,
8265 add case for GOACC_TILE fns.
8266 (oacc_loop_xform_loop): Delete.
8267 (oacc_loop_process): Iterate over call list directly, and add
8268 handling for GOACC_TILE fns.
8269 (oacc_loop_fixed_partitions): Determine default auto, deal with TILE,
8271 (oacc_loop_auto_partitions): Add outer_assign parm. Assign all but
8272 vector partitioning to outer loops. Assign 2 partitions to loops
8273 when available. Add TILE handling.
8274 (oacc_loop_partition): Adjust oacc_loop_auto_partitions call.
8275 (execite_oacc_device_lower): Process GOACC_TILE fns, ignore unknown specs.
8276 * tree-nested.c (convert_nonlocal_omp_clauses): Allow OMP_CLAUSE_TILE.
8277 * tree.c (omp_clause_num_ops): Adjust TILE ops.
8278 * tree.h (OMP_CLAUSE_TILE_ITERVAR, OMP_CLAUSE_TILE_COUNT): New.
8280 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
8282 * configure.ac (ACX_BUGURL): Update.
8283 * configure: Regenerate.
8285 2017-02-09 Richard Biener <rguenther@suse.de>
8287 PR tree-optimization/69823
8288 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
8289 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
8291 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
8293 * config/arc/arc-c.def: Add __NPS400__ definition.
8294 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
8295 (TARGET_NPS400): Define.
8297 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
8299 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
8301 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
8303 (arc_cpu_types): Fill the arch_info field with a pointer into the
8304 arc_arch_types table.
8305 (arc_selected_cpu): Declare.
8306 * config/arc/arc.c (arc_selected_cpu): Make global.
8307 (arc_selected_arch): Delete.
8308 (arc_base_cpu): Delete.
8309 (arc_override_options): Remove references to deleted variables,
8310 update access to arch information.
8311 (ARC_OPT): Update access to arch information.
8312 (ARC_OPTX): Likewise.
8313 * config/arc/arc.h (arc_base_cpu): Remove declaration.
8314 (TARGET_ARC600): Update access to arch information.
8315 (TARGET_ARC601): Likewise.
8316 (TARGET_ARC700): Likewise.
8317 (TARGET_EM): Likewise.
8318 (TARGET_HS): Likewise.
8319 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
8322 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
8325 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
8326 condition/operands for integer GE/LE/GEU/LEU operations.
8328 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
8330 PR translation/79397
8331 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
8334 2017-02-08 Martin Jambor <mjambor@suse.cz>
8337 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
8338 whether allocation happened.
8339 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
8340 nothing was allocated.
8342 2017-02-08 Jakub Jelinek <jakub@redhat.com>
8344 PR tree-optimization/79408
8345 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
8346 constant, but SSA_NAME with a known integer range, use the minimum
8347 of that range instead of op1 to determine if modulo can be replaced
8348 with its first operand.
8350 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8352 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
8354 2017-02-08 Richard Biener <rguenther@suse.de>
8356 PR tree-optimization/71824
8357 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
8358 Check all loops contained in the merged region.
8360 2017-02-07 Andrew Pinski <apinski@cavium.com>
8362 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
8364 2017-02-07 Andrew Pinski <apinski@cavium.com>
8366 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
8367 (thunderxt88): Likewise.
8368 (thunderxt81): Disable LSE and change v8.1 to v8.
8369 (thunderxt83): Likewise.
8371 2017-02-07 Jakub Jelinek <jakub@redhat.com>
8372 Richard Biener <rguenther@suse.de>
8375 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
8376 type from int to size_t.
8377 * ira-costs.c (struct_costs_size): Change type from int to size_t.
8379 2017-02-07 Jakub Jelinek <jakub@redhat.com>
8381 PR rtl-optimization/79386
8382 * cprop.c (bypass_conditional_jumps): Initialize
8383 bypass_last_basic_block already before splitting bbs after
8384 unconditional traps...
8385 (bypass_conditional_jumps): ... rather than here.
8388 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
8389 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
8390 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
8391 fix -masm=intel patterns.
8393 2017-02-07 Richard Biener <rguenther@suse.de>
8395 PR tree-optimization/79256
8397 * builtins.c (get_object_alignment_2): Use min_align_of_type
8398 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
8399 and ADJUST_FIELD_ALIGN.
8401 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
8403 * doc/tm.texi: Regenerate.
8404 * stor-layout.c (layout_decl): Adjust.
8405 (update_alignment_for_field): Likewise.
8406 (place_field): Likewise.
8407 (min_align_of_type): Likewise.
8408 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
8409 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
8410 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
8411 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
8412 * config/frv/frv.c (frv_adjust_field_align): Likewise.
8413 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
8414 * config/i386/i386.c (x86_field_alignment): Likewise.
8415 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
8416 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
8417 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
8418 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
8419 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
8420 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
8424 2017-01-30 Richard Biener <rguenther@suse.de>
8426 PR tree-optimization/79256
8427 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
8428 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
8431 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
8433 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
8434 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
8435 builtins to SImode and emit a zero-extend, if necessary.
8437 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
8439 * docs/invoke.texi (RISC-V Options): Alphabetize.
8441 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
8443 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
8446 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
8448 * config/riscv/riscv.c: New file.
8449 * gcc/common/config/riscv/riscv-common.c: Likewise.
8450 * config.gcc: Likewise.
8451 * config/riscv/constraints.md: Likewise.
8452 * config/riscv/elf.h: Likewise.
8453 * config/riscv/generic.md: Likewise.
8454 * config/riscv/linux.h: Likewise.
8455 * config/riscv/multilib-generator: Likewise.
8456 * config/riscv/peephole.md: Likewise.
8457 * config/riscv/pic.md: Likewise.
8458 * config/riscv/predicates.md: Likewise.
8459 * config/riscv/riscv-builtins.c: Likewise.
8460 * config/riscv/riscv-c.c: Likewise.
8461 * config/riscv/riscv-ftypes.def: Likewise.
8462 * config/riscv/riscv-modes.def: Likewise.
8463 * config/riscv/riscv-opts.h: Likewise.
8464 * config/riscv/riscv-protos.h: Likewise.
8465 * config/riscv/riscv.h: Likewise.
8466 * config/riscv/riscv.md: Likewise.
8467 * config/riscv/riscv.opt: Likewise.
8468 * config/riscv/sync.md: Likewise.
8469 * config/riscv/t-elf-multilib: Likewise.
8470 * config/riscv/t-linux: Likewise.
8471 * config/riscv/t-linux-multilib: Likewise.
8472 * config/riscv/t-riscv: Likewise.
8473 * configure.ac: Likewise.
8474 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
8475 Waterman as RISC-V maintainers.
8476 * doc/install.texi: Add RISC-V entries.
8477 * doc/invoke.texi: Add RISC-V options section.
8478 * doc/md.texi: Add RISC-V constraints section.
8479 * configure: Regenerated.
8481 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
8484 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
8485 false values to be constant vectors with all 0 or all 1 bits set.
8486 (vcondu<mode><mode>): Likewise.
8487 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
8489 (fpmask_comparison_operator): Update comment.
8490 (vecint_comparison_operator): New predicate.
8491 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
8492 vector conditionals when the true and false values are constant
8493 vectors with all 0 bits or all 1 bits set.
8495 2017-02-06 Martin Sebor <msebor@redhat.com>
8497 PR tree-optimization/79376
8498 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
8500 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
8502 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
8503 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
8504 to simplify split condition.
8506 2017-02-06 Jakub Jelinek <jakub@redhat.com>
8508 * omp-expand.c (oxpand_omp_atomic_fetch_op,
8509 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
8512 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
8514 PR rtl-optimization/68664
8515 * target.def (can_speculate_insn): New hook.
8516 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
8517 * doc/tm.texi: Regenerate.
8518 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
8519 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
8520 (rs6000_sched_can_speculate_insn): New function.
8522 2017-02-06 Jakub Jelinek <jakub@redhat.com>
8524 PR tree-optimization/79284
8525 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
8526 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
8527 vectorizable_mask_load_store, vectorizable_operation,
8528 vect_is_simple_cond, get_same_sized_vectype): Use it instead
8529 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
8530 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
8531 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
8532 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
8533 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
8534 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
8535 is_gimple_assign (stmt). Replace another such test with
8536 is_gimple_assign (stmt).
8538 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
8541 * config/avr/avr.c (rtl-iter.h): Include it.
8542 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
8543 (avr_legitimate_combined_insn): ...and implementation.
8545 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
8547 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
8548 * config/s390/s390.c (s390_const_operand_ok)
8549 (s390_canonicalize_comparison, s390_extract_part)
8550 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
8551 (s390_contiguous_bitmask_p, s390_rtx_costs)
8552 (legitimize_pic_address): Likewise.
8553 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
8554 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
8555 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
8556 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
8557 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
8559 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
8561 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
8562 REGNO($0) == REGNO($1).
8564 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8566 * config/s390/linux.h(SIZE_TYPE): Add comment.
8568 2017-02-06 Julian Brown <julian@codesourcery.com>
8569 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8570 Virendra Pathak <virendra.pathak@broadcom.com>
8572 * config/aarch64/aarch64-cores.def: Change the scheduler
8574 * config/aarch64/aarch64.md: Include thunderx2t99.md.
8575 * config/aarch64/thunderx2t99.md: New file.
8577 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
8579 * doc/standards.texi (Go Language): Update link to language
8582 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
8584 * tree-eh.c (lower_resx): Sanitize profile.
8585 (cleanup_empty_eh_move_lp): Likewise.
8587 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
8590 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
8592 * cfgloopmanip.h (loop_version): Update prototype.
8593 * modulo-sched.c (sms_schedule): Update call of loop_version.
8594 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
8595 * tree-parloops.c (gen_parallel_loop): Likewise.
8596 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
8597 * tree-ssa-loop-split.c (split_loop): Likewise.
8598 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
8599 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
8601 2017-02-05 Martin Liska <mliska@suse.cz>
8604 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
8606 (print_operand_address): Initialize a struct to zero.
8608 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
8610 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
8611 garbage collector only in textual form.
8613 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
8615 * doc/extend.texi (x86 specific memory model extensions for
8616 transactional memory): Simplify a phrase.
8618 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
8621 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
8622 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
8623 (atomic_storedi_1): Likewise.
8625 2017-02-04 Jakub Jelinek <jakub@redhat.com>
8627 PR tree-optimization/79338
8628 * tree-parloops.c (gather_scalar_reductions): Don't call
8629 vect_analyze_loop_form for loop->inner before destroying loop's
8632 2017-02-03 Martin Sebor <msebor@redhat.com>
8634 PR tree-optimization/79327
8635 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
8636 when precision has resulted in leading zeros.
8637 (format_integer): Adjust the likely counter to assume an unknown
8638 argument that may be zero is non-zero.
8640 2017-02-03 Jason Merrill <jason@redhat.com>
8643 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
8644 avoid copying non-taken branch.
8646 2017-02-03 Jakub Jelinek <jakub@redhat.com>
8648 PR tree-optimization/79340
8649 * tree-vect-loop.c (vectorizable_reduction): Release
8650 vec_defs elements after safe_splicing them into other vectors.
8653 PR tree-optimization/79327
8654 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
8655 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
8657 (format_integer): Use wide_int_to_tree instead of build_int_cst
8658 + to_?hwi. If argmin is NULL, just set argmin and argmax to
8659 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
8660 of shortest and longest sequence.
8662 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
8664 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
8665 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
8667 2017-02-03 Walter Lee <walt@tilera.com>
8670 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
8671 after initial stackframe link reg save.
8672 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
8674 2017-02-03 Jakub Jelinek <jakub@redhat.com>
8677 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
8678 wu for stxssp alternative.
8680 2017-02-03 Martin Sebor <msebor@redhat.com>
8682 PR tree-optimization/79352
8683 * gimple-fold.c (get_range_strlen): Add argument.
8684 (get_range_strlen): Change return type to bool.
8685 (get_maxval_strlen): Pass in a dummy argument.
8686 * gimple-fold.h (get_range_strlen): Change return type to bool.
8687 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
8688 * tree.h (array_at_struct_end_p): Add argument.
8689 * tree.c (array_at_struct_end_p): Handle it.
8691 2017-02-03 Martin Liska <mliska@suse.cz>
8694 * multiple_target.c (create_dispatcher_calls): Redirect edge
8695 from a caller of a dispatcher.
8696 (expand_target_clones): Make the clones local.
8697 (ipa_target_clone): Do both target clones and resolvers.
8698 (ipa_dispatcher_calls): Remove the pass.
8699 (pass_dispatcher_calls::gate): Likewise.
8700 (make_pass_dispatcher_calls): Likewise.
8701 * passes.def (pass_target_clone): Put as very first IPA early
8704 2017-02-03 Martin Liska <mliska@suse.cz>
8706 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
8707 in case of a function with ifunc attribute.
8709 2017-02-03 Martin Liska <mliska@suse.cz>
8711 * cgraph.c (cgraph_node::dump): Dump function version info.
8712 * symtab.c (symtab_node::dump_base): Add missing new line.
8714 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
8716 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
8717 (ifcombine_ifandif): Use it.
8719 2017-02-03 Martin Liska <mliska@suse.cz>
8721 * doc/invoke.texi: Document default value for
8722 use-after-scope-direct-emission-threshold.
8724 2017-02-03 Martin Liska <mliska@suse.cz>
8726 PR tree-optimization/79339
8727 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
8728 (format_floating): Likewise.
8730 2017-02-03 Martin Liska <mliska@suse.cz>
8733 * ipa-prop.c (ipa_node_params_t::insert): Remove current
8735 (ipa_node_params_t::remove): Likewise.
8736 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
8737 initialization from removed ipa_node_params_t::insert.
8738 (ipa_node_params::~ipa_node_params): Move from removed
8739 ipa_node_params_t::release.
8740 * symbol-summary.h (symbol_summary::m_released): New member.
8741 Do not release a summary twice. Do not allow to call finalizer
8742 for types of a summary that live in GGC memory.
8744 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
8746 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
8749 2017-02-02 Martin Sebor <msebor@redhat.com>
8752 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
8753 (format_string): Tighten up the range of output for non-constant
8754 strings and correct the expected range for wide non-constant strings.
8756 2017-02-02 Martin Sebor <msebor@redhat.com>
8758 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
8761 * doc/invoke.texi (-fdump-tree-): Remove pass-specific options from
8763 (-fdump-tree-@var): Add to index and document how to come up
8764 with pass-specific option and dump file names.
8765 (-fdump-passes): Clarify where to look for output.
8767 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
8770 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
8771 statistics of the analyzed path; allow threading for speed when
8772 any of BBs along the path are optimized for speed.
8774 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
8777 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
8778 settings of the virtual registers.
8781 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
8783 * explow.c (get_dynamic_stack_size): Take known alignment of stack
8784 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
8787 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8789 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
8790 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
8792 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8794 * config/s390/s390.md: Add missing comments with the expanded
8796 * config/s390/vector.md: Likewise.
8797 * config/s390/vx-builtins.md: Likewise.
8799 2017-02-02 Jakub Jelinek <jakub@redhat.com>
8802 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
8803 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
8804 conditions on a single line.
8806 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8808 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
8809 __S390_VX__ to __VX__.
8811 2017-02-01 Andrew Pinski <apinski@cavium.com>
8813 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
8814 stmt_info to record_stmt_cost.
8815 (vect_get_known_peeling_cost): Pass stmt_info if known to
8817 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
8818 cpu_vector_cost field into
8819 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
8820 field into vec_int_stmt_cost and vec_fp_stmt_cost.
8821 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
8822 splitting of scalar_stmt_cost and vec_stmt_cost.
8823 (thunderx_vector_cost): Likewise.
8824 (cortexa57_vector_cost): LIkewise.
8825 (exynosm1_vector_cost): Likewise.
8826 (xgene1_vector_cost): Likewise.
8827 (thunderx2t99_vector_cost): Improve after the splitting of the two
8829 (aarch64_builtin_vectorization_cost): Update for the splitting of
8830 scalar_stmt_cost and vec_stmt_cost.
8832 2017-02-01 Torvald Riegel <triegel@redhat.com>
8833 Richard Henderson <rth@redhat.com>
8835 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
8836 conditional on existance of a fast atomic load.
8837 * optabs-query.c (can_atomic_load_p): New function.
8838 * optabs-query.h (can_atomic_load_p): Declare it.
8839 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
8840 no fast atomic load is available for the particular size of access.
8841 (expand_atomic_compare_and_swap): Likewise.
8842 (expand_atomic_load): Likewise.
8843 (expand_atomic_store): Likewise.
8844 (expand_atomic_fetch_op): Likewise.
8845 * testsuite/lib/target-supports.exp
8846 (check_effective_target_sync_int_128): Remove x86 because it provides
8847 no fast atomic load.
8848 (check_effective_target_sync_int_128_runtime): Likewise.
8850 2017-02-01 Richard Biener <rguenther@suse.de>
8852 * graphite.c: Include tree-vectorizer.h for find_loop_location.
8853 (graphite_transform_loops): Provide opt-info for optimized nests.
8854 * tree-parloop.c (parallelize_loops): Provide opt-info for
8857 2017-02-01 Richard Biener <rguenther@suse.de>
8860 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
8863 2017-02-01 Richard Biener <rguenther@suse.de>
8865 PR tree-optimization/71824
8866 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
8867 Verify the loops are valid in the merged SESE region.
8868 (scop_detection::can_represent_loop_1): Check analyzing the
8869 evolution of the number of iterations in the region succeeds.
8871 2017-01-31 Ian Lance Taylor <iant@golang.org>
8873 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
8874 REG_ARGS_SIZE note to 32-bit push insns and call insn.
8876 2017-01-31 David Malcolm <dmalcolm@redhat.com>
8878 PR preprocessor/79210
8879 * input.c (get_substring_ranges_for_loc): Replace line_width
8880 assertion with error-handling.
8882 2017-01-31 Richard Biener <rguenther@suse.de>
8884 PR tree-optimization/77318
8885 * graphite-sese-to-poly.c (extract_affine): Fix assert.
8886 (create_pw_aff_from_tree): Take loop parameter.
8887 (add_condition_to_pbb): Pass loop of the condition to
8888 create_pw_aff_from_tree.
8890 2017-01-31 Jakub Jelinek <jakub@redhat.com>
8892 * config/s390/s390.c (s390_asan_shadow_offset): New function.
8893 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
8895 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
8899 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
8901 (convert_int_to_float128): Likewise.
8902 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
8903 (convert_int_to_float128): Likewise.
8904 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
8905 (UNSPEC_IEEE128_CONVERT): Likewise.
8906 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
8907 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
8908 Use local variables for IBM extended format.
8909 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
8910 (fix_trunc<mode>si2_fprs): Likewise.
8911 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
8912 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
8913 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
8914 to know that we can now have integers of all sizes in vector
8916 (fix<uns>_<mode>di2_hw): Likewise.
8917 (float<uns>_<mode>si2_hw): Likewise.
8918 (fix_<mode>si2_hw): Likewise.
8919 (fixuns_<mode>si2_hw): Likewise.
8920 (float<uns>_<mode>di2_hw): Likewise.
8921 (float_<mode>di2_hw): Likewise.
8922 (float_<mode>si2_hw): Likewise.
8923 (floatuns_<mode>di2_hw): Likewise.
8924 (floatuns_<mode>si2_hw): Likewise.
8925 (xscvqp<su>wz_<mode>): Delete, no longer used.
8926 (xscvqp<su>dz_<mode>): Likewise.
8927 (xscv<su>dqp_<mode>): Likewise.
8928 (ieee128_mfvsrd_64bit): Likewise.
8929 (ieee128_mfvsrd_32bit): Likewise.
8930 (ieee128_mfvsrwz): Likewise.
8931 (ieee128_mtvsrw): Likewise.
8932 (ieee128_mtvsrd_64bit): Likewise.
8933 (ieee128_mtvsrd_32bit): Likewise.
8935 2017-01-31 Martin Liska <mliska@suse.cz>
8938 * ipa-prop.c (ipa_free_all_node_params): Call release method
8939 instead of ~sumbol_summary to not to trigger double times
8942 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
8944 PR tree-optimization/71691
8945 * bitmap.h (class auto_bitmap): New.
8946 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
8947 is_maybe_undefined instead of ssa_undefined_value_p.
8949 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
8951 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
8952 __S390_ARCH_LEVEL__ to __ARCH__.
8954 2017-01-31 Jakub Jelinek <jakub@redhat.com>
8956 PR tree-optimization/79267
8957 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
8958 if should_remove_lhs_p is true.
8960 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
8963 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
8964 (add_alignment_attribute): New.
8965 (base_type_die): Add alignment attribute.
8966 (subrange_type_die): Likewise.
8967 (modified_type_die): Likewise.
8968 (gen_array_type_die): Likewise.
8969 (gen_descr_array_type_die: Likewise.
8970 (gen_enumeration_type_die): Likewise.
8971 (gen_subprogram_die): Likewise.
8972 (gen_variable_die): Likewise.
8973 (gen_field_die): Likewise.
8974 (gen_ptr_to_mbr_type_die): Likewise.
8975 (gen_struct_or_union_type_die): Likewise.
8976 (gen_subroutine_type_die): Likewise.
8977 (gen_typedef_die): Likewise.
8978 (base_type_cmp): Compare alignment attribute.
8980 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
8983 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
8984 (setb_unsigned) New pattern for setb with CCUNS.
8985 * config/rs6000/rs6000.c (expand_block_compare): Use a different
8986 subfc./subfe sequence to avoid overflow problems. Generate a
8987 shorter sequence with cmpld/setb for power9.
8988 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
8989 for generating subfc. instruction.
8990 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
8991 now uses this instruction.
8993 2017-01-30 Ian Lance Taylor <iant@google.com>
8996 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
8997 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
8999 2017-01-30 Martin Sebor <msebor@redhat.com>
9001 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
9002 Move constant to the right of a relational operator.
9003 (get_mpfr_format_length, format_character, format_string): Ditto.
9004 (should_warn_p, maybe_warn): Same.
9006 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
9008 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
9011 * asan.c (get_translation_unit_decl): Remove function.
9012 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
9014 2017-01-30 Martin Liska <mliska@suse.cz>
9016 PR gcov-profile/79259
9017 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
9020 2017-01-30 Martin Liska <mliska@suse.cz>
9023 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
9024 Initialize variables with NULL value.
9026 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
9029 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
9031 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
9033 2017-01-30 Richard Biener <rguenther@suse.de>
9035 PR tree-optimization/79276
9036 * tree-vrp.c (process_assert_insertions): Properly adjust common
9037 when removing a duplicate.
9039 2017-01-30 Richard Biener <rguenther@suse.de>
9041 PR tree-optimization/79256
9042 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
9043 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
9045 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
9047 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
9050 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
9051 ("*r<noxa>sbg_<mode>_sll_bitmask")
9052 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
9053 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
9054 Use contiguous_bitmask_nowrap_operand.
9056 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
9059 * config/rs6000/altivec.h (vec_xl): Revise #define.
9060 (vec_xst): Likewise.
9062 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
9064 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
9066 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
9068 PR rtl-optimization/79194
9069 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
9070 traps before call to bypass_conditional_jumps.
9072 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
9074 PR tree-optimization/71374
9075 * lra-constraints.c (check_conflict_input_operands): New.
9076 (match_reload): Use it.
9078 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
9081 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
9082 account to calculate conflict_set.
9084 2017-01-27 Bin Cheng <bin.cheng@arm.com>
9086 PR rtl-optimization/78559
9087 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
9088 other_insn in combine.
9090 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
9092 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
9093 uint16_type_node for BT_UINT16.
9095 2017-01-27 David Malcolm <dmalcolm@redhat.com>
9097 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
9098 "RTL Tests" to menu.
9099 (GIMPLE Tests): New node.
9100 (RTL Tests): New node.
9102 2017-01-27 Richard Biener <rguenther@suse.de>
9104 PR tree-optimization/79245
9105 * tree-loop-distribution.c (distribute_loop): Apply cost
9106 modeling also to detected patterns.
9108 2017-01-27 Richard Biener <rguenther@suse.de>
9110 PR tree-optimization/71433
9111 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
9112 (compare_assert_loc): New function.
9113 (process_assert_insertions): Sort and optimize assert locations
9114 to remove duplicates and push down identical assertions on
9115 edges to their destination block.
9117 2017-01-27 Richard Biener <rguenther@suse.de>
9119 PR tree-optimization/79244
9120 * tree-vrp.c (remove_range_assertions): Forcefully propagate
9121 out SSA names even if abnormal.
9123 2017-01-27 Jakub Jelinek <jakub@redhat.com>
9125 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
9126 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
9127 instead of MPFR_RNDN.
9129 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
9132 * arm.c (arm_option_override): Don't call build_target_option_node
9133 until after doing all option overrides.
9134 (arm_valid_target_attribute_tree): Likewise.
9136 2017-01-27 Martin Liska <mliska@suse.cz>
9138 * doc/invoke.texi (-fprofile-arcs): Document profiling support
9139 for {cd}tors and C++ {cd}tors.
9141 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
9143 * config/s390/s390.md ("*setmem_long_and")
9144 ("*setmem_long_and_31z"): Use zero_extend instead of and.
9146 2017-01-26 Martin Sebor <msebor@redhat.com>
9148 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
9151 2017-01-26 Martin Sebor <msebor@redhat.com>
9153 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
9154 HAVE_DFmode before using XFmode or DFmode.
9155 (parse_directive): Avoid using the z length modifier to avoid
9156 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
9159 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
9160 to accept adjustment as an array.
9161 (get_int_range): New function.
9162 (struct directive): Make width and prec arrays.
9163 (directive::set_width, directive::set_precision): Call get_int_range.
9164 (format_integer, format_floating): Handle width and precision ranges.
9165 (format_string, parse_directive): Same.
9167 2017-01-26 Jakub Jelinek <jakub@redhat.com>
9170 * dwarf2out.c (generate_skeleton_bottom_up): For children with
9171 comdat_type_p set, just clone them, but keep the children in the
9175 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
9176 which have direct callers with -fvar-tracking-assignments enabled
9178 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
9179 inside of type units.
9181 2017-01-26 Martin Sebor <msebor@redhat.com>
9184 * gimple-ssa-sprintf.c (struct result_range): Add likely and
9186 (struct format_result): Replace number_chars, number_chars_min,
9187 and number_chars_max with a single member of struct result_range.
9189 (format_result::operator+=): Adjust.
9190 (struct fmtresult): Remove bounded. Handle likely and unlikely
9192 (fmtresult::adjust_for_width_or_precision): New function.
9193 (fmtresult:type_max_digits): New function.
9194 (bytes_remaining): Handle likely and unlikely counters.
9195 (min_bytes_remaining): Remove.
9196 (format_percent): Simplify.
9197 (format_integer, format_floating): Set likely and unlikely counters.
9198 (get_string_length, format_character, format_string): Same.
9199 (format_plain, should_warn_p): New function.
9200 (maybe_warn): Call should_warn_p. Update diagnostic messages
9201 and handle those for all directives, including plain strings.
9202 (format_directive): Handle likely and unlikely counters.
9203 Remove unnecessary quoting from diagnostics. Add an informational
9205 (add_bytes): Remove.
9206 (pass_sprintf_length::compute_format_length): Simplify.
9207 (try_substitute_return_value): Handle likely and unlikely counters.
9209 2017-01-26 Carl Love <cel@us.ibm.com>
9211 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
9212 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
9214 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
9217 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
9218 endianess for subregs into account.
9219 * lra-constraints.c (lra_constraints): Do risky transformations
9220 always on the first iteration.
9221 * lra-lives.c (check_pseudos_live_through_calls): Add arg
9222 last_call_used_reg_set.
9223 (process_bb_lives): Define and use last_call_used_reg_set.
9224 * lra.c (lra): Always continue after lra_constraints on the first
9227 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
9229 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
9231 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
9233 2017-01-26 Jakub Jelinek <jakub@redhat.com>
9235 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
9236 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
9237 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
9238 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
9239 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
9240 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
9241 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
9242 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
9243 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
9245 2017-01-26 Marek Polacek <polacek@redhat.com>
9248 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
9249 for the third operand.
9251 2017-01-26 Jakub Jelinek <jakub@redhat.com>
9254 * omp-low.c (struct omp_context): Add simt_stmt field.
9255 (scan_omp_for): Return omp_context *.
9256 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
9257 context to the _simt_ SIMD stmt.
9258 (lower_omp_for): For combined SIMD with sibling _simt_
9259 SIMD, make sure to use the same decls in _looptemp_
9260 clauses as in the sibling.
9262 2017-01-26 David Sherwood <david.sherwood@arm.com>
9265 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
9268 2017-01-26 Jakub Jelinek <jakub@redhat.com>
9271 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
9272 emit fld b; fld a; if possible.
9274 * brig-builtins.def: Update copyright years.
9275 * config/arm/arm_acle_builtins.def: Update copyright years.
9277 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
9280 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
9281 constraint instead of o for the stxsd instruction.
9283 2017-01-25 Carl Love <cel@us.ibm.com>
9285 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
9286 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
9288 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
9290 * doc/invoke.texi (C++ Dialect Options): Fix typo.
9292 2017-01-25 Richard Biener <rguenther@suse.de>
9294 PR tree-optimization/69264
9295 * target.def (vector_alignment_reachable): Improve documentation.
9296 * doc/tm.texi: Regenerate.
9297 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
9299 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
9300 earlier changes with respect to TYPE_USER_ALIGN.
9301 (vector_alignment_reachable_p): Likewise. Improve dumping.
9303 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9306 * config/arm/arm.md (xordi3): Force constant operand into a register
9309 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9311 * doc/invoke.texi (-fstore-merging): Correct default optimization
9312 levels at which it is enabled.
9313 (-O): Move -fstore-merging from list to...
9316 2017-01-25 Richard Biener <rguenther@suse.de>
9319 * omp-expand.c: Include debug.h.
9320 (expand_omp_taskreg): Make sure to generate early debug before
9321 outlining anything from a function.
9322 (expand_omp_target): Likewise.
9323 (grid_expand_target_grid_body): Likewise.
9325 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
9328 * asan.c (get_translation_unit_decl): New function.
9329 (asan_add_global): Extract modules file name from globals
9330 TRANSLATION_UNIT_DECL name.
9332 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
9335 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
9336 for long calls with APCS frame and VFP.
9338 2017-01-24 David Malcolm <dmalcolm@redhat.com>
9340 * cfg.c (original_copy_tables_initialized_p): New function.
9341 * cfg.h (original_copy_tables_initialized_p): New decl.
9342 * cfgrtl.c (relink_block_chain): Guard the call to
9343 free_original_copy_tables with a call to
9344 original_copy_tables_initialized_p.
9345 * cgraph.h (symtab_node::native_rtl_p): New decl.
9346 * cgraphunit.c (symtab_node::native_rtl_p): New function.
9347 (symtab_node::needed_p): Don't assert for early assembly output
9348 for __RTL functions.
9349 (cgraph_node::finalize_function): Set "force_output" for __RTL
9351 (cgraph_node::analyze): Bail out early for __RTL functions.
9352 (analyze_functions): Update assertion to support __RTL functions.
9353 (cgraph_node::expand): Bail out early for __RTL functions.
9354 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
9356 * function.h (struct function): Update comment for field
9358 * gimple-expr.c: Include "tree-pass.h".
9359 (gimple_has_body_p): Return false for __RTL functions.
9360 * Makefile.in (OBJS): Add run-rtl-passes.o.
9361 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
9363 (gcc::pass_manager::get_clean_slate): New accessor.
9364 * passes.c: Include "insn-addr.h".
9365 (should_skip_pass_p): Add logging. Update logic for running
9366 "expand" to be compatible with both __GIMPLE and __RTL. Guard
9367 property-provider override so it is only done for gimple passes.
9369 (skip_pass): New function.
9370 (execute_one_pass): Call skip_pass when skipping passes.
9371 * read-md.c (md_reader::read_char): Support filtering
9372 the input to a subset of line numbers.
9373 (md_reader::md_reader): Initialize fields
9374 m_first_line and m_last_line.
9375 (md_reader::read_file_fragment): New function.
9376 * read-md.h (md_reader::read_file_fragment): New decl.
9377 (md_reader::m_first_line): New field.
9378 (md_reader::m_last_line): New field.
9379 * read-rtl-function.c (function_reader::create_function): Only
9380 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
9381 curr_properties. Set DECL_INITIAL to a dummy block.
9382 (read_rtl_function_body_from_file_range): New function.
9383 * read-rtl-function.h (read_rtl_function_body_from_file_range):
9385 * run-rtl-passes.c: New file.
9386 * run-rtl-passes.h: New file.
9388 2017-01-24 Jeff Law <law@redhat.com>
9390 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
9393 2017-01-24 Bin Cheng <bin.cheng@arm.com>
9395 PR tree-optimization/79159
9396 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
9397 (record_nonwrapping_iv): Improve boundary using above function if no
9398 value range information.
9400 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
9401 Martin Jambor <mjambor@suse.cz>
9403 * brig-builtins.def: New file.
9404 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
9405 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
9406 (DEF_HSAIL_SAT_BUILTIN): Likewise.
9407 (DEF_HSAIL_INTR_BUILTIN): Likewise.
9408 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
9409 * builtin-types.def (BT_INT8): New.
9410 (BT_INT16): Likewise.
9411 (BT_UINT8): Likewise.
9412 (BT_UINT16): Likewise.
9413 (BT_FN_ULONG): Likewise.
9414 (BT_FN_UINT_INT): Likewise.
9415 (BT_FN_UINT_ULONG): Likewise.
9416 (BT_FN_UINT_LONG): Likewise.
9417 (BT_FN_UINT_PTR): Likewise.
9418 (BT_FN_ULONG_PTR): Likewise.
9419 (BT_FN_INT8_FLOAT): Likewise.
9420 (BT_FN_INT16_FLOAT): Likewise.
9421 (BT_FN_UINT32_FLOAT): Likewise.
9422 (BT_FN_UINT16_FLOAT): Likewise.
9423 (BT_FN_UINT8_FLOAT): Likewise.
9424 (BT_FN_UINT64_FLOAT): Likewise.
9425 (BT_FN_UINT16_UINT32): Likewise.
9426 (BT_FN_UINT32_UINT16): Likewise.
9427 (BT_FN_UINT16_UINT16_UINT16): Likewise.
9428 (BT_FN_INT_PTR_INT): Likewise.
9429 (BT_FN_UINT_PTR_UINT): Likewise.
9430 (BT_FN_LONG_PTR_LONG): Likewise.
9431 (BT_FN_ULONG_PTR_ULONG): Likewise.
9432 (BT_FN_VOID_UINT64_UINT64): Likewise.
9433 (BT_FN_UINT8_UINT8_UINT8): Likewise.
9434 (BT_FN_INT8_INT8_INT8): Likewise.
9435 (BT_FN_INT16_INT16_INT16): Likewise.
9436 (BT_FN_INT_INT_INT): Likewise.
9437 (BT_FN_UINT_FLOAT_UINT): Likewise.
9438 (BT_FN_FLOAT_UINT_UINT): Likewise.
9439 (BT_FN_ULONG_UINT_UINT): Likewise.
9440 (BT_FN_ULONG_UINT_PTR): Likewise.
9441 (BT_FN_ULONG_ULONG_ULONG): Likewise.
9442 (BT_FN_UINT_UINT_UINT): Likewise.
9443 (BT_FN_VOID_UINT_PTR): Likewise.
9444 (BT_FN_UINT_UINT_PTR: Likewise.
9445 (BT_FN_UINT32_UINT64_PTR): Likewise.
9446 (BT_FN_INT_INT_UINT_UINT): Likewise.
9447 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
9448 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
9449 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
9450 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
9451 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
9452 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
9453 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
9454 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
9455 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
9456 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
9457 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
9458 * doc/frontends.texi: List BRIG FE.
9459 * doc/install.texi (Testing): Add BRIG tesring requirements.
9460 * doc/invoke.texi (Overall Options): Mention BRIG.
9461 * doc/standards.texi (Standards): Doucment BRIG HSA version.
9463 2017-01-24 Richard Biener <rguenther@suse.de>
9465 PR translation/79208
9466 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
9468 2017-01-24 Martin Jambor <mjambor@suse.cz>
9471 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
9472 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
9475 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
9478 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
9479 casts from signed to unsigned really don't have a range.
9481 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
9483 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
9484 GMP_RNDx for compatiblity.
9486 2017-01-24 Martin Liska <mliska@suse.cz>
9489 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
9490 that would prevent us to call alloca with -1 as argument.
9492 2017-01-24 Jakub Jelinek <jakub@redhat.com>
9494 * dwarf2out.c (output_compilation_unit_header, output_file_names):
9495 Avoid -Wformat-security warning.
9497 2017-01-23 Andrew Pinski <apinski@cavium.com>
9499 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
9502 2017-01-23 Martin Sebor <msebor@redhat.com>
9505 * gimple-ssa-sprintf.c (warn_level): New global.
9506 (format_integer): Use it here and throughout the rest of the file.
9507 Use the same switch to compute sign as base.
9508 (maybe_warn): New function.
9509 (format_directive): Factor out warnings into maybe_warn.
9510 Add debugging output. Use warn_level.
9511 (add_bytes): Use warn_level.
9512 (pass_sprintf_length::compute_format_length): Add debugging output.
9513 (try_substitute_return_value): Same.
9514 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
9517 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
9518 (struct fmtresult, format_integer, format_floating): Adjust.
9519 (fmtresult::fmtresult): Set max correctly in two argument ctor.
9520 (get_string_length, format_string,format_directive): Same.
9521 (pass_sprintf_length::compute_format_length): Same.
9522 (try_substitute_return_value): Simplify slightly.
9525 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
9526 (fmtresult::operator+=): Outlined.
9527 (struct fmtresult): Add ctors.
9528 (struct conversion_spec): Rename...
9529 (struct directive): ...to this. Add and remove data members.
9530 (directive::set_width, directive::set_precision): New functions.
9531 (format_percent): Use fmtresult ctor.
9532 (get_width_and_precision): Remove.
9533 (format_integer): Make naming changes. Avoid computing width and
9535 (format_floating): Same. Adjust indentation.
9536 (format_character, format_none): New functions.
9537 (format_string): Moved character handling to format_character.
9538 (format_directive): Remove arguments, change return type.
9539 (parse_directive): New function.
9540 (pass_sprintf_length::compute_format_length): Move directive
9541 parsing to parse_directive.
9543 2017-01-23 Jakub Jelinek <jakub@redhat.com>
9545 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
9546 (assign_assembler_name_if_needed): ... this.
9547 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
9548 (assign_assembler_name_if_needed): ... this.
9549 (free_lang_data_in_cgraph): Adjust callers.
9550 * cgraphunit.c (cgraph_node::analyze): Likewise.
9551 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
9554 2017-01-23 Richard Biener <rguenther@suse.de>
9556 PR tree-optimization/79088
9557 PR tree-optimization/79188
9558 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
9559 resetting loop bounds after last path deletion. Reset loop
9560 bounds of the target loop, make code match the comments.
9561 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
9562 Make sure loops need no fixups.
9564 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
9566 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
9567 exponent support with double type for first argument.
9568 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
9569 type returned by __builtin_vec_extract_sig,
9570 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
9571 functions from "vector int" to "vector unsigned int" or from
9572 "vector long long int" to "vector unsigned long long int".
9573 Changed type returned by __builtin_vec_extract_exp,
9574 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
9575 functions from "vector int" to "vector unsigned int" or from
9576 "vector long long int" to "vector unsigned long long int".
9577 Changed return type of __builtin_vec_test_data_class,
9578 __builtin_vec_test_data_class_sp, and
9579 __builtin_vec_test_data_class_dp from "vector int" to
9580 "vector bool int" or from "vector long long int" to "vector bool
9581 long long int" and changed second argument type from "unsigned
9582 int" to "int". Added new overloaded function forms "vector float
9583 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
9584 "vector float __builtin_vec_insert_exp_sp (vector float, vector
9585 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
9586 double, vector unsigned long long int)" and "vector double
9587 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
9588 long int)". Changed return type of
9589 __builtin_scalar_test_data_class and
9590 __builtin_scalar_test_data_class_sp and
9591 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
9592 int" and changed second argument from "unsigned int" to "int".
9593 Changed type returned by __builtin_scalar_test_neg,
9594 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
9595 from "int" to "bool int". Added new overloaded function form
9596 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
9597 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
9598 exponent double-precision with floating point first argument.
9599 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
9600 documentation of scalar_test_data_class, scalar_test_neg,
9601 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
9602 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
9603 vec_test_data_class built-in functions to reflect refinements in
9604 their type signatures.
9606 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
9608 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
9610 (aarch64_elf_asm_destructor): Likewise.
9612 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
9614 PR rtl-optimization/78634
9615 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
9616 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
9617 * ifcvt.c (noce_try_cmove): Add missing cost check.
9619 PR rtl-optimization/71724
9620 * combine.c (if_then_else_cond): Look for situations where it is
9621 beneficial to undo the work of one of the recursive calls.
9623 2017-01-23 Bin Cheng <bin.cheng@arm.com>
9625 PR tree-optimization/70754
9626 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
9627 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
9628 combined stmt before it if not NULL.
9629 (combine_chains): Process refs reversely and compute dominance point
9632 2017-01-23 Martin Liska <mliska@suse.cz>
9634 PR tree-optimization/79196
9635 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
9636 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
9638 (strlen_optimize_stmt): Call the renamed function.
9640 2017-01-23 Michael Matz <matz@suse.de>
9642 PR tree-optimization/78384
9643 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
9645 2017-01-23 Richard Biener <rguenther@suse.de>
9647 PR tree-optimization/79186
9648 * tree-vrp.c (register_new_assert_for): Make sure we've seen
9649 both incoming edges before moving an assert.
9651 2017-01-23 Martin Jambor <mjambor@suse.cz>
9653 * ipa-prop.c (load_from_param_1): Removed.
9654 (load_from_unmodified_param): Bits from load_from_param_1 put back
9656 (load_from_param): Removed.
9657 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
9658 with stmt. Reverted back to use of load_from_unmodified_param.
9660 2017-01-23 Martin Jambor <mjambor@suse.cz>
9663 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
9664 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
9665 field a pointer to garbage collected vector, mark lattices and
9666 ipcp_orig_node with GTY((skip)).
9667 (ipa_get_param_count): Adjust to descriptors being a pointer.
9668 (ipa_get_param): Likewise.
9669 (ipa_get_type): Likewise.
9670 (ipa_get_param_move_cost): Likewise.
9671 (ipa_set_param_used): Likewise.
9672 (ipa_get_controlled_uses): Likewise.
9673 (ipa_set_controlled_uses): Likewise.
9674 (ipa_is_param_used): Likewise.
9675 (ipa_node_params_t): Move into garbage collector. New methods insert
9677 (ipa_node_params_sum): Annotate wth GTY(()).
9678 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
9680 (ipa_load_from_parm_agg): Adjust declaration.
9681 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
9682 * ipa-profile.c (ipa_profile): Likewise.
9683 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
9684 (ipa_populate_param_decls): Make descriptors parameter garbage
9686 (ipa_dump_param): Adjust to descriptors being a pointer.
9687 (ipa_alloc_node_params): Likewise.
9688 (ipa_initialize_node_params): Likewise.
9689 (load_from_param_1): Make descriptors parameter garbage collected.
9690 (load_from_unmodified_param): Likewise.
9691 (load_from_param): Likewise.
9692 (ipa_load_from_parm_agg): Likewise.
9693 (ipa_node_params::~ipa_node_params): Removed.
9694 (ipa_free_all_node_params): Remove call to delete operator.
9695 (ipa_node_params_t::insert): New.
9696 (ipa_node_params_t::remove): Likewise.
9697 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
9698 copy known_csts and known_contexts vectors.
9699 (ipa_read_node_info): Adjust to descriptors being a pointer.
9700 (ipcp_modif_dom_walker): Make m_descriptors field garbage
9702 (ipcp_transform_function): Make descriptors variable garbage
9705 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
9707 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
9708 * config/i386/avx512dqintrin.h: Ditto.
9709 * config/i386/avx512fintrin.h: Ditto.
9710 * gcc/config/i386/i386.c: Handle new builtins.
9711 * config/i386/i386-builtin.def: Add new builtins.
9712 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
9713 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
9715 2017-01-23 Jakub Jelinek <jakub@redhat.com>
9716 Martin Liska <mliska@suse.cz>
9718 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
9719 * asan.c (asan_expand_poison_ifn): Support stores and use
9720 appropriate ASAN report function.
9721 * internal-fn.c (expand_ASAN_POISON_USE): New function.
9722 * internal-fn.def (ASAN_POISON_USE): Declare.
9723 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
9724 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
9725 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
9726 ASAN_POISON calls w/o LHS.
9727 * tree-ssa.c (execute_update_addresses_taken): Create clobber
9728 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
9729 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
9730 * gimplify.c (asan_poison_variables): Add attribute
9731 use_after_scope_memory to variables that really needs to live
9733 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
9734 having the attribute.
9736 2017-01-23 Martin Liska <mliska@suse.cz>
9738 * asan.c (create_asan_shadow_var): New function.
9739 (asan_expand_poison_ifn): Likewise.
9740 * asan.h (asan_expand_poison_ifn): New declaration.
9741 * internal-fn.c (expand_ASAN_POISON): Likewise.
9742 * internal-fn.def (ASAN_POISON): New builtin.
9743 * sanopt.c (pass_sanopt::execute): Expand
9744 asan_expand_poison_ifn.
9745 * tree-inline.c (copy_decl_for_dup_finish): Make function
9747 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
9748 * tree-ssa.c (is_asan_mark_p): New function.
9749 (execute_update_addresses_taken): Rewrite local variables
9750 (identified just by use-after-scope as addressable) into SSA.
9752 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
9754 * doc/install.texi (Specific): opensource.apple.com uses https
9755 now. Remove trailing slash.
9757 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
9759 * README.Portability: Remove note on an Irix compatibility issue.
9761 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
9763 * gcov.c (INCLUDE_ALGORITHM): Define.
9764 (INCLUDE_VECTOR): Define.
9765 No longer include <vector> and <algorithm> directly.
9767 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
9769 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
9771 * doc/invoke.texi (Code Gen Options): Ditto.
9773 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
9776 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
9778 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
9780 rtl-optimization/79125
9781 * cprop.c (local_cprop_pass): Handle cases where we make an
9784 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
9788 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
9789 read from, for big endian.
9791 2017-01-20 Jiong Wang <jiong.wang@arm.com>
9793 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
9794 register pauth builtins for LP64 only.
9796 2017-01-20 Marek Polacek <polacek@redhat.com>
9799 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
9802 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
9804 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
9806 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
9807 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
9808 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
9810 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9813 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
9814 in big-endian mode when they are not a single duplicated value.
9816 2017-01-20 Richard Biener <rguenther@suse.de>
9818 * BASE-VER: Bump to 7.0.1.
9820 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
9822 * omp-low.c (omplow_simd_context): New struct. Use it...
9823 (lower_rec_simd_input_clauses): ...here and...
9824 (lower_rec_input_clauses): ...here to hold common data. Adjust all
9825 references to idx, lane, max_vf, is_simt.
9827 2017-01-20 Graham Markall <graham.markall@embecosm.com>
9829 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
9832 2017-01-20 Martin Jambor <mjambor@suse.cz>
9834 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
9835 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
9837 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
9838 (GTFILES): Rename hsa.c to hsa-common.c.
9839 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
9840 * hsa-dump.c: Likewise.
9841 * hsa-gen.c: Likewise.
9842 * hsa-regalloc.c: Likewise.
9843 * ipa-hsa.c: Likewise.
9844 * omp-expand.c: Likewise.
9845 * omp-low.c: Likewise.
9846 * toplev.c: Likewise.
9848 2017-01-20 Marek Polacek <polacek@redhat.com>
9851 * doc/invoke.texi: Document -Wduplicated-branches.
9852 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
9853 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
9854 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
9855 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
9856 return 0 only when not OEP_LEXICOGRAPHIC.
9857 (fold_build_cleanup_point_expr): Use the expression
9858 location when building CLEANUP_POINT_EXPR.
9859 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
9860 * tree.c (add_expr): Handle error_mark_node.
9862 2017-01-20 Martin Liska <mliska@suse.cz>
9865 * tree-profile.c (init_ic_make_global_vars): Do not call
9867 (gimple_init_gcov_profiler): Likewise.
9869 2017-01-20 Martin Liska <mliska@suse.cz>
9872 * cgraph.h (maybe_create_reference): Remove argument and
9874 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
9876 * ipa-cp.c (create_specialized_node): Likewise.
9877 * symtab.c (symtab_node::maybe_create_reference): Handle
9878 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
9880 2017-01-20 Martin Liska <mliska@suse.cz>
9882 * read-rtl-function.c (function_reader::create_function): Use
9883 build_decl instread of build_decl_stat.
9885 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
9887 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
9888 * config/i386/avx512dqintrin.h: Ditto.
9889 * config/i386/avx512fintrin.h: Ditto.
9890 * config/i386/i386-builtin-types.def: Add new types.
9891 * gcc/config/i386/i386.c: Handle new types.
9892 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
9893 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
9894 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
9895 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
9896 (__builtin_ia32_kshiftridi): New.
9897 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
9899 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
9903 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
9904 define to rs6000_init_stack_protect_guard.
9905 (rs6000_init_stack_protect_guard): New function.
9907 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
9908 Yunqiang Su <yunqiang.su@imgtec.com>
9910 * config.gcc (supported_defaults): Add madd4.
9911 (with_madd4): Add validation.
9912 (all_defaults): Add madd4.
9913 * config/mips/mips.opt (mmadd4): New option.
9914 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
9916 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
9918 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
9919 (ISA_HAS_FUSED_MADD4): Likewise.
9920 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
9921 * gcc/doc/install.texi (--with-madd4): Document the new option.
9923 2017-01-19 Jiong Wang <jiong.wang@arm.com>
9925 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
9926 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
9927 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
9928 (aarch64_init_pauth_hint_builtins): New.
9929 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
9930 (aarch64_expand_builtin): Expand new builtins.
9932 2017-01-19 Jiong Wang <jiong.wang@arm.com>
9934 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
9935 * combine-stack-adj.c (no_unhandled_cfa): Handle
9936 REG_CFA_TOGGLE_RA_MANGLE.
9937 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
9938 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
9939 info for return address signing.
9940 (aarch64_expand_epilogue): Likewise.
9942 2017-01-19 Jiong Wang <jiong.wang@arm.com>
9944 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
9945 * config/aarch64/aarch64-protos.h
9946 (aarch64_return_address_signing_enabled): New declaration.
9947 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
9949 (aarch64_expand_prologue): Sign return address before it's pushed onto
9951 (aarch64_expand_epilogue): Authenticate return address fetched from
9953 (aarch64_override_options): Sanity check for ILP32 and ISA level.
9954 (aarch64_attributes): New function attributes for "sign-return-address".
9955 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
9956 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
9957 ("*do_return"): Generate combined instructions according to key index.
9958 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
9959 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
9961 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
9962 * config/aarch64/aarch64.opt (msign-return-address=): New.
9963 * doc/extend.texi (AArch64 Function Attributes): Documents
9964 "sign-return-address=".
9965 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
9967 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
9969 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
9970 overall option summary.
9972 2017-01-19 Jiong Wang <jiong.wang@arm.com>
9974 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
9975 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
9976 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
9977 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
9979 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
9981 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
9982 -mpower9-minmax by default for -mcpu=power9.
9983 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
9984 128-bit floating point.
9986 2017-01-20 Alan Modra <amodra@gmail.com>
9988 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
9989 optimizing for size.
9991 2017-01-20 Alan Modra <amodra@gmail.com>
9994 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
9995 for strcmp and strncmp from corresponding builtin decl.
9997 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
9999 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
10000 instead of i386/rtems-64.h.
10001 * config/i386/rtems-64.h: Remove.
10003 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
10007 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
10009 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
10011 2017-01-19 Tamar Christina <tamar.christina@arm.com>
10013 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
10014 Change int to HOST_WIDE_INT.
10015 * config/aarch64/aarch64-protos.h
10016 (aarch64_simd_gen_const_vector_dup): Likewise.
10017 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
10019 2017-01-19 David Malcolm <dmalcolm@redhat.com>
10021 * langhooks-def.h (lhd_type_for_size): New decl.
10022 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
10023 * langhooks.c (lhd_type_for_size): New function, taken from
10026 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
10028 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
10029 define_bypass for CR latency.
10030 (power9-cracked-alu): Update bypass latency and remove power9-branch.
10031 (power9-alu2): Add define_bypass for CR latency.
10033 (power9-mul): Update insn latency.
10034 (power9-mul-compare): Update insn latency, bypass latency and remove
10037 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10039 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
10041 * config/aarch64/aarch64.md
10042 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
10043 aarch64_nopcrelative_literal_loads.
10044 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
10046 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
10048 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
10049 TARGET_LOONGSON_3A.
10050 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
10052 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
10055 * config.gcc (supported_defaults): Add lxc1-sxc1.
10056 (with_lxc1_sxc1): Add validation.
10057 (all_defaults): Add lxc1-sxc1.
10058 * config/mips/mips.opt (mlxc1-sxc1): New option.
10059 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
10061 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
10062 __mips_no_lxc1_sxc1.
10063 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
10064 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
10065 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
10067 2017-01-19 Richard Biener <rguenther@suse.de>
10069 PR tree-optimization/72488
10070 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
10071 sure to restore SSA info.
10072 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
10074 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
10076 PR rtl-optimization/79121
10077 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
10078 of the inner type when shifting an extended value.
10080 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
10083 * symtab.c (symtab_node::equal_address_to): Fix comparing of
10084 interposable aliases.
10086 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
10089 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
10090 Use the evmergelohi instruction.
10091 (mov_si<mode>_e500_subreg4_2_le): Likewise.
10092 (mov_sitf_e500_subreg8_2_be): Likewise.
10093 (mov_sitf_e500_subreg12_2_le): Likewise.
10094 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
10095 (mov_si<mode>_e500_subreg4_2_be): Likewise.
10096 (mov_sitf_e500_subreg8_2_le): Likewise.
10097 (mov_sitf_e500_subreg12_2_be): Likewise.
10099 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10101 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
10102 attribute from vecsimple to vecperm.
10103 (altivec_vbpermq2): Likewise.
10105 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10108 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
10110 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
10111 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
10112 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
10113 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
10114 case where N arg is SIZE_MAX.
10115 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
10116 (cmpstrsi): Add pattern.
10118 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
10120 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
10121 __builtin_vec_revb builtins.
10122 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
10123 built-in functions to support generation of the ISA 3.0 XXBR<x>
10124 vector byte reverse instructions.
10125 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
10126 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
10127 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
10128 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
10129 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
10130 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
10131 (P9V_BUILTIN_VEC_REVB): Likewise.
10132 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
10133 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
10134 (p9_xxbrq_v16qi): Likewise.
10135 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
10136 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
10137 (p9_xxbrh_v8hi): Likewise.
10138 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
10139 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
10140 vec_revb built-in functions.
10142 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
10144 PR rtl-optimization/78952
10145 * config/i386/i386.md (any_extract): New code iterator.
10146 (*insvqi_2): Use any_extract for source operand.
10147 (*insvqi_3): Use any_shiftrt for source operand.
10149 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
10151 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
10153 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
10155 2017-01-18 Matthias Klose <doko@ubuntu.com>
10157 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
10159 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10161 * config/rs6000/altivec.h (vec_bperm): Change #define.
10162 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
10163 (altivec_vbpermq2): New define_insn.
10164 (altivec_vbpermd): Likewise.
10165 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
10166 function interface.
10167 (VBPERMD): Likewise.
10168 (VBPERM): New polymorphic function interface.
10169 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
10170 Add entries for P9V_BUILTIN_VEC_VBPERM.
10171 * doc/extend.texi: Add interfaces for vec_bperm.
10173 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
10175 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
10176 first letter of error messages.
10177 (s390_resolve_overloaded_builtin): Likewise.
10178 * config/s390/s390.c (s390_expand_builtin): Likewise.
10179 (s390_invalid_arg_for_unprototyped_fn): Likewise.
10180 (s390_valid_target_attribute_inner_p): Likewise.
10181 * config/s390/s390.md ("tabort"): Likewise.
10183 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
10185 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
10186 (ISA_AVOID_DIV_HILO): New macro.
10187 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
10188 (ISA_HAS_DDIV): Likewise.
10190 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
10192 * doc/invoke.texi (fabi-version): Correct number of occurrences.
10194 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
10196 * doc/invoke.texi (fabi-version): Spelling fix.
10198 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
10201 * doc/invoke.texi (fabi-version): Mention mangling fix for
10204 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
10207 * doc/invoke.texi (fabi-version): Document discriminator mangling.
10209 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
10212 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
10213 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
10215 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
10217 (stack_protect_test): Ditto.
10218 * config/rs6000/rs6000.opt (mstack-protector-guard=,
10219 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
10221 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
10222 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
10223 -mstack-protector-guard-offset=.
10224 (RS/6000 and PowerPC Options): Ditto.
10226 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
10228 * config/i386/i386.h (MASK_CLASS_P): New define.
10229 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
10230 there are no registers from different register sets also when
10231 mask registers are used. Update function comment.
10232 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
10233 to (*k/*r) and (*k/*km) alternatives.
10235 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
10237 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
10238 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
10239 (EH_RETURN_HANDLER_RTX): New define.
10240 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
10241 Force frame pointer in EH return functions.
10242 (aarch64_expand_epilogue): Add barrier for eh_return.
10243 (aarch64_final_eh_return_addr): Remove.
10244 (aarch64_eh_return_handler_rtx): New function.
10245 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
10247 (aarch64_eh_return_handler_rtx): New prototype.
10249 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10251 * config/rs6000/altivec.h (vec_rlmi): New #define.
10252 (vec_vrlnm): Likewise.
10253 (vec_rlnm): Likewise.
10254 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
10255 (UNSPEC_VRLNM): Likewise.
10256 (VIlong): New mode iterator.
10257 (altivec_vrl<VI_char>mi): New define_insn.
10258 (altivec_vrl<VI_char>nm): Likewise.
10259 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
10261 (VRLDNM): Likewise.
10262 (RLNM): New polymorphic function entry.
10263 (VRLWMI): New monomorphic function entry.
10264 (VRLDMI): Likewise.
10265 (RLMI): New polymorphic function entry.
10266 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
10267 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
10268 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
10271 2017-01-17 Jakub Jelinek <jakub@redhat.com>
10274 * dwarf2out.c (field_byte_offset): Restore the
10275 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
10276 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
10277 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
10280 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
10283 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
10285 2017-01-17 Jakub Jelinek <jakub@redhat.com>
10288 * dwarf2out.c (add_data_member_location_attribute): For constant
10289 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
10290 instead of DW_AT_data_member_location, DW_AT_bit_offset and
10291 DW_AT_byte_size attributes.
10293 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
10295 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
10296 after forcing to constant memory when the code model is medium.
10298 2017-01-17 Julia Koval <julia.koval@intel.com>
10301 * config/i386/avx512fintrin.h
10302 (_mm512_i32gather_ps): Change __addr type to void const*.
10303 (_mm512_mask_i32gather_ps): Ditto.
10304 (_mm512_i32gather_pd): Ditto.
10305 (_mm512_mask_i32gather_pd): Ditto.
10306 (_mm512_i64gather_ps): Ditto.
10307 (_mm512_mask_i64gather_ps): Ditto.
10308 (_mm512_i64gather_pd): Ditto.
10309 (_mm512_mask_i64gather_pd): Ditto.
10310 (_mm512_i32gather_epi32): Ditto.
10311 (_mm512_mask_i32gather_epi32): Ditto.
10312 (_mm512_i32gather_epi64): Ditto.
10313 (_mm512_mask_i32gather_epi64): Ditto.
10314 (_mm512_i64gather_epi32): Ditto.
10315 (_mm512_mask_i64gather_epi32): Ditto.
10316 (_mm512_i64gather_epi64): Ditto.
10317 (_mm512_mask_i64gather_epi64): Ditto.
10318 (_mm512_i32scatter_ps): Change __addr type to void*.
10319 (_mm512_mask_i32scatter_ps): Ditto.
10320 (_mm512_i32scatter_pd): Ditto.
10321 (_mm512_mask_i32scatter_pd): Ditto.
10322 (_mm512_i64scatter_ps): Ditto.
10323 (_mm512_mask_i64scatter_ps): Ditto.
10324 (_mm512_i64scatter_pd): Ditto.
10325 (_mm512_mask_i64scatter_pd): Ditto.
10326 (_mm512_i32scatter_epi32): Ditto.
10327 (_mm512_mask_i32scatter_epi32): Ditto.
10328 (_mm512_i32scatter_epi64): Ditto.
10329 (_mm512_mask_i32scatter_epi64): Ditto.
10330 (_mm512_i64scatter_epi32): Ditto.
10331 (_mm512_mask_i64scatter_epi32): Ditto.
10332 (_mm512_i64scatter_epi64): Ditto.
10333 (_mm512_mask_i64scatter_epi64): Ditto.
10334 * config/i386/avx512pfintrin.h
10335 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
10336 (_mm512_mask_prefetch_i32gather_ps): Ditto.
10337 (_mm512_mask_prefetch_i64gather_pd): Ditto.
10338 (_mm512_mask_prefetch_i64gather_ps): Ditto.
10339 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
10340 (_mm512_prefetch_i32scatter_ps): Ditto.
10341 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
10342 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
10343 (_mm512_prefetch_i64scatter_pd): Ditto.
10344 (_mm512_prefetch_i64scatter_ps): Ditto.
10345 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
10346 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
10347 * config/i386/avx512vlintrin.h
10348 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
10349 (_mm_mmask_i32gather_ps): Ditto.
10350 (_mm256_mmask_i32gather_pd): Ditto.
10351 (_mm_mmask_i32gather_pd): Ditto.
10352 (_mm256_mmask_i64gather_ps): Ditto.
10353 (_mm_mmask_i64gather_ps): Ditto.
10354 (_mm256_mmask_i64gather_pd): Ditto.
10355 (_mm_mmask_i64gather_pd): Ditto.
10356 (_mm256_mmask_i32gather_epi32): Ditto.
10357 (_mm_mmask_i32gather_epi32): Ditto.
10358 (_mm256_mmask_i32gather_epi64): Ditto.
10359 (_mm_mmask_i32gather_epi64): Ditto.
10360 (_mm256_mmask_i64gather_epi32): Ditto.
10361 (_mm_mmask_i64gather_epi32): Ditto.
10362 (_mm256_mmask_i64gather_epi64): Ditto.
10363 (_mm_mmask_i64gather_epi64): Ditto.
10364 (_mm256_i32scatter_ps): Change __addr type to void*.
10365 (_mm256_mask_i32scatter_ps): Ditto.
10366 (_mm_i32scatter_ps): Ditto.
10367 (_mm_mask_i32scatter_ps): Ditto.
10368 (_mm256_i32scatter_pd): Ditto.
10369 (_mm256_mask_i32scatter_pd): Ditto.
10370 (_mm_i32scatter_pd): Ditto.
10371 (_mm_mask_i32scatter_pd): Ditto.
10372 (_mm256_i64scatter_ps): Ditto.
10373 (_mm256_mask_i64scatter_ps): Ditto.
10374 (_mm_i64scatter_ps): Ditto.
10375 (_mm_mask_i64scatter_ps): Ditto.
10376 (_mm256_i64scatter_pd): Ditto.
10377 (_mm256_mask_i64scatter_pd): Ditto.
10378 (_mm_i64scatter_pd): Ditto.
10379 (_mm_mask_i64scatter_pd): Ditto.
10380 (_mm256_i32scatter_epi32): Ditto.
10381 (_mm256_mask_i32scatter_epi32): Ditto.
10382 (_mm_i32scatter_epi32): Ditto.
10383 (_mm_mask_i32scatter_epi32): Ditto.
10384 (_mm256_i32scatter_epi64): Ditto.
10385 (_mm256_mask_i32scatter_epi64): Ditto.
10386 (_mm_i32scatter_epi64): Ditto.
10387 (_mm_mask_i32scatter_epi64): Ditto.
10388 (_mm256_i64scatter_epi32): Ditto.
10389 (_mm256_mask_i64scatter_epi32): Ditto.
10390 (_mm_i64scatter_epi32): Ditto.
10391 (_mm_mask_i64scatter_epi32): Ditto.
10392 (_mm256_i64scatter_epi64): Ditto.
10393 (_mm256_mask_i64scatter_epi64): Ditto.
10394 (_mm_i64scatter_epi64): Ditto.
10395 (_mm_mask_i64scatter_epi64): Ditto.
10396 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
10397 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
10398 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
10399 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
10400 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
10401 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
10402 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
10403 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
10404 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
10405 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
10406 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
10407 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
10408 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
10409 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
10410 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
10411 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
10412 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
10413 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
10414 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
10415 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
10416 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
10417 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
10418 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
10419 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
10420 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
10421 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
10422 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
10423 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
10424 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
10425 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
10426 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
10427 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
10428 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
10429 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
10430 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
10431 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
10432 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
10433 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
10434 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
10435 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
10436 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
10437 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
10438 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
10439 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
10440 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
10441 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
10442 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
10443 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
10444 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
10445 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
10446 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
10447 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
10448 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
10449 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
10450 definitions accordingly.
10452 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
10453 Kuan-Lin Chen <kuanlinchentw@gmail.com>
10456 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
10459 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
10462 * ira-conflicts.c (ira_build_conflicts): Update total conflict
10463 hard regs for inner regno.
10465 2017-01-17 Martin Liska <mliska@suse.cz>
10468 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
10469 assumption and add comment.
10471 2017-01-17 Nathan Sidwell <nathan@acm.org>
10473 * ipa-visibility.c (localize_node): New function, broken out of ...
10474 (function_and_variable_visibility): ... here. Call it.
10476 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
10478 PR middle-end/77445
10479 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
10480 correctly set frequency of oudgoing edge.
10481 (duplicate_thread_path): Fix profile updating.
10483 2017-01-17 Jakub Jelinek <jakub@redhat.com>
10486 * configure.ac: Add GCC_BASE_VER.
10487 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
10488 version from BASE-VER file.
10489 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
10490 (gcc.o): Depend on $(BASEVER).
10491 * common.opt (dumpfullversion): New option.
10492 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
10493 * doc/invoke.texi: Document -dumpfullversion.
10494 * doc/install.texi: Document --with-gcc-major-version-only.
10495 * configure: Regenerated.
10497 2017-01-17 Richard Biener <rguenther@suse.de>
10499 PR tree-optimization/71433
10500 * tree-vrp.c (register_new_assert_for): Merge same asserts
10501 on all incoming edges.
10502 (process_assert_insertions_for): Handle insertions at the
10505 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
10507 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
10508 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
10510 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
10513 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
10516 2017-01-17 Alan Modra <amodra@gmail.com>
10519 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
10520 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
10521 symbolic stack limit when pic.
10523 2017-01-16 Martin Sebor <msebor@redhat.com>
10525 PR tree-optimization/78608
10526 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
10528 2017-01-16 Jeff Law <law@redhat.com>
10531 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
10532 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
10533 for several include directories that may be relative to sysroot.
10534 * config/i386/x-mingw32 (gplus_includedir): Define.
10535 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
10536 (native_system_includedir): Likewise.
10537 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
10538 override if TARGET_SYSTEM_ROOT is defined.
10539 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
10541 PR tree-optimization/79090
10542 PR tree-optimization/33562
10543 PR tree-optimization/61912
10544 PR tree-optimization/77485
10545 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
10546 and computed trims into the dump file.
10548 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
10550 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
10552 2017-01-16 Jakub Jelinek <jakub@redhat.com>
10555 * gimplify.c (gimplify_init_constructor): If want_value and
10556 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
10560 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
10561 sequence. Formatting fixes.
10562 (doloop_optimize): Formatting fixes.
10565 * gcc.c (debug_level_greater_than_spec_func): New function.
10566 (static_spec_functions): Add debug-level-gt spec function.
10567 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
10569 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
10570 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
10571 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
10572 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
10573 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
10574 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
10576 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
10578 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
10579 QImode fixups to general and mask registers only.
10581 2017-01-16 Carl Love <cel@us.ibm.com>
10583 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
10584 for built-in functions
10585 vector signed char vec_nabs (vector signed char)
10586 vector signed short vec_nabs (vector signed short)
10587 vector signed int vec_nabs (vector signed int)
10588 vector signed long long vec_nabs (vector signed long long)
10589 vector float vec_nabs (vector float)
10590 vector double vec_nabs (vector double)
10591 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
10593 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
10594 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
10595 * doc/extend.texi: Update the documentation file for the new built-in
10598 2017-01-16 Martin Sebor <msebor@redhat.com>
10600 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
10603 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10605 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
10606 UNSPEC_VSX__XXSPLTD to require special splat handling.
10608 2017-01-16 David Malcolm <dmalcolm@redhat.com>
10611 * system.h: Poison strndup.
10613 2017-01-16 Alan Modra <amodra@gmail.com>
10616 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
10619 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
10621 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
10623 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
10625 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
10626 call recog here. Assert that INSN_CODE (insn) is non-negative.
10628 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
10631 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
10633 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
10634 in the currently scheduled RTL fragment.
10636 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
10638 PR rtl-optimization/78751
10639 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
10642 2017-01-14 Jeff Law <law@redhat.com>
10644 PR tree-optimization/79090
10645 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
10646 variable length stores.
10647 (compute_trims): Delete dead assignment to *trim_tail.
10648 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
10651 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
10653 PR rtl-optimization/78626
10654 PR rtl-optimization/78727
10655 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
10656 of a block, and split such blocks after everything else is finished.
10658 2017-01-14 Alan Modra <amodra@gmail.com>
10661 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
10662 target legitimate_combined_insn.
10663 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
10664 (rs6000_legitimate_combined_insn): New function.
10665 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
10667 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
10668 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
10669 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
10671 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
10673 * doc/frontends.texi (G++ and GCC): Remove references to Java.
10675 2017-01-13 Jeff Law <law@redhat.com>
10677 PR tree-optimization/33562
10678 PR tree-optimization/61912
10679 PR tree-optimization/77485
10680 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
10682 (delete_dead_assignment): Likewise.
10683 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
10684 statement to delete_dead_call and delete_dead_assignment.
10686 2017-01-13 David Malcolm <dmalcolm@redhat.com>
10689 * substring-locations.c (format_warning_va): Strengthen case 1 so
10690 that both endpoints of the substring must be within the format
10691 range for just the substring to be printed.
10693 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
10695 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
10696 * config/i386/i386.c (ix86_target_string): Add missing options
10697 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
10698 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
10699 flags_other and ix86_target_other to flags2_other. Display unknown
10701 (ix86_valid_target_attribute_inner_p): Add missing options and
10702 reorder options by implied ISAs, as in ix86_target_string.
10704 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
10706 * hash-table.h (hash_table::too_empty_p): New function.
10707 (hash_table::expand): Use it.
10708 (hash_table::traverse): Likewise.
10709 (hash_table::empty_slot): Use sizeof (value_type) instead of
10710 sizeof (PTR) to convert bytes to elements. Shrink the table
10711 if the current size is excessive for the current number of
10714 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
10716 * ira-costs.c (record_reg_classes): Break from the inner loop
10717 early once alt_fail is known to be true. Update outer loop
10718 handling accordingly.
10720 2017-01-13 Jeff Law <law@redhat.com>
10722 * tree-ssa-dse.c (decrement_count): New function.
10723 (increment_start_addr, maybe_trim_memstar_call): Likewise.
10724 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
10725 when we know the partially dead statement is a mem* function.
10727 PR tree-optimization/61912
10728 PR tree-optimization/77485
10729 * tree-ssa-dse.c: Include expr.h.
10730 (maybe_trim_constructor_store): New function.
10731 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
10733 PR tree-optimization/33562
10734 PR tree-optimization/61912
10735 PR tree-optimization/77485
10736 * doc/invoke.texi: Document new dse-max-object-size param.
10737 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
10738 * tree-ssa-dse.c: Include params.h.
10739 (dse_store_status): New enum.
10740 (initialize_ao_ref_for_dse): New, partially extracted from
10742 (valid_ao_ref_for_dse, normalize_ref): New.
10743 (setup_live_bytes_from_ref, compute_trims): Likewise.
10744 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
10745 (maybe_trim_partially_dead_store): Likewise.
10746 (maybe_trim_complex_store): Likewise.
10747 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
10748 Track what bytes live from the original store. Return tri-state
10749 for dead, partially dead or live.
10750 (dse_dom_walker): Add constructor, destructor and new private members.
10751 (delete_dead_call, delete_dead_assignment): New extracted from
10753 (dse_optimize_stmt): Make a member of dse_dom_walker.
10754 Use initialize_ao_ref_for_dse.
10756 PR tree-optimization/33562
10757 PR tree-optimization/61912
10758 PR tree-optimization/77485
10759 * sbitmap.h (bitmap_count_bits): Prototype.
10760 (bitmap_clear_range, bitmap_set_range): Likewise.
10761 * sbitmap.c (bitmap_clear_range): New function.
10762 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
10764 2017-01-13 Martin Liska <mliska@suse.cz>
10767 * function.c (set_cfun): Add new argument force.
10768 * function.h (set_cfun): Likewise.
10769 * ipa-inline-transform.c (inline_call): Use the function when
10770 strict alising from is dropped for function we inline to.
10772 2017-01-13 Richard Biener <rguenther@suse.de>
10774 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
10775 for dumping GIMPLE INTEGER_CSTs.
10777 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10779 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
10780 to 201112L since C++17.
10782 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
10785 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
10786 if -fsanitize=kernel-address is present.
10788 2017-01-13 Richard Biener <rguenther@suse.de>
10790 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
10791 as _Literal ( type ) number in case usual suffixes do not
10792 preserve all information.
10794 2017-01-13 Richard Biener <rguenther@suse.de>
10796 PR tree-optimization/77283
10797 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
10798 and ssa-iterators.h.
10799 (is_feasible_trace): Implement a cost model based on joiner
10802 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
10805 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
10806 char or short to __float128/_Float128 directly.
10808 2017-01-12 Martin Sebor <msebor@redhat.com>
10810 to -Wformat-overflow.
10811 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
10812 (min_bytes_remaining): Same.
10813 (get_string_length): Same.
10814 (format_string): Same.
10815 (format_directive): Same.
10817 (pass_sprintf_length::handle_gimple_call): Same.
10819 2017-01-12 Jakub Jelinek <jakub@redhat.com>
10821 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
10822 info.nowrite calls with no lhs that can't throw. Return bool
10823 whether gsi_remove has been called or not.
10824 (pass_sprintf_length::handle_gimple_call): Return bool whether
10825 try_substitute_return_value called gsi_remove. Formatting fix.
10826 (pass_sprintf_length::execute): Don't use gsi_remove if
10827 handle_gimple_call returned true.
10830 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
10831 be removed due to side-effects, don't remove following barrier nor
10832 turn the successor edge into fallthru edge.
10834 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
10837 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
10838 element-reversing loads and stores as not swappable.
10840 2017-01-12 Nathan Sidwell <nathan@acm.org>
10841 Nicolai Stange <nicstange@gmail.com>
10843 * combine.c (try_combine): Don't ignore result of overlap checking
10844 loop. Combine overlap & asm check into single loop.
10846 2017-01-12 Richard Biener <rguenther@suse.de>
10848 * tree-pretty-print.c (dump_generic_node): Provide -gimple
10849 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
10851 2017-01-12 Richard Biener <rguenther@suse.de>
10853 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
10854 and TS_TARGET_OPTION directly derive from TS_BASE.
10855 * tree-core.h (tree_optimization_option): Derive from tree_base.
10856 (tree_target_option): Likewise.
10858 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
10860 * config/i386/i386.c (memory_address_length): Increase len
10861 only when rip_relative_addr_p returns false.
10863 2017-01-11 Julia Koval <julia.koval@intel.com>
10865 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
10866 (OPTION_MASK_ISA_SGX_SET): New.
10867 (ix86_handle_option): Handle OPT_msgx.
10868 * config.gcc: Added sgxintrin.h.
10869 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
10870 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
10871 * config/i386/i386.c (ix86_target_string): Add -msgx.
10873 (ix86_option_override_internal): Handle new options.
10874 (ix86_valid_target_attribute_inner_p): Add sgx.
10875 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
10876 * config/i386/i386.opt: Add msgx.
10877 * config/i386/sgxintrin.h: New file.
10878 * config/i386/x86intrin.h: Add sgxintrin.h.
10880 2017-01-11 Jakub Jelinek <jakub@redhat.com>
10883 * fold-const.c (maybe_nonzero_address): Return 1 for function
10885 (tree_single_nonzero_warnv_p): Don't handle function local objects
10889 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
10892 2017-01-11 David Malcolm <dmalcolm@redhat.com>
10895 * opts.c: Include "spellcheck.h"
10896 (struct string_fragment): New struct.
10897 (struct edit_distance_traits<const string_fragment &>): New
10899 (get_closest_sanitizer_option): New function.
10900 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
10902 2017-01-11 Jakub Jelinek <jakub@redhat.com>
10904 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
10906 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
10907 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
10908 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
10909 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
10910 for initial die_offset if dwarf_split_debug_info.
10911 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
10912 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
10914 (output_skeleton_debug_sections): Formatting fix. Use
10915 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
10916 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
10918 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
10920 * config/arm/cortex-a53.md: Add bypasses for
10921 cortex_a53_r2f_cvt.
10922 (cortex_a53_r2f): Only use for transfers.
10923 (cortex_a53_f2r): Likewise.
10924 (cortex_a53_r2f_cvt): Add reservation for conversions.
10925 (cortex_a53_f2r_cvt): Likewise.
10927 2017-01-11 Tamar Christina <tamar.christina@arm.com>
10929 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
10930 to all inlined functions, change static to extern.
10932 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
10935 * config/arm/arm.c (legitimize_pic_address): Handle reference to
10937 (arm_assemble_integer): Likewise.
10939 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
10941 * config.gcc: Use new awk script to check CPU, FPU and architecture
10942 parameters for --with-... options.
10943 * config/arm/parsecpu.awk: New file
10944 * config/arm/arm-cpus.in: New file.
10945 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
10947 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
10949 * config/arm/t-arm: Update dependency rules.
10950 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
10951 of processing .def files.
10952 * config/arm/genopt.sh: Deleted.
10953 * config/arm/gentune.sh: Deleted.
10954 * config/arm/arm-cores.def: Deleted.
10955 * config/arm/arm-arches.def: Deleted.
10956 * config/arm/arm-fpus.def: Deleted.
10957 * config/arm/arm-tune.md: Regenerated.
10958 * config/arm/arm-tables.opt: Regenerated.
10959 * config/arm/arm-cpu.h: New generated file.
10960 * config/arm/arm-cpu-data.h: New generated file.
10961 * config/arm/arm-cpu-cdata.h: New generated file.
10963 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
10966 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
10968 (input_varpool_node): Unpack dynamically_initialized bit.
10970 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
10972 PR rtl-optimization/79032
10973 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
10974 the alignment of the adjusted memory reference against that of MODE,
10975 instead of the alignment of the original memory reference.
10977 2017-01-11 Martin Jambor <mjambor@suse.cz>
10979 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
10981 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
10982 decorated functions.
10984 2017-01-11 Richard Biener <rguenther@suse.de>
10986 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
10987 set range/nonnull info for PHI results. Do not set it on
10988 stmts marked for removal.
10990 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
10992 * expr.c (store_field): In the bitfield case, fetch the return value
10993 from the registers before applying a single big-endian adjustment.
10994 Always do a final load for a BLKmode value not larger than a word.
10996 2017-01-10 David Malcolm <dmalcolm@redhat.com>
10999 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11000 that we correctly handle column numbers greater than
11001 LINE_MAP_MAX_COLUMN_NUMBER.
11003 2017-01-10 Martin Sebor <msebor@redhat.com>
11005 PR middle-end/78245
11006 * gimple-ssa-sprintf.c (get_destination_size): Call
11007 {init,fini}object_sizes.
11008 * tree-object-size.c (addr_object_size): Adjust.
11009 (pass_through_call): Adjust.
11010 (pass_object_sizes::execute): Adjust.
11011 * tree-object-size.h (fini_object_sizes): Declare.
11013 2017-01-10 Martin Sebor <msebor@redhat.com>
11015 PR tree-optimization/78775
11016 * builtins.c (get_size_range): Move...
11017 * calls.c: ...to here.
11018 (alloc_max_size): Accept zero argument.
11019 (operand_signed_p): Remove.
11020 (maybe_warn_alloc_args_overflow): Call get_size_range.
11021 * calls.h (get_size_range): Declare.
11023 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
11025 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
11026 from TI's devices.csv file as of September 2016.
11027 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
11029 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
11031 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
11032 * doc/invoke.texi: Likewise.
11033 * doc/md.texi: Likewise.
11034 * doc/objc.texi: Likewise.
11036 2017-01-10 Joshua Conner <joshconner@google.com>
11038 * config/arm/fuchsia-elf.h: New file.
11039 * config/fuchsia.h: New file.
11040 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
11041 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
11043 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
11045 2016-01-10 Richard Biener <rguenther@suse.de>
11047 PR tree-optimization/79034
11048 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
11049 Propagate out degenerate PHIs in the joiner.
11051 2017-01-10 Martin Liska <mliska@suse.cz>
11053 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
11054 (sort_congruence_classes_by_decl_uid): Likewise.
11055 (sort_congruence_class_groups_by_decl_uid): Likewise.
11056 (sem_item_optimizer::merge_classes): Sort class, groups in these
11057 classes and members in the groups by DECL_UID of declarations.
11058 This would make merge operations stable.
11060 2017-01-10 Martin Liska <mliska@suse.cz>
11062 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
11063 usage of m_classes_vec.
11064 (sem_item_optimizer::~sem_item_optimizer): Likewise.
11065 (sem_item_optimizer::get_group_by_hash): Likewise.
11066 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
11067 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
11068 (sem_item_optimizer::verify_classes): Likewise.
11069 (sem_item_optimizer::process_cong_reduction): Likewise.
11070 (sem_item_optimizer::dump_cong_classes): Likewise.
11071 (sem_item_optimizer::merge_classes): Likewise.
11072 * ipa-icf.h (congruence_class_hash): Rename from
11073 congruence_class_group_hash. Remove declaration of m_classes_vec.
11075 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
11077 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
11078 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
11079 * config.gcc: Add avx512vpopcntdqintrin.h.
11080 * config/i386/avx512vpopcntdqintrin.h: New.
11081 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
11082 * config/i386/i386-builtin-types.def: Add new types.
11083 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
11084 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
11085 __builtin_ia32_vpopcountq_v8di_mask): New.
11086 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11087 __AVX512VPOPCNTDQ__.
11088 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
11089 (PTA_AVX512VPOPCNTDQ): Define.
11090 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
11091 TARGET_AVX512VPOPCNTDQ_P): Define.
11092 * config/i386/i386.opt: Add mavx512vpopcntdq.
11093 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
11094 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
11096 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
11098 PR middle-end/77484
11099 * predict.def (PRED_CALL): Set to 67.
11101 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
11103 * expr.c (store_field): In the bitfield case, if the value comes from
11104 a function call and is of an aggregate type returned in registers, do
11105 not modify the field mode; extract the value in all cases if the mode
11106 is BLKmode and the size is not larger than a word.
11108 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
11111 * config/i386/cpuid.h: Fix undefined behavior.
11113 2017-01-04 Jeff Law <law@redhat.com>
11115 PR tree-optimization/79007
11116 PR tree-optimization/67955
11117 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
11118 conservative for pt.null when flag_non_call_exceptions is on.
11120 2017-01-09 Jakub Jelinek <jakub@redhat.com>
11122 PR translation/79019
11123 PR translation/79020
11124 * params.def (PARAM_INLINE_MIN_SPEEDUP,
11125 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
11126 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
11128 * config/avr/avr.opt (maccumulate-args): Likewise.
11129 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
11130 * common.opt (freport-bug): Likewise.
11131 * cif-code.def (CIF_FINAL_ERROR): Likewise.
11132 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
11133 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
11134 translatable string.
11135 * config/i386/i386.c (function_value_32): Likewise.
11136 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
11137 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
11139 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
11140 * common/config/msp430/msp430-common.c (msp430_handle_option):
11142 * symtab.c (symtab_node::verify_base): Likewise.
11143 * opts.c (set_debug_level): Likewise.
11144 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
11145 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
11146 missing whitespace to translatable strings.
11147 * config/avr/avr.md (bswapsi2): Fix typo in comment.
11148 * config/sh/superh.h: Likewise.
11149 * config/i386/xopintrin.h: Likewise.
11150 * config/i386/znver1.md: Likewise.
11151 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
11152 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
11153 * double-int.h (struct double_int): Likewise.
11154 * double-int.c (div_and_round_double): Likewise.
11155 * wide-int.cc: Likewise.
11156 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
11157 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
11158 * cfgcleanup.c (crossjumps_occured): Renamed to ...
11159 (crossjumps_occurred): ... this.
11160 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
11163 PR tree-optimization/78899
11164 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
11165 returning bool return struct loop *, NULL for failure and the new
11167 (versionable_outer_loop_p): Don't version outer loop if it has
11168 dont_vectorized bit set.
11169 (tree_if_conversion): When versioning outer loop, ensure
11170 tree_if_conversion is performed also on the inner loop of the
11171 non-vectorizable outer loop copy.
11172 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
11173 LOOP_VECTORIZED in inner loop of the scalar outer loop and
11174 prevent vectorization of it.
11175 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
11176 the outer loop vectorization of the non-scalar version is attempted
11177 before vectorization of the inner loop in scalar version. If
11178 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
11179 vectorization of its inner loop.
11180 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
11181 has 2 inner loops, rename also on edges from bb whose single pred
11182 is outer_loop->header. Fix typo in function comment.
11184 2017-01-09 Martin Sebor <msebor@redhat.com>
11187 * asan.c (asan_emit_stack_protection): Increase local buffer size
11188 to avoid snprintf truncation warning.
11190 2017-01-09 Andrew Pinski <apinski@cavium.com>
11192 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
11193 to reference thunderx2t99 for the tuning structure
11194 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
11196 (thunderx2t99_extra_costs): This.
11197 * config/aarch64/aarch64-tune.md: Regenerate.
11198 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
11199 (vulcan_addrcost_table): This.
11200 (vulcan_regmove_cost): Rename to ...
11201 (thunderx2t99_regmove_cost): This.
11202 (vulcan_vector_cost): Rename to ...
11203 (thunderx2t99_vector_cost): this.
11204 (vulcan_branch_cost): Rename to ...
11205 (thunderx2t99_branch_cost): This.
11206 (vulcan_tunings): Rename to ...
11207 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
11208 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
11210 2017-01-09 Martin Jambor <mjambor@suse.cz>
11214 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
11215 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
11216 (propagate_vr_accross_jump_function): Use the above function for all
11217 value range computations for pass-through jump functions and type
11218 converasion from explicit value range values.
11219 (ipcp_propagate_stage): Do not attempt to deduce types of formal
11220 parameters from TYPE_ARG_TYPES.
11221 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
11222 (ipa_write_node_info): Stream type of the actual argument.
11223 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
11225 2017-01-09 Martin Liska <mliska@suse.cz>
11228 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
11229 (lookup_compiler): Do not show error message with have_E.
11231 2017-01-09 Jakub Jelinek <jakub@redhat.com>
11233 PR tree-optimization/78938
11234 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
11235 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
11236 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
11237 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
11240 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11242 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
11245 2017-01-09 Richard Biener <rguenther@suse.de>
11247 PR tree-optimization/78997
11248 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
11249 name condition properly.
11251 2017-01-09 Richard Biener <rguenther@suse.de>
11254 * dwarf2out.c (is_cxx): New overload with context.
11255 (is_naming_typedef_decl): Use it.
11257 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
11259 * invoke.texi (Option Summary): Correct spacing in option lists
11260 and add line breaks to fix over-long lines.
11262 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
11264 PR middle-end/17660
11266 * extend.texi (Common Variable Attributes): Add xref to GCC
11267 Internals manual to explain mode attribute keywords.
11269 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
11272 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
11273 and Preprocessor Options.
11274 (Options for Linking): Document -pthread here....
11275 (RS/6000 and PowerPC Options): ...not here.
11276 (Solaris 2 Options): ...or here.
11277 * doc/cppopts.texi: Document -pthread.
11279 2017-01-08 Martin Sebor <msebor@redhat.com>
11281 PR middle-end/77708
11282 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
11283 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
11284 New member functions.
11285 (format_directive): Used them.
11287 (pass_sprintf_length::handle_gimple_call): Same.
11288 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
11289 to avoid truncation for any argument.
11290 (extract_affine_mul): Same.
11291 * tree.c (get_file_function_name): Same.
11293 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
11295 PR middle-end/77484
11296 * predict.def (PRED_INDIR_CALL): Set to 86.
11298 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
11300 PR preprocessor/54124
11301 * doc/cppopts.texi: Reformat -d subtable to list the full name
11302 of the options. Add cross-reference to the docs for the general
11303 compiler -d options.
11304 * doc/invoke.texi (Developer Options): Add cross-reference to the
11305 preprocessor-specific -d option documentation.
11307 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
11309 PR preprocessor/13498
11310 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
11311 redudant material, and reflect new command-line options.
11312 (System Headers): Likewise.
11314 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
11316 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
11317 -isystem, and -idirafter. Copy-edit.
11318 * doc/cppopts.texi: Copy-edit. Remove contradiction about
11319 default for -ftrack-macro-expansion. Delete obsolete and
11320 badly-formatted implementation details about -fdebug-cpp output.
11321 * doc/cppwarnopts.texi: Copy-edit.
11323 2017-01-07 David Malcolm <dmalcolm@redhat.com>
11326 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
11327 that the transition from a max line width >= 1<<10 to narrower
11328 lines works correctly.
11330 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
11332 * doc/options.texi (PerFunction): New.
11333 * opt-functions.awk (switch_flags): Map both Optimization and
11334 PerFunction to CL_OPTIMIZATION.
11335 * opth-gen.awk: Test for PerFunction flag along with
11337 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
11338 it only when the latter is present. Skip those that don't in
11339 the hash function generator.
11340 * common.opt (fvar-tracking): Mark as PerFunction instead of
11342 (fvar-tracking-assignments): Likewise.
11343 (fvar-tracking-assignments-toggle): Likewise.
11344 (fvar-tracking-uninit): Likewise.
11346 2017-01-07 Jakub Jelinek <jakub@redhat.com>
11348 PR translation/79018
11349 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
11352 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
11355 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
11356 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
11357 TARGET_LONG_JUMP_TABLE_OFFSETS.
11358 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
11359 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
11360 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
11361 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
11362 * config/m68k/m68k.md (tablejump expander): Likewise.
11363 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
11364 TARGET_LONG_JUMP_TABLE_OFFSETS.
11365 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
11366 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
11368 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
11369 David Holsgrove <david.holsgrove@xilinx.com>
11371 * common/config/microblaze/microblaze-common.c
11372 (TARGET_EXCEPT_UNWIND_INFO): Remove.
11373 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
11375 * config/microblaze/microblaze.c (microblaze_must_save_register)
11376 (microblaze_expand_epilogue, microblaze_return_addr): Handle
11378 (microblaze_eh_return): New function.
11379 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
11380 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
11381 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
11382 * config/microblaze/microblaze.md (eh_return): New pattern.
11384 2017-01-06 Jakub Jelinek <jakub@redhat.com>
11386 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
11387 GCC_DIAGNOSTIC_STRINGIFY): Define.
11389 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
11391 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
11393 * config/arm/arm.md (<mcrr>): New.
11395 * config/arm/arm.c (arm_arch5te): New.
11396 (arm_option_override): Set arm_arch5te.
11397 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
11399 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
11400 (arm_mcrr_qualifiers): ... this. New.
11401 (MRRC_QUALIFIERS): Define to...
11402 (arm_mrrc_qualifiers): ... this. New.
11403 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
11405 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
11406 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
11407 (MRRCI, mrrc, MRRC): New.
11408 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
11409 VUNSPEC_MRRC2): New.
11411 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
11413 * config/arm/arm.md (<mcr>): New.
11415 * config/arm/arm.c (arm_coproc_builtin_available): Add
11416 support for mcr, mrc, mcr2 and mrc2.
11417 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
11418 (arm_mcr_qualifiers): ... this. New.
11419 (MRC_QUALIFIERS): Define to ...
11420 (arm_mrc_qualifiers): ... this. New.
11421 (MCR_QUALIFIERS): Define to ...
11422 (arm_mcr_qualifiers): ... this. New.
11423 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
11425 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
11426 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
11427 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
11428 VUNSPEC_MRC2): New.
11430 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
11432 * config/arm/arm.md (*ldc): New.
11436 * config/arm/arm.c (arm_coproc_builtin_available): Add
11437 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
11438 (arm_coproc_ldc_stc_legitimate_address): New.
11439 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
11440 'qualifier_const_pointer'.
11441 (LDC_QUALIFIERS): Define to...
11442 (arm_ldc_qualifiers): ... this. New.
11443 (STC_QUALIFIERS): Define to...
11444 (arm_stc_qualifiers): ... this. New.
11445 * config/arm/arm-protos.h
11446 (arm_coproc_ldc_stc_legitimate_address): New.
11447 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
11448 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
11449 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
11450 stc2, stcl, stc2l): New.
11451 * config/arm/constraints.md (Uz): New.
11452 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
11453 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
11454 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
11455 VUNSPEC_STC2L): New.
11457 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
11459 * config/arm/arm.md (<cdp>): New.
11460 * config/arm/arm.c (neon_const_bounds): Rename this ...
11461 (arm_const_bounds): ... this.
11462 (arm_coproc_builtin_available): New.
11463 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
11464 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
11465 (CDP_QUALIFIERS): Define to...
11466 (arm_cdp_qualifiers): ... this. New.
11468 (arm_expand_builtin_args): Add case for 6 arguments.
11469 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
11470 (arm_const_bounds): ... this.
11471 (arm_coproc_builtin_available): New.
11472 * config/arm/arm_acle.h (__arm_cdp): New.
11474 * config/arm/arm_acle_builtins.def (cdp): New.
11476 * config/arm/iterators.md (CDPI,CDP,cdp): New.
11477 * config/arm/neon.md: Rename all 'neon_const_bounds' to
11478 'arm_const_bounds'.
11479 * config/arm/types.md (coproc): New.
11480 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
11481 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
11482 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
11483 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
11485 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
11487 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
11488 (UBINOP_QUALIFIERS): New.
11490 (acle_builtin_data): New. Change comment.
11491 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
11492 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
11493 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
11494 arm_acle_builtins.def.
11495 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
11496 (arm_init_acle_builtins): New.
11497 (CRC32_BUILTIN): Remove.
11498 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
11499 crc32cb, crc32ch and crc32cw.
11500 (arm_init_crc32_builtins): Remove.
11501 (arm_init_builtins): Use arm_init_acle_builtins rather
11502 than arm_init_crc32_builtins.
11503 (arm_expand_acle_builtin): New.
11504 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
11505 * config/arm/arm_acle_builtins.def: New.
11507 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
11509 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
11510 (arm_builtin_datum): ... this.
11511 (arm_init_neon_builtin): Rename to ...
11512 (arm_init_builtin): ... this. Add a new parameters PREFIX
11513 and USE_SIG_IN_NAME.
11514 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
11515 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
11516 'arm_builtin_datum'.
11517 (arm_init_vfp_builtins): Likewise.
11518 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
11519 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
11520 (arm_expand_neon_args): Rename to ...
11521 (arm_expand_builtin_args): ... this. Rename builtin_arg
11522 enum values and differentiate between ARG_BUILTIN_MEMORY
11523 and ARG_BUILTIN_NEON_MEMORY.
11524 (arm_expand_neon_builtin_1): Rename to ...
11525 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
11526 values, arm_expand_builtin_args and add bool parameter NEON.
11527 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
11528 (arm_expand_vfp_builtin): Likewise.
11529 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
11531 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
11533 PR middle-end/77484
11534 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
11535 * predict.c (tree_estimate_probability_bb): Reverse direction of
11536 polymorphic call predictor.
11538 2017-01-06 David Malcolm <dmalcolm@redhat.com>
11540 * passes.c (execute_one_pass): Split out pass-skipping logic into...
11541 (determine_pass_name_match): ...this new function and...
11542 (should_skip_pass_p): ...this new function.
11544 2017-01-06 Nathan Sidwell <nathan@acm.org>
11546 * ipa-visibility.c (function_and_variable_visibility): Reformat
11547 comments and long lines. Remove extrneous if.
11548 * symtab.c (symtab_node::make_decl_local): Fix code format.
11549 (symtab_node::set_section_for_node): Fix comment typo.
11551 2017-01-06 Martin Liska <mliska@suse.cz>
11554 * lra-constraints.c: Rename invariant to lra_invariant.
11555 * predict.c (set_even_probabilities): Initialize e to NULL.
11557 2017-01-05 Martin Sebor <msebor@redhat.com>
11559 PR tree-optimization/78910
11560 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
11561 (format_integer): Correct off-by-one error in the handling
11562 of precision with negative numbers in signed conversions..
11564 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
11566 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
11568 2017-01-05 Jakub Jelinek <jakub@redhat.com>
11570 PR tree-optimization/71016
11571 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
11572 factor_out_conditional_conversion. Formatting fix.
11573 (factor_out_conditional_conversion): Add cond_stmt argument.
11574 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
11575 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
11578 2017-01-05 David Malcolm <dmalcolm@redhat.com>
11580 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
11581 read-rtl-function.o, and selftest-rtl.o.
11582 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
11583 (selftest::aarch64_test_loading_full_dump): New function.
11584 (selftest::aarch64_run_selftests): New function.
11585 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
11586 selftest::aarch64_run_selftests.
11587 * config/i386/i386.c
11588 (selftest::ix86_test_loading_dump_fragment_1): New function.
11589 (selftest::ix86_test_loading_call_insn): New function.
11590 (selftest::ix86_test_loading_full_dump): New function.
11591 (selftest::ix86_test_loading_unspec): New function.
11592 (selftest::ix86_run_selftests): Call the new functions.
11593 * emit-rtl.c (maybe_set_max_label_num): New function.
11594 * emit-rtl.h (maybe_set_max_label_num): New decl.
11595 * function.c (instantiate_decls): Guard call to
11596 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
11597 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
11599 * gensupport.c (gen_reader::gen_reader): Pass "false"
11600 for new "compact" param of rtx_reader.
11601 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
11602 rather than an empty string for NULL strings.
11603 * read-md.c: Potentially include config.h rather than bconfig.h.
11604 Wrap include of errors.h with #ifdef GENERATOR_FILE.
11605 (have_error): New global, copied from errors.c.
11606 (md_reader::read_name): Rename to...
11607 (md_reader::read_name_1): ...this, adding "out_loc" param,
11608 and converting "missing name or number" to returning false, rather
11610 (md_reader::read_name): Reimplement in terms of read_name_1.
11611 (md_reader::read_name_or_nil): New function.
11612 (md_reader::read_string): Handle "(nil)" by returning NULL.
11613 (md_reader::md_reader): Add new param "compact".
11614 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
11615 (md_reader::read_file): New method.
11616 * read-md.h (md_reader::md_reader): Add new param "compact".
11617 (md_reader::read_file): New method.
11618 (md_reader::is_compact): New accessor.
11619 (md_reader::read_name): Convert return type from void to file_location.
11620 (md_reader::read_name_or_nil): New decl.
11621 (md_reader::read_name_1): New decl.
11622 (md_reader::m_compact): New field.
11623 (noop_reader::noop_reader): Pass "false" for new "compact" param
11625 (rtx_reader::rtx_reader): Add new "compact" param.
11626 (rtx_reader::read_rtx_operand): Make virtual and convert return
11627 type from void to rtx.
11628 (rtx_reader::read_until): New decl.
11629 (rtx_reader::handle_any_trailing_information): New virtual function.
11630 (rtx_reader::postprocess): New virtual function.
11631 (rtx_reader::finalize_string): New virtual function.
11632 (rtx_reader::m_in_call_function_usage): New field.
11633 (rtx_reader::m_reuse_rtx_by_id): New field.
11634 * read-rtl-function.c: New file.
11635 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
11636 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
11637 (selftest::verify_three_block_rtl_cfg): New decl.
11638 * read-rtl-function.h: New file.
11639 * read-rtl.c: Potentially include config.h rather than bconfig.h.
11640 For host, include function.h, memmodel.h, and emit-rtl.h.
11641 (one_time_initialization): New function.
11642 (struct compact_insn_name): New struct.
11643 (compact_insn_names): New array.
11644 (find_code): Handle insn codes in compact dumps.
11645 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
11646 (bind_subst_iter_and_attr): Likewise.
11647 (add_condition_to_string): Likewise.
11648 (add_condition_to_rtx): Likewise.
11649 (apply_attribute_uses): Likewise.
11650 (add_current_iterators): Likewise.
11651 (apply_iterators): Likewise.
11652 (initialize_iterators): Guard usage of apply_subst_iterator with
11653 #ifdef GENERATOR_FILE.
11654 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
11655 (md_reader::read_mapping): Likewise.
11656 (add_define_attr_for_define_subst): Likewise.
11657 (add_define_subst_attr): Likewise.
11658 (read_subst_mapping): Likewise.
11659 (check_code_iterator): Likewise.
11660 (rtx_reader::read_rtx): Likewise. Move one-time initialization
11662 (one_time_initialization): New function.
11663 (rtx_reader::read_until): New method.
11664 (read_flags): New function.
11665 (parse_reg_note_name): New function.
11666 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
11667 Handle reuse_rtx ids.
11668 Wrap iterator lookup within #ifdef GENERATOR_FILE.
11669 Add parsing support for RTL dumps, mirroring the special-cases in
11670 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
11671 values, and calling handle_any_trailing_information.
11672 (rtx_reader::read_rtx_operand): Convert return type from void
11673 to rtx, returning return_rtx. Handle case 'e'. Call
11674 finalize_string on XSTR and XTMPL fields.
11675 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
11676 "(nil)" values were omitted. Call the postprocess vfunc on the
11678 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
11679 class ctor. Initialize m_in_call_function_usage. Call
11680 one_time_initialization.
11681 * rtl-tests.c (selftest::test_uncond_jump): Call
11682 set_new_first_and_last_insn.
11683 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
11684 * selftest-rtl.c: New file.
11685 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
11686 (selftest::get_insn_by_uid): New decl.
11687 * selftest-run-tests.c (selftest::run_tests): Call
11688 read_rtl_function_c_tests.
11689 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
11690 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
11693 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
11695 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
11696 operands in a special way. Assert that pos+len <= mode precision.
11698 2017-01-05 Jakub Jelinek <jakub@redhat.com>
11700 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
11701 3 argument Alias with unlimited for the negative form.
11702 (fno-vect-cost-model): Removed.
11704 2017-01-05 Martin Liska <mliska@suse.cz>
11706 * hsa-gen.c (gen_hsa_divmod): New function.
11707 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
11709 2017-01-05 Martin Liska <mliska@suse.cz>
11712 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
11715 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11717 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
11718 small constant length operands.
11720 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
11722 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
11723 between loop iterations.
11725 2017-01-05 Martin Liska <mliska@suse.cz>
11728 * gimplify.c (gimplify_decl_expr): Compare to
11729 asan_poisoned_variables instread of checking flags.
11730 (gimplify_target_expr): Likewise.
11731 (gimplify_expr): Likewise.
11732 (gimplify_function_tree): Conditionally initialize
11733 asan_poisoned_variables.
11735 2017-01-04 Jeff Law <law@redhat.com>
11737 PR tree-optimizatin/78812
11738 * rtl.h (contains_mem_rtx_p): Prototype.
11739 * ifcvt.c (containts_mem_rtx_p): Move from here to...
11740 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
11741 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
11742 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
11743 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
11745 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
11747 * input.c (assert_char_at_range): Default-initialize actual_range.
11749 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
11751 * df-scan.c (df_ref_create_structure): Make regno unsigned,
11752 to match the caller.
11754 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
11756 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
11757 insns after final jump in test to emit dummy move.
11759 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
11761 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
11762 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
11764 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
11766 * multiple_target.c (create_dispatcher_calls): Init e_next.
11767 * tree-ssa-loop-split.c (split_loop): Init border.
11768 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
11771 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
11776 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
11777 (altivec_register_operand): Do not return true if the operand
11778 contains a SUBREG mixing SImode and SFmode.
11779 (vsx_register_operand): Likewise.
11780 (vsx_reg_sfsubreg_ok): New predicate.
11781 (vfloat_operand): Do not return true if the operand contains a
11782 SUBREG mixing SImode and SFmode.
11783 (vint_operand): Likewise.
11784 (vlogical_operand): Likewise.
11785 (gpc_reg_operand): Likewise.
11786 (int_reg_operand): Likewise.
11787 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
11788 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
11789 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
11791 (rs6000_emit_move_si_sf_subreg): New helper function.
11792 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
11793 fixup SUBREGs involving SImode and SFmode.
11794 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
11795 numbers for the new peephole2 optimization.
11796 (peephole2 for SFmode unions): New peephole2 to optimize cases in
11797 the GLIBC math library that do AND/IOR/XOR operations on single
11798 precision floating point.
11799 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
11800 target macros to say whether we need to avoid SUBREGs mixing
11802 (TARGET_ALLOW_SF_SUBREG): Likewise.
11803 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
11804 (UNSPEC_SI_FROM_SF): Likewise.
11805 (iorxor): Change spacing.
11806 (and_ior_xor): New iterator for AND, IOR, and XOR.
11807 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
11808 (movdi_from_sf_zero_ext): Likewise.
11809 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
11810 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
11811 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
11812 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
11813 (fms<mode>4): Likewise.
11814 (fnma<mode>4): Likewise.
11815 (fnms<mode>4): Likewise.
11816 (nfma<mode>4): Likewise.
11817 (nfms<mode>4): Likewise.
11819 2017-01-04 Marek Polacek <polacek@redhat.com>
11822 * doc/invoke.texi: Document -Wpointer-compare.
11824 2017-01-04 Jakub Jelinek <jakub@redhat.com>
11826 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
11829 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
11830 descriptions for -gdwarf-5 and emit them as uleb128 instead of
11833 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
11836 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
11837 documentation of the powerpc_popcntb_ok attribute.
11838 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
11839 code to issue warning messages if a requested CPU configuration is
11840 not supported by the binary (assembler and loader) toolchain.
11841 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
11842 made to define a built-in function that has been disabled.
11843 (paired_init_builtins): Add assertion to prevent ICE if attempt is
11844 made to define a built-in function that has been disabled.
11845 (altivec_init_builtins): Add comment explaining why definition
11846 of the DST built-in functions is not preceded by an assertion
11847 check. Add assertions to prevent ICE if attempts are made to
11848 define an altivec predicate or an abs* built-in function that has
11850 (htm_init_builtins): Add comment explaining why definition of the
11851 htm built-in functions is not preceded by an assertion check.
11853 2017-01-04 Jeff Law <law@redhat.com>
11855 PR tree-optimizatin/67955
11856 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
11857 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
11858 the points-to solution does not include pt_null. Use DECL_PT_UID
11861 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
11863 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
11864 Use gen_int_mode instead of gen_lopwart for const_int operands.
11866 2017-01-04 Jakub Jelinek <jakub@redhat.com>
11868 PR tree-optimization/71563
11869 * match.pd: Simplify X << Y into X if Y is known to be 0 or
11870 out of range value - has low bits known to be zero.
11872 2017-01-04 Alan Modra <amodra@gmail.com>
11874 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
11875 * configure: Regenerate.
11876 * config.in: Regenerate.
11878 2017-01-04 Jakub Jelinek <jakub@redhat.com>
11881 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
11882 a substring of the message, but strcmp with the whole message. Ifdef
11883 ENABLE_NLS, translate the message first using dgettext.
11885 2017-01-03 Jeff Law <law@redhat.com>
11887 PR tree-optimizatin/78856
11888 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
11889 (mark_threaded_blocks): Remove code to truncate thread paths that
11890 cross multiple loop headers. Instead invalidate the cached loop
11891 iteration information and handle case of a thread path walking
11892 into an irreducible region.
11894 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
11897 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
11898 assertions. Add support for doing the signbit if the IEEE 128-bit
11899 floating point value is in a GPR.
11900 * config/rs6000/rs6000.md (Fsignbit): Delete.
11901 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
11902 Update the length attribute if the value is in a GPR.
11903 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
11904 the sign or zero extension instruction, since the value is always 0/1.
11905 (signbit<mode>2_dm2): Delete using <Fsignbit>.
11908 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
11909 extracting SImode to a GPR register so that we can generate a
11910 store, limit the vector to be in a traditional Altivec register
11911 for the vextuwrx instruction.
11913 2017-01-03 Ian Lance Taylor <iant@google.com>
11915 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
11917 2017-01-03 Martin Sebor <msebor@redhat.com>
11919 PR tree-optimization/78696
11920 * gimple-ssa-sprintf.c (format_floating): Correct handling of
11921 precision. Use MPFR for %f for greater fidelity. Correct handling
11923 (pass_sprintf_length::compute_format_length): Set width and precision
11924 specified by asrerisk to void_node for vararg functions.
11925 (try_substitute_return_value): Adjust dump output.
11927 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
11929 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
11931 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
11933 * doc/invoke.texi (SPARC options): Document -mlra as the default.
11934 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
11935 -mlra/-mno-lra was passed to the compiler.
11937 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
11939 PR rtl-optimization/65618
11940 * emit-rtl.c (try_split): Move initialization of "before" and
11941 "after" to just before the call to emit_insn_after_setloc.
11943 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
11945 * doc/md.texi (Standard Names): Remove reference to Java frontend.
11947 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
11949 * dwarf2out.c (gen_enumeration_type_die): When
11950 -gno-strict-dwarf, add a DW_AT_encoding attribute.
11952 2017-01-03 Jakub Jelinek <jakub@redhat.com>
11954 PR tree-optimization/78965
11955 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
11956 Change first argument from const call_info & to call_info &. For %n
11957 set info.nowrite to false.
11959 PR middle-end/78901
11960 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
11961 possibly throwing calls.
11963 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
11964 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
11965 and fns handling, rather than in a separate case SSA_NAME.
11967 2017-01-02 Jeff Law <law@redhat.com>
11969 * config/darwin-driver.c (darwin_driver_init): Const-correctness
11970 fixes for first_period and second_period variables.
11972 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
11975 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
11976 (*insvqi_1): New insn pattern.
11977 (*insvqi_1_mem_rex64): Ditto.
11978 (*insvqi_2): Ditto.
11979 (*insvqi_3): Rename from *insvqi.
11981 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
11983 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
11985 * doc/cfg.texi (Edges): Remove reference to Java.
11986 (Maintaining the CFG): Ditto.
11988 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
11990 PR middle-end/77674
11991 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
11992 transparent aliases.
11994 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
11996 PR middle-end/77484
11997 * predict.def (PRED_CALL): Update hitrate.
11998 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
11999 * predict.c (tree_estimate_probability_bb): Split CALL predictor
12000 into direct/indirect/polymorphic variants.
12002 2017-01-01 Jakub Jelinek <jakub@redhat.com>
12004 Update copyright years.
12006 * gcc.c (process_command): Update copyright notice dates.
12007 * gcov-dump.c (print_version): Ditto.
12008 * gcov.c (print_version): Ditto.
12009 * gcov-tool.c (print_version): Ditto.
12010 * gengtype.c (create_file): Ditto.
12011 * doc/cpp.texi: Bump @copying's copyright year.
12012 * doc/cppinternals.texi: Ditto.
12013 * doc/gcc.texi: Ditto.
12014 * doc/gccint.texi: Ditto.
12015 * doc/gcov.texi: Ditto.
12016 * doc/install.texi: Ditto.
12017 * doc/invoke.texi: Ditto.
12019 Copyright (C) 2017 Free Software Foundation, Inc.
12021 Copying and distribution of this file, with or without modification,
12022 are permitted in any medium without royalty provided the copyright
12023 notice and this notice are preserved.