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