Mercurial > hg > CbC > CbC_gcc
annotate gcc/ChangeLog @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +0900 |
parents | 1830386684a0 |
children |
rev | line source |
---|---|
145 | 1 2020-02-12 Jeff Law <law@redhat.com> |
2 | |
3 * config/h8300/h8300.md (comparison shortening peepholes): Use | |
4 a mode iterator to merge the HImode and SImode peepholes. | |
5 | |
6 2020-02-12 Jakub Jelinek <jakub@redhat.com> | |
7 | |
8 PR middle-end/93663 | |
9 * real.c (is_even): Make static. Function comment fix. | |
10 (is_halfway_below): Make static, don't assert R is not inf/nan, | |
11 instead return false for those. Small formatting fixes. | |
12 | |
13 2020-02-12 Martin Sebor <msebor@redhat.com> | |
14 | |
15 PR middle-end/93646 | |
16 * tree-ssa-strlen.c (handle_builtin_stxncpy): Rename... | |
17 (handle_builtin_stxncpy_strncat): ...to this. Change first argument. | |
18 Issue only -Wstringop-overflow strncat, never -Wstringop-truncation. | |
19 (strlen_check_and_optimize_call): Adjust callee name. | |
20 | |
21 2020-02-12 Jeff Law <law@redhat.com> | |
22 | |
23 * config/h8300/h8300.md (comparison shortening peepholes): Drop | |
24 (and (xor)) variant. Combine other two into single peephole. | |
25 | |
26 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com> | |
27 | |
28 PR rtl-optimization/93565 | |
29 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add CTZ costs. | |
30 | |
31 2020-02-12 Wilco Dijkstra <wdijkstr@arm.com> | |
32 | |
33 * config/aarch64/aarch64-simd.md | |
34 (aarch64_zero_extend<GPI:mode>_reduc_plus_<VDQV_E:mode>): New pattern. | |
35 * config/aarch64/aarch64.md (popcount<mode>2): Use it instead of | |
36 generating separate ADDV and zero_extend patterns. | |
37 * config/aarch64/iterators.md (VDQV_E): New iterator. | |
38 | |
39 2020-02-12 Jeff Law <law@redhat.com> | |
40 | |
41 * config/h8300/h8300.md (cpymemsi, movmd): Remove dead patterns, | |
42 expanders, splits, etc. | |
43 (movmd_internal_<mode>, movmd splitter, movstr, movsd): Likewise. | |
44 (stpcpy_internal_<mode>, stpcpy splitter): Likewise. | |
45 (peepholes to convert QI/HI mode pushes to SI mode pushes): Likewise. | |
46 * config/h8300/h8300.c (h8300_swap_into_er6): Remove unused function. | |
47 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise | |
48 * config/h8300/h8300-protos.h (h8300_swap_into_er6): Remove unused | |
49 function prototype. | |
50 (h8300_swap_out_of_er6, h8sx_emit_movmd): Likewise. | |
51 | |
52 2020-02-12 Jakub Jelinek <jakub@redhat.com> | |
53 | |
54 PR target/93670 | |
55 * config/i386/sse.md (VI48F_256_DQ): New mode iterator. | |
56 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove | |
57 TARGET_AVX512DQ from condition. | |
58 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition> | |
59 instead of <mask_mode512bit_condition> in condition. If | |
60 TARGET_AVX512DQ is false, emit vextract*64x4 instead of | |
61 vextract*32x8. | |
62 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition> | |
63 from condition. | |
64 | |
65 2020-02-12 Kewen Lin <linkw@gcc.gnu.org> | |
66 | |
67 PR target/91052 | |
68 * ira.c (combine_and_move_insns): Skip multiple_sets def_insn. | |
69 | |
70 2020-02-12 Segher Boessenkool <segher@kernel.crashing.org> | |
71 | |
72 * config/rs6000/rs6000.c (rs6000_debug_print_mode): Don't use sizeof | |
73 where strlen is more legible. | |
74 (rs6000_builtin_vectorized_libmass): Ditto. | |
75 (rs6000_print_options_internal): Ditto. | |
76 | |
77 2020-02-11 Martin Sebor <msebor@redhat.com> | |
78 | |
79 PR tree-optimization/93683 | |
80 * tree-ssa-alias.c (stmt_kills_ref_p): Avoid using LHS when not set. | |
81 | |
82 2020-02-11 Michael Meissner <meissner@linux.ibm.com> | |
83 | |
84 * config/rs6000/predicates.md (cint34_operand): Rename the | |
85 -mprefixed-addr option to be -mprefixed. | |
86 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Rename | |
87 the -mprefixed-addr option to be -mprefixed. | |
88 (OTHER_FUTURE_MASKS): Likewise. | |
89 (POWERPC_MASKS): Likewise. | |
90 * config/rs6000/rs6000.c (rs6000_option_override_internal): Rename | |
91 the -mprefixed-addr option to be -mprefixed. Change error | |
92 messages to refer to -mprefixed. | |
93 (num_insns_constant_gpr): Rename the -mprefixed-addr option to be | |
94 -mprefixed. | |
95 (rs6000_legitimate_offset_address_p): Likewise. | |
96 (rs6000_mode_dependent_address): Likewise. | |
97 (rs6000_opt_masks): Change the spelling of "-mprefixed-addr" to be | |
98 "-mprefixed" for target attributes and pragmas. | |
99 (address_to_insn_form): Rename the -mprefixed-addr option to be | |
100 -mprefixed. | |
101 (rs6000_adjust_insn_length): Likewise. | |
102 * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): Rename the | |
103 -mprefixed-addr option to be -mprefixed. | |
104 (ASM_OUTPUT_OPCODE): Likewise. | |
105 * config/rs6000/rs6000.md (prefixed insn attribute): Rename the | |
106 -mprefixed-addr option to be -mprefixed. | |
107 * config/rs6000/rs6000.opt (-mprefixed): Rename the | |
108 -mprefixed-addr option to be prefixed. Change the option from | |
109 being undocumented to being documented. | |
110 * doc/invoke.texi (RS/6000 and PowerPC Options): Document the | |
111 -mprefixed option. Update the -mpcrel documentation to mention | |
112 -mprefixed. | |
113 | |
114 2020-02-11 Hans-Peter Nilsson <hp@axis.com> | |
115 | |
116 * ira-conflicts.c (print_hard_reg_set): Correct output for sets | |
117 including FIRST_PSEUDO_REGISTER - 1. | |
118 * ira-color.c (print_hard_reg_set): Ditto. | |
119 | |
120 2020-02-11 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
121 | |
122 * config/arm/arm-builtins.c (enum arm_type_qualifiers): | |
123 (USTERNOP_QUALIFIERS): New define. | |
124 (USMAC_LANE_QUADTUP_QUALIFIERS): New define. | |
125 (SUMAC_LANE_QUADTUP_QUALIFIERS): New define. | |
126 (arm_expand_builtin_args): Add case ARG_BUILTIN_LANE_QUADTUP_INDEX. | |
127 (arm_expand_builtin_1): Add qualifier_lane_quadtup_index. | |
128 * config/arm/arm_neon.h (vusdot_s32): New. | |
129 (vusdot_lane_s32): New. | |
130 (vusdotq_lane_s32): New. | |
131 (vsudot_lane_s32): New. | |
132 (vsudotq_lane_s32): New. | |
133 * config/arm/arm_neon_builtins.def (usdot, usdot_lane,sudot_lane): New. | |
134 * config/arm/iterators.md (DOTPROD_I8MM): New. | |
135 (sup, opsuffix): Add <us/su>. | |
136 * config/arm/neon.md (neon_usdot, <us/su>dot_lane: New. | |
137 * config/arm/unspecs.md (UNSPEC_DOT_US, UNSPEC_DOT_SU): New. | |
138 | |
139 2020-02-11 Richard Biener <rguenther@suse.de> | |
140 | |
141 PR tree-optimization/93661 | |
142 PR tree-optimization/93662 | |
143 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard | |
144 tree_to_poly_int64. | |
145 * tree-sra.c (get_access_for_expr): Likewise. | |
146 | |
147 2020-02-10 Jakub Jelinek <jakub@redhat.com> | |
148 | |
149 PR target/93637 | |
150 * config/i386/sse.md (VI_256_AVX2): New mode iterator. | |
151 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256. | |
152 Change condition from TARGET_AVX2 to TARGET_AVX. | |
153 | |
154 2020-02-10 Iain Sandoe <iain@sandoe.co.uk> | |
155 | |
156 PR other/93641 | |
157 * config/darwin-c.c (darwin_cfstring_ref_p): Fix up last | |
158 argument of strncmp. | |
159 | |
160 2020-02-10 Hans-Peter Nilsson <hp@axis.com> | |
161 | |
162 Try to generate zero-based comparisons. | |
163 * config/cris/cris.c (cris_reduce_compare): New function. | |
164 * config/cris/cris-protos.h (cris_reduce_compare): Add prototype. | |
165 * config/cris/cris.md ("cbranch<mode>4", "cbranchdi4", "cstoredi4") | |
166 (cstore<mode>4"): Apply cris_reduce_compare in expanders. | |
167 | |
168 2020-02-10 Richard Earnshaw <rearnsha@arm.com> | |
169 | |
170 PR target/91913 | |
171 * config/arm/arm.md (movsi_compare0): Allow SP as a source register | |
172 in Thumb state and also as a destination in Arm state. Add T16 | |
173 variants. | |
174 | |
175 2020-02-10 Hans-Peter Nilsson <hp@axis.com> | |
176 | |
177 * md.texi (Define Subst): Match closing paren in example. | |
178 | |
179 2020-02-10 Jakub Jelinek <jakub@redhat.com> | |
180 | |
181 PR target/58218 | |
182 PR other/93641 | |
183 * config/i386/i386.c (x86_64_elf_section_type_flags): Fix up last | |
184 arguments of strncmp. | |
185 | |
186 2020-02-10 Feng Xue <fxue@os.amperecomputing.com> | |
187 | |
188 PR ipa/93203 | |
189 * ipa-cp.c (ipcp_lattice::add_value): Add source with same call edge | |
190 but different source value. | |
191 (adjust_callers_for_value_intersection): New function. | |
192 (gather_edges_for_value): Adjust order of callers to let a | |
193 non-self-recursive caller be the first element. | |
194 (self_recursive_pass_through_p): Add a new parameter "simple", and | |
195 check generalized self-recursive pass-through jump function. | |
196 (self_recursive_agg_pass_through_p): Likewise. | |
197 (find_more_scalar_values_for_callers_subset): Compute value from | |
198 pass-through jump function for self-recursive. | |
199 (intersect_with_plats): Cleanup previous implementation code for value | |
200 itersection with self-recursive call edge. | |
201 (intersect_with_agg_replacements): Likewise. | |
202 (intersect_aggregates_with_edge): Deduce value from pass-through jump | |
203 function for self-recursive call edge. Cleanup previous implementation | |
204 code for value intersection with self-recursive call edge. | |
205 (decide_whether_version_node): Remove dead callers and adjust order | |
206 to let a non-self-recursive caller be the first element. | |
207 | |
208 2020-02-09 Uroš Bizjak <ubizjak@gmail.com> | |
209 | |
210 * recog.c: Move pass_split_before_sched2 code in front of | |
211 pass_split_before_regstack. | |
212 (pass_data_split_before_sched2): Rename pass to split3 from split4. | |
213 (pass_data_split_before_regstack): Rename pass to split4 from split3. | |
214 (rest_of_handle_split_before_sched2): Remove. | |
215 (pass_split_before_sched2::execute): Unconditionally call | |
216 split_all_insns. | |
217 (enable_split_before_sched2): New function. | |
218 (pass_split_before_sched2::gate): Use enable_split_before_sched2. | |
219 (pass_split_before_regstack::gate): Ditto. | |
220 * config/nds32/nds32.c (nds32_split_double_word_load_store_p): | |
221 Update name check for renamed split4 pass. | |
222 * config/sh/sh.c (register_sh_passes): Update pass insertion | |
223 point for renamed split4 pass. | |
224 | |
225 2020-02-09 Jakub Jelinek <jakub@redhat.com> | |
226 | |
227 * gimplify.c (gimplify_adjust_omp_clauses_1): Promote | |
228 DECL_IN_CONSTANT_POOL variables into "omp declare target" to avoid | |
229 copying them around between host and target. | |
230 | |
231 2020-02-08 Andrew Pinski <apinski@marvell.com> | |
232 | |
233 PR target/91927 | |
234 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Check | |
235 STRICT_ALIGNMENT also. | |
236 | |
237 2020-02-08 Jim Wilson <jimw@sifive.com> | |
238 | |
239 PR target/93532 | |
240 * config/riscv/riscv.h (HARD_REGNO_CALLER_SAVE_MODE): Define. | |
241 | |
242 2020-02-08 Uroš Bizjak <ubizjak@gmail.com> | |
243 Jakub Jelinek <jakub@redhat.com> | |
244 | |
245 PR target/65782 | |
246 * config/i386/i386.h (CALL_USED_REGISTERS): Make | |
247 xmm16-xmm31 call-used even in 64-bit ms-abi. | |
248 | |
249 2020-02-07 Dennis Zhang <dennis.zhang@arm.com> | |
250 | |
251 * config/aarch64/aarch64-simd-builtins.def (simd_smmla): New entry. | |
252 (simd_ummla, simd_usmmla): Likewise. | |
253 * config/aarch64/aarch64-simd.md (aarch64_simd_<sur>mmlav16qi): New. | |
254 * config/aarch64/arm_neon.h (vmmlaq_s32, vmmlaq_u32): New. | |
255 (vusmmlaq_s32): New. | |
256 | |
257 2020-02-07 Richard Biener <rguenther@suse.de> | |
258 | |
259 PR middle-end/93519 | |
260 * tree-inline.c (fold_marked_statements): Do a PRE walk, | |
261 skipping unreachable regions. | |
262 (optimize_inline_calls): Skip folding stmts when we didn't | |
263 inline. | |
264 | |
265 2020-02-07 H.J. Lu <hongjiu.lu@intel.com> | |
266 | |
267 PR target/85667 | |
268 * config/i386/i386.c (function_arg_ms_64): Add a type argument. | |
269 Don't return aggregates with only SFmode and DFmode in SSE | |
270 register. | |
271 (ix86_function_arg): Pass arg.type to function_arg_ms_64. | |
272 | |
273 2020-02-07 Jakub Jelinek <jakub@redhat.com> | |
274 | |
275 PR target/93122 | |
276 * config/rs6000/rs6000-logue.c | |
277 (rs6000_emit_probe_stack_range_stack_clash): Always use gen_add3_insn, | |
278 if it fails, move rs into end_addr and retry. Add | |
279 REG_FRAME_RELATED_EXPR note whenever it returns more than one insn or | |
280 the insn pattern doesn't describe well what exactly happens to | |
281 dwarf2cfi.c. | |
282 | |
283 PR target/93594 | |
284 * config/i386/predicates.md (avx_identity_operand): Remove. | |
285 * config/i386/sse.md (*avx_vec_concat<mode>_1): Remove. | |
286 (avx_<castmode><avxsizesuffix>_<castmode>, | |
287 avx512f_<castmode><avxsizesuffix>_256<castmode>): Change patterns to | |
288 a VEC_CONCAT of the operand and UNSPEC_CAST. | |
289 (avx512f_<castmode><avxsizesuffix>_<castmode>): Change pattern to | |
290 a VEC_CONCAT of VEC_CONCAT of the operand and UNSPEC_CAST with | |
291 UNSPEC_CAST. | |
292 | |
293 PR target/93611 | |
294 * config/i386/i386.c (ix86_lea_outperforms): Make sure to clear | |
295 recog_data.insn if distance_non_agu_define changed it. | |
296 | |
297 2020-02-06 Michael Meissner <meissner@linux.ibm.com> | |
298 | |
299 PR target/93569 | |
300 * config/rs6000/rs6000.c (reg_to_non_prefixed): Before ISA 3.0 | |
301 we only had X-FORM (reg+reg) addressing for vectors. Also before | |
302 ISA 3.0, we only had X-FORM addressing for scalars in the | |
303 traditional Altivec registers. | |
304 | |
305 2020-02-06 <zhongyunde@huawei.com> | |
306 Vladimir Makarov <vmakarov@redhat.com> | |
307 | |
308 PR rtl-optimization/93561 | |
309 * lra-assigns.c (spill_for): Check that tested hard regno is not out of | |
310 hard register range. | |
311 | |
312 2020-02-06 Richard Sandiford <richard.sandiford@arm.com> | |
313 | |
314 * config/aarch64/aarch64.md (aarch64_movk<mode>): Add a type | |
315 attribute. | |
316 | |
317 2020-02-06 Segher Boessenkool <segher@kernel.crashing.org> | |
318 | |
319 * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Handle the case | |
320 where the low and the high 32 bits are equal to each other specially, | |
321 with an rldimi instruction. | |
322 | |
323 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com> | |
324 | |
325 * config/arm/arm-cpus.in: Set profile M for armv8.1-m.main. | |
326 | |
327 2020-02-06 Mihail Ionescu <mihail.ionescu@arm.com> | |
328 | |
329 * config/arm/arm-tables.opt: Regenerate. | |
330 | |
331 2020-02-06 Richard Sandiford <richard.sandiford@arm.com> | |
332 | |
333 PR target/87763 | |
334 * config/aarch64/aarch64-protos.h (aarch64_movk_shift): Declare. | |
335 * config/aarch64/aarch64.c (aarch64_movk_shift): New function. | |
336 * config/aarch64/aarch64.md (aarch64_movk<mode>): New pattern. | |
337 | |
338 2020-02-06 Richard Sandiford <richard.sandiford@arm.com> | |
339 | |
340 PR rtl-optimization/87763 | |
341 * config/aarch64/aarch64.md (*ashiftsi_extvdi_bfiz): New pattern. | |
342 | |
343 2020-02-06 Delia Burduv <delia.burduv@arm.com> | |
344 | |
345 * config/aarch64/aarch64-simd-builtins.def | |
346 (bfmlaq): New built-in function. | |
347 (bfmlalb): New built-in function. | |
348 (bfmlalt): New built-in function. | |
349 (bfmlalb_lane): New built-in function. | |
350 (bfmlalt_lane): New built-in function. | |
351 * config/aarch64/aarch64-simd.md | |
352 (aarch64_bfmmlaqv4sf): New pattern. | |
353 (aarch64_bfmlal<bt>v4sf): New pattern. | |
354 (aarch64_bfmlal<bt>_lane<q>v4sf): New pattern. | |
355 * config/aarch64/arm_neon.h (vbfmmlaq_f32): New intrinsic. | |
356 (vbfmlalbq_f32): New intrinsic. | |
357 (vbfmlaltq_f32): New intrinsic. | |
358 (vbfmlalbq_lane_f32): New intrinsic. | |
359 (vbfmlaltq_lane_f32): New intrinsic. | |
360 (vbfmlalbq_laneq_f32): New intrinsic. | |
361 (vbfmlaltq_laneq_f32): New intrinsic. | |
362 * config/aarch64/iterators.md (BF_MLA): New int iterator. | |
363 (bt): New int attribute. | |
364 | |
365 2020-02-06 Uroš Bizjak <ubizjak@gmail.com> | |
366 | |
367 * config/i386/i386.md (*pushtf): Emit "#" instead of | |
368 calling gcc_unreachable in insn output. | |
369 (*pushxf): Ditto. | |
370 (*pushdf): Ditto. | |
371 (*pushsf_rex64): Ditto for alternatives other than 1. | |
372 (*pushsf): Ditto for alternatives other than 1. | |
373 | |
374 2020-02-06 Martin Liska <mliska@suse.cz> | |
375 | |
376 PR gcov-profile/91971 | |
377 PR gcov-profile/93466 | |
378 * coverage.c (coverage_init): Revert mangling of | |
379 path into filename. It can lead to huge filename length. | |
380 Creation of subfolders seem more natural. | |
381 | |
382 2020-02-06 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
383 | |
384 PR target/93300 | |
385 * config/arm/arm.c (arm_block_arith_comp_libfuncs_for_mode): New. | |
386 (arm_init_libfuncs): Add BFmode support to block spurious BF libfuncs. | |
387 Use arm_block_arith_comp_libfuncs_for_mode for HFmode. | |
388 | |
389 2020-02-06 Jakub Jelinek <jakub@redhat.com> | |
390 | |
391 PR target/93594 | |
392 * config/i386/predicates.md (avx_identity_operand): New predicate. | |
393 * config/i386/sse.md (*avx_vec_concat<mode>_1): New | |
394 define_insn_and_split. | |
395 | |
396 PR libgomp/93515 | |
397 * omp-low.c (use_pointer_for_field): For nested constructs, also | |
398 look for map clauses on target construct. | |
399 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily | |
400 taskreg_nesting_level. | |
401 | |
402 PR libgomp/93515 | |
403 * gimplify.c (gimplify_scan_omp_clauses) <do_notice>: If adding | |
404 shared clause, call omp_notice_variable on outer context if any. | |
405 | |
406 2020-02-05 Jason Merrill <jason@redhat.com> | |
407 | |
408 PR c++/92003 | |
409 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has | |
410 non-zero address even if weak and not yet defined. | |
411 | |
412 2020-02-05 Martin Sebor <msebor@redhat.com> | |
413 | |
414 PR tree-optimization/92765 | |
415 * gimple-fold.c (get_range_strlen_tree): Handle MEM_REF and PARM_DECL. | |
416 * tree-ssa-strlen.c (compute_string_length): Remove. | |
417 (determine_min_objsize): Remove. | |
418 (get_len_or_size): Add an argument. Call get_range_strlen_dynamic. | |
419 Avoid using type size as the upper bound on string length. | |
420 (handle_builtin_string_cmp): Add an argument. Adjust. | |
421 (strlen_check_and_optimize_call): Pass additional argument to | |
422 handle_builtin_string_cmp. | |
423 | |
424 2020-02-05 Uroš Bizjak <ubizjak@gmail.com> | |
425 | |
426 * config/i386/i386.md (*pushdi2_rex64 peephole2): Remove. | |
427 (*pushdi2_rex64 peephole2): Unconditionally split after | |
428 epilogue_completed. | |
429 (*ashl<mode>3_doubleword): Ditto. | |
430 (*<shift_insn><mode>3_doubleword): Ditto. | |
431 | |
432 2020-02-05 Michael Meissner <meissner@linux.ibm.com> | |
433 | |
434 PR target/93568 | |
435 * config/rs6000/rs6000.c (get_vector_offset): Fix | |
436 | |
437 2020-02-05 Andrew Stubbs <ams@codesourcery.com> | |
438 | |
439 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Use / not space. | |
440 | |
441 2020-02-05 David Malcolm <dmalcolm@redhat.com> | |
442 | |
443 * doc/analyzer.texi | |
444 (Special Functions for Debugging the Analyzer): Update description | |
445 of __analyzer_dump_exploded_nodes. | |
446 | |
447 2020-02-05 Jakub Jelinek <jakub@redhat.com> | |
448 | |
449 PR target/92190 | |
450 * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper): Only | |
451 include sets and not clobbers in the vzeroupper pattern. | |
452 * config/i386/sse.md (*avx_vzeroupper): Require in insn condition that | |
453 the parallel has 17 (64-bit) or 9 (32-bit) elts. | |
454 (*avx_vzeroupper_1): New define_insn_and_split. | |
455 | |
456 PR target/92190 | |
457 * recog.c (pass_split_after_reload::gate): For STACK_REGS targets, | |
458 don't run when !optimize. | |
459 (pass_split_before_regstack::gate): For STACK_REGS targets, run even | |
460 when !optimize. | |
461 | |
462 2020-02-05 Richard Biener <rguenther@suse.de> | |
463 | |
464 PR middle-end/90648 | |
465 * genmatch.c (dt_node::gen_kids_1): Emit number of argument | |
466 checks before matching calls. | |
467 | |
468 2020-02-05 Jakub Jelinek <jakub@redhat.com> | |
469 | |
470 * tree-ssa-alias.c (aliasing_matching_component_refs_p): Fix up | |
471 function comment typo. | |
472 | |
473 PR middle-end/93555 | |
474 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or | |
475 simd_clone_create failed when i == 0, adjust clone->nargs by | |
476 clone->inbranch. | |
477 | |
478 2020-02-05 Martin Liska <mliska@suse.cz> | |
479 | |
480 PR c++/92717 | |
481 * doc/invoke.texi: Document that one should | |
482 not combine ASLR and -fpch. | |
483 | |
484 2020-02-04 Richard Biener <rguenther@suse.de> | |
485 | |
486 PR tree-optimization/93538 | |
487 * match.pd (addr EQ/NE ptr): Amend to handle &ptr->x EQ/NE ptr. | |
488 | |
489 2020-02-04 Richard Biener <rguenther@suse.de> | |
490 | |
491 PR tree-optimization/91123 | |
492 * tree-ssa-sccvn.c (vn_walk_cb_data::finish): New method. | |
493 (vn_walk_cb_data::last_vuse): New member. | |
494 (vn_walk_cb_data::saved_operands): Likewsie. | |
495 (vn_walk_cb_data::~vn_walk_cb_data): Release saved_operands. | |
496 (vn_walk_cb_data::push_partial_def): Use finish. | |
497 (vn_reference_lookup_2): Update last_vuse and use finish if | |
498 we've saved operands. | |
499 (vn_reference_lookup_3): Use finish and update calls to | |
500 push_partial_defs everywhere. When translating through | |
501 memcpy or aggregate copies save off operands and alias-set. | |
502 (eliminate_dom_walker::eliminate_stmt): Restore VN_WALKREWRITE | |
503 operation for redundant store removal. | |
504 | |
505 2020-02-04 Richard Biener <rguenther@suse.de> | |
506 | |
507 PR tree-optimization/92819 | |
508 * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid | |
509 generating more stmts than before. | |
510 | |
511 2020-02-04 Martin Liska <mliska@suse.cz> | |
512 | |
513 * config/arm/arm.c (arm_gen_far_branch): Move the function | |
514 outside of selftests. | |
515 | |
516 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
517 | |
518 * config/rs6000/rs6000.c (adjust_vec_address_pcrel): New helper | |
519 function to adjust PC-relative vector addresses. | |
520 (rs6000_adjust_vec_address): Call adjust_vec_address_pcrel to | |
521 handle vectors with PC-relative addresses. | |
522 | |
523 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
524 | |
525 * config/rs6000/rs6000.c (reg_to_non_prefixed): Add forward | |
526 reference. | |
527 (hard_reg_and_mode_to_addr_mask): Delete. | |
528 (rs6000_adjust_vec_address): If the original vector address | |
529 was REG+REG or REG+OFFSET and the element is not zero, do the add | |
530 of the elements in the original address before adding the offset | |
531 for the vector element. Use address_to_insn_form to validate the | |
532 address using the register being loaded, rather than guessing | |
533 whether the address is a DS-FORM or DQ-FORM address. | |
534 | |
535 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
536 | |
537 * config/rs6000/rs6000.c (get_vector_offset): New helper function | |
538 to calculate the offset in memory from the start of a vector of a | |
539 particular element. Add code to keep the element number in | |
540 bounds if the element number is variable. | |
541 (rs6000_adjust_vec_address): Move calculation of offset of the | |
542 vector element to get_vector_offset. | |
543 (rs6000_split_vec_extract_var): Do not do the initial AND of | |
544 element here, move the code to get_vector_offset. | |
545 | |
546 2020-02-03 Michael Meissner <meissner@linux.ibm.com> | |
547 | |
548 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add some | |
549 gcc_asserts. | |
550 | |
551 2020-02-03 Segher Boessenkool <segher@kernel.crashing.org> | |
552 | |
553 * config/rs6000/constraints.md: Improve documentation. | |
554 | |
555 2020-02-03 Richard Earnshaw <rearnsha@arm.com> | |
556 | |
557 PR target/93548 | |
558 * config/arm/t-arm: ($(srcdir)/config/arm/arm-tune.md) | |
559 ($(srcdir)/config/arm/arm-tables.opt): Use move-if-change. | |
560 | |
561 2020-02-03 Andrew Stubbs <ams@codesourcery.com> | |
562 | |
563 * config.gcc: Remove "carrizo" support. | |
564 * config/gcn/gcn-opts.h (processor_type): Likewise. | |
565 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Likewise. | |
566 * config/gcn/gcn.opt (gpu_type): Likewise. | |
567 * config/gcn/t-omp-device: Likewise. | |
568 | |
569 2020-02-03 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
570 | |
571 PR target/91816 | |
572 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype. | |
573 * config/arm/arm.c (arm_gen_far_branch): New function | |
574 arm_gen_far_branch. | |
575 * config/arm/arm.md: Update b<cond> for Thumb2 range checks. | |
576 | |
577 2020-02-03 Julian Brown <julian@codesourcery.com> | |
578 Tobias Burnus <tobias@codesourcery.com> | |
579 | |
580 * doc/invoke.texi: Update mention of OpenACC version to 2.6. | |
581 | |
582 2020-02-03 Jakub Jelinek <jakub@redhat.com> | |
583 | |
584 PR target/93533 | |
585 * config/s390/s390.md (popcounthi2_z196): Fix up expander to emit | |
586 valid RTL to sum up the lowest and second lowest bytes of the popcnt | |
587 result. | |
588 | |
589 2020-02-02 Vladimir Makarov <vmakarov@redhat.com> | |
590 | |
591 PR rtl-optimization/91333 | |
592 * ira-color.c (struct allocno_color_data): Add member | |
593 hard_reg_prefs. | |
594 (init_allocno_threads): Set the member up. | |
595 (bucket_allocno_compare_func): Add compare hard reg | |
596 prefs. | |
597 | |
598 2020-01-31 Sandra Loosemore <sandra@codesourcery.com> | |
599 | |
600 nios2: Support for GOT-relative DW_EH_PE_datarel encoding. | |
601 | |
602 * configure.ac [nios2-*-*]: Check HAVE_AS_NIOS2_GOTOFF_RELOCATION. | |
603 * config.in: Regenerated. | |
604 * configure: Regenerated. | |
605 * config/nios2/nios2.h (ASM_PREFERRED_EH_DATA_FORMAT): Fix handling | |
606 for PIC when HAVE_AS_NIOS2_GOTOFF_RELOCATION. | |
607 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): New. | |
608 | |
609 2020-02-01 Andrew Burgess <andrew.burgess@embecosm.com> | |
610 | |
131 | 611 * configure: Regenerate. |
145 | 612 |
613 2020-01-31 Vladimir Makarov <vmakarov@redhat.com> | |
614 | |
615 PR rtl-optimization/91333 | |
616 * ira-color.c (bucket_allocno_compare_func): Move conflict hard | |
617 reg preferences comparison up. | |
618 | |
619 2020-01-31 Richard Sandiford <richard.sandiford@arm.com> | |
620 | |
621 * config/aarch64/aarch64.h (TARGET_SVE_BF16): New macro. | |
622 * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtnt): Move to | |
623 aarch64-sve-builtins-base.h. | |
624 * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtnt): Move to | |
625 aarch64-sve-builtins-base.cc. | |
626 * config/aarch64/aarch64-sve-builtins-base.h (svbfdot, svbfdot_lane) | |
627 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) | |
628 (svcvtnt): Declare. | |
629 * config/aarch64/aarch64-sve-builtins-base.cc (svbfdot, svbfdot_lane) | |
630 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) | |
631 (svcvtnt): New functions. | |
632 * config/aarch64/aarch64-sve-builtins-base.def (svbfdot, svbfdot_lane) | |
633 (svbfmlalb, svbfmlalb_lane, svbfmlalt, svbfmlalt_lane, svbfmmla) | |
634 (svcvtnt): New functions. | |
635 (svcvt): Add a form that converts f32 to bf16. | |
636 * config/aarch64/aarch64-sve-builtins-shapes.h (ternary_bfloat) | |
637 (ternary_bfloat_lane, ternary_bfloat_lanex2, ternary_bfloat_opt_n): | |
638 Declare. | |
639 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type): | |
640 Treat B as bfloat16_t. | |
641 (ternary_bfloat_lane_base): New class. | |
642 (ternary_bfloat_def): Likewise. | |
643 (ternary_bfloat): New shape. | |
644 (ternary_bfloat_lane_def): New class. | |
645 (ternary_bfloat_lane): New shape. | |
646 (ternary_bfloat_lanex2_def): New class. | |
647 (ternary_bfloat_lanex2): New shape. | |
648 (ternary_bfloat_opt_n_def): New class. | |
649 (ternary_bfloat_opt_n): New shape. | |
650 * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_bfloat): New macro. | |
651 * config/aarch64/aarch64-sve.md (@aarch64_sve_<sve_fp_op>vnx4sf) | |
652 (@aarch64_sve_<sve_fp_op>_lanevnx4sf): New patterns. | |
653 (@aarch64_sve_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>) | |
654 (@cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise. | |
655 (*cond_<optab>_trunc<VNx4SF_ONLY:mode><VNx8BF_ONLY:mode>): Likewise. | |
656 (@aarch64_sve_cvtnt<VNx8BF_ONLY:mode>): Likewise. | |
657 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_cvtnt<mode>): Key | |
658 the pattern off the narrow mode instead of the wider one. | |
659 * config/aarch64/iterators.md (VNx8BF_ONLY): New mode iterator. | |
660 (UNSPEC_BFMLALB, UNSPEC_BFMLALT, UNSPEC_BFMMLA): New unspecs. | |
661 (sve_fp_op): Handle them. | |
662 (SVE_BFLOAT_TERNARY_LONG): New int itertor. | |
663 (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise. | |
664 | |
665 2020-01-31 Richard Sandiford <richard.sandiford@arm.com> | |
666 | |
667 * config/aarch64/arm_sve.h: Include arm_bf16.h. | |
668 * config/aarch64/aarch64-modes.def (BF): Move definition before | |
669 VECTOR_MODES. Remove separate VECTOR_MODES for V4BF and V8BF. | |
670 (SVE_MODES): Handle BF modes. | |
671 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle | |
672 BF modes. | |
673 (aarch64_full_sve_mode): Likewise. | |
674 * config/aarch64/iterators.md (SVE_STRUCT): Add VNx16BF, VNx24BF | |
675 and VNx32BF. | |
676 (SVE_FULL, SVE_FULL_HSD, SVE_ALL): Add VNx8BF. | |
677 (Vetype, Vesize, Vctype, VEL, Vel, VEL_INT, V128, v128, vwcore) | |
678 (V_INT_EQUIV, v_int_equiv, V_FP_EQUIV, v_fp_equiv, vector_count) | |
679 (insn_length, VSINGLE, vsingle, VPRED, vpred, VDOUBLE): Handle the | |
680 new SVE BF modes. | |
681 * config/aarch64/aarch64-sve-builtins.h (TYPE_bfloat): New | |
682 type_class_index. | |
683 * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_arith): New macro. | |
684 (TYPES_all_data): Add bf16. | |
685 (TYPES_reinterpret1, TYPES_reinterpret): Likewise. | |
686 (register_tuple_type): Increase buffer size. | |
687 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): New type. | |
688 (bf16): New type suffix. | |
689 * config/aarch64/aarch64-sve-builtins-base.def (svabd, svadd, svaddv) | |
690 (svcmpeq, svcmpge, svcmpgt, svcmple, svcmplt, svcmpne, svmad, svmax) | |
691 (svmaxv, svmin, svminv, svmla, svmls, svmsb, svmul, svsub, svsubr): | |
692 Change type from all_data to all_arith. | |
693 * config/aarch64/aarch64-sve-builtins-sve2.def (svaddp, svmaxp) | |
694 (svminp): Likewise. | |
695 | |
696 2020-01-31 Dennis Zhang <dennis.zhang@arm.com> | |
697 Matthew Malcomson <matthew.malcomson@arm.com> | |
698 Richard Sandiford <richard.sandiford@arm.com> | |
699 | |
700 * doc/invoke.texi (f32mm): Document new AArch64 -march= extension. | |
701 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
702 __ARM_FEATURE_SVE_MATMUL_INT8, __ARM_FEATURE_SVE_MATMUL_FP32 and | |
703 __ARM_FEATURE_SVE_MATMUL_FP64 as appropriate. Don't define | |
704 __ARM_FEATURE_MATMUL_FP64. | |
705 * config/aarch64/aarch64-option-extensions.def (fp, simd, fp16) | |
706 (sve): Add AARCH64_FL_F32MM to the list of extensions that should | |
707 be disabled at the same time. | |
708 (f32mm): New extension. | |
709 * config/aarch64/aarch64.h (AARCH64_FL_F32MM): New macro. | |
710 (AARCH64_FL_F64MM): Bump to the next bit up. | |
711 (AARCH64_ISA_F32MM, TARGET_SVE_I8MM, TARGET_F32MM, TARGET_SVE_F32MM) | |
712 (TARGET_SVE_F64MM): New macros. | |
713 * config/aarch64/iterators.md (SVE_MATMULF): New mode iterator. | |
714 (UNSPEC_FMMLA, UNSPEC_SMATMUL, UNSPEC_UMATMUL, UNSPEC_USMATMUL) | |
715 (UNSPEC_TRN1Q, UNSPEC_TRN2Q, UNSPEC_UZP1Q, UNSPEC_UZP2Q, UNSPEC_ZIP1Q) | |
716 (UNSPEC_ZIP2Q): New unspeccs. | |
717 (DOTPROD_US_ONLY, PERMUTEQ, MATMUL, FMMLA): New int iterators. | |
718 (optab, sur, perm_insn): Handle the new unspecs. | |
719 (sve_fp_op): Handle UNSPEC_FMMLA. Resort. | |
720 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use | |
721 TARGET_SVE_F64MM instead of separate tests. | |
722 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod<vsi2qi>): New pattern. | |
723 (@aarch64_<DOTPROD_US_ONLY:sur>dot_prod_lane<vsi2qi>): Likewise. | |
724 (@aarch64_sve_add_<MATMUL:optab><vsi2qi>): Likewise. | |
725 (@aarch64_sve_<FMMLA:sve_fp_op><mode>): Likewise. | |
726 (@aarch64_sve_<PERMUTEQ:optab><mode>): Likewise. | |
727 * config/aarch64/aarch64-sve-builtins.cc (TYPES_s_float): New macro. | |
728 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): Use it. | |
729 (TYPES_s_signed): New macro. | |
730 (TYPES_s_integer): Use it. | |
731 (TYPES_d_float): New macro. | |
732 (TYPES_d_data): Use it. | |
733 * config/aarch64/aarch64-sve-builtins-shapes.h (mmla): Declare. | |
734 (ternary_intq_uintq_lane, ternary_intq_uintq_opt_n, ternary_uintq_intq) | |
735 (ternary_uintq_intq_lane, ternary_uintq_intq_opt_n): Likewise. | |
736 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): New class. | |
737 (svmmla): New shape. | |
738 (ternary_resize2_opt_n_base): Add TYPE_CLASS2 and TYPE_CLASS3 | |
739 template parameters. | |
740 (ternary_resize2_lane_base): Likewise. | |
741 (ternary_resize2_base): New class. | |
742 (ternary_qq_lane_base): Likewise. | |
743 (ternary_intq_uintq_lane_def): Likewise. | |
744 (ternary_intq_uintq_lane): New shape. | |
745 (ternary_intq_uintq_opt_n_def): New class | |
746 (ternary_intq_uintq_opt_n): New shape. | |
747 (ternary_qq_lane_def): Inherit from ternary_qq_lane_base. | |
748 (ternary_uintq_intq_def): New class. | |
749 (ternary_uintq_intq): New shape. | |
750 (ternary_uintq_intq_lane_def): New class. | |
751 (ternary_uintq_intq_lane): New shape. | |
752 (ternary_uintq_intq_opt_n_def): New class. | |
753 (ternary_uintq_intq_opt_n): New shape. | |
754 * config/aarch64/aarch64-sve-builtins-base.h (svmmla, svsudot) | |
755 (svsudot_lane, svtrn1q, svtrn2q, svusdot, svusdot_lane, svusmmla) | |
756 (svuzp1q, svuzp2q, svzip1q, svzip2q): Declare. | |
757 * config/aarch64/aarch64-sve-builtins-base.cc (svdot_lane_impl): | |
758 Generalize to... | |
759 (svdotprod_lane_impl): ...this new class. | |
760 (svmmla_impl, svusdot_impl): New classes. | |
761 (svdot_lane): Update to use svdotprod_lane_impl. | |
762 (svmmla, svsudot, svsudot_lane, svtrn1q, svtrn2q, svusdot) | |
763 (svusdot_lane, svusmmla, svuzp1q, svuzp2q, svzip1q, svzip2q): New | |
764 functions. | |
765 * config/aarch64/aarch64-sve-builtins-base.def (svmmla): New base | |
766 function, with no types defined. | |
767 (svmmla, svusmmla, svsudot, svsudot_lane, svusdot, svusdot_lane): New | |
768 AARCH64_FL_I8MM functions. | |
769 (svmmla): New AARCH64_FL_F32MM function. | |
770 (svld1ro): Depend only on AARCH64_FL_F64MM, not on AARCH64_FL_V8_6. | |
771 (svmmla, svtrn1q, svtrn2q, svuz1q, svuz2q, svzip1q, svzip2q): New | |
772 AARCH64_FL_F64MM function. | |
773 (REQUIRED_EXTENSIONS): | |
774 | |
775 2020-01-31 Andrew Stubbs <ams@codesourcery.com> | |
776 | |
777 * config/gcn/gcn-valu.md (addv64di3_exec): Allow one '0' in each | |
778 alternative only. | |
779 | |
780 2020-01-31 Uroš Bizjak <ubizjak@gmail.com> | |
781 | |
782 * config/i386/i386.md (*movoi_internal_avx): Do not check for | |
783 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. Remove MODE_V8SF handling. | |
784 (*movti_internal): Do not check for | |
785 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. | |
786 (*movtf_internal): Move check for TARGET_SSE2 and size optimization | |
787 just after check for TARGET_AVX. | |
788 (*movdf_internal): Ditto. | |
789 * config/i386/mmx.md (*mov<mode>_internal): Do not check for | |
790 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL. | |
791 * config/i386/sse.md (mov<mode>_internal): Only check | |
792 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL with V2DFmode. Move check | |
793 for TARGET_SSE2 and size optimization just after check for TARGET_AVX. | |
794 (<sse>_andnot<mode>3<mask_name>): Move check for | |
795 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL after check for TARGET_AVX. | |
796 (<code><mode>3<mask_name>): Ditto. | |
797 (*andnot<mode>3): Ditto. | |
798 (*andnottf3): Ditto. | |
799 (*<code><mode>3): Ditto. | |
800 (*<code>tf3): Ditto. | |
801 (*andnot<VI:mode>3): Remove | |
802 TARGET_SSE_PACKED_SINGLE_INSN_OPTIMAL handling. | |
803 (<mask_codefor><code><VI48_AVX_AVX512F:mode>3<mask_name>): Ditto. | |
804 (*<code><VI12_AVX_AVX512F:mode>3): Ditto. | |
805 (sse4_1_blendv<ssemodesuffix>): Ditto. | |
806 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): | |
807 Explain that tune applies to 128bit instructions only. | |
808 | |
809 2020-01-31 Kwok Cheung Yeung <kcy@codesourcery.com> | |
810 | |
811 * config/gcn/mkoffload.c (process_asm): Add sgpr_count and vgpr_count | |
812 to definition of hsa_kernel_description. Parse assembly to find SGPR | |
813 and VGPR count of kernel and store in hsa_kernel_description. | |
814 | |
815 2020-01-31 Tamar Christina <tamar.christina@arm.com> | |
816 | |
817 PR rtl-optimization/91838 | |
818 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case | |
819 to truncate if allowed or reject combination. | |
820 | |
821 2020-01-31 Andrew Stubbs <ams@codesourcery.com> | |
822 | |
823 * tree-ssa-loop-ivopts.c (get_iv): Use sizetype for zero-step. | |
824 (find_inv_vars_cb): Likewise. | |
825 | |
826 2020-01-31 David Malcolm <dmalcolm@redhat.com> | |
827 | |
828 * calls.c (special_function_p): Split out the check for DECL_NAME | |
829 being non-NULL and fndecl being extern at file scope into a | |
830 new maybe_special_function_p and call it. Drop check for fndecl | |
831 being non-NULL that was after a usage of DECL_NAME (fndecl). | |
832 * tree.h (maybe_special_function_p): New inline function. | |
833 | |
834 2020-01-30 Andrew Stubbs <ams@codesourcery.com> | |
835 | |
836 * config/gcn/gcn-valu.md (gather<mode>_exec): Move contents ... | |
837 (mask_gather_load<mode>): ... here, and zero-initialize the | |
838 destination. | |
839 (maskload<mode>di): Zero-initialize the destination. | |
840 * config/gcn/gcn.c: | |
841 | |
842 2020-01-30 David Malcolm <dmalcolm@redhat.com> | |
843 | |
844 PR analyzer/93356 | |
845 * doc/analyzer.texi (Limitations): Note that constraints on | |
846 floating-point values are currently ignored. | |
847 | |
848 2020-01-30 Jakub Jelinek <jakub@redhat.com> | |
849 | |
850 PR lto/93384 | |
851 * symtab.c (symtab_node::noninterposable_alias): If localalias | |
852 already exists, but is not usable, append numbers after it until | |
853 a unique name is found. Formatting fix. | |
854 | |
855 PR middle-end/93505 | |
856 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range | |
857 rotate counts. | |
858 | |
859 2020-01-30 Andrew Stubbs <ams@codesourcery.com> | |
860 | |
861 * config/gcn/gcn.c (print_operand): Handle LTGT. | |
862 * config/gcn/predicates.md (gcn_fp_compare_operator): Allow ltgt. | |
863 | |
864 2020-01-30 Richard Biener <rguenther@suse.de> | |
865 | |
866 * tree-pretty-print.c (dump_generic_node): Wrap VECTOR_CST | |
867 and CONSTRUCTOR in _Literal (type) with TDF_GIMPLE. | |
868 | |
869 2020-01-30 John David Anglin <danglin@gcc.gnu.org> | |
870 | |
871 * config/pa/pa.c (pa_elf_select_rtx_section): Place function pointers | |
872 without a DECL in .data.rel.ro.local. | |
873 | |
874 2020-01-30 Jakub Jelinek <jakub@redhat.com> | |
875 | |
876 PR target/93494 | |
877 * config/arm/arm.md (uaddvdi4): Actually emit what gen_uaddvsi4 | |
878 returned. | |
879 | |
880 PR target/91824 | |
881 * config/i386/sse.md | |
882 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext): Renamed to ... | |
883 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext): ... this. Use | |
884 any_extend code iterator instead of always zero_extend. | |
885 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt): Renamed to ... | |
886 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt): ... this. | |
887 Use any_extend code iterator instead of always zero_extend. | |
888 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift): Renamed to ... | |
889 (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_shift): ... this. | |
890 Use any_extend code iterator instead of always zero_extend. | |
891 (*sse2_pmovmskb_ext): New define_insn. | |
892 (*sse2_pmovmskb_ext_lt): New define_insn_and_split. | |
893 | |
894 PR target/91824 | |
895 * config/i386/i386.md (*popcountsi2_zext): New define_insn_and_split. | |
896 (*popcountsi2_zext_falsedep): New define_insn. | |
897 | |
898 2020-01-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
899 | |
900 * config.in: Regenerated. | |
901 * configure: Regenerated. | |
902 | |
903 2020-01-29 Tobias Burnus <tobias@codesourcery.com> | |
904 | |
905 PR bootstrap/93409 | |
906 * config/gcn/gcn-hsa.h (ASM_SPEC): Add -mattr=-code-object-v3 as | |
907 LLVM's assembler changed the default in version 9. | |
908 | |
909 2020-01-24 Jeff Law <law@redhat.com> | |
910 | |
911 PR tree-optimization/89689 | |
912 * builtins.def (BUILT_IN_OBJECT_SIZE): Make it const rather than pure. | |
913 | |
914 2020-01-29 Richard Sandiford <richard.sandiford@arm.com> | |
915 | |
916 Revert: | |
917 | |
918 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
919 | |
920 PR rtl-optimization/87763 | |
921 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract | |
922 simplification to handle subregs as well as bare regs. | |
923 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too. | |
924 | |
925 2020-01-29 Joel Hutton <Joel.Hutton@arm.com> | |
926 | |
927 PR target/93221 | |
928 * ira.c (ira): Revert use of simplified LRA algorithm. | |
929 | |
930 2020-01-29 Martin Jambor <mjambor@suse.cz> | |
931 | |
932 PR tree-optimization/92706 | |
933 * tree-sra.c (struct access): Fields first_link, last_link, | |
934 next_queued and grp_queued renamed to first_rhs_link, last_rhs_link, | |
935 next_rhs_queued and grp_rhs_queued respectively, new fields | |
936 first_lhs_link, last_lhs_link, next_lhs_queued and grp_lhs_queued. | |
937 (struct assign_link): Field next renamed to next_rhs, new field | |
938 next_lhs. Updated comment. | |
939 (work_queue_head): Renamed to rhs_work_queue_head. | |
940 (lhs_work_queue_head): New variable. | |
941 (add_link_to_lhs): New function. | |
942 (relink_to_new_repr): Also relink LHS lists. | |
943 (add_access_to_work_queue): Renamed to add_access_to_rhs_work_queue. | |
944 (add_access_to_lhs_work_queue): New function. | |
945 (pop_access_from_work_queue): Renamed to | |
946 pop_access_from_rhs_work_queue. | |
947 (pop_access_from_lhs_work_queue): New function. | |
948 (build_accesses_from_assign): Also add links to LHS lists and to LHS | |
949 work_queue. | |
950 (child_would_conflict_in_lacc): Renamed to | |
951 child_would_conflict_in_acc. Adjusted parameter names. | |
952 (create_artificial_child_access): New parameter set_grp_read, use it. | |
953 (subtree_mark_written_and_enqueue): Renamed to | |
954 subtree_mark_written_and_rhs_enqueue. | |
955 (propagate_subaccesses_across_link): Renamed to | |
956 propagate_subaccesses_from_rhs. | |
957 (propagate_subaccesses_from_lhs): New function. | |
958 (propagate_all_subaccesses): Also propagate subaccesses from LHSs to | |
959 RHSs. | |
960 | |
961 2020-01-29 Martin Jambor <mjambor@suse.cz> | |
962 | |
963 PR tree-optimization/92706 | |
964 * tree-sra.c (struct access): Adjust comment of | |
965 grp_total_scalarization. | |
966 (find_access_in_subtree): Look for single children spanning an entire | |
967 access. | |
968 (scalarizable_type_p): Allow register accesses, adjust callers. | |
969 (completely_scalarize): Remove function. | |
970 (scalarize_elem): Likewise. | |
971 (create_total_scalarization_access): Likewise. | |
972 (sort_and_splice_var_accesses): Do not track total scalarization | |
973 flags. | |
974 (analyze_access_subtree): New parameter totally, adjust to new meaning | |
975 of grp_total_scalarization. | |
976 (analyze_access_trees): Pass new parameter to analyze_access_subtree. | |
977 (can_totally_scalarize_forest_p): New function. | |
978 (create_total_scalarization_access): Likewise. | |
979 (create_total_access_and_reshape): Likewise. | |
980 (total_should_skip_creating_access): Likewise. | |
981 (totally_scalarize_subtree): Likewise. | |
982 (analyze_all_variable_accesses): Perform total scalarization after | |
983 subaccess propagation using the new functions above. | |
984 (initialize_constant_pool_replacements): Output initializers by | |
985 traversing the access tree. | |
986 | |
987 2020-01-29 Martin Jambor <mjambor@suse.cz> | |
988 | |
989 * tree-sra.c (verify_sra_access_forest): New function. | |
990 (verify_all_sra_access_forests): Likewise. | |
991 (create_artificial_child_access): Set parent. | |
992 (analyze_all_variable_accesses): Call the verifier. | |
993 | |
994 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
995 | |
996 * cgraph.c (cgraph_edge::resolve_speculation): Only lookup direct edge | |
997 if called on indirect edge. | |
998 (cgraph_edge::redirect_call_stmt_to_callee): Lookup indirect edge of | |
999 speculative call if needed. | |
1000 | |
1001 2020-01-29 Richard Biener <rguenther@suse.de> | |
1002 | |
1003 PR tree-optimization/93428 | |
1004 * tree-vect-slp.c (vect_build_slp_tree_2): Compute the load | |
1005 permutation when the load node is created. | |
1006 (vect_analyze_slp_instance): Re-use it here. | |
1007 | |
1008 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
1009 | |
1010 * ipa-prop.c (update_indirect_edges_after_inlining): Fix warning. | |
1011 | |
1012 2020-01-28 Vladimir Makarov <vmakarov@redhat.com> | |
1013 | |
1014 PR rtl-optimization/93272 | |
1015 * ira-lives.c (process_out_of_region_eh_regs): New function. | |
1016 (process_bb_node_lives): Call it. | |
1017 | |
1018 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
1019 | |
1020 * coverage.c (read_counts_file): Make error message lowercase. | |
1021 | |
1022 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
1023 | |
1024 * profile-count.c (profile_quality_display_names): Fix ordering. | |
1025 | |
1026 2020-01-28 Jan Hubicka <hubicka@ucw.cz> | |
1027 | |
1028 PR lto/93318 | |
1029 * cgraph.c (cgraph_add_edge_to_call_site_hash): Update call site | |
1030 hash only when edge is first within the sequence. | |
1031 (cgraph_edge::set_call_stmt): Update handling of speculative calls. | |
1032 (symbol_table::create_edge): Do not set target_prob. | |
1033 (cgraph_edge::remove_caller): Watch for speculative calls when updating | |
1034 the call site hash. | |
1035 (cgraph_edge::make_speculative): Drop target_prob parameter. | |
1036 (cgraph_edge::speculative_call_info): Remove. | |
1037 (cgraph_edge::first_speculative_call_target): New member function. | |
1038 (update_call_stmt_hash_for_removing_direct_edge): New function. | |
1039 (cgraph_edge::resolve_speculation): Rewrite to new API. | |
1040 (cgraph_edge::speculative_call_for_target): New member function. | |
1041 (cgraph_edge::make_direct): Rewrite to new API; fix handling of | |
1042 multiple speculation targets. | |
1043 (cgraph_edge::redirect_call_stmt_to_callee): Likewise; fix updating | |
1044 of profile. | |
1045 (verify_speculative_call): Verify that targets form an interval. | |
1046 * cgraph.h (cgraph_edge::speculative_call_info): Remove. | |
1047 (cgraph_edge::first_speculative_call_target): New member function. | |
1048 (cgraph_edge::next_speculative_call_target): New member function. | |
1049 (cgraph_edge::speculative_call_target_ref): New member function. | |
1050 (cgraph_edge;:speculative_call_indirect_edge): New member funtion. | |
1051 (cgraph_edge): Remove target_prob. | |
1052 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones): | |
1053 Fix handling of speculative calls. | |
1054 * ipa-devirt.c (ipa_devirt): Fix handling of speculative cals. | |
1055 * ipa-fnsummary.c (analyze_function_body): Likewise. | |
1056 * ipa-inline.c (speculation_useful_p): Use new speculative call API. | |
1057 * ipa-profile.c (dump_histogram): Fix formating. | |
1058 (ipa_profile_generate_summary): Watch for overflows. | |
1059 (ipa_profile): Do not require probablity to be 1/2; update to new API. | |
1060 * ipa-prop.c (ipa_make_edge_direct_to_target): Update to new API. | |
1061 (update_indirect_edges_after_inlining): Update to new API. | |
1062 * ipa-utils.c (ipa_merge_profiles): Rewrite merging of speculative call | |
1063 profiles. | |
1064 * profile-count.h: (profile_probability::adjusted): New. | |
1065 * tree-inline.c (copy_bb): Update to new speculative call API; fix | |
1066 updating of profile. | |
1067 * value-prof.c (gimple_ic_transform): Rename to ... | |
1068 (dump_ic_profile): ... this one; update dumping. | |
1069 (stream_in_histogram_value): Fix formating. | |
1070 (gimple_value_profile_transformations): Update. | |
1071 | |
1072 2020-01-28 H.J. Lu <hongjiu.lu@intel.com> | |
1073 | |
1074 PR target/91461 | |
1075 * config/i386/i386.md (*movoi_internal_avx): Remove | |
1076 TARGET_SSE_TYPELESS_STORES check. | |
1077 (*movti_internal): Prefer TARGET_AVX over | |
1078 TARGET_SSE_TYPELESS_STORES. | |
1079 (*movtf_internal): Likewise. | |
1080 * config/i386/sse.md (mov<mode>_internal): Prefer TARGET_AVX over | |
1081 TARGET_SSE_TYPELESS_STORES. Remove "<MODE_SIZE> == 16" check | |
1082 from TARGET_SSE_TYPELESS_STORES. | |
1083 | |
1084 2020-01-28 David Malcolm <dmalcolm@redhat.com> | |
1085 | |
1086 * diagnostic-core.h (warning_at): Rename overload to... | |
1087 (warning_meta): ...this. | |
1088 (emit_diagnostic_valist): Delete decl of overload taking | |
1089 diagnostic_metadata. | |
1090 * diagnostic.c (emit_diagnostic_valist): Likewise for defn. | |
1091 (warning_at): Rename overload taking diagnostic_metadata to... | |
1092 (warning_meta): ...this. | |
1093 | |
1094 2020-01-28 Richard Biener <rguenther@suse.de> | |
1095 | |
1096 PR tree-optimization/93439 | |
1097 * tree-parloops.c (create_loop_fn): Move clique bookkeeping... | |
1098 * tree-cfg.c (move_sese_region_to_fn): ... here. | |
1099 (verify_types_in_gimple_reference): Verify used cliques are | |
1100 tracked. | |
1101 | |
1102 2020-01-28 H.J. Lu <hongjiu.lu@intel.com> | |
1103 | |
1104 PR target/91399 | |
1105 * config/i386/i386-options.c (set_ix86_tune_features): Add an | |
1106 argument of a pointer to struct gcc_options and pass it to | |
1107 parse_mtune_ctrl_str. | |
1108 (ix86_function_specific_restore): Pass opts to | |
1109 set_ix86_tune_features. | |
1110 (ix86_option_override_internal): Likewise. | |
1111 (parse_mtune_ctrl_str): Add an argument of a pointer to struct | |
1112 gcc_options and use it for x_ix86_tune_ctrl_string. | |
1113 | |
1114 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
1115 | |
1116 PR rtl-optimization/87763 | |
1117 * simplify-rtx.c (simplify_truncation): Extend sign/zero_extract | |
1118 simplification to handle subregs as well as bare regs. | |
1119 * config/i386/i386.md (*testqi_ext_3): Match QI extracts too. | |
1120 | |
1121 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
1122 | |
1123 * tree-vect-loop.c (vectorizable_reduction): Fail gracefully | |
1124 for reduction chains that (now) include a call. | |
1125 | |
1126 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
1127 | |
1128 PR tree-optimization/92822 | |
1129 * tree-ssa-forwprop.c (simplify_vector_constructor): When filling | |
1130 out the don't-care elements of a vector whose significant elements | |
1131 are duplicates, make the don't-care elements duplicates too. | |
1132 | |
1133 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> | |
1134 | |
1135 PR tree-optimization/93434 | |
1136 * tree-predcom.c (split_data_refs_to_components): Record which | |
1137 components have had aliasing loads removed. Prevent store-store | |
1138 commoning for all such components. | |
1139 | |
1140 2020-01-28 Jakub Jelinek <jakub@redhat.com> | |
1141 | |
1142 PR target/93418 | |
1143 * config/i386/i386.c (ix86_fold_builtin) <do_shift>: If mask is not | |
1144 -1 or is_vshift is true, use new_vector with number of elts npatterns | |
1145 rather than new_unary_operation. | |
1146 | |
1147 PR tree-optimization/93454 | |
1148 * gimple-fold.c (fold_array_ctor_reference): Perform | |
1149 elt_size.to_uhwi () just once, instead of calling it in every | |
1150 iteration. Punt if that value is above size of the temporary | |
1151 buffer. Decrease third native_encode_expr argument when | |
1152 bufoff + elt_sz is above size of buf. | |
1153 | |
1154 2020-01-27 Joseph Myers <joseph@codesourcery.com> | |
1155 | |
1156 * config/mips/mips.c (mips_declare_object_name) | |
1157 [USE_GNU_UNIQUE_OBJECT]: Support use of gnu_unique_object. | |
1158 | |
1159 2020-01-27 Martin Liska <mliska@suse.cz> | |
1160 | |
1161 PR gcov-profile/93403 | |
1162 * tree-profile.c (gimple_init_gcov_profiler): Generate | |
1163 both __gcov_indirect_call_profiler_v4 and | |
1164 __gcov_indirect_call_profiler_v4_atomic. | |
1165 | |
1166 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
1167 | |
1168 PR target/92822 | |
1169 * config/aarch64/aarch64-simd.md (aarch64_get_half<mode>): New | |
1170 expander. | |
1171 (@aarch64_split_simd_mov<mode>): Use it. | |
1172 (aarch64_simd_mov_from_<mode>low): Add a GPR alternative. | |
1173 Leave the vec_extract patterns to handle 2-element vectors. | |
1174 (aarch64_simd_mov_from_<mode>high): Likewise. | |
1175 (vec_extract<VQMOV_NO2E:mode><Vhalf>): New expander. | |
1176 (vec_extractv2dfv1df): Likewise. | |
1177 | |
1178 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
1179 | |
1180 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Match | |
1181 jump conditions for *compare_condjump<GPI:mode>. | |
1182 | |
1183 2020-01-27 David Malcolm <dmalcolm@redhat.com> | |
1184 | |
1185 PR analyzer/93276 | |
1186 * digraph.cc (test_edge::test_edge): Specify template for base | |
1187 class initializer. | |
1188 | |
1189 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
1190 | |
1191 * config/arc/arc.c (arc_rtx_costs): Update mul64 cost. | |
1192 | |
1193 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
1194 | |
1195 * config/arc/arc-protos.h (gen_mlo): Remove. | |
1196 (gen_mhi): Likewise. | |
1197 * config/arc/arc.c (AUX_MULHI): Define. | |
1198 (arc_must_save_reister): Special handling for r58/59. | |
1199 (arc_compute_frame_size): Consider mlo/mhi registers. | |
1200 (arc_save_callee_saves): Emit fp/sp move only when emit_move | |
1201 paramter is true. | |
1202 (arc_conditional_register_usage): Remove TARGET_BIG_ENDIAN from | |
1203 mlo/mhi name selection. | |
1204 (arc_restore_callee_saves): Don't early restore blink when ISR. | |
1205 (arc_expand_prologue): Add mlo/mhi saving. | |
1206 (arc_expand_epilogue): Add mlo/mhi restoring. | |
1207 (gen_mlo): Remove. | |
1208 (gen_mhi): Remove. | |
1209 * config/arc/arc.h (DBX_REGISTER_NUMBER): Correct register | |
1210 numbering when MUL64 option is used. | |
1211 (DWARF2_FRAME_REG_OUT): Define. | |
1212 * config/arc/arc.md (arc600_stall): New pattern. | |
1213 (VUNSPEC_ARC_ARC600_STALL): Define. | |
1214 (mulsi64): Use correct mlo/mhi registers. | |
1215 (mulsi_600): Clean it up. | |
1216 * config/arc/predicates.md (mlo_operand): Remove any dependency on | |
1217 TARGET_BIG_ENDIAN. | |
1218 (mhi_operand): Likewise. | |
1219 | |
1220 2020-01-27 Claudiu Zissulescu <claziss@synopsys.com> | |
1221 Petro Karashchenko <petro.karashchenko@ring.com> | |
1222 | |
1223 * config/arc/arc.c (arc_is_uncached_mem_p): Check struct | |
1224 attributes if needed. | |
1225 (prepare_move_operands): Generate special unspec instruction for | |
1226 direct access. | |
1227 (arc_isuncached_mem_p): Propagate uncached attribute to each | |
1228 structure member. | |
1229 * config/arc/arc.md (VUNSPEC_ARC_LDDI): Define. | |
1230 (VUNSPEC_ARC_STDI): Likewise. | |
1231 (ALLI): New mode iterator. | |
1232 (mALLI): New mode attribute. | |
1233 (lddi): New instruction pattern. | |
1234 (stdi): Likewise. | |
1235 (stdidi_split): Split instruction for architectures which are not | |
1236 supporting ll64 option. | |
1237 (lddidi_split): Likewise. | |
1238 | |
1239 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
1240 | |
1241 PR rtl-optimization/92989 | |
1242 * lra-lives.c (process_bb_lives): Update the live-in set before | |
1243 processing additional clobbers. | |
1244 | |
1245 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
1246 | |
1247 PR rtl-optimization/93170 | |
1248 * cselib.c (cselib_invalidate_regno_val): New function, split out | |
1249 from... | |
1250 (cselib_invalidate_regno): ...here. | |
1251 (cselib_invalidated_by_call_p): New function. | |
1252 (cselib_process_insn): Iterate over all the hard-register entries in | |
1253 REG_VALUES and invalidate any that cross call-clobbered registers. | |
1254 | |
1255 2020-01-27 Richard Sandiford <richard.sandiford@arm.com> | |
1256 | |
1257 * dojump.c (split_comparison): Use HONOR_NANS rather than | |
1258 HONOR_SNANS when splitting LTGT. | |
1259 | |
1260 2020-01-27 Martin Liska <mliska@suse.cz> | |
1261 | |
1262 PR driver/91220 | |
1263 * opts.c (print_filtered_help): Exclude language-specific | |
1264 options from --help=common unless enabled in all FEs. | |
1265 | |
1266 2020-01-27 Martin Liska <mliska@suse.cz> | |
1267 | |
1268 * opts.c (print_help): Exclude params from | |
1269 all except --help=param. | |
1270 | |
1271 2020-01-27 Martin Liska <mliska@suse.cz> | |
1272 | |
1273 PR target/93274 | |
1274 * config/i386/i386-features.c (make_resolver_func): | |
1275 Align the code with ppc64 target implementation. | |
1276 Do not generate a unique name for resolver function. | |
1277 | |
1278 2020-01-27 Richard Biener <rguenther@suse.de> | |
1279 | |
1280 PR tree-optimization/93397 | |
1281 * tree-vect-slp.c (vect_analyze_slp_instance): Delay | |
1282 converted reduction chain SLP graph adjustment. | |
1283 | |
1284 2020-01-26 Marek Polacek <polacek@redhat.com> | |
1285 | |
1286 PR sanitizer/93436 | |
1287 * sanopt.c (sanitize_rewrite_addressable_params): Avoid crash on | |
1288 null DECL_NAME. | |
1289 | |
1290 2020-01-26 Jason Merrill <jason@redhat.com> | |
1291 | |
1292 PR c++/92601 | |
1293 * tree.c (verify_type_variant): Only verify TYPE_NEEDS_CONSTRUCTING | |
1294 of complete types. | |
1295 | |
1296 2020-01-26 Darius Galis <darius.galis@cyberthorstudios.com> | |
1297 | |
1298 * config/rx/rx.md (setmemsi): Added rx_allow_string_insns constraint | |
1299 (rx_setmem): Likewise. | |
1300 | |
1301 2020-01-26 Jakub Jelinek <jakub@redhat.com> | |
1302 | |
1303 PR target/93412 | |
1304 * config/i386/i386.md (*addv<dwi>4_doubleword, *subv<dwi>4_doubleword): | |
1305 Use nonimmediate_operand instead of x86_64_hilo_general_operand and | |
1306 drop <di> from constraint of last operand. | |
1307 | |
1308 PR target/93430 | |
1309 * config/i386/sse.md (*avx_vperm_broadcast_<mode>): Disallow for | |
1310 TARGET_AVX2 and V4DFmode not in the split condition, but in the | |
1311 pattern condition, though allow { 0, 0, 0, 0 } broadcast always. | |
1312 | |
1313 2020-01-25 Feng Xue <fxue@os.amperecomputing.com> | |
1314 | |
1315 PR ipa/93166 | |
1316 * ipa-cp.c (get_info_about_necessary_edges): Remove value | |
1317 check assertion. | |
1318 | |
1319 2020-01-24 Jeff Law <law@redhat.com> | |
1320 | |
1321 PR tree-optimization/92788 | |
1322 * tree-ssa-threadedge.c (thread_across_edge): Check EDGE_COMPLEX | |
1323 not EDGE_ABNORMAL. | |
1324 | |
1325 2020-01-24 Jakub Jelinek <jakub@redhat.com> | |
1326 | |
1327 PR target/93395 | |
1328 * config/i386/sse.md (*avx_vperm_broadcast_v4sf, | |
1329 *avx_vperm_broadcast_<mode>, | |
1330 <sse2_avx_avx512f>_vpermil<mode><mask_name>, | |
1331 *<sse2_avx_avx512f>_vpermilp<mode><mask_name>): | |
1332 Move before avx2_perm<mode>/avx512f_perm<mode>. | |
1333 | |
1334 PR target/93376 | |
1335 * simplify-rtx.c (simplify_const_unary_operation, | |
1336 simplify_const_binary_operation): Punt for mode precision above | |
1337 MAX_BITSIZE_MODE_ANY_INT. | |
1338 | |
1339 2020-01-24 Andrew Pinski <apinski@marvell.com> | |
1340 | |
1341 * config/arm/aarch-cost-tables.h (cortexa57_extra_costs): Change | |
1342 alu.shift_reg to 0. | |
1343 | |
1344 2020-01-24 Jeff Law <law@redhat.com> | |
1345 | |
1346 PR target/13721 | |
1347 * config/h8300/h8300.c (h8300_print_operand): Only call byte_reg | |
1348 for REGs. Call output_operand_lossage to get more reasonable | |
1349 diagnostics. | |
1350 | |
1351 2020-01-24 Andrew Stubbs <ams@codesourcery.com> | |
1352 | |
1353 * config/gcn/gcn-valu.md (vec_cmp<mode>di): Use | |
1354 gcn_fp_compare_operator. | |
1355 (vec_cmpu<mode>di): Use gcn_compare_operator. | |
1356 (vec_cmp<u>v64qidi): Use gcn_compare_operator. | |
1357 (vec_cmp<mode>di_exec): Use gcn_fp_compare_operator. | |
1358 (vec_cmpu<mode>di_exec): Use gcn_compare_operator. | |
1359 (vec_cmp<u>v64qidi_exec): Use gcn_compare_operator. | |
1360 (vec_cmp<mode>di_dup): Use gcn_fp_compare_operator. | |
1361 (vec_cmp<mode>di_dup_exec): Use gcn_fp_compare_operator. | |
1362 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): Use | |
1363 gcn_fp_compare_operator. | |
1364 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): Use | |
1365 gcn_fp_compare_operator. | |
1366 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): Use | |
1367 gcn_fp_compare_operator. | |
1368 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): Use | |
1369 gcn_fp_compare_operator. | |
1370 | |
1371 2020-01-24 Maciej W. Rozycki <macro@wdc.com> | |
1372 | |
1373 * doc/install.texi (Cross-Compiler-Specific Options): Document | |
1374 `--with-toolexeclibdir' option. | |
1375 | |
1376 2020-01-24 Hans-Peter Nilsson <hp@axis.com> | |
1377 | |
1378 * target.def (flags_regnum): Also mention effect on delay slot filling. | |
131 | 1379 * doc/tm.texi: Regenerate. |
1380 | |
145 | 1381 2020-01-23 Jeff Law <law@redhat.com> |
1382 | |
1383 PR translation/90162 | |
1384 * config/h8300/h8300.c (h8300_option_override): Fix diagnostic text. | |
1385 | |
1386 2020-01-23 Mikael Tillenius <mti-1@tillenius.com> | |
1387 | |
1388 PR target/92269 | |
1389 * config/h8300/h8300.h (FUNCTION_PROFILER): Fix emission of | |
1390 profiling label | |
1391 | |
1392 2020-01-23 Jakub Jelinek <jakub@redhat.com> | |
1393 | |
1394 PR rtl-optimization/93402 | |
1395 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust | |
1396 USE insns. | |
1397 | |
1398 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
1399 | |
1400 * config.in: Regenerated. | |
1401 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to 1 | |
1402 for TARGET_LIBC_GNUSTACK. | |
1403 * configure: Regenerated. | |
1404 * configure.ac: Define TARGET_LIBC_GNUSTACK if glibc version is | |
1405 found to be 2.31 or greater. | |
1406 | |
1407 2020-01-23 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
1408 | |
1409 * config/mips/linux.h (NEED_INDICATE_EXEC_STACK): Define to | |
1410 TARGET_SOFT_FLOAT. | |
1411 * config/mips/mips.c (TARGET_ASM_FILE_END): Define to ... | |
1412 (mips_asm_file_end): New function. Delegate to | |
1413 file_end_indicate_exec_stack if NEED_INDICATE_EXEC_STACK is true. | |
1414 * config/mips/mips.h (NEED_INDICATE_EXEC_STACK): Define to 0. | |
1415 | |
1416 2020-01-23 Jakub Jelinek <jakub@redhat.com> | |
1417 | |
1418 PR target/93376 | |
1419 * config/i386/i386-modes.def (POImode): New mode. | |
1420 (MAX_BITSIZE_MODE_ANY_INT): Change from 128 to 160. | |
1421 * config/i386/i386.md (DPWI): New mode attribute. | |
1422 (addv<mode>4, subv<mode>4): Use <DPWI> instead of <DWI>. | |
1423 (QWI): Rename to... | |
1424 (QPWI): ... this. Use POI instead of OI for TImode. | |
1425 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1, | |
1426 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1): Use <QPWI> | |
1427 instead of <QWI>. | |
1428 | |
1429 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
1430 | |
1431 PR target/93341 | |
1432 * config/aarch64/aarch64.md (UNSPEC_SPECULATION_TRACKER_REV): New | |
1433 unspec. | |
1434 (speculation_tracker_rev): New pattern. | |
1435 * config/aarch64/aarch64-speculation.cc (aarch64_do_track_speculation): | |
1436 Use speculation_tracker_rev to track the inverse condition. | |
1437 | |
1438 2020-01-23 Richard Biener <rguenther@suse.de> | |
1439 | |
1440 PR tree-optimization/93381 | |
1441 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Take | |
1442 alias-set of the def as argument and record the first one. | |
1443 (vn_walk_cb_data::first_set): New member. | |
1444 (vn_reference_lookup_3): Pass the alias-set of the current def | |
1445 to push_partial_def. Fix alias-set used in the aggregate copy | |
1446 case. | |
1447 (vn_reference_lookup): Consistently set *last_vuse_ptr. | |
1448 * real.c (clear_significand_below): Fix out-of-bound access. | |
1449 | |
1450 2020-01-23 Jakub Jelinek <jakub@redhat.com> | |
1451 | |
1452 PR target/93346 | |
1453 * config/i386/i386.md (*bmi2_bzhi_<mode>3_2, *bmi2_bzhi_<mode>3_3): | |
1454 New define_insn patterns. | |
1455 | |
1456 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
1457 | |
1458 * doc/sourcebuild.texi (check-function-bodies): Add an | |
1459 optional target/xfail selector. | |
1460 | |
1461 2020-01-23 Richard Sandiford <richard.sandiford@arm.com> | |
1462 | |
1463 PR rtl-optimization/93124 | |
1464 * auto-inc-dec.c (merge_in_block): Don't add auto inc/decs to | |
1465 bare USE and CLOBBER insns. | |
1466 | |
1467 2020-01-22 Andrew Pinski <apinski@marvell.com> | |
1468 | |
1469 * config/arc/arc.c (output_short_suffix): Check insn for nullness. | |
1470 | |
1471 2020-01-22 David Malcolm <dmalcolm@redhat.com> | |
1472 | |
1473 PR analyzer/93307 | |
1474 * gdbinit.in (break-on-saved-diagnostic): Update for move of | |
1475 diagnostic_manager into "ana" namespace. | |
1476 * selftest-run-tests.c (selftest::run_tests): Update for move of | |
1477 selftest::run_analyzer_selftests to | |
1478 ana::selftest::run_analyzer_selftests. | |
1479 | |
1480 2020-01-22 Richard Sandiford <richard.sandiford@arm.com> | |
1481 | |
1482 * cfgexpand.c (union_stack_vars): Update the size. | |
1483 | |
1484 2020-01-22 Richard Biener <rguenther@suse.de> | |
1485 | |
1486 PR tree-optimization/93381 | |
1487 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting | |
1488 throughout, handle all conversions the same. | |
1489 | |
1490 2020-01-22 Jakub Jelinek <jakub@redhat.com> | |
1491 | |
1492 PR target/93335 | |
1493 * config/aarch64/aarch64.c (aarch64_expand_subvti): Only use | |
1494 gen_subdi3_compare1_imm if low_in2 satisfies aarch64_plus_immediate | |
1495 predicate, not whenever it is CONST_INT. Otherwise, force_reg it. | |
1496 Call force_reg on high_in2 unconditionally. | |
1497 | |
1498 2020-01-22 Martin Liska <mliska@suse.cz> | |
1499 | |
1500 PR tree-optimization/92924 | |
1501 * profile.c (compute_value_histograms): Divide | |
1502 all counter values. | |
1503 | |
1504 2020-01-22 Jakub Jelinek <jakub@redhat.com> | |
1505 | |
1506 PR target/91298 | |
1507 * output.h (assemble_name_resolve): Declare. | |
1508 * varasm.c (assemble_name_resolve): New function. | |
1509 (assemble_name): Use it. | |
1510 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. | |
1511 | |
1512 2020-01-22 Joseph Myers <joseph@codesourcery.com> | |
1513 | |
1514 * doc/sourcebuild.texi (Texinfo Manuals, Front End): Refer to | |
1515 update_web_docs_git instead of update_web_docs_svn. | |
1516 | |
1517 2020-01-21 Andrew Pinski <apinski@marvell.com> | |
1518 | |
1519 PR target/9311 | |
1520 * config/aarch64/aarch64.md (tlsgd_small_<mode>): Have operand 0 | |
1521 as PTR mode. Have operand 1 as being modeless, it can be P mode. | |
1522 (*tlsgd_small_<mode>): Likewise. | |
1523 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately) | |
1524 <case SYMBOL_SMALL_TLSGD>: Call gen_tlsgd_small_* with a ptr_mode | |
1525 register. Convert that register back to dest using convert_mode. | |
1526 | |
1527 2020-01-21 Jim Wilson <jimw@sifive.com> | |
1528 | |
1529 * config/riscv/riscv-sr.c (riscv_sr_match_prologue): Use INTVAL | |
1530 instead of XINT. | |
1531 | |
1532 2020-01-21 H.J. Lu <hongjiu.lu@intel.com> | |
1533 Uros Bizjak <ubizjak@gmail.com> | |
1534 | |
1535 PR target/93319 | |
1536 * config/i386/i386.c (ix86_tls_module_base): Replace Pmode | |
1537 with ptr_mode. | |
1538 (legitimize_tls_address): Do GNU2 TLS address computation in | |
1539 ptr_mode and zero-extend result to Pmode. | |
1540 * config/i386/i386.md (@tls_dynamic_gnu2_64_<mode>): Replace | |
1541 :P with :PTR and Pmode with ptr_mode. | |
1542 (*tls_dynamic_gnu2_lea_64_<mode>): Likewise. | |
1543 (*tls_dynamic_gnu2_call_64_<mode>): Likewise. | |
1544 (*tls_dynamic_gnu2_combine_64_<mode>): Likewise. | |
1545 | |
1546 2020-01-21 Jakub Jelinek <jakub@redhat.com> | |
1547 | |
1548 PR target/93333 | |
1549 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify | |
1550 the last two operands are CONST_INT_P before using them as such. | |
1551 | |
1552 2020-01-21 Richard Sandiford <richard.sandiford@arm.com> | |
1553 | |
1554 * config/aarch64/aarch64-sve-builtins.def: Use get_typenode_from_name | |
1555 to get the integer element types. | |
1556 | |
1557 2020-01-21 Richard Sandiford <richard.sandiford@arm.com> | |
1558 | |
1559 * config/aarch64/aarch64-sve-builtins.h | |
1560 (function_expander::convert_to_pmode): Declare. | |
1561 * config/aarch64/aarch64-sve-builtins.cc | |
1562 (function_expander::convert_to_pmode): New function. | |
1563 (function_expander::get_contiguous_base): Use it. | |
1564 (function_expander::prepare_gather_address_operands): Likewise. | |
1565 * config/aarch64/aarch64-sve-builtins-sve2.cc | |
1566 (svwhilerw_svwhilewr_impl::expand): Likewise. | |
1567 | |
1568 2020-01-21 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
1569 | |
1570 PR target/92424 | |
1571 * config/aarch64/aarch64.c (aarch64_declare_function_name): Set | |
1572 cfun->machine->label_is_assembled. | |
1573 (aarch64_print_patchable_function_entry): New. | |
1574 (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define. | |
1575 * config/aarch64/aarch64.h (struct machine_function): New field, | |
1576 label_is_assembled. | |
1577 | |
1578 2020-01-21 David Malcolm <dmalcolm@redhat.com> | |
1579 | |
1580 PR ipa/93315 | |
1581 * ipa-profile.c (ipa_profile): Delete call_sums and set it to | |
1582 NULL on exit. | |
1583 | |
1584 2020-01-18 Jan Hubicka <hubicka@ucw.cz> | |
1585 | |
1586 PR lto/93318 | |
1587 * cgraph.c (cgraph_edge::resolve_speculation, | |
1588 cgraph_edge::redirect_call_stmt_to_callee): Fix update of | |
1589 call_stmt_site_hash. | |
1590 | |
1591 2020-01-21 Martin Liska <mliska@suse.cz> | |
1592 | |
1593 * config/rs6000/rs6000.c (common_mode_defined): Remove | |
1594 unused variable. | |
1595 | |
1596 2020-01-21 Richard Biener <rguenther@suse.de> | |
1597 | |
1598 PR tree-optimization/92328 | |
1599 * tree-ssa-sccvn.c (vn_reference_lookup_3): Preserve | |
1600 type when value-numbering same-sized store by inserting a | |
1601 VIEW_CONVERT_EXPR. | |
1602 (eliminate_dom_walker::eliminate_stmt): When eliminating | |
1603 a redundant store handle bit-reinterpretation of the same value. | |
1604 | |
1605 2020-01-21 Andrew Pinski <apinski@marvel.com> | |
1606 | |
1607 PR tree-opt/93321 | |
1608 * tree-into-ssa.c (prepare_block_for_update_1): Split out | |
1609 from ... | |
1610 (prepare_block_for_update): This. Use a worklist instead of | |
1611 recursing. | |
1612 | |
1613 2020-01-21 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
1614 | |
1615 * gcc/config/arm/arm.c (clear_operation_p): | |
1616 Initialise last_regno, skip first iteration | |
1617 based on the first_set value and use ints instead | |
1618 of the unnecessary HOST_WIDE_INTs. | |
1619 | |
1620 2020-01-21 Jakub Jelinek <jakub@redhat.com> | |
1621 | |
1622 PR target/93073 | |
1623 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for | |
1624 compare_mode other than SFmode or DFmode. | |
1625 | |
1626 2020-01-21 Kito Cheng <kito.cheng@sifive.com> | |
1627 | |
1628 PR target/93304 | |
1629 * config/riscv/riscv-protos.h (riscv_hard_regno_rename_ok): New. | |
1630 * config/riscv/riscv.c (riscv_hard_regno_rename_ok): New. | |
1631 * config/riscv/riscv.h (HARD_REGNO_RENAME_OK): Defined. | |
1632 | |
1633 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com> | |
1634 | |
1635 * config/aarch64/aarch64.c (neoversen1_tunings): Set jump_align to 4. | |
1636 | |
1637 2020-01-20 Andrew Pinski <apinski@marvell.com> | |
1638 | |
1639 PR middle-end/93242 | |
1640 * targhooks.c (default_print_patchable_function_entry): Use | |
1641 output_asm_insn to emit the nop instruction. | |
1642 | |
1643 2020-01-20 Fangrui Song <maskray@google.com> | |
1644 | |
1645 PR middle-end/93194 | |
1646 * targhooks.c (default_print_patchable_function_entry): Align to | |
1647 POINTER_SIZE. | |
1648 | |
1649 2020-01-20 H.J. Lu <hongjiu.lu@intel.com> | |
1650 | |
1651 PR target/93319 | |
1652 * config/i386/i386.c (legitimize_tls_address): Pass Pmode to | |
1653 gen_tls_dynamic_gnu2_64. Compute GNU2 TLS address in ptr_mode. | |
1654 * config/i386/i386.md (tls_dynamic_gnu2_64): Renamed to ... | |
1655 (@tls_dynamic_gnu2_64_<mode>): This. Replace DI with P. | |
1656 (*tls_dynamic_gnu2_lea_64): Renamed to ... | |
1657 (*tls_dynamic_gnu2_lea_64_<mode>): This. Replace DI with P. | |
1658 Remove the {q} suffix from lea. | |
1659 (*tls_dynamic_gnu2_call_64): Renamed to ... | |
1660 (*tls_dynamic_gnu2_call_64_<mode>): This. Replace DI with P. | |
1661 (*tls_dynamic_gnu2_combine_64): Renamed to ... | |
1662 (*tls_dynamic_gnu2_combine_64_<mode>): This. Replace DI with P. | |
1663 Pass Pmode to gen_tls_dynamic_gnu2_64. | |
1664 | |
1665 2020-01-20 Wilco Dijkstra <wdijkstr@arm.com> | |
1666 | |
1667 * config/aarch64/aarch64.h (SLOW_BYTE_ACCESS): Set to 1. | |
1668 | |
1669 2020-01-20 Richard Sandiford <richard.sandiford@arm.com> | |
1670 | |
1671 * config/aarch64/aarch64-sve-builtins-base.cc | |
1672 (svld1ro_impl::memory_vector_mode): Remove parameter name. | |
1673 | |
1674 2020-01-20 Richard Biener <rguenther@suse.de> | |
1675 | |
1676 PR debug/92763 | |
1677 * dwarf2out.c (prune_unused_types): Unconditionally mark | |
1678 called function DIEs. | |
1679 | |
1680 2020-01-20 Martin Liska <mliska@suse.cz> | |
1681 | |
1682 PR tree-optimization/93199 | |
1683 * tree-eh.c (struct leh_state): Add | |
1684 new field outer_non_cleanup. | |
1685 (cleanup_is_dead_in): Pass leh_state instead | |
1686 of eh_region. Add a checking that state->outer_non_cleanup | |
1687 points to outer non-clean up region. | |
1688 (lower_try_finally): Record outer_non_cleanup | |
1689 for this_state. | |
1690 (lower_catch): Likewise. | |
1691 (lower_eh_filter): Likewise. | |
1692 (lower_eh_must_not_throw): Likewise. | |
1693 (lower_cleanup): Likewise. | |
1694 | |
1695 2020-01-20 Richard Biener <rguenther@suse.de> | |
1696 | |
1697 PR tree-optimization/93094 | |
1698 * tree-vectorizer.h (vect_loop_versioning): Adjust. | |
131 | 1699 (vect_transform_loop): Likewise. |
145 | 1700 * tree-vectorizer.c (try_vectorize_loop_1): Pass down |
1701 loop_vectorized_call to vect_transform_loop. | |
1702 * tree-vect-loop.c (vect_transform_loop): Pass down | |
1703 loop_vectorized_call to vect_loop_versioning. | |
1704 * tree-vect-loop-manip.c (vect_loop_versioning): Use | |
1705 the earlier discovered loop_vectorized_call. | |
1706 | |
1707 2020-01-19 Eric S. Raymond <esr@thyrsus.com> | |
1708 | |
1709 * doc/contribute.texi: Update for SVN -> Git transition. | |
1710 * doc/install.texi: Likewise. | |
1711 | |
1712 2020-01-18 Jan Hubicka <hubicka@ucw.cz> | |
1713 | |
1714 PR lto/93318 | |
1715 * cgraph.c (cgraph_edge::make_speculative): Increase number of | |
1716 speculative targets. | |
1717 (verify_speculative_call): New function | |
1718 (cgraph_node::verify_node): Use it. | |
1719 * ipa-profile.c (ipa_profile): Fix formating; do not set number of | |
1720 speculations. | |
1721 | |
1722 2020-01-18 Jan Hubicka <hubicka@ucw.cz> | |
1723 | |
1724 PR lto/93318 | |
1725 * cgraph.c (cgraph_edge::resolve_speculation): Fix foramting. | |
1726 (cgraph_edge::make_direct): Remove all indirect targets. | |
1727 (cgraph_edge::redirect_call_stmt_to_callee): Use make_direct.. | |
1728 (cgraph_node::verify_node): Verify that only one call_stmt or | |
1729 lto_stmt_uid is set. | |
1730 * cgraphclones.c (cgraph_edge::clone): Set only one call_stmt or | |
1731 lto_stmt_uid. | |
1732 * lto-cgraph.c (lto_output_edge): Simplify streaming of stmt. | |
1733 (lto_output_ref): Simplify streaming of stmt. | |
1734 * lto-streamer-in.c (fixup_call_stmt_edges_1): Clear lto_stmt_uid. | |
1735 | |
1736 2020-01-18 Tamar Christina <tamar.christina@arm.com> | |
1737 | |
1738 * config/aarch64/aarch64-sve-builtins-base.cc (memory_vector_mode): | |
1739 Mark parameter unused. | |
1740 | |
1741 2020-01-18 Hans-Peter Nilsson <hp@axis.com> | |
1742 | |
1743 * config.gcc <obsolete targets>: Add crisv32-*-* and cris-*-linux* | |
1744 | |
1745 2019-01-18 Gerald Pfeifer <gerald@pfeifer.com> | |
1746 | |
1747 * varpool.c (ctor_useable_for_folding_p): Fix grammar. | |
1748 | |
1749 2020-01-18 Iain Sandoe <iain@sandoe.co.uk> | |
1750 | |
1751 * Makefile.in: Add coroutine-passes.o. | |
1752 * builtin-types.def (BT_CONST_SIZE): New. | |
1753 (BT_FN_BOOL_PTR): New. | |
1754 (BT_FN_PTR_PTR_CONST_SIZE_BOOL): New. | |
1755 * builtins.def (DEF_COROUTINE_BUILTIN): New. | |
1756 * coroutine-builtins.def: New file. | |
1757 * coroutine-passes.cc: New file. | |
1758 * function.h (struct GTY function): Add a bit to indicate that the | |
1759 function is a coroutine component. | |
1760 * internal-fn.c (expand_CO_FRAME): New. | |
1761 (expand_CO_YIELD): New. | |
1762 (expand_CO_SUSPN): New. | |
1763 (expand_CO_ACTOR): New. | |
1764 * internal-fn.def (CO_ACTOR): New. | |
1765 (CO_YIELD): New. | |
1766 (CO_SUSPN): New. | |
1767 (CO_FRAME): New. | |
1768 * passes.def: Add pass_coroutine_lower_builtins, | |
1769 pass_coroutine_early_expand_ifns. | |
1770 * tree-pass.h (make_pass_coroutine_lower_builtins): New. | |
1771 (make_pass_coroutine_early_expand_ifns): New. | |
1772 * doc/invoke.texi: Document the fcoroutines command line | |
1773 switch. | |
1774 | |
1775 2020-01-18 Jakub Jelinek <jakub@redhat.com> | |
1776 | |
1777 * config/arm/vfp.md (*clear_vfp_multiple): Remove unused variable. | |
1778 | |
1779 PR target/93312 | |
1780 * config/arm/arm.c (clear_operation_p): Don't use REGNO until | |
1781 after checking the argument is a REG. Don't use REGNO (reg) | |
1782 again to set last_regno, reuse regno variable instead. | |
1783 | |
1784 2020-01-17 David Malcolm <dmalcolm@redhat.com> | |
1785 | |
1786 * doc/analyzer.texi (Limitations): Add note about NaN. | |
1787 | |
1788 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
1789 Sudakshina Das <sudi.das@arm.com> | |
1790 | |
1791 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for both reg | |
1792 and valid immediate. | |
1793 (ashrdi3): Generate thumb2_asrl for both reg and valid immediate. | |
1794 (lshrdi3): Generate thumb2_lsrl for valid immediates. | |
1795 * config/arm/constraints.md (Pg): New. | |
1796 * config/arm/predicates.md (long_shift_imm): New. | |
1797 (arm_reg_or_long_shift_imm): Likewise. | |
1798 * config/arm/thumb2.md (thumb2_asrl): New immediate alternative. | |
1799 (thumb2_lsll): Likewise. | |
1800 (thumb2_lsrl): New. | |
1801 | |
1802 2020-01-17 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
1803 Sudakshina Das <sudi.das@arm.com> | |
1804 | |
1805 * config/arm/arm.md (ashldi3): Generate thumb2_lsll for TARGET_HAVE_MVE. | |
1806 (ashrdi3): Generate thumb2_asrl for TARGET_HAVE_MVE. | |
1807 * config/arm/arm.c (arm_hard_regno_mode_ok): Allocate even odd | |
1808 register pairs for doubleword quantities for ARMv8.1M-Mainline. | |
1809 * config/arm/thumb2.md (thumb2_asrl): New. | |
1810 (thumb2_lsll): Likewise. | |
1811 | |
1812 2020-01-17 Jakub Jelinek <jakub@redhat.com> | |
1813 | |
1814 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): Remove | |
1815 unused variable. | |
1816 | |
1817 2020-01-17 Alexander Monakov <amonakov@ispras.ru> | |
1818 | |
1819 * gdbinit.in (help-gcc-hooks): New command. | |
1820 (pp, pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, ptc, pdn, ptn, pdd, prc, | |
1821 pi, pbm, pel, trt): Take $arg0 instead of $ if supplied. Update | |
1822 documentation. | |
1823 | |
1824 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> | |
1825 | |
1826 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): Use the | |
1827 correct target macro. | |
1828 | |
1829 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> | |
131 | 1830 |
1831 * config/aarch64/aarch64-protos.h | |
145 | 1832 (aarch64_sve_ld1ro_operand_p): New. |
1833 * config/aarch64/aarch64-sve-builtins-base.cc | |
1834 (class load_replicate): New. | |
1835 (class svld1ro_impl): New. | |
1836 (class svld1rq_impl): Change to inherit from load_replicate. | |
1837 (svld1ro): New sve intrinsic function base. | |
1838 * config/aarch64/aarch64-sve-builtins-base.def (svld1ro): | |
1839 New DEF_SVE_FUNCTION. | |
1840 * config/aarch64/aarch64-sve-builtins-base.h | |
1841 (svld1ro): New decl. | |
1842 * config/aarch64/aarch64-sve-builtins.cc | |
1843 (function_expander::add_mem_operand): Modify assert to allow | |
1844 OImode. | |
1845 * config/aarch64/aarch64-sve.md (@aarch64_sve_ld1ro<mode>): New | |
1846 pattern. | |
1847 * config/aarch64/aarch64.c | |
1848 (aarch64_sve_ld1rq_operand_p): Implement in terms of ... | |
1849 (aarch64_sve_ld1rq_ld1ro_operand_p): This. | |
1850 (aarch64_sve_ld1ro_operand_p): New. | |
1851 * config/aarch64/aarch64.md (UNSPEC_LD1RO): New unspec. | |
1852 * config/aarch64/constraints.md (UOb,UOh,UOw,UOd): New. | |
1853 * config/aarch64/predicates.md | |
1854 (aarch64_sve_ld1ro_operand_{b,h,w,d}): New. | |
1855 | |
1856 2020-01-17 Matthew Malcomson <matthew.malcomson@arm.com> | |
1857 | |
1858 * config/aarch64/aarch64-c.c (_ARM_FEATURE_MATMUL_FLOAT64): | |
1859 Introduce this ACLE specified predefined macro. | |
1860 * config/aarch64/aarch64-option-extensions.def (f64mm): New. | |
1861 (fp): Disabling this disables f64mm. | |
1862 (simd): Disabling this disables f64mm. | |
1863 (fp16): Disabling this disables f64mm. | |
1864 (sve): Disabling this disables f64mm. | |
1865 * config/aarch64/aarch64.h (AARCH64_FL_F64MM): New. | |
1866 (AARCH64_ISA_F64MM): New. | |
1867 (TARGET_F64MM): New. | |
1868 * doc/invoke.texi (f64mm): Document new option. | |
1869 | |
1870 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com> | |
1871 | |
1872 * config/aarch64/aarch64.c (generic_tunings): Add branch fusion. | |
1873 (neoversen1_tunings): Likewise. | |
1874 | |
1875 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com> | |
1876 | |
1877 PR target/92692 | |
1878 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) | |
1879 Add assert to ensure prolog has been emitted. | |
1880 (aarch64_split_atomic_op): Likewise. | |
1881 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>) | |
1882 Use epilogue_completed rather than reload_completed. | |
1883 (aarch64_atomic_exchange<mode>): Likewise. | |
1884 (aarch64_atomic_<atomic_optab><mode>): Likewise. | |
1885 (atomic_nand<mode>): Likewise. | |
1886 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise. | |
1887 (atomic_fetch_nand<mode>): Likewise. | |
1888 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise. | |
1889 (atomic_nand_fetch<mode>): Likewise. | |
1890 | |
1891 2020-01-17 Richard Sandiford <richard.sandiford@arm.com> | |
1892 | |
1893 PR target/93133 | |
1894 * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Return false | |
1895 for FP modes. | |
1896 (REVERSE_CONDITION): Delete. | |
1897 * config/aarch64/iterators.md (CC_ONLY): New mode iterator. | |
1898 (CCFP_CCFPE): Likewise. | |
1899 (e): New mode attribute. | |
1900 * config/aarch64/aarch64.md (ccmp<GPI:mode>): Rename to... | |
1901 (@ccmp<CC_ONLY:mode><GPI:mode>): ...this, using CC_ONLY instead of CC. | |
1902 (fccmp<GPF:mode>, fccmpe<GPF:mode>): Merge into... | |
1903 (@ccmp<CCFP_CCFPE:mode><GPF:mode>): ...this combined pattern. | |
1904 (@ccmp<CC_ONLY:mode><GPI:mode>_rev): New pattern. | |
1905 (@ccmp<CCFP_CCFPE:mode><GPF:mode>_rev): Likewise. | |
1906 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Update | |
1907 name of generator from gen_ccmpdi to gen_ccmpccdi. | |
1908 (aarch64_gen_ccmp_next): Use code_for_ccmp. If we want to reverse | |
1909 the previous comparison but aren't able to, use the new ccmp_rev | |
1910 patterns instead. | |
1911 | |
1912 2020-01-17 Richard Sandiford <richard.sandiford@arm.com> | |
1913 | |
1914 * gimplify.c (gimplify_return_expr): Use poly_int_tree_p rather | |
1915 than testing directly for INTEGER_CST. | |
1916 (gimplify_target_expr, gimplify_omp_depend): Likewise. | |
1917 | |
1918 2020-01-17 Jakub Jelinek <jakub@redhat.com> | |
1919 | |
1920 PR tree-optimization/93292 | |
1921 * tree-vect-stmts.c (vectorizable_comparison): Punt also if | |
1922 get_vectype_for_scalar_type returns NULL. | |
1923 | |
1924 2020-01-16 Jan Hubicka <hubicka@ucw.cz> | |
1925 | |
1926 * params.opt (-param=max-predicted-iterations): Increase range from 0. | |
1927 * predict.c (estimate_loops): Add 1 to param_max_predicted_iterations. | |
1928 | |
1929 2020-01-16 Jan Hubicka <hubicka@ucw.cz> | |
1930 | |
1931 * ipa-fnsummary.c (estimate_calls_size_and_time): Fix formating of | |
1932 dump. | |
1933 * params.opt: (max-predicted-iterations): Set bounds. | |
1934 * predict.c (real_almost_one, real_br_prob_base, | |
1935 real_inv_br_prob_base, real_one_half, real_bb_freq_max): Remove. | |
1936 (propagate_freq): Add max_cyclic_prob parameter; cap cyclic | |
1937 probabilities; do not truncate to reg_br_prob_bases. | |
1938 (estimate_loops_at_level): Pass max_cyclic_prob. | |
1939 (estimate_loops): Compute max_cyclic_prob. | |
1940 (estimate_bb_frequencies): Do not initialize real_*; update calculation | |
1941 of back edge prob. | |
1942 * profile-count.c (profile_probability::to_sreal): New. | |
1943 * profile-count.h (class sreal): Move up in file. | |
1944 (profile_probability::to_sreal): Declare. | |
1945 | |
1946 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
1947 | |
1948 * config/arm/arm.c | |
1949 (arm_invalid_conversion): New function for target hook. | |
1950 (arm_invalid_unary_op): New function for target hook. | |
1951 (arm_invalid_binary_op): New function for target hook. | |
1952 | |
1953 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
1954 | |
1955 * config.gcc: Add arm_bf16.h. | |
1956 * config/arm/arm-builtins.c (arm_mangle_builtin_type): Fix comment. | |
1957 (arm_simd_builtin_std_type): Add BFmode. | |
1958 (arm_init_simd_builtin_types): Define element types for vector types. | |
1959 (arm_init_bf16_types): New function. | |
1960 (arm_init_builtins): Add arm_init_bf16_types function call. | |
1961 * config/arm/arm-modes.def: Add BFmode and V4BF, V8BF vector modes. | |
1962 * config/arm/arm-simd-builtin-types.def: Add V4BF, V8BF. | |
1963 * config/arm/arm.c (aapcs_vfp_sub_candidate): Add BFmode. | |
1964 (arm_hard_regno_mode_ok): Add BFmode and tidy up statements. | |
1965 (arm_vector_mode_supported_p): Add V4BF, V8BF. | |
1966 (arm_mangle_type): Add __bf16. | |
1967 * config/arm/arm.h: Add V4BF, V8BF to VALID_NEON_DREG_MODE, | |
1968 VALID_NEON_QREG_MODE respectively. Add export arm_bf16_type_node, | |
1969 arm_bf16_ptr_type_node. | |
1970 * config/arm/arm.md: Add BFmode to movhf expand, mov pattern and | |
1971 define_split between ARM registers. | |
1972 * config/arm/arm_bf16.h: New file. | |
1973 * config/arm/arm_neon.h: Add arm_bf16.h and Bfloat vector types. | |
1974 * config/arm/iterators.md: (ANY64_BF, VDXMOV, VHFBF, HFBF, fporbf): New. | |
1975 (VQXMOV): Add V8BF. | |
1976 * config/arm/neon.md: Add BF vector types to movhf NEON move patterns. | |
1977 * config/arm/vfp.md: Add BFmode to movhf patterns. | |
1978 | |
1979 2020-01-16 Mihail Ionescu <mihail.ionescu@arm.com> | |
1980 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
1981 | |
1982 * config/arm/arm-cpus.in (mve, mve_float): New features. | |
1983 (dsp, mve, mve.fp): New options. | |
1984 * config/arm/arm.h (TARGET_HAVE_MVE, TARGET_HAVE_MVE_FLOAT): Define. | |
1985 * config/arm/t-rmprofile: Map v8.1-M multilibs to v8-M. | |
1986 * doc/invoke.texi: Document the armv8.1-m mve and dps options. | |
1987 | |
1988 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
1989 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
1990 | |
1991 * config/arm/arm-cpus.in (ARMv8_1m_main): Redefine as an extension to | |
1992 Armv8-M Mainline. | |
1993 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Remove | |
1994 error for using -mcmse when targeting Armv8.1-M Mainline. | |
1995 | |
1996 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
1997 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
1998 | |
1999 * config/arm/arm.md (nonsecure_call_internal): Do not force memory | |
2000 address in r4 when targeting Armv8.1-M Mainline. | |
2001 (nonsecure_call_value_internal): Likewise. | |
2002 * config/arm/thumb2.md (nonsecure_call_reg_thumb2): Make memory address | |
2003 a register match_operand again. Emit BLXNS when targeting | |
2004 Armv8.1-M Mainline. | |
2005 (nonsecure_call_value_reg_thumb2): Likewise. | |
2006 | |
2007 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2008 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2009 | |
2010 * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): Declare early. | |
2011 (cmse_nonsecure_call_inline_register_clear): Define new lazy_fpclear | |
2012 variable as true when floating-point ABI is not hard. Replace | |
2013 check against TARGET_HARD_FLOAT_ABI by checks against lazy_fpclear. | |
2014 Generate VLSTM and VLLDM instruction respectively before and | |
2015 after a function call to cmse_nonsecure_call function. | |
2016 * config/arm/unspecs.md (VUNSPEC_VLSTM): Define unspec. | |
2017 (VUNSPEC_VLLDM): Likewise. | |
2018 * config/arm/vfp.md (lazy_store_multiple_insn): New define_insn. | |
2019 (lazy_load_multiple_insn): Likewise. | |
2020 | |
2021 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2022 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2023 | |
2024 * config/arm/arm.c (vfp_emit_fstmd): Declare early. | |
2025 (arm_emit_vfp_multi_reg_pop): Likewise. | |
2026 (cmse_nonsecure_call_inline_register_clear): Abstract number of VFP | |
2027 registers to clear in max_fp_regno. Emit VPUSH and VPOP to save and | |
2028 restore callee-saved VFP registers. | |
2029 | |
2030 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2031 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2032 | |
2033 * config/arm/arm.c (arm_emit_multi_reg_pop): Declare early. | |
2034 (cmse_nonsecure_call_clear_caller_saved): Rename into ... | |
2035 (cmse_nonsecure_call_inline_register_clear): This. Save and clear | |
2036 callee-saved GPRs as well as clear ip register before doing a nonsecure | |
2037 call then restore callee-saved GPRs after it when targeting | |
2038 Armv8.1-M Mainline. | |
2039 (arm_reorg): Adapt to function rename. | |
2040 | |
2041 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2042 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2043 | |
2044 * config/arm/arm-protos.h (clear_operation_p): Adapt prototype. | |
2045 * config/arm/arm.c (clear_operation_p): Extend to be able to check a | |
2046 clear_vfp_multiple pattern based on a new vfp parameter. | |
2047 (cmse_clear_registers): Generate VSCCLRM to clear VFP registers when | |
2048 targeting Armv8.1-M Mainline. | |
2049 (cmse_nonsecure_entry_clear_before_return): Clear VFP registers | |
2050 unconditionally when targeting Armv8.1-M Mainline architecture. Check | |
2051 whether VFP registers are available before looking call_used_regs for a | |
2052 VFP register. | |
2053 * config/arm/predicates.md (clear_multiple_operation): Adapt to change | |
2054 of prototype of clear_operation_p. | |
2055 (clear_vfp_multiple_operation): New predicate. | |
2056 * config/arm/unspecs.md (VUNSPEC_VSCCLRM_VPR): New volatile unspec. | |
2057 * config/arm/vfp.md (clear_vfp_multiple): New define_insn. | |
2058 | |
2059 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2060 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2061 | |
2062 * config/arm/arm-protos.h (clear_operation_p): Declare. | |
2063 * config/arm/arm.c (clear_operation_p): New function. | |
2064 (cmse_clear_registers): Generate clear_multiple instruction pattern if | |
2065 targeting Armv8.1-M Mainline or successor. | |
2066 (output_return_instruction): Only output APSR register clearing if | |
2067 Armv8.1-M Mainline instructions not available. | |
2068 (thumb_exit): Likewise. | |
2069 * config/arm/predicates.md (clear_multiple_operation): New predicate. | |
2070 * config/arm/thumb2.md (clear_apsr): New define_insn. | |
2071 (clear_multiple): Likewise. | |
2072 * config/arm/unspecs.md (VUNSPEC_CLRM_APSR): New volatile unspec. | |
2073 | |
2074 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2075 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2076 | |
2077 * config/arm/arm.c (fp_sysreg_names): Declare and define. | |
2078 (use_return_insn): Also return false for Armv8.1-M Mainline. | |
2079 (output_return_instruction): Skip FPSCR clearing if Armv8.1-M | |
2080 Mainline instructions are available. | |
2081 (arm_compute_frame_layout): Allocate space in frame for FPCXTNS | |
2082 when targeting Armv8.1-M Mainline Security Extensions. | |
2083 (arm_expand_prologue): Save FPCXTNS if this is an Armv8.1-M | |
2084 Mainline entry function. | |
2085 (cmse_nonsecure_entry_clear_before_return): Clear IP and r4 if | |
2086 targeting Armv8.1-M Mainline or successor. | |
2087 (arm_expand_epilogue): Fix indentation of caller-saved register | |
2088 clearing. Restore FPCXTNS if this is an Armv8.1-M Mainline | |
2089 entry function. | |
2090 * config/arm/arm.h (TARGET_HAVE_FP_CMSE): New macro. | |
2091 (FP_SYSREGS): Likewise. | |
2092 (enum vfp_sysregs_encoding): Define enum. | |
2093 (fp_sysreg_names): Declare. | |
2094 * config/arm/unspecs.md (VUNSPEC_VSTR_VLDR): New volatile unspec. | |
2095 * config/arm/vfp.md (push_fpsysreg_insn): New define_insn. | |
2096 (pop_fpsysreg_insn): Likewise. | |
2097 | |
2098 2020-01-16 Mihail-Calin Ionescu <mihail.ionescu@arm.com> | |
2099 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
2100 | |
2101 * config/arm/arm-cpus.in (armv8_1m_main): New feature. | |
2102 (ARMv4, ARMv4t, ARMv5t, ARMv5te, ARMv5tej, ARMv6, ARMv6j, ARMv6k, | |
2103 ARMv6z, ARMv6kz, ARMv6zk, ARMv6t2, ARMv6m, ARMv7, ARMv7a, ARMv7ve, | |
2104 ARMv7r, ARMv7m, ARMv7em, ARMv8a, ARMv8_1a, ARMv8_2a, ARMv8_3a, | |
2105 ARMv8_4a, ARMv8_5a, ARMv8m_base, ARMv8m_main, ARMv8r): Reindent. | |
2106 (ARMv8_1m_main): New feature group. | |
2107 (armv8.1-m.main): New architecture. | |
2108 * config/arm/arm-tables.opt: Regenerate. | |
2109 * config/arm/arm.c (arm_arch8_1m_main): Define and default initialize. | |
2110 (arm_option_reconfigure_globals): Initialize arm_arch8_1m_main. | |
2111 (arm_options_perform_arch_sanity_checks): Error out when targeting | |
2112 Armv8.1-M Mainline Security Extensions. | |
2113 * config/arm/arm.h (arm_arch8_1m_main): Declare. | |
2114 | |
2115 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
2116 | |
2117 * config/aarch64/aarch64-simd-builtins.def (aarch64_bfdot, | |
2118 aarch64_bfdot_lane, aarch64_bfdot_laneq): New. | |
2119 * config/aarch64/aarch64-simd.md (aarch64_bfdot, aarch64_bfdot_lane, | |
2120 aarch64_bfdot_laneq): New. | |
2121 * config/aarch64/arm_bf16.h (vbfdot_f32, vbfdotq_f32, | |
2122 vbfdot_lane_f32, vbfdotq_lane_f32, vbfdot_laneq_f32, | |
2123 vbfdotq_laneq_f32): New. | |
2124 * config/aarch64/iterators.md (UNSPEC_BFDOT, Vbfdottype, | |
2125 VBFMLA_W, VBF): New. | |
2126 (isquadop): Add V4BF, V8BF. | |
2127 | |
2128 2020-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
2129 | |
2130 * config/aarch64/aarch64-builtins.c: (enum aarch64_type_qualifiers): | |
2131 New qualifier_lane_quadtup_index, TYPES_TERNOP_SSUS, | |
2132 TYPES_QUADOPSSUS_LANE_QUADTUP, TYPES_QUADOPSSSU_LANE_QUADTUP. | |
2133 (aarch64_simd_expand_args): Add case SIMD_ARG_LANE_QUADTUP_INDEX. | |
2134 (aarch64_simd_expand_builtin): Add qualifier_lane_quadtup_index. | |
2135 * config/aarch64/aarch64-simd-builtins.def (usdot, usdot_lane, | |
2136 usdot_laneq, sudot_lane,sudot_laneq): New. | |
2137 * config/aarch64/aarch64-simd.md (aarch64_usdot): New. | |
2138 (aarch64_<sur>dot_lane): New. | |
2139 * config/aarch64/arm_neon.h (vusdot_s32): New. | |
2140 (vusdotq_s32): New. | |
2141 (vusdot_lane_s32): New. | |
2142 (vsudot_lane_s32): New. | |
2143 * config/aarch64/iterators.md (DOTPROD_I8MM): New iterator. | |
2144 (UNSPEC_USDOT, UNSPEC_SUDOT): New unspecs. | |
2145 | |
2146 2020-01-16 Martin Liska <mliska@suse.cz> | |
2147 | |
2148 * value-prof.c (dump_histogram_value): Fix | |
2149 obvious spacing issue. | |
2150 | |
2151 2020-01-16 Andrew Pinski <apinski@marvell.com> | |
2152 | |
2153 * tree-ssa-sccvn.c(vn_reference_lookup_3): Check lhs for | |
2154 !storage_order_barrier_p. | |
2155 | |
2156 2020-01-16 Andrew Pinski <apinski@marvell.com> | |
2157 | |
2158 * sched-int.h (_dep): Add unused bit-field field for the padding. | |
2159 * sched-deps.c (init_dep_1): Init unused field. | |
2160 | |
2161 2020-01-16 Andrew Pinski <apinski@marvell.com> | |
2162 | |
2163 * optabs.h (create_expand_operand): Initialize target field also. | |
2164 | |
2165 2020-01-16 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2166 | |
2167 PR tree-optimization/92429 | |
2168 * tree-ssa-loop-niter.h (simplify_replace_tree): Add parameter. | |
2169 * tree-ssa-loop-niter.c (simplify_replace_tree): Add parameter to | |
2170 control folding. | |
2171 * tree-vect-loop.c (update_epilogue_vinfo): Do not fold when replacing | |
2172 tree. | |
2173 | |
2174 2020-01-16 Richard Sandiford <richard.sandiford@arm.com> | |
2175 | |
2176 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move): Apply | |
2177 aarch64_sve_int_mode to each mode. | |
2178 | |
2179 2020-01-15 David Malcolm <dmalcolm@redhat.com> | |
2180 | |
2181 * doc/analyzer.texi (Overview): Add note about | |
2182 -fdump-ipa-analyzer. | |
2183 | |
2184 2020-01-15 Wilco Dijkstra <wdijkstr@arm.com> | |
2185 | |
2186 PR tree-optimization/93231 | |
2187 * tree-ssa-forwprop.c (optimize_count_trailing_zeroes): Check | |
2188 input_type is unsigned. Use tree_to_shwi for shift constant. | |
2189 Check CST_STRING element size is CHAR_TYPE_SIZE bits. | |
2190 (simplify_count_trailing_zeroes): Add test to handle known non-zero | |
2191 inputs more efficiently. | |
2192 | |
2193 2020-01-15 Uroš Bizjak <ubizjak@gmail.com> | |
2194 | |
2195 * config/i386/i386.md (*movsf_internal): Do not require | |
2196 SSE2 ISA for alternatives 14 and 15. | |
2197 | |
2198 2020-01-15 Richard Biener <rguenther@suse.de> | |
2199 | |
2200 PR middle-end/93273 | |
2201 * tree-eh.c (sink_clobbers): If we already visited the destination | |
2202 block do not defer insertion. | |
2203 (pass_lower_eh_dispatch::execute): Maintain BB_VISITED for | |
2204 the purpose of defered insertion. | |
2205 | |
2206 2020-01-15 Jakub Jelinek <jakub@redhat.com> | |
2207 | |
2208 * BASE-VER: Bump to 10.0.1. | |
2209 | |
2210 2020-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
2211 | |
2212 PR tree-optimization/93247 | |
2213 * tree-vect-loop.c (update_epilogue_loop_vinfo): Check the access | |
2214 type of the stmt that we're going to vectorize. | |
2215 | |
2216 2020-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
2217 | |
2218 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Use a | |
2219 VIEW_CONVERT_EXPR if the vectorized constructor has a diffeent | |
2220 type from the lhs. | |
2221 | |
2222 2020-01-15 Martin Liska <mliska@suse.cz> | |
2223 | |
2224 * ipa-profile.c (ipa_profile_read_edge_summary): Do not allow | |
2225 2 calls of streamer_read_hwi in a function call. | |
2226 | |
2227 2020-01-15 Richard Biener <rguenther@suse.de> | |
2228 | |
2229 * alias.c (record_alias_subset): Avoid redundant work when | |
2230 subset is already recorded. | |
2231 | |
2232 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
2233 | |
2234 * doc/invoke.texi (-fdiagnostics-show-cwe): Add note that some of | |
2235 the analyzer options provide CWE identifiers. | |
2236 | |
2237 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
2238 | |
2239 * tree-diagnostic-path.cc (path_summary::event_range::print): | |
2240 When testing for UNKNOWN_LOCATION, look through ad-hoc wrappers | |
2241 using get_pure_location. | |
2242 | |
2243 2020-01-15 Jakub Jelinek <jakub@redhat.com> | |
2244 | |
2245 PR tree-optimization/93262 | |
2246 * tree-ssa-dse.c (maybe_trim_memstar_call): For *_chk builtins, | |
2247 perform head trimming only if the last argument is constant, | |
2248 either all ones, or larger or equal to head trim, in the latter | |
2249 case decrease the last argument by head_trim. | |
2250 | |
2251 PR tree-optimization/93249 | |
2252 * tree-ssa-dse.c: Include builtins.h and gimple-fold.h. | |
2253 (maybe_trim_memstar_call): Move head_trim and tail_trim vars to | |
2254 function body scope, reindent. For BUILTIN_IN_STRNCPY*, don't | |
2255 perform head trim unless we can prove there are no '\0' chars | |
2256 from the source among the first head_trim chars. | |
2257 | |
2258 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
2259 | |
2260 * Makefile.in (ANALYZER_OBJS): Add analyzer/function-set.o. | |
2261 | |
2262 2020-01-15 Jakub Jelinek <jakub@redhat.com> | |
2263 | |
2264 PR target/93009 | |
2265 * config/i386/sse.md | |
2266 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1, | |
2267 *<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1, | |
2268 *<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1, | |
2269 *<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Use | |
2270 just a single alternative instead of two, make operands 1 and 2 | |
2271 commutative. | |
2272 | |
2273 2020-01-14 Jan Hubicka <hubicka@ucw.cz> | |
2274 | |
2275 PR lto/91576 | |
2276 * ipa-devirt.c (odr_types_equivalent_p): Compare TREE_ADDRESSABLE and | |
2277 TYPE_MODE. | |
2278 | |
2279 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
2280 | |
2281 * Makefile.in (lang_opt_files): Add analyzer.opt. | |
2282 (ANALYZER_OBJS): New. | |
2283 (OBJS): Add digraph.o, graphviz.o, ordered-hash-map-tests.o, | |
2284 tristate.o and ANALYZER_OBJS. | |
2285 (TEXI_GCCINT_FILES): Add analyzer.texi. | |
2286 * common.opt (-fanalyzer): New driver option. | |
2287 * config.in: Regenerate. | |
2288 * configure: Regenerate. | |
2289 * configure.ac (--disable-analyzer, ENABLE_ANALYZER): New option. | |
2290 (gccdepdir): Also create depdir for "analyzer" subdir. | |
2291 * digraph.cc: New file. | |
2292 * digraph.h: New file. | |
2293 * doc/analyzer.texi: New file. | |
2294 * doc/gccint.texi ("Static Analyzer") New menu item. | |
2295 (analyzer.texi): Include it. | |
2296 * doc/invoke.texi ("Static Analyzer Options"): New list and new section. | |
2297 ("Warning Options"): Add static analysis warnings to the list. | |
2298 (-Wno-analyzer-double-fclose): New option. | |
2299 (-Wno-analyzer-double-free): New option. | |
2300 (-Wno-analyzer-exposure-through-output-file): New option. | |
2301 (-Wno-analyzer-file-leak): New option. | |
2302 (-Wno-analyzer-free-of-non-heap): New option. | |
2303 (-Wno-analyzer-malloc-leak): New option. | |
2304 (-Wno-analyzer-possible-null-argument): New option. | |
2305 (-Wno-analyzer-possible-null-dereference): New option. | |
2306 (-Wno-analyzer-null-argument): New option. | |
2307 (-Wno-analyzer-null-dereference): New option. | |
2308 (-Wno-analyzer-stale-setjmp-buffer): New option. | |
2309 (-Wno-analyzer-tainted-array-index): New option. | |
2310 (-Wno-analyzer-use-after-free): New option. | |
2311 (-Wno-analyzer-use-of-pointer-in-stale-stack-frame): New option. | |
2312 (-Wno-analyzer-use-of-uninitialized-value): New option. | |
2313 (-Wanalyzer-too-complex): New option. | |
2314 (-fanalyzer-call-summaries): New warning. | |
2315 (-fanalyzer-checker=): New warning. | |
2316 (-fanalyzer-fine-grained): New warning. | |
2317 (-fno-analyzer-state-merge): New warning. | |
2318 (-fno-analyzer-state-purge): New warning. | |
2319 (-fanalyzer-transitivity): New warning. | |
2320 (-fanalyzer-verbose-edges): New warning. | |
2321 (-fanalyzer-verbose-state-changes): New warning. | |
2322 (-fanalyzer-verbosity=): New warning. | |
2323 (-fdump-analyzer): New warning. | |
2324 (-fdump-analyzer-callgraph): New warning. | |
2325 (-fdump-analyzer-exploded-graph): New warning. | |
2326 (-fdump-analyzer-exploded-nodes): New warning. | |
2327 (-fdump-analyzer-exploded-nodes-2): New warning. | |
2328 (-fdump-analyzer-exploded-nodes-3): New warning. | |
2329 (-fdump-analyzer-supergraph): New warning. | |
2330 * doc/sourcebuild.texi (dg-require-dot): New. | |
2331 (dg-check-dot): New. | |
2332 * gdbinit.in (break-on-saved-diagnostic): New command. | |
2333 * graphviz.cc: New file. | |
2334 * graphviz.h: New file. | |
2335 * ordered-hash-map-tests.cc: New file. | |
2336 * ordered-hash-map.h: New file. | |
2337 * passes.def (pass_analyzer): Add before | |
2338 pass_ipa_whole_program_visibility. | |
2339 * selftest-run-tests.c (selftest::run_tests): Call | |
2340 selftest::ordered_hash_map_tests_cc_tests. | |
2341 * selftest.h (selftest::ordered_hash_map_tests_cc_tests): New | |
2342 decl. | |
2343 * shortest-paths.h: New file. | |
2344 * timevar.def (TV_ANALYZER): New timevar. | |
2345 (TV_ANALYZER_SUPERGRAPH): Likewise. | |
2346 (TV_ANALYZER_STATE_PURGE): Likewise. | |
2347 (TV_ANALYZER_PLAN): Likewise. | |
2348 (TV_ANALYZER_SCC): Likewise. | |
2349 (TV_ANALYZER_WORKLIST): Likewise. | |
2350 (TV_ANALYZER_DUMP): Likewise. | |
2351 (TV_ANALYZER_DIAGNOSTICS): Likewise. | |
2352 (TV_ANALYZER_SHORTEST_PATHS): Likewise. | |
2353 * tree-pass.h (make_pass_analyzer): New decl. | |
2354 * tristate.cc: New file. | |
2355 * tristate.h: New file. | |
2356 | |
2357 2020-01-14 Uroš Bizjak <ubizjak@gmail.com> | |
2358 | |
2359 PR target/93254 | |
2360 * config/i386/i386.md (*movsf_internal): Require SSE2 ISA for | |
2361 alternatives 9 and 10. | |
2362 | |
2363 2020-01-14 David Malcolm <dmalcolm@redhat.com> | |
2364 | |
2365 * attribs.c (excl_hash_traits::empty_zero_p): New static constant. | |
2366 * gcov.c (function_start_pair_hash::empty_zero_p): Likewise. | |
2367 * graphite.c (struct sese_scev_hash::empty_zero_p): Likewise. | |
2368 * hash-map-tests.c (selftest::test_nonzero_empty_key): New selftest. | |
2369 (selftest::hash_map_tests_c_tests): Call it. | |
2370 * hash-map-traits.h (simple_hashmap_traits::empty_zero_p): | |
2371 New static constant, using the value of = H::empty_zero_p. | |
2372 (unbounded_hashmap_traits::empty_zero_p): Likewise, using the value | |
2373 from default_hash_traits <Value>. | |
2374 * hash-map.h (hash_map::empty_zero_p): Likewise, using the value | |
2375 from Traits. | |
2376 * hash-set-tests.c (value_hash_traits::empty_zero_p): Likewise. | |
2377 * hash-table.h (hash_table::alloc_entries): Guard the loop of | |
2378 calls to mark_empty with !Descriptor::empty_zero_p. | |
2379 (hash_table::empty_slow): Conditionalize the memset call with a | |
2380 check that Descriptor::empty_zero_p; otherwise, loop through the | |
2381 entries calling mark_empty on them. | |
2382 * hash-traits.h (int_hash::empty_zero_p): New static constant. | |
2383 (pointer_hash::empty_zero_p): Likewise. | |
2384 (pair_hash::empty_zero_p): Likewise. | |
2385 * ipa-devirt.c (default_hash_traits <type_pair>::empty_zero_p): | |
131 | 2386 Likewise. |
145 | 2387 * ipa-prop.c (ipa_bit_ggc_hash_traits::empty_zero_p): Likewise. |
2388 (ipa_vr_ggc_hash_traits::empty_zero_p): Likewise. | |
2389 * profile.c (location_triplet_hash::empty_zero_p): Likewise. | |
2390 * sanopt.c (sanopt_tree_triplet_hash::empty_zero_p): Likewise. | |
2391 (sanopt_tree_couple_hash::empty_zero_p): Likewise. | |
2392 * tree-hasher.h (int_tree_hasher::empty_zero_p): Likewise. | |
2393 * tree-ssa-sccvn.c (vn_ssa_aux_hasher::empty_zero_p): Likewise. | |
2394 * tree-vect-slp.c (bst_traits::empty_zero_p): Likewise. | |
2395 * tree-vectorizer.h | |
2396 (default_hash_traits<scalar_cond_masked_key>::empty_zero_p): | |
2397 Likewise. | |
2398 | |
2399 2020-01-14 Kewen Lin <linkw@gcc.gnu.org> | |
2400 | |
2401 * cfgloopanal.c (average_num_loop_insns): Free bbs when early return, | |
2402 fix typo on return value. | |
2403 | |
2404 2020-01-14 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
2405 | |
2406 PR ipa/69678 | |
2407 * cgraph.c (symbol_table::create_edge): Init speculative_id and | |
2408 target_prob. | |
2409 (cgraph_edge::make_speculative): Add param for setting speculative_id | |
2410 and target_prob. | |
2411 (cgraph_edge::speculative_call_info): Update comments and find reference | |
2412 by speculative_id for multiple indirect targets. | |
2413 (cgraph_edge::resolve_speculation): Decrease the speculations | |
2414 for indirect edge, drop it's speculative if not direct target | |
2415 left. Update comments. | |
2416 (cgraph_edge::redirect_call_stmt_to_callee): Likewise. | |
2417 (cgraph_node::dump): Print num_speculative_call_targets. | |
2418 (cgraph_node::verify_node): Don't report error if speculative | |
2419 edge not include statement. | |
2420 (cgraph_edge::num_speculative_call_targets_p): New function. | |
2421 * cgraph.h (int common_target_id): Remove. | |
2422 (int common_target_probability): Remove. | |
2423 (num_speculative_call_targets): New variable. | |
2424 (make_speculative): Add param for setting speculative_id. | |
2425 (cgraph_edge::num_speculative_call_targets_p): New declare. | |
2426 (target_prob): New variable. | |
2427 (speculative_id): New variable. | |
2428 * ipa-fnsummary.c (analyze_function_body): Create and duplicate | |
2429 call summaries for multiple speculative call targets. | |
2430 * cgraphclones.c (cgraph_node::create_clone): Clone speculative_id. | |
2431 * ipa-profile.c (struct speculative_call_target): New struct. | |
2432 (class speculative_call_summary): New class. | |
2433 (class speculative_call_summaries): New class. | |
2434 (call_sums): New variable. | |
2435 (ipa_profile_generate_summary): Generate indirect multiple targets summaries. | |
2436 (ipa_profile_write_edge_summary): New function. | |
2437 (ipa_profile_write_summary): Stream out indirect multiple targets summaries. | |
2438 (ipa_profile_dump_all_summaries): New function. | |
2439 (ipa_profile_read_edge_summary): New function. | |
2440 (ipa_profile_read_summary_section): New function. | |
2441 (ipa_profile_read_summary): Stream in indirect multiple targets summaries. | |
2442 (ipa_profile): Generate num_speculative_call_targets from | |
2443 profile summaries. | |
2444 * ipa-ref.h (speculative_id): New variable. | |
2445 * ipa-utils.c (ipa_merge_profiles): Update with target_prob. | |
2446 * lto-cgraph.c (lto_output_edge): Remove indirect common_target_id and | |
2447 common_target_probability. Stream out speculative_id and | |
2448 num_speculative_call_targets. | |
2449 (input_edge): Likewise. | |
2450 * predict.c (dump_prediction): Remove edges count assert to be | |
2451 precise. | |
2452 * symtab.c (symtab_node::create_reference): Init speculative_id. | |
2453 (symtab_node::clone_references): Clone speculative_id. | |
2454 (symtab_node::clone_referring): Clone speculative_id. | |
2455 (symtab_node::clone_reference): Clone speculative_id. | |
2456 (symtab_node::clear_stmts_in_references): Clear speculative_id. | |
2457 * tree-inline.c (copy_bb): Duplicate all the speculative edges | |
2458 if indirect call contains multiple speculative targets. | |
2459 * value-prof.h (check_ic_target): Remove. | |
2460 * value-prof.c (gimple_value_profile_transformations): | |
2461 Use void function gimple_ic_transform. | |
2462 * value-prof.c (gimple_ic_transform): Handle topn case. | |
2463 Fix comment typos. Change it to a void function. | |
2464 | |
2465 2020-01-13 Andrew Pinski <apinski@marvell.com> | |
2466 | |
2467 * config/aarch64/aarch64-cores.def (octeontx2): New define. | |
2468 (octeontx2t98): New define. | |
2469 (octeontx2t96): New define. | |
2470 (octeontx2t93): New define. | |
2471 (octeontx2f95): New define. | |
2472 (octeontx2f95n): New define. | |
2473 (octeontx2f95mm): New define. | |
131 | 2474 * config/aarch64/aarch64-tune.md: Regenerate. |
145 | 2475 * doc/invoke.texi (-mcpu=): Document the new cpu types. |
2476 | |
2477 2020-01-13 Jason Merrill <jason@redhat.com> | |
2478 | |
2479 PR c++/33799 - destroy return value if local cleanup throws. | |
2480 * gimplify.c (gimplify_return_expr): Handle COMPOUND_EXPR. | |
2481 | |
2482 2020-01-13 Martin Liska <mliska@suse.cz> | |
2483 | |
2484 * ipa-cp.c (get_max_overall_size): Use newly | |
2485 renamed param param_ipa_cp_unit_growth. | |
2486 * params.opt: Remove legacy param name. | |
2487 | |
2488 2020-01-13 Martin Sebor <msebor@redhat.com> | |
2489 | |
2490 PR tree-optimization/93213 | |
2491 * tree-ssa-strlen.c (handle_store): Only allow single-byte nul-over-nul | |
2492 stores to be eliminated. | |
2493 | |
2494 2020-01-13 Martin Liska <mliska@suse.cz> | |
2495 | |
2496 * opts.c (print_help): Do not print CL_PARAM | |
2497 and CL_WARNING for CL_OPTIMIZATION. | |
2498 | |
2499 2020-01-13 Jonathan Wakely <jwakely@redhat.com> | |
2500 | |
2501 PR driver/92757 | |
2502 * doc/invoke.texi (Warning Options): Add caveat about some warnings | |
2503 depending on optimization settings. | |
2504 | |
2505 2020-01-13 Jakub Jelinek <jakub@redhat.com> | |
2506 | |
2507 PR tree-optimization/90838 | |
2508 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use | |
2509 SCALAR_INT_TYPE_MODE directly in CTZ_DEFINED_VALUE_AT_ZERO macro | |
2510 argument rather than to initialize temporary for targets that | |
2511 don't use the mode argument at all. Initialize ctzval to avoid | |
2512 warning at -O0. | |
2513 | |
2514 2020-01-10 Thomas Schwinge <thomas@codesourcery.com> | |
2515 | |
2516 * tree.h (OMP_CLAUSE_USE_DEVICE_PTR_IF_PRESENT): New definition. | |
2517 * tree-core.h: Document it. | |
2518 * gimplify.c (gimplify_omp_workshare): Set it. | |
2519 * omp-low.c (lower_omp_target): Use it. | |
2520 * tree-pretty-print.c (dump_omp_clause): Print it. | |
2521 | |
2522 * omp-low.c (lower_omp_target) <OMP_CLAUSE_USE_DEVICE_PTR etc.>: | |
2523 Assert that for OpenACC we always have 'GOMP_MAP_USE_DEVICE_PTR'. | |
2524 | |
2525 2020-01-10 David Malcolm <dmalcolm@redhat.com> | |
2526 | |
2527 * Makefile.in (OBJS): Add tree-diagnostic-path.o. | |
2528 * common.opt (fdiagnostics-path-format=): New option. | |
2529 (diagnostic_path_format): New enum. | |
2530 (fdiagnostics-show-path-depths): New option. | |
2531 * coretypes.h (diagnostic_event_id_t): New forward decl. | |
2532 * diagnostic-color.c (color_dict): Add "path". | |
2533 * diagnostic-event-id.h: New file. | |
2534 * diagnostic-format-json.cc (json_from_expanded_location): Make | |
2535 non-static. | |
2536 (json_end_diagnostic): Call context->make_json_for_path if it | |
2537 exists and the diagnostic has a path. | |
2538 (diagnostic_output_format_init): Clear context->print_path. | |
2539 * diagnostic-path.h: New file. | |
2540 * diagnostic-show-locus.c (colorizer::set_range): Special-case | |
2541 when printing a run of events in a diagnostic_path so that they | |
2542 all get the same color. | |
2543 (layout::m_diagnostic_path_p): New field. | |
2544 (layout::layout): Initialize it. | |
2545 (layout::print_any_labels): Don't colorize the label text for an | |
2546 event in a diagnostic_path. | |
2547 (gcc_rich_location::add_location_if_nearby): Add | |
2548 "restrict_to_current_line_spans" and "label" params. Pass the | |
2549 former to layout.maybe_add_location_range; pass the latter | |
2550 when calling add_range. | |
2551 * diagnostic.c: Include "diagnostic-path.h". | |
2552 (diagnostic_initialize): Initialize context->path_format and | |
2553 context->show_path_depths. | |
2554 (diagnostic_show_any_path): New function. | |
2555 (diagnostic_path::interprocedural_p): New function. | |
2556 (diagnostic_report_diagnostic): Call diagnostic_show_any_path. | |
2557 (simple_diagnostic_path::num_events): New function. | |
2558 (simple_diagnostic_path::get_event): New function. | |
2559 (simple_diagnostic_path::add_event): New function. | |
2560 (simple_diagnostic_event::simple_diagnostic_event): New ctor. | |
2561 (simple_diagnostic_event::~simple_diagnostic_event): New dtor. | |
2562 (debug): New overload taking a diagnostic_path *. | |
2563 * diagnostic.def (DK_DIAGNOSTIC_PATH): New. | |
2564 * diagnostic.h (enum diagnostic_path_format): New enum. | |
2565 (json::value): New forward decl. | |
2566 (diagnostic_context::path_format): New field. | |
2567 (diagnostic_context::show_path_depths): New field. | |
2568 (diagnostic_context::print_path): New callback field. | |
2569 (diagnostic_context::make_json_for_path): New callback field. | |
2570 (diagnostic_show_any_path): New decl. | |
2571 (json_from_expanded_location): New decl. | |
2572 * doc/invoke.texi (-fdiagnostics-path-format=): New option. | |
2573 (-fdiagnostics-show-path-depths): New option. | |
2574 (-fdiagnostics-color): Add "path" to description of default | |
2575 GCC_COLORS; describe it. | |
2576 (-fdiagnostics-format=json): Document how diagnostic paths are | |
2577 represented in the JSON output format. | |
2578 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): | |
2579 Add optional params "restrict_to_current_line_spans" and "label". | |
2580 * opts.c (common_handle_option): Handle | |
2581 OPT_fdiagnostics_path_format_ and | |
2582 OPT_fdiagnostics_show_path_depths. | |
2583 * pretty-print.c: Include "diagnostic-event-id.h". | |
2584 (pp_format): Implement "%@" format code for printing | |
2585 diagnostic_event_id_t *. | |
2586 (selftest::test_pp_format): Add tests for "%@". | |
2587 * selftest-run-tests.c (selftest::run_tests): Call | |
2588 selftest::tree_diagnostic_path_cc_tests. | |
2589 * selftest.h (selftest::tree_diagnostic_path_cc_tests): New decl. | |
2590 * toplev.c (general_init): Initialize global_dc->path_format and | |
2591 global_dc->show_path_depths. | |
2592 * tree-diagnostic-path.cc: New file. | |
2593 * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Make | |
2594 non-static. Drop "diagnostic" param in favor of storing the | |
2595 original value of "where" and re-using it. | |
2596 (virt_loc_aware_diagnostic_finalizer): Update for dropped param of | |
2597 maybe_unwind_expanded_macro_loc. | |
2598 (tree_diagnostics_defaults): Initialize context->print_path and | |
2599 context->make_json_for_path. | |
2600 * tree-diagnostic.h (default_tree_diagnostic_path_printer): New | |
2601 decl. | |
2602 (default_tree_make_json_for_path): New decl. | |
2603 (maybe_unwind_expanded_macro_loc): New decl. | |
2604 | |
2605 2020-01-10 Jakub Jelinek <jakub@redhat.com> | |
2606 | |
2607 PR tree-optimization/93210 | |
2608 * fold-const.h (native_encode_initializer, | |
2609 can_native_interpret_type_p): Declare. | |
2610 * fold-const.c (native_encode_string): Fix up handling with off != -1, | |
2611 simplify. | |
2612 (native_encode_initializer): New function, moved from dwarf2out.c. | |
2613 Adjust to native_encode_expr compatible arguments, including dry-run | |
2614 and partial extraction modes. Don't handle STRING_CST. | |
2615 (can_native_interpret_type_p): No longer static. | |
2616 * gimple-fold.c (fold_ctor_reference): For native_encode_expr, verify | |
2617 offset / BITS_PER_UNIT fits into int and don't call it if | |
2618 can_native_interpret_type_p fails. If suboff is NULL and for | |
2619 CONSTRUCTOR fold_{,non}array_ctor_reference returns NULL, retry with | |
2620 native_encode_initializer. | |
2621 (fold_const_aggregate_ref_1): Formatting fix. | |
2622 * dwarf2out.c (native_encode_initializer): Moved to fold-const.c. | |
2623 (tree_add_const_value_attribute): Adjust caller. | |
2624 | |
2625 PR tree-optimization/90838 | |
2626 * tree-ssa-forwprop.c (simplify_count_trailing_zeroes): Use | |
2627 SCALAR_INT_TYPE_MODE instead of TYPE_MODE as operand of | |
2628 CTZ_DEFINED_VALUE_AT_ZERO. | |
2629 | |
2630 2020-01-10 Vladimir Makarov <vmakarov@redhat.com> | |
2631 | |
2632 PR inline-asm/93027 | |
2633 * lra-constraints.c (match_reload): Permit input operands have the | |
2634 same mode as output while other input operands have a different | |
2635 mode. | |
2636 | |
2637 2020-01-10 Wilco Dijkstra <wdijkstr@arm.com> | |
2638 | |
2639 PR tree-optimization/90838 | |
2640 * tree-ssa-forwprop.c (check_ctz_array): Add new function. | |
2641 (check_ctz_string): Likewise. | |
2642 (optimize_count_trailing_zeroes): Likewise. | |
2643 (simplify_count_trailing_zeroes): Likewise. | |
2644 (pass_forwprop::execute): Try ctz simplification. | |
2645 * match.pd: Add matching for ctz idioms. | |
2646 | |
2647 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
2648 | |
2649 * config/aarch64/aarch64.c (aarch64_invalid_conversion): New function | |
2650 for target hook. | |
2651 (aarch64_invalid_unary_op): New function for target hook. | |
2652 (aarch64_invalid_binary_op): New function for target hook. | |
2653 | |
2654 2020-01-10 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
2655 | |
2656 * config.gcc: Add arm_bf16.h. | |
2657 * config/aarch64/aarch64-builtins.c | |
2658 (aarch64_simd_builtin_std_type): Add BFmode. | |
2659 (aarch64_init_simd_builtin_types): Define element types for vector | |
2660 types. | |
2661 (aarch64_init_bf16_types): New function. | |
2662 (aarch64_general_init_builtins): Add arm_init_bf16_types function call. | |
2663 * config/aarch64/aarch64-modes.def: Add BFmode and V4BF, V8BF vector | |
2664 modes. | |
2665 * config/aarch64/aarch64-simd-builtin-types.def: Add BF SIMD types. | |
2666 * config/aarch64/aarch64-simd.md: Add BF vector types to NEON move | |
2667 patterns. | |
2668 * config/aarch64/aarch64.h (AARCH64_VALID_SIMD_DREG_MODE): Add V4BF. | |
2669 (AARCH64_VALID_SIMD_QREG_MODE): Add V8BF. | |
2670 * config/aarch64/aarch64.c | |
2671 (aarch64_classify_vector_mode): Add support for BF types. | |
2672 (aarch64_gimplify_va_arg_expr): Add support for BF types. | |
2673 (aarch64_vq_mode): Add support for BF types. | |
2674 (aarch64_simd_container_mode): Add support for BF types. | |
2675 (aarch64_mangle_type): Add support for BF scalar type. | |
2676 * config/aarch64/aarch64.md: Add BFmode to movhf pattern. | |
2677 * config/aarch64/arm_bf16.h: New file. | |
2678 * config/aarch64/arm_neon.h: Add arm_bf16.h and Bfloat vector types. | |
2679 * config/aarch64/iterators.md: Add BF types to mode attributes. | |
2680 (HFBF, GPF_TF_F16_MOV, VDMOV, VQMOV, VQMOV_NO2Em VALL_F16MOV): New. | |
2681 | |
2682 2020-01-10 Jason Merrill <jason@redhat.com> | |
2683 | |
2684 PR c++/93173 - incorrect tree sharing. | |
2685 * gimplify.c (copy_if_shared): No longer static. | |
2686 * gimplify.h: Declare it. | |
2687 | |
2688 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
2689 | |
2690 * doc/invoke.texi (-msve-vector-bits=): Document that | |
2691 -msve-vector-bits=128 now generates VL-specific code for | |
2692 little-endian targets. | |
2693 * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Use | |
2694 build_vector_type_for_mode to construct the data vector types. | |
2695 * config/aarch64/aarch64.c (aarch64_convert_sve_vector_bits): Generate | |
2696 VL-specific code for -msve-vector-bits=128 on little-endian targets. | |
2697 (aarch64_simd_container_mode): Always prefer Advanced SIMD modes | |
2698 for 128-bit vectors. | |
2699 | |
2700 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
2701 | |
2702 * config/aarch64/aarch64.c (aarch64_evpc_sel): Fix gen_vcond_mask | |
2703 invocation. | |
2704 | |
2705 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
2706 | |
2707 * config/aarch64/aarch64-builtins.c | |
2708 (aarch64_builtin_vectorized_function): Check for specific vector modes, | |
2709 rather than checking the number of elements and the element mode. | |
2710 | |
2711 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
2712 | |
2713 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
2714 get_related_vectype_for_scalar_type rather than build_vector_type | |
2715 to create the index type for a conditional reduction. | |
2716 | |
2717 2020-01-10 Richard Sandiford <richard.sandiford@arm.com> | |
2718 | |
2719 * tree-vect-loop.c (update_epilogue_loop_vinfo): Update DR_REF | |
2720 for any type of gather or scatter, including strided accesses. | |
2721 | |
2722 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2723 | |
2724 * tree-vectorizer.h (get_dr_vinfo_offset): Add missing function | |
2725 comment. | |
2726 | |
2727 2020-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2728 | |
2729 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): Use | |
2730 get_dr_vinfo_offset | |
2731 * tree-vect-loop.c (update_epilogue_loop_vinfo): Remove orig_drs_init | |
2732 parameter and its use to reset DR_OFFSET's. | |
2733 (vect_transform_loop): Remove orig_drs_init argument. | |
2734 * tree-vect-loop-manip.c (vect_update_init_of_dr): Update the offset | |
2735 member of dr_vec_info rather than the offset of the associated | |
2736 data_reference's innermost_loop_behavior. | |
2737 (vect_update_init_of_dr): Pass dr_vec_info instead of data_reference. | |
2738 (vect_do_peeling): Remove orig_drs_init parameter and its construction. | |
2739 * tree-vect-stmts.c (check_scan_store): Replace use of DR_OFFSET with | |
2740 get_dr_vinfo_offset. | |
131 | 2741 (vectorizable_store): Likewise. |
2742 (vectorizable_load): Likewise. | |
145 | 2743 |
2744 2020-01-10 Richard Biener <rguenther@suse.de> | |
2745 | |
2746 * gimple-ssa-store-merging | |
2747 (pass_store_merging::terminate_all_aliasing_chains): Cache alias info. | |
2748 | |
2749 2020-01-10 Martin Liska <mliska@suse.cz> | |
2750 | |
2751 PR ipa/93217 | |
2752 * ipa-inline-analysis.c (offline_size): Make proper parenthesis | |
2753 encapsulation that was there before r280040. | |
2754 | |
2755 2020-01-10 Richard Biener <rguenther@suse.de> | |
2756 | |
2757 PR middle-end/93199 | |
2758 * tree-eh.c (sink_clobbers): Move clobbers to out-of-IL | |
2759 sequences to avoid walking them again for secondary opportunities. | |
2760 (pass_lower_eh_dispatch::execute): Instead actually insert | |
2761 them here. | |
2762 | |
2763 2020-01-10 Richard Biener <rguenther@suse.de> | |
2764 | |
2765 PR middle-end/93199 | |
2766 * tree-eh.c (redirect_eh_edge_1): Avoid some work if possible. | |
2767 (cleanup_all_empty_eh): Walk landing pads in reverse order to | |
2768 avoid quadraticness. | |
2769 | |
2770 2020-01-10 Martin Jambor <mjambor@suse.cz> | |
2771 | |
2772 * params.opt (param_ipa_sra_max_replacements): Mark as Optimization. | |
2773 * ipa-sra.c (pull_accesses_from_callee): New parameter caller, use it | |
2774 to get param_ipa_sra_max_replacements. | |
2775 (param_splitting_across_edge): Pass the caller to | |
2776 pull_accesses_from_callee. | |
2777 | |
2778 2020-01-10 Martin Jambor <mjambor@suse.cz> | |
2779 | |
2780 * params.opt (param_ipcp_unit_growth): Mark as Optimization. | |
2781 * ipa-cp.c (max_new_size): Removed. | |
2782 (orig_overall_size): New variable. | |
2783 (get_max_overall_size): New function. | |
2784 (estimate_local_effects): Use it. Adjust dump. | |
2785 (decide_about_value): Likewise. | |
2786 (ipcp_propagate_stage): Do not calculate max_new_size, just store | |
2787 orig_overall_size. Adjust dump. | |
2788 (ipa_cp_c_finalize): Clear orig_overall_size instead of max_new_size. | |
2789 | |
2790 2020-01-10 Martin Jambor <mjambor@suse.cz> | |
2791 | |
2792 * params.opt (param_ipa_max_agg_items): Mark as Optimization | |
2793 * ipa-cp.c (merge_agg_lats_step): New parameter max_agg_items, use | |
2794 instead of param_ipa_max_agg_items. | |
2795 (merge_aggregate_lattices): Extract param_ipa_max_agg_items from | |
2796 optimization info for the callee. | |
2797 | |
2798 2020-01-09 Kwok Cheung Yeung <kcy@codesourcery.com> | |
2799 | |
2800 * lto-streamer-in.c (input_function): Remove streamed-in inline debug | |
2801 markers if debug_inline_points is false. | |
2802 | |
2803 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
2804 | |
2805 * config.gcc (aarch64*-*-*): Add aarch64-sve-builtins-sve2.o to | |
2806 extra_objs. | |
2807 * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): Depend on | |
2808 aarch64-sve-builtins-base.def, aarch64-sve-builtins-sve2.def and | |
2809 aarch64-sve-builtins-sve2.h. | |
2810 (aarch64-sve-builtins-sve2.o): New rule. | |
2811 * config/aarch64/aarch64.h (AARCH64_ISA_SVE2_AES): New macro. | |
2812 (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3): Likewise. | |
2813 (AARCH64_ISA_SVE2_SM4, TARGET_SVE2_AES, TARGET_SVE2_BITPERM): Likewise. | |
2814 (TARGET_SVE2_SHA, TARGET_SVE2_SM4): Likewise. | |
2815 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle | |
2816 TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3 and | |
2817 TARGET_SVE2_SM4. | |
2818 * config/aarch64/aarch64-sve.md: Update comments with SVE2 | |
2819 instructions that are handled here. | |
2820 (@cond_asrd<mode>): Generalize to... | |
2821 (@cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>): ...this. | |
2822 (*cond_asrd<mode>_2): Generalize to... | |
2823 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_2): ...this. | |
2824 (*cond_asrd<mode>_z): Generalize to... | |
2825 (*cond_<SVE_INT_SHIFT_IMM:sve_int_op><mode>_z): ...this. | |
2826 * config/aarch64/aarch64.md (UNSPEC_LDNT1_GATHER): New unspec. | |
2827 (UNSPEC_STNT1_SCATTER, UNSPEC_WHILEGE, UNSPEC_WHILEGT): Likewise. | |
2828 (UNSPEC_WHILEHI, UNSPEC_WHILEHS): Likewise. | |
2829 * config/aarch64/aarch64-sve2.md (@aarch64_gather_ldnt<mode>): New | |
2830 pattern. | |
2831 (@aarch64_gather_ldnt_<ANY_EXTEND:optab><SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>) | |
2832 (@aarch64_scatter_stnt<mode>): Likewise. | |
2833 (@aarch64_scatter_stnt_<SVE_FULL_SDI:mode><SVE_PARTIAL_I:mode>) | |
2834 (@aarch64_mul_lane_<mode>): Likewise. | |
2835 (@aarch64_sve_suqadd<mode>_const): Likewise. | |
2836 (*<sur>h<addsub><mode>): Generalize to... | |
2837 (@aarch64_pred_<SVE2_COND_INT_BINARY_REV:sve_int_op><mode>): ...this | |
2838 new pattern. | |
2839 (@cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>): New expander. | |
2840 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_2): New pattern. | |
2841 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_3): Likewise. | |
2842 (*cond_<SVE2_COND_INT_BINARY:sve_int_op><mode>_any): Likewise. | |
2843 (*cond_<SVE2_COND_INT_BINARY_NOREV:sve_int_op><mode>_z): Likewise. | |
2844 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op><mode>):: Likewise. | |
2845 (@aarch64_sve_<SVE2_INT_BINARY:sve_int_op>_lane_<mode>): Likewise. | |
2846 (@aarch64_pred_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): Likewise. | |
2847 (@cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>): New expander. | |
2848 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_2): New pattern. | |
2849 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_3): Likewise. | |
2850 (*cond_<SVE2_COND_INT_SHIFT:sve_int_op><mode>_any): Likewise. | |
2851 (@aarch64_sve_<SVE2_INT_TERNARY:sve_int_op><mode>): Likewise. | |
2852 (@aarch64_sve_<SVE2_INT_TERNARY_LANE:sve_int_op>_lane_<mode>) | |
2853 (@aarch64_sve_add_mul_lane_<mode>): Likewise. | |
2854 (@aarch64_sve_sub_mul_lane_<mode>): Likewise. | |
2855 (@aarch64_sve2_xar<mode>): Likewise. | |
2856 (@aarch64_sve2_bcax<mode>): Likewise. | |
2857 (*aarch64_sve2_eor3<mode>): Rename to... | |
2858 (@aarch64_sve2_eor3<mode>): ...this. | |
2859 (@aarch64_sve2_bsl<mode>): New expander. | |
2860 (@aarch64_sve2_nbsl<mode>): Likewise. | |
2861 (@aarch64_sve2_bsl1n<mode>): Likewise. | |
2862 (@aarch64_sve2_bsl2n<mode>): Likewise. | |
2863 (@aarch64_sve_add_<SHIFTRT:sve_int_op><mode>): Likewise. | |
2864 (*aarch64_sve2_sra<mode>): Add MOVPRFX support. | |
2865 (@aarch64_sve_add_<VRSHR_N:sve_int_op><mode>): New pattern. | |
2866 (@aarch64_sve_<SVE2_INT_SHIFT_INSERT:sve_int_op><mode>): Likewise. | |
2867 (@aarch64_sve2_<USMAX:su>aba<mode>): New expander. | |
2868 (*aarch64_sve2_<USMAX:su>aba<mode>): New pattern. | |
2869 (@aarch64_sve_<SVE2_INT_BINARY_WIDE:sve_int_op><mode>): Likewise. | |
2870 (<su>mull<bt><Vwide>): Generalize to... | |
2871 (@aarch64_sve_<SVE2_INT_BINARY_LONG:sve_int_op><mode>): ...this new | |
2872 pattern. | |
2873 (@aarch64_sve_<SVE2_INT_BINARY_LONG_lANE:sve_int_op>_lane_<mode>) | |
2874 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_LONG:sve_int_op><mode>) | |
2875 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG:sve_int_op><mode>) | |
2876 (@aarch64_sve_add_<SVE2_INT_ADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
2877 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG:sve_int_op><mode>) | |
2878 (@aarch64_sve_qadd_<SVE2_INT_QADD_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
2879 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG:sve_int_op><mode>) | |
2880 (@aarch64_sve_sub_<SVE2_INT_SUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
2881 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG:sve_int_op><mode>) | |
2882 (@aarch64_sve_qsub_<SVE2_INT_QSUB_BINARY_LONG_LANE:sve_int_op>_lane_<mode>) | |
2883 (@aarch64_sve_<SVE2_FP_TERNARY_LONG:sve_fp_op><mode>): New patterns. | |
2884 (@aarch64_<SVE2_FP_TERNARY_LONG_LANE:sve_fp_op>_lane_<mode>) | |
2885 (@aarch64_sve_<SVE2_INT_UNARY_NARROWB:sve_int_op><mode>): Likewise. | |
2886 (@aarch64_sve_<SVE2_INT_UNARY_NARROWT:sve_int_op><mode>): Likewise. | |
2887 (@aarch64_sve_<SVE2_INT_BINARY_NARROWB:sve_int_op><mode>): Likewise. | |
2888 (@aarch64_sve_<SVE2_INT_BINARY_NARROWT:sve_int_op><mode>): Likewise. | |
2889 (<SHRNB:r>shrnb<mode>): Generalize to... | |
2890 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWB:sve_int_op><mode>): ...this | |
2891 new pattern. | |
2892 (<SHRNT:r>shrnt<mode>): Generalize to... | |
2893 (@aarch64_sve_<SVE2_INT_SHIFT_IMM_NARROWT:sve_int_op><mode>): ...this | |
2894 new pattern. | |
2895 (@aarch64_pred_<SVE2_INT_BINARY_PAIR:sve_int_op><mode>): New pattern. | |
2896 (@aarch64_pred_<SVE2_FP_BINARY_PAIR:sve_fp_op><mode>): Likewise. | |
2897 (@cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>): New expander. | |
2898 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_2): New pattern. | |
2899 (*cond_<SVE2_INT_BINARY_PAIR_LONG:sve_int_op><mode>_z): Likewise. | |
2900 (@aarch64_sve_<SVE2_INT_CADD:optab><mode>): Likewise. | |
2901 (@aarch64_sve_<SVE2_INT_CMLA:optab><mode>): Likewise. | |
2902 (@aarch64_<SVE2_INT_CMLA:optab>_lane_<mode>): Likewise. | |
2903 (@aarch64_sve_<SVE2_INT_CDOT:optab><mode>): Likewise. | |
2904 (@aarch64_<SVE2_INT_CDOT:optab>_lane_<mode>): Likewise. | |
2905 (@aarch64_pred_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): Likewise. | |
2906 (@cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New expander. | |
2907 (*cond_<SVE2_COND_FP_UNARY_LONG:sve_fp_op><mode>): New pattern. | |
2908 (@aarch64_sve2_cvtnt<mode>): Likewise. | |
2909 (@aarch64_pred_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): Likewise. | |
2910 (@cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>): New expander. | |
2911 (*cond_<SVE2_COND_FP_UNARY_NARROWB:sve_fp_op><mode>_any): New pattern. | |
2912 (@aarch64_sve2_cvtxnt<mode>): Likewise. | |
2913 (@aarch64_pred_<SVE2_U32_UNARY:sve_int_op><mode>): Likewise. | |
2914 (@cond_<SVE2_U32_UNARY:sve_int_op><mode>): New expander. | |
2915 (*cond_<SVE2_U32_UNARY:sve_int_op><mode>): New pattern. | |
2916 (@aarch64_pred_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): Likewise. | |
2917 (@cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New expander. | |
2918 (*cond_<SVE2_COND_INT_UNARY_FP:sve_fp_op><mode>): New pattern. | |
2919 (@aarch64_sve2_pmul<mode>): Likewise. | |
2920 (@aarch64_sve_<SVE2_PMULL:optab><mode>): Likewise. | |
2921 (@aarch64_sve_<SVE2_PMULL_PAIR:optab><mode>): Likewise. | |
2922 (@aarch64_sve2_tbl2<mode>): Likewise. | |
2923 (@aarch64_sve2_tbx<mode>): Likewise. | |
2924 (@aarch64_sve_<SVE2_INT_BITPERM:sve_int_op><mode>): Likewise. | |
2925 (@aarch64_sve2_histcnt<mode>): Likewise. | |
2926 (@aarch64_sve2_histseg<mode>): Likewise. | |
2927 (@aarch64_pred_<SVE2_MATCH:sve_int_op><mode>): Likewise. | |
2928 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_cc): Likewise. | |
2929 (*aarch64_pred_<SVE2_MATCH:sve_int_op><mode>_ptest): Likewise. | |
2930 (aarch64_sve2_aes<CRYPTO_AES:aes_op>): Likewise. | |
2931 (aarch64_sve2_aes<CRYPTO_AESMC:aesmc_op>): Likewise. | |
2932 (*aarch64_sve2_aese_fused, *aarch64_sve2_aesd_fused): Likewise. | |
2933 (aarch64_sve2_rax1, aarch64_sve2_sm4e, aarch64_sve2_sm4ekey): Likewise. | |
2934 (<su>mulh<r>s<mode>3): Update after above pattern name changes. | |
2935 * config/aarch64/iterators.md (VNx16QI_ONLY, VNx4SF_ONLY) | |
2936 (SVE_STRUCT2, SVE_FULL_BHI, SVE_FULL_HSI, SVE_FULL_HDI) | |
2937 (SVE2_PMULL_PAIR_I): New mode iterators. | |
2938 (UNSPEC_ADCLB, UNSPEC_ADCLT, UNSPEC_ADDHNB, UNSPEC_ADDHNT, UNSPEC_BDEP) | |
2939 (UNSPEC_BEXT, UNSPEC_BGRP, UNSPEC_CADD90, UNSPEC_CADD270, UNSPEC_CDOT) | |
2940 (UNSPEC_CDOT90, UNSPEC_CDOT180, UNSPEC_CDOT270, UNSPEC_CMLA) | |
2941 (UNSPEC_CMLA90, UNSPEC_CMLA180, UNSPEC_CMLA270, UNSPEC_COND_FCVTLT) | |
2942 (UNSPEC_COND_FCVTNT, UNSPEC_COND_FCVTX, UNSPEC_COND_FCVTXNT) | |
2943 (UNSPEC_COND_FLOGB, UNSPEC_EORBT, UNSPEC_EORTB, UNSPEC_FADDP) | |
2944 (UNSPEC_FMAXP, UNSPEC_FMAXNMP, UNSPEC_FMLALB, UNSPEC_FMLALT) | |
2945 (UNSPEC_FMLSLB, UNSPEC_FMLSLT, UNSPEC_FMINP, UNSPEC_FMINNMP) | |
2946 (UNSPEC_HISTCNT, UNSPEC_HISTSEG, UNSPEC_MATCH, UNSPEC_NMATCH) | |
2947 (UNSPEC_PMULLB, UNSPEC_PMULLB_PAIR, UNSPEC_PMULLT, UNSPEC_PMULLT_PAIR) | |
2948 (UNSPEC_RADDHNB, UNSPEC_RADDHNT, UNSPEC_RSUBHNB, UNSPEC_RSUBHNT) | |
2949 (UNSPEC_SLI, UNSPEC_SRI, UNSPEC_SABDLB, UNSPEC_SABDLT, UNSPEC_SADDLB) | |
2950 (UNSPEC_SADDLBT, UNSPEC_SADDLT, UNSPEC_SADDWB, UNSPEC_SADDWT) | |
2951 (UNSPEC_SBCLB, UNSPEC_SBCLT, UNSPEC_SMAXP, UNSPEC_SMINP) | |
2952 (UNSPEC_SQCADD90, UNSPEC_SQCADD270, UNSPEC_SQDMULLB, UNSPEC_SQDMULLBT) | |
2953 (UNSPEC_SQDMULLT, UNSPEC_SQRDCMLAH, UNSPEC_SQRDCMLAH90) | |
2954 (UNSPEC_SQRDCMLAH180, UNSPEC_SQRDCMLAH270, UNSPEC_SQRSHRNB) | |
2955 (UNSPEC_SQRSHRNT, UNSPEC_SQRSHRUNB, UNSPEC_SQRSHRUNT, UNSPEC_SQSHRNB) | |
2956 (UNSPEC_SQSHRNT, UNSPEC_SQSHRUNB, UNSPEC_SQSHRUNT, UNSPEC_SQXTNB) | |
2957 (UNSPEC_SQXTNT, UNSPEC_SQXTUNB, UNSPEC_SQXTUNT, UNSPEC_SSHLLB) | |
2958 (UNSPEC_SSHLLT, UNSPEC_SSUBLB, UNSPEC_SSUBLBT, UNSPEC_SSUBLT) | |
2959 (UNSPEC_SSUBLTB, UNSPEC_SSUBWB, UNSPEC_SSUBWT, UNSPEC_SUBHNB) | |
2960 (UNSPEC_SUBHNT, UNSPEC_TBL2, UNSPEC_UABDLB, UNSPEC_UABDLT) | |
2961 (UNSPEC_UADDLB, UNSPEC_UADDLT, UNSPEC_UADDWB, UNSPEC_UADDWT) | |
2962 (UNSPEC_UMAXP, UNSPEC_UMINP, UNSPEC_UQRSHRNB, UNSPEC_UQRSHRNT) | |
2963 (UNSPEC_UQSHRNB, UNSPEC_UQSHRNT, UNSPEC_UQXTNB, UNSPEC_UQXTNT) | |
2964 (UNSPEC_USHLLB, UNSPEC_USHLLT, UNSPEC_USUBLB, UNSPEC_USUBLT) | |
2965 (UNSPEC_USUBWB, UNSPEC_USUBWT): New unspecs. | |
2966 (UNSPEC_SMULLB, UNSPEC_SMULLT, UNSPEC_UMULLB, UNSPEC_UMULLT) | |
2967 (UNSPEC_SMULHS, UNSPEC_SMULHRS, UNSPEC_UMULHS, UNSPEC_UMULHRS) | |
2968 (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SHRNB, UNSPEC_SHRNT): Move | |
2969 further down file. | |
2970 (VNARROW, Ventype): New mode attributes. | |
2971 (Vewtype): Handle VNx2DI. Fix typo in comment. | |
2972 (VDOUBLE): New mode attribute. | |
2973 (sve_lane_con): Handle VNx8HI. | |
2974 (SVE_INT_UNARY): Include ss_abs and ss_neg for TARGET_SVE2. | |
2975 (SVE_INT_BINARY): Likewise ss_plus, us_plus, ss_minus and us_minus. | |
2976 (sve_int_op, sve_int_op_rev): Handle the above codes. | |
2977 (sve_pred_int_rhs2_operand): Likewise. | |
2978 (MULLBT, SHRNB, SHRNT): Delete. | |
2979 (SVE_INT_SHIFT_IMM): New int iterator. | |
2980 (SVE_WHILE): Add UNSPEC_WHILEGE, UNSPEC_WHILEGT, UNSPEC_WHILEHI | |
2981 and UNSPEC_WHILEHS for TARGET_SVE2. | |
2982 (SVE2_U32_UNARY, SVE2_INT_UNARY_NARROWB, SVE2_INT_UNARY_NARROWT) | |
2983 (SVE2_INT_BINARY, SVE2_INT_BINARY_LANE, SVE2_INT_BINARY_LONG) | |
2984 (SVE2_INT_BINARY_LONG_LANE, SVE2_INT_BINARY_NARROWB) | |
2985 (SVE2_INT_BINARY_NARROWT, SVE2_INT_BINARY_PAIR, SVE2_FP_BINARY_PAIR) | |
2986 (SVE2_INT_BINARY_PAIR_LONG, SVE2_INT_BINARY_WIDE): New int iterators. | |
2987 (SVE2_INT_SHIFT_IMM_LONG, SVE2_INT_SHIFT_IMM_NARROWB): Likewise. | |
2988 (SVE2_INT_SHIFT_IMM_NARROWT, SVE2_INT_SHIFT_INSERT, SVE2_INT_CADD) | |
2989 (SVE2_INT_BITPERM, SVE2_INT_TERNARY, SVE2_INT_TERNARY_LANE): Likewise. | |
2990 (SVE2_FP_TERNARY_LONG, SVE2_FP_TERNARY_LONG_LANE, SVE2_INT_CMLA) | |
2991 (SVE2_INT_CDOT, SVE2_INT_ADD_BINARY_LONG, SVE2_INT_QADD_BINARY_LONG) | |
2992 (SVE2_INT_SUB_BINARY_LONG, SVE2_INT_QSUB_BINARY_LONG): Likewise. | |
2993 (SVE2_INT_ADD_BINARY_LONG_LANE, SVE2_INT_QADD_BINARY_LONG_LANE) | |
2994 (SVE2_INT_SUB_BINARY_LONG_LANE, SVE2_INT_QSUB_BINARY_LONG_LANE) | |
2995 (SVE2_COND_INT_UNARY_FP, SVE2_COND_FP_UNARY_LONG): Likewise. | |
2996 (SVE2_COND_FP_UNARY_NARROWB, SVE2_COND_INT_BINARY): Likewise. | |
2997 (SVE2_COND_INT_BINARY_NOREV, SVE2_COND_INT_BINARY_REV): Likewise. | |
2998 (SVE2_COND_INT_SHIFT, SVE2_MATCH, SVE2_PMULL): Likewise. | |
2999 (optab): Handle the new unspecs. | |
3000 (su, r): Remove entries for UNSPEC_SHRNB, UNSPEC_SHRNT, UNSPEC_RSHRNB | |
3001 and UNSPEC_RSHRNT. | |
3002 (lr): Handle the new unspecs. | |
3003 (bt): Delete. | |
3004 (cmp_op, while_optab_cmp, sve_int_op): Handle the new unspecs. | |
3005 (sve_int_op_rev, sve_int_add_op, sve_int_qadd_op, sve_int_sub_op) | |
3006 (sve_int_qsub_op): New int attributes. | |
3007 (sve_fp_op, rot): Handle the new unspecs. | |
3008 * config/aarch64/aarch64-sve-builtins.h | |
3009 (function_resolver::require_matching_pointer_type): Declare. | |
3010 (function_resolver::resolve_unary): Add an optional boolean argument. | |
3011 (function_resolver::finish_opt_n_resolution): Add an optional | |
3012 type_suffix_index argument. | |
3013 (gimple_folder::redirect_call): Declare. | |
3014 (gimple_expander::prepare_gather_address_operands): Add an optional | |
3015 bool parameter. | |
3016 * config/aarch64/aarch64-sve-builtins.cc: Include | |
3017 aarch64-sve-builtins-sve2.h. | |
3018 (TYPES_b_unsigned, TYPES_b_integer, TYPES_bh_integer): New macros. | |
3019 (TYPES_bs_unsigned, TYPES_hs_signed, TYPES_hs_integer): Likewise. | |
3020 (TYPES_hd_unsigned, TYPES_hsd_signed): Likewise. | |
3021 (TYPES_hsd_integer): Use TYPES_hsd_signed. | |
3022 (TYPES_s_float_hsd_integer, TYPES_s_float_sd_integer): New macros. | |
3023 (TYPES_s_unsigned): Likewise. | |
3024 (TYPES_s_integer): Use TYPES_s_unsigned. | |
3025 (TYPES_sd_signed, TYPES_sd_unsigned): New macros. | |
3026 (TYPES_sd_integer): Use them. | |
3027 (TYPES_d_unsigned): New macro. | |
3028 (TYPES_d_integer): Use it. | |
3029 (TYPES_d_data, TYPES_cvt_long, TYPES_cvt_narrow_s): New macros. | |
3030 (TYPES_cvt_narrow): Likewise. | |
3031 (DEF_SVE_TYPES_ARRAY): Include the new types macros above. | |
3032 (preds_mx): New variable. | |
3033 (function_builder::add_overloaded_function): Allow the new feature | |
3034 set to be more restrictive than the original one. | |
3035 (function_resolver::infer_pointer_type): Remove qualifiers from | |
3036 the pointer type before printing it. | |
3037 (function_resolver::require_matching_pointer_type): New function. | |
3038 (function_resolver::resolve_sv_displacement): Handle functions | |
3039 that don't support 32-bit vector indices or svint32_t vector offsets. | |
3040 (function_resolver::finish_opt_n_resolution): Take the inferred type | |
3041 as a separate argument. | |
3042 (function_resolver::resolve_unary): Optionally treat all forms in | |
3043 the same way as normal merging functions. | |
3044 (gimple_folder::redirect_call): New function. | |
3045 (function_expander::prepare_gather_address_operands): Add an argument | |
3046 that says whether scaled forms are available. If they aren't, | |
3047 handle scaling of vector indices and don't add the extension and | |
3048 scaling operands. | |
3049 (function_expander::map_to_unspecs): If aarch64_sve isn't available, | |
3050 fall back to using cond_* instead. | |
3051 * config/aarch64/aarch64-sve-builtins-functions.h (rtx_code_function): | |
3052 Split out the member variables into... | |
3053 (rtx_code_function_base): ...this new base class. | |
3054 (rtx_code_function_rotated): Inherit rtx_code_function_base. | |
3055 (unspec_based_function): Split out the member variables into... | |
3056 (unspec_based_function_base): ...this new base class. | |
3057 (unspec_based_function_rotated): Inherit unspec_based_function_base. | |
3058 (unspec_based_function_exact_insn): New class. | |
3059 (unspec_based_add_function, unspec_based_add_lane_function) | |
3060 (unspec_based_lane_function, unspec_based_pred_function) | |
3061 (unspec_based_qadd_function, unspec_based_qadd_lane_function) | |
3062 (unspec_based_qsub_function, unspec_based_qsub_lane_function) | |
3063 (unspec_based_sub_function, unspec_based_sub_lane_function): New | |
3064 typedefs. | |
3065 (unspec_based_fused_function): New class. | |
3066 (unspec_based_mla_function, unspec_based_mls_function): New typedefs. | |
3067 (unspec_based_fused_lane_function): New class. | |
3068 (unspec_based_mla_lane_function, unspec_based_mls_lane_function): New | |
3069 typedefs. | |
3070 (CODE_FOR_MODE1): New macro. | |
3071 (fixed_insn_function): New class. | |
3072 (while_comparison): Likewise. | |
3073 * config/aarch64/aarch64-sve-builtins-shapes.h (binary_long_lane) | |
3074 (binary_long_opt_n, binary_narrowb_opt_n, binary_narrowt_opt_n) | |
3075 (binary_to_uint, binary_wide, binary_wide_opt_n, compare, compare_ptr) | |
3076 (load_ext_gather_index_restricted, load_ext_gather_offset_restricted) | |
3077 (load_gather_sv_restricted, shift_left_imm_long): Declare. | |
3078 (shift_left_imm_to_uint, shift_right_imm_narrowb): Likewise. | |
3079 (shift_right_imm_narrowt, shift_right_imm_narrowb_to_uint): Likewise. | |
3080 (shift_right_imm_narrowt_to_uint, store_scatter_index_restricted) | |
3081 (store_scatter_offset_restricted, tbl_tuple, ternary_long_lane) | |
3082 (ternary_long_opt_n, ternary_qq_lane_rotate, ternary_qq_rotate) | |
3083 (ternary_shift_left_imm, ternary_shift_right_imm, ternary_uint) | |
3084 (unary_convert_narrowt, unary_long, unary_narrowb, unary_narrowt) | |
3085 (unary_narrowb_to_uint, unary_narrowt_to_uint, unary_to_int): Likewise. | |
3086 * config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication): | |
3087 Also add an initial argument for unary_convert_narrowt, regardless | |
3088 of the predication type. | |
3089 (build_32_64): Allow loads and stores to specify MODE_none. | |
3090 (build_sv_index64, build_sv_uint_offset): New functions. | |
3091 (long_type_suffix): New function. | |
3092 (binary_imm_narrowb_base, binary_imm_narrowt_base): New classes. | |
3093 (binary_imm_long_base, load_gather_sv_base): Likewise. | |
3094 (shift_right_imm_narrow_wrapper, ternary_shift_imm_base): Likewise. | |
3095 (ternary_resize2_opt_n_base, ternary_resize2_lane_base): Likewise. | |
3096 (unary_narrowb_base, unary_narrowt_base): Likewise. | |
3097 (binary_long_lane_def, binary_long_lane): New shape. | |
3098 (binary_long_opt_n_def, binary_long_opt_n): Likewise. | |
3099 (binary_narrowb_opt_n_def, binary_narrowb_opt_n): Likewise. | |
3100 (binary_narrowt_opt_n_def, binary_narrowt_opt_n): Likewise. | |
3101 (binary_to_uint_def, binary_to_uint): Likewise. | |
3102 (binary_wide_def, binary_wide): Likewise. | |
3103 (binary_wide_opt_n_def, binary_wide_opt_n): Likewise. | |
3104 (compare_def, compare): Likewise. | |
3105 (compare_ptr_def, compare_ptr): Likewise. | |
3106 (load_ext_gather_index_restricted_def, | |
3107 load_ext_gather_index_restricted): Likewise. | |
3108 (load_ext_gather_offset_restricted_def, | |
3109 load_ext_gather_offset_restricted): Likewise. | |
3110 (load_gather_sv_def): Inherit from load_gather_sv_base. | |
3111 (load_gather_sv_restricted_def, load_gather_sv_restricted): New shape. | |
3112 (shift_left_imm_def, shift_left_imm): Likewise. | |
3113 (shift_left_imm_long_def, shift_left_imm_long): Likewise. | |
3114 (shift_left_imm_to_uint_def, shift_left_imm_to_uint): Likewise. | |
3115 (store_scatter_index_restricted_def, | |
3116 store_scatter_index_restricted): Likewise. | |
3117 (store_scatter_offset_restricted_def, | |
3118 store_scatter_offset_restricted): Likewise. | |
3119 (tbl_tuple_def, tbl_tuple): Likewise. | |
3120 (ternary_long_lane_def, ternary_long_lane): Likewise. | |
3121 (ternary_long_opt_n_def, ternary_long_opt_n): Likewise. | |
3122 (ternary_qq_lane_def): Inherit from ternary_resize2_lane_base. | |
3123 (ternary_qq_lane_rotate_def, ternary_qq_lane_rotate): New shape | |
3124 (ternary_qq_opt_n_def): Inherit from ternary_resize2_opt_n_base. | |
3125 (ternary_qq_rotate_def, ternary_qq_rotate): New shape. | |
3126 (ternary_shift_left_imm_def, ternary_shift_left_imm): Likewise. | |
3127 (ternary_shift_right_imm_def, ternary_shift_right_imm): Likewise. | |
3128 (ternary_uint_def, ternary_uint): Likewise. | |
3129 (unary_convert): Fix typo in comment. | |
3130 (unary_convert_narrowt_def, unary_convert_narrowt): New shape. | |
3131 (unary_long_def, unary_long): Likewise. | |
3132 (unary_narrowb_def, unary_narrowb): Likewise. | |
3133 (unary_narrowt_def, unary_narrowt): Likewise. | |
3134 (unary_narrowb_to_uint_def, unary_narrowb_to_uint): Likewise. | |
3135 (unary_narrowt_to_uint_def, unary_narrowt_to_uint): Likewise. | |
3136 (unary_to_int_def, unary_to_int): Likewise. | |
3137 * config/aarch64/aarch64-sve-builtins-base.cc (unspec_cmla) | |
3138 (unspec_fcmla, unspec_cond_fcmla, expand_mla_mls_lane): New functions. | |
3139 (svasrd_impl): Delete. | |
3140 (svcadd_impl::expand): Handle integer operations too. | |
3141 (svcmla_impl::expand, svcmla_lane::expand): Likewise, using the | |
3142 new functions to derive the unspec numbers. | |
3143 (svmla_svmls_lane_impl): Replace with... | |
3144 (svmla_lane_impl, svmls_lane_impl): ...these new classes. Handle | |
3145 integer operations too. | |
3146 (svwhile_impl): Rename to... | |
3147 (svwhilelx_impl): ...this and inherit from while_comparison. | |
3148 (svasrd): Use unspec_based_function. | |
3149 (svmla_lane): Use svmla_lane_impl. | |
3150 (svmls_lane): Use svmls_lane_impl. | |
3151 (svrecpe, svrsqrte): Handle unsigned integer operations too. | |
3152 (svwhilele, svwhilelt): Use svwhilelx_impl. | |
3153 * config/aarch64/aarch64-sve-builtins-sve2.h: New file. | |
3154 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise. | |
3155 * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. | |
3156 * config/aarch64/aarch64-sve-builtins.def: Include | |
3157 aarch64-sve-builtins-sve2.def. | |
3158 | |
3159 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3160 | |
3161 * config/aarch64/aarch64-protos.h (aarch64_sve_arith_immediate_p) | |
3162 (aarch64_sve_sqadd_sqsub_immediate_p): Add a machine_mode argument. | |
3163 * config/aarch64/aarch64.c (aarch64_sve_arith_immediate_p) | |
3164 (aarch64_sve_sqadd_sqsub_immediate_p): Likewise. Handle scalar | |
3165 immediates as well as vector ones. | |
3166 * config/aarch64/predicates.md (aarch64_sve_arith_immediate) | |
3167 (aarch64_sve_sub_arith_immediate, aarch64_sve_qadd_immediate) | |
3168 (aarch64_sve_qsub_immediate): Update calls accordingly. | |
3169 | |
3170 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3171 | |
3172 * config/aarch64/aarch64-sve2.md: Add banner comments. | |
3173 (<su>mulh<r>s<mode>3): Move further up file. | |
3174 (<su>mull<bt><Vwide>, <r>shrnb<mode>, <r>shrnt<mode>) | |
3175 (*aarch64_sve2_sra<mode>): Move further down file. | |
3176 * config/aarch64/t-aarch64 (s-check-sve-md): Check aarch64-sve2.md too. | |
3177 | |
3178 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3179 | |
3180 * config/aarch64/iterators.md (SVE_WHILE): Add UNSPEC_WHILERW | |
3181 and UNSPEC_WHILEWR. | |
3182 (while_optab_cmp): Handle them. | |
3183 * config/aarch64/aarch64-sve.md | |
3184 (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): Make public | |
3185 and add a "@" marker. | |
3186 * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): Use it | |
3187 instead of gen_aarch64_sve2_while_ptest. | |
3188 (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): Delete. | |
3189 | |
3190 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3191 | |
3192 * config/aarch64/aarch64.md (UNSPEC_WHILE_LE): Rename to... | |
3193 (UNSPEC_WHILELE): ...this. | |
3194 (UNSPEC_WHILE_LO): Rename to... | |
3195 (UNSPEC_WHILELO): ...this. | |
3196 (UNSPEC_WHILE_LS): Rename to... | |
3197 (UNSPEC_WHILELS): ...this. | |
3198 (UNSPEC_WHILE_LT): Rename to... | |
3199 (UNSPEC_WHILELT): ...this. | |
3200 * config/aarch64/iterators.md (SVE_WHILE): Update accordingly. | |
3201 (cmp_op, while_optab_cmp): Likewise. | |
3202 * config/aarch64/aarch64.c (aarch64_sve_move_pred_via_while): Likewise. | |
3203 * config/aarch64/aarch64-sve-builtins-base.cc (svwhilele): Likewise. | |
3204 (svwhilelt): Likewise. | |
3205 | |
3206 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3207 | |
3208 * config/aarch64/aarch64-sve-builtins-shapes.h (unary_count): Delete. | |
3209 (unary_to_uint): Define. | |
3210 * config/aarch64/aarch64-sve-builtins-shapes.cc (unary_count_def) | |
3211 (unary_count): Rename to... | |
3212 (unary_to_uint_def, unary_to_uint): ...this. | |
3213 * config/aarch64/aarch64-sve-builtins-base.def: Update accordingly. | |
3214 | |
3215 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3216 | |
3217 * config/aarch64/aarch64-sve-builtins-functions.h | |
3218 (code_for_mode_function): New class. | |
3219 (CODE_FOR_MODE0, QUIET_CODE_FOR_MODE0): New macros. | |
3220 * config/aarch64/aarch64-sve-builtins-base.cc (svcompact_impl) | |
3221 (svext_impl, svmul_lane_impl, svsplice_impl, svtmad_impl): Delete. | |
3222 (svcompact, svext, svsplice): Use QUIET_CODE_FOR_MODE0. | |
3223 (svmul_lane, svtmad): Use CODE_FOR_MODE0. | |
3224 | |
3225 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3226 | |
3227 * config/aarch64/iterators.md (addsub): New code attribute. | |
3228 * config/aarch64/aarch64-simd.md (aarch64_<su_optab><optab><mode>): | |
3229 Re-express as... | |
3230 (aarch64_<su_optab>q<addsub><mode>): ...this, making the same change | |
3231 in the asm string and attributes. Fix indentation. | |
3232 * config/aarch64/aarch64-sve.md (@aarch64_<su_optab><optab><mode>): | |
3233 Re-express as... | |
3234 (@aarch64_sve_<optab><mode>): ...this. | |
3235 * config/aarch64/aarch64-sve-builtins.h | |
3236 (function_expander::expand_signed_unpred_op): Delete. | |
3237 * config/aarch64/aarch64-sve-builtins.cc | |
3238 (function_expander::expand_signed_unpred_op): Likewise. | |
3239 (function_expander::map_to_rtx_codes): If the optab isn't defined, | |
3240 try using code_for_aarch64_sve instead. | |
3241 * config/aarch64/aarch64-sve-builtins-base.cc (svqadd_impl): Delete. | |
3242 (svqsub_impl): Likewise. | |
3243 (svqadd, svqsub): Use rtx_code_function instead. | |
3244 | |
3245 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3246 | |
3247 * config/aarch64/iterators.md (SRHSUB, URHSUB): Delete. | |
3248 (HADDSUB, sur, addsub): Remove them. | |
3249 | |
3250 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3251 | |
3252 * tree-nrv.c (pass_return_slot::execute): Handle all internal | |
3253 functions the same way, rather than singling out those that | |
3254 aren't mapped directly to optabs. | |
3255 | |
3256 2020-01-09 Richard Sandiford <richard.sandiford@arm.com> | |
3257 | |
3258 * target.def (compatible_vector_types_p): New target hook. | |
3259 * hooks.h (hook_bool_const_tree_const_tree_true): Declare. | |
3260 * hooks.c (hook_bool_const_tree_const_tree_true): New function. | |
3261 * doc/tm.texi.in (TARGET_COMPATIBLE_VECTOR_TYPES_P): New hook. | |
131 | 3262 * doc/tm.texi: Regenerate. |
145 | 3263 * gimple-expr.c: Include target.h. |
3264 (useless_type_conversion_p): Use targetm.compatible_vector_types_p. | |
3265 * config/aarch64/aarch64.c (aarch64_compatible_vector_types_p): New | |
131 | 3266 function. |
145 | 3267 (TARGET_COMPATIBLE_VECTOR_TYPES_P): Define. |
3268 * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred): | |
3269 Use the original predicate if it already has a suitable type. | |
3270 | |
3271 2020-01-09 Martin Jambor <mjambor@suse.cz> | |
3272 | |
3273 * cgraph.h (cgraph_edge): Make remove, set_call_stmt, make_direct, | |
3274 resolve_speculation and redirect_call_stmt_to_callee static. Change | |
3275 return type of set_call_stmt to cgraph_edge *. | |
3276 * auto-profile.c (afdo_indirect_call): Adjust call to | |
3277 redirect_call_stmt_to_callee. | |
3278 * cgraph.c (cgraph_edge::set_call_stmt): Make return cgraph-edge *, | |
3279 make the this pointer explicit, adjust self-recursive calls and the | |
3280 call top make_direct. Return the resulting edge. | |
3281 (cgraph_edge::remove): Make this pointer explicit. | |
3282 (cgraph_edge::resolve_speculation): Likewise, adjust call to remove. | |
3283 (cgraph_edge::make_direct): Likewise, adjust call to | |
3284 resolve_speculation. | |
3285 (cgraph_edge::redirect_call_stmt_to_callee): Likewise, also adjust | |
3286 call to set_call_stmt. | |
3287 (cgraph_update_edges_for_call_stmt_node): Update call to | |
3288 set_call_stmt and remove. | |
3289 * cgraphclones.c (cgraph_node::set_call_stmt_including_clones): | |
3290 Renamed edge to master_edge. Adjusted calls to set_call_stmt. | |
3291 (cgraph_node::create_edge_including_clones): Moved "first" definition | |
3292 of edge to the block where it was used. Adjusted calls to | |
3293 set_call_stmt. | |
3294 (cgraph_node::remove_symbol_and_inline_clones): Adjust call to | |
3295 cgraph_edge::remove. | |
3296 * cgraphunit.c (walk_polymorphic_call_targets): Adjusted calls to | |
3297 make_direct and redirect_call_stmt_to_callee. | |
3298 * ipa-fnsummary.c (redirect_to_unreachable): Adjust calls to | |
3299 resolve_speculation and make_direct. | |
3300 * ipa-inline-transform.c (inline_transform): Adjust call to | |
3301 redirect_call_stmt_to_callee. | |
3302 (check_speculations_1):: Adjust call to resolve_speculation. | |
3303 * ipa-inline.c (resolve_noninline_speculation): Adjust call to | |
3304 resolve-speculation. | |
3305 (inline_small_functions): Adjust call to resolve_speculation. | |
3306 (ipa_inline): Likewise. | |
3307 * ipa-prop.c (ipa_make_edge_direct_to_target): Adjust call to | |
3308 make_direct. | |
3309 * ipa-visibility.c (function_and_variable_visibility): Make iteration | |
3310 safe with regards to edge removal, adjust calls to | |
3311 redirect_call_stmt_to_callee. | |
3312 * ipa.c (walk_polymorphic_call_targets): Adjust calls to make_direct | |
3313 and redirect_call_stmt_to_callee. | |
3314 * multiple_target.c (create_dispatcher_calls): Adjust call to | |
3315 redirect_call_stmt_to_callee | |
3316 (redirect_to_specific_clone): Likewise. | |
3317 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): | |
3318 Adjust calls to cgraph_edge::remove. | |
3319 * tree-inline.c (copy_bb): Adjust call to set_call_stmt. | |
3320 (redirect_all_calls): Adjust call to redirect_call_stmt_to_callee. | |
3321 (expand_call_inline): Adjust call to cgraph_edge::remove. | |
3322 | |
3323 2020-01-09 Martin Liska <mliska@suse.cz> | |
3324 | |
3325 * params.opt: Set Optimization for | |
3326 param_max_speculative_devirt_maydefs. | |
3327 | |
3328 2020-01-09 Martin Sebor <msebor@redhat.com> | |
3329 | |
3330 PR middle-end/93200 | |
3331 PR fortran/92956 | |
3332 * builtins.c (compute_objsize): Avoid handling MEM_REFs of vector type. | |
3333 | |
3334 2020-01-09 Martin Liska <mliska@suse.cz> | |
3335 | |
3336 * auto-profile.c (auto_profile): Use opt_for_fn | |
3337 for a parameter. | |
3338 * ipa-cp.c (ipcp_lattice::add_value): Likewise. | |
3339 (propagate_vals_across_arith_jfunc): Likewise. | |
3340 (hint_time_bonus): Likewise. | |
3341 (incorporate_penalties): Likewise. | |
3342 (good_cloning_opportunity_p): Likewise. | |
3343 (perform_estimation_of_a_value): Likewise. | |
3344 (estimate_local_effects): Likewise. | |
3345 (ipcp_propagate_stage): Likewise. | |
3346 * ipa-fnsummary.c (decompose_param_expr): Likewise. | |
3347 (set_switch_stmt_execution_predicate): Likewise. | |
3348 (analyze_function_body): Likewise. | |
3349 * ipa-inline-analysis.c (offline_size): Likewise. | |
3350 * ipa-inline.c (early_inliner): Likewise. | |
3351 * ipa-prop.c (ipa_analyze_node): Likewise. | |
3352 (ipcp_transform_function): Likewise. | |
3353 * ipa-sra.c (process_scan_results): Likewise. | |
3354 (ipa_sra_summarize_function): Likewise. | |
3355 * params.opt: Rename ipcp-unit-growth to | |
3356 ipa-cp-unit-growth. Add Optimization for various | |
3357 IPA-related parameters. | |
3358 | |
3359 2020-01-09 Richard Biener <rguenther@suse.de> | |
3360 | |
3361 PR middle-end/93054 | |
3362 * gimplify.c (gimplify_expr): Deal with NOP definitions. | |
3363 | |
3364 2020-01-09 Richard Biener <rguenther@suse.de> | |
3365 | |
3366 PR tree-optimization/93040 | |
3367 * gimple-ssa-store-merging.c (find_bswap_or_nop): Raise search limit. | |
3368 | |
3369 2020-01-09 Georg-Johann Lay <avr@gjlay.de> | |
3370 | |
3371 * common/config/avr/avr-common.c (avr_option_optimization_table) | |
3372 [OPT_LEVELS_1_PLUS]: Set -fsplit-wide-types-early. | |
3373 | |
3374 2020-01-09 Martin Liska <mliska@suse.cz> | |
3375 | |
3376 * cgraphclones.c (symbol_table::materialize_all_clones): | |
3377 Use cgraph_node::dump_name. | |
3378 | |
3379 2020-01-09 Jakub Jelinek <jakub@redhat.com> | |
3380 | |
3381 PR inline-asm/93202 | |
3382 * config/riscv/riscv.c (riscv_print_operand_reloc): Use | |
3383 output_operand_lossage instead of gcc_unreachable. | |
3384 * doc/md.texi (riscv f constraint): Fix typo. | |
3385 | |
3386 PR target/93141 | |
3387 * config/i386/i386.md (subv<mode>4): Use SWIDWI iterator instead of | |
3388 SWI. Use <general_hilo_operand> instead of <general_operand>. Use | |
3389 CONST_SCALAR_INT_P instead of CONST_INT_P. | |
3390 (*subv<mode>4_1): Rename to ... | |
3391 (subv<mode>4_1): ... this. | |
3392 (*subv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New | |
3393 define_insn_and_split patterns. | |
3394 (*subv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn | |
131 | 3395 patterns. |
145 | 3396 |
3397 2020-01-08 David Malcolm <dmalcolm@redhat.com> | |
3398 | |
3399 * vec.c (class selftest::count_dtor): New class. | |
3400 (selftest::test_auto_delete_vec): New test. | |
3401 (selftest::vec_c_tests): Call it. | |
3402 * vec.h (class auto_delete_vec): New class template. | |
3403 (auto_delete_vec<T>::~auto_delete_vec): New dtor. | |
3404 | |
3405 2020-01-08 David Malcolm <dmalcolm@redhat.com> | |
3406 | |
3407 * sbitmap.h (auto_sbitmap): Add operator const_sbitmap. | |
3408 | |
3409 2020-01-08 Jim Wilson <jimw@sifive.com> | |
3410 | |
3411 * config/riscv/riscv.c (riscv_legitimize_tls_address): Ifdef out | |
3412 use of TLS_MODEL_LOCAL_EXEC when not pic. | |
3413 | |
3414 2020-01-08 David Malcolm <dmalcolm@redhat.com> | |
3415 | |
3416 * hash-map-tests.c (selftest::test_map_of_strings_to_int): Fix | |
3417 memory leak. | |
3418 | |
3419 2020-01-08 Jakub Jelinek <jakub@redhat.com> | |
3420 | |
3421 PR target/93187 | |
3422 * config/i386/i386.md (*stack_protect_set_2_<mode> peephole2, | |
3423 *stack_protect_set_3 peephole2): Also check that the second | |
3424 insns source is general_operand. | |
3425 | |
3426 PR target/93174 | |
3427 * config/i386/i386.md (addcarry<mode>_0): Use nonimmediate_operand | |
3428 predicate for output operand instead of register_operand. | |
3429 (addcarry<mode>, addcarry<mode>_1): Likewise. Add alternative with | |
3430 memory destination and non-memory operands[2]. | |
3431 | |
3432 2020-01-08 Martin Liska <mliska@suse.cz> | |
3433 | |
3434 * cgraph.c (cgraph_node::dump): Use ::dump_name or | |
3435 ::dump_asm_name instead of (::name or ::asm_name). | |
3436 * cgraphclones.c (symbol_table::materialize_all_clones): Likewise. | |
3437 * cgraphunit.c (walk_polymorphic_call_targets): Likewise. | |
3438 (analyze_functions): Likewise. | |
3439 (expand_all_functions): Likewise. | |
3440 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. | |
3441 (propagate_bits_across_jump_function): Likewise. | |
3442 (dump_profile_updates): Likewise. | |
3443 (ipcp_store_bits_results): Likewise. | |
3444 (ipcp_store_vr_results): Likewise. | |
3445 * ipa-devirt.c (dump_targets): Likewise. | |
3446 * ipa-fnsummary.c (analyze_function_body): Likewise. | |
3447 * ipa-hsa.c (check_warn_node_versionable): Likewise. | |
3448 (process_hsa_functions): Likewise. | |
3449 * ipa-icf.c (sem_item_optimizer::merge_classes): Likewise. | |
3450 (set_alias_uids): Likewise. | |
3451 * ipa-inline-transform.c (save_inline_function_body): Likewise. | |
3452 * ipa-inline.c (recursive_inlining): Likewise. | |
3453 (inline_to_all_callers_1): Likewise. | |
3454 (ipa_inline): Likewise. | |
3455 * ipa-profile.c (ipa_propagate_frequency_1): Likewise. | |
3456 (ipa_propagate_frequency): Likewise. | |
131 | 3457 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. |
145 | 3458 (remove_described_reference): Likewise. |
3459 * ipa-pure-const.c (worse_state): Likewise. | |
3460 (check_retval_uses): Likewise. | |
3461 (analyze_function): Likewise. | |
131 | 3462 (propagate_pure_const): Likewise. |
3463 (propagate_nothrow): Likewise. | |
3464 (dump_malloc_lattice): Likewise. | |
3465 (propagate_malloc): Likewise. | |
145 | 3466 (pass_local_pure_const::execute): Likewise. |
3467 * ipa-visibility.c (optimize_weakref): Likewise. | |
3468 (function_and_variable_visibility): Likewise. | |
3469 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. | |
3470 (ipa_discover_variable_flags): Likewise. | |
3471 * lto-streamer-out.c (output_function): Likewise. | |
3472 (output_constructor): Likewise. | |
3473 * tree-inline.c (copy_bb): Likewise. | |
3474 * tree-ssa-structalias.c (ipa_pta_execute): Likewise. | |
3475 * varpool.c (symbol_table::remove_unreferenced_decls): Likewise. | |
3476 | |
3477 2020-01-08 Richard Biener <rguenther@suse.de> | |
3478 | |
3479 PR middle-end/93199 | |
3480 * tree-eh.c (sink_clobbers): Update virtual operands for | |
3481 the first and last stmt only. Add a dry-run capability. | |
3482 (pass_lower_eh_dispatch::execute): Perform clobber sinking | |
3483 after CFG manipulations and in RPO order to catch all | |
3484 secondary opportunities reliably. | |
3485 | |
3486 2020-01-08 Georg-Johann Lay <avr@gjlay.de> | |
3487 | |
3488 PR target/93182 | |
3489 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. | |
3490 | |
3491 2019-01-08 Richard Biener <rguenther@suse.de> | |
3492 | |
3493 PR middle-end/93199 | |
3494 * gimple-fold.c (rewrite_to_defined_overflow): Mark stmt modified. | |
3495 * tree-ssa-loop-im.c (move_computations_worker): Properly adjust | |
3496 virtual operand, also updating SSA use. | |
3497 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction): | |
3498 Update stmt after resetting virtual operand. | |
3499 (tree_loop_interchange::move_code_to_inner_loop): Likewise. | |
3500 * gimple-iterator.c (gsi_remove): When not removing the stmt | |
3501 permanently do not delink immediate uses or mark the stmt modified. | |
3502 | |
3503 2020-01-08 Martin Liska <mliska@suse.cz> | |
3504 | |
3505 * ipa-fnsummary.c (dump_ipa_call_summary): Use symtab_node::dump_name. | |
3506 (ipa_call_context::estimate_size_and_time): Likewise. | |
3507 (inline_analyze_function): Likewise. | |
3508 | |
3509 2020-01-08 Martin Liska <mliska@suse.cz> | |
3510 | |
3511 * cgraph.c (cgraph_node::dump): Use systematically | |
3512 dump_asm_name. | |
3513 | |
3514 2020-01-08 Georg-Johann Lay <avr@gjlay.de> | |
3515 | |
3516 Add -nodevicespecs option for avr. | |
3517 | |
3518 PR target/93182 | |
3519 * config/avr/avr.opt (-nodevicespecs): New driver option. | |
3520 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue | |
3521 "-specs=device-specs/..." if that option is not set. | |
3522 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. | |
3523 | |
3524 2020-01-08 Georg-Johann Lay <avr@gjlay.de> | |
3525 | |
3526 Implement 64-bit double functions for avr. | |
3527 | |
3528 PR target/92055 | |
3529 * config.gcc (tm_defines) [target=avr]: Support --with-libf7, | |
3530 --with-double-comparison. | |
3531 * doc/install.texi: Document them. | |
3532 * config/avr/avr-c.c (avr_cpu_cpp_builtins) | |
3533 <WITH_LIBF7_LIBGCC, WITH_LIBF7_MATH, WITH_LIBF7_MATH_SYMBOLS> | |
3534 <WITH_DOUBLE_COMPARISON>: New built-in defines. | |
3535 * doc/invoke.texi (AVR Built-in Macros): Document them. | |
3536 * config/avr/avr-protos.h (avr_float_lib_compare_returns_bool): New. | |
3537 * config/avr/avr.c (avr_float_lib_compare_returns_bool): New function. | |
3538 * config/avr/avr.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): New macro. | |
3539 | |
3540 2020-01-08 Richard Earnshaw <rearnsha@arm.com> | |
3541 | |
3542 PR target/93188 | |
3543 * config/arm/t-multilib (MULTILIB_MATCHES): Add rules to match | |
3544 armv7-a{+mp,+sec,+mp+sec} to appropriate armv7 multilib variants | |
3545 when only building rm-profile multilibs. | |
3546 | |
3547 2020-01-08 Feng Xue <fxue@os.amperecomputing.com> | |
3548 | |
3549 PR ipa/93084 | |
3550 * ipa-cp.c (self_recursively_generated_p): Find matched aggregate | |
3551 lattice for a value to check. | |
3552 (propagate_vals_across_arith_jfunc): Add an assertion to ensure | |
3553 finite propagation in self-recursive scc. | |
3554 | |
3555 2020-01-08 Luo Xiong Hu <luoxhu@linux.ibm.com> | |
3556 | |
3557 * ipa-inline.c (caller_growth_limits): Restore the AND. | |
3558 | |
3559 2020-01-07 Andrew Stubbs <ams@codesourcery.com> | |
3560 | |
3561 * config/gcn/gcn-valu.md (VEC_1REG_INT_ALT): Delete iterator. | |
3562 (VEC_ALLREG_ALT): New iterator. | |
3563 (VEC_ALLREG_INT_MODE): New iterator. | |
3564 (VCMP_MODE): New iterator. | |
3565 (VCMP_MODE_INT): New iterator. | |
3566 (vec_cmpu<mode>di): Use VCMP_MODE_INT. | |
3567 (vec_cmp<u>v64qidi): New define_expand. | |
3568 (vec_cmp<mode>di_exec): Use VCMP_MODE. | |
3569 (vec_cmpu<mode>di_exec): New define_expand. | |
3570 (vec_cmp<u>v64qidi_exec): New define_expand. | |
3571 (vec_cmp<mode>di_dup): Use VCMP_MODE. | |
3572 (vec_cmp<mode>di_dup_exec): Use VCMP_MODE. | |
3573 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>): Rename ... | |
3574 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>): ... to this. | |
3575 (vcond<VEC_ALL1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Rename ... | |
3576 (vcond<VEC_ALLREG_MODE:mode><VEC_ALLREG_ALT:mode>_exec): ... to this. | |
3577 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Rename ... | |
3578 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>): ... to this. | |
3579 (vcondu<VEC_ALL1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Rename ... | |
3580 (vcondu<VEC_ALLREG_MODE:mode><VEC_ALLREG_INT_MODE:mode>_exec): ... to | |
3581 this. | |
3582 * config/gcn/gcn.c (print_operand): Fix 8 and 16 bit suffixes. | |
3583 * config/gcn/gcn.md (expander): Add sign_extend and zero_extend. | |
3584 | |
3585 2020-01-07 Andrew Stubbs <ams@codesourcery.com> | |
3586 | |
3587 * config/gcn/constraints.md (DA): Update description and match. | |
3588 (DB): Likewise. | |
3589 (Db): New constraint. | |
3590 * config/gcn/gcn-protos.h (gcn_inline_constant64_p): Add second | |
3591 parameter. | |
3592 * config/gcn/gcn.c (gcn_inline_constant64_p): Add 'mixed' parameter. | |
3593 Implement 'Db' mixed immediate type. | |
3594 * config/gcn/gcn-valu.md (addcv64si3<exec_vcc>): Rework constraints. | |
3595 (addcv64si3_dup<exec_vcc>): Delete. | |
3596 (subcv64si3<exec_vcc>): Rework constraints. | |
3597 (addv64di3): Rework constraints. | |
3598 (addv64di3_exec): Rework constraints. | |
3599 (subv64di3): Rework constraints. | |
3600 (addv64di3_dup): Delete. | |
3601 (addv64di3_dup_exec): Delete. | |
3602 (addv64di3_zext): Rework constraints. | |
3603 (addv64di3_zext_exec): Rework constraints. | |
3604 (addv64di3_zext_dup): Rework constraints. | |
3605 (addv64di3_zext_dup_exec): Rework constraints. | |
3606 (addv64di3_zext_dup2): Rework constraints. | |
3607 (addv64di3_zext_dup2_exec): Rework constraints. | |
3608 (addv64di3_sext_dup2): Rework constraints. | |
3609 (addv64di3_sext_dup2_exec): Rework constraints. | |
3610 | |
3611 2020-01-07 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
3612 | |
3613 * doc/sourcebuild.texi (arm_little_endian, arm_nothumb): Documented | |
3614 existing target checks. | |
3615 | |
3616 2020-01-07 Richard Biener <rguenther@suse.de> | |
3617 | |
3618 * doc/install.texi: Bump minimal supported MPC version. | |
3619 | |
3620 2020-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
3621 | |
3622 * langhooks-def.h (lhd_simulate_enum_decl): Declare. | |
3623 (LANG_HOOKS_SIMULATE_ENUM_DECL): Use it. | |
3624 * langhooks.c: Include stor-layout.h. | |
3625 (lhd_simulate_enum_decl): New function. | |
3626 * config/aarch64/aarch64-sve-builtins.cc (init_builtins): Call | |
3627 handle_arm_sve_h for the LTO frontend. | |
3628 (register_vector_type): Cope with null returns from pushdecl. | |
3629 | |
3630 2020-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
3631 | |
3632 * config/aarch64/aarch64-protos.h (aarch64_sve::svbool_type_p) | |
3633 (aarch64_sve::nvectors_if_data_type): Replace with... | |
3634 (aarch64_sve::builtin_type_p): ...this. | |
3635 * config/aarch64/aarch64-sve-builtins.cc: Include attribs.h. | |
3636 (find_vector_type): Delete. | |
3637 (add_sve_type_attribute): New function. | |
3638 (lookup_sve_type_attribute): Likewise. | |
3639 (register_builtin_types): Add an "SVE type" attribute to each type. | |
3640 (register_tuple_type): Likewise. | |
3641 (svbool_type_p, nvectors_if_data_type): Delete. | |
3642 (mangle_builtin_type): Use lookup_sve_type_attribute. | |
3643 (builtin_type_p): Likewise. Add an overload that returns the | |
3644 number of constituent vector and predicate registers. | |
3645 * config/aarch64/aarch64.c (aarch64_sve_argument_p): Delete. | |
3646 (aarch64_returns_value_in_sve_regs_p): Use aarch64_sve::builtin_type_p | |
3647 instead of aarch64_sve_argument_p. | |
3648 (aarch64_takes_arguments_in_sve_regs_p): Likewise. | |
3649 (aarch64_pass_by_reference): Likewise. | |
3650 (aarch64_function_value_1): Likewise. | |
3651 (aarch64_return_in_memory): Likewise. | |
3652 (aarch64_layout_arg): Likewise. | |
3653 | |
3654 2020-01-07 Jakub Jelinek <jakub@redhat.com> | |
3655 | |
3656 PR tree-optimization/93156 | |
3657 * tree-ssa-ccp.c (bit_value_binop): For x * x note that the second | |
3658 least significant bit is always clear. | |
3659 | |
3660 PR tree-optimization/93118 | |
3661 * match.pd ((x >> c) << c -> x & (-1<<c)): Add nop_convert?. Add new | |
3662 simplifier with two intermediate conversions. | |
3663 | |
3664 2020-01-07 Martin Liska <mliska@suse.cz> | |
3665 | |
3666 * params.opt: Add Optimization for various parameters. | |
3667 | |
3668 2020-01-07 Martin Liska <mliska@suse.cz> | |
3669 | |
3670 PR ipa/83411 | |
3671 * doc/extend.texi: Explain cloning for target_clone | |
131 | 3672 attribute. |
145 | 3673 |
3674 2020-01-07 Martin Liska <mliska@suse.cz> | |
3675 | |
3676 PR tree-optimization/92860 | |
3677 * common.opt: Make in Optimization option | |
3678 as it is affected by -O0, which is an Optimization | |
3679 option. | |
3680 * tree-inline.c (tree_inlinable_function_p): | |
3681 Use opt_for_fn for warn_inline. | |
3682 (expand_call_inline): Likewise. | |
3683 | |
3684 2020-01-07 Martin Liska <mliska@suse.cz> | |
3685 | |
3686 PR tree-optimization/92860 | |
3687 * common.opt: Make flag_ree as optimization | |
3688 attribute. | |
3689 | |
3690 2020-01-07 Martin Liska <mliska@suse.cz> | |
3691 | |
3692 PR optimization/92860 | |
3693 * params.opt: Mark param_min_crossjump_insns with Optimization | |
3694 keyword. | |
3695 | |
3696 2020-01-07 Luo Xiong Hu <luoxhu@linux.ibm.com> | |
3697 | |
3698 * ipa-inline-analysis.c (estimate_growth): Fix typo. | |
3699 * ipa-inline.c (caller_growth_limits): Use OR instead of AND. | |
3700 | |
3701 2020-01-06 Michael Meissner <meissner@linux.ibm.com> | |
3702 | |
3703 * config/rs6000/rs6000.c (hard_reg_and_mode_to_addr_mask): New | |
3704 helper function to return the valid addressing formats for a given | |
3705 hard register and mode. | |
3706 (rs6000_adjust_vec_address): Call hard_reg_and_mode_to_addr_mask. | |
3707 | |
3708 * config/rs6000/constraints.md (Q constraint): Update | |
3709 documentation. | |
3710 * doc/md.texi (RS/6000 constraints): Update 'Q' cosntraint | |
3711 documentation. | |
3712 | |
3713 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): | |
3714 Use 'Q' for doing vector extract from memory. | |
3715 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from | |
3716 memory. | |
3717 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for | |
3718 doing vector extract from memory. | |
3719 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector | |
3720 extract from memory. | |
3721 | |
3722 * config/rs6000/rs6000.c (rs6000_adjust_vec_address): Add support | |
3723 for the offset being 34-bits when -mcpu=future is used. | |
3724 | |
3725 2020-01-06 John David Anglin <danglin@gcc.gnu.org> | |
3726 | |
3727 * config/pa/pa.md: Revert change to use ordered_comparison_operator | |
3728 instead of cmpib_comparison_operator in cmpib patterns. | |
3729 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal | |
3730 of cmpib_comparison_operator. Revise comment. | |
3731 | |
3732 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
3733 | |
3734 * tree-vect-slp.c (vect_build_slp_tree_1): Require all shifts | |
3735 in an IFN_DIV_POW2 node to be equal. | |
3736 | |
3737 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
3738 | |
3739 * tree-vect-stmts.c (vect_check_load_store_mask): Rename to... | |
3740 (vect_check_scalar_mask): ...this. | |
3741 (vectorizable_store, vectorizable_load): Update call accordingly. | |
3742 (vectorizable_call): Use vect_check_scalar_mask to check the mask | |
3743 argument in calls to conditional internal functions. | |
3744 | |
3745 2020-01-06 Andrew Stubbs <ams@codesourcery.com> | |
3746 | |
3747 * config/gcn/gcn-valu.md (subv64di3): Use separate alternatives for | |
3748 '0' matching inputs. | |
3749 (subv64di3_exec): Likewise. | |
3750 | |
3751 2020-01-06 Bryan Stenson <bryan@siliconvortex.com> | |
3752 | |
3753 * config/mips/mips.c (vr4130_align_insns): Fix typo. | |
3754 * doc/md.texi (movstr): Likewise. | |
3755 | |
3756 2020-01-06 Andrew Stubbs <ams@codesourcery.com> | |
3757 | |
3758 * config/gcn/gcn-valu.md (vec_extract<mode><scalar_mode>): Add early | |
3759 clobber. | |
3760 | |
3761 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
3762 | |
3763 * config/aarch64/t-aarch64 ($(srcdir)/config/aarch64/aarch64-tune.md): | |
3764 Depend on... | |
3765 (s-aarch64-tune-md): ...this new stamp file. Pipe the new contents | |
3766 to a temporary file and use move-if-change to update the real | |
3767 file where necessary. | |
3768 | |
3769 2020-01-06 Richard Sandiford <richard.sandiford@arm.com> | |
3770 | |
3771 * config/aarch64/aarch64-sve.md (@aarch64_sel_dup<mode>): Use Upl | |
3772 rather than Upa for CPY /M. | |
3773 | |
3774 2020-01-06 Andrew Stubbs <ams@codesourcery.com> | |
3775 | |
3776 * config/gcn/gcn.c (gcn_inline_constant_p): Allow 64 as an inline | |
3777 immediate. | |
3778 | |
3779 2020-01-06 Martin Liska <mliska@suse.cz> | |
3780 | |
3781 PR tree-optimization/92860 | |
3782 * params.opt: Mark param_max_combine_insns with Optimization | |
3783 keyword. | |
3784 | |
3785 2020-01-05 Jakub Jelinek <jakub@redhat.com> | |
3786 | |
3787 PR target/93141 | |
3788 * config/i386/i386.md (SWIDWI): New mode iterator. | |
3789 (DWI, dwi): Add TImode variants. | |
3790 (addv<mode>4): Use SWIDWI iterator instead of SWI. Use | |
3791 <general_hilo_operand> instead of <general_operand>. Use | |
3792 CONST_SCALAR_INT_P instead of CONST_INT_P. | |
3793 (*addv<mode>4_1): Rename to ... | |
3794 (addv<mode>4_1): ... this. | |
3795 (QWI): New mode attribute. | |
3796 (*addv<dwi>4_doubleword, *addv<dwi>4_doubleword_1): New | |
3797 define_insn_and_split patterns. | |
3798 (*addv<mode>4_overflow_1, *addv<mode>4_overflow_2): New define_insn | |
131 | 3799 patterns. |
145 | 3800 (uaddv<mode>4): Use SWIDWI iterator instead of SWI. Use |
3801 <general_hilo_operand> instead of <general_operand>. | |
3802 (*addcarry<mode>_1): New define_insn. | |
3803 (*add<dwi>3_doubleword_cc_overflow_1): New define_insn_and_split. | |
3804 | |
3805 2020-01-03 Konstantin Kharlamov <Hi-Angel@yandex.ru> | |
3806 | |
3807 * gdbinit.in (pr, prl, pt, pct, pgg, pgq, pgs, pge, pmz, pdd, pbs, pbm): | |
3808 Use "call" instead of "set". | |
3809 | |
3810 2020-01-03 Martin Jambor <mjambor@suse.cz> | |
3811 | |
3812 PR ipa/92917 | |
3813 * ipa-cp.c (print_all_lattices): Skip functions without info. | |
3814 | |
3815 2020-01-03 Jakub Jelinek <jakub@redhat.com> | |
3816 | |
3817 PR target/93089 | |
3818 * config/i386/i386-options.c (ix86_simd_clone_adjust): If | |
3819 TARGET_PREFER_AVX128, use prefer-vector-width=256 for 'c' and 'd' | |
3820 simd clones. If TARGET_PREFER_AVX256, use prefer-vector-width=512 | |
3821 for 'e' simd clones. | |
3822 | |
3823 PR target/93089 | |
3824 * config/i386/i386.opt (x_prefer_vector_width_type): Remove TargetSave | |
3825 entry. | |
3826 (mprefer-vector-width=): Add Save. | |
3827 * config/i386/i386-options.c (ix86_target_string): Add PVW argument, print | |
3828 -mprefer-vector-width= if non-zero. Fix up -mfpmath= comment. | |
3829 (ix86_debug_options, ix86_function_specific_print): Adjust | |
3830 ix86_target_string callers. | |
3831 (ix86_valid_target_attribute_inner_p): Handle prefer-vector-width=. | |
3832 (ix86_valid_target_attribute_tree): Likewise. | |
3833 * config/i386/i386-options.h (ix86_target_string): Add PVW argument. | |
3834 * config/i386/i386-expand.c (ix86_expand_builtin): Adjust | |
3835 ix86_target_string caller. | |
3836 | |
3837 PR target/93110 | |
3838 * config/i386/i386.md (abs<mode>2): Use expand_simple_binop instead of | |
3839 emitting ASHIFTRT, XOR and MINUS by hand. Use gen_int_mode with QImode | |
3840 instead of gen_int_shift_amount + convert_modes. | |
3841 | |
3842 PR rtl-optimization/93088 | |
3843 * loop-iv.c (find_single_def_src): Punt after looking through | |
3844 128 reg copies for regs with single definitions. Move definitions | |
3845 to first uses. | |
3846 | |
3847 2020-01-02 Dennis Zhang <dennis.zhang@arm.com> | |
3848 | |
3849 * config/arm/arm-c.c (arm_cpu_builtins): Define | |
3850 __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC, | |
3851 __ARM_FEATURE_BF16_SCALAR_ARITHMETIC, and | |
3852 __ARM_BF16_FORMAT_ALTERNATIVE when enabled. | |
3853 * config/arm/arm-cpus.in (armv8_6, i8mm, bf16): New features. | |
3854 * config/arm/arm-tables.opt: Regenerated. | |
3855 * config/arm/arm.c (arm_option_reconfigure_globals): Initialize | |
3856 arm_arch_i8mm and arm_arch_bf16 when enabled. | |
3857 * config/arm/arm.h (TARGET_I8MM): New macro. | |
3858 (TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. | |
3859 * config/arm/t-aprofile: Add matching rules for -march=armv8.6-a. | |
3860 * config/arm/t-arm-elf (all_v8_archs): Add armv8.6-a. | |
3861 * config/arm/t-multilib: Add matching rules for -march=armv8.6-a. | |
3862 (v8_6_a_simd_variants): New. | |
3863 (v8_*_a_simd_variants): Add i8mm and bf16. | |
3864 * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options. | |
3865 | |
3866 2020-01-02 Jakub Jelinek <jakub@redhat.com> | |
3867 | |
3868 PR ipa/93087 | |
3869 * predict.c (compute_function_frequency): Don't call | |
3870 warn_function_cold on functions that already have cold attribute. | |
3871 | |
3872 2020-01-01 John David Anglin <danglin@gcc.gnu.org> | |
3873 | |
3874 PR target/67834 | |
3875 * config/pa/pa.c (pa_elf_select_rtx_section): New. Put references to | |
3876 COMDAT group function labels in .data.rel.ro.local section. | |
3877 * config/pa/pa32-linux.h (TARGET_ASM_SELECT_RTX_SECTION): Define. | |
3878 | |
3879 PR target/93111 | |
3880 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of | |
3881 comparison_operator in B and S integer comparisons. Likewise, use | |
3882 ordered_comparison_operator instead of cmpib_comparison_operator in | |
3883 cmpib patterns. | |
3884 * config/pa/predicates.md (cmpib_comparison_operator): Remove. | |
3885 | |
3886 2020-01-01 Jakub Jelinek <jakub@redhat.com> | |
111 | 3887 |
3888 Update copyright years. | |
0 | 3889 |
3890 * gcc.c (process_command): Update copyright notice dates. | |
111 | 3891 * gcov-dump.c (print_version): Ditto. |
3892 * gcov.c (print_version): Ditto. | |
3893 * gcov-tool.c (print_version): Ditto. | |
3894 * gengtype.c (create_file): Ditto. | |
3895 * doc/cpp.texi: Bump @copying's copyright year. | |
3896 * doc/cppinternals.texi: Ditto. | |
3897 * doc/gcc.texi: Ditto. | |
3898 * doc/gccint.texi: Ditto. | |
3899 * doc/gcov.texi: Ditto. | |
3900 * doc/install.texi: Ditto. | |
3901 * doc/invoke.texi: Ditto. | |
131 | 3902 |
145 | 3903 2020-01-01 Jan Hubicka <hubicka@ucw.cz> |
3904 | |
3905 * ipa.c (walk_polymorphic_call_targets): Fix updating of overall | |
3906 summary. | |
3907 | |
3908 2020-01-01 Jakub Jelinek <jakub@redhat.com> | |
3909 | |
3910 PR tree-optimization/93098 | |
3911 * match.pd (popcount): For shift amounts, use integer_onep | |
3912 or wi::to_widest () == cst instead of tree_to_uhwi () == cst | |
3913 tests. Make sure that precision is power of two larger than or equal | |
3914 to 16. Ensure shift is never negative. Use HOST_WIDE_INT_UC macro | |
3915 instead of ULL suffixed constants. Formatting fixes. | |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
3916 |
145 | 3917 Copyright (C) 2020 Free Software Foundation, Inc. |
55
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
3918 |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
3919 Copying and distribution of this file, with or without modification, |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
3920 are permitted in any medium without royalty provided the copyright |
77e2b8dfacca
update it from 4.4.3 to 4.5.0
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
47
diff
changeset
|
3921 notice and this notice are preserved. |