re PR middle-end/90095 (wrong code with -Os -fno-tree-bit-ccp)
[gcc.git] / gcc / ChangeLog
1 2019-04-17 Jakub Jelinek <jakub@redhat.com>
2
3 PR middle-end/90095
4 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
5 on lowpart SUBREGs.
6
7 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
8
9 * config/arc/arc.c (arc_init): Format diagnostic string.
10 (arc_override_options): Likewise.
11 (check_if_valid_regno_const): Likewise.
12 (arc_reorg): Likewise.
13
14 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
15
16 PR target/17108
17 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
18 name.
19 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
20 name.
21 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
22 (*movdi_update1): Use Pmode.
23 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
24 (movdi_<mode>_update_stack): Rename to ...
25 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
26 use Pmode.
27 (*movsi_update1): Use Pmode.
28 (*movsi_update2): Use Pmode.
29 (movsi_update): Rename to ...
30 (movsi_<mode>_update): ... this. Use Pmode.
31 (movsi_update_stack): Fix condition.
32 (*movhi_update1): Use Pmode. Fix argument to
33 avoiding_indexed_address_p.
34 (*movhi_update2): Ditto.
35 (*movhi_update3): Ditto.
36 (*movhi_update4): Ditto.
37 (*movqi_update1): Ditto.
38 (*movqi_update2): Ditto.
39 (*movqi_update3): Ditto.
40 (*movsf_update1, *movdf_update1): Merge, rename to...
41 (*mov<mode>_update1): This. Use Pmode. Fix argument to
42 avoiding_indexed_address_p. Add "size" attribute.
43 (*movsf_update2, *movdf_update2): Merge, rename to...
44 (*mov<mode>_update2): This. Ditto.
45 (*movsf_update3): Use Pmode. Fix argument to
46 avoiding_indexed_address_p.
47 (*movsf_update4): Ditto.
48 (allocate_stack): Simplify condition. Adjust pattern names.
49
50 2019-04-17 Jakub Jelinek <jakub@redhat.com>
51
52 PR target/89093
53 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
54 whitespace at the start of target attribute string.
55
56 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
57
58 PR target/84369
59 * config/rs6000/power9.md: Add store forwarding bypass.
60
61 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
62
63 PR debug/89528
64 * valtrack.c (dead_debug_insert_temp): Reset debug references
65 to the return value of a call being removed.
66
67 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
68
69 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
70 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
71 implement target hook.
72 (arc_memory_move_cost): New function.
73 (TARGET_REGISTER_MOVE_COST): Define.
74 (TARGET_MEMORY_MOVE_COST): Likewise.
75 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
76 (MEMORY_MOVE_COST): Likewise.
77
78 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
79
80 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
81 (sibcall_value_insn): Likewise.
82 * config/arc/constraints.md (Rs5): Remove.
83
84 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
85
86 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
87 for last two fake registers.
88 (arc_conditional_register_usage): Make sure fake frame and arg
89 pointer regs are in general regs class.
90 (FRAME_POINTER_MASK): Remove.
91 (RETURN_ADDR_MASK): Remove.
92 (arc_must_save_register): Use hard frame regnum.
93 (frame_restore_reg): Use hard_frame_pointer_rtx.
94 (arc_save_callee_saves): Likewise.
95 (arc_restore_callee_saves): Likewise.
96 (arc_save_callee_enter): Likewise.
97 (arc_restore_callee_leave): Likewise.
98 (arc_save_callee_milli): Likewise.
99 (arc_eh_return_address_location): Likewise.
100 (arc_check_multi): Use hard frame regnum.
101 (arc_can_eliminate): Likewise.
102 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
103 for register allocator.
104 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
105 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
106 (FRAME_POINTER_REGNUM): Change it to a fake register.
107 (HARD_FRAME_POINTER_REGNUM): Defined.
108 (ARG_POINTER_REGNUM): Change it to a new fake register.
109 (ELIMINABLE_REGS): Update.
110 (REGISTER_NAMES): Update names.
111 * config/arc/arc.md (LP_START): Remove.
112 (LP_END): Likewise.
113 (shift_si3_loop): Update pattern.
114
115 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
116
117 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
118 to avoid delay slot scheduling.
119 (arc_must_save_register): Don't save SP.
120 * config/arc/arc.md (stack_tie): Remove.
121 (UNSPEC_ARC_STKTIE): Likewise.
122
123 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
124 Shiva Chen <shiva0217@gmail.com>
125
126 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
127 code gen with large shift amount.
128
129 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
130
131 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
132 subreg.
133
134 2019-04-16 Jakub Jelinek <jakub@redhat.com>
135
136 PR target/90096
137 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
138 print -m64/-mx32/-m32 if it is true.
139 (ix86_debug_options, ix86_function_specific_print): Pass true as
140 ADD_ABI_P to ix86_target_string.
141 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
142 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
143 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
144
145 PR rtl-optimization/90082
146 * dce.c (can_delete_call): New function.
147 (deletable_insn_p, mark_insn): Use it.
148
149 PR tree-optimization/90090
150 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
151 throw internally.
152 (is_division_by_square): Likewise. Formatting fix.
153
154 2019-04-16 Richard Biener <rguenther@suse.de>
155
156 PR tree-optimization/56049
157 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
158 equality check if alias-set zero will prevail.
159
160 2019-04-15 Jeff Law <law@redhat.com>
161
162 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
163 size and alignment as unsigned.
164
165 2019-04-15 Richard Biener <rguenther@suse.de>
166
167 PR debug/90074
168 * tree-loop-distribution.c (destroy_loop): Preserve correct
169 debug info.
170
171 2019-04-15 Richard Biener <rguenther@suse.de>
172
173 PR tree-optimization/90071
174 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
175 abnormal operands from def stmts.
176
177 2019-04-15 Richard Biener <rguenther@suse.de>
178
179 PR ipa/88936
180 * tree.h (auto_var_p): Declare.
181 * tree.c (auto_var_p): New function, split out from ...
182 (auto_var_in_fn_p): ... here.
183 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
184 member.
185 (new_var_info): Initialize it.
186 (set_uids_in_ptset): Also set the shadow variable uid if required.
187 (ipa_pta_execute): Postprocess points-to solutions assigning
188 shadow variable uids for locals that may reach their containing
189 function recursively.
190 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
191 assert but instead check whether the points-to solution is
192 a singleton.
193
194 2019-04-15 Martin Jambor <mjambor@suse.cz>
195
196 PR ipa/pr89693
197 * cgraph.c (clone_of_p): Loop over clone chain for each step in
198 the thunk chain.
199
200 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
201
202 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
203
204 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
205 Kito Cheng <kito.cheng@gmail.com>
206 Shiva Chen <shiva0217@gmail.com>
207
208 * config/nds32/nds32-md-auxiliary.c
209 (nds32_legitimize_pic_address): Use new PIC pattern.
210 (nds32_legitimize_tls_address): Use new TLS pattern.
211 (nds32_output_symrel): New.
212 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
213 (nds32_alloc_relax_group_id): Ditto.
214 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
215 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
216 relax_group_id.
217 (nds32_group_tls_insn): Ditto.
218 (nds32_group_float_insns): Ditto.
219 * config/nds32/nds32.md (tls_le): New.
220 (sym_got): Ditto.
221
222 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
223
224 * configure: Add nds32 target for dwarf2 debug_line checking.
225 * configure.ac: Regenerated.
226
227 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
228
229 PR lto/89358
230 * ipa-devirt.c (skip_in_fields_list_p): New.
231 (odr_types_equivalent_p): Use it.
232
233 2019-04-13 Jakub Jelinek <jakub@redhat.com>
234
235 PR target/89093
236 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
237 instead of strncmp when checking for thumb and arm. Formatting fixes.
238
239 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
240
241 * doc/install.texi: Document --with-target-system-zlib.
242
243 2019-04-12 Martin Sebor <msebor@redhat.com>
244
245 PR c/88383
246 PR c/89288
247 PR c/89798
248 PR c/89797
249 * targhooks.c (default_vector_alignment): Avoid assuming
250 argument fits in SHWI.
251 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
252 a shift expression.
253 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
254
255 2019-04-12 Jakub Jelinek <jakub@redhat.com>
256
257 PR rtl-optimization/89965
258 * dce.c: Include rtl-iter.h.
259 (struct check_argument_load_data): New type.
260 (check_argument_load): New function.
261 (find_call_stack_args): Check for loads from stack slots still tracked
262 in sp_bytes and punt if any is found.
263
264 * config/mips/loongson-mmiintrin.h: Fix up #error message.
265
266 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
267
268 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
269 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
270
271 2019-04-12 Martin Liska <mliska@suse.cz>
272
273 PR middle-end/89970
274 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
275 in error message.
276 (separate_attrs): Handle multiple 'default's.
277 (expand_target_clones): Rework error handling code.
278
279 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
280
281 PR target/87532
282 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
283 mode of vector rather than mode of destination for move instruction.
284 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
285 Use QI inner mode with V16QI vector mode.
286
287 2019-04-12 Jakub Jelinek <jakub@redhat.com>
288
289 PR target/52726
290 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
291 "invalid %%t operand" in output_operand_lossage message.
292
293 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
294
295 * config/s390/predicates.md (permute_pattern_operand): New
296 predicate.
297 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
298 operand for the permute pattern.
299 ("*vec_perm<mode>"): New insn definition.
300 ("bswap<mode>"): Generate the permute pattern operand in the
301 expander and perform the operand reloads for pre arch13 level
302 already.
303 ("*bswap<mode>_emu"): Rename to ...
304 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
305 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
306 Add the USE operand for the permute pattern.
307 ("*vec_set_bswap_vec<mode>"): Likewise.
308
309 2019-04-12 Jakub Jelinek <jakub@redhat.com>
310
311 PR c/89946
312 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
313 and gcc_unreachable if it fails, just call tree_to_uhwi which
314 verifies that too. Test TREE_CHAIN instead of list_length > 1.
315 Start warning message with a lower-case letter. Formatting fixes.
316
317 PR rtl-optimization/90026
318 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
319 successors, look for BARRIERs inside of the whole BB_FOOTER chain
320 rather than just at the start of it. If e->src BB_FOOTER is not NULL
321 in cfglayout mode, use emit_barrier_after_bb.
322
323 2018-04-11 Steve Ellcey <sellcey@marvell.com>
324
325 PR rtl-optimization/87763
326 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
327 New Instruction.
328
329 2019-04-11 Tom de Vries <tdevries@suse.de>
330
331 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
332 max macro using statement expression.
333
334 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
335
336 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
337 * xcoffout.c (xcoff_private_rodata_section_name): Define.
338 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
339 read_only_private_data_section using xcoff_private_rodata_section_name.
340 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
341
342 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
343
344 PR target/90016
345 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
346
347 2019-04-11 Jakub Jelinek <jakub@redhat.com>
348
349 PR rtl-optimization/89965
350 * dce.c (sp_based_mem_offset): New function.
351 (find_call_stack_args): Use sp_based_mem_offset.
352
353 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
354
355 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
356
357 2019-04-11 Richard Biener <rguenther@suse.de>
358
359 PR tree-optimization/90020
360 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
361 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
362 * tree-ssa-pre.c (compute_avail): Use it to not put
363 possibly trapping references after a call that might not
364 return into EXP_GEN.
365 * gcse.c (compute_hash_table_work): Do not elide
366 marking a block containing a call if the call might not
367 return.
368
369 2019-04-11 Richard Biener <rguenther@suse.de>
370
371 PR tree-optimization/90018
372 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
373 Test both SLP and interleaving variants.
374
375 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
376
377 * config/s390/8561.md: New file.
378 * config/s390/driver-native.c (s390_host_detect_local_cpu):
379 Add arch13 cpu model.
380 * config/s390/s390-opts.h (enum processor_type): Likewise.
381 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
382 (s390_get_unit_mask): Likewise.
383 (s390_is_fpd): Likewise.
384 (s390_is_fxd): Likewise.
385 * config/s390/s390.h (s390_tune_attr): Likewise.
386 * config/s390/s390.md: Include arch13 pipeline description.
387 * config/s390/s390.opt: Add arch13.
388
389 2018-04-10 Steve Ellcey <sellcey@marvell.com>
390
391 PR rtl-optimization/87763
392 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
393 New prototype.
394 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
395 New function.
396 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
397 New instruction.
398 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
399 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
400 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
401 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
402
403 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
404
405 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
406 "Although" in -fipa-icf documentation.
407
408 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
409 of using multiple -g options.
410
411 2019-04-10 Martin Liska <mliska@suse.cz>
412
413 PR gcov-profile/89959
414 * doc/gcov.texi: Make documentation of -x option
415 more precise.
416
417 2019-04-10 Richard Biener <rguenther@suse.de>
418
419 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
420 member.
421 (DR_GROUP_SAME_DR_STMT): Remove.
422 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
423 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
424 replace with assert.
425 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
426 (vect_record_grouped_load_vectors): Remove unreachable code.
427
428 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
429
430 PR target/90016
431 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
432 obsolete reference to N.
433
434 2019-04-10 Jakub Jelinek <jakub@redhat.com>
435
436 PR middle-end/90025
437 * expr.c (store_expr): Set properly size on the MEM passed to
438 clear_storage.
439
440 PR c++/90010
441 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
442 with strlen in between hostsz-3 and hostsz-1 inclusive when no
443 translation is needed, and when translation is needed, only append
444 ... if the string length is hostsz or more bytes long. Avoid using
445 strncpy or strcat.
446
447 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
448
449 PR target/90024
450 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
451 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
452 into three.
453 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
454 differences directly.
455 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
456
457 2019-04-09 Jakub Jelinek <jakub@redhat.com>
458
459 PR translation/90011
460 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
461 from diagnostics.
462 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
463 diagnostics.
464 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
465 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
466 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
467 trailing space from -gsplit-dwarf diagnostics.
468
469 PR tree-optimization/89998
470 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
471 instead of integer_type_node if possible, don't add ranges if return
472 type is not compatible with int.
473 * gimple-fold.c (gimple_fold_builtin_sprintf,
474 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
475 integer_type_node.
476
477 2019-04-09 Martin Liska <mliska@suse.cz>
478
479 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
480 * doc/install.texi: Document the new config.
481
482 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
483
484 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
485 use gimple_expr_type for load and store calls. Skip over the
486 condition argument in a conditional internal function.
487 Protect use of TREE_INT_CST_LOW.
488
489 2019-04-09 Jakub Jelinek <jakub@redhat.com>
490
491 PR target/90015
492 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
493 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
494 trailing period from it too.
495
496 2019-04-08 wu yuan <wuyuan5@huawei.com>
497
498 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
499 * config/aarch64/aarch64.md : Add "tsv110.md"
500 * config/aarch64/tsv110.md: New file.
501
502 2019-04-08 Richard Biener <rguenther@suse.de>
503
504 PR tree-optimization/90006
505 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
506 calls like lrint.
507
508 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
509
510 PR target/83033
511 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
512 construction.
513 (fma_root_node): Likewise.
514 (func_fma_steering): Likewise.
515
516 2019-04-08 Jakub Jelinek <jakub@redhat.com>
517
518 PR rtl-optimization/89865
519 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
520
521 PR rtl-optimization/89865
522 * config/i386/i386.md
523 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
524 numbers not to clash with the additional operands[4].
525 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
526 with extra register copy in the middle.
527
528 2019-04-08 Martin Liska <mliska@suse.cz>
529
530 PR gcov-profile/89961
531 * doc/gcov.texi: Document data_file.
532 * gcov.c (generate_results): Add data_info into JSON output.
533
534 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
535
536 PR tree-optimization/89725
537 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
538 loop's chrec as invariant symbol.
539 * tree-chrec.h (chrec_contains_symbols): New parameter.
540 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
541 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
542 function of loops not in DDR's loop_nest.
543 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
544
545 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
546
547 PR target/89623
548 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
549 Mask.
550
551 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
552
553 PR target/89945
554 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
555 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
556
557 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
558
559 * sched-deps.c (sched_macro_fuse_insns): Check return value of
560 targetm.fixed_condition_code_regs.
561
562 2019-04-05 Richard Biener <rguenther@suse.de>
563
564 PR debug/89892
565 PR debug/89905
566 * tree-cfgcleanup.c (remove_forwarder_block): Always move
567 debug bind stmts but reset them if they are not valid at the
568 destination.
569
570 2019-04-05 Martin Liska <mliska@suse.cz>
571
572 PR translation/89936
573 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
574 order to wrap keywords or arguments.
575 * collect2.c (main): Likewise.
576 (scan_prog_file): Likewise.
577 (scan_libraries): Likewise.
578 * common/config/riscv/riscv-common.c
579 (riscv_subset_list::parsing_subset_version): Likewise.
580 (riscv_subset_list::parse_std_ext): Likewise.
581 * config/aarch64/aarch64.c (aarch64_override_options_internal):
582 Likewise.
583 * config/arm/arm.c (arm_option_override): Likewise.
584 * config/cris/cris.c (cris_print_operand): Likewise.
585 * config/darwin-c.c (darwin_pragma_options): Likewise.
586 (darwin_pragma_unused): Likewise.
587 (darwin_pragma_ms_struct): Likewise.
588 * config/ft32/ft32.c (ft32_print_operand): Likewise.
589 * config/i386/i386.c (print_reg): Likewise.
590 (ix86_print_operand): Likewise.
591 * config/i386/xm-djgpp.h: Likewise.
592 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
593 * config/m32c/m32c.c (m32c_option_override): Likewise.
594 * config/msp430/msp430.c (msp430_option_override): Likewise.
595 * config/nds32/nds32.c (nds32_option_override): Likewise.
596 * config/nvptx/mkoffload.c (main): Likewise.
597 * config/rx/rx.c (rx_print_operand): Likewise.
598 (valid_psw_flag): Likewise.
599 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
600 (vms_pragma_nomember_alignment): Likewise.
601 (vms_pragma_extern_model): Likewise.
602 * lto-wrapper.c (compile_offload_image): Likewise.
603 * omp-offload.c (oacc_parse_default_dims): Likewise.
604 * symtab.c (symtab_node::verify_base): Likewise.
605 * tlink.c (recompile_files): Likewise.
606 (start_tweaking): Likewise.
607 * tree-profile.c (parse_profile_filter): Likewise.
608
609 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
610
611 PR tree-optimization/89956
612 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
613 multiple negates of the same value.
614
615 2019-04-04 Martin Sebor <msebor@redhat.com>
616
617 PR middle-end/89957
618 PR middle-end/89911
619 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
620 have the same precision since the function crashes otherwise.
621 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
622 has non-zero arguments.
623
624 2019-04-04 Martin Sebor <msebor@redhat.com>
625
626 PR middle-end/89934
627 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
628 out if the number of arguments is less than expected.
629
630 2019-04-04 Jeff Law <law@redhat.com>
631
632 PR rtl-optimization/89399
633 * ree.c (combine_set_extension): Use single_set rather than
634 digging into PATTERN for items on the candidate list.
635 (combine_reaching_defs): Likewise.
636
637 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
638
639 PR rtl-optimization/46590
640 * loop-invariant.c (find_defs): Move df_remove_problem and
641 df_process_deferred_rescans to move_invariants.
642 Move df_live_add_problem and df_live_set_all_dirty calls
643 to move_invariants.
644 (move_invariants): Likewise.
645 (move_loop_invariants): Likewise, making the df_live calls
646 conditional on -O. Remove the problem again if we added it
647 locally.
648
649 2019-04-03 qing zhao <qing.zhao@oracle.com>
650
651 PR tree-optimization/89730
652 * ipa-inline.c (can_inline_edge_p): Delete the checking for
653 -flive-patching=inline-only-static.
654 (can_inline_edge_by_limits_p): Add the checking for
655 -flive-patching=inline-only-static and grant always_inline
656 even when -flive-patching=inline-only-static is specified.
657
658 2019-04-03 Jeff Law <law@redhat.com>
659
660 PR rtl-optimization/81025
661 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
662
663 2019-04-03 Richard Biener <rguenther@suse.de>
664
665 PR tree-optimization/84101
666 * tree-vect-stmts.c: Include explow.h for hard_function_value,
667 regs.h for hard_regno_nregs.
668 (cfun_returns): New helper.
669 (vect_model_store_cost): When vectorizing a store to a decl
670 we return and the function ABI returns in a multi-reg location
671 account for the possible spilling that will happen.
672
673 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
674
675 * config/s390/s390.c (s390_legitimate_address_p): Reject long
676 displacement addresses for vector mode operands.
677
678 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
679
680 * config/arc/arc.c (GMASK_LEN): Define.
681 (arc_restore_callee_saves): Restore first blink when
682 !optimize_size.
683
684 2019-04-03 Sudakshina Das <sudi.das@arm.com>
685
686 * doc/extend.texi: Add deprecated comment on sign-return-address
687 function attribute and add mbranch-protection.
688 * doc/invoke.texi: Add bti to the options for mbranch-protection.
689
690 2019-04-03 Richard Biener <rguenther@suse.de>
691
692 PR lto/89896
693 * lto-wrapper.c (run_gcc): Avoid implicit rules making
694 the all target phony.
695
696 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
697
698 PR target/89902
699 PR target/89903
700 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
701 Return false for variable DImode shifts.
702 (dimode_scalar_chain::compute_convert_gain): Do not handle
703 register count operand in variable DImode shifts.
704 (dimode_scalar_chain::make_vector_copies): Remove support to copy
705 count argument of a variable shift instruction to a vector register.
706 (dimode_scalar_chain::convert_reg): Remove support to convert
707 count argument of a variable shift instruction.
708
709 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
710
711 PR rtl-optimization/84206
712 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
713 iterating over loop headers.
714
715 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
716
717 PR rtl-optimization/85876
718 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
719 beyond the original fence.
720
721 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
722
723 * config.gcc: Mark spu* targets as deprecated/obsolete.
724
725 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
726
727 * config/s390/s390-builtin-types.def: New builtin function type
728 definitions. Remove unused types.
729 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
730 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
731 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
732 overloaded builtins.
733 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
734 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
735 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
736 (vec_double, vec_signed, vec_unsigned): Define to use the new
737 overloaded builtins.
738 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
739 Remove expanders.
740
741 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
742
743 * config/s390/s390-builtin-types.def: New builtin function type
744 definitions.
745 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
746 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
747 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
748 (s390_vstrszh, s390_vstrszf): New low-level builtins.
749 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
750 constant definitions.
751 * config/s390/vecintrin.h (vec_search_string_cc)
752 (vec_search_string_until_zero_cc): New builtin name definitions.
753 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
754 expanders.
755 ("vec_vstrs<mode>"): New insn definition.
756
757 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
758
759 * config/s390/s390-builtin-types.def: Add new builtin function
760 types.
761 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
762 New overloaded builtins.
763 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
764 s390_vsrd.
765 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
766 (UNSPEC_VEC_SLDBYTE): ... this.
767 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
768 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
769 definitions.
770 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
771 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
772 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
773
774 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
775
776 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
777 New insn definition.
778 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
779 * config/s390/vector.md (V_HW_HSD): ... here.
780
781 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
782
783 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
784 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
785 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
786 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
787 New insn definitions.
788
789 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
790
791 * config/s390/s390-builtin-types.def: Add new builtin function type.
792 * config/s390/s390-builtins.def: Add overloaded builtin
793 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
794 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
795 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
796 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
797 ("eltswap<mode>"): New expander.
798 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
799 insn definitions.
800
801 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
802
803 * config/s390/s390-builtin-types.def: Add new builtin function types.
804 * config/s390/s390-builtins.def: Add overloaded builtin
805 s390_vec_revb. Add low-level builtins for vlbr and vstbr
806 instructions.
807 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
808 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
809 ("bswap<mode>"): New expander.
810 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
811
812 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
813
814 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
815 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
816 vector builtin version number in __VEC__.
817
818 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
819
820 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
821 iterators.
822 (SFSI): New mode attribute.
823 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
824 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
825 rename to ...
826 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
827 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
828 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
829 ("floatsi<mode>2"): Add wcefb instruction.
830
831 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
832
833 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
834 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
835 mode iterators.
836 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
837 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
838 support 32 bit fp-int conversions. Rename to ...
839 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
840 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
841 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
842 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
843 ... to these.
844
845 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
846
847 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
848 if-then-else constructs if we can use the select instruction.
849 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
850
851 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
852
853 * config/s390/s390.md ("*popcountdi_arch13_cc")
854 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
855 definition.
856 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
857 Append _z196 to make it ...
858 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
859 ("popcounthi2_z196"): ... this.
860 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
861 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
862
863 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
864
865 * config/s390/s390.c (s390_canonicalize_comparison): Convert
866 certain compares for arch13 in order to make use of the condition
867 code result produced by the new instructions.
868 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
869 nxrk, and nxgrk instruction patterns.
870 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
871 (inv_no): Add new code iterator together with some attributes.
872 ("*andc_split_<mode>"): Disable splitter for arch13.
873 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
874 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
875 ("*<ANDOR:bitops_name>c<GPR:mode>")
876 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
877 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
878 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
879 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
880
881 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
882
883 * common/config/s390/s390-common.c (processor_flags_table): New
884 entry for arch13.
885 * config.gcc: Support arch13 with the --with-arch= configure flag.
886 * config/s390/driver-native.c (s390_host_detect_local_cpu):
887 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
888 * config/s390/s390.c (s390_get_sched_attrmask)
889 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
890 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
891 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
892 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
893 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
894 definitions.
895 * config/s390/s390.opt: Support arch13 as processor type in
896 command line options.
897
898 2019-04-02 Martin Liska <mliska@suse.cz>
899
900 PR translation/89912
901 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
902 Fix param description of graphite-max-arrays-per-scop.
903
904 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
905
906 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
907 (ASAN_CC1_SPEC): Use it in 64-bit mode.
908 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
909
910 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
911
912 PR rtl-optimization/85412
913 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
914 sel_sched_region_1, not after.
915
916 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
917
918 PR rtl-optimization/86928
919 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
920 compute_live if necessary.
921 (sel_redirect_edge_and_branch): Likewise.
922
923 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
924
925 PR rtl-optimization/89865
926 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
927 register if it is a part of small class.
928
929 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
930
931 PR rtl-optimization/87273
932 * sel-sched-ir.c (merge_fences): Remove assert.
933
934 2019-04-01 Richard Biener <rguenther@suse.de>
935
936 PR tree-optimization/46590
937 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
938 (dom_walker::m_reachability): Add in place of...
939 (dom_walker::m_skip_unreachable_blocks): ...this.
940 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
941 Move complex initialization ...
942 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
943 lazily and initialize edge flags on each invocation.
944 (dom_walker::bb_reachable): Use m_reachability.
945
946 2019-04-01 Martin Liska <mliska@suse.cz>
947
948 PR driver/89861
949 * opt-suggestions.c (option_proposer::build_option_suggestions):
950 Add variant without any argument in order to provide better
951 hints.
952
953 2019-04-01 Richard Biener <rguenther@suse.de>
954
955 PR c/71598
956 * gimple.c: Include langhooks.h.
957 (gimple_get_alias_set): Treat enumeral types as the underlying
958 integer type.
959
960 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
961 Eric Botcazou <ebotcazou@adacore.com>
962
963 PR rtl-optimization/89862
964 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
965 that operates on the full registers for WORD_REGISTER_OPERATIONS
966 architectures.
967
968 2019-03-29 Jim Wilson <jimw@sifive.com>
969
970 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
971 Clear MASK_RVC and then set if C subset supported.
972
973 2019-03-29 Jakub Jelinek <jakub@redhat.com>
974
975 PR c/89872
976 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
977 non-addressable complit into its initializer if it is volatile.
978
979 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
980
981 * opts-common.c (integral_argument): Set errno properly in one case.
982
983 2019-03-29 Martin Liska <mliska@suse.cz>
984
985 * doc/invoke.texi: Remove -Wchkp from documentation.
986
987 2019-03-29 Martin Liska <mliska@suse.cz>
988
989 * dbgcnt.c (print_limit_reach): New function.
990 (dbg_cnt): Use it.
991
992 2019-03-29 Martin Liska <mliska@suse.cz>
993
994 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
995 (dbg_cnt_process_opt): Parse first tokens aas
996 dbg_cnt_process_single_pair is also using strtok.
997
998 2019-03-29 Jakub Jelinek <jakub@redhat.com>
999
1000 PR rtl-optimization/87485
1001 * function.c (expand_function_end): Move stack_protect_epilogue
1002 before loading of return value into hard register(s).
1003
1004 2019-03-28 Jakub Jelinek <jakub@redhat.com>
1005
1006 PR middle-end/89621
1007 * tree-inline.h (struct copy_body_data): Add
1008 dont_remap_vla_if_no_change flag.
1009 * tree-inline.c (remap_type_3, remap_type_2): New functions.
1010 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
1011 and remap_type_2 returns false.
1012 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
1013 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
1014 only from where it is copied to nested contexts.
1015
1016 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
1017
1018 PR target/89865
1019 * config/i386/i386.md (RMW operation with LEA peephole):
1020 Use LEAMODE mode attribute instead of SWI mode iterator for
1021 LEA pattern.
1022
1023 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
1024
1025 PR target/89848
1026 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
1027 Also process XEXP (src, 0) of a shift insn.
1028
1029 2019-03-28 David Malcolm <dmalcolm@redhat.com>
1030
1031 PR middle-end/89725
1032 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
1033 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
1034
1035 2019-03-28 Jakub Jelinek <jakub@redhat.com>
1036
1037 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
1038 test.
1039 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
1040 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
1041 immediately after first one with df_analyze in between, but rather
1042 process all bbs, queueing ones that need second pass in a worklist,
1043 df_analyze, process queued debug insn changes and if second pass is
1044 needed, process bbs from worklist, df_analyze, process queued debug
1045 insns again.
1046
1047 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
1048 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
1049 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
1050
1051 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
1052
1053 PR c/79022
1054 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
1055 definition.
1056
1057 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
1058
1059 PR target/85667
1060 * config/i386/i386.c (ix86_function_value_1): Call the newly added
1061 function for 32-bit MS_ABI.
1062 (function_value_ms_32): New function.
1063
1064 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
1065
1066 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
1067 (movdi): Call gen_movdi_symbol_save_scc.
1068 (gen_movdi_symbol_save_scc): New insn and split.
1069
1070 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
1071
1072 PR rtl-optimization/89313
1073 * function.c (matching_constraint_num): New static function.
1074 (match_asm_constraints_1): Use it. Fixup white space and comment.
1075 Don't replace inputs with non-matching constraints which conflict
1076 with early clobber outputs.
1077
1078 2019-03-27 Jeff Law <law@redhat.com>
1079
1080
1081 PR rtl-optimization/87761
1082 PR rtl-optimization/89826
1083 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
1084 slightly later.
1085 (pass_cprop_hardreg::execute): Call df_analyze after adding the
1086 note problem to get REG_DEAD/REG_UNUSED notes updated.
1087
1088 2019-03-27 Richard Biener <rguenther@suse.de>
1089
1090 PR tree-optimization/89463
1091 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
1092 queue edges to remove.
1093 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
1094 dead stmts. Delay edge removal until PHIs are removed to
1095 make debug-stmt creation not confused by seemingly degenerate
1096 PHIs.
1097
1098 2019-03-27 Alan Modra <amodra@gmail.com>
1099
1100 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
1101 throughout file.
1102 * config/rs6000/darwin.h: Likewise.
1103 * config/rs6000/rs6000.c: Likewise.
1104
1105 2019-03-27 Alan Modra <amodra@gmail.com>
1106
1107 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
1108 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
1109
1110 2019-03-26 Andrew Waterman <andrew@sifive.com>
1111 Jim Wilson <jimw@sifive.com>
1112
1113 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
1114 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
1115 (generic_idivdi, generic_fmul_single, generic_fmul_double)
1116 (generic_fdiv, generic_fsqrt): Add check for generic tune.
1117 (generic_alu): Add auipc to type list.
1118 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
1119 (riscv_microarchitecture): Declare.
1120 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
1121 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
1122 field.
1123 (riscv_microarchitecture): New.
1124 (sifive_7_tune_info): New.
1125 (riscv_cpu_info_table): Add microarchitecture value for rocket and
1126 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
1127 entries.
1128 (riscv_store_data_bypass_p): New.
1129 (riscv_option_override): Set riscv_microarchitecture from
1130 cpu->microarchitecture.
1131 * config/riscv/riscv.md: Include sifive-7.md.
1132 (type): Add auipc.
1133 (tune): New.
1134 (auipc<mode>): Change type to auipc.
1135 (restore_stack_nonlocal): New.
1136 * config/riscv/sifive-7.md: New.
1137 * doc/invoke.texi (RISC-V Options): Update mtune docs.
1138
1139 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
1140
1141 PR target/89827
1142 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
1143 Also process XEXP (src, 0) of a shift insn.
1144
1145 2019-03-26 Richard Biener <rguenther@suse.de>
1146
1147 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
1148 (copy_debug_stmt): Likewise.
1149 (expand_call_inline): Likewise.
1150 (copy_bb): Avoid redundant lookup & set of gimple_block.
1151 * gimple-low.c (lower_gimple_return): Likewise.
1152 (lower_builtin_setjmp): Likewise.
1153
1154 2019-03-26 Jakub Jelinek <jakub@redhat.com>
1155
1156 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
1157 is constant 0, turn into static const data member initialized to false.
1158 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
1159 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
1160
1161 2019-03-26 Jason Merrill <jason@redhat.com>
1162 Jakub Jelinek <jakub@redhat.com>
1163
1164 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
1165 method.
1166 (mem_alloc_description::release_object_overhead): Fix comment typos.
1167 * hash-table.h (hash_table::~hash_table): Call
1168 release_instance_overhead only if m_entries is non-NULL, otherwise
1169 call unregister_descriptor.
1170
1171 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
1172
1173 PR tree-optimization/81740
1174 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
1175 In case of outer loop vectorization, check for backward dependence
1176 at the inner loop if outer loop dependence is reversed.
1177
1178 2019-03-26 Alan Modra <amodra@gmail.com>
1179
1180 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
1181 rs6000_vector_mem init. Correct wI and wJ comment.
1182
1183 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
1184
1185 PR rtl-optimization/88347
1186 PR rtl-optimization/88423
1187 * sched-deps.c (sched_analyze_insn): Take into account that for
1188 tablejumps the barrier appears after a label and a jump_table_data.
1189
1190 2019-03-25 Martin Sebor <msebor@redhat.com>
1191
1192 PR c/89812
1193 * c-common.c (check_user_alignment): Rename local. Correct maximum
1194 alignment in diagnostic. Avoid assuming argument fits in SHWI,
1195 convert it to UHWI when it fits.
1196
1197 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
1198
1199 PR debug/86964
1200 * dwarf2out.c (premark_used_variables): New function.
1201 (prune_unused_types_walk): Do not mark not premarked external
1202 variables.
1203 (prune_unused_types): Call premark_used_variables.
1204
1205 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
1206
1207 PR rtl-optimization/89676
1208 * lra-constraints.c (curr_insn_transform): Do match reload for
1209 early clobbers when the match was successful only for different
1210 registers.
1211
1212 2019-03-25 Martin Sebor <msebor@redhat.com>
1213
1214 * doc/extend.texi (Common Type Attributes): Document vector_size.
1215 (Common Variable Attributes): Mention size constraint. Correct
1216 quoting and typos.
1217 (Vector Extensions): Use @dfn when defining bas type. Clarify
1218 base type and size constraints.
1219
1220 2019-03-25 Richard Biener <rguenther@suse.de>
1221
1222 PR tree-optimization/89789
1223 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
1224 changes from non-undefined back to undefined.
1225
1226 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
1227
1228 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
1229 heap string and a gc string, but since this variable is unknown to
1230 ggc the gc string might get reused and corrupted. Fixed by always
1231 using a heap string.
1232
1233 2019-03-25 Richard Biener <rguenther@suse.de>
1234
1235 PR tree-optimization/89779
1236 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
1237 to remove IV defs, delay actual removal.
1238 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
1239 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
1240 very end, properly also reset loop control IV information.
1241
1242 2019-03-25 Richard Biener <rguenther@suse.de>
1243
1244 PR tree-optimization/89802
1245 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
1246 move EH data to folded stmt.
1247
1248 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
1249
1250 * config/s390/s390-builtin-types.def: Remove few unused types and
1251 fix sort order for others.
1252
1253 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
1254
1255 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
1256 expected and found types with -mdebug during builtin matching.
1257
1258 2019-03-25 Richard Biener <rguenther@suse.de>
1259
1260 PR middle-end/89790
1261 * fold-const.c (operand_equal_p): Revert last change with
1262 updated comment.
1263
1264 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
1265
1266 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
1267 notes for the result of the __tls_get_addr calls.
1268 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
1269
1270 2019-03-24 Jeff Law <law@redhat.com>
1271
1272 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
1273
1274 PR rtl-optimization/87761
1275 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
1276 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
1277 as needed.
1278 (pass_cprop_hardreg::execute): Add df note problem and defer insn
1279 rescans. Reprocess blocks as needed, calling df_analyze before
1280 reprocessing. Always call df_analyze before fixing up debug bind
1281 insns.
1282
1283 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
1284
1285 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
1286 big endian.
1287
1288 2019-03-22 Andrew Pinski <apinski@marvell.com>
1289
1290 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
1291 attrribute for uxtw.
1292
1293 2019-03-26 Jeff Law <law@redhat.com>
1294
1295 PR rtl-optimization/87761
1296 * config/mips/mips-protos.h (mips_split_move): Add new argument.
1297 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
1298 (mips_split_move): Accept new INSN argument. Try to forward SRC
1299 into the next instruction.
1300 (mips_split_move_insn): Pass INSN through to mips_split_move.
1301
1302 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
1303
1304 PR rtl-optimization/89676
1305 * lra-constraints.c (curr_insn_transform): Do match reload for
1306 early clobbers even if the match was successful.
1307
1308 2019-03-22 Jakub Jelinek <jakub@redhat.com>
1309
1310 PR c++/87481
1311 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
1312
1313 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
1314
1315 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
1316
1317 2019-03-22 Jakub Jelinek <jakub@redhat.com>
1318
1319 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
1320 <avx512>_fmsub_<mode>_mask3<round_name>,
1321 <avx512>_fnmadd_<mode>_mask3<round_name>,
1322 <avx512>_fnmsub_<mode>_mask3<round_name>,
1323 avx512f_vmfmadd_<mode>_mask3<round_name>,
1324 avx512f_vmfmsub_<mode>_mask3<round_name>,
1325 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
1326 instead of register_operand and %v instead of v for match_operand 1.
1327 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
1328 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
1329 <round_nimm_predicate> instead of register_operand and %v instead of v
1330 for match_operand 1.
1331
1332 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
1333 <avx512>_fmadd_<mode>_mask3<round_name>,
1334 <avx512>_fmsub_<mode>_mask<round_name>,
1335 <avx512>_fmsub_<mode>_mask3<round_name>,
1336 <avx512>_fnmadd_<mode>_mask<round_name>,
1337 <avx512>_fnmadd_<mode>_mask3<round_name>,
1338 <avx512>_fnmsub_<mode>_mask<round_name>,
1339 <avx512>_fnmsub_<mode>_mask3<round_name>,
1340 <avx512>_fmaddsub_<mode>_mask<round_name>,
1341 <avx512>_fmaddsub_<mode>_mask3<round_name>,
1342 <avx512>_fmsubadd_<mode>_mask<round_name>,
1343 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
1344 <round_nimm_predicate> instead of nonimmediate_operand.
1345 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
1346 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
1347 Use register_operand instead of <round_nimm_predicate> for the
1348 operand that needs to match output.
1349 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
1350 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
1351 Likewise. Formatting fixes.
1352
1353 PR target/89784
1354 * config/i386/i386.c (enum ix86_builtins): Remove
1355 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
1356 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
1357 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
1358 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
1359 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
1360 __builtin_ia32_vfmsubss3_mask3): New builtins.
1361 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
1362 avx512f_vmfmadd_<mode>_mask3<round_name>,
1363 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
1364 *avx512f_vmfmsub_<mode>_mask<round_name>,
1365 avx512f_vmfmsub_<mode>_mask3<round_name>,
1366 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
1367 *avx512f_vmfnmadd_<mode>_mask<round_name>,
1368 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
1369 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
1370 *avx512f_vmfnmsub_<mode>_mask<round_name>,
1371 avx512f_vmfnmsub_<mode>_mask3<round_name>,
1372 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
1373 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
1374 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
1375 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
1376 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
1377 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
1378 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
1379 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
1380 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
1381 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
1382 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
1383 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
1384 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
1385 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
1386 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
1387 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
1388 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
1389 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
1390 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
1391 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
1392 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
1393 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
1394
1395 2019-03-21 Martin Sebor <msebor@redhat.com>
1396
1397 PR tree-optimization/89350
1398 * builtins.c (compute_objsize): Also ignore offsets whose upper
1399 bound is negative.
1400 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
1401 (builtin_memref::builtin_memref): Initialize new member.
1402 Allow EXPR to be null.
1403 (builtin_memref::extend_offset_range): Replace local with a member.
1404 Avoid assuming pointer offsets are unsigned.
1405 (builtin_memref::set_base_and_offset): Determine base object
1406 before computing offset range.
1407 (builtin_access::builtin_access): Handle memset.
1408 (builtin_access::generic_overlap): Replace local with a member.
1409 (builtin_access::strcat_overlap): Same.
1410 (builtin_access::overlap): Same.
1411 (maybe_diag_overlap): Same.
1412 (maybe_diag_access_bounds): Same.
1413 (wrestrict_dom_walker::check_call): Handle memset.
1414 (check_bounds_or_overlap): Same.
1415
1416 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
1417 Jakub Jelinek <jakub@redhat.com>
1418
1419 PR lto/89692
1420 * tree.c (fld_type_variant, fld_incomplete_type_of,
1421 fld_process_array_type): Call fld->pset.add and don't call
1422 add_tree_to_fld_list if it returns true.
1423 (free_lang_data_in_type): Similarly with self-recursive call. Purge
1424 non-marked types from TYPE_NEXT_VARIANT list.
1425 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
1426
1427 2019-03-21 Jakub Jelinek <jakub@redhat.com>
1428
1429 * hash-table.h (hash_table): Add Lazy template parameter defaulted
1430 to false, if true, don't alloc_entries during construction, but defer
1431 it to the first method that needs m_entries allocated.
1432 (hash_table::hash_table, hash_table::~hash_table,
1433 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
1434 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
1435 hash_table::clear_slot, hash_table::traverse_noresize,
1436 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
1437 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
1438 false.
1439 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
1440 NO_INSERT instead of find_with_hash.
1441 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
1442 hash_set::m_table): Add Lazy to template params of hash_table.
1443 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
1444 * attribs.c (test_attribute_exclusions): Likewise.
1445 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
1446 hash_set. Add tests for hash_set with Lazy = true.
1447
1448 2019-03-21 Richard Biener <rguenther@suse.de>
1449
1450 PR tree-optimization/89779
1451 * tree.c (tree_nop_conversion): Consolidate and fix defensive
1452 checks with respect to released SSA names now having error_mark_node
1453 type.
1454 * fold-const.c (operand_equal_p): Likewise.
1455
1456 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
1457
1458 PR target/89775
1459 * config/s390/s390.c (global_not_special_regno_p): Move to make it
1460 available to ...
1461 (s390_optimize_register_info): Use global_not_special_regno_p to
1462 check for global regs.
1463
1464 2019-03-20 Jakub Jelinek <jakub@redhat.com>
1465
1466 PR target/89752
1467 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
1468 update this_alternative nor this_alternative_set.
1469
1470 2019-03-19 Jim Wilson <jimw@sifive.com>
1471
1472 PR target/89411
1473 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
1474 align, size, offset. Use them to handle a BLKmode reference. Update
1475 comment.
1476 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
1477
1478 2019-03-19 Jakub Jelinek <jakub@redhat.com>
1479
1480 PR rtl-optimization/89768
1481 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
1482 instead of GEN_INT.
1483 (unroll_loop_runtime_iterations): Likewise.
1484
1485 2019-03-19 Martin Sebor <msebor@redhat.com>
1486
1487 PR tree-optimization/89644
1488 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
1489 rather than endptr as an indicator of nul-termination.
1490
1491 PR tree-optimization/89644
1492 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
1493 arrays in determining sequence sizes in strncpy and stpncpy.
1494
1495 2019-03-19 Martin Liska <mliska@suse.cz>
1496
1497 PR middle-end/89737
1498 * predict.c (combine_predictions_for_bb): Empty likely_edges and
1499 unlikely_edges if there's an edge that belongs to both these sets.
1500
1501 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
1502
1503 PR target/89746
1504 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
1505 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
1506 go via a stack temporary.
1507
1508 2019-03-19 Jakub Jelinek <jakub@redhat.com>
1509
1510 PR target/89378
1511 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
1512 instead of gen_rtx_SUBREG.
1513 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
1514
1515 2019-03-19 Richard Biener <rguenther@suse.de>
1516
1517 PR debug/88389
1518 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
1519
1520 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
1521
1522 PR lto/87809
1523 PR lto/89335
1524 * tree.c (free_lang_data_in_decl): Do not free context of C++
1525 destrutors.
1526
1527 2019-03-19 Jakub Jelinek <jakub@redhat.com>
1528
1529 PR target/89506
1530 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
1531 subs for the first alternative except when operands[3] is 1.
1532
1533 PR target/89752
1534 * gimplify.c (gimplify_asm_expr): For output argument with
1535 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
1536 diagnose error.
1537
1538 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
1539
1540 PR rtl-optimization/89753
1541 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
1542 explicit unrolling factor even more robust.
1543
1544 2019-03-19 Jakub Jelinek <jakub@redhat.com>
1545
1546 PR target/89726
1547 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
1548 compensation use x2 += 1 instead of x2 -= -1 and when honoring
1549 signed zeros, do another copysign after the compensation.
1550
1551 2019-03-18 Martin Sebor <msebor@redhat.com>
1552
1553 PR tree-optimization/89720
1554 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
1555 more conservatively, the same as anti-range.
1556
1557 2019-03-18 Richard Biener <rguenther@suse.de>
1558
1559 PR middle-end/88945
1560 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
1561 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
1562 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
1563 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
1564
1565 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
1566
1567 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
1568 Extend queue to 1024 entries.
1569 Add "consumed" field.
1570 (gomp_print_output): Remove print_index parameter.
1571 Add final parameter.
1572 Change limit to unsigned.
1573 Use consumed field to implement circular buffer.
1574 Detect interrupted print in final pass.
1575 Flush output at the end.
1576 (run): Update gomp_print_output usage.
1577 (main): Initialize kernargs->output_data.consumed.
1578
1579 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
1580
1581 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
1582 calculation of the minimum number of scalar iterations for
1583 fully-predicated loops.
1584
1585 2019-03-18 Martin Jambor <mjambor@suse.cz>
1586
1587 PR tree-optimization/89546
1588 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
1589 any propagation to its children took place.
1590
1591 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
1592
1593 PR target/89627
1594 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
1595 parameter, and make use of it.
1596 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
1597
1598 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
1599
1600 * config/arc/arc.opt (mcode-density-frame): Get the inital value
1601 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
1602 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
1603 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
1604 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
1605 match what the ops is doing.
1606 (push_multi_fp_blink): Likewise.
1607 * config/arc/arc.c (arc_override_options): Enable enter/leave when
1608 compiling for size and elf target.
1609 (arc_save_callee_enter): Adjust note to match what enter/leave
1610 operation does.
1611
1612 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
1613
1614 * config/arc/arc.md (tst_movb): Fix constraint.
1615
1616 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
1617
1618 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
1619
1620 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
1621
1622 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
1623 * config/arc/arc.c (arc_conditional_register_usage): Remove all
1624 reg_alloc_order references.
1625 (size_alloc_order): Define.
1626 (arc_adjust_reg_alloc_order): New function.
1627 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
1628 order.
1629 (ADJUST_REG_ALLOC_ORDER): Define.
1630 (HONOR_REG_ALLOC_ORDER): Likewise.
1631
1632 2019-03-18 Richard Biener <rguenther@suse.de>
1633
1634 PR target/87561
1635 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
1636 loads and stores a bit more.
1637
1638 2019-03-18 Richard Biener <rguenther@suse.de>
1639
1640 PR target/87561
1641 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
1642 load pessimization to stores as well.
1643
1644 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
1645
1646 PR middle-end/86979
1647 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
1648 successor, use NULL as its av set.
1649
1650 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
1651
1652 PR rtl-optimization/89721
1653 * lra-constraints (invariant_p): Return false if side_effects_p holds.
1654
1655 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
1656
1657 PR target/87532
1658 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1659 When handling vec_extract, use modular arithmetic to allow
1660 constant selectors greater than vector length.
1661 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
1662 V1TImode vectors to have constant selector values greater than 0.
1663 Use modular arithmetic to compute vector index.
1664 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
1665 index for in-memory vectors. Correct code generation for
1666 in-register vectors.
1667 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
1668 compute index.
1669
1670 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
1671
1672 PR c++/88534
1673 PR c++/88537
1674 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
1675 VAR_DECL args.
1676
1677 2019-03-15 Jakub Jelinek <jakub@redhat.com>
1678
1679 PR c++/89709
1680 * tree.c (inchash::add_expr): Strip any location wrappers.
1681 * fold-const.c (operand_equal_p): Move stripping of location wrapper
1682 after hash verification.
1683
1684 PR debug/89704
1685 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
1686 SIGN_EXTEND and ZERO_EXTEND.
1687
1688 2019-03-14 Jason Merrill <jason@redhat.com>
1689 Jakub Jelinek <jakub@redhat.com>
1690
1691 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
1692 than if is_empty (*slot).
1693 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
1694 existing elt and for elt removal.
1695 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
1696 of already removed elt.
1697
1698 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
1699
1700 PR target/89650
1701 * config/i386/i386.c (remove_partial_avx_dependency): Handle
1702 REG_EH_REGION note.
1703
1704 2019-03-14 Martin Liska <mliska@suse.cz>
1705
1706 PR other/89712
1707 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
1708
1709 2019-03-14 Richard Biener <rguenther@suse.de>
1710
1711 PR target/89711
1712 * config/i386/i386.c (make_resolver_func): Properly set
1713 DECL_CONTEXT on the RESULT_DECL.
1714 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
1715
1716 2019-03-14 Richard Biener <rguenther@suse.de>
1717
1718 * gimple-pretty-print.c: Include cfgloop.h.
1719 (dump_gimple_phi): Adjust.
1720 (dump_gimple_bb_header): Dump loop header for GIMPLE.
1721 (pp_cfg_jump): Adjust.
1722 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
1723 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
1724 (lower_phi_internal_fn): Remove.
1725 (verify_gimple_call): Remove IFN_PHI special-casing.
1726 (dump_function_to_file): Dump IL state.
1727 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
1728 done to deal with PHI nodes being present in non-SSA state.
1729
1730 2019-03-14 Jakub Jelinek <jakub@redhat.com>
1731
1732 PR ipa/89684
1733 * multiple_target.c (create_dispatcher_calls): Change
1734 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
1735 In the node->iterate_referring loop, push *ref rather than ref, call
1736 ref->remove_reference () and always pass 0 to iterate_referring.
1737
1738 PR rtl-optimization/89679
1739 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
1740 would contain a paradoxical SUBREG.
1741
1742 2019-03-14 Richard Biener <rguenther@suse.de>
1743
1744 PR tree-optimization/89710
1745 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
1746 safe_dyn_cast.
1747
1748 2019-03-14 Martin Liska <mliska@suse.cz>
1749
1750 * coverage.c (coverage_begin_function): Stream also
1751 end_column.
1752 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
1753 documentation about function declaration location.
1754 * gcov-dump.c (tag_function): Print whole range
1755 of function declaration.
1756 * gcov.c (struct function_info): Add end_column field.
1757 (function_info::function_info): Initialize it.
1758 (output_json_intermediate_file): Output {start,end}_column
1759 fields.
1760 (read_graph_file): Read end_column.
1761
1762 2019-03-14 Richard Biener <rguenther@suse.de>
1763
1764 PR middle-end/89698
1765 * fold-const.c (operand_equal_p): For INDIRECT_REF check
1766 that the access types are similar.
1767
1768 2019-03-14 Jakub Jelinek <jakub@redhat.com>
1769
1770 PR tree-optimization/89703
1771 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
1772 aren't compatible also with builtin_decl_explicit. Check pure
1773 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
1774 and BUILT_IN_STPNCPY{,_CHK}.
1775
1776 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
1777
1778 PR target/89523
1779 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
1780 addr32 prefix to VSIB address for X32.
1781 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
1782 "%M2" to opcode.
1783 (*avx512pf_gatherpf<mode>df_mask): Likewise.
1784 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
1785 (*avx512pf_scatterpf<mode>df_mask): Likewise.
1786 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
1787 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
1788 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
1789 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
1790 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
1791 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
1792 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
1793 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
1794 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
1795 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
1796 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
1797 (*avx512f_scatterdi<mode>): Likewise.
1798
1799 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
1800
1801 PR target/85860
1802 * lra-constraints.c (inherit_in_ebb): Update
1803 potential_reload_hard_regs along with live_hard_regs.
1804
1805 2019-03-13 Jakub Jelinek <jakub@redhat.com>
1806
1807 PR debug/89498
1808 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
1809 DWARF_OFFSET_SIZE.
1810 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
1811
1812 2019-03-13 Martin Sebor <msebor@redhat.com>
1813
1814 PR tree-optimization/89662
1815 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
1816 has a size.
1817
1818 2019-03-13 Richard Biener <rguenther@suse.de>
1819
1820 PR middle-end/89677
1821 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
1822 throw FP expressions at tree-affine.
1823
1824 2019-03-14 Richard Biener <rguenther@suse.de>
1825
1826 * tree-pretty-print.c (dump_generic_node): For -gimple properly
1827 dump negative integer constants using _Literal (type) -num.
1828
1829 2019-03-13 Jakub Jelinek <jakub@redhat.com>
1830
1831 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
1832 nonlocal_value member.
1833
1834 PR middle-end/88588
1835 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
1836 (ipa_simd_modify_function_body): Handle PHIs.
1837
1838 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
1839
1840 * config/s390/s390.c (s390_option_override_internal): Use more
1841 aggressive inlining parameters.
1842
1843 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
1844
1845 * config/s390/3906.md: New file.
1846 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
1847 (LONGRUNNING_THRESHOLD): Remove.
1848 (MAX_SCHED_MIX_SCORE): Decrease.
1849 (MAX_SCHED_MIX_DISTANCE): Decrease.
1850 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
1851 (struct s390_sched_state): New struct to hold scheduling state.
1852 (S390_SCHED_STATE_NORMAL): Remove.
1853 (S390_SCHED_STATE_CRACKED): Remove.
1854 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
1855 (s390_get_sched_attrmask): Use new attribute.
1856 (s390_get_unit_mask): Use new units.
1857 (s390_is_fpd): New function.
1858 (s390_is_fxd): New function.
1859 (s390_is_longrunning): New function.
1860 (s390_sched_score): Use new functions.
1861 (s390_sched_reorder): Likewise.
1862 (s390_sched_variable_issue): Rework and use new functions.
1863 (s390_sched_init): Use new functions.
1864 * config/s390/s390.h (s390_tune_attr): Add z14.
1865 * config/s390/s390.md: Add z14.
1866
1867 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
1868
1869 * config/s390/2964.md: Update pipeline description.
1870 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
1871 (LONGRUNNING_THRESHOLD): Remove.
1872 (LATENCY_FACTOR): Remove.
1873 (s390_get_unit_mask): Add unit.
1874 (s390_sched_score): Use fxd/fpd.
1875 (s390_sched_variable_issue): Use fxd/fpd.
1876
1877 2019-03-12 Martin Liska <mliska@suse.cz>
1878
1879 * config/i386/i386.c: Reword an error message.
1880
1881 2019-03-12 Martin Jambor <mjambor@suse.cz>
1882
1883 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
1884 terminate with newline.
1885
1886 2019-03-12 Jakub Jelinek <jakub@redhat.com>
1887
1888 PR target/52726
1889 * config/s390/s390.md (tabort): Use %wd instead of
1890 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
1891 letters and periods.
1892 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
1893 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
1894 's with %< and %>.
1895
1896 PR middle-end/89663
1897 * builtins.c (expand_builtin_int_roundingfn,
1898 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
1899 gcc_unreachable if validate_arglist fails.
1900
1901 2019-03-12 Richard Biener <rguenther@suse.de>
1902
1903 PR tree-optimization/89664
1904 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
1905 free the occurance tree after the early out.
1906
1907 2019-03-11 Jakub Jelinek <jakub@redhat.com>
1908
1909 PR middle-end/89655
1910 PR bootstrap/89656
1911 * vr-values.c (vr_values::update_value_range): If
1912 old_vr->varying_p (), don't update it, make new_vr also VARYING
1913 and return false.
1914
1915 2019-03-11 Martin Liska <mliska@suse.cz>
1916
1917 * config/aarch64/aarch64.c (aarch64_override_options_internal):
1918 Fix double string quoting.
1919
1920 2019-03-11 Martin Liska <mliska@suse.cz>
1921
1922 * collect-utils.c (collect_wait): Wrap apostrophes
1923 in gcc internal format with %'.
1924 * collect2.c (main): Likewise.
1925 (scan_prog_file): Likewise.
1926 (scan_libraries): Likewise.
1927 * config/i386/i386.c (ix86_expand_call): Likewise.
1928 (ix86_handle_interrupt_attribute): Likewise.
1929 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
1930 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
1931 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
1932 * lto-wrapper.c (find_crtoffloadtable): Likewise.
1933 * symtab.c (symtab_node::verify_base): Likewise.
1934 * tree-cfg.c (verify_gimple_label): Likewise.
1935 * tree.c (verify_type_variant): Likewise.
1936
1937 2019-03-11 Martin Liska <mliska@suse.cz>
1938
1939 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
1940 in a string format message and fix GNU coding style.
1941 (expand_builtin_set_thread_pointer): Likewise.
1942 * common/config/aarch64/aarch64-common.c
1943 (aarch64_rewrite_selected_cpu): Likewise.
1944 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
1945 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
1946 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
1947 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
1948 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
1949 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
1950 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
1951 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
1952 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
1953 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
1954 Likewise.
1955 * common/config/riscv/riscv-common.c
1956 (riscv_subset_list::parsing_subset_version): Likewise.
1957 (riscv_subset_list::parse_std_ext): Likewise.
1958 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
1959 (riscv_subset_list::parse): Likewise.
1960 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
1961 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
1962 (aarch64_override_options_internal): Likewise.
1963 (aarch64_validate_mcpu): Likewise.
1964 (aarch64_validate_march): Likewise.
1965 (aarch64_validate_mtune): Likewise.
1966 (aarch64_override_options): Likewise.
1967 * config/alpha/alpha.c (alpha_option_override): Likewise.
1968 * config/arc/arc.c (arc_init): Likewise.
1969 (parse_mrgf_banked_regs_option): Likewise.
1970 (arc_override_options): Likewise.
1971 (arc_expand_builtin_aligned): Likewise.
1972 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
1973 (arm_expand_builtin): Likewise.
1974 * config/arm/arm.c (arm_option_check_internal): Likewise.
1975 (arm_configure_build_target): Likewise.
1976 (arm_option_override): Likewise.
1977 (arm_options_perform_arch_sanity_checks): Likewise.
1978 (arm_handle_cmse_nonsecure_entry): Likewise.
1979 (arm_handle_cmse_nonsecure_call): Likewise.
1980 (arm_tls_referenced_p): Likewise.
1981 (thumb1_expand_prologue): Likewise.
1982 * config/avr/avr.c (avr_option_override): Likewise.
1983 * config/bfin/bfin.c (bfin_option_override): Likewise.
1984 * config/c6x/c6x.c (c6x_option_override): Likewise.
1985 * config/cr16/cr16.c (cr16_override_options): Likewise.
1986 * config/cris/cris.c (cris_option_override): Likewise.
1987 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
1988 * config/darwin-c.c (macosx_version_as_macro): Likewise.
1989 * config/darwin.c (darwin_override_options): Likewise.
1990 * config/frv/frv.c (frv_expand_builtin): Likewise.
1991 * config/h8300/h8300.c (h8300_option_override): Likewise.
1992 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
1993 (ix86_option_override_internal): Likewise.
1994 (warn_once_call_ms2sysv_xlogues): Likewise.
1995 (ix86_expand_prologue): Likewise.
1996 (split_stack_prologue_scratch_regno): Likewise.
1997 (ix86_warn_parameter_passing_abi): Likewise.
1998 * config/ia64/ia64.c (fix_range): Likewise.
1999 * config/m68k/m68k.c (m68k_option_override): Likewise.
2000 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
2001 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
2002 (mips_set_compression_mode): Likewise.
2003 * config/mmix/mmix.c (mmix_option_override): Likewise.
2004 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
2005 * config/msp430/msp430.c (msp430_option_override): Likewise.
2006 * config/nds32/nds32.c (nds32_option_override): Likewise.
2007 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
2008 (nios2_option_override): Likewise.
2009 (nios2_expand_custom_builtin): Likewise.
2010 * config/nvptx/mkoffload.c (main): Likewise.
2011 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
2012 * config/pa/pa.c (fix_range): Likewise.
2013 (pa_option_override): Likewise.
2014 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
2015 (riscv_option_override): Likewise.
2016 * config/rl78/rl78.c (rl78_option_override): Likewise.
2017 * config/rs6000/aix61.h: Likewise.
2018 * config/rs6000/aix71.h: Likewise.
2019 * config/rs6000/aix72.h: Likewise.
2020 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
2021 * config/rs6000/freebsd64.h: Likewise.
2022 * config/rs6000/linux64.h: Likewise.
2023 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
2024 (rs6000_expand_zeroop_builtin): Likewise.
2025 (rs6000_expand_mtfsb_builtin): Likewise.
2026 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
2027 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
2028 (rs6000_invalid_builtin): Likewise.
2029 (rs6000_expand_split_stack_prologue): Likewise.
2030 * config/rs6000/rtems.h: Likewise.
2031 * config/rx/rx.c (valid_psw_flag): Likewise.
2032 (rx_expand_builtin): Likewise.
2033 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
2034 * config/s390/s390.c (s390_expand_builtin): Likewise.
2035 (s390_function_profiler): Likewise.
2036 (s390_option_override_internal): Likewise.
2037 (s390_option_override): Likewise.
2038 * config/sh/sh.c (sh_option_override): Likewise.
2039 (sh_builtin_saveregs): Likewise.
2040 (sh_fix_range): Likewise.
2041 * config/sh/vxworks.h: Likewise.
2042 * config/sparc/sparc.c (sparc_option_override): Likewise.
2043 * config/spu/spu.c (spu_option_override): Likewise.
2044 (fix_range): Likewise.
2045 * config/visium/visium.c (visium_option_override): Likewise.
2046 (visium_handle_interrupt_attr): Likewise.
2047 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
2048 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
2049 (dbg_cnt_process_opt): Likewise.
2050 * dwarf2out.c (output_dwarf_version): Likewise.
2051 * except.c (expand_eh_return): Likewise.
2052 * gcc.c (defined): Likewise.
2053 (driver_handle_option): Likewise.
2054 (process_command): Likewise.
2055 (compare_files): Likewise.
2056 (driver::prepare_infiles): Likewise.
2057 (driver::do_spec_on_infiles): Likewise.
2058 (driver::maybe_run_linker): Likewise.
2059 * omp-offload.c (oacc_parse_default_dims): Likewise.
2060 * opts-global.c (handle_common_deferred_options): Likewise.
2061 * opts.c (parse_sanitizer_options): Likewise.
2062 (common_handle_option): Likewise.
2063 (enable_warning_as_error): Likewise.
2064 * passes.c (enable_disable_pass): Likewise.
2065 * plugin.c (parse_plugin_arg_opt): Likewise.
2066 (default_plugin_dir_name): Likewise.
2067 * targhooks.c (default_expand_builtin_saveregs): Likewise.
2068 (default_pch_valid_p): Likewise.
2069 * toplev.c (init_asm_output): Likewise.
2070 (process_options): Likewise.
2071 (toplev::run_self_tests): Likewise.
2072 * tree-cfg.c (verify_gimple_call): Likewise.
2073 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
2074 (tree_inlinable_function_p): Likewise.
2075 * var-tracking.c (vt_find_locations): Likewise.
2076
2077 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
2078
2079 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
2080 only on the else branch.
2081
2082 2019-03-11 Martin Liska <mliska@suse.cz>
2083
2084 * gcov.c (output_intermediate_json_line): Print function
2085 name of each line.
2086 (output_json_intermediate_file): Add new argument.
2087 * doc/gcov.texi: Document the change.
2088
2089 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
2090
2091 PR rtl-optimization/89588
2092 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
2093 explicit unrolling factor more robust.
2094
2095 2019-03-11 Richard Biener <rguenther@suse.de>
2096
2097 PR tree-optimization/89649
2098 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
2099 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
2100 on the prolog and epilog loops.
2101 (vect_loop_versioning): Return copy of loop.
2102 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
2103 on the non-vectorized version of the loop.
2104
2105 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
2106
2107 PR target/68924
2108 * config/i386/sse.md (*vec_extractv2di_0_sse):
2109 Add (=r,x) alternative and corresponding splitter.
2110
2111 2019-03-10 Martin Jambor <mjambor@suse.cz>
2112
2113 PR tree-optimization/85762
2114 PR tree-optimization/87008
2115 PR tree-optimization/85459
2116 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
2117 it points to if there is a type changing MEM_REF. Adjust all callers.
2118 (build_accesses_from_assign): Disable total scalarization if
2119 contains_vce_or_bfcref_p returns true through the new parameter, for
2120 both rhs and lhs.
2121
2122 2019-03-09 Jakub Jelinek <jakub@redhat.com>
2123
2124 PR c/88568
2125 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
2126 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
2127
2128 PR target/79645
2129 * common.opt (fdiagnostics-show-labels,
2130 fdiagnostics-show-line-numbers, fdiagnostics-format=,
2131 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
2132 gas-locview-support, ginline-points, ginternal-reset-location-views):
2133 Terminate description text with a dot.
2134 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
2135 * config/mcore/mcore.opt (m210, m340): Likewise.
2136 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
2137 mnops=): Start description text with a capital letter.
2138 * config/arc/arc.opt (msize-level=): Likewise.
2139 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
2140 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
2141 mnewlib): Likewise.
2142 * config/ft32/ft32.opt (msim): Likewise.
2143 (mft32b, mcompress): Likewise. Terminate description text with a dot.
2144 (mnodiv, mnopm): Terminate description text with a dot.
2145 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
2146 a colon.
2147 * config/i386/i386.opt (prefer_vector_width, instrument_return):
2148 Likewise.
2149 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
2150 text.
2151
2152 PR rtl-optimization/89634
2153 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
2154 are modified in BB_END (e->src) instruction.
2155
2156 2019-03-08 David Malcolm <dmalcolm@redhat.com>
2157
2158 PR target/79926
2159 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
2160 messages more amenable to translation, and improve wording.
2161
2162 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
2163
2164 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
2165 ud- and du-chains between phases.
2166
2167 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
2168
2169 PR debug/89631
2170 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
2171 instead of POLY_INT_CST.
2172
2173 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
2174
2175 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
2176 requirement.
2177
2178 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
2179
2180 PR target/68924
2181 PR target/78782
2182 PR target/87558
2183 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
2184 (_mm_storeu_si64): Ditto.
2185
2186 2019-03-08 Martin Liska <mliska@suse.cz>
2187
2188 PR target/86952
2189 * config/i386/i386.c (ix86_option_override_internal): Disable
2190 jump tables when retpolines are used.
2191
2192 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
2193
2194 PR go/63560
2195 * ipa-split.c (execute_split_functions): Do not split
2196 'noinline' or 'section' function.
2197
2198 2019-03-08 Jakub Jelinek <jakub@redhat.com>
2199
2200 PR target/79846
2201 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
2202 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
2203 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
2204
2205 PR ipa/80000
2206 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
2207 from diagnostics. Formatting fixes.
2208
2209 PR target/85665
2210 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
2211 warn_odr diagnostics.
2212
2213 PR other/80058
2214 * lra-constraints.c (process_alt_operands): Avoid one space before
2215 " at the end of line and another after " on another line in a string
2216 literal.
2217 * attribs.c (handle_dll_attribute): Likewise.
2218 * config/avr/avr-devices.c (avr_texinfo): Likewise.
2219
2220 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
2221 warning_at or inform messages in G_() if there is no ?:.
2222
2223 PR tree-optimization/89550
2224 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
2225 returned true. Formatting fixes.
2226 (expand_builtin_strnlen): Formatting fixes.
2227 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
2228 if warning_at returned true.
2229 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
2230
2231 2019-03-08 Richard Biener <rguenther@suse.de>
2232
2233 PR middle-end/89578
2234 * cfgloop.h (struct loop): Add owned_clique field.
2235 * cfgloopmanip.c (copy_loop_info): Copy it.
2236 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
2237 cliques.
2238 * tree-inline.c (copy_loops): Remap owned_clique.
2239 * lto-streamer-in.c (input_cfg): Stream owned_clique.
2240 * lto-streamer-out.c (output_cfg): Likewise.
2241
2242 2019-03-08 Jakub Jelinek <jakub@redhat.com>
2243
2244 PR target/80190
2245 * config/darwin.c: Include intl.h.
2246 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
2247 composing the message out of two separate parts.
2248
2249 2019-03-07 Jakub Jelinek <jakub@redhat.com>
2250
2251 PR target/80003
2252 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
2253 doesn't start with a capital letter and doesn't end with a dot.
2254 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
2255 with a capital letter.
2256 (ix86_mangle_function_version_assembler_name): Likewise.
2257 (ix86_generate_version_dispatcher_body): Likewise.
2258 (fold_builtin_cpu): Likewise.
2259 (get_builtin_code_for_version): Likewise. Remove extraneous space.
2260 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
2261 translators, wrap full type name in %qs.
2262
2263 PR translation/79999
2264 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
2265 depend clause with source (or sink) modifier.
2266 * omp-expand.c (expand_omp_ordered_sink): Likewise.
2267
2268 PR target/89602
2269 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
2270 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
2271 (avx512f_load<mode>_mask): New define_expand.
2272 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
2273 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
2274 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
2275 __builtin_ia32_movess_mask): New builtins.
2276 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
2277 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
2278 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
2279 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
2280
2281 2019-03-07 Martin Jambor <mjambor@suse.cz>
2282
2283 PR lto/87525
2284 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
2285 for extern inline functions.
2286
2287 2019-03-07 Martin Jambor <mjambor@suse.cz>
2288
2289 PR ipa/88235
2290 * cgraph.h (cgraph_node): New inline method former_thunk_p.
2291 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
2292 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
2293 have multiple callees. At the end check if declarations match as
2294 opposed to cgraph_nodes.
2295
2296 2019-03-07 Martin Liska <mliska@suse.cz>
2297
2298 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
2299 which is equivalent to searching for this in clones chain.
2300 * symtab.c (symtab_node::verify_base): Similarly compare ASM
2301 names with a neighbour and special case first node in a chain.
2302
2303 2019-01-25 Jason Merrill <jason@redhat.com>
2304
2305 PR c++/80916 - spurious "static but not defined" warning.
2306 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
2307 for an internal symbol with DECL_EXTERNAL.
2308
2309 2019-04-07 Richard Biener <rguenther@suse.de>
2310
2311 PR middle-end/89618
2312 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
2313 * tree-inline.c (copy_loops): Simplify.
2314
2315 2019-03-07 Martin Liska <mliska@suse.cz>
2316
2317 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
2318
2319 2019-03-07 Richard Biener <rguenther@suse.de>
2320
2321 PR tree-optimization/89595
2322 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
2323 stmt iterator as reference, take boolean output parameter to
2324 indicate whether the stmt was removed and thus the iterator
2325 already advanced.
2326 (dom_opt_dom_walker::before_dom_children): Re-iterate over
2327 stmts created by folding.
2328
2329 2019-03-07 Jakub Jelinek <jakub@redhat.com>
2330
2331 PR c++/89585
2332 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
2333 at toplevel.
2334
2335 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
2336
2337 PR rtl-optimization/88845
2338 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
2339 LRA.
2340 * lra.c (remove_scratches_1): New function.
2341 (remove_scratches): Use it.
2342 (lra_emit_move): Likewise.
2343
2344 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
2345
2346 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
2347 unaligned_access variable.
2348 * config/arc/arc.c (arc_override_options): Set unaligned access
2349 default on for HS CPUs.
2350 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
2351
2352 2019-03-06 Martin Liska <mliska@suse.cz>
2353
2354 PR gcov-profile/89577
2355 * doc/gcov.texi: Prefer to use --coverage.
2356 * doc/sourcebuild.texi: Likewise.
2357
2358 2019-03-02 Jason Merrill <jason@redhat.com>
2359
2360 PR c++/86485 - -Wmaybe-unused with empty class ?:
2361 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
2362
2363 2019-03-05 Jakub Jelinek <jakub@redhat.com>
2364
2365 PR target/89587
2366 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
2367 if_multiarch.
2368
2369 PR middle-end/89590
2370 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
2371 exactly one argument.
2372
2373 2019-03-05 Jakub Jelinek <jakub@redhat.com>
2374 Richard Sandiford <richard.sandiford@arm.com>
2375
2376 PR tree-optimization/89570
2377 * match.pd (vec_cond into cond_op simplification): Don't use
2378 get_conditional_internal_fn, use as_internal_fn (cond_op).
2379
2380 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
2381
2382 PR target/89222
2383 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
2384 to decide when to split off a non-zero offset from a symbol.
2385 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
2386 in function symbols.
2387
2388 2019-03-05 Richard Biener <rguenther@suse.de>
2389
2390 PR tree-optimization/89594
2391 * tree-if-conv.c (pass_if_conversion::execute): Handle
2392 case where .LOOP_VECTORIZED_FUNCTION was removed.
2393
2394 2019-03-05 Jakub Jelinek <jakub@redhat.com>
2395
2396 PR bootstrap/89560
2397 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
2398 instead alloca it only when needed with the needed size.
2399
2400 PR tree-optimization/89570
2401 * match.pd (vec_cond into cond_op simplification): Guard with
2402 vectorized_internal_fn_supported_p test and #if GIMPLE.
2403
2404 PR tree-optimization/89566
2405 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
2406 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
2407 Punt if get_user_idx_format succeeds, but idx_format argument is
2408 not provided or doesn't have pointer type, or if idx_args is above
2409 number of provided arguments.
2410
2411 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
2412
2413 PR tree-optimization/89437
2414 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
2415
2416 2019-03-04 Richard Biener <rguenther@suse.de>
2417
2418 PR middle-end/89572
2419 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
2420 safe_dyn_cast.
2421
2422 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
2423
2424 PR tree-optimization/89487
2425 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
2426 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
2427 (distribute_loop): Don't do runtime alias check if there is non-
2428 addressable data reference.
2429 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
2430 is a register variable.
2431
2432 2019-03-02 Jakub Jelinek <jakub@redhat.com>
2433
2434 PR target/89506
2435 * config/arm/arm.md (cmpsi2_addneg): Use
2436 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
2437 If operands[2] is 0 or INT_MIN, force use of subs.
2438 (*compare_scc splitter): Use gen_int_mode.
2439 (*negscc): Likewise.
2440 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
2441
2442 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
2443 Monk Chiang <sh.chiang04@gmail.com>
2444
2445 * common/config/riscv/riscv-common.c: Include sstream.
2446 (riscv_subset_list::to_string): New.
2447 (riscv_arch_str): Likewise.
2448 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
2449 * config.in: Regen.
2450 * config/riscv/riscv-protos.h (riscv_arch_str): New.
2451 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
2452 (riscv_emit_attribute): New.
2453 (riscv_file_start): Emit attribute if needed.
2454 (riscv_option_override): Init riscv_emit_attribute_p.
2455 * config/riscv/riscv.opt (mriscv-attribute): New option.
2456 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
2457 * configure: Regen.
2458 * doc/install.texi: Document --with-riscv-attribute.
2459 * doc/invoke.texi: Document -mriscv-attribute.
2460
2461 * common/config/riscv/riscv-common.c:
2462 Include config/riscv/riscv-protos.h.
2463 (INCLUDE_STRING): Defined.
2464 (RISCV_DONT_CARE_VERSION): Defined.
2465 (riscv_subset_t): Declare.
2466 (riscv_subset_t::riscv_subset_t): New.
2467 (riscv_subset_list): Declare.
2468 (riscv_subset_list::riscv_subset_list): New.
2469 (riscv_subset_list::~riscv_subset_list): Likewise.
2470 (riscv_subset_list::parsing_subset_version): Likewise.
2471 (riscv_subset_list::parse_std_ext): Likewise.
2472 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
2473 (riscv_subset_list::add): Likewise.
2474 (riscv_subset_list::lookup): Likewise.
2475 (riscv_subset_list::xlen): Likewise.
2476 (riscv_subset_list::parse): Likewise.
2477 (riscv_supported_std_ext): Likewise.
2478 (current_subset_list): Likewise.
2479 (riscv_parse_arch_string): Using riscv_subset_list::parse to
2480 parse.
2481
2482 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
2483
2484 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
2485 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
2486 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
2487
2488 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
2489
2490 PR rtl-optimization/85899
2491 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
2492 fallthru edges leading to the exit block.
2493
2494 2019-03-01 Tamar Christina <tamar.christina@arm.com>
2495
2496 PR target/89517
2497 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
2498 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
2499
2500 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
2501
2502 PR tree-optimization/89535
2503 * tree-vect-stmts.c (vectorizable_call): Record the vector types
2504 for each operand. Calculate the fallback choice for mask operands
2505 and pass it to vect_get_vec_def_for_operand.
2506
2507 2019-03-01 Richard Biener <rguenther@suse.de>
2508
2509 PR middle-end/89541
2510 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
2511 get virtual operands.
2512 (get_expr_operands): Handle CONST_DECL like other decls.
2513
2514 2019-03-01 Jakub Jelinek <jakub@redhat.com>
2515
2516 PR middle-end/89503
2517 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
2518 on DECL_P and EXPR_P.
2519
2520 2019-03-01 Richard Biener <rguenther@suse.de>
2521
2522 PR middle-end/89497
2523 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
2524 argument, defaulted to zero.
2525 * passes.c (execute_function_todo): Pass down SSA update flags
2526 to cleanup_tree_cfg.
2527 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
2528 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
2529 form if requested.
2530 (cleanup_tree_cfg): Get and pass down SSA update flags.
2531
2532 2019-03-01 Jakub Jelinek <jakub@redhat.com>
2533
2534 PR bootstrap/89539
2535 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
2536 early_lto_debug argument.
2537
2538 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
2539
2540 PR tree-optimization/89536
2541 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
2542 only whether bit #0 of the value is 0 instead of the entire value.
2543
2544 2019-02-28 Marek Polacek <polacek@redhat.com>
2545
2546 PR c++/87068 - missing diagnostic with fallthrough statement.
2547 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
2548 at the end of a seq, save its location to walk_stmt_info.
2549 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
2550 a switch.
2551
2552 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
2553
2554 PR lto/88585
2555 * tree.c (find_atomic_core_type): Move ahead in file.
2556 (check_base_type): Correctly compare alignments of atomic types.
2557
2558 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
2559
2560 PR target/89455
2561 * config/i386/i386.c (get_builtin_code_for_version): Identify
2562 Westmere from PCLMUL, instead of AES.
2563
2564 2019-02-28 Jakub Jelinek <jakub@redhat.com>
2565
2566 PR target/89434
2567 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
2568 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
2569 -UINTVAL (...).
2570
2571 2019-02-28 Tamar Christina <tamar.christina@arm.com>
2572
2573 PR target/88530
2574 * config/aarch64/aarch64-option-extensions.def: Document it.
2575 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
2576 if empty hwcaps.
2577
2578 2019-02-28 Jakub Jelinek <jakub@redhat.com>
2579
2580 PR c/89520
2581 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
2582 builtins if they don't have a single scalar floating point argument.
2583 Formatting fixes.
2584
2585 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
2586
2587 PR rtl-optimization/89490
2588 * varasm.c (get_block_for_section): Bail out for mergeable sections.
2589 (default_use_anchors_for_symbol_p, output_object_block): Assert the
2590 block section is not mergeable.
2591
2592 2019-02-27 Jakub Jelinek <jakub@redhat.com>
2593
2594 PR target/70341
2595 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
2596 old define_insn to ...
2597 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
2598 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
2599 Rename old define_insn to ...
2600 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
2601 (thumb2_casesi_internal_pic): New define_expand. Rename old
2602 define_insn to ...
2603 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
2604 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
2605 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
2606
2607 2019-02-27 Richard Biener <rguenther@suse.de>
2608
2609 PR debug/88878
2610 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
2611
2612 2019-02-27 Richard Biener <rguenther@suse.de>
2613
2614 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
2615 building.
2616
2617 2019-02-27 Richard Biener <rguenther@suse.de>
2618
2619 PR debug/88878
2620 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
2621 parameter, prefix section name with .gnu.debuglto_ if true.
2622 (dwarf2out_finish): Pass false to output_comdat_type_unit.
2623 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
2624
2625 2019-02-27 Richard Biener <rguenther@suse.de>
2626
2627 PR debug/89514
2628 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
2629 rather than on use_debug_types, doing what output_die does.
2630 (value_format): Likewise.
2631
2632 2019-02-27 Martin Jambor <mjambor@suse.cz>
2633 Martin Sebor <msebor@redhat.com>
2634
2635 * doc/invoke.texi (Warning Options): Reword description of
2636 -Wno-absolute-value.
2637
2638 2019-02-27 Jakub Jelinek <jakub@redhat.com>
2639
2640 PR tree-optimization/89280
2641 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
2642 builtin_setjmp_setup_bb): New functions.
2643 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
2644 When visiting __builtin_setjmp_setup block, queue in special
2645 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
2646 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
2647 from visited after the loop if they don't have any visited successor
2648 blocks.
2649
2650 2018-02-26 Steve Ellcey <sellcey@marvell.com>
2651
2652 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
2653 New function.
2654 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
2655
2656 2019-02-26 Jakub Jelinek <jakub@redhat.com>
2657
2658 PR c++/89507
2659 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
2660 with types other than sizetype/ssizetype.
2661
2662 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
2663
2664 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
2665 (enum sparc_processor_type): ...this.
2666 (enum sparc_code_model_type): New enumeration type.
2667 (enum sparc_memory_model_type): Tweak comments.
2668 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
2669 (mtune): Likewise.
2670 (mcmodel): Use sparc_code_model enumeration and variable.
2671 (sparc_code_model): New enumeration.
2672 (mdebug): Add Undocumented marker.
2673 * config/sparc/sparc.h (enum cmodel): Delete.
2674 (sparc_cmodel): Likewise.
2675 (TARGET_CM_MEDLOW): Adjust to above renaming.
2676 (TARGET_CM_MEDMID): Likewise.
2677 (TARGET_CM_MEDANY): Likewise.
2678 (TARGET_CM_EMBMEDANY): Likewise.
2679 * config/sparc/sparc.c (sparc_cmodel): Delete.
2680 (sparc_option_override): Remove string/value mapping support for the
2681 code model. Move code and memory model support to after the handling
2682 of target flags. Do private machine setup last.
2683 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
2684 (sparc_legitimize_reload_address): Likewise.
2685 (sparc_output_mi_thunk): Likewise.
2686 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
2687
2688 2019-02-26 Jakub Jelinek <jakub@redhat.com>
2689
2690 PR tree-optimization/89500
2691 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
2692 (handle_builtin_strlen): Remove noncst_bound variable. Always
2693 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
2694 cst if the first cst bytes starting at x are known to be non-zero,
2695 even if the string is not zero terminated. Don't try to modify
2696 *si for strnlen. Update strlen_to_stridx only for strlen or if
2697 we can prove strnlen returns the same value as strlen would.
2698
2699 2019-02-26 Martin Liska <mliska@suse.cz>
2700
2701 * alloc-pool.h (struct pool_usage): Remove extra
2702 print_dash_line.
2703 * bitmap.h (struct bitmap_usage): Likewise.
2704 * ggc-common.c (struct ggc_usage): Likewise.
2705 * mem-stats.h (struct mem_usage): Likewise.
2706 (mem_alloc_description::dump): Print dash lines
2707 here and repeat header at the end of a table report.
2708 It's then more readable.
2709 * tree-phinodes.c (phinodes_print_statistics): Make
2710 horizontal alignment.
2711 * tree-ssanames.c (ssanames_print_statistics): Likewise.
2712 * vec.c (struct vec_usage): Remove extra print_dash_line.
2713 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
2714
2715 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
2716
2717 * doc/extend.texi (__builtin_object_size):
2718 Use @pxref instead of @xref inside parenthesis.
2719 (__builtin_has_attribute): Add missing comma after @xref.
2720 (__builtin_object_size): Ditto.
2721 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
2722 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
2723 in the list.
2724
2725 2019-02-26 Jeff Law <law@redhat.com>
2726
2727 PR rtl-optimization/87761
2728 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
2729 detect obviously dead insns and delete them.
2730
2731 2019-02-26 Richard Biener <rguenther@suse.de>
2732
2733 PR tree-optimization/89505
2734 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
2735 to handle restrict pointed-to vars with multiple subvars
2736 correctly.
2737
2738 2019-02-26 Richard Biener <rguenther@suse.de>
2739
2740 PR tree-optimization/89489
2741 * tree-parloops.c (create_loop_fn): Copy over last_clique.
2742
2743 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
2744
2745 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
2746 and move around comment.
2747 <BIT_AND_EXPR>: Likewise.
2748 <BIT_NOT_EXPR>: Add specific handling for boolean types.
2749
2750 2019-02-26 Jakub Jelinek <jakub@redhat.com>
2751
2752 PR target/89474
2753 * config/i386/i386.c (remove_partial_avx_dependency): Call
2754 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
2755 after changing possibly many instructions to use that pseudo. Fix up
2756 insertion of v4sf_const0 setter at the start of bb.
2757
2758 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
2759
2760 PR c/80409
2761 * doc/extend.texi (Variadic Pointer Args): New section.
2762
2763 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
2764 Martin Sebor <msebor@gmail.com>
2765
2766 * common.opt (Wattribute-alias): Likewise.
2767 * doc/invoke.texi (Option Summary): List general form of
2768 -Wattribute-alias=. List positive form of -Wmissing-attributes.
2769 (-Wmissing-attributes): Invert entry, rewrite and correct default.
2770 Add cross-references.
2771 (-Wattribute-alias): Rewrite and correct default. Mention
2772 considered attributes (same as for -Wmissing-attributes).
2773
2774 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
2775
2776 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
2777 (_mm_cvtpd_ps): Likewise.
2778 (_mm_cvttpd_epi32): Likewise.
2779
2780 PR target/89338
2781 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
2782 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
2783
2784 PR target/89339
2785 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
2786
2787 2019-02-25 Tamar Christina <tamar.christina@arm.com>
2788
2789 PR target/88530
2790 * common/config/aarch64/aarch64-common.c
2791 (struct aarch64_option_extension): Add is_synthetic.
2792 (all_extensions): Use it.
2793 (TARGET_OPTION_INIT_STRUCT): Define hook.
2794 (struct gcc_targetm_common): Moved to end.
2795 (all_extensions_by_on): New.
2796 (opt_ext_cmp, typedef opt_ext): New.
2797 (aarch64_option_init_struct): New.
2798 (aarch64_contains_opt): New.
2799 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
2800 * config/aarch64/aarch64-option-extensions.def
2801 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
2802 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
2803 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
2804 Set is_synthetic to false.
2805 (crypto): Set is_synthetic to true.
2806 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
2807 SYNTHETIC.
2808
2809 2019-02-25 Tamar Christina <tamar.christina@arm.com>
2810
2811 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
2812 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
2813 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
2814 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
2815 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
2816 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
2817 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
2818 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
2819 Rename ...
2820 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
2821 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
2822 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
2823 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
2824 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
2825 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
2826 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
2827 vfmlsl_laneq_high_f16): ... To this.
2828 * config/arm/neon.md: Update comments.
2829
2830 2019-02-25 Tamar Christina <tamar.christina@arm.com>
2831
2832 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
2833 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
2834 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
2835 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
2836 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
2837 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
2838 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
2839 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
2840 Rename ...
2841 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
2842 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
2843 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
2844 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
2845 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
2846 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
2847 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
2848 vfmlslq_laneq_high_f16): ... To this.
2849
2850 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
2851
2852 PR rtl-optimization/86096
2853 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
2854 comparing mw_order values.
2855
2856 2019-02-25 Jakub Jelinek <jakub@redhat.com>
2857
2858 PR target/89434
2859 * config/arm/arm.md (*subsi3_carryin_const): Use
2860 arm_neg_immediate_operand predicate instead of
2861 arm_not_immediate_operand, "L" constraint instead of "K" and
2862 print it using %n2 instead of %B2.
2863 (*subsi3_carryin_const0): New define_insn.
2864 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
2865 instead of arm_not_operand and "I" constraint instead of "K" and
2866 print it using %n3 instead of %B2. Instead of using match_dup 2 add
2867 another match_operand and in the condition check that it is negation
2868 of operands[2].
2869 (*subsi3_carryin_compare_const0): New define_ins.
2870 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
2871 *subsi3_carryin_const.
2872 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
2873 split into *subsi3_carryin_compare_const0 if the highpart is zero.
2874
2875 PR target/89438
2876 * config/arm.vfp.md (*negdf2_vfp): Use
2877 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
2878 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
2879
2880 2019-02-24 Jakub Jelinek <jakub@redhat.com>
2881
2882 PR rtl-optimization/89445
2883 * simplify-rtx.c (simplify_ternary_operation): Don't use
2884 simplify_merge_mask on operands that may trap.
2885 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
2886 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
2887 second operand is CONST_VECTOR, check if any element could be zero.
2888 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
2889 their operands can trap.
2890
2891 2019-02-23 Martin Sebor <msebor@redhat.com>
2892
2893 * gimple-ssa-sprintf.c (target_strtol): Rename...
2894 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
2895 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
2896 check for range error.
2897
2898 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
2899
2900 PR driver/69471
2901 * opts-common.c (prune_options): Also prune joined switches
2902 with Negative and RejectNegative.
2903 * config/i386/i386.opt (march=): Add Negative(march=).
2904 (mtune=): Add Negative(mtune=).
2905 * doc/options.texi: Document Negative used together with Joined
2906 and RejectNegative.
2907
2908 2019-02-22 Martin Sebor <msebor@redhat.com>
2909
2910 * doc/extend.texi (Other Builtins): Add
2911 __builtin_is_constant_evaluated.
2912
2913 2019-02-22 Richard Biener <rguenther@suse.de>
2914
2915 PR tree-optimization/87609
2916 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
2917
2918 2019-02-22 Jeff Law <law@redhat.com>
2919
2920 PR rtl-optimization/87761
2921 * config/mips/mips.md: Add new combiner pattern to recognize
2922 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
2923
2924 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
2925
2926 PR target/89324
2927 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
2928 destination register in peepholes generating patterns for ADDS/SUBS.
2929 (add<mode>3_compare0,
2930 *addsi3_compare0_uxtw, add<mode>3_compareC,
2931 add<mode>3_compareV_imm, add<mode>3_compareV,
2932 *adds_<optab><ALLX:mode>_<GPI:mode>,
2933 *subs_<optab><ALLX:mode>_<GPI:mode>,
2934 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
2935 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
2936 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
2937 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
2938 sub<mode>3_compare1): Allow stack pointer for source register.
2939 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
2940
2941 2019-02-22 Martin Sebor <msebor@redhat.com>
2942
2943 PR tree-optimization/88993
2944 PR tree-optimization/88853
2945 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
2946 New helper.
2947 (sprintf_dom_walker::call_info::is_string_func): New helper.
2948 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
2949 for formatted string functions.
2950 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
2951
2952 2019-02-22 Martin Sebor <msebor@redhat.com>
2953
2954 PR c/89425
2955 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
2956 unreachable subexpressions.
2957
2958 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
2959 Hongtao Liu <hongtao.liu@intel.com>
2960 Sunil K Pandey <sunil.k.pandey@intel.com>
2961
2962 PR target/87007
2963 * config/i386/i386-passes.def: Add
2964 pass_remove_partial_avx_dependency.
2965 * config/i386/i386-protos.h
2966 (make_pass_remove_partial_avx_dependency): New.
2967 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
2968 New function.
2969 (pass_data_remove_partial_avx_dependency): New.
2970 (pass_remove_partial_avx_dependency): Likewise.
2971 (make_pass_remove_partial_avx_dependency): Likewise.
2972 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
2973 (*extendsfdf2): Add avx_partial_xmm_update.
2974 (truncdfsf2): Likewise.
2975 (*float<SWI48:mode><MODEF:mode>2): Likewise.
2976 (SF/DF conversion splitters): Disabled for TARGET_AVX.
2977
2978 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
2979
2980 PR middle-end/85598
2981 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
2982 analysis for pass.
2983
2984 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
2985
2986 PR target/89444
2987 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
2988 (PTA_SKYLAKE): Add PTA_AES.
2989 (PTA_GOLDMONT): Likewise.
2990
2991 2019-02-22 Sudakshina Das <sudi.das@arm.com>
2992
2993 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
2994 instruction if enabled.
2995 (aarch64_override_options): Remove reference to return address key.
2996
2997 2019-02-22 Richard Biener <rguenther@suse.de>
2998
2999 PR tree-optimization/89440
3000 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
3001 not necessary assert.
3002
3003 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
3004
3005 PR fortran/72741
3006 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
3007 (oacc_replace_fn_attrib_attr): ... this new function.
3008 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
3009 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
3010
3011 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3012
3013 * config/arm/arm-cpus.in (ares): Rename to...
3014 (neoverse-n1): ... This. Add ares as alias.
3015 * config/arm/arm-tables.opt: Regenerate.
3016 * config/arm/arm-tune.md: Likewise.
3017 * doc/invoke.txt (ARM Options): Document neoverse-n1.
3018
3019 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3020
3021 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
3022 * config/aarch64/aarch64-tune.md: Regenerate.
3023 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
3024
3025 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3026
3027 * config/aarch64/aarch64.c (ares_tunings): Rename to...
3028 (neoversen1_tunings): ... This.
3029 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
3030 (neoverse-n1): New CPU.
3031 * config/aarch64/aarch64-tune.md: Regenerate.
3032 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
3033
3034 2019-02-22 Richard Biener <rguenther@suse.de>
3035
3036 PR middle-end/87609
3037 * cfghooks.h (dependence_hash): New typedef.
3038 (struct copy_bb_data): New type.
3039 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
3040 (duplicate_block): Likewise.
3041 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
3042 (copy_bbs): Create and pass down copy_bb_data.
3043 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
3044 (rtl_duplicate_bb): Likewise.
3045 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
3046 remap dependence info.
3047
3048 2019-02-22 Richard Biener <rguenther@suse.de>
3049
3050 PR tree-optimization/87609
3051 * tree-core.h (tree_base): Document special clique values.
3052 * tree-inline.c (remap_dependence_clique): Do not use the
3053 special clique value of one.
3054 (maybe_set_dependence_info): Use clique one.
3055 (clear_dependence_clique): New callback.
3056 (compute_dependence_clique): Clear clique one from all refs
3057 before assigning it (again).
3058
3059 2019-02-21 Martin Sebor <msebor@redhat.com>
3060
3061 * doc/extend.texi (__clear_cache): Correct signature.
3062
3063 2019-02-21 Ian Lance Taylor <iant@golang.org>
3064
3065 PR go/89170
3066 * varasm.c (decode_addr_const): Call lookup_constant_def rather
3067 than output_constant_def.
3068 (add_constant_to_table): New static function.
3069 (output_constant_def): Call add_constant_to_table.
3070 (tree_output_constant_def): Likewise.
3071
3072 2019-02-21 Jakub Jelinek <jakub@redhat.com>
3073
3074 PR c++/89285
3075 * builtins.c (fold_builtin_arith_overflow): If first two args are
3076 INTEGER_CSTs, set intres and ovfres to constants rather than calls
3077 to ifn.
3078
3079 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
3080
3081 PR target/87412
3082 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
3083 error for -mindirect-branch/-mfunction-return with incompatible
3084 -fcf-protection.
3085
3086 2019-02-21 Jakub Jelinek <jakub@redhat.com>
3087
3088 PR bootstrap/88714
3089 * constraints.md (q): Remove.
3090 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
3091 instead of q.
3092
3093 2019-02-21 Martin Jambor <mjambor@suse.cz>
3094
3095 PR hsa/89302
3096 * omp-general.c (omp_extract_for_data): Removed a duplicate call
3097 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
3098 (omp_adjust_for_condition): ...here. Added necessary parameters.
3099 * omp-general.h (omp_adjust_for_condition): Updated declaration.
3100 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
3101 proper values to new parameters of omp_adjust_for_condition.
3102
3103 2019-02-20 Jakub Jelinek <jakub@redhat.com>
3104
3105 PR middle-end/89412
3106 * expr.c (expand_assignment): If result is a MEM, use change_address
3107 instead of simplify_gen_subreg.
3108
3109 2019-02-20 Jakub Jelinek <jakub@redhat.com>
3110 David Malcolm <dmalcolm@redhat.com>
3111
3112 PR middle-end/89091
3113 * fold-const.c (decode_field_reference): Return NULL_TREE if
3114 lang_hooks.types.type_for_size returns NULL. Check it before
3115 overwriting *exp_. Use return NULL_TREE instead of return 0.
3116
3117 2019-02-20 Jakub Jelinek <jakub@redhat.com>
3118
3119 PR middle-end/88074
3120 PR middle-end/89415
3121 * toplev.c (do_compile): Double the emin/emax exponents to workaround
3122 buggy mpc_norm.
3123
3124 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
3125
3126 PR target/89397
3127 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
3128 TARGET_SSE in addition to TARGET_SSE_MATH.
3129
3130 (ix86_excess_precision): Ditto.
3131 (ix86_float_exceptions_rounding_supported_p): Ditto.
3132 (use_rsqrt_p): Ditto.
3133 * config/i386/sse.md (rsqrt<mode>2): Ditto.
3134
3135 2019-02-20 David Malcolm <dmalcolm@redhat.com>
3136
3137 PR c/89410
3138 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
3139 linenum_arith_t when determining if two adjacent line spans are
3140 close enough to merge.
3141 (diagnostic_show_locus): Use linenum_arith_t when iterating over
3142 lines within each line_span.
3143
3144 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
3145
3146 PR target/86487
3147 * lra-constraints.c(uses_hard_regs_p): Fix handling of
3148 paradoxical SUBREGS.
3149
3150 2019-02-20 Li Jia He <helijia@linux.ibm.com>
3151
3152 PR target/88100
3153 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
3154 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
3155 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
3156 range checking it.
3157
3158 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
3159
3160 * config/gcn/gcn.c (print_operand): Fix typo.
3161
3162 2019-02-19 Richard Biener <rguenther@suse.de>
3163
3164 PR middle-end/88074
3165 * toplev.c (do_compile): Initialize mpfr's exponent range
3166 based on available float modes.
3167
3168 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
3169
3170 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
3171 as long as the epilogue isn't completed.
3172
3173 2019-02-18 Martin Sebor <msebor@redhat.com>
3174
3175 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
3176 __has_cpp_attribute, and __has_include.
3177
3178 2019-02-18 Martin Sebor <msebor@redhat.com>
3179
3180 * doc/invoke.texi (-Wreturn-type): Correct and expand.
3181
3182 2019-02-18 Martin Sebor <msebor@redhat.com>
3183
3184 PR middle-end/89294
3185 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
3186 expression.
3187 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
3188
3189 2019-02-18 Richard Biener <rguenther@suse.de>
3190
3191 PR tree-optimization/89296
3192 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
3193 of no-warning flag to cases that might emit the bogus warning.
3194
3195 2019-02-18 Jakub Jelinek <jakub@redhat.com>
3196
3197 PR bootstrap/88714
3198 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
3199 "q" constraint.
3200 * config/arm/vfp.md (*movdi_vfp): Likewise.
3201 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
3202 "q" constraint for operands[0].
3203
3204 PR target/89369
3205 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
3206 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
3207 pattern in a temporary buffer.
3208 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
3209 than 64-operands[2].
3210
3211 PR target/89361
3212 * config/s390/s390.c (s390_indirect_branch_attrvalue,
3213 s390_indirect_branch_settings): Define unconditionally.
3214 (s390_set_current_function): Likewise, but guard the whole body except
3215 the s390_indirect_branch_settings call with
3216 #if S390_USE_TARGET_ATTRIBUTE.
3217 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
3218
3219 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
3220 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
3221 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
3222 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
3223 HOST_WIDE_INT_1U instead of 1ULL.
3224 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
3225 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
3226 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
3227 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
3228 instead of 1UL.
3229 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
3230 instead of 1ul.
3231
3232 2019-02-18 Martin Jambor <mjambor@suse.cz>
3233
3234 PR tree-optimization/89209
3235 * tree-sra.c (create_access_replacement): New optional parameter
3236 reg_tree. Use it as a type if non-NULL and access type is not of
3237 a register type.
3238 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
3239 to create_access_replacement.
3240 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
3241 Check lacc is non-NULL before attempting to re-create it on the RHS.
3242
3243 2019-02-18 Martin Liska <mliska@suse.cz>
3244
3245 PR ipa/89306
3246 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
3247 by default.
3248 (symbol_table::free_edge): Recycle m_summary_id.
3249 * cgraph.h (get_summary_id): New.
3250 (symbol_table::release_symbol): Set m_summary_id to -1
3251 by default.
3252 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
3253 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
3254 function_summary to fast_function_summary.
3255 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
3256 * ipa-pure-const.c (class funct_state_summary_t):
3257 Switch from function_summary to fast_function_summary.
3258 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
3259 (class ipa_ref_opt_summary_t): Switch from function_summary
3260 to fast_function_summary.
3261 * symbol-summary.h (class function_summary_base): New class
3262 that is created from base of former function_summary.
3263 (function_summary_base::unregister_hooks): New.
3264 (class function_summary): Inherit from function_summary_base.
3265 (class call_summary_base): New class
3266 that is created from base of former call_summary.
3267 (class call_summary): Inherit from call_summary_base.
3268 (struct is_same): New.
3269 (class fast_function_summary): New summary class.
3270 (class fast_call_summary): New summary class.
3271 * vec.h (vec_safe_grow_cleared): New function.
3272
3273 2019-02-18 Martin Liska <mliska@suse.cz>
3274
3275 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
3276 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
3277 * doc/tm.texi: Document new target hook.
3278 * doc/tm.texi.in: Likewise.
3279 * target.def: Add new target macro.
3280 * gcc.c (find_fortran_preinclude_file): Do not search multilib
3281 suffixes.
3282
3283 2019-02-17 Alan Modra <amodra@gmail.com>
3284
3285 PR target/89271
3286 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
3287 output reg on add insn.
3288 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
3289
3290 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
3291
3292 PR target/89372
3293 * config/i386/sse.md (ssedoublemode): Remove V4HI.
3294 (PMULHRSW): Likewise.
3295 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
3296 TARGET_AVX2.
3297 (ssse3_pmulhrswv4hi3): New expander.
3298
3299 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
3300
3301 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
3302 MMX. Add isa attribute.
3303
3304 2019-02-16 Jakub Jelinek <jakub@redhat.com>
3305
3306 PR rtl-optimization/66152
3307 * builtins.h (c_readstr): Declare.
3308 * builtins.c (c_readstr): Remove forward declaration. Add
3309 null_terminated_p argument, if false, read all bytes from the
3310 string instead of stopping after '\0'.
3311 * expr.c (string_cst_read_str): New function.
3312 (store_expr): Use string_cst_read_str instead of
3313 builtin_strncpy_read_str. Try to store by pieces the whole
3314 exp_len first, and only if that fails, split it up into
3315 store by pieces followed by clear_storage. Formatting fix.
3316
3317 * config/i386/i386.md (*movqi_internal): Remove static from
3318 buf variable. Use output_asm_insn (buf, operands); return "";
3319 instead of return buf;.
3320 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
3321 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
3322 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
3323
3324 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
3325
3326 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
3327 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
3328 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
3329 (CC1_SPEC): Likewise.
3330 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
3331
3332 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
3333
3334 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
3335 the base address on 64-bit strict-alignment platforms.
3336
3337 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
3338
3339 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
3340
3341 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
3342
3343 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
3344
3345 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
3346
3347 PR rtl-optimization/88308
3348 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
3349 on copied instruction.
3350
3351 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
3352
3353 * final.c (insn_current_reference_address): Replace test on JUMP_P
3354 with test on jump_to_label_p.
3355 * config/visium/visium-passes.def: New file.
3356 * config/visium/t-visium (PASSES_EXTRA): Define.
3357 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
3358 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
3359 (TRAMPOLINE_ALIGNMENT): Define.
3360 * config/visium/visium.c (visium_option_override): Do not register
3361 the machine-specific reorg pass here.
3362 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
3363 for the GR6.
3364 (output_branch): Adjust threshold for long branch instruction.
3365 * config/visium/visium.md (cpu): Move around.
3366 (length): Adjust for the GR6.
3367
3368 2019-02-15 Richard Biener <rguenther@suse.de>
3369 Jakub Jelinek <jakub@redhat.com>
3370
3371 PR tree-optimization/89278
3372 * tree-loop-distribution.c: Include tree-eh.h.
3373 (generate_memset_builtin, generate_memcpy_builtin): Call
3374 rewrite_to_non_trapping_overflow on builtin->size before passing it
3375 to force_gimple_operand_gsi.
3376
3377 2019-02-15 Jakub Jelinek <jakub@redhat.com>
3378
3379 PR other/89342
3380 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
3381 optimize_debug.
3382 * opth-gen.awk: Likewise.
3383
3384 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
3385
3386 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
3387 Enable MMX, SSE and SSE2 by default.
3388 * config/i386/i386.c (ix86_option_override_internal): Do not
3389 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
3390
3391 2019-02-14 Jakub Jelinek <jakub@redhat.com>
3392
3393 PR rtl-optimization/89354
3394 * combine.c (make_extraction): Punt if extraction_mode is narrower
3395 than len bits.
3396
3397 2019-02-14 Maya Rashish <coypu@sdf.org>
3398
3399 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
3400 * config/netbsd-d.c: New file.
3401 * config/t-netbsd: Add netbsd-d.o
3402
3403 2018-02-14 Steve Ellcey <sellcey@marvell.com>
3404
3405 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
3406 affects_type_identity to true for aarch64_vector_pcs.
3407 (aarch64_comp_type_attributes): New function.
3408 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
3409
3410 2019-02-14 Tamar Christina <tamar.christina@arm.com>
3411
3412 PR target/88850
3413 * config/arm/iterators.md (ANY64): Add V4HF.
3414
3415 2019-02-14 Martin Liska <mliska@suse.cz>
3416
3417 PR rtl-optimization/89242
3418 * dce.c (delete_unmarked_insns): Call free_dominance_info we
3419 process a transformation.
3420
3421 2019-02-14 Jakub Jelinek <jakub@redhat.com>
3422
3423 PR tree-optimization/89314
3424 * fold-const.c (fold_binary_loc): Cast strlen argument to
3425 const char * before dereferencing it. Formatting fixes.
3426
3427 PR middle-end/89284
3428 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
3429
3430 2019-02-13 Ian Lance Taylor <iant@golang.org>
3431
3432 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
3433 and set current index for other optimizations.
3434
3435 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
3436
3437 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
3438 nonimmediate_operand as operand 2 predicate.
3439 (vec_set<VF2_512_256:mode>_0): Ditto.
3440 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
3441 (*vec_concatv2si): Remove alternative 2.
3442 (*vec_concatv4si_0): Use vm constraint for alternative 0.
3443 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
3444 (vec_concatv2di): Split alternatives 4,5,6 to ...
3445 (*vec_concatv2di_0) ... new pattern.
3446
3447 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
3448
3449 PR target/89190
3450 * config/arm/arm.c (ldm_stm_operation_p) Set
3451 addr_reg_in_reglist correctly for first register.
3452 (load_multiple_sequence): Remove dead base check.
3453 (gen_ldm_seq): Correctly set write_back for Thumb-1.
3454
3455 2019-02-13 Tamar Christina <tamar.christina@arm.com>
3456
3457 PR target/88847
3458 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
3459 Expose as @aarch64_pred_mov.
3460 * config/aarch64/aarch64.c (aarch64_classify_address):
3461 Use expand_insn which legitimizes operands.
3462
3463 2019-02-13 Martin Liska <mliska@suse.cz>
3464
3465 * builtins.h (expand_builtin_with_bounds): Remove declaration.
3466 * calls.c (struct arg_data): Remove special_slot, pointer_arg
3467 and pointer_offset fields.
3468 (initialize_argument_information): Remove usage of dead
3469 fields.
3470 * cgraph.h (struct cgraph_thunk_info): Remove
3471 add_pointer_bounds_args.
3472 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
3473 fields.
3474 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
3475 fields.
3476 * config/i386/i386.c (ix86_function_arg_advance): Remove
3477 unrelated comment.
3478 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
3479 (def_builtin): Remove usage of dead
3480 fields.
3481 (ix86_add_new_builtins): Likewise.
3482 * ipa-fnsummary.c (compute_fn_summary): Likewise.
3483 * ipa-icf.c (sem_function::equals_wpa): Likewise.
3484 (sem_function::init): Likewise.
3485 (sem_variable::merge): Likewise.
3486 * ipa-visibility.c (function_and_variable_visibility): Likewise.
3487 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
3488 * lto-cgraph.c (lto_output_node): Likewise.
3489 (lto_output_varpool_node): Likewise.
3490 (input_node): Likewise.
3491 (input_varpool_node): Likewise.
3492 * lto-streamer-out.c (lto_output): Likewise.
3493 * tree-inline.c (expand_call_inline): Remove usage of
3494 assign_stmts.
3495 * tree-inline.h (struct copy_body_data): Likewise.
3496 * varpool.c (varpool_node::dump): Likewise.
3497
3498 2019-02-13 Jakub Jelinek <jakub@redhat.com>
3499
3500 PR middle-end/89303
3501 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
3502 into pt->vars_contains_escaped_heap instead of setting
3503 pt->vars_contains_escaped_heap to it.
3504
3505 PR middle-end/89281
3506 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
3507 INTVAL (size), compare it to GET_MODE_MASK instead of
3508 1 << GET_MODE_BITSIZE.
3509
3510 PR target/89290
3511 * config/i386/predicates.md (x86_64_immediate_operand): Allow
3512 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
3513 -mcmodel=large.
3514
3515 2019-02-13 Martin Liska <mliska@suse.cz>
3516
3517 PR lto/88858
3518 * cfgrtl.c (remove_barriers_from_footer): New function.
3519 (try_redirect_by_replacing_jump): Use it.
3520 (cfg_layout_redirect_edge_and_branch): Likewise.
3521
3522 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
3523
3524 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
3525 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
3526 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
3527 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
3528 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
3529 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
3530 New BU_CRYPTO_2.
3531 * config/rs6000/rs6000.c (builtin_function_type)
3532 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
3533 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
3534 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
3535 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
3536 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
3537
3538 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
3539
3540 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
3541 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
3542
3543 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
3544
3545 PR target/89229
3546 * config/i386/i386.md (*movoi_internal_avx): Revert revision
3547 268678 and revision 268657.
3548 (*movti_internal): Likewise.
3549
3550 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
3551
3552 PR target/89233
3553 * config/s390/s390.c (s390_decompose_address): Update comment.
3554 (s390_check_qrst_address): Reject invalid address forms after
3555 LRA.
3556
3557 2019-02-12 Martin Liska <mliska@suse.cz>
3558
3559 PR lto/88876
3560 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
3561 we need default values of funct_state for a function that
3562 is not optimized.
3563
3564 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
3565
3566 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
3567 the object to pick the size of stores on strict-alignment platforms.
3568
3569 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
3570 (*movdi_insn_sp32): Likewise.
3571 (*movdi_insn_sp64): Likewise.
3572
3573 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
3574
3575 PR lto/88677
3576 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
3577 types that needs constructiong.
3578 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
3579
3580 2019-02-12 Richard Biener <rguenther@suse.de>
3581
3582 PR tree-optimization/89253
3583 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
3584 duplicate the loop.
3585
3586 2019-02-11 David Malcolm <dmalcolm@redhat.com>
3587
3588 PR lto/88147
3589 * input.c (selftest::test_line_offset_overflow): New selftest.
3590 (selftest::input_c_tests): Call it.
3591
3592 2019-02-11 Martin Sebor <msebor@redhat.com>
3593
3594 PR tree-optimization/88771
3595 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
3596 when -Wstringop-overflow is set.
3597 (builtin_memref::builtin_memref): Adjust excessive upper bound
3598 only when lower bound is not excessive.
3599 (maybe_diag_overlap): Detect and diagnose excessive bounds via
3600 -Wstringop-ovefflow.
3601 (maybe_diag_offset_bounds): Rename...
3602 (maybe_diag_access_bounds): ...to this.
3603 (check_bounds_or_overlap): Adjust for name change above.
3604
3605 2019-02-11 Martin Sebor <msebor@redhat.com>
3606
3607 PR c++/87996
3608 * builtins.c (max_object_size): Move from here...
3609 * builtins.h (max_object_size): ...and here...
3610 * tree.c (max_object_size): ...to here...
3611 * tree.h (max_object_size): ...and here.
3612
3613 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
3614
3615 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
3616 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
3617 for correct semantics.
3618
3619 2019-02-11 Alan Modra <amodra@gmail.com>
3620
3621 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
3622 -mlongcall and -mpltseq.
3623 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
3624 (RS/6000 and PowerPC Options <-mpltseq>): Document.
3625 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
3626 * config/rs6000/sysv4.opt (mpltseq): New option.
3627 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
3628 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
3629 support is lacking. Don't allow -mpltseq with -mbss-plt.
3630 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
3631 -mpltseq given for ELFv1.
3632 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
3633 Only use UNSPEC_PLTSEQ for inline PLT calls.
3634 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
3635 use UNSPEC_PLTSEQ for inline PLT calls.
3636 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
3637 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
3638 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
3639 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
3640 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
3641 (pltseq_mtctr_<mode>): Likewise.
3642
3643 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3644
3645 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
3646 Solaris ld.
3647 * configure: Regenerate.
3648
3649 2019-02-11 Jakub Jelinek <jakub@redhat.com>
3650
3651 PR bootstrap/88714
3652 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
3653 instead of r.
3654
3655 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
3656
3657 * function.c (assign_parm_setup_block): Use the stored
3658 size, not the passed size, when allocating stack-space,
3659 also for a parameter with alignment larger than
3660 MAX_SUPPORTED_STACK_ALIGNMENT.
3661
3662 2019-02-11 Martin Liska <mliska@suse.cz>
3663
3664 PR ipa/89009
3665 * ipa-cp.c (build_toporder_info): Remove usage of a param.
3666 * ipa-inline.c (inline_small_functions): Likewise.
3667 * ipa-pure-const.c (propagate_pure_const): Likewise.
3668 (propagate_nothrow): Likewise.
3669 * ipa-reference.c (propagate): Likewise.
3670 * ipa-utils.c (struct searchc_env): Remove unused field.
3671 (searchc): Always search across AVAIL_INTERPOSABLE.
3672 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
3673 the only called IPA pure const can properly not propagate
3674 across interposable boundary.
3675 * ipa-utils.h (ipa_reduced_postorder): Remove param.
3676
3677 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
3678
3679 * config/nds32/nds32.md (call_internal, call_value_internal,
3680 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
3681
3682 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
3683
3684 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
3685 typo.
3686
3687 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
3688
3689 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
3690 in comments
3691
3692 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
3693
3694 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
3695
3696 2019-02-10 Jakub Jelinek <jakub@redhat.com>
3697
3698 PR tree-optimization/89268
3699 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
3700 if preds is non-NULL.
3701
3702 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
3703
3704 PR lto/89272
3705 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
3706 polymorphic types.
3707
3708 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
3709
3710 * config/nds32/nds32.md (trap): New pattern.
3711
3712 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
3713
3714 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
3715 dwarf span.
3716
3717 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
3718
3719 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
3720 to split POST_INC.
3721
3722 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
3723
3724 * ipa-visibility.c (localize_node): Also do not localize
3725 LDPR_PREVAILING_DEF_IRONLY_EXP.
3726
3727 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
3728
3729 PR lto/87957
3730 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
3731 instead of type_with_linkage.
3732
3733 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
3734
3735 PR ipa/88755
3736 * params.def (uninlined-function-insns, uninlined-function-time,
3737 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
3738 bound so we don't get overflows.
3739
3740 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
3741
3742 * config/rs6000/rs6000-string.c (expand_compare_loop,
3743 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
3744 memcmp/strncmp.
3745
3746 2019-02-09 Jakub Jelinek <jakub@redhat.com>
3747
3748 PR middle-end/89246
3749 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
3750 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
3751 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
3752
3753 2019-02-09 Alan Modra <amodra@gmail.com>
3754
3755 PR target/88343
3756 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
3757 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
3758 setup.
3759
3760 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
3761
3762 PR middle-end/88560
3763 * lra-constraints.c (process_alt_operands): Don't increase reject
3764 for memory when offset memory is required.
3765
3766 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
3767
3768 * config/s390/vector.md: Implement vector copysign.
3769
3770 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
3771
3772 * expr.c (expand_constructor): Correct indentations.
3773
3774 2019-02-08 Richard Biener <rguenther@suse.de>
3775
3776 PR tree-optimization/89247
3777 * tree-if-conv.c: Include tree-cfgcleanup.h.
3778 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
3779 (tree_if_conversion): Pass through predicate vector.
3780 (pass_if_conversion::execute): Do CFG cleanup and SSA update
3781 inline, see if any if-converted loops we refrece in
3782 LOOP_VECTORIZED calls vanished and fixup.
3783 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
3784
3785 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
3786
3787 * config/s390/constraints.md (jdd): New constraint.
3788
3789 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
3790
3791 PR target/89229
3792 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
3793 upper 16 vector registers without TARGET_AVX512VL.
3794 (*movti_internal): Likewise.
3795
3796 2019-02-08 Jakub Jelinek <jakub@redhat.com>
3797
3798 PR rtl-optimization/89234
3799 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
3800 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
3801 (copy_reg_eh_region_note_backward): Likewise.
3802
3803 2019-02-08 Richard Biener <rguenther@suse.de>
3804
3805 PR middle-end/89223
3806 * tree-data-ref.c (initialize_matrix_A): Fail if constant
3807 doesn't fit in HWI.
3808 (analyze_subscript_affine_affine): Handle failure from
3809 initialize_matrix_A.
3810
3811 2019-02-08 Jakub Jelinek <jakub@redhat.com>
3812
3813 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
3814 cfun everywhere.
3815
3816 2019-02-07 David Malcolm <dmalcolm@redhat.com>
3817
3818 PR tree-optimization/86637
3819 PR tree-optimization/89235
3820 * tree-vect-loop.c (optimize_mask_stores): Add an
3821 auto_purge_vect_location sentinel to ensure that vect_location is
3822 purged on exit.
3823 * tree-vectorizer.c
3824 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
3825 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
3826 to ensure that vect_location is purged on exit.
3827 (pass_slp_vectorize::execute): Likewise, replacing the manual
3828 reset.
3829 * tree-vectorizer.h (class auto_purge_vect_location): New class.
3830
3831 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3832
3833 * config/aarch64/iterators.md (max_opp): New code_attr.
3834 (USMAX): New code iterator.
3835 * config/aarch64/predicates.md (aarch64_smin): New predicate.
3836 (aarch64_smax): Likewise.
3837 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
3838 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
3839 MINUS (MAX MIN).
3840
3841 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
3842
3843 PR target/89229
3844 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
3845 for TARGET_AVX512VL.
3846 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
3847
3848 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
3849
3850 * config/s390/s390-builtin-types.def: Add new types.
3851 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
3852 (s390_vec_xlw4): Make the memory operand into a const pointer.
3853 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
3854 float.
3855 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
3856 a new vector type with the alignment of the scalar memory operand.
3857
3858 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
3859 Jakub Jelinek <jakub@redhat.com>
3860
3861 PR bootstrap/88714
3862 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
3863 arm_count_ldrdstrd_insns): New declarations.
3864 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
3865 MINUS.
3866 (valid_operands_ldrd_strd): New function.
3867 (arm_count_ldrdstrd_insns): New function.
3868 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
3869 sets instead of single DImode set and define new insns to match this.
3870
3871 2019-02-07 Tamar Christina <tamar.christina@arm.com>
3872
3873 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
3874 Make it a C initializer.
3875
3876 2019-02-07 Tamar Christina <tamar.christina@arm.com>
3877
3878 PR/target 88850
3879 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
3880
3881 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3882
3883 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
3884 Use neon_dot<q> for type.
3885 (neon_<sup>dot_lane<vsi2qi>): Likewise.
3886
3887 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3888
3889 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
3890 Use neon_dot<q> for type.
3891 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
3892 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
3893
3894 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
3895
3896 PR rtl-optimization/89225
3897 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
3898 sizes check.
3899
3900 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
3901
3902 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
3903 after restoring registers saved to allocate the frame on Windows.
3904
3905 2019-02-06 Richard Biener <rguenther@suse.de>
3906
3907 PR tree-optimization/89182
3908 * graphite.h (cached_scalar_evolution_in_region): Declare.
3909 * graphite.c (struct seir_cache_key): New.
3910 (struct sese_scev_hash): Likewise.
3911 (seir_cache): New global.
3912 (cached_scalar_evolution_in_region): New function.
3913 (graphite_transform_loops): Allocate and release seir_cache.
3914 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
3915 cached_scalar_evolution_in_region.
3916 * graphite-scop-detection.c (scop_detection::can_represent_loop):
3917 Simplify.
3918 (scop_detection::graphite_can_represent_expr: Use
3919 cached_scalar_evolution_in_region.
3920 (scop_detection::stmt_simple_for_scop_p): Likewise.
3921 (find_params_in_bb): Likewise.
3922 (gather_bbs::before_dom_children): Likewise.
3923 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
3924 (add_loop_constraints): Likewise.
3925
3926 2019-02-06 Jakub Jelinek <jakub@redhat.com>
3927
3928 PR middle-end/89210
3929 * fold-const-call.c (fold_const_vec_convert): Pass true as last
3930 operand to new_unary_operation only if both element types are integral
3931 and it isn't a widening conversion. Return NULL_TREE if
3932 new_unary_operation failed.
3933
3934 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
3935
3936 PR target/88856
3937 * config/s390/s390.md: Remove load and test FP splitter.
3938
3939 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
3940
3941 PR target/89112
3942 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
3943 expand_compare_loop, expand_block_compare_gpr,
3944 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
3945 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
3946 #include "profile-count.h" and "predict.h" for types and functions
3947 needed to work with REG_BR_PROB notes.
3948
3949 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
3950
3951 PR target/89112
3952 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
3953 for the long branch case.
3954
3955 2019-02-05 Jakub Jelinek <jakub@redhat.com>
3956
3957 PR target/89188
3958 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
3959 can throw, non-call exceptions are enabled and we can't delete
3960 dead exceptions or alter cfg. Set must_clean if
3961 delete_insn_and_edges returns true, don't set it blindly for calls.
3962 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
3963
3964 PR rtl-optimization/89195
3965 * combine.c (make_extraction): For MEMs, don't extract bytes outside
3966 of the original MEM.
3967
3968 2019-02-05 Martin Liska <mliska@suse.cz>
3969
3970 PR gcov-profile/89000
3971 * gcov.c (function_summary): Remove argument.
3972 (file_summary): New function.
3973 (print_usage): Replace tabs with spaces.
3974 (generate_results): Use new function file_summary.
3975
3976 2019-02-05 Jakub Jelinek <jakub@redhat.com>
3977
3978 PR target/89186
3979 * optabs.c (prepare_cmp_insn): Pass x and y to
3980 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
3981
3982 2019-02-05 Richard Biener <rguenther@suse.de>
3983
3984 PR middle-end/89150
3985 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
3986 (struct bitmap_element): Drop chain_prev so we properly recurse on
3987 the prev member, supporting tree views.
3988 (struct bitmap_head): GTY skip the obstack member.
3989
3990 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
3991
3992 PR c/88698
3993 * doc/extend.texi (Vector Extensions): Add an example of using vector
3994 types together with x86 intrinsics.
3995
3996 2019-02-04 Alan Modra <amodra@gmail.com>
3997
3998 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
3999 str[] size to 160, and comment.
4000
4001 2019-02-04 Alan Modra <amodra@gmail.com>
4002
4003 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
4004 (rs6000_pltseq_template): Guard output of TLS markers with
4005 TARGET_TLS_MARKERS.
4006 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
4007 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
4008 to use inline PLT sequences.
4009 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
4010 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
4011 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
4012
4013 2019-02-04 Martin Liska <mliska@suse.cz>
4014
4015 PR ipa/88985
4016 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
4017 out when ipa_fn_summaries does not contain entry for callee.
4018
4019 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
4020
4021 * config/sparc/sparc.h: Remove superfluous blank lines.
4022 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
4023 (got_register_rtx): ...this.
4024 (sparc_got): Adjust to above renaming.
4025 (sparc_tls_got): Likewise.
4026 (sparc_delegitimize_address): Likewise.
4027 (sparc_output_mi_thunk): Likewise.
4028 (sparc_init_pic_reg): Likewise.
4029 (save_local_or_in_reg_p): Fix test on the GOT register.
4030 (USE_HIDDEN_LINKONCE): Move around.
4031 (get_pc_thunk_name): Likewise.
4032 (gen_load_pcrel_sym): Likewise.
4033 (load_got_register): Likewise.
4034
4035 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
4036
4037 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
4038 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
4039
4040 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
4041
4042 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
4043 into consideration.
4044
4045 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
4046
4047 * config.gcc (with_nds32_lib, glibc):
4048 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
4049 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
4050 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
4051
4052 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
4053
4054 PR target/89071
4055 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
4056 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
4057 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
4058 (*rcpsf2_sse): Ditto.
4059 (*rsqrtsf2_sse): Ditto.
4060 (sse4_1_round<mode<2): Ditto.
4061
4062 2019-02-03 Richard Biener <rguenther@suse.de>
4063
4064 PR debug/87295
4065 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
4066 orig.
4067
4068 2019-02-02 Jakub Jelinek <jakub@redhat.com>
4069
4070 PR middle-end/87887
4071 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
4072 Punt with warning on aggregate return or argument types. Ignore
4073 type/mode checking for uniform arguments.
4074
4075 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
4076
4077 * combine.c (try_combine): Do not print "Can't combine" messages unless
4078 printing failed combination attempts.
4079
4080 2019-02-01 Martin Jambor <mjambor@suse.cz>
4081
4082 PR hsa/87863
4083 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
4084 segment and global segment variables before making them static.
4085
4086 2019-02-01 Martin Jambor <mjambor@suse.cz>
4087
4088 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
4089 missed optimization dump with dump_enabled_p.
4090
4091 2019-02-01 Richard Biener <rguenther@suse.de>
4092
4093 PR middle-end/88597
4094 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
4095 the instantiate cache.
4096 (instantiate_scev_binary): Elide second operand procesing
4097 if equal to the first.
4098 * tree-chrec.c (chrec_contains_symbols): Add visited set.
4099 (chrec_contains_undetermined): Likewise.
4100 (tree_contains_chrecs): Likewise.
4101
4102 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
4103
4104 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
4105
4106 2019-02-01 Jakub Jelinek <jakub@redhat.com>
4107
4108 PR tree-optimization/89143
4109 * wide-int-range.h (wide_int_range_absu): Declare.
4110 * wide-int-range.cc (wide_int_range_absu): New function.
4111 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
4112
4113 PR tree-optimization/88107
4114 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
4115 instead of assertion that eh_region_outermost is non-NULL, if it
4116 is NULL, set *ALL to true and return NULL.
4117 (move_sese_region_to_fn): Adjust caller, if all is set, call
4118 duplicate_eh_regions with NULL region.
4119
4120 2019-02-01 Richard Biener <rguenth@suse.de>
4121
4122 PR rtl-optimization/88593
4123 * mode-switching.c (optimize_mode_switching): Free dominators before
4124 calling cleanup_cfg.
4125
4126 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
4127
4128 PR tree-optimization/88932
4129 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
4130
4131 2019-01-31 Jakub Jelinek <jakub@redhat.com>
4132
4133 PR middle-end/89137
4134 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
4135 bogus clang warning.
4136
4137 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
4138
4139 PR target/89071
4140 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
4141 alternative to avoid partial SSE register stall for TARGET_AVX.
4142 (truncdfsf2): Ditto.
4143 (sse4_1_round<mode>2): Ditto.
4144
4145 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
4146
4147 PR tree-optimization/89008
4148 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
4149 process anything of the form X * 0.
4150
4151 2019-01-31 Richard Biener <rguenther@suse.de>
4152
4153 PR tree-optimization/89135
4154 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
4155 with abnormal preds.
4156
4157 2019-01-31 Jakub Jelinek <jakub@redhat.com>
4158
4159 PR sanitizer/89124
4160 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
4161 always_inline callees into no_sanitize_address callers.
4162
4163 2019-01-31 Richard Biener <rguenther@suse.de>
4164
4165 PR rtl-optimization/89115
4166 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
4167
4168 2019-01-30 Martin Sebor <msebor@redhat.com>
4169
4170 PR other/89106
4171 * doc/extend.texi (cast to a union): Correct and expand.
4172
4173 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
4174
4175 PR rtl-optimization/87246
4176 * lra-constraints.c (simplify_operand_subreg): Reload memory
4177 in subreg if the address became invalid.
4178
4179 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
4180
4181 PR target/87064
4182 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
4183 Disable for little-endian.
4184
4185 2019-01-30 Richard Biener <rguenther@suse.de>
4186
4187 PR rtl-optimization/89115
4188 * opts.c (default_options_optimization): Reduce
4189 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
4190 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
4191 to the default.
4192
4193 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
4194
4195 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
4196 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
4197 type of vector element when vec_extract is implemented by direct
4198 move.
4199
4200 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
4201
4202 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
4203
4204 2019-01-30 Richard Biener <rguenther@suse.de>
4205
4206 PR tree-optimization/89111
4207 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
4208 canonicalization to appropriately sized access types.
4209
4210 2019-01-30 Jakub Jelinek <jakub@redhat.com>
4211
4212 PR c++/89105
4213 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
4214 for arguments to functions that are TU-local and shouldn't be
4215 referenced by assembly.
4216
4217 2019-01-30 Ulrich Drepper <drepper@redhat.com>
4218
4219 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
4220 after '='.
4221
4222 2019-01-29 Martin Sebor <msebor@redhat.com>
4223
4224 PR c/88956
4225 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
4226
4227 2019-01-29 Jakub Jelinek <jakub@redhat.com>
4228
4229 PR c++/66676
4230 PR ipa/89104
4231 * omp-simd-clone.c (simd_clone_clauses_extract)
4232 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
4233 OMP_CLAUSE_ALIGNED_ALIGNMENT.
4234
4235 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
4236
4237 * config.gcc: Force .init_array for ARC.
4238
4239 2019-01-29 Richard Biener <rguenther@suse.de>
4240
4241 PR debug/87295
4242 * dwarf2out.c (collect_skeleton_dies): New helper.
4243 (copy_decls_for_unworthy_types): Call it.
4244 (build_abbrev_table): Assert we do not try to replace
4245 DW_AT_signature refs with local refs.
4246
4247 2019-01-28 Jakub Jelinek <jakub@redhat.com>
4248
4249 PR middle-end/89002
4250 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
4251 for lastprivate/linear IV, push gimplify context around gimplify_assign
4252 and, if it needed any temporaries, pop it into a gimple bind around the
4253 sequence.
4254
4255 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
4256
4257 * common.opt (-Wattribute-alias): Remove "no-" from name.
4258 Make -Wattribute-alias command line option and
4259 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
4260
4261 2019-01-28 Jakub Jelinek <jakub@redhat.com>
4262
4263 PR target/89073
4264 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
4265 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
4266 x86 ISA options.
4267 (bmi2): Add missing @opindex.
4268 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
4269 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
4270 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
4271 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
4272 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
4273 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
4274 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
4275 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
4276 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
4277 xsavec, xsaveopt and xsaves options.
4278
4279 2019-01-28 Richard Biener <rguenther@suse.de>
4280
4281 PR debug/89076
4282 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
4283 support removal.
4284
4285 2019-01-28 Richard Biener <rguenther@suse.de>
4286
4287 PR tree-optimization/88739
4288 * tree-cfg.c (verify_types_in_gimple_reference): Verify
4289 BIT_FIELD_REFs only are applied to mode-precision operands
4290 when they are integral.
4291 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
4292 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
4293 BIT_FIELD_REFs of non-mode-precision integral operands.
4294
4295 2019-01-27 Jakub Jelinek <jakub@redhat.com>
4296
4297 PR target/87214
4298 * config/i386/sse.md
4299 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
4300 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
4301 first constants in pairs are multiples of 2. Formatting fixes.
4302 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
4303 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
4304 first constants in each quadruple are multiples of 4. Formatting fixes.
4305
4306 2019-01-26 Martin Jambor <mjambor@suse.cz>
4307
4308 PR ipa/88933
4309 * tree-inline.c: Include tree-cfgcleanup.h.
4310 (delete_unreachable_blocks_update_callgraph): Move...
4311 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
4312 ...here, make externally visible, make second argument bool, adjust
4313 all callers.
4314 * tree-cfgcleanup.c: Include cgraph.h.
4315 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
4316 Declare.
4317 * ipa-prop.c: Include tree-cfgcleanup.h.
4318 (ipcp_transform_function): Call
4319 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
4320
4321 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
4322
4323 PR rtl-optimization/88846
4324 * ira.c (process_set_for_memref_referenced_p): New.
4325 (memref_referenced_p): Add new param. Use
4326 process_set_for_memref_referenced_p. Add new switch cases.
4327 (memref_used_between_p): Pass new arg to memref_referenced_p.
4328
4329 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
4330
4331 PR target/88469
4332 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
4333 argument ABI_BREAK. Set to true if the calculated alignment has
4334 changed in gcc-9. Check bit-fields for their base type alignment.
4335 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
4336 (aarch64_function_arg_boundary): Likewise.
4337 (aarch64_gimplify_va_arg_expr): Likewise.
4338
4339 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
4340
4341 PR middle-end/89037
4342 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
4343 instead of accessing TREE_INT_CST_ELT directly.
4344
4345 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
4346
4347 * doc/sourcebuild.texi (Environment attributes): Add fenv and
4348 fenv_exceptions description.
4349
4350 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
4351
4352 PR rtl-optimization/87763
4353 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
4354 Allow SUBREG when matching CC_NZmode compare.
4355
4356 2019-01-25 Richard Biener <rguenther@suse.de>
4357
4358 PR tree-optimization/89049
4359 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
4360 Look at the pattern stmt to determine if the stmt is vectorized.
4361
4362 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
4363
4364 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
4365 (pred_mov<mode>): Handle all-register forms using both a new
4366 alternative and a split.
4367
4368 2019-01-25 Richard Biener <rguenther@suse.de>
4369
4370 PR tree-optimization/86865
4371 * graphite-scop-detection.c (scop_detection::can_represent_loop):
4372 Reject non-do-while loops.
4373
4374 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
4375
4376 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
4377 * config/rs6000/constraints.md (Q constraint): Use REG_P.
4378 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
4379 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
4380 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
4381 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4382 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
4383 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
4384 vlogical_operand, gpc_reg_operand, int_reg_operand,
4385 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
4386 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
4387 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
4388 (save_world_operation, restore_world_operation, lmw_operation,
4389 stmw_operation): Use MEM_P and REG_P.
4390 (tie_operand): Use MEM_P.
4391 (vrsave_operation, crsave_operation): Use REG_P.
4392 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
4393 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
4394 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
4395 (call_operand): Use HARD_REGISTER_P.
4396 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
4397 Use CONST_INT_P.
4398 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
4399 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
4400 quad_aligned_load_p, replace_swapped_aligned_store,
4401 recombine_lvx_pattern, replace_swapped_aligned_load,
4402 recombine_stvx_pattern): Use MEM_P.
4403 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
4404 Use MEM_P and SYMBOL_REF_P.
4405 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
4406 (insn_is_swappable_p): Use REG_P and MEM_P.
4407 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
4408 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
4409 Use CONST_INT_P.
4410 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
4411 Use CONST_DOUBLE_P.
4412 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
4413 CONST_WIDE_INT_P.
4414 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
4415 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
4416 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
4417 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
4418 reg_or_subregno:
4419 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
4420 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
4421 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
4422 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
4423 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
4424 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
4425 rs6000_split_logical_di): Use CONST_INT_P.
4426 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
4427 REG_P and SYMBOL_REF_P.
4428 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
4429 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
4430 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
4431 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
4432 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
4433 (small_data_operand, print_operand_address): Use CONST_INT_P and
4434 SYMBOL_REF_P.
4435 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
4436 (rs6000_init_hard_regno_mode_ok, direct_move_p):
4437 Use HARD_REGISTER_NUM_P.
4438 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
4439 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
4440 SUBREG_P and SYMBOL_REF_P.
4441 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
4442 and HARD_REGISTER_NUM_P.
4443 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
4444 reg_or_subregno.
4445 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
4446 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
4447 MEM_P and REG_P.
4448 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
4449 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
4450 find_addr_reg): Use REG_P.
4451 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
4452 (rs6000_emit_le_vsx_move): Use SUBREG_P.
4453 (offsettable_ok_by_alignment, constant_pool_expr_p,
4454 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
4455 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
4456 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
4457 rs6000_assemble_integer, create_TOC_reference,
4458 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
4459 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
4460 (rs6000_split_vec_extract_var): Use reg_or_subregno.
4461 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
4462 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
4463 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4464 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
4465 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
4466 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
4467 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
4468 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
4469 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
4470 and cbranch<mode>4): Use CONST_INT_P.
4471 (multiple define_splits): Use REG_P and SUBREG_P.
4472 (define_expands call, call_value): Use MEM_P.
4473 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
4474 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
4475 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
4476 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
4477 and HARD_REGISTER_NUM_P.
4478 (multiple define_splits): Use HARD_REGISTER_NUM_P.
4479
4480 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
4481
4482 PR rtl-optimization/88948
4483 * rtl.h (prepare_copy_insn): New prototype.
4484 * gcse.c (prepare_copy_insn): New function, split out from
4485 process_insert_insn.
4486 (process_insert_insn): Use prepare_copy_insn.
4487 * store-motion.c (replace_store_insn): Use prepare_copy_insn
4488 instead of gen_move_insn.
4489
4490 2019-01-24 Jakub Jelinek <jakub@redhat.com>
4491
4492 PR debug/89006
4493 * config/i386/i386.c (ix86_pic_register_p): Return true for
4494 UNSPEC_SET_GOT too.
4495
4496 PR tree-optimization/88964
4497 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
4498 punt if HONOR_SNANS (chrec).
4499
4500 PR middle-end/89015
4501 * tree-nested.c (convert_nonlocal_reference_stmt,
4502 convert_local_reference_stmt, convert_tramp_reference_stmt,
4503 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
4504 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
4505 or GIMPLE_OMP_TASK.
4506
4507 PR tree-optimization/89027
4508 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
4509 for "omp simd array" variables.
4510
4511 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
4512
4513 PR target/88469
4514 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
4515 force the alignment of m_val.
4516
4517 2019-01-24 Richard Biener <rguenther@suse.de>
4518
4519 PR lto/87187
4520 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
4521 When in "legacy" debug mode make sure to reset self-origins.
4522
4523 2019-01-24 Martin Liska <mliska@suse.cz>
4524
4525 PR gcov-profile/88994
4526 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
4527 result will be always smaller or equal to the original.
4528 * gcov.c (mangle_name): Fix else branch where we should
4529 also copy to PTR and shift the pointer.
4530
4531 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
4532
4533 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
4534 * vr-values.c (find_case_label_ranges): Fix a comment typo.
4535
4536 2019-01-23 Bin Cheng <bin.cheng@arm.com>
4537 Steve Ellcey <sellcey@marvell.com>
4538
4539 PR target/85711
4540 * recog.c (address_operand): Return false on wrong mode for address.
4541 (constrain_operands): Check for mode with 'p' constraint.
4542
4543 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
4544
4545 PR target/88998
4546 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
4547 Disparage MMX alternative.
4548 (sse2_cvtpd2pi): Ditto.
4549 (sse2_cvttpd2pi): Ditto.
4550
4551 2019-01-23 David Malcolm <dmalcolm@redhat.com>
4552
4553 PR driver/89014
4554 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
4555 use-after-free of the result of
4556 aarch64_get_extension_string_for_isa_flags.
4557
4558 2019-01-23 Jakub Jelinek <jakub@redhat.com>
4559
4560 PR c/44715
4561 * doc/extend.texi: Document break and continue behavior in
4562 statement expressions.
4563
4564 2019-01-23 Richard Biener <rguenther@suse.de>
4565
4566 PR tree-optimization/89008
4567 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
4568 not leave another stray operand.
4569
4570 2019-01-23 Jakub Jelinek <jakub@redhat.com>
4571
4572 * BASE-VER: Bump to 9.0.1.
4573
4574 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
4575
4576 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
4577 thunk that returns by reference, use the type of the return object
4578 of the thunk instead of that of the alias to build the dereference.
4579
4580 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
4581
4582 * config/arc/atomic.md: Add operand to DMB instruction.
4583
4584 2019-01-23 Jakub Jelinek <jakub@redhat.com>
4585
4586 PR tree-optimization/88964
4587 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
4588 build_zero_cst instead of build_int_cst. Return false for loop
4589 invariants which honor signed zeros.
4590
4591 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
4592
4593 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
4594
4595 2019-01-22 Jakub Jelinek <jakub@redhat.com>
4596
4597 PR target/88965
4598 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
4599 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
4600 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
4601
4602 PR middle-end/88968
4603 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
4604 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
4605
4606 PR target/87064
4607 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
4608 Disable for little endian.
4609
4610 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
4611
4612 PR target/88469
4613 * config/arm/arm.c (arm_needs_double_word_align): Check
4614 DECL_BIT_FIELD_TYPE.
4615
4616 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
4617 H.J. Lu <hongjiu.lu@intel.com>
4618
4619 PR target/88909
4620 * config/i386/i386-builtin.def: Add mask2 to all builtin
4621 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
4622 SPECIAL_ARGS.
4623 * config/i386/i386.c (BDESC): Add mask2 to the definition.
4624 (BDESC_FIRST): Likewise.
4625 (define_builtin): Add an argument for mask2. Updated to handle
4626 both ix86_isa_flags and ix86_isa_flags2.
4627 (define_builtin_const): Likewise.
4628 (define_builtin_pure): Likewise.
4629 (define_builtin2): Deleted.
4630 (define_builtin_const2): Likewise.
4631 (builtin_description): Add a member, mask2.
4632 (bdesc_*): Add mask2 to builtin initializations.
4633 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
4634 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
4635 support.
4636 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
4637
4638 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
4639
4640 PR target/88954
4641 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
4642 noplt attribute.
4643
4644 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
4645
4646 PR target/88469
4647 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
4648 alignment is dominated by a bitfield with 64-bit aligned base type.
4649 (arm_function_arg): Emit a warning if the alignment has changed since
4650 earlier GCC releases.
4651 (arm_function_arg_boundary): Likewise.
4652 (arm_setup_incoming_varargs): Likewise.
4653
4654 2019-01-22 Richard Biener <rguenther@suse.de>
4655
4656 PR tree-optimization/88862
4657 * graphite-scop-detection.c
4658 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
4659
4660 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
4661
4662 * doc/extend.tex (AMD GCN Function Attributes): New section.
4663 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
4664 * doc/invoke.texi (AMD GCN Options): New section.
4665 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
4666
4667 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
4668
4669 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
4670 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
4671
4672 2019-01-22 Jakub Jelinek <jakub@redhat.com>
4673
4674 PR tree-optimization/88044
4675 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
4676 is false in the first iteration, but !every_iteration, return false
4677 instead of true with niter->niter zero.
4678
4679 PR rtl-optimization/88904
4680 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
4681 any nonequal registers before processing BB_END (b).
4682
4683 PR target/88905
4684 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
4685 GET_MODE (op0).
4686 (expand_binop_directly, expand_doubleword_clz,
4687 expand_doubleword_popcount, expand_ctz, expand_ffs,
4688 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
4689
4690 PR rtl-optimization/49429
4691 PR target/49454
4692 PR rtl-optimization/86334
4693 PR target/88906
4694 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
4695 addressable from here...
4696 (emit_block_op_via_libcall): ... to here.
4697
4698 2019-01-22 Richard Biener <rguenther@suse.de>
4699
4700 * tree-vect-loop.c (vect_analyze_loop_operations): Use
4701 auto_vec for cost vector to fix memleak.
4702 (vectorize_fold_left_reduction): Properly gather SLP defs.
4703 (vectorizable_comparison): Do not swap operands to properly
4704 gather SLP defs.
4705
4706 2019-01-22 Alan Modra <amodra@gmail.com>
4707
4708 PR target/88614
4709 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
4710 stays a reg. Allow a const_int.
4711 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
4712 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
4713 (IS_NOMARK_TLSGETADDR): Define.
4714 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
4715 (rs6000_output_tlsargs): New function.
4716 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
4717 __tls_get_addr call takes an arg.
4718 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
4719 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
4720 delete split..
4721 (call_value_nonlocal_sysv): ..or here, delete split.
4722 (tls_gdld_nomark): Delete.
4723 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
4724 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
4725 (call_value_nonlocal_sysv): Likewise.
4726 (call_value_nonlocal_sysv_secure): Likewise.
4727 (call_value_nonlocal_aix): Likewise.
4728 (call_value_indirect_aix): Likewise.
4729 (call_value_indirect_elfv2): Likewise.
4730 (call_value_local32, call_value_local64): Disable for no-mark tls.
4731 (call_value_local_aix): Likewise.
4732
4733 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
4734
4735 PR target/88938
4736 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
4737 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
4738
4739 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
4740
4741 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
4742 string contents as hash_map keys.
4743
4744 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
4745
4746 PR c/88928
4747 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
4748 for rvalue context. Handle rvalues correctly. Use min_align_of_type
4749 instead of TYPE_ALIGN.
4750 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
4751 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
4752 pointer from TYPE_STUB_DECL.
4753
4754 2019-01-21 Richard Biener <rguenther@suse.de>
4755
4756 PR tree-optimization/88934
4757 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
4758 at the possibly non-constant operand.
4759 (vect_get_constant_vectors): Adjust.
4760
4761 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
4762
4763 PR target/71659
4764 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
4765 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
4766 instead of _X86INTRIN_H_INCLUDED.
4767 * onfig/i386/clwbintrin.h: Likewise.
4768 * config/i386/pkuintrin.h: Likewise.
4769 * config/i386/prfchwintrin.h: Likewise.
4770 * config/i386/rdseedintrin.h: Likewise.
4771 * config/i386/wbnoinvdintrin.h: Likewise.
4772 * config/i386/xsavecintrin.h: Likewise.
4773 * config/i386/xsavesintrin.h: Likewise.
4774 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
4775 * config/i386/xsaveintrin.h: Likewise.
4776 * config/i386/xsaveoptintrin.h: Likewise.
4777 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
4778 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
4779 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
4780 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
4781 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
4782 * config/i386/immintrin.h: Here.
4783
4784 2019-01-20 Martin Jambor <mjambor@suse.cz>
4785
4786 PR ipa/87615
4787 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
4788 with aa_walk_budget.
4789 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
4790 aa_walk_budget_p parameter.
4791 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
4792 walk. Updated all callers.
4793 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
4794 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
4795 unmodified_parm.
4796 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
4797 parameter info. Extract info from fbi. Pass fbi to recursive calls
4798 and to unmodified_parm.
4799 (phi_result_unknown_predicate): New parameter fbi, removed parameter
4800 info, updated call to will_be_nonconstant_expr_predicate.
4801 (param_change_prob): New parameter fbi, limit AA walking.
4802 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
4803 calls to various above functions.
4804 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
4805 parameter. Use it to limit AA walking.
4806 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
4807 fbi, limit AA walk.
4808 (detect_type_change): New parameter fbi, pass it on to
4809 detect_type_change_from_memory_writes.
4810 (detect_type_change_ssa): Likewise.
4811 (aa_overwalked): Removed.
4812 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
4813 accordingly, adjust to the neew AA limiting scheme.
4814 (parm_ref_data_preserved_p): Likewise.
4815 (ipa_compute_jump_functions_for_edge): Adjust call to
4816 get_dynamic_type.
4817 (ipa_analyze_call_uses): Likewise.
4818 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
4819 (ipa_analyze_node): Initialize aa_walk_budget.
4820 (ipcp_transform_function): Likewise.
4821 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
4822 to get_dynamic_type.
4823
4824 2019-01-19 Jakub Jelinek <jakub@redhat.com>
4825
4826 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
4827 outside of #if CHECKING_P code.
4828
4829 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
4830
4831 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
4832 New function, split out from...
4833 (loop_versioning::analyze_stride): ...here.
4834 (loop_versioning::find_per_loop_multiplication): Use gassign.
4835 (loop_versioning::analyze_term_using_scevs): Return a success code.
4836 (loop_versioning::analyze_arbitrary_term): New function.
4837 (loop_versioning::analyze_address_fragment): Use
4838 analyze_arbitrary_term if all else fails.
4839
4840 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
4841
4842 PR target/88892
4843 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
4844 operands.
4845
4846 2019-01-18 Richard Biener <rguenther@suse.de>
4847
4848 PR tree-optimization/88903
4849 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
4850 scalar stmts a SLP shift amount is composed of when detecting
4851 shifts by scalars.
4852
4853 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
4854
4855 PR target/88799
4856 * config/arm/arm-cpus.in (mp): New feature.
4857 (sec): New feature.
4858 (fgroup ARMv7ve): Add mp and sec features.
4859 (arch armv7-a): Add options to allow mp and sec extensions.
4860 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
4861 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
4862 extenstions to the base architecture.
4863 (cpu cortex-a8): Add sec extension to the base architecture.
4864 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
4865 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
4866 variants down to the base v7-a varaint.
4867 * config/arm/t-multilib (v7_a_arch_variants): New variable.
4868 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
4869 of permitted extensions for -march=armv7-a and for
4870 -mcpu=generic-armv7-a.
4871
4872 2019-01-18 Martin Liska <mliska@suse.cz>
4873
4874 * params.def: Fix comment.
4875 * tree-profile.c (gimple_init_gcov_profiler): Bump function
4876 name.
4877 (gimple_gen_ic_func_profiler): Likewise.
4878
4879 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4880
4881 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
4882 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
4883 and put in error checks for stack protector guard options.
4884 (aarch64_stack_protect_guard): New.
4885 (TARGET_STACK_PROTECT_GUARD): Define.
4886 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
4887 (reg_stack_protect_address<mode>): New.
4888 (stack_protect_set): Adjust for SSP_GLOBAL.
4889 (stack_protect_test): Likewise.
4890 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
4891 (-mstack-protector-guard): Likewise.
4892 (-mstack-protector-guard-offset): Likewise.
4893
4894 2019-01-18 Jakub Jelinek <jakub@redhat.com>
4895
4896 PR tree-optimization/86214
4897 * tree-inline.h (struct copy_body_data): Add
4898 add_clobbers_to_eh_landing_pads member.
4899 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
4900 (copy_edges_for_bb): Call it if EH edge destination is <
4901 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
4902 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
4903 if flag_stack_reuse != SR_NONE and clear it afterwards.
4904
4905 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
4906
4907 PR target/85596
4908 * doc/install.texi (with-multilib-list): Document for aarch64.
4909
4910 2019-01-18 Jakub Jelinek <jakub@redhat.com>
4911
4912 PR target/88734
4913 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
4914 (("..."))) with ("...").
4915
4916 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
4917
4918 * doc/extend.texi (Built-in Functions for Memory Model Aware
4919 Atomic Operations): Document atomic fetch and nand.
4920
4921 2019-01-18 Martin Liska <mliska@suse.cz>
4922 Richard Biener <rguenther@suse.de>
4923
4924 PR middle-end/88587
4925 * cgraph.h (create_version_clone_with_body): Add new argument
4926 with attributes.
4927 * cgraphclones.c (cgraph_node::create_version_clone): Add
4928 DECL_ATTRIBUTES to a newly created decl. And call
4929 valid_attribute_p so that proper cl_target_optimization_node
4930 is set for the newly created declaration.
4931 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
4932 for declaration.
4933 (expand_target_clones): Do not call valid_attribute_p, it must
4934 be already done.
4935 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
4936 vector types.
4937
4938 2019-01-17 Jakub Jelinek <jakub@redhat.com>
4939
4940 PR target/88734
4941 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
4942 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
4943 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
4944
4945 2019-01-17 Martin Sebor <msebor@redhat.com>
4946
4947 PR middle-end/88273
4948 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
4949 Handle anti-ranges the same as no range at all.
4950
4951 2018-01-17 Steve Ellcey <sellcey@cavium.com>
4952
4953 * config/aarch64/aarch64.c (cgraph.h): New include.
4954 (intl.h): New include.
4955 (supported_simd_type): New function.
4956 (currently_supported_simd_type): Ditto.
4957 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
4958 (aarch64_simd_clone_adjust): Ditto.
4959 (aarch64_simd_clone_usable): Ditto.
4960 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
4961 (TARGET_SIMD_CLONE_ADJUST): Ditto.
4962 (TARGET_SIMD_CLONE_USABLE): Ditto.
4963 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
4964 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
4965 call.
4966
4967 2019-01-17 Martin Sebor <msebor@redhat.com>
4968
4969 PR tree-optimization/88800
4970 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
4971 NO_WARNING bit here. Avoid folding out-of-bounds calls.
4972 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
4973 redundant argument. Add new argument and issue diagnostics under
4974 its control. Detect out-of-bounds access even with warnings
4975 disabled.
4976 (check_bounds_or_overlap): Change return type. Add argument.
4977 (wrestrict_dom_walker::check_call): Adjust.
4978 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
4979 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
4980 check_bounds_or_overlap's return value.
4981 (handle_builtin_stxncpy): Same.
4982 (handle_builtin_strcat): Same.
4983
4984 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
4985 Kwok Cheung Yeung <kcy@codesourcery.com>
4986 Julian Brown <julian@codesourcery.com>
4987 Tom de Vries <tom@codesourcery.com>
4988
4989 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
4990
4991 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
4992
4993 * doc/sourcebuild.texi: Document dg-require-effective-target
4994 llvm_binutils and offload_gcn.
4995
4996 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
4997 Kwok Cheung Yeung <kcy@codesourcery.com>
4998 Julian Brown <julian@codesourcery.com>
4999 Tom de Vries <tom@codesourcery.com>
5000
5001 * doc/sourcebuild.texi: Document dg-required-effective-target
5002 exceptions.
5003
5004 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
5005 Kwok Cheung Yeung <kcy@codesourcery.com>
5006 Julian Brown <julian@codesourcery.com>
5007 Tom de Vries <tom@codesourcery.com>
5008 Jan Hubicka <hubicka@ucw.cz>
5009 Martin Jambor <mjambor@suse.cz>
5010
5011 * config.gcc: Add amdgcn*-*-amdhsa configuration.
5012 * configure.ac: Check for dlopen.
5013 * configure: Regenerate.
5014
5015 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
5016 Kwok Cheung Yeung <kcy@codesourcery.com>
5017 Julian Brown <julian@codesourcery.com>
5018 Tom de Vries <tom@codesourcery.com>
5019 Jan Hubicka <hubicka@ucw.cz>
5020 Martin Jambor <mjambor@suse.cz>
5021
5022 * common/config/gcn/gcn-common.c: New file.
5023 * config/gcn/driver-gcn.c: New file.
5024 * config/gcn/gcn-builtins.def: New file.
5025 * config/gcn/gcn-hsa.h: New file.
5026 * config/gcn/gcn-modes.def: New file.
5027 * config/gcn/gcn-opts.h: New file.
5028 * config/gcn/gcn-passes.def: New file.
5029 * config/gcn/gcn-protos.h: New file.
5030 * config/gcn/gcn-run.c: New file.
5031 * config/gcn/gcn-tree.c: New file.
5032 * config/gcn/gcn.c: New file.
5033 * config/gcn/gcn.h: New file.
5034 * config/gcn/gcn.opt: New file.
5035 * config/gcn/t-gcn-hsa: New file.
5036
5037 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
5038 Kwok Cheung Yeung <kcy@codesourcery.com>
5039 Julian Brown <julian@codesourcery.com>
5040 Tom de Vries <tom@codesourcery.com>
5041 Jan Hubicka <hubicka@ucw.cz>
5042 Martin Jambor <mjambor@suse.cz>
5043
5044 * config/gcn/constraints.md: New file.
5045 * config/gcn/gcn-valu.md: New file.
5046 * config/gcn/gcn.md: New file.
5047 * config/gcn/predicates.md: New file.
5048
5049 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
5050
5051 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
5052 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
5053 (stmt_uses_0_or_null_in_undefined_way): Likewise.
5054 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
5055
5056 2019-01-17 Tamar Christina <tamar.christina@arm.com>
5057
5058 PR target/88851
5059 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
5060 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
5061 it and document registers.
5062
5063 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5064
5065 * config/aarch64/aarch64.c (ares_tunings): Define.
5066 * config/aarch64/aarch64-cores.def (ares): Use the above.
5067
5068 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
5069
5070 PR target/88794
5071 Revert:
5072 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
5073
5074 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
5075 (_mm512_fixupimm_round_pd): Update parameters and builtin.
5076 (_mm512_maskz_fixupimm_round_pd): Ditto.
5077 (_mm512_fixupimm_round_ps): Ditto.
5078 (_mm512_maskz_fixupimm_round_ps): Ditto.
5079 (_mm_fixupimm_round_sd): Ditto.
5080 (_mm_maskz_fixupimm_round_sd): Ditto.
5081 (_mm_fixupimm_round_ss): Ditto.
5082 (_mm_maskz_fixupimm_round_ss): Ditto.
5083 (_mm512_fixupimm_pd): Ditto.
5084 (_mm512_maskz_fixupimm_pd): Ditto.
5085 (_mm512_fixupimm_ps): Ditto.
5086 (_mm512_maskz_fixupimm_ps): Ditto.
5087 (_mm_fixupimm_sd): Ditto.
5088 (_mm_maskz_fixupimm_sd): Ditto.
5089 (_mm_fixupimm_ss): Ditto.
5090 (_mm_maskz_fixupimm_ss): Ditto.
5091 (_mm512_mask_fixupimm_round_pd): Update builtin.
5092 (_mm512_mask_fixupimm_round_ps): Ditto.
5093 (_mm_mask_fixupimm_round_sd): Ditto.
5094 (_mm_mask_fixupimm_round_ss): Ditto.
5095 (_mm512_mask_fixupimm_pd): Ditto.
5096 (_mm512_mask_fixupimm_ps): Ditto.
5097 (_mm_mask_fixupimm_sd): Ditto.
5098 (_mm_mask_fixupimm_ss): Ditto.
5099 * config/i386/avx512vlintrin.h:
5100 (_mm256_fixupimm_pd): Update parameters and builtin.
5101 (_mm256_maskz_fixupimm_pd): Ditto.
5102 (_mm256_fixupimm_ps): Ditto.
5103 (_mm256_maskz_fixupimm_ps): Ditto.
5104 (_mm_fixupimm_pd): Ditto.
5105 (_mm_maskz_fixupimm_pd): Ditto.
5106 (_mm_fixupimm_ps): Ditto.
5107 (_mm_maskz_fixupimm_ps): Ditto.
5108 (_mm256_mask_fixupimm_pd): Update builtin.
5109 (_mm256_mask_fixupimm_ps): Ditto.
5110 (_mm_mask_fixupimm_pd): Ditto.
5111 (_mm_mask_fixupimm_ps): Ditto.
5112 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
5113 * config/i386/i386-builtin.def: Update builtin definitions.
5114 * config/i386/i386.c: Handle new builtin types and remove useless ones.
5115 * config/i386/sse.md: Update VFIXUPIMM* patterns.
5116 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
5117 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
5118 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
5119 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
5120 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
5121 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
5122 * config/i386/subst.md:
5123 (round_saeonly_sd_mask_operand4): Add new subst_attr.
5124 (round_saeonly_sd_mask_op4): Ditto.
5125 (round_saeonly_expand_operand5): Ditto.
5126 (round_saeonly_expand): Update.
5127
5128 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
5129
5130 PR target/88794
5131 Revert:
5132 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
5133
5134 * config/i386/sse.md: Combine VFIXUPIMM* patterns
5135 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
5136 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
5137 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
5138 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
5139 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
5140 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
5141
5142 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
5143
5144 PR target/88794
5145 Revert:
5146 2018-12-15 Jakub Jelinek <jakub@redhat.com>
5147
5148 PR target/88489
5149 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
5150 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
5151 instead of UNSPEC_FIXUPIMM.
5152
5153 2019-01-17 Richard Biener <rguenther@suse.de>
5154
5155 PR lto/86736
5156 * dwarf2out.c (want_pubnames): Never generate pubnames sections
5157 and friends for the LTO part of debug info.
5158
5159 2019-01-17 Jakub Jelinek <jakub@redhat.com>
5160
5161 PR tree-optimization/86214
5162 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
5163 if x == y.
5164
5165 PR rtl-optimization/88870
5166 * dce.c (deletable_insn_p): Never delete const/pure calls that can
5167 throw if we can't alter the cfg or delete dead exceptions.
5168 (mark_insn): Don't call find_call_stack_args for such calls.
5169
5170 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
5171
5172 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
5173 prototypes for vec_st.
5174 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
5175 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
5176 mainly on signed/unsigned long long and double.
5177
5178 2019-01-16 David Malcolm <dmalcolm@redhat.com>
5179
5180 PR target/88861
5181 * combine.c (delete_noop_moves): Convert to "bool" return,
5182 returning true if any edges are eliminated.
5183 (combine_instructions): Also return true if delete_noop_moves
5184 returns true.
5185
5186 2019-01-16 Tamar Christina <tamar.christina@arm.com>
5187
5188 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
5189 correct max nunits for endian swap.
5190 (aarch64_expand_fcmla_builtin): Correct subreg code.
5191 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
5192 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
5193 lane endianness.
5194
5195 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
5196
5197 * config/alpha/alpha.c (alpha_gimplify_va_arg):
5198 Handle split indirect COMPLEX_TYPE arguments.
5199
5200 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
5201
5202 PR target/86891
5203 * config/aarch64/aarch64-modes.def: Add comment about how the carry
5204 bit is set by add and compare.
5205 (CC_ADC): New CC_MODE.
5206 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
5207 to cache the code and mode of X. Adjust the shape of a CC_Cmode
5208 comparison. Add detection for CC_ADCmode.
5209 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
5210 CC_ADCmode.
5211 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
5212 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
5213 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
5214 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
5215 to eliminate the need for zero-extending the operands.
5216 (add<mode>3_compareC_imm): Delete. Merge into ...
5217 (add<mode>3_compareC): ... this. Restructure the comparison to
5218 eliminate the need for zero-extending the operands.
5219 (add<mode>3_carryin): Use LTU for the overflow detection.
5220 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
5221 Reexpress comparison for overflow.
5222 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
5223 (add<mode>3_carryinC): Likewise.
5224 (add<mode>3_carryinV): Use LTU for carry between partials.
5225 * config/aarch64/predicates.md (aarch64_carry_operation): Update
5226 handling of CC_Cmode and add CC_ADCmode.
5227 (aarch64_borrow_operation): Likewise.
5228
5229 2019-01-16 Tamar Christina <tamar.christina@arm.com>
5230
5231 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
5232 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
5233 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
5234 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
5235
5236 2019-01-16 Martin Liska <mliska@suse.cz>
5237
5238 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
5239 for GCC driver.
5240 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
5241 a new argument.
5242 * gcc.c (add_sysrooted_hdrs_prefix): New function.
5243 (path_prefix_reset): Move up in the source file.
5244 (find_fortran_preinclude_file): Make complex search for the
5245 fortran header files.
5246
5247 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
5248
5249 * godump.c (go_output_typedef): When outputting a typedef, refer
5250 to the underlying type by its name and not its structure.
5251
5252 2019-01-15 David Malcolm <dmalcolm@redhat.com>
5253
5254 PR c++/88795
5255 * tree.c (build_function_type): Assert that arg_types is not
5256 error_mark_node.
5257
5258 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
5259
5260 PR inline-asm/52813
5261 * doc/extend.texi: Document that listing the stack pointer in the
5262 clobber list of an asm is a deprecated feature.
5263 * common.opt (Wdeprecated): Moved from c-family/c.opt.
5264 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
5265 warning instead of an error for clobbers of the stack pointer.
5266 Add a note explaining why.
5267
5268 2019-01-15 Richard Biener <rguenther@suse.de>
5269
5270 PR debug/88046
5271 * dwarf2out.c (gen_member_die): Do not generate inheritance
5272 DIEs late.
5273
5274 2019-01-15 Richard Biener <rguenther@suse.de>
5275
5276 PR tree-optimization/88855
5277 * tree-if-conv.c (combine_blocks): Collect
5278 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
5279
5280 2019-01-15 Tom de Vries <tdevries@suse.de>
5281
5282 PR target/80547
5283 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
5284 lhs == NULL_TREE for gang-level reduction.
5285
5286 2019-01-15 Richard Biener <rguenther@suse.de>
5287 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5288
5289 PR ipa/88788
5290 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
5291 return true if SSA_NAME is already marked in visited bitmap.
5292 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
5293
5294 2019-01-15 Jakub Jelinek <jakub@redhat.com>
5295
5296 PR tree-optimization/88775
5297 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
5298 equal == 0 equality pointer comparisons some more if compared in
5299 integral types and either one points to an automatic var and the
5300 other to a global, or we can prove at least one points to the middle
5301 or both point to start or both point to end.
5302
5303 2019-01-14 Andi Kleen <ak@linux.intel.com>
5304
5305 * Makefile.in: Lower autofdo sampling rate by 10x.
5306 * Makefile.tpl: Dito.
5307
5308 2019-01-14 Tom Honermann <tom@honermann.net>
5309
5310 * defaults.h: Define CHAR8_TYPE.
5311
5312 2019-01-14 Martin Sebor <msebor@redhat.com>
5313
5314 PR target/88638
5315 * doc/extend.texi (Darwin Format Checks): Clarify.
5316
5317 2019-01-14 Richard Biener <rguenther@suse.de>
5318
5319 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
5320 whether we are in (simplify ...) or (match ...) context.
5321
5322 2019-01-14 Jakub Jelinek <jakub@redhat.com>
5323
5324 PR rtl-optimization/88796
5325 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
5326 * cfgexpand.c (stack_protect_prologue): Initialize
5327 crtl->stack_protect_guard_decl.
5328 * function.c (stack_protect_epilogue): Use it instead of calling
5329 targetm.stack_protect_guard again.
5330 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
5331 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
5332 crtl->stack_protect_guard_decl.
5333 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
5334 on the returned MEM_EXPR.
5335
5336 2019-01-12 Tom de Vries <tdevries@suse.de>
5337
5338 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
5339 vector length using -fopenacc-dim.
5340
5341 2019-01-12 Tom de Vries <tdevries@suse.de>
5342
5343 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
5344 lengths into account.
5345
5346 2019-01-12 Svante Signell <svante.signell@gmail.com>
5347
5348 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
5349 (TARGET_CAN_SPLIT_STACK): Define.
5350 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
5351
5352 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
5353
5354 * params.def (inline-unit-growth): Set to 40.
5355
5356 2019-01-12 Jakub Jelinek <jakub@redhat.com>
5357
5358 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
5359
5360 2019-01-12 Tom de Vries <tdevries@suse.de>
5361
5362 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
5363 region calling vector-partitionable routine, set default_vector_length
5364 to WARP_SIZE.
5365
5366 2019-01-12 Tom de Vries <tdevries@suse.de>
5367
5368 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
5369 variable default_vector_length.
5370
5371 2019-01-12 Tom de Vries <tdevries@suse.de>
5372
5373 PR middle-end/88703
5374 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
5375 from oacc_default_dims, as oacc_validate_dims would do it, and apply
5376 dimensions limits.
5377
5378 2019-01-12 Tom de Vries <tdevries@suse.de>
5379
5380 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
5381 (nvptx_goacc_validate_dims): Add used parameter.
5382 * doc/tm.texi: Regenerate.
5383 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
5384 argument to call to targetm.goacc.validate_dims.
5385 (default_goacc_validate_dims): Add used
5386 parameter.
5387 * target.def (validate_dims): Add used parameter in DEFHOOK.
5388 * targhooks.h (default_goacc_validate_dims): Add used parameter.
5389
5390 2019-01-11 Jakub Jelinek <jakub@redhat.com>
5391
5392 PR middle-end/85956
5393 PR lto/88733
5394 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
5395 field.
5396 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
5397 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
5398 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
5399 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
5400
5401 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
5402
5403 PR rtl-optimization/87305
5404 * lra-assigns.c
5405 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
5406 for little endian pseudos used as paradoxical subreg.
5407
5408 2019-01-11 Jakub Jelinek <jakub@redhat.com>
5409
5410 PR tree-optimization/88693
5411 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
5412 for STRING_CSTs that don't contain any NUL characters in the first
5413 TREE_STRING_LENGTH bytes.
5414
5415 2019-01-11 Alan Modra <amodra@gmail.com>
5416
5417 PR 88777
5418 PR 88614
5419 * genattrtab.c (min_fn): Don't translate values.
5420 (min_attr_value): Return INT_MAX when the value can't be calculated.
5421 Return minimum among any values that can be calculated.
5422 (max_attr_value): Adjust.
5423
5424 2019-01-11 Jakub Jelinek <jakub@redhat.com>
5425
5426 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
5427
5428 2019-01-11 Steve Ellcey <sellcey@marvell.com>
5429
5430 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
5431 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
5432 (aarch64_return_call_with_max_clobbers): New function.
5433 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
5434 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
5435 argument.
5436 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
5437 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
5438 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
5439 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
5440 * cselib.c (cselib_process_insn): Add argument to
5441 targetm.hard_regno_call_part_clobbered call.
5442 * ira-conflicts.c (ira_build_conflicts): Ditto.
5443 * ira-costs.c (ira_tune_allocno_costs): Ditto.
5444 * lra-constraints.c (inherit_reload_reg): Ditto.
5445 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
5446 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
5447 argument. Call targetm.return_call_with_max_clobbers.
5448 Add argument to targetm.hard_regno_call_part_clobbered call.
5449 (calls_have_same_clobbers_p): New function.
5450 (process_bb_lives): Add call_insn and last_call_insn variables.
5451 Pass call_insn to check_pseudos_live_through_calls.
5452 Modify if stmt to check targetm.return_call_with_max_clobbers.
5453 Update setting of flush variable.
5454 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
5455 to false.
5456 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
5457 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
5458 targetm.hard_regno_call_part_clobbered call.
5459 * reginfo.c (choose_hard_reg_mode): Ditto.
5460 * regrename.c (check_new_reg_p): Ditto.
5461 * reload.c (find_equiv_reg): Ditto.
5462 * reload1.c (emit_reload_insns): Ditto.
5463 * sched-deps.c (deps_analyze_insn): Ditto.
5464 * sel-sched.c (init_regs_for_mode): Ditto.
5465 (mark_unavailable_hard_regs): Ditto.
5466 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
5467 * target.def (hard_regno_call_part_clobbered): Add insn argument.
5468 (return_call_with_max_clobbers): New target function.
5469 * doc/tm.texi: Regenerate.
5470 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
5471 * hooks.c (hook_bool_uint_mode_false): Change to
5472 hook_bool_insn_uint_mode_false.
5473 * hooks.h (hook_bool_uint_mode_false): Ditto.
5474
5475 2019-01-11 Steve Ellcey <sellcey@marvell.com>
5476
5477 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
5478 (aarch64_remove_extra_call_preserved_regs): New function.
5479 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
5480 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
5481 * doc/tm.texi: Regenerate.
5482 * final.c (get_call_reg_set_usage): Call new hook.
5483 * target.def (remove_extra_call_preserved_regs): New hook.
5484 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
5485 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
5486
5487 2019-01-11 Jakub Jelinek <jakub@redhat.com>
5488
5489 PR bootstrap/88714
5490 * passes.c (finish_optimization_passes): Call print_combine_total_stats
5491 inside of pass_combine_1 dump rather than pass_profile_1.
5492
5493 2019-01-11 Tom de Vries <tdevries@suse.de>
5494
5495 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
5496 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
5497 (PTX_NUM_PER_WORKER_BARRIERS): Define.
5498 (nvptx_apply_dim_limits): Prevent vector_length 64 and
5499 num_workers 16.
5500
5501 2019-01-11 Tom de Vries <tdevries@suse.de>
5502
5503 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
5504
5505 2019-01-11 Jan Beulich <jbeulich@suse.com>
5506
5507 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
5508 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
5509 sse2_cvtsi2sd): Add {l}.
5510 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
5511 syntax.
5512
5513 2019-01-10 Jakub Jelinek <jakub@redhat.com>
5514
5515 PR target/88785
5516 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
5517 define_expand.
5518 (*float<floatunssuffix>v2div2sf2): New define_insn.
5519 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
5520 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
5521 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
5522 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
5523 match_operands with "const0_operand" "C".
5524
5525 2019-01-10 Tamar Christina <tamar.christina@arm.com>
5526
5527 * config/aarch64/aarch64-builtins.c
5528 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
5529 (aarch64_init_simd_builtins): ...Here
5530
5531 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
5532
5533 PR rtl-optimization/87305
5534 * lra-assigns.c
5535 (setup_live_pseudos_and_spill_after_risky_transforms): Check
5536 allocation for big endian pseudos used as paradoxical subregs and
5537 spill them if it is wrong.
5538 * lra-constraints.c (lra_constraints): Add a comment.
5539
5540 2019-01-10 Richard Biener <rguenther@suse.de>
5541
5542 PR tree-optimization/88792
5543 * tree-ssa-pre.c (get_representative_for): Do not return a
5544 value-number here.
5545
5546 2019-01-10 Jakub Jelinek <jakub@redhat.com>
5547
5548 PR middle-end/84877
5549 PR bootstrap/88450
5550 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
5551 (assign_parm_setup_block): Do the argument slot realignment here
5552 instead.
5553
5554 2019-01-10 Stefan Agner <stefan@agner.ch>
5555
5556 PR target/88648
5557 * config/arm/arm.c (arm_option_override_internal): Force
5558 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
5559
5560 2019-01-10 Jakub Jelinek <jakub@redhat.com>
5561
5562 PR c/88568
5563 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
5564 DECL_EXTERNAL.
5565
5566 2019-01-10 Tamar Christina <tamar.christina@arm.com>
5567
5568 * config/arm/arm-builtins.c
5569 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
5570 (MAC_LANE_PAIR_QUALIFIERS): New.
5571 (arm_expand_builtin_args): Use it.
5572 (arm_expand_builtin_1): Likewise.
5573 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
5574 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
5575 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
5576 * config/arm/arm_neon.h:
5577 (vcadd_rot90_f16): New.
5578 (vcaddq_rot90_f16): New.
5579 (vcadd_rot270_f16): New.
5580 (vcaddq_rot270_f16): New.
5581 (vcmla_f16): New.
5582 (vcmlaq_f16): New.
5583 (vcmla_lane_f16): New.
5584 (vcmla_laneq_f16): New.
5585 (vcmlaq_lane_f16): New.
5586 (vcmlaq_laneq_f16): New.
5587 (vcmla_rot90_f16): New.
5588 (vcmlaq_rot90_f16): New.
5589 (vcmla_rot90_lane_f16): New.
5590 (vcmla_rot90_laneq_f16): New.
5591 (vcmlaq_rot90_lane_f16): New.
5592 (vcmlaq_rot90_laneq_f16): New.
5593 (vcmla_rot180_f16): New.
5594 (vcmlaq_rot180_f16): New.
5595 (vcmla_rot180_lane_f16): New.
5596 (vcmla_rot180_laneq_f16): New.
5597 (vcmlaq_rot180_lane_f16): New.
5598 (vcmlaq_rot180_laneq_f16): New.
5599 (vcmla_rot270_f16): New.
5600 (vcmlaq_rot270_f16): New.
5601 (vcmla_rot270_lane_f16): New.
5602 (vcmla_rot270_laneq_f16): New.
5603 (vcmlaq_rot270_lane_f16): New.
5604 (vcmlaq_rot270_laneq_f16): New.
5605 (vcadd_rot90_f32): New.
5606 (vcaddq_rot90_f32): New.
5607 (vcadd_rot270_f32): New.
5608 (vcaddq_rot270_f32): New.
5609 (vcmla_f32): New.
5610 (vcmlaq_f32): New.
5611 (vcmla_lane_f32): New.
5612 (vcmla_laneq_f32): New.
5613 (vcmlaq_lane_f32): New.
5614 (vcmlaq_laneq_f32): New.
5615 (vcmla_rot90_f32): New.
5616 (vcmlaq_rot90_f32): New.
5617 (vcmla_rot90_lane_f32): New.
5618 (vcmla_rot90_laneq_f32): New.
5619 (vcmlaq_rot90_lane_f32): New.
5620 (vcmlaq_rot90_laneq_f32): New.
5621 (vcmla_rot180_f32): New.
5622 (vcmlaq_rot180_f32): New.
5623 (vcmla_rot180_lane_f32): New.
5624 (vcmla_rot180_laneq_f32): New.
5625 (vcmlaq_rot180_lane_f32): New.
5626 (vcmlaq_rot180_laneq_f32): New.
5627 (vcmla_rot270_f32): New.
5628 (vcmlaq_rot270_f32): New.
5629 (vcmla_rot270_lane_f32): New.
5630 (vcmla_rot270_laneq_f32): New.
5631 (vcmlaq_rot270_lane_f32): New.
5632 (vcmlaq_rot270_laneq_f32): New.
5633 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
5634 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
5635 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
5636 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
5637 vcmlaq_lane270): New.
5638 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
5639 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
5640 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
5641 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
5642 (arm_option_reconfigure_globals): Use them.
5643 * config/arm/iterators.md (VDF, VQ_HSF): New.
5644 (VCADD, VCMLA): New.
5645 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
5646 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
5647 New.
5648 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
5649 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
5650
5651 2019-01-10 Tamar Christina <tamar.christina@arm.com>
5652
5653 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
5654 Add qualifier_lane_pair_index.
5655 (emit-rtl.h): Include.
5656 (TYPES_QUADOP_LANE_PAIR): New.
5657 (aarch64_simd_expand_args): Use it.
5658 (aarch64_simd_expand_builtin): Likewise.
5659 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
5660 New.
5661 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
5662 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
5663 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
5664 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
5665 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
5666 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
5667 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
5668 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
5669 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
5670 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
5671 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
5672 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
5673 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
5674 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
5675 Add __ARM_FEATURE_COMPLEX.
5676 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
5677 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
5678 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
5679 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
5680 fcmlaq_lane270): New.
5681 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
5682 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
5683 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
5684 * config/aarch64/arm_neon.h:
5685 (vcadd_rot90_f16): New.
5686 (vcaddq_rot90_f16): New.
5687 (vcadd_rot270_f16): New.
5688 (vcaddq_rot270_f16): New.
5689 (vcmla_f16): New.
5690 (vcmlaq_f16): New.
5691 (vcmla_lane_f16): New.
5692 (vcmla_laneq_f16): New.
5693 (vcmlaq_lane_f16): New.
5694 (vcmlaq_rot90_lane_f16): New.
5695 (vcmla_rot90_laneq_f16): New.
5696 (vcmla_rot90_lane_f16): New.
5697 (vcmlaq_rot90_f16): New.
5698 (vcmla_rot90_f16): New.
5699 (vcmlaq_laneq_f16): New.
5700 (vcmla_rot180_laneq_f16): New.
5701 (vcmla_rot180_lane_f16): New.
5702 (vcmlaq_rot180_f16): New.
5703 (vcmla_rot180_f16): New.
5704 (vcmlaq_rot90_laneq_f16): New.
5705 (vcmlaq_rot270_laneq_f16): New.
5706 (vcmlaq_rot270_lane_f16): New.
5707 (vcmla_rot270_laneq_f16): New.
5708 (vcmlaq_rot270_f16): New.
5709 (vcmla_rot270_f16): New.
5710 (vcmlaq_rot180_laneq_f16): New.
5711 (vcmlaq_rot180_lane_f16): New.
5712 (vcmla_rot270_lane_f16): New.
5713 (vcadd_rot90_f32): New.
5714 (vcaddq_rot90_f32): New.
5715 (vcaddq_rot90_f64): New.
5716 (vcadd_rot270_f32): New.
5717 (vcaddq_rot270_f32): New.
5718 (vcaddq_rot270_f64): New.
5719 (vcmla_f32): New.
5720 (vcmlaq_f32): New.
5721 (vcmlaq_f64): New.
5722 (vcmla_lane_f32): New.
5723 (vcmla_laneq_f32): New.
5724 (vcmlaq_lane_f32): New.
5725 (vcmlaq_laneq_f32): New.
5726 (vcmla_rot90_f32): New.
5727 (vcmlaq_rot90_f32): New.
5728 (vcmlaq_rot90_f64): New.
5729 (vcmla_rot90_lane_f32): New.
5730 (vcmla_rot90_laneq_f32): New.
5731 (vcmlaq_rot90_lane_f32): New.
5732 (vcmlaq_rot90_laneq_f32): New.
5733 (vcmla_rot180_f32): New.
5734 (vcmlaq_rot180_f32): New.
5735 (vcmlaq_rot180_f64): New.
5736 (vcmla_rot180_lane_f32): New.
5737 (vcmla_rot180_laneq_f32): New.
5738 (vcmlaq_rot180_lane_f32): New.
5739 (vcmlaq_rot180_laneq_f32): New.
5740 (vcmla_rot270_f32): New.
5741 (vcmlaq_rot270_f32): New.
5742 (vcmlaq_rot270_f64): New.
5743 (vcmla_rot270_lane_f32): New.
5744 (vcmla_rot270_laneq_f32): New.
5745 (vcmlaq_rot270_lane_f32): New.
5746 (vcmlaq_rot270_laneq_f32): New.
5747 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
5748 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
5749 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
5750 (FCADD, FCMLA): New.
5751 (rot): New.
5752 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
5753
5754 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
5755
5756 PR other/16615
5757
5758 * config/pa/pa.c: Change "can not" to "cannot".
5759 * gimple-ssa-evrp-analyze.c: Likewise.
5760 * ipa-icf.c: Likewise.
5761 * ipa-polymorphic-call.c: Likewise.
5762 * ipa-pure-const.c: Likewise.
5763 * lra-constraints.c: Likewise.
5764 * lra-remat.c: Likewise.
5765 * reload1.c: Likewise.
5766 * reorg.c: Likewise.
5767 * tree-ssa-uninit.c: Likewise.
5768
5769 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
5770
5771 PR other/16615
5772
5773 * Makefile.in: Mechanically replace "can not" with "cannot".
5774 * alias.c: Likewise.
5775 * builtins.c: Likewise.
5776 * calls.c: Likewise.
5777 * cgraph.c: Likewise.
5778 * cgraph.h: Likewise.
5779 * cgraphclones.c: Likewise.
5780 * cgraphunit.c: Likewise.
5781 * combine-stack-adj.c: Likewise.
5782 * combine.c: Likewise.
5783 * common/config/i386/i386-common.c: Likewise.
5784 * config/aarch64/aarch64.c: Likewise.
5785 * config/alpha/sync.md: Likewise.
5786 * config/arc/arc.c: Likewise.
5787 * config/arc/predicates.md: Likewise.
5788 * config/arm/arm-c.c: Likewise.
5789 * config/arm/arm.c: Likewise.
5790 * config/arm/arm.h: Likewise.
5791 * config/arm/arm.md: Likewise.
5792 * config/arm/cortex-r4f.md: Likewise.
5793 * config/csky/csky.c: Likewise.
5794 * config/csky/csky.h: Likewise.
5795 * config/darwin-f.c: Likewise.
5796 * config/epiphany/epiphany.md: Likewise.
5797 * config/i386/i386.c: Likewise.
5798 * config/i386/sol2.h: Likewise.
5799 * config/m68k/m68k.c: Likewise.
5800 * config/mcore/mcore.h: Likewise.
5801 * config/microblaze/microblaze.md: Likewise.
5802 * config/mips/20kc.md: Likewise.
5803 * config/mips/sb1.md: Likewise.
5804 * config/nds32/nds32.c: Likewise.
5805 * config/nds32/predicates.md: Likewise.
5806 * config/pa/pa.c: Likewise.
5807 * config/rs6000/e300c2c3.md: Likewise.
5808 * config/rs6000/rs6000.c: Likewise.
5809 * config/s390/s390.h: Likewise.
5810 * config/sh/sh.c: Likewise.
5811 * config/sh/sh.md: Likewise.
5812 * config/spu/vmx2spu.h: Likewise.
5813 * cprop.c: Likewise.
5814 * dbxout.c: Likewise.
5815 * df-scan.c: Likewise.
5816 * doc/cfg.texi: Likewise.
5817 * doc/extend.texi: Likewise.
5818 * doc/fragments.texi: Likewise.
5819 * doc/gty.texi: Likewise.
5820 * doc/invoke.texi: Likewise.
5821 * doc/lto.texi: Likewise.
5822 * doc/md.texi: Likewise.
5823 * doc/objc.texi: Likewise.
5824 * doc/rtl.texi: Likewise.
5825 * doc/tm.texi: Likewise.
5826 * dse.c: Likewise.
5827 * emit-rtl.c: Likewise.
5828 * emit-rtl.h: Likewise.
5829 * except.c: Likewise.
5830 * expmed.c: Likewise.
5831 * expr.c: Likewise.
5832 * fold-const.c: Likewise.
5833 * genautomata.c: Likewise.
5834 * gimple-fold.c: Likewise.
5835 * hard-reg-set.h: Likewise.
5836 * ifcvt.c: Likewise.
5837 * ipa-comdats.c: Likewise.
5838 * ipa-cp.c: Likewise.
5839 * ipa-devirt.c: Likewise.
5840 * ipa-fnsummary.c: Likewise.
5841 * ipa-icf.c: Likewise.
5842 * ipa-inline-transform.c: Likewise.
5843 * ipa-inline.c: Likewise.
5844 * ipa-polymorphic-call.c: Likewise.
5845 * ipa-profile.c: Likewise.
5846 * ipa-prop.c: Likewise.
5847 * ipa-pure-const.c: Likewise.
5848 * ipa-reference.c: Likewise.
5849 * ipa-split.c: Likewise.
5850 * ipa-visibility.c: Likewise.
5851 * ipa.c: Likewise.
5852 * ira-build.c: Likewise.
5853 * ira-color.c: Likewise.
5854 * ira-conflicts.c: Likewise.
5855 * ira-costs.c: Likewise.
5856 * ira-int.h: Likewise.
5857 * ira-lives.c: Likewise.
5858 * ira.c: Likewise.
5859 * ira.h: Likewise.
5860 * loop-invariant.c: Likewise.
5861 * loop-unroll.c: Likewise.
5862 * lower-subreg.c: Likewise.
5863 * lra-assigns.c: Likewise.
5864 * lra-constraints.c: Likewise.
5865 * lra-eliminations.c: Likewise.
5866 * lra-lives.c: Likewise.
5867 * lra-remat.c: Likewise.
5868 * lra-spills.c: Likewise.
5869 * lra.c: Likewise.
5870 * lto-cgraph.c: Likewise.
5871 * lto-streamer-out.c: Likewise.
5872 * postreload-gcse.c: Likewise.
5873 * predict.c: Likewise.
5874 * profile-count.h: Likewise.
5875 * profile.c: Likewise.
5876 * recog.c: Likewise.
5877 * ree.c: Likewise.
5878 * reload.c: Likewise.
5879 * reload1.c: Likewise.
5880 * reorg.c: Likewise.
5881 * resource.c: Likewise.
5882 * rtl.def: Likewise.
5883 * rtl.h: Likewise.
5884 * rtlanal.c: Likewise.
5885 * sched-deps.c: Likewise.
5886 * sched-ebb.c: Likewise.
5887 * sched-rgn.c: Likewise.
5888 * sel-sched-ir.c: Likewise.
5889 * sel-sched.c: Likewise.
5890 * shrink-wrap.c: Likewise.
5891 * simplify-rtx.c: Likewise.
5892 * symtab.c: Likewise.
5893 * target.def: Likewise.
5894 * toplev.c: Likewise.
5895 * tree-call-cdce.c: Likewise.
5896 * tree-cfg.c: Likewise.
5897 * tree-complex.c: Likewise.
5898 * tree-core.h: Likewise.
5899 * tree-eh.c: Likewise.
5900 * tree-inline.c: Likewise.
5901 * tree-loop-distribution.c: Likewise.
5902 * tree-nrv.c: Likewise.
5903 * tree-profile.c: Likewise.
5904 * tree-sra.c: Likewise.
5905 * tree-ssa-alias.c: Likewise.
5906 * tree-ssa-dce.c: Likewise.
5907 * tree-ssa-dom.c: Likewise.
5908 * tree-ssa-forwprop.c: Likewise.
5909 * tree-ssa-loop-im.c: Likewise.
5910 * tree-ssa-loop-ivcanon.c: Likewise.
5911 * tree-ssa-loop-ivopts.c: Likewise.
5912 * tree-ssa-loop-niter.c: Likewise.
5913 * tree-ssa-phionlycprop.c: Likewise.
5914 * tree-ssa-phiopt.c: Likewise.
5915 * tree-ssa-propagate.c: Likewise.
5916 * tree-ssa-threadedge.c: Likewise.
5917 * tree-ssa-threadupdate.c: Likewise.
5918 * tree-ssa-uninit.c: Likewise.
5919 * tree-ssanames.c: Likewise.
5920 * tree-streamer-out.c: Likewise.
5921 * tree.c: Likewise.
5922 * tree.h: Likewise.
5923 * vr-values.c: Likewise.
5924
5925 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
5926
5927 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
5928 (ix86_split_xorsign): Ditto.
5929 * config/i386/i386.c (ix86_expand_xorsign): New function.
5930 (ix86_split_xorsign): Ditto.
5931 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
5932 (xorsign<mode>3): New expander.
5933 (xorsign<mode>3_1): New insn_and_split pattern.
5934 * config/i386/sse.md (xorsign<mode>3): New expander.
5935
5936 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
5937
5938 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
5939 (*tablejump_sp64): Likewise.
5940 (*tablejump<P:mode>): ...this.
5941 (*call_address_sp32): Merge into...
5942 (*call_address_sp64): Likewise.
5943 (*call_address<P:mode>): ...this.
5944 (*call_symbolic_sp32): Merge into...
5945 (*call_symbolic_sp64): Likewise.
5946 (*call_symbolic<P:mode>): ...this.
5947 (call_value): Remove constraint and add predicate.
5948 (*call_value_address_sp32): Merge into...
5949 (*call_value_address_sp64): Likewise.
5950 (*call_value_address<P:mode>): ...this.
5951 (*call_value_symbolic_sp32): Merge into...
5952 (*call_value_symbolic_sp64): Likewise.
5953 (*call_value_symbolic<P:mode>): ...this.
5954 (*sibcall_symbolic_sp32): Merge into...
5955 (*sibcall_symbolic_sp64): Likewise.
5956 (*sibcall_symbolic<P:mode>): ...this.
5957 (sibcall_value): Remove constraint and add predicate.
5958 (*sibcall_value_symbolic_sp32): Merge into...
5959 (*sibcall_value_symbolic_sp64): Likewise.
5960 (*sibcall_value_symbolic<P:mode>): ...this.
5961 (window_save): Minor tweak.
5962 (*branch_sp32): Merge into...
5963 (*branch_sp64): Likewise.
5964 (*branch<P:mode>): ...this.
5965
5966 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
5967 James Clarke <jrtc27@jrtc27.com>
5968
5969 PR target/84010
5970 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
5971 consistently in TLS address generation and adjust code to the renaming
5972 of patterns. Mark calls to __tls_get_addr as const.
5973 * config/sparc/sparc.md (tgd_hi22): Turn into...
5974 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
5975 (tgd_lo10): Turn into...
5976 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
5977 (tgd_add32): Merge into...
5978 (tgd_add64): Likewise.
5979 (tgd_add<P:mode>): ...this and use Pmode throughout.
5980 (tldm_hi22): Turn into...
5981 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
5982 (tldm_lo10): Turn into...
5983 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
5984 (tldm_add32): Merge into...
5985 (tldm_add64): Likewise.
5986 (tldm_add<P:mode>): ...this and use Pmode throughout.
5987 (tldm_call32): Merge into...
5988 (tldm_call64): Likewise.
5989 (tldm_call<P:mode>): ...this and use Pmode throughout.
5990 (tldo_hix22): Turn into...
5991 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
5992 (tldo_lox10): Turn into...
5993 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
5994 (tldo_add32): Merge into...
5995 (tldo_add64): Likewise.
5996 (tldo_add<P:mode>): ...this and use Pmode throughout.
5997 (tie_hi22): Turn into...
5998 (tie_hi22<P:mode>): ...this and use Pmode throughout.
5999 (tie_lo10): Turn into...
6000 (tie_lo10<P:mode>): ...this and use Pmode throughout.
6001 (tie_ld64): Use DImode throughout.
6002 (tie_add32): Merge into...
6003 (tie_add64): Likewise.
6004 (tie_add<P:mode>): ...this and use Pmode throughout.
6005 (tle_hix22_sp32): Merge into...
6006 (tle_hix22_sp64): Likewise.
6007 (tle_hix22<P:mode>): ...this and use Pmode throughout.
6008 (tle_lox22_sp32): Merge into...
6009 (tle_lox22_sp64): Likewise.
6010 (tle_lox22<P:mode>): ...this and use Pmode throughout.
6011 (*tldo_ldub_sp32): Merge into...
6012 (*tldo_ldub_sp64): Likewise.
6013 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
6014 (*tldo_ldub1_sp32): Merge into...
6015 (*tldo_ldub1_sp64): Likewise.
6016 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
6017 (*tldo_ldub2_sp32): Merge into...
6018 (*tldo_ldub2_sp64): Likewise.
6019 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
6020 (*tldo_ldsb1_sp32): Merge into...
6021 (*tldo_ldsb1_sp64): Likewise.
6022 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
6023 (*tldo_ldsb2_sp32): Merge into...
6024 (*tldo_ldsb2_sp64): Likewise.
6025 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
6026 (*tldo_ldub3_sp64): Use DImode throughout.
6027 (*tldo_ldsb3_sp64): Likewise.
6028 (*tldo_lduh_sp32): Merge into...
6029 (*tldo_lduh_sp64): Likewise.
6030 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
6031 (*tldo_lduh1_sp32): Merge into...
6032 (*tldo_lduh1_sp64): Likewise.
6033 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
6034 (*tldo_ldsh1_sp32): Merge into...
6035 (*tldo_ldsh1_sp64): Likewise.
6036 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
6037 (*tldo_lduh2_sp64): Use DImode throughout.
6038 (*tldo_ldsh2_sp64): Likewise.
6039 (*tldo_lduw_sp32): Merge into...
6040 (*tldo_lduw_sp64): Likewise.
6041 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
6042 (*tldo_lduw1_sp64): Use DImode throughout.
6043 (*tldo_ldsw1_sp64): Likewise.
6044 (*tldo_ldx_sp64): Likewise.
6045 (*tldo_stb_sp32): Merge into...
6046 (*tldo_stb_sp64): Likewise.
6047 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
6048 (*tldo_sth_sp32): Merge into...
6049 (*tldo_sth_sp64): Likewise.
6050 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
6051 (*tldo_stw_sp32): Merge into...
6052 (*tldo_stw_sp64): Likewise.
6053 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
6054 (*tldo_stx_sp64): Use DImode throughout.
6055
6056 2018-01-09 Sudakshina Das <sudi.das@arm.com>
6057
6058 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
6059 check configure option to set BTI and Return Address Signing.
6060 * configure.ac: Add --enable-standard-branch-protection and
6061 --disable-standard-branch-protection.
6062 * configure: Regenerated.
6063 * doc/install.texi: Document the same.
6064
6065 2018-01-09 Sudakshina Das <sudi.das@arm.com>
6066 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6067
6068 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
6069 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
6070 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
6071 if bti is enabled.
6072 * config/aarch64/aarch64-bti-insert.c: New file.
6073 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
6074 pass.
6075 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
6076 new bti pass.
6077 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
6078 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
6079 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
6080 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
6081
6082 2018-01-09 Sudakshina Das <sudi.das@arm.com>
6083
6084 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
6085 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
6086 Disable bti for -mbranch-protection=none.
6087 (aarch64_handle_standard_branch_protection): Enable bti for
6088 -mbranch-protection=standard.
6089 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
6090 -mbranch-protection.
6091 (aarch64_bti_enabled): Check if bti is enabled.
6092 * config/aarch64/aarch64.opt: Declare target variable.
6093 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
6094
6095 2018-01-09 Sudakshina Das <sudi.das@arm.com>
6096
6097 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
6098 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
6099 (aarch64_expand_epilogue): Likewise.
6100 (aarch64_output_mi_thunk): Likewise
6101 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
6102 TAILCALL_ADDR_REGS to x16 and x17.
6103 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
6104
6105 2018-01-09 Sudakshina Das <sudi.das@arm.com>
6106
6107 * config/aarch64/aarch64-option-extensions.def: Define
6108 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
6109 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
6110 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
6111 (AARCH64_FL_PREDRES): New.
6112 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
6113 AARCH64_FL_PREDRES by default.
6114 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
6115
6116 2018-01-09 Sudakshina Das <sudi.das@arm.com>
6117
6118 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
6119 ARMv8.5-A.
6120 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
6121 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
6122 * doc/invoke.texi: Document ARMv8.5-A.
6123
6124 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
6125
6126 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
6127 (xorsign<mode>3): Likewise.
6128
6129 2019-01-09 Jelinek <jakub@redhat.com>
6130
6131 PR middle-end/88758
6132 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
6133 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
6134
6135 PR rtl-optimization/88331
6136 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
6137 not currently_expanding_to_rtl.
6138
6139 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
6140
6141 * doc/invoke.texi (-Os): Remove trailing spaces.
6142 (-finline-functions): Remove reference to -O2.
6143
6144 2019-01-08 Jakub Jelinek <jakub@redhat.com>
6145
6146 PR rtl-optimization/79593
6147 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
6148
6149 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
6150 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
6151
6152 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
6153
6154 PR bootstrap/88721
6155 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
6156 to -1 on entry.
6157
6158 PR debug/88723
6159 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
6160 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
6161
6162 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
6163
6164 PR target/88717
6165 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
6166 ix86_avx_u128_mode_entry.
6167
6168 2019-01-08 Martin Liska <mliska@suse.cz>
6169
6170 PR tree-optimization/88753
6171 * tree-switch-conversion.c (switch_conversion::build_one_array):
6172 Come up with local variable constructor. Convert first to
6173 type of constructor values.
6174
6175 2019-01-08 Richard Biener <rguenther@suse.de>
6176
6177 PR tree-optimization/86554
6178 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
6179 rpo_avail): Move earlier.
6180 (visit_nary_op): When value-numbering to expressions
6181 with different overflow behavior make sure there's an
6182 available expression on the path.
6183
6184 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
6185
6186 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
6187 aarch64_parse_branch_protection,
6188 struct aarch64_branch_protect_type,
6189 aarch64_handle_no_branch_protection,
6190 aarch64_handle_standard_branch_protection,
6191 aarch64_validate_mbranch_protection,
6192 aarch64_handle_pac_ret_protection,
6193 aarch64_handle_attr_branch_protection,
6194 accepted_branch_protection_string,
6195 aarch64_pac_ret_subtypes,
6196 aarch64_branch_protect_types,
6197 aarch64_handle_pac_ret_leaf): Define.
6198 (aarch64_override_options_after_change_1, aarch64_override_options):
6199 Add check for accepted_branch_protection_string.
6200 (aarch64_option_save): Save accepted_branch_protection_string.
6201 (aarch64_option_restore): Save accepted_branch_protection_string.
6202 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
6203 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
6204 msign-return-address.
6205 * doc/invoke.texi: Add mbranch-protection.
6206
6207 2019-01-08 Alan Modra <amodra@gmail.com>
6208
6209 PR target/88614
6210 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
6211 Delete "unknownp" parameter. Adjust callers. Handle
6212 CONST_INT, PLUS, MINUS, and MULT.
6213 (attr_value_aligned): Renamed from or_attr_value.
6214 (min_attr_value): Return INT_MIN for unhandled rtl case..
6215 (min_fn): ..and translate to INT_MAX here.
6216 (write_length_unit_log): Modify to cope without "unknown".
6217 (write_attr_value): Handle IF_THEN_ELSE.
6218
6219 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
6220
6221 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
6222 optimization for masked stores.
6223
6224 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
6225
6226 PR middle-end/88567
6227 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
6228 output vector directly to duplicate_and_interleave instead of
6229 going through a temporary. Postpone insertion of ctor_seq to
6230 the end of the loop.
6231
6232 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
6233
6234 PR target/86891
6235 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
6236 unsigned_p. Handle signed and unsigned overflow correction as
6237 required.
6238 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
6239 prototype.
6240 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
6241 for operand 2.
6242 (add<mode>3_compareV_imm): Make this callable for expanding.
6243 (subv<GPI:mode>4): Use register_operand for operand 1. Use
6244 aarch64_plus_operand for operand 2.
6245 (subv<GPI:mode>_insn): New insn pattern.
6246 (subv<GPI:mode>_imm): Likewise.
6247 (negv<GPI:mode>3): New expand pattern.
6248 (negv<GPI:mode>_insn): New insn pattern.
6249 (negv<GPI:mode>_cmp_only): Likewise.
6250 (cmpv<GPI:mode>_insn): Likewise.
6251 (subvti4): Use register_operand for operand 1. Update call to
6252 aarch64_expand_subvti.
6253 (usubvti4): Likewise.
6254 (negvti3): New expand pattern.
6255 (negdi_carryout): New insn pattern.
6256 (negvdi_carryinV): New insn pattern.
6257 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
6258 version the named version.
6259 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
6260 operands.
6261 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
6262 patterns.
6263 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
6264 patterns.
6265 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
6266 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
6267 (sub<mode>3_carryinCV): Delete.
6268 (sub<GPI:mode>3_carryinV): New expand pattern.
6269 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
6270
6271 2019-01-07 Richard Biener <rguenther@suse.de>
6272
6273 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
6274 of tree_operand_hash.
6275
6276 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
6277
6278 PR tree-optimization/88598
6279 * tree.h (single_nonzero_element): Declare.
6280 * tree.c (single_nonzero_element): New function.
6281 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
6282 if I is the only nonzero element of CST.
6283
6284 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
6285
6286 PR tree-optimization/88598
6287 * tree.h (initializer_each_zero_or_onep): Declare.
6288 * tree.c (initializer_each_zero_or_onep): New function.
6289 (signed_or_unsigned_type_for): Handle float types too.
6290 (unsigned_type_for, signed_type_for): Update comments accordingly.
6291 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
6292 x & { 0 or -1, 0 or -1, ... }.
6293
6294 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
6295
6296 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
6297 with x86_64-pc-linux-gnu.
6298
6299 2019-01-07 Tom de Vries <tdevries@suse.de>
6300
6301 PR target/85486
6302 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
6303 function.
6304 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
6305 routines.
6306
6307 2019-01-07 Jakub Jelinek <jakub@redhat.com>
6308
6309 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
6310 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
6311 TARGET_AVX512F as condition.
6312
6313 PR debug/88723
6314 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
6315 const_not_ok_for_debug_p target hook.
6316 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
6317 on UNSPEC and subexpressions thereof if all subexpressions of the
6318 UNSPEC are CONSTANT_P.
6319
6320 PR tree-optimization/88676
6321 * tree-ssa-phiopt.c (two_value_replacement): New function.
6322 (tree_ssa_phiopt_worker): Call it.
6323
6324 PR sanitizer/88619
6325 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
6326 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
6327
6328 PR c++/85052
6329 * tree-vect-generic.c: Include insn-config.h and recog.h.
6330 (expand_vector_piecewise): Add defaulted ret_type argument,
6331 if non-NULL, use that in preference to type for the result type.
6332 (expand_vector_parallel): Formatting fix.
6333 (do_vec_conversion, do_vec_narrowing_conversion,
6334 expand_vector_conversion): New functions.
6335 (expand_vector_operations_1): Call expand_vector_conversion
6336 for VEC_CONVERT ifn calls.
6337 * internal-fn.def (VEC_CONVERT): New internal function.
6338 * internal-fn.c (expand_VEC_CONVERT): New function.
6339 * fold-const-call.c (fold_const_vec_convert): New function.
6340 (fold_const_call): Use it for CFN_VEC_CONVERT.
6341 * doc/extend.texi (__builtin_convertvector): Document.
6342
6343 2019-01-07 Tom de Vries <tdevries@suse.de>
6344
6345 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
6346 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
6347 vector_red_partition, vector_red_sym): New global variables.
6348 (nvptx_option_override): Initialize vector_red_sym.
6349 (nvptx_declare_function_name): Restore red_partition register.
6350 (nvptx_file_end): Emit code to declare the vector reduction variables.
6351 (nvptx_output_red_partition): New function.
6352 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
6353 large vector reductions.
6354 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
6355 (nvptx_init_builtins): Add VECTOR_ADDR.
6356 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
6357 Handle nvptx_expand_shared_addr.
6358 (nvptx_get_shared_red_addr): Add vector argument and handle large
6359 vectors.
6360 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
6361 large vectors.
6362 (nvptx_goacc_reduction_init): Likewise.
6363 (nvptx_goacc_reduction_fini): Likewise.
6364 (nvptx_goacc_reduction_teardown): Likewise.
6365 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
6366 init,fini,teardown}.
6367 (nvptx_init_axis_predicate): Initialize vector_red_partition.
6368 (nvptx_set_current_function): Init vector_red_partition.
6369 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
6370 (nvptx_red_partition): New insn.
6371 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
6372
6373 2019-01-07 Tom de Vries <tdevries@suse.de>
6374
6375 PR target/85381
6376 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
6377 empty loops.
6378
6379 2019-01-07 Tom de Vries <tdevries@suse.de>
6380
6381 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
6382 (nvptx_option_override): Init oacc_bcast_partition.
6383 (nvptx_init_oacc_workers): New function.
6384 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
6385 (nvptx_needs_shared_bcast): New function.
6386 (nvptx_find_par): Generalize to enable vectors to use shared-memory
6387 to propagate state.
6388 (nvptx_shared_propagate): Initialize vector bcast partition and
6389 synchronization state.
6390 (nvptx_single): Generalize to enable vectors to use shared-memory
6391 to propagate state.
6392 (nvptx_process_pars): Likewise.
6393 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
6394 * config/nvptx/nvptx.h (struct machine_function): Add
6395 bcast_partition and sync_bar members.
6396
6397 2019-01-07 Tom de Vries <tdevries@suse.de>
6398
6399 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
6400 (nvptx_apply_dim_limits): New function.
6401 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
6402 PTX_WARP_SIZE.
6403
6404 2019-01-07 Tom de Vries <tdevries@suse.de>
6405
6406 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
6407 as late as possible.
6408
6409 2019-01-07 Tom de Vries <tdevries@suse.de>
6410
6411 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
6412 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
6413 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
6414 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
6415 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
6416
6417 2019-01-07 Tom de Vries <tdevries@suse.de>
6418
6419 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
6420
6421 2019-01-07 Tom de Vries <tdevries@suse.de>
6422
6423 * omp-offload.c (oacc_get_min_dim): New function.
6424 * omp-offload.h (oacc_get_min_dim): Declare.
6425
6426 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
6427
6428 PR target/88521
6429 * config/i386/i386.c (function_value_ms_64): Return small sturct in
6430 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
6431
6432 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
6433
6434 PR tree-opt/86020
6435 Revert:
6436 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
6437
6438 * ipa-inline.c (edge_badness): Use inlined_time instead of
6439 inline_summaries->get.
6440
6441 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
6442
6443 * opts.c (enable_fdo_optimizations): Enable
6444 version-loops-for-strides, loop-interchange, unrol-and-jam
6445 and tree-loop-distribution.
6446 * invoke.texi: Document newly enabled options.
6447
6448 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
6449
6450 * doc/invoke.texi (max-inline-insns-small): New parameters.
6451 * ipa-inline.c (want_early_inline_function_p): simplify.
6452 (want_inline_small_function_p): Fix pasto from previous patch;
6453 use max-inline-insns-small bound.
6454 * params.def (max-inline-insns-small): New param.
6455 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
6456 variables correctly.
6457
6458 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
6459
6460 * doc/invoke.texi: Document max-inline-insns-size,
6461 uninlined-function-insns, uninlined-function-time,
6462 uninlined-thunk-insns and uninlined-thunk-time.
6463 * params.def: Add max-inline-insns-size,
6464 uninlined-function-insns, uninlined-function-time,
6465 uninlined-thunk-insns and uninlined-thunk-time.
6466 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
6467 new parameters.
6468 * ipa-inline.c (can_inline_edge_by_limits_p,
6469 want_inline_small_function_p): Use new parameters.
6470
6471 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
6472
6473 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
6474
6475 2019-01-05 Jakub Jelinek <jakub@redhat.com>
6476
6477 PR middle-end/82564
6478 PR target/88620
6479 * expr.c (expand_assignment): For calls returning VLA structures
6480 if to_rtx is not a MEM, force it into a stack temporary.
6481
6482 PR debug/88635
6483 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
6484 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
6485 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
6486 subexpressions of both operands.
6487 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
6488 subrtxes are CONSTANT_P.
6489 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
6490 2018-11-09 changes.
6491
6492 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
6493
6494 * params.def (hot-bb-count-ws-permille): Set to 990.
6495
6496 2019-01-04 Martin Sebor <msebor@redhat.com>
6497
6498 PR c/88546
6499 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
6500 leaf.
6501
6502 2019-01-04 Martin Sebor <msebor@redhat.com>
6503
6504 PR c/88363
6505 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
6506
6507 2019-01-04 Jakub Jelinek <jakub@redhat.com>
6508
6509 * gdbinit.in: Turn off pagination for the skip commands, restore
6510 it to previous state afterwards.
6511
6512 2019-01-04 Jakub Jelinek <jakub@redhat.com>
6513
6514 PR target/88594
6515 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
6516 of GET_MODE (opN) as modes of the libcall arguments.
6517
6518 2019-01-04 Jan Beulich <jbeulich@suse.com>
6519
6520 * config/i386/sse.md
6521 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
6522 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
6523 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
6524 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
6525 avx512f_vmcmp<mode>3<round_saeonly_name>,
6526 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
6527 avx512f_maskcmp<mode>3,
6528 <avx512>_cvt<ssemodesuffix>2mask<mode>,
6529 <avx512>_cvt<ssemodesuffix>2mask<mode>,
6530 *<avx512>_cvtmask2<ssemodesuffix><mode>,
6531 *<avx512>_cvtmask2<ssemodesuffix><mode>,
6532 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
6533 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
6534 <avx512>_gt<mode>3<mask_scalar_merge_name>,
6535 <avx512>_gt<mode>3<mask_scalar_merge_name>,
6536 <avx512>_testm<mode>3<mask_scalar_merge_name>,
6537 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
6538 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
6539 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
6540 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
6541 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
6542 avx512cd_maskb_vec_dup<mode>,
6543 avx512cd_maskw_vec_dup<mode>,
6544 avx512dq_fpclass<mode><mask_scalar_merge_name>,
6545 avx512dq_vmfpclass<mode>,
6546 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
6547 instead of =Yk.
6548
6549 2019-01-03 Martin Sebor <msebor@redhat.com>
6550
6551 PR tree-optimization/88659
6552 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
6553
6554 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
6555
6556 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
6557 unaligned vsx and avoid lxvd2x/stxvd2x.
6558 (gen_lvx_v4si_move): New function.
6559
6560 2019-01-03 Tom de Vries <tdevries@suse.de>
6561
6562 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
6563 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
6564 function.
6565 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
6566
6567 2019-01-03 Tom de Vries <tdevries@suse.de>
6568
6569 * config/nvptx/nvptx.c (struct offload_attrs): New.
6570 (populate_offload_attrs): New function. Factor mask extraction out of
6571 nvptx_reorg. Add extraction of dimensions.
6572 (nvptx_reorg): Use populate_offload_attrs.
6573
6574 2019-01-03 Tom de Vries <tdevries@suse.de>
6575
6576 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
6577 cases for oacc_min_dims_p and routine_p. Add asserts for
6578 oacc_default_dims_p and offload_region_p.
6579
6580 2019-01-03 Tom de Vries <tdevries@suse.de>
6581
6582 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
6583 factored out of ...
6584 (nvptx_goacc_validate_dims): ... here.
6585
6586 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
6587
6588 PR tree-optimization/85574
6589 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
6590 structure.
6591 (struct ssa_equip_hash_traits): Declare.
6592 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
6593
6594 2019-01-03 Jakub Jelinek <jakub@redhat.com>
6595
6596 PR debug/88644
6597 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
6598 change it to qualified_type.
6599
6600 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
6601
6602 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
6603 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
6604
6605 2019-01-02 Martin Sebor <msebor@redhat.com>
6606 Jeff Law <law@redhat.com>
6607
6608 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
6609 (get_range_strlen_tree): Update appropriately.
6610 (get_range_strlen)
6611 * gimple-fold.h (get_range_strlen): Drop unused last argument.
6612
6613 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
6614 rather than set_range_info.
6615 * tree-ssa-strlen.c (set_strlen_range): Extracted from
6616 maybe_set_strlen_range. Handle potentially boundary crossing
6617 cases more conservatively.
6618 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
6619 Call set_strlen_range.
6620 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
6621
6622 PR middle-end/88663
6623 * gimple-fold.c (get_range_strlen): Update prototype to no longer
6624 need the flexp argument.
6625 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
6626 from calls to get_range_strlen. Update comments. Just update
6627 VAL for an unterminated const char array and let the reset of the
6628 code handle it normally. No longer try to set *flexp. Adjust
6629 return value.
6630 (get_range_strlen): Update for the new get_range_strlen API.
6631 (get_maxval_strlen): Similarly.
6632 (gimple_fold_builtin_strlen): Handle update meaning of return value
6633 from get_range_strlen.
6634 * gimple-ssa-sprintf.c (get_string_length): Update for the new
6635 get_range_strlen API.
6636
6637 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
6638
6639 PR lto/88130
6640 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
6641 false at WPA time when body was removed.
6642
6643 2019-01-02 Martin Liska <mliska@suse.cz>
6644
6645 PR tree-optimization/88650
6646 * predict.c (set_even_probabilities): Calculate probability
6647 remainer only when really used.
6648
6649 2019-01-02 Richard Biener <rguenther@suse.de>
6650
6651 PR middle-end/88651
6652 * tree-data-ref.c (analyze_subscript_affine_affine): Use
6653 widest_ints when mangling max_stmt_execution results.
6654
6655 2019-01-02 Richard Biener <rguenther@suse.de>
6656
6657 PR tree-optimization/88621
6658 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
6659 bitfields when canoncalizing.
6660
6661 2019-01-02 Richard Biener <rguenther@suse.de>
6662
6663 PR target/87545
6664 * config/i386/x86-tune-costs.h (intel_cost): Adjust
6665 cost of cheap SSE instruction.
6666
6667 2019-01-02 Richard Biener <rguenther@suse.de>
6668
6669 PR ipa/85574
6670 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
6671 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
6672 function.
6673 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
6674 set after UIDs before splitting them.
6675
6676 2019-01-01 Martin Sebor <msebor@redhat.com>
6677 Jeff Law <law@redhat.com>
6678
6679 * gimple-fold.c (get_range_strlen_tree): Record if the computed
6680 length is optimistic. If it is, then arrange to compute the
6681 conservative length as well.
6682
6683 * gimple-fold.h (get_range_strlen): Update prototype.
6684 * builtins.c (check_access): Update call to get_range_strlen to use
6685 c_strlen_data pointer. Change various variable accesses to instead
6686 pull data from the c_strlen_data structure.
6687 (check_strncat_sizes, expand_builtin_strncat): Likewise.
6688 * calls.c (maybe_warn_nonstring_arg): Likewise.
6689 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
6690 minimum length if maximum lengh is unknown.
6691 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
6692 that used c_strlen, it's no longer needed. Restructure slightly.
6693 (format_string): Set unlikely range appropriately.
6694 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
6695 formatting issues.
6696 (get_range_strlen): Accept c_strlen_data pointer for external
6697 call sites as well. Pass through to call to internal get_range_strlen.
6698 Adjust minlen, maxlen and maxbound as needed.
6699 (get_maxval_strlen): Update comments.
6700 (gimple_fold_builtin_strlen): Update call to get_range_strlen
6701 to use c_strlen_data pointer. Change variable accesses to instead
6702 use c_strlen_data data members.
6703
6704 * gimple-fold.c (get_range_strlen): Update prototype.
6705 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
6706 local variables. Use pdata to return information to caller.
6707 Update calls to get_range_strlen. Update pdata->maxbound.
6708 (get_range_strlen -- static version): Similarly.
6709 (get_range_strlen -- extern version): Update for internal
6710 get_range_strlen API change. Convert to external data format.
6711 (get_maxval_strlen): Similarly.
6712
6713 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
6714
6715 * coverage.c (get_coverage_counts): Use current_function_decl.
6716 * profile.c (read_thunk_profile): New function.
6717 (branch_prob): Add THUNK parameter.
6718 * tree-profile.c (tree_profiling): Handle thunks.
6719 * value-prof.c (init_node_map): Handle thunks.
6720 * value-prof.h (branch_prob): Upate prototype.
6721 (read_thunk_profile): Declare.
6722
6723 2019-01-01 Jakub Jelinek <jakub@redhat.com>
6724
6725 Update copyright years.
6726
6727 * gcc.c (process_command): Update copyright notice dates.
6728 * gcov-dump.c (print_version): Ditto.
6729 * gcov.c (print_version): Ditto.
6730 * gcov-tool.c (print_version): Ditto.
6731 * gengtype.c (create_file): Ditto.
6732 * doc/cpp.texi: Bump @copying's copyright year.
6733 * doc/cppinternals.texi: Ditto.
6734 * doc/gcc.texi: Ditto.
6735 * doc/gccint.texi: Ditto.
6736 * doc/gcov.texi: Ditto.
6737 * doc/install.texi: Ditto.
6738 * doc/invoke.texi: Ditto.
6739 \f
6740 Copyright (C) 2019 Free Software Foundation, Inc.
6741
6742 Copying and distribution of this file, with or without modification,
6743 are permitted in any medium without royalty provided the copyright
6744 notice and this notice are preserved.