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