]>
Commit | Line | Data |
---|---|---|
3f27508c JJ |
1 | 2018-12-31 Max Filippov <jcmvbkbc@gmail.com> |
2 | ||
3 | PR target/86814 | |
4 | * config/xtensa/xtensa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
5 | Define to speculation_safe_value_not_needed. | |
6 | ||
7 | 2018-12-31 Martin Liska <mliska@suse.cz> | |
8 | ||
9 | * predict.c (set_even_probabilities): Include also | |
10 | unlikely_count in calculation. | |
11 | (combine_predictions_for_bb): Consider also HOT and | |
12 | COLD labels predictions. | |
13 | * predict.def (PRED_HOT_LABEL): Move it just after | |
14 | __builtin_expect_with_probability predictor. | |
15 | (PRED_COLD_LABEL): Likewise. | |
16 | ||
17 | 2018-12-30 Jan Hubicka <hubicka@ucw.cz> | |
18 | ||
19 | * x86-tune.def: Enable inter_unit_moves_to_vec for generic. | |
20 | ||
21 | 2018-12-30 Martin Sebor <msebor@redhat.com> | |
22 | Jeff Law <law@redhat.com> | |
23 | ||
24 | * gimple-fold.c (get_range_strlen): Minor logic cleanup. Add comments | |
25 | on code's intent. | |
26 | ||
27 | * gimple-fold.c (strlen_range_kind): New enum. | |
28 | (get_range_strlen): Update signature to use strlen_range_kind | |
29 | instead of type+fuzzy. | |
30 | (get_range_strlen_tree): Update signature to use | |
31 | strlen_range_kind instead of type+fuzzy. Pass rkind down to | |
32 | get_range_strlen. Check the rkind enum value instead of | |
33 | type+fuzzy. | |
34 | (get_range_strlen): Similarly. | |
35 | (get_maxval_strlen): Update signature to make NONSTR argument have | |
36 | a default value and make static. Add asserts to ensure sanity of | |
37 | arguments. Update calls to get_range_strlen. | |
38 | (gimple_fold_builtin_strcpy): Update calls to get_maxval_strlen. | |
39 | (gimple_fold_builtin_strcat, gimple_fold_builtin_fputs): Similarly. | |
40 | (gimple_fold_builtin_memory_chk): Similarly. | |
41 | (gimple_fold_builtin_stxcpy_chk): Similarly. | |
42 | (gimple_fold_builtin_snprintf_chk): Similarly. | |
43 | (gimple_fold_builtin_sprintf, gimple_fold_builtin_snprintf): Similarly. | |
44 | * gimple-fold.h (get_maxval_strlen): Delete prototype. | |
45 | ||
46 | 2018-12-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
47 | ||
48 | * config/msp430/msp430.c (msp430_attr): Warn when the critical and | |
49 | interrupt function attributes are used together. | |
50 | * gcc/doc/extend.texi: Update documentation on the critical attribute. | |
51 | ||
52 | 2018-12-29 John David Anglin <danglin@gcc.gnu.org> | |
53 | ||
54 | * config.gcc (hppa*64*-*-linux*): Add pa/t-pa to tmake_file. Define | |
55 | d_target_objs. | |
56 | (hppa*-*-openbsd*): Likewise. | |
57 | (hppa[12]*-*-hpux10*): Likewise. | |
58 | (hppa*64*-*-hpux11*): Likewise. | |
59 | (hppa[12]*-*-hpux11*): Likewise. | |
60 | ||
61 | 2018-12-29 Jakub Jelinek <jakub@redhat.com> | |
62 | ||
63 | PR ipa/88586 | |
64 | * omp-low.c (lower_omp_task_reductions): Set DECL_CONTEXT on field | |
65 | and ifield. Update TYPE_ALIGN from alignment of field, ifield or | |
66 | bfield. | |
67 | ||
68 | 2018-12-28 Uros Bizjak <ubizjak@gmail.com> | |
69 | ||
70 | * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add | |
71 | sil, dil, bpl and spl aliases. | |
72 | ||
73 | 2018-12-28 Martin Sebor <msebor@redhat.com> | |
74 | ||
75 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Avoid | |
76 | undesirable warning. | |
77 | ||
78 | 2018-12-28 Thomas Schwinge <thomas@codesourcery.com> | |
79 | ||
80 | * omp-expand.c (expand_omp_target): Restructure OpenACC vs. OpenMP | |
81 | code paths. Update for libgomp OpenACC entry points change. | |
82 | ||
83 | 2018-12-28 Thomas Schwinge <thomas@codesourcery.com> | |
84 | Julian Brown <julian@codesourcery.com> | |
85 | ||
86 | * gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug. | |
87 | ||
88 | 2018-12-27 Jan Hubicka <hubicka@ucw.cz> | |
89 | ||
90 | * ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types. | |
91 | (polymorphic_call_target_hasher::hash): Hash it. | |
92 | (polymorphic_call_target_hasher::equal): Compare it. | |
93 | (possible_polymorphic_call_targets): Set it. | |
94 | * tree.c (free_lang_data): Rebuild type inheritance graph even on | |
95 | non-LTO path. | |
96 | ||
97 | 2018-12-27 Martin Liska <mliska@suse.cz> | |
98 | ||
99 | PR gcov-profile/88225 | |
100 | * gcov.c(source_info::get_functions_at_location): | |
101 | Use newly added line_to_function_map. | |
102 | (source_info::add_function): New. | |
103 | (output_json_intermediate_file): Use a pointer return | |
104 | type for get_functions_at_location. | |
105 | (process_all_functions): Use add_function instead | |
106 | of direct push to a s->functions container. | |
107 | (release_structures): Release ident_to_fn. | |
108 | (read_graph_file): Register function into ident_to_fn. | |
109 | (read_count_file): Use the map. | |
110 | (output_lines): Handle pointer return type of | |
111 | get_functions_at_location. | |
112 | ||
113 | 2018-12-27 Martin Liska <mliska@suse.cz> | |
114 | ||
115 | * builtins.c (expand_movstr): Compare with RETURN_BEGIN. | |
116 | * expr.c (move_by_pieces): Likewise. | |
117 | (store_by_pieces): Likewise. | |
118 | (store_expr): Fix GNU coding style. | |
119 | ||
120 | 2018-12-26 Andrew Pinski <apinski@marvell.com> | |
121 | ||
122 | * config/aarch64/aarch64-cores.def (octeontx): New. | |
123 | (octeontx81): Likewise. | |
124 | (octeontx83): Likewise. | |
125 | * config/aarch64/aarch64-tune.md: Regenerate. | |
126 | * doc/invoke.texi (AArch64 Options) [mtune]: Add octeontx, octeontx81 | |
127 | and octeontx83. | |
128 | ||
129 | 2018-12-24 Martin Sebor <msebor@redhat.com> | |
130 | ||
131 | * gimple-fold.c (get_range_strlen_tree): Factored out of | |
132 | get_range_strlen. Minor comment updates/additions. Assert | |
133 | argument is not a simple SSA_NAME. | |
134 | (get_range_strlen): Call get_range_strlen_tree as appropriate. | |
135 | Minor comment updates/additions. | |
136 | ||
137 | 2018-12-24 Jan Hubicka <hubicka@ucw.cz> | |
138 | ||
139 | * ipa-devirt.c (dump_targets): Cap number of targets printed. | |
140 | (dump_possible_polymorphic_call_targets): Add verbose parameter. | |
141 | (ipa_devirt): Use it. | |
142 | * ipa-utils.h (dump_possible_polymorphic_call_targets): Add verbose | |
143 | parametrs. | |
144 | ||
145 | 2018-12-24 Jan Hubicka <hubicka@ucw.cz> | |
146 | ||
147 | PR lto/88140 | |
148 | * tree.c (fld_simplified_type): Temporarily disable array | |
149 | simplification. | |
150 | ||
151 | 2018-12-24 Jan Hubicka <hubicka@ucw.cz> | |
152 | ||
153 | * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations | |
154 | for method whose basetype was already reported. | |
155 | * ipa-devirt.c (odr_type_violation_reported_p): New. | |
156 | * ipa-utils.h (odr_type_violation_reported_p): Declare. | |
157 | ||
158 | 2018-12-24 Iain Sandoe <iain@sandoe.co.uk> | |
159 | ||
160 | * configure.ac (dwarf2_debug_line): Check for the debug_line | |
161 | section using otool when there’s no objdump available. | |
162 | * configure: Regenerate. | |
163 | ||
164 | 2018-12-24 Jan Hubicka <hubicka@ucw.cz> | |
165 | ||
166 | * ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary; | |
167 | also handle rescaling of mismatched profiles. | |
168 | * ipa-fnsummary.c (analyze_function): Handle speculative edges. | |
169 | ||
170 | 2018-12-23 Martin Sebor <msebor@redhat.com> | |
171 | Jeff Law <law@redhat.com> | |
172 | ||
173 | * builtins.h (c_strlen_data): Add new fields and comments. | |
174 | * builtins.c (unterminated_array): Change field reference from | |
175 | "len" to "minlen" in c_strlen_data instance. | |
176 | * gimple-fold.c (get_range_strlen): Likewise. | |
177 | * gimple-ssa-sprintf.c (get_string_length): Likewise. | |
178 | ||
179 | * builtins.c (unterminated_array): Rename "data" to "lendata". Fix | |
180 | a few comments. | |
181 | (expand_builtin_strnlen, expand_builtin_stpcpy_1): Likewise. | |
182 | (fold_builtin_strlen): Likewise. | |
183 | * gimple-fold.c (get_range_strlen): Likewise. Also rename a couple | |
184 | instances of "type" to "optype" and "arg" to "fld". | |
185 | ||
186 | * builtins.c (unterminated_array): Use empty brace initialization | |
187 | for c_strlen_data. | |
188 | (c_strlen, expand_builtin_strnlen): Likewise. | |
189 | (expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise. | |
190 | * gimple-fold.c (get_range_strlen): Likewise. | |
191 | (gimple_fold_builtin_stpcpy): Likewise. | |
192 | * gimple-ssa-sprintf.c (get_string_length): Likewise. | |
193 | ||
194 | 2018-12-23 Alan Modra <amodra@gmail.com> | |
195 | ||
196 | PR 88346 | |
197 | * config/rs6000/rs6000.h (ASM_CPU_SPEC): Correct %e message. Handle | |
198 | -mcpu=rs64, not -mcpu=rs64a. Handle -mcpu=powerpc64 and -mcpu=titan. | |
199 | * config/rs6000/driver-rs6000.c (asm_names): Similarly. | |
200 | * config/rs6000/aix71.h (ASM_CPU_SPEC): Delete %e message. Handle | |
201 | -mcpu=rs64, not -mcpu=rs64a. | |
202 | * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. | |
203 | ||
204 | 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> | |
205 | ||
206 | * lto-wrapper.c (tool_cleanup): Don’t report ficticious temp files. | |
207 | (debug_objcopy): Improve temp filenames. Append the early | |
208 | debug objects to the outfiles. Remove the phase prelinking the | |
209 | early debug. Emit the early debug filenames for ld. | |
210 | ||
211 | 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> | |
212 | ||
213 | * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. | |
214 | ||
215 | 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> | |
216 | ||
217 | * collect2.c (maybe_run_lto_and_relink): Don’t say we have a temp file | |
218 | unless we actually did some LTO. | |
219 | (has_lto_section, is_lto_object_file): New. | |
220 | (maybe_lto_object_file): Remove. | |
221 | (scan_prog_file): Use is_lto_object_file() instead of scanning the | |
222 | output of nm. | |
223 | ||
224 | 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> | |
225 | ||
226 | * collect2.c (main): Parse the output file early so we can make nicer | |
227 | temp names. Respond to “-save-temps” in the GCC OPTIONS. | |
228 | (maybe_unlink): Don’t print “[Leaving…”] for files we never created | |
229 | and don’t exist. | |
230 | ||
231 | 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> | |
232 | ||
233 | * collect2.c (main): Combine flags from both the command line and | |
234 | COLLECT_GCC_OPTIONS to determine the set in force | |
235 | ||
236 | 2018-12-21 Jan Hubicka <hubicka@ucw.cz> | |
237 | ||
238 | * ipa-utils.c (ipa_merge_profiles): Recompute summaries. | |
239 | ||
240 | 2018-12-21 Jakub Jelinek <jakub@redhat.com> | |
241 | ||
242 | PR middle-end/85594 | |
243 | PR middle-end/88553 | |
244 | * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition | |
245 | if needed. | |
246 | (expand_omp_for_generic): Don't clobber t temporary for ordered loops. | |
247 | ||
248 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
249 | ||
250 | PR ipa/88561 | |
251 | * ipa-polymorphic-call.c | |
252 | (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle | |
253 | arguments of thunks correctly. | |
254 | (ipa_polymorphic_call_context::get_dynamic_context): Be ready for | |
255 | NULL instance pinter. | |
256 | * lto-cgraph.c (lto_output_node): Always stream thunk info. | |
257 | ||
258 | 2018-12-21 Andreas Krebbel <krebbel@linux.ibm.com> | |
259 | ||
260 | * config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2") | |
261 | ("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern | |
262 | definitions. | |
263 | ||
264 | 2018-12-21 Eric Botcazou <ebotcazou@adacore.com> | |
265 | ||
266 | PR rtl-optimization/87727 | |
267 | * combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine | |
268 | again moves from leaf hard registers. | |
269 | ||
270 | * final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak. | |
271 | ||
272 | 2018-12-21 Jakub Jelinek <jakub@redhat.com> | |
273 | ||
274 | PR target/88522 | |
275 | * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask, | |
276 | *avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask, | |
277 | *avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for | |
278 | -masm=intel. | |
279 | (gatherq_mode): Remove mode iterator. | |
280 | (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead | |
281 | of <xtg_mode>. | |
282 | (*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>. | |
283 | (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>, | |
284 | *avx512f_scatterdi<mode>): Use %X5 for -masm=intel. | |
285 | ||
286 | PR rtl-optimization/88563 | |
287 | * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode | |
288 | and mode arguments to convert_modes. Likewise swap mode and word_mode | |
289 | arguments. Handle both arguments with VOIDmode before convert_modes | |
290 | of one of them. Formatting fixes. | |
291 | ||
292 | 2018-12-21 Uros Bizjak <ubizjak@gmail.com> | |
293 | ||
294 | PR target/88556 | |
295 | * internal-fn.def (COSH): New. | |
296 | (SINH): Ditto. | |
297 | (TANH): Ditto. | |
298 | * optabs.def (cosh_optab): New. | |
299 | (sinh_optab): Ditto. | |
300 | (tanh_optab): Ditto. | |
301 | * config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype. | |
302 | (ix86_emit_i387_cosh): Ditto. | |
303 | (ix86_emit_i387_tanh): Ditto. | |
304 | * config/i386/i386.c (ix86_emit_i387_sinh): New function. | |
305 | (ix86_emit_i387_cosh): Ditto. | |
306 | (ix86_emit_i387_tanh): Ditto. | |
307 | * config/i386/i386.md (sinhxf2): New expander. | |
308 | (sinh<mode>2): Ditto. | |
309 | (coshxf2): Ditto. | |
310 | (cosh<mode>2): Ditto. | |
311 | (tanhxf2): Ditto. | |
312 | (tanh<mode>2): Ditto. | |
313 | ||
314 | 2018-12-21 Jakub Jelinek <jakub@redhat.com> | |
315 | ||
316 | PR target/88547 | |
317 | * config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize | |
318 | x > y ? 0 : -1 into min (x, y) == x ? -1 : 0. | |
319 | ||
320 | 2018-12-21 Jan Beulich <jbeulich@suse.com> | |
321 | ||
322 | * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>): Allow | |
323 | memory input. | |
324 | ||
325 | 2018-12-21 Alexandre Oliva <oliva@adacore.com> | |
326 | ||
327 | * config.gcc (tmake_file): Add name to tmake_file for | |
328 | each @name in --with-multilib-list on arm-*-* targets. | |
329 | * doc/install.texi (with-multilib-list): Document it. | |
330 | ||
331 | 2018-12-21 Jakub Jelinek <jakub@redhat.com> | |
332 | ||
333 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use | |
334 | DR_TARGET_ALIGNMENT on dr_info rather than dr. Spelling fixes. | |
335 | ||
336 | 2018-12-20 Joern Rennecke <joern.rennecke@riscy-ip.com> | |
337 | ||
338 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do | |
339 | versioning for data accesses with misaligned step. | |
340 | ||
341 | 2018-12-20 H.J. Lu <hongjiu.lu@intel.com> | |
342 | ||
343 | PR c/51628 | |
344 | * doc/invoke.texi: Document -Wno-address-of-packed-member. | |
345 | ||
346 | 2018-12-20 Vladimir Makarov <vmakarov@redhat.com> | |
347 | ||
348 | PR target/88457 | |
349 | * ira-color.c (fast_allocation): Choose the best cost hard reg. | |
350 | ||
351 | 2018-12-20 Richard Sandiford <richard.sandiford@arm.com> | |
352 | ||
353 | * config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs. | |
354 | (SVE_FP_UNARY): Sort. | |
355 | ||
356 | 2018-12-20 Richard Sandiford <richard.sandiford@arm.com> | |
357 | ||
358 | * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_4): Use | |
359 | sve_fmla_op rather than sve_fmad_op for the movprfx alternative. | |
360 | ||
361 | 2018-12-20 Martin Jambor <mjambor@suse.cz> | |
362 | ||
363 | PR ipa/88214 | |
364 | * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that | |
365 | ptr is a pointer. | |
366 | ||
367 | 2018-12-20 Richard Biener <rguenther@suse.de> | |
368 | ||
369 | PR tree-optimization/84362 | |
370 | * tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h. | |
371 | (struct im_mem_ref): add ref_canonical flag. | |
372 | (struct mem_ref_hasher): Use ao_ref as compare_type. | |
373 | (mem_ref_hasher::equal): Adjust and add variant comparing ao_ref | |
374 | parts. | |
375 | (mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical | |
376 | member. | |
377 | (gather_mem_refs_stmt): Set up ao_ref early and do the lookup | |
378 | using it. If we have non-equal refs canonicalize the one | |
379 | in the hashtable used for insertion. | |
380 | (tree_ssa_lim_initialize): Adjust. | |
381 | ||
382 | 2018-12-20 Jakub Jelinek <jakub@redhat.com> | |
383 | ||
384 | PR target/88547 | |
385 | * config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to | |
386 | emit vpmovm2? instruction perhaps after knot?. Reorganize code | |
387 | so that it doesn't have to test !maskcmp in almost every conditional. | |
388 | ||
389 | 2018-12-20 Alan Modra <amodra@gmail.com> | |
390 | ||
391 | * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define. | |
392 | ||
393 | 2018-12-19 Andreas Tobler <andreast@gcc.gnu.org> | |
394 | ||
395 | * config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on | |
396 | aarch64*-*-freebsd* | |
397 | ||
398 | 2018-12-19 Uros Bizjak <ubizjak@gmail.com> | |
399 | ||
400 | * config/i386/i386.md (SWI1248_AVX512BWDQ_64): Rename from | |
401 | SWI1248_AVX512BWDQ2_64. Unconditionally enable HImode. | |
402 | (*cmp<mode>_ccz_1): Emit kortest instead of ktest insn. | |
403 | Use SWI1248_AVX512BWDQ_64 mode iterator and enable only for | |
404 | TARGET_AVX512F. | |
405 | ||
406 | 2018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org> | |
407 | ||
408 | * config/arm/elf.h: Update comment about condition that need to | |
409 | match with libgcc/config/arm/lib1funcs.S to also include | |
410 | libgcc/config/arm/t-arm. | |
411 | * doc/sourcebuild.texi (output-exists, output-exists-not): Rename | |
412 | subsubsection these directives are in to "Check for output files". | |
413 | Move scan-symbol to that section and add to it new scan-symbol-not | |
414 | directive. | |
415 | ||
416 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
417 | ||
418 | * config/nvptx/nvptx.c (PTX_CTA_SIZE): Define. | |
419 | ||
420 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
421 | ||
422 | * omp-offload.c (oacc_fn_attrib_level): Remove static. | |
423 | * omp-offload.h (oacc_fn_attrib_level): Declare. | |
424 | ||
425 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
426 | ||
427 | * omp-offload.c (oacc_get_default_dim): New function. | |
428 | * omp-offload.h (oacc_get_default_dim): Declare. | |
429 | ||
430 | 2018-12-19 David Malcolm <dmalcolm@redhat.com> | |
431 | ||
432 | PR c++/87504 | |
433 | * gcc-rich-location.c | |
434 | (maybe_range_label_for_tree_type_mismatch::get_text): Move here from | |
435 | c/c-typeck.c. | |
436 | (binary_op_rich_location::binary_op_rich_location): New ctor. | |
437 | (binary_op_rich_location::use_operator_loc_p): New function. | |
438 | * gcc-rich-location.h | |
439 | (class maybe_range_label_for_tree_type_mismatch)): Move here from | |
440 | c/c-typeck.c. | |
441 | (struct op_location_t): New forward decl. | |
442 | (class binary_op_rich_location): New class. | |
443 | * tree.h (struct op_location_t): New struct. | |
444 | ||
445 | 2018-12-19 David Malcolm <dmalcolm@redhat.com> | |
446 | ||
447 | PR c++/43064 | |
448 | PR c++/43486 | |
449 | * convert.c: Include "selftest.h". | |
450 | (preserve_any_location_wrapper): New function. | |
451 | (convert_to_pointer_maybe_fold): Update to handle location | |
452 | wrappers. | |
453 | (convert_to_real_maybe_fold): Likewise. | |
454 | (convert_to_integer_1): Strip expr when using TREE_OVERFLOW. | |
455 | Handle location wrappers when checking for INTEGER_CST. | |
456 | (convert_to_integer_maybe_fold): Update to handle location | |
457 | wrappers. | |
458 | (convert_to_complex_maybe_fold): Likewise. | |
459 | (selftest::test_convert_to_integer_maybe_fold): New functions. | |
460 | (selftest::convert_c_tests): New function. | |
461 | * convert.h (preserve_any_location_wrapper): New decl. | |
462 | * fold-const.c (size_binop_loc): Strip location wrappers when | |
463 | using TREE_OVERFLOW. | |
464 | (operand_equal_p): Strip any location wrappers. | |
465 | (integer_valued_real_p): Strip any location wrapper. | |
466 | * selftest-run-tests.c (selftest::run_tests): Call | |
467 | selftest::convert_c_tests. | |
468 | * selftest.h (selftest::convert_c_tests): New decl. | |
469 | * tree.c (build_complex): Assert that REAL and IMAG are constants. | |
470 | (integer_zerop): Look through location wrappers. | |
471 | (integer_onep): Likewise. | |
472 | (integer_each_onep): Likewise. | |
473 | (integer_all_onesp): Likewise. | |
474 | (integer_minus_onep): Likewise. | |
475 | (integer_pow2p): Likewise. | |
476 | (integer_nonzerop): Likewise. | |
477 | (integer_truep): Likewise. | |
478 | (fixed_zerop): Likewise. | |
479 | (real_zerop): Likewise. | |
480 | (real_onep): Likewise. | |
481 | (real_minus_onep): Likewise. | |
482 | (tree_int_cst_equal): Likewise. | |
483 | (simple_cst_equal): Treat location wrappers with non-equal source | |
484 | locations as being unequal. | |
485 | (uniform_integer_cst_p): Look through location wrappers. | |
486 | (maybe_wrap_with_location): Don't create wrappers if any | |
487 | auto_suppress_location_wrappers are active. | |
488 | (suppress_location_wrappers): New variable. | |
489 | (selftest::test_predicates): New test. | |
490 | (selftest::tree_c_tests): Call it. | |
491 | * tree.h (CONSTANT_CLASS_OR_WRAPPER_P): New macro. | |
492 | (suppress_location_wrappers): New decl. | |
493 | (class auto_suppress_location_wrappers): New class. | |
494 | ||
495 | 2018-12-19 Paul A. Clarke <pc@us.ibm.com> | |
496 | ||
497 | * config/rs6000/tmmintrin.h (_mm_hadds_epi16): Vector lanes swapped. | |
498 | (_mm_hsub_epi32): Likewise. | |
499 | (_mm_shuffle_epi8): Fix reversed interpretation of parameters. | |
500 | (_mm_shuffle_pi8): Likewise. | |
501 | (_mm_addubs_pi16): Likewise. | |
502 | ||
503 | 2018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org> | |
504 | ||
505 | * config/arm/arm.h (TARGET_HARD_FLOAT): Restrict to TARGET_32BIT | |
506 | targets. | |
507 | * config/arm/arm.c (output_return_instruction): Only check | |
508 | TARGET_HARD_FLOAT to decide whether FP instructions are available. | |
509 | ||
510 | 2018-12-19 Tom de Vries <tom@codesourcery.com> | |
511 | ||
512 | * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization | |
513 | dump files): Add offload-rtl. | |
514 | ||
515 | 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> | |
516 | ||
517 | PR target/88213 | |
518 | * config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load): | |
519 | Require TARGET_POWERPC64. | |
520 | ||
521 | 2018-12-19 Richard Biener <rguenther@suse.de> | |
522 | ||
523 | PR tree-optimization/88533 | |
524 | Revert | |
525 | 2018-04-30 Richard Biener <rguenther@suse.de> | |
526 | ||
527 | PR tree-optimization/28364 | |
528 | PR tree-optimization/85275 | |
529 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after | |
530 | copying first exit test. | |
531 | ||
532 | * tree-ssa-loop-ch.c: Include tree-phinodes.h and | |
533 | ssa-iterators.h. | |
534 | (should_duplicate_loop_header_p): Track whether stmt compute | |
535 | loop invariants or values based on IVs. Apart from the | |
536 | original loop header only duplicate blocks with exit tests | |
537 | that are based on IVs or invariants. | |
538 | ||
539 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
540 | ||
541 | * config/nvptx/nvptx.c (nvptx_gen_shared_bcast, shared_prop_gen) | |
542 | (nvptx_goacc_expand_accel_var): Use MAX and ROUND_UP. | |
543 | (nvptx_assemble_value, nvptx_output_skip): Use MIN. | |
544 | (nvptx_shared_propagate, nvptx_single, nvptx_expand_shared_addr): Use | |
545 | MAX. | |
546 | ||
547 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
548 | ||
549 | * config/nvptx/nvptx.c (nvptx_gen_wcast): Rename as | |
550 | nvptx_gen_warp_bcast. | |
551 | (nvptx_gen_wcast): Rename to nvptx_gen_shared_bcast, add bool | |
552 | vector argument, and update call to nvptx_gen_shared_bcast. | |
553 | (propagator_fn): Add bool argument. | |
554 | (nvptx_propagate): New bool argument, pass bool argument to fn. | |
555 | (vprop_gen): Rename to warp_prop_gen, update call to | |
556 | nvptx_gen_warp_bcast. | |
557 | (nvptx_vpropagate): Rename to nvptx_warp_propagate, update call to | |
558 | nvptx_propagate. | |
559 | (wprop_gen): Rename to shared_prop_gen, update call to | |
560 | nvptx_gen_shared_bcast. | |
561 | (nvptx_wpropagate): Rename to nvptx_shared_propagate, update call | |
562 | to nvptx_propagate. | |
563 | (nvptx_wsync): Rename to nvptx_cta_sync. | |
564 | (nvptx_single): Update calls to nvptx_gen_warp_bcast, | |
565 | nvptx_gen_shared_bcast and nvptx_cta_sync. | |
566 | (nvptx_process_pars): Likewise. | |
567 | (write_worker_buffer): Rename as write_shared_buffer. | |
568 | (nvptx_file_end): Update calls to write_shared_buffer. | |
569 | (nvptx_expand_worker_addr): Rename as nvptx_expand_shared_addr. | |
570 | (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. | |
571 | (nvptx_get_worker_red_addr): Rename as nvptx_get_shared_red_addr. | |
572 | (nvptx_goacc_reduction_setup): Update call to | |
573 | nvptx_get_shared_red_addr. | |
574 | (nvptx_goacc_reduction_fini): Likewise. | |
575 | (nvptx_goacc_reduction_teardown): Likewise. | |
576 | ||
577 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
578 | ||
579 | * config/nvptx/nvptx.c (worker_bcast_size): Rename as | |
580 | oacc_bcast_size. | |
581 | (worker_bcast_align): Rename as oacc_bcast_align. | |
582 | (worker_bcast_sym): Rename as oacc_bcast_sym. | |
583 | (nvptx_option_override): Update usage of oacc_bcast_*. | |
584 | (struct wcast_data_t): Rename as broadcast_data_t. | |
585 | (nvptx_gen_wcast): Update type of data argument and usage of | |
586 | oacc_bcast_align. | |
587 | (wprop_gen): Update type of data_ and usage of oacc_bcast_align. | |
588 | (nvptx_wpropagate): Update type of data and usage of | |
589 | oacc_bcast_{sym,size}. | |
590 | (nvptx_single): Update type of data and usage of oacc_bcast_size. | |
591 | (nvptx_file_end): Update usage of oacc_bcast_{sym,align,size}. | |
592 | ||
593 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
594 | ||
595 | * config/nvptx/nvptx.md (nvptx_barsync): Add and handle operand. | |
596 | * config/nvptx/nvptx.c (nvptx_wsync): Update call to gen_nvptx_barsync. | |
597 | ||
598 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
599 | ||
600 | * config/nvptx/nvptx.c (nvptx_single): Always pass false to | |
601 | nvptx_wsync. | |
602 | (nvptx_process_pars): Likewise. | |
603 | ||
604 | 2018-12-19 Tom de Vries <tdevries@suse.de> | |
605 | ||
606 | * config/nvptx/nvptx.c (nvptx_previous_fndecl): Declare. | |
607 | (nvptx_set_current_function): New function. | |
608 | (TARGET_SET_CURRENT_FUNCTION): Define. | |
609 | ||
610 | 2018-12-19 Shaokun Zhang <zhangshaokun@hisilicon.com> | |
611 | ||
612 | * config/aarch64/aarch64-cores.def (tsv110): Fix architecture. This | |
613 | part is really Armv8.2 with some permitted Armv8.4 extensions. | |
614 | ||
615 | 2018-12-19 Jakub Jelinek <jakub@redhat.com> | |
616 | ||
617 | PR target/88541 | |
618 | * config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable | |
619 | for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq. | |
620 | ||
621 | 2018-12-19 Alexandre Oliva <aoliva@redhat.com> | |
622 | ||
623 | PR testsuite/86153 | |
624 | PR middle-end/83239 | |
625 | * vr-values.c | |
626 | (vr_values::vrp_evaluate_conditional_warnv_with_ops): Extend | |
627 | simplification of overflow tests to cover cases in which we | |
628 | can determine the result of the comparison. | |
629 | ||
630 | 2018-12-19 Bin Cheng <bin.cheng@linux.alibaba.com> | |
631 | ||
632 | * auto-profile.c (afdo_indirect_call): Skip generating histogram | |
633 | value if we can't find cgraph_node for then indirected callee. Save | |
634 | profile_id of the cgraph_node in histogram value's first counter. | |
635 | * value-prof.c (gimple_value_profile_transformations): Don't skip | |
636 | for flag_auto_profile. | |
637 | ||
638 | 2018-12-18 Vladimir Makarov <vmakarov@redhat.com> | |
639 | ||
640 | PR rtl-optimization/87759 | |
641 | * lra-assigns.c (lra_split_hard_reg_for): Recalculate | |
642 | non_reload_pseudos. | |
643 | ||
644 | 2018-12-18 Jakub Jelinek <jakub@redhat.com> | |
645 | ||
646 | PR target/88464 | |
647 | * config/i386/i386-builtin-types.def | |
648 | (VOID_FTYPE_PDOUBLE_QI_V8SI_V4DF_INT, | |
649 | VOID_FTYPE_PFLOAT_QI_V4DI_V8SF_INT, | |
650 | VOID_FTYPE_PLONGLONG_QI_V8SI_V4DI_INT, | |
651 | VOID_FTYPE_PINT_QI_V4DI_V8SI_INT, | |
652 | VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT, | |
653 | VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT, | |
654 | VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT, | |
655 | VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): New builtin types. | |
656 | * config/i386/i386.c (enum ix86_builtins): Add | |
657 | IX86_BUILTIN_SCATTERALTSIV4DF, IX86_BUILTIN_SCATTERALTDIV8SF, | |
658 | IX86_BUILTIN_SCATTERALTSIV4DI, IX86_BUILTIN_SCATTERALTDIV8SI, | |
659 | IX86_BUILTIN_SCATTERALTSIV2DF, IX86_BUILTIN_SCATTERALTDIV4SF, | |
660 | IX86_BUILTIN_SCATTERALTSIV2DI and IX86_BUILTIN_SCATTERALTDIV4SI. | |
661 | (ix86_init_mmx_sse_builtins): Fix up names of IX86_BUILTIN_GATHERALT*, | |
662 | IX86_BUILTIN_GATHER3ALT* and IX86_BUILTIN_SCATTERALT* builtins to | |
663 | match the IX86_BUILTIN codes. Build IX86_BUILTIN_SCATTERALTSIV4DF, | |
664 | IX86_BUILTIN_SCATTERALTDIV8SF, IX86_BUILTIN_SCATTERALTSIV4DI, | |
665 | IX86_BUILTIN_SCATTERALTDIV8SI, IX86_BUILTIN_SCATTERALTSIV2DF, | |
666 | IX86_BUILTIN_SCATTERALTDIV4SF, IX86_BUILTIN_SCATTERALTSIV2DI and | |
667 | IX86_BUILTIN_SCATTERALTDIV4SI decls. | |
668 | (ix86_vectorize_builtin_scatter): Expand those new builtins. | |
669 | ||
670 | 2018-12-18 Bill Schmidt <wschmidt@linux.ibm.com> | |
671 | ||
672 | * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): | |
673 | Describe when a typedef name can be used as the type specifier for | |
674 | a vector type, and when it cannot. | |
675 | ||
676 | 2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
677 | ||
678 | * config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN. | |
679 | ||
680 | 2018-12-18 Jakub Jelinek <jakub@redhat.com> | |
681 | ||
682 | PR target/88513 | |
683 | PR target/88514 | |
684 | * optabs.def (vec_pack_sbool_trunc_optab, vec_unpacks_sbool_hi_optab, | |
685 | vec_unpacks_sbool_lo_optab): New optabs. | |
686 | * optabs.c (expand_widen_pattern_expr): Use vec_unpacks_sbool_*_optab | |
687 | and pass additional argument if both input and target have the same | |
688 | scalar mode of VECTOR_BOOLEAN_TYPE_P vectors. | |
689 | * expr.c (expand_expr_real_2) <case VEC_PACK_TRUNC_EXPR>: Handle | |
690 | VECTOR_BOOLEAN_TYPE_P pack where result has the same scalar mode | |
691 | as the operands using vec_pack_sbool_trunc_optab. | |
692 | * tree-vect-stmts.c (supportable_widening_operation): Use | |
693 | vec_unpacks_sbool_{lo,hi}_optab for VECTOR_BOOLEAN_TYPE_P conversions | |
694 | where both wider_vectype and vectype have the same scalar mode. | |
695 | (supportable_narrowing_operation): Similarly use | |
696 | vec_pack_sbool_trunc_optab if narrow_vectype and vectype have the same | |
697 | scalar mode. | |
698 | * config/i386/i386.c (ix86_get_builtin) | |
699 | <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Check for VECTOR_MODE_P | |
700 | rather than non-VOIDmode. | |
701 | * config/i386/sse.md (vec_pack_trunc_qi, vec_pack_trunc_<mode>): | |
702 | Remove useless ()s around "register_operand", formatting fixes. | |
703 | (vec_pack_sbool_trunc_qi, vec_unpacks_sbool_lo_qi, | |
704 | vec_unpacks_sbool_hi_qi): New expanders. | |
705 | * doc/md.texi (vec_pack_sbool_trunc_M, vec_unpacks_sbool_hi_M, | |
706 | vec_unpacks_sbool_lo_M): Document. | |
707 | ||
708 | 2018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
709 | ||
710 | * combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits | |
711 | of src in nonzero_bits_mode if the mode of src is MODE_INT and | |
712 | HWI_COMPUTABLE. | |
713 | (reg_nonzero_bits_for_combine): Add clarification to comment. | |
714 | ||
715 | 2018-12-18 Wei Xiao <wei3.xiao@intel.com> | |
716 | ||
717 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect cascadelake. | |
718 | * config/i386/i386.c (fold_builtin_cpu): Handle cascadelake. | |
719 | * doc/extend.texi: Add cascadelake. | |
720 | 2018-12-17 Peter Bergner <bergner@linux.ibm.com> | |
721 | ||
722 | PR target/87870 | |
723 | * config/rs6000/vsx.md (nW): New mode iterator. | |
724 | (vsx_mov<mode>_64bit): Use it. Remove redundant GPR 0/-1 alternative. | |
725 | Update length attribute for (<??r>, <nW>) alternative. | |
726 | (vsx_mov<mode>_32bit): Likewise. | |
727 | ||
728 | 2018-12-17 Tom de Vries <tdevries@suse.de> | |
729 | ||
730 | * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH, | |
731 | PTX_DEFAULT_RUNTIME_DIM): Move to the top of the file. | |
732 | ||
733 | 2018-12-17 Tom de Vries <tdevries@suse.de> | |
734 | ||
735 | * config/nvptx/nvptx.c (PTX_WARP_SIZE): Define. | |
736 | (nvptx_simt_vf): Return PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. | |
737 | ||
738 | 2018-12-17 Tom de Vries <tdevries@suse.de> | |
739 | ||
740 | * config/nvptx/nvptx.c (nvptx_single): Fix whitespace. | |
741 | (nvptx_neuter_pars): Likewise. | |
742 | ||
743 | 2018-12-17 Tom de Vries <tdevries@suse.de> | |
744 | ||
745 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Work around Fortran | |
746 | bug PR72741 by overriding dims parameter for routines. | |
747 | ||
748 | 2018-12-17 Tom de Vries <tdevries@suse.de> | |
749 | ||
750 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using | |
751 | predicate vars. | |
752 | ||
753 | 2018-12-17 Steve Ellcey <sellcey@cavium.com> | |
754 | ||
755 | * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): | |
756 | New prototype. | |
757 | (aarch64_epilogue_uses): Ditto. | |
758 | * config/aarch64/aarch64.c (aarch64_attribute_table): New array. | |
759 | (aarch64_simd_decl_p): New function. | |
760 | (aarch64_reg_save_mode): New function. | |
761 | (aarch64_function_ok_for_sibcall): Check for simd calls. | |
762 | (aarch64_layout_frame): Check for simd function. | |
763 | (aarch64_gen_storewb_pair): Handle E_TFmode. | |
764 | (aarch64_push_regs): Use aarch64_reg_save_mode to get mode. | |
765 | (aarch64_gen_loadwb_pair): Handle E_TFmode. | |
766 | (aarch64_pop_regs): Use aarch64_reg_save_mode to get mode. | |
767 | (aarch64_gen_store_pair): Handle E_TFmode. | |
768 | (aarch64_gen_load_pair): Ditto. | |
769 | (aarch64_save_callee_saves): Handle different mode sizes. | |
770 | (aarch64_restore_callee_saves): Ditto. | |
771 | (aarch64_components_for_bb): Check for simd function. | |
772 | (aarch64_epilogue_uses): New function. | |
773 | (aarch64_process_components): Check for simd function. | |
774 | (aarch64_expand_prologue): Ditto. | |
775 | (aarch64_expand_epilogue): Ditto. | |
776 | (aarch64_expand_call): Ditto. | |
777 | (aarch64_use_simple_return_insn_p): New function. | |
778 | (TARGET_ATTRIBUTE_TABLE): New define. | |
779 | * config/aarch64/aarch64.h (EPILOGUE_USES): Redefine. | |
780 | (FP_SIMD_SAVED_REGNUM_P): New macro. | |
781 | * config/aarch64/aarch64.md (simple_return): New define_expand. | |
782 | (load_pair_dw_tftf): New instruction. | |
783 | (store_pair_dw_tftf): Ditto. | |
784 | (loadwb_pair<TX:mode>_<P:mode>): Ditto. | |
785 | (storewb_pair<TX:mode>_<P:mode>): Ditto. | |
786 | ||
787 | 2018-12-17 Uros Bizjak <ubizjak@gmail.com> | |
788 | ||
789 | PR target/88502 | |
790 | * internal-fn.def (ACOSH): New. | |
791 | (ASINH): Ditto. | |
792 | (ATANH): Ditto. | |
793 | * optabs.def (acosh_optab): New. | |
794 | (asinh_optab): Ditto. | |
795 | (atanh_optab): Ditto. | |
796 | * config/i386/i386-protos.h (ix86_emit_i387_asinh): New prototype. | |
797 | (ix86_emit_i387_acosh): Ditto. | |
798 | (ix86_emit_i387_atanh): Ditto. | |
799 | * config/i386/i386.c (ix86_emit_i387_asinh): New function. | |
800 | (ix86_emit_i387_acosh): Ditto. | |
801 | (ix86_emit_i387_atanh): Ditto. | |
802 | * config/i386/i386.md (asinhxf2): New expander. | |
803 | (asinh<mode>2): Ditto. | |
804 | (acoshxf2): Ditto. | |
805 | (acosh<mode>2): Ditto. | |
806 | (atanhxf2): Ditto. | |
807 | (atanh<mode>2): Ditto. | |
808 | ||
809 | 2018-12-17 David Edelsohn <dje.gcc@gmail.com> | |
810 | ||
811 | * config.gcc (powerpc-ibm-aix6.*): Delete extra_headers. | |
812 | (powerpc-ibm-aix7.1.*): Same. | |
813 | (powerpc-ibm-aix[789].*): Same. | |
814 | ||
815 | 2018-12-17 H.J. Lu <hongjiu.lu@intel.com> | |
816 | ||
817 | PR debug/79342 | |
818 | * dwarf2out.c (find_AT_string_in_table): Add insert argument | |
819 | defaulting to INSERT and replace INSERT. | |
820 | (find_AT_string): Likewise. | |
821 | (output_macinfo_op): Pass NO_INSERT to find_AT_string. | |
822 | ||
823 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
824 | ||
825 | * coverage.c (struct conts_entry): Add n_counts. | |
826 | (remap_counts_file): Record number of ocunts. | |
827 | (get_coverage_counts): Verify that counts match. | |
828 | * coverage.h (get_coverage_counts): Update prototype. | |
829 | * profile.c (get_exec_counts. compute_value_histograms): Add | |
830 | n_counts parametrs. | |
831 | ||
832 | 2018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> | |
833 | ||
834 | PR rtl-optimization/88253 | |
835 | * combine.c (combine_simplify_rtx): Test for side-effects before | |
836 | substituting by zero. | |
837 | ||
838 | 2018-12-17 Richard Sandiford <richard.sandiford@arm.com> | |
1296eaf6 RS |
839 | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> |
840 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
3f27508c JJ |
841 | |
842 | * doc/invoke.texi (-fversion-loops-for-strides): Document | |
843 | (loop-versioning-group-size, loop-versioning-max-inner-insns) | |
844 | (loop-versioning-max-outer-insns): Document new --params. | |
845 | * Makefile.in (OBJS): Add gimple-loop-versioning.o. | |
846 | * common.opt (fversion-loops-for-strides): New option. | |
847 | * opts.c (default_options_table): Enable fversion-loops-for-strides | |
848 | at -O3. | |
849 | * params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE) | |
850 | (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS) | |
851 | (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters. | |
852 | * passes.def: Add pass_loop_versioning. | |
853 | * timevar.def (TV_LOOP_VERSIONING): New time variable. | |
854 | * tree-ssa-propagate.h | |
855 | (substitute_and_fold_engine::substitute_and_fold): Add an optional | |
856 | block parameter. | |
857 | * tree-ssa-propagate.c | |
858 | (substitute_and_fold_engine::substitute_and_fold): Likewise. | |
859 | When passed, only walk blocks dominated by that block. | |
860 | * tree-vrp.h (range_includes_p): Declare. | |
861 | (range_includes_zero_p): Turn into an inline wrapper around | |
862 | range_includes_p. | |
863 | * tree-vrp.c (range_includes_p): New function, generalizing... | |
864 | (range_includes_zero_p): ...this. | |
865 | * tree-pass.h (make_pass_loop_versioning): Declare. | |
866 | * gimple-loop-versioning.cc: New file. | |
867 | ||
868 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
869 | ||
870 | * ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes | |
871 | are not streamed in. | |
872 | ||
873 | 2018-12-15 H.J. Lu <hongjiu.lu@intel.com> | |
874 | ||
875 | PR target/88483 | |
876 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Revert | |
877 | reversion 267133. | |
878 | ||
879 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
880 | ||
881 | * ipa-fnsummary.c (analyze_function_body): Do not loeak conds and | |
882 | size_time_table. | |
883 | (ipa_fn_summary_generate): Add prevails parameter; do not allocate | |
884 | data when symbol is not prevailing. | |
885 | (inline_read_section): Likewise. | |
886 | ||
887 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
888 | ||
889 | * cgraph.h (cgraph_node): Add predicate prevailing_p. | |
890 | (cgraph_edge): Add predicate possible_call_in_translation_unit_p. | |
891 | * ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR. | |
892 | (ipa_read_jump_function): Add prevails parameter; optimize streaming. | |
893 | (ipa_read_edge_info): Break out from ... | |
894 | (ipa_read_node_info): ... here; optimize streaming. | |
895 | * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New | |
896 | predicate. | |
897 | ||
898 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
899 | ||
900 | * ipa-utils.c (ipa_merge_profiles): Do no merging when source function | |
901 | has zero count. | |
902 | ||
903 | 2018-12-15 Jakub Jelinek <jakub@redhat.com> | |
904 | ||
905 | PR tree-optimization/88464 | |
906 | PR target/88498 | |
907 | * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING | |
908 | and mask with integral masktype, don't try to permute mask vectors, | |
909 | instead emit VEC_UNPACK_{LO,HI}_EXPR. Fix up NOP_EXPR operand. | |
910 | (vectorizable_store): Handle masked scatters with decl and integral | |
911 | mask type. | |
912 | (permute_vec_elements): Allow scalar_dest to be NULL. | |
913 | * config/i386/i386.c (ix86_get_builtin) | |
914 | <case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks. | |
915 | <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have | |
916 | to be the same. | |
917 | ||
918 | 2018-12-15 Jan Hubicka <hubicka@ucw.cz> | |
919 | ||
920 | * ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET | |
921 | parameters. | |
922 | (cgraph_build_static_cdtor): Update. | |
923 | (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor | |
924 | callsed. | |
925 | ||
926 | 2018-12-15 Alan Modra <amodra@gmail.com> | |
927 | ||
928 | * config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx), | |
929 | (rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv), | |
930 | (rs6000_call_darwin_1): Use gen_hard_reg_clobber. | |
931 | ||
932 | 2018-12-15 Jakub Jelinek <jakub@redhat.com> | |
933 | ||
934 | PR target/88489 | |
935 | * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. | |
936 | (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it | |
937 | instead of UNSPEC_FIXUPIMM. | |
938 | ||
939 | PR rtl-optimization/88478 | |
940 | * cselib.c (cselib_record_sets): Move sets[i].src_elt tests | |
941 | after REG_P (dest) test. | |
942 | ||
943 | 2018-12-14 Martin Sebor <msebor@redhat.com> | |
944 | ||
945 | PR tree-optimization/88372 | |
946 | * calls.c (maybe_warn_alloc_args_overflow): Handle function pointers. | |
947 | * tree-object-size.c (alloc_object_size): Same. Simplify. | |
948 | * doc/extend.texi (Object Size Checking): Update. | |
949 | (Other Builtins): Add __builtin_object_size. | |
950 | (Common Type Attributes): Add alloc_size. | |
951 | (Common Variable Attributes): Ditto. | |
952 | ||
953 | 2018-12-14 Martin Sebor <msebor@redhat.com> | |
954 | ||
955 | PR rtl-optimization/87096 | |
956 | * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Avoid | |
957 | folding calls whose bound may exceed INT_MAX. Diagnose bound ranges | |
958 | that exceed the limit. | |
959 | ||
960 | 2018-12-14 Martin Sebor <msebor@redhat.com> | |
961 | ||
962 | PR web/79738 | |
963 | * doc/extend.texi (attribute const, pure): Clarify. | |
964 | ||
965 | 2018-12-14 H.J. Lu <hongjiu.lu@intel.com> | |
966 | ||
967 | * config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR | |
968 | at the function entry only when -mmanual-endbr isn't used or | |
969 | there is cf_check function attribute. | |
970 | (ix86_attribute_table): Add cf_check. | |
971 | * config/i386/i386.opt: Add -mmanual-endbr. | |
972 | * doc/extend.texi: Document cf_check attribute. | |
973 | * doc/invoke.texi: Document -mmanual-endbr. | |
974 | ||
975 | 2018-12-14 Thomas Schwinge <thomas@codesourcery.com> | |
976 | Cesar Philippidis <cesar@codesourcery.com> | |
977 | ||
978 | * omp-offload.c (inform_oacc_loop): New function. | |
979 | (execute_oacc_device_lower): Use it to display loop parallelism. | |
980 | ||
981 | 2018-12-14 Jakub Jelinek <jakub@redhat.com> | |
982 | ||
983 | PR c++/82294 | |
984 | PR c++/87436 | |
985 | * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. | |
986 | * expr.c (categorize_ctor_elements_1): Likewise. Compute it like | |
987 | p_nz_elts, except don't multiply it by mult. Adjust recursive call. | |
988 | Fix up COMPLEX_CST handling. | |
989 | (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize | |
990 | it and pass it through to categorize_ctor_elements_1. | |
991 | (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. | |
992 | * gimplify.c (gimplify_init_constructor): Likewise. Don't force | |
993 | ctor into readonly data section if num_unique_nonzero_elements is | |
994 | smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 | |
995 | bytes. | |
996 | ||
997 | 2018-12-14 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
998 | ||
999 | * config/arm/arm.md (arm_movdi): Split if -mslow-flash-data and | |
1000 | source is a constant that would be loaded by literal pool. | |
1001 | (movsf expander): Generate a no_literal_pool_sf_immediate insn if | |
1002 | -mslow-flash-data is present, targeting hardfloat ABI and source is a | |
1003 | float constant that cannot be loaded via vmov. | |
1004 | (movdf expander): Likewise but generate a no_literal_pool_df_immediate | |
1005 | insn. | |
1006 | (arm_movsf_soft_insn): Split if -mslow-flash-data and source is a | |
1007 | float constant that would be loaded by literal pool. | |
1008 | (softfloat constant movsf splitter): Splitter for the above case. | |
1009 | (movdf_soft_insn): Split if -mslow-flash-data and source is a float | |
1010 | constant that would be loaded by literal pool. | |
1011 | (softfloat constant movdf splitter): Splitter for the above case. | |
1012 | * config/arm/constraints.md (Pz): Document existing constraint. | |
1013 | (Ha): Define constraint. | |
1014 | (Tu): Likewise. | |
1015 | * config/arm/predicates.md (hard_sf_operand): New predicate. | |
1016 | (hard_df_operand): Likewise. | |
1017 | * config/arm/thumb2.md (thumb2_movsi_insn): Split if | |
1018 | -mslow-flash-data and constant would be loaded by literal pool. | |
1019 | * constant/arm/vfp.md (thumb2_movsi_vfp): Likewise and disable constant | |
1020 | load in VFP register. | |
1021 | (movdi_vfp): Likewise. | |
1022 | (thumb2_movsf_vfp): Use hard_sf_operand as predicate for source to | |
1023 | prevent match for a constant load if -mslow-flash-data and constant | |
1024 | cannot be loaded via vmov. Adapt constraint accordingly by | |
1025 | using Ha instead of E for generic floating-point constant load. | |
1026 | (thumb2_movdf_vfp): Likewise using hard_df_operand predicate instead. | |
1027 | (no_literal_pool_df_immediate): Add a clobber to use as the | |
1028 | intermediate general purpose register and also enable it after reload | |
1029 | but disable it constant is a valid FP constant. Add constraints and | |
1030 | generate a DI intermediate load rather than 2 SI loads. | |
1031 | (no_literal_pool_sf_immediate): Add a clobber to use as the | |
1032 | intermediate general purpose register and also enable it after | |
1033 | reload. | |
1034 | ||
1035 | 2018-12-14 Uros Bizjak <ubizjak@gmail.com> | |
1036 | ||
1037 | PR target/88474 | |
1038 | * internal-fn.def (HYPOT): New. | |
1039 | * optabs.def (hypot_optab): New. | |
1040 | * config/i386/i386.md (hypot<mode>3): New expander. | |
1041 | ||
1042 | 2018-12-14 Jeff Law <law@redhat.com> | |
1043 | ||
1044 | * target.def (post_cfi_startproc): Fix text. | |
1045 | ||
1046 | 2018-12-14 Sam Tebbs <sam.tebbs@arm.com> | |
1047 | ||
1048 | * doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define. | |
1049 | * doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define. | |
1050 | * dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook. | |
1051 | * hooks.c (hook_void_FILEptr_tree): Define. | |
1052 | * hooks.h (hook_void_FILEptr_tree): Define. | |
1053 | * target.def (post_cfi_startproc): Define. | |
1054 | ||
1055 | 2018-12-14 Tom de Vries <tdevries@suse.de> | |
1056 | ||
1057 | * lto-cgraph.c (verify_node_partition): New function. | |
1058 | (input_overwrite_node, input_varpool_node): Use verify_node_partition. | |
1059 | ||
1060 | 2018-12-14 H.J. Lu <hongjiu.lu@intel.com> | |
1061 | ||
1062 | PR target/88483 | |
1063 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't | |
1064 | use get_frame_size (). | |
1065 | ||
1066 | 2018-12-14 Andrew Stubbs <ams@codesourcery.com> | |
1067 | ||
1068 | * gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter. | |
1069 | * gcc/lra-remat.c (update_scratch_ops): Pass icode to | |
1070 | lra_register_new_scratch_op. | |
1071 | * gcc/lra.c (struct sloc): Add icode field. | |
1072 | (lra_register_new_scratch_op): Add icode parameter. | |
1073 | Use icode to skip insns that have changed beyond recognition. | |
1074 | ||
1075 | 2018-12-14 Eric Botcazou <ebotcazou@adacore.com> | |
1076 | ||
1077 | * dwarf2out.c (analyze_discr_in_predicate): Simplify. | |
1078 | (analyze_variants_discr): Deal with naked boolean discriminants. | |
1079 | ||
1080 | 2018-12-14 Claudiu Zissulescu <claziss@synopsys.com> | |
1081 | ||
1082 | * config/arc/arc.c (arc_restore_callee_milli) Don't clobber off | |
1083 | variable. | |
1084 | ||
1085 | 2018-12-14 Claudiu Zissulescu <claziss@synopsys.com> | |
1086 | ||
1087 | * config/arc/arc.h (reg_class): Add SIBCALL_REGS. | |
1088 | ||
1089 | 2018-12-14 Richard Biener <rguenther@suse.de> | |
1090 | ||
1091 | * gimple-ssa-split-paths.c (is_feasible_trace): Remove | |
1092 | duplicated code block. | |
1093 | ||
1094 | 2018-12-14 Alan Modra <amodra@gmail.com> | |
1095 | ||
1096 | PR rtl-optimization/88311 | |
1097 | * config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie. | |
1098 | (rs6000_sibcall_sysv): Likewise. | |
1099 | ||
1100 | 2018-12-14 Segher Boessenkool <segher@kernel.crashing.org> | |
1101 | ||
1102 | PR rtl-optimization/88001 | |
1103 | * function.c (match_asm_constraints_1): Don't invalidly share RTL. | |
1104 | ||
1105 | 2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1106 | ||
1107 | * auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even | |
1108 | if autofdo counts are all zeros. | |
1109 | ||
1110 | 2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1111 | ||
1112 | * auto-profile.c (afdo_indirect_call): Skip generating histogram | |
1113 | value for internal call. | |
1114 | ||
1115 | 2018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1116 | ||
1117 | * auto-profile.c (AFDO_EINFO): New macro. | |
1118 | (class edge_info): New class. | |
1119 | (is_edge_annotated, set_edge_annotated): Delete. | |
1120 | (afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove | |
1121 | parameter. Adjust edge count computation and annotation using class | |
1122 | edge_info. | |
1123 | (afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise. | |
1124 | ||
1125 | 2018-12-13 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
1126 | ||
1127 | * ipa-cp.c (print_all_lattices): Skip cp clones. | |
1128 | ||
1129 | * ipa-cp.c: Fix various comment typos. | |
1130 | ||
1131 | 2018-12-13 Jakub Jelinek <jakub@redhat.com> | |
1132 | ||
1133 | PR tree-optimization/88444 | |
1134 | * tree-inline.c (fold_marked_statements): Iterate up to | |
1135 | last_basic_block_for_fn rather than n_basic_blocks_for_fn. | |
1136 | ||
1137 | PR rtl-optimization/88470 | |
1138 | * cfgcleanup.c (outgoing_edges_match): If the function is | |
1139 | shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake | |
1140 | edge to EXIT, return false. | |
1141 | ||
1142 | 2018-12-13 Martin Sebor <msebor@redhat.com> | |
1143 | ||
1144 | * doc/extend.texi: Consistently use @code for const and volatile | |
1145 | qualifiers, the true and false constants, and asm statements. | |
1146 | ||
1147 | 2018-12-13 Vladimir Makarov <vmakarov@redhat.com> | |
1148 | ||
1149 | PR rtl-optimization/88414 | |
1150 | * lra-int.h (lra_asm_error_p): New. | |
1151 | * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking | |
1152 | call crossed pseudo assignment correctness. | |
1153 | (lra_split_hard_reg_for): Set up lra_asm_error_p. | |
1154 | * lra-constraints.c (curr_insn_transform): Ditto. | |
1155 | * lra.c (lra_asm_error_p): New. | |
1156 | (lra): Reset lra_asm_error_p. | |
1157 | ||
1158 | 2018-12-13 Jakub Jelinek <jakub@redhat.com> | |
1159 | ||
1160 | PR rtl-optimization/88416 | |
1161 | * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify | |
1162 | even if !AUTO_INC_DEC. | |
1163 | ||
1164 | 2018-12-13 David Edelsohn <dje.gcc@gmail.com> | |
1165 | ||
1166 | * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is | |
1167 | non-NULL. | |
1168 | (rs6000_arg_partial_bytes): Same. | |
1169 | ||
1170 | 2018-12-13 Jason Merrill <jason@redhat.com> | |
1171 | ||
1172 | * gdbinit.in (pp): New macro. | |
1173 | (pbb): Remove. | |
1174 | ||
1175 | 2018-12-13 Jakub Jelinek <jakub@redhat.com> | |
1176 | ||
1177 | PR tree-optimization/88464 | |
1178 | * tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE | |
1179 | masktype if mask is non-NULL. | |
1180 | (vectorizable_load): Don't reject masked gather loads if masktype | |
1181 | in the decl is INTEGER_TYPE. | |
1182 | ||
1183 | 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> | |
1184 | ||
1185 | * config/s390/s390-builtins.def (s390_vec_double_s64): Map to | |
1186 | s390_vec_double_s64 instead of s390_vcdgb. | |
1187 | (s390_vec_double_u64): Map to s390_vec_double_u64 instead of | |
1188 | s390_vcdlgb. | |
1189 | ||
1190 | 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> | |
1191 | ||
1192 | * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") | |
1193 | ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. | |
1194 | ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. | |
1195 | ||
1196 | 2018-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1197 | ||
1198 | * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 | |
1199 | behavior. | |
1200 | ||
1201 | 2018-12-13 Wei Xiao <wei3.xiao@intel.com> | |
1202 | ||
1203 | * common/config/i386/i386-common.c (processor_names): Add cascadelake. | |
1204 | (processor_alias_table): Add cascadelake. | |
1205 | * config.gcc: Add -march=cascadelake. | |
1206 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
1207 | cascadelake. | |
1208 | * config/i386/i386.c (Add m_CASCADELAKE): New. | |
1209 | (processor_cost_table): Add cascadelake. | |
1210 | (get_builtin_code_for_version): Handle cascadelake. | |
1211 | * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New. | |
1212 | (PTA_CASCADELAKE): Ditto. | |
1213 | * doc/invoke.texi: Add -march=cascadelake. | |
1214 | ||
1215 | 2018-12-13 Jakub Jelinek <jakub@redhat.com> | |
1216 | ||
1217 | PR target/88465 | |
1218 | * config/i386/i386.md (*movdi_internal, *movsi_internal, | |
1219 | *movhi_internal, *movqi_internal): Add alternative(s) to load | |
1220 | 0 or -1 into k registers using kxor or kxnoq instructions. | |
1221 | ||
1222 | PR target/88461 | |
1223 | * config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New | |
1224 | mode iterators. | |
1225 | (<avx512>_testm<mode>3<mask_scalar_merge_name>, | |
1226 | <avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns | |
1227 | with VI12_AVX512VL and VI48_AVX512VL iterators into ones with | |
1228 | VI1248_AVX512VLBW iterator. | |
1229 | (*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, | |
1230 | *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, | |
1231 | *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, | |
1232 | *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New | |
1233 | define_insns. | |
1234 | ||
1235 | PR target/88461 | |
1236 | * config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2, | |
1237 | *zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives. | |
1238 | ||
1239 | 2018-12-12 Tom de Vries <tdevries@suse.de> | |
1240 | Jakub Jelinek <jakub@redhat.com> | |
1241 | ||
1242 | * omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, | |
1243 | BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, | |
1244 | BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, | |
1245 | BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, | |
1246 | BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, | |
1247 | BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up | |
1248 | function types - remove one argument. | |
1249 | ||
1250 | 2018-12-12 Martin Sebor <msebor@redhat.com> | |
1251 | ||
1252 | * doc/extend.texi (attribute copy): Fix typos. | |
1253 | ||
1254 | 2018-12-12 Martin Sebor <msebor@redhat.com> | |
1255 | ||
1256 | * doc/extend.texi (Function Attributes): Clarify C++ aspects. | |
1257 | (Variable Attributes): Same. | |
1258 | (Type Attributes): Same. | |
1259 | ||
1260 | 2018-12-12 Olivier Hainque <hainque@adacore.com> | |
1261 | ||
1262 | * config/aarch64/aarch64.c (aarch64_override_options): Once arch, | |
1263 | cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if | |
1264 | defined. | |
1265 | ||
1266 | 2018-12-12 Olivier Hainque <hainque@adacore.com> | |
1267 | ||
1268 | * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as | |
1269 | R9_REGNUM instead of 9. | |
1270 | (PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10. | |
1271 | ||
1272 | 2018-12-12 Eric Botcazou <ebotcazou@adacore.com> | |
1273 | ||
1274 | PR target/86806 | |
1275 | * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. | |
1276 | (speculation_barrier): New instruction for V9. | |
1277 | ||
1278 | 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org> | |
1279 | Iain Sandoe <iain@sandoe.co.uk> | |
1280 | ||
1281 | PR target/88343 | |
1282 | * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg | |
1283 | unless it has been used. | |
1284 | (first_reg_to_save): Remove dead code. | |
1285 | ||
1286 | 2018-12-12 Iain Sandoe <iain@sandoe.co.uk> | |
1287 | ||
1288 | * config/rs6000/rs6000-protos.h (rs6000_call_darwin): New. | |
1289 | (rs6000_sibcall_darwin): New. (macho_call_template): Remove. | |
1290 | * config/rs6000/rs6000.c (get_prev_label): Forward declaration. | |
1291 | (rs6000_call_template_1): Handle Darwin. | |
1292 | (macho_call_template): Remove. | |
1293 | (rs6000_call_sysv): Remove handling for Darwin. | |
1294 | (rs6000_call_darwin_1, rs6000_call_darwin): New | |
1295 | (rs6000_sibcall_darwin): New. | |
1296 | * config/rs6000/rs6000.md (define_expand “call”): Handle Darwin | |
1297 | with its own expander. (define_expand “call_value”): Likewise. | |
1298 | (define_expand “sibcall”): Likewise. | |
1299 | (define_expand “sibcall_value”): Likewise. | |
1300 | (call_nonlocal_sysv): Remove Darwin special-casing. | |
1301 | (call_value_nonlocal_sysv): Likewise. | |
1302 | ||
1303 | 2018-12-12 Iain Sandoe <iain@sandoe.co.uk> | |
1304 | ||
1305 | * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove. | |
1306 | (call_nonlocal_darwin64): Remove. | |
1307 | (call_value_indirect_nonlocal_darwin64): Remove. | |
1308 | (call_value_nonlocal_darwin64): Remove. | |
1309 | * config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with | |
1310 | the same asm output as AIX/ELFv2. (rs6000_call_sysv): Preserve the | |
1311 | CALL_LONG flag when needed for Darwin. | |
1312 | * config/rs6000/rs6000.md (define expand “call”): Expand Darwin as | |
1313 | per sysv. | |
1314 | (define_expand “call_value”): Likewise. | |
1315 | (define_expand “sibcall”): Likewise. | |
1316 | (define_expand “sibcall_value”): Likewise. | |
1317 | (call_indirect_nonlocal_sysv): Mark the clobber mode P. | |
1318 | (call_nonlocal_sysv): Likewise. | |
1319 | (call_nonlocal_sysv_secure): Likewise. | |
1320 | (call_value_indirect_nonlocal_sysv): Likewise. | |
1321 | (call_value_nonlocal_sysv): Likewise. | |
1322 | (call_value_nonlocal_sysv_secure): Likewise. | |
1323 | (call_local64): Mark the clobber DI. | |
1324 | (call_value_local64): Likewise. | |
1325 | ||
1326 | 2018-12-11 Jakub Jelinek <jakub@redhat.com> | |
1327 | ||
1328 | PR tree-optimization/88444 | |
1329 | * tree-vrp.c (register_edge_assert_for_2): Only register assertions | |
1330 | for conversions if rhs1 is a SSA_NAME. | |
1331 | ||
1332 | 2018-12-11 Dimitar Dimitrov <dimitar@dinux.eu> | |
1333 | ||
1334 | * cfgexpand.c (asm_clobber_reg_is_valid): Also produce | |
1335 | error when stack pointer is clobbered. | |
1336 | (expand_asm_stmt): Refactor clobber check in separate function. | |
1337 | ||
1338 | 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> | |
1339 | ||
1340 | * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, | |
1341 | accounting for STACK_BOUNDARY 128. | |
1342 | (STACK_DYNAMIC_OFFSET): Likewise. | |
1343 | ||
1344 | 2018-12-11 Jakub Jelinek <jakub@redhat.com> | |
1345 | ||
1346 | PR target/88425 | |
1347 | * config/i386/i386.md (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>): | |
1348 | New define_insn_and_split. | |
1349 | ||
1350 | 2018-12-11 Richard Biener <rguenther@suse.de> | |
1351 | ||
1352 | PR middle-end/88448 | |
1353 | PR middle-end/88415 | |
1354 | * gimple.c (gimple_assign_set_rhs_with_ops): Revert previous | |
1355 | change. | |
1356 | * tree-complex.c (update_complex_assignment): Properly transfer | |
1357 | or clean EH info around gimple_assign_set_rhs_with_ops. | |
1358 | ||
1359 | 2018-12-11 Richard Earnshaw <rearnsha@arm.com> | |
1360 | ||
1361 | PR target/87369 | |
1362 | * config/aarch64/iterators.md (sizem1): Add sizes for SFmode and DFmode. | |
1363 | (Vbtype): Add SFmode mapping. | |
1364 | * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. | |
1365 | (copysign<GPF:mode>3): New expand pattern. | |
1366 | (copysign<GPF:mode>3_insn): New insn pattern. | |
1367 | ||
1368 | 2018-12-11 Richard Biener <rguenther@suse.de> | |
1369 | ||
1370 | * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. | |
1371 | ||
1372 | 2018-12-11 Jakub Jelinek <jakub@redhat.com> | |
1373 | ||
1374 | PR lto/86004 | |
1375 | * doc/sourcebuild.texi (lto_incremental): Document new effective | |
1376 | target. | |
1377 | ||
1378 | 2018-12-11 Segher Boessenkool <segher@kernel.crashing.org> | |
1379 | ||
1380 | PR target/88145 | |
1381 | * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use | |
1382 | rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide | |
1383 | whether soft float is enabled. | |
1384 | (rs6000_expand_mtfsb_builtin): Ditto. | |
1385 | (rs6000_expand_set_fpscr_rn_builtin): Ditto. | |
1386 | (rs6000_expand_set_fpscr_drn_builtin): Ditto. | |
1387 | ||
1388 | 2018-12-10 Jeff Law <law@redhat.com> | |
1389 | ||
1390 | PR tree-optimization/80520 | |
1391 | * gimple-ssa-split-paths.c (is_feasible_trace): Recognize half | |
1392 | diamonds that are likely if convertable. | |
1393 | ||
1394 | 2018-12-10 Martin Sebor <msebor@redhat.com> | |
1395 | ||
1396 | PR tree-optimization/86196 | |
1397 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use | |
1398 | base size only of arrays. | |
1399 | ||
1400 | 2018-12-10 Segher Boessenkool <segher@kernel.crashing.org> | |
1401 | ||
1402 | * config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*. | |
1403 | (Unsupported targets): Add powerpc*-*-*spe*. | |
1404 | (powerpc*-*-*spe*): Delete. | |
1405 | (powerpc-*-eabispe*): Delete. | |
1406 | (powerpc-*-rtems*spe*): Delete. | |
1407 | (powerpc*-*-linux*spe*): Delete. | |
1408 | (powerpc*-*-linux*): Do not handle the linux*spe* targets. | |
1409 | (powerpc-wrs-vxworks*spe): Delete. | |
1410 | (with_cpu setting code): Delete powerpc*-*-*spe* handling. | |
1411 | * config.host (target powerpc*-*-*spe*): Delete. | |
1412 | * doc/invoke.texi (PowerPC SPE Options): Delete. | |
1413 | (PowerPC SPE Options): Delete. | |
1414 | * config/powerpcspe: Delete. | |
1415 | ||
1416 | 2018-12-10 Uros Bizjak <ubizjak@gmail.com> | |
1417 | ||
1418 | PR target/88418 | |
1419 | * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, | |
1420 | check operand 1 with vector_operand predicate. | |
1421 | (ix86_expand_sse_movcc): For vector modes, check op_true with | |
1422 | vector_operand, not nonimmediate_operand. | |
1423 | ||
1424 | 2018-12-10 Richard Biener <rguenther@suse.de> | |
1425 | ||
1426 | * tree-affine.c (tree_to_aff_combination): Remove unreachable | |
1427 | MEM_REF case. | |
1428 | (aff_combination_expand): Cache on SSA names, not possibly | |
1429 | on conversion trees. Avoid expanding cases we do not handle. | |
1430 | ||
1431 | 2018-12-10 Richard Biener <rguenther@suse.de> | |
1432 | ||
1433 | PR tree-optimization/88427 | |
1434 | * vr-values.c (vr_values::extract_range_from_phi_node): | |
1435 | Handle symbolic ranges conservatively when trying to drop | |
1436 | to Inf +- 1. | |
1437 | ||
1438 | 2018-12-10 Martin Jambor <mjambor@suse.cz> | |
1439 | ||
1440 | PR ipa/88214 | |
1441 | * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure | |
1442 | we check pointers against pointers. | |
1443 | ||
1444 | 2018-12-10 Richard Biener <rguenther@suse.de> | |
1445 | ||
1446 | PR middle-end/88415 | |
1447 | * gimple.c (gimple_assign_set_rhs_with_ops): Transfer EH | |
1448 | info to a newly allocated stmt. | |
1449 | ||
1450 | 2018-12-10 Jerome Lambourg <lambourg@adacore.com> | |
1451 | ||
1452 | * config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define. | |
1453 | ||
1454 | 2018-12-10 Fredrik Nyström <fredrik@lysator.liu.se> | |
1455 | ||
1456 | PR bootstrap/65725 | |
1457 | * config/sol2.h: Only use libgcc-unwind.map if | |
1458 | ENABLE_SHARED_LIBGCC. | |
1459 | ||
1460 | 2018-12-10 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1461 | ||
1462 | * auto-profile.c (afdo_calculate_branch_prob): Convert profile_count | |
1463 | to afdo precision quality. | |
1464 | (afdo_callsite_hot_enough_for_early_inline): Likewise. | |
1465 | (afdo_annotate_cfg): Set profile_count for exit basic block. | |
1466 | ||
1467 | 2018-12-10 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1468 | ||
1469 | * auto-profile.c (string_table::get_index_by_decl) | |
1470 | (function_instance::get_function_instance_by_decl): Avoid infinite | |
1471 | recursion by using DECL_FROM_INLINE. | |
1472 | ||
1473 | 2018-12-09 John David Anglin <danglin@gcc.gnu.org> | |
1474 | ||
1475 | * config.gcc (hppa*-*-linux*): Add pa/t-pa to tmake_file. Define | |
1476 | d_target_objs. | |
1477 | * config/pa/pa-protos.h (pa_d_target_versions): New prototype. | |
1478 | * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Define. | |
1479 | * config/pa/pa-d.c: New file. | |
1480 | * config/pa/t-pa: New file. | |
1481 | ||
1482 | 2018-12-08 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1483 | ||
1484 | * ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for | |
1485 | zero profile count. | |
1486 | ||
1487 | 2018-12-08 Jakub Jelinek <jakub@redhat.com> | |
1488 | ||
1489 | PR fortran/88304 | |
1490 | * tree-nested.c (convert_local_reference_stmt): Handle clobbers where | |
1491 | lhs is not a decl normally, don't call use_pointer_in_frame on that | |
1492 | lhs. | |
1493 | ||
1494 | 2018-12-08 Eric Botcazou <ebotcazou@adacore.com> | |
1495 | ||
1496 | PR rtl-optimization/88390 | |
1497 | * dwarf2cfi.c (struct dw_cfi_row): Add window_save field. | |
1498 | (cfi_row_equal_p): Compare it. | |
1499 | (dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter. | |
1500 | If FAKE is false, set window_save of the current row. | |
1501 | (dwarf2out_frame_debug) <REG_CFA_TOGGLE_RA_MANGLE>: Call above | |
1502 | function with FAKE parameter set to true. | |
1503 | <REG_CFA_WINDOW_SAVE>: Likewise but with FAKE parameter set to false. | |
1504 | (change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary. | |
1505 | ||
1506 | 2018-12-07 Peter Bergner <bergner@linux.ibm.com> | |
1507 | ||
1508 | PR target/87496 | |
1509 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow | |
1510 | -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. | |
1511 | Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. | |
1512 | * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble | |
1513 | require -mlong-double-128. | |
1514 | ||
1515 | 2018-12-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1516 | ||
1517 | * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add | |
1518 | sve_width entry. | |
1519 | (aarch64_parse_sve_width_string): Define. | |
1520 | ||
1521 | 2018-12-07 Jeff Law <law@redhat.com> | |
1522 | ||
1523 | PR middle-end/87813 | |
1524 | * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add | |
1525 | m_update_global_ranges member. Add corresponding argument to ctor. | |
1526 | * gimple-ssa-evrp-analyze.c | |
1527 | (evrp_range_analyzer::evrp_range_analyzer): Add new argument and | |
1528 | initialize m_update_global_ranges. | |
1529 | (evrp_range_analyzer::set_ssa_range_info): Assert that we are | |
1530 | updating global ranges. | |
1531 | (evrp_range_analyzer::record_ranges_from_incoming_edge): Only | |
1532 | update global ranges if explicitly requested. | |
1533 | (evrp_range_analyzer::record_ranges_from_phis): Similarly. | |
1534 | (evrp_range_analyzer::record_ranges_from_stmt): Similarly. | |
1535 | * gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to | |
1536 | evrp_range_analyzer ctor. | |
1537 | * gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly. | |
1538 | * tree-ssa-dom.c (dom_opt_dom_walker): Similarly. | |
1539 | ||
1540 | 2018-12-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
1541 | ||
1542 | * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): | |
1543 | Add SVE_NOT_IMPLEMENTED value. | |
1544 | * config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width | |
1545 | field. | |
1546 | * config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings, | |
1547 | cortexa53_tunings, cortexa57_tunings, cortexa72_tunings, | |
1548 | cortexa73_tunings, exynosm1_tunings, thunderx_tunings, | |
1549 | thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings, | |
1550 | saphira_tunings, thunderx2t99_tunings, emag_tunings): | |
1551 | Specify sve_width. | |
1552 | (aarch64_estimated_poly_value): Define. | |
1553 | (TARGET_ESTIMATED_POLY_VALUE): Define. | |
1554 | ||
1555 | 2018-12-07 Paul A. Clarke <pc@us.ibm.com> | |
1556 | ||
1557 | PR target/88408 | |
1558 | * config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector". | |
1559 | ||
1560 | 2018-12-07 Vladimir Makarov <vmakarov@redhat.com> | |
1561 | ||
1562 | PR rtl-optimization/88349 | |
1563 | * ira-costs.c (record_operand_costs): Check bigger reg class on | |
1564 | NO_REGS. | |
1565 | ||
1566 | 2018-12-07 Richard Sandiford <richard.sandiford@arm.com> | |
1567 | ||
1568 | * config/aarch64/aarch64-sve.md (*mul<mode>3, *v<optab><mode>3): | |
1569 | Split the patterns after reload if we don't need the predicate | |
1570 | operand. | |
1571 | (*post_ra_mul<mode>3, *post_ra_v<optab><mode>3): New patterns. | |
1572 | ||
1573 | 2018-12-07 Richard Sandiford <richard.sandiford@arm.com> | |
1574 | ||
1575 | * config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code | |
1576 | iterator. | |
1577 | (sve_fp_op): Handle minus and mult. | |
1578 | * config/aarch64/aarch64-sve.md (*add<mode>3, *sub<mode>3) | |
1579 | (*mul<mode>3): Split the patterns after reload if we don't | |
1580 | need the predicate operand. | |
1581 | (*post_ra_<sve_fp_op><mode>3): New pattern. | |
1582 | ||
1583 | 2018-12-07 Bin Cheng <bin.cheng@linux.alibaba.com> | |
1584 | ||
1585 | * profile-count.h (profile_count::oeprator>=): Fix typo by inverting | |
1586 | return condition when *this is precise zero. | |
1587 | ||
1588 | 2018-12-07 Jakub Jelinek <jakub@redhat.com> | |
1589 | ||
1590 | PR target/85593 | |
1591 | * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage | |
1592 | for functions with naked attribute. | |
1593 | ||
1594 | PR c/88367 | |
1595 | * tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR | |
1596 | with -fno-delete-null-pointer-checks, set_nonnull only if the pointer | |
1597 | is non-NULL and offset is known to have most significant bit clear. | |
1598 | * vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR | |
1599 | of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with | |
1600 | most significant bit clear. If offset does have most significant bit | |
1601 | set and -fno-delete-null-pointer-checks, don't return true even if | |
1602 | the base pointer is non-NULL. | |
1603 | ||
1604 | 2018-12-06 Alexandre Oliva <aoliva@redhat.com> | |
1605 | ||
1606 | * cselib.c (cselib_record_sets): Skip strict low part sets | |
1607 | with NULL src_elt. | |
1608 | ||
1609 | 2018-12-06 Paul A. Clarke <pc@us.ibm.com> | |
1610 | ||
1611 | PR target/88316 | |
1612 | * config/rs6000/smmintrin.h: New file. | |
1613 | * config.gcc: Add smmintrin.h to extra_headers for powerpc*-*-*. | |
1614 | ||
1615 | 2018-12-06 Paul A. Clarke <pc@us.ibm.com> | |
1616 | ||
1617 | PR target/88316 | |
1618 | * config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian. | |
1619 | (_mm_unpacklo_pi8): Likewise. | |
1620 | (_mm_mulhi_pi16): Likewise. | |
1621 | (_mm_packs_pi16): Fix for big-endian. Use preferred API. | |
1622 | (_mm_packs_pi32): Likewise. | |
1623 | (_mm_packs_pu16): Likewise. | |
1624 | * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian. | |
1625 | (_mm_cvtss_si64): Likewise. | |
1626 | (_mm_cvtpi32x2_ps): Likewise. | |
1627 | (_mm_shuffle_ps): Likewise. | |
1628 | (_mm_movemask_pi8): Likewise. | |
1629 | (_mm_mulhi_pu16): Likewise. | |
1630 | (_mm_sad_pu8): Likewise. | |
1631 | (_mm_sad_pu8): Likewise. | |
1632 | (_mm_cvtpu16_ps): Fix for big-endian. Use preferred API. | |
1633 | (_mm_cvtpu8_ps): Likewise. | |
1634 | (_mm_movemask_ps): Better #else case for big-endian (no functional | |
1635 | change). | |
1636 | (_mm_shuffle_pi16): Likewise. | |
1637 | * config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian. | |
1638 | Better #else case for big-endian (no functional change). | |
1639 | (_mm_movemask_epi8): Likewise. | |
1640 | (_mm_shufflehi_epi16): Likewise. | |
1641 | (_mm_shufflelo_epi16): Likewise. | |
1642 | (_mm_shuffle_epi32): Likewise. | |
1643 | (_mm_mul_epu32): Fix for big-endian. | |
1644 | (_mm_bsrli_si128): Likewise. | |
1645 | (_mm_cvtps_pd): Better #else case for big endian. | |
1646 | (_mm_mulhi_epi16): Likewise. | |
1647 | (_mm_mul_epu32): Likewise. | |
1648 | (_mm_slli_si128): Likewise. | |
1649 | (_mm_sll_epi16): Likewise. | |
1650 | (_mm_sll_epi32): Likewise. | |
1651 | (_mm_sra_epi16): Likewise. | |
1652 | (_mm_sra_epi32): Likewise. | |
1653 | (_mm_srl_epi16): Likewise. | |
1654 | (_mm_srl_epi32): Likewise. | |
1655 | (_mm_mulhi_epu16): Likewise. | |
1656 | (_mm_sad_epu8): Likewise. | |
1657 | * config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian. | |
1658 | (_mm_sub_ps): Likewise. | |
1659 | * config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode. | |
1660 | * gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN | |
1661 | macros consistently (no functional changes). | |
1662 | (_mm_alignr_pi8): Likewise. | |
1663 | ||
1664 | 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> | |
1665 | ||
1666 | PR c++/87380 | |
1667 | * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the | |
1668 | default. | |
1669 | * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. | |
1670 | ||
1671 | 2018-12-06 Vladimir Makarov <vmakarov@redhat.com> | |
1672 | ||
1673 | PR target/88282 | |
1674 | * ira.c (ira_init_register_move_cost): Use info from | |
1675 | hard_regno_mode_ok instead of contains_reg_of_mode. | |
1676 | * ira-costs.c (contains_reg_of_mode): Don't use cost from bigger | |
1677 | hard register class for some fixed hard registers. | |
1678 | ||
1679 | 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> | |
1680 | ||
1681 | * doc/extend.texi (Using Assembly Language with C): Document asm inline. | |
1682 | (Size of an asm): Fix typo. Document asm inline. | |
1683 | * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. | |
1684 | * gimple.h (enum gf_mask): Add GF_ASM_INLINE. | |
1685 | (gimple_asm_set_volatile): Fix typo. | |
1686 | (gimple_asm_inline_p): New. | |
1687 | (gimple_asm_set_inline): New. | |
1688 | * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from | |
1689 | tree to gimple. | |
1690 | * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the | |
1691 | gimple_asm_inline_p flag, too. | |
1692 | * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P | |
1693 | in an ASM_EXPR. | |
1694 | * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return | |
1695 | a minimum size for an asm. | |
1696 | * tree.h (ASM_INLINE_P): New. | |
1697 | ||
1698 | 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> | |
1699 | ||
1700 | PR inline-asm/55681 | |
1701 | * doc/extend.texi (Basic Asm): Update grammar. | |
1702 | (Extended Asm): Update grammar. | |
1703 | ||
1704 | 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> | |
1705 | ||
1706 | PR target/78444 | |
1707 | * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. | |
1708 | * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b | |
1709 | stack alignment in non-leaf functions. | |
1710 | ||
1711 | 2018-12-06 Jakub Jelinek <jakub@redhat.com> | |
1712 | ||
1713 | PR target/87598 | |
1714 | * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't | |
1715 | call output_operand_lossage on VOIDmode CONST_INTs. After | |
1716 | output_operand_lossage do return false. | |
1717 | ||
1718 | 2018-12-06 Richard Biener <rguenther@suse.de> | |
1719 | ||
1720 | * df-problems.c (df_rd_local_compute): Use bitmap_release. | |
1721 | (df_live_free): Likewise. | |
1722 | (df_md_local_compute): Likewise. | |
1723 | (df_md_free): Release df_md_scratch bitmap. | |
1724 | * loop-invariant.c (calculate_loop_reg_pressure): Use | |
1725 | bitmap_release. | |
1726 | * sched-deps.c (true_dependency_cache, output_dependency_cache, | |
1727 | anti_dependency_cache, control_dependency_cache, | |
1728 | spec_dependency_cache): Use bitmap instead of bitmap_head *. | |
1729 | * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY | |
1730 | dont_calc_deps as bitmap allocated from obstack not GC. | |
1731 | (schedule_ebbs_finish): Use bitmap_release. | |
1732 | * sched-rgn.c (schedule_insns): Initialize non-GTY | |
1733 | not_in_df as bitmap allocated from obstack not GC. | |
1734 | Use bitmap_release. | |
1735 | * sel-sched.c (_forced_ebb_heads): Remove premature optimization. | |
1736 | (sel_region_init): Allocate forced_ebb_heads. | |
1737 | (sel_region_finish): Free forced_ebb_heads. | |
1738 | ||
1739 | 2018-12-06 Richard Biener <rguenther@suse.de> | |
1740 | ||
1741 | * bitmap.c (bitmap_head::crashme): Define. | |
1742 | * bitmap.h (bitmap_head): Add constexpr default constructor | |
1743 | poisoning the obstack member. | |
1744 | (bitmap_head::crashme): Declare. | |
1745 | (bitmap_release): New function clearing a bitmap and poisoning | |
1746 | the obstack member. | |
1747 | * gengtype.c (main): Make it recognize CONSTEXPR. | |
1748 | * lra-constraints.c (lra_inheritance): Use bitmap_release | |
1749 | instead of bitmap_clear. | |
1750 | * ira.c (ira): Work around class-memaccess warning. | |
1751 | * regrename.c (create_new_chain): Likewise. | |
1752 | ||
1753 | 2018-12-06 Jakub Jelinek <jakub@redhat.com> | |
1754 | ||
1755 | PR tree-optimization/85726 | |
1756 | * generic-match-head.c (optimize_successive_divisions_p): New function. | |
1757 | * gimple-match-head.c (optimize_successive_divisions_p): Likewise. | |
1758 | * match.pd: Don't combine successive divisions if they aren't exact | |
1759 | and optimize_successive_divisions_p is false. | |
1760 | ||
1761 | PR fortran/88304 | |
1762 | * tree-nested.c (convert_nonlocal_reference_stmt): Remove clobbers | |
1763 | for non-local automatic decls. | |
1764 | ||
1765 | 2018-12-05 David Edelsohn <dje.gcc@gmail.com> | |
1766 | ||
1767 | * config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor | |
1768 | default. | |
1769 | ||
1770 | 2018-12-05 Uros Bizjak <ubizjak@gmail.com> | |
1771 | ||
1772 | * dwarf2out.c (field_byte_offset): Remove | |
1773 | #ifdef PCC_BITFIELD_TYPE_MATTERS check. | |
1774 | ||
1775 | 2018-12-05 Richard Biener <rguenther@suse.de> | |
1776 | Martin Sebor <msebor@redhat.com> | |
1777 | ||
1778 | PR c/87028 | |
1779 | * calls.c (get_attr_nonstring_decl): Avoid setting *REF to | |
1780 | SSA_NAME_VAR. | |
1781 | * gcc/gimple-low.c (lower_stmt): Fold builtin calls here. | |
1782 | * gimplify (maybe_fold_stmt): Avoid folding builtin calls. | |
1783 | ||
1784 | 2018-12-05 Iain Sandoe <iain@sandoe.co.uk> | |
1785 | ||
1786 | * configure.ac (gcc_cv_otool): Set. | |
1787 | * configure: Regenerate. | |
1788 | ||
1789 | 2018-12-05 Uros Bizjak <ubizjak@gmail.com> | |
1790 | ||
1791 | * config/i386/cygming.h (PCC_BITFIELD_TYPE_MATTERS): Remove. | |
1792 | (GROUP_BITFIELDS_BY_ALIGN): Ditto. | |
1793 | ||
1794 | 2018-12-05 Richard Sandiford <richard.sandiford@arm.com> | |
1795 | ||
1796 | PR tree-optimization/88064 | |
1797 | * tree-vect-patterns.c (vect_convert_input): Convert the result of | |
1798 | an existing cast if it has the right width but the wrong sign. | |
1799 | Do not test the signedness of the required result when | |
1800 | considering whether to split an existing cast; instead split to | |
1801 | a type with the same signedness as the source of the cast, then | |
1802 | convert it to the opposite signedness where necessary. | |
1803 | (vect_recog_over_widening_pattern): Handle sign changes between | |
1804 | the final PLUS_EXPR and the RSHIFT_EXPR. | |
1805 | (vect_recog_average_pattern): Use an unsigned operation when | |
1806 | truncating an addition, subtraction or multiplication. Cast the | |
1807 | result back to the "real" signedness before promoting. | |
1808 | ||
1809 | 2018-12-05 Richard Biener <rguenther@suse.de> | |
1810 | ||
1811 | PR tree-optimization/86637 | |
1812 | * tree-vectorizer.c (pass_slp_vectorize::execute): Reset | |
1813 | vect_location at the end. | |
1814 | ||
1815 | 2018-12-05 Jakub Jelinek <jakub@redhat.com> | |
1816 | ||
1817 | PR tree-optimization/87360 | |
1818 | * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze | |
1819 | data dependencies, don't return false, just continue. Formatting | |
1820 | fixes. | |
1821 | (merge_loop_tree, bb_prevents_fusion_p, unroll_jam_possible_p, | |
1822 | fuse_loops): Formatting fixes. | |
1823 | ||
1824 | PR sanitizer/88333 | |
1825 | * cfgexpand.c (expand_stack_vars): If asan_vec is empty, start with | |
1826 | aligning frame offset to ASAN_RED_ZONE_SIZE bytes. | |
1827 | ||
1828 | 2018-12-05 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
1829 | ||
1830 | * config.gcc (csky-*-linux-gnu*): Force .init_array support. | |
1831 | ||
1832 | 2018-12-05 Segher Boessenkool <segher@kernel.crashing.org> | |
1833 | ||
1834 | * config/rs6000/rs6000.c (rs6000_function_arg): Only do the special | |
1835 | aggregate handling on actual AIX, not on somewhat similar systems. | |
1836 | (rs6000_arg_partial_bytes): Ditto. | |
1837 | ||
1838 | 2018-12-04 Vladimir Makarov <vmakarov@redhat.com> | |
1839 | ||
1840 | PR rtl-optimization/88317 | |
1841 | * lra-constraints.c (split_reg): Don't set up check_only_regs if | |
1842 | we are outside the inheritance pass. | |
1843 | ||
1844 | 2018-12-04 Jan Hubicka <hubicka@ucw.cz> | |
1845 | ||
1846 | * ipa-prop.c (jump_function_useful_p): New. | |
1847 | (ipa_read_node_info): Do not allocated useless jump functions. | |
1848 | ||
1849 | 2018-12-04 David Malcolm <dmalcolm@redhat.com> | |
1850 | ||
1851 | PR c/82967 | |
1852 | * spellcheck.c (selftest::test_suggestions): Add another assertion. | |
1853 | ||
1854 | 2018-12-04 Martin Sebor <msebor@redhat.com> | |
1855 | ||
1856 | * doc/extend.texi (__builtin_has_attribute): Fix typo. | |
1857 | ||
1858 | 2018-12-04 Jakub Jelinek <jakub@redhat.com> | |
1859 | ||
1860 | PR target/88188 | |
1861 | * config/rs6000/rs6000.c (ccr_bit): Return -1 instead of assertion | |
1862 | failures. | |
1863 | (print_operand): Use REG_P instead of GET_CODE == REG. | |
1864 | <case 'D'>: Also check CR_REGNO_P (REGNO (x)). | |
1865 | <case 't'>: Likewise. Remove GET_MODE check. | |
1866 | * config/rs6000/rs6000.md (scc patterns): Assert ccr_bit didn't | |
1867 | return -1. | |
1868 | ||
1869 | 2018-12-04 Martin Sebor <msebor@redhat.com> | |
1870 | ||
1871 | * doc/extend.texi (attribute aligned): Expand. | |
1872 | ||
1873 | 2018-12-04 David Edelsohn <dje.gcc@gmail.com> | |
1874 | ||
1875 | PR target/61976 | |
1876 | * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates | |
1877 | in FPRs on AIX. | |
1878 | (rs6000_arg_partial_bytes): Same. | |
1879 | ||
1880 | 2018-12-04 Vladimir Makarov <vmakarov@redhat.com> | |
1881 | ||
1882 | PR target/88282 | |
1883 | * ira-costs.c (exec): Try bigger class to use smaller register | |
1884 | move cost. | |
1885 | ||
1886 | 2018-12-04 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
1887 | ||
1888 | PR ipa/88297 | |
1889 | * ipa-cp.c (create_specialized_node): Track clone counters by | |
1890 | node assembler names. | |
1891 | (ipcp_driver): Change type of clone_num_suffixes key to const char*. | |
1892 | ||
1893 | 2018-12-04 Richard Biener <rguenther@suse.de> | |
1894 | ||
1895 | * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations | |
1896 | for epilogue vectorization. | |
1897 | ||
1898 | 2018-12-04 Richard Biener <rguenther@suse.de> | |
1899 | ||
1900 | PR tree-optimization/88301 | |
1901 | * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion | |
1902 | issues in last commit. | |
1903 | ||
1904 | 2018-12-04 Richard Biener <rguenther@suse.de> | |
1905 | ||
1906 | PR tree-optimization/88315 | |
1907 | * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify | |
1908 | and fix initialization vector for SAD and DOT_PROD SLP reductions. | |
1909 | ||
1910 | 2018-12-03 Sandra Loosemore <sandra@codesourcery.com> | |
1911 | ||
1912 | PR c/59039 | |
1913 | * doc/extend.texi (Nonlocal gotos): New section. | |
1914 | ||
1915 | 2018-12-03 Uros Bizjak <ubizjak@gmail.com> | |
1916 | ||
1917 | * config/i386/sse.md (vec_concatv2df): Change (v,xm,C) | |
1918 | alternative to (v,vm,c). | |
1919 | ||
1920 | 2018-12-03 Segher Boessenkool <segher@kernel.crashing.org> | |
1921 | ||
1922 | * gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*. | |
1923 | (powerpc*-*-linux*): Don't handle it here. | |
1924 | ||
1925 | 2018-12-03 Jeff Law <law@redhat.com> | |
1926 | ||
1927 | * config/h8300/h8300.md (<code>qi3_1): Add gcc_unreachable to keep | |
1928 | warnings quiet. | |
1929 | ||
1930 | * config/h8300/h8300.md (low byte masking peepholes): Only accept | |
1931 | nonimmediate_operand for the to-be-masked operand. | |
1932 | ||
1933 | 2018-12-03 Richard Biener <rguenther@suse.de> | |
1934 | ||
1935 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only | |
1936 | allow expected function-pointer cast re-instantiation. | |
1937 | ||
1938 | 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
1939 | ||
1940 | * common/config/s390/s390-common.c (s390_option_init_struct): | |
1941 | Use section anchors by default. | |
1942 | * config/s390/s390.c (s390_check_symref_alignment): Handle | |
1943 | anchors. | |
1944 | (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. | |
1945 | * output.h (assemble_align): Pass `align' as unsigned int, so | |
1946 | that the value 0x80000000, which corresponds to `aligned(1 << | |
1947 | 28)', would pass the `align > BITS_PER_UNIT' check. | |
1948 | * varasm.c (assemble_align): Likewise. | |
1949 | ||
1950 | 2018-12-03 Julian Brown <julian@codesourcery.com> | |
1951 | ||
1952 | * tree-pretty-print.c (dump_omp_clause): Make default case | |
1953 | gcc_unreachable. | |
1954 | ||
1955 | 2018-12-03 Richard Biener <rguenther@suse.de> | |
1956 | ||
1957 | PR tree-optimization/88301 | |
1958 | * tree-vrp.c (register_edge_assert_for_2): Handle conversions | |
1959 | that do not change the value by registering the same assert | |
1960 | for the operand. | |
1961 | ||
1962 | 2018-12-03 Richard Biener <rguenther@suse.de> | |
1963 | ||
1964 | * tree-vect-loop.c (vect_transform_loop): Properly compute | |
1965 | upper bound for the epilogue when doing epilogue vectorization. | |
1966 | ||
1967 | 2018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
1968 | ||
1969 | PR target/80080 | |
1970 | * cfgcleanup.c (class pass_postreload_jump): New pass. | |
1971 | (pass_postreload_jump::execute): Likewise. | |
1972 | (make_pass_postreload_jump): Likewise. | |
1973 | * passes.def: Add pass_postreload_jump before | |
1974 | pass_postreload_cse. | |
1975 | * tree-pass.h (make_pass_postreload_jump): New pass. | |
1976 | ||
1977 | 2018-12-02 Uros Bizjak <ubizjak@gmail.com> | |
1978 | ||
1979 | * config/i386/i386.c (inline_memory_move_cost): Correctly | |
1980 | compute number of TFmode GPR moves. | |
1981 | ||
1982 | 2018-12-02 Jakub Jelinek <jakub@redhat.com> | |
1983 | ||
1984 | PR target/88278 | |
1985 | * config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns. | |
1986 | ||
1987 | 2018-12-02 Jeff Law <law@redhat.com> | |
1988 | ||
1989 | * config/h8300/h8300.md (call, call_value): Drop mode from | |
1990 | operand containing number of bytes pushed. | |
1991 | (call_insn, call_value_insn): Use mode iterator for number | |
1992 | of bytes pushed operand. Make pattern name vary appropriately. | |
1993 | ||
1994 | 2018-12-02 Jan Hubicka <jh@suse.cz> | |
1995 | ||
1996 | * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): | |
1997 | trust precise profiles. | |
1998 | ||
1999 | 2018-12-02 Jakub Jelinek <jakub@redhat.com> | |
2000 | ||
2001 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
2002 | convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION, | |
2003 | OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses. | |
2004 | (convert_nonlocal_reference_stmt, convert_local_reference_stmt): | |
2005 | Convert clauses for GIMPLE_OMP_TASKGROUP. | |
2006 | ||
2007 | * omp-low.c (check_omp_nesting_restrictions): Allow cancel or | |
2008 | cancellation point with taskgroup clause inside of taskloop. Consider | |
2009 | a taskloop construct without nogroup clause as implicit taskgroup for | |
2010 | diagnostics if cancel/cancellation point with taskgroup clause is | |
2011 | closely nested inside of taskgroup region. | |
2012 | ||
2013 | PR sanitizer/88291 | |
2014 | * asan.c (asan_clear_shadow): Move assert that len is multiple of 4 | |
2015 | to the start of the function. | |
2016 | (asan_emit_stack_protection): When emitting clearing sequence for | |
2017 | epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity, | |
2018 | add last_size_aligned which is last_size padded to multiples of | |
2019 | ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte | |
2020 | boundaries. | |
2021 | ||
2022 | 2018-12-01 Jakub Jelinek <jakub@redhat.com> | |
2023 | ||
2024 | PR sanitizer/88289 | |
2025 | * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up | |
2026 | an off-by-one for BYTES_BIG_ENDIAN. | |
2027 | ||
2028 | PR target/54589 | |
2029 | * combine.c (find_split_point): For invalid memory address | |
2030 | nonobj + obj + const, if reg + obj + const is valid addressing | |
2031 | mode, split at nonobj. Use if rather than else if for the | |
2032 | fallback. Comment fixes. | |
2033 | ||
2034 | 2018-11-30 Indu Bhagat <indu.bhagat@oracle.com> | |
2035 | ||
2036 | * coverage.c (get_coverage_counts): Use from_function_decl for precise | |
2037 | function location. | |
2038 | * profile-count.c (profile_count::dump): Add handling for precise | |
2039 | profile quality. | |
2040 | * profile.c (compute_branch_probabilities): Rely on exec_counts instead | |
2041 | of profile_info to set profile_status of function. | |
2042 | (branch_prob): Do not set profile_status of function based on | |
2043 | profile_info. Done above based on exec_counts. | |
2044 | ||
2045 | 2018-11-30 Jakub Jelinek <jakub@redhat.com> | |
2046 | ||
2047 | PR tree-optimization/88274 | |
2048 | * tree-ssa-reassoc.c (optimize_range_tests_xor, | |
2049 | optimize_range_tests_diff): If type has smaller precision than | |
2050 | corresponding mode or if it has non-standard min/max, compute | |
2051 | everything in a standard type for the precision. | |
2052 | ||
2053 | PR testsuite/85368 | |
2054 | * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. | |
2055 | * tree-ssa-ifcombine.c (ifcombine_ifandif): If | |
2056 | --param logical-op-non-short-circuit is present, override | |
2057 | LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. | |
2058 | * fold-const.c (fold_range_test, fold_truth_andor): Likewise. | |
2059 | ||
2060 | 2018-11-30 Jeff Law <law@redhat.com> | |
2061 | ||
2062 | * optabs.c (expand_binop): Use "machine_mode" rather than | |
2063 | "enum machine mode" in most recent change. | |
2064 | ||
2065 | 2018-11-30 Wilco Dijkstra <wdijkstr@arm.com> | |
2066 | ||
2067 | PR middle-end/64242 | |
2068 | * builtins.c (expand_builtin_longjmp): Use a temporary when restoring | |
2069 | the frame pointer. | |
2070 | (expand_builtin_nonlocal_goto): Likewise. | |
2071 | ||
2072 | 2018-11-30 David Malcolm <dmalcolm@redhat.com> | |
2073 | ||
2074 | * diagnostic-core.h (emit_diagnostic): New decl. | |
2075 | * diagnostic.c (emit_diagnostic): New overload, taking a | |
2076 | rich_location *. | |
2077 | ||
2078 | 2018-11-30 David Malcolm <dmalcolm@redhat.com> | |
2079 | ||
2080 | * pretty-print.c (class selftest::test_pretty_printer): New | |
2081 | subclass of pretty_printer. | |
2082 | (selftest::test_prefixes_and_wrapping): New test. | |
2083 | (selftest::pretty_print_c_tests): Call it. | |
2084 | ||
2085 | 2018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
2086 | ||
2087 | Minimize clone counter memory usage in create_virtual_clone. | |
2088 | * cgraph.h (clone_function_name): Add a variant that takes a | |
2089 | tree decl. | |
2090 | * cgraph.h (cgraph_node::create_virtual_clone): Add a new | |
2091 | argument: num_suffix. | |
2092 | * cgraphclones.c (cgraph_node::create_virtual_clone): Pass | |
2093 | num_suffix to clone_function_name. | |
2094 | (clone_function_name): Add a variant that takes a tree decl. | |
2095 | * ipa-cp.c (create_specialized_node): Keep track of clone | |
2096 | counters in clone_num_suffixes hash map. | |
2097 | (ipcp_driver): Free the counter hash map. | |
2098 | * ipa-hsa.c (process_hsa_functions): Creates at most one hsa | |
2099 | clone per function. | |
2100 | ||
2101 | 2018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
2102 | Make function assembly more independent. | |
2103 | ||
2104 | This is achieved by having clone_function_name assign unique clone | |
2105 | numbers for each function independently. | |
2106 | ||
2107 | * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; | |
2108 | hash map. | |
2109 | (clone_function_name_numbered): Use clone_fn_ids. | |
2110 | ||
2111 | 2018-11-30 Vladimir Makarov <vmakarov@redhat.com> | |
2112 | ||
2113 | PR rtl-optimization/88179 | |
2114 | * lra-constraints.c (address_eliminator::address_eliminator): | |
2115 | Don't eleminate regs in illegitimate address. | |
2116 | ||
2117 | 2018-11-30 David Malcolm <dmalcolm@redhat.com> | |
2118 | ||
2119 | PR preprocessor/88257 | |
2120 | * input.c (get_substring_ranges_for_loc): Fix indentation. | |
2121 | Bulletproof against getting a different files back from | |
2122 | linemap_resolve_location and expand_location_to_spelling_point. | |
2123 | ||
2124 | 2018-11-30 Alexander Monakov <amonakov@ispras.ru> | |
2125 | ||
2126 | PR gcov-profile/88279 | |
2127 | * tree-profile.c (init_ic_make_global_vars): Call | |
2128 | decl_default_tls_model for variable and not it's type. | |
2129 | ||
2130 | 2018-11-30 Sam Tebbs <sam.tebbs@arm.com> | |
2131 | ||
2132 | * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint. | |
2133 | ||
2134 | 2018-11-30 Martin Liska <mliska@suse.cz> | |
2135 | ||
2136 | PR sanitizer/81715 | |
2137 | * asan.c (asan_shadow_cst): Remove, partially transform | |
2138 | into flush_redzone_payload. | |
2139 | (RZ_BUFFER_SIZE): New. | |
2140 | (struct asan_redzone_buffer): New. | |
2141 | (asan_redzone_buffer::emit_redzone_byte): Likewise. | |
2142 | (asan_redzone_buffer::flush_redzone_payload): Likewise. | |
2143 | (asan_redzone_buffer::flush_if_full): Likewise. | |
2144 | (asan_emit_stack_protection): Use asan_redzone_buffer class | |
2145 | that is responsible for proper aligned stores and flushing | |
2146 | of shadow memory payload. | |
2147 | * asan.h (ASAN_MIN_RED_ZONE_SIZE): New. | |
2148 | (asan_var_and_redzone_size): Likewise. | |
2149 | * cfgexpand.c (expand_stack_vars): Use smaller alignment | |
2150 | (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory | |
2151 | for automatic variables more compact. | |
2152 | ||
2153 | 2018-11-30 Alan Modra <amodra@gmail.com> | |
2154 | ||
2155 | * config/rs6000/predicates.md (easy_fp_constant): Avoid long | |
2156 | dependent insn sequences. | |
2157 | * config/rs6000/rs6000.c (num_insns_constant): Support long | |
2158 | double constants. | |
2159 | * config/rs6000/rs6000.md (mov<mode>_softfloat <FMOVE128>): Adjust | |
2160 | length attribute. | |
2161 | ||
2162 | 2018-11-30 Alan Modra <amodra@gmail.com> | |
2163 | ||
2164 | * config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from | |
2165 | num_insns_constant_wide. Make static. Revise comment. | |
2166 | (num_insns_constant_multi): New function. | |
2167 | (num_insns_constant): Formatting. Correct CONST_WIDE_INT | |
2168 | calculation. Simplify and extract code common to both | |
2169 | CONST_INT and CONST_DOUBLE. Add gcc_unreachable for unhandled | |
2170 | const_double modes. | |
2171 | * config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete. | |
2172 | ||
2173 | 2018-11-30 Richard Biener <rguenther@suse.de> | |
2174 | ||
2175 | PR tree-optimization/88274 | |
2176 | * tree-vrp.c (ranges_from_anti_range): Fix handling of | |
2177 | TYPE_MIN/MAX_VALUE. | |
2178 | ||
2179 | 2018-11-29 Andi Kleen <ak@linux.intel.com> | |
2180 | ||
2181 | * config/i386/i386.c (current_fentry_section): Add. | |
2182 | (x86_function_profiler): Handle fentry section. | |
2183 | (ix86_attribute_table): Add fentry section. | |
2184 | * config/i386/i386.opt: Add -mfentry-section. | |
2185 | * doc/extend.texi: Document fentry_section attribute. | |
2186 | * doc/invoke.texi: Document -mfentry-section. | |
2187 | ||
2188 | 2018-11-29 Andi Kleen <ak@linux.intel.com> | |
2189 | ||
2190 | * config/i386/i386.c (x86_print_call_or_nop): Handle nop name. | |
2191 | (current_fentry_name): Add. | |
2192 | (x86_function_profiler): Handle fentry_name attribute. | |
2193 | (ix86_handle_fentry_name): Add. | |
2194 | (ix86_attribute_table): Add fentry_name. | |
2195 | * config/i386/i386.opt: Add -mfentry-name | |
2196 | * doc/extend.texi: Document fentry_name. | |
2197 | * doc/invoke.texi: Document minstrument-return. | |
2198 | ||
2199 | 2018-11-29 Andi Kleen <ak@linux.intel.com> | |
2200 | ||
2201 | * config/i386/i386-opts.h (enum instrument_return): Add. | |
2202 | * config/i386/i386.c (output_return_instrumentation): Add. | |
2203 | (ix86_output_function_return): Call output_return_instrumentation. | |
2204 | (ix86_output_call_insn): Call output_return_instrumentation. | |
2205 | * config/i386/i386.opt: Add -minstrument-return=. | |
2206 | * doc/invoke.texi (-minstrument-return): Document. | |
2207 | ||
2208 | 2018-11-29 Eric Botcazou <ebotcazou@adacore.com> | |
2209 | ||
2210 | PR target/87807 | |
2211 | * config/sparc/sparc-modes.def: Minor tweak. | |
2212 | * config/sparc/sparc.c: Minor reordering. | |
2213 | (sparc_pass_by_reference): Move around. | |
2214 | (traverse_record_type): Change offset from HOST_WIDE_INT to int. | |
2215 | (classify_registers): Likewise for bitpos. | |
2216 | (function_arg_slotno): Remove dead test and tweak comments. | |
2217 | <MODE_RANDOM>: Remove useless assertion and test whether the | |
2218 | parameter is named in order to pass it in FP registers. Return | |
2219 | the regno for floating-point vector types. | |
2220 | (compute_int_layout): Change bitpos from HOST_WIDE_INT to int. | |
2221 | (compute_fp_layout): Likewise. | |
2222 | (count_registers): Likewise. | |
2223 | (assign_int_registers): Likewise. | |
2224 | (assign_fp_registers): Likewise. | |
2225 | (assign_registers): Likewise. | |
2226 | (function_arg_record_value): Change size from HOST_WIDE_INT to int | |
2227 | and use CEIL_NWORDS to compute the number of registers. | |
2228 | (function_arg_union_value): Minor tweaks. | |
2229 | (function_arg_vector_value): Add slotno and named parameters, use | |
2230 | CEIL_NWORDS to compute the number of registers. | |
2231 | (sparc_function_arg_1): Rework handling of vector types. Change | |
2232 | size from HOST_WIDE_INT to int. | |
2233 | (sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal | |
2234 | with vector types for the 64-bt ABI. | |
2235 | (sparc_function_arg_advance): Likewise. | |
2236 | (sparc_return_in_memory): Add reference to -fpcc-struct-return. | |
2237 | (sparc_struct_value_rtx): Return NULL_RTX instead of 0. | |
2238 | (sparc_function_value_1): Rework handling of vector types. Change | |
2239 | size from HOST_WIDE_INT to int. | |
2240 | ||
2241 | 2018-11-29 Jakub Jelinek <jakub@redhat.com> | |
2242 | ||
2243 | PR target/88152 | |
2244 | * config/i386/sse.md (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt, | |
2245 | *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt, | |
2246 | *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_shift, | |
2247 | *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift, | |
2248 | *<sse2_avx2>_pmovmskb_lt, *<sse2_avx2>_pmovmskb_zext_lt): New | |
2249 | define_insn_and_split patterns. | |
2250 | ||
2251 | PR target/54700 | |
2252 | * config/i386/sse.md | |
2253 | (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt, | |
2254 | *<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint, | |
2255 | *<sse4_1_avx2>_pblendvb_lt): Change define_insn into | |
2256 | define_insn_and_split. | |
2257 | ||
2258 | 2018-11-29 Peter Bergner <bergner@linux.ibm.com> | |
2259 | ||
2260 | PR target/87496 | |
2261 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow | |
2262 | -mabi=ieeelongdouble without both -mpopcntd and -mvsx. | |
2263 | ||
2264 | 2018-11-29 Uros Bizjak <ubizjak@gmail.com> | |
2265 | ||
2266 | * config/i386/i386.c (inline_memory_move_cost): | |
2267 | Check "in" for 2 in MMX_CLASS_P case. | |
2268 | * config/i386/mmx.md (*mov<mode>_internal): Correct | |
2269 | TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC | |
2270 | alternatives in preferred_for_speed attribute calculation. | |
2271 | ||
2272 | 2018-11-29 Martin Sebor <msebor@redhat.com> | |
2273 | ||
2274 | PR c/88172 | |
2275 | PR testsuite/88208 | |
2276 | * doc/extend.texi (attribute constructor): Clarify. | |
2277 | ||
2278 | 2018-11-29 Martin Liska <mliska@suse.cz> | |
2279 | ||
2280 | PR middle-end/88246 | |
2281 | * builtins.c (expand_movstr): Fix thinko introduced | |
2282 | when switching to the new enum. | |
2283 | ||
2284 | 2018-11-29 qing zhao <qing.zhao@oracle.com> | |
2285 | ||
2286 | * cif-code.def (EXTERN_LIVE_ONLY_STATIC): New CIF code. | |
2287 | * common.opt: Add -flive-patching flag. | |
2288 | * doc/invoke.texi: Document -flive-patching. | |
2289 | * flag-types.h (enum live_patching_level): New enum. | |
2290 | * ipa-inline.c (can_inline_edge_p): Disable external functions from | |
2291 | inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC. | |
2292 | * opts.c (control_options_for_live_patching): New function. | |
2293 | (finish_options): Make flag_live_patching incompatible with flag_lto. | |
2294 | Control IPA optimizations based on different levels of | |
2295 | flag_live_patching. | |
2296 | ||
2297 | 2018-11-29 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
2298 | ||
2299 | * match.pd (sinh (atanh (x))): New simplification rules. | |
2300 | (cosh (atanh (x))): Likewise. | |
2301 | ||
2302 | 2018-11-29 Jakub Jelinek <jakub@redhat.com> | |
2303 | ||
2304 | PR target/54700 | |
2305 | * config/i386/sse.md (ssebytemode): Add V16SI, V8SI and V4SI entries. | |
2306 | (ssefltmodesuffix, ssefltvecmode): New define_mode_attrs. | |
2307 | (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt, | |
2308 | *<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint, | |
2309 | *<sse4_1_avx2>_pblendvb_lt): New define_insns. | |
2310 | ||
2311 | PR target/88152 | |
2312 | * tree.h (build_uniform_cst, uniform_integer_cst_p): Declare. | |
2313 | * tree.c (build_uniform_cst, uniform_integer_cst_p): New functions. | |
2314 | * match.pd (define_predicates): Add uniform_integer_cst_p. | |
2315 | (cmp @0 INTEGER_CST@1, cmp (convert?@2 @0) INTEGER_CST@1): Adjust | |
2316 | so that it works also for vector comparisons with uniform constants | |
2317 | with INTEGER_CST element. | |
2318 | ||
2319 | PR target/88234 | |
2320 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For | |
2321 | vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR | |
2322 | in unsigned_type_for instead of vector integral type where overflow | |
2323 | doesn't wrap. | |
2324 | ||
2325 | 2018-11-29 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
2326 | ||
2327 | There can be at most one .resolver clone per function | |
2328 | * config/rs6000/rs6000.c (make_resolver_func): Generate | |
2329 | resolver symbol with clone_function_name instead of | |
2330 | clone_function_name_numbered. | |
2331 | ||
2332 | 2018-11-29 Richard Biener <rguenther@suse.de> | |
2333 | ||
2334 | PR tree-optimization/88243 | |
2335 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Set the def | |
2336 | type of all pattern-sequence stmts to vect_internal_def. | |
2337 | ||
2338 | 2018-11-29 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
2339 | ||
2340 | PR target/88224 | |
2341 | * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. | |
2342 | (cortex-r7, cortex-r8): Update default and add new configuration. | |
2343 | * doc/invoke.texi (armv7-r): Add two new vfp options. | |
2344 | (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that | |
2345 | support this option. | |
2346 | ||
2347 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2348 | ||
2349 | * config/rs6000/rs6000.c (rs6000_emit_move): Disable long | |
2350 | double split for targets other than Darwin. | |
2351 | ||
2352 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2353 | ||
2354 | * config/rs6000/rs6000.md (movdi_internal64): Correct lengths. | |
2355 | ||
2356 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2357 | ||
2358 | * config/rs6000/predicates.md (easy_fp_constant): Remove code | |
2359 | dealing with integers in const_double. Assert on unexpected | |
2360 | modes. Delete superfluous ABI_V4 test. | |
2361 | * config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes. | |
2362 | Don't call easy_fp_constant for Pmode. | |
2363 | (rs6000_hash_constant): Remove code dealing with integers in | |
2364 | const_double. | |
2365 | (rs6000_legitimate_constant_p): Likewise. | |
2366 | (output_toc): Formatting, use CONST_DOUBLE_P. | |
2367 | ||
2368 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2369 | ||
2370 | * config/rs6000/constraints.md (G, H): Comment on purpose of | |
2371 | constraint. Correct mode comments and "G" mode test. | |
2372 | * config/rs6000/rs6000.md (movdi_internal32): Remove "GH" from | |
2373 | alternative handling "F". Add length attr. Formatting. | |
2374 | (mov<mode>_softfloat <FMOVE128>): Delete "GH" from | |
2375 | alternative, and move "F" to separate alternative. Correct | |
2376 | insn lengths. | |
2377 | ||
2378 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2379 | ||
2380 | * config/rs6000/predicates.md (easy_vector_constant): Don't call | |
2381 | easy_fp_constant. | |
2382 | ||
2383 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2384 | ||
2385 | * config.in (HAVE_AS_PLTSEQ): Add. | |
2386 | * config/rs6000/predicates.md (indirect_call_operand): New. | |
2387 | * config/rs6000/rs6000-protos.h (rs6000_pltseq_template), | |
2388 | (rs6000_sibcall_sysv): Declare. | |
2389 | * config/rs6000/rs6000.c (init_cumulative_args): Set cookie | |
2390 | CALL_LONG for -fno-plt. | |
2391 | (print_operand <T, z, 0>): Handle UNSPEC_PLTSEQ. | |
2392 | (rs6000_indirect_call_template_1): Emit .reloc directives for | |
2393 | UNSPEC_PLTSEQ calls. | |
2394 | (rs6000_pltseq_template): New function. | |
2395 | (rs6000_longcall_ref): Add arg parameter. Use PLT16 insns if | |
2396 | relocs supported by assembler. Move SYMBOL_REF test to callers. | |
2397 | (rs6000_call_aix): Adjust rs6000_longcall_ref call. Package | |
2398 | insns in UNSPEC_PLTSEQ, preserving original func_desc. | |
2399 | (rs6000_call_sysv): Likewise. | |
2400 | (rs6000_sibcall_sysv): New function. | |
2401 | * config/rs6000/rs6000.h (HAVE_AS_PLTSEQ): Provide default. | |
2402 | * config/rs6000/rs6000.md (UNSPEC_PLTSEQ, UNSPEC_PLT16_HA, | |
2403 | UNSPEC_PLT16_LO): New. | |
2404 | (pltseq_tocsave, pltseq_plt16_ha, pltseq_plt16_lo, pltseq_mtctr): New. | |
2405 | (call_indirect_nonlocal_sysv): Don't differentiate zero from non-zero | |
2406 | cookie in constraints. Test explicitly for flags in length attr. | |
2407 | Handle unspec operand 1. | |
2408 | (call_value_indirect_nonlocal_sysv): Likewise. | |
2409 | (call_indirect_aix, call_value_indirect_aix): Handle unspec operand 1. | |
2410 | (call_indirect_elfv2, call_value_indirect_elfv2): Likewise. | |
2411 | (sibcall, sibcall_value): Use rs6000_sibcall_sysv. | |
2412 | (sibcall_indirect_nonlocal_sysv): New pattern. | |
2413 | (sibcall_value_indirect_nonlocal_sysv): Likewise. | |
2414 | (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Remove indirect | |
2415 | call alternatives. | |
2416 | * configure.ac: Check for gas plt sequence marker support. | |
2417 | * configure: Regenerate. | |
2418 | ||
2419 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2420 | ||
2421 | * config/rs6000/predicates.md (unspec_tls): New. | |
2422 | * config/rs6000/rs6000-protos.h (rs6000_call_template), | |
2423 | (rs6000_sibcall_template): Update prototype. | |
2424 | (rs6000_longcall_ref): Delete. | |
2425 | (rs6000_call_sysv): Declare. | |
2426 | * config/rs6000/rs6000.c (edit_tls_call_insn): New function. | |
2427 | (global_tlsarg): New variable. | |
2428 | (rs6000_legitimize_tls_address): Rewrite __tls_get_addr call | |
2429 | handling. | |
2430 | (print_operand): Extract UNSPEC_TLSGD address operand. | |
2431 | (rs6000_call_template, rs6000_sibcall_template): Remove arg | |
2432 | parameter, extract from second call operand instead. | |
2433 | (rs6000_longcall_ref): Make static, localize vars. | |
2434 | (rs6000_call_aix): Rename parameter to reflect new usage. Take | |
2435 | tlsarg from global_tlsarg. Don't create unused rtl or nop insns. | |
2436 | (rs6000_sibcall_aix): Rename parameter to reflect new usage. Take | |
2437 | tlsarg from global_tlsarg. | |
2438 | (rs6000_call_sysv): New function. | |
2439 | * config/rs6000/rs6000.md: Adjust rs6000_call_template and | |
2440 | rs6000_sibcall_template throughout. | |
2441 | (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix, tls_gd_call_sysv): Delete. | |
2442 | (tls_ld_aix, tls_ld_sysv, tls_ld_call_aix, tls_ld_call_sysv): Delete. | |
2443 | (tls_gdld_nomark): New insn. | |
2444 | (tls_gd): Swap operand order. Simplify mode selection. | |
2445 | (tls_gd_high, tls_gd_low): Swap operand order. | |
2446 | (tls_ld): Remove const_int 0 vector element from UNSPEC_TLSLD. | |
2447 | Simplify mode selection. | |
2448 | (tls_ld_high, tls_ld_low): Similarly adjust UNSPEC_TLSLD. | |
2449 | (call, call_value): Don't assert for second call operand. | |
2450 | Use rs6000_call_sysv. | |
2451 | ||
2452 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2453 | ||
2454 | * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64), | |
2455 | (call_nonlocal_darwin64, call_value_indirect_nonlocal_darwin64), | |
2456 | (call_value_nonlocal_darwin64): Remove constraints from second call | |
2457 | arg, the rounded_stack_size_rtx arg. | |
2458 | * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix), | |
2459 | (tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv, tls_ld_call_aix), | |
2460 | (tls_ld_call_sysv, call_local32, call_local64, call_value_local32), | |
2461 | (call_value_local64, call_indirect_nonlocal_sysv), | |
2462 | (call_nonlocal_sysv, call_nonlocal_sysv_secure), | |
2463 | (call_value_indirect_nonlocal_sysv, call_value_nonlocal_sysv), | |
2464 | (call_value_nonlocal_sysv_secure, call_local_aix), | |
2465 | (call_value_local_aix, call_nonlocal_aix, call_value_nonlocal_aix), | |
2466 | (call_indirect_aix, call_value_indirect_aix, call_indirect_elfv2), | |
2467 | (call_value_indirect_elfv2, sibcall_local32, sibcall_local64), | |
2468 | (sibcall_value_local32, sibcall_value_local64, sibcall_aix), | |
2469 | (sibcall_value_aix): Likewise. | |
2470 | ||
2471 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2472 | ||
2473 | * config/rs6000/rs6000.md (TLSmode): Delete mode iterator. Replace | |
2474 | with P throughout except for call mems which should use SI. | |
2475 | (tls_abi_suffix, tls_sysv_suffix, tls_insn_suffix): Delete mode | |
2476 | attributes. Replace with bits, mode and ptrload respectively. | |
2477 | ||
2478 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2479 | ||
2480 | * config/rs6000/rs6000-protos.h (rs6000_indirect_call_template), | |
2481 | (rs6000_indirect_sibcall_template): Declare. | |
2482 | * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), | |
2483 | (rs6000_indirect_call_template, rs6000_indirect_sibcall_template): | |
2484 | New functions. | |
2485 | * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv), | |
2486 | (call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv), | |
2487 | (call_indirect_aix, call_value_indirect_aix): Use | |
2488 | rs6000_indirect_call_template and rs6000_indirect_sibcall_template. | |
2489 | call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and | |
2490 | handle both speculation and non-speculation cases. | |
2491 | (call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete. | |
2492 | (call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete. | |
2493 | ||
2494 | 2018-11-29 Alan Modra <amodra@gmail.com> | |
2495 | ||
2496 | * config/rs6000/rs6000-protos.h (rs6000_call_template): Declare. | |
2497 | (rs6000_sibcall_template): Declare. | |
2498 | (macho_call_template): Rename from output_call. | |
2499 | * config/rs6000/rs6000.c (rs6000_call_template_1): New function. | |
2500 | (rs6000_call_template, rs6000_sibcall_template): Likewise. | |
2501 | (macho_call_template): Rename from output_call. | |
2502 | * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv), | |
2503 | (tls_gd_call_aix, tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv), | |
2504 | (tls_ld_call_aix, tls_ld_call_sysv, call_nonlocal_sysv), | |
2505 | (call_nonlocal_sysv_secure, call_value_nonlocal_sysv), | |
2506 | (call_value_nonlocal_sysv_secure, call_nonlocal_aix), | |
2507 | (call_value_nonlocal_aix): Use rs6000_call_template and update | |
2508 | occurrences of output_call to macho_call_template. | |
2509 | (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv, sibcall_aix), | |
2510 | (sibcall_value_aix): Use rs6000_sibcall_template. | |
2511 | ||
2512 | 2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> | |
2513 | ||
2514 | * config/rs6000/rs6000-string.c (expand_block_clear): Change how | |
2515 | we determine if unaligned vsx is ok. | |
2516 | ||
2517 | 2018-11-28 Jan Hubicka <jh@suse.cz> | |
2518 | ||
2519 | * predict.c (determine_unlikely_bbs): Forward declare; also determine | |
2520 | edges that are always known to be taken because it is only likely | |
2521 | edge out of given BB. | |
2522 | (tree_estimate_probability): Call before profile guessing to get bit | |
2523 | of extra precision. | |
2524 | ||
2525 | 2018-11-28 Jan Hubicka <jh@suse.cz> | |
2526 | ||
2527 | * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle | |
2528 | profile_probability::always better. | |
2529 | ||
2530 | 2018-11-28 Jan Hubicka <jh@suse.cz> | |
2531 | ||
2532 | * profile-count.h (profile_count::split): Give better result when | |
2533 | splitting profile_probability::always. | |
2534 | ||
2535 | 2018-11-28 Vladimir Makarov <vmakarov@redhat.com> | |
2536 | ||
2537 | PR target/88207 | |
2538 | * ira-costs.c (scan_one_insn): Process subregs when updating costs | |
2539 | for pseudos and allocnos from insn. | |
2540 | ||
2541 | 2018-11-28 David Edelsohn <dje.gcc@gmail.com> | |
2542 | ||
2543 | * config/rs6000/aix72.h: Update to match aix71.h changes. | |
2544 | ||
2545 | 2018-11-28 Jeff Law <law@redhat.com> | |
2546 | ||
2547 | * config/h8300/constraints.md: Add "C" constraint for call insns. | |
2548 | * config/h8300/h8300.md (call, call_value): Turn into a define_expand | |
2549 | and define_insn pair. Move invalid call targets into a register in | |
2550 | the expander and fix constraints in the matching pattern. | |
2551 | * config/h8300/predicates.md (call_expander_operand): Renamed from | |
2552 | call_insn_operand. Reject things we shouldn't be trying to handle. | |
2553 | (call_insn_operand): New predicate for use by the call/call_value | |
2554 | insns. | |
2555 | (small_call_insn_operand): Update appropriately. | |
2556 | ||
2557 | 2018-11-28 Sam Tebbs <sam.tebbs@arm.com> | |
2558 | ||
2559 | * config/aarch64/aarch64.c (aarch64_process_target_attr): Replace | |
2560 | calls to strtok with strtok_r. | |
2561 | ||
2562 | 2018-11-28 Richard Biener <rguenther@suse.de> | |
2563 | ||
2564 | PR tree-optimization/88223 | |
2565 | * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping | |
2566 | over a stored-same value may-alias store make sure to consider | |
2567 | partial overlaps which are valid when TBAA reasonings do not | |
2568 | apply and byte-granular overlaps are possible at all. | |
2569 | ||
2570 | 2018-11-28 Richard Biener <rguenther@suse.de> | |
2571 | ||
2572 | PR tree-optimization/88217 | |
2573 | * vr-values.c (vr_values::extract_range_from_phi_node): Make | |
2574 | sure to handle results > +INF and < -INF correctly when | |
2575 | trying to drop down to +INF - 1 or -INF + 1. | |
2576 | ||
2577 | 2018-11-28 Alan Modra <amodra@gmail.com> | |
2578 | ||
2579 | * xcoffout.c (do_block): Signed/unsigned warning fix. | |
2580 | ||
2581 | 2018-11-28 Richard Biener <rguenther@suse.de> | |
2582 | ||
2583 | PR tree-optimization/79351 | |
2584 | * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from | |
2585 | empty CONSTRUCTORs ensure the store is at a constant position. | |
2586 | ||
2587 | 2018-11-28 Richard Biener <rguenther@suse.de> | |
2588 | ||
2589 | PR tree-optimization/88229 | |
2590 | * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT | |
2591 | is an INTEGER_CST before accessing it so. | |
2592 | ||
2593 | 2018-11-28 Sam Tebbs <sam.tebbs@arm.com> | |
2594 | ||
2595 | * doc/invoke.texi (-mtune=): Remove obsolete CPU names. | |
2596 | ||
2597 | 2018-11-28 Jakub Jelinek <jakub@redhat.com> | |
2598 | ||
2599 | PR target/88189 | |
2600 | * config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and | |
2601 | SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1. Formatting fixes. | |
2602 | * config/i386/sse.md (sse4_1_blendv<ssemodesuffix>): New pattern. | |
2603 | ||
2604 | 2018-11-27 Martin Liska <mliska@suse.cz> | |
2605 | ||
2606 | * gcov.c (generate_results): Append current_working_directory | |
2607 | only when exists. | |
2608 | ||
2609 | 2018-11-27 Mike Gulick <mgulick@mathworks.com> | |
2610 | ||
2611 | PR preprocessor/83173 | |
2612 | * input.c (dump_location_info): Dump reason and included_from | |
2613 | fields from line_map_ordinary struct. Fix indentation when | |
2614 | location > 5 digits. | |
2615 | * diagnostic-show-locus.c (num_digits, num_digits): Move to | |
2616 | diagnostic.c to allow it to be utilized by input.c. | |
2617 | * diagnostic.c (num_digits, selftest::test_num_digits): Moved | |
2618 | here. | |
2619 | (selftest::diagnostic_c_tests): Run selftest::test_num_digits. | |
2620 | * diagnostic.h (num_digits): Add extern definition. | |
2621 | ||
2622 | 2018-11-27 Fredrik Noring <noring@nocrew.org> | |
2623 | ||
2624 | * config/mips/mips.c (mips_reorg_process_insns) | |
2625 | (mips_option_override): Handle `-mfix-r5900'. | |
2626 | * config/mips/mips.h (ASM_SPEC): Add `mfix-r5900' and | |
2627 | `mno-fix-r5900'. | |
2628 | * config/mips/mips.opt (mfix-r5900): New option. | |
2629 | * doc/invoke.texi: Document the `r5900' processor name, and | |
2630 | `-mfix-r5900' and `-mno-fix-r5900' options. | |
2631 | ||
2632 | 2018-11-27 Jakub Jelinek <jakub@redhat.com> | |
2633 | ||
2634 | PR target/88188 | |
2635 | * config/rs6000/rs6000.c (print_operand) <case 'D'>: Use | |
2636 | output_operand_lossage instead of gcc_assert. | |
2637 | <case 't'>: Likewise. | |
2638 | <case 'z'>: Likewise. | |
2639 | <case 'V'>: Use output_operand_lossage instead of gcc_unreachable. | |
2640 | ||
2641 | 2018-11-27 Jeff Law <law@redhat.com> | |
2642 | ||
2643 | * config/riscv/riscv (riscv_block_mvoe_straight): Use RETURN_BEGIN | |
2644 | in call to move_by_pieces. | |
2645 | ||
2646 | * config/sh/sh-mem.c (expand_block_move): Use RETURN_BEGIN in call | |
2647 | to move_by_pieces. | |
2648 | ||
2649 | * config/lm32/lm32.c (lm32_block_move_inline): Use RETURN_BEGIN in | |
2650 | call to move_by_pieces. | |
2651 | ||
2652 | * config/mips/mips.c (mips_block_move_straight): Use RETURN_BEGIN | |
2653 | in call to move_by_pieces. | |
2654 | ||
2655 | * config/microblaze/microblaze.c (microblaze_block_move_straight): Use | |
2656 | RETURN_BEGIN in call to move_by_pieces. | |
2657 | (microblaze_expand_block_move): Likewise. | |
2658 | ||
2659 | 2018-11-27 Tamar Christina <tamar.christina@arm.com> | |
2660 | ||
2661 | * doc/md.texi (xorsign): Document it. | |
2662 | ||
2663 | 2018-11-27 Martin Liska <mliska@suse.cz> | |
2664 | ||
2665 | * config/gnu-user.h (TARGET_F951_OPTIONS): New. | |
2666 | * gcc.c (find_fortran_preinclude_file): New function | |
2667 | to handle Fortran pre-include. | |
2668 | ||
2669 | 2018-11-27 Martin Liska <mliska@suse.cz> | |
2670 | ||
2671 | * asan.c (asan_emit_stack_protection): Use new enum values | |
2672 | instead of int constants. | |
2673 | * builtins.c (expand_builtin_memory_copy_args): Replace int | |
2674 | type with memop_ret enum type. | |
2675 | (expand_builtin_mempcpy_args): Likewise. | |
2676 | (expand_builtin_memcpy): Use new enum values | |
2677 | instead of int constants. Likewise. | |
2678 | (expand_builtin_mempcpy): Likewise. | |
2679 | (expand_movstr): Likewise. | |
2680 | (expand_builtin_strcpy_args): Likewise. | |
2681 | (expand_builtin_stpcpy_1): Likewise. | |
2682 | (expand_builtin_strncpy): Likewise. | |
2683 | (expand_builtin_memset_args): Likewise. | |
2684 | * expr.c (move_by_pieces_d::finish_endp): Rename to ... | |
2685 | (move_by_pieces_d::finish_retmode): ... this. | |
2686 | (move_by_pieces): Change last argument type to memop_ret. | |
2687 | (store_by_pieces): Use new enum values | |
2688 | instead of int constants. | |
2689 | (emit_block_move_hints): Likewise. | |
2690 | (emit_push_insn): Likewise. | |
2691 | (store_expr): Likewise. | |
2692 | * expr.h (store_by_pieces): Change int to newly added enum | |
2693 | type. | |
2694 | * rtl.h (enum memop_ret): Define. | |
2695 | (move_by_pieces): Use the enum type. | |
2696 | ||
2697 | 2018-11-27 Alan Modra <amodra@gmail.com> | |
2698 | ||
2699 | * config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64 | |
2700 | cpu here. | |
2701 | (ASM_CPU_SPEC): Do so here. Rewrite using if .. else if .. specs | |
2702 | form. Error on missing -mcpu case. | |
2703 | * config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case. | |
2704 | (asm_names <!_AIX>): Add missing cpus. Update NULL case. Apply | |
2705 | PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le. | |
2706 | * config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if .. | |
2707 | else if .. specs form. Error on missing -mcpu case. Don't output | |
2708 | duplicate -maltivec. Apply PR63177 fix for -mcpu=powerpc64le. | |
2709 | ||
2710 | 2018-11-26 David Malcolm <dmalcolm@redhat.com> | |
2711 | ||
2712 | * dump-context.h (dump_context::dump_loc): Convert 1st param from | |
2713 | dump_flags_t to const dump_metadata_t &. Convert 2nd param from | |
2714 | const dump_location_t & to const dump_user_location_t &. | |
2715 | (dump_context::dump_loc_immediate): Convert 2nd param from | |
2716 | const dump_location_t & to const dump_user_location_t &. | |
2717 | (dump_context::dump_gimple_stmt): Convert 1st param from | |
2718 | dump_flags_t to const dump_metadata_t &. | |
2719 | (dump_context::void dump_gimple_stmt_loc): Likewise; convert | |
2720 | 2nd param from const dump_location_t & to | |
2721 | const dump_user_location_t &. | |
2722 | (dump_context::dump_gimple_expr): Convert 1st param from | |
2723 | dump_flags_t to const dump_metadata_t &. | |
2724 | (dump_context::dump_gimple_expr_loc): Likewise; convert | |
2725 | 2nd param from const dump_location_t & to | |
2726 | const dump_user_location_t &. | |
2727 | (dump_context::dump_generic_expr): Convert 1st param from | |
2728 | dump_flags_t to const dump_metadata_t &. | |
2729 | (dump_context::dump_generic_expr_loc): Likewise; convert | |
2730 | 2nd param from const dump_location_t & to | |
2731 | const dump_user_location_t &. | |
2732 | (dump_context::dump_printf_va): Convert 1st param from | |
2733 | dump_flags_t to const dump_metadata_t &. | |
2734 | (dump_context::dump_printf_loc_va): Likewise; convert | |
2735 | 2nd param from const dump_location_t & to | |
2736 | const dump_user_location_t &. | |
2737 | (dump_context::dump_dec): Convert 1st param from | |
2738 | dump_flags_t to const dump_metadata_t &. | |
2739 | (dump_context::dump_symtab_node): Likewise. | |
2740 | (dump_context::begin_scope): Split out 2nd param into | |
2741 | user and impl locations. | |
2742 | (dump_context::ensure_pending_optinfo): Add metadata param. | |
2743 | (dump_context::begin_next_optinfo): Replace dump_location_t param | |
2744 | with metadata and user location. | |
2745 | * dumpfile.c (dump_context::dump_loc): Convert 1st param from | |
2746 | dump_flags_t to const dump_metadata_t &. Convert 2nd param from | |
2747 | const dump_location_t & to const dump_user_location_t &. | |
2748 | (dump_context::dump_loc_immediate): Convert 2nd param from | |
2749 | const dump_location_t & to const dump_user_location_t &. | |
2750 | (dump_context::dump_gimple_stmt): Convert 1st param from | |
2751 | dump_flags_t to const dump_metadata_t &. | |
2752 | (dump_context::void dump_gimple_stmt_loc): Likewise; convert | |
2753 | 2nd param from const dump_location_t & to | |
2754 | const dump_user_location_t &. | |
2755 | (dump_context::dump_gimple_expr): Convert 1st param from | |
2756 | dump_flags_t to const dump_metadata_t &. | |
2757 | (dump_context::dump_gimple_expr_loc): Likewise; convert | |
2758 | 2nd param from const dump_location_t & to | |
2759 | const dump_user_location_t &. | |
2760 | (dump_context::dump_generic_expr): Convert 1st param from | |
2761 | dump_flags_t to const dump_metadata_t &. | |
2762 | (dump_context::dump_generic_expr_loc): Likewise; convert | |
2763 | 2nd param from const dump_location_t & to | |
2764 | const dump_user_location_t &. | |
2765 | (dump_context::dump_printf_va): Convert 1st param from | |
2766 | dump_flags_t to const dump_metadata_t &. | |
2767 | (dump_context::dump_printf_loc_va): Likewise; convert | |
2768 | 2nd param from const dump_location_t & to | |
2769 | const dump_user_location_t &. | |
2770 | (dump_context::dump_dec): Convert 1st param from | |
2771 | dump_flags_t to const dump_metadata_t &. | |
2772 | (dump_context::dump_symtab_node): Likewise. | |
2773 | (dump_context::begin_scope): Split out 2nd param into | |
2774 | user and impl locations. | |
2775 | (dump_context::ensure_pending_optinfo): Add metadata param. | |
2776 | (dump_context::begin_next_optinfo): Replace dump_location_t param | |
2777 | with metadata and user location. | |
2778 | (dump_gimple_stmt): Convert 1st param from dump_flags_t to | |
2779 | const dump_metadata_t &. | |
2780 | (dump_gimple_stmt_loc): Likewise; convert 2nd param from | |
2781 | const dump_location_t & to const dump_user_location_t &. | |
2782 | (dump_gimple_expr): Convert 1st param from dump_flags_t to | |
2783 | const dump_metadata_t &. | |
2784 | (dump_gimple_expr_loc): Likewise; convert 2nd param from | |
2785 | const dump_location_t & to const dump_user_location_t &. | |
2786 | (dump_generic_expr): Convert 1st param from dump_flags_t to | |
2787 | const dump_metadata_t &. | |
2788 | (dump_generic_expr_loc): Likewise; convert 2nd param from | |
2789 | const dump_location_t & to const dump_user_location_t &. | |
2790 | (dump_printf): Convert 1st param from dump_flags_t to | |
2791 | const dump_metadata_t &. | |
2792 | (dump_printf_loc): Likewise; convert 2nd param from | |
2793 | const dump_location_t & to const dump_user_location_t &. | |
2794 | (dump_dec): Convert 1st param from dump_flags_t to | |
2795 | const dump_metadata_t &. | |
2796 | (dump_symtab_node): Likewise. | |
2797 | (dump_begin_scope): Split out 2nd param into user and impl | |
2798 | locations. | |
2799 | (selftest::assert_impl_location_eq): New function. | |
2800 | (ASSERT_IMPL_LOCATION_EQ): New macro. | |
2801 | (selftest::test_impl_location): Update to use | |
2802 | ASSERT_IMPL_LOCATION_EQ. | |
2803 | (selftest::test_capture_of_dump_calls): Convert "loc" to | |
2804 | dump_user_location_t. Add ASSERT_IMPL_LOCATION_EQ throughout, | |
2805 | verifying line numbers of dump emissions. | |
2806 | * dumpfile.h (class dump_metadata_t): New class. | |
2807 | (dump_printf): Convert 1st param from dump_flags_t to | |
2808 | const dump_metadata_t &. | |
2809 | (dump_printf_loc): Likewise; convert 2nd param from | |
2810 | const dump_location_t & to const dump_user_location_t &. | |
2811 | (dump_generic_expr_loc): Likewise. | |
2812 | (dump_generic_expr): Convert 1st param from dump_flags_t to | |
2813 | const dump_metadata_t &. | |
2814 | (dump_gimple_stmt_loc): Likewise; convert 2nd param from | |
2815 | const dump_location_t & to const dump_user_location_t &. | |
2816 | (dump_gimple_stmt): Convert 1st param from dump_flags_t to | |
2817 | const dump_metadata_t &. | |
2818 | (dump_gimple_expr_loc): Likewise; convert 2nd param from | |
2819 | const dump_location_t & to const dump_user_location_t &. | |
2820 | (dump_gimple_expr): Convert 1st param from dump_flags_t to | |
2821 | const dump_metadata_t &. | |
2822 | (dump_symtab_node): Likewise. | |
2823 | (dump_dec): Likewise. | |
2824 | (dump_begin_scope): Split out 2nd param into user and impl | |
2825 | locations. | |
2826 | (auto_dump_scope::auto_dump_scope): Split "loc" param into a user | |
2827 | location and impl_location, and capture the impl_location. | |
2828 | (AUTO_DUMP_SCOPE): Rename param from LOC to USER_LOC. | |
2829 | * loop-unroll.c (report_unroll): Update for changes to | |
2830 | dump_printf_loc and dump_printf. | |
2831 | * opt-problem.cc (opt_problem::opt_problem): Update for change to | |
2832 | dump_loc. | |
2833 | * optinfo-emit-json.cc | |
2834 | (selftest::test_building_json_from_dump_calls): Convert "loc" from | |
2835 | dump_location_t to dump_user_location_t. | |
2836 | * optinfo.cc (optinfo::emit_for_opt_problem): Update for change in | |
2837 | dump_loc_immediate. | |
2838 | * profile.c (compute_branch_probabilities): Update for change to | |
2839 | dump_printf_loc. | |
2840 | * selftest.h (ASSERT_STR_CONTAINS_AT): New macro. | |
2841 | * tree-vect-slp.c (vect_print_slp_tree): Update for change to | |
2842 | dump_printf_loc. | |
2843 | ||
2844 | 2018-11-27 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
2845 | ||
2846 | * doc/sourcebuild.texi: Document check_effective_target_int_eq_float | |
2847 | and check_effective_target_ptr_eq_long. | |
2848 | ||
2849 | 2018-11-27 Alan Modra <amodra@gmail.com> | |
2850 | ||
2851 | * config.gcc (powerpc*-*-freebsd*, powerpc-*-netbsd*), | |
2852 | (powerpc-*-eabisimaltivec*, powerpc-*-eabisim*, powerpc-*-elf*), | |
2853 | (powerpc-*-eabialtivec*, powerpc-*-eabi*, powerpc-*-rtems*), | |
2854 | (powerpc-wrs-vxworks*, powerpc-*-lynxos*, powerpcle-*-elf*), | |
2855 | (powerpcle-*-eabisim*, powerpcle-*-eabi*): Add gnu-user.h to tm_file. | |
2856 | * config/rs6000/freebsd.h (CPLUSPLUS_CPP_SPEC), | |
2857 | (LINK_GCC_C_SEQUENCE_SPEC): Undef. | |
2858 | (ASM_APP_ON, ASM_APP_OFF): Don't define. | |
2859 | * config/rs6000/freebsd64.h (ASM_APP_ON, ASM_APP_OFF): Don't define. | |
2860 | * config/rs6000/lynx.h (ASM_APP_ON, ASM_APP_OFF): Don't define. | |
2861 | * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. | |
2862 | * config/rs6000/netbsd.h (CPLUSPLUS_CPP_SPEC), | |
2863 | (LINK_GCC_C_SEQUENCE_SPEC): Undef. | |
2864 | * config/rs6000/rtems.h (LINK_GCC_C_SEQUENCE_SPEC): Define. | |
2865 | * config/rs6000/sysv4.h (GNU_USER_TARGET_CRTI): Redefine. | |
2866 | (GNU_USER_TARGET_CRTN): Redefine. | |
2867 | (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. | |
2868 | (LIB_LINUX_SPEC): Use GNU_USER_TARGET_LIB_SPEC. | |
2869 | (CRTOFFLOADBEGIN, CRTOFFLOADEND): Don't define. | |
2870 | (STARTFILE_LINUX_SPEC): Define as GNU_USER_TARGET_STARTFILE_SPEC. | |
2871 | (ENDFILE_LINUX_SPEC): Define as GNU_USER_TARGET_ENDFILE_SPEC. | |
2872 | (UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER): Don't define. | |
2873 | (LINK_EH_SPEC): Don't define. | |
2874 | ||
2875 | 2018-11-26 Martin Sebor <msebor@redhat.com> | |
2876 | ||
2877 | PR 87756 | |
2878 | * expr.c (string_constant): Handle top-level decls of all character | |
2879 | types and subobjects of narrow character type. | |
2880 | ||
2881 | 2018-11-27 Alan Modra <amodra@gmail.com> | |
2882 | ||
2883 | * config.gcc (powerpc*-*-linux*): Add linux.h to tm_file. | |
2884 | * config/rs6000/linux.h (TARGET_OS_CPP_BUILTINS): Use | |
2885 | GNU_USER_TARGET_OS_CPP_BUILTINS. | |
2886 | (RS6000_ABI_NAME): Define. | |
2887 | * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Use | |
2888 | GNU_USER_TARGET_OS_CPP_BUILTINS. | |
2889 | (MUSL_DYNAMIC_LINKER32): Undef before defining. | |
2890 | (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64): Don't define. | |
2891 | (CHOOSE_DYNAMIC_LINKER): Don't define. | |
2892 | (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Don't define. | |
2893 | * config/rs6000/sysv4.h (MUSL_DYNAMIC_LINKER): Undef before defining. | |
2894 | (CHOOSE_DYNAMIC_LINKER, GNU_USER_DYNAMIC_LINKER): Only define when | |
2895 | not already defined. | |
2896 | (CPP_OS_LINUX_SPEC): Remove defines and asserts handled by | |
2897 | TARGET_OS_CPP_BUILTINS. | |
2898 | ||
2899 | 2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
2900 | ||
2901 | * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io. | |
2902 | ||
2903 | 2018-11-26 Jakub Jelinek <jakub@redhat.com> | |
2904 | ||
2905 | PR target/88195 | |
2906 | * config/i386/i386.c (def_builtin2): If tcode == VOID_FTYPE_UINT64 | |
2907 | and !TARGET_64BIT, return NULL_TREE. | |
2908 | ||
2909 | PR c++/86900 | |
2910 | * dwarf2out.c (secname_for_decl): For functions with | |
2911 | DECL_SECTION_NAME if in_cold_section_p, try to return | |
2912 | current_function_section's name if it is a named section. | |
2913 | ||
2914 | 2018-11-26 Maya Rashish <coypu@sdf.org> | |
2915 | ||
2916 | PR target/58397 | |
2917 | * config.host (*-*-netbsd*): Use x-netbsd and host-netbsd.o. | |
2918 | * config/x-netbsd: New file. | |
2919 | * config/host-netbsd: New file. | |
2920 | ||
2921 | 2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
2922 | ||
2923 | * doc/sourcebuild.texi: Document check_effective_target_size20plus. | |
2924 | Clarify documentation for check_effective_target_size32plus. | |
2925 | ||
2926 | 2018-11-26 Aaron Sawdey <acsawdey@linux.ibm.com> | |
2927 | ||
2928 | * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename | |
2929 | and modify expand_strncmp_vec_sequence. | |
2930 | (emit_final_compare_vec): Rename and modify emit_final_str_compare_vec. | |
2931 | (generate_6432_conversion): New function. | |
2932 | (expand_block_compare): Add support for vsx. | |
2933 | (expand_block_compare_gpr): New function. | |
2934 | * config/rs6000/rs6000.opt (rs6000_block_compare_inline_limit): Increase | |
2935 | default limit to 63 because of more compact vsx code. | |
2936 | ||
2937 | 2018-11-26 Uros Bizjak <ubizjak@gmail.com> | |
2938 | ||
2939 | PR target/88178 | |
2940 | * config/i386/i386.c (dbx_register_map): Use IGNORED_DWARF_REGNUM | |
2941 | for registers for which no debug information can be generated. | |
2942 | Use INVALID_REGNUM for non-existent registers. | |
2943 | (dbx64_register_map): Ditto. | |
2944 | (svr4_dbx_register_map): Ditto. | |
2945 | ||
2946 | 2018-11-26 Sandra Loosemore <sandra@codesourcery.com> | |
2947 | ||
2948 | PR c/57182 | |
2949 | * doc/invoke.texi (Optimize Options): Document that | |
2950 | -freorder-functions also uses "hot" and "cold" attributes. | |
2951 | ||
2952 | 2018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2953 | ||
2954 | * config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment. | |
2955 | ||
2956 | 2018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
2957 | ||
2958 | * config/arm/types.md (mul64): Rename to... | |
2959 | (widen_mul64): ... This. | |
2960 | * config/arm/arm-generic.md: Rename mul64 to widen_mul64. | |
2961 | * config/arm/cortex-a15.md: Likewise. | |
2962 | * config/arm/cortex-a5.md: Likewise. | |
2963 | * config/arm/cortex-a53.md: Likewise. | |
2964 | * config/arm/cortex-a57.md: Likewise. | |
2965 | * config/arm/cortex-a7.md: Likewise. | |
2966 | * config/arm/cortex-m4.md: Likewise. | |
2967 | * config/arm/exynos-m1.md: Likewise. | |
2968 | * config/arm/marvell-pj4.md: Likewise. | |
2969 | * config/arm/xgene1.md: Likewise. | |
2970 | ||
2971 | 2018-11-26 Richard Biener <rguenther@suse.de> | |
2972 | ||
2973 | PR tree-optimization/88182 | |
2974 | * tree-vect-loop.c (vectorizable_reduction): Pick up single | |
2975 | correct reduc_def_info. | |
2976 | * tree-vect-slp.c (vect_analyze_slp_instance): Set | |
2977 | STMT_VINFO_REDUC_DEF of the first stmt. | |
2978 | ||
2979 | 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> | |
2980 | ||
2981 | * doc/invoke.texi: Document z14/arch12 -march option. | |
2982 | ||
2983 | 2018-11-25 Sandra Loosemore <sandra@codesourcery.com> | |
2984 | ||
2985 | PR c/57166 | |
2986 | * doc/invoke.texi (Option Summary): Add -Wmissing-noreturn. | |
2987 | (Warning Options): Likewise. | |
2988 | ||
2989 | 2018-11-25 Sandra Loosemore <sandra@codesourcery.com> | |
2990 | ||
2991 | PR web/79738 | |
2992 | * doc/extend.texi (Common Function Attributes): Clarify that | |
2993 | functions with "const" attribute can read const global variables. | |
2994 | ||
2995 | 2018-11-26 Alan Modra <amodra@gmail.com> | |
2996 | ||
2997 | * config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete. | |
2998 | ||
2999 | 2018-11-25 Sandra Loosemore <sandra@codesourcery.com> | |
3000 | ||
3001 | PR other/54265 | |
3002 | * doc/extend.texi (Common Variable Attributes): Use preferred | |
3003 | placement of type attributes in examples, plus whitespace fixes. | |
3004 | (Type Attributes): Clarify why placement of attributes | |
3005 | immediately after struct/union/enum keyword is preferred. | |
3006 | (Common Type Attributes): Use preferred placement of type | |
3007 | attributes in examples, plus more whitespace fixes. | |
3008 | ||
3009 | 2018-11-25 Paul Koning <ni1d@arrl.net> | |
3010 | ||
3011 | * config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define. | |
3012 | ||
3013 | 2018-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
3014 | ||
3015 | * doc/sourcebuild.texi (Effective-Target Keywords, Environment | |
3016 | attributes): Document d_runtime. | |
3017 | ||
3018 | 2018-11-25 Vladimir Makarov <vmakarov@redhat.com> | |
3019 | ||
3020 | PR bootstrap/88157 | |
3021 | * ira-costs.c (record_operand_costs): Initiate register move cost | |
3022 | for mode. | |
3023 | ||
3024 | 2018-11-23 Jeff Law <law@redhat.com> | |
3025 | ||
3026 | PR rtl-optimization/87468 | |
3027 | * tree-ssa-threadupdate.c (create_block_for_threading): Clear | |
3028 | EDGE_IGNORE on all outgoing edges of the duplicate block. | |
3029 | ||
3030 | 2018-11-23 Vladimir Makarov <vmakarov@redhat.com> | |
3031 | ||
3032 | PR bootstrap/88157 | |
3033 | * ira-costs.c (record_operand_costs): Use bigger hard reg class if | |
3034 | its mode does not fit to the original class. | |
3035 | ||
3036 | 2018-11-23 Martin Sebor <msebor@redhat.com> | |
3037 | ||
3038 | PR tree-optimization/87756 | |
3039 | * expr.c (string_constant): Synthesize a string literal from | |
3040 | the address of a constant character. | |
3041 | * tree.c (build_string_literal): Add an argument. | |
3042 | * tree.h (build_string_literal): Same. | |
3043 | ||
3044 | 2018-11-23 Christoph Muellner <christoph.muellner@theobroma-systems.com> | |
3045 | ||
3046 | * config/aarch64/aarch64-cores.def: Define emag. | |
3047 | * config/aarch64/aarch64-tune.md: Regenerated with emag. | |
3048 | * config/aarch64/aarch64.c (emag_tunings): New struct. | |
3049 | * doc/invoke.texi: Document mtune value. | |
3050 | ||
3051 | 2018-11-23 Christoph Muellner <christoph.muellner@theobroma-systems.com> | |
3052 | Philipp Tomsich <philipp.tomsich@theobroma-systems.com> | |
3053 | ||
3054 | * config/aarch64/aarch64.c (xgene1_tunings): Optimize Xgene1 tunings | |
3055 | for GCC 9. | |
3056 | * config/aarch64/aarch64.c (xgene1_tunings): Add Xgene1 specific | |
3057 | prefetch tunings. | |
3058 | * config/aarch64/aarch64.c (xgene1_addrcost_table): Correct the post-modify | |
3059 | costs. | |
3060 | * config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table | |
3061 | for XGene1. | |
3062 | ||
3063 | 2018-11-23 Richard Biener <rguenther@suse.de> | |
3064 | ||
3065 | PR tree-optimization/88149 | |
3066 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect | |
3067 | the case where there are two different def types for the | |
3068 | same operand at different operand position in the same stmt. | |
3069 | ||
3070 | 2018-23-11 Mihail Ionescu <mihail.ionescu@arm.com> | |
3071 | ||
3072 | * config/arm/arm.c (arm_expand_compare_and_swap): Simplify and call | |
3073 | gen_atomic_compare_swap_1. | |
3074 | (arm_evpc_neon_vuzp): Likewise gen_neon_vuzp_internal. | |
3075 | (arm_evpc_neon_vtrn): Likewise gen_neon_vtrn_internal. | |
3076 | (arm_evpc_neon_vext): Likewise gen_neon_vext_internal. | |
3077 | (arm_evpc_neon_vzip): Likewise gen_neon_vzip_internal. | |
3078 | (arm_evpc_neon_vrev): Replace the function pointer and simplify the mode | |
3079 | checks. | |
3080 | * config/arm/arm.md (neon_vext<mode>), | |
3081 | (neon_vrev64<mode>, neon_vrev32<mode>), | |
3082 | (neon_vrev16<mode>, neon_vtrn<mode>_internal), | |
3083 | (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Add an '@'character | |
3084 | before the pattern name. | |
3085 | * config/arm/sync.md: | |
3086 | (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1), | |
3087 | (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise. | |
3088 | ||
3089 | 2018-11-23 Jakub Jelinek <jakub@redhat.com> | |
3090 | ||
3091 | PR tree-optimization/86614 | |
3092 | * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return early | |
3093 | if TREE_NO_WARNING is set on ref.ref. | |
3094 | ||
3095 | 2018-11-22 Sandra Loosemore <sandra@codesourcery.com> | |
3096 | Alan Coopersmith <alan.coopersmith@oracle.com> | |
3097 | ||
3098 | PR c/53608 | |
3099 | * doc/extend.texi (Designated Inits): Clarify handling of multiple | |
3100 | initializers for unions. | |
3101 | ||
3102 | 2018-11-22 Jan Hubicka <jh@suse.cz> | |
3103 | ||
3104 | PR lto/88142 | |
3105 | * ipa-devirt.c (type_variants_equivalent_p): Drop warn and warned | |
3106 | parameters; do not warn here. | |
3107 | (odr_subtypes_equivalent_p): Likewise. | |
3108 | (warn_odr): Fix typo. | |
3109 | (warn_types_mismatch): Do not output confused warnings on integer types. | |
3110 | (odr_types_equivalent_p): Update. | |
3111 | ||
3112 | 2018-11-22 Jakub Jelinek <jakub@redhat.com> | |
3113 | ||
3114 | * config/i386/i386.c (ix86_option_override_internal, | |
3115 | ix86_can_inline_p, classify_argument, construct_container, | |
3116 | ix86_expand_prologue, ix86_expand_split_stack_prologue, | |
3117 | ix86_expand_carry_flag_compare, expand_set_or_movmem_via_loop, | |
3118 | expand_setmem_epilogue_via_loop, promote_duplicated_reg, | |
3119 | ix86_expand_set_or_movmem, ix86_init_builtins_va_builtins_abi): | |
3120 | Formatting fixes. | |
3121 | ||
3122 | * config/i386/i386.c (ix86_option_override_internal): For | |
3123 | stack_protector_guard related options, use opts_set->x_ instead | |
3124 | of global_options_set. and prefix options with opts->x_ . Move | |
3125 | defaults for offset and reg into else block. | |
3126 | ||
3127 | 2018-11-22 Uros Bizjak <ubizjak@gmail.com> | |
3128 | ||
3129 | * config/i386/i386.c (ix86_check_avx_upper_register): | |
3130 | Return true for all SSE registers with mode bitsize > 128. | |
3131 | ||
3132 | 2018-11-22 Vladimir Makarov <vmakarov@redhat.com> | |
3133 | ||
3134 | PR rtl-optimization/87718 | |
3135 | * ira-costs.c: Remove trailing white-spaces. | |
3136 | (record_operand_costs): Add a special treatment for moves | |
3137 | involving a hard register. | |
3138 | ||
3139 | 2018-11-22 Uros Bizjak <ubizjak@gmail.com> | |
3140 | ||
3141 | * config/i386/i386.c (ix86_avx_emit_vzeroupper): Remove. | |
3142 | (ix86_emit_mode_set) <case AVX_U128>: Emit vzeroupper here. | |
3143 | ||
3144 | 2018-11-22 Martin Liska <mliska@suse.cz> | |
3145 | ||
3146 | * common/config/i386/i386-common.c (processor_names): Add | |
3147 | static assert and add missing "znver2". | |
3148 | (ix86_get_valid_option_values): Add checking assert for null | |
3149 | values and add "native" value if feasible. | |
3150 | * config/i386/i386.h: Do not declare size of processor_names. | |
3151 | * common/config/i386/i386-common.c: | |
3152 | * config/i386/i386.c: Add static assert for size | |
3153 | of processor_cost_table. | |
3154 | ||
3155 | 2018-11-22 Thomas Preud'homme <thomas.preudhomme@linaro.org> | |
3156 | ||
3157 | * target-insns.def (stack_protect_combined_set): Define new standard | |
3158 | pattern name. | |
3159 | (stack_protect_combined_test): Likewise. | |
3160 | * cfgexpand.c (stack_protect_prologue): Try new | |
3161 | stack_protect_combined_set pattern first. | |
3162 | * function.c (stack_protect_epilogue): Try new | |
3163 | stack_protect_combined_test pattern first. | |
3164 | * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now | |
3165 | parameters to control which register to use as PIC register and force | |
3166 | reloading PIC register respectively. Insert in the stream of insns if | |
3167 | possible. | |
3168 | (legitimize_pic_address): Expose above new parameters in prototype and | |
3169 | adapt recursive calls accordingly. Use pic_reg if non null instead of | |
3170 | cached one. | |
3171 | (arm_load_pic_register): Add pic_reg parameter and use it if non null. | |
3172 | (arm_legitimize_address): Adapt to new legitimize_pic_address | |
3173 | prototype. | |
3174 | (thumb_legitimize_address): Likewise. | |
3175 | (arm_emit_call_insn): Adapt to require_pic_register prototype change. | |
3176 | (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. | |
3177 | (thumb1_expand_prologue): Likewise. | |
3178 | * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype | |
3179 | change. | |
3180 | (arm_load_pic_register): Likewise. | |
3181 | * config/arm/predicated.md (guard_addr_operand): New predicate. | |
3182 | (guard_operand): New predicate. | |
3183 | * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address | |
3184 | prototype change. | |
3185 | (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue | |
3186 | prototype change. | |
3187 | (stack_protect_combined_set): New expander.. | |
3188 | (stack_protect_combined_set_insn): New insn_and_split pattern. | |
3189 | (stack_protect_set_insn): New insn pattern. | |
3190 | (stack_protect_combined_test): New expander. | |
3191 | (stack_protect_combined_test_insn): New insn_and_split pattern. | |
3192 | (arm_stack_protect_test_insn): New insn pattern. | |
3193 | * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. | |
3194 | * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. | |
3195 | (UNSPEC_SP_TEST): Likewise. | |
3196 | * doc/md.texi (stack_protect_combined_set): Document new standard | |
3197 | pattern name. | |
3198 | (stack_protect_set): Clarify that the operand for guard's address is | |
3199 | legal. | |
3200 | (stack_protect_combined_test): Document new standard pattern name. | |
3201 | (stack_protect_test): Clarify that the operand for guard's address is | |
3202 | legal. | |
3203 | ||
3204 | 2018-11-22 Richard Biener <rguenther@suse.de> | |
3205 | ||
3206 | PR tree-optimization/88148 | |
3207 | * tree-ssa-loop-niter.c (simplify_replace_tree): Get optional | |
3208 | valueization callback parameter and handle it. | |
3209 | * tree-ssa-loop-niter.h (simplify_replace_tree): Export. | |
3210 | * tree-ssa-sccvn.c (process_bb): Eliminate in loop niter trees. | |
3211 | ||
3212 | 2018-11-22 Richard Biener <rguenther@suse.de> | |
3213 | ||
3214 | PR lto/87229 | |
3215 | PR lto/88112 | |
3216 | * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs | |
3217 | which can appear in size expressions. | |
3218 | * tree-streamer-in.c (unpack_ts_base_value_fields): Stream | |
3219 | CALL_EXPR_BY_DESCRIPTOR. | |
3220 | (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. | |
3221 | * tree-streamer-out.c (pack_ts_base_value_fields): Stream | |
3222 | CALL_EXPR_BY_DESCRIPTOR. | |
3223 | (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. | |
3224 | ||
3225 | Revert | |
3226 | PR lto/87229 | |
3227 | * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val | |
3228 | sizepos values. | |
3229 | ||
3230 | 2018-11-22 Richard Biener <rguenther@suse.de> | |
3231 | ||
3232 | PR tree-optimization/88069 | |
3233 | * tree-ssa-sccvn.c (visit_phi): Tweak previous fix to not | |
3234 | apply to default defs. | |
3235 | ||
3236 | 2018-11-22 Jakub Jelinek <jakub@redhat.com> | |
3237 | ||
3238 | PR target/85644 | |
3239 | PR target/86832 | |
3240 | * config/i386/i386.c (ix86_option_override_internal): Default | |
3241 | ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET | |
3242 | is defined. | |
3243 | * config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>, | |
3244 | stack_protect_test, stack_protect_test_<mode>): Use empty condition | |
3245 | instead of TARGET_SSP_TLS_GUARD. | |
3246 | ||
3247 | 2018-11-22 Martin Liska <mliska@suse.cz> | |
3248 | ||
3249 | PR sanitizer/88017 | |
3250 | * config/i386/i386.c (ix86_option_override_internal): Error | |
3251 | about usage -mabi=ms and -fsanitize=thread. | |
3252 | ||
3253 | 2018-11-21 Uros Bizjak <ubizjak@gmail.com> | |
3254 | ||
3255 | Revert the revert: | |
3256 | 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> | |
3257 | ||
3258 | Revert: | |
3259 | 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> | |
3260 | ||
3261 | * lra-spills.c (lra_final_code_change): Remove useless move insns. | |
3262 | ||
3263 | 2018-11-21 Uros Bizjak <ubizjak@gmail.com> | |
3264 | ||
3265 | PR middle-end/88129 | |
3266 | * function.c (expand_function_end): Do not emit extra blockage insn. | |
3267 | ||
3268 | 2018-11-21 Lokesh Janghel <lokeshjanghel91@gmail.com> | |
3269 | ||
3270 | PR target/85667 | |
3271 | * config/i386/i386.c (function_value_ms_64): Return AX_REG instead | |
3272 | of FIRST_SSE_REG for 4 or 8 byte modes. | |
3273 | ||
3274 | 2018-11-21 Jan Hubicka <jh@suse.cz> | |
3275 | ||
3276 | PR lto/87957 | |
3277 | * tree.c (fld_decl_context): Break out from ... | |
3278 | (free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE | |
3279 | DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL. | |
3280 | (fld_incomplete_type_of): Build copy of TYP_DECL. | |
3281 | * ipa-devirt.c (free_enum_values): Rename to ... | |
3282 | (free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs | |
3283 | and TREE_TYPEs of TYPE_DECLs. | |
3284 | (get_odr_type): Initialize odr_vtable_hash if needed. | |
3285 | ||
3286 | 2018-11-21 Alexandre Oliva <oliva@adacore.com> | |
3287 | ||
3288 | * final.c (compute_discriminator): Declare. Renamed from... | |
3289 | (maybe_set_discriminator): ... this. Set and return a local. | |
3290 | (override_discriminator): New. | |
3291 | (final_scan_insn_1): Set it. | |
3292 | (notice_source_line): Adjust. Always set discriminator. | |
3293 | ||
3294 | 2018-11-21 Jakub Jelinek <jakub@redhat.com> | |
3295 | ||
3296 | PR target/87839 | |
3297 | * config/aarch64/atomics.md (@aarch64_compare_and_swap<mode>): Use | |
3298 | rIJ constraint for aarch64_plus_operand rather than rn. | |
3299 | ||
3300 | 2018-11-21 Renlin Li <renlin.li@arm.com> | |
3301 | ||
3302 | PR middle-end/84877 | |
3303 | * explow.h (get_dynamic_stack_size): Declare it as external. | |
3304 | * explow.c (record_new_stack_level): Remove function static attribute. | |
3305 | * function.c (assign_stack_local_1): Dynamically align the stack slot | |
3306 | addr for parameter copy on the stack. | |
3307 | ||
3308 | 2018-11-21 Richard Biener <rguenther@suse.de> | |
3309 | ||
3310 | PR bootstrap/88133 | |
3311 | * bitmap.c (bitmap_last_set_bit): Refactor to avoid warning. | |
3312 | * Makefile.in (bitmap.o-warn): Remove again. | |
3313 | ||
3314 | 2018-11-20 Jeff Law <law@redhat.com> | |
3315 | ||
3316 | PR tree-optimization/88069 | |
3317 | * tree-ssa-dom.c (record_equivalences_from_phis): Propagate away | |
3318 | degenerate virtual PHIs. | |
3319 | ||
3320 | 2018-11-21 H.J. Lu <hongjiu.lu@intel.com> | |
3321 | ||
3322 | PR target/87317 | |
3323 | * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Replace | |
3324 | nonimmediate_operand with register_operand. | |
3325 | (avx2_<code>v8qiv8si2<mask_name>): Likewise. | |
3326 | (sse4_1_<code>v4qiv4si2<mask_name>): Likewise. | |
3327 | (sse4_1_<code>v4hiv4si2<mask_name>): Likewise. | |
3328 | (sse4_1_<code>v2qiv2di2<mask_name>): Likewise. | |
3329 | (avx512f_<code>v8qiv8di2<mask_name>): Likewise. | |
3330 | (avx2_<code>v4qiv4di2<mask_name>): Likewise. | |
3331 | (avx2_<code>v4hiv4di2<mask_name>): Likewise. | |
3332 | (sse4_1_<code>v2hiv2di2<mask_name>): Likewise. | |
3333 | (sse4_1_<code>v2siv2di2<mask_name>): Likewise. | |
3334 | (*sse4_1_<code>v8qiv8hi2<mask_name>_1): New pattern. | |
3335 | (*sse4_1_<code>v8qiv8hi2<mask_name>_2): Likewise. | |
3336 | (*avx2_<code>v8qiv8si2<mask_name>_1): Likewise. | |
3337 | (*avx2_<code>v8qiv8si2<mask_name>_2): Likewise. | |
3338 | (*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise. | |
3339 | (*sse4_1_<code>v4qiv4si2<mask_name>_2): Likewise. | |
3340 | (*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise. | |
3341 | (*sse4_1_<code>v4hiv4si2<mask_name>_2): Likewise. | |
3342 | (*avx512f_<code>v8qiv8di2<mask_name>_1): Likewise. | |
3343 | (*avx512f_<code>v8qiv8di2<mask_name>_2): Likewise. | |
3344 | (*avx2_<code>v4qiv4di2<mask_name>_1): Likewise. | |
3345 | (*avx2_<code>v4qiv4di2<mask_name>_2): Likewise. | |
3346 | (*avx2_<code>v4hiv4di2<mask_name>_1): Likewise. | |
3347 | (*avx2_<code>v4hiv4di2<mask_name>_2): Likewise. | |
3348 | (*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise. | |
3349 | (*sse4_1_<code>v2hiv2di2<mask_name>_2): Likewise. | |
3350 | (*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise. | |
3351 | (*sse4_1_<code>v2siv2di2<mask_name>_2): Likewise. | |
3352 | ||
3353 | 2018-11-21 H.J. Lu <hongjiu.lu@intel.com> | |
3354 | ||
3355 | * read-rtl.c (apply_subst_iterator): Handle define_split and | |
3356 | define_insn_and_split. | |
3357 | ||
3358 | 2018-11-21 Jakub Jelinek <jakub@redhat.com> | |
3359 | ||
3360 | PR rtl-optimization/87817 | |
3361 | * config/i386/i386.md (bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3, | |
3362 | *bmi2_bzhi_<mode>3_1, *bmi2_bzhi_<mode>3_1_ccz): Use IF_THEN_ELSE | |
3363 | in the pattern to avoid triggering UB when operands[2] is zero. | |
3364 | (tbm_bextri_<mode>): New expander. Renamed the old define_insn to ... | |
3365 | (*tbm_bextri_<mode>): ... this. | |
3366 | ||
3367 | 2018-11-21 Tom de Vries <tdevries@suse.de> | |
3368 | ||
3369 | PR driver/79855 | |
3370 | * params.def (HOT_BB_COUNT_FRACTION): Terminate help message with | |
3371 | period. | |
3372 | ||
3373 | 2018-11-21 Andreas Krebbel <krebbel@linux.ibm.com> | |
3374 | ||
3375 | * configure.ac: Add check for Binutils to determine whether vector | |
3376 | load/store alignments hints are being supported. | |
3377 | * config.in: Regenerate. | |
3378 | * configure: Regenerate. | |
3379 | * config/s390/s390.c (print_operand): Support new output | |
3380 | modifier A. | |
3381 | * config/s390/s390.md ("movti"): Append alignment hint output | |
3382 | using the new output modifier 'A'. | |
3383 | * config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf") | |
3384 | ("*vec_ti_to_v1ti"): Likewise. | |
3385 | ||
3386 | 2018-11-20 Martin Sebor <msebor@redhat.com> | |
3387 | ||
3388 | * doc/extend.texi (Other Builtins): Add __builtin_has_attribute. | |
3389 | ||
3390 | 2018-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3391 | ||
3392 | PR lto/84044 | |
3393 | * ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to | |
3394 | compare ENUM values. | |
3395 | ||
3396 | 2018-11-20 Jakub Jelinek <jakub@redhat.com> | |
3397 | ||
3398 | PR tree-optimization/87895 | |
3399 | * omp-simd-clone.c (ipa_simd_modify_function_body): When removing | |
3400 | or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. | |
3401 | (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that | |
3402 | redirects edges to EXIT to edges to incr_bb, iterate while EXIT | |
3403 | has any preds and always use EDGE_PRED (, 0). | |
3404 | ||
3405 | 2018-11-20 Uros Bizjak <ubizjak@gmail.com> | |
3406 | ||
3407 | PR target/88070 | |
3408 | * mode-switching.c (create_pre_exit): After reload, always split the | |
3409 | fallthrough edge to the exit block. | |
3410 | ||
3411 | 2018-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3412 | ||
3413 | * ipa-devirt.c (add_type_duplicate): Do not ICE on incomplete enums. | |
3414 | * tree.c (build_array_type_1): Forward declare. | |
3415 | (fld_type_variant_equal_p): Add INNER_TYPE parameter. | |
3416 | (fld_type_variant): Likewise. | |
3417 | (fld_simplified_types): New hash. | |
3418 | (fld_process_array_type): New function. | |
3419 | (fld_incomplete_type_of): Handle array and enumeration types. | |
3420 | (fld_simplified_type): Handle simplification of arrays. | |
3421 | (free_lang_data): Allocate and free simplified types hash. | |
3422 | ||
3423 | 2018-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3424 | ||
3425 | PR lto/87957 | |
3426 | * ipa-devirt.c (odr_subtypes_equivalent_p): Report ODR violation | |
3427 | when sybtype already violates ODR. | |
3428 | (get_odr_type): Do not ICE when insert is false and type duplicate | |
3429 | is not registered yet. | |
3430 | (register_odr_type): Be sure to register subtypes first. | |
3431 | ||
3432 | 2018-11-20 Andreas Krebbel <krebbel@linux.ibm.com> | |
3433 | ||
3434 | * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the | |
3435 | DImode parts of the target operand. | |
3436 | ||
3437 | 2018-11-20 Nathan Sidwell <nathan@acm.org> | |
3438 | ||
3439 | PR 87926 | |
3440 | * Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds. | |
3441 | ||
3442 | 2018-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3443 | ||
3444 | PR lto/87997 | |
3445 | * tree.c (free_lang_data_in_cgraph): Add argument fld; break out | |
3446 | type checking to... | |
3447 | (free_lang_data) ... here; update call of free_lang_data_in_cgraph. | |
3448 | ||
3449 | 2018-11-20 Jan Hubicka <hubicka@ucw.cz> | |
3450 | ||
3451 | PR ipa/87706 | |
3452 | * ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions | |
3453 | * ipa.c (possible_inline_candidate_p): Break out from .. | |
3454 | (process_references): ... here ; drop before_inlining_p; | |
3455 | cleanup handling of alises. | |
3456 | (walk_polymorphic_call_targets): Likewise. | |
3457 | (symbol_table::remove_unreachable_nodes): Likewise. | |
3458 | * passes.c (pass_data_ipa_remove_symbols): New structure. | |
3459 | (pass_ipa_remove_symbols): New pass. | |
3460 | (make_pass_ipa_remove_symbols): New function. | |
3461 | * tree-pass.h (make_pass_ipa_remove_symbols): Declare. | |
3462 | * passes.def (pass_ipa_remove_symbols): Schedule after early passes. | |
3463 | ||
3464 | 2018-11-20 Richard Biener <rguenther@suse.de> | |
3465 | ||
3466 | * tree-vect-stmts.c (vectorizable_condition): Do not get | |
3467 | at else_clause vect def for EXTRACT_LAST_REDUCTION. Remove | |
3468 | pointless vect_is_simple_use calls. | |
3469 | ||
3470 | 2018-11-20 Richard Biener <rguenther@suse.de> | |
3471 | ||
3472 | PR tree-optimization/88074 | |
3473 | * tree-ssa-dom.c (pass_dominator::execute): Do not walk | |
3474 | backedges. | |
3475 | ||
3476 | 2018-11-20 Richard Biener <rguenther@suse.de> | |
3477 | ||
3478 | PR tree-optimization/88069 | |
3479 | * tree-ssa-sccvn.c (visit_phi): Do not value-number to unvisited | |
3480 | virtual PHI arguments. | |
3481 | ||
3482 | 2018-11-20 Ilya Leoshkevich <iii@linux.ibm.com> | |
3483 | ||
3484 | PR target/88083 | |
3485 | * config/s390/s390.md: Skip LT(G) peephole when literal pool is | |
3486 | involved. | |
3487 | * rtl.h (contains_constant_pool_address_p): New function. | |
3488 | * rtlanal.c (contains_constant_pool_address_p): Likewise. | |
3489 | ||
3490 | 2018-11-20 Richard Biener <rguenther@suse.de> | |
3491 | ||
3492 | PR middle-end/83215 | |
3493 | * alias.c (component_uses_parent_alias_set_from): Remove | |
3494 | alias-set zero and TYPE_TYPELESS_STORAGE case both already | |
3495 | handled in other ways. | |
3496 | ||
3497 | 2018-11-20 Richard Biener <rguenther@suse.de> | |
3498 | ||
3499 | PR tree-optimization/88087 | |
3500 | * tree-ssa-pre.c (create_expression_by_pieces): Re-materialize | |
3501 | call fntype. | |
3502 | * tree-ssa-sccvn.c (copy_reference_ops_from_call): Remember | |
3503 | call fntype. | |
3504 | ||
3505 | 2018-11-20 Richard Biener <rguenther@suse.de> | |
3506 | ||
3507 | PR middle-end/88089 | |
3508 | * tree-data-ref.c (lambda_matrix_right_hermite): Use abs_hwi. | |
3509 | ||
3510 | 2018-11-19 Jan Hubicka <hubicka@ucw.cz> | |
3511 | ||
3512 | PR lto/87957 | |
3513 | * ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations. | |
3514 | ||
3515 | 2018-11-19 Sandra Loosemore <sandra@codesourcery.com> | |
3516 | ||
3517 | PR driver/50250 | |
3518 | * doc/invoke.texi (Link Options): Mention shared libraries | |
3519 | in documentation for the -l option. Simplify discussion and | |
3520 | point to the system linker documentation for details. | |
3521 | ||
3522 | 2018-11-19 Peter Bergner <bergner@linux.ibm.com> | |
3523 | ||
3524 | PR rtl-optimization/88033 | |
3525 | * ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register | |
3526 | to itself. Use HARD_REGISTER_NUM_P. | |
3527 | ||
3528 | 2018-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
3529 | ||
3530 | * tree-vect-loop.c (vect_transform_loop): Disable further unrolling | |
3531 | of the loop if vf is non-constant. | |
3532 | ||
3533 | 2018-11-19 David Malcolm <dmalcolm@redhat.com> | |
3534 | ||
3535 | PR tree-optimization/87025 | |
3536 | * dumpfile.c (dump_context::begin_scope): Call end_any_optinfo | |
3537 | immediately after creating the scope optinfo. | |
3538 | (selftest::test_pr87025): New function. | |
3539 | (selftest::dumpfile_c_tests): Call it. | |
3540 | * optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert | |
3541 | that we're not popping the top-level records array. | |
3542 | * optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're | |
3543 | not changing the kind of a "scope" optinfo. | |
3544 | ||
3545 | 2018-11-19 David Malcolm <dmalcolm@redhat.com> | |
3546 | ||
3547 | PR tree-optimization/87025 | |
3548 | * dump-context.h: Include "optinfo.h". | |
3549 | (class optrecord_json_writer): New forward decl. | |
3550 | (dump_context::forcibly_enable_optinfo_p): Delete. | |
3551 | (dump_context::optinfo_enabled_p): New member function. | |
3552 | (dump_context::optimization_records_enabled_p): New member | |
3553 | function. | |
3554 | (dump_context::set_json_writer): New member function. | |
3555 | (dump_context::emit_optinfo): New member function. | |
3556 | (dump_context::m_forcibly_enable_optinfo): Delete. | |
3557 | (dump_context::m_json_writer): New member data. | |
3558 | * dumpfile.c (dump_context::set_json_writer): New member function. | |
3559 | (dump_context::finish_any_json_writer): New member function. | |
3560 | (dump_context::end_scope): Replace call to | |
3561 | optimization_records_maybe_pop_dump_scope with call to | |
3562 | m_json_writer->pop_scope. | |
3563 | (dump_context::optinfo_enabled_p): New member function. | |
3564 | (dump_context::end_any_optinfo): Replace call to optinfo::emit with call | |
3565 | to dump_context::emit_optinfo. | |
3566 | (dump_context::emit_optinfo): New member function. | |
3567 | (temp_dump_context::temp_dump_context): Replace | |
3568 | m_forcibly_enable_optinfo with call to set_json_writer. | |
3569 | (temp_dump_context::~temp_dump_context): Clean up any json writer. | |
3570 | * optinfo-emit-json.cc (class optrecord_json_writer): Move to | |
3571 | optinfo-emit-json.h | |
3572 | (the_json_writer): Delete. | |
3573 | (optimization_records_start): Delete. | |
3574 | (optimization_records_finish): Delete. | |
3575 | (optimization_records_enabled_p): Delete, in favor of | |
3576 | dump_context::optimization_records_enabled_p. | |
3577 | (optimization_records_maybe_record_optinfo): Delete. | |
3578 | (optimization_records_maybe_pop_dump_scope): Delete. | |
3579 | * optinfo-emit-json.h: Include "json.h". Delete forward | |
3580 | decl of opt_pass. | |
3581 | (optimization_records_start): Delete. | |
3582 | (optimization_records_finish): Delete. | |
3583 | (optimization_records_enabled_p): Delete. | |
3584 | (optimization_records_maybe_record_optinfo): Delete. | |
3585 | (optimization_records_maybe_pop_dump_scope): Delete. | |
3586 | (class optrecord_json_writer): Move here from | |
3587 | optinfo-emit-json.cc. | |
3588 | * optinfo.cc (optinfo::emit_for_opt_problem): Replace call | |
3589 | to optinfo::emit with call to dump_context::emit_optinfo. | |
3590 | (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. | |
3591 | (optinfo_enabled_p): Delete, in favor of | |
3592 | dump_context::optinfo_enabled_p. | |
3593 | (optinfo_wants_inlining_info_p): Update for conversion o | |
3594 | optimization_records_enabled_p to a member function of | |
3595 | dump_context. | |
3596 | * optinfo.h (optinfo_enabled_p): Delete, in favor of | |
3597 | dump_context::optinfo_enabled_p. | |
3598 | (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. | |
3599 | * toplev.c: Include "dump-context.h". | |
3600 | (compile_file): Replace call to optimization_records_finish with | |
3601 | dump_context::finish_any_json_writer. | |
3602 | (do_compile): Replace call to optimization_records_start with | |
3603 | conditionally creating a optrecord_json_writer for the | |
3604 | dump_context. | |
3605 | ||
3606 | 2018-11-19 Jakub Jelinek <jakub@redhat.com> | |
3607 | ||
3608 | PR tree-optimization/88071 | |
3609 | * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead | |
3610 | of false as last argument to gsi_remove. | |
3611 | * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of | |
3612 | false as last argument to gsi_replace. | |
3613 | ||
3614 | PR debug/87039 | |
3615 | * omp-expand.c: Don't include debug.h. | |
3616 | (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT | |
3617 | from innermost outer parallel, task, teams or target that has a | |
3618 | child_fn set, or, if there is no such outer region, use | |
3619 | current_function_decl. Do the DECL_CONTEXT adjustment regardless of | |
3620 | whether a suitable BLOCK is found or not. | |
3621 | (expand_parallel_call, expand_teams_call): Don't call | |
3622 | adjust_context_and_scope here. | |
3623 | (grid_expand_target_grid_body): Revert 2017-01-25 changes. | |
3624 | (expand_omp_taskreg, expand_omp_target): Likewise. Call | |
3625 | adjust_context_and_scope. | |
3626 | * dwarf2out.c (dwarf2out_early_global_decl): For | |
3627 | decl_function_context recurse instead of calling dwarf2out_decl. | |
3628 | ||
3629 | 2018-11-20 Eric Botcazou <ebotcazou@adacore.com> | |
3630 | ||
3631 | PR rtl-optimization/85925 | |
3632 | * rtl.h (word_register_operation_p): New predicate. | |
3633 | * combine.c (record_dead_and_set_regs_1): Only apply specific handling | |
3634 | for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. | |
3635 | * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. | |
3636 | (num_sign_bit_copies1): Likewise. | |
3637 | ||
3638 | 2018-11-19 Richard Biener <rguenther@suse.de> | |
3639 | ||
3640 | PR lto/87229 | |
3641 | * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val | |
3642 | sizepos values. | |
3643 | ||
3644 | 2018-11-19 Eric Botcazou <ebotcazou@adacore.com> | |
3645 | ||
3646 | * compare-elim.c (struct comparison): Add not_in_a field. | |
3647 | (is_not): New static function. | |
3648 | (strip_not): Likewise. | |
3649 | (conforming_compare): Handle a NOT in the first operand. | |
3650 | (can_eliminate_compare): Likewise. | |
3651 | (find_comparison_dom_walker::before_dom_children): Likewise. | |
3652 | (try_eliminate_compare): Likewise. | |
3653 | * config/visium/visium.md (negsi2_insn_set_carry): Turn into... | |
3654 | (neg<mode>2_insn_set_carry): ...this and add missing NEG operation. | |
3655 | ||
3656 | 2018-11-19 Jonathan Wakely <jwakely@redhat.com> | |
3657 | ||
3658 | * doc/extend.texi (Common Type Attributes): Fix typos. | |
3659 | ||
3660 | 2018-11-19 Martin Liska <mliska@suse.cz> | |
3661 | ||
3662 | PR gcov-profile/88045 | |
3663 | * coverage.c (coverage_begin_function): Add assert. | |
3664 | ||
3665 | 2018-11-18 Sandra Loosemore <sandra@codesourcery.com> | |
3666 | ||
3667 | PR other/40498 | |
3668 | * doc/extend.texi (Common Function Attributes): Document that | |
3669 | no_instrument_function applies to -p and -pg, too. | |
3670 | * doc/invoke.texi (Instrumentation Options): Add cross-references | |
3671 | to docs for -p, -pg, and -finstrument-functions. | |
3672 | ||
3673 | 2018-11-18 Alan Modra <amodra@gmail.com> | |
3674 | ||
3675 | * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. | |
3676 | (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. | |
3677 | (GNU_USER_TARGET_CRTN): Define. | |
3678 | (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. | |
3679 | (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. | |
3680 | ||
3681 | 2018-11-18 Alan Modra <amodra@gmail.com> | |
3682 | ||
3683 | * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete | |
3684 | !HAVE_LD_PIE variant. | |
3685 | (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. | |
3686 | ||
3687 | 2018-11-17 Nick Clifton <nickc@redhat.com> | |
3688 | Sandra Loosemore <sandra@codesourcery.com> | |
3689 | ||
3690 | PR driver/31357 | |
3691 | * doc/invoke.texi (Overall Options): Document that --help and | |
3692 | --help=<value> options cannot be combined. | |
3693 | ||
3694 | 2018-11-17 Jim Wilson <jimw@sifive.com> | |
3695 | ||
3696 | * config/riscv/riscv.c (epilogue_cfa_sp_offset): New. | |
3697 | (riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and | |
3698 | epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote. | |
3699 | (riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset. Set it | |
3700 | to step2 if frame_pointer_needed and step1 is 0. | |
3701 | ||
3702 | 2018-11-17 Sandra Loosemore <sandra@codesourcery.com> | |
3703 | ||
3704 | PR c++/4225 | |
3705 | * doc/cpp.texi (System Headers): Add note about implicit | |
3706 | extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. | |
3707 | ||
3708 | 2018-11-17 Sandra Loosemore <sandra@codesourcery.com> | |
3709 | ||
3710 | PR c++/4025 | |
3711 | * doc/invoke.texi (C++ Dialect Options): Clarify usage of | |
3712 | -fno-implicit-templates. | |
3713 | ||
3714 | 2018-11-17 Jakub Jelinek <jakub@redhat.com> | |
3715 | ||
3716 | PR tree-optimization/87546 | |
3717 | * tree-vect-patterns.c (vect_look_through_possible_promotion): Add | |
3718 | min_precision variable, initially set it to orig_precision, only does | |
3719 | something if op_type's precision is <= min_precision and update | |
3720 | min_precision whenever calling set_op. | |
3721 | ||
3722 | 2018-11-16 Jan Hubicka <hubicka@ucw.cz> | |
3723 | ||
3724 | PR ipa/87957 | |
3725 | * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. | |
3726 | ||
3727 | 2018-11-16 Sandra Loosemore <sandra@codesourcery.com> | |
3728 | ||
3729 | * doc/invoke.texi (Option Summary): Fix whitespace and line | |
3730 | breaks in @gccoptlist environments. | |
3731 | (Warning Options): Likewise. | |
3732 | (Optimize Options): Likewise. | |
3733 | (PowerPC SPE Options): Likewise. | |
3734 | (RS/6000 and PowerPC Options): Likewise. | |
3735 | ||
3736 | 2018-11-16 Jeff Law <law@redhat.com> | |
3737 | ||
3738 | * config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus | |
3739 | gcc_assert. | |
3740 | ||
3741 | 2018-11-16 Sandra Loosemore <sandra@codesourcery.com> | |
3742 | ||
3743 | PR middle-end/23197 | |
3744 | * doc/invoke.texi (Optimize Options): Update options enabled by | |
3745 | fprofile-generate, -fprofile-use, and -fauto-profile. | |
3746 | ||
3747 | 2018-11-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
3748 | ||
3749 | PR target/87927 | |
3750 | * target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP. | |
3751 | Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs. | |
3752 | * target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in | |
3753 | the byte_op hook. | |
3754 | * target.h: Add psi, pdi, pti to struct asm_int_op definition. | |
3755 | * targhooks.c (default_print_patchable_function_entry): Assert | |
3756 | asm_int_op does not return a NULL string. | |
3757 | * varasm.c (integer_asm_op): Return the op for a partial int type | |
3758 | when the requested size does not correspond to an integer type. | |
3759 | * config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP. | |
3760 | * doc/tm.texi: Regenerate. | |
3761 | ||
3762 | 2018-11-12 Jason Merrill <jason@redhat.com> | |
3763 | ||
3764 | * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes. | |
3765 | ||
3766 | 2018-11-16 Michael Meissner <meissner@linux.ibm.com> | |
3767 | ||
3768 | * config/rs6000/constraints.md (wF constraint): Remove power9 | |
3769 | fusion documentation. Just document wF's use for power8 fusion. | |
3770 | * config/rs6000/predicates.md (p9_fusion_reg_operand): Delete. | |
3771 | (fusion_gpr_addis): Delete power9 fusion support. Change power8 | |
3772 | fusion support to require the upper 12 bits to be all 0's or all | |
3773 | 1's. | |
3774 | (fusion_gpr_mem_load): Add comment. | |
3775 | (fusion_addis_mem_combo_load): Remove power9 fusion support. | |
3776 | (fusion_addis_mem_combo_store): Delete. | |
3777 | (fusion_offsettable_mem_operand): Delete. | |
3778 | * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set | |
3779 | power8 fusion here. | |
3780 | (ISA_3_0_MASKS_SERVER): Delete power9 fusion. | |
3781 | (POWERPC_MASKS): Delete power9 fusion. | |
3782 | * config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete. | |
3783 | (fusion_p9_p): Delete. | |
3784 | (expand_fusion_p9_load): Delete. | |
3785 | (expand_fusion_p9_store): Delete. | |
3786 | (emit_fusion_p9_load): Delete. | |
3787 | (emit_fusion_p9_store): Delete. | |
3788 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9 | |
3789 | fusion support. | |
3790 | (rs6000_option_override_internal): Set power8 fusion based on | |
3791 | whether we are tuning for power8. Delete power9 fusion support. | |
3792 | (rs6000_opt_masks): Delete -mpower9-fusion switch. | |
3793 | (emit_fusion_load): Rename emit_fusion_load_store to | |
3794 | emit_fusion_load, and drop fusion store support. Update callers. | |
3795 | (emit_fusion_load_store): Likewise. | |
3796 | (emit_fusion_gpr_load): Likewise. | |
3797 | (fusion_p9_p): Delete. | |
3798 | (expand_fusion_p9_load): Delete. | |
3799 | (expand_fusion_p9_store): Delete. | |
3800 | (emit_fusion_p9_load): Delete. | |
3801 | (emit_fusion_p9_store): Delete. | |
3802 | * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete. | |
3803 | (GPR_FUSION): Delete. | |
3804 | (FPR_FUSION): Delete. | |
3805 | (power9 fusion peephole2s): Delete. | |
3806 | (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete. | |
3807 | (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete. | |
3808 | (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete. | |
3809 | (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete. | |
3810 | (fusion_p9_<mode>_constant): Delete. | |
3811 | * config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented | |
3812 | power9 fusion switch. | |
3813 | * doc/md.texi (PowerPC constraints): Update wF constraint | |
3814 | documentation for power8 fusion only. | |
3815 | ||
3816 | 2018-11-16 Jakub Jelinek <jakub@redhat.com> | |
3817 | ||
3818 | PR rtl-optimization/87475 | |
3819 | * cfgrtl.c (patch_jump_insn): Allow redirection failure for | |
3820 | CROSSING_JUMP_P insns. | |
3821 | (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. | |
3822 | ||
3823 | 2018-11-16 Uros Bizjak <ubizjak@gmail.com> | |
3824 | ||
3825 | PR target/88051 | |
3826 | * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. | |
3827 | * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. | |
3828 | (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. | |
3829 | ||
3830 | 2018-11-16 Jakub Jelinek <jakub@redhat.com> | |
3831 | ||
3832 | PR middle-end/88032 | |
3833 | * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it | |
3834 | is VOIDmode, in which case use int_mode. Similarly for op1_mode. | |
3835 | ||
3836 | 2018-11-16 Eric Botcazou <ebotcazou@adacore.com> | |
3837 | ||
3838 | * tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add | |
3839 | location_t parameter. | |
3840 | (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. | |
3841 | (switch_decision_tree::do_jump_if_equal): Likewise. | |
3842 | * tree-switch-conversion.c (switch_decision_tree::emit): Pass location | |
3843 | of switch statement to emit_case_nodes. | |
3844 | (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and | |
3845 | set it on the newly built GIMPLE comparison statement. | |
3846 | (switch_decision_tree::do_jump_if_equal): Likewise. | |
3847 | (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it | |
3848 | in calls to do_jump_if_equal as well as recursive calls. | |
3849 | ||
3850 | 2018-11-16 Andi Kleen <ak@linux.intel.com> | |
3851 | ||
3852 | * config/i386/i386.md: Allow memory operands to ptwrite. | |
3853 | ||
3854 | 2018-11-16 Michael Matz <matz@suse.de> | |
3855 | ||
3856 | * system.h (PRsa): New macro. | |
3857 | (SIZE_AMOUNT): Cast number to uint64_t. | |
3858 | * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. | |
3859 | (pool_usage::dump_footer): Likewise and also use PRIu64. | |
3860 | * bitmap.h (bitmap_usage::dump): Likewise. | |
3861 | * ggc-common.c (ggc_usage::dump): Likewise. | |
3862 | * ggc-page.c (ggc_print_statistics): Likewise. | |
3863 | * input.c (dump_line_table_statistics): Likewise. | |
3864 | * mem-stats.h (mem_usage::dump): Likewise. | |
3865 | (mem_usage::dump_footer): Likewise. | |
3866 | * rtl.c (dump_rtx_statistics): Likewise. | |
3867 | * tree-cfg.c (dump_cfg_stats): Likewise. | |
3868 | * tree-dfa.c (dump_dfa_stats): Likewise. | |
3869 | * tree-phinodes.c (phinodes_print_statistics): Likewise. | |
3870 | * tree-ssanames (ssanames_print_statistics): Likewise. | |
3871 | * vec.c (vec_usage::dump): Likewise. | |
3872 | (vec_usage::dump_footer): Likewise. | |
3873 | ||
3874 | 2018-11-16 Richard Biener <rguenther@suse.de> | |
3875 | ||
3876 | PR tree-optimization/88011 | |
3877 | * tree-vrp.c (extract_range_from_binary_expr): Fix error in | |
3878 | replacing set_value_range_to_undefined and | |
3879 | set_value_range_to_varying with method calls. | |
3880 | ||
3881 | 2018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
3882 | ||
3883 | * config/s390/s390.md | |
3884 | (*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to | |
3885 | assembler. | |
3886 | (*r<noxa>sbg_<mode>_sll): Likewise. | |
3887 | (*r<noxa>sbg_<mode>_srl): Likewise. | |
3888 | (*r<noxa>sbg_sidi_srl): New pattern. | |
3889 | ||
3890 | 2018-11-16 Jerome Lambourg <lambourg@adacore.com> | |
3891 | ||
3892 | * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. | |
3893 | Default to TARGET_VXWORKS_RTP. | |
3894 | (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead | |
3895 | of TARGET_VXWORKS_RTP. | |
3896 | * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead | |
3897 | of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. | |
3898 | ||
3899 | 2018-11-15 Sandra Loosemore <sandra@codesourcery.com> | |
3900 | ||
3901 | PR c++/25759 | |
3902 | * doc/extend.texi (Common Type Attributes): Make it explicit | |
3903 | that attribute "packed" can apply to C++ classes. | |
3904 | ||
3905 | 2018-11-15 Martin Sebor <msebor@redhat.com> | |
3906 | ||
3907 | PR c++/87541 | |
3908 | PR c++/87542 | |
3909 | * tree.c (type_argument_type): New function. | |
3910 | * tree.h (type_argument_type): Declare it. | |
3911 | * gcc/doc/extend.texi (alloc_align): Update and clarify. | |
3912 | (alloc_size, nonnull, sentinel): Same. | |
3913 | ||
3914 | 2018-11-15 Andrew Stubbs <ams@codesourcery.com> | |
3915 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
3916 | ||
3917 | * tree-vect-stmts.c (vectorizable_store): Don't ICE when | |
3918 | int_mode_for_size fails. | |
3919 | (vectorizable_load): Likewise. | |
3920 | ||
3921 | 2018-11-15 David Malcolm <dmalcolm@redhat.com> | |
3922 | ||
3923 | * doc/ux.texi (Group logically-related diagnostics): Move | |
3924 | discussion of auto_diagnostic_group into this new subsection. | |
3925 | Give an example of where this grouping is used. | |
3926 | ||
3927 | 2018-11-15 David Malcolm <dmalcolm@redhat.com> | |
3928 | ||
3929 | PR other/19165 | |
3930 | * Makefile.in (OBJS): Move json.o to... | |
3931 | (OBJS-libcommon): ...here and add diagnostic-format-json.o. | |
3932 | * common.opt (fdiagnostics-format=): New option. | |
3933 | (diagnostics_output_format): New enum. | |
3934 | * diagnostic-format-json.cc: New file. | |
3935 | * diagnostic.c (default_diagnostic_final_cb): New function, taken | |
3936 | from start of diagnostic_finish. | |
3937 | (diagnostic_initialize): Initialize final_cb to | |
3938 | default_diagnostic_final_cb. | |
3939 | (diagnostic_finish): Move "being treated as errors" messages to | |
3940 | default_diagnostic_final_cb. Call any final_cb. | |
3941 | (default_diagnostic_finalizer): Add diagnostic_t param. | |
3942 | (diagnostic_report_diagnostic): Pass "orig_diag_kind" to | |
3943 | diagnostic_finalizer callback. | |
3944 | * diagnostic.h (enum diagnostics_output_format): New enum. | |
3945 | (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. | |
3946 | (struct diagnostic_context): Add "final_cb". | |
3947 | (default_diagnostic_finalizer): Add diagnostic_t param. | |
3948 | (diagnostic_output_format_init): New decl. | |
3949 | * doc/invoke.texi (-fdiagnostics-format): New option. | |
3950 | * dwarf2out.c (gen_producer_string): Ignore | |
3951 | OPT_fdiagnostics_format_. | |
3952 | * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. | |
3953 | * lto-wrapper.c (append_diag_options): Ignore it. | |
3954 | * opts.c (common_handle_option): Handle it. | |
3955 | ||
3956 | 2018-11-15 David Malcolm <dmalcolm@redhat.com> | |
3957 | ||
3958 | PR tree-optimization/88015 | |
3959 | * graphite-isl-ast-to-gimple.c | |
3960 | (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check | |
3961 | for dump_enabled_p. | |
3962 | * graphite-sese-to-poly.c (build_poly_scop): Likewise. | |
3963 | ||
3964 | 2018-11-15 Richard Biener <rguenther@suse.de> | |
3965 | ||
3966 | PR middle-end/88029 | |
3967 | * gimple.c (gimple_call_flags): Union flags from decl, type | |
3968 | and call fntype. | |
3969 | * trans-mem.c (is_tm_pure_call): Simplify. | |
3970 | ||
3971 | 2018-11-15 Richard Biener <rguenther@suse.de> | |
3972 | ||
3973 | PR tree-optimization/88031 | |
3974 | * tree-vect-loop.c (vectorizable_reduction): Move check | |
3975 | for multiple types earlier so we get the expected dump. | |
3976 | Simplify calls to vectorizable_condition. | |
3977 | * tree-vect-stmts.h (vectorizable_condition): Update prototype. | |
3978 | * tree-vect-stmts.c (vectorizable_condition): Instead of | |
3979 | reduc_def and reduc_index take just a flag. Simplify | |
3980 | code-generation now that we can rely on the defs being set up. | |
3981 | (vectorizable_comparison): Remove unused argument. | |
3982 | ||
3983 | 2018-11-15 Richard Biener <rguenther@suse.de> | |
3984 | ||
3985 | PR tree-optimization/88030 | |
3986 | * tree-complex.c (need_eh_cleanup): New global. | |
3987 | (update_complex_assignment): Mark blocks that need EH update. | |
3988 | (expand_complex_comparison): Likewise. | |
3989 | (tree_lower_complex): Allocate and deallocate need_eh_cleanup, | |
3990 | perform EH cleanup and schedule CFG cleanup if that did anything. | |
3991 | ||
3992 | 2018-11-15 Jakub Jelinek <jakub@redhat.com> | |
3993 | ||
3994 | PR rtl-optimization/88018 | |
3995 | * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge | |
3996 | on the presence of fallthru edge, rather than if it is a USE or not. | |
3997 | ||
3998 | 2018-11-15 Richard Biener <rguenther@suse.de> | |
3999 | ||
4000 | PR middle-end/87917 | |
4001 | * tree-data-ref.c (analyze_miv_subscript): Guard calls to | |
4002 | analyze_subscript_affine_affine properly. | |
4003 | ||
4004 | 2018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
4005 | ||
4006 | * config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. | |
4007 | (GLIBC_DYNAMIC_LINKER): Define. | |
4008 | (LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name. | |
4009 | ||
4010 | 2018-11-15 Bin Cheng <bin.cheng@linux.alibaba.com> | |
4011 | ||
4012 | PR tree-optimization/84648 | |
4013 | * tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New. | |
4014 | (number_of_iterations_cond): Adjust exit cond for loop-until-wrap case | |
4015 | by calling adjust_cond_for_loop_until_wrap. | |
4016 | ||
4017 | 2018-11-15 Sandra Loosemore <sandra@codesourcery.com> | |
4018 | ||
4019 | PR other/56334 | |
4020 | * doc/extend.texi (Common Function Attributes): Clarify linker | |
4021 | restrictions on "aligned" attribute. | |
4022 | (Common Variable Attributes): Likewise. Mention that linker | |
4023 | restrictions don't apply to stack-allocated variables. | |
4024 | ||
4025 | 2018-11-15 Joern Rennecke <joern.rennecke@riscy-ip.com> | |
4026 | ||
4027 | * gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT | |
4028 | as an lvalue. | |
4029 | ||
4030 | 2018-11-14 Sandra Loosemore <sandra@codesourcery.com> | |
4031 | ||
4032 | PR lto/55102 | |
4033 | PR lto/56700 | |
4034 | * doc/invoke.texi (Optimize Options): Remove bad example about | |
4035 | interaction between -flto and -O. Replace it with a note that | |
4036 | you need to compile with -O and not just link. Copy-edit -flto | |
4037 | discussion to reduce verbiage and improve flow. | |
4038 | ||
4039 | 2018-11-14 Sandra Loosemore <sandra@codesourcery.com> | |
4040 | ||
4041 | PR middle-end/59658 | |
4042 | * doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og | |
4043 | also suppress many optimizations. Alphabetize option lists for | |
4044 | -O1, -O2, and -Os. Add list of options disabled with -Og, and | |
4045 | correct documentation for those options to say that. | |
4046 | * opts.c (default_options_table): Sort table by level and option | |
4047 | name, to make it easier to correlate to the manual. | |
4048 | ||
4049 | 2018-11-14 Uros Bizjak <ubizjak@gmail.com> | |
4050 | ||
4051 | * config/i386/i386.c (ix86_print_operand_address_as): Simplify | |
4052 | printing of the names of segment registers. | |
4053 | ||
4054 | 2018-11-14 Nathan Sidwell <nathan@acm.org> | |
4055 | ||
4056 | PR debug/88006 | |
4057 | PR debug/87462 | |
4058 | * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat | |
4059 | type list. | |
4060 | ||
4061 | 2018-11-14 David Malcolm <dmalcolm@redhat.com> | |
4062 | ||
4063 | * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC). | |
4064 | ||
4065 | 2018-11-14 Jakub Jelinek <jakub@redhat.com> | |
4066 | ||
4067 | P1236R1 - Signed integers are two's complement | |
4068 | * doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a. | |
4069 | ||
4070 | PR bootstrap/86739 | |
4071 | * hash-map.h (hash_map::iterator::reference_pair): New class. | |
4072 | (hash_map::iterator::operator*): Return it rather than std::pair. | |
4073 | ||
4074 | 2018-11-14 Jeff Law <law@redhat.com> | |
4075 | ||
4076 | * optabs.c (expand_binop): Pass INT_MODE to operand_subword_force | |
4077 | iff the operand is a constant. | |
4078 | ||
4079 | 2018-11-14 Aldy Hernandez <aldyh@redhat.com> | |
4080 | ||
4081 | * gimple-ssa-evrp-analyze.c | |
4082 | (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename | |
4083 | ignore_equivs_equal_p to equal_p. | |
4084 | * ipa-cp.c (meet_with_1): Use equal_p instead of | |
4085 | ignore_equivs_equal_p. | |
4086 | * ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same. | |
4087 | * tree-vrp.c (value_range::ignore_equivs_equal_p): Remove. | |
4088 | (value_range::operator==): Remove. | |
4089 | (value_range::operator!=): Remove. | |
4090 | (vrp_prop::visit_stmt): Use equal_p. | |
4091 | * tree-vrp.h (value_range): Remove operator==, operator!=, | |
4092 | ignore_equivs_equal_p. | |
4093 | * vr-values.c (update_value_range): Use equal_p. | |
4094 | ||
4095 | 2018-11-14 Michael Matz <matz@suse.de> | |
4096 | ||
4097 | PR middle-end/86575 | |
4098 | * gimplify.c (collect_fallthrough_labels): Add new argument, | |
4099 | return location via that, don't modify statements. | |
4100 | (warn_implicit_fallthrough_r): Adjust call, don't use | |
4101 | statement location directly. | |
4102 | ||
4103 | 2018-11-14 Richard Biener <rguenther@suse.de> | |
4104 | ||
4105 | PR middle-end/87985 | |
4106 | * tree-data-ref.c (split_constant_offset): Add wrapper | |
4107 | allocating a cache hash-map. | |
4108 | (split_constant_offset_1): Cache results of expanding | |
4109 | expressions from SSA def stmts. | |
4110 | ||
4111 | 2018-11-14 Richard Biener <rguenther@suse.de> | |
4112 | ||
4113 | PR middle-end/88021 | |
4114 | * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument | |
4115 | to lambda_int. | |
4116 | (lambda_vector_mult_const): Likewise. | |
4117 | (lambda_matrix_right_hermite): Use lambda_int temporaries. | |
4118 | ||
4119 | 2018-11-14 Wilco Dijkstra <wdijkstr@arm.com> | |
4120 | Jackson Woodruff <jackson.woodruff@arm.com> | |
4121 | ||
4122 | PR 71026/tree-optimization | |
4123 | * match.pd: Simplify floating point comparisons. | |
4124 | ||
4125 | 2018-11-14 Jakub Jelinek <jakub@redhat.com> | |
4126 | ||
4127 | PR rtl-optimization/87817 | |
4128 | * config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if | |
4129 | last argument has low 8 bits clear, fold to 0. | |
4130 | ||
4131 | 2018-11-14 Iain Sandoe <iain@sandoe.co.uk> | |
4132 | ||
4133 | * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast | |
4134 | MAX_OFILE_ALIGNMENT as needed. | |
4135 | ||
4136 | 2018-11-14 Richard Biener <rguenther@suse.de> | |
4137 | ||
4138 | PR tree-optimization/88019 | |
4139 | * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Rewrite | |
4140 | COND_EXPR arguments to non-trapping overflow. | |
4141 | ||
4142 | 2018-11-14 Claudiu Zissulescu <claziss@synopsys.com> | |
4143 | ||
4144 | * config/arc/arc.h (reg_class): Reorder registers classes, remove | |
4145 | unused register classes. | |
4146 | (REG_CLASS_NAMES): Likewise. | |
4147 | (REG_CLASS_CONTENTS): Likewise. | |
4148 | (FIXED_REGISTERS): Make lp_count fixed. | |
4149 | (BASE_REG_CLASS): Remove ACC16_BASE_REGS reference. | |
4150 | (PROGRAM_COUNTER_REGNO): Remove. | |
4151 | * config/arc/arc.c (arc_conditional_register_usage): Remove unused | |
4152 | register classes, use constants for register numbers, remove | |
4153 | reg_class_contents references. | |
4154 | (arc_process_double_reg_moves): Add asserts. | |
4155 | (arc_secondary_reload): Remove LPCOUNT_REG reference, use | |
4156 | lra_in_progress predicate. | |
4157 | (arc_init_reg_tables): Remove unused register classes. | |
4158 | (arc_register_move_cost): Likewise. | |
4159 | (arc_preferred_reload_class): Likewise. | |
4160 | (hwloop_optimize): Update rtx patterns involving lp_count register. | |
4161 | (arc_return_address_register): Rename ILINK1, INLINK2 regnums macros. | |
4162 | * config/arc/constraints.md ("c"): Choose between GENERAL_REGS and | |
4163 | CHEAP_CORE_REGS. Former one will be used for LRA. | |
4164 | ("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS. Former | |
4165 | one will be used for LRA. | |
4166 | ("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS. Former | |
4167 | one will be used for LRA. | |
4168 | ("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS. | |
4169 | Former one will be used for LRA. | |
4170 | ("f"): Delete constraint. | |
4171 | ("k"): Likewise. | |
4172 | ("e"): Likewise. | |
4173 | ("l"): Change it from register constraint to constraint. | |
4174 | * config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints. | |
4175 | (movhi_insn): Likewise. | |
4176 | (movsi_insn): Update pattern. | |
4177 | (arc_lp): Likewise. | |
4178 | (dbnz): Likewise. | |
4179 | (stack_tie): Remove 'b' constraint letter. | |
4180 | (R4_REG): Define. | |
4181 | (R9_REG, R15_REG, R16_REG, R25_REG): Likewise. | |
4182 | (R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise. | |
4183 | (R57_REG, R59_REG, PCL_REG): Likewise. | |
4184 | (ILINK1_REGNUM): Renamed to ILINK1_REG. | |
4185 | (ILINK2_REGNUM): Renamed to ILINK2_REG. | |
4186 | (Rgp): Remove. | |
4187 | (SP_REGS): Likewise. | |
4188 | (Rcw): Remove unused reg classes. | |
4189 | * config/arc/predicates.md (dest_reg_operand): Just default on | |
4190 | register_operand predicate. | |
4191 | (mpy_dest_reg_operand): Likewise. | |
4192 | (move_dest_operand): Use macros instead of constants. | |
4193 | * config/arc/arc.opt (mlra): Switch to lra as default. | |
4194 | ||
4195 | 2018-11-14 Richard Biener <rguenther@suse.de> | |
4196 | ||
4197 | PR tree-optimization/87974 | |
4198 | * tree-vect-loop.c (vectorizable_reduction): When computing | |
4199 | the vectorized reduction PHI vector type ignore constant | |
4200 | and external defs. | |
4201 | ||
4202 | 2018-11-14 Jakub Jelinek <jakub@redhat.com> | |
4203 | ||
4204 | PR tree-optimization/87977 | |
4205 | * tree-ssa-math-opts.c (optimize_recip_sqrt): Don't reuse division | |
4206 | stmt, build a new one and replace the old one with it. Formatting fix. | |
4207 | Call release_ssa_name (x) if !has_other_use and !delete_div. | |
4208 | (pass_cse_reciprocals::execute): Before calling optimize_recip_sqrt | |
4209 | verify lhs of stmt is still def. | |
4210 | ||
4211 | 2018-11-13 Peter Bergner <bergner@linux.ibm.com> | |
4212 | ||
4213 | PR rtl-optimization/87507 | |
4214 | * lower-subreg.c (operand_for_swap_move_operator): New function. | |
4215 | (simple_move): Strip simple operators. | |
4216 | (find_pseudo_copy): Likewise. | |
4217 | (resolve_operand_for_swap_move_operator): New function. | |
4218 | (resolve_simple_move): Strip simple operators and swap operands. | |
4219 | ||
4220 | 2018-11-13 Jakub Jelinek <jakub@redhat.com> | |
4221 | ||
4222 | PR tree-optimization/87898 | |
4223 | * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Formatting fix. | |
4224 | (ipa_simd_modify_function_body): Remove debug stmts where the first | |
4225 | argument was changed into a non-decl. | |
4226 | ||
4227 | 2018-11-13 Peter Bergner <bergner@linux.ibm.com> | |
4228 | ||
4229 | PR rtl-optimization/87899 | |
4230 | * lra-lives.c (start_living): Update white space in comment. | |
4231 | (enum point_type): New. | |
4232 | (sparseset_contains_pseudos_p): New function. | |
4233 | (update_pseudo_point): Likewise. | |
4234 | (make_hard_regno_live): Use HARD_REGISTER_NUM_P macro. | |
4235 | (make_hard_regno_dead): Likewise. Remove ignore_reg_for_conflicts | |
4236 | handling. Move early exit after adding conflicts. | |
4237 | (mark_pseudo_live): Use HARD_REGISTER_NUM_P macro. Add early exit | |
4238 | if regno is already live. Remove all handling of program points. | |
4239 | (mark_pseudo_dead): Use HARD_REGISTER_NUM_P macro. Add early exit | |
4240 | after adding conflicts. Remove all handling of program points and | |
4241 | ignore_reg_for_conflicts. | |
4242 | (mark_regno_live): Use HARD_REGISTER_NUM_P macro. Remove return value | |
4243 | and do not guard call to mark_pseudo_live. | |
4244 | (mark_regno_dead): Use HARD_REGISTER_NUM_P macro. Remove return value | |
4245 | and do not guard call to mark_pseudo_dead. | |
4246 | (check_pseudos_live_through_calls): Use HARD_REGISTER_NUM_P macro. | |
4247 | (process_bb_lives): Use HARD_REGISTER_NUM_P and HARD_REGISTER_P macros. | |
4248 | Use new function update_pseudo_point. Handle register copies by | |
4249 | removing the source register from the live set. Handle INOUT operands. | |
4250 | Update to the next program point using the unused_set, dead_set and | |
4251 | start_dying sets. | |
4252 | (lra_create_live_ranges_1): Use HARD_REGISTER_NUM_P macro. | |
4253 | ||
4254 | 2018-11-13 David Malcolm <dmalcolm@redhat.com> | |
4255 | ||
4256 | * builtins.c: Replace "source_location" with "location_t". | |
4257 | * diagnostic-show-locus.c: Likewise. | |
4258 | * diagnostic.c: Likewise. | |
4259 | * dumpfile.c: Likewise. | |
4260 | * gcc-rich-location.h: Likewise. | |
4261 | * genmatch.c: Likewise. | |
4262 | * gimple.h: Likewise. | |
4263 | * gimplify.c: Likewise. | |
4264 | * input.c: Likewise. | |
4265 | * input.h: Likewise. Eliminate the typedef. | |
4266 | * omp-expand.c: Likewise. | |
4267 | * selftest.h: Likewise. | |
4268 | * substring-locations.h (get_source_location_for_substring): | |
4269 | Rename to... | |
4270 | (get_location_within_string): ...this. | |
4271 | * tree-cfg.c: Replace "source_location" with "location_t". | |
4272 | * tree-cfgcleanup.c: Likewise. | |
4273 | * tree-diagnostic.c: Likewise. | |
4274 | * tree-into-ssa.c: Likewise. | |
4275 | * tree-outof-ssa.c: Likewise. | |
4276 | * tree-parloops.c: Likewise. | |
4277 | * tree-phinodes.c: Likewise. | |
4278 | * tree-phinodes.h: Likewise. | |
4279 | * tree-ssa-loop-ivopts.c: Likewise. | |
4280 | * tree-ssa-loop-manip.c: Likewise. | |
4281 | * tree-ssa-phiopt.c: Likewise. | |
4282 | * tree-ssa-phiprop.c: Likewise. | |
4283 | * tree-ssa-threadupdate.c: Likewise. | |
4284 | * tree-ssa.c: Likewise. | |
4285 | * tree-ssa.h: Likewise. | |
4286 | * tree-vect-loop-manip.c: Likewise. | |
4287 | ||
4288 | 2018-11-13 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
4289 | ||
4290 | * doc/extend.texi: Fix typo in the weakref description. | |
4291 | ||
4292 | 2018-11-13 Richard Biener <rguenther@suse.de> | |
4293 | ||
4294 | PR tree-optimization/86991 | |
4295 | * tree-vect-loop.c (vect_is_slp_reduction): Delay reduction | |
4296 | group building until we have successfully detected the SLP | |
4297 | reduction. | |
4298 | (vect_is_simple_reduction): Remove fixup code here. | |
4299 | ||
4300 | 2018-11-13 David Malcolm <dmalcolm@redhat.com> | |
4301 | ||
4302 | * dumpfile.c (VERIFY_DUMP_ENABLED_P): New macro. | |
4303 | (dump_gimple_stmt): Use it. | |
4304 | (dump_gimple_stmt_loc): Likewise. | |
4305 | (dump_gimple_expr): Likewise. | |
4306 | (dump_gimple_expr_loc): Likewise. | |
4307 | (dump_generic_expr): Likewise. | |
4308 | (dump_generic_expr_loc): Likewise. | |
4309 | (dump_printf): Likewise. | |
4310 | (dump_printf_loc): Likewise. | |
4311 | (dump_dec): Likewise. | |
4312 | (dump_dec): Likewise. | |
4313 | (dump_hex): Likewise. | |
4314 | (dump_symtab_node): Likewise. | |
4315 | * gimple-loop-interchange.cc (tree_loop_interchange::interchange): | |
4316 | Guard dump call with dump_enabled_p. | |
4317 | * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. | |
4318 | * graphite-optimize-isl.c (optimize_isl): Likewise. | |
4319 | * graphite.c (graphite_transform_loops): Likewise. | |
4320 | * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise. | |
4321 | * tree-parloops.c (parallelize_loops): Likewise. | |
4322 | * tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise. | |
4323 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise. | |
4324 | (vect_prune_runtime_alias_test_list): Likewise. | |
4325 | * tree-vect-loop.c (vect_update_vf_for_slp): Likewise. | |
4326 | (vect_estimate_min_profitable_iters): Likewise. | |
4327 | * tree-vect-slp.c (vect_record_max_nunits): Likewise. | |
4328 | (vect_build_slp_tree_2): Likewise. | |
4329 | (vect_supported_load_permutation_p): Likewise. | |
4330 | (vect_slp_analyze_operations): Likewise. | |
4331 | (vect_slp_analyze_bb_1): Likewise. | |
4332 | (vect_slp_bb): Likewise. | |
4333 | * tree-vect-stmts.c (vect_analyze_stmt): Likewise. | |
4334 | * tree-vectorizer.c (try_vectorize_loop_1): Likewise. | |
4335 | (pass_slp_vectorize::execute): Likewise. | |
4336 | (increase_alignment): Likewise. | |
4337 | ||
4338 | 2018-11-13 David Malcolm <dmalcolm@redhat.com> | |
4339 | ||
4340 | PR ipa/87955 | |
4341 | * ipa-inline.c (report_inline_failed_reason): Guard calls to | |
4342 | cl_target_option_print_diff and cl_optimization_print_diff with | |
4343 | if (dump_file). | |
4344 | ||
4345 | 2018-11-13 David Malcolm <dmalcolm@redhat.com> | |
4346 | ||
4347 | * doc/invoke.texi (-fsave-optimization-record): Note that the | |
4348 | output is compressed. | |
4349 | * optinfo-emit-json.cc: Include <zlib.h>. | |
4350 | (optrecord_json_writer::write): Compress the output. | |
4351 | ||
4352 | 2018-11-13 Aldy Hernandez <aldyh@redhat.com> | |
4353 | ||
4354 | * tree-vrp.c (value_range_base::dump): Dump type. | |
4355 | Do not use INF nomenclature for 1-bit types. | |
4356 | (dump_value_range): Group all variants to common dumping code. | |
4357 | (debug): New overloaded functions for value_ranges. | |
4358 | (value_range_base::dump): Remove no argument version. | |
4359 | (value_range::dump): Same. | |
4360 | ||
4361 | 2018-11-13 Richard Biener <rguenther@suse.de> | |
4362 | ||
4363 | PR tree-optimization/87931 | |
4364 | * tree-vect-loop.c (vect_is_simple_reduction): Restrict | |
4365 | nested cycles we support to latch computations vectorizable_reduction | |
4366 | handles. | |
4367 | ||
4368 | 2018-11-13 Martin Liska <mliska@suse.cz> | |
4369 | ||
4370 | PR tree-optimization/87885 | |
4371 | * cfghooks.c (account_profile_record): Rename | |
4372 | to ... | |
4373 | (profile_record_check_consistency): ... this. | |
4374 | Calculate missing num_mismatched_freq_in. | |
4375 | (profile_record_account_profile): New function | |
4376 | that calculates time and size of a function. | |
4377 | * cfghooks.h (struct profile_record): Remove | |
4378 | all tuples. | |
4379 | (struct cfg_hooks): Remove after_pass flag. | |
4380 | (account_profile_record): Rename to ... | |
4381 | (profile_record_check_consistency): ... this. | |
4382 | (profile_record_account_profile): New. | |
4383 | * cfgrtl.c (rtl_account_profile_record): Remove | |
4384 | after_pass flag. | |
4385 | * passes.c (check_profile_consistency): Do only | |
4386 | checking. | |
4387 | (account_profile): Calculate size and time of | |
4388 | function only. | |
4389 | (pass_manager::dump_profile_report): Reformat | |
4390 | output. | |
4391 | (execute_one_ipa_transform_pass): Call | |
4392 | consistency check before clean upand call account_profile | |
4393 | after a clean up is done. | |
4394 | (execute_one_pass): Call check_profile_consistency and | |
4395 | account_profile instead of using after_pass flag.. | |
4396 | * tree-cfg.c (gimple_account_profile_record): Likewise. | |
4397 | ||
4398 | 2018-11-13 Martin Liska <mliska@suse.cz> | |
4399 | ||
4400 | PR sanitizer/87930 | |
4401 | * config/i386/i386.c (ix86_option_override_internal): Error | |
4402 | about usage -mabi=ms and -fsanitize={,kernel-}address. | |
4403 | ||
4404 | 2018-11-13 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
4405 | ||
4406 | * config/aarch64/aarch64.c | |
4407 | (aarch64_vectorize_preferred_vector_alignment): Change return type to | |
4408 | poly_uint64. | |
4409 | (aarch64_simd_vector_alignment_reachable): Adapt to preferred vector | |
4410 | alignment being a poly int. | |
4411 | * doc/tm.texi (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Change | |
4412 | return type to poly_uint64. | |
4413 | * target.def (default_preferred_vector_alignment): Likewise. | |
4414 | * targhooks.c (default_preferred_vector_alignment): Likewise. | |
4415 | * targhooks.h (default_preferred_vector_alignment): Likewise. | |
4416 | * tree-vect-data-refs.c (vect_calculate_target_alignment): Likewise. | |
4417 | (vect_compute_data_ref_alignment): Adapt to vector alignment being a | |
4418 | poly int. | |
4419 | (vect_update_misalignment_for_peel): Likewise. | |
4420 | (vect_enhance_data_refs_alignment): Likewise. | |
4421 | (vect_find_same_alignment_drs): Likewise. | |
4422 | (vect_duplicate_ssa_name_ptr_info): Likewise. | |
4423 | (vect_setup_realignment): Likewise. | |
4424 | (vect_can_force_dr_alignment_p): Change alignment parameter type to | |
4425 | poly_uint64. | |
4426 | * tree-vect-loop-manip.c (get_misalign_in_elems): Learn to construct a | |
4427 | mask with a compile time variable vector alignment. | |
4428 | (vect_gen_prolog_loop_niters): Adapt to vector alignment being a poly | |
4429 | int. | |
4430 | (vect_do_peeling): Exit early if vector alignment is not constant. | |
4431 | * tree-vect-stmts.c (ensure_base_align): Adapt to vector alignment being | |
4432 | a poly int. | |
4433 | (vectorizable_store): Likewise. | |
4434 | (vectorizable_load): Likweise. | |
4435 | * tree-vectorizer.h (struct dr_vec_info): Make target_alignment field a | |
4436 | poly_uint64. | |
4437 | (vect_known_alignment_in_bytes): Adapt to vector alignment being a | |
4438 | poly int. | |
4439 | (vect_can_force_dr_alignment_p): Change alignment parameter type to | |
4440 | poly_uint64. | |
4441 | ||
4442 | 2018-11-13 Richard Biener <rguenther@suse.de> | |
4443 | ||
4444 | PR tree-optimization/87962 | |
4445 | * tree-vect-loop.c (vect_is_simple_reduction): More reliably | |
4446 | detect outer reduction for disqualifying in-loop uses. | |
4447 | ||
4448 | 2018-11-13 Richard Biener <rguenther@suse.de> | |
4449 | ||
4450 | PR tree-optimization/87967 | |
4451 | * tree-vect-loop.c (vect_transform_loop): Also copy PHIs | |
4452 | for constants for the scalar loop. | |
4453 | ||
4454 | 2018-11-13 Alan Modra <amodra@gmail.com> | |
4455 | ||
4456 | * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Exclude | |
4457 | integer constants when -mcmodel=medium. | |
4458 | ||
4459 | 2018-11-13 Claudiu Zissulescu <claziss@synopsys.com> | |
4460 | ||
4461 | * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. | |
4462 | * config/arc/elf.h (PROFILE_HOOK): Define. | |
4463 | * config/arc/linux.h (PROFILE_HOOK): Likewise. | |
4464 | ||
4465 | 2018-11-13 Claudiu Zissulescu <claziss@synopsys.com> | |
4466 | ||
4467 | * config/arc/arc.c (hwloop_optimize): Bailout when detecting a | |
4468 | jump table data in the text section. | |
4469 | ||
4470 | 2018-11-13 Claudiu Zissulescu <claziss@synopsys.com> | |
4471 | ||
4472 | * config/arc/arc.c (arc_eh_return_address_location): Repurpose it | |
4473 | to fit the eh_return pattern. | |
4474 | * config/arc/arc.md (eh_return): Define. | |
4475 | (VUNSPEC_ARC_EH_RETURN): Likewise. | |
4476 | * config/arc/arc-protos.h (arc_eh_return_address_location): Match | |
4477 | new implementation. | |
4478 | * config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it. | |
4479 | ||
4480 | ||
4481 | 2018-11-13 Claudiu Zissulescu <claziss@synopsys.com> | |
4482 | ||
4483 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
4484 | Millicode optimization is default on for size optimizations. | |
4485 | * config/arc/arc-protos.h (arc_check_multi): New function. | |
4486 | * config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange. | |
4487 | (ENTER_LEAVE_START_REG): Define. | |
4488 | (ENTER_LEAVE_END_REG): Likewise. | |
4489 | (arc_override_options): Disable millicode when long calls option | |
4490 | is on. | |
4491 | (arc_frame_info): Change it from int to bool. | |
4492 | (arc_compute_frame_size): Clean up. | |
4493 | (arc_save_restore): Remove. | |
4494 | (frame_save_reg): New function. | |
4495 | (frame_restore_reg): Likewise. | |
4496 | (arc_enter_leave_p): Likewise. | |
4497 | (arc_save_callee_saves): Likewise. | |
4498 | (arc_restore_callee_saves): Likewise. | |
4499 | (arc_save_callee_enter): Likewise. | |
4500 | (arc_restore_callee_leave): Likewise. | |
4501 | (arc_save_callee_milli): Likewise. | |
4502 | (arc_restore_callee_milli): Likewise. | |
4503 | (arc_expand_prologue): Reimplement to emit enter/leave | |
4504 | instructions. | |
4505 | (arc_expand_epilogue): Likewise. | |
4506 | (arc_check_multi): New function. | |
4507 | * config/arc/arc.md (push_multi_fp): New pattern. | |
4508 | (push_multi_fp_blink): Likewise. | |
4509 | (pop_multi_fp): Likewise. | |
4510 | (pop_multi_fp_blink): Likewise. | |
4511 | (pop_multi_fp_ret): Likewise. | |
4512 | (pop_multi_fp_blink_ret): Likewise. | |
4513 | * config/arc/arc.opt (mmillicode): Update option. | |
4514 | (mcode-density-frame): New option. | |
4515 | * config/arc/predicates.md (push_multi_operand): New predicate. | |
4516 | (pop_multi_operand): Likewise. | |
4517 | * doc/invoke.texi (ARC): Update ARC options information. | |
4518 | ||
4519 | ||
4520 | 2018-11-13 Claudiu Zissulescu <claziss@synopsys.com> | |
4521 | ||
4522 | * config/arc/arc-protos.h (gen_operands_ldd_std): Add. | |
4523 | * config/arc/arc.c (operands_ok_ldd_std): New function. | |
4524 | (mem_ok_for_ldd_std): Likewise. | |
4525 | (gen_operands_ldd_std): Likewise. | |
4526 | * config/arc/arc.md: Add peephole2 rules for std/ldd. | |
4527 | ||
4528 | 2018-11-13 Eric Botcazou <ebotcazou@adacore.com> | |
4529 | ||
4530 | * toplev.c (output_stack_usage): Turn test on flag_stack_usage into | |
4531 | test on stack_usage_file. | |
4532 | (lang_dependent_init): Do not open the .su file if generating LTO. | |
4533 | ||
4534 | 2018-11-13 Jakub Jelinek <jakub@redhat.com> | |
4535 | ||
4536 | PR rtl-optimization/87918 | |
4537 | * simplify-rtx.c (simplify_merge_mask): For COMPARISON_P, use | |
4538 | simplify_gen_relational rather than simplify_gen_binary. | |
4539 | ||
4540 | 2018-11-13 Richard Biener <rguenther@suse.de> | |
4541 | ||
4542 | * tree-ssanames.h (set_range_info): Use value_range_base. | |
4543 | (get_range_info): Likewise. | |
4544 | * tree-ssanames.c (set_range_info): Likewise. | |
4545 | (get_range_info): Likewise. | |
4546 | * tree-vrp.c (value_range_base::union_helper): Split | |
4547 | out common parts of value_range[_base]::union_. | |
4548 | (value_range_base::union_): Update. | |
4549 | (value_range::union_): Likewise. | |
4550 | (determine_value_range_1): Use value_range_base. | |
4551 | (determine_value_range): Likewise. | |
4552 | * tree-vrp.h (value_range_base::union_helper): Move ... | |
4553 | (value_range::union_helper): ... from here. | |
4554 | ||
4555 | 2018-11-13 Alan Modra <amodra@gmail.com> | |
4556 | ||
4557 | * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate | |
4558 | offset for PRE_DEC. | |
4559 | (rs6000_secondary_reload_gpr): Don't call find_replacement. | |
4560 | ||
4561 | 2018-11-13 Sandra Loosemore <sandra@codesourcery.com> | |
4562 | ||
4563 | PR middle-end/59634 | |
4564 | * doc/invoke.texi (Optimize Options): Clarify that the | |
4565 | l1-cache-line-size, l1-cache-size, and l2-cache-size parameters | |
4566 | apply to data cache size. | |
4567 | ||
4568 | 2018-11-13 Alan Modra <amodra@gmail.com> | |
4569 | ||
4570 | * config/rs6000/predicates.md (logical_const_operand), | |
4571 | (logical_operand): Correct comment. | |
4572 | * config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix. | |
4573 | ||
4574 | 2018-11-13 Alan Modra <amodra@gmail.com> | |
4575 | ||
4576 | * config/rs6000/rs6000.md (addsi3_high): Prefix with '*'. | |
4577 | ||
4578 | 2018-11-13 Alan Modra <amodra@gmail.com> | |
4579 | ||
4580 | * gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint | |
4581 | description. | |
4582 | * config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case | |
4583 | covered by alternative. | |
4584 | (movcc_internal1): Ignore h for register preference. | |
4585 | (mov<mode>_hardfloat64): Likewise. | |
4586 | (mov<mode>_softfloat): Ignore c, l, h for register preference. | |
4587 | ||
4588 | 2018-11-12 Sandra Loosemore <sandra@codesourcery.com> | |
4589 | ||
4590 | PR preprocessor/47823 | |
4591 | * doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once | |
4592 | documentation to... | |
4593 | (Pragmas): ...here. | |
4594 | * doc/extend.texi (Pragmas): Note additional pragmas documented | |
4595 | in the CPP manual. | |
4596 | ||
4597 | 2018-11-13 Kugan Vivekanandarajah <kuganv@linaro.org> | |
4598 | ||
4599 | PR middle-end/86677 | |
4600 | PR middle-end/87528 | |
4601 | * tree-scalar-evolution.c (expression_expensive_p): Make | |
4602 | BUILTIN POPCOUNT as expensive when backend does not define it. | |
4603 | ||
4604 | 2018-11-12 Fredrik Noring <noring@nocrew.org> | |
4605 | ||
4606 | * config.gcc: Update with-llsc defaults for MIPS r5900. | |
4607 | ||
4608 | 2018-11-12 Martin Liska <mliska@suse.cz> | |
4609 | ||
4610 | PR gcov-profile/87442 | |
4611 | * common.opt: Add -fprofile-filter-files and -fprofile-exclude-files | |
4612 | options. | |
4613 | * doc/invoke.texi: Document them. | |
4614 | * tree-profile.c (parse_profile_filter): New. | |
4615 | (parse_profile_file_filtering): Likewise. | |
4616 | (release_profile_file_filtering): Likewise. | |
4617 | (include_source_file_for_profile): Likewise. | |
4618 | (tree_profiling): Filter source files based on the | |
4619 | newly added options. | |
4620 | ||
4621 | 2018-11-12 Martin Liska <mliska@suse.cz> | |
4622 | ||
4623 | PR target/87903 | |
4624 | * doc/extend.texi: Add missing values for __builtin_cpu_is and | |
4625 | __builtin_cpu_supports for x86 target. | |
4626 | ||
4627 | 2018-11-12 Sandra Loosemore <sandra@codesourcery.com> | |
4628 | ||
4629 | PR middle-end/21110 | |
4630 | * doc/rtl.texi (Constants): Clarify that mode of "high" doesn't | |
4631 | have to be Pmode. | |
4632 | (Arithmetic): Likewise for "lo_sum". | |
4633 | ||
4634 | 2018-11-12 Renlin Li <renlin.li@arm.com> | |
4635 | ||
4636 | PR target/87815 | |
4637 | * dse.c (get_stored_val): Add check for compile-time constantness | |
4638 | of gap. | |
4639 | ||
4640 | 2018-11-12 Sudakshina Das <sudi.das@arm.com> | |
4641 | ||
4642 | * config/arm/arm-cpus.in (armv8_5, sb, predres): New features. | |
4643 | (ARMv8_5a): New fgroup. | |
4644 | (armv8.5-a): New arch. | |
4645 | (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options | |
4646 | sb and predres. | |
4647 | * config/arm/arm-tables.opt: Regenerate. | |
4648 | * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a | |
4649 | * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a. | |
4650 | * config/arm/t-multilib (v8_5_a_simd_variants): New variable. | |
4651 | Add matching rules for -march=armv8.5-a and extensions. | |
4652 | * doc/invoke.texi (ARM options): Document -march=armv8.5-a. | |
4653 | Add sb and predres to all armv8-a except armv8.5-a. | |
4654 | ||
4655 | 2018-11-12 Richard Biener <rguenther@suse.de> | |
4656 | ||
4657 | * tree-vrp.h (value_range[_base]::set): Make public. Provide | |
4658 | overload for single value. | |
4659 | (value_range[_base]::set_nonnull): New. | |
4660 | (value_range[_base]::set_null): Likewise. | |
4661 | (value_range): Document bitmap copying behavior, mark | |
4662 | copy constructor and assignment operator deleted. | |
4663 | (value_range::move): New. | |
4664 | (value_range::set_and_canonicalize): Default bitmap to zero. | |
4665 | (set_value_range_to_nonnull): Remove. | |
4666 | (set_value_range_to_null): Likewise. | |
4667 | (set_value_range): Likewise. | |
4668 | (set_value_range_to_value): Likewise. | |
4669 | (extract_range_from_unary_expr): Work on value_range_base. | |
4670 | (extract_range_from_binary_expr_1): Likewise. Rename to... | |
4671 | (extract_range_from_binary_expr): ... this. | |
4672 | * tree-vrp.c (value_range::update): Clear equiv bitmap | |
4673 | if required. | |
4674 | (value_range::move): New, move equiv bitmap. | |
4675 | (value_range_base::set_undefined): Avoid assignment. | |
4676 | (value_range::set_undefined): Likewise. | |
4677 | (value_range_base::set_varying): Likewise. | |
4678 | (value_range::set_varying): Likewise. | |
4679 | (set_value_range): Remove. | |
4680 | (value_range_base::set): New overload for value. | |
4681 | (value_range::set): Likewise. | |
4682 | (set_value_range_to_nonnull): Remove. | |
4683 | (value_range_base::set_nonnull): New. | |
4684 | (value_range::set_nonnull): Likewise. | |
4685 | (set_value_range_to_null): Remove. | |
4686 | (value_range_base::set_null): New. | |
4687 | (value_range::set_null): Likewise. | |
4688 | (range_is_null): Work on value_range_base. | |
4689 | (range_is_nonnull): Likewise. | |
4690 | (ranges_from_anti_range): Likewise. | |
4691 | (extract_range_into_wide_ints): Likewise. | |
4692 | (extract_range_from_multiplicative_op): Likewise. | |
4693 | (extract_range_from_binary_expr): Likewise. Update for API changes. | |
4694 | (extract_range_from_unary_expr): Likewise. Remove OBJ_TYPE_REF | |
4695 | handling. | |
4696 | (value_range::intersect_helper): Avoid copy and assignment. | |
4697 | (value_range::union_helper): Likewise. | |
4698 | (determine_value_range_1): Adjust. | |
4699 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): | |
4700 | Avoid assignment by using move. | |
4701 | (evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment. | |
4702 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): | |
4703 | Likewise. | |
4704 | * tree-ssanames.c (get_range_info): Likewise. | |
4705 | * vr-values.h (vr_values::get_vr_for_comparison): Adjust API. | |
4706 | * vr-values.c (vr_values::get_value_range): Adjust. | |
4707 | (vr_values::update_value_range): Likewise. | |
4708 | (symbolic_range_based_on_p): Work on value_range_base. | |
4709 | (vr_values::extract_range_from_binary_expr): Use value_range_base. | |
4710 | (vr_values::extract_range_from_unary_expr): Likewise. | |
4711 | (vr_values::extract_range_from_cond_expr): Avoid assignment. | |
4712 | (vr_values::extract_range_from_comparison): Adjust. | |
4713 | (vr_values::check_for_binary_op_overflow): Use value_range_base. | |
4714 | (vr_values::extract_range_basic): Adjust. | |
4715 | (vr_values::adjust_range_with_scev): Likewise. | |
4716 | (vr_values::vrp_visit_assignment_or_call): Likewise. | |
4717 | (vr_values::get_vr_for_comparison): Change API to avoid | |
4718 | assignment and copy construction. | |
4719 | (vr_values::compare_name_with_value): Adjust accordingly. | |
4720 | (vr_values::compare_names): Likewise. | |
4721 | (vr_values::extract_range_from_phi_node): Avoid assignment and | |
4722 | bogus in-place modify of equiv bitmap. | |
4723 | (vr_values::simplify_bit_ops_using_ranges): Use value_range_base. | |
4724 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust | |
4725 | for extract_range_from_unary_expr API change. | |
4726 | * ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise. | |
4727 | ||
4728 | 2018-11-12 Eric Botcazou <ebotcazou@adacore.com> | |
4729 | ||
4730 | * config/mcore/mcore.h (WORD_REGISTER_OPERATIONS): Remove duplicate. | |
4731 | ||
4732 | 2018-11-12 Richard Biener <rguenther@suse.de> | |
4733 | ||
4734 | * tree-vrp.h (value_range_base::symbolic_p, | |
4735 | value_range_base::constant_p, value_range_base::zero_p, | |
4736 | value_range_base::singleton_p): Move from value_range. | |
4737 | (value_range::dump): Add. | |
4738 | * gimple-ssa-evrp-analyze.c | |
4739 | (evrp_range_analyzer::record_ranges_from_phis): Use set_varying. | |
4740 | * ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range. | |
4741 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): | |
4742 | Use set_varying. | |
4743 | * tree-vrp.c (value_range::symbolic_p): Move to value_range_base. | |
4744 | (value_range::constant_p): Likewise. | |
4745 | (value_range::singleton_p): Likewise. | |
4746 | (value_range_base::dump): Add. | |
4747 | (set_value_range_to_undefined): Remove. | |
4748 | (set_value_range_to_varying): Likewise. | |
4749 | (range_int_cst_p): Take value_range_base argument. | |
4750 | (range_int_cst_singleton_p): Likewise. | |
4751 | (value_range_constant_singleton): Likewise. | |
4752 | (vrp_set_zero_nonzero_bits): Likewise. | |
4753 | (extract_range_from_multiplicative_op): Use set_varying. | |
4754 | (extract_range_from_binary_expr_1): Likewise. Use set_undefined. | |
4755 | (extract_range_from_unary_expr): Likewise. | |
4756 | (dump_value_range_base): Change to overload of dump_value_range. | |
4757 | (vrp_prop::vrp_initialize): Use set_varying and set_undefined. | |
4758 | (vrp_prop::visit_stmt): Likewise. | |
4759 | (value_range::intersect_helper): Likewise. | |
4760 | (value_range::union_helper): Likewise. | |
4761 | (determine_value_range_1): Likewise. | |
4762 | ||
4763 | 2018-11-12 Richard Biener <rguenther@suse.de> | |
4764 | ||
4765 | * tree-vrp.c (set_value_range_to_nonnull): Clear equiv. | |
4766 | (set_value_range_to_null): Likewise. | |
4767 | * vr-values.c (vr_values::extract_range_from_comparison): | |
4768 | Clear equiv for constant singleton ranges. | |
4769 | ||
4770 | 2018-11-12 Wei Xiao <wei3.xiao@intel.com> | |
4771 | ||
4772 | * config/i386/sse.md: Combine VFIXUPIMM* patterns | |
4773 | (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
4774 | (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
4775 | (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. | |
4776 | (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
4777 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
4778 | (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. | |
4779 | ||
4780 | 2018-11-11 Sandra Loosemore <sandra@codesourcery.com> | |
4781 | ||
4782 | PR c/69502 | |
4783 | * doc/extend.texi (Common Type Attributes): For the align type | |
4784 | attribute, copy language about decreasing alignment from the | |
4785 | corresponding variable attribute. | |
4786 | ||
4787 | 2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
4788 | ||
4789 | * config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle | |
4790 | -frounding-math. | |
4791 | ||
4792 | 2018-11-11 Sandra Loosemore <sandra@codesourcery.com> | |
4793 | ||
4794 | PR c++/43105 | |
4795 | * doc/invoke.texi (C++ Dialect Options): Add warning about mixing | |
4796 | -frtti and -fno-rtti code. | |
4797 | ||
4798 | 2018-11-11 Sandra Loosemore <sandra@codesourcery.com> | |
4799 | ||
4800 | PR c/26366 | |
4801 | * doc/extend.texi (Other Builtins): Document probability associated | |
4802 | with __builtin_expect. | |
4803 | ||
4804 | 2018-11-11 Uros Bizjak <ubizjak@gmail.com> | |
4805 | ||
4806 | PR target/87928 | |
4807 | * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI | |
4808 | instead of (TARGET_64BIT && ix86_abi == MS_ABI). | |
4809 | * config/i386/darwin.h (STACK_BOUNDARY): Ditto. | |
4810 | * config/i386/cygming.h (STACK_BOUNDARY): Remove. | |
4811 | ||
4812 | 2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
4813 | ||
4814 | * config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile. | |
4815 | ||
4816 | 2018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
4817 | ||
4818 | * config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. | |
4819 | ||
4820 | 2018-11-11 Richard Biener <rguenther@suse.de> | |
4821 | ||
4822 | * tree-vrp.h (class value_range_base): New base class for | |
4823 | value_range containing all but the m_equiv member. | |
4824 | (dump_value_range_base): Add. | |
4825 | (range_includes_zero_p): Work on value_range_base. | |
4826 | * tree-vrp.c (value_range_base::set): Split out base handling | |
4827 | from... | |
4828 | (value_range::set): this. | |
4829 | (value_range::set_equiv): New. | |
4830 | (value_range_base::value_range_base): New constructors. | |
4831 | (value_range_base::check): Split out base handling from... | |
4832 | (value_range::check): this. | |
4833 | (value_range::equal_p): Refactor in terms of | |
4834 | ignore_equivs_equal_p which is now member of the base. | |
4835 | (value_range_base::set_undefined): New. | |
4836 | (value_range_base::set_varying): Likewise. | |
4837 | (value_range_base::dump):Split out base handling from... | |
4838 | (value_range::dump): this. | |
4839 | (value_range_base::set_and_canonicalize): Split out base handling | |
4840 | from... | |
4841 | (value_range::set_and_canonicalize): this. | |
4842 | (value_range_base::union_): New. | |
4843 | * ipa-prop.h (struct ipa_jump_func): Use value_range_base * | |
4844 | for m_vr. | |
4845 | * ipa-cp.c (class ipcp_vr_lattice): Use value_range_base | |
4846 | instead of value_range everywhere. | |
4847 | (ipcp_vr_lattice::print): Use dump_value_range_base. | |
4848 | (ipcp_vr_lattice::meet_with): Adjust. | |
4849 | (ipcp_vr_lattice::meet_with_1): Likewise. | |
4850 | (ipa_vr_operation_and_type_effects): Likewise. | |
4851 | (propagate_vr_across_jump_function): Likewise. | |
4852 | * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Likewise. | |
4853 | (ipa_get_value_range): Likewise. | |
4854 | (ipa_set_jfunc_vr): Likewise. | |
4855 | (ipa_compute_jump_functions_for_edge): Likewise. | |
4856 | ||
4857 | 2018-11-10 Sandra Loosemore <sandra@codesourcery.com> | |
4858 | ||
4859 | PR middle-end/65703 | |
4860 | * doc/invoke.texi (Optimize Options): Add @opindex entries | |
4861 | for the positive forms of -fno-xxx and -mno-xxx options | |
4862 | that were lacking them. | |
4863 | ||
4864 | 2018-11-10 Segher Boessenkool <segher@kernel.crashing.org> | |
4865 | ||
4866 | * combine.c (make_more_copies): Only make an intermediate copy if the | |
4867 | dest of a move is a pseudo. | |
4868 | ||
4869 | 2018-11-09 Maya Rashish <coypu@sdf.org> | |
4870 | ||
4871 | PR target/87221 | |
4872 | * config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): Use crtbeginS.o for PIE. | |
4873 | (NETBSD_ENDFILE_SPEC): Use crtendS.o for PIE. | |
4874 | ||
4875 | 2018-11-09 Sandra Loosemore <sandra@codesourcery.com> | |
4876 | ||
4877 | PR driver/41179 | |
4878 | PR middle-end/65703 | |
4879 | * doc/invoke.texi (Optimize Options): Clarify default behavior | |
4880 | for -fno-toplevel-reorder, -fno-defer-pop, and -fno-branch-count-reg. | |
4881 | ||
4882 | 2018-11-09 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
4883 | ||
4884 | PR tree-optimization/87940 | |
4885 | * expr.c (string_constant): Don't strip NOPS in subexpressions. | |
4886 | Fold PLUS_EXPR correctly. | |
4887 | ||
4888 | 2018-11-09 Ilya Leoshkevich <iii@linux.ibm.com> | |
4889 | ||
4890 | PR target/87762 | |
4891 | * config/s390/s390.c (s390_safe_relative_long_p): New function. | |
4892 | (annotate_constant_pool_refs): Skip insns which support | |
4893 | relative addressing. | |
4894 | (annotate_constant_pool_refs_1): New helper function. | |
4895 | (find_constant_pool_ref): Skip insns which support relative | |
4896 | addression. | |
4897 | (find_constant_pool_ref_1): New helper function. | |
4898 | (replace_constant_pool_ref): Skip insns which support | |
4899 | relative addressing. | |
4900 | (replace_constant_pool_ref_1): New helper function. | |
4901 | (s390_mainpool_start): Adapt to the new signature. | |
4902 | (s390_mainpool_finish): Likewise. | |
4903 | (s390_chunkify_start): Likewise. | |
4904 | (s390_chunkify_finish): Likewise. | |
4905 | (pass_s390_early_mach::execute): Likewise. | |
4906 | (s390_prologue_plus_offset): Likewise. | |
4907 | (s390_emit_prologue): Likewise. | |
4908 | (s390_emit_epilogue): Likewise. | |
4909 | ||
4910 | 2018-11-09 Jakub Jelinek <jakub@redhat.com> | |
4911 | ||
4912 | * gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid | |
4913 | but unsupported lastprivate with conditional modifier. | |
4914 | ||
4915 | 2018-11-09 Jeff Law <law@redhat.com> | |
4916 | ||
4917 | * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle | |
4918 | unused argument better. Add gcc_unreachable to silence warning. | |
4919 | ||
4920 | 2018-11-09 Martin Sebor <msebor@redhat.com> | |
4921 | ||
4922 | PR middle-end/81824 | |
4923 | * attribs.c (has_attribute): New helper function. | |
4924 | (decls_mismatched_attributes, maybe_diag_alias_attributes): Same. | |
4925 | * attribs.h (decls_mismatched_attributes): Declare. | |
4926 | * cgraphunit.c (handle_alias_pairs): Call maybe_diag_alias_attributes. | |
4927 | (maybe_diag_incompatible_alias): Use OPT_Wattribute_alias_. | |
4928 | * common.opt (-Wattribute-alias): Take an argument. | |
4929 | (-Wno-attribute-alias): New option. | |
4930 | * doc/extend.texi (Common Function Attributes): Document copy. | |
4931 | (Common Variable Attributes): Same. | |
4932 | * doc/invoke.texi (-Wmissing-attributes): Document enhancement. | |
4933 | (-Wattribute-alias): Document new option argument. | |
4934 | ||
4935 | 2018-11-09 Richard Earnshaw <rearnsha@arm.com> | |
4936 | ||
4937 | * config/arm/parsecpu.awk (/alias/): Tighten invisible alias | |
4938 | matching criteria. Remove unused array initializer. | |
4939 | ||
4940 | 2018-11-09 Bill Schmidt <wschmidt@linux.ibm.com> | |
4941 | Jinsong Ji <jji@us.ibm.com> | |
4942 | ||
4943 | * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect | |
4944 | constraints by introducing a new temporary. | |
4945 | (_mm_cvtss_si64): Likewise. | |
4946 | ||
4947 | 2018-11-09 Martin Liska <mliska@suse.cz> | |
4948 | ||
4949 | * common.opt: Add -fipa-stack-alignment flag. | |
4950 | * doc/invoke.texi: Document it. | |
4951 | * final.c (rest_of_clean_state): Guard stack | |
4952 | shrinking with flag. | |
4953 | ||
4954 | 2018-11-09 Martin Liska <mliska@suse.cz> | |
4955 | ||
4956 | * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Rename | |
4957 | to ... | |
4958 | (ipa_discover_variable_flags): ... this. | |
4959 | * common.opt: Come up with new flag -fipa-reference-addressable. | |
4960 | * doc/invoke.texi: Document it. | |
4961 | * ipa-reference.c (propagate): Call the renamed fn. | |
4962 | * ipa-visibility.c (whole_program_function_and_variable_visibility): | |
4963 | Likewise. | |
4964 | * ipa.c (ipa_discover_readonly_nonaddressable_vars): Renamed to | |
4965 | ... | |
4966 | (ipa_discover_variable_flags): ... this. Discover | |
4967 | non-addressable variables only with the newly added flag. | |
4968 | * opts.c: Enable the newly added flag with -O1 and higher | |
4969 | optimization level. | |
4970 | ||
4971 | 2018-11-09 David Malcolm <dmalcolm@redhat.com> | |
4972 | ||
4973 | * json.cc (selftest::test_writing_literals): Fix comment. | |
4974 | ||
4975 | 2018-11-09 Martin Liska <mliska@suse.cz> | |
4976 | ||
4977 | * config/aarch64/aarch64.c (aarch64_parse_arch): Do not copy | |
4978 | string to a stack buffer. | |
4979 | (aarch64_parse_cpu): Likewise. | |
4980 | (aarch64_parse_tune): Likewise. | |
4981 | ||
4982 | 2018-11-09 Richard Biener <rguenther@suse.de> | |
4983 | ||
4984 | PR tree-optimization/87953 | |
4985 | * tree-vect-loop.c (vectorizable_reduction): For analysis | |
4986 | always pass ops[0] to vectorizable_condition. | |
4987 | ||
4988 | 2018-11-09 Stafford Horne <shorne@gmail.com> | |
4989 | Richard Henderson <rth@twiddle.net> | |
4990 | Joel Sherrill <joel@rtems.org> | |
4991 | ||
4992 | * common/config/or1k/or1k-common.c: New file. | |
4993 | * config/or1k/*: New. | |
4994 | * config.gcc (or1k*-*-*): New. | |
4995 | * configure.ac (or1k*-*-*): New test for openrisc tls. | |
4996 | * configure: Regenerated. | |
4997 | * doc/install.texi: Document OpenRISC triplets. | |
4998 | * doc/invoke.texi: Document OpenRISC arguments. | |
4999 | * doc/md.texi: Document OpenRISC. | |
5000 | ||
5001 | 2018-11-09 Richard Earnshaw <rearnsha@arm.com> | |
5002 | ||
5003 | * config/arm/arm-cpus.in (arm7tdmi): Add an alias for arm7tdmi-s. | |
5004 | (arm7tdmi-s): Delete CPU. | |
5005 | (arm710t): Add aliases for arm720t and arm740t. | |
5006 | (arm720t, arm740t): Delete CPUs. | |
5007 | (arm920t): Add aliases for arm920, arm922t and arm940t. | |
5008 | (arm920, arm922t, arm940t): Delete CPUs. | |
5009 | (arm10tdmi): Add alias for arm1020t. | |
5010 | (arm1020t): Delete CPU. | |
5011 | (arm9e): Add aliases for arm946e-s, arm966e-s and arm968e-s. | |
5012 | (arm946e-s, arm966e-s, arm968e-s): Delete CPUs. | |
5013 | (arm10e): Add aliases for arm1020e and arm1022e. | |
5014 | (arm1020e, arm1022e): Delete CPU. | |
5015 | * config/arm/arm.md (generic_sched): Remove entries that are now | |
5016 | handled by aliases. | |
5017 | (generic_vfp): Likewise. | |
5018 | * config/arm/arm1020e.md: Simplify tuning selection based on alias | |
5019 | changes. | |
5020 | * config/arm/arm-tune.md: Regenerated. | |
5021 | * config/arm/arm-tables.opt: Regenerated. | |
5022 | ||
5023 | 2018-11-09 Richard Biener <rguenther@suse.de> | |
5024 | ||
5025 | PR tree-optimization/87621 | |
5026 | * tree-vect-loop.c (vectorizable_reduction): Handle reduction | |
5027 | op with only phi inputs. | |
5028 | * tree-ssa-loop-ch.c: Include tree-ssa-sccvn.h. | |
5029 | (ch_base::copy_headers): Run CSE on copied loop headers. | |
5030 | (pass_ch_vect::process_loop_p): Simplify. | |
5031 | ||
5032 | 2018-11-09 Alexandre Oliva <oliva@adacore.com> | |
5033 | ||
5034 | * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust | |
5035 | for non-w64 x86_64 biarch. | |
5036 | ||
5037 | 2018-11-09 Alexandre Oliva <aoliva@redhat.com> | |
5038 | ||
5039 | PR rtl-optimization/86438 | |
5040 | * compare-elim.c (try_eliminate_compare): Use SET_SRC instead | |
5041 | of in_b for the compare if in_b is SET_DEST. | |
5042 | ||
5043 | PR target/87793 | |
5044 | * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Reject | |
5045 | non-toplevel UNSPEC. | |
5046 | ||
5047 | 2018-11-08 Aldy Hernandez <aldyh@redhat.com> | |
5048 | ||
5049 | * tree-vrp.c (value_range::check): Do not access internals | |
5050 | directly. | |
5051 | (value_range::singleton_p): Same. | |
5052 | (value_range::type): Same. | |
5053 | (vrp_finalize): Use value_range API. | |
5054 | ||
5055 | 2018-11-08 Aldy Hernandez <aldyh@redhat.com> | |
5056 | ||
5057 | * tree-vrp.c (may_contain_p): Do not access m_min/m_max directly. | |
5058 | ||
5059 | 2018-11-08 Aldy Hernandez <aldyh@redhat.com> | |
5060 | ||
5061 | * vr-values.c (vr_values::get_value_range): Use value_range API | |
5062 | instead of piecing together ranges. | |
5063 | (vr_values::update_value_range): Same. | |
5064 | ||
5065 | 2018-11-08 Aldy Hernandez <aldyh@redhat.com> | |
5066 | ||
5067 | * gimple-fold.c (size_must_be_zero_p): Use value_range API instead | |
5068 | of performing ad-hoc calculations. | |
5069 | * tree-ssanames.c (set_range_info): New overloaded function | |
5070 | accepting value_range &. | |
5071 | (get_range_info): Same. | |
5072 | * tree-ssanames.h (set_range_info_raw): Remove. | |
5073 | (set_range_info): New prototype. | |
5074 | (get_range_info): Same. | |
5075 | * tree-vrp.h (value_range::null_p): Rename to zero_p. | |
5076 | * tree-vrp.c (value_range::null_p): Same. | |
5077 | ||
5078 | 2018-11-09 Jan Hubicka <jh@suse.cz> | |
5079 | ||
5080 | * tree.c (fld_type_variant_equal_p): Test user align flag. | |
5081 | (flt_type_variant): Copy user align flag. | |
5082 | (fld_incomplete_type_of): Clear it. | |
5083 | ||
5084 | 2018-11-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
5085 | ||
5086 | * config/arm/neon.md (div<mode>3): New pattern. | |
5087 | ||
5088 | 2018-11-08 Andi Kleen <ak@linux.intel.com> | |
5089 | ||
5090 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET): New. | |
5091 | (OPTION_MASK_ISA_PTWRITE_UNSET): New. | |
5092 | (ix86_handle_option): Handle OPT_mptwrite. | |
5093 | * config/i386/cpuid.h (bit_PTWRITE): Add. | |
5094 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect ptwrite. | |
5095 | * config/i386/i386-builtin.def (BDESC): Add ptwrite32/64. | |
5096 | * config/i386/i386-c.c (ix86_target_macros_internal): Define __PTWRITE__. | |
5097 | * config/i386/i386.c (ix86_target_string): Handle ptwrite. | |
5098 | (ix86_option_override_internal): Handle PTA_PTWRITE. | |
5099 | (ix86_valid_target_attribute_inner_p): Define ptwrite. | |
5100 | (def_builtin2): Force UINT64 to be 64bit only. | |
5101 | * config/i386/i386.h (TARGET_PTWRITE): Add. | |
5102 | (TARGET_PTWRITE_P): Add. | |
5103 | (PTA_PTWRITE): Add. | |
5104 | * config/i386/i386.md: Define ptwrite. | |
5105 | * config/i386/i386.opt: Add -mptwrite. | |
5106 | * config/i386/immintrin.h (_ptwrite64): Add. | |
5107 | (_ptwrite32): Add | |
5108 | * doc/extend.texi: Document __builtin_ia32_ptwrite*. | |
5109 | * doc/invoke.texi: Document -mptwrite. | |
5110 | ||
5111 | 2018-11-08 Peter Bergner <bergner@linux.ibm.com> | |
5112 | ||
5113 | PR rtl-optimization/87600 | |
5114 | * cfgexpand.c (expand_asm_stmt): Catch illegal asm constraint usage. | |
5115 | * lra-constraints.c (process_alt_operands): Skip illegal hard | |
5116 | register usage. Prefer reloading non hard register operands. | |
5117 | ||
5118 | 2018-11-08 Sandra Loosemore <sandra@codesourcery.com> | |
5119 | ||
5120 | PR other/36572 | |
5121 | * doc/invoke.texi (Optimize Options): Clarify default behavior | |
5122 | for -fno-sched-interblock and -fno-sched-spec. | |
5123 | ||
5124 | 2018-11-08 Roman Geissler <roman.geissler@amadeus.com> | |
5125 | ||
5126 | * collect2.c (linker_select): Add USE_LLD_LD. | |
5127 | (ld_suffixes): Add ld.lld. | |
5128 | (main): Handle -fuse-ld=lld. | |
5129 | * common.opt (-fuse-ld=lld): New option. | |
5130 | * doc/invoke.texi (-fuse-ld=lld): Document. | |
5131 | * opts.c (common_handle_option): Handle OPT_fuse_ld_lld. | |
5132 | ||
5133 | 2018-11-08 Paul Koning <ni1d@arrl.net> | |
5134 | ||
5135 | * config/pdp11/constraints.md: Add "Z" series constraints for use | |
5136 | with pre-dec and post-inc addressing. | |
5137 | * config/pdp11/pdp11-protos.m (expand_block_move): Delete. | |
5138 | (pdp11_expand_operands): Add int argument (word count). | |
5139 | (pdp11_sp_frame_offset): Delete. | |
5140 | (pdp11_cmp_length): New function. | |
5141 | (pushpop_regeq): New function. | |
5142 | * config/pdp11/pdp11.c (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): | |
5143 | Add hook. | |
5144 | (pdp11_expand_prologue, pdp11_expand_epilogue): Rewrite for new | |
5145 | frame layout. | |
5146 | (pdp11_initial_elimination_offset): Ditto. | |
5147 | (pdp11_expand_operands): Add word count argument. Bugfixes. | |
5148 | (output_move_multiple): Change how pointer adjustment is done. | |
5149 | (pdp11_gen_int_label): Correct format. | |
5150 | (output_ascii): Ditto. | |
5151 | (pdp11_asm_output_var): Add code for DEC assembler case. | |
5152 | (pdp11_asm_print_operand): Bugfix for CONST_DOUBLE holding integer | |
5153 | value. | |
5154 | (legitimate_const_double_p): Ditto. | |
5155 | (pdp11_register_move_cost): Adjust for new register classes. | |
5156 | (pdp11_regno_reg_class): Ditto. | |
5157 | (expand_block_move): Delete. | |
5158 | (pushpop_regeq): New function. | |
5159 | (pdp11_legitimate_address_p): Bugfix in check for constant | |
5160 | offset. | |
5161 | (pdp11_sp_frame_offset): Delete. | |
5162 | (pdp11_reg_save_size): New helper function for new frame layout. | |
5163 | (output_addr_const_pdp11): Remove CONST_DOUBLE case. | |
5164 | (pdp11_expand_shift): Bugfix in check for constant shift count. | |
5165 | (pdp11_shift_length): Ditto. | |
5166 | (pdp11_assemble_shift): Copy input to pdp11_expand_operands. | |
5167 | (pdp11_cmp_length): New function. | |
5168 | * config/pdp11/pdp11.h (TARGET_CPU_CPP_BUILTINS): Add macros for | |
5169 | some compile options. | |
5170 | (FIXED_REGISTERS): Remove HARD_FRAME_POINTER_REGNUM. | |
5171 | (CALL_USED_REGISTERS): Ditto. | |
5172 | (ELIMINABLE_REGS): Ditto. | |
5173 | (REGISTER_NAMES): Ditto. | |
5174 | (reg_class): Add classes NOTR0_REG through NOTSP_REG for use by Z | |
5175 | constraints. | |
5176 | (REG_CLASS_NAMES): Ditto. | |
5177 | (REG_CLASS_CONTENTS): Ditto. Also remove | |
5178 | HARD_FRAME_POINTER_REGNUM. | |
5179 | (CPU_REG_CLASS): New macro. | |
5180 | (CLASS_MAX_NREGS): Adjust for new register classes. | |
5181 | (FUNCTION_PROFILER): Make no-op. | |
5182 | (may_call_alloca): Remove unused declaration. | |
5183 | (ASM_OUTPUT_ALIGN): Add workaround for PR87795. | |
5184 | (ASM_OUTPUT_SKIP): Fix format. | |
5185 | * config/pdp11/pdp11.md (unspecv): Add UNSPECV_MOVMEM. | |
5186 | (HARD_FRAME_POINTER_REGNUM): Remove. | |
5187 | (return): Delete. | |
5188 | (*rts): Rename. Remove epilogue related checks. | |
5189 | (cmpsi, cmpdi): New insn. | |
5190 | (cbranch<mode>4): Change to apply to SI and DI modes as well. | |
5191 | (mov<mode>): Change constraints to enforce that push/pop | |
5192 | destination cannot use the same register as source. | |
5193 | (*mov<mode><cc_cc>): Ditto. | |
5194 | (movmemhi, movmemhi1, movmemhi_nocc): Change to expand block move | |
5195 | at assembly output rather than as RTL expander. | |
5196 | (zero_extendqihi2): Bugfix in check for same registers. | |
5197 | (adddi3_nocc): Bugfix in check for constant operand. | |
5198 | (addsi3_nocc): Ditto. | |
5199 | (subdi3_nocc): Ditto. | |
5200 | (subsi3_nocc): Ditto. | |
5201 | (negdi2_nocc): Copy input to pdp11_expand_operands. | |
5202 | (negsi2_nocc): Ditto. | |
5203 | (bswap2_nocc): Ditto. | |
5204 | * config/pdp11/pdp11.opt (mlra): Fix documentation. | |
5205 | * config/pdp11/t-pdp11: Use -Os. | |
5206 | ||
5207 | 2018-11-08 Richard Earnshaw <rearnsha@arm.com> | |
5208 | ||
5209 | * config/arm/parsecpu.awk (/alias/): New parsing rule. | |
5210 | (/begin cpu/): Check that the cpu name hasn't been previously defined. | |
5211 | (gen_comm_data): Print out CPU alias tables. | |
5212 | (check_cpu): Match aliases when checking the CPU name. | |
5213 | * config/arm/arm-protos.h (cpu_alias): New structure. | |
5214 | (cpu_option): Add entry for aliases. | |
5215 | * config/arm/arm-cpus.in (strongarm): Add aliases for strongarm110 | |
5216 | strongarm1100 and strongarm1110. | |
5217 | (strongarm110, strongarm1100, strongarm1110): Delete CPU entries. | |
5218 | (config/arm/arm-generic.md): Remove redundant references to | |
5219 | strongarm110, strongarm1100 and strongarm1110. | |
5220 | * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): | |
5221 | Scan aliases for additional hints. | |
5222 | (arm_parse_cpu_option_name): Also match a cpu name against the list | |
5223 | of aliases. | |
5224 | * config/arm/arm-tables.opt: Regenerated. | |
5225 | * config/arm/arm-tune.md: Regenerated. | |
5226 | ||
5227 | 2018-11-08 Jakub Jelinek <jakub@redhat.com> | |
5228 | ||
5229 | * builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, | |
5230 | BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, | |
5231 | BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, | |
5232 | BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, | |
5233 | BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, | |
5234 | BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. | |
5235 | * gengtype.c (open_base_files): Add omp-general.h. | |
5236 | * gimple.c (gimple_build_omp_critical): | |
5237 | (gimple_build_omp_taskgroup): Add CLAUSES argument. Call | |
5238 | gimple_omp_taskgroup_set_clauses. | |
5239 | (gimple_build_omp_atomic_load): Add mo argument, call | |
5240 | gimple_omp_atomic_set_memory_order. | |
5241 | (gimple_build_omp_atomic_store): Likewise. | |
5242 | (gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP. | |
5243 | * gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT | |
5244 | instead of GSS_OMP. | |
5245 | (GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead | |
5246 | of GSS_OMP_SINGLE_LAYOUT, adjust comments. | |
5247 | * gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT | |
5248 | and GF_OMP_ATOMIC_MEMORY_ORDER. Remove GF_OMP_ATOMIC_SEQ_CST, use | |
5249 | different value for GF_OMP_ATOMIC_NEED_VALUE. | |
5250 | (struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to | |
5251 | comments. | |
5252 | (struct gimple_statement_omp_single_layout): And remove here. | |
5253 | (struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather | |
5254 | than gimple_statement_omp_single_layout. | |
5255 | (is_a_helper <gimple_statement_omp_taskreg *>::test): Allow | |
5256 | GIMPLE_OMP_TEAMS. | |
5257 | (is_a_helper <const gimple_statement_omp_taskreg *>::test): Likewise. | |
5258 | (gimple_omp_subcode): Formatting fix. | |
5259 | (gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr, | |
5260 | gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg, | |
5261 | gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg, | |
5262 | gimple_omp_teams_host, gimple_omp_teams_set_host, | |
5263 | gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p, | |
5264 | gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr, | |
5265 | gimple_omp_taskgroup_set_clauses): New inline functions. | |
5266 | (gimple_build_omp_atomic_load): Add enum omp_memory_order argument. | |
5267 | (gimple_build_omp_atomic_store): Likewise. | |
5268 | (gimple_omp_atomic_seq_cst_p): Remove. | |
5269 | (gimple_omp_atomic_memory_order): New function. | |
5270 | (gimple_omp_atomic_set_seq_cst): Remove. | |
5271 | (gimple_omp_atomic_set_memory_order): New function. | |
5272 | (gimple_build_omp_taskgroup): Add clauses argument. | |
5273 | * gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function. | |
5274 | (dump_gimple_omp_task): Print taskwait with depend clauses. | |
5275 | (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use | |
5276 | dump_omp_atomic_memory_order. | |
5277 | (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP. | |
5278 | * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY, | |
5279 | GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL. | |
5280 | (enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags, | |
5281 | renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS, | |
5282 | ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and | |
5283 | ORT_UNTIED_TASKLOOP enumerators. | |
5284 | (enum gimplify_defaultmap_kind): New. | |
5285 | (struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and | |
5286 | target_map_pointers_as_0len_arrays members, add defaultmap. | |
5287 | (new_omp_context): Initialize defaultmap member. | |
5288 | (gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE. | |
5289 | (maybe_fold_stmt): Don't fold even in host teams regions. | |
5290 | (omp_firstprivatize_variable): Handle ORT_TASKGROUP like | |
5291 | ORT_WORKSHARE. Test ctx->defaultmap[GDMK_SCALAR] instead of | |
5292 | ctx->omp_firstprivatize_variable. | |
5293 | (omp_add_variable): Don't add private/firstprivate for VLAs in | |
5294 | ORT_TASKGROUP. | |
5295 | (omp_default_clause): Print "taskloop" rather than "task" if | |
5296 | ORT_*TASKLOOP. | |
5297 | (omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE. | |
5298 | Handle new defaultmap clause kinds. | |
5299 | (omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. Allow simd | |
5300 | iterator to be lastprivate or private. Fix up diagnostics if linear | |
5301 | is used on collapse>1 simd iterator. | |
5302 | (omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. | |
5303 | (gimplify_omp_depend): New function. | |
5304 | (gimplify_scan_omp_clauses): Add shared clause on parallel for | |
5305 | combined parallel master taskloop{, simd} if taskloop has | |
5306 | firstprivate, lastprivate or reduction clause. Handle | |
5307 | OMP_CLAUSE_REDUCTION_TASK diagnostics. Adjust tests for | |
5308 | ORT_COMBINED_TEAMS. Gimplify depend clauses with iterators. Handle | |
5309 | cancel and simd OMP_CLAUSE_IF_MODIFIERs. Handle | |
5310 | OMP_CLAUSE_NONTEMPORAL. Handle new defaultmap clause kinds. Handle | |
5311 | OMP_CLAUSE_{TASK,IN}_REDUCTION. Diagnose invalid conditional | |
5312 | lastprivate. | |
5313 | (gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL. Handle | |
5314 | GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY. | |
5315 | (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL. Handle | |
5316 | OMP_CLAUSE_{TASK,IN}_REDUCTION. | |
5317 | (gimplify_omp_task): Handle taskwait with depend clauses. | |
5318 | (gimplify_omp_for): Add shared clause on parallel for combined | |
5319 | parallel master taskloop{, simd} if taskloop has firstprivate, | |
5320 | lastprivate or reduction clause. Use ORT_TASKLOOP or | |
5321 | ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK. Adjust | |
5322 | tests for ORT_COMBINED_TEAMS. Handle C++ range for loops with | |
5323 | NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS. Firstprivatize | |
5324 | __for_end and __for_range temporaries on OMP_PARALLEL for | |
5325 | distribute parallel for{, simd}. Move OMP_CLAUSE_REDUCTION | |
5326 | and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct | |
5327 | sandwiched in between two taskloops. | |
5328 | (computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR] | |
5329 | instead of ctx->omp_firstprivatize_variable. | |
5330 | (gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or | |
5331 | ORT_COMBINED_HOST_TEAMS if not inside of target construct. If | |
5332 | host teams, use gimplify_and_return_first etc. for body like | |
5333 | for target or target data constructs, and at the end call | |
5334 | gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object. | |
5335 | (gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead | |
5336 | of OMP_ATOMIC_SEQ_CST, pass it as new argument to | |
5337 | gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove | |
5338 | gimple_omp_atomic_set_seq_cst calls. | |
5339 | (gimplify_expr) <case OMP_TASKGROUP>: Move handling into a separate | |
5340 | case, handle taskgroup clauses. | |
5341 | * lto-streamer-out.c (hash_tree): Handle | |
5342 | OMP_CLAUSE_{TASK,IN}_REDUCTION. | |
5343 | * Makefile.in (GTFILES): Add omp-general.h. | |
5344 | * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND, | |
5345 | BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, | |
5346 | BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, | |
5347 | BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START, | |
5348 | BUILT_IN_GOMP_LOOP_DOACROSS_START, | |
5349 | BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT, | |
5350 | BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT, | |
5351 | BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, | |
5352 | BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, | |
5353 | BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START, | |
5354 | BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START, | |
5355 | BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT, | |
5356 | BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT, | |
5357 | BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, | |
5358 | BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME, | |
5359 | BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START, | |
5360 | BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER, | |
5361 | BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER, | |
5362 | BUILT_IN_GOMP_TASK_REDUCTION_REMAP, | |
5363 | BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins. | |
5364 | * omp-expand.c (workshare_safe_to_combine_p): Return false for | |
5365 | non-worksharing loops. | |
5366 | (omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero. | |
5367 | (determine_parallel_type): Don't combine parallel with worksharing | |
5368 | which has _reductemp_ clause. | |
5369 | (expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or | |
5370 | GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime* | |
5371 | if there is nonmonotonic modifier or if there is no modifier and no | |
5372 | ordered clause. For dynamic and guided schedule without monotonic | |
5373 | and nonmonotonic modifier, default to nonmonotonic. | |
5374 | (expand_omp_for): Likewise. Adjust expand_omp_for_generic caller, use | |
5375 | GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are | |
5376 | task reductions. | |
5377 | (expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if | |
5378 | there are any reduction clauses. | |
5379 | (expand_taskwait_call): New function. | |
5380 | (expand_teams_call): New function. | |
5381 | (expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call | |
5382 | expand_teams_call for it. Formatting fix. Handle taskwait with | |
5383 | depend clauses. | |
5384 | (expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion | |
5385 | of worksharing loops with task reductions. | |
5386 | (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle | |
5387 | expansion of worksharing loops with task reductions. | |
5388 | (expand_omp_sections): Handle expansion of sections with task | |
5389 | reductions. | |
5390 | (expand_omp_synch): For host teams call expand_omp_taskreg. | |
5391 | (omp_memory_order_to_memmodel): New function. | |
5392 | (expand_omp_atomic_load, expand_omp_atomic_store, | |
5393 | expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order | |
5394 | instead of gimple_omp_atomic_seq_cst_p. | |
5395 | (build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with | |
5396 | depend clauses as a standalone directive. | |
5397 | * omp-general.c (enum omp_requires): New variable. | |
5398 | (omp_extract_for_data): Initialize have_reductemp member. Allow | |
5399 | NE_EXPR even in OpenMP loops, transform them into LT_EXPR or | |
5400 | GT_EXPR loops depending on incr sign. Formatting fixes. | |
5401 | * omp-general.h (struct omp_for_data): Add have_reductemp member. | |
5402 | (enum omp_requires): New enum. | |
5403 | (omp_requires_mask): Declare. | |
5404 | * omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix. | |
5405 | Fix comment typos. | |
5406 | * omp-low.c (struct omp_context): Add task_reductions and | |
5407 | task_reduction_map fields. | |
5408 | (is_host_teams_ctx): New function. | |
5409 | (is_taskreg_ctx): Return true also if is_host_teams_ctx. | |
5410 | (use_pointer_for_field): Use is_global_var instead of | |
5411 | TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized | |
5412 | in outer contexts. | |
5413 | (build_outer_var_ref): Ignore taskgroup outer contexts. | |
5414 | (delete_omp_context): Release task_reductions and task_reduction_map. | |
5415 | (scan_sharing_clauses): Don't add any fields for reduction clause on | |
5416 | taskloop. Handle OMP_CLAUSE__REDUCTEMP_. Handle | |
5417 | OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task | |
5418 | modifier. Don't ignore shared clauses in is_host_teams_ctx contexts. | |
5419 | Handle OMP_CLAUSE_NONTEMPORAL. | |
5420 | (add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if | |
5421 | needed. | |
5422 | (scan_omp_parallel): Add _reductemp_ clause if there are any reduction | |
5423 | clauses with task modifier. | |
5424 | (scan_omp_task): Handle taskwait with depend clauses. | |
5425 | (finish_taskreg_scan): Move field corresponding to _reductemp_ clause | |
5426 | first. Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present. | |
5427 | Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL. | |
5428 | (scan_omp_for): Fix comment formatting. | |
5429 | (scan_omp_teams): Handle host teams constructs. | |
5430 | (check_omp_nesting_restrictions): Allow teams with no outer | |
5431 | OpenMP context. Adjust diagnostics for teams strictly nested into | |
5432 | some explicit OpenMP construct other than target. Allow OpenMP atomics | |
5433 | inside of simd regions. | |
5434 | (scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups. | |
5435 | (scan_omp_1_stmt) <case GIMPLE_OMP_TEAMS>: Temporarily bump | |
5436 | taskreg_nesting_level while scanning host teams construct. | |
5437 | (task_reduction_read): New function. | |
5438 | (lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop | |
5439 | construct. Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_ | |
5440 | clauses. Handle OMP_CLAUSE_REDUCTION with task modifier. Remove | |
5441 | second argument create_tmp_var if it is NULL. Don't ignore shared | |
5442 | clauses in is_host_teams_ctx contexts. Handle | |
5443 | OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE | |
5444 | clauses. | |
5445 | (lower_reduction_clauses): Ignore reduction clauses with task | |
5446 | modifier. Remove second argument create_tmp_var if it is NULL. | |
5447 | Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed. | |
5448 | (lower_send_clauses): Ignore reduction clauses with task modifier. | |
5449 | Handle OMP_CLAUSE__REDUCTEMP_. Don't send anything for | |
5450 | OMP_CLAUSE_REDUCTION on taskloop. Handle OMP_CLAUSE_IN_REDUCTION. | |
5451 | (maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't | |
5452 | rely that it is the last stmt in body so far. Ignore outer taskgroup | |
5453 | contexts. | |
5454 | (omp_task_reductions_find_first, omp_task_reduction_iterate, | |
5455 | lower_omp_task_reductions): New functions. | |
5456 | (lower_omp_sections): Handle reduction clauses with taskgroup | |
5457 | modifiers. Adjust maybe_add_implicit_barrier_cancel caller. | |
5458 | (lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller. | |
5459 | (lower_omp_for): Likewise. Handle reduction clauses with taskgroup | |
5460 | modifiers. | |
5461 | (lower_omp_taskgroup): Handle taskgroup reductions. | |
5462 | (create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer. | |
5463 | Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses. | |
5464 | (lower_depend_clauses): If there are any | |
5465 | OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET | |
5466 | depend clauses, use a new array format. If OMP_CLAUSE_DEPEND_LAST is | |
5467 | seen, assume lowering is done already and return early. Set kind | |
5468 | on artificial depend clause to OMP_CLAUSE_DEPEND_LAST. | |
5469 | (lower_omp_taskreg): Handle reduction clauses with task modifier on | |
5470 | parallel construct. Handle reduction clause on taskloop construct. | |
5471 | Handle taskwait with depend clauses. | |
5472 | (lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams | |
5473 | for host teams constructs. | |
5474 | * tree.c (omp_clause_num_ops): Add in_reduction, task_reduction, | |
5475 | nontemporal and _reductemp_ clause entries. | |
5476 | (omp_clause_code_name): Likewise. | |
5477 | (walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION, | |
5478 | OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_. | |
5479 | * tree-core.h (enum omp_clause_code): Add | |
5480 | OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}. | |
5481 | (enum omp_clause_defaultmap_kind, enum omp_memory_order): New. | |
5482 | (struct tree_base): Add omp_atomic_memory_order field into union. | |
5483 | Remove OMP_ATOMIC_SEQ_CST comment. | |
5484 | (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET | |
5485 | and OMP_CLAUSE_DEPEND_DEPOBJ. | |
5486 | (struct tree_omp_clause): Add subcode.defaultmap_kind. | |
5487 | * tree.def (OMP_TASKGROUP): Add another operand, move next to other | |
5488 | OpenMP constructs with body and clauses operands. | |
5489 | * tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP. | |
5490 | (OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE. | |
5491 | (OMP_TASKGROUP_CLAUSES): Define. | |
5492 | (OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of | |
5493 | OMP_CLAUSE__LOOPTEMP_. | |
5494 | (OMP_ATOMIC_SEQ_CST): Remove. | |
5495 | (OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE, | |
5496 | OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define. | |
5497 | (OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT, | |
5498 | OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER, | |
5499 | OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER, | |
5500 | OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle | |
5501 | OMP_CLAUSE_{,IN_,TASK_}REDUCTION. | |
5502 | (OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN, | |
5503 | OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY, | |
5504 | OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND): | |
5505 | Define. | |
5506 | * tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses. | |
5507 | * tree-nested.c (convert_nonlocal_omp_clauses): Handle | |
5508 | OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL. | |
5509 | (convert_local_omp_clauses): Likewise. Remove useless test. | |
5510 | * tree-parloops.c (create_call_for_reduction_1): Pass | |
5511 | OMP_MEMORY_ORDER_RELAXED as new argument to | |
5512 | dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store. | |
5513 | * tree-pretty-print.c (dump_omp_iterators): New function. | |
5514 | (dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_, | |
5515 | OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION. Print | |
5516 | reduction modifiers. Handle OMP_CLAUSE_DEPEND_DEPOBJ and | |
5517 | OMP_CLAUSE_DEPEND_MUTEXINOUTSET. Print iterators in depend clauses. | |
5518 | Print __internal__ for OMP_CLAUSE_DEPEND_LAST. Handle cancel and | |
5519 | simd OMP_CLAUSE_IF_MODIFIERs. Handle new kinds of | |
5520 | OMP_CLAUSE_DEFAULTMAP. Print conditional: for | |
5521 | OMP_CLAUSE_LASTPRIVATE_CONDITIONAL. | |
5522 | (dump_omp_atomic_memory_order): New function. | |
5523 | (dump_generic_node): Use it. Print taskgroup clauses. Print | |
5524 | taskwait with depend clauses. | |
5525 | * tree-pretty-print.h (dump_omp_atomic_memory_order): Declare. | |
5526 | * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): | |
5527 | Handle OMP_CLAUSE_{TASK,IN}_REDUCTION. | |
5528 | * tree-streamer-out.c (pack_ts_omp_clause_value_fields, | |
5529 | write_ts_omp_clause_tree_pointers): Likewise. | |
5530 | ||
5531 | 2018-11-08 David Malcolm <dmalcolm@redhat.com> | |
5532 | ||
5533 | PR ipa/86395 | |
5534 | * doc/invoke.texi (-fdump-ipa-): Document the "-optimized", | |
5535 | "-missed", "-note", and "-all" sub-options. | |
5536 | * ipa-inline.c (caller_growth_limits): Port from fprintf to dump | |
5537 | API. | |
5538 | (can_early_inline_edge_p): Likewise. | |
5539 | (want_early_inline_function_p): Likewise. | |
5540 | (want_inline_self_recursive_call_p): Likewise. | |
5541 | (recursive_inlining): Likewise. | |
5542 | (inline_small_functions): Likewise. | |
5543 | (flatten_function): Likewise. | |
5544 | (ipa_inline): Likewise. | |
5545 | (inline_always_inline_functions): Likewise. | |
5546 | (early_inline_small_functions): Likewise. | |
5547 | (early_inliner): Likewise. | |
5548 | * tree-inline.c (expand_call_inline): Likewise. | |
5549 | ||
5550 | 2018-11-08 David Malcolm <dmalcolm@redhat.com> | |
5551 | ||
5552 | * pretty-print.c (pp_format): Handle %f. | |
5553 | (selftest::test_pp_format): Add test of %f. | |
5554 | * pretty-print.h (pp_double): New macro. | |
5555 | ||
5556 | 2018-11-08 David Malcolm <dmalcolm@redhat.com> | |
5557 | ||
5558 | * dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro. | |
5559 | * dumpfile.c (make_item_for_dump_cgraph_node): Move to before... | |
5560 | (dump_pretty_printer::decode_format): Implement "%C" for | |
5561 | cgraph_node *. | |
5562 | (selftest::test_capture_of_dump_calls): Rename "where" to | |
5563 | "stmt_loc". Convert test_decl to a function decl and set its | |
5564 | location. Add a symbol_table_test RAII instance and a | |
5565 | cgraph_node, using it to test "%C" and dump_symtab_node. | |
5566 | ||
5567 | 2018-11-08 Eric Botcazou <ebotcazou@adacore.com> | |
5568 | ||
5569 | PR middle-end/87916 | |
5570 | * cgraphclones.c (duplicate_thunk_for_node): Also set DECL_IGNORED_P. | |
5571 | ||
5572 | 2018-11-08 David Malcolm <dmalcolm@redhat.com> | |
5573 | ||
5574 | * cgraph.c: Include "selftest.h". | |
5575 | (saved_symtab): New variable. | |
5576 | (selftest::symbol_table_test::symbol_table_test): New ctor. | |
5577 | (selftest::symbol_table_test::~symbol_table_test): New dtor. | |
5578 | (selftest::test_symbol_table_test): New test. | |
5579 | (selftest::cgraph_c_tests): New. | |
5580 | * cgraph.h (saved_symtab): New decl. | |
5581 | (selftest::symbol_table_test): New class. | |
5582 | * selftest-run-tests.c (selftest::run_tests): Call | |
5583 | selftest::cgraph_c_tests. | |
5584 | * selftest.h (selftest::cgraph_c_tests): New decl. | |
5585 | ||
5586 | 2018-11-08 Richard Biener <rguenther@suse.de> | |
5587 | ||
5588 | * tree-data-ref.h (lambda_int): New typedef. | |
5589 | (lambda_vector_gcd): Adjust. | |
5590 | (lambda_vector_new): Likewise. | |
5591 | (lambda_matrix_new): Likewise. | |
5592 | * tree-data-ref.c (print_lambda_vector): Adjust. | |
5593 | ||
5594 | 2018-11-08 Richard Biener <rguenther@suse.de> | |
5595 | ||
5596 | PR tree-optimization/87929 | |
5597 | * tree-complex.c (expand_complex_comparison): Clean EH. | |
5598 | ||
5599 | 2018-11-08 Martin Liska <mliska@suse.cz> | |
5600 | ||
5601 | * doc/extend.texi: Reword. | |
5602 | * predict.c (expr_expected_value_1): Likewise. | |
5603 | ||
5604 | 2018-11-08 Richard Biener <rguenther@suse.de> | |
5605 | ||
5606 | PR tree-optimization/87913 | |
5607 | * tree-ssa-phiopt.c (minmax_replacement): Turn EQ/NE compares | |
5608 | of extreme values to ordered comparisons. | |
5609 | ||
5610 | 2018-11-07 Sandra Loosemore <sandra@codesourcery.com> | |
5611 | ||
5612 | PR middle-end/42726 | |
5613 | * doc/invoke.texi (Code Gen Options): Clarify -fno-common behavior. | |
5614 | ||
5615 | 2018-11-07 Sandra Loosemore <sandra@codesourcery.com> | |
5616 | ||
5617 | * doc/invoke.texi: Remove leading dash from @opindex entries | |
5618 | throughout the file. | |
5619 | ||
5620 | 2018-11-07 Sandra Loosemore <sandra@codesourcery.com> | |
5621 | ||
5622 | PR driver/80828 | |
5623 | * doc/invoke.texi (Option Summary): Add -e and --entry. | |
5624 | (Link Options): Likewise. | |
5625 | ||
5626 | 2018-11-07 Nathan Sidwell <nathan@acm.org> | |
5627 | ||
5628 | PR 87926 | |
5629 | * Makefile.in (bitmap.o-warn): Add -Wno-error to unbreak | |
5630 | --disable-checking bootstrap. | |
5631 | ||
5632 | 2018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com> | |
5633 | ||
5634 | * configure: Regenerated. | |
5635 | ||
5636 | 2018-11-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
5637 | ||
5638 | PR c/87691 | |
5639 | * stor-layout.c (compute_record_mode): Set TYPE_MODE of UNION_TYPE | |
5640 | to the mode of the widest field iff the widest field has mode class | |
5641 | MODE_INT, or MODE_PARTIAL_INT and the union would be passed by | |
5642 | reference. | |
5643 | ||
5644 | 2018-11-07 Nikolai Merinov <n.merinov@inango-systems.com> | |
5645 | ||
5646 | * common.opt: Add -Wattribute-warning. | |
5647 | * doc/invoke.texi: Add documentation for -Wno-attribute-warning. | |
5648 | * expr.c (expand_expr_real_1): Add new attribute to warning_at | |
5649 | call to allow user configure behavior of "warning" attribute. | |
5650 | ||
5651 | 2018-11-07 Segher Boessenkool <segher@kernel.crashing.org> | |
5652 | ||
5653 | * target.def: Put @: after every vs., e.g., and i.e. where it is | |
5654 | followed by whitespace. | |
5655 | * doc/extend.texi: Ditto. | |
5656 | * doc/fragments.texi: Ditto. | |
5657 | * doc/gimple.texi: Ditto. | |
5658 | * doc/implement-c.texi: Ditto. | |
5659 | * doc/install.texi: Ditto. | |
5660 | * doc/invoke.texi: Ditto. | |
5661 | * doc/md.texi: Ditto. | |
5662 | * doc/plugins.texi: Ditto. | |
5663 | * doc/rtl.texi: Ditto. | |
5664 | * doc/sourcebuild.texi: Ditto. | |
5665 | * doc/tm.texi.in: Ditto. | |
5666 | * doc/ux.texi: Ditto. | |
5667 | * doc/tm.texi: Regenerate. | |
5668 | ||
5669 | 2018-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
5670 | ||
5671 | * config/arm/arm-cpus.in (ares): New entry. | |
5672 | * config/arm/arm-tables.opt: Regenerate. | |
5673 | * config/arm/arm-tune.md: Likewise. | |
5674 | * doc/invoke.texi (ARM Options): Document ares. | |
5675 | ||
5676 | 2018-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
5677 | ||
5678 | * config/aarch64/aarch64-cores.def (ares): Define. | |
5679 | * config/aarch64/aarch64-tune.md: Regenerate. | |
5680 | * doc/invoke.texi (AArch64 Options): Document ares value for mtune. | |
5681 | ||
5682 | 2018-11-07 Jan Hubicka <jh@suse.cz> | |
5683 | ||
5684 | * tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE. | |
5685 | (free_lang_data_in_decl): Set TREE_ADDRESSABLE for public vars and | |
5686 | functions; clear TYPE_DECL_SUPPRESS_DEBUG and DECL_MODE for | |
5687 | TYPE_DECL. | |
5688 | ||
5689 | 2018-11-07 Richard Biener <rguenther@suse.de> | |
5690 | ||
5691 | PR tree-optimization/87914 | |
5692 | * tree-vect-loop.c (vect_is_simple_reduction): Improve detection | |
5693 | of nested cycles. | |
5694 | (vectorizable_reduction): Handle shifts and rotates by dispatching | |
5695 | to vectorizable_shift. | |
5696 | * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle | |
5697 | in-loop uses of vect_nested_cycle defs. Merge cycle and internal | |
5698 | def cases. | |
5699 | (vectorizable_shift): Export and handle being called as | |
5700 | vect_nested_cycle. | |
5701 | (vect_analyze_stmt): Call vectorizable_shift after | |
5702 | vectorizable_reduction. | |
5703 | * tree-vectorizer.h (vectorizable_shift): Declare. | |
5704 | ||
5705 | 2018-11-07 Jan Hubicka <jh@suse.cz> | |
5706 | ||
5707 | * ipa-devirt.c (odr_types_equivalent_p): Expect constants | |
5708 | than const decls in TREE_VALUE of enum. | |
5709 | (dump_type_inheritance_graph): Improve duplicate dumping. | |
5710 | (free_enum_values): New. | |
5711 | (build_type_inheritance_graph): Use it. | |
5712 | * tree.c (free_lang_data_in_type): Free TYPE_VALUES of enums | |
5713 | which are not main variants or not ODR types. | |
5714 | (verify_type_variant): Expect variants to have no TYPE_VALUES. | |
5715 | ||
5716 | 2018-11-07 Richard Biener <rguenther@suse.de> | |
5717 | ||
5718 | * ipa-inline.c (want_inline_small_function_p): Compute | |
5719 | big_speedup_p lazily and last. | |
5720 | ||
5721 | 2018-11-07 Jan Hubicka <jh@suse.cz> | |
5722 | ||
5723 | * tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when | |
5724 | building incomplete variant of complete type. | |
5725 | (fld_type_variant): Do not copy TYPE_ALIGN when building incomplete | |
5726 | variant of complete type. | |
5727 | ||
5728 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5729 | ||
5730 | * config/mips/mips.c: Fix typo in documentation of | |
5731 | mips_loongson_ext2_prefetch_cookie. | |
5732 | (mips_option_override): fix brain twister logical. | |
5733 | * config/mips/mips.h: Fix typo in documentation of | |
5734 | ISA_HAS_CTZ_CTO and define pattern. | |
5735 | * config/mips/mips.md (prefetch): Hoist EXT2 above | |
5736 | the 2EF/EXT block. | |
5737 | (prefetch_indexed): Hoist EXT2 above the EXT block. | |
5738 | ||
5739 | 2018-11-07 Jan Hubicka <jh@suse.cz> | |
5740 | ||
5741 | * tree.c (free_lang_data_in_type): Add fld parameter; simplify | |
5742 | return and parameter types of function and method types. | |
5743 | (free_lang_data_in_cgraph): Update. | |
5744 | ||
5745 | 2018-11-07 Martin Liska <mliska@suse.cz> | |
5746 | ||
5747 | PR rtl-optimization/87868 | |
5748 | * postreload-gcse.c (eliminate_partially_redundant_load): Set | |
5749 | threshold to max_count if we would overflow. | |
5750 | * profile-count.h: Make max_count a public constant. | |
5751 | ||
5752 | 2018-11-07 Martin Liska <mliska@suse.cz> | |
5753 | ||
5754 | * mem-stats.h: Fix GNU coding style. | |
5755 | ||
5756 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5757 | ||
5758 | * config/mips/gs264e.md: New. | |
5759 | * config/mips/mips-cpus.def: Define gs264e. | |
5760 | * config/mips/mips-tables.opt: Regenerate. | |
5761 | * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for | |
5762 | gs264e. | |
5763 | (mips_issue_rate): Add support for gs264e. | |
5764 | (mips_multipass_dfa_lookahead): Likewise. | |
5765 | * config/mips/mips.h: Define TARGET_GS264E and TUNE_GS264E. | |
5766 | (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs264e. | |
5767 | (MIPS_ASE_MSA_SPEC): New. | |
5768 | (BASE_DRIVER_SELF_SPECS): march=gs264e implies -mmsa. | |
5769 | (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS264E. | |
5770 | (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS264E. | |
5771 | * config/mips/mips.md: Include gs264e.md. | |
5772 | (processor): Add gs264e. | |
5773 | * config/mips/mips.opt (MSA): Use Mask instead of Var. | |
5774 | * doc/invoke.texi: Add gs264e to supported architectures. | |
5775 | ||
5776 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5777 | ||
5778 | * config/mips/gs464e.md: New. | |
5779 | * config/mips/mips-cpus.def: Define gs464e. | |
5780 | * config/mips/mips-tables.opt: Regenerate. | |
5781 | * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for | |
5782 | gs464e. | |
5783 | (mips_issue_rate): Add support for gs464e. | |
5784 | (mips_multipass_dfa_lookahead): Likewise. | |
5785 | (mips_option_override): Enable MMI, EXT and EXT2 for gs464e. | |
5786 | * config/mips/mips.h: Define TARGET_GS464E and TUNE_GS464E. | |
5787 | (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464e. | |
5788 | (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS464E. | |
5789 | (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS464E. | |
5790 | * config/mips/mips.md: Include gs464e.md. | |
5791 | (processor): Add gs464e. | |
5792 | * doc/invoke.texi: Add gs464e to supported architectures. | |
5793 | ||
5794 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5795 | ||
5796 | * config/mips/loongson3a.md: Rename to ... | |
5797 | * config/mips/gs464.md: ... here. | |
5798 | * config/mips/mips-cpus.def: Define gs464; Add loongson3a | |
5799 | as an alias of gs464 processor. | |
5800 | * config/mips/mips-tables.opt: Regenerate. | |
5801 | * config/mips/mips.c (mips_issue_rate): Use PROCESSOR_GS464 | |
5802 | instead of PROCESSOR_LOONGSON_3A. | |
5803 | (mips_multipass_dfa_lookahead): Use TUNE_GS464 instead of | |
5804 | TUNE_LOONGSON_3A. | |
5805 | (mips_option_override): Enable MMI and EXT for gs464. | |
5806 | * config/mips/mips.h: Rename TARGET_LOONGSON_3A to TARGET_GS464; | |
5807 | Rename TUNE_LOONGSON_3A to TUNE_GS464. | |
5808 | (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464. | |
5809 | (ISA_HAS_ODD_SPREG, ISA_AVOID_DIV_HILO, ISA_HAS_FUSED_MADD4, | |
5810 | ISA_HAS_UNFUSED_MADD4): Use TARGET_GS464 instead of | |
5811 | TARGET_LOONGSON_3A. | |
5812 | * config/mips/mips.md: Include gs464.md instead of loongson3a.md. | |
5813 | (processor): Add gs464; | |
5814 | * doc/invoke.texi: Add gs464 to supported architectures. | |
5815 | ||
5816 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5817 | ||
5818 | * config/mips/mips-protos.h | |
5819 | (mips_loongson_ext2_prefetch_cookie): New prototype. | |
5820 | * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): New. | |
5821 | (mips_option_override): Enable TARGET_LOONGSON_EXT when | |
5822 | TARGET_LOONGSON_EXT2 is true. | |
5823 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define | |
5824 | __mips_loongson_ext2, __mips_loongson_ext_rev=2. | |
5825 | (ISA_HAS_CTZ_CTO): New, true if TARGET_LOONGSON_EXT2. | |
5826 | (ISA_HAS_PREFETCH): Include TARGET_LOONGSON_EXT and | |
5827 | TARGET_LOONGSON_EXT2. | |
5828 | (ASM_SPEC): Add mloongson-ext2 and mno-loongson-ext2. | |
5829 | (define_insn "ctz<mode>2"): New insn pattern. | |
5830 | (define_insn "prefetch"): Include TARGET_LOONGSON_EXT2. | |
5831 | (define_insn "prefetch_indexed_<mode>"): Include | |
5832 | TARGET_LOONGSON_EXT and TARGET_LOONGSON_EXT2. | |
5833 | * config/mips/mips.opt (-mloongson-ext2): Add option. | |
5834 | * gcc/doc/invoke.texi (-mloongson-ext2): Document. | |
5835 | ||
5836 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5837 | ||
5838 | * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add | |
5839 | __mips_loongson_ext. | |
5840 | (MIPS_ASE_LOONGSON_EXT_SPEC): New. | |
5841 | (BASE_DRIVER_SELF_SPECS): march=loongson3a implies | |
5842 | -mloongson-ext. | |
5843 | (ASM_SPEC): Add mloongson-ext and mno-loongson-ext. | |
5844 | * config/mips/mips.md (mul<mode>3, mul<mode>3_mul3_nohilo, | |
5845 | <u>div<mode>3, <u>mod<mode>3, prefetch): Use TARGET_LOONGSON_EXT | |
5846 | instead of TARGET_LOONGSON_3A. | |
5847 | * config/mips/mips.opt (-mloongson-ext): Add option. | |
5848 | * gcc/doc/invoke.texi (-mloongson-ext): Document. | |
5849 | ||
5850 | 2018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> | |
5851 | ||
5852 | * config.gcc (extra_headers): Add loongson-mmiintrin.h. | |
5853 | * config/mips/loongson.md: Move to ... | |
5854 | * config/mips/loongson-mmi.md: here; Adjustment. | |
5855 | * config/mips/loongson.h: Move to ... | |
5856 | State as deprecated. Include loongson-mmiintrin.h for back | |
5857 | compatibility and warning. | |
5858 | * config/mips/loongson-mmiintrin.h: ... here. | |
5859 | * config/mips/mips.c (mips_hard_regno_mode_ok_uncached, | |
5860 | mips_vector_mode_supported_p, AVAIL_NON_MIPS16): Use | |
5861 | TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. | |
5862 | (mips_option_override): Make sure MMI use hard float; | |
5863 | (mips_shift_truncation_mask, mips_expand_vpc_loongson_even_odd, | |
5864 | mips_expand_vpc_loongson_pshufh, mips_expand_vpc_loongson_bcast, | |
5865 | mips_expand_vector_init): Use TARGET_LOONGSON_MMI instead of | |
5866 | TARGET_LOONGSON_VECTORS. | |
5867 | * gcc/config/mips/mips.h (TARGET_LOONGSON_VECTORS): Delete. | |
5868 | (TARGET_CPU_CPP_BUILTINS): Add __mips_loongson_mmi. | |
5869 | (MIPS_ASE_DSP_SPEC, MIPS_ASE_LOONGSON_MMI_SPEC): New. | |
5870 | (BASE_DRIVER_SELF_SPECS): march=loongson2e/2f/3a implies | |
5871 | -mloongson-mmi. | |
5872 | (SHIFT_COUNT_TRUNCATED): Use TARGET_LOONGSON_MMI instead of | |
5873 | TARGET_LOONGSON_VECTORS. | |
5874 | * gcc/config/mips/mips.md (MOVE64, MOVE128): Use | |
5875 | TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. | |
5876 | (Loongson MMI patterns): Include loongson-mmi.md instead of | |
5877 | loongson.md. | |
5878 | * gcc/config/mips/mips.opt (-mloongson-mmi): New option. | |
5879 | * gcc/doc/invoke.texi (-mloongson-mmi): Document. | |
5880 | ||
5881 | 2018-11-07 Richard Biener <rguenther@suse.de> | |
5882 | ||
5883 | PR lto/87906 | |
5884 | * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Fixup | |
5885 | BLOCK_ABSTRACT_ORIGIN to be the ultimate origin. | |
5886 | ||
5887 | 2018-11-07 Alexandre Oliva <aoliva@redhat.com> | |
5888 | ||
5889 | PR rtl-optimization/87874 | |
5890 | * lra.c (lra_substitute_pseudo): Do not create a subreg for | |
5891 | const wide ints. | |
5892 | ||
5893 | 2018-11-06 Aaron Sawdey <acsawdey@linux.ibm.com> | |
5894 | ||
5895 | * config/rs6000/rs6000.md (bswap<mode>2): Force address into register | |
5896 | if not in indexed or indirect form. | |
5897 | (bswap<mode>2_load): Change predicate to indexed_or_indirect_operand. | |
5898 | (bswap<mode>2_store): Ditto. | |
5899 | ||
5900 | 2018-11-06 Richard Earnshaw <rearnsha@arm.com> | |
5901 | ||
5902 | * config/aarch64/aarch64.md (speculation_tracker): Set the mode for | |
5903 | the UNSPEC. | |
5904 | ||
5905 | 2018-11-06 Richard Biener <rguenther@suse.de> | |
5906 | ||
5907 | PR tree-optimization/86850 | |
5908 | * vec.h (vec<T, va_heap, vl_ptr>::splice): Check src.length () | |
5909 | instead of src.m_vec. | |
5910 | ||
5911 | 2018-11-06 Jan Hubicka <jh@suse.cz> | |
5912 | ||
5913 | * tree.c (fld_simplified_type_name): Break out form ... | |
5914 | (free_lang_data_in_type): ... here. | |
5915 | (fld_type_variant_equal_p): Use it. | |
5916 | ||
5917 | 2018-11-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
5918 | ||
5919 | * config/default-d.c: Include memmodel.h. | |
5920 | ||
5921 | * config/sol2-d.c: New file. | |
5922 | * config/t-sol2 (sol2-d.o): New rule. | |
5923 | * config.gcc <*-*-solaris2*>: Set d_target_objs, | |
5924 | target_has_targetdm. | |
5925 | ||
5926 | 2018-11-06 Jan Hubicka <jh@suse.cz> | |
5927 | ||
5928 | * tree.c (fld_type_variant): Also copy alignment; be sure that | |
5929 | new variant is equal. | |
5930 | ||
5931 | 2018-11-06 Ilya Leoshkevich <iii@linux.ibm.com> | |
5932 | ||
5933 | PR target/87762 | |
5934 | * config/s390/s390.md: Add relative_long attribute. | |
5935 | ||
5936 | 2018-11-06 Jan Hubicka <jh@suse.cz> | |
5937 | ||
5938 | * ipa-pure-const.c (check_decl): Do not test TYPE_NEEDS_CONSTRUCTING. | |
5939 | * lto-streamer-out.c (hash_tree): Do not hash TYPE_NEEDS_CONSTRUCTING. | |
5940 | * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not | |
5941 | stream TYPE_NEEDS_CONSTRUCTING. | |
5942 | * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. | |
5943 | * tree.c (free_lang_data_in_type): Clear TYPE_NEEDS_CONSTRUCTING. | |
5944 | ||
5945 | 2018-11-06 Richard Biener <rguenther@suse.de> | |
5946 | ||
5947 | * tree-vect-slp.c (vect_slp_bb): Move opening of vect_slp_analyze_bb | |
5948 | dump-scope ... | |
5949 | (vect_slp_analyze_bb_1): ... here to avoid hiding optimized locations. | |
5950 | ||
5951 | 2018-11-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
5952 | ||
5953 | * gcc/config/msp430/msp430.h (REG_CLASS_CONTENTS): Add R0 to | |
5954 | REG_CLASS_CONTENTS[GEN_REGS]. | |
5955 | (REGNO_REG_CLASS): Return NO_REGS for R2 and R3. | |
5956 | ||
5957 | 2018-11-06 Jan Hubicka <jh@suse.cz> | |
5958 | ||
5959 | * tree.c (fld_simplified_type_of): Clear TYPELESS_STORAGE flag. | |
5960 | ||
5961 | 2018-11-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
5962 | ||
5963 | PR sanitizer/80953 | |
5964 | * config/sol2.h (ASAN_CC1_SPEC): Define. | |
5965 | (LD_WHOLE_ARCHIVE_OPTION): Define. | |
5966 | (LD_NO_WHOLE_ARCHIVE_OPTION): Define. | |
5967 | (ASAN_REJECT_SPEC): Provide default. | |
5968 | (LIBASAN_EARLY_SPEC): Define. | |
5969 | (LIBTSAN_EARLY_SPEC): Define. | |
5970 | (LIBLSAN_EARLY_SPEC): Define. | |
5971 | * config/i386/sol2.h (CC1_SPEC): Redefine. | |
5972 | (ASAN_REJECT_SPEC): Define. | |
5973 | ||
5974 | * config/sparc/sparc.c (sparc_asan_shadow_offset): Declare. | |
5975 | (TARGET_ASAN_SHADOW_OFFSET): Define. | |
5976 | (sparc_asan_shadow_offset): New function. | |
5977 | * config/sparc/sol2.h (CC1_SPEC): Append ASAN_CC1_SPEC. | |
5978 | (ASAN_REJECT_SPEC): Define. | |
5979 | ||
5980 | 2018-11-06 Jan Hubicka <jh@suse.cz> | |
5981 | ||
5982 | * tree.c (fld_type_variant): Copy canonical type. | |
5983 | (fld_incomplete_type_of): Check that canonical types looks sane; | |
5984 | copy canonical type. | |
5985 | (verify_type): Accept when incomplete type has complete canonical type. | |
5986 | ||
5987 | 2018-11-06 Jan Hubicka <jh@suse.cz> | |
5988 | ||
5989 | * tree.c (free_lang_data): Reset overwite_assembler_name, | |
5990 | print_xnode, print_decl, print_type and print_identifier of | |
5991 | langhooks. | |
5992 | ||
5993 | 2018-11-06 Richard Biener <rguenther@suse.de> | |
5994 | ||
5995 | PR tree-optimization/87889 | |
5996 | * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): | |
5997 | Do nothing if old and new arg are the same | |
5998 | ||
5999 | 2018-11-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
6000 | ||
6001 | PR target/87723 | |
6002 | * config/s390/s390.md ("*r<noxa>sbg_di_rotl"): Remove mode | |
6003 | attributes for operands 3 and 4. | |
6004 | ||
6005 | 2018-11-06 Richard Biener <rguenther@suse.de> | |
6006 | ||
6007 | PR middle-end/18041 | |
6008 | * simplify-rtx.c (simplify_binary_operation_1): Add pattern | |
6009 | matching bitfield insertion. | |
6010 | ||
6011 | 2018-11-06 Alexandre Oliva <aoliva@redhat.com> | |
6012 | ||
6013 | * auto-inc-dec.c: Include valtrack.h. Improve comments. | |
6014 | (reg_next_debug_use): New. | |
6015 | (attempt_change): Propagate adjusted expression into affected | |
6016 | debug insns. | |
6017 | (merge_in_block): Track uses in debug insns. | |
6018 | (pass_inc_dec::execute): Allocate and release | |
6019 | reg_next_debug_use. | |
6020 | ||
6021 | 2018-11-06 Wei Xiao <wei3.xiao@intel.com> | |
6022 | ||
6023 | * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. | |
6024 | (_mm512_fixupimm_round_pd): Update parameters and builtin. | |
6025 | (_mm512_maskz_fixupimm_round_pd): Ditto. | |
6026 | (_mm512_fixupimm_round_ps): Ditto. | |
6027 | (_mm512_maskz_fixupimm_round_ps): Ditto. | |
6028 | (_mm_fixupimm_round_sd): Ditto. | |
6029 | (_mm_maskz_fixupimm_round_sd): Ditto. | |
6030 | (_mm_fixupimm_round_ss): Ditto. | |
6031 | (_mm_maskz_fixupimm_round_ss): Ditto. | |
6032 | (_mm512_fixupimm_pd): Ditto. | |
6033 | (_mm512_maskz_fixupimm_pd): Ditto. | |
6034 | (_mm512_fixupimm_ps): Ditto. | |
6035 | (_mm512_maskz_fixupimm_ps): Ditto. | |
6036 | (_mm_fixupimm_sd): Ditto. | |
6037 | (_mm_maskz_fixupimm_sd): Ditto. | |
6038 | (_mm_fixupimm_ss): Ditto. | |
6039 | (_mm_maskz_fixupimm_ss): Ditto. | |
6040 | (_mm512_mask_fixupimm_round_pd): Update builtin. | |
6041 | (_mm512_mask_fixupimm_round_ps): Ditto. | |
6042 | (_mm_mask_fixupimm_round_sd): Ditto. | |
6043 | (_mm_mask_fixupimm_round_ss): Ditto. | |
6044 | (_mm512_mask_fixupimm_pd): Ditto. | |
6045 | (_mm512_mask_fixupimm_ps): Ditto. | |
6046 | (_mm_mask_fixupimm_sd): Ditto. | |
6047 | (_mm_mask_fixupimm_ss): Ditto. | |
6048 | * config/i386/avx512vlintrin.h: | |
6049 | (_mm256_fixupimm_pd): Update parameters and builtin. | |
6050 | (_mm256_maskz_fixupimm_pd): Ditto. | |
6051 | (_mm256_fixupimm_ps): Ditto. | |
6052 | (_mm256_maskz_fixupimm_ps): Ditto. | |
6053 | (_mm_fixupimm_pd): Ditto. | |
6054 | (_mm_maskz_fixupimm_pd): Ditto. | |
6055 | (_mm_fixupimm_ps): Ditto. | |
6056 | (_mm_maskz_fixupimm_ps): Ditto. | |
6057 | (_mm256_mask_fixupimm_pd): Update builtin. | |
6058 | (_mm256_mask_fixupimm_ps): Ditto. | |
6059 | (_mm_mask_fixupimm_pd): Ditto. | |
6060 | (_mm_mask_fixupimm_ps): Ditto. | |
6061 | * config/i386/i386-builtin-types.def: Add new types and remove useless ones. | |
6062 | * config/i386/i386-builtin.def: Update builtin definitions. | |
6063 | * config/i386/i386.c: Handle new builtin types and remove useless ones. | |
6064 | * config/i386/sse.md: Update VFIXUPIMM* patterns. | |
6065 | (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
6066 | (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
6067 | (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. | |
6068 | (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
6069 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
6070 | (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. | |
6071 | * config/i386/subst.md: | |
6072 | (round_saeonly_sd_mask_operand4): Add new subst_attr. | |
6073 | (round_saeonly_sd_mask_op4): Ditto. | |
6074 | (round_saeonly_expand_operand5): Ditto. | |
6075 | (round_saeonly_expand): Update. | |
6076 | ||
6077 | 2018-11-05 Max Filippov <jcmvbkbc@gmail.com> | |
6078 | ||
6079 | * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0. | |
6080 | ||
6081 | 2018-11-05 Segher Boessenkool <segher@kernel.crashing.org> | |
6082 | ||
6083 | PR rtl-optimization/87871 | |
6084 | * combine.c (make_more_copies): Skip if dest is frame_pointer_rtx. | |
6085 | ||
6086 | 2018-11-05 Paul Koning <ni1d@arrl.net> | |
6087 | ||
6088 | * doc/sourcebuild.texi (target attributes): Document new "inf" | |
6089 | effective target keyword. | |
6090 | ||
6091 | 2018-11-05 Robin Dapp <rdapp@linux.ibm.com> | |
6092 | ||
6093 | * config/s390/s390.c (s390_register_move_cost): Increase costs for | |
6094 | moves involving the CC reg. | |
6095 | ||
6096 | 2018-11-05 Richard Biener <rguenther@suse.de> | |
6097 | ||
6098 | PR tree-optimization/87873 | |
6099 | * tree-ssa-loop-manip.h (split_loop_exit_edge): Add copy_constants_p | |
6100 | argument. | |
6101 | * tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise. | |
6102 | * tree-vect-loop.c (vect_transform_loop): When splitting the | |
6103 | loop exit also create forwarder PHIs for constants. | |
6104 | * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): | |
6105 | Handle constant to_arg, add extra checking we match up the correct | |
6106 | PHIs. | |
6107 | ||
6108 | 2018-11-05 Robin Dapp <rdapp@linux.ibm.com> | |
6109 | ||
6110 | * config/s390/s390.md: QImode and HImode for load on condition. | |
6111 | ||
6112 | 2018-11-05 Robin Dapp <rdapp@linux.ibm.com> | |
6113 | ||
6114 | * config/s390/predicates.md: Fix typo. | |
6115 | * config/s390/s390.md: Allow immediates for load on condition. | |
6116 | ||
6117 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6118 | ||
6119 | * alloc-pool.h (struct pool_usage): Use SIZE_AMOUNT. | |
6120 | * bitmap.h (struct bitmap_usage): Likewise. | |
6121 | * ggc-common.c (SCALE): Remove. | |
6122 | (LABEL): Likewise. | |
6123 | (struct ggc_usage): Use SIZE_AMOUNT. And update | |
6124 | compare method. | |
6125 | * ggc-page.c (SCALE): Remove. | |
6126 | (STAT_LABEL): Remove. | |
6127 | (ggc_print_statistics): Use SIZE_AMOUNT. | |
6128 | * gimple.h (SCALE): Remove. | |
6129 | (LABEL): Likewise. | |
6130 | * input.c (ONE_K): Remove. | |
6131 | (ONE_M): Likewise. | |
6132 | (SCALE): Likewise. | |
6133 | (STAT_LABEL): Likewise. | |
6134 | (FORMAT_AMOUNT): Likewise. | |
6135 | (dump_line_table_statistics): Use SIZE_AMOUNT. | |
6136 | * mem-stats.h (struct mem_usage): Likewise. | |
6137 | * rtl.c (dump_rtx_statistics): Likewise. | |
6138 | (rtx_alloc_counts): Change type to size_t. | |
6139 | (rtx_alloc_sizes): Likewise. | |
6140 | (rtx_count_cmp): New. | |
6141 | (dump_rtx_statistics): Sort first based on counts. | |
6142 | * tree.c (tree_nodes_cmp): New. | |
6143 | (tree_codes_cmp): New. | |
6144 | (dump_tree_statistics): Sort first based on counts. | |
6145 | * system.h (ONE_K): New. | |
6146 | (ONE_M): Likewise. | |
6147 | (SIZE_SCALE): Likewise. | |
6148 | (SIZE_LABEL): Likewise. | |
6149 | (SIZE_AMOUNT): Likewise. | |
6150 | * tree-cfg.c (dump_cfg_stats): Use SIZE_AMOUNT. | |
6151 | * tree-dfa.c (dump_dfa_stats): Likewise. | |
6152 | * tree-phinodes.c (phinodes_print_statistics): Likewise. | |
6153 | * tree-ssanames.c (ssanames_print_statistics): Likewise. | |
6154 | * tree.c (dump_tree_statistics): Likewise. | |
6155 | * vec.c (struct vec_usage): Likewise. | |
6156 | * trans-mem.c (tm_mangle): Enlarge buffer in order to not | |
6157 | trigger a -Werror=format-overflow with | |
6158 | --enable-gather-detailed-stats. | |
6159 | ||
6160 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6161 | ||
6162 | * mem-stats.h (mem_alloc_description::release_instance_overhead): | |
6163 | Return T *. | |
6164 | * vec.c (struct vec_usage): Register m_element_size. | |
6165 | (vec_prefix::register_overhead): New arguments: elements and | |
6166 | element_size. | |
6167 | (vec_prefix::release_overhead): Subtract elements. | |
6168 | * vec.h (struct vec_prefix): Change signature. | |
6169 | (va_heap::reserve): Pass proper arguments. | |
6170 | (va_heap::release): Likewise. | |
6171 | ||
6172 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6173 | ||
6174 | * mem-stats.h (mem_alloc_description::get_list): Fix GNU coding | |
6175 | style. | |
6176 | * vec.c: Likewise. | |
6177 | ||
6178 | 2018-11-05 Richard Biener <rguenther@suse.de> | |
6179 | ||
6180 | * tree-scalar-evolution.h (final_value_replacement_loop): Update | |
6181 | prototype. | |
6182 | * tree-scalar-evolution.c (final_value_replacement_loop): Return | |
6183 | whether anything was done. | |
6184 | (scev_const_prop): Remove constant propagation part, fold | |
6185 | remains into ... | |
6186 | * tree-ssa-loop.c (pass_scev_cprop::execute): ... here. | |
6187 | (pass_data_scev_cprop): TODO_cleanup_cfg is now done | |
6188 | conditionally. | |
6189 | ||
6190 | 2018-11-05 Jakub Jelinek <jakub@redhat.com> | |
6191 | ||
6192 | PR tree-optimization/87859 | |
6193 | * gimple-ssa-store-merging.c (struct merged_store_group): Add | |
6194 | only_constants and first_nonmergeable_order members. | |
6195 | (merged_store_group::merged_store_group): Initialize them. | |
6196 | (merged_store_group::do_merge): Clear only_constants member if | |
6197 | adding something other than INTEGER_CST store. | |
6198 | (imm_store_chain_info::coalesce_immediate_stores): Don't merge | |
6199 | stores with order >= first_nonmergeable_order. Use | |
6200 | merged_store->only_constants instead of always recomputing it. | |
6201 | Set merged_store->first_nonmergeable_order if we've skipped any | |
6202 | stores. Attempt to merge overlapping INTEGER_CST stores that | |
6203 | we would otherwise skip. | |
6204 | ||
6205 | PR sanitizer/87837 | |
6206 | * match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED. | |
6207 | ||
6208 | 2018-11-05 Xuepeng Guo <xuepeng.guo@intel.com> | |
6209 | ||
6210 | PR target/87853 | |
6211 | * config/i386/emmintrin.h (__v16qs): New to cope with option | |
6212 | -funsigned-char. | |
6213 | (_mm_cmpeq_epi8): Replace __v16qi with __v16qs. | |
6214 | (_mm_cmplt_epi8): Likewise. | |
6215 | (_mm_cmpgt_epi8): Likewise. | |
6216 | ||
6217 | 2018-11-05 Richard Biener <rguenther@suse.de> | |
6218 | ||
6219 | PR rtl-optimization/87852 | |
6220 | * fwprop.c (use_killed_between): Only consider single-defs of the | |
6221 | use whose definition statement dominates the use. | |
6222 | ||
6223 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6224 | ||
6225 | PR web/87829 | |
6226 | * doc/invoke.texi: Remove options that are | |
6227 | not disabled with -Os. | |
6228 | ||
6229 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6230 | ||
6231 | PR c/87811 | |
6232 | * doc/extend.texi: Update constrain about the last argument | |
6233 | of __builtin_expect_with_probability. | |
6234 | ||
6235 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6236 | ||
6237 | PR c/87811 | |
6238 | * predict.c (expr_expected_value_1): Verify | |
6239 | that last argument is a real constants and emit | |
6240 | error. | |
6241 | ||
6242 | 2018-11-05 Martin Liska <mliska@suse.cz> | |
6243 | ||
6244 | PR gcov-profile/77698 | |
6245 | * ipa-profile.c (ipa_profile): Adjust hotness threshold | |
6246 | only in LTO mode. | |
6247 | ||
6248 | 2018-11-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
6249 | ||
6250 | PR tree-optimization/86572 | |
6251 | * builtins.c (c_strlen): Handle negative offsets in a safe way. | |
6252 | ||
6253 | 2018-11-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
6254 | ||
6255 | PR tree-optimization/87672 | |
6256 | * gimple-fold.c (gimple_fold_builtin_stxcpy_chk): Gimplify. | |
6257 | * tree-ssa-strlen.c (handle_builtin_strcat): Adjust object size. | |
6258 | ||
6259 | 2018-11-04 Uros Bizjak <ubizjak@gmail.com> | |
6260 | ||
6261 | PR middle-end/58372 | |
6262 | * cfgexpand.c (pass_expand::execute): Move the call to | |
6263 | finish_eh_generation in front of the call to expand_stack_alignment. | |
6264 | ||
6265 | 2018-11-04 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
6266 | ||
6267 | * common/config/i386/i386-common.c (processor_alias_table): Add | |
6268 | znver2 entry. | |
6269 | * config.gcc (i[34567]86-*-linux* | ...): Add znver2. | |
6270 | (case ${target}): Add znver2. | |
6271 | * config/i386/driver-i386.c: (host_detect_local_cpu): Let | |
6272 | -march=native recognize znver2 processors. | |
6273 | * config/i386/i386-c.c (ix86_target_macros_internal): Add znver2. | |
6274 | * config/i386/i386.c (m_znver2): New definition. | |
6275 | (m_ZNVER): New definition. | |
6276 | (m_AMD_MULTIPLE): Includes m_znver2. | |
6277 | (processor_cost_table): Add znver2 entry. | |
6278 | (processor_target_table): Add znver2 entry. | |
6279 | (get_builtin_code_for_version): Set priority for | |
6280 | PROCESSOR_ZNVER2. | |
6281 | (processor_model): Add M_AMDFAM17H_ZNVER2. | |
6282 | (arch_names_table): Ditto. | |
6283 | (ix86_reassociation_width): Include znver2. | |
6284 | * config/i386/i386.h (TARGET_znver2): New definition. | |
6285 | (struct ix86_size_cost): Add TARGET_ZNVER2. | |
6286 | (enum processor_type): Add PROCESSOR_ZNVER2. | |
6287 | * config/i386/i386.md (define_attr "cpu"): Add znver2. | |
6288 | * config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs. | |
6289 | * config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2. | |
6290 | (ix86_adjust_cost): Add znver2. | |
6291 | * config/i386/x86-tune.def: Replace m_ZNVER1 by m_ZNVER. | |
6292 | * gcc/doc/extend.texi: Add details about znver2. | |
6293 | * gcc/doc/invoke.texi: Add details about znver2. | |
6294 | ||
6295 | 2018-11-03 Sandra Loosemore <sandra@codesourcery.com> | |
6296 | ||
6297 | PR target/87079 | |
6298 | ||
6299 | * config/nios2/nios2.c (nios2_rtx_costs): Recognize <mul>sidi3 | |
6300 | pattern. | |
6301 | ||
6302 | 2018-11-02 Aaron Sawdey <acsawdey@linux.ibm.com> | |
6303 | ||
6304 | * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Pay | |
6305 | attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN. | |
6306 | ||
6307 | 2018-11-02 Richard Earnshaw <rearnsha@arm.com> | |
6308 | ||
6309 | * config/aarch64/aarch64.c ((aarch64_override_options): Disable | |
6310 | shrink-wrapping when -mtrack-speculation. | |
6311 | ||
6312 | 2018-11-02 Richard Biener <rguenther@suse.de> | |
6313 | ||
6314 | * tree-ssa-coalesce.c (struct coalesce_list): Add obstack member. | |
6315 | (pop_cost_one_pair): Do not free pair. | |
6316 | (pop_best_coalesce): Likewise. | |
6317 | (create_coalesce_list): Initialize obstack. | |
6318 | (delete_coalesce_list): Free obstack. | |
6319 | (find_coalesce_pair): Obstack-allocate coalesce pairs. | |
6320 | (add_cost_one_coalesce): Likewise. | |
6321 | (struct live_track): Remove bitmap pointer indirections. | |
6322 | (new_live_track): Adjust. | |
6323 | (delete_live_track): Likewise. | |
6324 | (live_track_remove_partition): Likewise. | |
6325 | (live_track_add_partition): Likewise. | |
6326 | (live_track_live_p): Likewise. | |
6327 | (live_track_process_def): Likewise. | |
6328 | (live_track_clear_base_vars): Likewise. | |
6329 | ||
6330 | 2018-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
6331 | ||
6332 | * configure.ac (gcc_cv_as_sparc_register_op): Remove. | |
6333 | * configure: Regenerate. | |
6334 | * config.in: Regenerate. | |
6335 | * config/sparc/sparc.c (sparc_output_scratch_registers): Remove | |
6336 | HAVE_AS_REGISTER_PSEUDO_OP guard. | |
6337 | * config/sparc/sparc.h (ASM_ARCH64_SPEC): Remove | |
6338 | !HAVE_AS_REGISTER_PSEUDO_OP support. | |
6339 | (ASM_DECLARE_REGISTER_GLOBAL): Remove HAVE_AS_REGISTER_PSEUDO_OP | |
6340 | guard. | |
6341 | ||
6342 | 2018-11-02 Richard Biener <rguenther@suse.de> | |
6343 | ||
6344 | * dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call | |
6345 | with is_type_die. | |
6346 | ||
6347 | 2018-11-02 Richard Biener <rguenther@suse.de> | |
6348 | ||
6349 | PR tree-optimization/87776 | |
6350 | * tree-ssa-sccvn.c (do_rpo_vn): Do not mark backedges | |
6351 | executable when iterating but running into rpo-vn-max-loop-depth | |
6352 | and not eliding the iteration. | |
6353 | ||
6354 | 2018-11-30 Jan Hubicka <jh@suse.cz> | |
6355 | ||
6356 | * tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of | |
6357 | TYPE_DECL. | |
6358 | ||
6359 | 2018-11-01 Aaron Sawdey <acsawdey@linux.ibm.com> | |
6360 | ||
6361 | * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert): Remove | |
6362 | prototype. | |
6363 | * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): | |
6364 | Combine with rs6000_address_for_fpconvert. | |
6365 | (rs6000_address_for_fpconvert): Combine with | |
6366 | rs6000_force_indexed_or_indirect_mem. | |
6367 | (rs6000_expand_vector_init): Change function call from | |
6368 | rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. | |
6369 | * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Change call from | |
6370 | rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. | |
6371 | (floatsi<mode>2_lfiwax_mem): Ditto. | |
6372 | (floatunssi<mode>2_lfiwzx): Ditto. | |
6373 | (floatunssi<mode>2_lfiwzx_mem): Ditto. | |
6374 | (float<QHI:mode><FP_ISA3:mode>2): Ditto. | |
6375 | (floatuns<QHI:mode><FP_ISA3:mode>2): Ditto. | |
6376 | (fix_trunc<mode>si2_stfiwx): Ditto. | |
6377 | (fixuns_trunc<mode>si2_stfiwx): Ditto. | |
6378 | (float_<mode>si2_hw): Ditto. | |
6379 | (floatuns_<mode>si2_hw): Ditto. | |
6380 | * config/rs6000/vsx.md (*vsx_extract_si): Ditto. | |
6381 | (vsx_splat_<mode>): Ditto. | |
6382 | ||
6383 | 2018-11-01 Joseph Myers <joseph@codesourcery.com> | |
6384 | ||
6385 | * configure.ac (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Add newline | |
6386 | at end of assembler input text. | |
6387 | * configure: Regenerate. | |
6388 | ||
6389 | 2018-11-01 Jakub Jelinek <jakub@redhat.com> | |
6390 | ||
6391 | PR tree-optimization/87826 | |
6392 | * gimple-ssa-store-merging.c (do_shift_rotate): Punt if count is | |
6393 | negative or larger or equal to type's precision. | |
6394 | ||
6395 | 2018-10-31 Alexandre Oliva <aoliva@redhat.com> | |
6396 | ||
6397 | * opts.c (default_options_table): Do not enable | |
6398 | OPT_fdelayed_branch at -Og. | |
6399 | * doc/invoke.texi (-fdelayed-branch): Document it. | |
6400 | ||
6401 | 2018-10-31 Richard Henderson <richard.henderson@linaro.org> | |
6402 | ||
6403 | * optabs-libfuncs.c (build_libfunc_function_visibility): | |
6404 | New, split out from... | |
6405 | (build_libfunc_function): ... here. | |
6406 | (init_one_libfunc_visibility): New, split out from ... | |
6407 | (init_one_libfunc): ... here. | |
6408 | ||
6409 | * config/aarch64/atomics.md (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): | |
6410 | scratch register need not be early-clobber. Document the reason | |
6411 | why we cannot use ST<OP>. | |
6412 | ||
6413 | 2018-10-31 Joseph Myers <joseph@codesourcery.com> | |
6414 | ||
6415 | PR bootstrap/82856 | |
6416 | * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use single | |
6417 | line for second argument of AC_DEFINE_UNQUOTED. | |
6418 | * doc/install.texi (Tools/packages necessary for modifying GCC): | |
6419 | Update to autoconf 2.69 and automake 1.15.1. | |
6420 | * aclocal.m4, config.in, configure: Regenerate. | |
6421 | ||
6422 | 2018-10-31 Pat Haugen <pthaugen@us.ibm.com> | |
6423 | ||
6424 | * tree-ssa-loop-ivcanon.c (try_peel_loop): Fix typo and remove dead | |
6425 | initialization. | |
6426 | ||
6427 | 2018-10-31 Martin Liska <mliska@suse.cz> | |
6428 | ||
6429 | PR driver/83193 | |
6430 | * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): | |
6431 | Add new argument invalid_extension. | |
6432 | (aarch64_get_all_extension_candidates): New function. | |
6433 | (aarch64_rewrite_selected_cpu): Add NULL to function call. | |
6434 | * config/aarch64/aarch64-protos.h (aarch64_parse_extension): Add | |
6435 | new argument. | |
6436 | (aarch64_get_all_extension_candidates): New function. | |
6437 | * config/aarch64/aarch64.c (aarch64_parse_arch): Add new | |
6438 | argument invalid_extension. | |
6439 | (aarch64_parse_cpu): Likewise. | |
6440 | (aarch64_print_hint_for_extensions): New function. | |
6441 | (aarch64_validate_mcpu): Provide hint about invalid extension. | |
6442 | (aarch64_validate_march): Likewise. | |
6443 | (aarch64_handle_attr_arch): Pass new argument. | |
6444 | (aarch64_handle_attr_cpu): Provide hint about invalid extension. | |
6445 | (aarch64_handle_attr_isa_flags): Likewise. | |
6446 | ||
6447 | 2018-10-31 Richard Biener <rguenther@suse.de> | |
6448 | ||
6449 | PR middle-end/70359 | |
6450 | PR middle-end/86270 | |
6451 | * tree-outof-ssa.c (insert_backedge_copies): Restrict | |
6452 | copy generation to useful cases. Place the copy before | |
6453 | the definition of the backedge value when possible. | |
6454 | ||
6455 | 2018-10-31 Claudiu Zissulescu <claziss@synopsys.com> | |
6456 | ||
6457 | * config/arc/arc-arch.h (ARC_TUNE_ARC7XX): New tune value. | |
6458 | * config/arc/arc.c (arc_active_insn): New function. | |
6459 | (check_store_cacheline_hazard): Likewise. | |
6460 | (workaround_arc_anomaly): Use check_store_cacheline_hazard. | |
6461 | (arc_override_options): Disable delay slot scheduler for older | |
6462 | A7. | |
6463 | (arc_store_addr_hazard_p): New implementation, old one renamed to | |
6464 | ... | |
6465 | (arc_store_addr_hazard_internal_p): Renamed. | |
6466 | (arc_reorg): Don't combine into brcc instructions which are part | |
6467 | of hardware hazard solution. | |
6468 | * config/arc/arc.md (attr tune): Consider new arc7xx tune value. | |
6469 | (tune_arc700): Likewise. | |
6470 | * config/arc/arc.opt (arc7xx): New tune value. | |
6471 | * config/arc/arc700.md: Improve A7 scheduler. | |
6472 | ||
6473 | 2018-10-31 Claudiu Zissulescu <claziss@synopsys.com> | |
6474 | ||
6475 | * config/arc/arc.c (arc_override_options): Remove | |
6476 | TARGET_COMPACT_CASESI. | |
6477 | * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Update. | |
6478 | (CASE_VECTOR_MODE): Likewise. | |
6479 | (CASE_VECTOR_PC_RELATIVE): Likewise. | |
6480 | (CASE_VECTOR_SHORTEN_MODE): Likewise. | |
6481 | (CASE_VECTOR_SHORTEN_MODE1): Delete. | |
6482 | (ADDR_VEC_ALIGN): Update. | |
6483 | (ASM_OUTPUT_CASE_LABEL): Undefine. | |
6484 | (ASM_OUTPUT_BEFORE_CASE_LABEL): Undefine. | |
6485 | (TARGET_BI_BIH): Define. | |
6486 | (DEFAULT_BRANCH_INDEX): Likewise. | |
6487 | * config/arc/arc.md (casesi): Rework to accept BI/BIH | |
6488 | instructions, remove compact_casesi use case. | |
6489 | (casesi_compact_jump): Remove. | |
6490 | (casesi_dispatch): New pattern. | |
6491 | * config/arc/arc.opt: Add mbranch-index option. Deprecate | |
6492 | compact_casesi option. | |
6493 | * doc/invoke.texi: Document mbranch-index option. | |
6494 | ||
6495 | 2018-10-31 Claudiu Zissulescu <claziss@synopsys.com> | |
6496 | ||
6497 | * config/arc/arc.c (arc_get_tp): Remove function. | |
6498 | (arc_emit_call_tls_get_addr): Likewise. | |
6499 | (arc_call_tls_get_addr): New function. | |
6500 | (arc_legitimize_tls_address): Make use of arc_call_tls_get_addr. | |
6501 | * config/arc/arc.md (tls_load_tp_soft): Remove. | |
6502 | (tls_gd_get_addr): Likewise. | |
6503 | ||
6504 | 2018-10-31 Claudiu Zissulescu <claziss@synopsys.com> | |
6505 | ||
6506 | * config/arc/arc.md (mulsi3): Remove call to mulsi_600_lib. | |
6507 | (mulsi3_600_lib): Remove pattern. | |
6508 | (umulsi3_highpart_600_lib_le): Likewise. | |
6509 | (umulsi3_highpart): Remove call to umulsi3_highpart_600_lib_le. | |
6510 | (umulsidi3): Remove call to umulsidi3_600_lib. | |
6511 | (umulsidi3_600_lib): Remove pattern. | |
6512 | (peephole2): Remove peephole using the above deprecated patterns. | |
6513 | ||
6514 | 2018-10-31 Thomas Preud'homme <thomas.preudhomme@linaro.org> | |
6515 | ||
6516 | PR target/87374 | |
6517 | * config/arm/arm.c (arm_option_check_internal): Disable the combined | |
6518 | use of -mslow-flash-data and -mword-relocations. | |
6519 | (arm_option_override): Enable -mword-relocations if -fpic or -fPIC. | |
6520 | * config/arm/arm.md (SYMBOL_REF MOVT splitter): Stop checking for | |
6521 | flag_pic. | |
6522 | * doc/invoke.texi (-mword-relocations): Mention conflict with | |
6523 | -mslow-flash-data. | |
6524 | (-mslow-flash-data): Reciprocally. | |
6525 | ||
6526 | 2018-10-31 Richard Henderson <richard.henderson@linaro.org> | |
6527 | ||
6528 | * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force | |
6529 | 16-byte modes held in GP registers to use an even regno. | |
6530 | ||
6531 | * config/aarch64/aarch64.c (aarch64_emit_bic): Remove. | |
6532 | (aarch64_atomic_ldop_supported_p): Remove. | |
6533 | (aarch64_gen_atomic_ldop): Remove. | |
6534 | * config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>): | |
6535 | Fully expand LSE operations here. | |
6536 | (atomic_fetch_<atomic_optab><ALLI>): Likewise. | |
6537 | (atomic_<atomic_optab>_fetch<ALLI>): Likewise. | |
6538 | (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator | |
6539 | and use ATOMIC_LDOP instead; use register_operand for the input; | |
6540 | drop the split and emit insns directly. | |
6541 | (aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise. | |
6542 | (aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove. | |
6543 | (@aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove. | |
6544 | ||
6545 | * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove. | |
6546 | (aarch64_gen_atomic_ldop): Don't call it. | |
6547 | * config/aarch64/atomics.md (atomic_exchange<ALLI>): | |
6548 | Use aarch64_reg_or_zero. | |
6549 | (aarch64_atomic_exchange<ALLI>): Likewise. | |
6550 | (aarch64_atomic_exchange<ALLI>_lse): Remove split; remove & from | |
6551 | operand 0; use aarch64_reg_or_zero for input; merge ... | |
6552 | (@aarch64_atomic_swp<ALLI>): ... this and remove. | |
6553 | ||
6554 | * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New. | |
6555 | (aarch64_split_compare_and_swap): Use it. | |
6556 | (aarch64_expand_compare_and_swap): Likewise. Remove convert_modes; | |
6557 | test oldval against the proper predicate. | |
6558 | * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI>): | |
6559 | Use nonmemory_operand for expected. | |
6560 | (cas_short_expected_pred): New. | |
6561 | (@aarch64_compare_and_swap<SHORT>): Use it; use "rn" not "rI" to match. | |
6562 | (@aarch64_compare_and_swap<GPI>): Use "rn" not "rI" for expected. | |
6563 | * config/aarch64/predicates.md (aarch64_plushi_immediate): New. | |
6564 | (aarch64_plushi_operand): New. | |
6565 | ||
6566 | * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): | |
6567 | Force oldval into the rval register for TARGET_LSE; emit the compare | |
6568 | during initial expansion so that it may be deleted if unused. | |
6569 | (aarch64_gen_atomic_cas): Remove. | |
6570 | * config/aarch64/atomics.md (@aarch64_compare_and_swap<SHORT>_lse): | |
6571 | Change =&r to +r for operand 0; use match_dup for operand 2; | |
6572 | remove is_weak and mod_f operands as unused. Drop the split | |
6573 | and merge with... | |
6574 | (@aarch64_atomic_cas<SHORT>): ... this pattern's output; remove. | |
6575 | (@aarch64_compare_and_swap<GPI>_lse): Similarly. | |
6576 | (@aarch64_atomic_cas<GPI>): Similarly. | |
6577 | ||
6578 | 2018-10-31 Richard Biener <rguenther@suse.de> | |
6579 | ||
6580 | * tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case | |
6581 | using ABSU_EXPR. | |
6582 | ||
6583 | 2018-10-31 Sameera Deshpande <sameera.deshpande@linaro.org> | |
6584 | ||
6585 | * config/aarch64/aarch64-cores.def (saphira): Use saphira pipeline. | |
6586 | * config/aarch64/aarch64.md: Include saphira.md | |
6587 | * config/aarch64/saphira.md: New file for pipeline description. | |
6588 | ||
6589 | 2018-10-30 Martin Sebor <msebor@redhat.com> | |
6590 | ||
6591 | PR middle-end/87041 | |
6592 | * gimple-ssa-sprintf.c (format_directive): Use %G to include | |
6593 | inlining context. | |
6594 | (sprintf_dom_walker::compute_format_length): | |
6595 | Avoid setting POSUNDER4K here. | |
6596 | (get_destination_size): Handle null argument values. | |
6597 | (get_user_idx_format): New function. | |
6598 | (sprintf_dom_walker::handle_gimple_call): Handle all printf-like | |
6599 | functions, including user-defined with attribute format printf. | |
6600 | Use %G to include inlining context. | |
6601 | Set POSUNDER4K here. | |
6602 | ||
6603 | 2018-10-30 Jan Hubicka <jh@suse.cz> | |
6604 | ||
6605 | * params.def (lto-partitions): Bump from 32 to 128. | |
6606 | ||
6607 | 2018-10-30 Jan Hubicka <jh@suse.cz> | |
6608 | ||
6609 | * tree.c | |
6610 | (free_lang_data_d, add_tree_to_fld_list, fld_worklist_push): Move | |
6611 | head in file. | |
6612 | (free_lang_data_in_type): Forward declare. | |
6613 | (fld_type_variant_equal_p): New function. | |
6614 | (fld_type_variant): New function | |
6615 | (fld_incomplete_types): New hash. | |
6616 | (fld_incomplete_type_of): New function | |
6617 | (fld_simplfied-type): New function. | |
6618 | (free_lang_data_in_decl): Add fld parameter; simplify type of FIELD_DECL | |
6619 | (free_lang_data): Allocate and free fld_incomplete_type; update call | |
6620 | of free_lang_data_in_decl. | |
6621 | ||
6622 | 2018-10-30 Eric Botcazou <ebotcazou@adacore.com> | |
6623 | ||
6624 | * gcov.c (output_lines): Remove duplicate line. | |
6625 | ||
6626 | 2018-10-30 Aaron Sawdey <acsawdey@linux.ibm.com> | |
6627 | ||
6628 | * config/rs6000/rs6000.md (bswapdi2): Force address into register | |
6629 | if not in indexed or indirect form. | |
6630 | (bswapdi2_load): Change predicate to indexed_or_indirect_operand. | |
6631 | (bswapdi2_store): Ditto. | |
6632 | * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): New | |
6633 | helper function. | |
6634 | * config/rs6000/rs6000-protos.h (rs6000_force_indexed_or_indirect_mem): | |
6635 | Prototype for helper function. | |
6636 | ||
6637 | 2018-10-30 Martin Sebor <msebor@redhat.com> | |
6638 | ||
6639 | * doc/extend.texi (optimize): Clarify/expand attribute documentation. | |
6640 | (target, pragma GCC optimize, pragma GCC target): Ditto. | |
6641 | ||
6642 | 2018-10-30 Jonathan Wakely <jwakely@redhat.com> | |
6643 | ||
6644 | * doc/extend.texi: Fix prototype and description of | |
6645 | __builtin_expect_with_probability. | |
6646 | ||
6647 | 2018-10-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
6648 | ||
6649 | * cgraph.h (clone_function_name_1): Replaced by new | |
6650 | clone_function_name_numbered that takes name as string; for | |
6651 | privatize_symbol_name_1 use only. | |
6652 | (clone_function_name): Renamed to | |
6653 | clone_function_name_numbered to be explicit about numbering. | |
6654 | (clone_function_name): New two-argument function that does | |
6655 | not number its output. | |
6656 | (clone_function_name): New three-argument function that | |
6657 | takes a number to append to its output. | |
6658 | * cgraphclones.c (duplicate_thunk_for_node): | |
6659 | (clone_function_name_1): Renamed. | |
6660 | (clone_function_name_numbered): Two new functions. | |
6661 | (clone_function_name): Improved documentation. | |
6662 | (cgraph_node::create_virtual_clone): Use clone_function_name_numbered. | |
6663 | * config/rs6000/rs6000.c (make_resolver_func): Ditto. | |
6664 | * final.c (final_scan_insn_1): Use the new clone_function_name | |
6665 | without numbering. | |
6666 | * multiple_target.c (create_dispatcher_calls): Ditto. | |
6667 | (create_target_clone): Ditto. | |
6668 | * omp-expand.c (grid_expand_target_grid_body): Ditto. | |
6669 | * omp-low.c (create_omp_child_function_name): Ditto. | |
6670 | * omp-simd-clone.c (simd_clone_create): Ditto. | |
6671 | * symtab.c (simd_symtab_node::noninterposable_alias): Use the | |
6672 | new clone_function_name without numbering. | |
6673 | ||
6674 | 2018-10-30 Richard Earnshaw <rearnsha@arm.com> | |
6675 | ||
6676 | * alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize): | |
6677 | Assert that the allocation size is not zero. | |
6678 | ||
6679 | 2018-10-30 Richard Biener <rguenther@suse.de> | |
6680 | ||
6681 | PR tree-optimization/87800 | |
6682 | * tree-vect-slp.c (vect_build_slp_tree_2): Reject any | |
6683 | non-induction or reduction PHIs. | |
6684 | ||
6685 | 2018-10-30 Sameera Deshpande <sameera.deshpande@linaro.org> | |
6686 | ||
6687 | * config/aarch64/falkor-tag-collision-avoidance.c | |
6688 | (execute_tag_collision_avoidance): Call df_note_add_problem. | |
6689 | ||
6690 | 2018-10-30 Martin Liska <mliska@suse.cz> | |
6691 | ||
6692 | * doc/extend.texi: Fix typo in documentation | |
6693 | of __builtin_expect_with_probability. | |
6694 | ||
6695 | 2018-10-29 David Malcolm <dmalcolm@redhat.com> | |
6696 | ||
6697 | PR c++/87721 | |
6698 | * input.c (get_substring_ranges_for_loc): Detect if | |
6699 | linemap_resolve_location gives us a NULL map, and reject | |
6700 | this case. | |
6701 | ||
6702 | 2018-10-29 Iain Buclaw <ibuclaw@gdcproject.org> | |
6703 | ||
6704 | * config.gcc (xstormy16-*-elf): Set tm_d_file. | |
6705 | ||
6706 | 2018-10-29 David Malcolm <dmalcolm@redhat.com> | |
6707 | Martin Sebor <msebor@redhat.com> | |
6708 | Manuel Lopez-Ibanez <manu@gcc.gnu.org> | |
6709 | ||
6710 | * doc/ux.texi (Quoting): New subsection, adapted from material at | |
6711 | https://gcc.gnu.org/wiki/DiagnosticsGuidelines written by | |
6712 | MartinSebor and ManuelLopezIbanez. | |
6713 | (Fix-it hints): Note that fix-it hints shouldn't be marked for | |
6714 | translation. | |
6715 | ||
6716 | 2018-10-29 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6717 | ||
6718 | PR middle-end/87469 | |
6719 | * tree-ssa-loop-niter.c (number_of_iterations_popcount): Fix niter | |
6720 | max value. | |
6721 | ||
6722 | 2018-10-29 Paul A. Clarke <pc@us.ibm.com> | |
6723 | ||
6724 | * gcc.target/powerpc/ssse3-check.h: Remove inaccurate comment. | |
6725 | ||
6726 | 2018-10-29 Paul Koning <ni1d@arrl.net> | |
6727 | ||
6728 | * doc/rtl.texi (CONST_WIDE_INT_ELT): Give correct macro name. | |
6729 | ||
6730 | 2018-10-29 Paul A. Clarke <pc@us.ibm.com> | |
6731 | ||
6732 | * gcc/config/rs6000/mmintrin.h (_mm_packs_pi16, _mm_packs_pi32, | |
6733 | _mm_packs_pu16, _mm_unpackhi_pi8, _mm_unpacklo_pi8, _mm_add_pi8, | |
6734 | _mm_add_pi16, _mm_add_pi32, _mm_sub_pi8, _mm_sub_pi16, _mm_sub_pi32, | |
6735 | _mm_cmpgt_pi8, _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, | |
6736 | _mm_cmpgt_pi32, _mm_adds_pi8, _mm_adds_pi16, _mm_adds_pu8, | |
6737 | _mm_adds_pu16, _mm_subs_pi8, _mm_subs_pi16, _mm_subs_pu8, | |
6738 | _mm_subs_pu16, _mm_madd_pi16, _mm_mulhi_pi16, _mm_mullo_pi16, | |
6739 | _mm_sll_pi16, _mm_sra_pi16, _mm_srl_pi16, _mm_set1_pi16, _mm_set1_pi8): | |
6740 | Change 'vector' to '__vector'. | |
6741 | * gcc/config/rs6000/xmmintrin.h (_mm_cvtps_pi32, _mm_cvttps_pi32, | |
6742 | _mm_cvtps_pi16, _mm_cvtps_pi8, _mm_max_pi16, _mm_max_pu8, _mm_min_pi16, | |
6743 | _mm_min_pu8, _mm_mulhi_pu16, _mm_shuffle_pi16, _mm_avg_pu8, | |
6744 | _mm_avg_pu16): Likewise. And, whitespace corrections. | |
6745 | ||
6746 | 2018-10-29 Richard Biener <rguenther@suse.de> | |
6747 | ||
6748 | PR tree-optimization/87785 | |
6749 | * tree-vect-slp.c (vect_gather_slp_loads): Only gather | |
6750 | internal defs. | |
6751 | ||
6752 | 2018-10-29 Olivier Hainque <hainque@adacore.com> | |
6753 | ||
6754 | * VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP. | |
6755 | ||
6756 | 2018-10-29 Olivier Hainque <hainque@adacore.com> | |
6757 | ||
6758 | * config/vxworks.h (VXWORKS_PERSONALITY): New VxWorks | |
6759 | ports configuration macro, defaults to "gnu". | |
6760 | (VXWORKS_OS_CPP_BUILTINS): Use it. Feed TOOL and | |
6761 | TOOL_FAMILY instead of _VX_TOOL/_VXTOOL_FAMILY. | |
6762 | ||
6763 | 2018-10-29 Olivier Hainque <hainque@adacore.com> | |
6764 | ||
6765 | * config/vxworks.h (CLEAR_INSN_CACHE): #undef before #define. | |
6766 | ||
6767 | 2018-10-29 Richard Biener <rguenther@suse.de> | |
6768 | ||
6769 | PR tree-optimization/87790 | |
6770 | * tree-vect-slp.c (vect_mark_slp_stmts): Simplify. | |
6771 | (vect_make_slp_decision): Adjust. | |
6772 | (vect_slp_analyze_bb_1): Likewise. | |
6773 | (vect_detect_hybrid_slp_stmts): Properly union SLP type over | |
6774 | edges. | |
6775 | ||
6776 | 2018-10-29 Richard Biener <rguenther@suse.de> | |
6777 | ||
6778 | PR tree-optimization/87785 | |
6779 | * tree-vect-slp.c (vect_build_slp_tree_2): Remove loads argument | |
6780 | and processing. | |
6781 | (vect_build_slp_tree): Likewise. | |
6782 | (vect_gather_slp_loads): New function. | |
6783 | (vect_analyze_slp_instance): Gather loads separately from the | |
6784 | SLP tree build. | |
6785 | ||
6786 | 2018-10-29 Martin Liska <mliska@suse.cz> | |
6787 | ||
6788 | * Makefile.in: Make dependency to json.o. | |
6789 | * doc/gcov.texi: Document new JSON format, remove | |
6790 | old intermediate format documentation. | |
6791 | * gcov.c (struct function_info): Come up with m_name and | |
6792 | m_demangled_name. | |
6793 | (function_info::function_info): Initialize it. | |
6794 | (function_info::~function_info): Release it. | |
6795 | (main): Rename flag_intermediate_format to flag_json_format. | |
6796 | (print_usage): Describe --json-format. | |
6797 | (process_args): Set flag_json_format. | |
6798 | (output_intermediate_line): Remove. | |
6799 | (output_intermediate_json_line): Likewise. | |
6800 | (get_gcov_intermediate_filename): Return new extension | |
6801 | ".gcov.json.gz". | |
6802 | (output_intermediate_file): Implement JSON emission. | |
6803 | (output_json_intermediate_file): Implement JSON emission. | |
6804 | (generate_results): Use ::get_name for function name. | |
6805 | Handle JSON output file. | |
6806 | (read_graph_file): Use ::get_name instead of cplus_demangle. | |
6807 | (read_count_file): Likewise. | |
6808 | (solve_flow_graph): Likewise. | |
6809 | (add_line_counts): Likewise. | |
6810 | (accumulate_line_counts): Use new flag_json_format. | |
6811 | (output_function_details): Use ::get_name instead of cplus_demangle. | |
6812 | (output_lines): Likewise. | |
6813 | * json.cc (test_writing_literals): Add new tests. | |
6814 | * json.h (class literal): Add new boolean constructor. | |
6815 | ||
6816 | 2018-10-29 Segher Boessenkool <segher@kernel.crashing.org> | |
6817 | ||
6818 | PR rtl-optimization/87701 | |
6819 | PR rtl-optimization/87780 | |
6820 | * combine.c (make_more_copies): Rewrite. | |
6821 | ||
6822 | 2018-10-28 Kugan Vivekanandarajah <kuganv@linaro.org> | |
6823 | ||
6824 | * doc/generic.texi (ABSU_EXPR): Document. | |
6825 | * match.pd (absu(x)*absu(x) -> x*x): Handle. | |
6826 | (absu(absu(X)) -> absu(X)): Likewise. | |
6827 | (absu(-X) -> absu(X)): Likewise. | |
6828 | (absu(X) where X is nonnegative -> X): Likewise. | |
6829 | ||
6830 | 2018-10-28 Iain Buclaw <ibuclaw@gdcproject.org> | |
6831 | ||
6832 | * Makefile.in (tm_d_file_list, tm_d_include_list): New variables. | |
6833 | (TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables. | |
6834 | (tm_d.h, cs-tm_d.h, default-d.o): New rules. | |
6835 | (d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules. | |
6836 | (s-tm-texi): Also check timestamp on d-target.def. | |
6837 | (generated_files): Add TM_D_H and d-target-hooks-def.h. | |
6838 | (build/genhooks.o): Also depend on D_TARGET_DEF. | |
6839 | * config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New | |
6840 | variables. | |
6841 | * config/aarch64/aarch64-d.c: New file. | |
6842 | * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): | |
6843 | Define. | |
6844 | * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New | |
6845 | prototype. | |
6846 | * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define. | |
6847 | * config/aarch64/t-aarch64 (aarch64-d.o): New rule. | |
6848 | * config/arm/arm-d.c: New file. | |
6849 | * config/arm/arm-protos.h (arm_d_target_versions): New prototype. | |
6850 | * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define. | |
6851 | * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define. | |
6852 | * config/arm/t-arm (arm-d.o): New rule. | |
6853 | * config/default-d.c: New file. | |
6854 | * config/glibc-d.c: New file. | |
6855 | * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6856 | * config/i386/i386-d.c: New file. | |
6857 | * config/i386/i386-protos.h (ix86_d_target_versions): New prototype. | |
6858 | * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define. | |
6859 | * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. | |
6860 | (GNU_USER_TARGET_D_CRITSEC_SIZE): Define. | |
6861 | * config/i386/t-i386 (i386-d.o): New rule. | |
6862 | * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6863 | * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6864 | * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define. | |
6865 | * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6866 | * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. | |
6867 | * config/mips/mips-d.c: New file. | |
6868 | * config/mips/mips-protos.h (mips_d_target_versions): New prototype. | |
6869 | * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define. | |
6870 | * config/mips/t-mips (mips-d.o): New rule. | |
6871 | * config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6872 | * config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6873 | * config/powerpcspe/powerpcspe-d.c: New file. | |
6874 | * config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions): | |
6875 | New prototype. | |
6876 | * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): | |
6877 | Support GNU D by using 0 as the language type. | |
6878 | * config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define. | |
6879 | * config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule. | |
6880 | * config/riscv/riscv-d.c: New file. | |
6881 | * config/riscv/riscv-protos.h (riscv_d_target_versions): New | |
6882 | prototype. | |
6883 | * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define. | |
6884 | * config/riscv/t-riscv (riscv-d.o): New rule. | |
6885 | * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6886 | * config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. | |
6887 | * config/rs6000/rs6000-d.c: New file. | |
6888 | * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New | |
6889 | prototype. | |
6890 | * config/rs6000/rs6000.c (rs6000_output_function_epilogue): | |
6891 | Support GNU D by using 0 as the language type. | |
6892 | * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define. | |
6893 | * config/rs6000/t-rs6000 (rs6000-d.o): New rule. | |
6894 | * config/s390/s390-d.c: New file. | |
6895 | * config/s390/s390-protos.h (s390_d_target_versions): New prototype. | |
6896 | * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define. | |
6897 | * config/s390/t-s390 (s390-d.o): New rule. | |
6898 | * config/sparc/sparc-d.c: New file. | |
6899 | * config/sparc/sparc-protos.h (sparc_d_target_versions): New | |
6900 | prototype. | |
6901 | * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define. | |
6902 | * config/sparc/t-sparc (sparc-d.o): New rule. | |
6903 | * config/t-glibc (glibc-d.o): New rule. | |
6904 | * configure: Regenerated. | |
6905 | * configure.ac (tm_d_file): New variable. | |
6906 | (tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes. | |
6907 | * doc/contrib.texi (Contributors): Add self for the D frontend. | |
6908 | * doc/frontends.texi (G++ and GCC): Mention D as a supported language. | |
6909 | * doc/install.texi (Configuration): Mention libphobos as an option for | |
6910 | --enable-shared. Mention d as an option for --enable-languages. | |
6911 | (Testing): Mention check-d as a target. | |
6912 | * doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file | |
6913 | name suffixes. Mention d as a -x option. | |
6914 | * doc/sourcebuild.texi (Top Level): Mention libphobos. | |
6915 | * doc/standards.texi (Standards): Add section on D language. | |
6916 | * doc/tm.texi: Regenerated. | |
6917 | * doc/tm.texi.in: Add @node for D language and ABI, and @hook for | |
6918 | TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE. | |
6919 | * dwarf2out.c (is_dlang): New function. | |
6920 | (gen_compile_unit_die): Use DW_LANG_D for D. | |
6921 | (declare_in_namespace): Return module die for D, instead of adding | |
6922 | extra declarations into the namespace. | |
6923 | (gen_namespace_die): Generate DW_TAG_module for D. | |
6924 | (gen_decl_die): Handle CONST_DECLSs for D. | |
6925 | (dwarf2out_decl): Likewise. | |
6926 | (prune_unused_types_walk_local_classes): Handle DW_tag_interface_type. | |
6927 | (prune_unused_types_walk): Handle DW_tag_interface_type same as other | |
6928 | kinds of aggregates. | |
6929 | * gcc.c (default_compilers): Add entries for .d, .dd and .di. | |
6930 | * genhooks.c: Include d/d-target.def. | |
6931 | ||
6932 | 2018-10-28 Iain Sandoe <iain@sandoe.co.uk> | |
6933 | ||
6934 | PR target/85669 | |
6935 | * config/rs6000/darwin.h (STACK_BOUNDARY): New. | |
6936 | (RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment. | |
6937 | (STACK_DYNAMIC_OFFSET): Likewise. | |
6938 | ||
6939 | 2018-10-27 Sandra Loosemore <sandra@codesourcery.com> | |
6940 | ||
6941 | PR target/80024 | |
6942 | * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix | |
6943 | error message. | |
6944 | ||
6945 | 2018-10-26 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> | |
6946 | ||
6947 | * doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128 | |
6948 | return type and other typos. | |
6949 | ||
6950 | 2018-10-26 Aaron Sawdey <acsawdey@linux.ibm.com> | |
6951 | ||
6952 | * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to | |
6953 | a shorter sequence with fewer branches. | |
6954 | (emit_final_str_compare_gpr): Ditto. | |
6955 | ||
6956 | 2018-10-26 Paul A. Clarke <pc@us.ibm.com> | |
6957 | ||
6958 | * config/rs6000/tmmintrin.h: New file. | |
6959 | * config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers. | |
6960 | ||
6961 | 2018-10-26 Paul A. Clarke <pc@us.ibm.com> | |
6962 | ||
6963 | * config/rs6000/mmintrin.h: Enable 32bit compilation. | |
6964 | * config/rs6000/xmmintrin.h: Likewise. | |
6965 | ||
6966 | 2018-10-26 Paul A. Clarke <pc@us.ibm.com> | |
6967 | ||
6968 | * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian. | |
6969 | ||
6970 | 2018-10-26 Richard Biener <rguenther@suse.de> | |
6971 | ||
6972 | * tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set | |
6973 | and wrapper. | |
6974 | (vect_mark_slp_stmts_relevant): Likewise. | |
6975 | (vect_detect_hybrid_slp_stmts): Likewise. | |
6976 | (vect_bb_slp_scalar_cost): Likewise. | |
6977 | (vect_remove_slp_scalar_calls): Likewise. | |
6978 | ||
6979 | 2018-10-26 Jan Hubicka <jh@suse.cz> | |
6980 | ||
6981 | * ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion. | |
6982 | (warn_types_mismatch): Fix walk of DECL_NAME. | |
6983 | (odr_types_equivalent_p): Fix overactive assert. | |
6984 | ||
6985 | 2018-10-26 Richard Biener <rguenther@suse.de> | |
6986 | ||
6987 | PR tree-optimization/87105 | |
6988 | * tree-vectorizer.h (_slp_tree::refcnt): New member. | |
6989 | * tree-vect-slp.c (vect_free_slp_tree): Decrement and honor | |
6990 | refcnt. | |
6991 | (vect_create_new_slp_node): Initialize refcnt to one. | |
6992 | (bst_traits): Move. | |
6993 | (scalar_stmts_set_t, bst_fail): Remove. | |
6994 | (vect_build_slp_tree_2): Add bst_map argument and adjust calls. | |
6995 | (vect_build_slp_tree): Add bst_map argument and lookup | |
6996 | already created SLP nodes. | |
6997 | (vect_print_slp_tree): Handle a SLP graph, print SLP node | |
6998 | addresses. | |
6999 | (vect_slp_rearrange_stmts): Handle a SLP graph. | |
7000 | (vect_analyze_slp_instance): Adjust and free SLP nodes from | |
7001 | the CSE map. Fix indenting. | |
7002 | (vect_schedule_slp_instance): Add short-cut. | |
7003 | ||
7004 | 2018-10-26 Martin Liska <mliska@suse.cz> | |
7005 | ||
7006 | PR testsuite/86158 | |
7007 | * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with | |
7008 | addr_expr and not with pointers. | |
7009 | ||
7010 | 2018-10-26 Jan Hubicka <jh@suse.cz> | |
7011 | ||
7012 | * tree.c (free_lang_data_in_type): Only check main variants. | |
7013 | * ipa-devirt.c (warn_odr): Make static. | |
7014 | (types_same_for_odr): Drop strict variant. | |
7015 | (types_odr_comparable): Likewise. | |
7016 | (odr_or_derived_type_p): Look for main variants. | |
7017 | (odr_name_hasher::equal): Cleanup comment. | |
7018 | (odr_subtypes_equivalent): Add warn and warned arguments; check main | |
7019 | variants. | |
7020 | (type_variants_equivalent_p): break out from ... | |
7021 | (odr_types_equivalent): ... here; go for main variants where needed. | |
7022 | (warn_odr): ... here; turn static. | |
7023 | (warn_types_mismatch): Compare mangled names of main variants. | |
7024 | * ipa-utils.h (types_odr_comparable): Drop strict parameter. | |
7025 | (type_with_linkage_p): Sanity check that we look at main variant. | |
7026 | * lto.c (lto_read_decls): Only consider main variant to be ODR type. | |
7027 | * tree.h (types_same_for_odr): Drop strict argument. | |
7028 | ||
7029 | 2018-10-26 Richard Biener <rguenther@suse.de> | |
7030 | ||
7031 | PR tree-optimization/87746 | |
7032 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel): | |
7033 | Simplify and fix WRT strided store groups with size not | |
7034 | equal to step in element count. | |
7035 | (vect_analyze_group_access_1): Dump the whole group. | |
7036 | ||
7037 | 2018-10-25 Carl Love <cel@us.ibm.com> | |
7038 | ||
7039 | * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, | |
7040 | P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ, | |
7041 | P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name. Add quad | |
7042 | precicion entry for each overloaded builtin. | |
7043 | * config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ, | |
7044 | VSCEDPUO): Rename overloaded name. | |
7045 | (VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ, | |
7046 | VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins. | |
7047 | * config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add | |
7048 | define_expand for xscmpexqp instruction. | |
7049 | (*xscmpexpqp): Add define_insn for the xscmpexqp instruction. | |
7050 | ||
7051 | 2018-10-25 Bill Schmidt <wschmidt@linux.ibm.com> | |
7052 | Jinsong Ji <jji@us.ibm.com> | |
7053 | ||
7054 | * config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated | |
7055 | function with vec_sl. | |
7056 | (_mm_slli_epi32): Likewise. | |
7057 | (_mm_slli_epi64): Likewise. | |
7058 | (_mm_srai_epi16): Replace deprecated function with vec_sra. | |
7059 | (_mm_srai_epi32): Likewise. | |
7060 | (_mm_srli_epi16): Replace deprecated function with vec_sr. | |
7061 | (_mm_srli_epi32): Likewise. | |
7062 | (_mm_srli_epi64): Likewise. | |
7063 | (_mm_sll_epi16): Replace deprecated function with vec_sl. | |
7064 | (_mm_sll_epi32): Likewise. | |
7065 | (_mm_sll_epi64): Likewise. | |
7066 | (_mm_sra_epi16): Replace deprecated function with vec_sra. | |
7067 | (_mm_sra_epi32): Likewise. | |
7068 | (_mm_srl_epi16): Replace deprecated function with vec_sr. | |
7069 | (_mm_srl_epi32): Likewise. | |
7070 | (_mm_srl_epi64): Likewise. | |
7071 | ||
7072 | 2018-10-25 Bill Schmidt <wschmidt@linux.ibm.com> | |
7073 | Jinsong Ji <jji@us.ibm.com> | |
7074 | ||
7075 | * gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace | |
7076 | comparison operators with vec_cmp* for compatibility due to | |
7077 | unfortunate history; clean up formatting and use types more | |
7078 | appropriately. | |
7079 | (_mm_sll_epi32): Likewise. | |
7080 | (_mm_sll_epi64): Likewise. | |
7081 | (_mm_srl_epi16): Likewise. | |
7082 | (_mm_srl_epi32): Likewise. | |
7083 | (_mm_srl_epi64): Likewise. | |
7084 | ||
7085 | 2018-10-25 Bill Schmidt <wschmidt@linux.ibm.com> | |
7086 | Jinsong Ji <jji@us.ibm.com> | |
7087 | ||
7088 | * config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast. | |
7089 | * config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to | |
7090 | __vector __bool int. Use vec_cmpgt in preference to deprecated | |
7091 | function vec_vcmpgtfp. | |
7092 | (_mm_max_ps): Likewise. | |
7093 | ||
7094 | 2018-10-25 Jeff Law <law@redhat.com> | |
7095 | ||
7096 | * config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn | |
7097 | if returning false. | |
7098 | ||
7099 | 2018-10-25 Martin Sebor <msebor@redhat.com> | |
7100 | ||
7101 | * doc/extend.texi (aligned): Expand attribute description. | |
7102 | (Alignment): Rename section. Discuss function arguments. | |
7103 | ||
7104 | 2018-10-25 Jan Hubicka <jh@suse.cz> | |
7105 | ||
7106 | * ipa-devirt.c (main_odr_variant): Remove. | |
7107 | (hash_odr_name, types_same_for_odr, types_odr_comparable, | |
7108 | odr_name_hasher::equal, odr_subtypes_equivalent_p): | |
7109 | Drop use of main_odr_variant. | |
7110 | (add_type_duplicate): Silence confused warnings on integer types. | |
7111 | (get_odr_type): Always look for main variant. | |
7112 | (register_odr_type): Simplify. | |
7113 | ||
7114 | 2018-10-25 Richard Biener <rguenther@suse.de> | |
7115 | ||
7116 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): | |
7117 | Initialize ng to silence error with release checking bootstrap. | |
7118 | ||
7119 | 2018-10-25 Richard Biener <rguenther@suse.de> | |
7120 | ||
7121 | * tree-if-conv.c: Include tree-ssa-sccvn.h. | |
7122 | (tree_if_conversion): Run CSE on the if-converted loop body. | |
7123 | ||
7124 | 2018-10-25 Ilya Leoshkevich <iii@linux.ibm.com> | |
7125 | ||
7126 | * config/s390/constraints.md (ZL): New constraint. | |
7127 | * config/s390/s390.c (legitimate_pic_operand_p): Accept LARL | |
7128 | operands. | |
7129 | * config/s390/s390.md (movdi_larl): Remove. | |
7130 | (movdi_64): Add the LARL alternative. | |
7131 | ||
7132 | 2018-10-25 Ilya Leoshkevich <iii@linux.ibm.com> | |
7133 | ||
7134 | PR bootstrap/87747 | |
7135 | * rtl.c (RTX_CODE_HWINT_P_1): New helper macro. | |
7136 | (RTX_CODE_HWINT_P): New macro. | |
7137 | (rtx_code_size): Use RTX_CODE_HWINT_P (). | |
7138 | ||
7139 | 2018-10-25 Jan Hubicka <jh@suse.cz> | |
7140 | ||
7141 | * ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types | |
7142 | is anonymous. | |
7143 | ||
7144 | 2018-10-25 Richard Biener <rguenther@suse.de> | |
7145 | ||
7146 | PR tree-optimization/87665 | |
7147 | PR tree-optimization/87745 | |
7148 | * tree-vectorizer.h (get_earlier_stmt): Remove. | |
7149 | (get_later_stmt): Pick up UID from the original non-pattern stmt. | |
7150 | ||
7151 | 2018-10-25 Sam Tebbs <sam.tebbs@arm.com> | |
7152 | ||
7153 | * options.texi (Deprecated): Move list to Var section. | |
7154 | ||
7155 | 2018-10-24 Bill Schmidt <wschmidt@linux.ibm.com> | |
7156 | Jinsong Ji <jji@us.ibm.com> | |
7157 | ||
7158 | * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated | |
7159 | __vector long to __vector long long. | |
7160 | (_mm_cvtpd_ps): Likewise. | |
7161 | (_mm_cvttpd_epi32): Likewise. | |
7162 | (_mm_cvtpi32_pd): Likewise. | |
7163 | (_mm_unpackhi_epi64): Likewise. | |
7164 | (_mm_unpacklo_epi64): Likewise. | |
7165 | ||
7166 | 2018-10-24 Segher Boessenkool <segher@kernel.crashing.org> | |
7167 | ||
7168 | PR rtl-optimization/87720 | |
7169 | * combine.c (make_more_copies): Skip if the dest is pc_rtx. | |
7170 | ||
7171 | 2018-10-24 Alexandre Oliva <aoliva@redhat.com> | |
7172 | ||
7173 | * gimple-ssa-isolate-paths.c | |
7174 | (find_implicit_erroneous_behavior): Do not change code if the | |
7175 | pass is running for warnings only. | |
7176 | (find_explicit_erroneous_behavior): Likewise. | |
7177 | ||
7178 | 2018-10-24 Michael Meissner <meissner@linux.ibm.com> | |
7179 | ||
7180 | * config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): | |
7181 | Define as rs6000_mangle_decl_assembler_name. | |
7182 | (rs6000_mangle_decl_assembler_name): If the user switched from IBM | |
7183 | long double to IEEE long double, switch the names of the long | |
7184 | double built-in functions to be <func>f128 instead of <func>l. | |
7185 | ||
7186 | 2018-10-24 Martin Sebor <msebor@redhat.com> | |
7187 | ||
7188 | * doc/extend.texi (nonnull): List no-argument form. Reference | |
7189 | -fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute. | |
7190 | ||
7191 | 2018-10-24 Richard Biener <rguenther@suse.de> | |
7192 | ||
7193 | * tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. | |
7194 | ||
7195 | 2018-10-24 Martin Liska <mliska@suse.cz> | |
7196 | ||
7197 | PR tree-optimization/84436 | |
7198 | * tree-switch-conversion.c (switch_conversion::contains_same_values_p): | |
7199 | Remove. | |
7200 | (switch_conversion::contains_linear_function_p): New. | |
7201 | (switch_conversion::build_one_array): Support linear | |
7202 | transformation on input. | |
7203 | * tree-switch-conversion.h (struct switch_conversion): Add | |
7204 | contains_linear_function_p declaration. | |
7205 | ||
7206 | 2018-10-24 Richard Biener <rguenther@suse.de> | |
7207 | ||
7208 | * varasm.c (const_hash_1): Return hash of ADDR_EXPR | |
7209 | if its argument is CONSTANT_CLASS_P. | |
7210 | ||
7211 | 2018-10-11 Jan Hubicka <hubicka@ucw.cz> | |
7212 | ||
7213 | * ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; | |
7214 | it is wrong for forward declarations. | |
7215 | ||
7216 | 2018-10-24 Ilya Leoshkevich <iii@linux.ibm.com> | |
7217 | ||
7218 | * config/s390/s390.c (s390_check_qrst_address): Add the missing | |
7219 | SYMBOL_REF_P () check. | |
7220 | ||
7221 | 2018-10-24 Richard Biener <rguenther@suse.de> | |
7222 | ||
7223 | PR tree-optimization/87105 | |
7224 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust | |
7225 | dump classification. | |
7226 | (vect_analyze_data_ref_accesses): Handle duplicate loads and | |
7227 | stores by splitting the affected group after the fact. | |
7228 | * tree-vect-slp.c (vect_build_slp_tree_2): Dump when we | |
7229 | fail the SLP build because of size constraints. | |
7230 | ||
7231 | 2018-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
7232 | ||
7233 | * configure.ac (gcc_cv_ld_aligned_shf_merge): New test. | |
7234 | * configure: Regenerate. | |
7235 | * config.in: Regenerate. | |
7236 | * varasm.c (mergeable_string_section): Use readonly_data_section | |
7237 | if linker doesn't support SHF_MERGE with alignment > 8. | |
7238 | (mergeable_constant_section): Likewise. | |
7239 | ||
7240 | 2018-10-24 Richard Biener <rguenther@suse.de> | |
7241 | ||
7242 | PR tree-optimization/84013 | |
7243 | * tree-ssa-structalias.c (struct msdi_data): New struct for | |
7244 | marshalling data to walk_stmt_load_store_ops. | |
7245 | (maybe_set_dependence_info): Refactor as callback for | |
7246 | walk_stmt_load_store_ops. | |
7247 | (compute_dependence_clique): Set restrict info on all stmt kinds. | |
7248 | ||
7249 | 2018-10-24 Martin Liska <mliska@suse.cz> | |
7250 | ||
7251 | * cgraph.c (cgraph_node::dump): | |
7252 | Remove reduntant dumps and make tp_first_run dump more compact. | |
7253 | ||
7254 | 2018-10-24 Richard Biener <rguenther@suse.de> | |
7255 | ||
7256 | PR tree-optimization/87665 | |
7257 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust | |
7258 | to reflect reality. | |
7259 | ||
7260 | 2018-10-12 Jeff Law <law@redhat.com> | |
7261 | ||
7262 | * config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation | |
7263 | for H8/S. | |
7264 | ||
7265 | 2018-10-23 Richard Biener <rguenther@suse.de> | |
7266 | ||
7267 | * tree-vrp.c (add_assert_info): Guard dump_printf with | |
7268 | dump_enabled_p. | |
7269 | * gimple-ssa-evrp-analyze.c | |
7270 | (evrp_range_analyzer::record_ranges_from_incoming_edge): | |
7271 | Use value_range::ignore_equivs_equal_p. | |
7272 | ||
7273 | 2018-10-23 Richard Biener <rguenther@suse.de> | |
7274 | ||
7275 | PR tree-optimization/87105 | |
7276 | PR tree-optimization/87608 | |
7277 | * passes.def (pass_all_early_optimizations): Add early phi-opt | |
7278 | after dce. | |
7279 | * tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in | |
7280 | addition to debug stmts. | |
7281 | (tree_ssa_phiopt_worker): Add early_p argument, do only min/max | |
7282 | and abs replacement early. | |
7283 | * tree-cfg.c (gimple_empty_block_p): Likewise. | |
7284 | ||
7285 | 2018-10-23 Richard Earnshaw <rearnsha@arm.com> | |
7286 | ||
7287 | PR target/86383 | |
7288 | * config.gcc (arm*-*-netbsdelf*): Default to StrongARM if no CPU | |
7289 | specified to configure. | |
7290 | (arm*-*-*): Use ARM7TDMI as the target CPU if no default provided. | |
7291 | ||
7292 | 2018-10-23 Richard Biener <rguenther@suse.de> | |
7293 | ||
7294 | PR tree-optimization/87700 | |
7295 | * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. | |
7296 | ||
7297 | 2018-10-23 Jakub Jelinek <jakub@redhat.com> | |
7298 | ||
7299 | PR target/87674 | |
7300 | * config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of | |
7301 | second argument from __mmask16 to __mmask8. | |
7302 | * config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32, | |
7303 | _mm_mask_packs_epi32): Likewise. | |
7304 | * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps): | |
7305 | Likewise. | |
7306 | (_mm512_mask_prefetch_i64scatter_pd): Likewise. Formatting fix. | |
7307 | ||
7308 | 2018-10-23 Richard Biener <rguenther@suse.de> | |
7309 | ||
7310 | * tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment. | |
7311 | ||
7312 | 2018-10-23 Richard Biener <rguenther@suse.de> | |
7313 | ||
7314 | PR tree-optimization/86144 | |
7315 | * tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi | |
7316 | over simd attribute. | |
7317 | ||
7318 | 2018-10-23 Richard Biener <rguenther@suse.de> | |
7319 | ||
7320 | PR tree-optimization/87693 | |
7321 | * tree-ssa-threadedge.c (thread_around_empty_blocks): Handle | |
7322 | the case we do not find the taken edge. | |
7323 | ||
7324 | 2018-10-22 Bill Schmidt <wschmidt@linux.ibm.com> | |
7325 | Jinsong Ji <jji@us.ibm.com> | |
7326 | ||
7327 | * config/rs6000/emmintrin.h (_MM_SHUFFLE2): Comment cleanup. | |
7328 | (_mm_store_pd): Use unaligned vector type for pointer cast. | |
7329 | (_mm_maskmoveu_si128): Likewise. | |
7330 | * config/rs6000/xmmintrin.h (__m128_u): New typedef. | |
7331 | (_mm_store_ps): Use unaligned vector type for pointer cast. | |
7332 | ||
7333 | 2018-10-22 Paul Koning <ni1d@arrl.net> | |
7334 | ||
7335 | * symtab.c (symtab_node::increase_alignment): Correct max | |
7336 | alignment check. | |
7337 | ||
7338 | 2018-10-22 Yury Gribov <tetra2005@gmail.com> | |
7339 | ||
7340 | PR tree-optimization/87633 | |
7341 | * match.pd: Do not generate unordered integer comparisons. | |
7342 | ||
7343 | 2018-10-22 Segher Boessenkool <segher@kernel.crashing.org> | |
7344 | ||
7345 | PR rtl-optimization/87600 | |
7346 | * combine.c: Add include of expr.h. | |
7347 | (cant_combine_insn_p): Do not combine moves from any hard non-fixed | |
7348 | register to a pseudo. | |
7349 | (make_more_copies): New function, add a copy to a new pseudo after | |
7350 | the moves from hard registers into pseudos. | |
7351 | (rest_of_handle_combine): Declare rebuild_jump_labels_after_combine | |
7352 | later. Call make_more_copies. | |
7353 | ||
7354 | 2018-10-22 Andrew Stubbs <ams@codesourcery.com> | |
7355 | ||
7356 | * lra-constraints.c (process_alt_operands): New local array, | |
7357 | matching_early_clobber. Check matching_early_clobber before | |
7358 | decrementing reject, and set matching_early_clobber after. | |
7359 | ||
7360 | 2018-10-22 Segher Boessenkool <segher@kernel.crashing.org> | |
7361 | ||
7362 | PR target/87598 | |
7363 | * config/rs6000/rs6000.c (print_operand_address): For unexpected RTL | |
7364 | call output_addr_const and hope for the best. | |
7365 | ||
7366 | 2018-10-22 Richard Biener <rguenther@suse.de> | |
7367 | ||
7368 | * gimple-ssa-evrp-analyze.c | |
7369 | (evrp_range_analyzer::record_ranges_from_incoming_edge): Be | |
7370 | smarter about what ranges to use. | |
7371 | * tree-vrp.c (add_assert_info): Dump here. | |
7372 | (register_edge_assert_for_2): Instead of here at multiple but | |
7373 | not all places. | |
7374 | ||
7375 | * gcc.dg/tree-ssa/evrp12.c: New testcase. | |
7376 | * gcc.dg/predict-6.c: Adjust. | |
7377 | * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. | |
7378 | * gcc.dg/tree-ssa/vrp02.c: Likewise. | |
7379 | * gcc.dg/tree-ssa/cunroll-9.c: Likewise. | |
7380 | ||
7381 | 2018-10-22 Steven Bosscher <steven@gcc.gnu.org> | |
7382 | Richard Biener <rguenther@suse.de> | |
7383 | ||
7384 | * bitmap.h: Update data structure documentation, including a | |
7385 | description of bitmap views as either linked-lists or splay trees. | |
7386 | (struct bitmap_element_def): Update comments for splay tree bitmaps. | |
7387 | (struct bitmap_head_def): Likewise. | |
7388 | (bitmap_list_view, bitmap_tree_view): New prototypes. | |
7389 | (bitmap_initialize_stat): Initialize a bitmap_head's indx and | |
7390 | tree_form fields. | |
7391 | (bmp_iter_set_init): Assert the iterated bitmaps are in list form. | |
7392 | (bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. | |
7393 | * bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a | |
7394 | released bitmap element here. | |
7395 | (bitmap_element_free): Remove. | |
7396 | (bitmap_elt_clear_from): Work on splay tree bitmaps. | |
7397 | (bitmap_list_link_element): Renamed from bitmap_element_link. Move | |
7398 | this function similar ones such that linked-list bitmap implementation | |
7399 | functions are grouped. | |
7400 | (bitmap_list_unlink_element): Renamed from bitmap_element_unlink, | |
7401 | and moved for grouping. | |
7402 | (bitmap_list_insert_element_after): Renamed from | |
7403 | bitmap_elt_insert_after, and moved for grouping. | |
7404 | (bitmap_list_find_element): New function spliced from bitmap_find_bit. | |
7405 | (bitmap_tree_link_left, bitmap_tree_link_right, | |
7406 | bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay, | |
7407 | bitmap_tree_link_element, bitmap_tree_unlink_element, | |
7408 | bitmap_tree_find_element): New functions for splay-tree bitmap | |
7409 | implementation. | |
7410 | (bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after): | |
7411 | Renamed and moved, see above entries. | |
7412 | (bitmap_tree_listify_from): New function to convert part of a splay | |
7413 | tree bitmap to a linked-list bitmap. | |
7414 | (bitmap_list_view): Convert a splay tree bitmap to linked-list form. | |
7415 | (bitmap_tree_view): Convert a linked-list bitmap to splay tree form. | |
7416 | (bitmap_find_bit): Remove. | |
7417 | (bitmap_clear, bitmap_clear_bit, bitmap_set_bit, | |
7418 | bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit): | |
7419 | Handle splay tree bitmaps. | |
7420 | (bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into, | |
7421 | bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, | |
7422 | bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into, | |
7423 | bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p, | |
7424 | bitmap_intersect_compl_p, bitmap_ior_and_compl, | |
7425 | bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range, | |
7426 | bitmap_hash): Reject trying to act on splay tree bitmaps. Make | |
7427 | corresponding changes to use linked-list specific bitmap_element | |
7428 | manipulation functions as applicable for efficiency. | |
7429 | (bitmap_tree_to_vec): New function. | |
7430 | (debug_bitmap_elt_file): New function split out from ... | |
7431 | (debug_bitmap_file): ... here. Handle splay tree bitmaps. | |
7432 | (bitmap_print): Likewise. | |
7433 | ||
7434 | PR tree-optimization/63155 | |
7435 | * tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the | |
7436 | SSA edge worklists. | |
7437 | * tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies | |
7438 | in tree-view. | |
7439 | ||
7440 | 2018-10-22 Martin Liska <mliska@suse.cz> | |
7441 | ||
7442 | PR tree-optimization/87686 | |
7443 | Revert | |
7444 | 2018-08-29 Martin Liska <mliska@suse.cz> | |
7445 | ||
7446 | * tree-switch-conversion.c (switch_conversion::expand): | |
7447 | Strenghten assumption about gswitch statements. | |
7448 | ||
7449 | 2018-10-22 Martin Liska <mliska@suse.cz> | |
7450 | ||
7451 | * ipa-icf.c (sem_item::compare_attributes): Remove. | |
7452 | (sem_item::compare_referenced_symbol_properties): Use | |
7453 | attribute_list_equal instead. | |
7454 | (sem_function::equals_wpa): Likewise. | |
7455 | * ipa-icf.h: Remove compare_attributes. | |
7456 | ||
7457 | 2018-10-22 Richard Biener <rguenther@suse.de> | |
7458 | ||
7459 | PR middle-end/87682 | |
7460 | * mem-stats.h (mem_usage::operator==): Fix pasto. | |
7461 | ||
7462 | 2018-10-22 Richard Biener <rguenther@suse.de> | |
7463 | ||
7464 | PR tree-optimization/87640 | |
7465 | * tree-vrp.c (set_value_range_with_overflow): Decompose | |
7466 | incomplete result. | |
7467 | (extract_range_from_binary_expr_1): Adjust. | |
7468 | ||
7469 | 2018-10-22 Martin Jambor <mjambor@suse.cz> | |
7470 | ||
7471 | * tree-eh.h (stmt_could_throw_p): Add function parameter. | |
7472 | (stmt_can_throw_external): Likewise. | |
7473 | (stmt_can_throw_internal): Likewise. | |
7474 | * tree-eh.c (lower_eh_constructs_2): Pass cfun to stmt_could_throw_p. | |
7475 | (lower_eh_constructs_2): Likewise. | |
7476 | (stmt_could_throw_p): Add fun parameter, use it instead of cfun. | |
7477 | (stmt_can_throw_external): Likewise. | |
7478 | (stmt_can_throw_internal): Likewise. | |
7479 | (maybe_clean_eh_stmt_fn): Pass cfun to stmt_could_throw_p. | |
7480 | (maybe_clean_or_replace_eh_stmt): Pass cfun to stmt_could_throw_p. | |
7481 | (maybe_duplicate_eh_stmt_fn): Pass new_fun to stmt_could_throw_p. | |
7482 | (maybe_duplicate_eh_stmt): Pass cfun to stmt_could_throw_p. | |
7483 | (pass_lower_eh_dispatch::execute): Pass cfun to | |
7484 | stmt_can_throw_external. | |
7485 | (cleanup_empty_eh): Likewise. | |
7486 | (verify_eh_edges): Pass cfun to stmt_could_throw_p. | |
7487 | * cgraph.c (cgraph_edge::set_call_stmt): Pass a function to | |
7488 | stmt_can_throw_external instead of pushing it to cfun. | |
7489 | (symbol_table::create_edge): Likewise. | |
7490 | * gimple-fold.c (fold_builtin_atomic_compare_exchange): Pass cfun to | |
7491 | stmt_can_throw_internal. | |
7492 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Pass cfun | |
7493 | to stmt_could_throw_p. | |
7494 | * gimple-ssa-store-merging.c (handled_load): Pass cfun to | |
7495 | stmt_can_throw_internal. | |
7496 | (pass_store_merging::execute): Likewise. | |
7497 | * gimple-ssa-strength-reduction.c | |
7498 | (find_candidates_dom_walker::before_dom_children): Pass cfun to | |
7499 | stmt_could_throw_p. | |
7500 | * gimplify-me.c (gimple_regimplify_operands): Pass cfun to | |
7501 | stmt_can_throw_internal. | |
7502 | * ipa-pure-const.c (check_call): Pass cfun to stmt_could_throw_p and | |
7503 | to stmt_can_throw_external. | |
7504 | (check_stmt): Pass cfun to stmt_could_throw_p. | |
7505 | (check_stmt): Pass cfun to stmt_can_throw_external. | |
7506 | (pass_nothrow::execute): Likewise. | |
7507 | * trans-mem.c (expand_call_tm): Pass cfun to stmt_can_throw_internal. | |
7508 | * tree-cfg.c (is_ctrl_altering_stmt): Pass cfun to | |
7509 | stmt_can_throw_internal. | |
7510 | (verify_gimple_in_cfg): Pass cfun to stmt_could_throw_p. | |
7511 | (stmt_can_terminate_bb_p): Pass cfun to stmt_can_throw_external. | |
7512 | (gimple_purge_dead_eh_edges): Pass cfun to stmt_can_throw_internal. | |
7513 | * tree-complex.c (expand_complex_libcall): Pass cfun to | |
7514 | stmt_could_throw_p and to stmt_can_throw_internal. | |
7515 | (expand_complex_multiplication): Pass cfun to stmt_can_throw_internal. | |
7516 | * tree-inline.c (copy_edges_for_bb): Likewise. | |
7517 | (maybe_move_debug_stmts_to_successors): Likewise. | |
7518 | * tree-outof-ssa.c (ssa_is_replaceable_p): Pass cfun to | |
7519 | stmt_could_throw_p. | |
7520 | * tree-parloops.c (oacc_entry_exit_ok_1): Likewise. | |
7521 | * tree-sra.c (scan_function): Pass cfun to stmt_can_throw_external. | |
7522 | * tree-ssa-alias.c (stmt_kills_ref_p): Pass cfun to | |
7523 | stmt_can_throw_internal. | |
7524 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. | |
7525 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Pass cfun to | |
7526 | stmt_could_throw_p. | |
7527 | (mark_aliased_reaching_defs_necessary_1): Pass cfun to | |
7528 | stmt_can_throw_internal. | |
7529 | * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise. | |
7530 | * tree-ssa-loop-im.c (movement_possibility): Pass cfun to | |
7531 | stmt_could_throw_p. | |
7532 | * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Likewise. | |
7533 | (add_autoinc_candidates): Pass cfun to stmt_can_throw_internal. | |
7534 | * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. | |
7535 | (convert_mult_to_fma_1): Likewise. | |
7536 | (convert_to_divmod): Likewise. | |
7537 | * tree-ssa-phiprop.c (propagate_with_phi): Likewise. | |
7538 | * tree-ssa-pre.c (compute_avail): Pass cfun to stmt_could_throw_p. | |
7539 | * tree-ssa-propagate.c | |
7540 | (substitute_and_fold_dom_walker::before_dom_children): Likewise. | |
7541 | * tree-ssa-reassoc.c (suitable_cond_bb): Likewise. | |
7542 | (maybe_optimize_range_tests): Likewise. | |
7543 | (linearize_expr_tree): Likewise. | |
7544 | (reassociate_bb): Likewise. | |
7545 | * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. | |
7546 | * tree-ssa-scopedtables.c (hashable_expr_equal_p): Likewise. | |
7547 | * tree-ssa-strlen.c (adjust_last_stmt): Likewise. | |
7548 | (handle_char_store): Likewise. | |
7549 | * tree-vect-data-refs.c (vect_find_stmt_data_reference): Pass cfun to | |
7550 | stmt_can_throw_internal. | |
7551 | * tree-vect-patterns.c (check_bool_pattern): Pass cfun to | |
7552 | stmt_could_throw_p. | |
7553 | * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. | |
7554 | (vectorizable_call): Pass cfun to stmt_can_throw_internal. | |
7555 | (vectorizable_simd_clone_call): Likewise. | |
7556 | * value-prof.c (gimple_ic): Pass cfun to stmt_could_throw_p. | |
7557 | (gimple_stringop_fixed_value): Likewise. | |
7558 | ||
7559 | 2018-10-22 Ilya Leoshkevich <iii@linux.ibm.com> | |
7560 | ||
7561 | * config/s390/s390.c (s390_loadrelative_operand_p): Accept | |
7562 | literal pool references. | |
7563 | (s390_check_qrst_address): Adapt to the new behavior of | |
7564 | s390_loadrelative_operand_p (). | |
7565 | ||
7566 | 2018-10-22 H.J. Lu <hongjiu.lu@intel.com> | |
7567 | ||
7568 | PR target/72782 | |
7569 | * config/i386/sse.md (*andnot<mode>3_bcst): New. | |
7570 | ||
7571 | 2018-10-22 H.J. Lu <hongjiu.lu@intel.com> | |
7572 | ||
7573 | PR target/72782 | |
7574 | * config/i386/sse.md (*<code><mode>3_bcst): New. | |
7575 | ||
7576 | 2018-10-22 H.J. Lu <hongjiu.lu@intel.com> | |
7577 | ||
7578 | PR target/72782 | |
7579 | * config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI, | |
7580 | V4DI, V16SI and V8DI. | |
7581 | (*sub<mode>3<mask_name>_bcst): New. | |
7582 | (*add<mode>3<mask_name>_bcst): Likewise. | |
7583 | ||
7584 | 2018-10-21 Bill Schmidt <wschmidt@linux.ibm.com> | |
7585 | Jinsong Ji <jji@us.ibm.com> | |
7586 | ||
7587 | * config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector | |
7588 | __m64 with __vector unsigned long long for compatibility. | |
7589 | (_mm_movemask_epi8): Likewise. | |
7590 | * config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise. | |
7591 | (_mm_cvttps_pi32): Likewise. | |
7592 | (_mm_cvtpi32_ps): Likewise. | |
7593 | (_mm_cvtps_pi16): Likewise. | |
7594 | (_mm_loadh_pi): Likewise. | |
7595 | (_mm_storeh_pi): Likewise. | |
7596 | (_mm_movehl_ps): Likewise. | |
7597 | (_mm_movelh_ps): Likewise. | |
7598 | (_mm_loadl_pi): Likewise. | |
7599 | (_mm_storel_pi): Likewise. | |
7600 | (_mm_movemask_ps): Likewise. | |
7601 | (_mm_shuffle_pi16): Likewise. | |
7602 | ||
7603 | 2018-10-21 H.J. Lu <hongjiu.lu@intel.com> | |
7604 | ||
7605 | PR target/72782 | |
7606 | * config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use | |
7607 | __builtin_ia32_vfnmsubpd512_mask. | |
7608 | (_mm512_mask_fnmsub_round_pd): Likewise. | |
7609 | (_mm512_fnmsub_pd): Likewise. | |
7610 | (_mm512_mask_fnmsub_pd): Likewise. | |
7611 | (_mm512_maskz_fnmsub_round_pd): Use | |
7612 | __builtin_ia32_vfnmsubpd512_maskz. | |
7613 | (_mm512_maskz_fnmsub_pd): Likewise. | |
7614 | (_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask. | |
7615 | (_mm512_mask_fnmsub_round_ps): Likewise. | |
7616 | (_mm512_fnmsub_ps): Likewise. | |
7617 | (_mm512_mask_fnmsub_ps): Likewise. | |
7618 | (_mm512_maskz_fnmsub_round_ps): Use | |
7619 | __builtin_ia32_vfnmsubps512_maskz. | |
7620 | (_mm512_maskz_fnmsub_ps): Likewise. | |
7621 | * config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use | |
7622 | __builtin_ia32_vfnmsubpd256_mask. | |
7623 | (_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz. | |
7624 | (_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask | |
7625 | (_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz. | |
7626 | (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. | |
7627 | (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. | |
7628 | (_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz. | |
7629 | (_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask. | |
7630 | (_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz. | |
7631 | * config/i386/fmaintrin.h (_mm_fnmsub_pd): Use | |
7632 | __builtin_ia32_vfnmsubpd. | |
7633 | (_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256. | |
7634 | (_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps. | |
7635 | (_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256. | |
7636 | (_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3. | |
7637 | (_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3. | |
7638 | * config/i386/i386-builtin.def: Add | |
7639 | __builtin_ia32_vfnmsubpd256_mask, | |
7640 | __builtin_ia32_vfnmsubpd256_maskz, | |
7641 | __builtin_ia32_vfnmsubpd128_mask, | |
7642 | __builtin_ia32_vfnmsubpd128_maskz, | |
7643 | __builtin_ia32_vfnmsubps256_mask, | |
7644 | __builtin_ia32_vfnmsubps256_maskz, | |
7645 | __builtin_ia32_vfnmsubps128_mask, | |
7646 | __builtin_ia32_vfnmsubps128_maskz, | |
7647 | __builtin_ia32_vfnmsubpd512_mask, | |
7648 | __builtin_ia32_vfnmsubpd512_maskz, | |
7649 | __builtin_ia32_vfnmsubps512_mask, | |
7650 | __builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3, | |
7651 | __builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps, | |
7652 | __builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and. | |
7653 | __builtin_ia32_vfnmsubpd256. | |
7654 | * config/i386/sse.md (fma4i_fnmsub_<mode>): New. | |
7655 | (<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Likewise. | |
7656 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): | |
7657 | Likewise. | |
7658 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): | |
7659 | Likewise. | |
7660 | (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): | |
7661 | Likewise. | |
7662 | (fmai_vmfnmsub_<mode><round_name>): Likewise. | |
7663 | ||
7664 | 2018-10-21 H.J. Lu <hongjiu.lu@intel.com> | |
7665 | ||
7666 | PR target/72782 | |
7667 | * config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use | |
7668 | __builtin_ia32_vfnmaddpd512_mask. | |
7669 | (_mm512_mask_fnmadd_round_pd): Likewise. | |
7670 | (_mm512_fnmadd_pd): Likewise. | |
7671 | (_mm512_mask_fnmadd_pd): Likewise. | |
7672 | (_mm512_maskz_fnmadd_round_pd): Use | |
7673 | __builtin_ia32_vfnmaddpd512_maskz. | |
7674 | (_mm512_maskz_fnmadd_pd): Likewise. | |
7675 | (_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask. | |
7676 | (_mm512_mask_fnmadd_round_ps): Likewise. | |
7677 | (_mm512_fnmadd_ps): Likewise. | |
7678 | (_mm512_mask_fnmadd_ps): Likewise. | |
7679 | (_mm512_maskz_fnmadd_round_ps): Use | |
7680 | __builtin_ia32_vfnmaddps512_maskz. | |
7681 | (_mm512_maskz_fnmadd_ps): Likewise. | |
7682 | * config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use | |
7683 | __builtin_ia32_vfnmaddpd256_mask. | |
7684 | (_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz. | |
7685 | (_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask | |
7686 | (_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz. | |
7687 | (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. | |
7688 | (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. | |
7689 | (_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz. | |
7690 | (_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask. | |
7691 | (_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz. | |
7692 | * config/i386/fmaintrin.h (_mm_fnmadd_pd): Use | |
7693 | __builtin_ia32_vfnmaddpd. | |
7694 | (_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256. | |
7695 | (_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps. | |
7696 | (_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256. | |
7697 | (_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3. | |
7698 | (_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3. | |
7699 | * config/i386/i386-builtin.def: Add | |
7700 | __builtin_ia32_vfnmaddpd256_mask, | |
7701 | __builtin_ia32_vfnmaddpd256_maskz, | |
7702 | __builtin_ia32_vfnmaddpd128_mask, | |
7703 | __builtin_ia32_vfnmaddpd128_maskz, | |
7704 | __builtin_ia32_vfnmaddps256_mask, | |
7705 | __builtin_ia32_vfnmaddps256_maskz, | |
7706 | __builtin_ia32_vfnmaddps128_mask, | |
7707 | __builtin_ia32_vfnmaddps128_maskz, | |
7708 | __builtin_ia32_vfnmaddpd512_mask, | |
7709 | __builtin_ia32_vfnmaddpd512_maskz, | |
7710 | __builtin_ia32_vfnmaddps512_mask, | |
7711 | __builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3, | |
7712 | __builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps, | |
7713 | __builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and. | |
7714 | __builtin_ia32_vfnmaddpd256. | |
7715 | * config/i386/sse.md (fma4i_fnmadd_<mode>): New. | |
7716 | (<avx512>_fnmadd_<mode>_maskz<round_expand_name>): Likewise. | |
7717 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): | |
7718 | Likewise. | |
7719 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): | |
7720 | Likewise. | |
7721 | (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): | |
7722 | Likewise. | |
7723 | (fmai_vmfnmadd_<mode><round_name>): Likewise. | |
7724 | ||
7725 | 2018-10-21 H.J. Lu <hongjiu.lu@intel.com> | |
7726 | ||
7727 | PR target/72782 | |
7728 | * config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use | |
7729 | __builtin_ia32_vfmsubpd512_mask. | |
7730 | (_mm512_mask_fmsub_round_pd): Likewise. | |
7731 | (_mm512_fmsub_pd): Likewise. | |
7732 | (_mm512_mask_fmsub_pd): Likewise. | |
7733 | (_mm512_maskz_fmsub_round_pd): Use | |
7734 | __builtin_ia32_vfmsubpd512_maskz. | |
7735 | (_mm512_maskz_fmsub_pd): Likewise. | |
7736 | (_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask. | |
7737 | (_mm512_mask_fmsub_round_ps): Likewise. | |
7738 | (_mm512_fmsub_ps): Likewise. | |
7739 | (_mm512_mask_fmsub_ps): Likewise. | |
7740 | (_mm512_maskz_fmsub_round_ps): Use | |
7741 | __builtin_ia32_vfmsubps512_maskz. | |
7742 | (_mm512_maskz_fmsub_ps): Likewise. | |
7743 | * config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use | |
7744 | __builtin_ia32_vfmsubpd256_mask. | |
7745 | (_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz. | |
7746 | (_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask | |
7747 | (_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz. | |
7748 | (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. | |
7749 | (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. | |
7750 | (_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz. | |
7751 | (_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask. | |
7752 | (_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz. | |
7753 | * config/i386/fmaintrin.h (_mm_fmsub_pd): Use | |
7754 | __builtin_ia32_vfmsubpd. | |
7755 | (_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256. | |
7756 | (_mm_fmsub_ps): Use __builtin_ia32_vfmsubps. | |
7757 | (_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256. | |
7758 | (_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3. | |
7759 | (_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3. | |
7760 | * config/i386/i386-builtin.def: Add | |
7761 | __builtin_ia32_vfmsubpd256_mask, | |
7762 | __builtin_ia32_vfmsubpd256_maskz, | |
7763 | __builtin_ia32_vfmsubpd128_mask, | |
7764 | __builtin_ia32_vfmsubpd128_maskz, | |
7765 | __builtin_ia32_vfmsubps256_mask, | |
7766 | __builtin_ia32_vfmsubps256_maskz, | |
7767 | __builtin_ia32_vfmsubps128_mask, | |
7768 | __builtin_ia32_vfmsubps128_maskz, | |
7769 | __builtin_ia32_vfmsubpd512_mask, | |
7770 | __builtin_ia32_vfmsubpd512_maskz, | |
7771 | __builtin_ia32_vfmsubps512_mask, | |
7772 | __builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3, | |
7773 | __builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps, | |
7774 | __builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and. | |
7775 | __builtin_ia32_vfmsubpd256. | |
7776 | * config/i386/sse.md (fma4i_fmsub_<mode>): New. | |
7777 | (<avx512>_fmsub_<mode>_maskz<round_expand_name>): Likewise. | |
7778 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): | |
7779 | Likewise. | |
7780 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): | |
7781 | Likewise. | |
7782 | (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): | |
7783 | Likewise. | |
7784 | (fmai_vmfmsub_<mode><round_name>): Likewise. | |
7785 | ||
7786 | 2018-10-21 H.J. Lu <hongjiu.lu@intel.com> | |
7787 | ||
7788 | * config/i386/sse.md (*<plusminus_insn><mode>3<mask_name>_bcst_1): | |
7789 | Remove plus. Renamed to ... | |
7790 | (*sub<mode>3<mask_name>_bcst): This. | |
7791 | (*add<mode>3<mask_name>_bcst_2): Renamede to ... | |
7792 | (*add<mode>3<mask_name>_bcst): This. | |
7793 | ||
7794 | 2018-10-21 H.J. Lu <hongjiu.lu@intel.com> | |
7795 | ||
7796 | PR target/72782 | |
7797 | * config/i386/sse.md (*mul<mode>3<mask_name>_bcst): New. | |
7798 | ||
7799 | 2018-10-21 H.J. Lu <hongjiu.lu@intel.com> | |
7800 | ||
7801 | PR target/87662 | |
7802 | * i386/avx512vlintrin.h (_mm256_or_epi32): New. | |
7803 | (_mm_or_epi32): Likewise. | |
7804 | (_mm256_xor_epi32): Likewise. | |
7805 | (_mm_xor_epi32): Likewise. | |
7806 | (_mm256_or_epi64): Likewise. | |
7807 | (_mm_or_epi64): Likewise. | |
7808 | (_mm256_xor_epi64): Likewise. | |
7809 | (_mm_xor_epi64): Likewise. | |
7810 | ||
7811 | 2018-10-20 H.J. Lu <hongjiu.lu@intel.com> | |
7812 | ||
7813 | PR target/72782 | |
7814 | * config/i386/sse.md (*<avx512>_div<mode>3<mask_name>_bcst): New. | |
7815 | ||
7816 | 2018-10-20 Jakub Jelinek <jakub@redhat.com> | |
7817 | ||
7818 | PR middle-end/87647 | |
7819 | * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR. | |
7820 | ||
7821 | 2018-10-20 Andreas Schwab <schwab@linux-m68k.org> | |
7822 | ||
7823 | * doc/ux.texi: Move @section directly after @node. | |
7824 | ||
7825 | 2018-10-19 Jakub Jelinek <jakub@redhat.com> | |
7826 | ||
7827 | PR middle-end/85488 | |
7828 | PR middle-end/87649 | |
7829 | * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without | |
7830 | depend closely nested inside of loop with ordered clause with | |
7831 | a parameter. | |
7832 | ||
7833 | 2018-10-19 David Malcolm <dmalcolm@redhat.com> | |
7834 | ||
7835 | * Makefile.in (TEXI_GCCINT_FILES): Add ux.texi. | |
7836 | * doc/gccint.texi: Include ux.texi and use it in top-level menu. | |
7837 | * doc/ux.texi: New file. | |
7838 | ||
7839 | 2018-10-19 Segher Boessenkool <segher@kernel.crashing.org> | |
7840 | ||
7841 | * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to | |
7842 | be the first CR field allocated. | |
7843 | ||
7844 | 2018-10-19 Richard Biener <rguenther@suse.de> | |
7845 | ||
7846 | PR target/87657 | |
7847 | * config/i386/i386.c (ix86_builtin_vectorization_cost): Use | |
7848 | TYPE_VECTOR_SUBPARTS and avoid relying on vector mode. | |
7849 | ||
7850 | 2018-10-19 H.J. Lu <hongjiu.lu@intel.com> | |
7851 | ||
7852 | PR target/72782 | |
7853 | * config/i386/sse.md | |
7854 | (*<plusminus_insn><mode>3<mask_name>_bcst_1): New. | |
7855 | (*add<mode>3<mask_name>_bcst_2): Likewise. | |
7856 | ||
7857 | 2018-10-19 H.J. Lu <hongjiu.lu@intel.com> | |
7858 | ||
7859 | * config/i386/sse.md | |
7860 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): | |
7861 | Replace nonimmediate_operand with register_operand. | |
7862 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): | |
7863 | Likewise. | |
7864 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): | |
7865 | Likewise. | |
7866 | ||
7867 | 2018-10-19 Ilya Leoshkevich <iii@linux.ibm.com> | |
7868 | ||
7869 | PR rtl-optimization/87596 | |
7870 | * lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () + | |
7871 | lra_get_insn_recog_data () instead of lra_insn_recog_data[] | |
7872 | for instructions in FROM..TO range. | |
7873 | ||
7874 | 2018-10-19 Eric Botcazou <ebotcazou@adacore.com> | |
7875 | ||
7876 | * cfgexpand.c (expand_one_var): Use specific wording in error message | |
7877 | for non-local frame variables. | |
7878 | * stor-layout.c (layout_decl): Do not issue a warning for them. | |
7879 | ||
7880 | 2018-10-19 Robin Dapp <rdapp@linux.ibm.com> | |
7881 | ||
7882 | * haifa-sched.c (priority): Add force_recompute parameter. | |
7883 | (apply_replacement): Call priority () with force_recompute = true. | |
7884 | (restore_pattern): Likewise. | |
7885 | ||
7886 | 2018-10-18 H.J. Lu <hongjiu.lu@intel.com> | |
7887 | ||
7888 | * simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to | |
7889 | HOST_BITS_PER_WIDE_INT. | |
7890 | (test_vector_ops_duplicate): Likewise. | |
7891 | ||
7892 | 2018-10-18 H.J. Lu <hongjiu.lu@intel.com> | |
7893 | ||
7894 | PR target/72782 | |
7895 | * config/i386/sse.md (VF_AVX512): New. | |
7896 | (avx512bcst): Likewise. | |
7897 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): | |
7898 | Likewise. | |
7899 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): | |
7900 | Likewise. | |
7901 | (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): | |
7902 | Likewise. | |
7903 | ||
7904 | 2018-10-18 Jonathan Wakely <jwakely@redhat.com> | |
7905 | ||
7906 | * doc/invoke.texi (-dumpversion): Improve grammar. | |
7907 | (-dumpfullversion): Make more consistent with -dumpversion. | |
7908 | ||
7909 | 2018-10-18 Uros Bizjak <ubizjak@gmail.com> | |
7910 | ||
7911 | * config/i386/i386.c (ix86_emit_fp_unordered_jump): | |
7912 | Set JUMP_LABEL to the jump insn. | |
7913 | (ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch. | |
7914 | Predict emitted jump and add label to jump insn. | |
7915 | ||
7916 | 2018-10-18 David Malcolm <dmalcolm@redhat.com> | |
7917 | ||
7918 | PR tree-optimization/87562 | |
7919 | * input.c (get_substring_ranges_for_loc): Use | |
7920 | LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when | |
7921 | getting the linemap for the endpoint. Verify that it's either | |
7922 | in the same linemap as the start point's spelling location, or | |
7923 | at least in the same file. | |
7924 | ||
7925 | 2018-10-18 Richard Biener <rguenther@suse.de> | |
7926 | ||
7927 | * config/i386/i386.c (ix86_builtin_vectorization_cost): Do not | |
7928 | feed width-specific load/store costs through ix86_vec_cost. | |
7929 | * config/i386/x86-tune-costs.h (athlon_cost): Adjust. | |
7930 | (k8_cost): Likewise. | |
7931 | (bdver_cost): Likewise. | |
7932 | (znver1_cost): Likewise. | |
7933 | (btver1_cost): Likewise. | |
7934 | (btver2_cost): Likewise. | |
7935 | ||
7936 | 2018-10-18 H.J. Lu <hongjiu.lu@intel.com> | |
7937 | ||
7938 | * simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg | |
7939 | to simplify subreg of vec_merge. | |
7940 | ||
7941 | 2018-10-18 Richard Biener <rguenther@suse.de> | |
7942 | ||
7943 | * config/i386/i386.c: Fix costing of vector FMA. | |
7944 | ||
7945 | 2018-10-18 Richard Biener <rguenther@suse.de> | |
7946 | ||
7947 | * config/i386/i386.c (ix86_vec_cost): Remove !parallel path | |
7948 | and argument. | |
7949 | (ix86_builtin_vectorization_cost): For vec_construct properly | |
7950 | cost insertion into SSE regs. | |
7951 | (...): Adjust calls to ix86_vec_cost. | |
7952 | ||
7953 | 2018-10-18 Richard Biener <rguenther@suse.de> | |
7954 | ||
7955 | PR middle-end/87087 | |
7956 | Revert | |
7957 | 2018-02-07 Richard Biener <rguenther@suse.de> | |
7958 | ||
7959 | PR tree-optimization/84204 | |
7960 | * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in | |
7961 | this place. | |
7962 | ||
7963 | 2018-10-18 H.J. Lu <hongjiu.lu@intel.com> | |
7964 | ||
7965 | PR target/87537 | |
7966 | * simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge | |
7967 | of vec_duplicate. | |
7968 | (test_vector_ops_duplicate): Add test for a scalar subreg of a | |
7969 | VEC_MERGE of a VEC_DUPLICATE. | |
7970 | ||
7971 | 2018-10-17 Joseph Myers <joseph@codesourcery.com> | |
7972 | ||
7973 | * doc/cpp.texi (__STDC_VERSION__): Document C2X handling. | |
7974 | * doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options. | |
7975 | * doc/standards.texi (C Language): Document C2X. | |
7976 | * dwarf2out.c (highest_c_language), config/rl78/rl78.c | |
7977 | (rl78_option_override): Handle "GNU C2X" language name. | |
7978 | ||
7979 | 2018-10-17 Joseph Myers <joseph@codesourcery.com> | |
7980 | ||
7981 | * doc/invoke.texi (-std=c17), doc/standards.texi (C Language): | |
7982 | Document C17 as published in 2018. | |
7983 | ||
7984 | 2018-10-17 Eric Botcazou <ebotcazou@adacore.com> | |
7985 | ||
7986 | PR middle-end/87623 | |
7987 | * fold-const.c (fold_truth_andor_1): If the right side is not constant, | |
7988 | bail out if both sides do not have the same storage order. | |
7989 | ||
7990 | 2018-10-17 Aldy Hernandez <aldyh@redhat.com> | |
7991 | ||
7992 | * bitmap.c (bitmap_head::dump): New. | |
7993 | * bitmap.h (bitmap_head): Add dump(). | |
7994 | * gimple-ssa-evrp-analyze.c | |
7995 | (evrp_range_analyzer::try_find_new_range): Adjust for value_range API. | |
7996 | (evrp_range_analyzer::set_ssa_range_info): Same. | |
7997 | (evrp_range_analyzer::record_ranges_from_phis): Same. | |
7998 | (evrp_range_analyzer::record_ranges_from_stmt): Same. | |
7999 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same. | |
8000 | * gimple-ssa-sprintf.c (get_int_range): Same. | |
8001 | (format_integer): Same. | |
8002 | (sprintf_dom_walker::handle_gimple_call): Same. | |
8003 | * ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same. | |
8004 | (ipcp_vr_lattice::top_p): Same. | |
8005 | (ipcp_vr_lattice::bottom_p): Same. | |
8006 | (ipcp_vr_lattice::set_to_bottom): Same. | |
8007 | (ipa_vr_operation_and_type_effects): Same. | |
8008 | (propagate_vr_across_jump_function): Same. | |
8009 | (ipcp_store_vr_results): Same. | |
8010 | * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same. | |
8011 | (ipa_print_node_jump_functions_for_edge): Same. | |
8012 | (ipa_get_value_range): Same. | |
8013 | (ipa_compute_jump_functions_for_edge): Same. | |
8014 | (ipa_write_jump_function): Same. | |
8015 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same. | |
8016 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): | |
8017 | Same. | |
8018 | * vr-values.c (set_value_range_to_nonnegative): Same. | |
8019 | (set_value_range_to_truthvalue): Same. | |
8020 | (vr_values::get_value_range): Same. | |
8021 | (vr_values::set_defs_to_varying): Same. | |
8022 | (vr_values::update_value_range): Same. | |
8023 | (symbolic_range_based_on_p): Same. | |
8024 | (vr_values::op_with_boolean_value_range_p): Same. | |
8025 | (vr_values::extract_range_for_var_from_comparison_expr): Same. | |
8026 | (vr_values::extract_range_from_ssa_name): Same. | |
8027 | (vr_values::extract_range_from_binary_expr): Same. | |
8028 | (vr_values::extract_range_from_unary_expr): Same. | |
8029 | (vr_values::extract_range_from_cond_expr): Same. | |
8030 | (vr_values::extract_range_from_comparison): Same. | |
8031 | (vr_values::check_for_binary_op_overflow): Same. | |
8032 | (vr_values::extract_range_basic): Same. | |
8033 | (vr_values::extract_range_from_assignment): Same. | |
8034 | (compare_ranges): Same. | |
8035 | (compare_range_with_value): Same. | |
8036 | (vr_values::adjust_range_with_scev): Same. | |
8037 | (vrp_valueize): Same. | |
8038 | (vrp_valueize_1): Same. | |
8039 | (vr_values::get_vr_for_comparison): Same. | |
8040 | (vr_values::compare_name_with_value): Same. | |
8041 | (vr_values::compare_names): Same. | |
8042 | (vr_values::vrp_evaluate_conditional): Same. | |
8043 | (find_case_label_ranges): Same. | |
8044 | (vr_values::vrp_visit_switch_stmt): Same. | |
8045 | (vr_values::extract_range_from_phi_node): Same. | |
8046 | (vr_values::simplify_div_or_mod_using_ranges): Same. | |
8047 | (vr_values::simplify_bit_ops_using_ranges): Same. | |
8048 | (test_for_singularity): Same. | |
8049 | (range_fits_type_p): Same. | |
8050 | (vr_values::simplify_cond_using_ranges_1): Same. | |
8051 | (vr_values::simplify_switch_using_ranges): Same. | |
8052 | (vr_values::simplify_float_conversion_using_ranges): Same. | |
8053 | (vr_values::two_valued_val_range_p): Same. | |
8054 | (vr_values::add_equivalence): Move to value_range::equiv_add. | |
8055 | * vr-values.h (vr_values::add_equivalence): Remove. | |
8056 | (VR_INITIALIZER): Remove. | |
8057 | * tree-vrp.c (value_range::set): New. | |
8058 | (value_range::equiv_add): New. | |
8059 | (value_range::value_range): New. | |
8060 | (value_range::deep_copy): New. | |
8061 | (value_range::check): New. | |
8062 | (value_range::equal_p): New. | |
8063 | (value_range::ignore_equivs_equal_p): New. | |
8064 | (value_range::operator==): New. | |
8065 | (value_range::operator!=): New. | |
8066 | (value_range::symbolic_p): New. | |
8067 | (value_range::numeric_p): New. | |
8068 | (value_range::set_undefined): New. | |
8069 | (value_range::set_varying): New. | |
8070 | (value_range::may_contain_p): New. | |
8071 | (value_range::equiv_clear): New. | |
8072 | (value_range::singleton_p): New. | |
8073 | (value_range::intersect): New. | |
8074 | (value_range::dump): New. | |
8075 | (value_range::set_and_canonicalize): New. | |
8076 | (set_value_range): Adjust for value_range API. | |
8077 | (set_value_range_to_undefined): Same. | |
8078 | (set_value_range_to_varying): Same. | |
8079 | (set_and_canonicalize_value_range): Same. | |
8080 | (set_value_range_to_nonnull): Same. | |
8081 | (set_value_range_to_null): Same. | |
8082 | (range_is_null): Same. | |
8083 | (range_is_nonnull): Same. | |
8084 | (range_int_cst_p): Same. | |
8085 | (range_int_cst_singleton_p): Same. | |
8086 | (symbolic_range_p): Same. | |
8087 | (range_includes_zero_p): Same. | |
8088 | (value_range_constant_singleton): Same. | |
8089 | (vrp_set_zero_nonzero_bits): Same. | |
8090 | (ranges_from_anti_range): Same. | |
8091 | (extract_range_into_wide_ints): Same. | |
8092 | (extract_range_from_multiplicative_op): Same. | |
8093 | (set_value_range_with_overflow): Same. | |
8094 | (extract_range_from_binary_expr_1): Same. | |
8095 | (extract_range_from_unary_expr): Same. | |
8096 | (dump_value_range): Same. | |
8097 | (debug_value_range): Same. | |
8098 | (vrp_prop::check_array_ref): Same. | |
8099 | (vrp_prop::check_mem_ref): Same. | |
8100 | (vrp_prop::vrp_initialize): Same. | |
8101 | (vrp_prop::visit_stmt): Same. | |
8102 | (intersect_ranges): Same. | |
8103 | (vrp_prop::visit_phi): Same. | |
8104 | (vrp_prop::vrp_finalize): Same. | |
8105 | (determine_value_range_1): Same. | |
8106 | (determine_value_range): Same. | |
8107 | (vrp_intersect_ranges_1): Rename to... | |
8108 | (vrp_intersect_1): this. | |
8109 | (vrp_intersect_ranges): Rename to... | |
8110 | (value_range::intersect_helper): ...this. | |
8111 | (vrp_meet_1): Rename to... | |
8112 | (value_range::union_helper): ...this. | |
8113 | (vrp_meet): Rename to... | |
8114 | (value_range::union_): ...this. | |
8115 | (copy_value_range): Remove. | |
8116 | * tree-vrp.h (struct value_range): Rewrite into a proper class. | |
8117 | (value_range::vrtype): New. | |
8118 | (value_range::type): New. | |
8119 | (value_range::equiv): New. | |
8120 | (value_range::min): New. | |
8121 | (value_range::max): New. | |
8122 | (value_range::varying_p): New. | |
8123 | (value_range::undefined_p): New. | |
8124 | (value_range::null_p): New. | |
8125 | (value_range::equiv_add): New. | |
8126 | (copy_value_range): Remove. | |
8127 | ||
8128 | 2018-10-17 David Malcolm <dmalcolm@redhat.com> | |
8129 | ||
8130 | * Makefile.in (SELFTEST_TARGETS): New. | |
8131 | (selftest) Change from s-selftest-c to $(SELFTEST_TARGETS). | |
8132 | (C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb) | |
8133 | (selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to | |
8134 | c/Make-lang.in. | |
8135 | (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++) | |
8136 | (selftest-c++-gdb, selftest-c++-valgrind): Move to | |
8137 | cp/Make-lang.in. | |
8138 | * configure: Regenerate. | |
8139 | * configure.ac (selftest_languages): New. | |
8140 | ||
8141 | 2018-10-17 Aldy Hernandez <aldyh@redhat.com> | |
8142 | ||
8143 | * tree-vrp.c (extract_range_from_multiplicative_op): Remove | |
8144 | overflow wraps argument. | |
8145 | (extract_range_from_binary_expr_1): Do not pass overflow wraps to | |
8146 | wide_int_range_multiplicative_op. | |
8147 | * wide-int-range.cc (wide_int_range_mult_wrapping): Remove | |
8148 | overflow wraps argument. | |
8149 | (wide_int_range_multiplicative_op): Same. | |
8150 | (wide_int_range_lshift): Same. | |
8151 | (wide_int_range_div): Same. | |
8152 | * wide-int-range.h (wide_int_range_multiplicative_op): Same. | |
8153 | (wide_int_range_lshift): Same. | |
8154 | (wide_int_range_div): Same. | |
8155 | ||
8156 | 2018-10-17 Aldy Hernandez <aldyh@redhat.com> | |
8157 | ||
8158 | * wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to | |
8159 | use sign as argument. | |
8160 | * tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to | |
8161 | wide_int_range_shift_undefined_p. | |
8162 | ||
8163 | 2018-10-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
8164 | ||
8165 | * config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): | |
8166 | Rename to... | |
8167 | (@despeculate_copy<ALLI_TI:mode>): ... This. | |
8168 | * config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove | |
8169 | switch statement. | |
8170 | ||
8171 | 2018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
8172 | ||
8173 | * config.gcc: Obsolete *-*-solaris2.10*. | |
8174 | * doc/install.texi (Specific, *-*-solaris2*): Document it. | |
8175 | ||
8176 | 2018-10-12 Jeff Law <law@redhat.com> | |
8177 | ||
8178 | * config/ft32/ft32.md (ft32_general_movsrc_operand): Disable | |
8179 | reg + sym +- const_int addressing modes. | |
8180 | ||
8181 | 2018-10-15 David Malcolm <dmalcolm@redhat.com> | |
8182 | ||
8183 | * common.opt (fdiagnostics-minimum-margin-width=): New option. | |
8184 | * diagnostic-show-locus.c (layout::layout): Apply the minimum | |
8185 | margin width. | |
8186 | (layout::start_annotation_line): Only print up to 3 of the | |
8187 | margin character, to avoid touching the left-hand side. | |
8188 | (selftest::test_diagnostic_show_locus_fixit_lines): Update for | |
8189 | minimum margin width, as set by test_diagnostic_context's ctor. | |
8190 | (selftest::test_fixit_insert_containing_newline): Likewise. | |
8191 | (selftest::test_fixit_insert_containing_newline_2): Likewise. | |
8192 | (selftest::test_line_numbers_multiline_range): Clear | |
8193 | dc.min_margin_width. | |
8194 | * diagnostic.c (diagnostic_initialize): Initialize | |
8195 | min_margin_width. | |
8196 | * diagnostic.h (struct diagnostic_context): Add field | |
8197 | "min_margin_width". | |
8198 | * doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=. | |
8199 | * opts.c (common_handle_option): Handle | |
8200 | OPT_fdiagnostics_minimum_margin_width_. | |
8201 | * selftest-diagnostic.c | |
8202 | (selftest::test_diagnostic_context::test_diagnostic_context): | |
8203 | Initialize min_margin_width to 6. | |
8204 | * toplev.c (general_init): Initialize global_dc->min_margin_width. | |
8205 | ||
8206 | 2018-10-15 David Malcolm <dmalcolm@redhat.com> | |
8207 | ||
8208 | * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): | |
8209 | Fix usage of "error_at_rich_loc" in the comment. | |
8210 | ||
8211 | 2018-10-15 Renlin Li <renlin.li@arm.com> | |
8212 | ||
8213 | PR target/87563 | |
8214 | * tree-vectorizer.c (try_vectorize_loop_1): Don't use | |
8215 | if-conversioned loop when it contains ifn with types not | |
8216 | supported by backend. | |
8217 | * internal-fn.c (expand_direct_optab_fn): Add an assert. | |
8218 | (direct_internal_fn_supported_p): New helper function. | |
8219 | * internal-fn.h (direct_internal_fn_supported_p): Declare. | |
8220 | ||
8221 | 2018-10-15 Jakub Jelinek <jakub@redhat.com> | |
8222 | ||
8223 | PR target/87572 | |
8224 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): | |
8225 | Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and | |
8226 | OPTION_MASK_ISA_AVX5124VNNIW_UNSET. | |
8227 | ||
8228 | 2018-10-15 Bin Cheng <bin.cheng@linux.alibaba.com> | |
8229 | ||
8230 | PR tree-optimization/87022 | |
8231 | * tree-loop-distribution.c (pg_add_dependence_edges): Check all | |
8232 | bits in dist vector rather than the first one. | |
8233 | ||
8234 | 2018-10-15 Richard Biener <rguenther@suse.de> | |
8235 | ||
8236 | PR middle-end/87610 | |
8237 | * tree-ssa-structalias.c (struct vls_data): Add escaped_p member. | |
8238 | (visit_loadstore): When a used restrict tag escaped verify that | |
8239 | the points-to solution of "other" pointers do not include | |
8240 | escaped. | |
8241 | (compute_dependence_clique): If a used restrict tag escaped | |
8242 | communicated that down to visit_loadstore. | |
8243 | ||
8244 | 2018-10-15 Andreas Krebbel <krebbel@linux.ibm.com> | |
8245 | ||
8246 | * config/s390/s390.c (s390_expand_vec_init): Force vector element | |
8247 | into reg if it isn't a general operand. | |
8248 | ||
8249 | 2018-10-14 H.J. Lu <hongjiu.lu@intel.com> | |
8250 | ||
8251 | PR target/87599 | |
8252 | * config/i386/sse.md (*vec_dupv2di): Add register source to | |
8253 | movddup. | |
8254 | ||
8255 | 2018-10-14 H.J. Lu <hongjiu.lu@intel.com> | |
8256 | ||
8257 | PR target/87572 | |
8258 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): | |
8259 | Add OPTION_MASK_ISA_AVX512IFMA_UNSET, | |
8260 | OPTION_MASK_ISA_AVX5124FMAPS_UNSET and | |
8261 | OPTION_MASK_ISA_AVX5124VNNIW_UNSET. | |
8262 | ||
8263 | 2018-10-13 Eric Botcazou <ebotcazou@adacore.com> | |
8264 | ||
8265 | * dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh. | |
8266 | (notice_args_size): Set it in the current trace if no insn that can | |
8267 | throw internally has been seen yet. | |
8268 | (connect_traces): When connecting args_size between traces, allow the | |
8269 | incoming values not to match if there is an insn setting it before the | |
8270 | first insn that can throw internally; in that case, force the creation | |
8271 | of a CFI note on this latter insn. | |
8272 | ||
8273 | 2018-10-13 Jonathan Wakely <jwakely@redhat.com> | |
8274 | ||
8275 | * opt-problem.h (opt_wrapper): Use template-argument-list when naming | |
8276 | the base class, because using the injected-class-name was not clearly | |
8277 | specified until DR 176. | |
8278 | ||
8279 | 2018-10-12 Paul Koning <ni1d@arrl.net> | |
8280 | ||
8281 | * config/pdp11/pdp11.md (doloop_end): New expander. | |
8282 | (doloop_end_insn): renamed from "doloop_end". | |
8283 | (addqi3): New pattern. | |
8284 | (subqi3): New pattern. | |
8285 | * config/pdp11/predicates.md (incdec_operand): New predicate. | |
8286 | ||
8287 | 2018-10-12 Yury Gribov <tetra2005@gmail.com> | |
8288 | ||
8289 | PR middle-end/81376 | |
8290 | * real.c (format_helper::can_represent_integral_type_p): New function | |
8291 | * real.h (format_helper::can_represent_integral_type_p): Ditto. | |
8292 | * match.pd: New pattern. | |
8293 | ||
8294 | 2018-10-12 Alexandre Oliva <oliva@adacore.com> | |
8295 | ||
8296 | * configure.ac: Introduce --enable-large-address-aware | |
8297 | to define MINGW_DEFAULT_LARGE_ADDR_AWARE. | |
8298 | * doc/install.texi: Document it. | |
8299 | * configure, config.in: Rebuilt. | |
8300 | * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define, | |
8301 | based on MINGW_DEFAULT_LARGE_ADDR_AWARE. | |
8302 | (LINK_SPEC): Insert it. | |
8303 | * config/i386/mingw-w64.h: Likewise. | |
8304 | ||
8305 | * cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define. | |
8306 | ||
8307 | 2018-10-12 Peter Bergner <bergner@linux.ibm.com> | |
8308 | ||
8309 | PR rtl-optimization/87600 | |
8310 | * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. | |
8311 | ||
8312 | 2018-10-12 Paul Koning <ni1d@arrl.net> | |
8313 | ||
8314 | * doc/md.texi (doloop_end): Document that the pattern code may | |
8315 | need to check operand mode. | |
8316 | ||
8317 | 2018-10-12 Wilco Dijkstra <wdijkstr@arm.com> | |
8318 | ||
8319 | * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives | |
8320 | to zero-extend between int and floating-point registers. | |
8321 | (load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended | |
8322 | ldp into floating-point registers. Add type and arch attributes. | |
8323 | (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Add arch attribute. | |
8324 | Use f_loads for type attribute. | |
8325 | ||
8326 | 2018-10-11 Martin Sebor <msebor@redhat.com> | |
8327 | ||
8328 | * doc/extend.texi (attribute packed): Correct typos. | |
8329 | ||
8330 | 2018-10-11 Martin Sebor <msebor@redhat.com> | |
8331 | ||
8332 | * doc/extend.texi (attribute flatten): Mention interaction with | |
8333 | noinline. | |
8334 | ||
8335 | 2018-10-11 Jan Hubicka <hubicka@ucw.cz> | |
8336 | ||
8337 | PR target/87156 | |
8338 | * cgraphclones.c (cgraph_node::create_version_clone_with_body): | |
8339 | Set new_decl virtual flag to zero. | |
8340 | ||
8341 | 2018-10-11 Martin Sebor <msebor@redhat.com> | |
8342 | ||
8343 | PR middle-end/87593 | |
8344 | * doc/extend.texi (attribute format_arg): Discuss using multiple | |
8345 | attributes on a single function. | |
8346 | ||
8347 | 2018-10-11 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
8348 | ||
8349 | PR tree-optimization/86829 | |
8350 | * match.pd (sin (atan (x))): New simplification rules. | |
8351 | (cos (atan (x))): Likewise. | |
8352 | * real.c (build_sinatan_real): New function. | |
8353 | * real.h (build_sinatan_real): Prototype. | |
8354 | ||
8355 | 2018-10-11 Will Schmidt <will_schmidt@vnet.ibm.com> | |
8356 | ||
8357 | * config/rs6000/rs6000.c (map_to_integral_tree_type): New helper | |
8358 | function. | |
8359 | (fold_mergeeo_helper): New helper function. | |
8360 | (rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo | |
8361 | intrinsics. Correct some whitespace indentation issues. | |
8362 | ||
8363 | 2018-10-11 Wilco Dijkstra <wdijkstr@arm.com> | |
8364 | ||
8365 | PR target/87511 | |
8366 | * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): | |
8367 | Use HOST_WIDE_INT_1U for shift. | |
8368 | ||
8369 | 2018-10-11 Doug Rupp <rupp@adacore.com> | |
8370 | Olivier Hainque <hainque@adacore.com> | |
8371 | ||
8372 | * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. | |
8373 | Pass --relax to the linker for RTPs. | |
8374 | (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. | |
8375 | ||
8376 | 2018-10-11 Andrew Stubbs <ams@codesourcery.com> | |
8377 | Jan Hubicka <jh@suse.cz> | |
8378 | Martin Jambor <mjambor@suse.cz> | |
8379 | ||
8380 | * print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times | |
8381 | the same elements are repeated rather than printing all of them. | |
8382 | * read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand | |
8383 | "repeated" elements. | |
8384 | * read-rtl-function.c (test_loading_repeat): New function. | |
8385 | (read_rtl_function_c_tests): Call test_loading_repeat. | |
8386 | * rtl-tests.c (test_dumping_repeat): New function. | |
8387 | (rtl_tests_c_tests): Call test_dumping_repeat. | |
8388 | ||
8389 | 2018-10-11 Richard Biener <rguenther@suse.de> | |
8390 | ||
8391 | * config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset, | |
8392 | bdver?_cost): Unify to ... | |
8393 | (bdver_memcpy, bdver_memset, bdver_cost): ... this. | |
8394 | * config/i386/i386.c (processor_cost_table): Adjust. | |
8395 | ||
8396 | 2018-10-10 Eric Botcazou <ebotcazou@adacore.com> | |
8397 | ||
8398 | PR middle-end/87574 | |
8399 | * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on | |
8400 | the thunk when expanding to GIMPLE. | |
8401 | ||
8402 | 2018-10-10 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
8403 | ||
8404 | PR bootstrap/87551 | |
8405 | * varasm.c (mergeable_string_section): Don't try to move zero-length | |
8406 | strings to the merge section. | |
8407 | ||
8408 | 2018-10-10 Uros Bizjak <ubizjak@gmail.com> | |
8409 | ||
8410 | PR target/87573 | |
8411 | * config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter. | |
8412 | ||
8413 | 2018-10-10 Jakub Jelinek <jakub@redhat.com> | |
8414 | ||
8415 | PR target/87550 | |
8416 | * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set | |
8417 | to special_args set. | |
8418 | ||
8419 | 2018-10-10 Richard Biener <rguenther@suse.de> | |
8420 | ||
8421 | * config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df, | |
8422 | reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, | |
8423 | reduc_plus_scal_v4sf): Merge into pattern reducing to half width | |
8424 | and recursing and pattern terminating the recursion on SSE | |
8425 | vector width using ix86_expand_reduc. | |
8426 | (reduc_sminmax_scal_<mode>): Split into part reducing to half | |
8427 | width and recursing and SSE2 vector variant doing the final | |
8428 | reduction with ix86_expand_reduc. | |
8429 | (reduc_uminmax_scal_<mode>): Likewise for the AVX512 variants | |
8430 | with terminating the recursion at AVX level, splitting that | |
8431 | to SSE there. | |
8432 | ||
8433 | 2018-10-09 David Malcolm <dmalcolm@redhat.com> | |
8434 | ||
8435 | * genmatch.c (error_cb): Rename to... | |
8436 | (diagnostic_cb): ...this, converting int params to enums. | |
8437 | (fatal_at): Update for renaming. | |
8438 | (warning_at): Likewise. | |
8439 | (main): Likewise. | |
8440 | * input.c (selftest::ebcdic_execution_charset::apply): | |
8441 | Update for renaming of... | |
8442 | (selftest::ebcdic_execution_charset::on_error): ...this, renaming | |
8443 | to... | |
8444 | (selftest::ebcdic_execution_charset::on_diagnostic): ...this, | |
8445 | converting level and reason to enums. | |
8446 | (class selftest::lexer_error_sink): Rename to... | |
8447 | (class selftest::lexer_test_options): ...this, renaming field | |
8448 | "m_errors" to "m_diagnostics". | |
8449 | (selftest::lexer_test_options::apply): Update for renaming of... | |
8450 | (selftest::lexer_test_options::on_error): ...this, renaming to... | |
8451 | (selftest::lexer_test_options::on_diagnostic): ...this | |
8452 | converting level and reason to enums. | |
8453 | (selftest::test_lexer_string_locations_raw_string_unterminated): | |
8454 | Update for renamings. | |
8455 | * opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for | |
8456 | "reason". | |
8457 | ||
8458 | 2018-10-09 Paul A. Clarke <pc@us.ibm.com> | |
8459 | ||
8460 | * config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers. | |
8461 | * config/rs6000/pmmintrin.h: New file. | |
8462 | ||
8463 | 2018-10-09 Eric Botcazou <ebotcazou@adacore.com> | |
8464 | ||
8465 | PR tree-optimization/86659 | |
8466 | * gimple-match.h (gimple_match_op constructors): Initialize reverse. | |
8467 | ||
8468 | 2018-10-09 Richard Biener <rguenther@suse.de> | |
8469 | ||
8470 | PR tree-optimization/63155 | |
8471 | * tree-ssa-structalias.c: Include tree-ssa.h. | |
8472 | (get_constraint_for_ssa_var): For undefs return nothing_id. | |
8473 | (find_func_aliases): Cleanup PHI handling. | |
8474 | ||
8475 | 2018-10-09 Richard Biener <rguenther@suse.de> | |
8476 | ||
8477 | * tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing | |
8478 | replacements. | |
8479 | ||
8480 | 2018-10-09 Martin Liska <mliska@suse.cz> | |
8481 | ||
8482 | * asan.c (asan_emit_stack_protection): If a stack variable | |
8483 | is located in a same file as current function, then emit | |
8484 | line info into variable definition string. | |
8485 | ||
8486 | 2018-10-08 Eric Botcazou <ebotcazou@adacore.com> | |
8487 | ||
8488 | * print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column | |
8489 | information. | |
8490 | ||
8491 | 2018-10-08 Eric Botcazou <ebotcazou@adacore.com> | |
8492 | ||
8493 | * cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P | |
8494 | on the thunk. | |
8495 | ||
8496 | 2018-10-08 Eric Botcazou <ebotcazou@adacore.com> | |
8497 | ||
8498 | PR tree-optimization/86659 | |
8499 | * gimple-match.h (struct gimple_match_op): Add reverse field. | |
8500 | (gimple_match_op::set_op): New overloaded method. | |
8501 | * gimple-match-head.c (maybe_build_generic_op) <BIT_FIELD_REF>: Set | |
8502 | the REF_REVERSE_STORAGE_ORDER flag on the value. | |
8503 | (gimple_simplify) <GIMPLE_ASSIGN>: For BIT_FIELD_REF, propagate the | |
8504 | REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set. | |
8505 | ||
8506 | 2018-10-08 Richard Sandiford <richard.sandiford@arm.com> | |
8507 | ||
8508 | PR middle-end/63155 | |
8509 | * gimple-ssa-backprop.c (backprop::intersect_uses): Use | |
8510 | FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. | |
8511 | ||
8512 | 2018-10-08 H.J. Lu <hongjiu.lu@intel.com> | |
8513 | ||
8514 | PR target/87517 | |
8515 | * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): | |
8516 | Defined with __builtin_ia32_vfmaddsubpd512_mask. | |
8517 | ||
8518 | 2018-10-08 Richard Biener <rguenther@suse.de> | |
8519 | ||
8520 | * config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads | |
8521 | cost the same as AVX128 ones. | |
8522 | ||
8523 | 2018-10-08 Paul Koning <ni1d@arrl.net> | |
8524 | ||
8525 | * config/pdp11/pdp11-protos.h (output_block_move): Remove. | |
8526 | (expand_block_move): New function. | |
8527 | * config/pdp11/pdp11.c (output_block_move): Remove. | |
8528 | (expand_block_move): New function. | |
8529 | * config/pdp11/pdp11.h (MOVE_RATIO): New definition. | |
8530 | * config/pdp11/pdp11.md (movmemhi): Use expand_block_move. | |
8531 | (*movmemhi1): Remove. | |
8532 | ||
8533 | 2018-10-08 Robin Dapp <rdapp@linux.ibm.com> | |
8534 | ||
8535 | * config/s390/2827.md: Increase latencies for some FP instructions. | |
8536 | ||
8537 | 2018-10-08 Richard Biener <rguenther@suse.de> | |
8538 | ||
8539 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
8540 | Open a dump scope. | |
8541 | * tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it. | |
8542 | * tree-vectorizer.h (dump_stmt_cost): Adjust. | |
8543 | (add_stmt_cost): Dump return value of the hook. | |
8544 | ||
8545 | 2018-10-08 Richard Biener <rguenther@suse.de> | |
8546 | ||
8547 | PR tree-optimization/63155 | |
8548 | * tree-ssa-propagate.c (add_ssa_edge): Do cheap check first. | |
8549 | (ssa_propagation_engine::ssa_propagate): Remove redundant | |
8550 | bitmap bit clearing. | |
8551 | ||
8552 | 2018-10-05 Peter Bergner <bergner@linux.ibm.com> | |
8553 | ||
8554 | PR rtl-optimization/86939 | |
8555 | PR rtl-optimization/87479 | |
8556 | * ira.h (non_conflicting_reg_copy_p): New prototype. | |
8557 | * ira-lives.c (ignore_reg_for_conflicts): New static variable. | |
8558 | (make_hard_regno_dead): Don't add conflicts for register | |
8559 | ignore_reg_for_conflicts. | |
8560 | (make_object_dead): Likewise. | |
8561 | (non_conflicting_reg_copy_p): New function. | |
8562 | (process_bb_node_lives): Set ignore_reg_for_conflicts for copies. | |
8563 | Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM. | |
8564 | * lra-lives.c (ignore_reg_for_conflicts): New static variable. | |
8565 | (make_hard_regno_dead): Don't add conflicts for register | |
8566 | ignore_reg_for_conflicts. Remove special conflict handling of | |
8567 | REAL_PIC_OFFSET_TABLE_REGNUM. Remove now unused argument | |
8568 | check_pic_pseudo_p and update callers. | |
8569 | (mark_pseudo_dead): Don't add conflicts for register | |
8570 | ignore_reg_for_conflicts. | |
8571 | (process_bb_lives): Set ignore_reg_for_conflicts for copies. | |
8572 | ||
8573 | 2018-10-05 Andrew Waterman <andrew@sifive.com> | |
8574 | Jim Wilson <jimw@sifive.com> | |
8575 | ||
8576 | * config/riscv/riscv.md (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): | |
8577 | Add define_expand. Add ! HONOR_SNANS check to current pattern. Add | |
8578 | new pattern using HONOR_SNANS that emits one extra instruction. | |
8579 | ||
8580 | 2018-10-05 Segher Boessenkool <segher@kernel.crashing.org> | |
8581 | ||
8582 | * config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator | |
8583 | patterns): Merge SI and DI patterns to a GPR pattern. | |
8584 | (unnamed define_insn and define_split for record form of that): Merge | |
8585 | to a single define_insn_and_split pattern. | |
8586 | ||
8587 | 2018-10-05 David Malcolm <dmalcolm@redhat.com> | |
8588 | ||
8589 | PR c++/56856 | |
8590 | * input.c (expand_location_to_spelling_point): Add param "aspect" | |
8591 | and use rather than hardcoding LOCATION_ASPECT_CARET. | |
8592 | (get_substring_ranges_for_loc): Handle the case of a single token | |
8593 | within a macro expansion. | |
8594 | * input.h (expand_location_to_spelling_point): Add "aspect" param, | |
8595 | defaulting to LOCATION_ASPECT_CARET. | |
8596 | ||
8597 | 2018-10-05 Paul Koning <ni1d@arrl.net> | |
8598 | ||
8599 | * config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define. | |
8600 | (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define. | |
8601 | (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. | |
8602 | (pdp11_guard_type): New function. | |
8603 | ||
8604 | 2018-10-05 Paul Koning <ni1d@arrl.net> | |
8605 | ||
8606 | * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32. | |
8607 | * config/pdp11/pdp11.opt (mfloat32): Remove. | |
8608 | (mfloat64): Remove. | |
8609 | * doc/invoke.texi (pdp11 -mfloat32): Remove: | |
8610 | (pdp11 -mfloat64): Remove. | |
8611 | ||
8612 | 2018-10-05 Uros Bizjak <ubizjak@gmail.com> | |
8613 | ||
8614 | * config/i386/i386.md (*cmpxf_cc_i387): Remove pattern. | |
8615 | (*cmp<mode>_cc_i387): Ditto. | |
8616 | (*cmpu<mode>_cc_i387): Ditto. | |
8617 | (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. | |
8618 | * config/i386/i386.c (ix86_expand_fp_compare): Remove | |
8619 | "scratch" argument. | |
8620 | <case IX86_FPCMP_SAHF>: Do not generate pattern with HImode clobber. | |
8621 | Emit x86_sahf_1 pattern. | |
8622 | (ix86_expand_compare): Update call to ix86_expand_fp_compare. | |
8623 | (ix86_expand_carry_flag_compare): Ditto. | |
8624 | ||
8625 | 2018-10-05 Uros Bizjak <ubizjak@gmail.com> | |
8626 | ||
8627 | * config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate | |
8628 | to reg_or_0_operand. Add "C" constraint. | |
8629 | (*cmpxf_cc_i387): Ditto. | |
8630 | (*cmp<mode>_i387): Change operand 2 predicate | |
8631 | to nonimm_or_0_operand. Add "C" constraint. | |
8632 | (*cmp<mode>_cc_i387): Ditto. | |
8633 | (*cmp<mode>_0_i387): Remove insn pattern. | |
8634 | (*cmp<mode>_0_cc_i387): Ditto. | |
8635 | ||
8636 | 2018-10-05 Uros Bizjak <ubizjak@gmail.com> | |
8637 | ||
8638 | * config/i386/constraints.md ("C"): Do not depend on TARGET_SSE. | |
8639 | * config/i386/predicates.md (nonimm_or_0_operand): Rename | |
8640 | from vector_move_operand. Update all uses. | |
8641 | ||
8642 | 2018-10-05 Martin Sebor <msebor@redhat.com> | |
8643 | ||
8644 | PR tree-optimization/87490 | |
8645 | * builtins.c (expand_builtin_strnlen): Handle a null data.decl | |
8646 | consistently. | |
8647 | ||
8648 | 2018-10-05 Richard Biener <rguenther@suse.de> | |
8649 | ||
8650 | PR tree-optimization/63155 | |
8651 | * tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess | |
8652 | vertical space in dumpfiles. | |
8653 | * tree-ssa-propagate.h | |
8654 | (ssa_propagation_engine::process_ssa_edge_worklist): Remove. | |
8655 | * tree-ssa-propagate.c (cfg_blocks_back): New global. | |
8656 | (ssa_edge_worklist_back): Likewise. | |
8657 | (curr_order): Likewise. | |
8658 | (cfg_blocks_get): Remove abstraction. | |
8659 | (cfg_blocks_add): Likewise. | |
8660 | (cfg_blocks_empty_p): Likewise. | |
8661 | (add_ssa_edge): Add to current or next worklist based on | |
8662 | RPO index. | |
8663 | (add_control_edge): Likewise. | |
8664 | (ssa_propagation_engine::process_ssa_edge_worklist): Fold | |
8665 | into ... | |
8666 | (ssa_propagation_engine::ssa_propagate): ... here. Unify | |
8667 | iteration from CFG and SSA edge worklist so we process | |
8668 | everything in RPO order, prioritizing forward progress | |
8669 | over iteration. | |
8670 | (ssa_prop_init): Allocate new worklists, do not dump | |
8671 | immediate uses. | |
8672 | (ssa_prop_fini): Free new worklists. | |
8673 | ||
8674 | 2018-10-05 Richard Biener <rguenther@suse.de> | |
8675 | ||
8676 | * tree-core.h (tree_block::abstract_flag): Remove. | |
8677 | (tree_block::block_num): Make full 32bits. | |
8678 | * tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT. | |
8679 | * tree.h (BLOCK_ABSTRACT): Remove. | |
8680 | * dwarf2out.c (gen_lexical_block_die): Remove dead code | |
8681 | resulting from BLOCK_ABSTRACT being always false. | |
8682 | (gen_inlined_subroutine_die): Likewise. | |
8683 | (gen_block_die): Likewise. | |
8684 | * tree.c (block_ultimate_origin): Likewise. | |
8685 | * tree-pretty-print.c (dump_block_node): Remove code dealing | |
8686 | with BLOCK_ABSTRACT. | |
8687 | * tree-ssa-live.c (dump_scope_block): Likewise. | |
8688 | * tree-streamer-in.c (unpack_ts_block_value_fields): Likewise. | |
8689 | * tree-streamer-out.c (pack_ts_block_value_fields): Likewise. | |
8690 | ||
8691 | 2018-10-05 Richard Biener <rguenther@suse.de> | |
8692 | ||
8693 | * config/i386/i386.c (ix86_add_stmt_cost): When scalar cost | |
8694 | is asked for initialize mode to the component mode of the | |
8695 | vector type. | |
8696 | ||
8697 | 2018-10-05 H.J. Lu <hongjiu.lu@intel.com> | |
8698 | ||
8699 | PR target/87522 | |
8700 | * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to | |
8701 | assembler for -mavx. | |
8702 | * config/i386/gnu-user64.h (ASM_SPEC): Likewise. | |
8703 | ||
8704 | 2018-10-05 Segher Boessenkool <segher@kernel.crashing.org> | |
8705 | ||
8706 | PR target/87509 | |
8707 | * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use | |
8708 | RS6000_BTM_DFP. | |
8709 | * config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand | |
8710 | to be DImode. When using mffscrn, force the operand to a register. | |
8711 | ||
8712 | 2018-10-04 Uros Bizjak <ubizjak@gmail.com> | |
8713 | ||
8714 | * config/i386/i386.md (*fop_<X87MODEF:mode>_2_i387): Macroize insn | |
8715 | from *fop_<MODEF:mode>_2_i387 and *fop_xf_2_i387 using | |
8716 | X87MODEF mode iterator. | |
8717 | (*fop_<X87MODEF:mode>_3_i387): Macroize insn from | |
8718 | *fop_<MODEF:mode>_3_i387 and *fop_xf_3_i387 using | |
8719 | X87MODEF mode iterator. | |
8720 | ||
8721 | 2018-10-04 Vinay Kumar <vinay.kumar@blackfigtech.com> | |
8722 | ||
8723 | * doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning | |
8724 | -Wno-prio-ctor-dtor. | |
8725 | ||
8726 | 2018-10-04 David Malcolm <dmalcolm@redhat.com> | |
8727 | ||
8728 | * Makefile.in (OBJS): Add opt-problem.o. | |
8729 | * dump-context.h: Include "selftest.h. | |
8730 | (selftest::temp_dump_context): New forward decl. | |
8731 | (class dump_context): Make friend of class | |
8732 | selftest::temp_dump_context. | |
8733 | (dump_context::dump_loc_immediate): New decl. | |
8734 | (class dump_pretty_printer): Move here from dumpfile.c. | |
8735 | (class temp_dump_context): Move to namespace selftest. | |
8736 | (temp_dump_context::temp_dump_context): Add param | |
8737 | "forcibly_enable_dumping". | |
8738 | (selftest::verify_dumped_text): | |
8739 | (ASSERT_DUMPED_TEXT_EQ): Move here from dumpfile.c. | |
8740 | (selftest::verify_item): | |
8741 | (ASSERT_IS_TEXT): Move here from dumpfile.c. | |
8742 | (ASSERT_IS_TREE): Likewise. | |
8743 | (ASSERT_IS_GIMPLE): Likewise. | |
8744 | * dumpfile.c (dump_context::dump_loc): Move immediate dumping | |
8745 | to... | |
8746 | (dump_context::dump_loc_immediate): ...this new function. | |
8747 | (class dump_pretty_printer): Move to dump-context.h. | |
8748 | (dump_switch_p_1): Don't enable MSG_PRIORITY_REEMITTED. | |
8749 | (opt_info_switch_p_1): Enable MSG_PRIORITY_REEMITTED. | |
8750 | (temp_dump_context::temp_dump_context): Move to "selftest" | |
8751 | namespace. Add param "forcibly_enable_dumping", and use it to | |
8752 | conditionalize the use of m_pp; | |
8753 | (selftest::verify_dumped_text): Make non-static. | |
8754 | (ASSERT_DUMPED_TEXT_EQ): Move to dump-context.h. | |
8755 | (selftest::verify_item): Make non-static. | |
8756 | (ASSERT_IS_TEXT): Move to dump-context.h. | |
8757 | (ASSERT_IS_TREE): Likewise. | |
8758 | (ASSERT_IS_GIMPLE): Likewise. | |
8759 | (selftest::test_capture_of_dump_calls): Pass "true" for new | |
8760 | param of temp_dump_context. | |
8761 | * dumpfile.h (enum dump_flag): Add MSG_PRIORITY_REEMITTED, adding | |
8762 | it to MSG_ALL_PRIORITIES. Update values of TDF_COMPARE_DEBUG and | |
8763 | TDF_COMPARE_DEBUG. | |
8764 | * opt-problem.cc: New file. | |
8765 | * opt-problem.h: New file. | |
8766 | * optinfo-emit-json.cc | |
8767 | (selftest::test_building_json_from_dump_calls): Pass "true" for | |
8768 | new param of temp_dump_context. | |
8769 | * optinfo.cc (optinfo_kind_to_dump_flag): New function. | |
8770 | (optinfo::emit_for_opt_problem): New function. | |
8771 | (optinfo::emit): Clarity which emit_item is used. | |
8772 | * optinfo.h (optinfo::get_dump_location): New accessor. | |
8773 | (optinfo::emit_for_opt_problem): New decl. | |
8774 | (optinfo::emit): Make const. | |
8775 | * selftest-run-tests.c (selftest::run_tests): Call | |
8776 | selftest::opt_problem_cc_tests. | |
8777 | * selftest.h (selftest::opt_problem_cc_tests): New decl. | |
8778 | * tree-data-ref.c (dr_analyze_innermost): Convert return type from | |
8779 | bool to opt_result, converting fprintf messages to | |
8780 | opt_result::failure_at calls. Add "stmt" param for use by the | |
8781 | failure_at calls. | |
8782 | (create_data_ref): Pass "stmt" to the dr_analyze_innermost call. | |
8783 | (runtime_alias_check_p): Convert return type from bool to | |
8784 | opt_result, converting dump_printf calls to | |
8785 | opt_result::failure_at, using the statement DDR_A for their | |
8786 | location. | |
8787 | (find_data_references_in_stmt): Convert return type from bool to | |
8788 | opt_result, converting "return false" to opt_result::failure_at | |
8789 | with a new message. | |
8790 | * tree-data-ref.h: Include "opt-problem.h". | |
8791 | (dr_analyze_innermost): Convert return type from bool to opt_result, | |
8792 | and add a const gimple * param. | |
8793 | (find_data_references_in_stmt): Convert return type from bool to | |
8794 | opt_result. | |
8795 | (runtime_alias_check_p): Likewise. | |
8796 | * tree-predcom.c (find_looparound_phi): Pass "init_stmt" to | |
8797 | dr_analyze_innermost. | |
8798 | * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): | |
8799 | Convert return type from bool to opt_result, adding a message for | |
8800 | the PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS zero case. | |
8801 | (vect_analyze_data_ref_dependence): Convert return type from bool | |
8802 | to opt_result. Change sense of return type from "false" | |
8803 | effectively meaning "no problems" to "false" meaning a problem, | |
8804 | so that "return false" becomes "return opt_result::success". | |
8805 | Convert "return true" calls to opt_result::failure_at, using | |
8806 | the location of statement A rather than vect_location. | |
8807 | (vect_analyze_data_ref_dependences): Convert return type from bool | |
8808 | to opt_result. | |
8809 | (verify_data_ref_alignment): Likewise, converting dump_printf_loc | |
8810 | calls to opt_result::failure_at, using the stmt location rather | |
8811 | than vect_location. | |
8812 | (vect_verify_datarefs_alignment): Convert return type from bool | |
8813 | to opt_result. | |
8814 | (vect_enhance_data_refs_alignment): Likewise. Split local "stat" | |
8815 | into multiple more-tightly-scoped copies. | |
8816 | (vect_analyze_data_refs_alignment): Convert return type from bool | |
8817 | to opt_result. | |
8818 | (vect_analyze_data_ref_accesses): Likewise, converting a | |
8819 | "return false" to a "return opt_result::failure_at", adding a | |
8820 | new message. | |
8821 | (vect_prune_runtime_alias_test_list): Convert return type from | |
8822 | bool to opt_result, converting dump_printf_loc to | |
8823 | opt_result::failure_at. Add a %G to show the pertinent statement, | |
8824 | and use the stmt's location rather than vect_location. | |
8825 | (vect_find_stmt_data_reference): Convert return type from | |
8826 | bool to opt_result, converting dump_printf_loc to | |
8827 | opt_result::failure_at, using stmt's location. | |
8828 | (vect_analyze_data_refs): Convert return type from bool to | |
8829 | opt_result. Convert "return false" to "return | |
8830 | opt_result::failure_at", adding messages as needed. | |
8831 | * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Convert return | |
8832 | type from bool to opt_result. | |
8833 | (vect_determine_vf_for_stmt): Likewise. | |
8834 | (vect_determine_vectorization_factor): Likewise, converting | |
8835 | dump_printf_loc to opt_result::failure_at, using location of phi | |
8836 | rather than vect_location. | |
8837 | (vect_analyze_loop_form_1): Convert return type from bool to | |
8838 | opt_result, converting dump_printf_loc calls, retaining the use of | |
8839 | vect_location. | |
8840 | (vect_analyze_loop_form): Convert return type from loop_vec_info | |
8841 | to opt_loop_vec_info. | |
8842 | (vect_analyze_loop_operations): Convert return type from bool to | |
8843 | opt_result, converting dump_printf_loc calls, using the location | |
8844 | of phi/stmt rather than vect_location where available. Convert | |
8845 | various "return false" to "return opt_result::failure_at" with | |
8846 | "unsupported phi" messages. | |
8847 | (vect_get_datarefs_in_loop): Convert return type from bool to | |
8848 | opt_result. Add a message for the | |
8849 | PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS failure. | |
8850 | (vect_analyze_loop_2): Convert return type from bool to | |
8851 | opt_result. Ensure "ok" is set to a opt_result::failure_at before | |
8852 | each "goto again;", adding new messages where needed. | |
8853 | Add "unsupported grouped {store|load}" messages. | |
8854 | (vect_analyze_loop): Convert return type from loop_vec_info to | |
8855 | opt_loop_vec_info. | |
8856 | * tree-vect-slp.c (vect_analyze_slp): Convert return type from | |
8857 | bool to opt_result. | |
8858 | * tree-vect-stmts.c (process_use): Likewise, converting | |
8859 | dump_printf_loc call and using stmt location, rather than | |
8860 | vect_location. | |
8861 | (vect_mark_stmts_to_be_vectorized): Likeise. | |
8862 | (vect_analyze_stmt): Likewise, adding a %G. | |
8863 | (vect_get_vector_types_for_stmt): Convert return type from bool to | |
8864 | opt_result, converting dump_printf_loc calls and using stmt | |
8865 | location, rather than vect_location. | |
8866 | (vect_get_mask_type_for_stmt): Convert return type from tree to | |
8867 | opt_tree, converting dump_printf_loc calls and using stmt location. | |
8868 | * tree-vectorizer.c: Include "opt-problem.h. | |
8869 | (try_vectorize_loop_1): Flag "Analyzing loop at" dump message as | |
8870 | MSG_PRIORITY_INTERNALS. Convert local "loop_vinfo" from | |
8871 | loop_vec_info to opt_loop_vec_info. If if fails, and dumping is | |
8872 | enabled, use it to report at the top level "couldn't vectorize | |
8873 | loop" followed by the problem. | |
8874 | * tree-vectorizer.h (opt_loop_vec_info): New typedef. | |
8875 | (vect_mark_stmts_to_be_vectorized): Convert return type from bool | |
8876 | to opt_result. | |
8877 | (vect_analyze_stmt): Likewise. | |
8878 | (vect_get_vector_types_for_stmt): Likewise. | |
8879 | (tree vect_get_mask_type_for_stmt): Likewise. | |
8880 | (vect_analyze_data_ref_dependences): Likewise. | |
8881 | (vect_enhance_data_refs_alignment): Likewise. | |
8882 | (vect_analyze_data_refs_alignment): Likewise. | |
8883 | (vect_verify_datarefs_alignment): Likewise. | |
8884 | (vect_analyze_data_ref_accesses): Likewise. | |
8885 | (vect_prune_runtime_alias_test_list): Likewise. | |
8886 | (vect_find_stmt_data_reference): Likewise. | |
8887 | (vect_analyze_data_refs): Likewise. | |
8888 | (vect_analyze_loop): Convert return type from loop_vec_info to | |
8889 | opt_loop_vec_info. | |
8890 | (vect_analyze_loop_form): Likewise. | |
8891 | (vect_analyze_slp): Convert return type from bool to opt_result. | |
8892 | ||
8893 | 2018-10-04 David Malcolm <dmalcolm@redhat.com> | |
8894 | ||
8895 | * doc/invoke.texi (-fopt-info): Document new "internals" | |
8896 | sub-option. | |
8897 | * dump-context.h (dump_context::apply_dump_filter_p): New decl. | |
8898 | * dumpfile.c (dump_options): Update for renaming of MSG_ALL to | |
8899 | MSG_ALL_KINDS. | |
8900 | (optinfo_verbosity_options): Add "internals". | |
8901 | (kind_as_string): Update for renaming of MSG_ALL to MSG_ALL_KINDS. | |
8902 | (dump_context::apply_dump_filter_p): New member function. | |
8903 | (dump_context::dump_loc): Use apply_dump_filter_p rather than | |
8904 | explicitly masking the dump_kind. | |
8905 | (dump_context::begin_scope): Increment the scope depth first. Use | |
8906 | apply_dump_filter_p rather than explicitly masking the dump_kind. | |
8907 | (dump_context::emit_item): Use apply_dump_filter_p rather than | |
8908 | explicitly masking the dump_kind. | |
8909 | (dump_dec): Likewise. | |
8910 | (dump_hex): Likewise. | |
8911 | (dump_switch_p_1): Default to MSG_ALL_PRIORITIES. | |
8912 | (opt_info_switch_p_1): Default to MSG_PRIORITY_USER_FACING. | |
8913 | (opt_info_switch_p): Update handling of default | |
8914 | MSG_OPTIMIZED_LOCATIONS to cope with default of | |
8915 | MSG_PRIORITY_USER_FACING. | |
8916 | (dump_basic_block): Use apply_dump_filter_p rather than explicitly | |
8917 | masking the dump_kind. | |
8918 | (selftest::test_capture_of_dump_calls): Update test_dump_context | |
8919 | instances to use MSG_ALL_KINDS | MSG_PRIORITY_USER_FACING rather | |
8920 | than MSG_ALL. Generalize scope test to be run at all four | |
8921 | combinations of with/without MSG_PRIORITY_USER_FACING and | |
8922 | MSG_PRIORITY_INTERNALS, adding examples of explicit priority | |
8923 | for each of the two values. | |
8924 | * dumpfile.h (enum dump_flag): Add comment about the MSG_* flags. | |
8925 | Rename MSG_ALL to MSG_ALL_KINDS. Add MSG_PRIORITY_USER_FACING, | |
8926 | MSG_PRIORITY_INTERNALS, and MSG_ALL_PRIORITIES, updating the | |
8927 | values for TDF_COMPARE_DEBUG and TDF_ALL_VALUES. | |
8928 | (AUTO_DUMP_SCOPE): Add a note to the comment about the interaction | |
8929 | with MSG_PRIORITY_*. | |
8930 | * tree-vect-loop-manip.c (vect_loop_versioning): Mark versioning | |
8931 | dump messages as MSG_PRIORITY_USER_FACING. | |
8932 | * tree-vectorizer.h (DUMP_VECT_SCOPE): Add a note to the comment | |
8933 | about the interaction with MSG_PRIORITY_*. | |
8934 | ||
8935 | 2018-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
8936 | ||
8937 | * varasm.c (output_constant): Add new parameter merge_strings. | |
8938 | Make strings properly zero terminated in merge string sections. | |
8939 | (mergeable_string_section): Don't fail if the last char is non-zero. | |
8940 | (assemble_variable_contents): Handle merge string sections. | |
8941 | (assemble_variable): Likewise. | |
8942 | (assemble_constant_contents): Likewise. | |
8943 | (output_constant_def_contents): Likewise. | |
8944 | (output_constructor_array_range, | |
8945 | output_constructor_regular_field): Adjust call to output_constant. | |
8946 | (output_object_block): Adjust call to assemble_constant_contents | |
8947 | and assemble_variable_contents. | |
8948 | ||
8949 | 2018-10-04 Martin Liska <mliska@suse.cz> | |
8950 | ||
8951 | PR c/87483 | |
8952 | * cgraphunit.c (process_function_and_variable_attributes): | |
8953 | Warn about a function with alias attribute and a body. | |
8954 | ||
8955 | 2018-10-04 Martin Liska <mliska@suse.cz> | |
8956 | ||
8957 | PR ipa/82625 | |
8958 | * multiple_target.c (redirect_to_specific_clone): New function. | |
8959 | (ipa_target_clone): Use it. | |
8960 | * tree-inline.c: Fix comment. | |
8961 | ||
8962 | 2018-10-04 David Malcolm <dmalcolm@redhat.com> | |
8963 | ||
8964 | * dumpfile.c (gcc::dump_manager::dump_manager): Initialize new | |
8965 | fields. | |
8966 | (gcc::dump_manager::~dump_manager): Free m_optinfo_filename. | |
8967 | (gcc::dump_manager::register_pass): New member function, adapted | |
8968 | from loop body in gcc::pass_manager::register_pass, adding a | |
8969 | call to update_dfi_for_opt_info. | |
8970 | (gcc::dump_manager::opt_info_enable_passes): Store the | |
8971 | -fopt-info options into the new fields. Move the loop | |
8972 | bodies into... | |
8973 | (gcc::dump_manager::update_dfi_for_opt_info): ...this new member | |
8974 | function. | |
8975 | * dumpfile.h (struct opt_pass): New forward decl. | |
8976 | (gcc::dump_manager::register_pass): New decl. | |
8977 | (gcc::dump_manager::update_dfi_for_opt_info): New decl. | |
8978 | (class gcc::dump_manager): Add fields "m_optgroup_flags", | |
8979 | "m_optinfo_flags", and "m_optinfo_filename". | |
8980 | * passes.c (gcc::pass_manager::register_pass): Move all of the | |
8981 | dump-handling code to gcc::dump_manager::register_pass. | |
8982 | ||
8983 | 2018-10-04 Peter Bergner <bergner@linux.ibm.com> | |
8984 | ||
8985 | PR rtl-optimization/87466 | |
8986 | * target.def (setjmp_preserves_nonvolatile_regs_p): New target hook. | |
8987 | * doc/tm.texi.in (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): New hook. | |
8988 | * doc/tm.texi: Regenerate. | |
8989 | * ira-lives.c (process_bb_node_lives): Use the new target hook. | |
8990 | * lra-lives.c (process_bb_lives): Likewise. | |
8991 | * config/rs6000/rs6000.c (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): | |
8992 | Define. | |
8993 | ||
8994 | 2018-10-04 Tamar Christina <tamar.christina@arm.com> | |
8995 | ||
8996 | * params.c (add_params): Fix initialization. | |
8997 | ||
8998 | 2018-10-04 Martin Liska <mliska@suse.cz> | |
8999 | ||
9000 | PR gcov-profile/84107 | |
9001 | * tree-profile.c (init_ic_make_global_vars): | |
9002 | Remove ic_void_ptr_var and ic_gcov_type_ptr_var. | |
9003 | Come up with new ic_tuple* variables. Emit | |
9004 | __gcov_indirect_call{,_topn} variables. | |
9005 | (gimple_gen_ic_profiler): Access the variable | |
9006 | and emit gimple. | |
9007 | (gimple_gen_ic_func_profiler): Access | |
9008 | __gcov_indirect_call.callee field. | |
9009 | (gimple_init_gcov_profiler): Use ptr_type_node. | |
9010 | * value-prof.c (gimple_ic): Use ptr_type_node. | |
9011 | ||
9012 | 2018-10-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
9013 | ||
9014 | PR tree-optimization/85787 | |
9015 | * ipa-pure-const.c (malloc_candidate_p_1): Move most of | |
9016 | malloc_candidate_p into this function and add support for | |
9017 | detecting multiple phis. | |
9018 | (DUMP_AND_RETURN): Move from malloc_candidate_p into top-level macro. | |
9019 | ||
9020 | 2018-10-04 Martin Liska <mliska@suse.cz> | |
9021 | ||
9022 | PR ipa/87491 | |
9023 | * ipa-inline.c (inline_to_all_callers_1): | |
9024 | Call ultimate_alias_target for node being inlined. | |
9025 | ||
9026 | 2018-10-03 Jeff Law <law@redhat.com> | |
9027 | ||
9028 | * gimple-ssa-sprintf.c (format_string): Do not hardcode size of | |
9029 | target's wchar_t. | |
9030 | * tree.c (get_typenode_from_name): Moved from fortran/trans-types.c. | |
9031 | * tree.h (get_typenode_from_name): Prototype. | |
9032 | ||
9033 | 2018-10-03 Uros Bizjak <ubizjak@gmail.com> | |
9034 | ||
9035 | * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): | |
9036 | Change operand 2 predicate to nonimmediate_operand. | |
9037 | (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. | |
9038 | ||
9039 | 2018-10-03 Martin Sebor <msebor@redhat.com> | |
9040 | Jeff Law <law@redhat.com> | |
9041 | ||
9042 | * gimple-ssa-sprintf.c (struct fmtresult): Add new member and | |
9043 | initialize it. | |
9044 | (get_string_length): Detect unterminated arrays. | |
9045 | (format_string): Same. | |
9046 | (format_directive): Warn about unterminated arrays. | |
9047 | (handle_gimple_call): Mark statements with no_warning as needed. | |
9048 | ||
9049 | 2018-10-03 Jim Wilson <jimw@sifive.com> | |
9050 | ||
9051 | * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): For ABI_ILP32E, | |
9052 | also define __riscv_abi_rve. Delete trailing white space. | |
9053 | ||
9054 | 2018-10-03 Paul Koning <ni1d@arrl.net> | |
9055 | ||
9056 | Enable LRA register allocator for PDP11. | |
9057 | * config/pdp11/constraints.md (Q): Use define_memory_constraint. | |
9058 | (R): Likewise. | |
9059 | (D): Likewise. | |
9060 | * config/pdp11/pdp11.c (pdp11_lra_p): New function. | |
9061 | * config/pdp11/pdp11.opt (-mlra): New option. | |
9062 | * doc/invoke.texi (PDP-11 Options): Document -mlra. | |
9063 | ||
9064 | 2018-10-03 Uros Bizjak <ubizjak@gmail.com> | |
9065 | ||
9066 | * config/i386/i386.md (*<absneg:code>extendsfdf2): Remove. | |
9067 | (*<absneg:code>extend<mode>xf2): Ditto. | |
9068 | ||
9069 | 2018-10-03 Aldy Hernandez <aldyh@redhat.com> | |
9070 | ||
9071 | PR tree-optimization/87415 | |
9072 | * tree-vrp.c (set_value_range_with_overflow): Special case one bit | |
9073 | precision fields. | |
9074 | ||
9075 | 2018-10-02 Jeff Law <law@redhat.com> | |
9076 | ||
9077 | * gimple-fold.c (get_range_strlen): Only set *nonstr when | |
9078 | an unterminated string is discovered. Bubble up range | |
9079 | even for unterminated strings. | |
9080 | (gimple_fold_builtin_strlen): Do not fold if get_range_strlen | |
9081 | indicates the string was not terminated via NONSTR. | |
9082 | ||
9083 | 2018-10-03 Aldy Hernandez <aldyh@redhat.com> | |
9084 | ||
9085 | * tree-vrp.c (extract_range_from_unary_expr): Special case all | |
9086 | pointer conversions. | |
9087 | Do not do anything special for anti-ranges. | |
9088 | ||
9089 | 2018-10-03 Jérôme Lambourg <lambourg@adacore.com> | |
9090 | ||
9091 | * config/arm/vxworks.h (ARM_TARGET2_DWARF_FORMAT): Adjust to | |
9092 | DW_EH_PE_pcrel | DW_EH_PE_indirect for RTPs. | |
9093 | ||
9094 | 2018-10-03 Martin Liska <mliska@suse.cz> | |
9095 | ||
9096 | PR gcov-profile/86109 | |
9097 | * coverage.c (coverage_begin_function): Do not | |
9098 | mark lambdas as artificial. | |
9099 | * tree-core.h (struct GTY): Remove tm_clone_flag | |
9100 | and introduce new lambda_function. | |
9101 | * tree.h (DECL_LAMBDA_FUNCTION): New macro. | |
9102 | ||
9103 | 2018-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> | |
9104 | ||
9105 | PR target/87474 | |
9106 | * config/rs6000/rs6000-string.c (expand_strn_compare): Check that both | |
9107 | P8_VECTOR and VSX are enabled. | |
9108 | ||
9109 | 2018-10-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
9110 | ||
9111 | * config/s390/driver-native.c (s390_host_detect_local_cpu): Add | |
9112 | 0x3907 as CPU model number. | |
9113 | ||
9114 | 2018-10-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
9115 | ||
9116 | * common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14. | |
9117 | * config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to | |
9118 | PF_Z14. Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14, | |
9119 | TARGET_CPU_ARCH12_P to TARGET_CPU_Z14_P, TARGET_ARCH12 to | |
9120 | TARGET_Z14, and TARGET_ARCH12_P to TARGET_Z14_P. | |
9121 | * config/s390/s390.md: Likewise. Rename also the cpu attribute | |
9122 | value from arch12 to z14. | |
9123 | ||
9124 | 2018-10-02 Uros Bizjak <ubizjak@gmail.com> | |
9125 | ||
9126 | * config/i386/i386.md (fxam<mode>2_i387_with_temp): Remove. | |
9127 | (isinfxf2): Ditto. | |
9128 | (isinf<mode>2): Ditto. | |
9129 | ||
9130 | 2018-10-02 Uros Bizjak <ubizjak@gmail.com> | |
9131 | ||
9132 | * config/i386/i386.c (ix86_emit_i387_round): Extend op1 to XFmode | |
9133 | before emitting fxam. Perform calculations in XFmode. | |
9134 | ||
9135 | 2018-10-02 Marc Glisse <marc.glisse@inria.fr> | |
9136 | ||
9137 | * match.pd (((X /[ex] A) +- B) * A): New transformation. | |
9138 | ||
9139 | 2018-10-02 Marc Glisse <marc.glisse@inria.fr> | |
9140 | ||
9141 | PR middle-end/87319 | |
9142 | * fold-const.c (fold_plusminus_mult_expr): Handle complex and vectors. | |
9143 | * tree.c (signed_or_unsigned_type_for): Handle complex. | |
9144 | ||
9145 | 2018-10-02 Jeff Law <law@redhat.com> | |
9146 | ||
9147 | * gimple-fold.c (get_range_strlen): Remove dead code. | |
9148 | ||
9149 | 2018-10-02 Martin Sebor <msebor@redhat.com> | |
9150 | Jeff Law <law@redhat.com> | |
9151 | ||
9152 | * builtins.c (unterminated_array): Add new arguments. | |
9153 | If argument is not terminated, bubble up size and exact | |
9154 | state to callers. | |
9155 | (expand_builtin_strnlen): Detect, avoid expanding | |
9156 | and diagnose unterminated arrays. | |
9157 | (c_strlen): Fill in offset of start of unterminated strings. | |
9158 | * builtins.h (unterminated_array): Update prototype. | |
9159 | ||
9160 | 2018-10-02 Richard Biener <rguenther@suse.de> | |
9161 | ||
9162 | * config/i386/sse.md (reduc_plus_scal_v4df): Avoid the use | |
9163 | of haddv4df, first reduce to SSE width and exploit the fact | |
9164 | that we only need element zero with the reduction result. | |
9165 | (reduc_plus_scal_v2df): Likewise. | |
9166 | ||
9167 | 2018-10-02 Eric Botcazou <ebotcazou@adacore.com> | |
9168 | ||
9169 | * dojump.h (do_jump): Delete. | |
9170 | (do_jump_1): Likewise. | |
9171 | (split_comparison): Move around. | |
9172 | * dojump.c (do_jump): Make static. | |
9173 | (do_jump_1): Likewise. | |
9174 | (jumpifnot): Move around. | |
9175 | (jumpifnot_1): Likewise. | |
9176 | (jumpif): Likewise. | |
9177 | (jumpif_1): Likewise. | |
9178 | * expr.c (expand_expr_real_1): Call jumpif[not] instead of do_jump. | |
9179 | ||
9180 | 2018-10-02 Eric Botcazou <ebotcazou@adacore.com> | |
9181 | ||
9182 | * reorg.c (make_return_insns): Use emit_copy_of_insn_after for the | |
9183 | insns in the delay slot and add_insn_after for the jump insn. | |
9184 | ||
9185 | 2018-10-02 Richard Biener <rguenther@suse.de> | |
9186 | ||
9187 | * tree-inline.c (expand_call_inline): Use the location of | |
9188 | the callee declaration for the inline-entry marker. | |
9189 | * final.c (notice_source_line): Remove special-casing of | |
9190 | NOTE_INSN_INLINE_ENTRY. | |
9191 | ||
9192 | 2018-10-01 Carl Love <cel@us.ibm.com> | |
9193 | ||
9194 | PR 69431 | |
9195 | * config/rs6000/rs6000-builtin.def (__builtin_mffsl): New. | |
9196 | (__builtin_mtfsb0): New. | |
9197 | (__builtin_mtfsb1): New. | |
9198 | ( __builtin_set_fpscr_rn): New. | |
9199 | (__builtin_set_fpscr_drn): New. | |
9200 | * config/rs6000/rs6000.c (rs6000_expand_mtfsb_builtin): Add. | |
9201 | (rs6000_expand_set_fpscr_rn_builtin): Add. | |
9202 | (rs6000_expand_set_fpscr_drn_builtin): Add. | |
9203 | (rs6000_expand_builtin): Add case statement entries for | |
9204 | RS6000_BUILTIN_MTFSB0, RS6000_BUILTIN_MTFSB1, | |
9205 | RS6000_BUILTIN_SET_FPSCR_RN, RS6000_BUILTIN_SET_FPSCR_DRN, | |
9206 | RS6000_BUILTIN_MFFSL. | |
9207 | (rs6000_init_builtins): Add ftype initialization and def_builtin | |
9208 | calls for __builtin_mffsl, __builtin_mtfsb0, __builtin_mtfsb1, | |
9209 | __builtin_set_fpscr_rn, __builtin_set_fpscr_drn. | |
9210 | * config/rs6000.md (rs6000_mtfsb0, rs6000_mtfsb1, rs6000_mffscrn, | |
9211 | rs6000_mffscdrn): Add define_insn. | |
9212 | (rs6000_set_fpscr_rn, rs6000_set_fpscr_drn): Add define_expand. | |
9213 | * doc/extend.texi: Add documentation for the builtins. | |
9214 | ||
9215 | 2018-10-01 Richard Biener <rguenther@suse.de> | |
9216 | ||
9217 | PR tree-optimization/87465 | |
9218 | * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo | |
9219 | causing branch miscounts. | |
9220 | ||
9221 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9222 | ||
9223 | * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAM, | |
9224 | aarch64_option_default_param): New. | |
9225 | (params.h): Include. | |
9226 | (TARGET_OPTION_VALIDATE_PARAM, aarch64_option_validate_param): New. | |
9227 | * config/aarch64/aarch64.c (aarch64_override_options_internal): Simplify | |
9228 | stack-clash protection validation code. | |
9229 | ||
9230 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9231 | ||
9232 | * params.c (validate_param): New. | |
9233 | (add_params): Use it. | |
9234 | (set_param_value): Refactor param validation into validate_param. | |
9235 | (diagnostic.h): Include. | |
9236 | * diagnostic.h (diagnostic_ready_p): New. | |
9237 | ||
9238 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9239 | ||
9240 | * params.c (set_param_value): | |
9241 | Add index of parameter being validated. | |
9242 | * common/common-target.def (option_validate_param): New. | |
9243 | * common/common-targhooks.h (default_option_validate_param): New. | |
9244 | * common/common-targhooks.c (default_option_validate_param): New. | |
9245 | * doc/tm.texi.in (TARGET_OPTION_VALIDATE_PARAM): New. | |
9246 | * doc/tm.texi: Regenerate. | |
9247 | ||
9248 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9249 | ||
9250 | PR target/86486 | |
9251 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
9252 | Add validation for stack-clash parameters and set defaults. | |
9253 | ||
9254 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9255 | ||
9256 | PR target/86486 | |
9257 | * configure.ac: Add stack-clash-protection-guard-size. | |
9258 | * doc/install.texi: Document it. | |
9259 | * config.in (DEFAULT_STK_CLASH_GUARD_SIZE): New. | |
9260 | * params.def: Update comment for guard-size. | |
9261 | (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE, | |
9262 | PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Update description. | |
9263 | * configure: Regenerate. | |
9264 | ||
9265 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9266 | ||
9267 | PR target/86486 | |
9268 | * config/aarch64/aarch64.h (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS, | |
9269 | STACK_DYNAMIC_OFFSET): New. | |
9270 | * config/aarch64/aarch64.c (aarch64_layout_frame): | |
9271 | Update outgoing args size. | |
9272 | (aarch64_stack_clash_protection_alloca_probe_range, | |
9273 | TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. | |
9274 | ||
9275 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9276 | ||
9277 | PR target/86486 | |
9278 | * explow.c (anti_adjust_stack_and_probe_stack_clash): Support custom | |
9279 | probe ranges. | |
9280 | * target.def (stack_clash_protection_alloca_probe_range): New. | |
9281 | (stack_clash_protection_final_dynamic_probe): Remove. | |
9282 | * targhooks.h (default_stack_clash_protection_alloca_probe_range) New. | |
9283 | (default_stack_clash_protection_final_dynamic_probe): Remove. | |
9284 | * targhooks.c: Likewise. | |
9285 | * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. | |
9286 | (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): Remove. | |
9287 | * doc/tm.texi: Regenerate. | |
9288 | ||
9289 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9290 | ||
9291 | PR target/86486 | |
9292 | * config/aarch64/aarch64-protos.h (aarch64_output_probe_sve_stack_clash): New. | |
9293 | * config/aarch64/aarch64.c (aarch64_output_probe_sve_stack_clash, | |
9294 | aarch64_clamp_to_uimm12_shift): New. | |
9295 | (aarch64_allocate_and_probe_stack_space): Add SVE specific section. | |
9296 | * config/aarch64/aarch64.md (probe_sve_stack_clash): New. | |
9297 | ||
9298 | 2018-10-01 Tamar Christina <tamar.christina@arm.com> | |
9299 | ||
9300 | PR target/86486 | |
9301 | * config/aarch64/aarch64.c (aarch64_layout_frame): Add assert. | |
9302 | ||
9303 | 2018-10-01 Jeff Law <law@redhat.com> | |
9304 | Richard Sandiford <richard.sandiford@linaro.org> | |
9305 | Tamar Christina <tamar.christina@arm.com> | |
9306 | ||
9307 | PR target/86486 | |
9308 | * config/aarch64/aarch64.md | |
9309 | (probe_stack_range): Add k (SP) constraint. | |
9310 | * config/aarch64/aarch64.h (STACK_CLASH_CALLER_GUARD, | |
9311 | STACK_CLASH_MAX_UNROLL_PAGES): New. | |
9312 | * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Emit | |
9313 | stack probes for stack clash. | |
9314 | (aarch64_allocate_and_probe_stack_space): New. | |
9315 | (aarch64_expand_prologue): Use it. | |
9316 | (aarch64_expand_epilogue): Likewise and update IP regs re-use criteria. | |
9317 | (aarch64_sub_sp): Add emit_move_imm optional param. | |
9318 | ||
9319 | 2018-10-01 MCC CS <deswurstes@users.noreply.github.com> | |
9320 | ||
9321 | PR tree-optimization/87261 | |
9322 | * match.pd: Remove trailing whitespace. | |
9323 | Add (x & y) | ~(x | y) -> ~(x ^ y), | |
9324 | (~x | y) ^ (x ^ y) -> x | ~y and (x ^ y) | ~(x | y) -> ~(x & y) | |
9325 | ||
9326 | 2018-10-01 Claudiu Zissulescu <claziss@synopsys.com> | |
9327 | ||
9328 | * config/arc/arc.md (*add_n): Clean up pattern, update instruction | |
9329 | constraints. | |
9330 | (ashlsi3_insn): Update instruction constraints. | |
9331 | (ashrsi3_insn): Likewise. | |
9332 | (rotrsi3): Likewise. | |
9333 | (add_shift): Likewise. | |
9334 | * config/arc/constraints.md (Csz): New 32 bit constraint. It | |
9335 | avoids placing in the limm field small constants which, otherwise, | |
9336 | could end into a small instruction. | |
9337 | ||
9338 | 2018-10-01 Claudiu Zissulescu <claziss@synopsys.com> | |
9339 | ||
9340 | * config/arc/arc.md (maddsidi4_split): Don't use dmac if the | |
9341 | destination register is not odd-even. | |
9342 | (umaddsidi4_split): Likewise. | |
9343 | ||
9344 | 2018-10-01 Richard Biener <rguenther@suse.de> | |
9345 | ||
9346 | * tree-inline.c (expand_call_inline): Store origin of fn | |
9347 | in BLOCK_ABSTRACT_ORIGIN for the inline BLOCK. | |
9348 | * tree.c (block_ultimate_origin): Simplify and do some | |
9349 | checking. | |
9350 | ||
9351 | 2018-09-30 Uros Bizjak <ubizjak@gmail.com> | |
9352 | ||
9353 | * config/i386/mmx.md (EMMS): New int iterator. | |
9354 | (emms): New int attribute. | |
9355 | (mmx_<emms>): Macroize insn from *mmx_emms and *mmx_femms using | |
9356 | EMMS int iterator. Explicitly declare clobbers. | |
9357 | (mmx_emms): Remove expander. | |
9358 | (mmx_femms): Ditto. | |
9359 | * config/i386/predicates.md (emms_operation): Remove predicate. | |
9360 | (vzeroall_pattern): New predicate. | |
9361 | (vzeroupper_pattern): Rename from vzeroupper_operation. | |
9362 | * config/i386/i386.c (ix86_avx_u128_mode_after): Use | |
9363 | vzeroupper_pattern and vzeroall_pattern predicates. | |
9364 | ||
9365 | 2018-09-30 Peter Bergner <bergner@linux.ibm.com> | |
9366 | ||
9367 | PR rtl-optimization/86939 | |
9368 | * ira-lives.c (make_hard_regno_born): Rename from this... | |
9369 | (make_hard_regno_live): ... to this. Remove update to conflict | |
9370 | information. Update function comment. | |
9371 | (make_hard_regno_dead): Add conflict information update. Update | |
9372 | function comment. | |
9373 | (make_object_born): Rename from this... | |
9374 | (make_object_live): ... to this. Remove update to conflict information. | |
9375 | Update function comment. | |
9376 | (make_object_dead): Add conflict information update. Update function | |
9377 | comment. | |
9378 | (mark_pseudo_regno_live): Call make_object_live. | |
9379 | (mark_pseudo_regno_subword_live): Likewise. | |
9380 | (mark_hard_reg_dead): Update function comment. | |
9381 | (mark_hard_reg_live): Call make_hard_regno_live. | |
9382 | (process_bb_node_lives): Likewise. | |
9383 | * lra-lives.c (make_hard_regno_born): Rename from this... | |
9384 | (make_hard_regno_live): ... to this. Remove update to conflict | |
9385 | information. Remove now uneeded check_pic_pseudo_p argument. | |
9386 | Update function comment. | |
9387 | (make_hard_regno_dead): Add check_pic_pseudo_p argument and add update | |
9388 | to conflict information. Update function comment. | |
9389 | (mark_pseudo_live): Remove update to conflict information. Update | |
9390 | function comment. | |
9391 | (mark_pseudo_dead): Add conflict information update. | |
9392 | (mark_regno_live): Call make_hard_regno_live. | |
9393 | (mark_regno_dead): Call make_hard_regno_dead with new arguement. | |
9394 | (process_bb_lives): Call make_hard_regno_live and make_hard_regno_dead. | |
9395 | ||
9396 | 2018-09-29 H.J. Lu <hongjiu.lu@intel.com> | |
9397 | ||
9398 | PR target/87370 | |
9399 | * config/i386/i386.c (construct_container): Use TImode for | |
9400 | BLKmode values in 2 integer registers. | |
9401 | ||
9402 | 2018-09-29 Jeff Law <law@redhat.com> | |
9403 | ||
9404 | * builtins.c (unterminated_array): Pass in c_strlen_data * to | |
9405 | c_strlen rather than just a tree *. | |
9406 | (c_strlen): Change NONSTR argument to a c_strlen_data pointer. | |
9407 | Update recursive calls appropriately. If caller did not provide a | |
9408 | suitable data pointer, create a local one. When a non-terminated | |
9409 | string is discovered, bubble up information about the string via the | |
9410 | c_strlen_data object. | |
9411 | * builtins.h (c_strlen): Update prototype. | |
9412 | (c_strlen_data): New structure. | |
9413 | * gimple-fold.c (get_range_strlen): Update calls to c_strlen. | |
9414 | For a type 2 call, if c_strlen indicates a non-terminated string | |
9415 | use the length of the non-terminated string. | |
9416 | (gimple_fold_builtin_stpcpy): Update calls to c_strlen. | |
9417 | ||
9418 | 2018-09-29 Jakub Jelinek <jakub@redhat.com> | |
9419 | ||
9420 | PR target/87467 | |
9421 | * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use | |
9422 | __m512d type for __A argument rather than __m512. | |
9423 | ||
9424 | 2018-09-28 John David Anglin <danglin@gcc.gnu.org> | |
9425 | ||
9426 | * match.pd (simple_comparison): Don't optimize if either operand is | |
9427 | a function pointer when target needs function pointer canonicalization. | |
9428 | ||
9429 | 2018-09-28 Segher Boessenkool <segher@kernel.crashing.org> | |
9430 | ||
9431 | * config/rs6000/driver-rs6000.c (asm_names): Adjust the entries for | |
9432 | power5 .. power9 to remove indirection. | |
9433 | * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC, ASM_CPU_POWER6_SPEC, | |
9434 | ASM_CPU_POWER7_SPEC, ASM_CPU_POWER8_SPEC, ASM_CPU_POWER9_SPEC, | |
9435 | ASM_CPU_476_SPEC): Delete. | |
9436 | (ASM_CPU_SPEC): Adjust. | |
9437 | (EXTRA_SPECS): Delete asm_cpu_power5, asm_cpu_power6, asm_cpu_power7, | |
9438 | asm_cpu_power8, asm_cpu_power9, asm_cpu_476. | |
9439 | ||
9440 | 2018-09-28 Segher Boessenkool <segher@kernel.crashing.org> | |
9441 | ||
9442 | * config.in: Delete HAVE_AS_DCI. | |
9443 | * config/powerpcspe/powerpcspe.h: Treat HAVE_AS_DCI as always true. | |
9444 | * config/rs6000/rs6000.h: Ditto. | |
9445 | * configure.ac: Delete HAVE_AS_DCI. | |
9446 | * configure: Regenerate. | |
9447 | ||
9448 | 2018-09-28 Segher Boessenkool <segher@kernel.crashing.org> | |
9449 | ||
9450 | * config.in (HAVE_AS_LWSYNC): Delete. | |
9451 | * config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete. | |
9452 | * config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never | |
9453 | do it as a .long . | |
9454 | * config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete. | |
9455 | * config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it | |
9456 | as a .long . | |
9457 | * configure.ac: Delete HAVE_AS_LWSYNC. | |
9458 | * configure: Regenerate. | |
9459 | ||
9460 | 2018-09-28 Eric Botcazou <ebotcazou@adacore.com> | |
9461 | Pierre-Marie de Rodat <derodat@adacore.com> | |
9462 | ||
9463 | * calls.c (expand_call): Try to do a tail call for thunks at -O0 too. | |
9464 | * cgraph.h (struct cgraph_thunk_info): Add indirect_offset. | |
9465 | (cgraph_node::create_thunk): Add indirect_offset parameter. | |
9466 | (thunk_adjust): Likewise. | |
9467 | * cgraph.c (cgraph_node::create_thunk): Add indirect_offset parameter | |
9468 | and initialize the corresponding field with it. | |
9469 | (cgraph_node::dump): Dump indirect_offset field. | |
9470 | * cgraphclones.c (duplicate_thunk_for_node): Deal with indirect_offset. | |
9471 | * cgraphunit.c (cgraph_node::analyze): Be prepared for external thunks. | |
9472 | (thunk_adjust): Add indirect_offset parameter and deal with it. | |
9473 | (cgraph_node::expand_thunk): Deal with the indirect_offset field and | |
9474 | pass it to thunk_adjust. Do not call the target hook if it's non-zero | |
9475 | or if the thunk is external or local. Fix formatting. Do not chain | |
9476 | the RESULT_DECL to BLOCK_VARS. Pass the static chain to the target, | |
9477 | if any, in the GIMPLE representation. | |
9478 | * ipa-icf.c (sem_function::equals_wpa): Deal with indirect_offset. | |
9479 | * lto-cgraph.c (lto_output_node): Write indirect_offset field. | |
9480 | (input_node): Read indirect_offset field. | |
9481 | * tree-inline.c (expand_call_inline): Pass indirect_offset field in the | |
9482 | call to thunk_adjust. | |
9483 | * tree-nested.c (struct nesting_info): Add thunk_p field. | |
9484 | (create_nesting_tree): Set it. | |
9485 | (convert_all_function_calls): Copy static chain from targets to thunks. | |
9486 | (finalize_nesting_tree_1): Return early for thunks. | |
9487 | (unnest_nesting_tree_1): Do not finalize thunks. | |
9488 | (gimplify_all_functions): Do not gimplify thunks. | |
9489 | ||
9490 | 2018-09-28 David Malcolm <dmalcolm@redhat.com> | |
9491 | ||
9492 | * opt-suggestions.c (option_proposer::build_option_suggestions): | |
9493 | Release "option_values". | |
9494 | ||
9495 | 2018-09-28 David Malcolm <dmalcolm@redhat.com> | |
9496 | ||
9497 | * coverage.c (get_coverage_counts): Convert problem-reporting dump | |
9498 | messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION. | |
9499 | * dumpfile.c (kind_as_string): New function. | |
9500 | (dump_loc): Rather than a hardcoded prefix of "note: ", use | |
9501 | kind_as_string to vary the prefix based on dump_kind. | |
9502 | (selftest::test_capture_of_dump_calls): Update for above. | |
9503 | ||
9504 | 2018-09-28 Uros Bizjak <ubizjak@gmail.com> | |
9505 | ||
9506 | * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. | |
9507 | (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename. | |
9508 | ||
9509 | 2018-09-28 Uros Bizjak <ubizjak@gmail.com> | |
9510 | ||
9511 | * config/i386/i386.h (CC_REGNO): Remove FPSR_REG. | |
9512 | * config/i386/i386.c (ix86_fixed_condition_code_regs): Use | |
9513 | INVALID_REGNUM instead of FPSR_REG. | |
9514 | (ix86_md_asm_adjust): Do not clobber FPSR_REG. | |
9515 | * config/i386/i386.md: Update comment of FP compares. | |
9516 | (fldenv): Do not clobber FPSR_REG. | |
9517 | ||
9518 | 2018-09-28 Richard Biener <rguenther@suse.de> | |
9519 | ||
9520 | * tree.h (BLOCK_ORIGIN): New. | |
9521 | * omp-expand.c (grid_expand_target_grid_body): Assign | |
9522 | BLOCK_ORIGIN to BLOCK_ABSTRACT_ORIGIN. | |
9523 | * tree-inline.c (remap_block): Likewise. | |
9524 | * auto-profile.c (get_function_decl_from_block): Simplify | |
9525 | by eliding the BLOCK_ABSTRACT_ORIGIN chasing. | |
9526 | * langhooks.c (lhd_print_error_function): Likewise. | |
9527 | * optinfo-emit-json.cc (optrecord_json_writer::inlining_chain_to): | |
9528 | Likewise. | |
9529 | * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. | |
9530 | * tree.c (block_nonartificial_location): Likewise. | |
9531 | (block_ultimate_origin): Likewise. | |
9532 | * tree-pretty-print.c (percent_K_format): Likewise. Remove | |
9533 | no longer needed LTO case. | |
9534 | ||
9535 | 2018-09-28 Andrew Stubbs <ams@codesourcery.com> | |
9536 | Jan Hubicka <jh@suse.cz> | |
9537 | Martin Jambor <mjambor@suse.cz> | |
9538 | ||
9539 | * simplify-rtx.c (simplify_merge_mask): New function. | |
9540 | (simplify_ternary_operation): Use it, also see if VEC_MERGEs with the | |
9541 | same masks are used in op1 or op2. | |
9542 | (test_vec_merge): New function. | |
9543 | (test_vector_ops): Call test_vec_merge. | |
9544 | ||
9545 | 2018-09-28 Eric Botcazou <ebotcazou@adacore.com> | |
9546 | ||
9547 | * config/sparc/sparc-protos.h (sparc_branch_cost): Declare. | |
9548 | * config/sparc/sparc.h (BRANCH_COST): Call sparc_branch_cost. | |
9549 | * config/sparc/sparc.c (struct processor_costs): Add branch_cost field. | |
9550 | (cypress_costs): Set it. | |
9551 | (supersparc_costs): Likewise. | |
9552 | (hypersparc_costs): Likewise. | |
9553 | (leon_cost): Likewise. | |
9554 | (leon3_costs): Likewise. | |
9555 | (sparclet_costs): Likewise. | |
9556 | (ultrasparc_costs): Likewise. | |
9557 | (ultrasparc_costs): Likewise. | |
9558 | (niagara_costs): Likewise. | |
9559 | (niagara2_costs): Likewise. | |
9560 | (niagara3_costs): Likewise. | |
9561 | (niagara4_costs): Likewise. | |
9562 | (niagara7_costs): Likewise. | |
9563 | (m8_costs): Likewise. | |
9564 | (TARGET_CAN_FOLLOW_JUMP): Define. | |
9565 | (pass_work_around_errata::gate): Minor tweak. | |
9566 | (sparc_option_override): Remove MASK_FSMULD mask for V7 processors. | |
9567 | Do not set both MASK_VIS4 and MASK_VIS4B for M8 processor. | |
9568 | Automaitcally clear MASK_FSMULD mask for V7 processors. | |
9569 | (sparc_can_follow_jump): New static function. | |
9570 | (output_ubranch): Deal with CROSSING_JUMP_P. | |
9571 | (sparc_use_sched_lookahead): Rewrite using switch statement. | |
9572 | (sparc_issue_rate): Reorder. | |
9573 | (sparc_branch_cost): New function. | |
9574 | ||
9575 | 2018-09-27 Martin Sebor <msebor@redhat.com> | |
9576 | ||
9577 | * tree.h (tree_to_shwi): Add attribute nonnull and pure. | |
9578 | (tree_to_poly_int64, tree_to_uhwi, tree_to_poly_uint64): Same. | |
9579 | (int_fits_type_p): Same. | |
9580 | ||
9581 | 2018-09-27 Uros Bizjak <ubizjak@gmail.com> | |
9582 | ||
9583 | * config/i386/i386.md (FPCR_REG): Remove. | |
9584 | (UNSPEC_FLDCW): Remove. | |
9585 | (x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG. | |
9586 | (x86_fldcw_1): Remove insn pattern. | |
9587 | (fnstenv): Do not clobber FPCR_REG. | |
9588 | (fldenv): Ditto. | |
9589 | * config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register. | |
9590 | (CALL_USED_REGISTERS): Ditto. | |
9591 | (REG_ALLOC_ORDER): Ditto. | |
9592 | (REG_CLASS_CONTENTS): Ditto. | |
9593 | (HI_REGISTER_NAMES): Ditto. | |
9594 | (ADDITIONAL_REGISTER_NAMES): Use defines instead | |
9595 | of numerical constants. | |
9596 | * config/i386/i386.c (regclass_map): Remove fpsr register. | |
9597 | (dbx_register_map): Ditto. | |
9598 | (dbx64_register_map): Ditto. | |
9599 | (svr4_dbx_register_map): Ditto. | |
9600 | (print_reg): Do not handle FPCR_REG. | |
9601 | ||
9602 | 2018-09-27 Segher Boessenkool <segher@kernel.crashing.org> | |
9603 | ||
9604 | PR target/87149 | |
9605 | * config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR, | |
9606 | HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9): | |
9607 | Delete, always treat as true. | |
9608 | * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): | |
9609 | Ditto. Simplify remaining code. | |
9610 | * config/powerpcspe/powerpcspe.h: Ditto. | |
9611 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto. | |
9612 | Simplify remaining code. | |
9613 | (rs6000_expand_builtin): Ditto. | |
9614 | * config/rs6000/rs6000.h: Ditto. | |
9615 | * configure.ac: Ditto. | |
9616 | * configure: Regenerate. | |
9617 | ||
9618 | 2018-09-27 Martin Liska <mliska@suse.cz> | |
9619 | ||
9620 | * coverage.c (get_coverage_counts): Revert the formatting | |
9621 | of missing profile opt info. | |
9622 | ||
9623 | 2018-09-27 Richard Biener <rguenther@suse.de> | |
9624 | ||
9625 | PR debug/37801 | |
9626 | PR debug/87440 | |
9627 | * dwarf2out.c (set_block_origin_self): Do not mark outermost | |
9628 | block as we do not output that. | |
9629 | (gen_inlined_subroutine_die): Elide the originally outermost | |
9630 | block, matching what we do for concrete instances. | |
9631 | (decls_for_scope): Add parameter specifying whether to recurse | |
9632 | to subblocks. | |
9633 | ||
9634 | 2018-09-27 Andrew Stubbs <ams@codesourcery.com> | |
9635 | Tom de Vries <tom@codesourcery.com> | |
9636 | ||
9637 | PR 82089 | |
9638 | ||
9639 | * expmed.c (emit_cstore): Fix handling of result_mode == BImode and | |
9640 | STORE_FLAG_VALUE == 1. | |
9641 | ||
9642 | 2018-09-27 Andreas Krebbel <krebbel@linux.ibm.com> | |
9643 | ||
9644 | * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New | |
9645 | constant definitions. | |
9646 | ("tx_assist"): Replace magic number with PPA_TX_ABORT. | |
9647 | ("*ppa"): Enable pattern also for -march=zEC12 -mno-htm. | |
9648 | ("speculation_barrier"): New expander definition. | |
9649 | ||
9650 | 2018-09-26 Indu Bhagat <indu.bhagat@oracle.com> | |
9651 | ||
9652 | PR gcov-profile/86957 | |
9653 | * common.opt: New warning option -Wmissing-profile. | |
9654 | * coverage.c (get_coverage_counts): Add warning for missing .gcda file. | |
9655 | * doc/invoke.texi: Document -Wmissing-profile. | |
9656 | ||
9657 | 2018-09-26 Jim Wilson <jimw@sifive.com> | |
9658 | ||
9659 | * config/riscv/riscv.md (subsi3_extended2): Add J constraint. | |
9660 | (negdi2, negsi2, negsi2_extended, negsi2_extended2): New. | |
9661 | ||
9662 | 2018-09-26 Martin Sebor <msebor@redhat.com> | |
9663 | ||
9664 | * tree.c (zerop): Change return type to bool. | |
9665 | (integer_zerop, integer_onep, integer_each_onep): Same. | |
9666 | (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. | |
9667 | (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. | |
9668 | (real_onep, real_minus_onep, chain_index): Same. | |
9669 | (print_type_hash_statistics, type_list_equal): Same. | |
9670 | * tree.h (zerop): Same. | |
9671 | (zerop, integer_zerop, integer_onep, integer_each_onep): Same. | |
9672 | (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. | |
9673 | (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. | |
9674 | (real_onep, real_minus_onep, chain_index): Same. | |
9675 | (print_type_hash_statistics, type_list_equal): Same. | |
9676 | ||
9677 | 2018-09-26 Jim Wilson <jimw@sifive.com> | |
9678 | ||
9679 | * config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment. | |
9680 | ||
9681 | 2018-09-26 Jakub Jelinek <jakub@redhat.com> | |
9682 | ||
9683 | PR target/87414 | |
9684 | * config/i386/i386.c: Include debug.h and dwarf2out.h. | |
9685 | (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the | |
9686 | call. | |
9687 | ||
9688 | 2018-09-25 Andrew Stubbs <ams@codesourcery.com> | |
9689 | ||
9690 | * builtins.c (get_builtin_sync_mem): Force address mode conversion. | |
9691 | ||
9692 | 2018-09-26 Uros Bizjak <ubizjak@gmail.com> | |
9693 | ||
9694 | * config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS | |
9695 | and FP_SECOND_SSE_REGS. | |
9696 | (REG_CLASS_NAMES): Ditto. | |
9697 | (REG_CLASS_CONTENTS): Ditto. | |
9698 | * config/i386/i386.c (ix86_preferred_reload_class) Do not handle | |
9699 | FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes. | |
9700 | (ix86_preferred_output_reload_class): Ditto. | |
9701 | * config/i386/i386.md (fix_trunc<mode>_i387_fisttp): Change "=&1f" | |
9702 | clobber constraint to "=&f". | |
9703 | (fix_truncdi_i387): Ditto. | |
9704 | (lrintxfdi2): Ditto. | |
9705 | (fistdi2_<rounding>): Ditto. | |
9706 | (fpremxf4_i387): Change "=u" constraint to "=f". | |
9707 | (fprem1xf4_i387): Ditto. | |
9708 | (sincosxf3): Ditto. | |
9709 | (fptanxf4_i387): Ditto. | |
9710 | (fxtractxf3_i387): Ditto. | |
9711 | (fscalexf4_i387): Ditto. | |
9712 | (atan2xf3): Change "u" constraint to "f". | |
9713 | (fyl2xxf3_i387): Ditto. | |
9714 | (fyl2xp1xf3_i387): Ditto. | |
9715 | ||
9716 | 2018-09-26 Uros Bizjak <ubizjak@gmail.com> | |
9717 | ||
9718 | PR target/87439 | |
9719 | * config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update | |
9720 | for removed I387_MASK_PM entity. | |
9721 | ||
9722 | ||
9723 | 2018-09-26 Jeff Law <law@redhat.com> | |
9724 | Revert | |
9725 | 2018-09-26 Alexey Neyman <stilor@att.net> | |
9726 | ||
9727 | * graphite.h: Include <isl/id.h> and <isl/space.h>; these | |
9728 | headers are no longer pulled in by <isl/val.h>. | |
9729 | ||
9730 | 2018-09-26 Richard Biener <rguenther@suse.de> | |
9731 | ||
9732 | PR debug/87443 | |
9733 | * dwarf2out.c (gen_lexical_block_die): Do not equate inline | |
9734 | or concrete instance DIE to the tree. Create abstract origin | |
9735 | attributes also for concrete instances. | |
9736 | ||
9737 | 2018-09-26 Alexey Neyman <stilor@att.net> | |
9738 | ||
9739 | * graphite.h: Include <isl/id.h> and <isl/space.h>; these | |
9740 | headers are no longer pulled in by <isl/val.h>. | |
9741 | ||
9742 | 2018-09-26 Matthew Malcomson <matthew.malcomson@arm.com> | |
9743 | ||
9744 | * config/arm/arm.c (arm_split_compare_and_swap, arm_split_atomic_op): | |
9745 | Use new helper functions. | |
9746 | * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>): | |
9747 | Use new helper functions. | |
9748 | * config/arm/aarch-common-protos.h (aarch_mm_needs_acquire, | |
9749 | aarch_mm_needs_release): New declarations. | |
9750 | * config/arm/aarch-common.c (aarch_mm_needs_acquire, | |
9751 | aarch_mm_needs_release): New. | |
9752 | ||
9753 | 2018-09-26 Eric Botcazou <ebotcazou@adacore.com> | |
9754 | ||
9755 | * config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks. | |
9756 | (arm32_output_mi_thunk): Deal with long calls. | |
9757 | ||
9758 | 2018-09-26 Richard Biener <rguenther@suse.de> | |
9759 | ||
9760 | PR debug/87428 | |
9761 | PR debug/87362 | |
9762 | * tree-inline.c (expand_call_inline): When the location | |
9763 | of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION | |
9764 | or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of | |
9765 | the inserted BLOCK to make inlined_function_outer_scope_p | |
9766 | recognize it. | |
9767 | * dwarf2out.c (add_call_src_coords_attributes): Do not add | |
9768 | coords for reserved locations. | |
9769 | ||
9770 | 2018-09-25 Segher Boessenkool <segher@kernel.crashing.org> | |
9771 | ||
9772 | * config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative. | |
9773 | (*call_indirect_nonlocal_sysv<mode>): Ditto. | |
9774 | (*call_value_indirect_nonlocal_sysv<mode>): Ditto. | |
9775 | (*sibcall_nonlocal_sysv<mode>): Ditto. | |
9776 | (*sibcall_value_nonlocal_sysv<mode>): Ditto. | |
9777 | (<bd>_<mode>): Ditto. | |
9778 | (<bd>tf_<mode>): Ditto. | |
9779 | ||
9780 | 2018-09-25 Segher Boessenkool <segher@kernel.crashing.org> | |
9781 | ||
9782 | * config/rs6000/altivec.md (*altivec_mov<mode>): Write the output | |
9783 | control string as a list of templates instead of as C code. | |
9784 | (*altivec_movti): Ditto. | |
9785 | * config/rs6000/darwin.md (movdf_low_di): Ditto. | |
9786 | ||
9787 | 2018-09-25 Jim Wilson <jimw@sifive.com> | |
9788 | ||
9789 | * config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak | |
9790 | when target symbol is weak. | |
9791 | ||
9792 | 2018-09-25 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
9793 | ||
9794 | PR c/87387 | |
9795 | * builtins.c (unterminated_array): Simplify. | |
9796 | * expr.c (string_constant): Handle SSA_NAME. Add more exceptions | |
9797 | where pointer arithmetic is safe. | |
9798 | ||
9799 | 2018-09-25 Segher Boessenkool <segher@kernel.crashing.org> | |
9800 | ||
9801 | PR target/86987 | |
9802 | * config/rs6000/altivec.md (altivec_vspltb): Use | |
9803 | const_0_to_15_operand instead of u5bit_cint_operand. | |
9804 | (*altivec_vspltb_internal): Ditto. | |
9805 | (altivec_vspltb_direct): Ditto. | |
9806 | (altivec_vsplth): Use const_0_to_7_operand instead of | |
9807 | u5bit_cint_operand. | |
9808 | (*altivec_vsplth_internal): Ditto. | |
9809 | (altivec_vsplth_direct): Ditto. | |
9810 | (altivec_vspltw): Use const_0_to_3_operand instead of | |
9811 | u5bit_cint_operand. | |
9812 | (*altivec_vspltw_internal): Ditto. | |
9813 | (altivec_vspltw_direct): Ditto. | |
9814 | (altivec_vspltsf): Ditto. | |
9815 | (*altivec_vspltsf_internal): Ditto. | |
9816 | * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the | |
9817 | various splats with the proper size immediate. Reorder the various | |
9818 | cases by ascending size of immediate, and put all such together. | |
9819 | ||
9820 | 2018-09-25 Richard Biener <rguenther@suse.de> | |
9821 | ||
9822 | PR debug/83941 | |
9823 | * dwarf2out.c (add_AT_external_die_ref): Remove now redundant | |
9824 | GC-ification. | |
9825 | (maybe_create_die_with_external_ref): Do not create | |
9826 | DW_TAG_imported_unit here. | |
9827 | (add_abstract_origin_attribute): Handle external BLOCK refs. | |
9828 | (dwarf2out_abstract_function): Simplify LTO case. | |
9829 | (dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely | |
9830 | rather than using maybe_create_die_with_external_ref. | |
9831 | ||
9832 | 2018-09-25 Uros Bizjak <ubizjak@gmail.com> | |
9833 | ||
9834 | PR target/71278 | |
9835 | * config/i386/i386.md (frndintxf2_mask_pm): Remove. | |
9836 | (frndintxf2_mask_pm_i387): Ditto. | |
9837 | (nearbyintxf2): Rewrite expander pattern to match rintxf2. | |
9838 | Enable for !flag_trapping_math. | |
9839 | (nearbyint<mode>2): Enable x87 modes for !flag_trapping_math. | |
9840 | Enable SSE modes for TARGET_SSE4_1 and expand them with round insn. | |
9841 | Change operand 1 predicate to nonimmediate_operand. | |
9842 | (attr "i387_cw"): Remove mask_pm. | |
9843 | * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_CW_MASK_PM. | |
9844 | (enum ix86_entity): Remove I387_MASK_PM. | |
9845 | * config/i386/i386.c (ix86_i387_mode_needed): Do not | |
9846 | handle I387_MASK_PM. | |
9847 | (ix86_mode_needed): Ditto. | |
9848 | (ix86_mode_after): Ditto. | |
9849 | (ix86_mode_entry): Ditto. | |
9850 | (ix86_mode_exit): Ditto. | |
9851 | (emit_i387_cw_initialization): Do not handle I387_CW_MASK_PM. | |
9852 | ||
9853 | 2018-09-25 Jakub Jelinek <jakub@redhat.com> | |
9854 | ||
9855 | * vr-values.c (vr_values::vr_values): Initialize to_remove_edges and | |
9856 | to_update_switch_stmts to vNULL instead of calling create on them | |
9857 | immediately. | |
9858 | ||
9859 | 2018-09-25 Richard Biener <rguenther@suse.de> | |
9860 | ||
9861 | PR tree-optimization/87402 | |
9862 | * tree-ssa-sccvn.c (SSA_VISITED): Remove unused function. | |
9863 | (visit_phi): Re-instantiate handling of supposed to be VARYING | |
9864 | but non-VARYING backedge value. | |
9865 | ||
9866 | 2018-09-25 Richard Biener <rguenther@suse.de> | |
9867 | ||
9868 | PR debug/83941 | |
9869 | * dwarf2out.c (struct sym_off_pair): New. | |
9870 | (external_die_map): New global. | |
9871 | (lookup_decl_die): When in LTO create DIEs lazily from the | |
9872 | external_die_map. | |
9873 | (lookup_block_die): New function, create DIEs lazily in LTO. | |
9874 | (equate_block_to_die): New function. | |
9875 | (dwarf2out_die_ref_for_decl): During WPA get the association | |
9876 | from the external DIE map. | |
9877 | (dwarf2out_register_external_die): Record mapping into the | |
9878 | external DIE map. | |
9879 | (maybe_create_die_with_external_ref): New function split out from | |
9880 | DIE generation part of old dwarf2out_register_external_die. | |
9881 | (add_abstract_origin_attribute): Do not return the DIE. When | |
9882 | in LTO reference externals directly. | |
9883 | (dwarf2out_abstract_function): When in LTO ignore calls for | |
9884 | decls with external DIEs (already present abstract instances). | |
9885 | (gen_call_site_die): Adjust. | |
9886 | (add_high_low_attributes): Likewise. | |
9887 | (gen_lexical_block_die): Likewise. | |
9888 | (gen_inlined_subroutine_die): Likewie. | |
9889 | (gen_block_die): Likewise. | |
9890 | (dwarf2out_inline_entry): Likewise. | |
9891 | (dwarf2out_early_finish): In LTRANS phase create DW_TAG_imported_unit | |
9892 | DIEs. | |
9893 | ||
9894 | 2018-09-25 Martin Liska <mliska@suse.cz> | |
9895 | ||
9896 | * ipa-fnsummary.c (estimate_node_size_and_time): Scale by two | |
9897 | integers and not by a float value. | |
9898 | ||
9899 | 2018-09-25 Martin Liska <mliska@suse.cz> | |
9900 | ||
9901 | PR fortran/87394 | |
9902 | * dbgcnt.c (dbg_cnt_process_single_pair): Return false | |
9903 | instead of NULL. | |
9904 | * dumpfile.c (dump_enable_all): Remove extra parenthesis. | |
9905 | * gcov-tool.c: Declare the function with ATTRIBUTE_NORETURN. | |
9906 | * godump.c (go_format_type): Remove extra parenthesis. | |
9907 | ||
9908 | 2018-09-25 Martin Liska <mliska@suse.cz> | |
9909 | ||
9910 | * alias.c (set_dest_equal_p): Remove unused function. | |
9911 | * config/i386/i386.c (def_builtin_pure2): Likewise. | |
9912 | * diagnostic-show-locus.c (class layout): Remove | |
9913 | unused field. | |
9914 | (layout::layout): Likewise here. | |
9915 | * dump-context.h (class temp_dump_context): Likewise. | |
9916 | * dwarf2out.c (add_AT_fde_ref): Remove unused function. | |
9917 | (add_AT_loclistsptr): Likewise. | |
9918 | (add_AT_offset): Likewise. | |
9919 | (get_AT_hi_pc): Likewise. | |
9920 | (is_comdat_die): Likewise. | |
9921 | (type_is_enum): Likewise. | |
9922 | (ceiling): Likewise. | |
9923 | (add_AT_vms_delta): Likewise. | |
9924 | (is_class_die): Likewise. | |
9925 | * edit-context.c (class line_event): Remove unused field. | |
9926 | * graphite-sese-to-poly.c (tree_int_to_gmp): Remove | |
9927 | unused function. | |
9928 | * ipa-cp.c (ipa_get_vr_lat): Likewise. | |
9929 | * lra-constraints.c (ok_for_index_p_nonstrict): Likewise. | |
9930 | (ok_for_base_p_nonstrict): Likewise. | |
9931 | * tree-chrec.c (is_not_constant_evolution): Likewise. | |
9932 | (chrec_fold_poly_cst): Likewise. | |
9933 | * tree-if-conv.c (has_pred_critical_p): Likewise. | |
9934 | * tree-ssa-coalesce.c (print_exprs): Likewise. | |
9935 | * tree-ssa-pre.c (bitmap_set_contains_expr): Likewise. | |
9936 | * tree-ssa-uninit.c (is_and_or_or_p): Likewise. | |
9937 | * tree-vrp.c (value_ranges_intersect_p): Likewise. | |
9938 | (value_range_nonnegative_p): Likewise. | |
9939 | ||
9940 | 2018-09-25 Martin Liska <mliska@suse.cz> | |
9941 | ||
9942 | * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): | |
9943 | Do not handle "GNU Pascal". | |
9944 | * config/rs6000/rs6000.c (rs6000_output_function_epilogue): | |
9945 | Likewise. | |
9946 | * config/sparc/sparc.c (sparc_pass_by_reference): Remove Pascal | |
9947 | from documentation. Likewise. | |
9948 | * dbxout.c (dbxout_range_type): Likewise. | |
9949 | * doc/cpp.texi: Likewise. | |
9950 | * doc/extend.texi: Likewise. | |
9951 | * doc/frontends.texi: Likewise. | |
9952 | * doc/invoke.texi: Remove Pascal entry. | |
9953 | * tree.def (CLEANUP_POINT_EXPR): Likewise. | |
9954 | * doc/rtl.texi (MODE_FUNCTION): Remove not used entry. | |
9955 | ||
9956 | 2018-09-25 Martin Liska <mliska@suse.cz> | |
9957 | ||
9958 | PR middle-end/86078 | |
9959 | * doc/invoke.texi: Document all parameters and remove default | |
9960 | of the parameters. | |
9961 | ||
9962 | 2018-09-25 Ilya Leoshkevich <iii@linux.ibm.com> | |
9963 | ||
9964 | PR bootstrap/87417 | |
9965 | * rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT | |
9966 | contains HOST_WIDE_INTs when computing its size. | |
9967 | ||
9968 | 2018-09-24 Jim Wilson <jimw@sifive.com> | |
9969 | ||
9970 | PR target/87391 | |
9971 | * config/riscv/riscv.h (STACK_BOUNDARY): Test riscv_abi == ABI_ILP32E | |
9972 | not TARGET_RVE. | |
9973 | (ABI_STACK_BOUNDARY, MAX_ARGS_IN_REGISTERS): Likewise. | |
9974 | ||
9975 | 2018-09-24 Andrew Pinski <apinski@marvell.com> | |
9976 | ||
9977 | * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't | |
9978 | access prev before checking it for NULLness in the | |
9979 | AARCH64_FUSE_CMP_BRANCH case. | |
9980 | ||
9981 | 2018-09-24 H.J. Lu <hongjiu.lu@intel.com> | |
9982 | ||
9983 | PR target/82699 | |
9984 | * config/i386/i386.c (rest_of_insert_endbranch): Set | |
9985 | endbr_queued_at_entrance to true and don't insert ENDBR if | |
9986 | x86_function_profiler will be called. | |
9987 | (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance | |
9988 | is true. | |
9989 | * config/i386/i386.h (machine_function): Add | |
9990 | endbr_queued_at_entrance. | |
9991 | ||
9992 | 2018-09-24 Ilya Leoshkevich <iii@linux.ibm.com> | |
9993 | ||
9994 | * genattrtab.c (mk_attr_alt): Use alternative_mask. | |
9995 | (attr_rtx_1): Adjust caching to match the new EQ_ATTR_ALT field | |
9996 | types. | |
9997 | (check_attr_test): Use alternative_mask. | |
9998 | (get_attr_value): Likewise. | |
9999 | (compute_alternative_mask): Use alternative_mask and XWINT. | |
10000 | (make_alternative_compare): Use alternative_mask. | |
10001 | (attr_alt_subset_p): Use XWINT. | |
10002 | (attr_alt_subset_of_compl_p): Likewise. | |
10003 | (attr_alt_intersection): Use alternative_mask and XWINT. | |
10004 | (attr_alt_union): Likewise. | |
10005 | (attr_alt_complement): Use HOST_WIDE_INT and XWINT. | |
10006 | (mk_attr_alt): Use alternative_mask and HOST_WIDE_INT. | |
10007 | (simplify_test_exp): Use alternative_mask and XWINT. | |
10008 | (write_test_expr): Use alternative_mask and XWINT, adjust bit | |
10009 | number calculation to support 64 bits. Generate code that | |
10010 | checks 64-bit masks. | |
10011 | (main): Use alternative_mask. | |
10012 | * rtl.def (EQ_ATTR_ALT): Change field types from ii to ww. | |
10013 | ||
10014 | 2018-09-24 Ilya Leoshkevich <iii@linux.ibm.com> | |
10015 | ||
10016 | PR target/80080 | |
10017 | * config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL | |
10018 | RETURN+USE when returning via %r14. | |
10019 | ||
10020 | 2018-09-24 Martin Liska <mliska@suse.cz> | |
10021 | ||
10022 | * gcov.c (output_lines): Print colorization legend | |
10023 | for both flag_use_colors and flag_use_hotness_colors. | |
10024 | Reword the help. | |
10025 | ||
10026 | 2018-09-24 Martin Liska <mliska@suse.cz> | |
10027 | ||
10028 | * coverage.c (get_coverage_counts): Use warning_at | |
10029 | with current_function_decl location. Use %qD in warning | |
10030 | message. | |
10031 | ||
10032 | 2018-09-24 Martin Liska <mliska@suse.cz> | |
10033 | ||
10034 | * memory-block.h (memory_block_pool::release): Annotate with | |
10035 | valgrind that the memory is not accessible. | |
10036 | ||
10037 | 2018-09-24 Martin Liska <mliska@suse.cz> | |
10038 | ||
10039 | PR sanitizer/85774 | |
10040 | * asan.c: Make asan_handled_variables extern. | |
10041 | * asan.h: Likewise. | |
10042 | * cfgexpand.c (expand_stack_vars): Make sure | |
10043 | a representative is unpoison if another | |
10044 | variable in the partition is handled by | |
10045 | use-after-scope sanitization. | |
10046 | ||
10047 | 2018-09-24 Richard Biener <rguenther@suse.de> | |
10048 | ||
10049 | PR tree-optimization/63155 | |
10050 | * tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to | |
10051 | the worklist when the edge of the respective argument isn't | |
10052 | executable. | |
10053 | ||
10054 | 2018-09-23 Uros Bizjak <ubizjak@gmail.com> | |
10055 | ||
10056 | * config/i386/i386.h (enum reg_class): Rename MASK_REGS to | |
10057 | ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS. | |
10058 | (MASK_CLASS_P): Update for rename. | |
10059 | (MAYBE_MASK_CLASS_P): Ditto. | |
10060 | (REG_CLASS_NAMES): Update. | |
10061 | (REG_CLASS_CONTENT): Update. | |
10062 | * config/i386/i386.c (regclass_map): Update for MASK_REG | |
10063 | and ALL_MASK_REGS rename. | |
10064 | * config/i386/constraints.md (Yk): Update for rename. | |
10065 | (k): Ditto. | |
10066 | ||
10067 | 2018-09-23 Uros Bizjak <ubizjak@gmail.com> | |
10068 | ||
10069 | * config/i386/i386.h (enum reg_class): Remove | |
10070 | EVEX_SSE_REGS and MOD4_SSE_REGS. | |
10071 | (REG_CLASS_NAMES): Update. | |
10072 | (REG_CLASS_CONTENT): Update. | |
10073 | * config/i386/i386.c (regclass_map): Declare AVX-512 SSE | |
10074 | registers as ALL_SSE_REGS. | |
10075 | (ix86_additional_allocno_class_p): Remove. | |
10076 | (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove. | |
10077 | (ix86_register_priority): Lower priority of EVEX SSE registers. | |
10078 | Use IN_RANGE macro where appropriate. | |
10079 | (ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and | |
10080 | AVX-5124VNNIW checks. | |
10081 | (ix86_modes_tieable_p): Tie 512-bit SSE modes. | |
10082 | * config/i386/sse.md (avx5124fmaddps_4fmaddps) | |
10083 | (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz) | |
10084 | (avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask) | |
10085 | (avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps) | |
10086 | (avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz) | |
10087 | (avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask) | |
10088 | (avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd) | |
10089 | (avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz) | |
10090 | (avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask) | |
10091 | (avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint. | |
10092 | * config/i386/constraints.md (Yh): Remove. | |
10093 | ||
10094 | 2018-09-23 Uros Bizjak <ubizjak@gmail.com> | |
10095 | ||
10096 | * config/i386/i386.c (regclass_map): Declare integer REX registers | |
10097 | as GENERAL_REGS. | |
10098 | ||
10099 | 2018-09-23 Gerald Pfeifer <gerald@pfeifer.com> | |
10100 | ||
10101 | * doc/service.texi (Service): Switch the fsf.org link to https. | |
10102 | ||
10103 | 2018-09-22 Chung-Ju Wu <jasonwucj@gmail.com> | |
10104 | ||
10105 | PR target/86798 | |
10106 | * config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
10107 | Define to speculation_safe_value_not_needed. | |
10108 | ||
10109 | 2018-09-21 Florian Weimer <fweimer@redhat.com> | |
10110 | ||
10111 | PR middle-end/81035 | |
10112 | * doc/extend.texi (Common Function Attributes): Mention that | |
10113 | noreturn suppresses tail call optimization. | |
10114 | ||
10115 | 2018-09-21 Jeff Law <law@redhat.com> | |
10116 | ||
10117 | * gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call | |
10118 | vr_values::cleanup_edges_and_switches. | |
10119 | * tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into | |
10120 | vr_values class. | |
10121 | (identify_jump_threads): Remove EDGE_IGNORE handling. | |
10122 | (execute_vrp): Move handling of to_remove_edges and | |
10123 | to_update_switch_stmts into vr_values class member functions. | |
10124 | * tree-vrp.h (switch_update, to_remove_edges): Remove declarations. | |
10125 | (to_update_switch_stmts): Likewise. | |
10126 | * vr-values.c: Include cfghooks.h. | |
10127 | (vr_values::vr_values): Initialize to_remove_edges and | |
10128 | to_update_switch_stmts. | |
10129 | (vr_values::~vr_values): Verify to_remove_edges and | |
10130 | to_update_switch_stmts are empty. | |
10131 | (vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed. | |
10132 | (vr_values::cleanup_edges_and_switches): New member function. | |
10133 | * vr-values.h (vr_values): Add cleanup_edges_and_switches member | |
10134 | function. Add new data members. | |
10135 | ||
10136 | 2018-09-21 David Malcolm <dmalcolm@redhat.com> | |
10137 | ||
10138 | PR tree-optimization/87309 | |
10139 | * dumpfile.c (dump_context::begin_scope): Filter the dump_loc | |
10140 | calls with pflags and alt_flags. | |
10141 | (selftest::test_capture_of_dump_calls): Add test of interaction of | |
10142 | MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE. | |
10143 | ||
10144 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10145 | ||
10146 | * config.gcc: Factorize and comment inclusion of vxworks-dummy.h. | |
10147 | ||
10148 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10149 | ||
10150 | * config/vxworks.h (CLEAR_INSN_CACHE): #define to 1. | |
10151 | ||
10152 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10153 | ||
10154 | * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal. | |
10155 | Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then: | |
10156 | (VXWORKS_LIBS_RTP): Minor reordering. | |
10157 | ||
10158 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10159 | ||
10160 | * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. | |
10161 | (VXWORKS_LIBS_DIR_RTP): Remove definition and use. | |
10162 | ||
10163 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10164 | ||
10165 | * config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64. | |
10166 | (PTRDIFF_TYPE): Likewise. | |
10167 | ||
10168 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10169 | ||
10170 | * config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from | |
10171 | triplet, similar to support for VxWorks7. | |
10172 | * config/vxworks-dummy.h: Provide a default definition | |
10173 | of TARGET_VXWORKS64 to 0. | |
10174 | ||
10175 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10176 | ||
10177 | * config/vxworks.h (TARGET_VXWORKS7): Move default definition ... | |
10178 | * config/vxworks-dummy.h: here. | |
10179 | ||
10180 | 2018-09-21 Olivier Hainque <hainque@adacore.com> | |
10181 | ||
10182 | * config.gcc: Prepend vxworks-dummy.h to tm_file for powerpc* | |
10183 | ||
10184 | 2018-09-21 Shaokun Zhang <zhangshaokun@hisilicon.com> | |
10185 | Bo Zhou <zbo.zhou@hisilicon.com> | |
10186 | ||
10187 | * config/aarch64/aarch64-cores.def (tsv110): New CPU. | |
10188 | * config/aarch64/aarch64-tune.md: Regenerated. | |
10189 | * doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110". | |
10190 | * config/aarch64/aarch64.c (tsv110_tunings): New tuning table. | |
10191 | * config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs. | |
10192 | ||
10193 | 2018-09-21 Andrew Stubbs <ams@codesourcery.com> | |
10194 | Julian Brown <julian@codesourcery.com> | |
10195 | ||
10196 | * builtins.c (get_builtin_sync_mem): Handle address spaces. | |
10197 | ||
10198 | 2018-09-21 Eric Botcazou <ebotcazou@adacore.com> | |
10199 | ||
10200 | * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false | |
10201 | if the call takes a static chain. | |
10202 | ||
10203 | 2018-09-21 Martin Liska <mliska@suse.cz> | |
10204 | ||
10205 | * auto-profile.c (autofdo_source_profile::read): Do not | |
10206 | set sum_all. | |
10207 | (read_profile): Do not add working sets. | |
10208 | (read_autofdo_file): Remove sum_all. | |
10209 | (afdo_callsite_hot_enough_for_early_inline): Remove const | |
10210 | qualifier. | |
10211 | * coverage.c (struct counts_entry): Remove gcov_summary. | |
10212 | (read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY, | |
10213 | do not support GCOV_TAG_PROGRAM_SUMMARY. | |
10214 | (get_coverage_counts): Remove summary and expected | |
10215 | arguments. | |
10216 | * coverage.h (get_coverage_counts): Likewise. | |
10217 | * doc/gcov-dump.texi: Remove -w option. | |
10218 | * gcov-dump.c (dump_working_sets): Remove. | |
10219 | (main): Do not support '-w' option. | |
10220 | (print_usage): Likewise. | |
10221 | (tag_summary): Likewise. | |
10222 | * gcov-io.c (gcov_write_summary): Do not dump | |
10223 | histogram. | |
10224 | (gcov_read_summary): Likewise. | |
10225 | (gcov_histo_index): Remove. | |
10226 | (gcov_histogram_merge): Likewise. | |
10227 | (compute_working_sets): Likewise. | |
10228 | * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark | |
10229 | it not obsolete. | |
10230 | (GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete. | |
10231 | (GCOV_TAG_SUMMARY_LENGTH): Adjust. | |
10232 | (GCOV_HISTOGRAM_SIZE): Remove. | |
10233 | (GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise. | |
10234 | (struct gcov_summary): Simplify rapidly just | |
10235 | to runs and sum_max fields. | |
10236 | (gcov_histo_index): Remove. | |
10237 | (NUM_GCOV_WORKING_SETS): Likewise. | |
10238 | (compute_working_sets): Likewise. | |
10239 | * gcov-tool.c (print_overlap_usage_message): Remove | |
10240 | trailing empty line. | |
10241 | * gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY. | |
10242 | (output_lines): Remove program related line. | |
10243 | * ipa-profile.c (ipa_profile): Do not consider GCOV histogram. | |
10244 | * lto-cgraph.c (output_profile_summary): Do not stream GCOV | |
10245 | histogram. | |
10246 | (input_profile_summary): Do not read it. | |
10247 | (merge_profile_summaries): And do not merge it. | |
10248 | (input_symtab): Do not call removed function. | |
10249 | * modulo-sched.c (sms_schedule): Do not print sum_max. | |
10250 | * params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was | |
10251 | removed when histogram method was invented. | |
10252 | (HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO | |
10253 | mode. | |
10254 | * postreload-gcse.c (eliminate_partially_redundant_load): Fix | |
10255 | GCOV coding style. | |
10256 | * predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION | |
10257 | and dump selected value. | |
10258 | * profile.c (add_working_set): Remove. | |
10259 | (get_working_sets): Likewise. | |
10260 | (find_working_set): Likewise. | |
10261 | (get_exec_counts): Do not work with working sets. | |
10262 | (read_profile_edge_counts): Do not inform as sum_max is removed. | |
10263 | (compute_branch_probabilities): Likewise. | |
10264 | (compute_value_histograms): Remove argument for call of | |
10265 | get_coverage_counts. | |
10266 | * profile.h: Do not make gcov_summary const. | |
10267 | ||
10268 | 2018-09-21 Monk Chiang <sh.chiang04@gmail.com> | |
10269 | ||
10270 | * config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0. | |
10271 | ||
10272 | 2018-09-21 Eric Botcazou <ebotcazou@adacore.com> | |
10273 | ||
10274 | PR tree-optimization/86990 | |
10275 | * gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate): | |
10276 | Check that the entire merged store group is made of constants only for | |
10277 | overlapping stores. | |
10278 | ||
10279 | 2018-09-20 Allan Sandfeld Jensen <allan.jensen@qt.io> | |
10280 | ||
10281 | * gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib. | |
10282 | (VTABLE_VERIFICATION_SPEC): Likewise. | |
10283 | (SANITIZER_EARLY_SPEC): Likewise. | |
10284 | (SANITIZER_SPEC): Likewise. | |
10285 | * config/darwin.h (LINK_COMMAND_SPEC): Likewise. | |
10286 | * doc/invoke.texi (Link Options): Document -r. | |
10287 | ||
10288 | 2018-09-20 Richard Biener <rguenther@suse.de> | |
10289 | ||
10290 | PR middle-end/87054 | |
10291 | * gimplify.c (gimplify_expr): Retain alignment of | |
10292 | addressable lvalue in dereference. | |
10293 | ||
10294 | 2018-09-20 Alexandre Oliva <aoliva@redhat.com> | |
10295 | ||
10296 | PR bootstrap/87013 | |
10297 | * configure.ac: Check for .loc is_stmt support. | |
10298 | * configure, config.in: Rebuilt. | |
10299 | * dwarf2out.c (dwarf2out_source_line): Skip is_stmt | |
10300 | if not supported. | |
10301 | ||
10302 | 2018-09-20 Segher Boessenkool <segher@kernel.crashing.org> | |
10303 | ||
10304 | * config/rs6000/rs6000.opt (misel=no, misel=yes): Delete. | |
10305 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and | |
10306 | -misel=no. | |
10307 | ||
10308 | 2018-09-20 Segher Boessenkool <segher@kernel.crashing.org> | |
10309 | ||
10310 | * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete | |
10311 | VECTOR_OTHER. | |
10312 | * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete | |
10313 | case VECTOR_OTHER. | |
10314 | ||
10315 | 2018-09-20 Marek Polacek <polacek@redhat.com> | |
10316 | ||
10317 | * doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options. | |
10318 | ||
10319 | 2018-09-20 Richard Sandiford <richard.sandiford@arm.com> | |
10320 | ||
10321 | PR tree-optimization/87288 | |
10322 | * tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS | |
10323 | into account when determining PEELING_FOR_NITERS. | |
10324 | ||
10325 | 2018-09-20 Richard Sandiford <richard.sandiford@arm.com> | |
10326 | ||
10327 | PR tree-optimization/86877 | |
10328 | * tree-vect-loop.c (vect_analyze_loop_2): Call | |
10329 | vect_verify_datarefs_alignment. | |
10330 | ||
10331 | 2018-09-19 Marek Polacek <polacek@redhat.com> | |
10332 | ||
10333 | * doc/invoke.texi: Document -Wclass-conversion. | |
10334 | ||
10335 | 2018-09-19 John David Anglin <danglin@gcc.gnu.org> | |
10336 | ||
10337 | * config/pa/pa.c (pa_adjust_priority): Delete. | |
10338 | (TARGET_SCHED_ADJUST_PRIORITY): Delete define. | |
10339 | ||
10340 | * config/pa/pa.md (atomic_storeqi): Restore deleted expander. | |
10341 | (atomic_storehi): Likewise. | |
10342 | (atomic_storesi): Likewise. | |
10343 | (atomic_loaddi): Restore compare and swap exchange loop code. | |
10344 | ||
10345 | 2018-09-19 Segher Boessenkool <segher@kernel.crashing.org> | |
10346 | ||
10347 | PR rtl-optimization/86902 | |
10348 | * combine.c (try_combine): When changing the CC mode used, don't change | |
10349 | an unrelated mode in other_insn to that new CC mode. | |
10350 | ||
10351 | 2018-09-19 David Malcolm <dmalcolm@redhat.com> | |
10352 | ||
10353 | * tree-data-ref.c (runtime_alias_check_p): Use formatted printing | |
10354 | with %T in place of calls to dump_generic_expr. | |
10355 | (prune_runtime_alias_test_list): Likewise. | |
10356 | (create_runtime_alias_checks): Likewise. | |
10357 | * tree-vect-data-refs.c (vect_check_nonzero_value): Likewise. | |
10358 | (vect_analyze_data_ref_dependence): Likewise. | |
10359 | (vect_slp_analyze_data_ref_dependence): Likewise. | |
10360 | (vect_record_base_alignment): Likewise. Use %G in place of call | |
10361 | to dump_gimple_stmt. | |
10362 | (vect_compute_data_ref_alignment): Likewise. | |
10363 | (verify_data_ref_alignment): Likewise. | |
10364 | (vect_find_same_alignment_drs): Likewise. | |
10365 | (vect_analyze_group_access_1): Likewise. | |
10366 | (vect_analyze_data_ref_accesses): Likewise. | |
10367 | (dependence_distance_ge_vf): Likewise. | |
10368 | (dump_lower_bound): Likewise. | |
10369 | (vect_prune_runtime_alias_test_list): Likewise. | |
10370 | (vect_find_stmt_data_reference): Likewise. | |
10371 | (vect_analyze_data_refs): Likewise. | |
10372 | (vect_create_addr_base_for_vector_ref): Likewise. | |
10373 | (vect_create_data_ref_ptr): Likewise. | |
10374 | * tree-vect-loop-manip.c (vect_set_loop_condition): Likewise. | |
10375 | (vect_can_advance_ivs_p): Likewise. | |
10376 | (vect_update_ivs_after_vectorizer): Likewise. | |
10377 | (vect_gen_prolog_loop_niters): Likewise. | |
10378 | (vect_prepare_for_masked_peels): Likewise. | |
10379 | * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. | |
10380 | (vect_determine_vectorization_factor): Likewise. | |
10381 | (vect_is_simple_iv_evolution): Likewise. | |
10382 | (vect_analyze_scalar_cycles_1): Likewise. | |
10383 | (vect_analyze_loop_operations): Likewise. | |
10384 | (report_vect_op): Likewise. | |
10385 | (vect_is_slp_reduction): Likewise. | |
10386 | (check_reduction_path): Likewise. | |
10387 | (vect_is_simple_reduction): Likewise. | |
10388 | (vect_create_epilog_for_reduction): Likewise. | |
10389 | (vect_finalize_reduction:): Likewise. | |
10390 | (vectorizable_induction): Likewise. | |
10391 | (vect_transform_loop_stmt): Likewise. | |
10392 | (vect_transform_loop): Likewise. | |
10393 | (optimize_mask_stores): Likewise. | |
10394 | * tree-vect-patterns.c (vect_pattern_detected): Likewise. | |
10395 | (vect_split_statement): Likewise. | |
10396 | (vect_recog_over_widening_pattern): Likewise. | |
10397 | (vect_recog_average_pattern): Likewise. | |
10398 | (vect_determine_min_output_precision_1): Likewise. | |
10399 | (vect_determine_precisions_from_range): Likewise. | |
10400 | (vect_determine_precisions_from_users): Likewise. | |
10401 | (vect_mark_pattern_stmts): Likewise. | |
10402 | (vect_pattern_recog_1): Likewise. | |
10403 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. | |
10404 | (vect_record_max_nunits): Likewise. | |
10405 | (vect_build_slp_tree_1): Likewise. | |
10406 | (vect_build_slp_tree_2): Likewise. | |
10407 | (vect_print_slp_tree): Likewise. | |
10408 | (vect_analyze_slp_instance): Likewise. | |
10409 | (vect_detect_hybrid_slp_stmts): Likewise. | |
10410 | (vect_detect_hybrid_slp_1): Likewise. | |
10411 | (vect_slp_analyze_operations): Likewise. | |
10412 | (vect_slp_analyze_bb_1): Likewise. | |
10413 | (vect_transform_slp_perm_load): Likewise. | |
10414 | (vect_schedule_slp_instance): Likewise. | |
10415 | * tree-vect-stmts.c (vect_mark_relevant): Likewise. | |
10416 | (vect_mark_stmts_to_be_vectorized): Likewise. | |
10417 | (vect_init_vector_1): Likewise. | |
10418 | (vect_get_vec_def_for_operand): Likewise. | |
10419 | (vect_finish_stmt_generation_1): Likewise. | |
10420 | (vect_check_load_store_mask): Likewise. | |
10421 | (vectorizable_call): Likewise. | |
10422 | (vectorizable_conversion): Likewise. | |
10423 | (vectorizable_operation): Likewise. | |
10424 | (vectorizable_load): Likewise. | |
10425 | (vect_analyze_stmt): Likewise. | |
10426 | (vect_is_simple_use): Likewise. | |
10427 | (vect_get_vector_types_for_stmt): Likewise. | |
10428 | (vect_get_mask_type_for_stmt): Likewise. | |
10429 | * tree-vectorizer.c (increase_alignment): Likewise. | |
10430 | ||
10431 | 2018-09-19 Andrew Stubbs <ams@codesourcery.com> | |
10432 | ||
10433 | * doc/rtl.texi: Adjust vec_select description. | |
10434 | * simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use | |
10435 | non-constant selectors. | |
10436 | ||
10437 | 2018-09-19 Matthew Malcomson <matthew.malcomson@arm.com> | |
10438 | ||
10439 | * config/aarch64/aarch64-protos.h | |
10440 | (aarch64_offset_9bit_signed_unscaled_p): New declaration. | |
10441 | * config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value. | |
10442 | (arch_enabled): Add check for "rcpc8_4" attribute value of "arch". | |
10443 | * config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield. | |
10444 | (AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4. | |
10445 | (AARCH64_FL_PROFILE): Move index so flags are ordered. | |
10446 | (AARCH64_ISA_RCPC8_4): New flag. | |
10447 | * config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed | |
10448 | to aarch64_offset_9bit_signed_unscaled_p. | |
10449 | * config/aarch64/atomics.md (atomic_store<mode>): Allow offset | |
10450 | and use stlur. | |
10451 | * config/aarch64/constraints.md (Ust): New constraint. | |
10452 | * config/aarch64/predicates.md. | |
10453 | (aarch64_9bit_offset_memory_operand): New predicate. | |
10454 | (aarch64_rcpc_memory_operand): New predicate. | |
10455 | ||
10456 | 2018-09-19 Eric Botcazou <ebotcazou@adacore.com> | |
10457 | ||
10458 | PR rtl-optimization/87361 | |
10459 | * rtlanal.c (nonzero_bits1): Revert accidental change. | |
10460 | ||
10461 | 2018-09-19 Richard Biener <rguenther@suse.de> | |
10462 | ||
10463 | PR tree-optimization/87349 | |
10464 | PR tree-optimization/87342 | |
10465 | * tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation. | |
10466 | ||
10467 | 2018-09-18 Marek Polacek <polacek@redhat.com> | |
10468 | ||
10469 | P1064R0 - Allowing Virtual Function Calls in Constant Expressions | |
10470 | * gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert. | |
10471 | ||
10472 | 2018-09-18 Segher Boessenkool <segher@kernel.crashing.org> | |
10473 | ||
10474 | * config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment. | |
10475 | ||
10476 | 2018-09-18 Segher Boessenkool <segher@kernel.crashing.org> | |
10477 | ||
10478 | PR rtl-optimization/86882 | |
10479 | * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER. | |
10480 | ||
10481 | 2018-09-18 Uros Bizjak <ubizjak@gmail.com> | |
10482 | ||
10483 | * config/i386/i386.md (*<code>extend<mode>xf2): Macroize insn from | |
10484 | *<code>extendsfxf2 and *<code>extenddfxf2 using MODEF mode iterator. | |
10485 | ||
10486 | 2018-09-18 Jonathan Wakely <jwakely@redhat.com> | |
10487 | ||
10488 | PR other/87353 | |
10489 | * doc/invoke.texi (Link Options): Fix formatting and grammar. | |
10490 | ||
10491 | 2018-09-18 Richard Biener <rguenther@suse.de> | |
10492 | ||
10493 | PR middle-end/63155 | |
10494 | * tree-ssa-coalesce.c (tree_int_map_hasher): Remove. | |
10495 | (compute_samebase_partition_bases): Likewise. | |
10496 | (coalesce_ssa_name): Always use compute_optimized_partition_bases. | |
10497 | (gimple_can_coalesce_p): Simplify. | |
10498 | ||
10499 | 2018-09-18 Hans-Peter Nilsson <hp@bitrange.com> | |
10500 | ||
10501 | Handle a library implementation of ffs calling __builtin_ffs. | |
10502 | * config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with... | |
10503 | (mmix_init_libfuncs): New function: make __builtin_ffs expand | |
10504 | to __ffsdi2. | |
10505 | ||
10506 | 2018-09-17 David Malcolm <dmalcolm@redhat.com> | |
10507 | ||
10508 | * diagnostic-show-locus.c (class layout_range): Add field | |
10509 | "m_original_idx". | |
10510 | (layout_range::layout_range): Add "original_idx" param and use it | |
10511 | to initialize new field. | |
10512 | (make_range): Use 0 for original_idx. | |
10513 | (layout::layout): Pass in index to calls to | |
10514 | maybe_add_location_range. | |
10515 | (layout::maybe_add_location_range): Add param "original_idx" and | |
10516 | pass it on to layout_range. | |
10517 | (layout::print_any_labels): Pass on range->m_original_idx to | |
10518 | get_text call. | |
10519 | (gcc_rich_location::add_location_if_nearby): Use 0 for | |
10520 | original_idx. | |
10521 | * gcc-rich-location.h (text_range_label::get_text): Update for new | |
10522 | param. | |
10523 | (range_label_for_type_mismatch::get_text): Likewise. | |
10524 | ||
10525 | 2018-09-17 Uros Bizjak <ubizjak@gmail.com> | |
10526 | ||
10527 | * config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier. | |
10528 | ||
10529 | 2018-09-17 David Malcolm <dmalcolm@redhat.com> | |
10530 | ||
10531 | * gimple-ssa-sprintf.c (fmtwarn): Update for introduction of | |
10532 | format_string_diagnostic_t. | |
10533 | (fmtwarn_n): Likewise. | |
10534 | * substring-locations.c | |
10535 | (format_string_diagnostic_t::format_string_diagnostic_t) New ctor. | |
10536 | (format_warning_n_va): Convert to... | |
10537 | (format_string_diagnostic_t::emit_warning_n_va): ...this. | |
10538 | (format_warning_va): Convert to... | |
10539 | (format_string_diagnostic_t::emit_warning_va): ...this. | |
10540 | (format_warning_at_substring): Convert to... | |
10541 | (format_string_diagnostic_t::emit_warning): ...this. | |
10542 | (format_warning_at_substring_n): Convert to... | |
10543 | (format_string_diagnostic_t::emit_warning_n): ...this. | |
10544 | * substring-locations.h (class format_string_diagnostic_t): New | |
10545 | class. | |
10546 | (format_warning_va): Convert to | |
10547 | format_string_diagnostic_t::emit_warning_va. | |
10548 | (format_warning_n_va): Convert to | |
10549 | format_string_diagnostic_t::emit_warning_n_va. | |
10550 | (format_warning_at_substring): Convert to | |
10551 | format_string_diagnostic_t::emit_warning. | |
10552 | (format_warning_at_substring_n): Convert to | |
10553 | format_string_diagnostic_t::emit_warning_n. | |
10554 | ||
10555 | 2018-09-17 Cesar Philippidis <cesar@codesourcery.com> | |
10556 | Bernd Schmidt <bernds_cb1@t-online.de> | |
10557 | ||
10558 | * config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with | |
10559 | SImode args. | |
10560 | ||
10561 | 2018-09-17 Uros Bizjak <ubizjak@gmail.com> | |
10562 | ||
10563 | * config/i386/i386.md (truncxf<mode>2_i387_noop_unspec): Change | |
10564 | operand 0 predicate to nonimmediate operand. | |
10565 | (rint<mode>2_frndint): Remove insn pattern. | |
10566 | (rint<mode>2): Change operand 1 predicate to general_operand. | |
10567 | Extend operand 1 to XFmode and generate rintxf2 insn. | |
10568 | (frndintxf2_<rounding>): Rename from frndint<mode>2_<rounding>. | |
10569 | Do not use X87MODEF mode macro. | |
10570 | (frndintxf2_<rounding>_i387): Rename from | |
10571 | frndint<mode>2_<rounding>_i387. Do not use X87MODEF mode macro. | |
10572 | (<rounding_insn><mode>2): For non-SSE modes, extend operand 1 | |
10573 | to XFmode and generate significandxf3 insn. | |
10574 | ||
10575 | 2018-09-17 Richard Biener <rguenther@suse.de> | |
10576 | ||
10577 | PR tree-optimization/87328 | |
10578 | * tree-ssa-sccvn.c (process_bb): Remove assertion about not | |
10579 | visiting unexecutable backedges when not iterating. | |
10580 | (do_rpo_vn): Mark all edges not executable even when not | |
10581 | iterating. | |
10582 | ||
10583 | 2018-09-17 Martin Jambor <mjambor@suse.cz> | |
10584 | ||
10585 | PR c/63886 | |
10586 | * doc/invoke.texi (Warning Options): Likewise. | |
10587 | ||
10588 | 2018-09-17 Richard Biener <rguenther@suse.de> | |
10589 | ||
10590 | PR tree-optimization/87301 | |
10591 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly | |
10592 | clean EH info from leftover copy assignments. | |
10593 | ||
10594 | 2018-09-17 Martin Liska <mliska@suse.cz> | |
10595 | ||
10596 | PR gcov-profile/85871 | |
10597 | * gcov.c (output_intermediate_file): Fix out of bounds | |
10598 | access. | |
10599 | ||
10600 | 2018-09-17 Vineet Gupta <vgupta@synopsys.com> | |
10601 | ||
10602 | * config/arc/arc.c: Object attributes for core4 not reflected | |
10603 | correctly. | |
10604 | * config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes | |
10605 | core3). | |
10606 | ||
10607 | 2018-09-17 Alexey Brodkin <abrodkin@synopsys.com> | |
10608 | ||
10609 | * config/arc/linux.h (LINK_EH_SPEC): Add missing space. | |
10610 | ||
10611 | 2018-09-17 Martin Liska <mliska@suse.cz> | |
10612 | ||
10613 | * doc/gcov.texi: Document new option --use-hotness-colors. | |
10614 | * gcov.c (struct source_info): Declare new field. | |
10615 | (source_info::source_info): Set default for maximum_count. | |
10616 | (print_usage): Add new -q option. | |
10617 | (process_args): Process it. | |
10618 | (accumulate_line_info): Save src->maximum_count. | |
10619 | (output_line_beginning): Make color line number if | |
10620 | flag_use_hotness_colors is set. | |
10621 | (output_line_details): Pass default argument value. | |
10622 | (output_lines): Pass src->maximum_count. | |
10623 | ||
10624 | 2018-09-17 Martin Liska <mliska@suse.cz> | |
10625 | ||
10626 | * common/config/i386/i386-common.c (ix86_get_valid_option_values): | |
10627 | Use processor_names table. | |
10628 | * config/i386/i386.c (ix86_default_align): Use | |
10629 | processor_cost_table for alignment values. | |
10630 | (ix86_option_override_internal): Use processor_names. | |
10631 | (ix86_function_specific_print): Likewise. | |
10632 | * config/i386/i386.h (struct processor_costs): | |
10633 | Add alignment values. | |
10634 | (struct ptt): Remove and replace with const char *. | |
10635 | * config/i386/x86-tune-costs.h (struct processor_costs): | |
10636 | Declare default alignments for all costs. | |
10637 | ||
10638 | 2018-09-17 Aldy Hernandez <aldyh@redhat.com> | |
10639 | ||
10640 | * tree-vrp.c (extract_range_from_unary_expr): Do not special case | |
10641 | symbolics or VR_VARYING ranges for ABS_EXPR. | |
10642 | * wide-int-range.cc (wide_int_range_abs): Return positive numbers | |
10643 | when range will wrap. | |
10644 | ||
10645 | 2018-09-15 Eric Botcazou <ebotcazou@adacore.com> | |
10646 | ||
10647 | PR middle-end/86864 | |
10648 | * cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER | |
10649 | before and after a JUMP_TABLE_DATA. | |
10650 | ||
10651 | 2018-09-14 John David Anglin <danglin@gcc.gnu.org> | |
10652 | ||
10653 | PR middle-end/87188 | |
10654 | * dojump.c (do_compare_and_jump): Canonicalize function pointers | |
10655 | when one operand is a function pointer. Use POINTER_TYPE_P and | |
10656 | FUNC_OR_METHOD_TYPE_P. | |
10657 | * expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P. | |
10658 | * fold-const.c (build_range_check): Likewise. | |
10659 | * match.pd (simple_comparison): Likewise. | |
10660 | ||
10661 | 2018-09-14 David Malcolm <dmalcolm@redhat.com> | |
10662 | ||
10663 | PR c/82967 | |
10664 | * spellcheck.c (get_edit_distance_cutoff): New function. | |
10665 | (selftest::test_edit_distance_unit_test_oneway): Rename to... | |
10666 | (selftest::test_get_edit_distance_one_way): ...this. | |
10667 | (selftest::test_get_edit_distance_unit): Rename to... | |
10668 | (selftest::test_get_edit_distance_both_ways): ...this. | |
10669 | (selftest::test_edit_distances): Move tests to this new function, | |
10670 | and test some more pairs of strings. Update for above renaming. | |
10671 | (selftest::get_old_cutoff): New function. | |
10672 | (selftest::test_get_edit_distance_cutoff): New function. | |
10673 | (selftest::assert_suggested_for): New function. | |
10674 | (ASSERT_SUGGESTED_FOR): New macro. | |
10675 | (selftest::assert_not_suggested_for): New function. | |
10676 | (ASSERT_NOT_SUGGESTED_FOR): New macro. | |
10677 | (selftest::test_suggestions): New function. | |
10678 | (selftest::spellcheck_c_tests): Move test_get_edit_distance_unit | |
10679 | tests to selftest::test_edit_distances and call it. Add calls to | |
10680 | selftest::test_get_edit_distance_cutoff and | |
10681 | selftest::test_suggestions. | |
10682 | * spellcheck.h (get_edit_distance_cutoff): New function declaration. | |
10683 | (best_match::consider): Replace hard-coded cutoff calculation with | |
10684 | a call to... | |
10685 | (best_match::get_cutoff): New declaration. | |
10686 | (best_match::get_best_meaningful_candidate): Likewise. | |
10687 | ||
10688 | 2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
10689 | ||
10690 | * builtins.c (fold_builtin_strlen): Remove TODO comment. | |
10691 | ||
10692 | 2018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
10693 | ||
10694 | revert: | |
10695 | 2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
10696 | ||
10697 | * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL | |
10698 | terminated string literal. | |
10699 | ||
10700 | 2018-09-14 Martin Sebor <msebor@redhat.com> | |
10701 | ||
10702 | * builtins.c (unterminated_array): Handle ARRAY_REF. | |
10703 | (expand_builtin_stpcpy_1): Detect unterminated char arrays. | |
10704 | * builtins.h (unterminated_array): Declare extern. | |
10705 | * gimple-fold.c (gimple_fold_builtin_stpcpy): Detect unterminated | |
10706 | arrays. | |
10707 | (gimple_fold_builtin_sprintf): Propagate NO_WARNING to transformed | |
10708 | calls. | |
10709 | ||
10710 | 2018-09-14 Martin Sebor <msebor@redhat.com> | |
10711 | Jeff Law <law@redhat.com> | |
10712 | ||
10713 | * builtins.c (unterminated_array): New. | |
10714 | (expand_builtin_strcpy): Adjust. | |
10715 | (expand_builtin_strcpy_args): Detect unterminated arrays. | |
10716 | * gimple-fold.c (get_maxval_strlen): Add argument. Detect | |
10717 | unterminated arrays. | |
10718 | * gimple-fold.h (get_maxval_strlen): Add argument. | |
10719 | (gimple_fold_builtin_strcpy): Detec unterminated arrays. | |
10720 | ||
10721 | * gimple-fold.c (get_range_strlen): Add argument. | |
10722 | (get_maxval_strlen): Adjust. | |
10723 | * gimple-fold.h (get_range_strlen): Add argument. | |
10724 | ||
10725 | 2018-09-14 Wei Xiao <wei3.xiao@intel.com> | |
10726 | ||
10727 | * config/i386/movdirintrin.h: Fix copyright year. | |
10728 | ||
10729 | 2018-09-14 Uros Bizjak <ubizjak@gmail.com> | |
10730 | ||
10731 | * reg-stack.c: Include regs.h. | |
10732 | (replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT. | |
10733 | (emit_pop_insn): Default pop insn mode to the reg_raw_mode of | |
10734 | FIRST_STACK_REG, not DFmode. | |
10735 | (emit_swap_insn): Default swap insn mode to the reg_raw_mode of | |
10736 | FIRST_STACK_REG, not XFmode. Explicitly construct swap RTX. | |
10737 | (change stack): Default register mode to the reg_raw_mode of | |
10738 | FIRST_STACK_REG, not DFmode. | |
10739 | * config/i386/i386.md (*swap<mode>): Remove insn pattern. | |
10740 | (*swapxf): Rename from swapxf. | |
10741 | ||
10742 | 2018-09-14 Carl Love <cel@us.ibm.com> | |
10743 | ||
10744 | * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. | |
10745 | * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. | |
10746 | ||
10747 | 2018-09-14 Segher Boessenkool <segher@kernel.crashing.org> | |
10748 | ||
10749 | PR target/87224 | |
10750 | * config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y | |
10751 | alternatives. | |
10752 | ||
10753 | 2018-09-14 Sam Tebbs <sam.tebbs@arm.com> | |
10754 | ||
10755 | PR target/85628 | |
10756 | * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define. | |
10757 | ||
10758 | 2018-09-14 Jason Merrill <jason@redhat.com> | |
10759 | ||
10760 | Fix --enable-gather-detailed-mem-stats. | |
10761 | * hash-table.c (hash_table_usage): Change from variable to function. | |
10762 | * hash-table.h: Adjust. | |
10763 | * Makefile.in: Add missing dependencies on hash-table.h. | |
10764 | ||
10765 | 2018-09-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
10766 | ||
10767 | PR tree-optimization/87259 | |
10768 | PR lto/87283 | |
10769 | (pass_cse_reciprocals::execute): Run optimize_recip_sqrt after | |
10770 | execute_cse_reciprocals_1 has tried transforming. | |
10771 | ||
10772 | 2018-09-14 Aldy Hernandez <aldyh@redhat.com> | |
10773 | ||
10774 | * tree-vrp.c (extract_range_from_binary_expr_1): Normalize | |
10775 | VR_VARYING for PLUS/MINUS_EXPR. | |
10776 | ||
10777 | 2018-09-14 Ilya Leoshkevich <iii@linux.ibm.com> | |
10778 | ||
10779 | * config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve | |
10780 | formatting. | |
10781 | ||
10782 | 2018-09-14 Richard Biener <rguenther@suse.de> | |
10783 | ||
10784 | PR middle-end/63155 | |
10785 | * tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict | |
10786 | bits for the merged partition. | |
10787 | ||
10788 | 2018-09-13 Martin Sebor <msebor@redhat.com> | |
10789 | Bernd Edlinger <bernd.edlinger@hotmail.de> | |
10790 | ||
10791 | * builtins.h (c_srlen): Add argument. | |
10792 | * builtins.c (warn_string_no_nul): New function. | |
10793 | (c_strlen): Add argument and use it. Update recursive calls. | |
10794 | Pass DECL argument to string_constant to get info on non | |
10795 | terminated strings. Update *NONSTR as needed. | |
10796 | (fold_builtin_strlen): Add argument to calls to c_strlen. | |
10797 | Warn for unterminated arrays. | |
10798 | (warn_string_no_null): Add prototype. | |
10799 | * expr.c (string_constant): Update arguments. Update recursive | |
10800 | calls appropriately. Detect missing NUL terminator and outermost | |
10801 | declaration its missing in. | |
10802 | Improve checks for arrays with nonzero lower bound or elements | |
10803 | that are not a single byte. Simplify offset computation. | |
10804 | Simplify checks for non-NUL terminated strings. | |
10805 | * gimple-fold.c (get_range_strlen): Add argument to c_strlen call. | |
10806 | * gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code. | |
10807 | ||
10808 | 2018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
10809 | ||
10810 | * builtins.c (c_strlen): Handle not zero terminated STRING_CSTs | |
10811 | correctly. | |
10812 | * fold-const.c (c_getstr): Fix function comment. Remove unused third | |
10813 | argument. Fix range checks. | |
10814 | * fold-const.h (c_getstr): Adjust protoype. | |
10815 | * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when | |
10816 | string is constant but contains no NUL byte. | |
10817 | ||
10818 | * expr.c (string_constant): Adjust function comment. | |
10819 | Remove bogus check for zero termination. | |
10820 | ||
10821 | * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE. | |
10822 | ||
10823 | * varasm.c (compare_constant): Compare type size of STRING_CSTs. | |
10824 | (get_constant_size): Don't make STRING_CSTs larger than they are. | |
10825 | (check_string_literal): New check function for STRING_CSTs. | |
10826 | (output_constant): Use it. | |
10827 | ||
10828 | 2018-09-13 Eric Botcazou <ebotcazou@adacore.com> | |
10829 | ||
10830 | PR target/86812 | |
10831 | * config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. | |
10832 | ||
10833 | 2018-09-13 Richard Biener <rguenther@suse.de> | |
10834 | ||
10835 | PR tree-optimization/87263 | |
10836 | * tree-ssa-sccvn.c (visit_phi): Revert some earlier changes. | |
10837 | (struct unwind_state): Add max_rpo field. | |
10838 | (do_rpo_vn): Allow up-to-date loop state to be used when not iterating. | |
10839 | Compute max_rpo, the max RPO number a block can be backwards reached | |
10840 | from. Re-write non-iterating mode to a RPO ordered worklist approach, | |
10841 | separating it from the iterating mode. | |
10842 | ||
10843 | 2018-09-13 Vlad Lazar <vlad.lazar@arm.com> | |
10844 | ||
10845 | * haifa-sched.c (rank_for_schedule): Schedule by INSN_COST. | |
10846 | (rfs_decision): New scheduling decision. | |
10847 | ||
10848 | 2018-09-13 Richard Biener <rguenther@suse.de> | |
10849 | ||
10850 | PR bootstrap/87134 | |
10851 | * tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert. | |
10852 | (vn_nary_op_insert_pieces_predicated): Do not write useless | |
10853 | valid_dominated_by_p entry outside of the allocated storage. | |
10854 | ||
10855 | 2018-09-13 Omar Sandoval <osandov@osandov.com> | |
10856 | Tom de Vries <tdevries@suse.de> | |
10857 | ||
10858 | PR debug/86985 | |
10859 | * dwarf2out.c (is_c): New function. | |
10860 | (add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays. | |
10861 | ||
10862 | 2018-09-13 Sam Tebbs <sam.tebbs@arm.com> | |
10863 | ||
10864 | PR target/85628 | |
10865 | * config/aarch64/aarch64.md (*aarch64_bfxil): | |
10866 | Define. | |
10867 | * config/aarch64/constraints.md (Ulc): Define. | |
10868 | * config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p): | |
10869 | Define. | |
10870 | * config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p): | |
10871 | New function. | |
10872 | ||
10873 | 2018-09-13 Vlad Lazar <vlad.lazar@arm.com> | |
10874 | ||
10875 | * config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define. | |
10876 | * config/aarch64/aarch64.c (aarch64_expand_prologue): Remove | |
10877 | aarch64_layout_frame call. | |
10878 | (aarch64_expand_epilogue): Likewise. | |
10879 | (aarch64_initial_elimination_offset): Likewise. | |
10880 | (aarch64_get_separate_components): Likewise. | |
10881 | (aarch64_use_return_insn_p): Likewise. | |
10882 | (aarch64_layout_frame): Remove unneeded check. | |
10883 | ||
10884 | 2018-09-13 Jakub Jelinek <jakub@redhat.com> | |
10885 | ||
10886 | * configure.ac: Only append | |
10887 | " : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to | |
10888 | gcc_config_arguments if it was never reconfigured or last reconfigure | |
10889 | was with different arguments. | |
10890 | * configure: Regenerated. | |
10891 | ||
10892 | 2018-09-13 Jakub Jelinek <jakub@redhat.com> | |
10893 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
10894 | ||
10895 | PR middle-end/87290 | |
10896 | * expr.c (maybe_optimize_pow2p_mod_cmp): New function. | |
10897 | (maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1. | |
10898 | ||
10899 | 2018-09-13 Jakub Jelinek <jakub@redhat.com> | |
10900 | ||
10901 | PR tree-optimization/87287 | |
10902 | * fold-const.c (fold_binary_loc) <case EQ_EXPR>: Move signed modulo | |
10903 | X % C == 0 to X % (unsigned) C == 0 optimization to ... | |
10904 | * match.pd (X % C == 0): ... here. New optimization. | |
10905 | ||
10906 | 2018-09-12 Jakub Jelinek <jakub@redhat.com> | |
10907 | ||
10908 | PR middle-end/82853 | |
10909 | * expr.h (maybe_optimize_mod_cmp): Declare. | |
10910 | * expr.c (mod_inv): New function. | |
10911 | (maybe_optimize_mod_cmp): New function. | |
10912 | (do_store_flag): Use it. | |
10913 | * cfgexpand.c (expand_gimple_cond): Likewise. | |
10914 | ||
10915 | 2018-09-09 Cesar Philippidis <cesar@codesourcery.com> | |
10916 | Julian Brown <julian@codesourcery.com> | |
10917 | ||
10918 | PR middle-end/86336 | |
10919 | * gimplify.c (gimplify_scan_omp_clauses): Set | |
10920 | target_firstprivatize_array_bases in OpenACC parallel and kernels | |
10921 | region contexts. Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from | |
10922 | OpenACC data regions. | |
10923 | ||
10924 | 2018-09-12 Uros Bizjak <ubizjak@gmail.com> | |
10925 | ||
10926 | * config/i386/i386.md (sqrt_extend<mode>xf3_i387): Remove. | |
10927 | (sqrt<mode>2): Extend operand 1 to XFmode and generate sqrtxf3 insn. | |
10928 | ||
10929 | 2018-09-12 Richard Biener <rguenther@suse.de> | |
10930 | ||
10931 | PR tree-optimization/87280 | |
10932 | * tree-ssa-sccvn.c (process_bb): Handle the case of executable | |
10933 | edge but unreachable target. | |
10934 | (do_rpo_vn): For conservatively handling a PHI only mark | |
10935 | the backedge executable but not the block reachable. | |
10936 | ||
10937 | 2018-09-12 Richard Biener <rguenther@suse.de> | |
10938 | ||
10939 | PR tree-optimization/87266 | |
10940 | * tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet | |
10941 | visited blocks. | |
10942 | ||
10943 | 2018-09-12 Andreas Krebbel <krebbel@linux.ibm.com> | |
10944 | ||
10945 | * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New | |
10946 | constants. | |
10947 | ("trunc<BFP:mode><DFP_ALL:mode>2") | |
10948 | ("trunc<DFP_ALL:mode><BFP:mode>2") | |
10949 | ("extend<BFP:mode><DFP_ALL:mode>2") | |
10950 | ("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode | |
10951 | according to the target operand type. | |
10952 | ||
10953 | 2018-09-12 Jakub Jelinek <jakub@redhat.com> | |
10954 | Andreas Krebbel <krebbel@linux.ibm.com> | |
10955 | ||
10956 | PR tree-optimization/86844 | |
10957 | * gimple-ssa-store-merging.c | |
10958 | (imm_store_chain_info::coalesce_immediate): For overlapping stores, if | |
10959 | there are any overlapping stores in between them, make sure they are | |
10960 | also coalesced or we give up completely. | |
10961 | ||
10962 | 2018-09-12 Jakub Jelinek <jakub@redhat.com> | |
10963 | ||
10964 | PR middle-end/87248 | |
10965 | * fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that | |
10966 | BIT_AND_EXPR's second operand is a power of two. Formatting fix. | |
10967 | ||
10968 | 2018-09-12 Tom de Vries <tdevries@suse.de> | |
10969 | ||
10970 | * common.opt (gdescribe-dies): Add option. | |
10971 | * dwarf2out.c (add_name_and_src_coords_attributes): Add description | |
10972 | attribute for artifical and nameless decls. | |
10973 | (dwarf2out_register_external_die): Add description attribute to | |
10974 | external reference die. | |
10975 | (add_desc_attribute): New functions. | |
10976 | (gen_subprogram_die): Add description attribute to | |
10977 | DW_TAG_call_site_parameter. | |
10978 | * tree-pretty-print.c (print_generic_expr_to_str): New function. | |
10979 | * tree-pretty-print.h (print_generic_expr_to_str): Declare. | |
10980 | * doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and | |
10981 | -gno-describe-dies. | |
10982 | (@item -gdescribe-dies): Add. | |
10983 | ||
10984 | 2018-09-12 Aldy Hernandez <aldyh@redhat.com> | |
10985 | ||
10986 | * tree-vrp.c (vrp_shift_undefined_p): Remove. | |
10987 | (extract_range_from_binary_expr_1: Call | |
10988 | wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p. | |
10989 | * wide-int-range.h (wide_int_range_shift_undefined_p): Do not | |
10990 | depend on sign. | |
10991 | ||
10992 | 2018-09-12 Aldy Hernandez <aldyh@redhat.com> | |
10993 | ||
10994 | * gimple-ssa-warn-alloca.c | |
10995 | (alloca_type_and_limit::alloca_type_and_limit): Initialize limit | |
10996 | field for ALLOCA_BOUND_*_LARGE. | |
10997 | ||
10998 | 2018-09-11 Nathan Sidwell <nathan@acm.org> | |
10999 | ||
11000 | * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'. | |
11001 | ||
11002 | 2018-09-11 Uros Bizjak <ubizjak@gmail.com> | |
11003 | ||
11004 | * reg-stack.c (subst_asm_stack_regs): Call replace_reg also | |
11005 | for clobbers. Remove obsolete comment. | |
11006 | ||
11007 | 2018-09-11 Uros Bizjak <ubizjak@gmail.com> | |
11008 | ||
11009 | * config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk, | |
11010 | mpxchk, mpxld and mpxst types. | |
11011 | (define_attr length_immediate): Remove all processing of mpx types. | |
11012 | (define_attr prefix_0f): Ditto. | |
11013 | (define_attr memory): Ditto. | |
11014 | ||
11015 | 2018-09-11 Uros Bizjak <ubizjak@gmail.com> | |
11016 | ||
11017 | * config/i386/i386.md (fyl2x_extend<mode>xf3_i387): Remove. | |
11018 | (log<mode>2): Change operand 1 predicate to general_operand. | |
11019 | Extend operand 1 to XFmode and generate logxf3 insn. | |
11020 | (log10<mode>2): Change operand 1 predicate to general_operand. | |
11021 | Extend operand 1 to XFmode and generate log10xf3 insn. | |
11022 | (log2<mode>2): Change operand 1 predicate to general_operand. | |
11023 | Extend operand 1 to XFmode and generate log2xf3 insn. | |
11024 | (fyl2xp1_extend<mode>xf3_i387): Remove. | |
11025 | (log1p<mode>2): Change operand 1 predicate to general_operand. | |
11026 | Extend operand 1 to XFmode and generate log1pxf3 insn. | |
11027 | (fxtract_extend<mode>xf3_i387): Remove. | |
11028 | (logb<mode>2): Change operand 1 predicate to general_operand. | |
11029 | Extend operand 1 to XFmode and generate logbxf3 insn. | |
11030 | (ilogb<mode>2): Change operand 1 predicate to general_operand. | |
11031 | Extend operand 1 to XFmode and generate fxtractxf3_i387 insn. | |
11032 | (significand<mode>2): Change operand 1 predicate to general_operand. | |
11033 | Extend operand 1 to XFmode and generate significandxf3 insn. | |
11034 | ||
11035 | 2018-09-11 Nathan Sidwell <nathan@acm.org> | |
11036 | ||
11037 | * gcc.c (perror_with_name, pfatal_with_name): Delete. | |
11038 | (load_specs): Use fatal_error. | |
11039 | (DELETE_IF_ORDINARY, process_command): Use error. | |
11040 | (execute, run_attempt): Use fatal_error. | |
11041 | ||
11042 | 2018-09-11 Andrew Stubbs <ams@codesourcery.com> | |
11043 | ||
11044 | * diagnostic-core.h (sorry_at): New prototype. | |
11045 | * diagnostic.c (sorry_at): New function. | |
11046 | ||
11047 | 2018-09-11 Aldy Hernandez <aldyh@redhat.com> | |
11048 | ||
11049 | * tree-vrp.c (extract_range_from_binary_expr_1): Treat all divisions | |
11050 | by zero as VR_UNDEFINED. | |
11051 | ||
11052 | 2018-09-10 Uros Bizjak <ubizjak@gmail.com> | |
11053 | ||
11054 | * config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387. | |
11055 | (*<sincos>_extend<mode>xf2_i387): Remove insn pattern. | |
11056 | (<sincos>mode2): New expander. | |
11057 | (sincos_extend<mode>xf3_i387): Remove insn pattern. | |
11058 | (sincos -> sin, cos splitters): Remove splitter patterns. | |
11059 | (sincos<mode>3): Change operand 2 predicate to general_operand. | |
11060 | Extend operand 2 to XFmode and generate sincosxf3 insn. | |
11061 | (fptanxf4_i387): Change mode of operands 0 and 3 to SFmode. | |
11062 | Change operand 3 predicate to const1_operand. | |
11063 | (fptan_extend<mode>xf4_i387): Remove insn pattern. | |
11064 | (tanxf2): Update operands in the call to fptanxf4_i387. | |
11065 | (tan<mode>2): Change operand 1 predicate to general_operand. | |
11066 | Extend operand 1 to XFmode and generate tanxf3 insn. | |
11067 | (atan2xf3): Rename from *fpatanxf3_i387. | |
11068 | (fpatan_extend<mode>xf3_i387): Remove insn pattern. | |
11069 | (atan2xf3): Remove expander. | |
11070 | (atan2<mode<3): Change operand 1 and 2 predicates to general_operand. | |
11071 | Extend operands 1 and 2 to XFmode and generate atan2xf3 insn. | |
11072 | (atan<mode>2): Change operand 1 predicate to general_operand. | |
11073 | Extend operand 1 to XFmode and generate atanxf3 insn. | |
11074 | ||
11075 | 2018-09-10 Uros Bizjak <ubizjak@gmail.com> | |
11076 | ||
11077 | * config/i386/i386.md (x87/SSE constant load splitter): Use | |
11078 | memory_operand instead of nonimmediate_operand for input operand | |
11079 | predicate. | |
11080 | ||
11081 | 2018-09-09 Uros Bizjak <ubizjak@gmail.com> | |
11082 | ||
11083 | * config/i386/i386.md (float partial SSE register stall splitter): Move | |
11084 | splitter near its instruction pattern. | |
11085 | (float_extend partial SSE register stall splitter): Ditto. | |
11086 | (float_truncate partial SSE register stall splitter): Ditto. | |
11087 | ||
11088 | 2018-09-09 Hans-Peter Nilsson <hp@bitrange.com> | |
11089 | ||
11090 | PR target/86794 | |
11091 | * config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine | |
11092 | to speculation_safe_value_not_needed. | |
11093 | ||
11094 | PR target/85666 | |
11095 | * config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size | |
11096 | non-CONST_INT rtx:es using assemble_integer_with_op ".byte". | |
11097 | (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call | |
11098 | leaf_function_p, instead use has_hard_reg_initial_val. | |
11099 | ||
11100 | 2018-09-09 Nathan Sidwell <nathan@acm.org> | |
11101 | ||
11102 | * gcc.h (pfatal_with_name): Don't declare here. | |
11103 | * gcc.c (pfatal_with_name): Make static. | |
11104 | ||
11105 | 2018-09-09 Xianmiao Qu <xianmiao_qu@c-sky.com> | |
11106 | ||
11107 | * config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add | |
11108 | earlyclobber. | |
11109 | ||
11110 | 2018-09-08 John David Anglin <danglin@gcc.gnu.org> | |
11111 | ||
11112 | PR rtl-optimization/85458 | |
11113 | * sel-sched.c (sel_target_adjust_priority): Allow backend adjust | |
11114 | priority hook to reduce the priority of EXPR. | |
11115 | ||
11116 | 2018-09-07 Uros Bizjak <ubizjak@gmail.com> | |
11117 | ||
11118 | * config/i386/i386.md (float<SWI48x:mode><MODEF:mode>2) Enable | |
11119 | DImode for x87 on 32bit targets. Conditionally disable x87 modes | |
11120 | with X87_ENABLE_FLOAT. Remove preparation code. | |
11121 | (*float<SWI48:mode><MODEF:mode>2): Rename from | |
11122 | *float<SWI48:mode><MODEF:mode>2_mixed. Handle x87, SSE and mixed | |
11123 | math using "enabled" attribute. | |
11124 | (*floatdi<MODEF:mode>2_i387): Rename from | |
11125 | *float<SWI48x:mode><MODEF:mode>2_i387. Handle only DImode and | |
11126 | enable for 32bit targets only. | |
11127 | (floatdi<X87MODEF:mode>2_i387_with_xmm pre-reload splitter): New | |
11128 | splitter. | |
11129 | (floatdi<X87MODEF:mode>2_i387_with_xmm): Use register_operand | |
11130 | as operand 1 predicate. Rewrite as define_insn_and_split. | |
11131 | (floatdi<X87MODEF:mode>2_i387_with_xmm memory input splitter): Remove. | |
11132 | ||
11133 | 2018-09-06 Uros Bizjak <ubizjak@gmail.com> | |
11134 | ||
11135 | * reg-stack.c (get_true_reg) <case FLOAT_TRUNCATE>: Reorder | |
11136 | to fallthru to FLOAT case. | |
11137 | ||
11138 | 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> | |
11139 | ||
11140 | PR target/86731 | |
11141 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic | |
11142 | around folding of vec_sl to handle out of range shift values. | |
11143 | ||
11144 | 2018-09-06 Uros Bizjak <ubizjak@gmail.com> | |
11145 | ||
11146 | * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Remove. | |
11147 | Update callers to gen_fix_trunc<mode>_i387_fisttp | |
11148 | (fix_trunc<mode>_i387_fisttp): Change operand 0 predicate to | |
11149 | nonimmediate_operand. | |
11150 | (fix_trunc<mode>_i387_fisttp_with_temp): Remove insn pattern | |
11151 | and corresponding splitters. | |
11152 | (*fix_trunc<mode>_i387_1): Always expand with fix_trunc<mode>_i387. | |
11153 | (fix_truncdi_i387): Change operand 0 predicate to nonimmediate_operand. | |
11154 | (fix_truncdi_i387_with_temp): Remove insn pattern | |
11155 | and corresponding splitters. | |
11156 | (fix_trunc<mode>_i387): Change operand 0 predicate to | |
11157 | nonimmediate_operand. | |
11158 | (fix_trunc<mode>_i387_with_temp): Remove insn pattern | |
11159 | and corresponding splitters. | |
11160 | (*fistdi2_1): Remove. | |
11161 | (fistdi2): Ditto. | |
11162 | (fistdi2_with_temp): Remove insn pattern and corresponding splitters. | |
11163 | (lrintxfdi2): Remove expander. Reimplement as define_insn. | |
11164 | (*fist<mode>2_1): Remove. | |
11165 | (fist<mode>2): Ditto. | |
11166 | (fist<mode>2_with_temp): Remove insn pattern and corresponding | |
11167 | splitters. | |
11168 | (lrintxf<mode>2): Remove expander. Reimplement as define_insn. | |
11169 | (*fist<mode>2_<rounding>_1): Always expand with fist<mode>2_<rounding>. | |
11170 | (fistdi2_<rounding>): Change operand 0 predicate to | |
11171 | nonimmediate_operand. | |
11172 | (fistdi2_<rounding>_with_temp): Remove insn pattern | |
11173 | and corresponding splitters. | |
11174 | (fist<mode>2_<rounding>): Change operand 0 predicate to | |
11175 | nonimmediate_operand. | |
11176 | (fist<mode>2_<rounding>_with_temp): Remove insn pattern | |
11177 | and corresponding splitters. | |
11178 | ||
11179 | (*fixuns_trunc<mode>si2_avx512f_zext): Depend on TARGET_SSE_MATH. | |
11180 | ||
11181 | 2018-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11182 | ||
11183 | * varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of | |
11184 | the init value. | |
11185 | ||
11186 | 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> | |
11187 | ||
11188 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for | |
11189 | early gimple folding of vec_splat(). | |
11190 | * tree-vect-generic.c: Remove static from tree_vec_extract() definition. | |
11191 | * gimple-fold.h: Add an extern define for tree_vec_extract(). | |
11192 | ||
11193 | 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> | |
11194 | ||
11195 | * config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p | |
11196 | wrappers around TREE_TYPE comparisons. | |
11197 | ||
11198 | 2018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> | |
11199 | ||
11200 | PR target/80080 | |
11201 | * config/s390/predicates.md: Add nonsym_memory_operand. | |
11202 | * config/s390/s390.c (s390_legitimize_cs_operand): If operand | |
11203 | contains a SYMBOL_REF, load it into an intermediate pseudo. | |
11204 | (s390_emit_compare_and_swap): Legitimize operand. | |
11205 | * config/s390/s390.md: Use the new nonsym_memory_operand | |
11206 | with UNSPECV_CAS patterns. | |
11207 | ||
11208 | 2018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> | |
11209 | ||
11210 | PR target/80080 | |
11211 | * config/s390/s390-passes.def: New file. | |
11212 | * config/s390/s390-protos.h (class rtl_opt_pass): Add forward | |
11213 | declaration. | |
11214 | (make_pass_s390_early_mach): Add declaration. | |
11215 | * config/s390/s390.c (make_pass_s390_early_mach): | |
11216 | (s390_option_override): Remove dynamic registration. | |
11217 | * config/s390/t-s390: Add s390-passes.def. | |
11218 | ||
11219 | 2018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> | |
11220 | ||
11221 | * config/s390/s390.c (s390_decompose_constant_pool_ref): | |
11222 | Remove UNSPEC_LTREL_BASE check. | |
11223 | (annotate_constant_pool_refs): Likewise. | |
11224 | (find_constant_pool_ref): Likewise. | |
11225 | (find_ltrel_base): Removed. | |
11226 | (replace_ltrel_base): Removed. | |
11227 | (s390_mainpool_finish): Remove replace_ltrel_base call. | |
11228 | (s390_chunkify_start): Remove pending LTREL_BASE logic. | |
11229 | (s390_chunkify_finish): Remove replace_ltrel_base call. | |
11230 | * config/s390/s390.md: Remove UNSPEC_LTREL_BASE. | |
11231 | ||
11232 | 2018-09-06 Hans-Peter Nilsson <hp@axis.com> | |
11233 | ||
11234 | PR target/86779 | |
11235 | * config/cris/cris.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine | |
11236 | to speculation_safe_value_not_needed. | |
11237 | ||
11238 | 2018-09-05 Cesar Philippidis <cesar@codesourcery.com> | |
11239 | Bernd Schmidt <bernds_cb1@t-online.de> | |
11240 | ||
11241 | * config/nvptx/nvptx-opts.h: New file. | |
11242 | * config/nvptx/nvptx.c (nvptx_file_start): Print the correct .target. | |
11243 | * config/nvptx/nvptx.h: Include "nvptx-opts.h". | |
11244 | (ASM_SPEC): Define. | |
11245 | (TARGET_SM35): New macro. | |
11246 | * config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with the | |
11247 | correct predicate. | |
11248 | * config/nvptx/nvptx.opt (ptx_isa, sm_30, sm_35): New enum and its | |
11249 | values. | |
11250 | (misa=): New option. | |
11251 | * doc/invoke.texi (Nvidia PTX Options): Document -misa. | |
11252 | ||
11253 | 2018-09-05 Uros Bizjak <ubizjak@gmail.com> | |
11254 | ||
11255 | * config/i386/i386.md (truncdfsf2): Remove expander. | |
11256 | (truncdfsf2_with_temp): Ditto. | |
11257 | (truncxf<mode>2): Ditto. | |
11258 | (*truncdfsf_fast_mixed): Remove insn pattern. | |
11259 | (*truncdfsf_fast_i387): Ditto. | |
11260 | (*truncdfsf_mixed): Ditto. | |
11261 | (*truncdfsf_i387): Ditto. | |
11262 | (*truncdfsf2_i387_1): Ditto. | |
11263 | (*truncxfsf2_mixed): Ditto. | |
11264 | (*truncxfdf2_mixed): Ditto. | |
11265 | (*truncxf<mode>2_i387_noop): Ditto. Update callers | |
11266 | to call gen_truncxf<mode>2 instead. | |
11267 | (*truncxf<mode>2_i387): Remove. | |
11268 | (reg->reg splitters): Remove splitter pattern. | |
11269 | (reg->mem splitters): Ditto. | |
11270 | ||
11271 | (truncdfsf2): New insn pattern. | |
11272 | (truncxf<mode>2): Ditto. | |
11273 | ||
11274 | 2018-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11275 | ||
11276 | * tree-ssa-math-opts.c (is_mult_by): New function. | |
11277 | (is_square_of): Use the above. | |
11278 | (optimize_recip_sqrt): New function. | |
11279 | (pass_cse_reciprocals::execute): Use the above. | |
11280 | ||
11281 | 2018-09-05 Richard Biener <rguenther@suse.de> | |
11282 | ||
11283 | PR bootstrap/87134 | |
11284 | * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Make sure | |
11285 | to zero-init the emplaced vec. | |
11286 | ||
11287 | 2018-09-05 Martin Liska <mliska@suse.cz> | |
11288 | ||
11289 | PR tree-optimization/87205 | |
11290 | * tree-switch-conversion.c (pass_lower_switch::execute): | |
11291 | Group cases for switch statements. | |
11292 | ||
11293 | 2018-09-05 Richard Biener <rguenther@suse.de> | |
11294 | ||
11295 | PR tree-optimization/87217 | |
11296 | * tree-ssa-sccvn.c (vuse_valueize): New. | |
11297 | (vn_reference_lookup_pieces): Use it. | |
11298 | (vn_reference_lookup): Likewise. | |
11299 | ||
11300 | 2018-09-05 Nathan Sidwell <nathan@acm.org> | |
11301 | ||
11302 | PR c++/87137 | |
11303 | * stor-layout.c (place_field): Scan forwards to check last | |
11304 | bitfield when ms_bitfield_placement is in effect. | |
11305 | ||
11306 | 2018-09-05 Richard Biener <rguenther@suse.de> | |
11307 | ||
11308 | PR bootstrap/87225 | |
11309 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus | |
11310 | return. | |
11311 | ||
11312 | 2018-09-05 Siddhesh Poyarekar <siddhesh@sourceware.org> | |
11313 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
11314 | ||
11315 | * config/aarch64/falkor-tag-collision-avoidance.c: New file. | |
11316 | * config.gcc (extra_objs): Build it. | |
11317 | * config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): | |
11318 | Likewise. | |
11319 | * config/aarch64/aarch64-passes.def | |
11320 | (pass_tag_collision_avoidance): New pass. | |
11321 | * config/aarch64/aarch64.c (qdf24xx_tunings): Add | |
11322 | AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS to tuning_flags. | |
11323 | (aarch64_classify_address): Remove static qualifier. | |
11324 | (aarch64_address_info, aarch64_address_type): Move to... | |
11325 | * config/aarch64/aarch64-protos.h: ... here. | |
11326 | (make_pass_tag_collision_avoidance): New function. | |
11327 | * config/aarch64/aarch64-tuning-flags.def (rename_load_regs): | |
11328 | New tuning flag. | |
11329 | ||
11330 | 2018-09-05 Martin Liska <mliska@suse.cz> | |
11331 | ||
11332 | * doc/gcov.texi: Update documentation of humar | |
11333 | readable mode. | |
11334 | * gcov.c (format_count): Print one decimal place, it provides | |
11335 | more fine number of situations like '1G' vs. '1.4G'. | |
11336 | ||
11337 | 2018-09-05 Martin Liska <mliska@suse.cz> | |
11338 | ||
11339 | PR target/87164 | |
11340 | * config/rs6000/rs6000.opt: Mark the option as Deprecated. | |
11341 | * optc-gen.awk: Allow 'Var' for Deprecated options in order | |
11342 | to generate a MASK value. | |
11343 | ||
11344 | 2018-09-04 H.J. Lu <hongjiu.lu@intel.com> | |
11345 | ||
11346 | PR debug/86593 | |
11347 | * dwarf2out.c (based_loc_descr): Allow hard frame pointer even | |
11348 | if frame pointer isn't used. | |
11349 | (compute_frame_pointer_to_fb_displacement): Likewise. | |
11350 | ||
11351 | 2018-09-04 Jakub Jelinek <jakub@redhat.com> | |
11352 | ||
11353 | PR target/87198 | |
11354 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, | |
11355 | OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use | |
11356 | OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. | |
11357 | (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET | |
11358 | and OPTION_MASK_ISA_XSAVEC_UNSET. | |
11359 | ||
11360 | 2018-09-04 Max Filippov <jcmvbkbc@gmail.com> | |
11361 | ||
11362 | * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and | |
11363 | XOR operations in NAND case. | |
11364 | ||
11365 | 2018-09-04 Aldy Hernandez <aldyh@redhat.com> | |
11366 | ||
11367 | * wide-int-range.cc (wide_int_range_convert): New. | |
11368 | * wide-int-range.h (wide_int_range_convert): New. | |
11369 | * tree-vrp.c (extract_range_from_unary_expr): Abstract wide int | |
11370 | code into wide_int_range_convert. | |
11371 | (extract_range_into_wide_ints): Do not munge anti range constants | |
11372 | into the entire domain. Just return the range back. | |
11373 | ||
11374 | 2018-09-04 Martin Liska <mliska@suse.cz> | |
11375 | ||
11376 | * genmatch.c (output_line_directive): Add new argument | |
11377 | fnargs. | |
11378 | (dt_simplify::gen_1): Encapsulate dump within __builtin_expect. | |
11379 | ||
11380 | 2018-09-04 Jonathan Wakely <jwakely@redhat.com> | |
11381 | ||
11382 | * doc/invoke.texi (Option Summary): Add whitespace. | |
11383 | ||
11384 | * doc/invoke.texi (Option Summary): Add -Waligned-new. | |
11385 | ||
11386 | 2018-09-04 Richard Biener <rguenther@suse.de> | |
11387 | ||
11388 | PR tree-optimization/87211 | |
11389 | * tree-ssa-sccvn.c (visit_phi): When value-numbering to a | |
11390 | backedge value we're supposed to treat as VARYING also number | |
11391 | the PHI to VARYING in case it got a different value-number already. | |
11392 | ||
11393 | 2018-09-04 Aldy Hernandez <aldyh@redhat.com> | |
11394 | ||
11395 | * tree-vrp.c (vrp_can_optimize_bit_op): Remove. | |
11396 | (extract_range_from_binary_expr_1): Do not call | |
11397 | vrp_can_optimize_bit_op. | |
11398 | * wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make | |
11399 | static. | |
11400 | (wide_int_range_get_mask_and_bounds): New. | |
11401 | (wide_int_range_optimize_bit_op): New. | |
11402 | (wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op. | |
11403 | (wide_int_range_bit_and): Same. | |
11404 | * wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove. | |
11405 | (wide_int_range_optimize_bit_op): New. | |
11406 | (wide_int_range_get_mask_and_bounds): New. | |
11407 | ||
11408 | 2018-09-04 Richard Biener <rguenther@suse.de> | |
11409 | ||
11410 | PR tree-optimization/87176 | |
11411 | * tree-ssa-sccvn.c (visit_phi): Remove redundant allsame | |
11412 | variable. When value-numbering a virtual PHI node make sure | |
11413 | to not value-number to the backedge value. | |
11414 | ||
11415 | 2018-09-04 Jonathan Wakely <jwakely@redhat.com> | |
11416 | ||
11417 | * doc/extend.texi (Long Long, Hex Floats): Document support for | |
11418 | long long and hex floats in more recent versions of ISO C++. | |
11419 | ||
11420 | 2018-09-03 Richard Biener <rguenther@suse.de> | |
11421 | ||
11422 | PR tree-optimization/87177 | |
11423 | * tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep | |
11424 | cleanup. | |
11425 | ||
11426 | 2018-09-03 Alexander Monakov <amonakov@ispras.ru> | |
11427 | ||
11428 | * bb-reorder.c (edge_order): Convert to C-qsort-style | |
11429 | tri-state comparator. | |
11430 | (reorder_basic_blocks_simple): Change std::stable_sort to | |
11431 | gcc_stablesort. | |
11432 | ||
11433 | 2018-09-03 Alexander Monakov <amonakov@ispras.ru> | |
11434 | ||
11435 | * tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style | |
11436 | tri-state comparator. | |
11437 | (fuse_memset_builtins): Change std::stable_sort to gcc_stablesort. | |
11438 | ||
11439 | 2018-09-03 Alexander Monakov <amonakov@ispras.ru> | |
11440 | ||
11441 | * sort.cc (struct sort_ctx): New field 'nlim'. Use it... | |
11442 | (mergesort): ... here as maximum count for using netsort. | |
11443 | (gcc_qsort): Set nlim to 3 if stable sort is requested. | |
11444 | (gcc_stablesort): New. | |
11445 | * system.h (gcc_stablesort): Declare. | |
11446 | ||
11447 | 2018-09-03 Alexander Monakov <amonakov@ispras.ru> | |
11448 | ||
11449 | * sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk. | |
11450 | * system.h (qsort): Always redirect to gcc_qsort. Update comment. | |
11451 | * vec.c (qsort_chk): Do not call gcc_qsort. Update comment. | |
11452 | ||
11453 | 2018-09-03 Segher Boessenkool <segher@kernel.crashing.org> | |
11454 | ||
11455 | * config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the | |
11456 | lxsdx and stxsdx alternatives. | |
11457 | (*mov<mode>_hardfloat64): Ditto. | |
11458 | * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto. | |
11459 | ||
11460 | 2018-09-03 Richard Biener <rguenther@suse.de> | |
11461 | ||
11462 | PR tree-optimization/87200 | |
11463 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a | |
11464 | simplify result. | |
11465 | ||
11466 | 2018-09-03 Martin Liska <mliska@suse.cz> | |
11467 | ||
11468 | PR tree-optimization/87201 | |
11469 | * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): | |
11470 | Fix parenthesis in an expression. | |
11471 | ||
11472 | 2018-09-03 Richard Biener <rguenther@suse.de> | |
11473 | ||
11474 | PR tree-optimization/87197 | |
11475 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def | |
11476 | visited. CSE the VN_INFO hashtable lookup. | |
11477 | ||
11478 | PR tree-optimization/87169 | |
11479 | * tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not | |
11480 | iterating make sure there's no extra backedges from irreducible | |
11481 | regions feeding the header. Mark the destination block | |
11482 | executable. | |
11483 | ||
11484 | 2018-09-03 Martin Liska <mliska@suse.cz> | |
11485 | ||
11486 | PR driver/83193 | |
11487 | * common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES. | |
11488 | * common/common-targhooks.c (default_get_valid_option_values): | |
11489 | New function. | |
11490 | * common/common-targhooks.h (default_get_valid_option_values): | |
11491 | Likewise. | |
11492 | * common/config/i386/i386-common.c: Move processor_target_table | |
11493 | from i386.c. | |
11494 | (ix86_get_valid_option_values): New function. | |
11495 | (TARGET_GET_VALID_OPTION_VALUES): New macro. | |
11496 | * config/i386/i386.c (struct ptt): Move to i386-common.c. | |
11497 | (PTA_*): Move all defined masks into i386-common.c. | |
11498 | (ix86_function_specific_restore): Use new processor_cost_table. | |
11499 | * config/i386/i386.h (struct ptt): Moved from i386.c. | |
11500 | (struct pta): Likewise. | |
11501 | * doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES. | |
11502 | * doc/tm.texi.in: Likewise. | |
11503 | * opt-suggestions.c (option_proposer::suggest_option): | |
11504 | Pass prefix to build_option_suggestions. | |
11505 | (option_proposer::get_completions): Likewise. | |
11506 | (option_proposer::build_option_suggestions): Use the new target | |
11507 | hook. | |
11508 | * opts.c (struct option_help_tuple): New struct. | |
11509 | (print_filtered_help): Use the new target hook. | |
11510 | ||
11511 | 2018-09-03 Martin Liska <mliska@suse.cz> | |
11512 | ||
11513 | PR middle-end/59521 | |
11514 | * predict.c (set_even_probabilities): Add likely_edges | |
11515 | argument and handle cases where we have precisely one | |
11516 | likely edge. | |
11517 | (combine_predictions_for_bb): Catch also likely_edges. | |
11518 | (tree_predict_by_opcode): Handle gswitch statements. | |
11519 | * tree-cfg.h (find_case_label_for_value): New declaration. | |
11520 | (find_taken_edge_switch_expr): Likewise. | |
11521 | * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): | |
11522 | Find pivot in decision tree based on probabily, not by number of | |
11523 | nodes. | |
11524 | ||
11525 | 2018-09-02 Gerald Pfeifer <gerald@pfeifer.com> | |
11526 | ||
11527 | * doc/standards.texi (Standards): Update Objective-C reference. | |
11528 | ||
11529 | 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com> | |
11530 | ||
11531 | * doc/install.texi (Prerequisites): Update link for MPC. | |
11532 | ||
11533 | 2018-09-01 Michael Matz <matz@suse.de> | |
11534 | ||
11535 | PR tree-optimization/87074 | |
11536 | * gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit | |
11537 | PHIs for outer-loop uses. | |
11538 | ||
11539 | 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com> | |
11540 | ||
11541 | * doc/generic.texi (OpenMP): Adjust link to openmp.org. | |
11542 | * doc/invoke.texi (C Dialect Options): Ditto. | |
11543 | ||
11544 | 2018-09-01 Gerald Pfeifer <gerald@pfeifer.com> | |
11545 | ||
11546 | * doc/install.texi (Prerequisites): Adjust link mpfr.org. | |
11547 | ||
11548 | 2018-08-31 Richard Biener <rguenther@suse.de> | |
11549 | ||
11550 | PR tree-optimization/87168 | |
11551 | * tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter. | |
11552 | (rpo_elim::eliminate_avail): When OP was not visited it must | |
11553 | be available. | |
11554 | ||
11555 | 2018-08-31 David Malcolm <dmalcolm@redhat.com> | |
11556 | ||
11557 | * tree-vrp.c (copy_value_range): Convert param "from" from | |
11558 | "value_range *" to "const value_range *". | |
11559 | (range_is_null): Likewise for param "vr". | |
11560 | (range_int_cst_p): Likewise. | |
11561 | (range_int_cst_singleton_p): Likewise. | |
11562 | (symbolic_range_p): Likewise. | |
11563 | (value_ranges_intersect_p): Likewise for both params. | |
11564 | (value_range_nonnegative_p): Likewise for param "vr". | |
11565 | (value_range_constant_singleton): Likewise. | |
11566 | (vrp_set_zero_nonzero_bits): Likewise for param "ar". | |
11567 | (extract_range_into_wide_ints): Likewise for param "vr". | |
11568 | (extract_range_from_multiplicative_op): Likewise for params "vr0" | |
11569 | and "vr1". | |
11570 | (vrp_can_optimize_bit_op): Likewise. | |
11571 | (extract_range_from_binary_expr_1): Likewise for params "vr0_" and | |
11572 | "vr1_". | |
11573 | (extract_range_from_unary_expr): Likewise. | |
11574 | (debug_value_range): Likewise for param "vr". | |
11575 | (value_range::dump): Add "const" qualifier. | |
11576 | (vrp_prop::check_array_ref): Convert local "vr" from | |
11577 | "value_range *" to "const value_range *". | |
11578 | (vrp_prop::check_mem_ref): Likewise. | |
11579 | (vrp_prop::visit_stmt): Likewise for local "old_vr". | |
11580 | (vrp_intersect_ranges_1): Likewise for param "vr_1". | |
11581 | (vrp_intersect_ranges): Likewise. | |
11582 | (simplify_stmt_for_jump_threading): Likewise for local "vr". | |
11583 | (vrp_prop::vrp_finalize): Likewise. | |
11584 | * tree-vrp.h (value_range::dump): Add "const" qualifier. | |
11585 | (vrp_intersect_ranges): Add "const" qualifier to params as above. | |
11586 | (extract_range_from_unary_expr): Likewise. | |
11587 | (value_range_constant_singleton): Likewise. | |
11588 | (symbolic_range_p): Likewise. | |
11589 | (copy_value_range): Likewise. | |
11590 | (extract_range_from_binary_expr_1): Likewise. | |
11591 | (range_int_cst_p): Likewise. | |
11592 | (vrp_set_zero_nonzero_bits): Likewise. | |
11593 | (range_int_cst_singleton_p): Likewise. | |
11594 | ||
11595 | 2018-08-31 Vlad Lazar <vlad.lazar@arm.com> | |
11596 | ||
11597 | * config/aarch64/arm_neon.h (vabsd_s64): New. | |
11598 | (vnegd_s64): Likewise. | |
11599 | ||
11600 | 2018-08-31 Martin Jambor <mjambor@suse.cz> | |
11601 | ||
11602 | * ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN. | |
11603 | ||
11604 | 2018-08-31 Martin Liska <mliska@suse.cz> | |
11605 | ||
11606 | * ipa-icf.c (sem_item::add_type): Use | |
11607 | sem_item::m_type_hash_cache. | |
11608 | * ipa-icf.h: Move the cache from sem_item_optimizer | |
11609 | to sem_item. | |
11610 | ||
11611 | 2018-08-31 Nathan Sidwell <nathan@acm.org> | |
11612 | ||
11613 | * doc/extend.texi (Backwards Compatibility): Remove implicit | |
11614 | extern C leeway of () being (...). | |
11615 | ||
11616 | 2018-08-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
11617 | ||
11618 | * ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment. | |
11619 | ||
11620 | 2018-08-31 Segher Boessenkool <segher@kernel.crashing.org> | |
11621 | ||
11622 | PR target/86684 | |
11623 | PR target/87149 | |
11624 | * config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND. | |
11625 | ||
11626 | 2018-08-31 Jakub Jelinek <jakub@redhat.com> | |
11627 | ||
11628 | PR middle-end/87138 | |
11629 | * expmed.c (expand_mult_const): Use immed_wide_int_const instead of | |
11630 | gen_int_mode. Formatting fixes. | |
11631 | ||
11632 | 2018-08-30 Sandra Loosemore <sandra@codesourcery.com> | |
11633 | ||
11634 | * target.def (custom_function_descriptors): Improve documentation. | |
11635 | * doc/tm.texi.in (Trampolines): Expand discussion of function | |
11636 | descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the | |
11637 | beginning of the section. | |
11638 | * doc/tm.texi: Regenerated. | |
11639 | ||
11640 | 2018-08-30 Jose E. Marchesi <jose.marchesi@oracle.com> | |
11641 | ||
11642 | * cfg.h (class auto_edge_flag): Spell out the template-id of the | |
11643 | base class in the initializer list. This is a workaround for | |
11644 | building with older GCC. | |
11645 | (class auto_bb_flag): Likewise. | |
11646 | ||
11647 | 2018-08-30 Aaron Sawdey <acsawdey@linux.ibm.com> | |
11648 | ||
11649 | * config/rs6000/altivec.md (altivec_eq<mode>): Remove star. | |
11650 | (altivec_vcmpequ<VI_char>_p): Remove star. | |
11651 | * config/rs6000/rs6000-string.c (do_load_for_compare): Support | |
11652 | vector load modes. | |
11653 | (expand_strncmp_vec_sequence): New function. | |
11654 | (emit_final_str_compare_vec): New function. | |
11655 | (expand_strn_compare): Add support for vector strncmp. | |
11656 | * config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change | |
11657 | length specification to bytes. | |
11658 | * config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star. | |
11659 | (vcmpnezb_p): New pattern. | |
11660 | * doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation | |
11661 | for option -mstring-compare-inline-limit. | |
11662 | ||
11663 | 2018-08-30 Thiago Macieira <thiago.macieira@intel.com> | |
11664 | ||
11665 | * config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES. | |
11666 | (PTA_SKYLAKE): Add PTA_AES. | |
11667 | (PTA_GOLDMONT): Likewise. | |
11668 | ||
11669 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11670 | ||
11671 | PR lto/86517 | |
11672 | * lto-opts.c (lto_write_options): Always stream PIC/PIE mode. | |
11673 | * lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE. | |
11674 | ||
11675 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11676 | ||
11677 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow | |
11678 | TYPE_STUB_DECL. | |
11679 | (hash_tree): Do not visit TYPE_STUB_DECL. | |
11680 | * tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not | |
11681 | stream TYPE_STUB_DECL. | |
11682 | * tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise. | |
11683 | * ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL | |
11684 | after free_lang_data. | |
11685 | (type_in_anonymous_namespace_p): Likewise. | |
11686 | ||
11687 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11688 | ||
11689 | * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary | |
11690 | comment that it has to be even number. | |
11691 | (class sreal): Change m_sig type to int32_t. | |
11692 | * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use | |
11693 | int64_t for temporary calculations. | |
11694 | (sreal_verify_basics): Drop one bit from minimum and maximum. | |
11695 | ||
11696 | 2018-08-30 Richard Biener <rguenther@suse.de> | |
11697 | ||
11698 | PR tree-optimization/87147 | |
11699 | * tree-ssa-sccvn.c (SSA_VISITED): New function. | |
11700 | (visit_phi): When the degenerate result is from the backedge and | |
11701 | we didn't visit its definition yet drop to VARYING. | |
11702 | (do_rpo_vn): Properly mark blocks with incoming backedges as executable. | |
11703 | ||
11704 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11705 | ||
11706 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk | |
11707 | DECL_VINDEX. | |
11708 | (hash_tree): Likewise. | |
11709 | ||
11710 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11711 | ||
11712 | * tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO | |
11713 | and TYPE_NEXT_REF_TO. | |
11714 | ||
11715 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11716 | ||
11717 | * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary | |
11718 | comment that it has to be even number. | |
11719 | (class sreal): Change m_sig type to int32_t. | |
11720 | * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use | |
11721 | int64_t for temporary calculations. | |
11722 | (sreal_verify_basics): Drop one bit from minimum and maximum. | |
11723 | ||
11724 | 2018-08-30 Tamar Christina <tamar.christina@arm.com> | |
11725 | ||
11726 | * config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max. | |
11727 | ||
11728 | 2018-08-30 Vlad Lazar <vlad.lazar@arm.com> | |
11729 | ||
11730 | PR middle-end/86995 | |
11731 | * expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add | |
11732 | if to_add is negative. | |
11733 | ||
11734 | 2018-08-29 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11735 | ||
11736 | PR middle-end/87053 | |
11737 | * builtins.c (c_strlen): Improve range checks. | |
11738 | ||
11739 | 2018-08-29 Martin Sebor <msebor@redhat.com> | |
11740 | Jeff Law <law@redhat.com> | |
11741 | ||
11742 | PR tree-optimization/86714 | |
11743 | PR tree-optimization/86711 | |
11744 | * builtins.c (c_strlen): Add arguments to call to string_constant. | |
11745 | * expr.c (string_constant): Add argument. Detect missing nul | |
11746 | terminator and outermost declaration it's missing in. | |
11747 | * expr.h (string_constant): Add argument. | |
11748 | * fold-const.c (read_from_constant_string): Add arguments to call to | |
11749 | string_constant. | |
11750 | (c_getstr): Likewise. | |
11751 | * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. | |
11752 | to string_constant. | |
11753 | * tree-ssa-strlen.c (get_stridx): Likewise. | |
11754 | ||
11755 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11756 | ||
11757 | * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): | |
11758 | Do not stream DECL_VINDEX. | |
11759 | * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Likewise. | |
11760 | * tree.c (free_lang_data_in_decl): Clear DECL_VINDEX. | |
11761 | (decl_function_context): Use DECL_VIRTUAL_P rather than DECL_VINDEX. | |
11762 | ||
11763 | 2018-08-29 Richard Biener <rguenther@suse.de> | |
11764 | ||
11765 | * tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited | |
11766 | virtual operands that are not default defs to honor region | |
11767 | boundaries. | |
11768 | (rpo_vn_valueize): Remove ineffective code here. | |
11769 | ||
11770 | 2018-08-29 Richard Biener <rguenther@suse.de> | |
11771 | ||
11772 | PR tree-optimization/87132 | |
11773 | * tree-ssa-alias.c (get_continuation_for_phi): Do not translate | |
11774 | when skipping defs reachable over backedges. | |
11775 | ||
11776 | 2018-08-29 Richard Biener <rguenther@suse.de> | |
11777 | ||
11778 | * tree-core.h: Document use of deprecated_flag in SSA_NAME. | |
11779 | * tree.h (SSA_NAME_POINTS_TO_READONLY_MEMORY): Define. | |
11780 | * tree-into-ssa.c (pass_build_ssa::execute): Initialize | |
11781 | function parameters SSA_NAME_POINTS_TO_READONLY_MEMORY from fnspec. | |
11782 | * tree-ssa-sccvn.c (const_parms, init_const_parms): Remove. | |
11783 | (vn_reference_lookup_3): Remove use of const_parms. | |
11784 | (free_rpo_vn): Do not free const_parms. | |
11785 | (do_rpo_vn): Do not call init_const_parms. | |
11786 | * tree-ssa-alias.c (refs_may_alias_p_1): Honor | |
11787 | SSA_NAME_POINTS_TO_READONLY_MEMORY. | |
11788 | (call_may_clobber_ref_p_1): Likewise. | |
11789 | ||
11790 | 2018-08-29 Alexander Monakov <amonakov@ispras.ru> | |
11791 | ||
11792 | PR other/86726 | |
11793 | * invoke.texi (Optimization Options): List -ftree-scev-cprop. | |
11794 | (-O): Ditto. | |
11795 | (-ftree-scev-cprop): Document. | |
11796 | ||
11797 | 2018-08-29 Jan Hubicka <jh@suse.cz> | |
11798 | ||
11799 | * sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp | |
11800 | parameters. | |
11801 | (sreal constructor): Update. | |
11802 | * sreal.c (sreal:operator+, sreal:operator-, sreal:operator*, | |
11803 | sreal:operator/): Update. | |
11804 | ||
11805 | 2018-08-29 Martin Liska <mliska@suse.cz> | |
11806 | ||
11807 | * tree-switch-conversion.c (switch_conversion::expand): | |
11808 | Strenghten assumption about gswitch statements. | |
11809 | ||
11810 | 2018-08-29 Richard Biener <rguenther@suse.de> | |
11811 | ||
11812 | PR tree-optimization/87117 | |
11813 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only | |
11814 | re-value-number released SSA VDEFs. | |
11815 | ||
11816 | 2018-08-29 Richard Biener <rguenther@suse.de> | |
11817 | ||
11818 | PR tree-optimization/87126 | |
11819 | * tree-ssa-sccvn.c (vn_reference_insert): Remove assert. | |
11820 | ||
11821 | 2018-08-28 Jim Wilson <jimw@sifive.com> | |
11822 | ||
11823 | * config/riscv/pic.md: Rewrite. | |
11824 | * config/riscv/riscv.c (riscv_address_insns): Return cost of 3 for | |
11825 | invalid address. | |
11826 | * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Delete. | |
11827 | (SOFTF, default_load, softload, softstore): New. | |
11828 | ||
11829 | 2018-08-28 Jeff Law <law@redhat.com> | |
11830 | ||
11831 | * fold-const.c (fold_binary_loc): Remove recently added assert. | |
11832 | ||
11833 | 2018-08-28 Joern Rennecke <joern.rennecke@riscy-ip.com> | |
11834 | ||
11835 | * genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED | |
11836 | to OP parmeter of generated function. | |
11837 | ||
11838 | 2018-08-28 MCC CS <deswurstes@users.noreply.github.com> | |
11839 | ||
11840 | PR tree-optimization/87009 | |
11841 | * match.pd: Add boolean optimizations. | |
11842 | ||
11843 | 2018-08-28 Martin Sebor <msebor@redhat.com> | |
11844 | ||
11845 | PR middle-end/86631 | |
11846 | * calls.c (alloc_max_size): Treat HOST_WIDE_INT special. | |
11847 | * gimple-ssa-warn-alloca.c (adjusted_warn_limit): New function. | |
11848 | (pass_walloca::gate): Use it. | |
11849 | (alloca_call_type): Same. | |
11850 | (pass_walloca::execute): Same. | |
11851 | * stor-layout.c (layout_decl): Treat HOST_WIDE_INT special. | |
11852 | ||
11853 | 2018-08-28 David Malcolm <dmalcolm@redhat.com> | |
11854 | ||
11855 | * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): Change version check on | |
11856 | GCC_VERSION for usage of "__gcc_dump_printf__" format from | |
11857 | >= 3005 to >= 9000. | |
11858 | ||
11859 | 2018-08-28 Richard Biener <rguenther@suse.de> | |
11860 | ||
11861 | PR tree-optimization/87124 | |
11862 | * tree-ssa-sccvn.c (vn_lookup_simplify_result): Guard against | |
11863 | constants before looking up avail. | |
11864 | ||
11865 | 2018-08-28 Jakub Jelinek <jakub@redhat.com> | |
11866 | ||
11867 | PR middle-end/87099 | |
11868 | * calls.c (maybe_warn_nonstring_arg): Punt early if | |
11869 | warn_stringop_overflow is zero. Don't call get_range_strlen | |
11870 | on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST. | |
11871 | Swap comparison operands to have constants on rhs. Only use | |
11872 | lenrng[1] if non-NULL and INTEGER_CST. Don't uselessly | |
11873 | increment lenrng[0]. | |
11874 | ||
11875 | 2018-08-28 Richard Sandiford <richard.sandiford@arm.com> | |
11876 | ||
11877 | * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded | |
11878 | use of tree_to_shwi. Remove duplicated test for the size being | |
11879 | a whole number of bytes. | |
11880 | ||
11881 | 2018-08-28 Richard Biener <rguenther@suse.de> | |
11882 | ||
11883 | PR tree-optimization/87117 | |
11884 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): | |
11885 | Handle removed stmt without LHS (GIMPLE_NOP). | |
11886 | ||
11887 | 2018-08-28 Richard Biener <rguenther@suse.de> | |
11888 | ||
11889 | PR tree-optimization/87117 | |
11890 | * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude | |
11891 | void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P. | |
11892 | ||
11893 | 2018-08-28 Richard Biener <rguenther@suse.de> | |
11894 | ||
11895 | PR tree-optimization/87117 | |
11896 | * tree-ssa-pre.c (compute_avail): Do not make expressions | |
11897 | with predicated values available. | |
11898 | (get_expr_value_id): Assert we do not run into predicated value | |
11899 | expressions. | |
11900 | ||
11901 | 2018-08-28 Richard Biener <rguenther@suse.de> | |
11902 | ||
11903 | PR tree-optimization/87117 | |
11904 | * tree-ssa-operands.c (add_stmt_operand): STRING_CST may | |
11905 | get virtual operands. | |
11906 | (get_expr_operands): Handle STRING_CST like other decls. | |
11907 | ||
11908 | 2018-08-28 Martin Liska <mliska@suse.cz> | |
11909 | ||
11910 | * tree.h: Update documentation of fndecl_built_in_p | |
11911 | functions. | |
11912 | ||
11913 | ||
11914 | 2018-08-27 Jeff Law <law@redhat.com> | |
11915 | PR tree-optimization/87110 | |
11916 | * tree-ssa-dse.c (compute_trims): Handle non-constant | |
11917 | TYPE_SIZE_UNIT. | |
11918 | ||
11919 | 2018-08-27 Martin Sebor <msebor@redhat.com> | |
11920 | ||
11921 | PR tree-optimization/86914 | |
11922 | * tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF. | |
11923 | ||
11924 | 2018-08-27 Martin Sebor <msebor@redhat.com> | |
11925 | ||
11926 | PR tree-optimization/87112 | |
11927 | * builtins.c (expand_builtin_strnlen): Convert c_strlen result to | |
11928 | the type of the bound argument. | |
11929 | ||
11930 | 2018-08-27 Jeff Law <law@redhat.com> | |
11931 | ||
11932 | * tree-ssa-dse.c (compute_trims): Handle case where the reference's | |
11933 | type does not have a TYPE_SIZE_UNIT. | |
11934 | ||
11935 | 2018-08-27 Steve Ellcey <sellcey@cavium.com> | |
11936 | ||
11937 | * config/aarch64/aarch64-speculation.cc: Replace include of cfg.h | |
11938 | with include of backend.h. | |
11939 | ||
11940 | 2018-08-27 Richard Biener <rguenther@suse.de> | |
11941 | ||
11942 | PR tree-optimization/86927 | |
11943 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Properly | |
11944 | use const cond reduction code. | |
11945 | ||
11946 | 2018-08-27 Alexander Monakov <amonakov@ispras.ru> | |
11947 | ||
11948 | PR tree-optimization/85758 | |
11949 | * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression. | |
11950 | ||
11951 | 2018-08-27 David Malcolm <dmalcolm@redhat.com> | |
11952 | ||
11953 | PR c++/87091 | |
11954 | * diagnostic-show-locus.c (class layout_range): Update for | |
11955 | conversion of show_caret_p to a tri-state. | |
11956 | (layout_range::layout_range): Likewise. | |
11957 | (make_range): Likewise. | |
11958 | (layout::maybe_add_location_range): Likewise. | |
11959 | (layout::should_print_annotation_line_p): Don't show annotation | |
11960 | lines for ranges that are SHOW_LINES_WITHOUT_RANGE. | |
11961 | (layout::get_state_at_point): Update for conversion of | |
11962 | show_caret_p to a tri-state. Bail out early for | |
11963 | SHOW_LINES_WITHOUT_RANGE, so that such ranges don't affect | |
11964 | underlining or source colorization. | |
11965 | (gcc_rich_location::add_location_if_nearby): Update for conversion | |
11966 | of show_caret_p to a tri-state. | |
11967 | (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. | |
11968 | (selftest::test_one_liner_fixit_replace_equal_secondary_range): | |
11969 | Likewise. | |
11970 | (selftest::test_one_liner_labels): Likewise. | |
11971 | * gcc-rich-location.c (gcc_rich_location::add_expr): Update for | |
11972 | conversion of show_caret_p to a tri-state. | |
11973 | * pretty-print.c (text_info::set_location): Likewise. | |
11974 | * pretty-print.h (text_info::set_location): Likewise. | |
11975 | * substring-locations.c (format_warning_n_va): Likewise. | |
11976 | * tree-diagnostic.c (default_tree_printer): Likewise. | |
11977 | * tree-pretty-print.c (newline_and_indent): Likewise. | |
11978 | ||
11979 | 2018-08-27 David Malcolm <dmalcolm@redhat.com> | |
11980 | ||
11981 | PR c++/87091 | |
11982 | * diagnostic-show-locus.c (get_line_span_for_fixit_hint): Show the | |
11983 | line above for line-insertion fix-it hints. | |
11984 | (selftest::test_fixit_insert_containing_newline): Update the | |
11985 | expected results, and add a test with line-numbering enabled. | |
11986 | ||
11987 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
11988 | ||
11989 | PR sanitizer/86962 | |
11990 | * sanopt.c (sanitize_rewrite_addressable_params): Ignore | |
11991 | params with DECL_HAS_VALUE_EXPR_P. | |
11992 | ||
11993 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
11994 | ||
11995 | * config/i386/i386.c (ix86_expand_set_or_movmem): Dump | |
11996 | selected expansion strategy. | |
11997 | ||
11998 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
11999 | ||
12000 | * builtins.h (is_builtin_fn): Remove and fndecl_built_in_p. | |
12001 | * builtins.c (is_builtin_fn): Likewise. | |
12002 | * attribs.c (diag_attr_exclusions): Use new function | |
12003 | fndecl_built_in_p and remove check for FUNCTION_DECL if | |
12004 | possible. | |
12005 | (builtin_mathfn_code): Likewise. | |
12006 | (fold_builtin_expect): Likewise. | |
12007 | (fold_call_expr): Likewise. | |
12008 | (fold_builtin_call_array): Likewise. | |
12009 | (fold_call_stmt): Likewise. | |
12010 | (set_builtin_user_assembler_name): Likewise. | |
12011 | (is_simple_builtin): Likewise. | |
12012 | * calls.c (gimple_alloca_call_p): Likewise. | |
12013 | (maybe_warn_nonstring_arg): Likewise. | |
12014 | * cfgexpand.c (expand_call_stmt): Likewise. | |
12015 | * cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise. | |
12016 | (cgraph_edge::verify_corresponds_to_fndecl): Likewise. | |
12017 | (cgraph_node::verify_node): Likewise. | |
12018 | * cgraphclones.c (build_function_decl_skip_args): Likewise. | |
12019 | (cgraph_node::create_clone): Likewise. | |
12020 | * config/arm/arm.c (arm_insert_attributes): Likewise. | |
12021 | * config/i386/i386.c (ix86_gimple_fold_builtin): Likewise. | |
12022 | * dse.c (scan_insn): Likewise. | |
12023 | * expr.c (expand_expr_real_1): Likewise. | |
12024 | * fold-const.c (operand_equal_p): Likewise. | |
12025 | (fold_binary_loc): Likewise. | |
12026 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. | |
12027 | * gimple-low.c (lower_stmt): Likewise. | |
12028 | * gimple-pretty-print.c (dump_gimple_call): Likewise. | |
12029 | * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): | |
12030 | Likewise. | |
12031 | * gimple.c (gimple_build_call_from_tree): Likewise. | |
12032 | (gimple_call_builtin_p): Likewise. | |
12033 | (gimple_call_combined_fn): Likewise. | |
12034 | * gimplify.c (gimplify_call_expr): Likewise. | |
12035 | (gimple_boolify): Likewise. | |
12036 | (gimplify_modify_expr): Likewise. | |
12037 | (gimplify_addr_expr): Likewise. | |
12038 | * hsa-gen.c (gen_hsa_insns_for_call): Likewise. | |
12039 | * ipa-cp.c (determine_versionability): Likewise. | |
12040 | * ipa-fnsummary.c (compute_fn_summary): Likewise. | |
12041 | * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. | |
12042 | * ipa-split.c (visit_bb): Likewise. | |
12043 | (split_function): Likewise. | |
12044 | * ipa-visibility.c (cgraph_externally_visible_p): Likewise. | |
12045 | * lto-cgraph.c (input_node): Likewise. | |
12046 | * lto-streamer-out.c (write_symbol): Likewise. | |
12047 | * omp-low.c (setjmp_or_longjmp_p): Likewise. | |
12048 | (lower_omp_1): Likewise. | |
12049 | * predict.c (strip_predict_hints): Likewise. | |
12050 | * print-tree.c (print_node): Likewise. | |
12051 | * symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise. | |
12052 | * trans-mem.c (is_tm_irrevocable): Likewise. | |
12053 | (is_tm_load): Likewise. | |
12054 | (is_tm_simple_load): Likewise. | |
12055 | (is_tm_store): Likewise. | |
12056 | (is_tm_simple_store): Likewise. | |
12057 | (is_tm_abort): Likewise. | |
12058 | (tm_region_init_1): Likewise. | |
12059 | * tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise. | |
12060 | * tree-cfg.c (verify_gimple_call): Likewise. | |
12061 | (move_stmt_r): Likewise. | |
12062 | (stmt_can_terminate_bb_p): Likewise. | |
12063 | * tree-eh.c (lower_eh_constructs_2): Likewise. | |
12064 | * tree-if-conv.c (if_convertible_stmt_p): Likewise. | |
12065 | * tree-inline.c (remap_gimple_stmt): Likewise. | |
12066 | (copy_bb): Likewise. | |
12067 | (estimate_num_insns): Likewise. | |
12068 | (fold_marked_statements): Likewise. | |
12069 | * tree-sra.c (scan_function): Likewise. | |
12070 | * tree-ssa-ccp.c (surely_varying_stmt_p): Likewise. | |
12071 | (optimize_stack_restore): Likewise. | |
12072 | (pass_fold_builtins::execute): Likewise. | |
12073 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. | |
12074 | (mark_all_reaching_defs_necessary_1): Likewise. | |
12075 | * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise. | |
12076 | * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. | |
12077 | (pass_forwprop::execute): Likewise. | |
12078 | * tree-ssa-loop-im.c (stmt_cost): Likewise. | |
12079 | * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. | |
12080 | * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise. | |
12081 | * tree-ssa-strlen.c (get_string_length): Likewise. | |
12082 | * tree-ssa-structalias.c (handle_lhs_call): Likewise. | |
12083 | (find_func_aliases_for_call): Likewise. | |
12084 | * tree-ssa-ter.c (find_replaceable_in_bb): Likewise. | |
12085 | * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise. | |
12086 | * tree-tailcall.c (find_tail_calls): Likewise. | |
12087 | * tree.c (need_assembler_name_p): Likewise. | |
12088 | (free_lang_data_in_decl): Likewise. | |
12089 | (get_call_combined_fn): Likewise. | |
12090 | * ubsan.c (is_ubsan_builtin_p): Likewise. | |
12091 | * varasm.c (incorporeal_function_p): Likewise. | |
12092 | * tree.h (DECL_BUILT_IN): Remove and replace with | |
12093 | fndecl_built_in_p. | |
12094 | (DECL_BUILT_IN_P): Transfort to fndecl_built_in_p. | |
12095 | (fndecl_built_in_p): New. | |
12096 | ||
12097 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
12098 | ||
12099 | PR tree-optimization/86847 | |
12100 | * tree-switch-conversion.c (switch_decision_tree::dump_case_nodes): | |
12101 | Dump also subtree probability. | |
12102 | (switch_decision_tree::do_jump_if_equal): New function. | |
12103 | (switch_decision_tree::emit_case_nodes): Handle special | |
12104 | situations in balanced tree that can be emitted much simpler. | |
12105 | Fix calculation of probabilities that happen in tree expansion. | |
12106 | * tree-switch-conversion.h (struct cluster): Add | |
12107 | is_single_value_p. | |
12108 | (struct simple_cluster): Likewise. | |
12109 | (struct case_tree_node): Add new function has_child. | |
12110 | (do_jump_if_equal): New. | |
12111 | ||
12112 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
12113 | ||
12114 | * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): | |
12115 | Add new argument to bit_test_cluster constructor. | |
12116 | (bit_test_cluster::emit): Set bits really number of values | |
12117 | handlel by a test. | |
12118 | (bit_test_cluster::hoist_edge_and_branch_if_true): Add | |
12119 | probability argument. | |
12120 | * tree-switch-conversion.h (struct bit_test_cluster): | |
12121 | Add m_handles_entire_switch. | |
12122 | ||
12123 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
12124 | ||
12125 | PR tree-optimization/86702 | |
12126 | * tree-switch-conversion.c (jump_table_cluster::emit): | |
12127 | Make probabilities even for values in jump table | |
12128 | according to number of cases handled. | |
12129 | (switch_decision_tree::compute_cases_per_edge): Pass | |
12130 | argument to reset_out_edges_aux function. | |
12131 | (switch_decision_tree::analyze_switch_statement): Likewise. | |
12132 | * tree-switch-conversion.h (switch_decision_tree::reset_out_edges_aux): | |
12133 | Make it static. | |
12134 | ||
12135 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
12136 | ||
12137 | * cfgexpand.c (expand_asm_stmt): Use label_to_block and pass | |
12138 | cfun argument explicitly. | |
12139 | * gimple-pretty-print.c (dump_gimple_switch): Likewise. | |
12140 | * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new | |
12141 | function gimple_switch_default_bb. | |
12142 | (convert_switch_statements): | |
12143 | (expand_builtins): | |
12144 | * ipa-fnsummary.c (set_switch_stmt_execution_predicate): | |
12145 | * stmt.c (label_to_block_fn): Use label_to_block and pass | |
12146 | cfun argument explicitly and use gimple_switch_label_bb. | |
12147 | (expand_case): Likewise. | |
12148 | * tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass | |
12149 | cfun argument explicitly. Likewise. | |
12150 | (make_edges_bb): Likewise. | |
12151 | (make_cond_expr_edges): Likewise. | |
12152 | (get_cases_for_edge): Likewise. | |
12153 | (make_gimple_switch_edges): Likewise. | |
12154 | (label_to_block_fn): Likewise. | |
12155 | (label_to_block): Likewise. | |
12156 | (make_goto_expr_edges): Likewise. | |
12157 | (make_gimple_asm_edges): Likewise. | |
12158 | (main_block_label): Likewise. | |
12159 | (group_case_labels_stmt): Likewise. | |
12160 | (find_taken_edge_computed_goto): Likewise. | |
12161 | (find_taken_edge_switch_expr): Likewise. | |
12162 | (gimple_verify_flow_info): Likewise. | |
12163 | (gimple_redirect_edge_and_branch): Likewise. | |
12164 | (gimple_switch_label_bb): New function. | |
12165 | (gimple_switch_default_bb): Likewise. | |
12166 | (gimple_switch_edge): Likewise. | |
12167 | (gimple_switch_default_edge): Likewise. | |
12168 | * tree-cfg.h (label_to_block_fn): Remove and replace ... | |
12169 | (label_to_block): ... with this. | |
12170 | (gimple_switch_label_bb): New. | |
12171 | (gimple_switch_default_bb): Likewise. | |
12172 | (gimple_switch_edge): Likewise. | |
12173 | (gimple_switch_default_edge): Likewise. | |
12174 | * tree-cfgcleanup.c (convert_single_case_switch): Use | |
12175 | new gimple functions and pass new argument to label_to_block. | |
12176 | (cleanup_control_flow_bb): | |
12177 | * tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass | |
12178 | cfun argument explicitly. | |
12179 | (make_eh_edges): Likewise. | |
12180 | (redirect_eh_dispatch_edge): Likewise. | |
12181 | (lower_resx): Likewise. | |
12182 | (lower_eh_dispatch): Likewise. | |
12183 | (maybe_remove_unreachable_handlers): Likewise. | |
12184 | (unsplit_eh): Likewise. | |
12185 | (cleanup_empty_eh): Likewise. | |
12186 | (verify_eh_edges): Likewise. | |
12187 | (verify_eh_dispatch_edge): Likewise. | |
12188 | * tree-ssa-dom.c (record_edge_info): Likewise. | |
12189 | * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise. | |
12190 | * tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise. | |
12191 | (thread_through_normal_block): Likewise. | |
12192 | * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. | |
12193 | * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): | |
12194 | * tree-switch-conversion.c (switch_conversion::collect): Use new | |
12195 | gimple functions. | |
12196 | (switch_conversion::check_final_bb): Likewise. | |
12197 | (switch_conversion::gather_default_values): Pass new argument | |
12198 | to label_to_block. | |
12199 | (switch_conversion::build_constructors): Likewise. | |
12200 | (switch_decision_tree::compute_cases_per_edge): Use new | |
12201 | gimple_switch_edge function. | |
12202 | (switch_decision_tree::analyze_switch_statement): Pass new argument | |
12203 | to label_to_block. | |
12204 | (switch_decision_tree::try_switch_expansion): Use | |
12205 | gimple_switch_default_edge. | |
12206 | * tree-vrp.c (find_switch_asserts): Pass new argument | |
12207 | to label_to_block. | |
12208 | * vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise. | |
12209 | (vr_values::simplify_switch_using_ranges): Likewise. | |
12210 | ||
12211 | 2018-08-27 Richard Biener <rguenther@suse.de> | |
12212 | ||
12213 | * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare. | |
12214 | * cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function. | |
12215 | ||
12216 | * tree-ssa-sccvn.h (struct vn_pval): New structure. | |
12217 | (struct vn_nary_op_s): Add unwind_to member. Add | |
12218 | predicated_values flag and put result into a union together | |
12219 | with a linked list of vn_pval. | |
12220 | (struct vn_ssa_aux): Add name member to make maintaining | |
12221 | a map of SSA name to vn_ssa_aux possible. Remove no longer | |
12222 | needed info, dfsnum, low, visited, on_sccstack, use_processed | |
12223 | and range_info_anti_range_p members. | |
12224 | (run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove. | |
12225 | (do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn): | |
12226 | New functions. | |
12227 | (vn_valueize): New global. | |
12228 | (vn_context_bb): Likewise. | |
12229 | (VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE, | |
12230 | VN_INFO_PTR_INFO): Remove. | |
12231 | * tree-ssa-sccvn.c: ... (rewrite) | |
12232 | (pass_fre::execute): For -O2+ initialize loops and run | |
12233 | RPO VN in optimistic mode (iterating). For -O1 and -Og | |
12234 | run RPO VN in non-optimistic mode. | |
12235 | * params.def (PARAM_SCCVN_MAX_SCC_SIZE): Remove. | |
12236 | (PARAM_RPO_VN_MAX_LOOP_DEPTH): Add. | |
12237 | * doc/invoke.texi (sccvn-max-scc-size): Remove. | |
12238 | (rpo-vn-max-loop-depth): Document. | |
12239 | * tree-ssa-alias.c (walk_non_aliased_vuses): Stop walking | |
12240 | when valuezing the VUSE signals we walked out of the region. | |
12241 | * tree-ssa-pre.c (phi_translate_1): Ignore predicated values. | |
12242 | (phi_translate): Set VN context block to use for availability | |
12243 | lookup. | |
12244 | (compute_avail): Likewise. | |
12245 | (pre_valueize): New function. | |
12246 | (pass_pre::execute): Adjust to the RPO VN API. | |
12247 | ||
12248 | * tree-ssa-loop-ivcanon.c: Include tree-ssa-sccvn.h. | |
12249 | (propagate_constants_for_unrolling): Remove. | |
12250 | (tree_unroll_loops_completely): Perform value-numbering | |
12251 | on the unrolled bodies loop parent. | |
12252 | ||
12253 | 2018-08-27 Richard Biener <rguenther@suse.de> | |
12254 | ||
12255 | * tree-ssa-pre.c (compute_antic): Re-use inverted postorder | |
12256 | for partial antic compute. | |
12257 | ||
12258 | 2018-08-27 Jakub Jelinek <jakub@redhat.com> | |
12259 | ||
12260 | PR rtl-optimization/87065 | |
12261 | * combine.c (simplify_if_then_else): Formatting fix. | |
12262 | (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P | |
12263 | check. | |
12264 | (known_cond): Don't return const_true_rtx for vector modes. Use | |
12265 | CONST0_RTX instead of const0_rtx. Formatting fixes. | |
12266 | ||
12267 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
12268 | ||
12269 | PR gcov-profile/87069 | |
12270 | * gcov.c (process_file): Record files already processed | |
12271 | and warn about a file being processed multiple times. | |
12272 | ||
12273 | 2018-08-27 Martin Liska <mliska@suse.cz> | |
12274 | ||
12275 | PR driver/83193 | |
12276 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
12277 | Set default values for x_aarch64_*_string strings. | |
12278 | * config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}== | |
12279 | prefix. For -mabi do not print '=ABI' in help and use | |
12280 | <option_value> format for -msve-vector-bits and -moverride | |
12281 | options. | |
12282 | ||
12283 | 2018-08-26 Jeff Law <law@redhat.com> | |
12284 | ||
12285 | * config/mips/frame-header-opt.c: Include "backend.h" rather than | |
12286 | "cfg.h" | |
12287 | ||
12288 | 2018-08-26 Marek Polacek <polacek@redhat.com> | |
12289 | ||
12290 | PR c++/87029, Implement -Wredundant-move. | |
12291 | * doc/invoke.texi: Document -Wredundant-move. | |
12292 | ||
12293 | 2018-08-25 Martin Sebor <msebor@redhat.com> | |
12294 | ||
12295 | PR tree-optimization/87059 | |
12296 | * builtins.c (expand_builtin_strncmp): Convert MIN_EXPR operand | |
12297 | to the same type as the other. | |
12298 | * fold-const.c (fold_binary_loc): Assert expectation. | |
12299 | ||
12300 | 2018-08-25 Iain Sandoe <iain@sandoe.co.uk> | |
12301 | ||
12302 | * config/darwin.c (machopic_legitimize_pic_address): Clean up | |
12303 | extraneous parentheses, dead code section and formatting. | |
12304 | ||
12305 | 2018-08-24 David Malcolm <dmalcolm@redhat.com> | |
12306 | ||
12307 | PR c++/87091 | |
12308 | * diagnostic-show-locus.c (layout::layout): Ensure the margin is | |
12309 | wide enough for jumps in the line-numbering to be visible. | |
12310 | (layout::print_gap_in_line_numbering): New member function. | |
12311 | (layout::calculate_line_spans): When using line numbering, merge | |
12312 | line spans that are only 1 line apart. | |
12313 | (diagnostic_show_locus): When printing line numbers, show gaps in | |
12314 | line numbering directly, rather than printing headers. | |
12315 | (selftest::test_diagnostic_show_locus_fixit_lines): Add test of | |
12316 | line-numbering with multiple line spans. | |
12317 | (selftest::test_fixit_insert_containing_newline_2): Add test of | |
12318 | line-numbering, in which the spans are close enough to be merged. | |
12319 | ||
12320 | 2018-08-24 Aldy Hernandez <aldyh@redhat.com> | |
12321 | ||
12322 | * gimple-ssa-evrp-analyze.c (set_ssa_range_info): Pass value_range | |
12323 | to range_includes_zero_p. Do not special case VR_ANTI_RANGE. | |
12324 | * tree-vrp.c (range_is_nonnull): Remove. | |
12325 | (range_includes_zero_p): Accept value_range instead of min/max. | |
12326 | (extract_range_from_binary_expr_1): Do not early bail on | |
12327 | POINTER_PLUS_EXPR. | |
12328 | Use range_includes_zero_p instead of range_is_nonnull. | |
12329 | (extract_range_from_unary_expr): Use range_includes_zero_p instead | |
12330 | of range_is_nonnull. | |
12331 | (vrp_meet_1): Pass value_range to range_includes_zero_p. Do not | |
12332 | special case VR_ANTI_RANGE. | |
12333 | (vrp_finalize): Same. | |
12334 | * tree-vrp.h (range_includes_zero_p): Pass value_range as argument | |
12335 | instead of min/max. | |
12336 | (range_is_nonnull): Remove. | |
12337 | * vr-values.c (vrp_stmt_computes_nonzero): Use | |
12338 | range_includes_zero_p instead of range_is_nonnull. | |
12339 | (extract_range_basic): Pass value_range to range_includes_zero_p | |
12340 | instead of range_is_nonnull. | |
12341 | ||
12342 | 2018-08-24 Uros Bizjak <ubizjak@gmail.com> | |
12343 | ||
12344 | * emit-rtl.c (init_emit_once): Do not emit MODE_POINTER_BOUNDS RTXes. | |
12345 | * emit-rtl.h (rtl_data): Remove return_bnd. | |
12346 | * explow.c (trunc_int_for_mode): Do not handle POINTER_BOUNDS_MODE_P. | |
12347 | * function.c (diddle_return_value): Do not handle crtl->return_bnd. | |
12348 | * genmodes.c (complete_mode): Do not handle MODE_POINTER_BOUNDS. | |
12349 | (POINTER_BOUNDS_MODE): Remove definition. | |
12350 | (make_pointer_bounds_mode): Remove. | |
12351 | (get_mode_class): Do not handle MODE_POINTER_BOUNDS. | |
12352 | * machmode.h (POINTER_BOUNDS_MODE_P): Remove definition. | |
12353 | (scalare_mode::includes_p): Do not handle MODE_POINTER_BOUNDS. | |
12354 | * mode-classes.def: Do not define MODE_POINTER_BOUNDS. | |
12355 | * stor-layout.c (int_mode_for_mode): Do not handle MODE_POINTER_BOUNDS. | |
12356 | * tree-core.h (enum tree_index): Remove TI_POINTER_BOUNDS_TYPE. | |
12357 | * varasm.c (output_constant_pool_2): Do not handle MODE_POINTER_BOUNDS. | |
12358 | ||
12359 | * config/i386/i386-modes.def (BND32, BND64): Remove. | |
12360 | * config/i386/i386.c (dbx_register_map): Remove bound registers. | |
12361 | (dbx64_register_map): Ditto. | |
12362 | (svr4_dbx_register_map): Ditto. | |
12363 | (indirect_thunk_bnd_needed): Remove. | |
12364 | (indirect_thunks_bnd_used): Ditto. | |
12365 | (indirect_return_bnd_needed): Ditto. | |
12366 | (indirect_return_via_cx_bnd): Ditto. | |
12367 | (enum indirect_thunk_prefix): Remove indirect_thunk_prefix_bnd. | |
12368 | (indirect_thunk_name): Remove handling of indirect_thunk_prefix_bnd. | |
12369 | (output_indirect_thunk): Ditto. Remove need_prefix argument. | |
12370 | (output_indirect_thunk_function): Remove handling of | |
12371 | indirect_return_bnd_needed, indirect_return_via_cx_bnd, | |
12372 | indirect_thunk_bnd_needed and indirect_thunks_bnd_used variables. | |
12373 | (ix86_save_reg): Remove handling of crtl->return_bnd. | |
12374 | (ix86_legitimate_constant_p): Remove handling of POINTER_BOUNDS_MODE_P. | |
12375 | (ix86_print_operand_address_as): Remove handling of UNSPEC_BNDMK_ADDR | |
12376 | and UNSPEC_BNDLX_ADDR. | |
12377 | (ix86_output_indirect_branch_via_reg): Remove handling of | |
12378 | indirect_thunk_prefix_bnd. | |
12379 | (ix86_output_indirect_branch_via_push): Ditto. | |
12380 | (ix86_output_function_return): Ditto. | |
12381 | (ix86_output_indirect_function_return): Ditto. | |
12382 | (avoid_func_arg_motion): Do not handle UNSPEC_BNDSTX. | |
12383 | * config/i386/i386.h (FIXED_REGISTERS): Remove bound registers. | |
12384 | (CALL_USED_REGISTERS): Ditto. | |
12385 | (REG_ALLOC_ORDER): Update for removal of bound registers. | |
12386 | (HI_REGISTER_NAMES): Ditto. | |
12387 | * config/i386/i386.md (UNSPEC_BNDMK, UNSPEC_BNDMK_ADDR, UNSPEC_BNDSTX) | |
12388 | (UNSPEC_BNDLDX, UNSPEC_BNDLDX_ADDR, UNSPEC_BNDCL, UNSPEC_BNDCU) | |
12389 | (UNSPEC_BNDCN, UNSPEC_MPX_FENCE): Remove. | |
12390 | (BND0_REG, BND1_REG, BND2_REG, BND3_REG): Remove | |
12391 | (FIRST_PSEUDO_REG): Update. | |
12392 | (BND): Remove mode iterator. | |
12393 | * config/i386/predicates.md (bnd_mem_operator): Remove. | |
12394 | ||
12395 | 2018-08-24 Richard Sandiford <richard.sandiford@arm.com> | |
12396 | ||
12397 | * tree-vect-stmts.c (vectorizable_bswap): Handle variable-length | |
12398 | vectors. | |
12399 | ||
12400 | 2018-08-24 Richard Sandiford <richard.sandiford@arm.com> | |
12401 | ||
12402 | * tree-vect-slp.c (vect_transform_slp_perm_load): Separate out | |
12403 | the case in which the permute needs only a single element and | |
12404 | repeats for every vector of the result. Extend that case to | |
12405 | handle variable-length vectors. | |
12406 | * tree-vect-stmts.c (vectorizable_load): Update accordingly. | |
12407 | ||
12408 | 2018-08-24 H.J. Lu <hongjiu.lu@intel.com> | |
12409 | ||
12410 | PR debug/79342 | |
12411 | * dwarf2out.c (save_macinfo_strings): Call set_indirect_string | |
12412 | on DW_MACINFO_start_file for -gsplit-dwarf -g3. | |
12413 | ||
12414 | 2018-08-24 Richard Biener <rguenther@suse.de> | |
12415 | ||
12416 | * cfg.h (struct control_flow_graph): Add edge_flags_allocated and | |
12417 | bb_flags_allocated members. | |
12418 | (auto_flag): New RAII class for allocating flags. | |
12419 | (auto_edge_flag): New RAII class for allocating edge flags. | |
12420 | (auto_bb_flag): New RAII class for allocating bb flags. | |
12421 | * cfgloop.c (verify_loop_structure): Allocate temporary edge | |
12422 | flag dynamically. | |
12423 | * cfganal.c (dfs_enumerate_from): Remove use of visited sbitmap | |
12424 | in favor of temporarily allocated BB flag. | |
12425 | * hsa-brig.c: Re-order includes. | |
12426 | * hsa-dump.c: Likewise. | |
12427 | * hsa-regalloc.c: Likewise. | |
12428 | * print-rtl.c: Likewise. | |
12429 | * profile-count.c: Likewise. | |
12430 | ||
12431 | 2018-08-24 Segher Boessenkool <segher@kernel.crashing.org> | |
12432 | ||
12433 | PR target/86989 | |
12434 | * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is | |
12435 | the TOC register. | |
12436 | ||
12437 | 2018-08-24 Aldy Hernandez <aldyh@redhat.com> | |
12438 | ||
12439 | PR 87073/bootstrap | |
12440 | * wide-int-range.cc (wide_int_range_div): Do not ignore result | |
12441 | from wide_int_range_multiplicative_op. | |
12442 | ||
12443 | 2018-08-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
12444 | ||
12445 | * tree-vect-data-refs.c (vect_grouped_store_supported): Fix typo | |
12446 | "permutaion". | |
12447 | ||
12448 | 2018-08-23 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
12449 | ||
12450 | * genmatch.c (parser::parse_operation): Fix typo 'exapnded' | |
12451 | to 'expanded'. | |
12452 | ||
12453 | 2018-08-23 Alexander Monakov <amonakov@ispras.ru> | |
12454 | ||
12455 | * tree-scalar-evolution.c (final_value_replacement_loop): Dump | |
12456 | full GENERIC expression used for replacement. | |
12457 | ||
12458 | 2018-08-23 Aldy Hernandez <aldyh@redhat.com> | |
12459 | ||
12460 | * tree-vrp.c (abs_extent_range): Remove. | |
12461 | (extract_range_into_wide_ints): Pass wide ints by reference. | |
12462 | (extract_range_from_binary_expr_1): Rewrite the *DIV_EXPR code. | |
12463 | Pass wide ints by reference in all calls to | |
12464 | extract_range_into_wide_ints. | |
12465 | * wide-int-range.cc (wide_int_range_div): New. | |
12466 | * wide-int-range.h (wide_int_range_div): New. | |
12467 | (wide_int_range_includes_zero_p): New. | |
12468 | (wide_int_range_zero_p): New. | |
12469 | ||
12470 | 2018-08-23 Matthew Malcomson <matthew.malcomson@arm.com> | |
12471 | ||
12472 | * config/aarch64/aarch64.md (arches): New enum. | |
12473 | (arch): New enum attr. | |
12474 | (arch_enabled): New attr. | |
12475 | (enabled): Now uses arch_enabled only. | |
12476 | (simd, sve, fp16): Removed attribute. | |
12477 | (fp): Attr now defined in terms of 'arch'. | |
12478 | (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64, *movti_aarch64, | |
12479 | *movhf_aarch64, <optab><fcvt_target><GPF:mode>2, | |
12480 | <FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3, | |
12481 | <FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Merge 'fp' and 'simd' | |
12482 | attributes into 'arch'. | |
12483 | (*movsf_aarch64, *movdf_aarch64, *movtf_aarch64, *add<mode>3_aarch64, | |
12484 | subdi3, neg<mode>2, <optab><mode>3, one_cmpl<mode>2, | |
12485 | *<NLOGICAL:optab>_one_cmpl<mode>3, *xor_one_cmpl<mode>3, | |
12486 | *aarch64_ashl_sisd_or_int_<mode>3, *aarch64_lshr_sisd_or_int_<mode>3, | |
12487 | *aarch64_ashr_sisd_or_int_<mode>3, *aarch64_sisd_ushl): Convert use of | |
12488 | 'simd' attribute into 'arch'. | |
12489 | (load_pair_sw_<SX:mode><SX2:mode>, load_pair_dw_<DX:mode><DX2:mode>, | |
12490 | store_pair_sw_<SX:mode><SX2:mode>, store_pair_dw_<DX:mode><DX2:mode>): | |
12491 | Convert use of 'fp' attribute to 'arch'. | |
12492 | * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>, | |
12493 | move_lo_quad_internal_<mode>): (different modes) Merge 'fp' and 'simd' | |
12494 | into 'arch'. | |
12495 | (move_lo_quad_internal_be_<mode>, move_lo_quad_internal_be_<mode>): | |
12496 | (different modes) Merge 'fp' and 'simd' into 'arch'. | |
12497 | (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>): Merge 'fp' and | |
12498 | 'simd' into 'arch'. | |
12499 | ||
12500 | 2018-08-23 Segher Boessenkool <segher@kernel.crashing.org> | |
12501 | ||
12502 | PR rtl-optimization/87026 | |
12503 | * expmed.c (canonicalize_comparison): If we can no longer create | |
12504 | pseudoregisters, don't. | |
12505 | ||
12506 | 2018-08-23 Richard Earnshaw <rearnsha@arm.com> | |
12507 | ||
12508 | PR target/86951 | |
12509 | * config/arm/arm-protos.h (arm_emit_speculation_barrier): New | |
12510 | prototype. | |
12511 | * config/arm/arm.c (speculation_barrier_libfunc): New static | |
12512 | variable. | |
12513 | (arm_init_libfuncs): Initialize it. | |
12514 | (arm_emit_speculation_barrier): New function. | |
12515 | * config/arm/arm.md (speculation_barrier): Call | |
12516 | arm_emit_speculation_barrier for architectures that do not have | |
12517 | DSB or ISB. | |
12518 | (speculation_barrier_insn): Only match on Armv7 or later. | |
12519 | ||
12520 | 2018-08-23 Richard Biener <rguenther@suse.de> | |
12521 | ||
12522 | PR middle-end/87024 | |
12523 | * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len | |
12524 | calls. | |
12525 | ||
12526 | 2018-08-23 Richard Sandiford <richard.sandiford@arm.com> | |
12527 | ||
12528 | * config/aarch64/aarch64.c (aarch64_evpc_sve_tbl): Fix handling | |
12529 | of single-vector TBLs. | |
12530 | (aarch64_vectorize_vec_perm_const): Set one_vector_p when only | |
12531 | one input is given. | |
12532 | ||
12533 | 2018-08-23 Richard Sandiford <richard.sandiford@arm.com> | |
12534 | ||
12535 | PR target/85910 | |
12536 | * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix | |
12537 | aarch64_evpc_tbl guard. | |
12538 | ||
12539 | 2018-08-22 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
12540 | ||
12541 | * tree-ssa-dse.c (compute_trims): Avoid folding away undefined | |
12542 | behaviour. | |
12543 | ||
12544 | 2018-08-22 Martin Sebor <msebor@redhat.com> | |
12545 | ||
12546 | PR middle-end/87052 | |
12547 | * tree-pretty-print.c (pretty_print_string): Add argument. | |
12548 | (dump_generic_node): Call to pretty_print_string with string size. | |
12549 | ||
12550 | 2018-08-22 Segher Boessenkool <segher@kernel.crashing.org> | |
12551 | ||
12552 | PR rtl-optimization/86771 | |
12553 | * combine.c (try_combine): Do not allow splitting a resulting PARALLEL | |
12554 | of two SETs into those two SETs, one to be placed at i2, if that SETs | |
12555 | destination is modified between i2 and i3. | |
12556 | ||
12557 | 2018-08-22 Richard Sandiford <richard.sandiford@arm.com> | |
12558 | ||
12559 | PR tree-optimization/86725 | |
12560 | * tree-vect-loop.c (vect_inner_phi_in_double_reduction_p): New | |
12561 | function. | |
12562 | (vect_analyze_scalar_cycles_1): Check it. | |
12563 | ||
12564 | 2018-08-22 Richard Sandiford <richard.sandiford@arm.com> | |
12565 | ||
12566 | PR tree-optimization/86725 | |
12567 | * tree-vect-loop.c (vect_is_simple_reduction): When treating | |
12568 | an outer loop phi as a double reduction, make sure that the | |
12569 | single user of the phi result is an inner loop phi. | |
12570 | ||
12571 | 2018-08-22 Richard Sandiford <richard.sandiford@arm.com> | |
12572 | ||
12573 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Convert | |
12574 | grouped stores with gaps to a strided group. | |
12575 | ||
12576 | 2018-08-22 Richard Sandiford <richard.sandiford@arm.com> | |
12577 | ||
12578 | * tree-vect-stmts.c (get_group_load_store_type) | |
12579 | (get_load_store_type): Only test STMT_VINFO_STRIDED_P for the | |
12580 | first statement in a group. | |
12581 | ||
12582 | 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> | |
12583 | ||
12584 | * config/darwin.h (LINK_COMMAND_SPEC_A): Sync LTO options with | |
12585 | the sequence used in gcc/gcc.c. | |
12586 | ||
12587 | 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> | |
12588 | ||
12589 | PR other/704 | |
12590 | * gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not | |
12591 | building it. | |
12592 | ||
12593 | 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> | |
12594 | ||
12595 | * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Adjust to use the | |
12596 | Darwin10-specific unwinder-shim. | |
12597 | * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Remove. | |
12598 | * config/rs6000/darwin.h (DARWIN_CRT1_SPEC, DARWIN_DYLIB1_SPEC): | |
12599 | New to cater for Darwin10 Rosetta. | |
12600 | ||
12601 | 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> | |
12602 | ||
12603 | * config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O | |
12604 | specific test before the one for HAVE_AS_GOTOFF_IN_DATA. | |
12605 | ||
12606 | 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> | |
12607 | ||
12608 | PR bootstrap/81033 | |
12609 | PR target/81733 | |
12610 | PR target/52795 | |
12611 | * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New. | |
12612 | (dwarf2out_switch_text_section): Generate a local label for the | |
12613 | second function sub-section and apply it as the second FDE start | |
12614 | label. | |
12615 | * gcc/final.c (final_scan_insn_1): Emit second FDE label after the | |
12616 | second sub-section start. | |
12617 | ||
12618 | 2018-08-22 Richard Biener <rguenther@suse.de> | |
12619 | ||
12620 | PR tree-optimization/86988 | |
12621 | * tree-vrp.c (vrp_prop::check_mem_ref): Bail out on VLAs. | |
12622 | ||
12623 | 2018-08-22 Richard Biener <rguenther@suse.de> | |
12624 | ||
12625 | PR tree-optimization/86945 | |
12626 | * tree-cfg.c (generate_range_test): Use unsigned arithmetic. | |
12627 | ||
12628 | 2018-08-22 Alexandre Oliva <oliva@adacore.com> | |
12629 | ||
12630 | * config/rs6000/rs6000.c (SMALL_DATA_RELOC, SMALL_DATA_REG): Add | |
12631 | a comment about how uses of r2 for .sdata2 come about. | |
12632 | ||
12633 | 2018-08-22 Alexandre Oliva <aoliva@redhat.com> | |
12634 | ||
12635 | * tree-ssa-reassoc.c (is_reassociable_op): Fix cut&pasto. | |
12636 | ||
12637 | 2018-08-21 Marek Polacek <polacek@redhat.com> | |
12638 | ||
12639 | PR c++/86981, Implement -Wpessimizing-move. | |
12640 | * doc/invoke.texi: Document -Wpessimizing-move. | |
12641 | ||
12642 | 2018-08-21 Jan Hubicka <jh@suse.cz> | |
12643 | ||
12644 | * tree.c (find_decls_types_r): Do not check for redundant typedefs. | |
12645 | * tree.h (is_redundant_typedef): Remove. | |
12646 | * dwarf2out.c (is_redundant_typedef): Turn into static function. | |
12647 | ||
12648 | 2018-08-21 Jan Hubicka <jh@suse.cz> | |
12649 | ||
12650 | * tree.c (free_lang_data_in_decl): Remove types from DECL_CONTEXT | |
12651 | when possible. | |
12652 | ||
12653 | 2018-08-21 Tamar Christina <tamar.christina@arm.com> | |
12654 | ||
12655 | * expmed.c (extract_low_bits): Reject invalid subregs early. | |
12656 | ||
12657 | 2018-08-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
12658 | ||
12659 | PR middle-end/86121 | |
12660 | * tree-ssa-strlen.c (adjust_last_stmt): Avoid folding away undefined | |
12661 | behaviour. | |
12662 | ||
12663 | 2018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk> | |
12664 | ||
12665 | * config/vxworks.h: Guard vxworks_asm_out_constructor and | |
12666 | vxworks_asm_out_destructor by !HAVE_INITFINI_ARRAY_SUPPORT | |
12667 | * config/vxworks.c: Likewise. | |
12668 | ||
12669 | 2018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk> | |
12670 | ||
12671 | * config/vxworks.c: Set targetm.have_ctors_dtors | |
12672 | if HAVE_INITFINI_ARRAY_SUPPORT. | |
12673 | * config/vxworks.h: Set SUPPORTS_INIT_PRIORITY | |
12674 | if HAVE_INITFINI_ARRAY_SUPPORT. | |
12675 | ||
12676 | 2018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk> | |
12677 | ||
12678 | * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to | |
12679 | default search path for VxWorks < 7. | |
12680 | ||
12681 | 2018-08-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
12682 | ||
12683 | * gimple-ssa-sprintf.c (decl_constant_value): Remove. | |
12684 | (get_format_string): Refer to c_getstr. | |
12685 | ||
12686 | 2018-08-21 Tom de Vries <tdevries@suse.de> | |
12687 | ||
12688 | * cgraph.h (debuginfo_early_init, debuginfo_init, debuginfo_fini) | |
12689 | (debuginfo_start, debuginfo_stop, debuginfo_early_start) | |
12690 | (debuginfo_early_stop): Declare. | |
12691 | * cgraphunit.c (debuginfo_early_init, debuginfo_init, debuginfo_fini) | |
12692 | (debuginfo_start, debuginfo_stop, debuginfo_early_start) | |
12693 | (debuginfo_early_stop): New function. | |
12694 | (symbol_table::finalize_compilation_unit): Call debuginfo_early_start | |
12695 | and debuginfo_early_stop. | |
12696 | * dwarf2out.c (dwarf2out_finish, dwarf2out_early_finish): Dump dwarf. | |
12697 | * toplev.c (compile_file): Call debuginfo_start and debuginfo_stop. | |
12698 | (general_init): Call debuginfo_early_init. | |
12699 | (finalize): Call debuginfo_fini. | |
12700 | (do_compile): Call debuginfo_init. | |
12701 | * doc/invoke.texi (@gccoptlist): Add -fdump-debug and | |
12702 | -fdump-early-debug. | |
12703 | (@item -fdump-debug, @item -fdump-earlydebug): Add. | |
12704 | ||
12705 | 2018-08-21 Tom de Vries <tdevries@suse.de> | |
12706 | ||
12707 | * dwarf2out.c (print_dw_val, print_loc_descr, print_die): Handle | |
12708 | flag_dump_noaddr and flag_dump_unnumbered. | |
12709 | ||
12710 | 2018-08-21 Aldy Hernandez <aldyh@redhat.com> | |
12711 | ||
12712 | * wide-int-range.cc (wide_int_range_abs): New. | |
12713 | (wide_int_range_order_set): Rename from wide_int_range_min_max. | |
12714 | * wide-int-range.h (wide_int_range_abs): New. | |
12715 | (wide_int_range_min_max): New. | |
12716 | * tree-vrp.c (extract_range_from_unary_expr): Rewrite ABS_EXPR | |
12717 | case to call wide_int_range_abs. | |
12718 | Rewrite MIN/MAX_EXPR to call wide_int_range_min_max. | |
12719 | (extract_range_from_abs_expr): Delete. | |
12720 | ||
12721 | 2018-08-20 Michael Meissner <meissner@linux.ibm.com> | |
12722 | ||
12723 | PR target/87033 | |
12724 | * config/rs6000/rs6000.md (extendsi<mode>2): Change constraints | |
12725 | from 'Y' to 'YZ' to enable the LWAX instruction to be generated | |
12726 | for indexed loads. | |
12727 | ||
12728 | 2018-08-20 Nathan Sidwell <nathan@acm.org> | |
12729 | Jeff Law <law@redhat.com> | |
12730 | ||
12731 | * config/s390/s390-c (s390_macro_to_expand): Use cpp_macro_p. | |
12732 | * config/spu/spu-c.c (spu_macro_to_expand): Likewise. | |
12733 | ||
12734 | 2018-08-20 David Malcolm <dmalcolm@redhat.com> | |
12735 | ||
12736 | PR other/84889 | |
12737 | * attribs.c (diag_attr_exclusions): Add auto_diagnostic_group instance. | |
12738 | (decl_attributes): Likewise. | |
12739 | * calls.c (maybe_warn_nonstring_arg): Add auto_diagnostic_group | |
12740 | instance. | |
12741 | * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. | |
12742 | * diagnostic-core.h (class auto_diagnostic_group): New class. | |
12743 | * diagnostic.c (diagnostic_initialize): Initialize the new fields. | |
12744 | (diagnostic_report_diagnostic): Handle the first diagnostics within | |
12745 | a group. | |
12746 | (emit_diagnostic): Add auto_diagnostic_group instance. | |
12747 | (inform): Likewise. | |
12748 | (inform_n): Likewise. | |
12749 | (warning): Likewise. | |
12750 | (warning_at): Likewise. | |
12751 | (warning_n): Likewise. | |
12752 | (pedwarn): Likewise. | |
12753 | (permerror): Likewise. | |
12754 | (error): Likewise. | |
12755 | (error_n): Likewise. | |
12756 | (error_at): Likewise. | |
12757 | (sorry): Likewise. | |
12758 | (fatal_error): Likewise. | |
12759 | (internal_error): Likewise. | |
12760 | (internal_error_no_backtrace): Likewise. | |
12761 | (auto_diagnostic_group::auto_diagnostic_group): New ctor. | |
12762 | (auto_diagnostic_group::~auto_diagnostic_group): New dtor. | |
12763 | * diagnostic.h (struct diagnostic_context): Add fields | |
12764 | "diagnostic_group_nesting_depth", | |
12765 | "diagnostic_group_emission_count", "begin_group_cb", | |
12766 | "end_group_cb". | |
12767 | * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): | |
12768 | Add auto_diagnostic_group instance(s). | |
12769 | (find_explicit_erroneous_behavior): Likewise. | |
12770 | * gimple-ssa-warn-alloca.c (pass_walloca::execute): Likewise. | |
12771 | * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Likewise. | |
12772 | * gimplify.c (warn_implicit_fallthrough_r): Likewise. | |
12773 | (gimplify_va_arg_expr): Likewise. | |
12774 | * hsa-gen.c (HSA_SORRY_ATV): Likewise. | |
12775 | (HSA_SORRY_AT): Likewise. | |
12776 | * ipa-devirt.c (compare_virtual_tables): Likewise. | |
12777 | (warn_odr): Likewise. | |
12778 | * multiple_target.c (expand_target_clones): Likewise. | |
12779 | * opts-common.c (cmdline_handle_error): Likewise. | |
12780 | * reginfo.c (globalize_reg): Likewise. | |
12781 | * substring-locations.c (format_warning_n_va): Likewise. | |
12782 | * tree-inline.c (expand_call_inline): Likewise. | |
12783 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise. | |
12784 | * tree-ssa-loop-niter.c | |
12785 | (do_warn_aggressive_loop_optimizations): Likewise. | |
12786 | * tree-ssa-uninit.c (warn_uninit): Likewise. | |
12787 | * tree.c (warn_deprecated_use): Likewise. | |
12788 | ||
12789 | 2018-08-20 H.J. Lu <hongjiu.lu@intel.com> | |
12790 | ||
12791 | PR target/87014 | |
12792 | * config/i386/i386.md (eh_return): Always update EH return | |
12793 | address in word_mode. | |
12794 | ||
12795 | 2018-08-20 Chung-Lin Tang <cltang@codesourcery.com> | |
12796 | ||
12797 | * targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when | |
12798 | TARGET_SPLIT_COMPLEX_ARG is defined. | |
12799 | ||
12800 | 2018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
12801 | ||
12802 | * expr.c (store_field): Change gcc_assert to gcc_checking_assert. | |
12803 | ||
12804 | 2018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
12805 | ||
12806 | PR target/86984 | |
12807 | * expr.c (expand_assignment): Assert that bitpos is positive. | |
12808 | (store_field): Likewise | |
12809 | (expand_expr_real_1): Make sure that bitpos is positive. | |
12810 | * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed | |
12811 | integer overflow. | |
12812 | ||
12813 | 2018-08-20 Nathan Sidwell <nathan@acm.org> | |
12814 | ||
12815 | * Makefile.in (CPP_ID_DATA_H): Delete. | |
12816 | (CPP_INTERNAL_H): Don't add it. | |
12817 | (GTFILES): Replace CPP_ID_DATA_H with CPPLIB_H. | |
12818 | * gengtype.c (open_base_files): Replace cpp-id-data.h with cpplib.h | |
12819 | ||
12820 | 2018-08-20 Richard Biener <rguenther@suse.de> | |
12821 | ||
12822 | PR tree-optimization/78655 | |
12823 | * tree-vrp.c (extract_range_from_binary_expr_1): Make | |
12824 | pointer + offset nonnull if either operand is nonnull work. | |
12825 | ||
12826 | 2018-08-20 Tom de Vries <tdevries@suse.de> | |
12827 | ||
12828 | * dwarf2out.c (add_scalar_info): Don't add reference to existing die | |
12829 | unless the referenced die describes the added property using | |
12830 | DW_AT_location or DW_AT_const_value. Fall back to exprloc case. | |
12831 | Otherwise, add a DW_AT_location to the referenced die. | |
12832 | ||
12833 | 2018-08-19 Uros Bizjak <ubizjak@gmail.com> | |
12834 | ||
12835 | PR target/86994 | |
12836 | * config/i386/i386.c (ix86_rtx_costs) [case SET]: Check source for | |
12837 | register_operand when calling ix86_set_reg_reg_cost. | |
12838 | [case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF]: | |
12839 | Set *total to 0 for operands that satisfy x86_64_immediate_operand | |
12840 | predicate and to 1 otherwise. | |
12841 | ||
12842 | 2018-08-18 Iain Sandoe <iain@sandoe.co.uk> | |
12843 | ||
12844 | * config/darwin.c (darwin_override_options): If -gsplit-dwarf is set, | |
12845 | emit a diagnostic that it is not supported and reset the option. | |
12846 | * config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not | |
12847 | supported and consume the option. (ASM_FINAL_SPEC): New. | |
12848 | ||
12849 | 2018-08-17 Segher Boessenkool <segher@kernel.crashing.org> | |
12850 | ||
12851 | * doc/md.texi (Patterns): Use @ref instead of @xref in the middle of | |
12852 | a sentence. | |
12853 | ||
12854 | 2018-08-17 Sandra Loosemore <sandra@codesourcery.com> | |
12855 | ||
12856 | C-SKY port: Documentation | |
12857 | ||
12858 | * doc/extend.texi (C-SKY Function Attributes): New section. | |
12859 | * doc/invoke.texi (Option Summary): Add C-SKY options. | |
12860 | (C-SKY Options): New section. | |
12861 | * doc/md.texi (Machine Constraints): Document C-SKY constraints. | |
12862 | ||
12863 | 2018-08-17 Jojo <jijie_rong@c-sky.com> | |
12864 | Huibin Wang <huibin_wang@c-sky.com> | |
12865 | Sandra Loosemore <sandra@codesourcery.com> | |
12866 | Chung-Lin Tang <cltang@codesourcery.com> | |
12867 | ||
12868 | C-SKY port: Backend implementation | |
12869 | ||
12870 | * config/csky/*: New. | |
12871 | * common/config/csky/*: New. | |
12872 | ||
12873 | 2018-08-17 Jojo <jijie_rong@c-sky.com> | |
12874 | Huibin Wang <huibin_wang@c-sky.com> | |
12875 | Sandra Loosemore <sandra@codesourcery.com> | |
12876 | Chung-Lin Tang <cltang@codesourcery.com> | |
12877 | Andrew Jenner <andrew@codesourcery.com> | |
12878 | ||
12879 | C-SKY port: Configury | |
12880 | ||
12881 | * config.gcc (csky-*-*): New. | |
12882 | * configure.ac: Add csky to targets for dwarf2 debug_line support. | |
12883 | * configure: Regenerated. | |
12884 | ||
12885 | 2018-08-17 David Malcolm <dmalcolm@redhat.com> | |
12886 | ||
12887 | * dump-context.h: Include "dumpfile.h". | |
12888 | (dump_context::dump_printf_va): Convert final param from va_list | |
12889 | to va_list *. Convert from ATTRIBUTE_PRINTF to | |
12890 | ATTRIBUTE_GCC_DUMP_PRINTF. | |
12891 | (dump_context::dump_printf_loc_va): Likewise. | |
12892 | * dumpfile.c: Include "stringpool.h". | |
12893 | (make_item_for_dump_printf_va): Delete. | |
12894 | (make_item_for_dump_printf): Delete. | |
12895 | (class dump_pretty_printer): New class. | |
12896 | (dump_pretty_printer::dump_pretty_printer): New ctor. | |
12897 | (dump_pretty_printer::emit_items): New member function. | |
12898 | (dump_pretty_printer::emit_any_pending_textual_chunks): New member | |
12899 | function. | |
12900 | (dump_pretty_printer::emit_item): New member function. | |
12901 | (dump_pretty_printer::stash_item): New member function. | |
12902 | (dump_pretty_printer::format_decoder_cb): New member function. | |
12903 | (dump_pretty_printer::decode_format): New member function. | |
12904 | (dump_context::dump_printf_va): Reimplement in terms of | |
12905 | dump_pretty_printer. | |
12906 | (dump_context::dump_printf_loc_va): Convert final param from va_list | |
12907 | to va_list *. | |
12908 | (dump_context::begin_scope): Reimplement call to | |
12909 | make_item_for_dump_printf. | |
12910 | (dump_printf): Update for change to dump_printf_va. | |
12911 | (dump_printf_loc): Likewise. | |
12912 | (selftest::test_capture_of_dump_calls): Convert "stmt" from | |
12913 | greturn * to gimple *. Add a test_decl. Add tests of dump_printf | |
12914 | with %T, %E, and %G. | |
12915 | * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): New macro. | |
12916 | (dump_printf): Replace ATTRIBUTE_PRINTF_2 with | |
12917 | ATTRIBUTE_GCC_DUMP_PRINTF (2, 3). | |
12918 | (dump_printf_loc): Replace ATTRIBUTE_PRINTF_3 with | |
12919 | ATTRIBUTE_GCC_DUMP_PRINTF (3, 0). | |
12920 | * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Convert | |
12921 | use of HOST_WIDE_INT_PRINT_DEC on unsigned HOST_WIDE_INT "count" | |
12922 | within a dump_printf_loc call to "%wu". | |
12923 | (vector_alignment_reachable_p): Merge two dump_printf[_loc] calls, | |
12924 | converting a use of HOST_WIDE_INT_PRINT_DEC to "%wd". Add a | |
12925 | missing space after "=". | |
12926 | * tree-vect-loop.c (vect_analyze_loop_2) Within a dump_printf | |
12927 | call, convert use of HOST_WIDE_INT_PRINT_DEC to "%wd". | |
12928 | * tree-vect-slp.c (vect_slp_bb): Within a dump_printf_loc call, | |
12929 | convert use of HOST_WIDE_INT_PRINT_UNSIGNED to "%wu". | |
12930 | * tree-vectorizer.c (try_vectorize_loop_1): Likewise. Remove | |
12931 | duplicate "vectorized" from message. | |
12932 | ||
12933 | 2018-08-17 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
12934 | ||
12935 | * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Clear | |
12936 | polyNxK_t element's TYPE_STRING_FLAG. | |
12937 | ||
12938 | 2018-08-17 Segher Boessenkool <segher@kernel.crashing.org> | |
12939 | ||
12940 | * config/rs6000/rs6000.md (*cbranch, *creturn): Name these patterns | |
12941 | (they were unnamed before). Fix comments. | |
12942 | ||
12943 | 2018-08-17 Nathan Sidwell <nathan@acm.org> | |
12944 | ||
12945 | * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h". | |
12946 | ||
12947 | 2018-08-17 Richard Biener <rguenther@suse.de> | |
12948 | ||
12949 | PR tree-optimization/86841 | |
12950 | * wide-int-range.cc (wide_int_range_lshift): Use to_uhwi. | |
12951 | ||
12952 | 2018-08-17 Martin Liska <mliska@suse.cz> | |
12953 | ||
12954 | * common.opt: Remove Warn, Init and Report for options with | |
12955 | Ignore/Deprecated flag. Warning is done automatically for | |
12956 | Deprecated flags. | |
12957 | * config/i386/i386.opt: Likewise. | |
12958 | * config/ia64/ia64.opt: Likewise. | |
12959 | * config/rs6000/rs6000.opt: Likewise. | |
12960 | * cppbuiltin.c (define_builtin_macros_for_compilation_flags): | |
12961 | Remove usage of flag_check_pointer_bounds. | |
12962 | * lto-wrapper.c (merge_and_complain): Do not handle | |
12963 | OPT_fcheck_pointer_bounds. | |
12964 | (append_compiler_options): Likewise. | |
12965 | * opt-functions.awk: Do not handle Deprecated. | |
12966 | * optc-gen.awk: Check that Var, Report and Init are not | |
12967 | used for an option with Ignore/Deprecated flag. | |
12968 | * opts-common.c (decode_cmdline_option): Do not report | |
12969 | CL_ERR_DEPRECATED. | |
12970 | (read_cmdline_option): Report warning for OPT_SPECIAL_deprecated | |
12971 | options. | |
12972 | * opts.h (struct cl_option): Remove cl_deprecated flag. | |
12973 | (CL_ERR_DEPRECATED): Remove error enum value. | |
12974 | ||
12975 | 2018-08-17 Richard Biener <rguenther@suse.de> | |
12976 | ||
12977 | PR middle-end/86505 | |
12978 | * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len () | |
12979 | across a va-arg-pack using call adjust its return value accordingly. | |
12980 | ||
12981 | 2018-08-16 Martin Sebor <msebor@redhat.com> | |
12982 | ||
12983 | PR tree-optimization/86853 | |
12984 | * gimple-ssa-sprintf.c (struct format_result): Rename member. | |
12985 | (struct fmtresult): Add member and initialize it in ctors. | |
12986 | (format_character): Handle %C. Extend range to NUL. Set MAYFAIL. | |
12987 | (format_string): Handle %S the same as %ls. Set MAYFAIL. | |
12988 | (format_directive): Set POSUNDER4K when MAYFAIL is set. | |
12989 | (parse_directive): Handle %C same as %c. | |
12990 | (sprintf_dom_walker::compute_format_length): Adjust. | |
12991 | (is_call_safe): Adjust. | |
12992 | ||
12993 | 2018-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
12994 | ||
12995 | * builtins.c (c_strlen): Add new parameter eltsize. Use it | |
12996 | for determining how to count the elements. | |
12997 | * builtins.h (c_strlen): Adjust prototype. | |
12998 | * expr.c (string_constant): Add new parameter mem_size. | |
12999 | Set *mem_size appropriately. | |
13000 | * expr.h (string_constant): Adjust protoype. | |
13001 | * gimple-fold.c (get_range_strlen): Add new parameter eltsize. | |
13002 | * gimple-fold.h (get_range_strlen): Adjust prototype. | |
13003 | * gimple-ssa-sprintf.c (get_string_length): Add new parameter eltsize. | |
13004 | (format_string): Call get_string_length with eltsize. | |
13005 | ||
13006 | 2018-08-16 David Malcolm <dmalcolm@redhat.com> | |
13007 | ||
13008 | * diagnostic.c (default_diagnostic_start_span_fn): Call pp_string | |
13009 | to emit the span, rather than setting it as the prefix. | |
13010 | ||
13011 | 2018-08-16 David Malcolm <dmalcolm@redhat.com> | |
13012 | ||
13013 | * diagnostic-show-locus.c (layout::start_annotation_line): Add | |
13014 | "margin_char" parameter, defaulting to space. Use it in place | |
13015 | of pp_space for the initial part of the margin. | |
13016 | (layout::print_leading_fixits): Use '+' when filling the margin | |
13017 | of line-insertion fix-it hints. | |
13018 | ||
13019 | 2018-08-16 Segher Boessenkool <segher@kernel.crashing.org> | |
13020 | ||
13021 | * config/rs6000/rs6000.md (two unnamed define_insn and define_split): | |
13022 | Delete. | |
13023 | ||
13024 | 2018-08-16 Segher Boessenkool <segher@kernel.crashing.org> | |
13025 | ||
13026 | * config/rs6000/altivec.md: Don't set length attribute to the default | |
13027 | value. | |
13028 | * config/rs6000/darwin.md: Ditto. | |
13029 | * config/rs6000/dfp.md: Ditto. | |
13030 | * config/rs6000/htm.md: Ditto. | |
13031 | * config/rs6000/rs6000.md: Ditto. | |
13032 | * config/rs6000/sync.md: Ditto. | |
13033 | * config/rs6000/vsx.md: Ditto. | |
13034 | ||
13035 | 2018-08-16 Segher Boessenkool <segher@kernel.crashing.org> | |
13036 | ||
13037 | * config/rs6000/altivec.md: Don't set length attribute to the default | |
13038 | value, for branch instructions. | |
13039 | * config/rs6000/darwin.md: Ditto. | |
13040 | * config/rs6000/rs6000.md: Ditto. | |
13041 | ||
13042 | 2018-08-16 Segher Boessenkool <segher@kernel.crashing.org> | |
13043 | ||
13044 | * config/rs6000/rs6000.md (length): Always define as const_int 4. | |
13045 | (unnamed conditional branch define_insn): Set length to 4 or 8 | |
13046 | depending on offset. | |
13047 | (<bd>_<mode>): Similar, for alternative 0. | |
13048 | (<bd>tf_<mode>): Ditto. | |
13049 | ||
13050 | 2018-08-16 Tamar Christina <tamar.christina@arm.com> | |
13051 | ||
13052 | * expr.c (copy_blkmode_to_reg): Perform larger copies when safe. | |
13053 | ||
13054 | 2018-08-16 Matthew Malcomson <matthew.malcomson@arm.com> | |
13055 | ||
13056 | * doc/rtl.texi: Replace old RTX class names with new names. | |
13057 | ||
13058 | ||
13059 | 2018-08-16 Vlad Lazar <vlad.lazar@arm.com> | |
13060 | ||
13061 | * expmed.h (canonicalize_comparison): New declaration. | |
13062 | * expmed.c (canonicalize_comparison, equivalent_cmp_code): New function. | |
13063 | * expmed.c (emit_store_flag_1): Add call to canonicalize_comparison. | |
13064 | * optabs.c (prepare_cmp_insn): Likewise. | |
13065 | * rtl.h (unsigned_condition_p): New function which checks if a | |
13066 | comparison operator is unsigned. | |
13067 | ||
13068 | 2018-08-16 Nathan Sidwell <nathan@acm.org> | |
13069 | ||
13070 | * config/rs6000/rs6000-c.c (rs6000_macro_to_expend): Use cpp_macro_p. | |
13071 | * config/powerpcspc/powerpcspe-c.c (rs6000_macro_to_expend): Likewise. | |
13072 | ||
13073 | 2018-08-16 Tamar Christina <tamar.christina@arm.com> | |
13074 | ||
13075 | PR target/84711 | |
13076 | * config/arm/arm.c (arm_can_change_mode_class): Disallow subreg. | |
13077 | * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. | |
13078 | (mov<mov>): ..this and enable unconditionally. | |
13079 | ||
13080 | 2018-08-16 Tamar Christina <tamar.christina@arm.com> | |
13081 | ||
13082 | * config/arm/neon.md (*neon_mov<mode>): Remove reg-to-reg alternative. | |
13083 | ||
13084 | 2018-08-16 Sam Tebbs <sam.tebbs@arm.com> | |
13085 | ||
13086 | * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt) | |
13087 | (mlow-precision-sqrt, mlow-precision-div, mverbose-cost-dump): Replace | |
13088 | "Common" with "Target". | |
13089 | ||
13090 | 2018-08-15 Uros Bizjak <ubizjak@gmail.com> | |
13091 | ||
13092 | * config/i386/i386.opt (mmitigate-rop): Mark as deprecated. | |
13093 | * doc/invoke.texi (mmitigate-rop): Remove. | |
13094 | * config/i386/i386.c: Do not include "regrename.h". | |
13095 | (ix86_rop_should_change_byte_p, reg_encoded_number) | |
13096 | (ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): | |
13097 | Remove. | |
13098 | (ix86_reorg): Remove call to ix86_mitigate_rop. | |
13099 | * config/i386/i386.md (attr "modrm_class"): Remove. | |
13100 | (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor) | |
13101 | (x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se) | |
13102 | (x86_mov<mode>cc_0_m1_neg): Remove modrm_class attribute override. | |
13103 | ||
13104 | 2018-08-15 Will Schmidt <will_schmidt@vnet.ibm.com> | |
13105 | ||
13106 | * config/rs6000/rs600.c (rs6000_gimple_fold_builtin): Add entries to | |
13107 | allow folding of mergeh() and mergel() for the float and double types. | |
13108 | (fold_mergehl_helper): Rework to handle building a permute tree | |
13109 | for float vectors. | |
13110 | ||
13111 | 2018-08-15 Uros Bizjak <ubizjak@gmail.com> | |
13112 | ||
13113 | * config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode | |
13114 | for TARGET_SSE. | |
13115 | ||
13116 | 2018-08-15 David Malcolm <dmalcolm@redhat.com> | |
13117 | ||
13118 | * common.opt (fdiagnostics-show-labels): New option. | |
13119 | * diagnostic-show-locus.c (class layout_range): Add field | |
13120 | "m_label". | |
13121 | (class layout): Add field "m_show_labels_p". | |
13122 | (layout_range::layout_range): Add param "label" and use it to | |
13123 | initialize m_label. | |
13124 | (make_range): Pass in NULL for new "label" param of layout_range's | |
13125 | ctor. | |
13126 | (layout::layout): Initialize m_show_labels_p. | |
13127 | (layout::maybe_add_location_range): Pass in loc_range->m_label | |
13128 | when constructing layout_range instances. | |
13129 | (struct line_label): New struct. | |
13130 | (layout::print_any_labels): New member function. | |
13131 | (layout::print_line): Call it if label-printing is enabled. | |
13132 | (selftest::test_one_liner_labels): New test. | |
13133 | (selftest::test_diagnostic_show_locus_one_liner): Call it. | |
13134 | * diagnostic.c (diagnostic_initialize): Initialize | |
13135 | context->show_labels_p. | |
13136 | * diagnostic.h (struct diagnostic_context): Add field | |
13137 | "show_labels_p". | |
13138 | * doc/invoke.texi (Diagnostic Message Formatting Options): Add | |
13139 | -fno-diagnostics-show-labels. | |
13140 | * dwarf2out.c (gen_producer_string): Add | |
13141 | OPT_fdiagnostics_show_labels to the ignored options. | |
13142 | * gcc-rich-location.c (gcc_rich_location::add_expr): Add "label" | |
13143 | param. | |
13144 | (gcc_rich_location::maybe_add_expr): Likewise. | |
13145 | * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): Add | |
13146 | label" param, defaulting to NULL. | |
13147 | (gcc_rich_location::add_expr): Add "label" param. | |
13148 | (gcc_rich_location::maybe_add_expr): Likewise. | |
13149 | (class text_range_label): New class. | |
13150 | (class range_label_for_type_mismatch): New class. | |
13151 | * gimple-ssa-sprintf.c (fmtwarn): Pass NULL for new label params | |
13152 | of format_warning_va. | |
13153 | (fmtwarn_n): Likewise for new params of format_warning_n_va. | |
13154 | * lto-wrapper.c (merge_and_complain): Add | |
13155 | OPT_fdiagnostics_show_labels to the "pick one setting" options. | |
13156 | (append_compiler_options): Likewise to the dropped options. | |
13157 | (append_diag_options): Likewise to the passed-on options. | |
13158 | * opts.c (common_handle_option): Handle the new option. | |
13159 | * selftest-diagnostic.c | |
13160 | (test_diagnostic_context::test_diagnostic_context): Enable | |
13161 | show_labels_p. | |
13162 | * substring-locations.c: Include "gcc-rich-location.h". | |
13163 | (format_warning_n_va): Add "fmt_label" and "param_label" params | |
13164 | and use them as appropriate. | |
13165 | (format_warning_va): Add "fmt_label" and "param_label" params, | |
13166 | passing them on to format_warning_n_va. | |
13167 | (format_warning_at_substring): Likewise. | |
13168 | (format_warning_at_substring_n): Likewise. | |
13169 | * substring-locations.h (format_warning_va): Add "fmt_label" and | |
13170 | "param_label" params. | |
13171 | (format_warning_n_va): Likewise. | |
13172 | (format_warning_at_substring): Likewise. | |
13173 | (format_warning_at_substring_n): Likewise. | |
13174 | * toplev.c (general_init): Initialize global_dc->show_labels_p. | |
13175 | ||
13176 | 2018-08-15 Qing Zhao <qing.zhao@oracle.com> | |
13177 | ||
13178 | PR testsuite/86519 | |
13179 | * builtins.c (expand_builtin_memcmp): Do not expand the call | |
13180 | when overflow is detected. | |
13181 | ||
13182 | 2018-08-15 Martin Sebor <msebor@redhat.com> | |
13183 | ||
13184 | PR tree-optimization/71625 | |
13185 | * config/aarch64/aarch64-builtins.c | |
13186 | (aarch64_init_simd_builtin_types): Clear Poly8_t's TYPE_STRING_FLAG. | |
13187 | ||
13188 | 2018-08-15 Ilya Leoshkevich <iii@linux.ibm.com> | |
13189 | ||
13190 | * config/s390/s390.c (s390_reorg): Remove loop. | |
13191 | ||
13192 | 2018-08-15 Iain Sandoe <iain@sandoe.co.uk> | |
13193 | ||
13194 | * config/darwin.c | |
13195 | (darwin_function_switched_text_sections): Delete. | |
13196 | * gcc/config/darwin.h | |
13197 | (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise. | |
13198 | ||
13199 | 2018-08-15 Iain Sandoe <iain@sandoe.co.uk> | |
13200 | ||
13201 | PR target/81685 | |
13202 | * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION, | |
13203 | DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION, | |
13204 | DEBUG_PUBTYPES_SECTION) update to include GNU variant. | |
13205 | ||
13206 | 2018-08-15 Martin Liska <mliska@suse.cz> | |
13207 | ||
13208 | PR tree-optimization/86925 | |
13209 | * predict.c (expr_expected_value_1): When taking | |
13210 | later predictor, assign also probability. | |
13211 | Use fold_build2_initializer_loc in order to fold | |
13212 | the expression in -frounding-math. | |
13213 | ||
13214 | 2018-08-14 Allan Sandfeld Jensen <allan.jensen@qt.io> | |
13215 | ||
13216 | * config/i386/i386.c (expand_vec_perm_movs): New method matching movs | |
13217 | patterns. | |
13218 | (expand_vec_perm_1): Try the new method. | |
13219 | ||
13220 | 2018-08-14 Ilya Leoshkevich <iii@linux.ibm.com> | |
13221 | ||
13222 | PR target/86547 | |
13223 | * lra-lives.c (remove_some_program_points_and_update_live_ranges): | |
13224 | Check whether lra_live_max_point is 0 before dividing. | |
13225 | ||
13226 | 2018-08-14 Martin Sebor <msebor@redhat.com> | |
13227 | ||
13228 | PR tree-optimization/86650 | |
13229 | * tree-vrp.c (vrp_prop::check_array_ref): Print an inform message. | |
13230 | (vrp_prop::check_mem_ref): Same. | |
13231 | ||
13232 | 2018-08-13 Liu Hao <lh_mouse@126.com> | |
13233 | ||
13234 | * pretty-print.c (eat_esc_sequence): Swap the foreground and | |
13235 | background colors if the COMMON_LVB_REVERSE_VIDEO flag is set, | |
13236 | and clear it thereafter, as it only works for DBCS. | |
13237 | ||
13238 | 2018-08-13 Liu Hao <lh_mouse@126.com> | |
13239 | ||
13240 | * pretty-print.c (mingw_ansi_fputs): Do not call _close() on the | |
13241 | handle returned by _get_osf_handle(). | |
13242 | ||
13243 | 2018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com> | |
13244 | ||
13245 | * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support | |
13246 | for folding vec_perm. | |
13247 | ||
13248 | 2018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com> | |
13249 | ||
13250 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): | |
13251 | Add support for gimple-folding of vec_pack() and vec_unpack() | |
13252 | intrinsics. | |
13253 | ||
13254 | 2018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com> | |
13255 | ||
13256 | * config/rs6000/rs6000.c (rs6000_builtin_valid_without_lhs): Add | |
13257 | vec_xst variants to the list. | |
13258 | (rs6000_gimple_fold_builtin): Add support for folding unaligned | |
13259 | vector loads and stores. | |
13260 | ||
13261 | 2018-08-13 David Edelsohn <dje.gcc@gmail.com> | |
13262 | ||
13263 | * config.gcc (rs6000-ibm-aix4.x): Delete. | |
13264 | (rs6000-ibm-aix5.1): Delete. | |
13265 | (rs6000-ibm-aix5.2): Delete. | |
13266 | (rs6000-ibm-aix5.3): Delete. | |
13267 | * config/rs6000/aix43.h: Delete. | |
13268 | * config/rs6000/aix51.h: Delete. | |
13269 | * config/rs6000/aix52.h: Delete. | |
13270 | * config/rs6000/t-aix43: Delete. | |
13271 | ||
13272 | 2018-08-13 Ilya Leoshkevich <iii@linux.ibm.com> | |
13273 | ||
13274 | * config/s390/s390.c (s390_decompose_constant_pool_ref): | |
13275 | New function. | |
13276 | (s390_decompose_address): Factor out constant pool ref | |
13277 | decomposition. | |
13278 | ||
13279 | 2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> | |
13280 | ||
13281 | * config/nds32/nds32-predicates.c | |
13282 | (nds32_can_use_bclr_p): Change return type as bool. | |
13283 | (nds32_can_use_bset_p): Ditto. | |
13284 | (nds32_can_use_btgl_p): Ditto. | |
13285 | (nds32_can_use_bitci_p): Ditto. | |
13286 | * config/nds32/nds32-protos.h | |
13287 | (nds32_can_use_bclr_p): Change declaration. | |
13288 | (nds32_can_use_bset_p): Ditto. | |
13289 | (nds32_can_use_btgl_p): Ditto. | |
13290 | (nds32_can_use_bitci_p): Ditto. | |
13291 | ||
13292 | 2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> | |
13293 | ||
13294 | * config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue): | |
13295 | Support -msched-prolog-epilog option. | |
13296 | * config/nds32/nds32.opt (msched-prolog-epilog): New option. | |
13297 | ||
13298 | 2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> | |
13299 | ||
13300 | * common/config/nds32/nds32-common.c | |
13301 | (nds32_option_optimization_table): Enalbe -malways-align. | |
13302 | ||
13303 | 2018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> | |
13304 | ||
13305 | * config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in | |
13306 | extra_headers. | |
13307 | * common/config/nds32/nds32-common.c (nds32_handle_option): Handle | |
13308 | OPT_misr_secure_ case. | |
13309 | * config/nds32/nds32-isr.c: Implementation of backward compatibility. | |
13310 | * config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New. | |
13311 | * config/nds32/nds32.c (nds32_attribute_table): Add critical and | |
13312 | secure attribute. | |
13313 | * config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL. | |
13314 | (nds32_isr_info): New field security_level. | |
13315 | (TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro. | |
13316 | * config/nds32/nds32.md (return_internal): Consider critical attribute. | |
13317 | * config/nds32/nds32.opt (misr-secure): New option. | |
13318 | * config/nds32/nds32_init.inc: New file. | |
13319 | * config/nds32/nds32_isr.h: New file. | |
13320 | ||
13321 | 2018-08-11 John David Anglin <danglin@gcc.gnu.org> | |
13322 | ||
13323 | * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum. | |
13324 | Update comment for atomic instructions. | |
13325 | (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf, | |
13326 | atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1): | |
13327 | Remove. | |
13328 | (atomic_loaddi): Revise fence expansion to only emit fence prior to | |
13329 | load for __ATOMIC_SEQ_CST model. | |
13330 | (atomic_loaddi_1): Remove float register target. | |
13331 | (atomic_storedi): Handle CONST_INT values. | |
13332 | (atomic_storedi_1): Remove float register source. Add special case | |
13333 | for zero value. | |
13334 | (memory_barrier): New expander and insn. | |
13335 | ||
13336 | 2018-08-11 Jakub Jelinek <jakub@redhat.com> | |
13337 | ||
13338 | PR tree-optimization/86835 | |
13339 | * tree-ssa-math-opts.c (insert_reciprocals): Even when inserting | |
13340 | new_stmt after def_gsi, make sure to insert new_square_stmt after | |
13341 | that stmt, not 2 stmts before it. | |
13342 | ||
13343 | 2018-08-10 Alexander Monakov <amonakov@ispras.ru> | |
13344 | ||
13345 | PR target/82418 | |
13346 | * config/i386/i386.md (<s>mul<mode>3_highpart): Use DWIH mode iterator | |
13347 | instead of SWI48. | |
13348 | ||
13349 | 2018-08-10 Martin Liska <mliska@suse.cz> | |
13350 | ||
13351 | PR target/83610 | |
13352 | * builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new | |
13353 | function type. | |
13354 | * builtins.c (expand_builtin_expect_with_probability): | |
13355 | New function. | |
13356 | (expand_builtin_expect_with_probability): New function. | |
13357 | (build_builtin_expect_predicate): Add new argumnet probability | |
13358 | for BUILT_IN_EXPECT_WITH_PROBABILITY. | |
13359 | (fold_builtin_expect): | |
13360 | (fold_builtin_2): | |
13361 | (fold_builtin_3): | |
13362 | * builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY): | |
13363 | * builtins.h (fold_builtin_expect): Set new argument. | |
13364 | * doc/extend.texi: Document __builtin_expect_with_probability. | |
13365 | * doc/invoke.texi: Likewise. | |
13366 | * gimple-fold.c (gimple_fold_call): Pass new argument. | |
13367 | * ipa-fnsummary.c (find_foldable_builtin_expect): Handle | |
13368 | also BUILT_IN_EXPECT_WITH_PROBABILITY. | |
13369 | * predict.c (get_predictor_value): New function. | |
13370 | (expr_expected_value): Add new argument probability. Assume | |
13371 | that predictor and probability are always non-null. | |
13372 | (expr_expected_value_1): Likewise. For __builtin_expect and | |
13373 | __builtin_expect_with_probability set probability. Handle | |
13374 | combination in binary expressions. | |
13375 | (tree_predict_by_opcode): Simplify code by simply calling | |
13376 | get_predictor_value. | |
13377 | (pass_strip_predict_hints::execute): Add handling of | |
13378 | BUILT_IN_EXPECT_WITH_PROBABILITY. | |
13379 | * predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add | |
13380 | new predictor. | |
13381 | * tree.h (DECL_BUILT_IN_P): New function. | |
13382 | ||
13383 | 2018-08-10 Martin Liska <mliska@suse.cz> | |
13384 | ||
13385 | PR tree-optimization/85799 | |
13386 | * passes.def: Add argument for pass_strip_predict_hints. | |
13387 | * predict.c (class pass_strip_predict_hints): Add new argument | |
13388 | early_p. | |
13389 | (strip_predictor_early): New function. | |
13390 | (pass_strip_predict_hints::execute): Call the function to | |
13391 | strip predictors. | |
13392 | (strip_predict_hints): New function. | |
13393 | * predict.def: Fix comment. | |
13394 | ||
13395 | 2018-08-10 Thomas Preud'homme <thomas.preudhomme@linaro.org> | |
13396 | ||
13397 | * Makefile.in: Clarify which tm.texi to copy over to assert the | |
13398 | right to grant a GFDL license for all. | |
13399 | ||
13400 | 2018-08-09 Jeff Law <law@redhat.com> | |
13401 | ||
13402 | * config/m68k/m68k.c (m68k_adjust_decorated_operand): Remove | |
13403 | unused variable. | |
13404 | ||
13405 | 2018-08-09 Andreas Schwab <schwab@linux-m68k.org> | |
13406 | ||
13407 | * config/m68k/m68k-protos.h (m68k_final_prescan_insn): Remove | |
13408 | prototype. | |
13409 | ||
13410 | 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> | |
13411 | ||
13412 | * tree-vect-loop.c (vectorizable_reduction): Allow inner-loop | |
13413 | reductions for variable-length vectors. | |
13414 | ||
13415 | 2018-08-09 David Malcolm <dmalcolm@redhat.com> | |
13416 | ||
13417 | PR other/84889 | |
13418 | * common.opt (fdiagnostics-show-line-numbers): New option. | |
13419 | * diagnostic-show-locus.c (class layout): Add fields | |
13420 | "m_show_line_numbers_p" and "m_linenum_width"; | |
13421 | (num_digits): New function. | |
13422 | (test_num_digits): New function. | |
13423 | (layout::layout): Initialize new fields. Update m_x_offset | |
13424 | logic to handle any left margin. | |
13425 | (layout::print_source_line): Print line number when requested. | |
13426 | (layout::start_annotation_line): New member function. | |
13427 | (layout::print_annotation_line): Call it. | |
13428 | (layout::print_leading_fixits): Likewise. | |
13429 | (layout::print_trailing_fixits): Likewise. Update calls to | |
13430 | move_to_column for new parameter. | |
13431 | (layout::get_x_bound_for_row): Add "add_left_margin" param and use | |
13432 | it to potentially call start_annotation_line. | |
13433 | (layout::show_ruler): Call start_annotation_line. | |
13434 | (selftest::test_line_numbers_multiline_range): New selftest. | |
13435 | (selftest::diagnostic_show_locus_c_tests): Call test_num_digits | |
13436 | and selftest::test_line_numbers_multiline_range. | |
13437 | * diagnostic.c (diagnostic_initialize): Initialize | |
13438 | show_line_numbers_p. | |
13439 | * diagnostic.h (struct diagnostic_context): Add field | |
13440 | "show_line_numbers_p". | |
13441 | * doc/invoke.texi (Diagnostic Message Formatting Options): Add | |
13442 | -fno-diagnostics-show-line-numbers. | |
13443 | * dwarf2out.c (gen_producer_string): Add | |
13444 | OPT_fdiagnostics_show_line_numbers to the ignored options. | |
13445 | * lto-wrapper.c (merge_and_complain): Likewise to the "pick | |
13446 | one setting" options. | |
13447 | (append_compiler_options): Likewise to the dropped options. | |
13448 | (append_diag_options): Likewise to the passed-on options. | |
13449 | * opts.c (common_handle_option): Handle the new option. | |
13450 | * toplev.c (general_init): Set up global_dc->show_line_numbers_p. | |
13451 | ||
13452 | 2018-08-09 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
13453 | ||
13454 | * doc/extend.texi (PowerPC AltiVec Built-in Functions Available on | |
13455 | ISA 2.07): Correct spelling of bcdsub to be __builtin_bcdsub. Add | |
13456 | third argument of type "const signed char" to descriptions of | |
13457 | __builtin_bcdadd, __builtin_bcdadd_lt, __builtin_bcdadd_eq, | |
13458 | __builtin_bcdadd_gt, __builtin_bcdadd_ov, __builtin_bcdsub, | |
13459 | __builtin_bcdsub_lt, __builtin_bcdsub_eq, __builtin_bcdsub_gt, | |
13460 | __builtin_bcdsub_ov functions. | |
13461 | ||
13462 | 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> | |
13463 | ||
13464 | PR tree-optimization/86858 | |
13465 | * tree-vect-loop.c (vect_is_simple_reduction): Restore | |
13466 | flow_bb_inside_loop_p calls. | |
13467 | ||
13468 | 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> | |
13469 | ||
13470 | PR tree-optimization/86871 | |
13471 | * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs | |
13472 | instead of gimple_assign_lhs. | |
13473 | ||
13474 | 2018-08-09 Richard Earnshaw <rearnsha@arm.com> | |
13475 | ||
13476 | PR target/86887 | |
13477 | * config/aarch64/aarch64.md (add<mode>3_carryinC_zero): Add missing | |
13478 | register constraint to operand 0. | |
13479 | (add<mode>3_carryinC): Likewise. | |
13480 | (add<mode>3_carryinV_zero, add<mode>3_carryinV): Likewise. | |
13481 | ||
13482 | 2018-08-09 Martin Liska <mliska@suse.cz> | |
13483 | ||
13484 | PR c/86895 | |
13485 | * common.opt: Remove extra line. | |
13486 | ||
13487 | 2018-08-09 Martin Liska <mliska@suse.cz> | |
13488 | ||
13489 | * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Remove double dots | |
13490 | at the end of a line, make first letter capital and end up | |
13491 | a sentence with a dot. | |
13492 | (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): Likewise. | |
13493 | (PARAM_LOOP_BLOCK_TILE_SIZE): Likewise. | |
13494 | (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Likewise. | |
13495 | (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Likewise. | |
13496 | (PARAM_MAX_ISL_OPERATIONS): Likewise. | |
13497 | (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): Likewise. | |
13498 | (PARAM_PROFILE_FUNC_INTERNAL_ID): Likewise. | |
13499 | (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. | |
13500 | (PARAM_SLP_MAX_INSNS_IN_BB): Likewise. | |
13501 | (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. | |
13502 | (PARAM_IPA_CP_RECURSION_PENALTY): Likewise. | |
13503 | (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise. | |
13504 | (PARAM_IPA_CP_LOOP_HINT_BONUS): Likewise. | |
13505 | (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Likewise. | |
13506 | (PARAM_TREE_REASSOC_WIDTH): Likewise. | |
13507 | (PARAM_HSA_GEN_DEBUG_STORES): Likewise. | |
13508 | (PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS): Likewise. | |
13509 | (PARAM_MAX_VRP_SWITCH_ASSERTIONS): Likewise. | |
13510 | ||
13511 | 2018-08-09 Andreas Krebbel <krebbel@linux.ibm.com> | |
13512 | ||
13513 | PR target/84332 | |
13514 | * config/s390/s390.c (s390_option_override_internal): Reduce the | |
13515 | stack-clash-protection-probe-interval param if it would be too big | |
13516 | for z900. | |
13517 | ||
13518 | 2018-08-08 Andreas Schwab <schwab@linux-m68k.org> | |
13519 | ||
13520 | PR target/46179 | |
13521 | * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Don't define. | |
13522 | * config/m68k/m68k.c (handle_move_double): Don't call | |
13523 | m68k_final_prescan_insn. | |
13524 | (m68k_adjust_decorated_operand): Renamed from | |
13525 | m68k_final_prescan_insn, remove first and third operand and | |
13526 | simplify. | |
13527 | (print_operand): Call it. | |
13528 | (print_operand_address): Call it. | |
13529 | ||
13530 | 2018-08-08 Nathan Sidwell <nathan@acm.org> | |
13531 | ||
13532 | * diagnostic.c (diagnostic_report_current_module): Use | |
13533 | linemap_included_from & linemap_included_from_linemap. | |
13534 | ||
13535 | 2018-08-08 Hongbo Zhang <hongbo.zhang@linaro.org> | |
13536 | ||
13537 | * config/aarch64/aarch64-cores.def: Add phecda core. | |
13538 | * config/aarch64/aarch64-tune.md: Regenerate. | |
13539 | * doc/invoke.texi: Add phecda core. | |
13540 | ||
13541 | 2018-08-08 Andreas Krebbel <krebbel@linux.ibm.com> | |
13542 | ||
13543 | PR target/85295 | |
13544 | * config/s390/constraints.md ("NxHD0", "NxSD0"): New constraint | |
13545 | definitions. | |
13546 | * config/s390/s390.md ("movti"): Add more alternatives for | |
13547 | constant to GPR copies. | |
13548 | ||
13549 | 2018-08-08 Andreas Krebbel <krebbel@linux.ibm.com> | |
13550 | ||
13551 | * config/s390/s390.c: Fix whitespace damage throughout the file. | |
13552 | * config/s390/s390.h: Likewise. | |
13553 | * config/s390/tpf.h: Likewise. | |
13554 | ||
13555 | 2018-08-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
13556 | ||
13557 | * config/s390/s390.c (s390_loadrelative_operand_p): | |
13558 | Remove TARGET_CPU_ZARCH usages. | |
13559 | (s390_rtx_costs): Likewise. | |
13560 | (s390_legitimate_constant_p): Likewise. | |
13561 | (s390_cannot_force_const_mem): Likewise. | |
13562 | (legitimate_reload_constant_p): Likewise. | |
13563 | (s390_preferred_reload_class): Likewise. | |
13564 | (legitimize_pic_address): Likewise. | |
13565 | (legitimize_tls_address): Likewise. | |
13566 | (s390_split_branches): Removed. | |
13567 | (s390_add_execute): Removed. | |
13568 | (s390_dump_pool): Remove TARGET_CPU_ZARCH usages. | |
13569 | (s390_mainpool_start): Likewise. | |
13570 | (s390_mainpool_finish): Likewise. | |
13571 | (s390_mainpool_cancel): Removed. | |
13572 | (s390_chunkify_start): Remove TARGET_CPU_ZARCH usages. | |
13573 | (s390_chunkify_cancel): Likewise. | |
13574 | (s390_return_addr_rtx): Likewise. | |
13575 | (s390_register_info): Remove split_branches_pending_p uages. | |
13576 | (s390_optimize_register_info): Likewise. | |
13577 | (s390_init_frame_layout): Remove TARGET_CPU_ZARCH and | |
13578 | split_branches_pending_p usages. | |
13579 | (s390_can_eliminate): Remove TARGET_CPU_ZARCH usages. | |
13580 | (s390_load_got): Likewise. | |
13581 | (s390_expand_split_stack_prologue): Likewise. | |
13582 | (output_asm_nops): Likewise. | |
13583 | (s390_function_profiler): Likewise. | |
13584 | (s390_emit_call): Likewise. | |
13585 | (s390_conditional_register_usage): Likewise. | |
13586 | (s390_optimize_prologue): Likewise. | |
13587 | (s390_reorg): Remove TARGET_CPU_ZARCH and | |
13588 | split_branches_pending_p usages. | |
13589 | (s390_option_override_internal): Remove TARGET_CPU_ZARCH | |
13590 | usages. | |
13591 | (s390_output_indirect_thunk_function): Likewise. | |
13592 | * config/s390/s390.h (TARGET_CPU_ZARCH): Removed. | |
13593 | (TARGET_CPU_ZARCH_P): Removed. | |
13594 | (struct machine_function): Remove split_branches_pending_p. | |
13595 | * config/s390/s390.md: Remove TARGET_CPU_ZARCH usages. | |
13596 | ||
13597 | 2018-08-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
13598 | ||
13599 | * common/config/s390/s390-common.c (processor_flags_table): | |
13600 | Remove flags. | |
13601 | * config.gcc: Remove with_arch/with_tune support. | |
13602 | * config/s390/2064.md: Remove cpu attribute comparisons. | |
13603 | * config/s390/driver-native.c (s390_host_detect_local_cpu): | |
13604 | Remove MTN. | |
13605 | * config/s390/linux.h (ASM_SPEC): | |
13606 | Remove -march support. | |
13607 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): | |
13608 | Use a table to get an arch level. | |
13609 | * config/s390/s390-opts.h (enum processor_type): | |
13610 | Remove enum values. | |
13611 | * config/s390/s390.c | |
13612 | (processor_table): Remove entries, add arch_level values. | |
13613 | (s390_issue_rate): Remove cases. | |
13614 | (s390_option_override): Adjust | |
13615 | s390_option_override_internal() call. | |
13616 | (s390_option_override_internal): Remove deprecation warning. | |
13617 | (s390_valid_target_attribute_tree): Adjust | |
13618 | s390_option_override_internal() call. | |
13619 | * config/s390/s390.h (struct s390_processor): | |
13620 | Share with s390-c.c, add arch_level field. | |
13621 | * config/s390/s390.md: | |
13622 | Remove occurrences in cpu attribute. | |
13623 | * config/s390/s390.opt: Remove -march/-mtune support. | |
13624 | * config/s390/tpf.h (ASM_SPEC): Remove -march support. | |
13625 | * doc/invoke.texi: Remove deprecation warning. | |
13626 | ||
13627 | 2018-08-08 Luis Machado <luis.machado@linaro.org> | |
13628 | ||
13629 | * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static | |
13630 | global. | |
13631 | (qdf24xx_tunings): Set vector cost structure to | |
13632 | qdf24xx_vector_cost. | |
13633 | ||
13634 | * config/aarch64/aarch64.c (qdf24xx_addrcost_table) | |
13635 | <register_sextend>: Set to 3. | |
13636 | ||
13637 | 2018-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
13638 | ||
13639 | PR target/86838 | |
13640 | * config/aarch64/iterators.md (FRECP, frecp_suffix): Delete. | |
13641 | * config/aarch64/aarch64-simd.md | |
13642 | (aarch64_frecp<FRECP:frecp_suffix><mode>): Fold FRECPE into... | |
13643 | (@aarch64_frecpe<mode>): ...here and the move FRECPX to... | |
13644 | (aarch64_frecpx<mode>): ...this new pattern. | |
13645 | * config/aarch64/aarch64-simd-builtins.def: Remove comment | |
13646 | about aarch64_frecp<FRECP:frecp_suffix><mode>. | |
13647 | ||
13648 | 2018-08-07 Martin Liska <mliska@suse.cz> | |
13649 | ||
13650 | PR middle-end/83023 | |
13651 | * predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC, | |
13652 | BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW. | |
13653 | * predict.def (PRED_MALLOC_NONNULL): New predictor. | |
13654 | * doc/extend.texi: Document that malloc attribute adds | |
13655 | hit to compiler. | |
13656 | ||
13657 | 2018-08-06 John David Anglin <danglin@gcc.gnu.org> | |
13658 | ||
13659 | PR target/86785 | |
13660 | * config/pa/pa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13661 | Define to speculation_safe_value_not_needed. | |
13662 | ||
13663 | 2018-08-06 Jeff Law <law@redhat.com> | |
13664 | ||
13665 | * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Pass down | |
13666 | the vr_values instance to cprop_into_stmt. | |
13667 | (cprop_into_stmt): Pass vr_values instance down to cprop_operand. | |
13668 | (cprop_operand): Also query EVRP to determine if OP is a constant. | |
13669 | ||
13670 | 2018-08-06 Nathan Sidwell <nathan@acm.org> | |
13671 | ||
13672 | * diagnostic.c (diagnostic_report_current_module): Reroll | |
13673 | included-at loop. Translate text. | |
13674 | ||
13675 | 2018-08-06 David Malcolm <dmalcolm@redhat.com> | |
13676 | ||
13677 | * function-tests.c (selftest::test_expansion_to_rtl): Call | |
13678 | free_after_compilation. | |
13679 | ||
13680 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13681 | ||
13682 | * config/aarch64/aarch64.md: Add clobber highs to tls_desc. | |
13683 | ||
13684 | 2018-08-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
13685 | ||
13686 | * config/s390/s390.c (s390_loop_unroll_adjust): Prevent small | |
13687 | loops with memory block operations from getting unrolled. | |
13688 | ||
13689 | 2018-08-06 Ulrich Weigand <uweigand@de.ibm.com> | |
13690 | ||
13691 | PR target/86807 | |
13692 | * config/spu/spu.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13693 | Define to speculation_safe_value_not_needed. | |
13694 | ||
13695 | 2018-08-06 Jeff Law <law@redhat.com> | |
13696 | ||
13697 | * reload1.c (forget_old_reloads_1): Adjust CLOBBER_HIGH | |
13698 | assert. | |
13699 | ||
13700 | 2018-08-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
13701 | ||
13702 | PR target/86662 | |
13703 | * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array | |
13704 | with all enabled __intN types. | |
13705 | ||
13706 | * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. | |
13707 | ||
13708 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13709 | ||
13710 | * alias.c (record_set): Check for clobber high. | |
13711 | * cfgexpand.c (expand_gimple_stmt): Likewise. | |
13712 | * combine-stack-adj.c (single_set_for_csa): Likewise. | |
13713 | * combine.c (find_single_use_1): Likewise. | |
13714 | (set_nonzero_bits_and_sign_copies): Likewise. | |
13715 | (get_combine_src_dest): Likewise. | |
13716 | (is_parallel_of_n_reg_sets): Likewise. | |
13717 | (try_combine): Likewise. | |
13718 | (record_dead_and_set_regs_1): Likewise. | |
13719 | (reg_dead_at_p_1): Likewise. | |
13720 | (reg_dead_at_p): Likewise. | |
13721 | * dce.c (deletable_insn_p): Likewise. | |
13722 | (mark_nonreg_stores_1): Likewise. | |
13723 | (mark_nonreg_stores_2): Likewise. | |
13724 | * df-scan.c (df_find_hard_reg_defs): Likewise. | |
13725 | (df_uses_record): Likewise. | |
13726 | (df_get_call_refs): Likewise. | |
13727 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
13728 | * haifa-sched.c (haifa_classify_rtx): Likewise. | |
13729 | * ira-build.c (create_insn_allocnos): Likewise. | |
13730 | * ira-costs.c (scan_one_insn): Likewise. | |
13731 | * ira.c (equiv_init_movable_p): Likewise. | |
13732 | (rtx_moveable_p): Likewise. | |
13733 | (interesting_dest_for_shprep): Likewise. | |
13734 | * jump.c (mark_jump_label_1): Likewise. | |
13735 | * postreload-gcse.c (record_opr_changes): Likewise. | |
13736 | * postreload.c (reload_cse_simplify): Likewise. | |
13737 | (struct reg_use): Add source expr. | |
13738 | (reload_combine): Check for clobber high. | |
13739 | (reload_combine_note_use): Likewise. | |
13740 | (reload_cse_move2add): Likewise. | |
13741 | (move2add_note_store): Likewise. | |
13742 | * print-rtl.c (print_pattern): Likewise. | |
13743 | * recog.c (decode_asm_operands): Likewise. | |
13744 | (store_data_bypass_p): Likewise. | |
13745 | (if_test_bypass_p): Likewise. | |
13746 | * regcprop.c (kill_clobbered_value): Likewise. | |
13747 | (kill_set_value): Likewise. | |
13748 | * reginfo.c (reg_scan_mark_refs): Likewise. | |
13749 | * reload1.c (maybe_fix_stack_asms): Likewise. | |
13750 | (eliminate_regs_1): Likewise. | |
13751 | (elimination_effects): Likewise. | |
13752 | (mark_not_eliminable): Likewise. | |
13753 | (scan_paradoxical_subregs): Likewise. | |
13754 | (forget_old_reloads_1): Likewise. | |
13755 | * reorg.c (find_end_label): Likewise. | |
13756 | (try_merge_delay_insns): Likewise. | |
13757 | (redundant_insn): Likewise. | |
13758 | (own_thread_p): Likewise. | |
13759 | (fill_simple_delay_slots): Likewise. | |
13760 | (fill_slots_from_thread): Likewise. | |
13761 | (dbr_schedule): Likewise. | |
13762 | * resource.c (update_live_status): Likewise. | |
13763 | (mark_referenced_resources): Likewise. | |
13764 | (mark_set_resources): Likewise. | |
13765 | * rtl.c (copy_rtx): Likewise. | |
13766 | * rtlanal.c (reg_referenced_p): Likewise. | |
13767 | (single_set_2): Likewise. | |
13768 | (noop_move_p): Likewise. | |
13769 | (note_stores): Likewise. | |
13770 | * sched-deps.c (sched_analyze_reg): Likewise. | |
13771 | (sched_analyze_insn): Likewise. | |
13772 | ||
13773 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13774 | ||
13775 | * cse.c (invalidate_reg): New function extracted from... | |
13776 | (invalidate): ...here. | |
13777 | (canonicalize_insn): Check for clobber high. | |
13778 | (invalidate_from_clobbers): invalidate clobber highs. | |
13779 | (invalidate_from_sets_and_clobbers): Likewise. | |
13780 | (count_reg_usage): Check for clobber high. | |
13781 | (insn_live_p): Likewise. | |
13782 | * cselib.c (cselib_expand_value_rtx_1):Likewise. | |
13783 | (cselib_invalidate_regno): Check for clobber in setter. | |
13784 | (cselib_invalidate_rtx): Pass through setter. | |
13785 | (cselib_invalidate_rtx_note_stores): | |
13786 | (cselib_process_insn): Check for clobber high. | |
13787 | * cselib.h (cselib_invalidate_rtx): Add operand. | |
13788 | ||
13789 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13790 | ||
13791 | * lra-eliminations.c (lra_eliminate_regs_1): Check for clobber high. | |
13792 | (mark_not_eliminable): Likewise. | |
13793 | * lra-int.h (struct lra_insn_reg): Add clobber high marker. | |
13794 | * lra-lives.c (process_bb_lives): Check for clobber high. | |
13795 | * lra.c (new_insn_reg): Remember clobber highs. | |
13796 | (collect_non_operand_hard_regs): Check for clobber high. | |
13797 | (lra_set_insn_recog_data): Likewise. | |
13798 | (add_regs_to_insn_regno_info): Likewise. | |
13799 | (lra_update_insn_regno_info): Likewise. | |
13800 | ||
13801 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13802 | ||
13803 | * rtl.h (reg_is_clobbered_by_clobber_high): Add declarations. | |
13804 | * rtlanal.c (reg_is_clobbered_by_clobber_high): Add function. | |
13805 | ||
13806 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13807 | ||
13808 | * emit-rtl.c (verify_rtx_sharing): Check for CLOBBER_HIGH. | |
13809 | (copy_insn_1): Likewise. | |
13810 | (gen_hard_reg_clobber_high): New gen function. | |
13811 | * genconfig.c (walk_insn_part): Check for CLOBBER_HIGH. | |
13812 | * genemit.c (gen_exp): Likewise. | |
13813 | (gen_emit_seq): Pass through info. | |
13814 | (gen_insn): Check for CLOBBER_HIGH. | |
13815 | (gen_expand): Pass through info. | |
13816 | (gen_split): Likewise. | |
13817 | (output_add_clobbers): Likewise. | |
13818 | * genrecog.c (validate_pattern): Check for CLOBBER_HIGH. | |
13819 | (remove_clobbers): Likewise. | |
13820 | * rtl.h (gen_hard_reg_clobber_high): New declaration. | |
13821 | ||
13822 | 2018-08-06 Alan Hayward <alan.hayward@arm.com> | |
13823 | ||
13824 | * doc/rtl.texi (clobber_high): Add. | |
13825 | (parallel): Add in clobber high | |
13826 | * rtl.c (rtl_check_failed_code3): Add function. | |
13827 | * rtl.def (CLOBBER_HIGH): Add expression. | |
13828 | * rtl.h (RTL_CHECKC3): Add macro. | |
13829 | (rtl_check_failed_code3): Add declaration. | |
13830 | (XC3EXP): Add macro. | |
13831 | ||
13832 | 2018-08-05 H.J. Lu <hongjiu.lu@intel.com> | |
13833 | ||
13834 | PR target/86386 | |
13835 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Set | |
13836 | cfun->machine->max_used_stack_alignment if needed. | |
13837 | ||
13838 | 2018-08-04 Martin Sebor <msebor@redhat.com> | |
13839 | ||
13840 | PR tree-optimization/86571 | |
13841 | * gimple-ssa-sprintf.c (format_floating): Extend upper bound of | |
13842 | NaN output to 4. | |
13843 | ||
13844 | 2018-08-03 Sandra Loosemore <sandra@codesourcery.com> | |
13845 | ||
13846 | PR target/86799 | |
13847 | * config/nios2/nios2.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13848 | Define. | |
13849 | ||
13850 | 2018-08-03 Jeff Law <law@redhat.com> | |
13851 | ||
13852 | PR target/86795 | |
13853 | * config/mn10300/mn10300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13854 | Define to speculation_safe_value_not_needed. | |
13855 | ||
13856 | 2018-08-03 David Malcolm <dmalcolm@redhat.com> | |
13857 | ||
13858 | * doc/gcov.texi (-x): Remove duplicate "to". | |
13859 | * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls". | |
13860 | (-Wif-not-aligned): Remove duplicate "is". | |
13861 | (-flto): Remove duplicate "the". | |
13862 | (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove | |
13863 | duplicate "v5.00.b". | |
13864 | (MSP430 Options): Remove duplicate "and" from the description | |
13865 | of "-mgprel-sec=regexp". | |
13866 | (x86 Options): Remove duplicate copies of "vmldLog102" and | |
13867 | vmlsLog104 from description of "-mveclibabi=type". | |
13868 | ||
13869 | 2018-08-03 Richard Sandiford <richard.sandiford@arm.com> | |
13870 | ||
13871 | * internal-fn.h (first_commutative_argument): Declare. | |
13872 | * internal-fn.c (first_commutative_argument): New function. | |
13873 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove extra | |
13874 | restrictions for pattern statements. Use first_commutative_argument | |
13875 | to look for commutative operands in calls to internal functions. | |
13876 | ||
13877 | 2018-08-03 Aldy Hernandez <aldyh@redhat.com> | |
13878 | ||
13879 | * Makefile.in (wide-int-range.o): New. | |
13880 | * tree-vrp.c: Move all the wide_int_* functions to... | |
13881 | * wide-int-range.cc: ...here. | |
13882 | * tree-vrp.h: Move all the wide_int_* prototypes to... | |
13883 | * wide-int-range.h: ...here. | |
13884 | ||
13885 | 2018-08-03 Tom de Vries <tdevries@suse.de> | |
13886 | ||
13887 | * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return | |
13888 | UI_NONE. | |
13889 | * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define. | |
13890 | * except.c (output_function_exception_table): Do early exit if | |
13891 | targetm_common.except_unwind_info (&global_options) == UI_NONE. | |
13892 | ||
13893 | 2018-08-03 Martin Liska <mliska@suse.cz> | |
13894 | ||
13895 | * predict.c (dump_prediction): Change to 2 digits | |
13896 | in fraction part. | |
13897 | ||
13898 | 2018-08-03 Siddhesh Poyarekar <siddhesh@sourceware.org> | |
13899 | ||
13900 | * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move | |
13901 | neon_dup_q to... | |
13902 | (falkor_am_1_gtov_gtov): ... a new insn reservation. | |
13903 | ||
13904 | 2018-07-19 Ilya Leoshkevich <iii@linux.ibm.com> | |
13905 | ||
13906 | * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=. | |
13907 | * df-problems.c (df_remove_dead_eq_notes): Replace > with >=. | |
13908 | * dwarf2out.c (mem_loc_descriptor): Replace > with >=. | |
13909 | * lra-constraints.c (spill_hard_reg_in_range): Replace <= with <. | |
13910 | * lra-remat.c (call_used_input_regno_present_p): Replace <= with <. | |
13911 | ||
13912 | 2018-08-02 David Malcolm <dmalcolm@redhat.com> | |
13913 | ||
13914 | * diagnostic-show-locus.c (diagnostic_show_locus): Use | |
13915 | pp_take_prefix when saving the existing prefix. | |
13916 | * diagnostic.c (diagnostic_append_note): Likewise. | |
13917 | * langhooks.c (lhd_print_error_function): Likewise. | |
13918 | * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix" | |
13919 | param's type. Free the existing prefix. | |
13920 | (pp_take_prefix): New function. | |
13921 | (pretty_printer::pretty_printer): Drop the prefix parameter. | |
13922 | Rename the length parameter to match the comment. | |
13923 | (pretty_printer::~pretty_printer): Free the prefix. | |
13924 | * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix | |
13925 | parameter. | |
13926 | (struct pretty_printer): Drop the "const" from "prefix" field's | |
13927 | type and clarify memory management. | |
13928 | (pp_set_prefix): Drop the "const" from the 2nd param. | |
13929 | (pp_take_prefix): New decl. | |
13930 | ||
13931 | 2018-08-02 Aaron Sawdey <acsawdey@linux.ibm.com> | |
13932 | ||
13933 | * config/rs6000/rs6000-string.c (select_block_compare_mode): Move test | |
13934 | for word_mode_ok here instead of passing as argument. | |
13935 | (expand_block_compare): Change select_block_compare_mode() call. | |
13936 | (expand_strncmp_gpr_sequence): New function. | |
13937 | (expand_strn_compare): Make use of expand_strncmp_gpr_sequence. | |
13938 | ||
13939 | 2018-08-02 Jeff Law <law@redhat.com> | |
13940 | ||
13941 | PR target/86790 | |
13942 | * config/m68k/m68k.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13943 | Define to speculation_safe_value_not_needed. | |
13944 | ||
13945 | PR target/86784 | |
13946 | * config/h8300/h8300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13947 | Define to speculation_safe_value_not_needed. | |
13948 | ||
13949 | 2018-08-02 Tom de Vries <tdevries@suse.de> | |
13950 | ||
13951 | PR target/86660 | |
13952 | * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New | |
13953 | function. Return UI_TARGET unconditionally. | |
13954 | (TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info. | |
13955 | * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'. | |
13956 | ||
13957 | 2018-08-02 Richard Sandiford <richard.sandiford@arm.com> | |
13958 | ||
13959 | * genemit.c (print_overload_test): Fix typo. | |
13960 | ||
13961 | 2018-08-02 Richard Biener <rguenther@suse.de> | |
13962 | ||
13963 | PR tree-optimization/86816 | |
13964 | * tree-ssa-tail-merge.c (tail_merge_valueize): New function | |
13965 | which checks for value availability before querying it. | |
13966 | (gvn_uses_equal): Use it. | |
13967 | (same_succ_hash): Likewise. | |
13968 | (gimple_equal_p): Likewise. | |
13969 | ||
13970 | 2018-08-02 Nick Clifton <nickc@redhat.com> | |
13971 | ||
13972 | PR target/86813 | |
13973 | * config/stormy16/stormy16.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13974 | Define to speculation_safe_value_not_needed. | |
13975 | ||
13976 | PR target/86810 | |
13977 | * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13978 | Define to speculation_safe_value_not_needed. | |
13979 | ||
13980 | PR target/86810 | |
13981 | * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13982 | Define to speculation_safe_value_not_needed. | |
13983 | ||
13984 | PR target/86803 | |
13985 | * config/rx/rx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13986 | Define to speculation_safe_value_not_needed. | |
13987 | ||
13988 | PR target/86797 | |
13989 | * config/msp430/msp430.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13990 | Define to speculation_safe_value_not_needed. | |
13991 | ||
13992 | PR target/86791 | |
13993 | * config/mcore/mcore.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13994 | Define to speculation_safe_value_not_needed. | |
13995 | ||
13996 | PR target/86789 | |
13997 | * config/m32r/m32r.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13998 | Define to speculation_safe_value_not_needed. | |
13999 | ||
14000 | PR target/86787 | |
14001 | * config/iq2000/iq2000.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
14002 | Define to speculation_safe_value_not_needed. | |
14003 | ||
14004 | PR target/86782 | |
14005 | * config/frv/frv.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to | |
14006 | speculation_safe_value_not_needed. | |
14007 | ||
14008 | PR target/86781 | |
14009 | * config/fr30/fr30.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define | |
14010 | to speculation_safe_value_not_needed. | |
14011 | ||
14012 | 2018-08-02 Richard Sandiford <richard.sandiford@arm.com> | |
14013 | ||
14014 | * doc/md.texi: Expand the documentation of instruction names | |
14015 | to mention port-local uses. Document '@' in pattern names. | |
14016 | * read-md.h (overloaded_instance, overloaded_name): New structs. | |
14017 | (mapping): Declare. | |
14018 | (md_reader::handle_overloaded_name): New member function. | |
14019 | (md_reader::get_overloads): Likewise. | |
14020 | (md_reader::m_first_overload): New member variable. | |
14021 | (md_reader::m_next_overload_ptr): Likewise. | |
14022 | (md_reader::m_overloads_htab): Likewise. | |
14023 | * read-md.c (md_reader::md_reader): Initialize m_first_overload, | |
14024 | m_next_overload_ptr and m_overloads_htab. | |
14025 | * read-rtl.c (iterator_group): Add "type" and "get_c_token" fields. | |
14026 | (get_mode_token, get_code_token, get_int_token): New functions. | |
14027 | (map_attr_string): Add an optional argument that passes back | |
14028 | the associated iterator. | |
14029 | (overloaded_name_hash, overloaded_name_eq_p, named_rtx_p): | |
14030 | (md_reader::handle_overloaded_name, add_overload_instance): New | |
14031 | functions. | |
14032 | (apply_iterators): Handle '@' names. Report an error if '@' | |
14033 | is used without iterators. | |
14034 | (initialize_iterators): Initialize the new iterator_group fields. | |
14035 | * genopinit.c (handle_overloaded_code_for) | |
14036 | (handle_overloaded_gen): New functions. | |
14037 | (main): Use them to print declarations of maybe_code_for_* and | |
14038 | maybe_gen_* functions, and inline definitions of code_for_* and gen_*. | |
14039 | * genemit.c (print_overload_arguments, print_overload_test) | |
14040 | (handle_overloaded_code_for, handle_overloaded_gen): New functions. | |
14041 | (main): Use it to print definitions of maybe_code_for_* and | |
14042 | maybe_gen_* functions. | |
14043 | * config/aarch64/aarch64.c (aarch64_split_128bit_move): Use | |
14044 | gen_aarch64_mov{low,high}_di and gen_aarch64_movdi_{low,high} | |
14045 | instead of explicit mode checks. | |
14046 | (aarch64_split_simd_combine): Likewise gen_aarch64_simd_combine. | |
14047 | (aarch64_split_simd_move): Likewise gen_aarch64_split_simd_mov. | |
14048 | (aarch64_emit_load_exclusive): Likewise gen_aarch64_load_exclusive. | |
14049 | (aarch64_emit_store_exclusive): Likewise gen_aarch64_store_exclusive. | |
14050 | (aarch64_expand_compare_and_swap): Likewise | |
14051 | gen_aarch64_compare_and_swap and gen_aarch64_compare_and_swap_lse | |
14052 | (aarch64_gen_atomic_cas): Likewise gen_aarch64_atomic_cas. | |
14053 | (aarch64_emit_atomic_swap): Likewise gen_aarch64_atomic_swp. | |
14054 | (aarch64_constant_pool_reload_icode): Delete. | |
14055 | (aarch64_secondary_reload): Use code_for_aarch64_reload_movcp | |
14056 | instead of aarch64_constant_pool_reload_icode. Use | |
14057 | code_for_aarch64_reload_mov instead of explicit mode checks. | |
14058 | (rsqrte_type, get_rsqrte_type, rsqrts_type, get_rsqrts_type): Delete. | |
14059 | (aarch64_emit_approx_sqrt): Use gen_aarch64_rsqrte instead of | |
14060 | get_rsqrte_type and gen_aarch64_rsqrts instead of gen_rqrts_type. | |
14061 | (recpe_type, get_recpe_type, recps_type, get_recps_type): Delete. | |
14062 | (aarch64_emit_approx_div): Use gen_aarch64_frecpe instead of | |
14063 | get_recpe_type and gen_aarch64_frecps instead of get_recps_type. | |
14064 | (aarch64_atomic_load_op_code): Delete. | |
14065 | (aarch64_emit_atomic_load_op): Likewise. | |
14066 | (aarch64_gen_atomic_ldop): Use UNSPECV_ATOMIC_* instead of | |
14067 | aarch64_atomic_load_op_code. Use gen_aarch64_atomic_load | |
14068 | instead of aarch64_emit_atomic_load_op. | |
14069 | * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>) | |
14070 | (aarch64_reload_movcp<VALL:mode><P:mode>, aarch64_reload_mov<mode>) | |
14071 | (aarch64_movdi_<mode>low, aarch64_movdi_<mode>high) | |
14072 | (aarch64_mov<mode>high_di, aarch64_mov<mode>low_di): Add a '@' | |
14073 | character before the pattern name. | |
14074 | * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>) | |
14075 | (aarch64_rsqrte<mode>, aarch64_rsqrts<mode>) | |
14076 | (aarch64_simd_combine<mode>, aarch64_frecpe<mode>) | |
14077 | (aarch64_frecps<mode>): Likewise. | |
14078 | * config/aarch64/atomics.md (atomic_compare_and_swap<mode>) | |
14079 | (aarch64_compare_and_swap<mode>, aarch64_compare_and_swap<mode>_lse) | |
14080 | (aarch64_load_exclusive<mode>, aarch64_store_exclusive<mode>) | |
14081 | (aarch64_atomic_swp<mode>, aarch64_atomic_cas<mode>) | |
14082 | (aarch64_atomic_load<atomic_ldop><mode>): Likewise. | |
14083 | ||
14084 | 2018-08-02 Richard Sandiford <richard.sandiford@arm.com> | |
14085 | ||
14086 | * config/aarch64/aarch64.c (aarch64_float_const_representable_p): | |
14087 | Allow HFmode constants if TARGET_FP_F16INST. | |
14088 | ||
14089 | 2018-08-02 Jackson Woodruff <jackson.woodruff@arm.com> | |
14090 | ||
14091 | PR target/86014 | |
14092 | * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): | |
14093 | No longer check last store for clobber of address register. | |
14094 | ||
14095 | 2018-08-02 Martin Liska <mliska@suse.cz> | |
14096 | ||
14097 | PR gcov-profile/86817 | |
14098 | * gcov.c (process_all_functions): New function. | |
14099 | (main): Call it. | |
14100 | (process_file): Move functions processing to | |
14101 | process_all_functions. | |
14102 | ||
14103 | 2018-08-02 David Malcolm <dmalcolm@redhat.com> | |
14104 | ||
14105 | * dumpfile.c (dump_user_location_t::dump_user_location_t): Add | |
14106 | "const" to the "gimple *" and "rtx_insn *" parameters. | |
14107 | * dumpfile.h (dump_user_location_t::dump_user_location_t): | |
14108 | Likewise. | |
14109 | (dump_location_t::dump_location_t): Likewise. | |
14110 | ||
14111 | 2018-08-01 Martin Sebor <msebor@redhat.com> | |
14112 | ||
14113 | PR tree-optimization/86650 | |
14114 | * gimple-pretty-print.c (percent_G_format): Accept a "gimple *" | |
14115 | rather than a "gcall *". Directly pass the data of interest | |
14116 | to percent_K_format, rather than building a temporary CALL_EXPR | |
14117 | to hold it. | |
14118 | * gimple-fold.c (gimple_fold_builtin_strncpy): Adjust. | |
14119 | (gimple_fold_builtin_strncat): Adjust. | |
14120 | * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Replace | |
14121 | gcall* argument with gimple*. | |
14122 | * gimple-ssa-warn-restrict.c (check_call): Same. | |
14123 | (wrestrict_dom_walker::before_dom_children): Same. | |
14124 | (builtin_access::builtin_access): Same. | |
14125 | (check_bounds_or_overlap): Same | |
14126 | (maybe_diag_overlap): Same. | |
14127 | (maybe_diag_offset_bounds): Same. | |
14128 | * tree-diagnostic.c (default_tree_printer): Move usage of | |
14129 | EXPR_LOCATION (t) and TREE_BLOCK (t) from within percent_K_format | |
14130 | to this callsite. | |
14131 | * tree-pretty-print.c (percent_K_format): Add argument. | |
14132 | * tree-pretty-print.h: Add argument. | |
14133 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust. | |
14134 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Adjust. | |
14135 | (maybe_diag_stxncpy_trunc): Same. | |
14136 | (handle_builtin_stxncpy): Same. | |
14137 | (handle_builtin_strcat): Same. | |
14138 | ||
14139 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14140 | ||
14141 | * match.pd: Optimise pointer range checks. | |
14142 | ||
14143 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14144 | ||
14145 | PR tree-optimization/86758 | |
14146 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Don't try | |
14147 | to remove pattern statements. | |
14148 | ||
14149 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14150 | ||
14151 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the | |
14152 | result of dfs_enumerate_from when constructing stmt_vec_infos, | |
14153 | instead of additionally calling get_loop_body. | |
14154 | ||
14155 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14156 | ||
14157 | * tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p | |
14158 | parameter. | |
14159 | * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. | |
14160 | When creating an iv, assert that the step is not known to be zero. | |
14161 | (vect_setup_realignment): Update call accordingly. | |
14162 | * tree-vect-stmts.c (vectorizable_store): Likewise. | |
14163 | (vectorizable_load): Likewise. Handle VMAT_INVARIANT separately. | |
14164 | ||
14165 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14166 | ||
14167 | * tree-vectorizer.h (vect_stmt_to_vectorize): New function. | |
14168 | * tree-vect-loop.c (vect_update_vf_for_slp): Use it. | |
14169 | (vectorizable_reduction): Likewise. | |
14170 | * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. | |
14171 | (vect_detect_hybrid_slp_stmts): Likewise. | |
14172 | * tree-vect-stmts.c (vect_is_simple_use): Likewise. | |
14173 | ||
14174 | 2018-08-01 Aldy Hernandez <aldyh@redhat.com> | |
14175 | ||
14176 | * tree-vrp (zero_nonzero_bits_from_bounds): Rename to... | |
14177 | (wide_int_set_zero_nonzero_bits): ...this. | |
14178 | (zero_nonzero_bits_from_vr): Rename to... | |
14179 | (vrp_set_zero_nonzero_bits): ...this. | |
14180 | (extract_range_from_multiplicative_op_1): Abstract wide int | |
14181 | code... | |
14182 | (wide_int_range_multiplicative_op): ...here. | |
14183 | (extract_range_from_binary_expr_1): Extract wide int binary | |
14184 | operations into their own functions. | |
14185 | (wide_int_range_lshift): New. | |
14186 | (wide_int_range_can_optimize_bit_op): New. | |
14187 | (wide_int_range_shift_undefined_p): New. | |
14188 | (wide_int_range_bit_xor): New. | |
14189 | (wide_int_range_bit_ior): New. | |
14190 | (wide_int_range_bit_and): New. | |
14191 | (wide_int_range_trunc_mod): New. | |
14192 | (extract_range_into_wide_ints): New. | |
14193 | (vrp_shift_undefined_p): New. | |
14194 | (extract_range_from_multiplicative_op): New. | |
14195 | (vrp_can_optimize_bit_op): New. | |
14196 | * tree-vrp.h (value_range::dump): New. | |
14197 | (wide_int_range_multiplicative_op): New. | |
14198 | (wide_int_range_lshift):New. | |
14199 | (wide_int_range_shift_undefined_p): New. | |
14200 | (wide_int_range_bit_xor): New. | |
14201 | (wide_int_range_bit_ior): New. | |
14202 | (wide_int_range_bit_and): New. | |
14203 | (wide_int_range_trunc_mod): New. | |
14204 | (zero_nonzero_bits_from_bounds): Rename to... | |
14205 | (wide_int_set_zero_nonzero_bits): ...this. | |
14206 | (zero_nonzero_bits_from_vr): Rename to... | |
14207 | (vrp_set_zero_nonzero_bits): ...this. | |
14208 | (range_easy_mask_min_max): Rename to... | |
14209 | (wide_int_range_can_optimize_bit_op): this. | |
14210 | * vr-values.c (simplify_bit_ops_using_ranges): Rename | |
14211 | zero_nonzero_bits_from_vr into vrp_set_zero_nonzero_bits. | |
14212 | ||
14213 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14214 | ||
14215 | * tree-vectorizer.h (vect_orig_stmt): New function. | |
14216 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Use it. | |
14217 | * tree-vect-loop.c (vect_model_reduction_cost): Likewise. | |
14218 | (vect_create_epilog_for_reduction): Likewise. | |
14219 | (vectorizable_live_operation): Likewise. | |
14220 | * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. | |
14221 | (vect_detect_hybrid_slp_stmts, vect_schedule_slp): Likewise. | |
14222 | * tree-vect-stmts.c (vectorizable_call): Likewise. | |
14223 | (vectorizable_simd_clone_call, vect_remove_stores): Likewise. | |
14224 | ||
14225 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14226 | ||
14227 | * tree-vectorizer.h (vect_transform_stmt): Remove grouped_store | |
14228 | argument. | |
14229 | * tree-vect-stmts.c (vect_transform_stmt): Likewise. | |
14230 | * tree-vect-loop.c (vect_transform_loop_stmt): Update call accordingly. | |
14231 | (vect_transform_loop): Likewise. | |
14232 | * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. | |
14233 | ||
14234 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14235 | ||
14236 | * tree-vectorizer.h (vect_schedule_slp): Return void. | |
14237 | * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. | |
14238 | (vect_schedule_slp): Likewise. | |
14239 | ||
14240 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14241 | ||
14242 | * tree-vect-loop.c (vect_transform_loop_stmt): Remove slp_scheduled | |
14243 | argument. | |
14244 | (vect_transform_loop): Update calls accordingly. Schedule SLP | |
14245 | instances before the main loop, if any exist. | |
14246 | ||
14247 | 2018-08-01 Richard Sandiford <richard.sandiford@arm.com> | |
14248 | ||
14249 | PR tree-optimization/86749 | |
14250 | * tree-vect-patterns.c (vect_determine_min_output_precision_1): | |
14251 | If the lhs is used in a COND_EXPR, check that it is being used | |
14252 | as the "then" or "else" value. | |
14253 | ||
14254 | 2018-08-01 Tom de Vries <tdevries@suse.de> | |
14255 | ||
14256 | PR target/86800 | |
14257 | * config/nvptx/nvptx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to | |
14258 | speculation_safe_value_not_needed. | |
14259 | ||
14260 | 2018-08-01 Richard Biener <rguenther@suse.de> | |
14261 | ||
14262 | * tree-ssa-sccvn.c (visit_phi): Compare invariant addresses | |
14263 | as base and offset. | |
14264 | ||
14265 | 2018-08-01 Martin Liska <mliska@suse.cz> | |
14266 | ||
14267 | * value-prof.c (gimple_divmod_fixed_value_transform): Unify | |
14268 | format how successful transformation is dumped. | |
14269 | (gimple_mod_pow2_value_transform): Likewise. | |
14270 | (gimple_mod_subtract_transform): Likewise. | |
14271 | (gimple_stringops_transform): Likewise. | |
14272 | ||
14273 | 2018-08-01 Martin Liska <mliska@suse.cz> | |
14274 | ||
14275 | PR value-prof/35543 | |
14276 | * value-prof.c (interesting_stringop_to_profile_p): | |
14277 | Simplify the code and add BUILT_IN_MEMMOVE. | |
14278 | (gimple_stringops_transform): Likewise. | |
14279 | ||
14280 | 2018-08-01 Sam Tebbs <sam.tebbs@arm.com> | |
14281 | ||
14282 | * config/aarch64/aarch64-simd.md | |
14283 | (*aarch64_get_lane_zero_extendsi<mode>): Rename to... | |
14284 | (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): ... This and | |
14285 | use GPI iterator instead of SI mode. | |
14286 | ||
14287 | 2018-08-01 Richard Earnshaw <rearnsha@arm.com> | |
14288 | ||
14289 | * config/rs6000/rs6000.md (speculation_barrier): Renamed from | |
14290 | rs6000_speculation_barrier. | |
14291 | * config/rs6000/rs6000.c (rs6000_expand_builtin): Adjust for | |
14292 | new barrier pattern name. | |
14293 | ||
14294 | 2018-08-01 Richard Earnshaw <rearnsha@arm.com> | |
14295 | ||
14296 | * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. | |
14297 | (speculation_barrier): New insn. | |
14298 | ||
14299 | 2018-08-01 Richard Biener <rguenther@suse.de> | |
14300 | ||
14301 | PR bootstrap/86724 | |
14302 | * graphite.h: Include isl/id.h and isl/space.h to allow build | |
14303 | with ISL 0.20. | |
14304 | ||
14305 | 2018-08-01 Jan Willem Jagersma <jwjagersma@gmail.com> | |
14306 | ||
14307 | PR target/86651 | |
14308 | * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO | |
14309 | mode for COFF targets. | |
14310 | * defaults.h (TARGET_COFF): Define. | |
14311 | * config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END, | |
14312 | TARGET_COFF): Define. | |
14313 | (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare. | |
14314 | * config/i386/djgpp.c (saved_debug_info_level): New static variable. | |
14315 | (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions. | |
14316 | ||
14317 | 2018-07-31 Alexandre Oliva <oliva@adacore.com> | |
14318 | ||
14319 | * gimple-streamer-in.c (input_bb): Restore BB discriminator. | |
14320 | * gimple-streamer-out.c (output_bb): Save it. | |
14321 | * lto-streamer-in.c (input_struct_function_base): Restore | |
14322 | instance discriminator if available. Create map on demand. | |
14323 | * lto-streamer-out.c (output_struct_function_base): Save it if | |
14324 | available. | |
14325 | * final.c (decl_to_instance_map): Document LTO strategy. | |
14326 | ||
14327 | 2018-07-31 Alexandre Oliva <oliva@adacore.com> | |
14328 | Olivier Hainque <hainque@adacore.com> | |
14329 | ||
14330 | * debug.h (decl_to_instance_map_t): New type. | |
14331 | (decl_to_instance_map): Declare. | |
14332 | (maybe_create_decl_to_instance_map): New inline function. | |
14333 | * final.c (bb_discriminator, last_bb_discriminator): New statics, | |
14334 | to track basic block discriminators. | |
14335 | (final_start_function_1): Initialize them. | |
14336 | (final_scan_insn_1): On NOTE_INSN_BASIC_BLOCK, track | |
14337 | bb_discriminator. | |
14338 | (decl_to_instance_map): New variable. | |
14339 | (map_decl_to_instance, maybe_set_discriminator): New functions. | |
14340 | (notice_source_line): Set discriminator. | |
14341 | ||
14342 | 2018-07-31 Ian Lance Taylor <iant@golang.org> | |
14343 | ||
14344 | * targhooks.c (default_have_speculation_safe_value): Add | |
14345 | ATTRIBUTE_UNUSED. | |
14346 | ||
14347 | 2018-07-31 David Malcolm <dmalcolm@redhat.com> | |
14348 | ||
14349 | * dump-context.h: Include "pretty-print.h". | |
14350 | (dump_context::refresh_dumps_are_enabled): New decl. | |
14351 | (dump_context::emit_item): New decl. | |
14352 | (class dump_context): Add fields "m_test_pp" and | |
14353 | "m_test_pp_flags". | |
14354 | (temp_dump_context::temp_dump_context): Add param "test_pp_flags". | |
14355 | (temp_dump_context::get_dumped_text): New decl. | |
14356 | (class temp_dump_context): Add field "m_pp". | |
14357 | * dumpfile.c (refresh_dumps_are_enabled): Convert to... | |
14358 | (dump_context::refresh_dumps_are_enabled): ...and add a test for | |
14359 | m_test_pp. | |
14360 | (set_dump_file): Update for above change. | |
14361 | (set_alt_dump_file): Likewise. | |
14362 | (dump_loc): New overload, taking a pretty_printer *. | |
14363 | (dump_context::dump_loc): Call end_any_optinfo. Dump the location | |
14364 | to any test pretty-printer. | |
14365 | (make_item_for_dump_gimple_stmt): New function, adapted from | |
14366 | optinfo::add_gimple_stmt. | |
14367 | (dump_context::dump_gimple_stmt): Call it, and use the result, | |
14368 | eliminating the direct usage of dump_file and alt_dump_file in | |
14369 | favor of indirectly using them via emit_item. | |
14370 | (make_item_for_dump_gimple_expr): New function, adapted from | |
14371 | optinfo::add_gimple_expr. | |
14372 | (dump_context::dump_gimple_expr): Call it, and use the result, | |
14373 | eliminating the direct usage of dump_file and alt_dump_file in | |
14374 | favor of indirectly using them via emit_item. | |
14375 | (make_item_for_dump_generic_expr): New function, adapted from | |
14376 | optinfo::add_tree. | |
14377 | (dump_context::dump_generic_expr): Call it, and use the result, | |
14378 | eliminating the direct usage of dump_file and alt_dump_file in | |
14379 | favor of indirectly using them via emit_item. | |
14380 | (make_item_for_dump_printf_va): New function, adapted from | |
14381 | optinfo::add_printf_va. | |
14382 | (make_item_for_dump_printf): New function. | |
14383 | (dump_context::dump_printf_va): Call make_item_for_dump_printf_va, | |
14384 | and use the result, eliminating the direct usage of dump_file and | |
14385 | alt_dump_file in favor of indirectly using them via emit_item. | |
14386 | (make_item_for_dump_dec): New function. | |
14387 | (dump_context::dump_dec): Call it, and use the result, | |
14388 | eliminating the direct usage of dump_file and alt_dump_file in | |
14389 | favor of indirectly using them via emit_item. | |
14390 | (make_item_for_dump_symtab_node): New function, adapted from | |
14391 | optinfo::add_symtab_node. | |
14392 | (dump_context::dump_symtab_node): Call it, and use the result, | |
14393 | eliminating the direct usage of dump_file and alt_dump_file in | |
14394 | favor of indirectly using them via emit_item. | |
14395 | (dump_context::begin_scope): Reimplement, avoiding direct usage | |
14396 | of dump_file and alt_dump_file in favor of indirectly using them | |
14397 | via emit_item. | |
14398 | (dump_context::emit_item): New member function. | |
14399 | (temp_dump_context::temp_dump_context): Add param "test_pp_flags". | |
14400 | Set up test pretty-printer on the underlying context. Call | |
14401 | refresh_dumps_are_enabled. | |
14402 | (temp_dump_context::~temp_dump_context): Call | |
14403 | refresh_dumps_are_enabled. | |
14404 | (temp_dump_context::get_dumped_text): New member function. | |
14405 | (selftest::verify_dumped_text): New function. | |
14406 | (ASSERT_DUMPED_TEXT_EQ): New macro. | |
14407 | (selftest::test_capture_of_dump_calls): Run all tests twice, with | |
14408 | and then without optinfo enabled. Add uses of | |
14409 | ASSERT_DUMPED_TEXT_EQ to all tests. Add test of nested scopes. | |
14410 | * dumpfile.h: Update comment for the dump_* API. | |
14411 | * optinfo-emit-json.cc | |
14412 | (selftest::test_building_json_from_dump_calls): Update for new | |
14413 | param for temp_dump_context ctor. | |
14414 | * optinfo.cc (optinfo_item::optinfo_item): Remove "owned" param | |
14415 | and "m_owned" field. | |
14416 | (optinfo_item::~optinfo_item): Likewise. | |
14417 | (optinfo::add_item): New member function. | |
14418 | (optinfo::emit): Update comment. | |
14419 | (optinfo::add_string): Delete. | |
14420 | (optinfo::add_printf): Delete. | |
14421 | (optinfo::add_printf_va): Delete. | |
14422 | (optinfo::add_gimple_stmt): Delete. | |
14423 | (optinfo::add_gimple_expr): Delete. | |
14424 | (optinfo::add_tree): Delete. | |
14425 | (optinfo::add_symtab_node): Delete. | |
14426 | (optinfo::add_dec): Delete. | |
14427 | * optinfo.h (class dump_context): New forward decl. | |
14428 | (optinfo::add_item): New decl. | |
14429 | (optinfo::add_string): Delete. | |
14430 | (optinfo::add_printf): Delete. | |
14431 | (optinfo::add_printf_va): Delete. | |
14432 | (optinfo::add_gimple_stmt): Delete. | |
14433 | (optinfo::add_gimple_expr): Delete. | |
14434 | (optinfo::add_tree): Delete. | |
14435 | (optinfo::add_symtab_node): Delete. | |
14436 | (optinfo::add_dec): Delete. | |
14437 | (optinfo::add_poly_int): Delete. | |
14438 | (optinfo_item::optinfo_item): Remove "owned" param. | |
14439 | (class optinfo_item): Remove field "m_owned". | |
14440 | ||
14441 | 2018-07-31 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
14442 | ||
14443 | PR middle-end/86705 | |
14444 | * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when | |
14445 | MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the | |
14446 | requested variable alignment. | |
14447 | (expand_one_ssa_partition): Likewise. | |
14448 | (expand_one_var): Likewise. | |
14449 | ||
14450 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14451 | ||
14452 | * config/pdp11/pdp11.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine | |
14453 | to speculation_safe_value_not_needed. | |
14454 | ||
14455 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14456 | ||
14457 | * targhooks.h (speculation_safe_value_not_needed): New prototype. | |
14458 | * targhooks.c (speculation_safe_value_not_needed): New function. | |
14459 | * target.def (have_speculation_safe_value): Update documentation. | |
14460 | * doc/tm.texi: Regenerated. | |
14461 | ||
14462 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14463 | ||
14464 | * config/aarch64/iterators.md (ALLI_TI): New iterator. | |
14465 | * config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): New | |
14466 | expand. | |
14467 | (despeculate_copy<ALLI:mode>_insn): New insn. | |
14468 | (despeculate_copyti_insn): New insn. | |
14469 | (despeculate_simple<ALLI:mode>): New insn | |
14470 | (despeculate_simpleti): New insn. | |
14471 | * config/aarch64/aarch64.c (aarch64_speculation_safe_value): New | |
14472 | function. | |
14473 | (TARGET_SPECULATION_SAFE_VALUE): Redefine to | |
14474 | aarch64_speculation_safe_value. | |
14475 | (aarch64_print_operand): Handle const0_rtx in modifier 'H'. | |
14476 | ||
14477 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14478 | ||
14479 | * config/aarch64/aarch64-speculation.cc: New file. | |
14480 | * config/aarch64/aarch64-passes.def (pass_track_speculation): Add | |
14481 | before pass_reorder_blocks. | |
14482 | * config/aarch64/aarch64-protos.h (make_pass_track_speculation): Add | |
14483 | prototype. | |
14484 | * config/aarch64/aarch64.c (aarch64_conditional_register_usage): Fix | |
14485 | X14 and X15 when tracking speculation. | |
14486 | * config/aarch64/aarch64.md (register name constants): Add | |
14487 | SPECULATION_TRACKER_REGNUM and SPECULATION_SCRATCH_REGNUM. | |
14488 | (unspec): Add UNSPEC_SPECULATION_TRACKER. | |
14489 | (speculation_barrier): New insn attribute. | |
14490 | (cmp<mode>): Allow SP in comparisons. | |
14491 | (speculation_tracker): New insn. | |
14492 | (speculation_barrier): Add speculation_barrier attribute. | |
14493 | * config/aarch64/t-aarch64: Add make rule for aarch64-speculation.o. | |
14494 | * config.gcc (aarch64*-*-*): Add aarch64-speculation.o to extra_objs. | |
14495 | * doc/invoke.texi (AArch64 Options): Document -mtrack-speculation. | |
14496 | ||
14497 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14498 | ||
14499 | * config/aarch64/aarch64.md (cb<optab><mode>1): Disable when | |
14500 | aarch64_track_speculation is true. | |
14501 | (tb<optab><mode>1): Likewise. | |
14502 | * config/aarch64/aarch64.c (aarch64_split_compare_regs): Do not | |
14503 | generate CB[N]Z when tracking speculation. | |
14504 | (aarch64_split_compare_and_swap): Likewise. | |
14505 | (aarch64_split_atomic_op): Likewise. | |
14506 | ||
14507 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14508 | ||
14509 | * config/aarch64/aarch64.opt (mtrack-speculation): New target option. | |
14510 | ||
14511 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14512 | ||
14513 | * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER. | |
14514 | (speculation_barrier): New insn. | |
14515 | ||
14516 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14517 | ||
14518 | * config/arm/unspecs.md (unspecv): Add VUNSPEC_SPECULATION_BARRIER. | |
14519 | * config/arm/arm.md (speculation_barrier): New expand. | |
14520 | (speculation_barrier_insn): New pattern. | |
14521 | ||
14522 | 2018-07-31 Richard Earnshaw <rearnsha@arm.com> | |
14523 | ||
14524 | * builtin-types.def (BT_FN_PTR_PTR_VAR): New function type. | |
14525 | (BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise. | |
14526 | (BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise. | |
14527 | * builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute | |
14528 | list. | |
14529 | * builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin. | |
14530 | (BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin. | |
14531 | (BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise. | |
14532 | (BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise. | |
14533 | (BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise. | |
14534 | (BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise. | |
14535 | (BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise. | |
14536 | * builtins.c (expand_speculation_safe_value): New function. | |
14537 | (expand_builtin): Call it. | |
14538 | * doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE. | |
14539 | * doc/extend.texi: Document __builtin_speculation_safe_value. | |
14540 | * doc/md.texi: Document "speculation_barrier" pattern. | |
14541 | * doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and | |
14542 | TARGET_HAVE_SPECULATION_SAFE_VALUE. | |
14543 | * doc/tm.texi: Regenerated. | |
14544 | * target.def (have_speculation_safe_value, speculation_safe_value): New | |
14545 | hooks. | |
14546 | * targhooks.c (default_have_speculation_safe_value): New function. | |
14547 | (default_speculation_safe_value): New function. | |
14548 | * targhooks.h (default_have_speculation_safe_value): Add prototype. | |
14549 | (default_speculation_safe_value): Add prototype. | |
14550 | ||
14551 | 2018-07-31 David Malcolm <dmalcolm@redhat.com> | |
14552 | ||
14553 | * dump-context.h (dump_context::dump_loc): New decl. | |
14554 | * dumpfile.c (dump_context::dump_loc): New member function. | |
14555 | (dump_context::dump_gimple_stmt_loc): Reimplement using dump_loc | |
14556 | and dump_gimple_stmt. | |
14557 | (dump_context::dump_gimple_expr_loc): Likewise, using | |
14558 | dump_gimple_expr. | |
14559 | (dump_context::dump_generic_expr_loc): Likewise, using | |
14560 | dump_generic_expr. | |
14561 | (dump_context::dump_printf_loc_va): Likewise, using | |
14562 | dump_printf_va. | |
14563 | (dump_context::begin_scope): Explicitly using the global function | |
14564 | "dump_loc", rather than the member function. | |
14565 | ||
14566 | 2018-07-31 Martin Sebor <msebor@redhat.com> | |
14567 | ||
14568 | PR tree-optimization/86741 | |
14569 | * tree-vrp.c (vrp_prop::check_mem_ref): Avoid incomplete types. | |
14570 | ||
14571 | 2018-07-31 Andreas Krebbel <krebbel@linux.ibm.com> | |
14572 | ||
14573 | * config/s390/s390.c (s390_expand_setmem): Make the unrolling to | |
14574 | depend on whether prefetch instructions will be emitted or not. | |
14575 | Use TARGET_SETMEM_PFD for checking whether prefetch instructions | |
14576 | will be emitted or not. | |
14577 | * config/s390/s390.h (TARGET_SETMEM_PREFETCH_DISTANCE) | |
14578 | (TARGET_SETMEM_PFD): New macros. | |
14579 | ||
14580 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14581 | ||
14582 | * tree-vectorizer.h (stmt_vec_info): Turn back into a typedef. | |
14583 | (NULL_STMT_VEC_INFO): Delete. | |
14584 | (stmt_vec_info::operator*): Likewise. | |
14585 | (stmt_vec_info::operator gimple *): Likewise. | |
14586 | * tree-vect-loop.c (vectorizable_reduction): Use NULL instead | |
14587 | of NULL_STMT_VEC_INFO. | |
14588 | * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. | |
14589 | (vect_reassociating_reduction_p): Likewise. | |
14590 | * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. | |
14591 | (vectorizable_store): Likewise. | |
14592 | * tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise. | |
14593 | (vec_info::free_stmt_vec_infos): Likewise. | |
14594 | ||
14595 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14596 | ||
14597 | * tree-vectorizer.h (vect_stmt_in_region_p): Delete. | |
14598 | * tree-vectorizer.c (vect_stmt_in_region_p): Likewise. | |
14599 | ||
14600 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14601 | ||
14602 | * tree-vectorizer.h (vec_info::new_vinfo_for_stmt) | |
14603 | (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) | |
14604 | (vec_info::free_stmt_vec_info): New private member functions. | |
14605 | (set_stmt_vec_info_vec, free_stmt_vec_infos, vinfo_for_stmt) | |
14606 | (set_vinfo_for_stmt, new_stmt_vec_info, free_stmt_vec_info): Delete. | |
14607 | * tree-parloops.c (gather_scalar_reductions): Remove calls to | |
14608 | set_stmt_vec_info_vec and free_stmt_vec_infos. | |
14609 | * tree-vect-loop.c (_loop_vec_info): Remove call to | |
14610 | set_stmt_vec_info_vec. | |
14611 | * tree-vect-stmts.c (new_stmt_vec_info, set_stmt_vec_info_vec) | |
14612 | (free_stmt_vec_infos, free_stmt_vec_info): Delete in favor of... | |
14613 | * tree-vectorizer.c (vec_info::new_stmt_vec_info) | |
14614 | (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) | |
14615 | (vec_info::free_stmt_vec_info): ...these new functions. Remove | |
14616 | assignments in {vec_info::,}new_stmt_vec_info that are redundant | |
14617 | with the clearing in the xcalloc. | |
14618 | (stmt_vec_info_vec): Delete. | |
14619 | (vec_info::vec_info): Don't call set_stmt_vec_info_vec. | |
14620 | (vectorize_loops): Likewise. | |
14621 | (vec_info::~vec_info): Remove argument from call to | |
14622 | free_stmt_vec_infos. | |
14623 | (vec_info::add_stmt): Remove vinfo argument from call to | |
14624 | new_stmt_vec_info. | |
14625 | ||
14626 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14627 | ||
14628 | * tree-vectorizer.h (free_stmt_vec_info): Take a stmt_vec_info | |
14629 | rather than a gimple stmt. | |
14630 | * tree-vect-stmts.c (free_stmt_vec_info): Likewise. Don't free | |
14631 | information for pattern statements when passed the original | |
14632 | statement; instead wait to be passed the pattern statement itself. | |
14633 | Don't call set_vinfo_for_stmt here. | |
14634 | (free_stmt_vec_infos): Update call to free_stmt_vec_info. | |
14635 | * tree-vect-loop.c (_loop_vec_info::~loop_vec_info): Don't free | |
14636 | stmt_vec_infos here. | |
14637 | * tree-vect-slp.c (_bb_vec_info::~bb_vec_info): Likewise. | |
14638 | * tree-vectorizer.c (vec_info::remove_stmt): Nullify the statement's | |
14639 | stmt_vec_infos entry. | |
14640 | ||
14641 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14642 | ||
14643 | * tree-vectorizer.h (vec_info::replace_stmt): Declare. | |
14644 | * tree-vectorizer.c (vec_info::replace_stmt): New function. | |
14645 | * tree-vect-slp.c (vect_remove_slp_scalar_calls): Use it. | |
14646 | * tree-vect-stmts.c (vectorizable_call): Likewise. | |
14647 | (vectorizable_simd_clone_call): Likewise. | |
14648 | ||
14649 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14650 | ||
14651 | * tree-vectorizer.h (vec_info::remove_stmt): Declare. | |
14652 | * tree-vectorizer.c (vec_info::remove_stmt): New function. | |
14653 | * tree-vect-loop-manip.c (vect_set_loop_condition): Use it. | |
14654 | * tree-vect-loop.c (vect_transform_loop): Likewise. | |
14655 | * tree-vect-slp.c (vect_schedule_slp): Likewise. | |
14656 | * tree-vect-stmts.c (vect_remove_stores): Likewise. | |
14657 | ||
14658 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14659 | ||
14660 | * tree-vectorizer.h (vec_info::lookup_dr): New member function. | |
14661 | (vect_dr_stmt): Delete. | |
14662 | * tree-vectorizer.c (vec_info::lookup_dr): New function. | |
14663 | * tree-vect-loop-manip.c (vect_update_inits_of_drs): Use it instead | |
14664 | of DR_VECT_AUX. | |
14665 | * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) | |
14666 | (vect_analyze_data_ref_dependence, vect_record_base_alignments) | |
14667 | (vect_verify_datarefs_alignment, vect_peeling_supportable) | |
14668 | (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) | |
14669 | (vect_analyze_data_refs): Likewise. | |
14670 | (vect_slp_analyze_data_ref_dependence): Likewise. Take a vec_info | |
14671 | argument. | |
14672 | (vect_find_same_alignment_drs): Likewise. | |
14673 | (vect_slp_analyze_node_dependences): Update calls accordingly. | |
14674 | (vect_analyze_data_refs_alignment): Likewise. Use vec_info::lookup_dr | |
14675 | instead of DR_VECT_AUX. | |
14676 | (vect_get_peeling_costs_all_drs): Take a loop_vec_info instead | |
14677 | of a vector data references. Use vec_info::lookup_dr instead of | |
14678 | DR_VECT_AUX. | |
14679 | (vect_peeling_hash_get_lowest_cost): Update calls accordingly. | |
14680 | (vect_enhance_data_refs_alignment): Likewise. Use vec_info::lookup_dr | |
14681 | instead of DR_VECT_AUX. | |
14682 | ||
14683 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14684 | ||
14685 | * tree-vectorizer.h (_loop_vec_info::unaligned_dr): Change to | |
14686 | dr_vec_info. | |
14687 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update | |
14688 | accordingly. | |
14689 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
14690 | * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. | |
14691 | (vect_gen_prolog_loop_niters): Likewise. | |
14692 | ||
14693 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14694 | ||
14695 | * tree-vectorizer.h (set_dr_misalignment, dr_misalignment) | |
14696 | (DR_TARGET_ALIGNMENT, aligned_access_p, known_alignment_for_access_p) | |
14697 | (vect_known_alignment_in_bytes, vect_dr_behavior) | |
14698 | (vect_get_scalar_dr_size): Take references as dr_vec_infos | |
14699 | instead of data_references. Update calls to other routines for | |
14700 | which the same change has been made. | |
14701 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Take | |
14702 | dr_vec_infos instead of stmt_vec_infos. | |
14703 | (vect_analyze_data_ref_dependence): Update call accordingly. | |
14704 | (vect_slp_analyze_data_ref_dependence) | |
14705 | (vect_record_base_alignments): Use DR_VECT_AUX. | |
14706 | (vect_calculate_target_alignment, vect_compute_data_ref_alignment) | |
14707 | (vect_update_misalignment_for_peel, verify_data_ref_alignment) | |
14708 | (vector_alignment_reachable_p, vect_get_data_access_cost) | |
14709 | (vect_peeling_supportable, vect_analyze_group_access_1) | |
14710 | (vect_analyze_group_access, vect_analyze_data_ref_access) | |
14711 | (vect_vfa_segment_size, vect_vfa_access_size, vect_vfa_align) | |
14712 | (vect_compile_time_alias, vect_small_gap_p) | |
14713 | (vectorizable_with_step_bound_p, vect_duplicate_ssa_name_ptr_info): | |
14714 | (vect_supportable_dr_alignment): Take references as dr_vec_infos | |
14715 | instead of data_references. Update calls to other routines for | |
14716 | which the same change has been made. | |
14717 | (vect_verify_datarefs_alignment, vect_get_peeling_costs_all_drs) | |
14718 | (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) | |
14719 | (vect_slp_analyze_and_verify_node_alignment) | |
14720 | (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) | |
14721 | (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) | |
14722 | (vect_setup_realignment): Use dr_vec_infos. Update calls after | |
14723 | above changes. | |
14724 | (_vect_peel_info::dr): Replace with... | |
14725 | (_vect_peel_info::dr_info): ...this new field. | |
14726 | (vect_peeling_hash_get_most_frequent) | |
14727 | (vect_peeling_hash_choose_best_peeling): Update accordingly. | |
14728 | (vect_peeling_hash_get_lowest_cost): | |
14729 | (vect_enhance_data_refs_alignment): Likewise. Update calls to other | |
14730 | routines for which the same change has been made. | |
14731 | (vect_peeling_hash_insert): Likewise. Take a dr_vec_info instead of a | |
14732 | data_reference. | |
14733 | * tree-vect-loop-manip.c (get_misalign_in_elems) | |
14734 | (vect_gen_prolog_loop_niters): Use dr_vec_infos. Update calls after | |
14735 | above changes. | |
14736 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
14737 | * tree-vect-stmts.c (vect_get_store_cost, vect_get_load_cost) | |
14738 | (vect_truncate_gather_scatter_offset, compare_step_with_zero) | |
14739 | (get_group_load_store_type, get_negative_load_store_type) | |
14740 | (vect_get_data_ptr_increment, vectorizable_store) | |
14741 | (vectorizable_load): Likewise. | |
14742 | (ensure_base_align): Take a dr_vec_info instead of a data_reference. | |
14743 | Update calls to other routines for which the same change has been made. | |
14744 | ||
14745 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14746 | ||
14747 | * tree-vectorizer.h (vec_info::move_dr): New member function. | |
14748 | (dataref_aux): Rename to... | |
14749 | (dr_vec_info): ...this and add "dr" and "stmt" fields. | |
14750 | (_stmt_vec_info::dr_aux): Update accordingly. | |
14751 | (_stmt_vec_info::data_ref_info): Delete. | |
14752 | (STMT_VINFO_GROUPED_ACCESS, DR_GROUP_FIRST_ELEMENT) | |
14753 | (DR_GROUP_NEXT_ELEMENT, DR_GROUP_SIZE, DR_GROUP_STORE_COUNT) | |
14754 | (DR_GROUP_GAP, DR_GROUP_SAME_DR_STMT, REDUC_GROUP_FIRST_ELEMENT): | |
14755 | (REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Use dr_aux.dr instead | |
14756 | of data_ref. | |
14757 | (STMT_VINFO_DATA_REF): Likewise. Turn into an lvalue. | |
14758 | (STMT_VINFO_DR_INFO): New macro. | |
14759 | (DR_VECT_AUX): Use STMT_VINFO_DR_INKFO and vect_dr_stmt. | |
14760 | (set_dr_misalignment): Update after rename of dataref_aux. | |
14761 | (vect_dr_stmt): Move earlier in file. Return dr_aux.stmt. | |
14762 | * tree-vect-stmts.c (new_stmt_vec_info): Remove redundant | |
14763 | initialization of STMT_VINFO_DATA_REF. | |
14764 | * tree-vectorizer.c (vec_info::move_dr): New function. | |
14765 | * tree-vect-patterns.c (vect_recog_bool_pattern) | |
14766 | (vect_recog_mask_conversion_pattern) | |
14767 | (vect_recog_gather_scatter_pattern): Use it. | |
14768 | * tree-vect-data-refs.c (vect_analyze_data_refs): Initialize | |
14769 | the "dr" and "stmt" fields of dr_vec_info instead of | |
14770 | STMT_VINFO_DATA_REF. | |
14771 | ||
14772 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14773 | ||
14774 | * tree-vectorizer.h (_stmt_vec_info::pattern_stmt_p): New field. | |
14775 | (is_pattern_stmt_p): Use it. | |
14776 | * tree-vect-patterns.c (vect_init_pattern_stmt): Set pattern_stmt_p | |
14777 | on pattern statements. | |
14778 | ||
14779 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14780 | ||
14781 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Take the | |
14782 | original stmt as a stmt_vec_info rather than a gimple stmt. | |
14783 | (vect_pattern_recog_1): Take the statement directly as a | |
14784 | stmt_vec_info, rather than via a gimple_stmt_iterator. | |
14785 | Update call to vect_mark_pattern_stmts. | |
14786 | (vect_pattern_recog): Update calls accordingly. | |
14787 | ||
14788 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14789 | ||
14790 | * tree-vectorizer.h (vect_get_vec_defs_for_stmt_copy) | |
14791 | (vect_get_vec_def_for_stmt_copy): Take a vec_info rather than | |
14792 | a vect_def_type for the first argument. | |
14793 | * tree-vect-stmts.c (vect_get_vec_defs_for_stmt_copy): Likewise. | |
14794 | (vect_get_vec_def_for_stmt_copy): Likewise. Return the original | |
14795 | operand if it isn't defined by a vectorized statement. | |
14796 | (vect_build_gather_load_calls): Remove the mask_dt argument and | |
14797 | update calls to vect_get_vec_def_for_stmt_copy. | |
14798 | (vectorizable_bswap): Likewise the dt argument. | |
14799 | (vectorizable_call): Update calls to vectorizable_bswap and | |
14800 | vect_get_vec_def_for_stmt_copy. | |
14801 | (vectorizable_simd_clone_call, vectorizable_assignment) | |
14802 | (vectorizable_shift, vectorizable_operation, vectorizable_condition) | |
14803 | (vectorizable_comparison): Update calls to | |
14804 | vect_get_vec_def_for_stmt_copy. | |
14805 | (vectorizable_store): Likewise. Remove now-unnecessary calls to | |
14806 | vect_is_simple_use. | |
14807 | (vect_get_loop_based_defs): Remove dt argument and update call | |
14808 | to vect_get_vec_def_for_stmt_copy. | |
14809 | (vectorizable_conversion): Update calls to vect_get_loop_based_defs | |
14810 | and vect_get_vec_def_for_stmt_copy. | |
14811 | (vectorizable_load): Update calls to vect_build_gather_load_calls | |
14812 | and vect_get_vec_def_for_stmt_copy. | |
14813 | * tree-vect-loop.c (vect_create_epilog_for_reduction) | |
14814 | (vectorizable_reduction, vectorizable_live_operation): Update calls | |
14815 | to vect_get_vec_def_for_stmt_copy. | |
14816 | ||
14817 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14818 | ||
14819 | * tree-vect-data-refs.c (vect_record_base_alignment): Replace vec_info | |
14820 | and gimple stmt arguments with a stmt_vec_info. | |
14821 | (vect_record_base_alignments): Update calls accordingly. | |
14822 | * tree-vect-slp.c (vect_record_max_nunits): Replace vec_info | |
14823 | and gimple stmt arguments with a stmt_vec_info. | |
14824 | (vect_build_slp_tree_1): Remove vinfo argument and update call | |
14825 | to vect_record_max_nunits. | |
14826 | (vect_build_slp_tree_2): Update calls to vect_build_slp_tree_1 | |
14827 | and vect_record_max_nunits. | |
14828 | ||
14829 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14830 | ||
14831 | * tree-vectorizer.h (nested_in_vect_loop_p): Move further down | |
14832 | file and take a stmt_vec_info instead of a gimple stmt. | |
14833 | (supportable_widening_operation, vect_finish_replace_stmt) | |
14834 | (vect_finish_stmt_generation, vect_get_store_rhs) | |
14835 | (vect_get_vec_def_for_operand_1, vect_get_vec_def_for_operand) | |
14836 | (vect_get_vec_defs, vect_init_vector, vect_transform_stmt) | |
14837 | (vect_remove_stores, vect_analyze_stmt, vectorizable_condition) | |
14838 | (vect_get_smallest_scalar_type, vect_check_gather_scatter) | |
14839 | (vect_create_data_ref_ptr, bump_vector_ptr) | |
14840 | (vect_permute_store_chain, vect_setup_realignment) | |
14841 | (vect_transform_grouped_load, vect_record_grouped_load_vectors) | |
14842 | (vect_create_addr_base_for_vector_ref, vectorizable_live_operation) | |
14843 | (vectorizable_reduction, vectorizable_induction) | |
14844 | (get_initial_def_for_reduction, is_simple_and_all_uses_invariant) | |
14845 | (vect_get_place_in_interleaving_chain): Take stmt_vec_infos rather | |
14846 | than gimple stmts as arguments. | |
14847 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type) | |
14848 | (vect_preserves_scalar_order_p, vect_slp_analyze_node_dependences) | |
14849 | (can_group_stmts_p, vect_check_gather_scatter) | |
14850 | (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) | |
14851 | (bump_vector_ptr, vect_permute_store_chain, vect_setup_realignment) | |
14852 | (vect_permute_load_chain, vect_shift_permute_load_chain) | |
14853 | (vect_transform_grouped_load) | |
14854 | (vect_record_grouped_load_vectors): Likewise. | |
14855 | * tree-vect-loop.c (vect_fixup_reduc_chain) | |
14856 | (get_initial_def_for_reduction, vect_create_epilog_for_reduction) | |
14857 | (vectorize_fold_left_reduction, is_nonwrapping_integer_induction) | |
14858 | (vectorizable_reduction, vectorizable_induction) | |
14859 | (vectorizable_live_operation, vect_loop_kill_debug_uses): Likewise. | |
14860 | * tree-vect-patterns.c (type_conversion_p, adjust_bool_stmts) | |
14861 | (vect_get_load_store_mask): Likewise. | |
14862 | * tree-vect-slp.c (vect_get_place_in_interleaving_chain) | |
14863 | (vect_analyze_slp_instance, vect_mask_constant_operand_p): Likewise. | |
14864 | * tree-vect-stmts.c (vect_mark_relevant) | |
14865 | (is_simple_and_all_uses_invariant) | |
14866 | (exist_non_indexing_operands_for_use_p, process_use) | |
14867 | (vect_init_vector_1, vect_init_vector, vect_get_vec_def_for_operand_1) | |
14868 | (vect_get_vec_def_for_operand, vect_get_vec_defs) | |
14869 | (vect_finish_stmt_generation_1, vect_finish_replace_stmt) | |
14870 | (vect_finish_stmt_generation, vect_truncate_gather_scatter_offset) | |
14871 | (compare_step_with_zero, vect_get_store_rhs, get_group_load_store_type) | |
14872 | (get_negative_load_store_type, get_load_store_type) | |
14873 | (vect_check_load_store_mask, vect_check_store_rhs) | |
14874 | (vect_build_gather_load_calls, vect_get_strided_load_store_ops) | |
14875 | (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) | |
14876 | (vect_create_vectorized_demotion_stmts, vectorizable_conversion) | |
14877 | (vectorizable_assignment, vectorizable_shift, vectorizable_operation) | |
14878 | (get_group_alias_ptr_type, vectorizable_store, hoist_defs_of_uses) | |
14879 | (vectorizable_load, vectorizable_condition, vectorizable_comparison) | |
14880 | (vect_analyze_stmt, vect_transform_stmt, vect_remove_stores) | |
14881 | (supportable_widening_operation): Likewise. | |
14882 | ||
14883 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14884 | ||
14885 | * tree-vect-data-refs.c (vect_describe_gather_scatter_call): Take | |
14886 | a stmt_vec_info instead of a gcall. | |
14887 | (vect_check_gather_scatter): Update call accordingly. | |
14888 | * tree-vect-loop-manip.c (iv_phi_p): Take a stmt_vec_info instead | |
14889 | of a gphi. | |
14890 | (vect_can_advance_ivs_p, vect_update_ivs_after_vectorizer) | |
14891 | (slpeel_update_phi_nodes_for_loops):): Update calls accordingly. | |
14892 | * tree-vect-loop.c (vect_transform_loop_stmt): Take a stmt_vec_info | |
14893 | instead of a gimple stmt. | |
14894 | (vect_transform_loop): Update calls accordingly. | |
14895 | * tree-vect-slp.c (vect_split_slp_store_group): Take and return | |
14896 | stmt_vec_infos instead of gimple stmts. | |
14897 | (vect_analyze_slp_instance): Update use accordingly. | |
14898 | * tree-vect-stmts.c (read_vector_array, write_vector_array) | |
14899 | (vect_clobber_variable, vect_stmt_relevant_p, permute_vec_elements) | |
14900 | (vect_use_strided_gather_scatters_p, vect_build_all_ones_mask) | |
14901 | (vect_build_zero_merge_argument, vect_get_gather_scatter_ops) | |
14902 | (vect_gen_widened_results_half, vect_get_loop_based_defs) | |
14903 | (vect_create_vectorized_promotion_stmts, can_vectorize_live_stmts): | |
14904 | Take a stmt_vec_info instead of a gimple stmt and pass stmt_vec_infos | |
14905 | down to subroutines. | |
14906 | ||
14907 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14908 | ||
14909 | * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Change the type | |
14910 | of the worklist from a vector of gimple stmts to a vector of | |
14911 | stmt_vec_infos. | |
14912 | * tree-vect-stmts.c (vect_mark_relevant, process_use) | |
14913 | (vect_mark_stmts_to_be_vectorized): Likewise | |
14914 | ||
14915 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14916 | ||
14917 | * tree-vect-loop.c (vect_analyze_loop_operations): Look up the | |
14918 | statement before passing it to vect_analyze_stmt. | |
14919 | (vect_create_epilog_for_reduction): Use a stmt_vec_info to walk | |
14920 | the chain of phi vector definitions. Track the exit phi via its | |
14921 | stmt_vec_info. | |
14922 | (vectorizable_reduction): Set cond_stmt_vinfo directly from the | |
14923 | STMT_VINFO_REDUC_DEF. | |
14924 | * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Use | |
14925 | stmt_vec_infos to handle the statement chains. | |
14926 | (vect_get_slp_defs): Record the first statement in the node | |
14927 | using a stmt_vec_info. | |
14928 | * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Look up | |
14929 | statements here and pass their stmt_vec_info down to subroutines. | |
14930 | (vect_init_vector_1): Hoist call to vinfo_for_stmt and pass it | |
14931 | down to vect_finish_stmt_generation. | |
14932 | (vect_init_vector, vect_get_vec_defs, vect_finish_replace_stmt) | |
14933 | (vect_finish_stmt_generation): Call vinfo_for_stmt and pass | |
14934 | stmt_vec_infos to subroutines. | |
14935 | (vect_remove_stores): Use stmt_vec_infos to handle the statement | |
14936 | chains. | |
14937 | ||
14938 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14939 | ||
14940 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): | |
14941 | (vect_check_gather_scatter, vect_create_data_ref_ptr, bump_vector_ptr) | |
14942 | (vect_permute_store_chain, vect_setup_realignment) | |
14943 | (vect_permute_load_chain, vect_shift_permute_load_chain) | |
14944 | (vect_transform_grouped_load): Use stmt_vec_info rather than gimple | |
14945 | stmts internally, and when passing values to other vectorizer routines. | |
14946 | * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. | |
14947 | * tree-vect-loop.c (vect_analyze_scalar_cycles_1) | |
14948 | (vect_analyze_loop_operations, get_initial_def_for_reduction) | |
14949 | (vect_create_epilog_for_reduction, vectorize_fold_left_reduction) | |
14950 | (vectorizable_reduction, vectorizable_induction) | |
14951 | (vectorizable_live_operation, vect_transform_loop_stmt) | |
14952 | (vect_transform_loop): Likewise. | |
14953 | * tree-vect-patterns.c (vect_reassociating_reduction_p) | |
14954 | (vect_recog_widen_op_pattern, vect_recog_mixed_size_cond_pattern) | |
14955 | (vect_recog_bool_pattern, vect_recog_gather_scatter_pattern): Likewise. | |
14956 | * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. | |
14957 | (vect_slp_analyze_node_operations_1): Likewise. | |
14958 | * tree-vect-stmts.c (vect_mark_relevant, process_use) | |
14959 | (exist_non_indexing_operands_for_use_p, vect_init_vector_1) | |
14960 | (vect_mark_stmts_to_be_vectorized, vect_get_vec_def_for_operand) | |
14961 | (vect_finish_stmt_generation_1, get_group_load_store_type) | |
14962 | (get_load_store_type, vect_build_gather_load_calls) | |
14963 | (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) | |
14964 | (vect_create_vectorized_demotion_stmts, vectorizable_conversion) | |
14965 | (vectorizable_assignment, vectorizable_shift, vectorizable_operation) | |
14966 | (vectorizable_store, vectorizable_load, vectorizable_condition) | |
14967 | (vectorizable_comparison, vect_analyze_stmt, vect_transform_stmt) | |
14968 | (supportable_widening_operation): Likewise. | |
14969 | (vect_get_vector_types_for_stmt): Likewise. | |
14970 | * tree-vectorizer.h (vect_dr_behavior): Likewise. | |
14971 | ||
14972 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14973 | ||
14974 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) | |
14975 | (vect_slp_analyze_node_dependences, vect_analyze_data_ref_accesses) | |
14976 | (vect_permute_store_chain, vect_permute_load_chain) | |
14977 | (vect_shift_permute_load_chain, vect_transform_grouped_load): Avoid | |
14978 | repeated stmt_vec_info lookups. | |
14979 | * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. | |
14980 | (vect_update_ivs_after_vectorizer): Likewise. | |
14981 | * tree-vect-loop.c (vect_is_simple_reduction): Likewise. | |
14982 | (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. | |
14983 | * tree-vect-patterns.c (adjust_bool_stmts): Likewise. | |
14984 | * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. | |
14985 | (vect_bb_slp_scalar_cost): Likewise. | |
14986 | * tree-vect-stmts.c (get_group_alias_ptr_type): Likewise. | |
14987 | ||
14988 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
14989 | ||
14990 | * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the | |
14991 | gcall rather than the generic gimple stmt to gimple_call_internal_fn. | |
14992 | (vect_get_smallest_scalar_type, can_group_stmts_p): Use dyn_cast | |
14993 | to get gassigns and gcalls, rather than operating on generc gimple | |
14994 | stmts. | |
14995 | * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p) | |
14996 | (vect_mark_stmts_to_be_vectorized, vectorizable_store) | |
14997 | (vectorizable_load, vect_analyze_stmt): Likewise. | |
14998 | * tree-vect-loop.c (vectorizable_reduction): Likewise gphi. | |
14999 | ||
15000 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15001 | ||
15002 | * tree-vectorizer.h (get_earlier_stmt, get_later_stmt): Take and | |
15003 | return stmt_vec_infos rather than gimple stmts. Do not accept | |
15004 | null arguments. | |
15005 | (vect_find_last_scalar_stmt_in_slp): Return a stmt_vec_info instead | |
15006 | of a gimple stmt. | |
15007 | * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. | |
15008 | Update use of get_later_stmt. | |
15009 | (vect_get_constant_vectors): Update call accordingly. | |
15010 | (vect_schedule_slp_instance): Likewise | |
15011 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Likewise. | |
15012 | (vect_slp_analyze_instance_dependence): Likewise. | |
15013 | (vect_preserves_scalar_order_p): Update use of get_earlier_stmt. | |
15014 | ||
15015 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15016 | ||
15017 | * tree-vectorizer.h (stmt_info_for_cost::stmt): Replace with... | |
15018 | (stmt_info_for_cost::stmt_info): ...this new field. | |
15019 | (add_stmt_costs): Update accordingly. | |
15020 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) | |
15021 | (vect_get_known_peeling_cost): Likewise. | |
15022 | (vect_estimate_min_profitable_iters): Likewise. | |
15023 | * tree-vect-stmts.c (record_stmt_cost): Likewise. | |
15024 | ||
15025 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15026 | ||
15027 | * tree-vectorizer.h (_loop_vec_info::may_misalign_stmts): Change | |
15028 | from an auto_vec<gimple *> to an auto_vec<stmt_vec_info>. | |
15029 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update | |
15030 | accordingly. | |
15031 | * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. | |
15032 | ||
15033 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15034 | ||
15035 | * tree-vectorizer.h (_stmt_vec_info::same_dr_stmt): Change from | |
15036 | a gimple stmt to a stmt_vec_info. | |
15037 | * tree-vect-stmts.c (vectorizable_load): Update accordingly. | |
15038 | ||
15039 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15040 | ||
15041 | * tree-vectorizer.h (vec_info::grouped_stores): Change from | |
15042 | an auto_vec<gimple *> to an auto_vec<stmt_vec_info>. | |
15043 | (_loop_vec_info::reduction_chains): Likewise. | |
15044 | * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Update | |
15045 | accordingly. | |
15046 | * tree-vect-slp.c (vect_analyze_slp): Likewise. | |
15047 | ||
15048 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15049 | ||
15050 | * tree-vectorizer.h (_stmt_vec_info::first_element): Change from | |
15051 | a gimple stmt to a stmt_vec_info. | |
15052 | (_stmt_vec_info::next_element): Likewise. | |
15053 | * tree-vect-data-refs.c (vect_update_misalignment_for_peel) | |
15054 | (vect_slp_analyze_and_verify_node_alignment) | |
15055 | (vect_analyze_group_access_1, vect_analyze_group_access) | |
15056 | (vect_small_gap_p, vect_prune_runtime_alias_test_list) | |
15057 | (vect_create_data_ref_ptr, vect_record_grouped_load_vectors) | |
15058 | (vect_supportable_dr_alignment): Update accordingly. | |
15059 | * tree-vect-loop.c (vect_fixup_reduc_chain): Likewise. | |
15060 | (vect_fixup_scalar_cycles_with_patterns, vect_is_slp_reduction) | |
15061 | (vect_is_simple_reduction, vectorizable_reduction): Likewise. | |
15062 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. | |
15063 | * tree-vect-slp.c (vect_build_slp_tree_1) | |
15064 | (vect_attempt_slp_rearrange_stmts, vect_supported_load_permutation_p) | |
15065 | (vect_split_slp_store_group, vect_analyze_slp_instance) | |
15066 | (vect_analyze_slp, vect_transform_slp_perm_load): Likewise. | |
15067 | * tree-vect-stmts.c (vect_model_store_cost, vect_model_load_cost) | |
15068 | (get_group_load_store_type, get_load_store_type) | |
15069 | (get_group_alias_ptr_type, vectorizable_store, vectorizable_load) | |
15070 | (vect_transform_stmt, vect_remove_stores): Likewise. | |
15071 | ||
15072 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15073 | ||
15074 | * tree-vectorizer.h (vect_dr_stmt): Return a stmt_vec_info rather | |
15075 | than a gimple stmt. | |
15076 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) | |
15077 | (vect_slp_analyze_data_ref_dependence, vect_record_base_alignments) | |
15078 | (vect_calculate_target_alignmentm, vect_compute_data_ref_alignment) | |
15079 | (vect_update_misalignment_for_peel, vect_verify_datarefs_alignment) | |
15080 | (vector_alignment_reachable_p, vect_get_data_access_cost) | |
15081 | (vect_get_peeling_costs_all_drs, vect_peeling_hash_get_lowest_cost) | |
15082 | (vect_peeling_supportable, vect_enhance_data_refs_alignment) | |
15083 | (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) | |
15084 | (vect_analyze_group_access_1, vect_analyze_group_access) | |
15085 | (vect_analyze_data_ref_access, vect_analyze_data_ref_accesses) | |
15086 | (vect_vfa_access_size, vect_small_gap_p, vect_analyze_data_refs) | |
15087 | (vect_supportable_dr_alignment): Remove vinfo_for_stmt from the | |
15088 | result of vect_dr_stmt and use the stmt_vec_info instead of | |
15089 | the associated gimple stmt. | |
15090 | * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. | |
15091 | (vect_gen_prolog_loop_niters): Likewise. | |
15092 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
15093 | ||
15094 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15095 | ||
15096 | * tree-vectorizer.h (_slp_tree::stmts): Change from a vec<gimple *> | |
15097 | to a vec<stmt_vec_info>. | |
15098 | * tree-vect-slp.c (vect_free_slp_tree): Update accordingly. | |
15099 | (vect_create_new_slp_node): Take a vec<gimple *> instead of a | |
15100 | vec<stmt_vec_info>. | |
15101 | (_slp_oprnd_info::def_stmts): Change from a vec<gimple *> | |
15102 | to a vec<stmt_vec_info>. | |
15103 | (bst_traits::value_type, bst_traits::value_type): Likewise. | |
15104 | (bst_traits::hash): Update accordingly. | |
15105 | (vect_get_and_check_slp_defs): Change the stmts parameter from | |
15106 | a vec<gimple *> to a vec<stmt_vec_info>. | |
15107 | (vect_two_operations_perm_ok_p, vect_build_slp_tree_1): Likewise. | |
15108 | (vect_build_slp_tree): Likewise. | |
15109 | (vect_build_slp_tree_2): Likewise. Update uses of | |
15110 | SLP_TREE_SCALAR_STMTS. | |
15111 | (vect_print_slp_tree): Update uses of SLP_TREE_SCALAR_STMTS. | |
15112 | (vect_mark_slp_stmts, vect_mark_slp_stmts_relevant) | |
15113 | (vect_slp_rearrange_stmts, vect_attempt_slp_rearrange_stmts) | |
15114 | (vect_supported_load_permutation_p, vect_find_last_scalar_stmt_in_slp) | |
15115 | (vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations_1) | |
15116 | (vect_slp_analyze_node_operations, vect_slp_analyze_operations) | |
15117 | (vect_bb_slp_scalar_cost, vect_slp_analyze_bb_1) | |
15118 | (vect_get_constant_vectors, vect_get_slp_defs) | |
15119 | (vect_transform_slp_perm_load, vect_schedule_slp_instance) | |
15120 | (vect_remove_slp_scalar_calls, vect_schedule_slp): Likewise. | |
15121 | (vect_analyze_slp_instance): Build up a vec of stmt_vec_infos | |
15122 | instead of gimple stmts. | |
15123 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Change | |
15124 | the stores parameter for a vec<gimple *> to a vec<stmt_vec_info>. | |
15125 | (vect_slp_analyze_instance_dependence): Update uses of | |
15126 | SLP_TREE_SCALAR_STMTS. | |
15127 | (vect_slp_analyze_and_verify_node_alignment): Likewise. | |
15128 | (vect_slp_analyze_and_verify_instance_alignment): Likewise. | |
15129 | * tree-vect-loop.c (neutral_op_for_slp_reduction): Likewise. | |
15130 | (get_initial_defs_for_reduction): Likewise. | |
15131 | (vect_create_epilog_for_reduction): Likewise. | |
15132 | (vectorize_fold_left_reduction): Likewise. | |
15133 | * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise. | |
15134 | (vect_model_simple_cost, vectorizable_shift, vectorizable_load) | |
15135 | (can_vectorize_live_stmts): Likewise. | |
15136 | ||
15137 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15138 | ||
15139 | * tree-vectorizer.h (_loop_vec_info::reductions): Change from an | |
15140 | auto_vec<gimple *> to an auto_vec<stmt_vec_info>. | |
15141 | (vect_force_simple_reduction): Take and return stmt_vec_infos rather | |
15142 | than gimple stmts. | |
15143 | * tree-parloops.c (valid_reduction_p): Take a stmt_vec_info instead | |
15144 | of a gimple stmt. | |
15145 | (gather_scalar_reductions): Update after above interface changes. | |
15146 | * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise. | |
15147 | (vect_is_simple_reduction): Take and return stmt_vec_infos rather | |
15148 | than gimple stmts. | |
15149 | (vect_force_simple_reduction): Likewise. | |
15150 | * tree-vect-patterns.c (vect_pattern_recog_1): Update use of | |
15151 | LOOP_VINFO_REDUCTIONS. | |
15152 | * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. | |
15153 | ||
15154 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15155 | ||
15156 | * tree-vectorizer.h (_stmt_vec_info::reduc_def): Change from | |
15157 | a gimple stmt to a stmt_vec_info. | |
15158 | * tree-vect-loop.c (vect_active_double_reduction_p) | |
15159 | (vect_force_simple_reduction, vectorizable_reduction): Update | |
15160 | accordingly. | |
15161 | ||
15162 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15163 | ||
15164 | * tree-vectorizer.h (_slp_tree::vec_stmts): Change from a | |
15165 | vec<gimple *> to a vec<stmt_vec_info>. | |
15166 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Change | |
15167 | the reduction_phis argument from a vec<gimple *> to a | |
15168 | vec<stmt_vec_info>. | |
15169 | (vectorizable_reduction): Likewise the phis local variable that | |
15170 | is passed to vect_create_epilog_for_reduction. Update for new type | |
15171 | of SLP_TREE_VEC_STMTS. | |
15172 | (vectorizable_induction): Update for new type of SLP_TREE_VEC_STMTS. | |
15173 | (vectorizable_live_operation): Likewise. | |
15174 | * tree-vect-slp.c (vect_get_slp_vect_defs): Likewise. | |
15175 | (vect_transform_slp_perm_load, vect_schedule_slp_instance): Likewise. | |
15176 | ||
15177 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15178 | ||
15179 | * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Change from | |
15180 | a gimple stmt to a stmt_vec_info. | |
15181 | (vectorizable_condition, vectorizable_live_operation) | |
15182 | (vectorizable_reduction, vectorizable_induction): Pass back the | |
15183 | vectorized statement as a stmt_vec_info. | |
15184 | * tree-vect-data-refs.c (vect_record_grouped_load_vectors): Update | |
15185 | use of STMT_VINFO_VEC_STMT. | |
15186 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise, | |
15187 | accumulating the inner phis that feed the STMT_VINFO_VEC_STMT | |
15188 | as stmt_vec_infos rather than gimple stmts. | |
15189 | (vectorize_fold_left_reduction): Change vec_stmt from a gimple stmt | |
15190 | to a stmt_vec_info. | |
15191 | (vectorizable_live_operation): Likewise. | |
15192 | (vectorizable_reduction, vectorizable_induction): Likewise, | |
15193 | updating use of STMT_VINFO_VEC_STMT. | |
15194 | * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Update use | |
15195 | of STMT_VINFO_VEC_STMT. | |
15196 | (vect_build_gather_load_calls, vectorizable_bswap, vectorizable_call) | |
15197 | (vectorizable_simd_clone_call, vectorizable_conversion) | |
15198 | (vectorizable_assignment, vectorizable_shift, vectorizable_operation) | |
15199 | (vectorizable_store, vectorizable_load, vectorizable_condition) | |
15200 | (vectorizable_comparison, can_vectorize_live_stmts): Change vec_stmt | |
15201 | from a gimple stmt to a stmt_vec_info. | |
15202 | (vect_transform_stmt): Update use of STMT_VINFO_VEC_STMT. Pass a | |
15203 | pointer to a stmt_vec_info to the vectorizable_* routines. | |
15204 | ||
15205 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15206 | ||
15207 | * tree-vectorizer.h (_stmt_vec_info::related_stmt): Change from | |
15208 | a gimple stmt to a stmt_vec_info. | |
15209 | (is_pattern_stmt_p): Update accordingly. | |
15210 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Likewise. | |
15211 | (vect_record_grouped_load_vectors): Likewise. | |
15212 | * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. | |
15213 | (vect_fixup_reduc_chain, vect_update_vf_for_slp): Likewise. | |
15214 | (vect_model_reduction_cost): Likewise. | |
15215 | (vect_create_epilog_for_reduction): Likewise. | |
15216 | (vectorizable_reduction, vectorizable_induction): Likewise. | |
15217 | * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. | |
15218 | Return the stmt_vec_info for the pattern statement. | |
15219 | (vect_set_pattern_stmt): Update use of STMT_VINFO_RELATED_STMT. | |
15220 | (vect_split_statement, vect_mark_pattern_stmts): Likewise. | |
15221 | * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. | |
15222 | (vect_detect_hybrid_slp, vect_get_slp_defs): Likewise. | |
15223 | * tree-vect-stmts.c (vect_mark_relevant): Likewise. | |
15224 | (vect_get_vec_def_for_operand_1, vectorizable_call): Likewise. | |
15225 | (vectorizable_simd_clone_call, vect_analyze_stmt, new_stmt_vec_info) | |
15226 | (free_stmt_vec_info, vect_is_simple_use): Likewise. | |
15227 | ||
15228 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15229 | ||
15230 | * tree-vectorizer.h (vect_finish_replace_stmt): Return a stmt_vec_info | |
15231 | (vect_finish_stmt_generation): Likewise. | |
15232 | * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. | |
15233 | (vect_finish_replace_stmt, vect_finish_stmt_generation): Likewise. | |
15234 | (vect_build_gather_load_calls): Use the return value of the above | |
15235 | functions instead of a separate call to vinfo_for_stmt. Use narrow | |
15236 | scopes for the input gimple stmt and wider scopes for the associated | |
15237 | stmt_vec_info. Use vec_info::lookup_def when setting these | |
15238 | stmt_vec_infos from an SSA_NAME definition. | |
15239 | (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) | |
15240 | (vect_create_vectorized_demotion_stmts, vectorizable_conversion) | |
15241 | (vectorizable_assignment, vectorizable_shift, vectorizable_operation) | |
15242 | (vectorizable_store, vectorizable_load, vectorizable_condition) | |
15243 | (vectorizable_comparison): Likewise. | |
15244 | * tree-vect-loop.c (vectorize_fold_left_reduction): Likewise. | |
15245 | (vectorizable_reduction): Likewise. | |
15246 | ||
15247 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15248 | ||
15249 | * tree-vectorizer.h (vect_is_simple_use): Add an optional | |
15250 | stmt_vec_info * parameter before the optional gimple **. | |
15251 | * tree-vect-stmts.c (vect_is_simple_use): Likewise. | |
15252 | (process_use, vect_get_vec_def_for_operand_1): Update callers. | |
15253 | (vect_get_vec_def_for_operand, vectorizable_shift): Likewise. | |
15254 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
15255 | (vectorizable_live_operation): Likewise. | |
15256 | * tree-vect-patterns.c (type_conversion_p): Likewise. | |
15257 | (vect_look_through_possible_promotion): Likewise. | |
15258 | (vect_recog_rotate_pattern): Likewise. | |
15259 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. | |
15260 | ||
15261 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15262 | ||
15263 | * tree-vectorizer.h (stmt_vec_info): Temporarily change from | |
15264 | a typedef to a wrapper class. | |
15265 | (NULL_STMT_VEC_INFO): New macro. | |
15266 | (vec_info::stmt_infos): Change to vec<stmt_vec_info>. | |
15267 | (stmt_vec_info::operator*): New function. | |
15268 | (stmt_vec_info::operator gimple *): Likewise. | |
15269 | (set_vinfo_for_stmt): Use NULL_STMT_VEC_INFO. | |
15270 | (add_stmt_costs): Likewise. | |
15271 | * tree-vect-loop-manip.c (iv_phi_p): Likewise. | |
15272 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) | |
15273 | (vect_get_known_peeling_cost): Likewise. | |
15274 | (vect_estimate_min_profitable_iters): Likewise. | |
15275 | * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. | |
15276 | * tree-vect-slp.c (vect_remove_slp_scalar_calls): Likewise. | |
15277 | * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. | |
15278 | (vectorizable_store, free_stmt_vec_infos): Likewise. | |
15279 | (new_stmt_vec_info): Change return type of xcalloc to | |
15280 | _stmt_vec_info *. | |
15281 | ||
15282 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15283 | ||
15284 | * tree-vectorizer.h (vec_info::lookup_single_use): Declare. | |
15285 | * tree-vectorizer.c (vec_info::lookup_single_use): New function. | |
15286 | * tree-vect-loop.c (vectorizable_reduction): Use it instead of | |
15287 | a single_imm_use-based sequence. | |
15288 | * tree-vect-stmts.c (supportable_widening_operation): Likewise. | |
15289 | ||
15290 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15291 | ||
15292 | * tree-vectorizer.h (vec_info::lookup_def): Declare. | |
15293 | * tree-vectorizer.c (vec_info::lookup_def): New function. | |
15294 | * tree-vect-patterns.c (vect_get_internal_def): Use it. | |
15295 | (vect_widened_op_tree): Likewise. | |
15296 | * tree-vect-stmts.c (vect_is_simple_use): Likewise. | |
15297 | * tree-vect-loop.c (vect_analyze_loop_operations): Likewise. | |
15298 | (vectorizable_reduction): Likewise. | |
15299 | (vect_valid_reduction_input_p): Take a stmt_vec_info instead | |
15300 | of a gimple *. | |
15301 | (vect_is_slp_reduction): Update calls accordingly. Use | |
15302 | vec_info::lookup_def. | |
15303 | (vect_is_simple_reduction): Likewise | |
15304 | * tree-vect-slp.c (vect_detect_hybrid_slp_1): Use vec_info::lookup_def. | |
15305 | ||
15306 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15307 | ||
15308 | * tree-vectorizer.h (vec_info::lookup_stmt): Declare. | |
15309 | * tree-vectorizer.c (vec_info::lookup_stmt): New function. | |
15310 | * tree-vect-loop.c (vect_determine_vf_for_stmt): Use it instead | |
15311 | of vinfo_for_stmt. | |
15312 | (vect_determine_vectorization_factor, vect_analyze_scalar_cycles_1) | |
15313 | (vect_compute_single_scalar_iteration_cost, vect_analyze_loop_form) | |
15314 | (vect_update_vf_for_slp, vect_analyze_loop_operations) | |
15315 | (vect_is_slp_reduction, vectorizable_induction) | |
15316 | (vect_transform_loop_stmt, vect_transform_loop): Likewise. | |
15317 | * tree-vect-patterns.c (vect_init_pattern_stmt): | |
15318 | (vect_determine_min_output_precision_1, vect_determine_precisions) | |
15319 | (vect_pattern_recog): Likewise. | |
15320 | * tree-vect-stmts.c (vect_analyze_stmt, vect_transform_stmt): Likewise. | |
15321 | * config/powerpcspe/powerpcspe.c (rs6000_density_test): Likewise. | |
15322 | * config/rs6000/rs6000.c (rs6000_density_test): Likewise. | |
15323 | * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. | |
15324 | (vect_detect_hybrid_slp_1, vect_detect_hybrid_slp_2) | |
15325 | (vect_detect_hybrid_slp): Likewise. Change the walk_stmt_info | |
15326 | info field from a loop to a loop_vec_info. | |
15327 | ||
15328 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15329 | ||
15330 | * tree-vectorizer.h (stmt_vec_info): Move typedef earlier in file. | |
15331 | (vec_info::add_stmt): Declare. | |
15332 | * tree-vectorizer.c (vec_info::add_stmt): New function. | |
15333 | * tree-vect-data-refs.c (vect_create_data_ref_ptr): Use it. | |
15334 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. | |
15335 | (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. | |
15336 | (vectorizable_induction): Likewise. | |
15337 | * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. | |
15338 | * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. | |
15339 | (vectorizable_simd_clone_call, vectorizable_store): Likewise. | |
15340 | (vectorizable_load): Likewise. | |
15341 | * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. | |
15342 | (vect_recog_bool_pattern, vect_recog_mask_conversion_pattern) | |
15343 | (vect_recog_gather_scatter_pattern): Likewise. | |
15344 | (append_pattern_def_seq): Likewise. Remove a check that is | |
15345 | performed by add_stmt itself. | |
15346 | ||
15347 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15348 | ||
15349 | * tree-vect-loop.c (vectorizable_reduction): Fix an instance in | |
15350 | which make_ssa_name was called with new_stmt before new_stmt | |
15351 | had been created. | |
15352 | ||
15353 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15354 | ||
15355 | * tree-vect-loop.c (vect_valid_reduction_input_p): New function, | |
15356 | split out from... | |
15357 | (vect_is_slp_reduction): ...here... | |
15358 | (vect_is_simple_reduction): ...and here. Remove repetition of tests | |
15359 | that are already known to be false. | |
15360 | ||
15361 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15362 | ||
15363 | * tree-vectorizer.h (vect_free_slp_instance): Add a final_p parameter. | |
15364 | * tree-vect-slp.c (vect_free_slp_tree): Likewise. Don't update | |
15365 | STMT_VINFO_NUM_SLP_USES when it's true. | |
15366 | (vect_free_slp_instance): Add a final_p parameter and pass it to | |
15367 | vect_free_slp_tree. | |
15368 | (vect_build_slp_tree_2): Update call to vect_free_slp_instance. | |
15369 | (vect_analyze_slp_instance): Likewise. | |
15370 | (vect_slp_analyze_operations): Likewise. | |
15371 | (vect_slp_analyze_bb_1): Likewise. | |
15372 | * tree-vectorizer.c (vec_info): Likewise. | |
15373 | * tree-vect-loop.c (vect_transform_loop): Likewise. | |
15374 | ||
15375 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15376 | ||
15377 | * tree-vect-loop.c (vectorizable_reduction): Assert that the | |
15378 | function is not called for second and subsequent members of | |
15379 | a reduction group. | |
15380 | ||
15381 | 2018-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
15382 | ||
15383 | * tree-vect-loop.c (get_initial_def_for_reduction): Move special | |
15384 | cases for nested loops from here to ... | |
15385 | (vect_create_epilog_for_reduction): ...here. Only call | |
15386 | vect_is_simple_use for inner-loop reductions. | |
15387 | ||
15388 | 2018-07-31 Martin Liska <mliska@suse.cz> | |
15389 | ||
15390 | PR gcov-profile/85338 | |
15391 | PR gcov-profile/85350 | |
15392 | PR gcov-profile/85372 | |
15393 | * profile.c (struct location_triplet): New. | |
15394 | (struct location_triplet_hash): Likewise. | |
15395 | (output_location): Do not output a BB that | |
15396 | is already recorded for a line. | |
15397 | (branch_prob): Use streamed_locations. | |
15398 | ||
15399 | 2018-07-31 Martin Liska <mliska@suse.cz> | |
15400 | ||
15401 | PR gcov-profile/85370 | |
15402 | * coverage.c (coverage_begin_function): Do not mark target | |
15403 | clones as artificial functions. | |
15404 | ||
15405 | 2018-07-31 Martin Liska <mliska@suse.cz> | |
15406 | ||
15407 | PR gcov-profile/83813 | |
15408 | PR gcov-profile/84758 | |
15409 | PR gcov-profile/85217 | |
15410 | PR gcov-profile/85332 | |
15411 | * profile.c (branch_prob): Do not record GOTO expressions | |
15412 | for GIMPLE statements which locations are already streamed. | |
15413 | ||
15414 | 2018-07-31 Olivier Hainque <hainque@adacore.com> | |
15415 | ||
15416 | * gcc.c (handle_spec_function): Accept a soft_matched_part | |
15417 | argument, as do_spec_1. Pass it down to ... | |
15418 | (eval_spec_function): Accept a soft_matched_part argument, | |
15419 | and pass it down to ... | |
15420 | (do_spec_2): Accept a soft_matched_part argument, and pass | |
15421 | it down to do_spec_1. | |
15422 | (do_spec_1): Pass soft_matched_part to handle_spec_function. | |
15423 | (handle_braces): Update call to handle_spec_function. | |
15424 | (driver::set_up_specs): Update calls to do_spec_2. | |
15425 | (compare_debug_dump_opt_spec_function): Likewise. | |
15426 | (compare_debug_self_opt_spec_function): Likewise. | |
15427 | ||
15428 | 2018-07-31 Olivier Hainque <hainque@adacore.com> | |
15429 | ||
15430 | * common.opt (nolibc): New option. | |
15431 | * doc/invoke.texi (Link Options): Document it. | |
15432 | * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc. | |
15433 | * config/alpha/linux.h: Likewise. | |
15434 | * config/arc/elf.h: Likewise. | |
15435 | * config/arm/uclinux-elf.h: Likewise. | |
15436 | * config/arm/unknown-elf.h: Likewise. | |
15437 | * config/avr/avrlibc.h: Likewise. | |
15438 | * config/bfin/bfin.h: Likewise. | |
15439 | * config/bfin/linux.h: Likewise. | |
15440 | * config/bfin/uclinux.h: Likewise. | |
15441 | * config/darwin.h: Likewise. | |
15442 | * config/darwin10.h: Likewise. | |
15443 | * config/darwin12.h: Likewise. | |
15444 | * config/gnu-user.h: Likewise. | |
15445 | * config/lm32/uclinux-elf.h: Likewise. | |
15446 | * config/pa/pa-hpux11.h: Likewise. | |
15447 | * config/pa/pa64-hpux.h: Likewise. | |
15448 | * config/sparc/sparc.h: Likewise. | |
15449 | ||
15450 | 2018-07-31 Olivier Hainque <hainque@adacore.com> | |
15451 | ||
15452 | * gcc.c (getenv_spec_function): Prepend '/' to value for allowed | |
15453 | undefined variables. | |
15454 | ||
15455 | 2018-07-30 Segher Boessenkool <segher@kernel.crashing.org> | |
15456 | ||
15457 | PR target/86640 | |
15458 | * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode | |
15459 | instead of GEN_INT. | |
15460 | ||
15461 | 2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15462 | ||
15463 | * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL | |
15464 | terminated string literal. | |
15465 | ||
15466 | 2018-07-30 Segher Boessenkool <segher@kernel.crashing.org> | |
15467 | ||
15468 | PR rtl-optimization/85160 | |
15469 | * combine.c (is_just_move): New function. | |
15470 | (try_combine): Allow combining two instructions into two if neither of | |
15471 | the original instructions was a move. | |
15472 | ||
15473 | 2018-07-30 Alexander Monakov <amonakov@ispras.ru> | |
15474 | ||
15475 | PR target/86673 | |
15476 | * doc/extend.texi (Global Register Variables): Discourage use of type | |
15477 | qualifiers. | |
15478 | (Local Register Variables): Likewise. | |
15479 | ||
15480 | 2018-07-30 Richard Sandiford <richard.sandiford@arm.com> | |
15481 | ||
15482 | PR tree-optimization/86506 | |
15483 | * hwint.h (ceil_log2): Resync with hwint.c implementation. | |
15484 | ||
15485 | 2018-07-30 Ilya Leoshkevich <iii@linux.ibm.com> | |
15486 | ||
15487 | PR target/86547 | |
15488 | * lra-constraints.c (spill_hard_reg_in_range): When selecting the | |
15489 | hard_regno, make sure no insn between `from` and `to` clobbers it. | |
15490 | ||
15491 | 2018-07-30 Cesar Philippidis <cesar@codesourcery.com> | |
15492 | Tom de Vries <tdevries@suse.de> | |
15493 | ||
15494 | * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Rename to ... | |
15495 | (PTX_DEFAULT_RUNTIME_DIM): ... this. | |
15496 | (nvptx_goacc_validate_dims): Set default worker and gang dims to | |
15497 | PTX_DEFAULT_RUNTIME_DIM. | |
15498 | (nvptx_dim_limit): Ignore GOMP_DIM_WORKER. | |
15499 | ||
15500 | 2018-07-29 John David Anglin <danglin@gcc.gnu.org> | |
15501 | ||
15502 | * config/pa/pa.c (pa_output_addr_vec): Align address table. | |
15503 | * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. | |
15504 | * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. | |
15505 | ||
15506 | 2018-07-27 Michael Meissner <meissner@linux.ibm.com> | |
15507 | ||
15508 | * config/rs6000/constraints.md (wG constraint): Delete, no longer | |
15509 | used. | |
15510 | * config/rs6000/predicates.md (p9_fusion_reg_operand): Rename | |
15511 | predicate to reflect toc fusion has been deleted. | |
15512 | (toc_fusion_mem_raw): Delete, no longer used. | |
15513 | (toc_fusion_mem_wrapped): Likewise. | |
15514 | * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete toc | |
15515 | fusion mask bit. | |
15516 | * config/rs6000/rs6000-protos.h (fusion_wrap_memory_address): | |
15517 | Delete, no longer used. | |
15518 | * config/rs6000/rs6000.c (struct rs6000_reg_addr): Delete fields | |
15519 | meant to be used for toc fusion. | |
15520 | (rs6000_debug_print_mode): Delete toc fusion debugging. | |
15521 | (rs6000_debug_reg_global): Likewise. | |
15522 | (rs6000_init_hard_regno_mode_ok): Delete setting up fields for toc | |
15523 | fusion and secondary reload support that were never used. | |
15524 | (rs6000_option_override_internal): Delete TOC fusion, that was only | |
15525 | partially defined, and it did not work unless you also used the | |
15526 | -mcmodel= switch. | |
15527 | (rs6000_legitimate_address_p): Delete TOC fusion support. | |
15528 | (rs6000_opt_masks): Likewise. | |
15529 | (fusion_wrap_memory_address): Delete function, no longer used. | |
15530 | (fusion_split_address); Delete TOC fusion support. | |
15531 | * config/rs6000/rs6000.h (TARGET_TOC_FUSION_INT): Delete, no | |
15532 | longer used with toc fusion being deleted. | |
15533 | (TARGET_TOC_FUSION_FP): Likewise. | |
15534 | * config/rs6000/rs6000.md (UNSPEC_FUSION_ADDIS): Delete TOC fusion | |
15535 | UNSPEC. | |
15536 | (toc fusion spliter): Delete TOC fusion support. | |
15537 | (toc_fusionload_<mode>): Likewise. | |
15538 | (toc_fusionload_di): Likewise. | |
15539 | (fusion_gpr_load_<mode>): Delete generator function, this insn no | |
15540 | longer needs to be named. Rename predicate to delete TOC fusion. | |
15541 | (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. | |
15542 | (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise. | |
15543 | (fusion_vsx_<P:mode>_<GPR_FUSION:mode>_load): Likewise. | |
15544 | (fusion_vsx_<P:mode>_<GPR_FUSION:mode>_store): Likewise. | |
15545 | (p9 fusion peephole2s): Rename predicate to delete TOC fusion. | |
15546 | ||
15547 | 2018-07-27 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
15548 | ||
15549 | * doc/extend.texi (Basic PowerPC Built-in Functions Available on | |
15550 | ISA 2.05): Replace __uint128_t with __uint128 and __int128_t with | |
15551 | __int128 in built-in function prototypes. | |
15552 | (PowerPC AltiVec Built-in Functions on ISA 2.07): Likewise. | |
15553 | (PowerPC AltiVec Built-in Functions on ISA 3.0): Likewise. | |
15554 | ||
15555 | 2018-07-27 Martin Sebor <msebor@redhat.com> | |
15556 | ||
15557 | PR tree-optimization/86696 | |
15558 | * tree-ssa-strlen.c (get_min_string_length): Handle all integer | |
15559 | types, including enums. | |
15560 | (handle_char_store): Be prepared for the above function to fail. | |
15561 | ||
15562 | 2018-07-26 Qing Zhao <qing.zhao@oracle.com> | |
15563 | ||
15564 | * builtins.c (inline_expand_builtin_string_cmp): Disable inlining | |
15565 | when optimization level is lower than 2 or optimize for size. | |
15566 | ||
15567 | 2018-07-26 Martin Sebor <msebor@redhat.com> | |
15568 | ||
15569 | PR tree-optimization/86043 | |
15570 | PR tree-optimization/86042 | |
15571 | * tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps. | |
15572 | (get_string_cst_length): Rename... | |
15573 | (get_min_string_length): ...to this. Add argument. | |
15574 | (handle_char_store): Extend to handle multi-character stores by | |
15575 | MEM_REF. | |
15576 | * tree.c (initializer_zerop): Use new argument. Handle MEM_REF. | |
15577 | * tree.h (initializer_zerop): Add argument. | |
15578 | ||
15579 | 2018-07-26 Jakub Jelinek <jakub@redhat.com> | |
15580 | ||
15581 | PR middle-end/86660 | |
15582 | * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for | |
15583 | declare target to variables if they have always,{to,from,tofrom} map | |
15584 | kinds. | |
15585 | ||
15586 | 2018-07-26 Martin Liska <mliska@suse.cz> | |
15587 | ||
15588 | PR lto/86548 | |
15589 | * lto-wrapper.c: Add linker_output as prefix | |
15590 | for ltrans_output_file. | |
15591 | ||
15592 | 2018-07-26 Segher Boessenkool <segher@kernel.crashing.org> | |
15593 | ||
15594 | PR rtl-optimization/85805 | |
15595 | * combine.c (reg_nonzero_bits_for_combine): Only use the last set | |
15596 | value for hard registers if that was written in the same mode. | |
15597 | ||
15598 | 2018-07-26 Martin Liska <mliska@suse.cz> | |
15599 | ||
15600 | PR gcov-profile/86536 | |
15601 | * gcov.c (format_gcov): Use printf format %.*f directly | |
15602 | and do not handle special values. | |
15603 | ||
15604 | 2018-07-25 Claudiu Zissulescu <claziss@synopsys.com> | |
15605 | ||
15606 | * common/config/arc/arc-common.c (arc_option_optimization_table): | |
15607 | Update default optimizations for size. | |
15608 | ||
15609 | 2018-07-25 Claudiu Zissulescu <claziss@synopsys.com> | |
15610 | ||
15611 | * config/arc/arc.md (movsf_insn): Add short instruction selection. | |
15612 | * config/arc/constraints.md (CfZ): New constraint. | |
15613 | * config/arc/fpu.md (addssf3_fpu): Use CfZ constraint. | |
15614 | (subsf3_fpu): Likewise. | |
15615 | (cmpsf_fpu): Likewise. | |
15616 | (cmpsf_fpu_uneq): Likewise. | |
15617 | ||
15618 | 2018-07-25 Claudiu Zissulescu <claziss@synopsys.com> | |
15619 | ||
15620 | * config/arc/arc.c (compact_memory_operand_p): Check for uncached | |
15621 | accesses as well. | |
15622 | (arc_is_uncached_mem_p): uncached applies to both the variable and | |
15623 | the pointer. | |
15624 | ||
15625 | 2018-07-25 Claudiu Zissulescu <claziss@synopsys.com> | |
15626 | ||
15627 | * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional | |
15628 | register names. | |
15629 | ||
15630 | 2018-07-25 David Malcolm <dmalcolm@redhat.com> | |
15631 | ||
15632 | * optinfo-emit-json.cc (class optrecord_json_writer): Convert | |
15633 | field "m_scopes" from vec to auto_vec. | |
15634 | ||
15635 | 2018-07-25 Martin Liska <mliska@suse.cz> | |
15636 | ||
15637 | * config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix | |
15638 | return type. | |
15639 | ||
15640 | 2018-07-25 Richard Biener <rguenther@suse.de> | |
15641 | ||
15642 | PR debug/86654 | |
15643 | * dwarf2out.c (dwarf2out_decl): Do not handle nested functions | |
15644 | special wrt context_die late. | |
15645 | (gen_subprogram_die): Re-use DIEs in local scope. | |
15646 | ||
15647 | 2018-07-25 Richard Sandiford <richard.sandiford@arm.com> | |
15648 | ||
15649 | PR tree-optimization/86644 | |
15650 | * hwint.c (ceil_log2): Fix comment. Return 0 for 0. | |
15651 | ||
15652 | 2018-07-25 Martin Liska <mliska@suse.cz> | |
15653 | ||
15654 | PR middle-end/86645 | |
15655 | * dumpfile.c: And excluded values with TDF_ALL_VALUES. | |
15656 | * dumpfile.h (enum dump_flag): Defince TDF_ALL_VALUES. | |
15657 | ||
15658 | 2018-07-25 Martin Liska <mliska@suse.cz> | |
15659 | ||
15660 | PR sanitizer/79635 | |
15661 | * params.def: Explain ASan abbreviation and provide | |
15662 | a documentation link. | |
15663 | ||
15664 | 2018-07-24 Martin Sebor <msebor@redhat.com> | |
15665 | ||
15666 | PR tree-optimization/86622 | |
15667 | PR tree-optimization/86532 | |
15668 | * builtins.h (string_length): Declare. | |
15669 | * builtins.c (c_strlen): Correct handling of non-constant offsets. | |
15670 | (check_access): Be prepared for non-constant length ranges. | |
15671 | (string_length): Make extern. | |
15672 | * expr.c (string_constant): Only handle the minor non-constant | |
15673 | array index. Use string_constant to compute the length of | |
15674 | a generic string constant. | |
15675 | ||
15676 | 2018-07-24 Richard Sandiford <richard.sandiford@arm.com> | |
15677 | ||
15678 | PR tree-optimization/86618 | |
15679 | * tree-vect-stmts.c (vectorizable_call): Don't take the address | |
15680 | of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null. | |
15681 | ||
15682 | 2018-07-24 David Malcolm <dmalcolm@redhat.com> | |
15683 | ||
15684 | PR tree-optimization/86636 | |
15685 | * json.cc (json::object::set): Fix comment. Add assertions. | |
15686 | (json::array::append): Move here from json.h. Add comment and an | |
15687 | assertion. | |
15688 | (json::string::string): Likewise. | |
15689 | * json.h (json::array::append): Move to json.cc. | |
15690 | (json::string::string): Likewise. | |
15691 | * optinfo-emit-json.cc | |
15692 | (optrecord_json_writer::impl_location_to_json): Assert that we | |
15693 | aren't attempting to write out UNKNOWN_LOCATION, or an ad-hoc | |
15694 | wrapper around it. Expand the location once, rather than three | |
15695 | times. | |
15696 | (optrecord_json_writer::inlining_chain_to_json): Fix the check for | |
15697 | UNKNOWN_LOCATION, to use LOCATION_LOCUS to look through ad-hoc | |
15698 | wrappers. | |
15699 | (optrecord_json_writer::optinfo_to_json): Likewise, in four | |
15700 | places. Fix some overlong lines. | |
15701 | ||
15702 | 2018-07-24 Matthew Malcomson <matthew.malcomson@arm.com> | |
15703 | ||
15704 | * config/aarch64/aarch64-simd.md | |
15705 | (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Split into... | |
15706 | (aarch64_<ANY_EXTEND:su>subw<mode>): ... This... | |
15707 | (aarch64_<ANY_EXTEND:su>addw<mode>): ... And this. | |
15708 | (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): Split into... | |
15709 | (aarch64_<ANY_EXTEND:su>subw<mode>_internal): ... This... | |
15710 | (aarch64_<ANY_EXTEND:su>addw<mode>_internal): ... And this. | |
15711 | (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Split into... | |
15712 | (aarch64_<ANY_EXTEND:su>subw2<mode>_internal): ... This... | |
15713 | (aarch64_<ANY_EXTEND:su>addw2<mode>_internal): ... And this. | |
15714 | ||
15715 | 2018-07-24 Jakub Jelinek <jakub@redhat.com> | |
15716 | ||
15717 | PR middle-end/86627 | |
15718 | * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN | |
15719 | and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT | |
15720 | and abs_d == d, do the power of two handling if profitable. | |
15721 | ||
15722 | 2018-07-24 Richard Biener <rguenther@suse.de> | |
15723 | ||
15724 | * match.pd: Add BIT_FIELD_REF canonicalizations. | |
15725 | ||
15726 | 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15727 | ||
15728 | PR c/86617 | |
15729 | * genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values. | |
15730 | ||
15731 | 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15732 | ||
15733 | * gimple-fold.c (gimple_fold_builtin_printf): Don't create a not NUL | |
15734 | terminated STRING_CST object. | |
15735 | ||
15736 | 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15737 | ||
15738 | hsa-dump.c (dump_hsa_symbol): Avoid out of scope access to buf. | |
15739 | ||
15740 | 2018-07-23 Segher Boessenkool <segher@kernel.crashing.org> | |
15741 | ||
15742 | * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. | |
15743 | * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Delete. | |
15744 | * config/rs6000/rs6000.c (rs6000_expand_vector_init): Always force | |
15745 | the elements into a register. | |
15746 | (rs6000_split_v4si_init_di_reg): Delete. | |
15747 | (rs6000_split_v4si_init): Delete. | |
15748 | * config/rs6000/vsx.md (unspec): Delete UNSPEC_VSX_VEC_INIT. | |
15749 | (vsx_init_v4si): Rewrite as a define_expand. | |
15750 | ||
15751 | 2018-07-23 Segher Boessenkool <segher@kernel.crashing.org> | |
15752 | ||
15753 | * config/rs6000/rs6000.md (splitters for rldimi and rlwimi with the | |
15754 | zero_extend argument from memory): New. | |
15755 | ||
15756 | 2018-07-22 Martin Sebor <msebor@redhat.com> | |
15757 | ||
15758 | PR bootstrap/86621 | |
15759 | * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Avoid | |
15760 | diagnosing calls with unknown arguments unless -Walloca-larger-than | |
15761 | is restricted to less than PTRDIFF_MAX bytes. | |
15762 | ||
15763 | 2018-07-22 Gerald Pfeifer <gerald@pfeifer.com> | |
15764 | ||
15765 | * doc/gcov.texi (Invoking Gcov): Editorial changes. | |
15766 | ||
15767 | 2018-07-20 David Malcolm <dmalcolm@redhat.com> | |
15768 | ||
15769 | * pretty-print.c (text_info::set_location): Remove redundant | |
15770 | "line_table" parameter from call to rich_location::set_range. | |
15771 | ||
15772 | 2018-07-20 Martin Sebor <msebor@redhat.com> | |
15773 | ||
15774 | PR middle-end/82063 | |
15775 | * builtins.c (expand_builtin_alloca): Adjust. | |
15776 | * calls.c (alloc_max_size): Simplify. | |
15777 | * cgraphunit.c (cgraph_node::expand): Adjust. | |
15778 | * common.opt (larger_than_size, warn_frame_larger_than): Remove | |
15779 | variables. | |
15780 | (frame_larger_than_size): Same. | |
15781 | (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Change options | |
15782 | to take a HOST_WIDE_INT argument and accept a byte-size suffix. | |
15783 | Initialize. | |
15784 | * doc/invoke.texi (GCC Command Options): Document option arguments. | |
15785 | Explain byte-size arguments and suffixes. | |
15786 | (-Wvla-larger-than, -Wno-alloc-size-larger-than): Update. | |
15787 | (-Wno-alloca-larger-than, -Wno-vla-larger-than): Same. | |
15788 | (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Same. | |
15789 | * doc/options.texi (UInteger): Expand. | |
15790 | (Host_Wide_Int, ByteSize): Document new properties. | |
15791 | * final.c (final_start_function_1): Include sizes in an error message. | |
15792 | * function.c (frame_offset_overflow): Same. | |
15793 | * gimple-ssa-warn-alloca.c (pass_walloca::gate): Adjust. | |
15794 | (alloca_call_type_by_arg): Change function argument to HOST_WIDE_INT. | |
15795 | Diagnose unbounded alloca calls only for limits of less than | |
15796 | PTRDIFF_MAX. | |
15797 | (alloca_call_type): Adjust. Diagnose possibly out-of-bounds alloca | |
15798 | calls and VLA size only for limits of less than PTRDIFF_MAX. Same | |
15799 | for alloca(0). | |
15800 | (pass_walloca::execute): Adjust. Diagnose alloca calls in loops | |
15801 | only for limits of less than PTRDIFF_MAX. | |
15802 | * langhooks-def.h (lhd_handle_option): Change function argument | |
15803 | to HOST_WIDE_INT. | |
15804 | * langhooks.c (lhd_handle_option): Same. | |
15805 | * langhooks.h (handle_option): Same. | |
15806 | * opt-functions.awk (switch_bit_fields): Handle Host_Wide_Int and | |
15807 | ByteSize flags. | |
15808 | (var_type, var_type_struct): Same. | |
15809 | (var_set): Handle ByteSize flag. | |
15810 | * optc-gen.awk: Add comments to output to ease debugging. Make | |
15811 | use of HOST_WIDE_INT where appropriate. | |
15812 | * opts-gen-save.awk: Use %lx to format unsigned long. | |
15813 | * opth-gen.awk: Change function argument to HOST_WIDE_INT. | |
15814 | * opts-common.c (integral_argument): Return HOST_WIDE_INT and add | |
15815 | arguments. Parse bytes-size suffixes. | |
15816 | (enum_arg_to_value): Change function argument to HOST_WIDE_INT. | |
15817 | (enum_value_to_arg): Same. | |
15818 | (decode_cmdline_option): Handle cl_host_wide_int. Adjust. | |
15819 | (handle_option): Adjust. | |
15820 | (generate_option): Change function argument to HOST_WIDE_INT. | |
15821 | (cmdline_handle_error): Adjust. | |
15822 | (read_cmdline_option): Change function argument to HOST_WIDE_INT. | |
15823 | (set_option): Change function argument to HOST_WIDE_INT. | |
15824 | (option_enabled): Handle cl_host_wide_int. | |
15825 | (get_option_state): Handle CLVC_SIZE. | |
15826 | (control_warning_option): Same. | |
15827 | * opts.c (common_handle_option): Change function argument to | |
15828 | HOST_WIDE_INT. Remove handling of OPT_Walloca_larger_than_ and | |
15829 | OPT_Wvla_larger_than_. | |
15830 | * opts.h (enum cl_var_type): Add an enumerator. | |
15831 | * stor-layout.c (layout_decl): Print a more meaningful warning. | |
15832 | * toplev.c (output_stack_usage): Adjust. | |
15833 | ||
15834 | 2018-07-20 Qing Zhao <qing.zhao@oracle.com> | |
15835 | ||
15836 | * builtins.c (expand_builtin_memcmp): Delete the last parameter for | |
15837 | call to inline_expand_builtin_string_cmp. | |
15838 | (expand_builtin_strcmp): Likewise. | |
15839 | (expand_builtin_strncmp): Likewise. | |
15840 | (inline_string_cmp): Delete the last parameter, change char_type_node | |
15841 | to unsigned_char_type_node for strcmp/strncmp, add conversions to the | |
15842 | two operands. | |
15843 | (inline_expand_builtin_string_cmp): Delete the last parameter, give up | |
15844 | the inlining expansion on target where the type of the call has same or | |
15845 | narrower precision than unsigned char. | |
15846 | ||
15847 | 2018-07-20 David Malcolm <dmalcolm@redhat.com> | |
15848 | ||
15849 | * Makefile.in (OBJS): Add json.o and optinfo-emit-json.o. | |
15850 | (CFLAGS-optinfo-emit-json.o): Define TARGET_NAME. | |
15851 | * common.opt (fsave-optimization-record): New option. | |
15852 | * coretypes.h (struct kv_pair): Move here from dumpfile.c. | |
15853 | * doc/invoke.texi (-fsave-optimization-record): New option. | |
15854 | * dumpfile.c: Include "optinfo-emit-json.h". | |
15855 | (struct kv_pair): Move to coretypes.h. | |
15856 | (optgroup_options): Make non-static. | |
15857 | (dump_context::end_scope): Call | |
15858 | optimization_records_maybe_pop_dump_scope. | |
15859 | * dumpfile.h (optgroup_options): New decl. | |
15860 | * json.cc: New file. | |
15861 | * json.h: New file. | |
15862 | * optinfo-emit-json.cc: New file. | |
15863 | * optinfo-emit-json.h: New file. | |
15864 | * optinfo.cc: Include "optinfo-emit-json.h". | |
15865 | (optinfo::emit): Call optimization_records_maybe_record_optinfo. | |
15866 | (optinfo_enabled_p): Check optimization_records_enabled_p. | |
15867 | (optinfo_wants_inlining_info_p): Likewise. | |
15868 | * optinfo.h: Update comment. | |
15869 | * profile-count.c (profile_quality_as_string): New function. | |
15870 | * profile-count.h (profile_quality_as_string): New decl. | |
15871 | (profile_count::quality): New accessor. | |
15872 | * selftest-run-tests.c (selftest::run_tests): Call json_cc_tests | |
15873 | and optinfo_emit_json_cc_tests. | |
15874 | * selftest.h (selftest::json_cc_tests): New decl. | |
15875 | (selftest::optinfo_emit_json_cc_tests): New decl. | |
15876 | * toplev.c: Include "optinfo-emit-json.h". | |
15877 | (compile_file): Call optimization_records_finish. | |
15878 | (do_compile): Call optimization_records_start. | |
15879 | * tree-ssa-live.c: Include optinfo.h. | |
15880 | (remove_unused_scope_block_p): Retain inlining information if | |
15881 | optinfo_wants_inlining_info_p returns true. | |
15882 | ||
15883 | 2018-07-20 Richard Biener <rguenther@suse.de> | |
15884 | ||
15885 | PR debug/86585 | |
15886 | * dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p | |
15887 | to cover -flto-partition=none. | |
15888 | ||
15889 | 2018-07-20 Martin Liska <mliska@suse.cz> | |
15890 | ||
15891 | * tree.h (DECL_LOCATION_RANGE): Remove unused macro. | |
15892 | (get_decl_source_range): Remove unused function. | |
15893 | ||
15894 | 2018-07-20 Richard Biener <rguenther@suse.de> | |
15895 | ||
15896 | * tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member. | |
15897 | (struct vn_phi_s): Likewise. | |
15898 | (struct vn_reference_s): Likewise. | |
15899 | * tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut | |
15900 | for searching the slot of an entry known to be in the hash itself. | |
15901 | (vn_phi_hasher::equal): Likewise. | |
15902 | (vn_reference_hasher::equal): Likewise. | |
15903 | (last_inserted_ref, last_inserted_phi, last_inserted_nary): New | |
15904 | globals. | |
15905 | (optimistic_info, current_info): Remove, keeping only valid_info. | |
15906 | (vn_reference_lookup_1): Remove fallback lookup. | |
15907 | (vn_reference_lookup_2): Likewise. | |
15908 | (vn_nary_op_lookup_1): Likewise. | |
15909 | (vn_phi_lookup): Likewise. | |
15910 | (vn_nary_build_or_lookup_1): Make sure to not chain the built | |
15911 | hash element. | |
15912 | (vn_reference_insert): Adjust, chain the inserted hash element | |
15913 | at last_inserted_ref. | |
15914 | (vn_reference_insert_pieces): Likewise. | |
15915 | (visit_reference_op_call): Likewise. | |
15916 | (vn_nary_op_insert_into): Chain the inserted hash element at | |
15917 | last_inserted_nary. | |
15918 | (vn_nary_op_insert_pieces): Adjust. | |
15919 | (vn_nary_op_insert): Likewise. | |
15920 | (vn_nary_op_insert_stmt): Likewise. | |
15921 | (vn_phi_insert): Adjust, chain the inserted hash element at | |
15922 | last_inserted_phi. | |
15923 | (process_scc): Remove clearing and copying the optimistic | |
15924 | table. Instead remove elements inserted during an optimistic | |
15925 | iteration from the single table we maintain. | |
15926 | (init_scc_vn): Adjust. | |
15927 | (free_scc_vn): Likewise. | |
15928 | (sccvn_dom_walker::record_cond): Likewise. | |
15929 | (sccvn_dom_walker::after_dom_children): Likewise. | |
15930 | ||
15931 | 2018-07-19 Martin Sebor <msebor@redhat.com> | |
15932 | ||
15933 | PR tree-optimization/84047 | |
15934 | PR tree-optimization/83776 | |
15935 | * tree-vrp.c (vrp_prop::check_mem_ref): New function. | |
15936 | (check_array_bounds): Call it. | |
15937 | ||
15938 | 2018-07-19 Martin Sebor <msebor@redhat.com> | |
15939 | ||
15940 | * align.h (align_flags): Use member initialization. | |
15941 | ||
15942 | 2018-07-19 David Malcolm <dmalcolm@redhat.com> | |
15943 | ||
15944 | * Makefile.in (OBJS): Add optinfo.o. | |
15945 | * coretypes.h (class symtab_node): New forward decl. | |
15946 | (struct cgraph_node): New forward decl. | |
15947 | (class varpool_node): New forward decl. | |
15948 | * dump-context.h: New file. | |
15949 | * dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h", | |
15950 | "tree-pass.h". | |
15951 | (refresh_dumps_are_enabled): Use optinfo_enabled_p. | |
15952 | (set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed. | |
15953 | (set_alt_dump_file): Likewise. | |
15954 | (dump_context::~dump_context): New dtor. | |
15955 | (dump_gimple_stmt): Move implementation to... | |
15956 | (dump_context::dump_gimple_stmt): ...this new member function. | |
15957 | Add the stmt to any pending optinfo, creating one if need be. | |
15958 | (dump_gimple_stmt_loc): Move implementation to... | |
15959 | (dump_context::dump_gimple_stmt_loc): ...this new member function. | |
15960 | Start a new optinfo and add the stmt to it. | |
15961 | (dump_gimple_expr): Move implementation to... | |
15962 | (dump_context::dump_gimple_expr): ...this new member function. | |
15963 | Add the stmt to any pending optinfo, creating one if need be. | |
15964 | (dump_gimple_expr_loc): Move implementation to... | |
15965 | (dump_context::dump_gimple_expr_loc): ...this new member function. | |
15966 | Start a new optinfo and add the stmt to it. | |
15967 | (dump_generic_expr): Move implementation to... | |
15968 | (dump_context::dump_generic_expr): ...this new member function. | |
15969 | Add the tree to any pending optinfo, creating one if need be. | |
15970 | (dump_generic_expr_loc): Move implementation to... | |
15971 | (dump_context::dump_generic_expr_loc): ...this new member | |
15972 | function. Add the tree to any pending optinfo, creating one if | |
15973 | need be. | |
15974 | (dump_printf): Move implementation to... | |
15975 | (dump_context::dump_printf_va): ...this new member function. Add | |
15976 | the text to any pending optinfo, creating one if need be. | |
15977 | (dump_printf_loc): Move implementation to... | |
15978 | (dump_context::dump_printf_loc_va): ...this new member function. | |
15979 | Start a new optinfo and add the stmt to it. | |
15980 | (dump_dec): Move implementation to... | |
15981 | (dump_context::dump_dec): ...this new member function. Add the | |
15982 | value to any pending optinfo, creating one if need be. | |
15983 | (dump_context::dump_symtab_node): New member function. | |
15984 | (dump_context::get_scope_depth): New member function. | |
15985 | (dump_context::begin_scope): New member function. | |
15986 | (dump_context::end_scope): New member function. | |
15987 | (dump_context::ensure_pending_optinfo): New member function. | |
15988 | (dump_context::begin_next_optinfo): New member function. | |
15989 | (dump_context::end_any_optinfo): New member function. | |
15990 | (dump_context::s_current): New global. | |
15991 | (dump_context::s_default): New global. | |
15992 | (dump_scope_depth): Delete global. | |
15993 | (dumpfile_ensure_any_optinfo_are_flushed): New function. | |
15994 | (dump_symtab_node): New function. | |
15995 | (get_dump_scope_depth): Reimplement in terms of dump_context. | |
15996 | (dump_begin_scope): Likewise. | |
15997 | (dump_end_scope): Likewise. | |
15998 | (selftest::temp_dump_context::temp_dump_context): New ctor. | |
15999 | (selftest::temp_dump_context::~temp_dump_context): New dtor. | |
16000 | (selftest::verify_item): New function. | |
16001 | (ASSERT_IS_TEXT): New macro. | |
16002 | (ASSERT_IS_TREE): New macro. | |
16003 | (ASSERT_IS_GIMPLE): New macro. | |
16004 | (selftest::test_capture_of_dump_calls): New test. | |
16005 | (selftest::dumpfile_c_tests): Call it. | |
16006 | * dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block) | |
16007 | (dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc) | |
16008 | (dump_gimple_stmt, dump_dec): Gather these related decls and add a | |
16009 | descriptive comment. | |
16010 | (dump_function, print_combine_total_stats, enable_rtl_dump_file) | |
16011 | (dump_node, dump_bb): Move these unrelated decls. | |
16012 | (class dump_manager): Add leading comment. | |
16013 | * optinfo.cc: New file. | |
16014 | * optinfo.h: New file. | |
16015 | ||
16016 | 2018-07-19 Michael Collison <michael.collison@arm.com> | |
16017 | Richard Henderson <rth@redhat.com> | |
16018 | ||
16019 | * config/aarch64/aarch64.md (subv<GPI>4, usubv<GPI>4): New patterns. | |
16020 | (subti): Handle op1 zero. | |
16021 | (subvti4, usub4ti4): New. | |
16022 | (*sub<GPI>3_compare1_imm): New. | |
16023 | (sub<GPI>3_carryinCV): New. | |
16024 | (*sub<GPI>3_carryinCV_z1_z2, *sub<GPI>3_carryinCV_z1): New. | |
16025 | (*sub<GPI>3_carryinCV_z2, *sub<GPI>3_carryinCV): New. | |
16026 | ||
16027 | 2018-07-19 Michael Collison <michael.collison@arm.com> | |
16028 | Richard Henderson <rth@redhat.com> | |
16029 | ||
16030 | * config/aarch64/aarch64.md: (addv<GPI>4, uaddv<GPI>4): New. | |
16031 | (addti3): Create simpler code if low part is already known to be 0. | |
16032 | (addvti4, uaddvti4): New. | |
16033 | (*add<GPI>3_compareC_cconly_imm): New. | |
16034 | (*add<GPI>3_compareC_cconly): New. | |
16035 | (*add<GPI>3_compareC_imm): New. | |
16036 | (*add<GPI>3_compareC): Rename from add<GPI>3_compare1; do not | |
16037 | handle constants within this pattern.. | |
16038 | (*add<GPI>3_compareV_cconly_imm): New. | |
16039 | (*add<GPI>3_compareV_cconly): New. | |
16040 | (*add<GPI>3_compareV_imm): New. | |
16041 | (add<GPI>3_compareV): New. | |
16042 | (add<GPI>3_carryinC, add<GPI>3_carryinV): New. | |
16043 | (*add<GPI>3_carryinC_zero, *add<GPI>3_carryinV_zero): New. | |
16044 | (*add<GPI>3_carryinC, *add<GPI>3_carryinV): New. | |
16045 | ((*add<GPI>3_compareC_cconly_imm): Replace 'ne' operator | |
16046 | with 'comparison' operator. | |
16047 | (*add<GPI>3_compareV_cconly_imm): Ditto. | |
16048 | (*add<GPI>3_compareV_cconly): Ditto. | |
16049 | (*add<GPI>3_compareV_imm): Ditto. | |
16050 | (add<GPI>3_compareV): Ditto. | |
16051 | (add<mode>3_carryinC): Ditto. | |
16052 | (*add<mode>3_carryinC_zero): Ditto. | |
16053 | (*add<mode>3_carryinC): Ditto. | |
16054 | (add<mode>3_carryinV): Ditto. | |
16055 | (*add<mode>3_carryinV_zero): Ditto. | |
16056 | (*add<mode>3_carryinV): Ditto. | |
16057 | ||
16058 | 2018-07-19 Michael Collison <michael.collison@arm.com> | |
16059 | Richard Henderson <rth@redhat.com> | |
16060 | ||
16061 | * config/aarch64/aarch64-modes.def (CC_V): New. | |
16062 | * config/aarch64/aarch64-protos.h | |
16063 | (aarch64_addti_scratch_regs): Declare | |
16064 | (aarch64_subvti_scratch_regs): Declare. | |
16065 | (aarch64_expand_subvti): Declare. | |
16066 | (aarch64_gen_unlikely_cbranch): Declare | |
16067 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Test | |
16068 | for signed overflow using CC_Vmode. | |
16069 | (aarch64_get_condition_code_1): Handle CC_Vmode. | |
16070 | (aarch64_gen_unlikely_cbranch): New function. | |
16071 | (aarch64_addti_scratch_regs): New function. | |
16072 | (aarch64_subvti_scratch_regs): New function. | |
16073 | (aarch64_expand_subvti): New function. | |
16074 | ||
16075 | 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
16076 | ||
16077 | * config/aarch64/aarch64-option-extensions.def: New entry for profile | |
16078 | extension. | |
16079 | * config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New. | |
16080 | * doc/invoke.texi (aarch64-feature-modifiers): New entry for profile | |
16081 | extension. | |
16082 | ||
16083 | 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
16084 | ||
16085 | PR target/83009 | |
16086 | * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make | |
16087 | address check not strict. | |
16088 | ||
16089 | 2018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
16090 | ||
16091 | * config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQ:mode>): Replace | |
16092 | Umq with Umn. | |
16093 | (store_pair_lanes<mode>): Likewise. | |
16094 | * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new | |
16095 | enum value 'ADDR_QUERY_LDP_STP_N'. | |
16096 | * config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise. | |
16097 | (aarch64_print_address_internal): Add declaration. | |
16098 | (aarch64_print_ldpstp_address): Remove. | |
16099 | (aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'. | |
16100 | (aarch64_print_operand): Change printing of 'y'. | |
16101 | * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use | |
16102 | new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use | |
16103 | 'true' rather than '1'. | |
16104 | * config/aarch64/constraints.md (Uml): Likewise. | |
16105 | (Uml): Rename to Umn. | |
16106 | (Umq): Remove. | |
16107 | ||
16108 | 2018-07-19 Richard Biener <rguenther@suse.de> | |
16109 | ||
16110 | * tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member | |
16111 | a trailing array. | |
16112 | * tree-ssa-sccvn.c: Remove alloc-pool.h use. | |
16113 | (vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method. | |
16114 | (vn_reference_hasher): Likewise. | |
16115 | (struct vn_tables_s): Remove obstack and alloc-pool members. | |
16116 | (vn_tables_obstack, vn_tables_insert_obstack): New global obstacks. | |
16117 | (vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack. | |
16118 | (vn_reference_insert): Allocate from obstack instead of from alloc-pool. | |
16119 | (vn_reference_insert_pieces): Likewise. | |
16120 | (alloc_vn_nary_op_noinit): Adjust. | |
16121 | (vn_nary_op_insert_stmt): Allocate phiargs in-place. | |
16122 | (vn_phi_eq): Adjust. | |
16123 | (shared_lookup_phiargs): Remove. | |
16124 | (vn_phi_lookup): Allocate temporary vn_phi_s on the stack. | |
16125 | (vn_phi_insert): Allocate from obstack instead of from alloc-pool. | |
16126 | (visit_reference_op_call): Likewise. | |
16127 | (copy_nary, copy_phi, copy_reference): Remove. | |
16128 | (process_scc): Rewind the obstack when iterating. Do not | |
16129 | copy the elements to valid_info but just move them from one | |
16130 | hashtable to the other. | |
16131 | (allocate_vn_table): Adjust. | |
16132 | (free_vn_table): Likewise. | |
16133 | (init_scc_vn): Likewise. | |
16134 | (free_scc_vn): Likewise. | |
16135 | ||
16136 | 2018-07-19 H.J. Lu <hongjiu.lu@intel.com> | |
16137 | ||
16138 | PR target/86560 | |
16139 | * config/i386/i386.c (rest_of_insert_endbranch): Lookup | |
16140 | indirect_return as function type attribute. | |
16141 | (ix86_attribute_table): Change indirect_return to function | |
16142 | type attribute. | |
16143 | * doc/extend.texi: Update indirect_return attribute. | |
16144 | ||
16145 | 2018-07-19 Aldy Hernandez <aldyh@redhat.com> | |
16146 | ||
16147 | * wide-int.h (widest2_int): New. | |
16148 | * gimple-fold.c (arith_overflowed_p): Use it. | |
16149 | * tree.h (widest2_int_cst): New. | |
16150 | * tree-vrp.c (wide_int_binop_overflow): Rename from | |
16151 | vrp_int_const_binop. | |
16152 | Rewrite to work on trees. | |
16153 | (extract_range_from_multiplicative_op_1): Abstract code to... | |
16154 | (wide_int_range_min_max): ...here. | |
16155 | (wide_int_range_cross_product): ...and here. | |
16156 | (extract_range_from_binary_expr_1): Abstract overflow code to... | |
16157 | (wide_int_range_mult_wrapping): ...here. | |
16158 | * tree-vrp.h (wide_int_range_cross_product): New. | |
16159 | (wide_int_range_mult_wrapping): New. | |
16160 | ||
16161 | 2018-07-19 Andrew Senkevich <andrew.senkevich@intel.com> | |
16162 | Julia Koval <julia.koval@intel.com> | |
16163 | ||
16164 | * config/i386/x86-tune-costs.h (skylake_memcpy, | |
16165 | skylake_memset): Replace rep_prefix with unrolling for size 512. | |
16166 | ||
16167 | 2018-07-18 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16168 | ||
16169 | PR middle-end/86544 | |
16170 | * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle | |
16171 | comparision with EQ_EXPR in last stmt. | |
16172 | ||
16173 | 2018-07-18 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
16174 | ||
16175 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename | |
16176 | this subsection to "PowerPC AltiVec/VSX Built-in Functions". | |
16177 | (PowerPC AltiVec/VSX Built-in Functions): New name for subsection | |
16178 | previously known as "PowerPC AltiVec Built-in Functions". Move | |
16179 | some material to new subsubsections "PowerPC AltiVec Built-in | |
16180 | Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on | |
16181 | ISA 2.07". | |
16182 | (PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection. | |
16183 | (PowerPC Altivec Built-in Functions on ISA 2.06): Likewise. | |
16184 | (PowerPC Altivec Built-in Functions on ISA 2.07): Likewise. | |
16185 | (PowerPC Altivec Built-in Functions on ISA 3.0): Likewise. | |
16186 | ||
16187 | 2018-07-18 Richard Biener <rguenther@suse.de> | |
16188 | ||
16189 | PR tree-optimization/86557 | |
16190 | * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle | |
16191 | EXACT_DIV_EXPR. | |
16192 | ||
16193 | 2018-07-18 Ilya Leoshkevich <iii@linux.ibm.com> | |
16194 | ||
16195 | * config/s390/s390.c (s390_function_profiler): Generate CFI. | |
16196 | ||
16197 | 2018-07-17 Jeff Law <law@redhat.com> | |
16198 | ||
16199 | * config/arm/arm.c (get_label_padding): Update for recent | |
16200 | changes to label_to_alignment. | |
16201 | ||
16202 | PR tree-optimization/86010 | |
16203 | * tree-ssa-dse.c (compute_trims): Fix typo/thinko. | |
16204 | ||
16205 | * config/mips/mips.c (vr4130_align_insns): Update for recent | |
16206 | changes to label_to_alignment. | |
16207 | ||
16208 | * config/frv/frv.c (frv_label_align): Update for recent changes | |
16209 | to label_to_alignment. | |
16210 | ||
16211 | * config/nios2/nios2.c (nios2_label_align): Update for recent | |
16212 | changes which dropped ALIGN_LABELS_LOG. | |
16213 | ||
16214 | 2018-07-17 Andreas Schwab <schwab@linux-m68k.org> | |
16215 | ||
16216 | * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) | |
16217 | (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. | |
16218 | ||
16219 | 2018-07-17 Claudiu Zissulescu <claziss@synopsys.com> | |
16220 | ||
16221 | * config/arc/arc.c (arc_label_align): Use align_labels instead of | |
16222 | deprecated align_labels_log. | |
16223 | ||
16224 | 2018-07-17 Richard Biener <rguenther@suse.de> | |
16225 | ||
16226 | PR lto/86456 | |
16227 | * dwarf2out.c (init_sections_and_labels): Always generate | |
16228 | a debug_line_str_section for early LTO debug. | |
16229 | (dwarf2out_finish): Reset debug_line_str_hash output early. | |
16230 | Bump counter for extra dwarf5 .debug_loc labels to not conflict | |
16231 | with fat LTO part. | |
16232 | (dwarf2out_early_finish): Output debug_line_str. | |
16233 | ||
16234 | 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> | |
16235 | ||
16236 | * config/s390/s390.c (preferred_la_operand_p): Do not use LA with | |
16237 | index register on z196 or later. | |
16238 | ||
16239 | 2018-07-17 Robin Dapp <rdapp@linux.ibm.com> | |
16240 | ||
16241 | * config/s390/s390.c (s390_default_align): Set default function | |
16242 | alignment to 16. | |
16243 | (s390_override_options_after_change): Call s390_default align. | |
16244 | (s390_option_override_internal): Call s390_default_align. | |
16245 | (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. | |
16246 | ||
16247 | 2018-07-17 Jakub Jelinek <jakub@redhat.com> | |
16248 | ||
16249 | PR middle-end/86542 | |
16250 | * omp-low.c (create_task_copyfn): Copy over also fields corresponding | |
16251 | to _looptemp_ clauses, other than the first two. | |
16252 | ||
16253 | 2018-07-17 Martin Liska <mliska@suse.cz> | |
16254 | ||
16255 | * opts.c: Do not enable OPT_falign_* for -Os. | |
16256 | ||
16257 | 2018-07-17 Martin Liska <mliska@suse.cz> | |
16258 | ||
16259 | * align.h (MAX_CODE_ALIGN): New. | |
16260 | (MAX_CODE_ALIGN_VALUE): New. | |
16261 | * common/config/i386/i386-common.c (ix86_handle_option): | |
16262 | (MAX_CODE_ALIGN): Moved to align.h. | |
16263 | * final.c (MAX_CODE_ALIGN): Likewise. | |
16264 | * opts.c (parse_and_check_align_values): | |
16265 | (MAX_CODE_ALIGN): Likewise. | |
16266 | (MAX_CODE_ALIGN_VALUE): Likewise. | |
16267 | ||
16268 | 2018-07-17 Martin Liska <mliska@suse.cz> | |
16269 | ||
16270 | * config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing | |
16271 | in order to fulfil coding style. | |
16272 | * config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise. | |
16273 | * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
16274 | * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. | |
16275 | * config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise. | |
16276 | * config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise. | |
16277 | * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise. | |
16278 | * config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise. | |
16279 | * config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise. | |
16280 | (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
16281 | ||
16282 | 2018-07-17 Martin Liska <mliska@suse.cz> | |
16283 | ||
16284 | * align.h: New file. | |
16285 | * config/alpha/alpha.c (alpha_align_insns_1): Use align_functions | |
16286 | directly. | |
16287 | * config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type | |
16288 | align_flags of label_to_alignment. | |
16289 | * config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into | |
16290 | align_flags class. | |
16291 | * config/m68k/m68k.c: Do not use removed align_labels_value and | |
16292 | align_loops_value. | |
16293 | * config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class. | |
16294 | (LOOP_ALIGN): Likewise. | |
16295 | (LABEL_ALIGN): Likewise. | |
16296 | * config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): | |
16297 | Remove not used macro. | |
16298 | (rs6000_loop_align): Change return type to align_flags. | |
16299 | (rs6000_loop_align_max_skip): Remove. | |
16300 | * config/rs6000/rs6000-protos.h (rs6000_loop_align): | |
16301 | Change return type to align_flags. | |
16302 | * config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): | |
16303 | Remove not used macro. | |
16304 | (rs6000_loop_align): Change return type to align_flags. | |
16305 | (rs6000_loop_align_max_skip): Remove. | |
16306 | * config/rx/rx.h (JUMP_ALIGN): Wrap integer values | |
16307 | * config/rx/rx-protos.h (rx_align_for_label): Make it | |
16308 | static function. | |
16309 | * config/rx/rx.c (rx_align_for_label): Change return type | |
16310 | to align_flags. | |
16311 | (rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP | |
16312 | macro definitions. | |
16313 | into align_flags class. | |
16314 | (LABEL_ALIGN): Likewise. | |
16315 | (LOOP_ALIGN): Likewise. | |
16316 | * config/s390/s390.c (s390_label_align): Use align_flags | |
16317 | class member. | |
16318 | (s390_asm_output_function_label): Likewise. | |
16319 | * config/sh/sh.c (sh_override_options_after_change): | |
16320 | Use align_flags class directly without macros. | |
16321 | (find_barrier): Likewise. | |
16322 | (barrier_align): Likewise. | |
16323 | (sh_loop_align): Likewise. | |
16324 | * config/spu/spu.c (spu_option_override): | |
16325 | Use align_flags_tuple::get_value instead of removed macros. | |
16326 | (spu_sched_init): Likewise. | |
16327 | * config/spu/spu.h (GTY): Likewise. | |
16328 | * config/visium/visium.c (visium_option_override): | |
16329 | Set "8" as default secondary alignment. | |
16330 | * config/visium/visium.h (SUBALIGN_LOG): Define to 3 | |
16331 | in order to guarantee secondary alignment of 8. | |
16332 | * coretypes.h: Include align.h header file. | |
16333 | * doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP, | |
16334 | TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP | |
16335 | and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros. | |
16336 | * doc/tm.texi.in: Likewise. | |
16337 | * final.c (struct label_alignment): Remove not used structure. | |
16338 | (LABEL_ALIGN): Change type to align_flags. | |
16339 | (LOOP_ALIGN): Likewise. | |
16340 | (JUMP_ALIGN): Likewise. | |
16341 | (default_loop_align_max_skip): Remove. | |
16342 | (default_label_align_max_skip): Likewise. | |
16343 | (default_jump_align_max_skip): Likewise. | |
16344 | (default_label_align_after_barrier_max_skip): | |
16345 | (LABEL_TO_ALIGNMENT): Change to access label_align vector. | |
16346 | (LABEL_TO_MAX_SKIP): Remove. | |
16347 | (label_to_alignment): Return align_flags type instead of integer. | |
16348 | (label_to_max_skip): Remove. | |
16349 | (align_fuzz): Use align_flags type. | |
16350 | (compute_alignments): Use align_flags type and use align_flags::max | |
16351 | to combine multiple alignments. | |
16352 | (grow_label_align): Grow vec instead of C array. | |
16353 | (update_alignments): Assign just LABEL_TO_ALIGNMENT. | |
16354 | (shorten_branches): Use align_flags type and use align_flags::max | |
16355 | to combine multiple alignments. | |
16356 | (final_scan_insn_1): Remove usage of secondary alignment that comes | |
16357 | from label alignment, but instead use proper secondary alignment | |
16358 | which is computed in grow_label_align. | |
16359 | * flags.h (struct align_flags_tuple): Move to align.h. | |
16360 | (struct align_flags): Likewise. | |
16361 | (state_align_loops): Rename to align_loops. | |
16362 | (state_align_jumps): Rename to align_jumps. | |
16363 | (state_align_labels): Rename to align_labels. | |
16364 | (state_align_functions): Rename to align_functions. | |
16365 | (align_loops_log): Remove. | |
16366 | (align_jumps_log): Remove. | |
16367 | (align_labels_log): Remove. | |
16368 | (align_functions_log): Remove. | |
16369 | (align_loops_max_skip): Remove. | |
16370 | (align_jumps_max_skip): Remove. | |
16371 | (align_labels_max_skip): Remove. | |
16372 | (align_functions_max_skip): Remove. | |
16373 | (align_loops_value): Remove. | |
16374 | (align_jumps_value): Remove. | |
16375 | (align_labels_value): Remove. | |
16376 | (align_functions_value): Remove. | |
16377 | * output.h (label_to_alignment): Change return type to align_flags. | |
16378 | (label_to_max_skip): Remove. | |
16379 | * target.def: Remove loop_align_max_skip, label_align_max_skip, | |
16380 | jump_align_max_skip macros. | |
16381 | * targhooks.h (default_loop_align_max_skip): Remove. | |
16382 | (default_label_align_max_skip): Likewise. | |
16383 | (default_jump_align_max_skip): Likewise. | |
16384 | (default_label_align_after_barrier_max_skip): Remove. | |
16385 | * toplev.c (read_log_maxskip): Use ::normalize function. | |
16386 | (parse_N_M): Remove not used argument and also call ::normalize. | |
16387 | (parse_alignment_opts): Do not pass unused arguments. | |
16388 | * varasm.c (assemble_start_function): Use directly align_functions | |
16389 | instead of removed macros. | |
16390 | * system.h: Do not poison removed macros. | |
16391 | ||
16392 | 2018-07-17 Jakub Jelinek <jakub@redhat.com> | |
16393 | ||
16394 | PR middle-end/86539 | |
16395 | * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init | |
16396 | and cond temporaries don't have reference type if iterator has | |
16397 | pointer type. For init use &for_pre_body instead of pre_p if | |
16398 | for_pre_body is non-empty. | |
16399 | ||
16400 | 2018-07-16 Segher Boessenkool <segher@kernel.crashing.org> | |
16401 | ||
16402 | * config/rs6000/rs6000.md (trunc<mode>sf2): Expand truncates of | |
16403 | double-double modes to SFmode directly directly. | |
16404 | (trunc<mode>sf2_fprs): Delete. | |
16405 | ||
16406 | 2018-07-16 Segher Boessenkool <segher@kernel.crashing.org> | |
16407 | ||
16408 | * config/rs6000/rs6000.c (init_float128_ibm): Use the correct names | |
16409 | for conversions between IFmode and the decimal floating point modes. | |
16410 | (init_float128_ieee): Use the correct names for conversions between | |
16411 | KFmode and the decimal floating point modes. | |
16412 | ||
16413 | 2018-07-16 Segher Boessenkool <segher@kernel.crashing.org> | |
16414 | ||
16415 | * config/rs6000/rs6000.c (init_float128_ibm): Use more correct names | |
16416 | for the conversions between TDmode and IFmode. | |
16417 | (init_float128_ieee): Use more correct names for the conversions | |
16418 | between TDmode and KFmode. | |
16419 | ||
16420 | 2018-07-16 Jakub Jelinek <jakub@redhat.com> | |
16421 | ||
16422 | PR tree-optimization/86526 | |
16423 | * builtins.c (expand_builtin_memcmp): Formatting fixes. | |
16424 | (inline_expand_builtin_string_cmp): Likewise. | |
16425 | (inline_string_cmp): Likewise. Use c_readstr instead of | |
16426 | builtin_memcpy_read_str. Add unit_mode temporary. | |
16427 | ||
16428 | 2018-07-16 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16429 | ||
16430 | PR middle-end/86528 | |
16431 | * builtins.c (check_access): Bail out if range[0] is no INTEGER_CST. | |
16432 | * expr.c (string_constant): Fix the element size of ARRAY_TYPE. | |
16433 | ||
16434 | 2018-07-16 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
16435 | ||
16436 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): | |
16437 | Alphabetize prototypes of built-in functions, separating out | |
16438 | built-in functions that are listed in this section but should be | |
16439 | described elsewhere. | |
16440 | ||
16441 | 2018-07-16 Uros Bizjak <ubizjak@gmail.com> | |
16442 | ||
16443 | PR target/86511 | |
16444 | * expmed.c (emit_store_flag): Do not emit setcc followed by a | |
16445 | conditional move when trapping comparison was split to a | |
16446 | non-trapping one (and vice versa). | |
16447 | ||
16448 | 2018-07-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
16449 | ||
16450 | * config/s390/s390.c (s390_function_profiler): Generate nops | |
16451 | instead of profiler call sequences. | |
16452 | * config/s390/s390.opt: Add the new option. | |
16453 | ||
16454 | 2018-07-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
16455 | ||
16456 | * config/s390/s390.c (s390_function_profiler): Generate | |
16457 | __mcount_loc section. | |
16458 | * config/s390/s390.opt: Add the new option. | |
16459 | ||
16460 | 2018-07-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
16461 | ||
16462 | * common.opt: Add the new warning. | |
16463 | * config/s390/s390.c (s390_function_profiler): Emit "brasl | |
16464 | %r0,__fentry__" when -mfentry is specified. | |
16465 | (s390_option_override_internal): Disallow -mfentry for 31-bit | |
16466 | CPUs. | |
16467 | * config/s390/s390.opt: Add the new option. | |
16468 | ||
16469 | 2018-07-16 Richard Biener <rguenther@suse.de> | |
16470 | ||
16471 | PR lto/86523 | |
16472 | * dwarf2out.c (dwarf2out_register_external_die): Assign DIE parents | |
16473 | for function-local FUNCTION_DECL and RESULT_DECL immediately. | |
16474 | ||
16475 | 2018-07-16 Martin Liska <mliska@suse.cz> | |
16476 | ||
16477 | PR ipa/86529 | |
16478 | * ipa-pure-const.c (malloc_candidate_p): Revert ::get | |
16479 | to ::get_create. | |
16480 | ||
16481 | 2017-07-16 Claudiu Zissulescu <claziss@synopsys.com> | |
16482 | ||
16483 | * config/arc/arcHS.md: Update ARCHS scheduling rules. | |
16484 | ||
16485 | 2017-07-16 Claudiu Zissulescu <claziss@synopsys.com> | |
16486 | ||
16487 | * config/arc/arc-arch.h (arc_tune_attr): Add new tune parameters | |
16488 | for ARCHS4x. | |
16489 | * config/arc/arc-cpus.def (hs4x): New cpu. | |
16490 | (hs4xd): Likewise. | |
16491 | * config/arc/arc-tables.opt: Regenerate. | |
16492 | * config/arc/arc.c (arc_sched_issue_rate): New function. | |
16493 | (TARGET_SCHED_ISSUE_RATE): Define. | |
16494 | (TARGET_SCHED_EXPOSED_PIPELINE): Likewise. | |
16495 | * config/arc/arc.md (attr type): Add fpu_fuse, fpu_sdiv, fpu_ddiv, | |
16496 | fpu_cvt. | |
16497 | (attr tune): Add ARCHS4x tune values. | |
16498 | (attr tune_dspmpy): Define. | |
16499 | (*tst): Correct instruction type. | |
16500 | * config/arc/arcHS.md: Don't use this automaton for ARCHS4x cpus. | |
16501 | * config/arc/arcHS4x.md: New file. | |
16502 | * config/arc/fpu.md: Update instruction type attributes. | |
16503 | * config/arc/t-multilib: Regenerate. | |
16504 | ||
16505 | 2018-07-16 Tom de Vries <tdevries@suse.de> | |
16506 | ||
16507 | PR debug/86455 | |
16508 | * var-tracking.c (vt_initialize): Fix pre_dec handling. | |
16509 | ||
16510 | 2018-07-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
16511 | ||
16512 | * config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add | |
16513 | early clobber. | |
16514 | ||
16515 | 2018-07-16 Eric Botcazou <ebotcazou@adacore.com> | |
16516 | ||
16517 | PR tree-optimization/86514 | |
16518 | * tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a | |
16519 | conversion to a boolean type from a type with greater precision. | |
16520 | ||
16521 | 2018-07-16 Tom de Vries <tdevries@suse.de> | |
16522 | ||
16523 | * var-tracking.c (vt_initialize): Print adjusted insn slim if | |
16524 | dump_flags request TDF_SLIM. | |
16525 | ||
16526 | 2018-07-16 Aldy Hernandez <aldyh@redhat.com> | |
16527 | ||
16528 | * fold-const.c (int_const_binop_1): Abstract... | |
16529 | (wide_int_binop): ...wide int code here. | |
16530 | (poly_int_binop): ...poly int code here. | |
16531 | Abstract the rest of int_const_binop_1 into int_const_binop. | |
16532 | * fold-const.h (wide_int_binop): New. | |
16533 | * tree-vrp.c (vrp_int_const_binop): Call wide_int_binop. | |
16534 | Remove useless PLUS/MINUS_EXPR case. | |
16535 | (zero_nonzero_bits_from_vr): Move wide int code... | |
16536 | (zero_nonzero_bits_from_bounds): ...here. | |
16537 | (extract_range_from_binary_expr_1): Move mask optimization code... | |
16538 | (range_easy_mask_min_max): ...here. | |
16539 | * tree-vrp.h (zero_nonzero_bits_from_bounds): New. | |
16540 | (range_easy_mask_min_max): New. | |
16541 | ||
16542 | 2018-07-15 Jeff Law <law@redhat.com> | |
16543 | ||
16544 | PR target/85993 | |
16545 | * config/sh/sh.c (output_mi_thunk): Remove dead conditional | |
16546 | block. | |
16547 | ||
16548 | 2018-07-14 Jim Wilson <jimw@sifive.com> | |
16549 | ||
16550 | * config/riscv/linux.h (TARGET_ASM_FILE_END): New. | |
16551 | ||
16552 | 2018-07-14 Paul Koning <ni1d@arrl.net> | |
16553 | ||
16554 | * config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes. | |
16555 | ||
16556 | 2018-07-13 Jan Hubicka <hubicka@ucw.cz> | |
16557 | ||
16558 | * lto-streamer-out.c (copy_function_or_variable): Dump info about | |
16559 | copying section. | |
16560 | ||
16561 | 2018-07-13 Bill Schmidt <wschmidt@linux.ibm.com> | |
16562 | Steve Munroe <munroesj52@gmail.com> | |
16563 | ||
16564 | * config/rs6000/emmintrin.h (_mm_and_si128): New function. | |
16565 | (_mm_andnot_si128): Likewise. | |
16566 | (_mm_or_si128): Likewise. | |
16567 | (_mm_xor_si128): Likewise. | |
16568 | ||
16569 | 2018-07-13 Qing Zhao <qing.zhao@oracle.com> | |
16570 | ||
16571 | PR middle-end/78809 | |
16572 | * builtins.c (expand_builtin_memcmp): Inline the calls first | |
16573 | when result_eq is false. | |
16574 | (expand_builtin_strcmp): Inline the calls first. | |
16575 | (expand_builtin_strncmp): Likewise. | |
16576 | (inline_string_cmp): New routine. Expand a string compare | |
16577 | call by using a sequence of char comparison. | |
16578 | (inline_expand_builtin_string_cmp): New routine. Inline expansion | |
16579 | a call to str(n)cmp/memcmp. | |
16580 | * doc/invoke.texi (--param builtin-string-cmp-inline-length): | |
16581 | New option. | |
16582 | * params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New. | |
16583 | ||
16584 | 2018-07-13 Richard Earnshaw <rearnsha@arm.com> | |
16585 | ||
16586 | * config/arm/driver-arm.c: Include arm-native.h. | |
16587 | (host_detect_local_cpu): Use auto-generated data tables. | |
16588 | (vendors, arm_cpu_table): Delete. Move part information to ... | |
16589 | * config/arm/arm-cpus.in: ... here. | |
16590 | * config/arm/parsecpu.awk (gen_native): New function. | |
16591 | (vendor, part): New CPU fields. | |
16592 | (END): Add support for building the native CPU detection tables. | |
16593 | * config/arm/t-arm (arm-native.h): Add build rule. | |
16594 | (driver-arm.o): Add dependency on arm-native.h. | |
16595 | ||
16596 | 2018-07-13 Richard Biener <rguenther@suse.de> | |
16597 | ||
16598 | PR middle-end/85974 | |
16599 | * match.pd (addr1 - addr2): Allow either of the operand to | |
16600 | have a conversion. | |
16601 | ||
16602 | 2018-07-13 Tom de Vries <tdevries@suse.de> | |
16603 | ||
16604 | * tree-inline.c (remap_ssa_name): Save and reuse debug exprs generated | |
16605 | in remap_ssa_name. | |
16606 | ||
16607 | 2018-07-13 Jackson Woodruff <jackson.woodruff@arm.com> | |
16608 | ||
16609 | * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): Use | |
16610 | arrays instead of numbered variables. | |
16611 | ||
16612 | 2018-07-13 Eric Botcazou <ebotcazou@adacore.com> | |
16613 | ||
16614 | * config/sparc/sparc-protos.h (sparc_compute_frame_size): Delete. | |
16615 | * config/sparc/sparc.c (sparc_compute_frame_size): Make static. | |
16616 | ||
16617 | 2018-07-13 Richard Biener <rguenther@suse.de> | |
16618 | ||
16619 | PR debug/86452 | |
16620 | * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for | |
16621 | instead of get_context_die. | |
16622 | ||
16623 | 2018-07-13 Kugan Vivekanandarajah <kuganv@linaro.org> | |
16624 | Richard Biener <rguenther@suse.de> | |
16625 | ||
16626 | PR middle-end/86489 | |
16627 | * tree-ssa-loop-niter.c (number_of_iterations_popcount): Check | |
16628 | that the loop latch destination where phi is defined. | |
16629 | ||
16630 | 2018-07-12 Kito Cheng <kito.cheng@gmail.com> | |
16631 | ||
16632 | * config/riscv/riscv.c (enum riscv_privilege_levels): Add UNKNOWN_MODE. | |
16633 | (riscv_expand_epilogue): Add assertion to check interrupt mode. | |
16634 | (riscv_set_current_function): Extract getting interrupt type to new | |
16635 | function. | |
16636 | (riscv_get_interrupt_type): New function. | |
16637 | (riscv_merge_decl_attributes): New function, checking interrupt type is | |
16638 | same. | |
16639 | (TARGET_MERGE_DECL_ATTRIBUTES): Define. | |
16640 | ||
16641 | 2018-07-12 Paul Koning <ni1d@arrl.net> | |
16642 | ||
16643 | * config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set | |
16644 | directive. | |
16645 | ||
16646 | 2018-07-12 Paul Koning <ni1d@arrl.net> | |
16647 | ||
16648 | * doc/rtl.texi (REG_NONNEG): Remove decrement and branch until | |
16649 | zero reference, add doloop_end instead. | |
16650 | * doc/md.texi (decrement_and_branch_until_zero): Remove. | |
16651 | (Looping patterns): Remove decrement_and_branch_until_zero. Add | |
16652 | detail for doloop_end. | |
16653 | ||
16654 | 2018-07-12 Martin Sebor <msebor@redhat.com> | |
16655 | ||
16656 | PR c/86453 | |
16657 | * attribs.c (decl_attributes): Reject conflicting attributes before | |
16658 | calling attribute handlers. | |
16659 | ||
16660 | 2018-07-12 Jan Hubicka <hubicka@ucw.cz> | |
16661 | ||
16662 | * dumpfile.c (gcc::dump_manager::get_dump_file_name): Add PART | |
16663 | parameter. | |
16664 | (gcc::dump_manager::get_dump_file_name): likewise. | |
16665 | (dump_begin): Likewise. | |
16666 | * dumpfile.h (dump_begin): Update prototype. | |
16667 | (gcc::dump_manager::get_dump_file_name, | |
16668 | gcc::dump_manager::get_dump_file_name): Update prototype. | |
16669 | ||
16670 | 2018-07-12 Richard Sandiford <richard.sandiford@linaro.org> | |
16671 | ||
16672 | * internal-fn.h (vectorizable_internal_fn_p): New function. | |
16673 | * tree-vect-slp.c (compatible_calls_p): Likewise. | |
16674 | (vect_build_slp_tree_1): Remove nops argument. Handle calls | |
16675 | to internal functions. | |
16676 | (vect_build_slp_tree_2): Update call to vect_build_slp_tree_1. | |
16677 | ||
16678 | 2018-07-12 Richard Sandiford <richard.sandiford@linaro.org> | |
16679 | ||
16680 | * fold-const.h (inverse_conditions_p): Declare. | |
16681 | * fold-const.c (inverse_conditions_p): New function. | |
16682 | * match.pd: Use inverse_conditions_p. Add folds of view_converts | |
16683 | that test the inverse condition of a conditional internal function. | |
16684 | * internal-fn.h (vectorized_internal_fn_supported_p): Declare. | |
16685 | * internal-fn.c (internal_fn_mask_index): Handle conditional | |
16686 | internal functions. | |
16687 | (vectorized_internal_fn_supported_p): New function. | |
16688 | * tree-if-conv.c: Include internal-fn.h and fold-const.h. | |
16689 | (any_pred_load_store): Replace with... | |
16690 | (need_to_predicate): ...this new variable. | |
16691 | (redundant_ssa_names): New variable. | |
16692 | (ifcvt_can_use_mask_load_store): Move initial checks to... | |
16693 | (ifcvt_can_predicate): ...this new function. Handle tree codes | |
16694 | for which a conditional internal function exists. | |
16695 | (if_convertible_gimple_assign_stmt_p): Use ifcvt_can_predicate | |
16696 | instead of ifcvt_can_use_mask_load_store. Update after variable | |
16697 | name change. | |
16698 | (predicate_load_or_store): New function, split out from | |
16699 | predicate_mem_writes. | |
16700 | (check_redundant_cond_expr): New function. | |
16701 | (value_available_p): Likewise. | |
16702 | (predicate_rhs_code): Likewise. | |
16703 | (predicate_mem_writes): Rename to... | |
16704 | (predicate_statements): ...this. Use predicate_load_or_store | |
16705 | and predicate_rhs_code. | |
16706 | (combine_blocks, tree_if_conversion): Update after above name changes. | |
16707 | (ifcvt_local_dce): Handle redundant_ssa_names. | |
16708 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Handle | |
16709 | general conditional functions. | |
16710 | * tree-vect-stmts.c (vectorizable_call): Likewise. | |
16711 | ||
16712 | 2018-07-12 Richard Sandiford <richard.sandiford@linaro.org> | |
16713 | Alan Hayward <alan.hayward@arm.com> | |
16714 | David Sherwood <david.sherwood@arm.com> | |
16715 | ||
16716 | * internal-fn.h (can_interpret_as_conditional_op_p): Declare. | |
16717 | * internal-fn.c (can_interpret_as_conditional_op_p): New function. | |
16718 | * tree-ssa-math-opts.c (convert_mult_to_fma_1): Handle conditional | |
16719 | plus and minus and convert them into IFN_COND_FMA-based sequences. | |
16720 | (convert_mult_to_fma): Handle conditional plus and minus. | |
16721 | ||
16722 | 2018-07-12 Richard Sandiford <richard.sandiford@linaro.org> | |
16723 | ||
16724 | * doc/md.texi (cond_fma, cond_fms, cond_fnma, cond_fnms): Document. | |
16725 | * optabs.def (cond_fma_optab, cond_fms_optab, cond_fnma_optab) | |
16726 | (cond_fnms_optab): New optabs. | |
16727 | * internal-fn.def (COND_FMA, COND_FMS, COND_FNMA, COND_FNMS): New | |
16728 | internal functions. | |
16729 | (FMA): Use DEF_INTERNAL_FLT_FN rather than DEF_INTERNAL_FLT_FLOATN_FN. | |
16730 | * internal-fn.h (get_conditional_internal_fn): Declare. | |
16731 | (get_unconditional_internal_fn): Likewise. | |
16732 | * internal-fn.c (cond_ternary_direct): New macro. | |
16733 | (expand_cond_ternary_optab_fn): Likewise. | |
16734 | (direct_cond_ternary_optab_supported_p): Likewise. | |
16735 | (FOR_EACH_COND_FN_PAIR): Likewise. | |
16736 | (get_conditional_internal_fn): New function. | |
16737 | (get_unconditional_internal_fn): Likewise. | |
16738 | * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 5. | |
16739 | (gimple_match_op::gimple_match_op): Add a new overload for 5 | |
16740 | operands. | |
16741 | (gimple_match_op::set_op): Likewise. | |
16742 | (gimple_resimplify5): Declare. | |
16743 | * genmatch.c (decision_tree::gen): Generate simplifications for | |
16744 | 5 operands. | |
16745 | * gimple-match-head.c (gimple_simplify): Define an overload for | |
16746 | 5 operands. Handle calls with 5 arguments in the top-level overload. | |
16747 | (convert_conditional_op): Handle conversions from unconditional | |
16748 | internal functions to conditional ones. | |
16749 | (gimple_resimplify5): New function. | |
16750 | (build_call_internal): Pass a fifth operand. | |
16751 | (maybe_push_res_to_seq): Likewise. | |
16752 | (try_conditional_simplification): Try converting conditional | |
16753 | internal functions to unconditional internal functions. | |
16754 | Handle 3-operand unconditional forms. | |
16755 | * match.pd (UNCOND_TERNARY, COND_TERNARY): Operator lists. | |
16756 | Define ternary equivalents of the current rules for binary conditional | |
16757 | internal functions. | |
16758 | * config/aarch64/aarch64.c (aarch64_preferred_else_value): Handle | |
16759 | ternary operations. | |
16760 | * config/aarch64/iterators.md (UNSPEC_COND_FMLA, UNSPEC_COND_FMLS) | |
16761 | (UNSPEC_COND_FNMLA, UNSPEC_COND_FNMLS): New unspecs. | |
16762 | (optab): Handle them. | |
16763 | (SVE_COND_FP_TERNARY): New int iterator. | |
16764 | (sve_fmla_op, sve_fmad_op): New int attributes. | |
16765 | * config/aarch64/aarch64-sve.md (cond_<optab><mode>) | |
16766 | (*cond_<optab><mode>_2, *cond_<optab><mode_4) | |
16767 | (*cond_<optab><mode>_any): New SVE_COND_FP_TERNARY patterns. | |
16768 | ||
16769 | 2018-07-12 Richard Sandiford <richard.sandiford@linaro.org> | |
16770 | ||
16771 | * target.def (preferred_else_value): New target hook. | |
16772 | * doc/tm.texi.in (TARGET_PREFERRED_ELSE_VALUE): New hook. | |
16773 | * doc/tm.texi: Regenerate. | |
16774 | * targhooks.h (default_preferred_else_value): Declare. | |
16775 | * targhooks.c (default_preferred_else_value): New function. | |
16776 | * internal-fn.h (conditional_internal_fn_code): Declare. | |
16777 | * internal-fn.c (FOR_EACH_CODE_MAPPING): New macro. | |
16778 | (get_conditional_internal_fn): Use it. | |
16779 | (conditional_internal_fn_code): New function. | |
16780 | * gimple-match.h (gimple_match_cond): New struct. | |
16781 | (gimple_match_op): Add a cond member function. | |
16782 | (gimple_match_op::gimple_match_op): Update all forms to take a | |
16783 | gimple_match_cond. | |
16784 | * genmatch.c (expr::gen_transform): Use the same condition as res_op | |
16785 | for the suboperation, but don't specify a particular else_value. | |
16786 | * tree-ssa-sccvn.c (vn_nary_simplify, vn_reference_lookup_3) | |
16787 | (visit_nary_op, visit_reference_op_load): Pass | |
16788 | gimple_match_cond::UNCOND to the gimple_match_op constructor. | |
16789 | * gimple-match-head.c: Include tree-eh.h | |
16790 | (convert_conditional_op): New function. | |
16791 | (maybe_resimplify_conditional_op): Likewise. | |
16792 | (gimple_resimplify1): Call maybe_resimplify_conditional_op. | |
16793 | (gimple_resimplify2): Likewise. | |
16794 | (gimple_resimplify3): Likewise. | |
16795 | (gimple_resimplify4): Likewise. | |
16796 | (maybe_push_res_to_seq): Return null for conditional operations. | |
16797 | (try_conditional_simplification): New function. | |
16798 | (gimple_simplify): Call it. Pass conditions to the gimple_match_op | |
16799 | constructor. | |
16800 | * match.pd: Fold VEC_COND_EXPRs of an IFN_COND_* call to a new | |
16801 | IFN_COND_* call. | |
16802 | * config/aarch64/aarch64.c (aarch64_preferred_else_value): New | |
16803 | function. | |
16804 | (TARGET_PREFERRED_ELSE_VALUE): Redefine. | |
16805 | ||
16806 | 2018-07-12 Jan Hubicka <hubicka@ucw.cz> | |
16807 | ||
16808 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream | |
16809 | DECL_FCONTEXT | |
16810 | (hash_tree): Do not hash DECL_FCONTEXT | |
16811 | * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): | |
16812 | Do not stream DECL_FCONTEXT. | |
16813 | * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. | |
16814 | * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT. | |
16815 | ||
16816 | 2018-07-12 Richard Biener <rguenther@suse.de> | |
16817 | ||
16818 | PR debug/86462 | |
16819 | * dwarf2out.c (gen_block_die): Only output blocks when they have | |
16820 | at least one !DECL_IGNORED_P variable. | |
16821 | ||
16822 | 2018-07-12 Richard Biener <rguenther@suse.de> | |
16823 | ||
16824 | PR target/84829 | |
16825 | * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC): | |
16826 | Remove -mieee-fp handling. | |
16827 | ||
16828 | 2018-07-12 Richard Biener <rguenther@suse.de> | |
16829 | ||
16830 | * tree-ssa-sccvn.c (vn_lookup_simplify_result): Remove bogus | |
16831 | left-over from last patch. | |
16832 | ||
16833 | 2018-07-12 Jakub Jelinek <jakub@redhat.com> | |
16834 | ||
16835 | PR tree-optimization/86492 | |
16836 | * gimple-ssa-store-merging.c | |
16837 | (imm_store_chain_info::coalesce_immediate_stores): Call | |
16838 | check_no_overlap even for the merge_overlapping case. Formatting fix. | |
16839 | ||
16840 | 2018-07-12 Richard Biener <rguenther@suse.de> | |
16841 | ||
16842 | PR middle-end/86479 | |
16843 | * fold-const.c (fold_binary_op_with_conditional_arg): Do not | |
16844 | move possibly trapping operations into the conditional. | |
16845 | ||
16846 | 2018-07-12 Richard Biener <rguenther@suse.de> | |
16847 | ||
16848 | * tree-ssa-sccvn.c (mprts_hook_cnt): Remove. | |
16849 | (vn_lookup_simplify_result): Remove recursion limit applied | |
16850 | here. | |
16851 | (vn_nary_build_or_lookup_1): Adjust. | |
16852 | (try_to_simplify): Likewise. | |
16853 | * gimple-match-head.c (gimple_resimplify1): Instead apply one | |
16854 | here. | |
16855 | (gimple_resimplify2): Likewise. | |
16856 | (gimple_resimplify3): Likewise. | |
16857 | (gimple_resimplify4): Likewise. | |
16858 | ||
16859 | 2018-07-11 Jakub Jelinek <jakub@redhat.com> | |
16860 | ||
16861 | * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask): | |
16862 | Use __mmask64 type instead of __mmask8 for __M argument. | |
16863 | * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64, | |
16864 | _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for | |
16865 | __U argument. | |
16866 | (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of | |
16867 | __mmask16 for __M argument. | |
16868 | (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4, | |
16869 | _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument | |
16870 | to __mmask16 instead of __mmask8. | |
16871 | * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps, | |
16872 | _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps, | |
16873 | _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps, | |
16874 | _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type | |
16875 | instead of __mmask16 for __U argument. | |
16876 | * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use | |
16877 | __mmask16 instead of __mmask8 for __U argument. | |
16878 | (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for | |
16879 | __U argument. | |
16880 | (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of | |
16881 | __mmask16. | |
16882 | (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U | |
16883 | argument. | |
16884 | (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for | |
16885 | __U argument. | |
16886 | (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of | |
16887 | __mmask16. | |
16888 | (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead | |
16889 | of __mmask16. | |
16890 | (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for | |
16891 | __U argument. | |
16892 | (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for | |
16893 | __U argument. | |
16894 | (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for | |
16895 | __U argument. | |
16896 | (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for | |
16897 | __U argument. | |
16898 | (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask, | |
16899 | _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change | |
16900 | return type as well as __M argument type and all casts from __mmask8 | |
16901 | to __mmask32. | |
16902 | (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask, | |
16903 | _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change | |
16904 | return type as well as __M argument type and all casts from __mmask8 | |
16905 | to __mmask16. | |
16906 | (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask, | |
16907 | _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change | |
16908 | return type as well as __M argument type and all casts from __mmask8 | |
16909 | to __mmask32. | |
16910 | (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask, | |
16911 | _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change | |
16912 | return type as well as __M argument type and all casts from __mmask8 | |
16913 | to __mmask16. | |
16914 | * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32, | |
16915 | _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of | |
16916 | __mmask16. | |
16917 | ||
16918 | 2018-07-11 Grazvydas Ignotas <notasas@gmail.com> | |
16919 | ||
16920 | * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask, | |
16921 | _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32 | |
16922 | for __U argument. | |
16923 | ||
16924 | 2018-07-11 Paul Koning <ni1d@arrl.net> | |
16925 | ||
16926 | * doc/md.texi (define_subst): Document how multiple occurrences of | |
16927 | the same argument in the replacement pattern are handled. | |
16928 | ||
16929 | 2018-07-11 Paul Koning <ni1d@arrl.net> | |
16930 | ||
16931 | * doc/extend.texi (Common Variable Attributes): Move "mode" into | |
16932 | alphabetical order. | |
16933 | (Common Type Attributes): Add "mode" attribute. | |
16934 | ||
16935 | 2018-07-11 Jan Hubicka <hubicka@ucw.cz> | |
16936 | ||
16937 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not | |
16938 | stream DECL_ORIGINAL_TYPE. | |
16939 | (DFS::DFS_write_tree_body): Drop hack handling local external decls. | |
16940 | (hash_tree): Do not walk DECL_ORIGINAL_TYPE. | |
16941 | * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): | |
16942 | Do not walk original type. | |
16943 | * tree-streamer-out.c (streamer_write_chain): Drop hack handling | |
16944 | external decls. | |
16945 | (write_ts_decl_non_common_tree_pointers): Do not stream | |
16946 | DECL_ORIGINAL_TYPE | |
16947 | * tree.c (free_lang_data_in_decl): Clear DECL_ORIGINAL_TYPE. | |
16948 | (find_decls_types_r): Do not walk DEC_ORIGINAL_TYPE. | |
16949 | ||
16950 | 2018-07-11 Aldy Hernandez <aldyh@redhat.com> | |
16951 | ||
16952 | * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not jump | |
16953 | thread twice from the same starting edge. | |
16954 | ||
16955 | 2018-07-11 Aldy Hernandez <aldyh@redhat.com> | |
16956 | ||
16957 | * vr-values.c (gimple_stmt_nonzero_p): Abstract common code to... | |
16958 | * gimple.c (gimple_call_nonnull_result_p): ...here... | |
16959 | (gimple_call_nonnull_arg): ...and here. | |
16960 | * gimple.h (gimple_call_nonnull_result_p): New. | |
16961 | (gimple_call_nonnull_arg): New. | |
16962 | ||
16963 | 2018-07-11 Richard Earnshaw <rearnsha@arm.com> | |
16964 | ||
16965 | * config/arm/arm-cpus.in: Move information from fpu field of each | |
16966 | cpu definition to the isa field. | |
16967 | * config/arm/parsecpu.awk (fpu): Delete match rule. | |
16968 | (gen_comm_data): Don't add bits from the CPU's FPU entry. | |
16969 | ||
16970 | 2018-07-11 Richard Biener <rguenther@suse.de> | |
16971 | ||
16972 | PR debug/86457 | |
16973 | * dwarf2out.c (init_sections_and_labels): Use | |
16974 | output_asm_line_debug_info consistently. | |
16975 | (dwarf2out_early_finish): Likewise. | |
16976 | (dwarf2out_finish): Remove DW_AT_stmt_list from early generated | |
16977 | type units. | |
16978 | ||
16979 | 2018-07-11 Richard Biener <rguenther@suse.de> | |
16980 | ||
16981 | * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): | |
16982 | Rework father_bb setting in a way to avoid propagating constants | |
16983 | multiple times on a loop body. | |
16984 | ||
16985 | 2018-07-10 Mark Wielaard <mark@klomp.org> | |
16986 | ||
16987 | PR debug/86459 | |
16988 | * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. | |
16989 | ||
16990 | 2018-07-10 Richard Biener <rguenther@suse.de> | |
16991 | ||
16992 | * hash-map.h (hash_map::iterator::operator*): Return | |
16993 | references to key and value. | |
16994 | ||
16995 | 2018-07-10 Jakub Jelinek <jakub@redhat.com> | |
16996 | ||
16997 | PR c++/86443 | |
16998 | * gimplify.c (find_combined_omp_for): Add DATA argument, in addition | |
16999 | to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers, | |
17000 | BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between. | |
17001 | (gimplify_omp_for): For composite loops, move outer | |
17002 | OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost | |
17003 | OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class | |
17004 | iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain | |
17005 | TREE_LIST for both the original class iterator and the "last" helper | |
17006 | var. Gimplify OMP_FOR_PRE_BODY before the outermost composite | |
17007 | loop, remember has_decl_expr from outer composite loops for the | |
17008 | innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT. | |
17009 | ||
17010 | 2018-07-09 Martin Sebor <msebor@redhat.com> | |
17011 | ||
17012 | PR middle-end/77357 | |
17013 | PR middle-end/86428 | |
17014 | * builtins.c (c_strlen): Avoid out-of-bounds warnings when | |
17015 | accessing implicitly initialized array elements. | |
17016 | * expr.c (string_constant): Handle string initializers of | |
17017 | character arrays within aggregates. | |
17018 | * gimple-fold.c (fold_array_ctor_reference): Add argument. | |
17019 | Store element offset. As a special case, handle zero size. | |
17020 | (fold_nonarray_ctor_reference): Same. | |
17021 | (fold_ctor_reference): Add argument. Store subobject offset. | |
17022 | * gimple-fold.h (fold_ctor_reference): Add argument. | |
17023 | ||
17024 | 2018-07-09 Paul Koning <ni1d@arrl.net> | |
17025 | ||
17026 | * config/pdp11/pdp11.c (pdp11_addr_cost): New function. | |
17027 | (pdp11_insn_cost): New function. | |
17028 | (pdp11_md_asm_adjust): New function. | |
17029 | (TARGET_INVALID_WITHIN_DOLOOP): Define. | |
17030 | (pdp11_rtx_costs): Update to match machine better. | |
17031 | (output_addr_const_pdp11): Correct format mismatch warnings. | |
17032 | * config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition. | |
17033 | * config/pdp11/pdp11.md: General change to add base_cost and/or | |
17034 | length attributes for use by new pdp11_insn_cost function. | |
17035 | (MIN_BRANCH): Correct definition. | |
17036 | (MIN_SOB): Ditto. | |
17037 | (doloop_end): Use standard pattern name for looping pattern. | |
17038 | (doloop_end_nocc): New. | |
17039 | (movsf): Add another constraint alternative. | |
17040 | (zero_extendqihi2): Add constraint alternatives for not in place | |
17041 | extend. | |
17042 | (zero_extendhisi2): Remove. | |
17043 | (shift patterns): Add CC handling variants. | |
17044 | (bswaphi2): New. | |
17045 | (bswapsi2): New. | |
17046 | (rothi3): New. | |
17047 | (define_peephole2): New peephole to recognize mov that sets CC for | |
17048 | subsequent test. | |
17049 | ||
17050 | 2018-07-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
17051 | ||
17052 | * config/sparc/sparc.c (sparc_fold_builtin) <SPARC_BUILTIN_PDIST, | |
17053 | SPARC_BUILTIN_PDISTN>: Adapt for signature change of wi::neg, | |
17054 | wi::add. | |
17055 | ||
17056 | 2018-07-09 Jakub Jelinek <jakub@redhat.com> | |
17057 | ||
17058 | PR c/86420 | |
17059 | * real.c (real_nextafter): Return true if result is denormal. | |
17060 | ||
17061 | 2018-07-09 Martin Liska <mliska@suse.cz> | |
17062 | ||
17063 | * common.opt: Add back wrongly removed attribute. | |
17064 | ||
17065 | 2018-07-09 Richard Biener <rguenther@suse.de> | |
17066 | ||
17067 | PR debug/86413 | |
17068 | * dwarf2out.c (gen_block_die): For an early generated DIE | |
17069 | always output high/low PC attributes. | |
17070 | ||
17071 | 2018-07-09 Tom de Vries <tdevries@suse.de> | |
17072 | ||
17073 | * cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL. | |
17074 | * tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping | |
17075 | onto VAR_DECL with abstract origin. | |
17076 | ||
17077 | 2018-07-07 Jim Wilson <jimw@sifive.com> | |
17078 | ||
17079 | * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New. | |
17080 | ||
17081 | 2018-07-07 Tom de Vries <tdevries@suse.de> | |
17082 | ||
17083 | * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL. | |
17084 | ||
17085 | 2018-07-07 Aldy Hernandez <aldyh@redhat.com> | |
17086 | ||
17087 | * tree-vrp.c (vrp_int_const_binop): Change overflow type to | |
17088 | overflow_type. | |
17089 | (combine_bound): Use wide-int overflow calculation instead of | |
17090 | rolling our own. | |
17091 | * calls.c (maybe_warn_alloc_args_overflow): Change overflow type to | |
17092 | overflow_type. | |
17093 | * fold-const.c (int_const_binop_2): Same. | |
17094 | (extract_muldiv_1): Same. | |
17095 | (fold_div_compare): Same. | |
17096 | (fold_abs_const): Same. | |
17097 | * match.pd: Same. | |
17098 | * poly-int.h (add): Same. | |
17099 | (sub): Same. | |
17100 | (neg): Same. | |
17101 | (mul): Same. | |
17102 | * predict.c (predict_iv_comparison): Same. | |
17103 | * profile-count.c (slow_safe_scale_64bit): Same. | |
17104 | * simplify-rtx.c (simplify_const_binary_operation): Same. | |
17105 | * tree-chrec.c (tree_fold_binomial): Same. | |
17106 | * tree-data-ref.c (split_constant_offset_1): Same. | |
17107 | * tree-if-conv.c (idx_within_array_bound): Same. | |
17108 | * tree-scalar-evolution.c (iv_can_overflow_p): Same. | |
17109 | * tree-ssa-phiopt.c (minmax_replacement): Same. | |
17110 | * tree-vect-loop.c (is_nonwrapping_integer_induction): Same. | |
17111 | * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same. | |
17112 | * vr-values.c (vr_values::adjust_range_with_scev): Same. | |
17113 | * wide-int.cc (wi::add_large): Same. | |
17114 | (wi::mul_internal): Same. | |
17115 | (wi::sub_large): Same. | |
17116 | (wi::divmod_internal): Same. | |
17117 | * wide-int.h: Change overflow type to overflow_type for neg, add, | |
17118 | mul, smul, umul, div_trunc, div_floor, div_ceil, div_round, | |
17119 | mod_trunc, mod_ceil, mod_round, add_large, sub_large, | |
17120 | mul_internal, divmod_internal. | |
17121 | (overflow_type): New enum. | |
17122 | (accumulate_overflow): New. | |
17123 | ||
17124 | 2018-07-06 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17125 | ||
17126 | * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New. | |
17127 | (tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern. | |
17128 | ||
17129 | 2018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> | |
17130 | ||
17131 | * tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount | |
17132 | argument is checked for zero before entering loop, avoid checking again. | |
17133 | ||
17134 | 2018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> | |
17135 | ||
17136 | * gimplify.h (generic_expr_could_trap_p): Set as global function. | |
17137 | * gimplify.h (generic_expr_could_trap_p): Likwise. | |
17138 | * tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR. | |
17139 | ||
17140 | 2018-07-06 Jakub Jelinek <jakub@redhat.com> | |
17141 | ||
17142 | PR tree-optimization/86401 | |
17143 | * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Move the | |
17144 | ((A & N) + B) & M -> (A + B) & M etc. optimization into ... | |
17145 | (fold_bit_and_mask): ... here. New helper function for match.pd. | |
17146 | * fold-const.h (fold_bit_and_mask): Declare. | |
17147 | * match.pd (((A & N) + B) & M -> (A + B) & M): New optimization. | |
17148 | ||
17149 | 2018-07-06 Peter Bergner <bergner@linux.ibm.com> | |
17150 | ||
17151 | PR target/86324 | |
17152 | * target.def (translate_mode_attribute): New hook. | |
17153 | * targhooks.h (default_translate_mode_attribute): Declare. | |
17154 | * targhooks.c (default_translate_mode_attribute): New function. | |
17155 | * doc/tm.texi.in (TARGET_TRANSLATE_MODE_ATTRIBUTE): New hook. | |
17156 | * doc/tm.texi: Regenerate. | |
17157 | * config/rs6000/rs6000.c (TARGET_TRANSLATE_MODE_ATTRIBUTE): Define. | |
17158 | (rs6000_translate_mode_attribute): New function. | |
17159 | ||
17160 | 2018-07-06 Paul Koning <ni1d@arrl.net> | |
17161 | ||
17162 | * doc/md.texi (define_split): Document DONE and FAIL. | |
17163 | (define_peephole2): Ditto. | |
17164 | ||
17165 | 2018-07-05 Jeff Law <law@redhat.com> | |
17166 | ||
17167 | PR tree-optimization/86010 | |
17168 | * tree-ssa-dse.c (compute_trims): More aggressively trim at | |
17169 | both the head and tail of mem* and str* calls. | |
17170 | ||
17171 | 2018-07-05 Jim Wilson <jimw@sifive.com> | |
17172 | ||
17173 | * config.gcc (riscv*-*-*): When setting xlen, handle riscv-*. | |
17174 | ||
17175 | 2018-07-05 Indu Bhagat <indu.bhagat@oracle.com> | |
17176 | ||
17177 | * config/aarch64/aarch64-simd.md: correct flags text for | |
17178 | MIN_EXPR replacement. | |
17179 | ||
17180 | 2018-07-05 James Clarke <jrtc27@jrtc27.com> | |
17181 | ||
17182 | * configure: Regenerated. | |
17183 | ||
17184 | 2018-07-05 Carl Love <cel@us.ibm.com> | |
17185 | ||
17186 | * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for | |
17187 | float argument to VSX_BUILTIN_DOUBLEH_V4SF. | |
17188 | Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to | |
17189 | VSX_BUILTIN_DOUBLEL_V4SF. | |
17190 | ||
17191 | 2018-07-05 Martin Sebor <msebor@redhat.com> | |
17192 | ||
17193 | PR c++/86400 | |
17194 | * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather | |
17195 | than its domain to compute its the upper bound of a char array. | |
17196 | ||
17197 | 2018-07-05 Nathan Sidwell <nathan@acm.org> | |
17198 | ||
17199 | Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C. | |
17200 | * doc/cpp.texi: Update comment. | |
17201 | * doc/tm.texi: Rebuilt. | |
17202 | * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ... | |
17203 | (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense. | |
17204 | * doc/extend.texi (Backwards Compatibility): Clarify it is system | |
17205 | headers affected by extern "C". | |
17206 | * system.h: Poison NO_IMPLICIT_EXTERN_C. | |
17207 | * config/alpha/alpha.h, config/arm/uclinux-elf.h, | |
17208 | config/bfin/elf.h, config/cris/cris.h, config/darwin.h, | |
17209 | config/dragonfly.h, config/freebsd.h, config/gnu-user.h, | |
17210 | config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h, | |
17211 | config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h, | |
17212 | config/lynx.h, config/mips/elf.h, config/mmix/mmix.h, | |
17213 | config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h, | |
17214 | config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h, | |
17215 | config/s390/tpf.h, config/sh/newlib.h, config/sol2.h, | |
17216 | config/sparc/openbsd64.h, config/sparc/sp-elf.h, | |
17217 | config/sparc/sp64-elf.h, config/spu/spu.h, | |
17218 | config/stormy16/stormy16.h, config/v850/v850.h, | |
17219 | config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't | |
17220 | define NO_IMPLICIT_EXTERN_C. | |
17221 | * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C. | |
17222 | ||
17223 | 2018-07-05 Tamar Christina <tamar.christina@arm.com> | |
17224 | ||
17225 | PR target/84711 | |
17226 | * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE | |
17227 | instead of GET_MODE_SIZE when comparing Units. | |
17228 | ||
17229 | 2018-07-05 Tamar Christina <tamar.christina@arm.com> | |
17230 | ||
17231 | PR target/84711 | |
17232 | * rtlanal.c (set_noop_p): Constrain on mode change, | |
17233 | include hard-reg-set.h | |
17234 | ||
17235 | 2018-07-05 Tamar Christina <tamar.christina@arm.com> | |
17236 | ||
17237 | * config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size. | |
17238 | ||
17239 | 2018-07-05 Jakub Jelinek <jakub@redhat.com> | |
17240 | ||
17241 | Revert | |
17242 | 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> | |
17243 | ||
17244 | PR sanitizer/84250 | |
17245 | * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static | |
17246 | libasan. | |
17247 | * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. | |
17248 | ||
17249 | 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> | |
17250 | ||
17251 | PR sanitizer/84250 | |
17252 | * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static | |
17253 | libasan. | |
17254 | * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. | |
17255 | ||
17256 | 2018-07-04 Eric Botcazou <ebotcazou@adacore.com> | |
17257 | ||
17258 | PR middle-end/86380 | |
17259 | * expmed.c (choose_multiplier): Fix incorrect comparison with mask. | |
17260 | ||
17261 | 2018-07-04 Aldy Hernandez <aldyh@redhat.com> | |
17262 | ||
17263 | * tree-vrp.c (extract_range_from_binary_expr_1): Initialize | |
17264 | neg_*_op* variables. | |
17265 | ||
17266 | 2018-07-04 Martin Liska <mliska@suse.cz> | |
17267 | ||
17268 | * tree-switch-conversion.c: Define | |
17269 | max_ratio_for_speed and max_ratio_for_size constants. | |
17270 | ||
17271 | 2018-07-04 Denys Vlasenko <dvlasenk@redhat.com> | |
17272 | Martin Liska <mliska@suse.cz> | |
17273 | ||
17274 | PR middle-end/66240 | |
17275 | PR target/45996 | |
17276 | PR c/84100 | |
17277 | * common.opt: Rename align options with 'str_' prefix. | |
17278 | * common/config/i386/i386-common.c (set_malign_value): New | |
17279 | function. | |
17280 | (ix86_handle_option): Use it to set -falign-* options/ | |
17281 | * config/aarch64/aarch64-protos.h (struct tune_params): Change | |
17282 | type from int to string. | |
17283 | * config/aarch64/aarch64.c: Update default values from int | |
17284 | to string. | |
17285 | * config/alpha/alpha.c (alpha_override_options_after_change): | |
17286 | Likewise. | |
17287 | * config/arm/arm.c (arm_override_options_after_change_1): Likewise. | |
17288 | * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print | |
17289 | max skip conditionally. | |
17290 | * config/i386/freebsd.h (SUBALIGN_LOG): New. | |
17291 | (ASM_OUTPUT_MAX_SKIP_ALIGN): Print | |
17292 | max skip conditionally. | |
17293 | * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print | |
17294 | max skip conditionally. | |
17295 | * config/i386/gnu-user.h (SUBALIGN_LOG): New. | |
17296 | (ASM_OUTPUT_MAX_SKIP_ALIGN): Print | |
17297 | max skip conditionally. | |
17298 | * config/i386/i386.c (struct ptt): Change type from int to | |
17299 | string. | |
17300 | (ix86_default_align): Set default values. | |
17301 | * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print | |
17302 | max skip conditionally. | |
17303 | * config/i386/iamcu.h (SUBALIGN_LOG): New. | |
17304 | (ASM_OUTPUT_MAX_SKIP_ALIGN): | |
17305 | * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): | |
17306 | * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print | |
17307 | max skip conditionally. | |
17308 | * config/i386/openbsdelf.h (SUBALIGN_LOG): New. | |
17309 | (ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.: | |
17310 | * config/i386/x86-64.h (SUBALIGN_LOG): New. | |
17311 | (ASM_OUTPUT_MAX_SKIP_ALIGN): Print | |
17312 | max skip conditionally. | |
17313 | (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. | |
17314 | * config/ia64/ia64.c (ia64_option_override): Set default values | |
17315 | for alignment options. | |
17316 | * config/m68k/m68k.c: Handle new str_align_* options. | |
17317 | * config/mips/mips.c (mips_set_compression_mode): Change | |
17318 | type of constants. | |
17319 | (mips_option_override): Set default values for options. | |
17320 | * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): | |
17321 | Likewise. | |
17322 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
17323 | Likewise. | |
17324 | * config/rx/rx.c (rx_option_override): Likewise. | |
17325 | * config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log. | |
17326 | (LABEL_ALIGN): Use align_labels_log. | |
17327 | (LOOP_ALIGN): Use align_loops_align. | |
17328 | * config/s390/s390.c (s390_asm_output_function_label): Use new | |
17329 | macros. | |
17330 | * config/sh/sh.c (sh_override_options_after_change): | |
17331 | Change type of constants. | |
17332 | * config/spu/spu.c (spu_sched_init): Likewise. | |
17333 | * config/sparc/sparc.c (sparc_option_override): Set default | |
17334 | values for options. | |
17335 | * config/visium/visium.c (visium_option_override): Likewise. | |
17336 | * config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not | |
17337 | emit p2align format with last argument if it's not needed. | |
17338 | * doc/invoke.texi: Document extended format of -falign-*. | |
17339 | * final.c: Use align_labels alignment. | |
17340 | * flags.h (struct target_flag_state): Change type to use | |
17341 | align_flags. | |
17342 | (struct align_flags_tuple): New. | |
17343 | (struct align_flags): Likewise. | |
17344 | (align_loops_log): Redefine macro to use new types. | |
17345 | (align_loops_max_skip): Redefine macro to use new types. | |
17346 | (align_jumps_log): Redefine macro to use new types. | |
17347 | (align_jumps_max_skip): Redefine macro to use new types. | |
17348 | (align_labels_log): Redefine macro to use new types. | |
17349 | (align_labels_max_skip): Redefine macro to use new types. | |
17350 | (align_functions_log): Redefine macro to use new types. | |
17351 | (align_loops): Redefine macro to use new types. | |
17352 | (align_jumps): Redefine macro to use new types. | |
17353 | (align_labels): Redefine macro to use new types. | |
17354 | (align_functions): Redefine macro to use new types. | |
17355 | (align_functions_max_skip): Redefine macro to use new types. | |
17356 | (align_loops_value): New macro. | |
17357 | (align_jumps_value): New macro. | |
17358 | (align_labels_value): New macro. | |
17359 | (align_functions_value): New macro. | |
17360 | * function.c (invoke_set_current_function_hook): Propagate | |
17361 | alignment values from flags to global variables default in | |
17362 | topleev.h. | |
17363 | * ipa-icf.c (sem_function::equals_wpa): Use | |
17364 | cl_optimization_option_eq instead of memcmp. | |
17365 | * lto-streamer.h (cl_optimization_stream_out): Support streaming | |
17366 | of string types. | |
17367 | (cl_optimization_stream_in): Likewise. | |
17368 | * optc-save-gen.awk: Support strings in cl_optimization. | |
17369 | * opth-gen.awk: Likewise. | |
17370 | * opts.c (finish_options): Remove error checking of invalid | |
17371 | value ranges. | |
17372 | (MAX_CODE_ALIGN): Remove. | |
17373 | (MAX_CODE_ALIGN_VALUE): Likewise. | |
17374 | (parse_and_check_align_values): New function. | |
17375 | (check_alignment_argument): Likewise. | |
17376 | (common_handle_option): Use check_alignment_argument. | |
17377 | * opts.h (parse_and_check_align_values): Declare. | |
17378 | * toplev.c (init_alignments): Remove. | |
17379 | (read_log_maxskip): New. | |
17380 | (parse_N_M): Likewise. | |
17381 | (parse_alignment_opts): Likewise. | |
17382 | (backend_init_target): Remove usage of init_alignments. | |
17383 | * toplev.h (parse_alignment_opts): Declare. | |
17384 | * tree-streamer-in.c (streamer_read_tree_bitfields): Add new | |
17385 | argument. | |
17386 | * tree-streamer-out.c (streamer_write_tree_bitfields): Likewise. | |
17387 | * tree.c (cl_option_hasher::equal): New. | |
17388 | * varasm.c: Use new global macros. | |
17389 | ||
17390 | 2018-07-04 Denys Vlasenko <dvlasenk@redhat.com> | |
17391 | ||
17392 | * config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN): | |
17393 | Use a simpler align directive also if MAXSKIP = ALIGN-1. | |
17394 | * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17395 | * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17396 | * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17397 | * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. | |
17398 | * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N | |
17399 | is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG | |
17400 | define. Use a simpler align directive also if MAXSKIP = ALIGN-1. | |
17401 | * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17402 | * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17403 | * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17404 | * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. | |
17405 | ||
17406 | 2018-07-04 Martin Liska <mliska@suse.cz> | |
17407 | Jonathan Wakely <jwakely@redhat.com> | |
17408 | ||
17409 | * coverage.c: Use correct type. | |
17410 | * doc/invoke.texi: Language correction. | |
17411 | ||
17412 | 2018-07-03 H.J. Lu <hongjiu.lu@intel.com> | |
17413 | ||
17414 | PR target/85620 | |
17415 | * config/i386/i386.c (rest_of_insert_endbranch): Also generate | |
17416 | ENDBRANCH for non-tail call which may return via indirect branch. | |
17417 | * doc/extend.texi: Document indirect_return attribute. | |
17418 | ||
17419 | 2018-07-03 Martin Sebor <msebor@redhat.com> | |
17420 | ||
17421 | PR tree-optimization/86274 | |
17422 | * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify | |
17423 | precondition. | |
17424 | (format_floating): Correct handling of infinities and NaNs. | |
17425 | ||
17426 | 2018-07-03 Martin Sebor <msebor@redhat.com> | |
17427 | ||
17428 | * print-tree.c (print_real_cst): New function. | |
17429 | (print_node_brief): Call it. | |
17430 | (print_node): Ditto. | |
17431 | ||
17432 | 2018-07-03 Jeff Law <law@redhat.com> | |
17433 | ||
17434 | * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge | |
17435 | into a single pattern. | |
17436 | ||
17437 | * config/h8300/h8300.md (ors code_iterator): New. | |
17438 | (bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into | |
17439 | a single pattern and single splitter. | |
17440 | (bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern. | |
17441 | (iorqi3_1, xorqi3_1): Likewise. | |
17442 | (iorqi3, xorqi3 expanders): Similarly. | |
17443 | ||
17444 | * config/h8300/h8300.md (movmd_internal_normal): Consolidated with | |
17445 | (movmd_internal) into a single pattern using the P mode iterator. | |
17446 | (movmd splitters): Similarly. | |
17447 | (stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns. | |
17448 | (movsd splitters): Similarly. | |
17449 | ||
17450 | * config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate | |
17451 | ADDB, ADDW and ADDL into a single ADD attribute which selects the | |
17452 | right table based on the size of the operand. | |
17453 | * config/h8300/h8300.md (length_table): Corresponding changes. All | |
17454 | references to "addb", "addw" and "addl" changed to "add". | |
17455 | (btst patterns): Merge two variants into a single pattern. | |
17456 | (tstqi, tsthi): Likewise. | |
17457 | (addhi3_incdec, addsi3_incdec): Likewise. | |
17458 | (subhi3_h8300hs, subsi3_h8300hs): Likewise. | |
17459 | (mulhi3, mulsi3): Likewise. | |
17460 | (udivhi3, udivsi3): Likewise. | |
17461 | (divhi3, divsi3): Likewise. | |
17462 | (andorqi3, andorhi3, andorsi3): Likewise. | |
17463 | ||
17464 | 2018-07-03 Uros Bizjak <ubizjak@gmail.com> | |
17465 | ||
17466 | PR target/85694 | |
17467 | * config/i386/sse.md (uavg<mode>3_ceil): New expander. | |
17468 | (<sse2_avx2>_uavg<mode>3<mask_name>): Simplify expander. | |
17469 | ||
17470 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17471 | ||
17472 | PR tree-optimization/85694 | |
17473 | * config/aarch64/iterators.md (HADD, RHADD): New int iterators. | |
17474 | (u): Handle UNSPEC_SHADD, UNSPEC_UHADD, UNSPEC_SRHADD and | |
17475 | UNSPEC_URHADD. | |
17476 | * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor) | |
17477 | (<u>avg<mode>3_ceil): New patterns. | |
17478 | ||
17479 | 2018-07-03 David Malcolm <dmalcolm@redhat.com> | |
17480 | ||
17481 | * gcc.dg/vect/slp-perm-1.c: Remove "note: " prefix from | |
17482 | scan-tree-dump directive. | |
17483 | * gcc.dg/vect/slp-perm-2.c: Likewise. | |
17484 | * gcc.dg/vect/slp-perm-3.c: Likewise. | |
17485 | * gcc.dg/vect/slp-perm-5.c: Likewise. | |
17486 | * gcc.dg/vect/slp-perm-6.c: Likewise. | |
17487 | * gcc.dg/vect/slp-perm-7.c: Likewise. | |
17488 | * gcc.dg/vect/slp-perm-8.c: Likewise. | |
17489 | ||
17490 | 2018-07-03 Marek Polacek <polacek@redhat.com> | |
17491 | ||
17492 | PR middle-end/86202 | |
17493 | * gimple-fold.c (size_must_be_zero_p): Check the type of the size. | |
17494 | ||
17495 | 2018-07-03 Richard Biener <rguenther@suse.de> | |
17496 | ||
17497 | PR ipa/86389 | |
17498 | * tree-ssa-structalias.c (find_func_clobbers): Properly | |
17499 | handle indirect calls. | |
17500 | ||
17501 | 2018-07-03 Jeff Law <law@redhat.com> | |
17502 | ||
17503 | * config/h8300/h8300.md (HSI, QHSI, QHSIF): New mode iterators. | |
17504 | (shifts): New code iterator. | |
17505 | (movqi, movhi, movsi, movsf expanders): Consolidate into a single | |
17506 | expander. Fix HImode handling on H8/SX. | |
17507 | (addqi3, addhi3, addsi3 expanders): Consolidate into a single expander. | |
17508 | (subqi3, subhi3, subsi3 expanders): Likewise. | |
17509 | (andqi3, andhi3, andsi3 expanders): Likewise. | |
17510 | (iorqi3, iorhi3, iorsi3 expanders): Likewise. | |
17511 | (xorqi3, xorhi3, xorsi3 expanders): Likewise. | |
17512 | (negqi2, neghi2, negsi2, negsf2 expanders): Likewise. | |
17513 | (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. | |
17514 | (zero_extendqihi2, zero_extendqisi2): Likewise. | |
17515 | (extendqihi2, extendqisi2): Likewise. | |
17516 | (rotlqi3, rotlhi3, rotlsi3): Likewise. | |
17517 | (neghi2_h8300, negsi2_h8300): Likewise for these patterns. | |
17518 | (rotlqi3_1, rotlhi3_1): Likewise. | |
17519 | (logicalhi3_sn, logicalsi3_sn): Likewise. | |
17520 | (logicalhi3, logicalsi3): Likewise. | |
17521 | ||
17522 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17523 | ||
17524 | * tree-vect-patterns.c (vect_recog_rotate_pattern) | |
17525 | (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) | |
17526 | (vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast) | |
17527 | (adjust_bool_pattern, vect_recog_bool_pattern): Pass the vector | |
17528 | type to append_pattern_def_seq instead of creating a stmt_vec_info | |
17529 | directly. | |
17530 | (build_mask_conversion): Likewise. Remove vinfo argument. | |
17531 | (vect_add_conversion_to_patterm): Likewise, renaming to... | |
17532 | (vect_add_conversion_to_pattern): ...this. | |
17533 | (vect_recog_mask_conversion_pattern): Update call to | |
17534 | build_mask_conversion. Pass the vector type to | |
17535 | append_pattern_def_seq here too. | |
17536 | (vect_recog_gather_scatter_pattern): Update call to | |
17537 | vect_add_conversion_to_pattern. | |
17538 | ||
17539 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17540 | ||
17541 | * tree-vect-patterns.c (new_pattern_def_seq): Delete. | |
17542 | (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) | |
17543 | (vect_recog_widen_op_pattern, vect_recog_over_widening_pattern) | |
17544 | (vect_recog_rotate_pattern, vect_synth_mult_by_constant): Don't set | |
17545 | STMT_VINFO_PATTERN_DEF_SEQ to null here. | |
17546 | (vect_recog_pow_pattern, vect_recog_vector_vector_shift_pattern) | |
17547 | (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern): Use | |
17548 | append_pattern_def_seq instead of new_pattern_def_seq. | |
17549 | (vect_recog_divmod_pattern): Do both of the above. | |
17550 | (vect_pattern_recog_1): Assert that STMT_VINO_PATTERN_DEF_SEQ | |
17551 | is null. | |
17552 | ||
17553 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17554 | ||
17555 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern): | |
17556 | (vect_recog_sad_pattern, vect_recog_widen_op_pattern) | |
17557 | (vect_recog_widen_mult_pattern, vect_recog_pow_pattern): | |
17558 | (vect_recog_widen_sum_pattern, vect_recog_over_widening_pattern) | |
17559 | (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern) | |
17560 | (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) | |
17561 | (vect_recog_vector_vector_shift_pattern, vect_synth_mult_by_constant) | |
17562 | (vect_recog_mult_pattern, vect_recog_divmod_pattern) | |
17563 | (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) | |
17564 | (vect_recog_mask_conversion_pattern): Replace vec<gimple *> | |
17565 | parameter with a single stmt_vec_info. | |
17566 | (vect_recog_func_ptr): Likewise. | |
17567 | (vect_recog_gather_scatter_pattern): Likewise, folding in... | |
17568 | (vect_try_gather_scatter_pattern): ...this. | |
17569 | (vect_pattern_recog_1): Remove stmts_to_replace and just pass | |
17570 | the stmt_vec_info of the statement to be matched. Don't clear | |
17571 | STMT_VINFO_RELATED_STMT. | |
17572 | (vect_pattern_recog): Update call accordingly. | |
17573 | ||
17574 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17575 | ||
17576 | PR tree-optimization/85694 | |
17577 | * doc/md.texi (avgM3_floor, uavgM3_floor, avgM3_ceil) | |
17578 | (uavgM3_ceil): Document new optabs. | |
17579 | * doc/sourcebuild.texi (vect_avg_qi): Document new target selector. | |
17580 | * internal-fn.def (IFN_AVG_FLOOR, IFN_AVG_CEIL): New internal | |
17581 | functions. | |
17582 | * optabs.def (savg_floor_optab, uavg_floor_optab, savg_ceil_optab) | |
17583 | (savg_ceil_optab): New optabs. | |
17584 | * tree-vect-patterns.c (vect_recog_average_pattern): New function. | |
17585 | (vect_vect_recog_func_ptrs): Add it. | |
17586 | * tree-vect-stmts.c (vectorizable_call): Get the type of the zero | |
17587 | constant directly from the associated lhs. | |
17588 | ||
17589 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17590 | ||
17591 | * tree-vect-patterns.c (vect_split_statement): New function. | |
17592 | (vect_convert_input): Use it to try to split an existing cast. | |
17593 | ||
17594 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17595 | ||
17596 | * poly-int.h (print_hex): New function. | |
17597 | * dumpfile.h (dump_dec, dump_hex): Declare. | |
17598 | * dumpfile.c (dump_dec, dump_hex): New poly_wide_int functions. | |
17599 | * tree-vectorizer.h (_stmt_vec_info): Add min_output_precision, | |
17600 | min_input_precision, operation_precision and operation_sign. | |
17601 | * tree-vect-patterns.c (vect_get_range_info): New function. | |
17602 | (vect_same_loop_or_bb_p, vect_single_imm_use) | |
17603 | (vect_operation_fits_smaller_type): Delete. | |
17604 | (vect_look_through_possible_promotion): Add an optional | |
17605 | single_use_p parameter. | |
17606 | (vect_recog_over_widening_pattern): Rewrite to use new | |
17607 | stmt_vec_info infomration. Handle one operation at a time. | |
17608 | (vect_recog_cast_forwprop_pattern, vect_narrowable_type_p) | |
17609 | (vect_truncatable_operation_p, vect_set_operation_type) | |
17610 | (vect_set_min_input_precision): New functions. | |
17611 | (vect_determine_min_output_precision_1): Likewise. | |
17612 | (vect_determine_min_output_precision): Likewise. | |
17613 | (vect_determine_precisions_from_range): Likewise. | |
17614 | (vect_determine_precisions_from_users): Likewise. | |
17615 | (vect_determine_stmt_precisions, vect_determine_precisions): Likewise. | |
17616 | (vect_vect_recog_func_ptrs): Put over_widening first. | |
17617 | Add cast_forwprop. | |
17618 | (vect_pattern_recog): Call vect_determine_precisions. | |
17619 | ||
17620 | 2018-07-03 Richard Sandiford <richard.sandiford@arm.com> | |
17621 | ||
17622 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove pattern | |
17623 | statements that have been replaced by further pattern statements. | |
17624 | (vect_pattern_recog_1): Clear STMT_VINFO_PATTERN_DEF_SEQ on failure. | |
17625 | ||
17626 | 2018-07-03 Richard Biener <rguenther@suse.de> | |
17627 | ||
17628 | * tree-vect-stmts.c (vect_is_simple_use): Consolidate dumping, | |
17629 | always set *dt. Dump vectype in vectype overload. | |
17630 | * dumpfile.h (dump_gimple_expr): New function. | |
17631 | (dump_gimple_expr_loc): Likewise. | |
17632 | * dumpfile.c (dump_gimple_expr): New function. | |
17633 | (dump_gimple_expr_loc): Likewise. | |
17634 | ||
17635 | 2018-07-02 Jeff Law <law@redhat.com> | |
17636 | ||
17637 | * config/h8300/h8300.md (movqi_h8300, movqi_h8300hs): Consolidate | |
17638 | the H8/300, H8/300H and H8/S variants into a single pattern. | |
17639 | (movhi_h8300, movqi_h8300hs): Similarly. | |
17640 | (pushqi_h8300hs, pushhi_h8300hs): Consolidate into a single pattern. | |
17641 | (QHI mode iterator): New. | |
17642 | ||
17643 | * config/h8300/h8300.md: Remove trailing whitespace. | |
17644 | ||
17645 | 2018-07-02 Jim Wilson <jimw@sifive.com> | |
17646 | ||
17647 | * config/riscv/riscv.c (riscv_expand_epilogue): Use emit_jump_insn | |
17648 | instead of emit_insn for interrupt returns. | |
17649 | * config/riscv/riscv.md (riscv_met): Add (return) to rtl. | |
17650 | (riscv_sret, riscv_uret): Likewise. | |
17651 | ||
17652 | 2018-07-02 David Malcolm <dmalcolm@redhat.com> | |
17653 | ||
17654 | * pretty-print.c (selftest::test_pp_format): Move save and restore | |
17655 | of quotes to class auto_fix_quotes, and add an instance. | |
17656 | * selftest.c: Include "intl.h". | |
17657 | (selftest::auto_fix_quotes::auto_fix_quotes): New ctor. | |
17658 | (selftest::auto_fix_quotes::~auto_fix_quotes): New dtor. | |
17659 | * selftest.h (selftest::auto_fix_quotes): New class. | |
17660 | ||
17661 | 2018-07-02 Richard Henderson <richard.henderson@linaro.org> | |
17662 | ||
17663 | * config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c | |
17664 | (aarch64_sve_prepare_conditional_op): Remove. | |
17665 | * config/aarch64/aarch64-sve.md (cond_<SVE_INT_BINARY><SVE_I>): | |
17666 | Allow aarch64_simd_reg_or_zero as select operand; remove | |
17667 | the aarch64_sve_prepare_conditional_op call. | |
17668 | (cond_<SVE_INT_BINARY_SD><SVE_SDI>): Likewise. | |
17669 | (cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise. | |
17670 | (*cond_<SVE_INT_BINARY><SVE_I>_z): New pattern. | |
17671 | (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_z): New pattern. | |
17672 | (*cond_<SVE_COND_FP_BINARY><SVE_F>_z): New pattern. | |
17673 | (*cond_<SVE_INT_BINARY><SVE_I>_any): New pattern. | |
17674 | (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_any): New pattern. | |
17675 | (*cond_<SVE_COND_FP_BINARY><SVE_F>_any): New pattern | |
17676 | and a splitters to match all of the *_any patterns. | |
17677 | * config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New. | |
17678 | ||
17679 | * config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove. | |
17680 | (SVE_COND_FP_BINARY_REV): Remove. | |
17681 | (sve_int_op_rev, sve_fp_op_rev): New. | |
17682 | * config/aarch64/aarch64-sve.md (*cond_<SVE_INT_BINARY><SVE_I>_0): New. | |
17683 | (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_0): New. | |
17684 | (*cond_<SVE_COND_FP_BINARY><SVE_F>_0): New. | |
17685 | (*cond_<SVE_INT_BINARY><SVE_I>_2): Rename, add movprfx alternative. | |
17686 | (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_2): Similarly. | |
17687 | (*cond_<SVE_COND_FP_BINARY><SVE_F>_2): Similarly. | |
17688 | (*cond_<SVE_INT_BINARY><SVE_I>_3): Similarly; use sve_int_op_rev. | |
17689 | (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_3): Similarly. | |
17690 | (*cond_<SVE_COND_FP_BINARY><SVE_F>_3): Similarly; use sve_fp_op_rev. | |
17691 | ||
17692 | * config/aarch64/aarch64-sve.md (cond_<SVE_COND_FP_BINARY><SVE_F>): | |
17693 | Remove match_dup 1 from the inner unspec. | |
17694 | (*cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise. | |
17695 | ||
17696 | * config/aarch64/aarch64.md (movprfx): New attr. | |
17697 | (length): Default movprfx to 8. | |
17698 | * config/aarch64/aarch64-sve.md (*mul<SVE_I>3): Add movprfx alt. | |
17699 | (*madd<SVE_I>, *msub<SVE_I): Likewise. | |
17700 | (*<su>mul<SVE_I>3_highpart): Likewise. | |
17701 | (*<SVE_INT_BINARY_SD><SVE_SDI>3): Likewise. | |
17702 | (*v<ASHIFT><SVE_I>3): Likewise. | |
17703 | (*<su><MAXMIN><SVE_I>3): Likewise. | |
17704 | (*<su><MAXMIN><SVE_F>3): Likewise. | |
17705 | (*fma<SVE_F>4, *fnma<SVE_F>4): Likewise. | |
17706 | (*fms<SVE_F>4, *fnms<SVE_F>4): Likewise. | |
17707 | (*div<SVE_F>4): Likewise. | |
17708 | ||
17709 | 2018-07-02 Richard Sandiford <richard.sandiford@arm.com> | |
17710 | ||
17711 | * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo | |
17712 | in dump string. | |
17713 | ||
17714 | 2018-07-02 Richard Biener <rguenther@suse.de> | |
17715 | ||
17716 | PR tree-optimization/86363 | |
17717 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Check the | |
17718 | memset argument refers to a non-variable address. | |
17719 | ||
17720 | 2018-07-02 Aldy Hernandez <aldyh@redhat.com> | |
17721 | ||
17722 | * tree-vrp.c (extract_range_from_binary_expr_1): Abstract a lot of the | |
17723 | {PLUS,MINUS}_EXPR code to... | |
17724 | (adjust_symbolic_bound): ...here, | |
17725 | (combine_bound): ...here, | |
17726 | (set_value_range_with_overflow): ...and here. | |
17727 | ||
17728 | 2018-07-02 Aldy Hernandez <aldyh@redhat.com> | |
17729 | ||
17730 | * tree-vrp.c (extract_range_from_unary_expr): Abstract ABS_EXPR | |
17731 | code... | |
17732 | (extract_range_from_abs_expr): ...here. | |
17733 | ||
17734 | 2018-07-02 Eric Botcazou <ebotcazou@adacore.com> | |
17735 | ||
17736 | * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule | |
17737 | -fno-omit-frame-pointer when not optimizing. | |
17738 | ||
17739 | 2018-07-02 Martin Liska <mliska@suse.cz> | |
17740 | ||
17741 | PR ipa/86279 | |
17742 | * ipa-pure-const.c (malloc_candidate_p): Revert usage of ::get. | |
17743 | (propagate_nothrow): Likewise. | |
17744 | ||
17745 | 2018-07-02 Martin Liska <mliska@suse.cz> | |
17746 | ||
17747 | PR ipa/86323 | |
17748 | * ipa-inline.c (early_inliner): Revert wrongly added ::get call. | |
17749 | ||
17750 | 2018-07-02 David Malcolm <dmalcolm@redhat.com> | |
17751 | ||
17752 | * dumpfile.c (dump_generic_expr_loc): Undo removal of this | |
17753 | function in r262149, changing "loc" param from source_location to | |
17754 | const dump_location_t &. | |
17755 | * dumpfile.h (dump_generic_expr_loc): Undo removal of this | |
17756 | declaration, as above. | |
17757 | ||
17758 | 2018-07-01 Paul Koning <ni1d@arrl.net> | |
17759 | ||
17760 | * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle | |
17761 | -munit-asm, -mgnu-asm, -mdec-asm. | |
17762 | * config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New. | |
17763 | (pdp11_output_labelref): New. | |
17764 | (pdp11_output_def): New. | |
17765 | (pdp11_output_addr_vec_elt): New. | |
17766 | * config/pdp11/pdp11.c: Use tab between opcode and operands. Use | |
17767 | %# and %@ format codes. | |
17768 | (pdp11_option_override): New. | |
17769 | (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. | |
17770 | (pdp11_output_ident): New. | |
17771 | (pdp11_asm_named_section): New. | |
17772 | (pdp11_asm_init_sections): New. | |
17773 | (pdp11_file_start): New. | |
17774 | (pdp11_file_end): New. | |
17775 | (output_ascii): Use .ascii/.asciz for -mdec-asm. | |
17776 | (pdp11_asm_print_operand): Update %# and %$ for -mdec-asm. Add | |
17777 | %o, like %c but octal. | |
17778 | (pdp11_option_override): New. | |
17779 | * config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for | |
17780 | -mdec-asm. | |
17781 | (DATA_SECTION_ASM_OP): Ditto. | |
17782 | (READONLY_DATA_SECTION_ASM_OP): New. | |
17783 | (IS_ASM_LOGICAL_LINE_SEPARATOR): New. | |
17784 | (ASM_GENERATE_INTERNAL_LABEL): Use new function. | |
17785 | (ASM_OUTPUT_LABELREF): Ditto. | |
17786 | (ASM_OUTPUT_DEF): Ditto. | |
17787 | (ASM_OUTPUT_EXTERNAL): New. | |
17788 | (ASM_OUTPUT_SOURCE_FILENAME): New. | |
17789 | (ASM_OUTPUT_ADDR_VEC_ELT): Use new function. | |
17790 | (ASM_OUTPUT_SKIP): Update for -mdec-asm. | |
17791 | * config/pdp11/pdp11.md: Use tab between opcode and operands. Use | |
17792 | %# and %@ format codes. | |
17793 | * config/pdp11/pdp11.opt (mgnu-asm): New. | |
17794 | (mdec-asm): Conflicts with -mgnu-asm and -munix-asm. | |
17795 | (munix-asm): Conflicts with -mdec-asm and -mgnu-asm. | |
17796 | * doc/invoke.txt (PDP-11 Options): Add -mgnu-asm. | |
17797 | ||
17798 | 2018-07-01 Aldy Hernandez <aldyh@redhat.com> | |
17799 | ||
17800 | * tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid | |
17801 | dereferencing path[] beyond its length. | |
17802 | (debug_path): New. | |
17803 | (debug_all_paths): New. | |
17804 | (rewire_first_differing_edge): New. | |
17805 | (adjust_paths_after_duplication): New. | |
17806 | (duplicate_thread_path): Call adjust_paths_after_duplication. | |
17807 | Add new argument. | |
17808 | (thread_through_all_blocks): Add new argument to | |
17809 | duplicate_thread_path. | |
17810 | ||
17811 | 2018-06-30 Jim Wilson <jimw@sifive.com> | |
17812 | ||
17813 | * config/riscv/predicates.md (p2m1_shift_operand): New. | |
17814 | (high_mask_shift_operand): New. | |
17815 | * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner | |
17816 | pattern using p2m1_shift_operand. | |
17817 | (lshsi3_zero_extend_3+2): New combiner pattern using | |
17818 | high_mask_shift_operand. | |
17819 | ||
17820 | 2018-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
17821 | ||
17822 | * tree-vect-patterns.c (vect_get_external_def_edge): New function, | |
17823 | split out from... | |
17824 | (vect_recog_rotate_pattern): ...here. | |
17825 | (vect_convert_input): Try to insert casts of invariants in the | |
17826 | preheader. | |
17827 | * tree-vect-loop-manip.c (vect_loop_versioning): Don't require the | |
17828 | preheader to be empty. | |
17829 | ||
17830 | 2018-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
17831 | ||
17832 | * tree-vect-patterns.c (append_pattern_def_seq): Take an optional | |
17833 | vector type. If given, install it in the new statement's | |
17834 | STMT_VINFO_VECTYPE. | |
17835 | (vect_element_precision): New function. | |
17836 | (vect_unpromoted_value): New struct. | |
17837 | (vect_unpromoted_value::vect_unpromoted_value): New function. | |
17838 | (vect_unpromoted_value::set_op): Likewise. | |
17839 | (vect_look_through_possible_promotion): Likewise. | |
17840 | (vect_joust_widened_integer, vect_joust_widened_type): Likewise. | |
17841 | (vect_widened_op_tree, vect_convert_input): Likewise. | |
17842 | (vect_convert_inputs, vect_convert_output): Likewise. | |
17843 | (vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion | |
17844 | to handle the optional cast of the multiplication result and | |
17845 | vect_widened_op_tree to detect the widened multiplication itself. | |
17846 | Do not require the input and output of promotion casts to have | |
17847 | the same sign, but base the signedness of the operation on the | |
17848 | input rather than the result. If the pattern includes two | |
17849 | promotions, check that those promotions have the same sign. | |
17850 | Do not restrict the MULT_EXPR handling to a double-width result; | |
17851 | handle quadruple-width results and wider. Use vect_convert_inputs | |
17852 | to convert the inputs to the common type. | |
17853 | (vect_recog_sad_pattern): Use vect_look_through_possible_promotion | |
17854 | to handle the optional cast of the ABS result. Also allow a sign | |
17855 | change or a sign extension between the ABS and MINUS. | |
17856 | Use vect_widened_op_tree to detect the widened subtraction and use | |
17857 | vect_convert_inputs to convert the inputs to the common type. | |
17858 | (vect_handle_widen_op_by_const): Delete. | |
17859 | (vect_recog_widen_op_pattern): New function. | |
17860 | (vect_recog_widen_mult_pattern): Use it. | |
17861 | (vect_recog_widen_shift_pattern): Likewise. | |
17862 | (vect_recog_widen_sum_pattern): Use | |
17863 | vect_look_through_possible_promotion to handle the promoted | |
17864 | PLUS_EXPR operand. | |
17865 | ||
17866 | 2018-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
17867 | ||
17868 | * gimple-iterator.c (gsi_for_stmt): Add a new overload that takes | |
17869 | the containing gimple_seq *. | |
17870 | * gimple-iterator.h (gsi_for_stmt): Declare it. | |
17871 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern) | |
17872 | (vect_recog_sad_pattern, vect_recog_widen_sum_pattern) | |
17873 | (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) | |
17874 | (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) | |
17875 | (vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P | |
17876 | checks. | |
17877 | (vect_init_pattern_stmt, vect_set_pattern_stmt): New functions, | |
17878 | split out from... | |
17879 | (vect_mark_pattern_stmts): ...here. Handle cases in which the | |
17880 | statement being replaced is part of an existing pattern | |
17881 | definition sequence, inserting the new pattern statements before | |
17882 | the original one. | |
17883 | (vect_pattern_recog_1): Don't return a bool. If the statement | |
17884 | is already part of a pattern, instead apply pattern matching | |
17885 | to the pattern definition statements. Don't clear the | |
17886 | STMT_VINFO_RELATED_STMT if is_pattern_stmt_p. | |
17887 | (vect_pattern_recog): Don't break after the first match; | |
17888 | continue processing the pattern definition statements instead. | |
17889 | Don't bail out for STMT_VINFO_IN_PATTERN_P here. | |
17890 | ||
17891 | 2018-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
17892 | ||
17893 | * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. | |
17894 | (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) | |
17895 | (vect_recog_widen_sum_pattern): Use it. | |
17896 | ||
17897 | 2018-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
17898 | ||
17899 | * tree-vect-loop.c (vectorizable_reduction): Assert that the | |
17900 | phi is not a pattern statement and has not been replaced by | |
17901 | a pattern statement. | |
17902 | * tree-vect-patterns.c (type_conversion_p): Don't check | |
17903 | STMT_VINFO_IN_PATTERN_P. | |
17904 | (vect_recog_vector_vector_shift_pattern): Likewise. | |
17905 | (vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return | |
17906 | the pattern statement rather than the original statement; check | |
17907 | directly for a WIDEN_MULT_EXPR here. | |
17908 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Expect | |
17909 | vect_is_simple_use to return the pattern statement rather | |
17910 | than the original statement; use is_pattern_stmt_p to check | |
17911 | for such a pattern statement. | |
17912 | * tree-vect-stmts.c (process_use): Expect vect_is_simple_use | |
17913 | to return the pattern statement rather than the original statement; | |
17914 | don't do the same transformation here. | |
17915 | (vect_is_simple_use): If the defining statement has been replaced | |
17916 | by a pattern statement, return the pattern statement instead. | |
17917 | Remove the corresponding (local) transformation from the vectype | |
17918 | overload. | |
17919 | ||
17920 | 2018-06-30 Richard Sandiford <richard.sandiford@arm.com> | |
17921 | ||
17922 | * tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the | |
17923 | end and default to null. | |
17924 | * tree-vect-loop.c (vect_create_epilog_for_reduction) | |
17925 | (vectorizable_reduction): Update calls accordingly, dropping the | |
17926 | gimple ** argument if the passed-back statement isn't needed. | |
17927 | * tree-vect-patterns.c (vect_get_internal_def, type_conversion_p) | |
17928 | (vect_recog_rotate_pattern): Likewise. | |
17929 | (vect_recog_mask_conversion_pattern): Likewise. | |
17930 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. | |
17931 | (vect_mask_constant_operand_p): Likewise. | |
17932 | * tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use): | |
17933 | (vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise. | |
17934 | (get_group_load_store_type, get_load_store_type): Likewise. | |
17935 | (vect_check_load_store_mask, vect_check_store_rhs): Likewise. | |
17936 | (vectorizable_call, vectorizable_simd_clone_call): Likewise. | |
17937 | (vectorizable_conversion, vectorizable_assignment): Likewise. | |
17938 | (vectorizable_shift, vectorizable_operation): Likewise. | |
17939 | (vectorizable_store, vect_is_simple_cond): Likewise. | |
17940 | (vectorizable_condition, vectorizable_comparison): Likewise. | |
17941 | (get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise. | |
17942 | (vect_is_simple_use): Rename the def_stmt argument to def_stmt_out | |
17943 | and move it to the end. Cope with null def_stmt_outs. | |
17944 | ||
17945 | 2018-06-30 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17946 | ||
17947 | * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET. | |
17948 | ||
17949 | 2018-06-29 Jeff Law <law@redhat.com> | |
17950 | ||
17951 | * config/v850/v850.c (v850_legitimate_address_p): Handle large | |
17952 | displacements for TARGET_V850E2V3 and newer. | |
17953 | (TARGET_LRA_P): Remove. Defaults to LRA now. | |
17954 | * config/v850/v850.md (sign23byte_load): Remove. | |
17955 | (unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise. | |
17956 | (23word_load, 23byte_store, 23hword_store, 23word_store): Likewise. | |
17957 | ||
17958 | 2018-06-29 Martin Liska <mliska@suse.cz> | |
17959 | ||
17960 | PR lto/85759 | |
17961 | * coverage.c (coverage_init): Mangle full path name. | |
17962 | * doc/invoke.texi: Document the change. | |
17963 | * gcov-io.c (mangle_path): New. | |
17964 | * gcov-io.h (mangle_path): Likewise. | |
17965 | * gcov.c (mangle_name): Use mangle_path for path mangling. | |
17966 | ||
17967 | 2018-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
17968 | ||
17969 | * config/arm/arm.c (output_move_double): Don't allow STRD instructions | |
17970 | if starting source register is not even. | |
17971 | ||
17972 | 2018-06-29 Martin Liska <mliska@suse.cz> | |
17973 | ||
17974 | PR tree-optimization/86263 | |
17975 | * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion): | |
17976 | Make edge redirection. | |
17977 | ||
17978 | 2018-06-29 David Malcolm <dmalcolm@redhat.com> | |
17979 | ||
17980 | * dumpfile.c (dump_loc): Add indentation based on scope depth. | |
17981 | (dump_scope_depth): New variable. | |
17982 | (get_dump_scope_depth): New function. | |
17983 | (dump_begin_scope): New function. | |
17984 | (dump_end_scope): New function. | |
17985 | * dumpfile.h (get_dump_scope_depth): New declaration. | |
17986 | (dump_begin_scope): New declaration. | |
17987 | (dump_end_scope): New declaration. | |
17988 | (class auto_dump_scope): New class. | |
17989 | (AUTO_DUMP_SCOPE): New macro. | |
17990 | * tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of | |
17991 | AUTO_DUMP_SCOPE. | |
17992 | ||
17993 | 2018-06-29 Richard Biener <rguenther@suse.de> | |
17994 | ||
17995 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert | |
17996 | compute_all_dependences succeeds. | |
17997 | * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we | |
17998 | exceed --param loop-max-datarefs-for-datadeps. | |
17999 | ||
18000 | 2018-06-29 Jakub Jelinek <jakub@redhat.com> | |
18001 | ||
18002 | * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. | |
18003 | ||
18004 | 2018-06-28 Uros Bizjak <ubizjak@gmail.com> | |
18005 | ||
18006 | PR target/86348 | |
18007 | * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use | |
18008 | alternative 0 in preferred_for_speed attribute. | |
18009 | ||
18010 | 2018-06-28 Paul Koning <ni1d@arrl.net> | |
18011 | ||
18012 | * config/pdp11/pdp11-protos.h (pdp11_shift_length): New function. | |
18013 | * config/pdp11/pdp11.c (pdp11_shift_length): New function. | |
18014 | * config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove. | |
18015 | * config/pdp11/pdp11.md: Correct "length" attribute calculation | |
18016 | for shift insn patterns. | |
18017 | ||
18018 | 2018-06-28 David Malcolm <dmalcolm@redhat.com> | |
18019 | ||
18020 | * cgraph.c (cgraph_node::get_body): Replace assignments to | |
18021 | "dump_file" with calls to set_dump_file. | |
18022 | * dumpfile.c (alt_dump_file): Make static, and group with... | |
18023 | (alt_flags): ...this definition. | |
18024 | (dumps_are_enabled): New variable. | |
18025 | (refresh_dumps_are_enabled): New function. | |
18026 | (set_dump_file): New function. | |
18027 | (set_alt_dump_file): New function. | |
18028 | (gcc::dump_manager::dump_start): Replace assignments to | |
18029 | "dump_file" and "alt_dump_file" with calls to set_dump_file and | |
18030 | set_alt_dump_file. | |
18031 | (gcc::dump_manager::dump_finish): Likewise. | |
18032 | * dumpfile.h (alt_dump_file): Delete decl. | |
18033 | (dumps_are_enabled): New variable decl. | |
18034 | (set_dump_file): New function decl. | |
18035 | (dump_enabled_p): Rewrite in terms of new "dumps_are_enabled" | |
18036 | global. | |
18037 | * tree-nested.c (lower_nested_functions): Replace assignments to | |
18038 | "dump_file" with calls to set_dump_file. | |
18039 | ||
18040 | 2018-06-28 Eric Botcazou <ebotcazou@adacore.com> | |
18041 | ||
18042 | * tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the | |
18043 | goto_locus of each outgoing edge of each basic block. | |
18044 | ||
18045 | 2018-06-28 Richard Biener <rguenther@suse.de> | |
18046 | ||
18047 | * dwarf2out.c (decl_scope_table): Remove. | |
18048 | (push_decl_scope): Likewise. | |
18049 | (pop_decl_scope): Likewise. | |
18050 | (gen_type_die_for_member): Do not call push/pop_decl_scope. | |
18051 | (gen_struct_or_union_type_die): Likewise. | |
18052 | (gen_tagged_type_die): Likewise. | |
18053 | (dwarf2out_init): Do not initialize decl_scope_table. | |
18054 | (dwarf2out_c_finalize): Do not free it. | |
18055 | ||
18056 | 2018-06-28 Richard Biener <rguenther@suse.de> | |
18057 | ||
18058 | * dwarf2out.c (gen_subprogram_die): Use is_unit_die when | |
18059 | deciding whether to not re-use a DIE. | |
18060 | ||
18061 | 2018-06-28 Richard Biener <rguenther@suse.de> | |
18062 | ||
18063 | * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an | |
18064 | DW_AT_abstract_origin attribute. | |
18065 | ||
18066 | 2018-06-28 Martin Liska <mliska@suse.cz> | |
18067 | ||
18068 | * tree-switch-conversion.c (jump_table_cluster::can_be_handled): | |
18069 | Use newly introduced constants. | |
18070 | * tree-switch-conversion.h (struct jump_table_cluster): | |
18071 | Define max_ratio_for_size and max_ratio_for_speed. | |
18072 | ||
18073 | 2018-06-28 Martin Liska <mliska@suse.cz> | |
18074 | ||
18075 | * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): | |
18076 | Add new checking assert to catch invalid state. | |
18077 | (jump_table_cluster::can_be_handled): Handle single case | |
18078 | clusters. | |
18079 | (jump_table_cluster::is_beneficial): Bail out for such case. | |
18080 | (bit_test_cluster::find_bit_tests): | |
18081 | Add new checking assert to catch invalid state. | |
18082 | (bit_test_cluster::can_be_handled): Handle single case | |
18083 | clusters. | |
18084 | (bit_test_cluster::is_beneficial): Bail out for such case. | |
18085 | (switch_decision_tree::analyze_switch_statement): | |
18086 | Fix comment. | |
18087 | ||
18088 | 2018-06-28 Martin Liska <mliska@suse.cz> | |
18089 | ||
18090 | * common.opt: Introduce -completion option. | |
18091 | * gcc.c (driver_handle_option): Handle it. | |
18092 | (driver::main): Print completions if completion | |
18093 | is set. | |
18094 | * opt-suggestions.c (option_proposer::get_completions): | |
18095 | New function. | |
18096 | (option_proposer::suggest_completion): Likewise. | |
18097 | (option_proposer::find_param_completions): Likewise. | |
18098 | (verify_autocompletions): Likewise. | |
18099 | (test_completion_valid_options): Likewise. | |
18100 | (test_completion_valid_params): Likewise. | |
18101 | (in_completion_p): Likewise. | |
18102 | (empty_completion_p): Likewise. | |
18103 | (test_completion_partial_match): Likewise. | |
18104 | (test_completion_garbage): Likewise. | |
18105 | (opt_proposer_c_tests): Likewise. | |
18106 | * opt-suggestions.h: Declare new functions. | |
18107 | * opts.c (common_handle_option): Handle OPT__completion_. | |
18108 | * selftest-run-tests.c (selftest::run_tests): Add | |
18109 | opt_proposer_c_tests. | |
18110 | * selftest.c (assert_str_startswith): New. | |
18111 | * selftest.h (assert_str_startswith): Likewise. | |
18112 | (opt_proposer_c_tests): New. | |
18113 | (ASSERT_STR_STARTSWITH): Likewise. | |
18114 | ||
18115 | 2018-06-28 Martin Liska <mliska@suse.cz> | |
18116 | ||
18117 | * Makefile.in: Add opt-suggestions.o. | |
18118 | * gcc-main.c: Include opt-suggestions.h. | |
18119 | * gcc.c (driver::driver): Likewise. | |
18120 | (driver::~driver): Remove m_option_suggestions. | |
18121 | (driver::build_option_suggestions): Moved to option_proposer. | |
18122 | (driver::suggest_option): Likewise. | |
18123 | (driver::handle_unrecognized_options): Use option_proposer. | |
18124 | * gcc.h (class driver): Add new memver m_option_proposer. | |
18125 | * opt-suggestions.c: New file. | |
18126 | * opt-suggestions.h: New file. | |
18127 | ||
18128 | 2018-06-28 Martin Liska <mliska@suse.cz> | |
18129 | ||
18130 | * vec.h (class auto_string_vec): New (moved from auto_argvec). | |
18131 | (auto_string_vec::~auto_string_vec): Likewise. | |
18132 | ||
18133 | 2018-06-28 Eric Botcazou <ebotcazou@adacore.com> | |
18134 | ||
18135 | * tree-inline.h (struct copy_body_data): Move remapping_type_depth and | |
18136 | prevent_decl_creation_for_types fields up and add reset_location field. | |
18137 | * tree-inline.c (remap_gimple_stmt): Force input_location on the new | |
18138 | statement if id->reset_location is true. | |
18139 | (copy_edges_for_bb): Do not set goto_locus on the new edges if | |
18140 | id->reset_location is true. | |
18141 | (copy_phis_for_bb): Force input_location on the arguments if | |
18142 | id->reset_location is true. | |
18143 | (expand_call_inline): Set id->reset_location if DECL_IGNORED_P | |
18144 | is set on the function to be inlined. | |
18145 | ||
18146 | 2018-06-27 Stephan Bergmann <sbergman@redhat.com> | |
18147 | ||
18148 | * doc/invoke.texi (Debugging Options): Add -gsplit-dwarf. | |
18149 | ||
18150 | 2018-06-27 Dimitar Dimitrov <dimitar@dinux.eu> | |
18151 | ||
18152 | * lra-eliminations.c (update_reg_eliminate): Mark all spanning hard | |
18153 | registers for Pmode. | |
18154 | * lra-lives.c (check_pseudos_live_through_calls): Mark all spanning | |
18155 | hard registers for the clobbered pseudo. | |
18156 | ||
18157 | 2018-06-27 Paul Koning <ni1d@arrl.net> | |
18158 | ||
18159 | * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle | |
18160 | mutually exclusive options. | |
18161 | * config/pdp11/constraints.md (h): New constraint. | |
18162 | (O): Update definition to match shift code generation. | |
18163 | (D): New constraint. | |
18164 | * config/pdp11/pdp11-modes.def (CCNZ): Define mode. | |
18165 | (CCFP): Remove. | |
18166 | * config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New | |
18167 | function. | |
18168 | (output_jump): Change arguments. | |
18169 | (pdp11_fixed_cc_regs): New function. | |
18170 | (pdp11_cc_mode): Ditto. | |
18171 | (pdp11_expand_shift): Ditto. | |
18172 | (pdp11_assemble_shift): Ditto. | |
18173 | (pdp11_small_shift): Ditto. | |
18174 | (pdp11_branch_cost): Remove. | |
18175 | * config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments | |
18176 | from output. | |
18177 | (pdp11_register_move_cost): Update for CC registers. | |
18178 | (pdp11_rtx_costs): Add case for LSHIFTRT. | |
18179 | (pdp11_output_jump): Add CCNZ mode conditional branches. | |
18180 | (notice_update_cc_on_set): Remove. | |
18181 | (pdp11_cc_mode): New function. | |
18182 | (simple_memory_operand): Correct pre/post decrement case. | |
18183 | (no_side_effect_operand): New function. | |
18184 | (pdp11_regno_reg_class): Add CC_REGS class. | |
18185 | (pdp11_fixed_cc_regs): New function. | |
18186 | (pdp11_small_shift): New function. | |
18187 | (pdp11_expand_shift): New function to expand shift insns. | |
18188 | (pdp11_assemble_shift): New function to output shifts. | |
18189 | (pdp11_branch_cost): Remove. | |
18190 | (pdp11_modes_tieable_p): Make QI/HI modes tieable. | |
18191 | * config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type. | |
18192 | (WCHAR_TYPE): Ditto. | |
18193 | (PTRDIFF_TYPE): Ditto. | |
18194 | (ADJUST_INSN_LENGTH): New macro. | |
18195 | (FIXED_REGISTERS): Add CC registers. | |
18196 | (CALL_USED_REGISTERS): Ditto. | |
18197 | (reg_class): Ditto. | |
18198 | (REG_CLASS_NAMES): Ditto. | |
18199 | (REG_CLASS_CONTENTS): Ditto. | |
18200 | (SELECT_CC_MODE): Use new function. | |
18201 | (TARGET_FLAGS_REGNUM): New macro. | |
18202 | (TARGET_FIXED_CONDITION_CODE_REGS): Ditto. | |
18203 | (cc0_reg_rtx): Remove. | |
18204 | (CC_STATUS_MDEP): Remove. | |
18205 | (CC_STATUS_MDEFP_INIT): Remove. | |
18206 | (CC_IN_FPU): Remove. | |
18207 | (NOTICE_UPDATE_CC): Remove. | |
18208 | (REGISTER_NAMES): Add CC registers. | |
18209 | (BRANCH_COST): Change to constant 1. | |
18210 | * config/pdp11/pdp11.md: Rewrite for CCmode condition code | |
18211 | handling. | |
18212 | * config/pdp11/pdp11.opt (mbcopy): Remove. | |
18213 | (mbcopy-builtin): Remove. | |
18214 | (mbranch-cheap): Remove. | |
18215 | (mbranch-expensive): Remove. | |
18216 | * config/pdp11/predicates.md (expand_shift_operand): Update to | |
18217 | match shift code generation. | |
18218 | (ccnz_operator): New predicate. | |
18219 | * doc/invoke.texi (PDP-11 Options): Remove deleted options | |
18220 | -mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive. | |
18221 | Remove non-existent option -mabshi, -mno-abshi. Document mutually | |
18222 | exclusive options. | |
18223 | * doc/md.texi (PDP-11): Document new D and h constraints. Update | |
18224 | description of O constraint. | |
18225 | ||
18226 | 2018-06-27 Jeff Law <law@redhat.com> | |
18227 | Austin Law <austinklaw@gmail.com> | |
18228 | ||
18229 | * config/v850/v850.md (addsi3_set_flags): New pattern. | |
18230 | (subsi3_set_flags, negsi2_set_flags, andsi3_set_flags): Likewise. | |
18231 | (iorsi3_set_flags, xorsi3_set_flags, one_cmplsi2_set_flags): Likewise. | |
18232 | (zero_extendhisi2_v850_set_flags): Likewise. | |
18233 | (zero_extendqisi2_v850_set_flags): Likewise. | |
18234 | (ashlsi3_set_flags, ashlsi3_v850e2_set_flags): Likewise. | |
18235 | (lshrsi3_set_flags, lshrsi3_v850e2_set_flags): Likewise. | |
18236 | (ashrsi3_set_flags, ashrsi3_v850e2_set_flags): Likewise. | |
18237 | ||
18238 | * config/v850/v850-protos.h (notice_update_cc): Remove. | |
18239 | * config/v850/v850.c (v850_compare_op0, v850_compare_op1): Remove. | |
18240 | (v850_print_operand): Handle 'D' and "d". | |
18241 | (v850_select_cc_mode): Remove ATTRIBUTE_UNUSED for last argument. | |
18242 | Add handling of arithmetic/logical operations compared against zero. | |
18243 | (v850_gen_float_compare): Remove ATTRIBUTE_UNUSED for last argument. | |
18244 | Do not look at v850_compare_op, instead get mode from last argument. | |
18245 | (v850_gen_compare): Remove | |
18246 | (increment_stack): Use addsi3_clobber_flags to avoid splitting failure | |
18247 | after reload for prologue insns. | |
18248 | (expand_prologue): Account for CLOBBER of CC_REGNUM in various | |
18249 | patterns. | |
18250 | (construct_save_jarl): Likewise. | |
18251 | (TARGET_FLAGS_REGNUM): Define. | |
18252 | * config/v850/v850.h (v850_compare_op0, v850_compare_op1): Remove. | |
18253 | (NOTICE_UPDATE_CC): Remove. | |
18254 | * config/v850/v850.md (v850_tst1): Use (reg:CCZ CC_REGNUM) rather | |
18255 | than cc0. Conditionalize on reload_completed. | |
18256 | (cmpsi_insn, setfcc_insn): Likewise. | |
18257 | (tst1 splitter): Turn into define_and_split which sets the flags | |
18258 | after reload. | |
18259 | (cstoresi4, cbranchsf4, cbranchdf4, cbranchsi4_insn): Likewise. | |
18260 | (cbranchsi4, branch_normal, branch_invert): Do not expose cc0 here. | |
18261 | (cstoresf4, cstoredf4): Clobber the flags. | |
18262 | (cmpsi, cmpsf, cmpdf): Remove expanders. | |
18263 | (setf_insn): Remove pattern. | |
18264 | (addsi3): Turn into define_and_split which clobbers the flags after | |
18265 | reload and a suitable pattern (addsi3_clobber_flags) for use after | |
18266 | reload. | |
18267 | (subsi3, negsi2, andsi3, iorsi3, xorsi3, one_cmplsi2) Likewise. | |
18268 | (ashlsi3, ashlsi3_v850e2, lshrsi3, lsh4si3_v850e2): Likewise. | |
18269 | (ashrsi3, ashrsi3_v850e2): Likewise. | |
18270 | (bins): Clobber the flags. | |
18271 | (movsicc_normal_cc, movsicc_normal, movsicc_tst1): Likewise. | |
18272 | (movsicc_tst1_revesed, sasf, swap and rotate patterns): Likewise. | |
18273 | (fix_loop_counter, call_internal_short, call_internal_long): Likewise. | |
18274 | (call_value_internal_short, call_value_internal_long): Likewise. | |
18275 | (callt_save_interrupt, callt_return_interrupt): Likewise. | |
18276 | (save_interrupt, return_interrupt): Likewise. | |
18277 | (callt_save_all_interrupt, save_all_interrupt): Likewise. | |
18278 | (_save_all_interrupt, callt_restore_all_interrupt): Likewise. | |
18279 | (restore_all_interrupt, _restore_all_interrupt): Likewise. | |
18280 | (All FP comparisons): Only allow after reload has completed. | |
18281 | (trfsr): Likewise. | |
18282 | (divh, divhu): Tweak output template. | |
18283 | (branch_z_normal, branch_z_invert): Remove | |
18284 | (branch_nz_normal, branch_nz_invert): Likewise. | |
18285 | (extendhisi_insn, extendqisi_insn): Do not clobber flags. | |
18286 | ||
18287 | * config/v850/v850-modes.def (CCZ, CCNZ): Add new modes. | |
18288 | * config/v850/v850.c (notice_update_cc): Remove. | |
18289 | * config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove | |
18290 | (CC_NO_CARRY): Likewise. | |
18291 | (NOTICE_UPDATE_CC): Define to nothing. | |
18292 | * config/v850/v850.md: Remove block comment on cc0 handling | |
18293 | Remove "cc" attribute from all patterns. Remove cc_status handling | |
18294 | from all patterns. Minor formatting fixes. | |
18295 | ||
18296 | 2018-06-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18297 | ||
18298 | * config/aarch64/aarch64-cores.def (cortex-a76): New entry. | |
18299 | (cortex-a76.cortex-a55): Likewise. | |
18300 | * config/aarch64/aarch64-tune.md: Regenerate. | |
18301 | * doc/invoke.texi (AArch64 Options): Document cortex-a76 and | |
18302 | cortex-a76.cortex-a55. | |
18303 | ||
18304 | 2018-06-27 Jeff Law <law@redhat.com> | |
18305 | ||
18306 | * config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align. | |
18307 | (MULTILIB_DIRNAMES): Similarly. | |
18308 | ||
18309 | 2018-06-27 Eric Botcazou <ebotcazou@adacore.com> | |
18310 | ||
18311 | * gimple.h (gimple_return_retbnd): Delete. | |
18312 | (gimple_return_set_retbnd): Likewise. | |
18313 | * cgraphunit.c (cgraph_node::expand_thunk): Remove call to | |
18314 | gimple_return_set_retbnd. | |
18315 | * gimple-pretty-print.c (dump_gimple_return): Remove call to | |
18316 | gimple_return_retbnd and adjust. | |
18317 | * tree-inline.h (struct copy_body_data): Remove retbnd field. | |
18318 | * tree-inline.c (remap_gimple_stmt): Remove handling of retbnd. | |
18319 | Explicitly return NULL in a couple more cases. Move assertion | |
18320 | on debug statements and remove unreachable code. | |
18321 | (reset_debug_binding): Do not test id->retbnd. | |
18322 | (expand_call_inline): Do not set it. | |
18323 | ||
18324 | 2018-06-27 Rasmus Villemoes <rv@rasmusvillemoes.dk> | |
18325 | ||
18326 | * configure.ac: Add --disable-gcov option. | |
18327 | * configure: Regenerate. | |
18328 | * Makefile.in: Honour @enable_gcov@. | |
18329 | * doc/install.texi: Document --disable-gcov. | |
18330 | ||
18331 | 2018-06-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18332 | ||
18333 | * config/arm/arm-cpus.in (cortex-a76): New entry. | |
18334 | (cortex-a76.cortex-a55): Likewise. | |
18335 | * config/arm/arm-tables.opt: Regenerate. | |
18336 | * config/arm/arm-tune.md: Likewise. | |
18337 | * config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry. | |
18338 | * doc/invoke.texi (ARM Options): Document cortex-a76 and | |
18339 | cortex-a76.cortex-a55. | |
18340 | ||
18341 | 2018-06-27 Tamar Christina <tamar.christina@arm.com> | |
18342 | ||
18343 | PR target/85769 | |
18344 | * config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern. | |
18345 | ||
18346 | 2018-06-27 Siddhesh Poyarekar <siddhesh@sourceware.org> | |
18347 | ||
18348 | * config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete | |
18349 | comment. | |
18350 | (EPILOGUE_USES): Likewise. | |
18351 | ||
18352 | 2018-06-26 Eric Botcazou <ebotcazou@adacore.com> | |
18353 | ||
18354 | * tree-inline.c (remap_location): New function extracted from... | |
18355 | (copy_edges_for_bb): Add ID parameter. Remap goto_locus. | |
18356 | (copy_phis_for_bb): ...here. Call remap_location. | |
18357 | (copy_cfg_body): Adjust call to copy_edges_for_bb. | |
18358 | ||
18359 | 2018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> | |
18360 | ||
18361 | * config/rs6000/rs6000-string.c (expand_block_clear): Don't use | |
18362 | unaligned vsx for 16B memset. | |
18363 | ||
18364 | 2018-06-26 Segher Boessenkool <segher@kernel.crashing.org> | |
18365 | ||
18366 | PR target/86285 | |
18367 | * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set | |
18368 | ieee128_float_type_node to long_double_type_node unless | |
18369 | TARGET_LONG_DOUBLE_128 is set. | |
18370 | ||
18371 | 2018-06-26 David Malcolm <dmalcolm@redhat.com> | |
18372 | ||
18373 | * cfgloop.c (get_loop_location): Convert return type from | |
18374 | location_t to dump_user_location_t, replacing INSN_LOCATION lookups | |
18375 | by implicit construction from rtx_insn *, and using | |
18376 | dump_user_location_t::from_function_decl for the fallback case. | |
18377 | * cfgloop.h (get_loop_location): Convert return type from | |
18378 | location_t to dump_user_location_t. | |
18379 | * cgraphunit.c (walk_polymorphic_call_targets): Update call to | |
18380 | dump_printf_loc to pass in a dump_location_t rather than a | |
18381 | location_t, via the gimple stmt. | |
18382 | * coverage.c (get_coverage_counts): Update calls to | |
18383 | dump_printf_loc to pass in dump_location_t rather than a | |
18384 | location_t. | |
18385 | * doc/optinfo.texi (Dump types): Convert example of | |
18386 | dump_printf_loc from taking "locus" to taking "insn". Update | |
18387 | description of the "_loc" calls to cover dump_location_t. | |
18388 | * dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and | |
18389 | "selftest.h". | |
18390 | (dump_user_location_t::dump_user_location_t): New constructors, | |
18391 | from gimple *stmt and rtx_insn *. | |
18392 | (dump_user_location_t::from_function_decl): New function. | |
18393 | (dump_loc): Make static. | |
18394 | (dump_gimple_stmt_loc): Convert param "loc" from location_t to | |
18395 | const dump_location_t &. | |
18396 | (dump_generic_expr_loc): Delete. | |
18397 | (dump_printf_loc): Convert param "loc" from location_t to | |
18398 | const dump_location_t &. | |
18399 | (selftest::test_impl_location): New function. | |
18400 | (selftest::dumpfile_c_tests): New function. | |
18401 | * dumpfile.h: Include "profile-count.h". | |
18402 | (class dump_user_location_t): New class. | |
18403 | (struct dump_impl_location_t): New struct. | |
18404 | (class dump_location_t): New class. | |
18405 | (dump_printf_loc): Convert 2nd param from source_location to | |
18406 | const dump_location_t &. | |
18407 | (dump_generic_expr_loc): Delete. | |
18408 | (dump_gimple_stmt_loc): Convert 2nd param from source_location to | |
18409 | const dump_location_t &. | |
18410 | * gimple-fold.c (fold_gimple_assign): Update call to | |
18411 | dump_printf_loc to pass in a dump_location_t rather than a | |
18412 | location_t, via the gimple stmt. | |
18413 | (gimple_fold_call): Likewise. | |
18414 | * gimple-loop-interchange.cc | |
18415 | (loop_cand::analyze_iloop_reduction_var): Update for change to | |
18416 | check_reduction_path. | |
18417 | (tree_loop_interchange::interchange): Update for change to | |
18418 | find_loop_location. | |
18419 | * graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for | |
18420 | change in return-type of find_loop_location. | |
18421 | (graphite_regenerate_ast_isl): Likewise. | |
18422 | * graphite-optimize-isl.c (optimize_isl): Likewise. | |
18423 | * graphite.c (graphite_transform_loops): Likewise. | |
18424 | * ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to | |
18425 | pass in a dump_location_t rather than a location_t, via the | |
18426 | gimple stmt. | |
18427 | * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. | |
18428 | * ipa.c (walk_polymorphic_call_targets): Likewise. | |
18429 | * loop-unroll.c (report_unroll): Convert "locus" param from | |
18430 | location_t to dump_location_t. | |
18431 | (decide_unrolling): Update for change to get_loop_location's | |
18432 | return type. | |
18433 | * omp-grid.c (struct grid_prop): Convert field "target_loc" from | |
18434 | location_t to dump_user_location_t. | |
18435 | (grid_find_single_omp_among_assignments_1): Updates calls to | |
18436 | dump_printf_loc to pass in a dump_location_t rather than a | |
18437 | location_t, via the gimple stmt. | |
18438 | (grid_parallel_clauses_gridifiable): Convert "tloc" from | |
18439 | location_t to dump_location_t. Updates calls to dump_printf_loc | |
18440 | to pass in a dump_location_t rather than a location_t, via the | |
18441 | gimple stmt. | |
18442 | (grid_inner_loop_gridifiable_p): Likewise. | |
18443 | (grid_dist_follows_simple_pattern): Likewise. | |
18444 | (grid_gfor_follows_tiling_pattern): Likewise. | |
18445 | (grid_target_follows_gridifiable_pattern): Likewise. | |
18446 | (grid_attempt_target_gridification): Convert initialization | |
18447 | of local "grid" from memset to zero-initialization; FIXME: does | |
18448 | this require C++11? Update call to dump_printf_loc to pass in a | |
18449 | optinfo_location rather than a location_t, via the gimple stmt. | |
18450 | * profile.c (read_profile_edge_counts): Updates call to | |
18451 | dump_printf_loc to pass in a dump_location_t rather than a | |
18452 | location_t | |
18453 | (compute_branch_probabilities): Likewise. | |
18454 | * selftest-run-tests.c (selftest::run_tests): Call | |
18455 | dumpfile_c_tests. | |
18456 | * selftest.h (dumpfile_c_tests): New decl. | |
18457 | * tree-loop-distribution.c (pass_loop_distribution::execute): | |
18458 | Update for change in return type of find_loop_location. | |
18459 | * tree-parloops.c (parallelize_loops): Likewise. | |
18460 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert | |
18461 | "locus" from location_t to dump_user_location_t. | |
18462 | (canonicalize_loop_induction_variables): Likewise. | |
18463 | * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update | |
18464 | for change in return type of find_loop_location. | |
18465 | * tree-ssa-loop-niter.c (number_of_iterations_exit): Update call | |
18466 | to dump_printf_loc to pass in a dump_location_t rather than a | |
18467 | location_t, via the stmt. | |
18468 | * tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children): | |
18469 | Likewise. | |
18470 | * tree-vect-loop-manip.c (find_loop_location): Convert return | |
18471 | type from source_location to dump_user_location_t. | |
18472 | (vect_do_peeling): Update for above change. | |
18473 | (vect_loop_versioning): Update for change in type of | |
18474 | vect_location. | |
18475 | * tree-vect-loop.c (check_reduction_path): Convert "loc" param | |
18476 | from location_t to dump_user_location_t. | |
18477 | (vect_estimate_min_profitable_iters): Update for change in type | |
18478 | of vect_location. | |
18479 | * tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from | |
18480 | location_t to dump_location_t. | |
18481 | (vect_slp_bb): Update for change in type of vect_location. | |
18482 | * tree-vectorizer.c (vect_location): Convert from source_location | |
18483 | to dump_user_location_t. | |
18484 | (try_vectorize_loop_1): Update for change in vect_location's type. | |
18485 | (vectorize_loops): Likewise. | |
18486 | (increase_alignment): Likewise. | |
18487 | * tree-vectorizer.h (vect_location): Convert from source_location | |
18488 | to dump_user_location_t. | |
18489 | (find_loop_location): Convert return type from source_location to | |
18490 | dump_user_location_t. | |
18491 | (check_reduction_path): Convert 1st param from location_t to | |
18492 | dump_user_location_t. | |
18493 | * value-prof.c (check_counter): Update call to dump_printf_loc to | |
18494 | pass in a dump_user_location_t rather than a location_t; update | |
18495 | call to error_at for change in type of "locus". | |
18496 | (check_ic_target): Update call to dump_printf_loc to | |
18497 | pass in a dump_user_location_t rather than a location_t, via the | |
18498 | call_stmt. | |
18499 | ||
18500 | 2018-06-26 Robin Dapp <rdapp@linux.vnet.ibm.com> | |
18501 | ||
18502 | * config/s390/s390.h (enum processor_flags): Do not use | |
18503 | default tune parameter when -march was specified. | |
18504 | ||
18505 | 2018-06-26 Jakub Jelinek <jakub@redhat.com> | |
18506 | ||
18507 | PR target/86314 | |
18508 | * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s): | |
18509 | Check reg_overlap_mentioned_p in addition to reg_set_p with the same | |
18510 | operands. | |
18511 | ||
18512 | 2018-06-26 Richard Biener <rguenther@suse.de> | |
18513 | ||
18514 | PR tree-optimization/86287 | |
18515 | PR bootstrap/86316 | |
18516 | * tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free. | |
18517 | (vect_analyze_loop): Initialize n_stmts. | |
18518 | ||
18519 | 2018-06-26 Richard Biener <rguenther@suse.de> | |
18520 | ||
18521 | PR middle-end/86271 | |
18522 | * fold-const.c (fold_convertible_p): Pointer extension | |
18523 | isn't valid. | |
18524 | ||
18525 | 2018-06-26 Alexandre Oliva <aoliva@redhat.com> | |
18526 | ||
18527 | PR debug/86064 | |
18528 | * dwarf2out.c (loc_list_has_views): Adjust comments. | |
18529 | (dw_loc_list): Split single cross-partition range with | |
18530 | nonzero locview. | |
18531 | ||
18532 | 2018-06-25 Jeff Law <law@redhat.com> | |
18533 | ||
18534 | * common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn | |
18535 | on -mbig-switch by default. | |
18536 | ||
18537 | * config/v850/predicates.md (const_float_1_operand): Fix match_code | |
18538 | test. | |
18539 | (const_float_0_operand): Remove unused predicate. | |
18540 | * config/v850/v850.md (define_constants): Remove UNSPEC_LOOP. | |
18541 | (define_c_enum unspec): Add LOOP, RCP and RSQRT constants. | |
18542 | (recipsf2): New expander. Original pattern now called | |
18543 | (recipsf2_insn). | |
18544 | (recipdf2, recipdf2_insn): Similarly. | |
18545 | (rsqrtsf2, rsqrtsf2_insn): Similarly | |
18546 | (rsqrtdf2, rsqrtdf2_insn): Similarly | |
18547 | ||
18548 | 2018-06-26 Gerald Pfeifer <gerald@pfeifer.com> | |
18549 | ||
18550 | * ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5. | |
18551 | Simplify logic for FreeBSD (twice). | |
18552 | ||
18553 | 2018-06-25 Martin Sebor <msebor@redhat.com> | |
18554 | ||
18555 | PR tree-optimization/86204 | |
18556 | * tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing | |
18557 | a strnlen result if it's less than the length of the string. | |
18558 | ||
18559 | 2018-06-25 Martin Sebor <msebor@redhat.com> | |
18560 | ||
18561 | PR tree-optimization/85700 | |
18562 | * gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment. | |
18563 | * tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction. | |
18564 | (maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy. | |
18565 | ||
18566 | 2018-06-25 Martin Sebor <msebor@redhat.com> | |
18567 | ||
18568 | * doc/extend.texi (Zero-length arrays): Update and clarify. | |
18569 | ||
18570 | 2018-06-25 Michael Meissner <meissner@linux.ibm.com> | |
18571 | ||
18572 | * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that | |
18573 | added IEEE/IBM long double multilib support on PowerPC little | |
18574 | endian Linux systems. | |
18575 | * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise. | |
18576 | (MULTILIB_DEFAULTS): Likewise. | |
18577 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
18578 | Likewise. | |
18579 | * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise. | |
18580 | * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used. | |
18581 | * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used. | |
18582 | ||
18583 | 2018-06-25 Alexander Monakov <amonakov@ispras.ru> | |
18584 | ||
18585 | PR middle-end/86311 | |
18586 | * sort.cc (REORDER_23): Avoid memcpy with same destination and source. | |
18587 | (REORDER_45): Likewise. | |
18588 | ||
18589 | 2018-06-25 Jeff Law <law@redhat.com> | |
18590 | ||
18591 | * config/v850/v850.md (divmodhi4): Make sure to sign extend the | |
18592 | dividend to 32 bits. Adjust length. | |
18593 | (udivmodhi4): Cleanup output template. Fix length. | |
18594 | ||
18595 | 2018-06-25 Carl Love <cel@us.ibm.com> | |
18596 | ||
18597 | * config/rs6000/vsx.md: Change word selector to prefered location. | |
18598 | ||
18599 | 2018-06-25 Richard Biener <rguenther@suse.de> | |
18600 | ||
18601 | PR tree-optimization/86304 | |
18602 | * tree-vectorizer.c (vectorize_loops): Walk over new possibly | |
18603 | epilogue-if-converted loops as well. | |
18604 | ||
18605 | 2018-06-25 Jan Hubicka <hubicka@ucw.cz> | |
18606 | ||
18607 | * lto-section-out.c (lto_begin_section): Do not print section | |
18608 | name for noaddr and unnumbered dumps. | |
18609 | ||
18610 | 2018-06-25 Richard Biener <rguenther@suse.de> | |
18611 | ||
18612 | * tree-vectorizer.h (struct vec_info_shared): New structure | |
18613 | with parts split out from struct vec_info and loop_nest from | |
18614 | struct _loop_vec_info. | |
18615 | (struct vec_info): Adjust accordingly. | |
18616 | (struct _loop_vec_info): Likewise. | |
18617 | (LOOP_VINFO_LOOP_NEST): Adjust. | |
18618 | (LOOP_VINFO_DATAREFS): Likewise. | |
18619 | (LOOP_VINFO_DDRS): Likewise. | |
18620 | (struct _bb_vec_info): Likewise. | |
18621 | (BB_VINFO_DATAREFS): Likewise. | |
18622 | (BB_VINFO_DDRS): Likewise. | |
18623 | (struct _stmt_vec_info): Add dr_aux member. | |
18624 | (DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo. | |
18625 | (DR_MISALIGNMENT_UNINITIALIZED): New. | |
18626 | (set_dr_misalignment): Adjust. | |
18627 | (dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED. | |
18628 | (vect_analyze_loop): Adjust prototype. | |
18629 | (vect_analyze_loop_form): Likewise. | |
18630 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): | |
18631 | Compute dependences lazily. | |
18632 | (vect_record_base_alignments): Use shared datarefs/ddrs. | |
18633 | (vect_verify_datarefs_alignment): Likewise. | |
18634 | (vect_analyze_data_refs_alignment): Likewise. | |
18635 | (vect_analyze_data_ref_accesses): Likewise. | |
18636 | (vect_analyze_data_refs): Likewise. | |
18637 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add | |
18638 | constructor parameter for shared part. | |
18639 | (vect_analyze_loop_form): Pass in shared part and adjust. | |
18640 | (vect_analyze_loop_2): Pass in storage for the number of | |
18641 | stmts. Move loop nest finding to the caller. Compute | |
18642 | datarefs lazily. | |
18643 | (vect_analyze_loop): Pass in shared part. | |
18644 | (vect_transform_loop): Verify shared datarefs are unchanged. | |
18645 | * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add | |
18646 | constructor parameter for shared part. | |
18647 | (vect_slp_analyze_bb_1): Pass in shared part and adjust. | |
18648 | (vect_slp_bb): Verify shared datarefs are unchanged before | |
18649 | transform. | |
18650 | * tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX | |
18651 | change. | |
18652 | (new_stmt_vec_info): Initialize DR_AUX misalignment to | |
18653 | DR_MISALIGNMENT_UNINITIALIZED. | |
18654 | * tree-vectorizer.c (vec_info::vec_info): Add constructor | |
18655 | parameter for shared part. | |
18656 | (vec_info::~vec_info): Adjust. | |
18657 | (vec_info_shared::vec_info_shared): New. | |
18658 | (vec_info_shared::~vec_info_shared): Likewise. | |
18659 | (vec_info_shared::save_datarefs): Likewise. | |
18660 | (vec_info_shared::check_datarefs): Likewise. | |
18661 | (try_vectorize_loop_1): Construct shared part live for analyses | |
18662 | of a single loop for multiple vector sizes. | |
18663 | * tree-parloops.c (gather_scalar_reductions): Adjust. | |
18664 | ||
18665 | 2018-06-25 Richard Biener <rguenther@suse.de> | |
18666 | ||
18667 | * tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify | |
18668 | DR for SIMD lane accesses here and mark DR with (void *)-1 aux. | |
18669 | (vect_analyze_data_refs): Remove similar code from here and | |
18670 | simplify accordingly. | |
18671 | ||
18672 | 2018-06-25 Richard Biener <rguenther@suse.de> | |
18673 | ||
18674 | * tree-vect-data-refs.c (vect_check_gather_scatter): Fail | |
18675 | for reverse storage order accesses rather than asserting | |
18676 | they cannot happen here. | |
18677 | ||
18678 | 2018-06-25 Tom de Vries <tdevries@suse.de> | |
18679 | ||
18680 | PR debug/86257 | |
18681 | * config/i386/i386.md (define_insn "*tls_global_dynamic_64_<mode>"): | |
18682 | Use data16 instead of .byte for insn prefix. | |
18683 | ||
18684 | 2018-06-25 Andreas Krebbel <krebbel@linux.ibm.com> | |
18685 | ||
18686 | PR C++/86082 | |
18687 | * parser.c (make_char_string_pack): Pass this literal chars | |
18688 | through cpp_interpret_string. | |
18689 | (cp_parser_userdef_numeric_literal): Check the result of | |
18690 | make_char_string_pack. | |
18691 | ||
18692 | 2018-06-24 Maya Rashish <coypu@sdf.org> | |
18693 | ||
18694 | * ginclude/stddef.h: Simplify conditions around avoiding | |
18695 | re-definition of __size_t. | |
18696 | ||
18697 | 2018-06-22 Jan Hubicka <hubicka@ucw.cz> | |
18698 | ||
18699 | * lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable | |
18700 | unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL. | |
18701 | ||
18702 | 2018-06-22 Maya Rashish <coypu@sdf.org> | |
18703 | ||
18704 | * doc/invoke.texi (mno-fancy-math-387): Update for changes | |
18705 | made to OpenBSD and NetBSD through the years. | |
18706 | ||
18707 | 2018-06-22 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
18708 | ||
18709 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change | |
18710 | behavior of vec_pack (vector double, vector double) to match | |
18711 | behavior of vec_float2 (vector double, vector double). | |
18712 | ||
18713 | 2018-06-22 Olivier Hainque <hainque@adacore.com> | |
18714 | ||
18715 | * gimplify.c (gimplify_function_tree): Prevent creation | |
18716 | of a trampoline for the address of the current function | |
18717 | passed to entry/exit instrumentation hooks. | |
18718 | ||
18719 | 2018-06-22 Aaron Sawdey <acsawdey@linux.ibm.com> | |
18720 | ||
18721 | PR target/86222 | |
18722 | * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32 | |
18723 | correctly. | |
18724 | ||
18725 | 2018-06-22 Martin Liska <mliska@suse.cz> | |
18726 | ||
18727 | PR tree-optimization/86263 | |
18728 | * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): | |
18729 | Bail out if is_enabled is false. | |
18730 | * tree-switch-conversion.h (jump_table_cluster::is_enabled): | |
18731 | New declaration. | |
18732 | (jump_table_cluster::is_enabled): New function. | |
18733 | ||
18734 | 2018-06-22 Jan Hubicka <hubicka@ucw.cz> | |
18735 | ||
18736 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream | |
18737 | BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD. | |
18738 | * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. | |
18739 | (lto_input_ts_binfo_tree_pointers): Likewise. | |
18740 | * tree-streamer-out.c (streamer_write_tree_bitfields, | |
18741 | write_ts_binfo_tree_pointers): Likewise. | |
18742 | * tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD. | |
18743 | ||
18744 | 2018-06-22 Jan Hubicka <hubicka@ucw.cz> | |
18745 | ||
18746 | * tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs. | |
18747 | ||
18748 | 2018-06-22 Martin Liska <mliska@suse.cz> | |
18749 | ||
18750 | * symbol-summary.h (get): Make it pure and inline move | |
18751 | functionality from ::get function. | |
18752 | (get): Remove and inline into ::get and ::get_create. | |
18753 | (get_create): Move code from ::get function. | |
18754 | ||
18755 | 2018-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
18756 | ||
18757 | PR target/85994 | |
18758 | * config/i386/sol2.h (CPP_SPEC): Don't pass -P for | |
18759 | -x assembler-with-cpp. | |
18760 | ||
18761 | 2018-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
18762 | ||
18763 | * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define | |
18764 | _FILE_OFFSET_BITS=64 for C++. | |
18765 | ||
18766 | 2018-06-21 Michael Meissner <meissner@linux.ibm.com> | |
18767 | ||
18768 | * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit | |
18769 | conversion insn that shows up when pr85657-3.c is compiled using | |
18770 | IEEE 128-bit long double. | |
18771 | (neg<mode>2_internal): Use the correct mode to check whether the | |
18772 | mode is IBM extended. | |
18773 | * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex | |
18774 | multiply and divide external functions from being created more | |
18775 | than once. | |
18776 | ||
18777 | 2018-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
18778 | ||
18779 | * cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P | |
18780 | functions. | |
18781 | (rtl_merge_blocks): Likewise. Do not emit a NOP if the location of | |
18782 | the edge can be forwarded. | |
18783 | (cfg_layout_merge_blocks): Likewise. | |
18784 | ||
18785 | 2018-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
18786 | ||
18787 | * except.c (finish_eh_generation): Commit edge insertions only after | |
18788 | the EH edges have been redirected from post-landing to landing pads. | |
18789 | ||
18790 | 2018-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
18791 | ||
18792 | * tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of | |
18793 | create_tmp_var_for to create the FRAME decl. | |
18794 | (finalize_nesting_tree_1): Do not unchain the FRAME decl. | |
18795 | ||
18796 | 2018-06-21 Eric Botcazou <ebotcazou@adacore.com> | |
18797 | ||
18798 | * tree-inline.c (copy_edges_for_bb): Minor tweak. | |
18799 | (maybe_move_debug_stmts_to_successors): Also reset the locus of the | |
18800 | debug statement when resetting its value. | |
18801 | (expand_call_inline): Copy the locus of the call onto the assignment | |
18802 | of the return value, if any. Use local variable in more cases. | |
18803 | ||
18804 | 2018-06-21 Martin Liska <mliska@suse.cz> | |
18805 | ||
18806 | * ipa-pure-const.c (propagate_nothrow): Use | |
18807 | funct_state_summaries->get. | |
18808 | (dump_malloc_lattice): Likewise. | |
18809 | (propagate_malloc): Likewise. | |
18810 | ||
18811 | 2018-06-21 Richard Biener <rguenther@suse.de> | |
18812 | ||
18813 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated | |
18814 | comment. Follow BLOCK_ABSTRACT_ORIGIN unconditionally. | |
18815 | * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update | |
18816 | comment. | |
18817 | * tree-streamer-out.c (write_ts_block_tree_pointers): Stream | |
18818 | BLOCK_ABSTRACT_ORIGIN unconditionally. | |
18819 | ||
18820 | 2018-06-21 David Malcolm <dmalcolm@redhat.com> | |
18821 | ||
18822 | * ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after | |
18823 | deleting it. | |
18824 | * ipa-reference.c (ipa_reference_c_finalize): Delete | |
18825 | ipa_ref_opt_sum_summaries and set it to NULL. | |
18826 | ||
18827 | 2018-06-21 Tom de Vries <tdevries@suse.de> | |
18828 | ||
18829 | PR tree-optimization/85859 | |
18830 | * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call | |
18831 | test with comment from bb_no_side_effects_p. | |
18832 | ||
18833 | 2018-06-21 Richard Biener <rguenther@suse.de> | |
18834 | ||
18835 | PR tree-optimization/86232 | |
18836 | * tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust | |
18837 | max for constant niter. | |
18838 | ||
18839 | 2018-06-21 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
18840 | ||
18841 | * config/aarch64/aarch64-simd.md | |
18842 | (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): New. | |
18843 | ||
18844 | 2018-06-21 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
18845 | ||
18846 | * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi): | |
18847 | Make opernads of the unspec commutative. | |
18848 | ||
18849 | 2018-06-21 Richard Biener <rguenther@suse.de> | |
18850 | ||
18851 | * tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP. | |
18852 | * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): | |
18853 | Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters. | |
18854 | (vect_analyze_data_ref_dependence): Re-order checks to deal with | |
18855 | NULL DR_STEP. | |
18856 | (vect_record_base_alignments): Do not record base alignment | |
18857 | for gathers or scatters. | |
18858 | (vect_compute_data_ref_alignment): Drop return value that is always | |
18859 | true. Bail out early for gathers or scatters. | |
18860 | (vect_enhance_data_refs_alignment): Bail out early for gathers | |
18861 | or scatters. | |
18862 | (vect_find_same_alignment_drs): Likewise. | |
18863 | (vect_analyze_data_refs_alignment): Remove dead code. | |
18864 | (vect_slp_analyze_and_verify_node_alignment): Likewise. | |
18865 | (vect_analyze_data_refs): For possible gathers or scatters do | |
18866 | not create an alternate DR, just check their possible validity | |
18867 | and mark them. Adjust DECL_NONALIASED handling to not rely | |
18868 | on DR_BASE_ADDRESS. | |
18869 | * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not | |
18870 | update inits of gathers or scatters. | |
18871 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): | |
18872 | Also copy gather/scatter flag to pattern vinfo. | |
18873 | ||
18874 | 2018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
18875 | ||
18876 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change | |
18877 | behavior of vec_packsu (vector unsigned long long, vector unsigned | |
18878 | long long) to match behavior of vec_packs with same signature. | |
18879 | ||
18880 | 2018-06-20 Chung-Lin Tang <cltang@codesourcery.com> | |
18881 | Thomas Schwinge <thomas@codesourcery.com> | |
18882 | Cesar Philippidis <cesar@codesourcery.com> | |
18883 | ||
18884 | * gimplify.c (gimplify_scan_omp_clauses): Add support for | |
18885 | OMP_CLAUSE_{IF_PRESENT,FINALIZE}. | |
18886 | (gimplify_adjust_omp_clauses): Likewise. | |
18887 | (gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove | |
18888 | support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}. | |
18889 | (gimplify_omp_target_update): Update handling of acc update and | |
18890 | enter/exit data. | |
18891 | * omp-low.c (install_var_field): Remove unused parameter | |
18892 | base_pointers_restrict. | |
18893 | (scan_sharing_clauses): Remove base_pointers_restrict parameter. | |
18894 | Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT, | |
18895 | FINALIZE} | |
18896 | (omp_target_base_pointers_restrict_p): Delete. | |
18897 | (scan_omp_target): Update call to scan_sharing_clauses. | |
18898 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT, | |
18899 | FINALIZE}. | |
18900 | * tree-nested.c (convert_nonlocal_omp_clauses): Handle | |
18901 | OMP_CLAUSE_{IF_PRESENT,FINALIZE}. | |
18902 | (convert_local_omp_clauses): Likewise. | |
18903 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
18904 | * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_{IF_PRESENT, | |
18905 | FINALIZE}. | |
18906 | (omp_clause_code_name): Likewise. | |
18907 | ||
18908 | 2018-06-20 Jakub Jelinek <jakub@redhat.com> | |
18909 | ||
18910 | PR debug/86194 | |
18911 | * var-tracking.c (use_narrower_mode_test): Check if shift amount can | |
18912 | be narrowed. | |
18913 | ||
18914 | PR tree-optimization/86231 | |
18915 | * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and | |
18916 | anti-range don't overwrite *vr0min before using it to compute *vr0max. | |
18917 | ||
18918 | 2018-06-20 Tom de Vries <tdevries@suse.de> | |
18919 | ||
18920 | PR tree-optimization/86097 | |
18921 | * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Also convert *nit to | |
18922 | iv type if signedness of iv type is not the same as that of *nit. | |
18923 | ||
18924 | 2018-06-20 Jakub Jelinek <jakub@redhat.com> | |
18925 | ||
18926 | * cfgrtl.c (rtl_verify_edges): Formatting fix. If bb->preds has any | |
18927 | EDGE_EH edges, verify they are all EDGE_EH. | |
18928 | ||
18929 | 2018-06-20 Maya Rashish <coypu@sdf.org> | |
18930 | ||
18931 | * ginclude/stddef.h: Limit #include <machine/ansi.h> to NetBSD. | |
18932 | ||
18933 | 2018-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
18934 | ||
18935 | * config/aarch64/aarch64-tuning-flags.def (no_ldp_stp_qregs): New. | |
18936 | * config/aarch64/aarch64.c (xgene1_tunings): Add | |
18937 | AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS to tune_flags. | |
18938 | (aarch64_mode_valid_for_sched_fusion_p): | |
18939 | Allow 16-byte modes. | |
18940 | (aarch64_classify_address): Allow 16-byte modes for load_store_pair_p. | |
18941 | * config/aarch64/aarch64-ldpstp.md: Add peepholes for LDP STP of | |
18942 | 128-bit modes. | |
18943 | * config/aarch64/aarch64-simd.md (load_pair<VQ:mode><VQ2:mode>): | |
18944 | New pattern. | |
18945 | (vec_store_pair<VQ:mode><VQ2:mode>): Likewise. | |
18946 | * config/aarch64/iterators.md (VQ2): New mode iterator. | |
18947 | ||
18948 | 2018-06-20 Martin Liska <mliska@suse.cz> | |
18949 | ||
18950 | * tree-switch-conversion.c (jump_table_cluster::can_be_handled): | |
18951 | Change default ratio from 10 to 8. | |
18952 | ||
18953 | 2018-06-20 Martin Liska <mliska@suse.cz> | |
18954 | ||
18955 | * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): | |
18956 | New. | |
18957 | (bit_test_cluster::find_bit_tests): Likewise. | |
18958 | (switch_decision_tree::analyze_switch_statement): Find clusters. | |
18959 | * tree-switch-conversion.h (struct jump_table_cluster): Document | |
18960 | hierarchy. | |
18961 | ||
18962 | 2018-06-20 Martin Liska <mliska@suse.cz> | |
18963 | ||
18964 | * tree-switch-conversion.c (switch_conversion::collect): | |
18965 | Record m_uniq property. | |
18966 | (switch_conversion::expand): Bail out for special conditions. | |
18967 | (group_cluster::~group_cluster): New. | |
18968 | (group_cluster::group_cluster): Likewise. | |
18969 | (group_cluster::dump): Likewise. | |
18970 | (jump_table_cluster::emit): New. | |
18971 | (switch_decision_tree::fix_phi_operands_for_edges): New. | |
18972 | (struct case_node): Remove struct. | |
18973 | (jump_table_cluster::can_be_handled): New. | |
18974 | (case_values_threshold): Moved to header. | |
18975 | (reset_out_edges_aux): Likewise. | |
18976 | (jump_table_cluster::is_beneficial): New. | |
18977 | (bit_test_cluster::can_be_handled): Likewise. | |
18978 | (add_case_node): Remove. | |
18979 | (bit_test_cluster::is_beneficial): New. | |
18980 | (case_bit_test::cmp): New. | |
18981 | (bit_test_cluster::emit): New. | |
18982 | (expand_switch_as_decision_tree_p): Remove. | |
18983 | (bit_test_cluster::hoist_edge_and_branch_if_true): New. | |
18984 | (fix_phi_operands_for_edge): Likewise. | |
18985 | (switch_decision_tree::analyze_switch_statement): New. | |
18986 | (compute_cases_per_edge): Move ... | |
18987 | (switch_decision_tree::compute_cases_per_edge): ... here. | |
18988 | (try_switch_expansion): Likewise. | |
18989 | (switch_decision_tree::try_switch_expansion): Likewise. | |
18990 | (record_phi_operand_mapping): Likewise. | |
18991 | (switch_decision_tree::record_phi_operand_mapping): Likewise. | |
18992 | (emit_case_decision_tree): Likewise. | |
18993 | (switch_decision_tree::emit): Likewise. | |
18994 | (balance_case_nodes): Likewise. | |
18995 | (switch_decision_tree::balance_case_nodes): Likewise. | |
18996 | (dump_case_nodes): Likewise. | |
18997 | (switch_decision_tree::dump_case_nodes): Likewise. | |
18998 | (emit_jump): Likewise. | |
18999 | (switch_decision_tree::emit_jump): Likewise. | |
19000 | (emit_cmp_and_jump_insns): Likewise. | |
19001 | (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. | |
19002 | (emit_case_nodes): Likewise. | |
19003 | (switch_decision_tree::emit_case_nodes): Likewise. | |
19004 | (conditional_probability): Remove. | |
19005 | * tree-switch-conversion.h (enum cluster_type): New. | |
19006 | (PRINT_CASE): New. | |
19007 | (struct cluster): Likewise. | |
19008 | (cluster::cluster): Likewise. | |
19009 | (struct simple_cluster): Likewise. | |
19010 | (simple_cluster::simple_cluster): Likewise. | |
19011 | (struct group_cluster): Likewise. | |
19012 | (struct jump_table_cluster): Likewise. | |
19013 | (struct bit_test_cluster): Likewise. | |
19014 | (struct min_cluster_item): Likewise. | |
19015 | (struct case_tree_node): Likewise. | |
19016 | (case_tree_node::case_tree_node): Likewise. | |
19017 | (jump_table_cluster::case_values_threshold): Likewise. | |
19018 | (struct case_bit_test): Likewise. | |
19019 | (struct switch_decision_tree): Likewise. | |
19020 | (struct switch_conversion): Likewise. | |
19021 | (switch_decision_tree::reset_out_edges_aux): Likewise. | |
19022 | ||
19023 | 2018-06-20 Martin Liska <mliska@suse.cz> | |
19024 | ||
19025 | * tree-switch-conversion.c (MAX_CASE_BIT_TESTS): Remove. | |
19026 | (hoist_edge_and_branch_if_true): Likewise. | |
19027 | (expand_switch_using_bit_tests_p): Likewise. | |
19028 | (struct case_bit_test): Likewise. | |
19029 | (case_bit_test_cmp): Likewise. | |
19030 | (emit_case_bit_tests): Likewise. | |
19031 | (switch_conversion::switch_conversion): New class. | |
19032 | (struct switch_conv_info): Remove old struct. | |
19033 | (collect_switch_conv_info): More to ... | |
19034 | (switch_conversion::collect): ... this. | |
19035 | (check_range): Likewise. | |
19036 | (switch_conversion::check_range): Likewise. | |
19037 | (check_all_empty_except_final): Likewise. | |
19038 | (switch_conversion::check_all_empty_except_final): Likewise. | |
19039 | (check_final_bb): Likewise. | |
19040 | (switch_conversion::check_final_bb): Likewise. | |
19041 | (create_temp_arrays): Likewise. | |
19042 | (switch_conversion::create_temp_arrays): Likewise. | |
19043 | (free_temp_arrays): Likewise. | |
19044 | (gather_default_values): Likewise. | |
19045 | (switch_conversion::gather_default_values): Likewise. | |
19046 | (build_constructors): Likewise. | |
19047 | (switch_conversion::build_constructors): Likewise. | |
19048 | (constructor_contains_same_values_p): Likewise. | |
19049 | (switch_conversion::contains_same_values_p): Likewise. | |
19050 | (array_value_type): Likewise. | |
19051 | (switch_conversion::array_value_type): Likewise. | |
19052 | (build_one_array): Likewise. | |
19053 | (switch_conversion::build_one_array): Likewise. | |
19054 | (build_arrays): Likewise. | |
19055 | (switch_conversion::build_arrays): Likewise. | |
19056 | (gen_def_assigns): Likewise. | |
19057 | (switch_conversion::gen_def_assigns): Likewise. | |
19058 | (prune_bbs): Likewise. | |
19059 | (switch_conversion::prune_bbs): Likewise. | |
19060 | (fix_phi_nodes): Likewise. | |
19061 | (switch_conversion::fix_phi_nodes): Likewise. | |
19062 | (gen_inbound_check): Likewise. | |
19063 | (switch_conversion::gen_inbound_check): Likewise. | |
19064 | (process_switch): Use the newly created class. | |
19065 | (switch_conversion::expand): New. | |
19066 | (switch_conversion::~switch_conversion): New. | |
19067 | * tree-switch-conversion.h: New file. | |
19068 | ||
19069 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19070 | ||
19071 | * tree-vectorizer.h (NUM_PATTERNS, vect_recog_func_ptr): Move to | |
19072 | tree-vect-patterns.c. | |
19073 | * tree-vect-patterns.c (vect_supportable_direct_optab_p): New function. | |
19074 | (vect_recog_dot_prod_pattern): Use it. Remove the type_in argument. | |
19075 | (vect_recog_sad_pattern): Likewise. | |
19076 | (vect_recog_widen_sum_pattern): Likewise. | |
19077 | (vect_recog_pow_pattern): Likewise. Check for a null vectype. | |
19078 | (vect_recog_widen_shift_pattern): Remove the type_in argument. | |
19079 | (vect_recog_rotate_pattern): Likewise. | |
19080 | (vect_recog_mult_pattern): Likewise. | |
19081 | (vect_recog_vector_vector_shift_pattern): Likewise. | |
19082 | (vect_recog_divmod_pattern): Likewise. | |
19083 | (vect_recog_mixed_size_cond_pattern): Likewise. | |
19084 | (vect_recog_bool_pattern): Likewise. | |
19085 | (vect_recog_mask_conversion_pattern): Likewise. | |
19086 | (vect_try_gather_scatter_pattern): Likewise. | |
19087 | (vect_recog_widen_mult_pattern): Likewise. Check for a null vectype. | |
19088 | (vect_recog_over_widening_pattern): Likewise. | |
19089 | (vect_recog_gather_scatter_pattern): Likewise. | |
19090 | (vect_recog_func_ptr): Move from tree-vectorizer.h | |
19091 | (vect_vect_recog_func_ptrs): Move further down the file. | |
19092 | (vect_recog_func): Likewise. Remove the third argument. | |
19093 | (NUM_PATTERNS): Define based on vect_vect_recog_func_ptrs. | |
19094 | (vect_pattern_recog_1): Expect the pattern function to do any | |
19095 | necessary target tests. Also expect it to provide a vector type. | |
19096 | Remove the type_in handling. | |
19097 | ||
19098 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19099 | ||
19100 | * tree-vect-patterns.c (vect_pattern_detected): New function. | |
19101 | (vect_recog_dot_prod_patternm, vect_recog_sad_pattern) | |
19102 | (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern) | |
19103 | (vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern | |
19104 | (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern) | |
19105 | (vect_recog_mult_pattern, vect_recog_divmod_pattern) | |
19106 | (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) | |
19107 | (vect_recog_mask_conversion_pattern) | |
19108 | (vect_try_gather_scatter_pattern): Likewise. | |
19109 | ||
19110 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19111 | ||
19112 | * tree-vect-patterns.c (vect_get_internal_def): New function. | |
19113 | (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) | |
19114 | (vect_recog_vector_vector_shift_pattern, check_bool_pattern) | |
19115 | (search_type_for_mask_1): Use it. | |
19116 | ||
19117 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19118 | ||
19119 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove | |
19120 | redundant WIDEN_SUM_EXPR handling. | |
19121 | (vect_recog_sad_pattern): Likewise. | |
19122 | ||
19123 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19124 | ||
19125 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove | |
19126 | redundant check that the types of a PLUS_EXPR or MULT_EXPR agree. | |
19127 | (vect_recog_sad_pattern): Likewise PLUS_EXPR, ABS_EXPR and MINUS_EXPR. | |
19128 | (vect_recog_widen_mult_pattern): Likewise MULT_EXPR. | |
19129 | (vect_recog_widen_sum_pattern): Likewise PLUS_EXPR. | |
19130 | ||
19131 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19132 | ||
19133 | * tree-vect-stmts.c (vectorizable_call): Make sure that we | |
19134 | use the stmt_vec_info of the original bb statement for the | |
19135 | new zero assignment, even if the call is part of a pattern. | |
19136 | ||
19137 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19138 | ||
19139 | * tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq | |
19140 | that the sequence is attached to the original statement rather | |
19141 | than the pattern statement. | |
19142 | * tree-vect-loop.c (vect_determine_vf_for_stmt): Take the | |
19143 | PATTERN_DEF_SEQ from the original statement rather than | |
19144 | the main pattern statement. | |
19145 | * tree-vect-stmts.c (free_stmt_vec_info): Likewise. | |
19146 | * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise. | |
19147 | (vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ. | |
19148 | ||
19149 | 2018-06-20 Richard Sandiford <richard.sandiford@arm.com> | |
19150 | ||
19151 | * tree-vect-stmts.c (vect_analyze_stmt): Move the handling of pattern | |
19152 | definition statements before the early exit for statements that aren't | |
19153 | live or relevant. | |
19154 | * tree-vect-loop.c (vect_transform_loop_stmt): New function, | |
19155 | split out from... | |
19156 | (vect_transform_loop): ...here. Process pattern definition | |
19157 | statements without first checking whether the main pattern | |
19158 | statement is live or relevant. | |
19159 | ||
19160 | 2018-06-19 Eric Botcazou <ebotcazou@adacore.com> | |
19161 | ||
19162 | * tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at | |
19163 | -O0 if the locus represent UNKNOWN_LOCATION but have different values. | |
19164 | ||
19165 | 2018-06-19 Aaron Sawdey <acsawdey@linux.ibm.com> | |
19166 | ||
19167 | * config/rs6000/rs6000-string.c (select_block_compare_mode): Check | |
19168 | TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller. | |
19169 | (do_and3, do_and3_mask, do_compb3, do_rotl3): New functions. | |
19170 | (expand_block_compare): Change select_block_compare_mode call. | |
19171 | (expand_strncmp_align_check): Use new functions, fix comment. | |
19172 | (emit_final_str_compare_gpr): New function. | |
19173 | (expand_strn_compare): Refactor and clean up code. | |
19174 | * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Remove *. | |
19175 | ||
19176 | 2018-06-19 Tony Reix <tony.reix@atos.com> | |
19177 | Damien Bergamini <damien.bergamini@atos.com> | |
19178 | David Edelsohn <dje.gcc@gmail.com> | |
19179 | ||
19180 | * collect2.c (static_obj): New variable. | |
19181 | (static_libs): New variable. | |
19182 | (is_in_list): Uncomment declaration. | |
19183 | (main): Track AIX libraries linked statically. | |
19184 | (is_in_list): Uncomment definition. | |
19185 | (scan_prog_file): Don't add AIX shared libraries initializer | |
19186 | to constructor list if linking statically. | |
19187 | ||
19188 | 2018-06-19 Max Filippov <jcmvbkbc@gmail.com> | |
19189 | ||
19190 | * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec | |
19191 | constant. | |
19192 | (allocate_stack, frame_blockage, *frame_blockage): New patterns. | |
19193 | ||
19194 | 2018-06-19 Jan Hubicka <hubicka@ucw.cz> | |
19195 | ||
19196 | * tree.c (find_decls_types_r): Remove all non-VAR_DECLs from | |
19197 | blocks. | |
19198 | ||
19199 | 2018-06-19 Martin Liska <mliska@suse.cz> | |
19200 | ||
19201 | * config/i386/i386.c (ix86_can_inline_p): Do not use | |
19202 | ipa_fn_summaries::get_create. | |
19203 | * ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with | |
19204 | get. | |
19205 | (devirtualization_time_bonus): Likewise. | |
19206 | (ipcp_propagate_stage): Likewise. | |
19207 | * ipa-fnsummary.c (redirect_to_unreachable): Likewise. | |
19208 | (edge_set_predicate): Likewise. | |
19209 | (evaluate_conditions_for_known_args): Likewise. | |
19210 | (evaluate_properties_for_edge): Likewise. | |
19211 | (ipa_call_summary::reset): Tranform to ... | |
19212 | (ipa_call_summary::~ipa_call_summary): ... this. | |
19213 | (ipa_fn_summary::reset): Transform to ... | |
19214 | (ipa_fn_summary::~ipa_fn_summary): ... this. | |
19215 | (ipa_fn_summary_t::remove): Rename to ... | |
19216 | (ipa_fn_summary_t::remove_callees): ... this. | |
19217 | (ipa_fn_summary_t::duplicate): Use placement new | |
19218 | instead of memory copy. | |
19219 | (ipa_call_summary_t::duplicate): Likewise. | |
19220 | (ipa_call_summary_t::remove): Remove. | |
19221 | (dump_ipa_call_summary): Change get_create to get. | |
19222 | (ipa_dump_fn_summary): Dump only when summary exists. | |
19223 | (analyze_function_body): Use symbol_summary::get instead | |
19224 | of get_create. | |
19225 | (compute_fn_summary): Likewise. | |
19226 | (estimate_edge_devirt_benefit): Likewise. | |
19227 | (estimate_edge_size_and_time): Likewise. | |
19228 | (inline_update_callee_summaries): Likewise. | |
19229 | (remap_edge_change_prob): Likewise. | |
19230 | (remap_edge_summaries): Likewise. | |
19231 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
19232 | (write_ipa_call_summary): Likewise. | |
19233 | (ipa_fn_summary_write): Likewise. | |
19234 | (ipa_free_fn_summary): Likewise. | |
19235 | * ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor. | |
19236 | (struct ipa_call_summary): Likewise. | |
19237 | * ipa-icf.c (sem_function::merge): Use symbol_summary::get instead | |
19238 | of get_create. | |
19239 | * ipa-inline-analysis.c (do_estimate_edge_time): Likewise. | |
19240 | (estimate_size_after_inlining): Likewise. | |
19241 | (estimate_growth): Likewise. | |
19242 | (growth_likely_positive): Likewise. | |
19243 | * ipa-inline-transform.c (clone_inlined_nodes): Likewise. | |
19244 | (inline_call): Likewise. | |
19245 | * ipa-inline.c (caller_growth_limits): Likewise. | |
19246 | (can_inline_edge_p): Likewise. | |
19247 | (can_inline_edge_by_limits_p): Likewise. | |
19248 | (compute_uninlined_call_time): Likewise. | |
19249 | (compute_inlined_call_time): Likewise. | |
19250 | (want_inline_small_function_p): Likewise. | |
19251 | (edge_badness): Likewise. | |
19252 | (update_caller_keys): Likewise. | |
19253 | (update_callee_keys): Likewise. | |
19254 | (inline_small_functions): Likewise. | |
19255 | (inline_to_all_callers_1): Likewise. | |
19256 | (dump_overall_stats): Likewise. | |
19257 | (early_inline_small_functions): Likewise. | |
19258 | (early_inliner): Likewise. | |
19259 | * ipa-profile.c (ipa_propagate_frequency_1): Likewise. | |
19260 | * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. | |
19261 | * ipa-pure-const.c (malloc_candidate_p): Likewise. | |
19262 | * ipa-split.c (execute_split_functions): Likewise. | |
19263 | * symbol-summary.h: Likewise. | |
19264 | * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. | |
19265 | ||
19266 | 2018-06-19 Richard Biener <rguenther@suse.de> | |
19267 | ||
19268 | * tree-vectorizer.c (try_vectorize_loop_1): Split out of ... | |
19269 | (vectorize_loops): ... here. Fix dbgcnt handling. | |
19270 | (try_vectorize_loop): Wrap try_vectorize_loop_1. | |
19271 | ||
19272 | 2018-06-19 Segher Boessenkool <segher@kernel.crashing.org> | |
19273 | ||
19274 | PR target/86197 | |
19275 | * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An | |
19276 | ieee128 argument takes up only one (vector) register, not two (floating | |
19277 | point) registers. | |
19278 | ||
19279 | 2018-06-19 Eric Botcazou <ebotcazou@adacore.com> | |
19280 | ||
19281 | * gimplify.c (gimplify_init_constructor): Really never clear for an | |
19282 | incomplete constructor if CONSTRUCTOR_NO_CLEARING is set. | |
19283 | ||
19284 | 2018-06-19 Richard Biener <rguenther@suse.de> | |
19285 | ||
19286 | PR tree-optimization/86179 | |
19287 | * tree-vect-patterns.c (vect_pattern_recog_1): Clean up | |
19288 | after failed recognition. | |
19289 | ||
19290 | 2018-06-18 Martin Sebor <msebor@redhat.com> | |
19291 | ||
19292 | PR middle-end/85602 | |
19293 | * calls.c (maybe_warn_nonstring_arg): Handle strncat. | |
19294 | * tree-ssa-strlen.c (is_strlen_related_p): Make extern. | |
19295 | Handle integer subtraction. | |
19296 | (maybe_diag_stxncpy_trunc): Handle nonstring source arguments. | |
19297 | * tree-ssa-strlen.h (is_strlen_related_p): Declare. | |
19298 | ||
19299 | 2018-06-18 David Malcolm <dmalcolm@redhat.com> | |
19300 | ||
19301 | * config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd | |
19302 | param from rtx to rtx_insn *. | |
19303 | * config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn" | |
19304 | param. | |
19305 | (frv_ifcvt_modify_insn): Likwise. | |
19306 | (frv_ifcvt_modify_final): Likwise for local "existing_insn", | |
19307 | adding an as_a <rtx_insn *> cast. Likewise for local "insn". | |
19308 | * config/mips/mips.c (r10k_insert_cache_barriers): Add an | |
19309 | as_a <rtx_insn *> cast to local "unprotected_region" once | |
19310 | it's been established that it's not NULL or pc_rtx. | |
19311 | * config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen | |
19312 | param "sethi" from rtx to rtx_insn *. | |
19313 | (nds32_group_float_insns): Likewise for param "insn". | |
19314 | * config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st | |
19315 | param. | |
19316 | (vax_output_int_subtract): Likewise. | |
19317 | * config/vax/vax.c (vax_output_int_add): Likewise for param | |
19318 | "insn". | |
19319 | (vax_output_int_subtract): Likewise. | |
19320 | * emit-rtl.c (set_insn_deleted): Likewise, removing cast. | |
19321 | (emit_pattern_after): Likewise for param "after". | |
19322 | (emit_insn_after): Likewise. | |
19323 | (emit_jump_insn_after): Likewise. | |
19324 | (emit_call_insn_after): Likewise. | |
19325 | (emit_debug_insn_after): Likewise. | |
19326 | (emit_pattern_before): Likewise for param "before". | |
19327 | (emit_insn_before): Likewise. | |
19328 | (emit_jump_insn_before): Likewise. | |
19329 | * final.c (get_insn_template): Likewise for param "insn", removing | |
19330 | a cast. | |
19331 | * output.h (get_insn_template): Likewise for 2nd param. | |
19332 | * rtl.h (emit_insn_before): Likewise. | |
19333 | (emit_jump_insn_before): Likewise. | |
19334 | (emit_debug_insn_before_noloc): Likewise. | |
19335 | (emit_insn_after): Likewise. | |
19336 | (emit_jump_insn_after): Likewise. | |
19337 | (emit_call_insn_after): Likewise. | |
19338 | (emit_debug_insn_after): Likewise. | |
19339 | (set_insn_deleted): Likewise for param. | |
19340 | ||
19341 | 2018-06-18 Michael Meissner <meissner@linux.ibm.com> | |
19342 | ||
19343 | PR target/85358 | |
19344 | * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit | |
19345 | floating point modes, so that IFmode is numerically greater than | |
19346 | TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE | |
19347 | to declare the ordering. This prevents IFmode from being | |
19348 | converted to TFmode when long double is IEEE 128-bit on an ISA 3.0 | |
19349 | machine. Include rs6000-modes.h to share the fractional values | |
19350 | between genmodes* and the rest of the compiler. | |
19351 | (IFmode): Likewise. | |
19352 | (KFmode): Likewise. | |
19353 | (TFmode): Likewise. | |
19354 | * config/rs6000/rs6000-modes.h: New file. | |
19355 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the | |
19356 | meaning of rs6000_long_double_size so that 126..128 selects an | |
19357 | appropriate 128-bit floating point type. | |
19358 | (rs6000_option_override_internal): Likewise. | |
19359 | * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h. | |
19360 | (TARGET_LONG_DOUBLE_128): Change the meaning of | |
19361 | rs6000_long_double_size so that 126..128 selects an appropriate | |
19362 | 128-bit floating point type. | |
19363 | (LONG_DOUBLE_TYPE_SIZE): Update comment. | |
19364 | * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the | |
19365 | source and destination to match the standard usage. | |
19366 | (truncifkf2): Likewise. | |
19367 | (copysign<mode>3, IEEE iterator): Rework copysign of float128 on | |
19368 | ISA 2.07 to use an explicit clobber, instead of passing in a | |
19369 | temporary. | |
19370 | (copysign<mode>3_soft): Likewise. | |
19371 | ||
19372 | 2018-06-18 David Malcolm <dmalcolm@redhat.com> | |
19373 | ||
19374 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): | |
19375 | Replace dump_printf_loc call with DUMP_VECT_SCOPE. | |
19376 | (vect_slp_analyze_instance_dependence): Likewise. | |
19377 | (vect_enhance_data_refs_alignment): Likewise. | |
19378 | (vect_analyze_data_refs_alignment): Likewise. | |
19379 | (vect_slp_analyze_and_verify_instance_alignment | |
19380 | (vect_analyze_data_ref_accesses): Likewise. | |
19381 | (vect_prune_runtime_alias_test_list): Likewise. | |
19382 | (vect_analyze_data_refs): Likewise. | |
19383 | * tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise. | |
19384 | * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. | |
19385 | (vect_analyze_scalar_cycles_1): Likewise. | |
19386 | (vect_get_loop_niters): Likewise. | |
19387 | (vect_analyze_loop_form_1): Likewise. | |
19388 | (vect_update_vf_for_slp): Likewise. | |
19389 | (vect_analyze_loop_operations): Likewise. | |
19390 | (vect_analyze_loop): Likewise. | |
19391 | (vectorizable_induction): Likewise. | |
19392 | (vect_transform_loop): Likewise. | |
19393 | * tree-vect-patterns.c (vect_pattern_recog): Likewise. | |
19394 | * tree-vect-slp.c (vect_analyze_slp): Likewise. | |
19395 | (vect_make_slp_decision): Likewise. | |
19396 | (vect_detect_hybrid_slp): Likewise. | |
19397 | (vect_slp_analyze_operations): Likewise. | |
19398 | (vect_slp_bb): Likewise. | |
19399 | * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. | |
19400 | (vectorizable_bswap): Likewise. | |
19401 | (vectorizable_call): Likewise. | |
19402 | (vectorizable_simd_clone_call): Likewise. | |
19403 | (vectorizable_conversion): Likewise. | |
19404 | (vectorizable_assignment): Likewise. | |
19405 | (vectorizable_shift): Likewise. | |
19406 | (vectorizable_operation): Likewise. | |
19407 | * tree-vectorizer.h (DUMP_VECT_SCOPE): New macro. | |
19408 | ||
19409 | 2018-06-18 Martin Sebor <msebor@redhat.com> | |
19410 | ||
19411 | PR tree-optimization/81384 | |
19412 | * builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New. | |
19413 | * builtins.c (expand_builtin_strnlen): New function. | |
19414 | (expand_builtin): Call it. | |
19415 | (fold_builtin_n): Avoid setting TREE_NO_WARNING. | |
19416 | * builtins.def (BUILT_IN_STRNLEN): New. | |
19417 | * calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN. | |
19418 | Warn for bounds in excess of maximum object size. | |
19419 | * tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing | |
19420 | single-value ranges. Handle strnlen. | |
19421 | (handle_builtin_strlen): Handle strnlen. | |
19422 | (strlen_check_and_optimize_stmt): Same. | |
19423 | * doc/extend.texi (Other Builtins): Document strnlen. | |
19424 | ||
19425 | 2018-06-18 Maya Rashish <coypu@sdf.org> | |
19426 | ||
19427 | * config/alpha/openbsd.h (TARGET_DEFAULT): Define. | |
19428 | (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise. | |
19429 | (INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise. | |
19430 | ||
19431 | * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from | |
19432 | here to ... | |
19433 | * config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here. | |
19434 | ||
19435 | 2018-06-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
19436 | ||
19437 | * tree.c (escaped_string::escape): Replace cast to char * by | |
19438 | const_cast<char *> (unescaped). | |
19439 | ||
19440 | 2018-06-18 Nick Clifton <nickc@redhat.com> | |
19441 | ||
19442 | PR 84195 | |
19443 | * tree.c (escaped_string): New class. Converts an unescaped | |
19444 | string into its escaped equivalent. | |
19445 | (warn_deprecated_use): Use the new class to convert the | |
19446 | deprecation message, if present. | |
19447 | (test_escaped_strings): New self test. | |
19448 | (test_c_tests): Add test_escaped_strings. | |
19449 | * doc/extend.texi (deprecated): Add a note that the | |
19450 | deprecation message is affected by the -fmessage-length | |
19451 | option, and that control characters will be escaped. | |
19452 | (#pragma GCC error): Document this pragma. | |
19453 | (#pragma GCC warning): Likewise. | |
19454 | * doc/invoke.texi (-fmessage-length): Document this option's | |
19455 | effect on the #warning and #error preprocessor directives and | |
19456 | the deprecated attribute. | |
19457 | ||
19458 | 2018-06-18 Eric Botcazou <ebotcazou@adacore.com> | |
19459 | ||
19460 | * tree.c (decl_value_expr_lookup): Revert latest change. | |
19461 | (decl_value_expr_insert): Likewise. | |
19462 | ||
19463 | 2018-06-17 Eric Botcazou <ebotcazou@adacore.com> | |
19464 | ||
19465 | * gimplify.c (nonlocal_vlas): Delete. | |
19466 | (nonlocal_vla_vars): Likewise. | |
19467 | (gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local | |
19468 | referenced VLAs. | |
19469 | (gimplify_body): Do not create and destroy nonlocal_vlas. | |
19470 | * tree-nested.c: Include diagnostic.h. | |
19471 | (use_pointer_in_frame): Tweak. | |
19472 | (lookup_field_for_decl): Add assertion and declare the transformation. | |
19473 | (convert_nonlocal_reference_op) <PARM_DECL>: Rework and issue an | |
19474 | internal error when the reference is in a wrong context. Do not | |
19475 | create a debug decl by default. | |
19476 | (note_nonlocal_block_vlas): Delete. | |
19477 | (convert_nonlocal_reference_stmt) <GIMPLE_BIND>: Do not call it. | |
19478 | (convert_local_reference_op) <PARM_DECL>: Skip the frame decl. Do not | |
19479 | create a debug decl by default. | |
19480 | (convert_gimple_call) <GIMPLE_CALL>: Issue an internal error when the | |
19481 | call is in a wrong context. | |
19482 | (fixup_vla_decls): New function. | |
19483 | (finalize_nesting_tree_1): Adjust comment. Call fixup_vla_decls if no | |
19484 | debug variables were created. | |
19485 | * tree.c (decl_value_expr_lookup): Add checking assertion. | |
19486 | (decl_value_expr_insert): Likewise. | |
19487 | ||
19488 | 2018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org> | |
19489 | ||
19490 | PR middle-end/82479 | |
19491 | * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR. | |
19492 | * tree-scalar-evolution.c (interpret_expr): Likewise. | |
19493 | (expression_expensive_p): Likewise. | |
19494 | * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise. | |
19495 | * tree-ssa-loop-niter.c (number_of_iterations_popcount): New. | |
19496 | (number_of_iterations_exit_assumptions): Use number_of_iterations_popcount. | |
19497 | (ssa_defined_by_minus_one_stmt_p): New. | |
19498 | ||
19499 | 2018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org> | |
19500 | ||
19501 | PR middle-end/64946 | |
19502 | * cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR. | |
19503 | * config/i386/i386.c (ix86_add_stmt_cost): Likewise. | |
19504 | * dojump.c (do_jump): Likewise. | |
19505 | * expr.c (expand_expr_real_2): Check operand type's sign. | |
19506 | * fold-const.c (const_unop): Handle ABSU_EXPR. | |
19507 | (fold_abs_const): Likewise. | |
19508 | * gimple-pretty-print.c (dump_unary_rhs): Likewise. | |
19509 | * gimple-ssa-backprop.c (backprop::process_assign_use): Likesie. | |
19510 | (strip_sign_op_1): Likesise. | |
19511 | * match.pd: Add new pattern to generate ABSU_EXPR. | |
19512 | * optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR. | |
19513 | * tree-cfg.c (verify_gimple_assign_unary): Likewise. | |
19514 | * tree-eh.c (operation_could_trap_helper_p): Likewise. | |
19515 | * tree-inline.c (estimate_operator_cost): Likewise. | |
19516 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
19517 | * tree-vect-patterns.c (vect_recog_sad_pattern): Likewise. | |
19518 | * tree.def (ABSU_EXPR): New. | |
19519 | ||
19520 | 2018-06-16 Jakub Jelinek <jakub@redhat.com> | |
19521 | ||
19522 | PR middle-end/86095 | |
19523 | * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var, | |
19524 | documented as preserved for backward compatibility only. | |
19525 | * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation. | |
19526 | ||
19527 | PR rtl-optimization/86108 | |
19528 | * bb-reorder.c (create_forwarder_block): Renamed to ... | |
19529 | (create_eh_forwarder_block): ... this. Split OLD_BB after labels and | |
19530 | jump from new landing pad to the second part. | |
19531 | (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad): | |
19532 | Adjust callers. | |
19533 | ||
19534 | 2018-06-15 Jakub Jelinek <jakub@redhat.com> | |
19535 | ||
19536 | PR middle-end/85878 | |
19537 | * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P | |
19538 | check from first store_expr, use to_mode instead of GET_MODE (to_rtx). | |
19539 | Only call store_expr for halves if the mode is the same. | |
19540 | ||
19541 | PR middle-end/86123 | |
19542 | * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions. | |
19543 | Fix up comment formatting. | |
19544 | ||
19545 | 2018-06-15 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
19546 | ||
19547 | * typed-splay-tree.h (typed_splay_tree::remove): New function. | |
19548 | (typed_splay_tree::closure, | |
19549 | typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted. | |
19550 | (typed_splay_tree::typed_splay_tree, | |
19551 | typed_splay_tree::operator =): Declared private. | |
19552 | (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value, | |
19553 | typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL, | |
19554 | typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper, | |
19555 | typed_splay_tree::rotate_left, typed_splay_tree::rotate_right, | |
19556 | typed_splay_tree::splay_tree_splay, | |
19557 | typed_splay_tree::splay_tree_foreach_helper, | |
19558 | typed_splay_tree::splay_tree_insert, | |
19559 | typed_splay_tree::splay_tree_remove, | |
19560 | typed_splay_tree::splay_tree_lookup, | |
19561 | typed_splay_tree::splay_tree_predecessor, | |
19562 | typed_splay_tree::splay_tree_successor, | |
19563 | typed_splay_tree::splay_tree_min, | |
19564 | typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h. | |
19565 | (typed_splay_tree::root, typed_splay_tree::comp, | |
19566 | typed_splay_tree::delete_key, | |
19567 | typed_splay_tree::delete_value): New data members. | |
19568 | * typed-splay-tree.c (selftest::test_str_to_int): Add a test for | |
19569 | typed_splay_tree::remove. | |
19570 | ||
19571 | 2018-06-15 Matthew Fortune <matthew.fortune@mips.com> | |
19572 | ||
19573 | * config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc, | |
19574 | -mginv and -mno-ginv to the assembler. | |
19575 | * config/mips/mips.opt (-mcrc): New option. | |
19576 | (-mginv): Likewise. | |
19577 | * doc/invoke.text (-mcrc): Document. | |
19578 | (-mginv): Likewise. | |
19579 | ||
19580 | 2018-06-15 Nick Clifton <nickc@redhat.com> | |
19581 | ||
19582 | PR 84195 | |
19583 | * tree.c (escaped_string): New class. Converts an unescaped | |
19584 | string into its escaped equivalent. | |
19585 | (warn_deprecated_use): Use the new class to convert the | |
19586 | deprecation message, if present. | |
19587 | (test_escaped_strings): New self test. | |
19588 | (test_c_tests): Add test_escaped_strings. | |
19589 | * doc/extend.texi (deprecated): Add a note that the | |
19590 | deprecation message is affected by the -fmessage-length | |
19591 | option, and that control characters will be escaped. | |
19592 | (#pragma GCC error): Document this pragma. | |
19593 | (#pragma GCC warning): Likewise. | |
19594 | * doc/invoke.texi (-fmessage-length): Document this option's | |
19595 | effect on the #warning and #error preprocessor directives and | |
19596 | the deprecated attribute. | |
19597 | ||
19598 | 2018-06-15 Richard Biener <rguenther@suse.de> | |
19599 | ||
19600 | * tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS | |
19601 | here, also noting vector size used. | |
19602 | * tree-vectorizer.c (vectorize_loops): Adjust. Note vector | |
19603 | size used in MSG_OPTIMIZED_LOCATIONS dump. | |
19604 | (pass_slp_vectorize::execute): Adjust. | |
19605 | ||
19606 | 2018-06-15 Claudiu Zissulescu <claziss@synopsys.com> | |
19607 | ||
19608 | PR target/85968 | |
19609 | * config/arc/arc.c (arc_return_address_register): Fix | |
19610 | if-condition. | |
19611 | ||
19612 | 2018-06-15 Richard Biener <rguenther@suse.de> | |
19613 | ||
19614 | PR middle-end/86159 | |
19615 | * tree-cfg.c (gimplify_build3): Do not strip sign conversions, | |
19616 | leave useless conversion stripping to force_gimple_operand_gsi. | |
19617 | (gimplify_build2): Likewise. | |
19618 | (gimplify_build1): Likewise. | |
19619 | ||
19620 | 2018-06-15 Richard Biener <rguenther@suse.de> | |
19621 | ||
19622 | PR middle-end/86076 | |
19623 | * tree-cfg.c (move_stmt_op): unshare invariant addresses | |
19624 | before adjusting their block. | |
19625 | ||
19626 | 2018-06-15 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
19627 | ||
19628 | * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom | |
19629 | multilibs for *-*-rtems*. | |
19630 | * config/riscv/t-rtems: New file. | |
19631 | ||
19632 | 2018-06-14 Jakub Jelinek <jakub@redhat.com> | |
19633 | ||
19634 | PR middle-end/86122 | |
19635 | * match.pd ((A +- CST1) +- CST2): Punt if last resort | |
19636 | unsigned_type_for returns NULL. | |
19637 | ||
19638 | PR target/85945 | |
19639 | * lower-subreg.c (find_decomposable_subregs): Don't decompose float | |
19640 | subregs of multi-word pseudos unless the float mode has word size. | |
19641 | ||
19642 | 2018-06-14 Richard Biener <rguenther@suse.de> | |
19643 | ||
19644 | PR middle-end/86139 | |
19645 | * tree-vect-generic.c (build_word_mode_vector_type): Remove | |
19646 | duplicate and harmful type_hash_canon. | |
19647 | * tree.c (type_hash_canon): Assert we didn't find ourselves. | |
19648 | ||
19649 | 2018-06-14 Richard Biener <rguenther@suse.de> | |
19650 | ||
19651 | PR ipa/86124 | |
19652 | * tree-ssa-struct-alias.c (create_variable_info_for): Handle | |
19653 | NULL cgraph_node. | |
19654 | ||
19655 | 2018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
19656 | ||
19657 | * config/rtems.h (STDINT_LONG32): Define. | |
19658 | ||
19659 | 2018-06-13 Matthew Fortune <matthew.fortune@mips.com> | |
19660 | Prachi Godbole <prachi.godbole@imgtec.com> | |
19661 | ||
19662 | * config/mips/mips-cpus.def: Define P6600. | |
19663 | * config/mips/mips-tables.opt: Regenerate. | |
19664 | * config/mips/mips.c (mips_ucbranch_type): New enum. | |
19665 | (mips_rtx_cost_data): Add support for P6600. | |
19666 | (mips_issue_rate): Likewise. | |
19667 | (mips_multipass_dfa_lookahead): Likewise. | |
19668 | (mips_avoid_hazard): Likewise. | |
19669 | (mips_reorg_process_insns): Likewise. | |
19670 | (mips_classify_branch_p6600): New function. | |
19671 | * config/mips/mips.h (TUNE_P6600): New define. | |
19672 | (MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600. | |
19673 | (ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600. | |
19674 | * config/mips/mips.md: Include p6600.md. | |
19675 | (processor): Add p6600. | |
19676 | * config/mips/p6600.md: New file. | |
19677 | * doc/invoke.texi: Add p6600 to supported architectures. | |
19678 | ||
19679 | 2018-06-13 Martin Sebor <msebor@redhat.com> | |
19680 | ||
19681 | PR tree-optimization/86114 | |
19682 | * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS | |
19683 | of integer types. | |
19684 | * tree-ssa-strlen.c (maybe_set_strlen_range): Same. | |
19685 | ||
19686 | 2018-06-13 Richard Biener <rguenther@suse.de> | |
19687 | ||
19688 | * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): | |
19689 | Properly set vector type of the intermediate stmt. | |
19690 | * tree-vect-stmts.c (vectorizable_operation): The destination | |
19691 | var always has vectype_out type. | |
19692 | ||
19693 | 2018-06-13 Jeff Law <law@redhat.com> | |
19694 | ||
19695 | * config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than | |
19696 | integer 0 for argument to print_rtl_with_bb. | |
19697 | (rl78_reorg): Likewise. | |
19698 | ||
19699 | 2018-06-13 David Malcolm <dmalcolm@redhat.com> | |
19700 | ||
19701 | * config/arc/arc.c (hwloop_optimize): Strengthen local "end_label" | |
19702 | from rtx to rtx_insn *. | |
19703 | * config/bfin/bfin.c (hwloop_optimize): Likewise for local | |
19704 | "label". | |
19705 | (add_sched_insns_for_speculation): Likewise for local "target", | |
19706 | converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. | |
19707 | * config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels" | |
19708 | from rtx_insn ** to rtx_code_label **. | |
19709 | (reorg_emit_nops): Likewise. | |
19710 | (c6x_reorg): Likewise for local "call_labels". | |
19711 | * config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from | |
19712 | rtx to rtx_insn *. | |
19713 | * config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to | |
19714 | rtx_code_label *, adding safe_as_a <rtx_code_label *> casts to | |
19715 | the loops over LABEL_REFS. | |
19716 | (fixup_addr_diff_vecs): Add as_a <rtx_insn *> to usage of | |
19717 | braf_label. | |
19718 | (barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. | |
19719 | (get_dest_uid): Strengthen param "label" from rtx to rtx_insn *. | |
19720 | (split_branches): Strengthen local "olabel" from rtx to | |
19721 | rtx_insn *, adding a safe_as_a cast. | |
19722 | * emit-rtl.c (next_real_insn): Strengthen param from "rtx" | |
19723 | to "rtx_insn *". | |
19724 | (add_insn_after): Likewise for first two params. | |
19725 | (add_insn_before): Likewise. | |
19726 | (remove_insn): Likewise for param. | |
19727 | (emit_pattern_before_noloc): Likewise for second and third params. | |
19728 | (emit_jump_insn_before_noloc): Convert NULL_RTX to NULL. | |
19729 | (emit_call_insn_before_noloc): Likewise. | |
19730 | (emit_debug_insn_before_noloc): Strengthen "before" param from "rtx" | |
19731 | to "rtx_insn *". | |
19732 | (emit_barrier_before): Likewise. | |
19733 | (emit_label_before): Strengthen "label" param from "rtx" to | |
19734 | "rtx_code_label *". Strengthen "before" param from "rtx" to | |
19735 | "rtx_insn *". | |
19736 | (emit_insn_after_1): Strengthen "after" param from "rtx" to | |
19737 | "rtx_insn *". | |
19738 | (emit_pattern_after_noloc): Likewise. | |
19739 | (emit_insn_after_noloc): Likewise. | |
19740 | (emit_jump_insn_after_noloc): Likewise. | |
19741 | (emit_call_insn_after_noloc): Likewise. | |
19742 | (emit_debug_insn_after_noloc): Likewise. | |
19743 | (emit_barrier_after): Likewise. | |
19744 | (emit_label_after): Likewise for both params. | |
19745 | (emit_pattern_after_setloc): Likewise for "after" param. Convert | |
19746 | "loc" param from "int" to "location_t". | |
19747 | (emit_insn_after_setloc): Likewise. | |
19748 | (emit_jump_insn_after_setloc): Likewise. | |
19749 | (emit_call_insn_after_setloc): Likewise. | |
19750 | (emit_debug_insn_after_setloc): Likewise. | |
19751 | (emit_pattern_before_setloc): Likewise for "before" param. Convert | |
19752 | "loc" param from "int" to "location_t". | |
19753 | (emit_pattern_before): Convert NULL_RTX to NULL. | |
19754 | (emit_insn_before_setloc): Convert "loc" param from "int" to | |
19755 | "location_t". | |
19756 | (emit_jump_insn_before_setloc): Likewise. | |
19757 | (emit_call_insn_before_setloc): Likewise. | |
19758 | (emit_debug_insn_before_setloc): Strengthen "before" param from rtx to | |
19759 | rtx_insn *. Convert "loc" param from "int" to "location_t". | |
19760 | * rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc, | |
19761 | emit_call_insn_before_setloc, emit_debug_insn_before_setloc): | |
19762 | Convert 3rd param from "int" to "location_t". | |
19763 | (emit_barrier_before, emit_barrier_after, next_real_insn): | |
19764 | Strengthen param from rtx to rtx_insn *. | |
19765 | (emit_label_before): Strengthen 1st param from "rtx" to | |
19766 | "rtx_code_label *". Strengthen 2nd param from "rtx" to | |
19767 | "rtx_insn *". | |
19768 | (emit_insn_after_noloc, emit_jump_insn_after_noloc, | |
19769 | emit_call_insn_after_noloc, emit_debug_insn_after_noloc): | |
19770 | Strengthen 2nd param from "rtx" to "rtx_insn *". | |
19771 | (emit_insn_after_setloc, emit_jump_insn_after_setloc) | |
19772 | emit_call_insn_after_setloc, emit_debug_insn_after_setloc): | |
19773 | Likewise. Convert 3rd param from "int" to "location_t". | |
19774 | (emit_label_after): Strengthen 1st param from "rtx" to | |
19775 | "rtx_code_label *". | |
19776 | (next_real_insn, remove_insn): Strengthen param from "rtx" to | |
19777 | "rtx_insn *". | |
19778 | (add_insn_before, add_insn_after): Strengthen 1st and 2nd params | |
19779 | from "rtx" to "rtx_insn *". | |
19780 | ||
19781 | 2018-06-13 Jan Hubicka <hubicka@gcc.gnu.org> | |
19782 | ||
19783 | * cgraph.c (cgraph_node::get_untransformed_body): Dump function | |
19784 | bodies streamed in with -Q. | |
19785 | * dumpfile.c (dump_files): Add lto-stream-out dump file. | |
19786 | * dumpfile.h (tree_dump_index): Add lto_stream_out. | |
19787 | * gimple-streamer-out.c: Include gimple-pretty-print.h | |
19788 | (output_bb): Dump stmts streamed. | |
19789 | * lto-section-out.c: Include print-tree.h | |
19790 | (lto_begin_section): Dump sections created. | |
19791 | (lto_output_decl_index): Dump decl encoded. | |
19792 | * lto-streamer-out.c: Include print-tree.h | |
19793 | (create_output_block): Dump output block created. | |
19794 | (DFS::DFS_write_tree_body): Dump DFS SCCs streamed. | |
19795 | (output_function): Dump function output. | |
19796 | (output_constructor): Dump constructor streamed. | |
19797 | (write_global_stream): Output indexes encoded. | |
19798 | (produce_asm_for_decls): Dump streams encoded. | |
19799 | * lto-streamer.c (streamer_dump_file): New global var. | |
19800 | * lto-streamer.h (streamer_dump_file): Declare. | |
19801 | * passes.c (ipa_write_summaries): Initialize streamer dump. | |
19802 | * varpool.c (varpool_node::get_constructor): Dump constructors streamed | |
19803 | in. | |
19804 | ||
19805 | 2018-06-13 Eric Botcazou <ebotcazou@adacore.com> | |
19806 | ||
19807 | PR target/86048 | |
19808 | * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative | |
19809 | offsets for register save directives. Emit a second batch of save | |
19810 | directives, if need be, when the function accesses prior frames. | |
19811 | ||
19812 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19813 | ||
19814 | * config/arc/fpu.md (fmasf4): Force operand to register. | |
19815 | (fnmasf4): Likewise. | |
19816 | ||
19817 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19818 | ||
19819 | * config/arc/arc-protos.h (arc_pad_return): Remove. | |
19820 | * config/arc/arc.c (machine_function): Remove force_short_suffix | |
19821 | and size_reason. | |
19822 | (arc_print_operand): Adjust printing of '&'. | |
19823 | (arc_verify_short): Remove conditional printing of short suffix. | |
19824 | (arc_final_prescan_insn): Remove reference to size_reason. | |
19825 | (pad_return): New function. | |
19826 | (arc_reorg): Call pad_return. | |
19827 | (arc_pad_return): Remove. | |
19828 | (arc_init_machine_status): Remove reference to force_short_suffix. | |
19829 | * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE. | |
19830 | (attr length): When attribute iscompact is true force to 2 | |
19831 | regardless; in the case of maybe check if we want to force the | |
19832 | instruction to have 4 bytes length. | |
19833 | (nopv): Change it to generate 4 byte long nop as well. | |
19834 | (blockage): New pattern. | |
19835 | (simple_return): Remove call to arc_pad_return. | |
19836 | (p_return_i): Likewise. | |
19837 | ||
19838 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19839 | ||
19840 | * config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. | |
19841 | ||
19842 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19843 | ||
19844 | * config/arc/builtins.def (SYNC): SYNC instruction is valid on all | |
19845 | ARC cores. | |
19846 | ||
19847 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19848 | ||
19849 | * config/arc/arc.c (atomic_exchangesi): EX instruction is default | |
19850 | for ARC700 and ARCv2. | |
19851 | ||
19852 | 2018-06-13 Chenghua Xu <paul.hua.gm@gmail.com> | |
19853 | ||
19854 | PR target/86076 | |
19855 | * config/mips/loongson.md (vec_setv4hi): Gen_lowpart for | |
19856 | operands[2] instead of operands[1]. | |
19857 | ||
19858 | ||
19859 | 2018-06-12 Richard Sandiford <richard.sandiford@linaro.org> | |
19860 | ||
19861 | * lra-constraints.c (simplify_operand_subreg): In the paradoxical | |
19862 | case, check whether the outer register overlaps an unallocatable | |
19863 | register, not just whether it fits the required class. | |
19864 | ||
19865 | 2018-06-12 Richard Sandiford <richard.sandiford@linaro.org> | |
19866 | ||
19867 | * poly-int.h (can_div_trunc_p): Add new overload in which all values | |
19868 | are poly_ints. | |
19869 | * alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p. | |
19870 | (memrefs_conflict_p): Likewise. | |
19871 | (init_alias_analysis): Likewise. | |
19872 | * cfgexpand.c (expand_debug_expr): Likewise. | |
19873 | * combine.c (combine_simplify_rtx, force_int_to_mode): Likewise. | |
19874 | * cse.c (fold_rtx): Likewise. | |
19875 | * explow.c (adjust_stack, anti_adjust_stack): Likewise. | |
19876 | * expr.c (emit_block_move_hints): Likewise. | |
19877 | (clear_storage_hints, push_block, emit_push_insn): Likewise. | |
19878 | (store_expr_with_bounds, reduce_to_bit_field_precision): Likewise. | |
19879 | (emit_group_load_1): Use rtx_to_poly_int64 for group offsets. | |
19880 | (emit_group_store): Likewise. | |
19881 | (find_args_size_adjust): Use strip_offset. Use rtx_to_poly_int64 | |
19882 | to read the PRE/POST_MODIFY increment. | |
19883 | * calls.c (store_one_arg): Use strip_offset. | |
19884 | * rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to | |
19885 | poly_int_rtx_p. | |
19886 | (set_noop_p): Use rtx_to_poly_int64 for the elements selected | |
19887 | by a VEC_SELECT. | |
19888 | * simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset. | |
19889 | (simplify_binary_operation_1): Extend CONST_INT handling to | |
19890 | poly_int_rtx_p. | |
19891 | * var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather | |
19892 | than a HOST_WIDE_INT. | |
19893 | (hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to | |
19894 | poly_int64. | |
19895 | (adjust_mems, add_stores): Update accodingly. | |
19896 | (vt_canonicalize_addr): Track polynomial offsets. | |
19897 | (emit_note_insn_var_location): Likewise. | |
19898 | (vt_add_function_parameter): Likewise. | |
19899 | (vt_initialize): Likewise. | |
19900 | ||
19901 | 2018-06-12 Jeff Law <law@redhat.com> | |
19902 | ||
19903 | * config.gcc (alpha*-*-freebsd*): Remove. | |
19904 | * config/alpha/freebsd.h: Remove. | |
19905 | ||
19906 | 2018-06-12 David Malcolm <dmalcolm@redhat.com> | |
19907 | ||
19908 | PR other/69968 | |
19909 | * spellcheck-tree.c (levenshtein_distance): Rename to... | |
19910 | (get_edit_distance): ...this, and update for underlying renaming. | |
19911 | * spellcheck-tree.h (levenshtein_distance): Rename to... | |
19912 | (get_edit_distance): ...this. | |
19913 | * spellcheck.c (levenshtein_distance): Rename to... | |
19914 | (get_edit_distance): ...this. Convert from Levenshtein distance | |
19915 | to Damerau-Levenshtein distance by supporting transpositions of | |
19916 | adjacent characters. Rename "v1" to "v_next" and "v0" to | |
19917 | "v_one_ago". | |
19918 | (selftest::levenshtein_distance_unit_test_oneway): Rename to... | |
19919 | (selftest::test_edit_distance_unit_test_oneway): ...this, and | |
19920 | update for underlying renaming. | |
19921 | (selftest::levenshtein_distance_unit_test): Rename to... | |
19922 | (selftest::test_get_edit_distance_unit): ...this, and update for | |
19923 | underlying renaming. | |
19924 | (selftest::test_find_closest_string): Add example from PR 69968 | |
19925 | where transposition helps | |
19926 | (selftest::test_metric_conditions): Update for renaming. | |
19927 | (selftest::test_metric_conditions): Likewise. | |
19928 | (selftest::spellcheck_c_tests): Likewise. | |
19929 | * spellcheck.h (levenshtein_distance): Rename both overloads to... | |
19930 | (get_edit_distance): ...this. | |
19931 | (best_match::consider): Update for renaming. | |
19932 | ||
19933 | 2018-06-12 Martin Sebor <msebor@redhat.com> | |
19934 | ||
19935 | PR tree-optimization/85259 | |
19936 | * builtins.c (compute_objsize): Handle constant offsets. | |
19937 | * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return | |
19938 | true iff a warning has been issued. | |
19939 | * gimple.h (gimple_nonartificial_location): New function. | |
19940 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call | |
19941 | gimple_nonartificial_location and handle -Wno-system-headers. | |
19942 | (handle_builtin_stxncpy): Same. | |
19943 | ||
19944 | 2018-06-12 Martin Sebor <msebor@redhat.com> | |
19945 | ||
19946 | PR c/85931 | |
19947 | * fold-const.c (operand_equal_p): Handle SAVE_EXPR. | |
19948 | ||
19949 | 2018-06-12 Will Schmidt <will_schmidt@vnet.ibm.com> | |
19950 | ||
19951 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add | |
19952 | BUILTIN_VEC_XST entries for pointer to double and long long. | |
19953 | ||
19954 | 2018-06-12 H.J. Lu <hongjiu.lu@intel.com> | |
19955 | ||
19956 | PR target/85990 | |
19957 | * config/i386/gnu-user.h (TARGET_THREAD_SPLIT_STACK_OFFSET): | |
19958 | Update comments. | |
19959 | * config/i386/gnu-user64.h (TARGET_THREAD_SPLIT_STACK_OFFSET): | |
19960 | Likewise. | |
19961 | ||
19962 | 2018-06-12 Martin Liska <mliska@suse.cz> | |
19963 | ||
19964 | * doc/options.texi: Document IntegerRange. | |
19965 | ||
19966 | 2018-06-12 Martin Liska <mliska@suse.cz> | |
19967 | ||
19968 | * config/i386/i386.opt: Make MPX-related options as Deprecated. | |
19969 | * opt-functions.awk: Handle Deprecated flag. | |
19970 | * opts-common.c (decode_cmdline_option): Handle cl_deprecated | |
19971 | and report error. | |
19972 | (read_cmdline_option): Report warning for a deprecated option. | |
19973 | * opts.h (struct cl_option): Add new field cl_deprecated. | |
19974 | (CL_ERR_DEPRECATED): New. | |
19975 | ||
19976 | 2018-06-12 Martin Liska <mliska@suse.cz> | |
19977 | ||
19978 | * doc/options.texi: Document Deprecated option flag. | |
19979 | ||
19980 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19981 | ||
19982 | * config/arc/arc-arch.h (arc_extras): New enum. | |
19983 | (arc_cpu_t):Add field extra. | |
19984 | (arc_cpu_types): Consider the extras. | |
19985 | * config/arc/arc-cpus.def: Add extras info. | |
19986 | * config/arc/arc-opts.h (processor_type): Consider extra field. | |
19987 | * config/arc/arc.c (arc_override_options): Handle extra field. | |
19988 | ||
19989 | 2018-06-12 Claudiu Zissulescu <claziss@synopsys.com> | |
19990 | ||
19991 | * config/arc/arc-arch.h: Update ARC_OPTX macro. | |
19992 | * config/arc/arc-options.def (ARC_OPTX): Introduce a new doc | |
19993 | field. | |
19994 | * config/arc/arc.c (arc_init): Update pic warning. | |
19995 | (irq_range): Update irq range parsing warnings. | |
19996 | (arc_override_options): Update various warning messages. | |
19997 | (arc_handle_aux_attribute): Likewise. | |
19998 | ||
19999 | 2018-06-12 Robert Suchanek <robert.suchanek@mips.com> | |
20000 | ||
20001 | * config/mips/i6400.md (i6400_fpu_fadd): Remove frint. | |
20002 | ||
20003 | 2018-06-12 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20004 | ||
20005 | * doc/sourcebuild.texi: Document usage of line number 0 in verify | |
20006 | compiler messages directives. | |
20007 | ||
20008 | 2018-06-12 Matthew Fortune <mfortune@gmail.com> | |
20009 | ||
20010 | * config/mips/mips-cpus.def: New MIPS_CPU for i6500. | |
20011 | * config/mips/mips-tables.opt: Regenerate. | |
20012 | * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as | |
20013 | mips64r6. | |
20014 | * doc/invoke.texi: Document -march=i6500. | |
20015 | ||
20016 | 2018-06-12 Prachi Godbole <prachi.godbole@imgtec.com> | |
20017 | ||
20018 | * config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit. | |
20019 | (i6400_gpmul): Add cpu_unit. | |
20020 | (i6400_gpdiv): Likewise. | |
20021 | (i6400_msa_add_d): Update reservations. | |
20022 | (i6400_msa_int_add) Likewise. | |
20023 | (i6400_msa_short_logic3) Likewise. | |
20024 | (i6400_msa_short_logic2) Likewise. | |
20025 | (i6400_msa_short_logic) Likewise. | |
20026 | (i6400_msa_move) Likewise. | |
20027 | (i6400_msa_cmp) Likewise. | |
20028 | (i6400_msa_short_float2) Likewise. | |
20029 | (i6400_msa_div_d) Likewise. | |
20030 | (i6400_msa_long_logic1) Likewise. | |
20031 | (i6400_msa_long_logic2) Likewise. | |
20032 | (i6400_msa_mult) Likewise. | |
20033 | (i6400_msa_long_float2) Likewise. | |
20034 | (i6400_msa_long_float4) Likewise. | |
20035 | (i6400_msa_long_float5) Likewise. | |
20036 | (i6400_msa_long_float8) Likewise. | |
20037 | (i6400_fpu_fadd): Include frint type. | |
20038 | (i6400_fpu_store): New define_insn_reservation. | |
20039 | (i6400_fpu_load): Likewise. | |
20040 | (i6400_fpu_move): Likewise. | |
20041 | (i6400_fpu_fcmp): Likewise. | |
20042 | (i6400_fpu_fmadd): Likewise. | |
20043 | (i6400_int_mult): Include imul3nc type and update reservation. | |
20044 | (i6400_int_div): Include idiv3 type and update reservation. | |
20045 | (i6400_int_load): Update to check type not move_type. | |
20046 | (i6400_int_store): Likewise. | |
20047 | (i6400_int_prefetch): Set zero latency. | |
20048 | ||
20049 | 2018-06-12 Eric Botcazou <ebotcazou@adacore.com> | |
20050 | ||
20051 | * gcc.c: Document new %@{...} sequence. | |
20052 | (LINK_COMMAND_SPEC): Use it for the -L switches. | |
20053 | (cpp_unique_options): Use it for the -I switches. | |
20054 | (at_file_argbuf): New global variable. | |
20055 | (in_at_file): Likewise. | |
20056 | (alloc_args): Create at_file_argbuf. | |
20057 | (clear_args): Truncate at_file_argbuf. | |
20058 | (store_arg): If in_at_file, push the argument onto at_file_argbuf. | |
20059 | (open_at_file): New function. | |
20060 | (close_at_file): Likewise. | |
20061 | (create_at_file): Delete. | |
20062 | (do_spec_1) <'i'>: Use open_at_file/close_at_file. | |
20063 | <'o'>: Likewise. | |
20064 | <'@'>: New case. | |
20065 | (validate_switches_from_spec): Deal with %@{...} sequence. | |
20066 | (validate_switches): Likewise. | |
20067 | (driver::finalize): Call clear_args. | |
20068 | ||
20069 | 2018-06-11 Rasmus Villemoes <rasmus.villemoes@prevas.dk> | |
20070 | ||
20071 | * config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0. | |
20072 | ||
20073 | 2018-06-11 Martin Sebor <msebor@redhat.com> | |
20074 | ||
20075 | * doc/invoke.texi (-Wall): List -Wc++17-compat. | |
20076 | (Wno-class-memaccess): Add @opindex. | |
20077 | (Wno-templates, Wno-multiple-inheritance): Same. | |
20078 | (Wno-virtual-inheritance, Wno-namespaces): Same. | |
20079 | (Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same. | |
20080 | (Wno-format-overflow, Wno-format-truncation): Same. | |
20081 | (Wno-unused-local-typedefs, Walloc-size-larger-than): Same. | |
20082 | (Wno-alloc-size-larger-than, Wframe-larger-than): Same | |
20083 | (Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same. | |
20084 | (Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same. | |
20085 | (Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same. | |
20086 | (Wno-misspelled-isr): Same. | |
20087 | ||
20088 | 2018-06-11 Martin Sebor <msebor@redhat.com> | |
20089 | ||
20090 | * PR tree-optimization/86083 | |
20091 | * tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p. | |
20092 | ||
20093 | 2018-06-11 Zhouyi Zhou <zhouzhouyi@gmail.com> | |
20094 | ||
20095 | * tree-eh.c (lower_eh_constructs_2): Add a comma to comment. | |
20096 | ||
20097 | 2018-06-11 Segher Boessenkool <segher@kernel.crashing.org> | |
20098 | ||
20099 | PR target/85755 | |
20100 | * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers | |
20101 | on the correct operand. | |
20102 | (*movdi_internal64): Ditto. | |
20103 | ||
20104 | 2018-06-11 Martin Liska <mliska@suse.cz> | |
20105 | ||
20106 | PR tree-optimization/86089 | |
20107 | * tree-ssa-strlen.c (get_string_length): Move back removed hunk. | |
20108 | ||
20109 | 2018-06-11 Julia Koval <julia.koval@intel.com> | |
20110 | ||
20111 | * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128) | |
20112 | _mm_aesenc_epi128, _mm_aesenclast_epi128: Remove. | |
20113 | * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove. | |
20114 | ||
20115 | 2018-06-11 Olivier Hainque <hainque@adacore.com> | |
20116 | ||
20117 | * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 | |
20118 | for Ada with strict dwarf2. | |
20119 | ||
20120 | 2018-06-08 Peter Bergner <bergner@vnet.ibm.com> | |
20121 | ||
20122 | PR target/85755 | |
20123 | * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC | |
20124 | addresses. | |
20125 | ||
20126 | 2018-06-08 Jan Hubicka <hubicka@ucw.cz> | |
20127 | ||
20128 | * dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4. | |
20129 | ||
20130 | 2018-06-08 David Edelsohn <dje.gcc@gmail.com> | |
20131 | ||
20132 | * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if | |
20133 | TARGET_ELF. | |
20134 | ||
20135 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20136 | ||
20137 | * tree-cfg.h (debug_function): Fix argument type to match | |
20138 | implementation. | |
20139 | ||
20140 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20141 | ||
20142 | * config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility): | |
20143 | Remove usage of MPX-related (and removed) fields. | |
20144 | * config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise. | |
20145 | ||
20146 | 2018-06-08 David Malcolm <dmalcolm@redhat.com> | |
20147 | ||
20148 | * cfg.c (debug): Use TDF_NONE rather than 0. | |
20149 | * cfghooks.c (debug): Likewise. | |
20150 | * dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP. | |
20151 | (struct dump_option_value_info): Convert to... | |
20152 | (struct kv_pair): ...this template type. | |
20153 | (dump_options): Convert to kv_pair<dump_flags_t>; use TDF_NONE | |
20154 | rather than 0. | |
20155 | (optinfo_verbosity_options): Likewise. | |
20156 | (optgroup_options): Convert to kv_pair<optgroup_flags_t>; use | |
20157 | OPTGROUP_NONE. | |
20158 | (gcc::dump_manager::dump_register): Use optgroup_flags_t rather | |
20159 | than int for "optgroup_flags" param. | |
20160 | (dump_generic_expr_loc): Use dump_flags_t rather than int for | |
20161 | "dump_kind" param. | |
20162 | (dump_dec): Likewise. | |
20163 | (dump_finish): Use TDF_NONE rather than 0. | |
20164 | (gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t | |
20165 | rather than int for "optgroup_flags" param. Use TDF_NONE rather | |
20166 | than 0. Update for change to option_ptr. | |
20167 | (opt_info_switch_p_1): Convert "optgroup_flags" param from int * | |
20168 | to optgroup_flags_t *. Use TDF_NONE and OPTGROUP_NONE rather than | |
20169 | 0. Update for changes to optinfo_verbosity_options and | |
20170 | optgroup_options. | |
20171 | (opt_info_switch_p): Convert optgroup_flags from int to | |
20172 | optgroup_flags_t. | |
20173 | (dump_basic_block): Use dump_flags_t rather than int | |
20174 | for "dump_kind" param. | |
20175 | * dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS, | |
20176 | TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID) | |
20177 | TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME, | |
20178 | TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB, | |
20179 | TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS, | |
20180 | MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG, | |
20181 | TDF_NONE): Convert from macros to... | |
20182 | (enum dump_flag): ...this new enum. | |
20183 | (dump_flags_t): Update to use enum. | |
20184 | (operator|, operator&, operator~, operator|=, operator&=): | |
20185 | Implement for dump_flags_t. | |
20186 | (OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE, | |
20187 | OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL): | |
20188 | Convert from macros to... | |
20189 | (enum optgroup_flag): ...this new enum. | |
20190 | (optgroup_flags_t): New typedef. | |
20191 | (operator|, operator|=): Implement for optgroup_flags_t. | |
20192 | (struct dump_file_info): Convert field "alt_flags" to | |
20193 | dump_flags_t. Convert field "optgroup_flags" to | |
20194 | optgroup_flags_t. | |
20195 | (dump_basic_block): Use dump_flags_t rather than int for param. | |
20196 | (dump_generic_expr_loc): Likewise. | |
20197 | (dump_dec): Likewise. | |
20198 | (dump_register): Convert param "optgroup_flags" to | |
20199 | optgroup_flags_t. | |
20200 | (opt_info_enable_passes): Likewise. | |
20201 | * early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather | |
20202 | than 0. | |
20203 | * gimple-pretty-print.c (debug): Likewise. | |
20204 | * gimple-ssa-store-merging.c (bswap_replace): Likewise. | |
20205 | (merged_store_group::apply_stores): Likewise. | |
20206 | * gimple-ssa-strength-reduction.c (insert_initializers): Likewise. | |
20207 | * gimple.c (verify_gimple_pp): Likewise. | |
20208 | * graphite-poly.c (print_pbb_body): Likewise. | |
20209 | * passes.c (pass_manager::register_one_dump_file): Convert | |
20210 | local "optgroup_flags" to optgroup_flags_t. | |
20211 | * print-tree.c (print_node): Use TDF_NONE rather than 0. | |
20212 | (debug): Likewise. | |
20213 | (debug_body): Likewise. | |
20214 | * tree-pass.h (struct pass_data): Convert field "optgroup_flags" | |
20215 | to optgroup_flags_t. | |
20216 | * tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather | |
20217 | than 0. | |
20218 | * tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise. | |
20219 | (convert_mult_to_fma): Likewise. | |
20220 | * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. | |
20221 | * tree-ssa-sccvn.c (vn_eliminate): Likewise. | |
20222 | * tree-vect-data-refs.c (dump_lower_bound): Convert param | |
20223 | "dump_kind" to dump_flags_t. | |
20224 | ||
20225 | 2018-06-08 Segher Boessenkool <segher@kernel.crashing.org> | |
20226 | ||
20227 | * config/rs6000/rs6000.c (min, max): Delete. | |
20228 | ||
20229 | 2018-06-08 Segher Boessenkool <segher@kernel.crashing.org> | |
20230 | ||
20231 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of | |
20232 | -mabi=spe and -mabi=no-spe. | |
20233 | ||
20234 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20235 | ||
20236 | * ipa-pure-const.c (propagate_pure_const): Use ::get at places | |
20237 | where we expect an existing summary. | |
20238 | ||
20239 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20240 | ||
20241 | * ipa-inline-analysis.c (simple_edge_hints): Use ::get method. | |
20242 | * ipa-inline.h (estimate_edge_growth): Likewise. | |
20243 | ||
20244 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20245 | ||
20246 | * cgraph.c (function_version_hasher::hash): Use | |
20247 | cgraph_node::get_uid (). | |
20248 | (function_version_hasher::equal): | |
20249 | * cgraph.h (cgraph_node::get_uid): New method. | |
20250 | * ipa-inline.c (update_caller_keys): Use | |
20251 | cgraph_node::get_uid (). | |
20252 | (update_callee_keys): Likewise. | |
20253 | * ipa-utils.c (searchc): Likewise. | |
20254 | (ipa_reduced_postorder): Likewise. | |
20255 | * lto-cgraph.c (input_node): Likewise. | |
20256 | * passes.c (is_pass_explicitly_enabled_or_disabled): Likewise. | |
20257 | * symbol-summary.h (symtab_insertion): Likewise. | |
20258 | (symtab_removal): Likewise. | |
20259 | (symtab_duplication): Likewise. | |
20260 | * tree-pretty-print.c (dump_function_header): Likewise. | |
20261 | * tree-sra.c (convert_callers_for_node): Likewise. | |
20262 | ||
20263 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20264 | ||
20265 | * cgraph.c (symbol_table::create_edge): Always assign a new | |
20266 | unique number. | |
20267 | (symbol_table::free_edge): Do not recycle numbers. | |
20268 | * cgraph.h (cgraph_edge::get): New method. | |
20269 | * symbol-summary.h (symtab_removal): Use it. | |
20270 | (symtab_duplication): Likewise. | |
20271 | (call_summary::hashable_uid): Remove. | |
20272 | ||
20273 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20274 | ||
20275 | * ipa-inline-analysis.c (inline_edge_removal_hook): Remove. | |
20276 | (initialize_growth_caches): Remove. | |
20277 | (free_growth_caches): Likewise. | |
20278 | (do_estimate_edge_time): Use edge_growth_cache. | |
20279 | (do_estimate_edge_size): Likewise. | |
20280 | (do_estimate_edge_hints): Likewise. | |
20281 | * ipa-inline.c (reset_edge_caches): Likewise. | |
20282 | (recursive_inlining): Likewise. | |
20283 | (inline_small_functions): Likewise. | |
20284 | * ipa-inline.h (initialize_growth_caches): Remove. | |
20285 | (estimate_edge_size): Likewise. | |
20286 | (estimate_edge_time): Likewise. | |
20287 | (estimate_edge_hints): Likewise. | |
20288 | (reset_edge_growth_cache): Likewise. | |
20289 | * symbol-summary.h (call_summary::remove): New method. | |
20290 | ||
20291 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20292 | ||
20293 | * ipa-cp.c (class edge_clone_summary): New summary. | |
20294 | (grow_edge_clone_vectors): Remove. | |
20295 | (ipcp_edge_duplication_hook): Remove. | |
20296 | (class edge_clone_summary_t): New call_summary class. | |
20297 | (ipcp_edge_removal_hook): Remove. | |
20298 | (edge_clone_summary_t::duplicate): New function. | |
20299 | (get_next_cgraph_edge_clone): Use edge_clone_summaries. | |
20300 | (create_specialized_node): Likewise. | |
20301 | (ipcp_driver): Initialize edge_clone_summaries and do not | |
20302 | register hooks. | |
20303 | ||
20304 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20305 | ||
20306 | * symbol-summary.h (get): New function. | |
20307 | (call_summary::m_initialize_when_cloning): New class member. | |
20308 | ||
20309 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20310 | ||
20311 | * cgraph.c (cgraph_node::remove): Do not recycle uid. | |
20312 | * cgraph.h (symbol_table::release_symbol): Do not pass uid. | |
20313 | (symbol_table::allocate_cgraph_symbol): Do not set uid. | |
20314 | * passes.c (uid_hash_t): Record removed_nodes by their uids. | |
20315 | (remove_cgraph_node_from_order): Use the removed_nodes set. | |
20316 | (do_per_function_toporder): Likwise. | |
20317 | * symbol-summary.h (symtab_insertion): Use cgraph_node::uid | |
20318 | instead of summary_uid. | |
20319 | (symtab_removal): Likewise. | |
20320 | (symtab_duplication): Likewise. | |
20321 | ||
20322 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20323 | ||
20324 | * ipa-cp.c (ipcp_store_bits_results): Use | |
20325 | ipcp_transformation_sum. | |
20326 | (ipcp_store_vr_results): Likewise. | |
20327 | * ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed | |
20328 | to ... | |
20329 | (ipcp_transformation_initialize): ... this. | |
20330 | (ipa_set_node_agg_value_chain): | |
20331 | (ipa_node_params_t::duplicate): Use ipcp_transformation_sum. | |
20332 | (write_ipcp_transformation_info): Likewise. | |
20333 | (read_ipcp_transformation_info): Likewise. | |
20334 | (ipcp_update_bits): Likewise. | |
20335 | (ipcp_update_vr): Likewise. | |
20336 | (ipcp_transform_function): Likewise. | |
20337 | * ipa-prop.h: Rename ipcp_transformation_summary to | |
20338 | ipcp_transformation. | |
20339 | (class ipcp_transformation_t): New function summary. | |
20340 | (ipcp_get_transformation_summary): Use ipcp_transformation_sum. | |
20341 | (ipa_get_agg_replacements_for_node): Likewise. | |
20342 | ||
20343 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20344 | ||
20345 | * ipa-pure-const.c (struct funct_state_d): Do it class instead | |
20346 | of struct. | |
20347 | (class funct_state_summary_t): New function_summary class. | |
20348 | (has_function_state): Remove. | |
20349 | (get_function_state): Likewise. | |
20350 | (set_function_state): Likewise. | |
20351 | (add_new_function): Likewise. | |
20352 | (funct_state_summary_t::insert): New function. | |
20353 | (duplicate_node_data): Remove. | |
20354 | (remove_node_data): Remove. | |
20355 | (funct_state_summary_t::duplicate): New function. | |
20356 | (register_hooks): Create new funct_state_summaries. | |
20357 | (pure_const_generate_summary): Use it. | |
20358 | (pure_const_write_summary): Likewise. | |
20359 | (pure_const_read_summary): Likewise. | |
20360 | (propagate_pure_const): Likewise. | |
20361 | (propagate_nothrow): Likewise. | |
20362 | (dump_malloc_lattice): Likewise. | |
20363 | (propagate_malloc): Likewise. | |
20364 | (execute): Do not register hooks, just remove summary | |
20365 | instead. | |
20366 | (pass_ipa_pure_const::pass_ipa_pure_const): Simplify | |
20367 | constructor. | |
20368 | ||
20369 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20370 | ||
20371 | * ipa-reference.c (remove_node_data): Remove. | |
20372 | (duplicate_node_data): Likewise. | |
20373 | (class ipa_ref_var_info_summary_t): New class. | |
20374 | (class ipa_ref_opt_summary_t): Likewise. | |
20375 | (get_reference_vars_info): Use ipa_ref_var_info_summaries. | |
20376 | (get_reference_optimization_summary): Use | |
20377 | ipa_ref_opt_sum_summaries. | |
20378 | (set_reference_vars_info): Remove. | |
20379 | (set_reference_optimization_summary): Likewise. | |
20380 | (ipa_init): Create summaries. | |
20381 | (init_function_info): Use function summary. | |
20382 | (ipa_ref_opt_summary_t::duplicate): New function. | |
20383 | (ipa_ref_opt_summary_t::remove): New function. | |
20384 | (get_read_write_all_from_node): Fix GNU coding style. | |
20385 | (propagate): Use function summary. | |
20386 | (write_node_summary_p): Fix GNU coding style. | |
20387 | (stream_out_bitmap): Likewise. | |
20388 | (ipa_reference_read_optimization_summary): Use function summary. | |
20389 | (ipa_reference_c_finalize): Do not release hooks. | |
20390 | ||
20391 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20392 | ||
20393 | * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method. | |
20394 | (analyze_function_body): Extract multiple calls of get_create. | |
20395 | * ipa-inline-analysis.c (simple_edge_hints): Likewise. | |
20396 | * ipa-inline.c (recursive_inlining): Use ::get method. | |
20397 | * ipa-inline.h (estimate_edge_growth): Likewise. | |
20398 | ||
20399 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20400 | ||
20401 | * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to | |
20402 | HSA_INVALID. | |
20403 | (hsa_function_summary::hsa_function_summary): Use the new enum | |
20404 | value. | |
20405 | (hsa_gpu_implementation_p): Use hsa_summaries::get. | |
20406 | * hsa-gen.c (hsa_get_host_function): Likewise. | |
20407 | (get_brig_function_name): Likewise. | |
20408 | * ipa-hsa.c (process_hsa_functions): Likewise. | |
20409 | (ipa_hsa_write_summary): Likewise. | |
20410 | * symbol-summary.h (symtab_duplication): Use ::get function/ | |
20411 | (get): New function. | |
20412 | ||
20413 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20414 | ||
20415 | * config/i386/i386.c (ix86_can_inline_p): Use get_create instead | |
20416 | of get. | |
20417 | * hsa-common.c (hsa_summary_t::link_functions): Likewise. | |
20418 | (hsa_register_kernel): Likewise. | |
20419 | * hsa-common.h (hsa_gpu_implementation_p): Likewise. | |
20420 | * hsa-gen.c (hsa_get_host_function): Likewise. | |
20421 | (get_brig_function_name): Likewise. | |
20422 | (generate_hsa): Likewise. | |
20423 | (pass_gen_hsail::execute): Likewise. | |
20424 | * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. | |
20425 | (devirtualization_time_bonus): Likewise. | |
20426 | (ipcp_propagate_stage): Likewise. | |
20427 | * ipa-fnsummary.c (redirect_to_unreachable): Likewise. | |
20428 | (edge_set_predicate): Likewise. | |
20429 | (evaluate_conditions_for_known_args): Likewise. | |
20430 | (evaluate_properties_for_edge): Likewise. | |
20431 | (ipa_fn_summary::reset): Likewise. | |
20432 | (ipa_fn_summary_t::duplicate): Likewise. | |
20433 | (dump_ipa_call_summary): Likewise. | |
20434 | (ipa_dump_fn_summary): Likewise. | |
20435 | (analyze_function_body): Likewise. | |
20436 | (compute_fn_summary): Likewise. | |
20437 | (estimate_edge_devirt_benefit): Likewise. | |
20438 | (estimate_edge_size_and_time): Likewise. | |
20439 | (estimate_calls_size_and_time): Likewise. | |
20440 | (estimate_node_size_and_time): Likewise. | |
20441 | (inline_update_callee_summaries): Likewise. | |
20442 | (remap_edge_change_prob): Likewise. | |
20443 | (remap_edge_summaries): Likewise. | |
20444 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
20445 | (ipa_update_overall_fn_summary): Likewise. | |
20446 | (read_ipa_call_summary): Likewise. | |
20447 | (inline_read_section): Likewise. | |
20448 | (write_ipa_call_summary): Likewise. | |
20449 | (ipa_fn_summary_write): Likewise. | |
20450 | (ipa_free_fn_summary): Likewise. | |
20451 | * ipa-hsa.c (process_hsa_functions): Likewise. | |
20452 | (ipa_hsa_write_summary): Likewise. | |
20453 | (ipa_hsa_read_section): Likewise. | |
20454 | * ipa-icf.c (sem_function::merge): Likewise. | |
20455 | * ipa-inline-analysis.c (simple_edge_hints): Likewise. | |
20456 | (do_estimate_edge_time): Likewise. | |
20457 | (estimate_size_after_inlining): Likewise. | |
20458 | (estimate_growth): Likewise. | |
20459 | (growth_likely_positive): Likewise. | |
20460 | * ipa-inline-transform.c (clone_inlined_nodes): Likewise. | |
20461 | (inline_call): Likewise. | |
20462 | * ipa-inline.c (caller_growth_limits): Likewise. | |
20463 | (can_inline_edge_p): Likewise. | |
20464 | (can_inline_edge_by_limits_p): Likewise. | |
20465 | (compute_uninlined_call_time): Likewise. | |
20466 | (compute_inlined_call_time): Likewise. | |
20467 | (want_inline_small_function_p): Likewise. | |
20468 | (edge_badness): Likewise. | |
20469 | (update_caller_keys): Likewise. | |
20470 | (update_callee_keys): Likewise. | |
20471 | (recursive_inlining): Likewise. | |
20472 | (inline_small_functions): Likewise. | |
20473 | (inline_to_all_callers_1): Likewise. | |
20474 | (dump_overall_stats): Likewise. | |
20475 | (early_inline_small_functions): Likewise. | |
20476 | (early_inliner): Likewise. | |
20477 | * ipa-inline.h (estimate_edge_growth): Likewise. | |
20478 | * ipa-profile.c (ipa_propagate_frequency_1): Likewise. | |
20479 | * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. | |
20480 | * ipa-prop.h (IPA_NODE_REF): Likewise. | |
20481 | (IPA_EDGE_REF): Likewise. | |
20482 | * ipa-pure-const.c (malloc_candidate_p): Likewise. | |
20483 | (propagate_malloc): Likewise. | |
20484 | * ipa-split.c (execute_split_functions): Likewise. | |
20485 | * symbol-summary.h: Rename get to get_create. | |
20486 | (get): Likewise. | |
20487 | (get_create): Likewise. | |
20488 | * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. | |
20489 | ||
20490 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20491 | ||
20492 | * symbol-summary.h (release): Move definition out of class | |
20493 | declaration. | |
20494 | (symtab_removal): Likewise. | |
20495 | (symtab_duplication): Likewise. | |
20496 | ||
20497 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20498 | ||
20499 | * symbol-summary.h (function_summary): Move constructor | |
20500 | implementation out of class declaration. | |
20501 | (release): Likewise. | |
20502 | (symtab_insertion): Likewise. | |
20503 | (symtab_removal): Likewise. | |
20504 | (symtab_duplication): Likewise. | |
20505 | (get): Likewise. | |
20506 | ||
20507 | 2018-06-08 Martin Liska <mliska@suse.cz> | |
20508 | ||
20509 | * Makefile.in: Remove support for MPX (macros, related functions, | |
20510 | fields in cgraph_node, ...). | |
20511 | * builtin-types.def (BT_BND): Likewise. | |
20512 | (BT_FN_BND_CONST_PTR): Likewise. | |
20513 | (BT_FN_CONST_PTR_BND): Likewise. | |
20514 | (BT_FN_VOID_PTR_BND): Likewise. | |
20515 | (BT_FN_BND_CONST_PTR_SIZE): Likewise. | |
20516 | (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise. | |
20517 | * builtins.c (expand_builtin_memcpy_with_bounds): Likewise. | |
20518 | (expand_builtin_mempcpy_with_bounds): Likewise. | |
20519 | (expand_builtin_memset_with_bounds): Likewise. | |
20520 | (expand_builtin_memset_args): Likewise. | |
20521 | (std_expand_builtin_va_start): Likewise. | |
20522 | (expand_builtin): Likewise. | |
20523 | (expand_builtin_with_bounds): Likewise. | |
20524 | * builtins.def (DEF_BUILTIN_CHKP): Likewise. | |
20525 | (DEF_LIB_BUILTIN_CHKP): Likewise. | |
20526 | (DEF_EXT_LIB_BUILTIN_CHKP): Likewise. | |
20527 | (DEF_CHKP_BUILTIN): Likewise. | |
20528 | (BUILT_IN_MEMCPY): Likewise. | |
20529 | (BUILT_IN_MEMMOVE): Likewise. | |
20530 | (BUILT_IN_MEMPCPY): Likewise. | |
20531 | (BUILT_IN_MEMSET): Likewise. | |
20532 | (BUILT_IN_STPCPY): Likewise. | |
20533 | (BUILT_IN_STRCAT): Likewise. | |
20534 | (BUILT_IN_STRCHR): Likewise. | |
20535 | (BUILT_IN_STRCPY): Likewise. | |
20536 | (BUILT_IN_STRLEN): Likewise. | |
20537 | (BUILT_IN_MEMCPY_CHK): Likewise. | |
20538 | (BUILT_IN_MEMMOVE_CHK): Likewise. | |
20539 | (BUILT_IN_MEMPCPY_CHK): Likewise. | |
20540 | (BUILT_IN_MEMSET_CHK): Likewise. | |
20541 | (BUILT_IN_STPCPY_CHK): Likewise. | |
20542 | (BUILT_IN_STRCAT_CHK): Likewise. | |
20543 | (BUILT_IN_STRCPY_CHK): Likewise. | |
20544 | * calls.c (store_bounds): Likewise. | |
20545 | (emit_call_1): Likewise. | |
20546 | (special_function_p): Likewise. | |
20547 | (maybe_warn_nonstring_arg): Likewise. | |
20548 | (initialize_argument_information): Likewise. | |
20549 | (finalize_must_preallocate): Likewise. | |
20550 | (compute_argument_addresses): Likewise. | |
20551 | (expand_call): Likewise. | |
20552 | * cfgexpand.c (expand_call_stmt): Likewise. | |
20553 | (expand_return): Likewise. | |
20554 | (expand_gimple_stmt_1): Likewise. | |
20555 | (pass_expand::execute): Likewise. | |
20556 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. | |
20557 | (cgraph_node::remove): Likewise. | |
20558 | (cgraph_node::dump): Likewise. | |
20559 | (cgraph_node::verify_node): Likewise. | |
20560 | * cgraph.h (chkp_function_instrumented_p): Likewise. | |
20561 | (symtab_node::get_alias_target): Likewise. | |
20562 | (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise. | |
20563 | (cgraph_local_p): Likewise. | |
20564 | * cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise. | |
20565 | (cgraph_edge::rebuild_references): Likewise. | |
20566 | * cgraphunit.c (varpool_node::finalize_decl): Likewise. | |
20567 | (walk_polymorphic_call_targets): Likewise. | |
20568 | (cgraph_node::expand_thunk): Likewise. | |
20569 | (symbol_table::output_weakrefs): Likewise. | |
20570 | * common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise. | |
20571 | (ix86_handle_option): Likewise. | |
20572 | * config/i386/constraints.md: Likewise. | |
20573 | * config/i386/i386-builtin-types.def (BND): Likewise. | |
20574 | (VOID): Likewise. | |
20575 | (PVOID): Likewise. | |
20576 | (ULONG): Likewise. | |
20577 | * config/i386/i386-builtin.def (BDESC_END): Likewise. | |
20578 | (BDESC_FIRST): Likewise. | |
20579 | (BDESC): Likewise. | |
20580 | * config/i386/i386-c.c (ix86_target_macros_internal): Likewise. | |
20581 | * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise. | |
20582 | * config/i386/i386.c (enum reg_class): Likewise. | |
20583 | (ix86_target_string): Likewise. | |
20584 | (ix86_option_override_internal): Likewise. | |
20585 | (ix86_conditional_register_usage): Likewise. | |
20586 | (ix86_valid_target_attribute_inner_p): Likewise. | |
20587 | (ix86_set_indirect_branch_type): Likewise. | |
20588 | (ix86_set_current_function): Likewise. | |
20589 | (ix86_function_arg_regno_p): Likewise. | |
20590 | (init_cumulative_args): Likewise. | |
20591 | (ix86_function_arg_advance): Likewise. | |
20592 | (ix86_function_arg): Likewise. | |
20593 | (ix86_pass_by_reference): Likewise. | |
20594 | (ix86_function_value_regno_p): Likewise. | |
20595 | (ix86_function_value_1): Likewise. | |
20596 | (ix86_function_value_bounds): Likewise. | |
20597 | (ix86_return_in_memory): Likewise. | |
20598 | (ix86_setup_incoming_vararg_bounds): Likewise. | |
20599 | (ix86_va_start): Likewise. | |
20600 | (indirect_thunk_need_prefix): Likewise. | |
20601 | (print_reg): Likewise. | |
20602 | (ix86_print_operand): Likewise. | |
20603 | (ix86_expand_call): Likewise. | |
20604 | (ix86_output_function_return): Likewise. | |
20605 | (reg_encoded_number): Likewise. | |
20606 | (BDESC_VERIFYS): Likewise. | |
20607 | (ix86_init_mpx_builtins): Likewise. | |
20608 | (ix86_init_builtins): Likewise. | |
20609 | (ix86_emit_cmove): Likewise. | |
20610 | (ix86_emit_move_max): Likewise. | |
20611 | (ix86_expand_builtin): Likewise. | |
20612 | (ix86_builtin_mpx_function): Likewise. | |
20613 | (ix86_get_arg_address_for_bt): Likewise. | |
20614 | (ix86_load_bounds): Likewise. | |
20615 | (ix86_store_bounds): Likewise. | |
20616 | (ix86_load_returned_bounds): Likewise. | |
20617 | (ix86_store_returned_bounds): Likewise. | |
20618 | (ix86_class_likely_spilled_p): Likewise. | |
20619 | (ix86_hard_regno_mode_ok): Likewise. | |
20620 | (x86_order_regs_for_local_alloc): Likewise. | |
20621 | (ix86_mitigate_rop): Likewise. | |
20622 | (ix86_bnd_prefixed_insn_p): Likewise. | |
20623 | (ix86_mpx_bound_mode): Likewise. | |
20624 | (ix86_make_bounds_constant): Likewise. | |
20625 | (ix86_initialize_bounds): Likewise. | |
20626 | (TARGET_LOAD_BOUNDS_FOR_ARG): Likewise. | |
20627 | (TARGET_STORE_BOUNDS_FOR_ARG): Likewise. | |
20628 | (TARGET_LOAD_RETURNED_BOUNDS): Likewise. | |
20629 | (TARGET_STORE_RETURNED_BOUNDS): Likewise. | |
20630 | (TARGET_CHKP_BOUND_MODE): Likewise. | |
20631 | (TARGET_BUILTIN_CHKP_FUNCTION): Likewise. | |
20632 | (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise. | |
20633 | (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise. | |
20634 | (TARGET_CHKP_INITIALIZE_BOUNDS): Likewise. | |
20635 | * config/i386/i386.h (TARGET_MPX): Likewise. | |
20636 | (TARGET_MPX_P): Likewise. | |
20637 | (VALID_BND_REG_MODE): Likewise. | |
20638 | (FIRST_BND_REG): Likewise. | |
20639 | (LAST_BND_REG): Likewise. | |
20640 | (enum reg_class): Likewise. | |
20641 | (BND_REG_P): Likewise. | |
20642 | (BND_REGNO_P): Likewise. | |
20643 | (BNDmode): Likewise. | |
20644 | (ADJUST_INSN_LENGTH): Likewise. | |
20645 | * config/i386/i386.md: Likewise. | |
20646 | * config/i386/i386.opt: Likewise. | |
20647 | * config/i386/linux-common.h (LIBMPX_LIBS): Likewise. | |
20648 | (defined): Likewise. | |
20649 | (LINK_MPX): Likewise. | |
20650 | (MPX_SPEC): Likewise. | |
20651 | (LIBMPX_SPEC): Likewise. | |
20652 | (LIBMPXWRAPPERS_SPEC): Likewise. | |
20653 | (CHKP_SPEC): Likewise. | |
20654 | * config/i386/predicates.md: Likewise. | |
20655 | * dbxout.c (dbxout_type): Likewise. | |
20656 | * doc/extend.texi: Likewise. | |
20657 | * doc/invoke.texi: Likewise. | |
20658 | * doc/md.texi: Likewise. | |
20659 | * doc/tm.texi: Likewise. | |
20660 | * doc/tm.texi.in: Likewise. | |
20661 | * dwarf2out.c (is_base_type): Likewise. | |
20662 | (gen_formal_types_die): Likewise. | |
20663 | (gen_subprogram_die): Likewise. | |
20664 | (gen_type_die_with_usage): Likewise. | |
20665 | (gen_decl_die): Likewise. | |
20666 | (dwarf2out_late_global_decl): Likewise. | |
20667 | * expr.c (expand_assignment): Likewise. | |
20668 | (emit_storent_insn): Likewise. | |
20669 | (store_expr_with_bounds): Likewise. | |
20670 | (store_expr): Likewise. | |
20671 | (expand_expr_real_1): Likewise. | |
20672 | * expr.h (store_expr_with_bounds): Likewise. | |
20673 | * function.c (use_register_for_decl): Likewise. | |
20674 | (struct bounds_parm_data): Likewise. | |
20675 | (assign_parms_augmented_arg_list): Likewise. | |
20676 | (assign_parm_find_entry_rtl): Likewise. | |
20677 | (assign_parm_is_stack_parm): Likewise. | |
20678 | (assign_parm_load_bounds): Likewise. | |
20679 | (assign_bounds): Likewise. | |
20680 | (assign_parms): Likewise. | |
20681 | (expand_function_start): Likewise. | |
20682 | * gcc.c (CHKP_SPEC): Likewise. | |
20683 | * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. | |
20684 | * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise. | |
20685 | (wrestrict_dom_walker::check_call): Likewise. | |
20686 | * gimple.c (gimple_build_call_from_tree): Likewise. | |
20687 | * gimple.h (enum gf_mask): Likewise. | |
20688 | (gimple_call_with_bounds_p): Likewise. | |
20689 | (gimple_call_set_with_bounds): Likewise. | |
20690 | * gimplify.c (gimplify_init_constructor): Likewise. | |
20691 | * ipa-cp.c (initialize_node_lattices): Likewise. | |
20692 | (propagate_constants_across_call): Likewise. | |
20693 | (find_more_scalar_values_for_callers_subset): Likewise. | |
20694 | * ipa-hsa.c (process_hsa_functions): Likewise. | |
20695 | * ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise. | |
20696 | * ipa-icf.c (sem_function::merge): Likewise. | |
20697 | * ipa-inline.c (early_inliner): Likewise. | |
20698 | * ipa-pure-const.c (warn_function_noreturn): Likewise. | |
20699 | (warn_function_cold): Likewise. | |
20700 | (propagate_pure_const): Likewise. | |
20701 | * ipa-ref.h (enum GTY): Likewise. | |
20702 | * ipa-split.c (find_retbnd): Likewise. | |
20703 | (consider_split): Likewise. | |
20704 | (split_function): Likewise. | |
20705 | * ipa-visibility.c (cgraph_externally_visible_p): Likewise. | |
20706 | * ipa.c (walk_polymorphic_call_targets): Likewise. | |
20707 | (symbol_table::remove_unreachable_nodes): Likewise. | |
20708 | (process_references): Likewise. | |
20709 | (cgraph_build_static_cdtor_1): Likewise. | |
20710 | * lto-cgraph.c (lto_output_node): Likewise. | |
20711 | (output_refs): Likewise. | |
20712 | (compute_ltrans_boundary): Likewise. | |
20713 | (input_overwrite_node): Likewise. | |
20714 | (input_node): Likewise. | |
20715 | (input_cgraph_1): Likewise. | |
20716 | * params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise. | |
20717 | * passes.c (pass_manager::execute_early_local_passes): Likewise. | |
20718 | (class pass_chkp_instrumentation_passes): Likewise. | |
20719 | (make_pass_chkp_instrumentation_passes): Likewise. | |
20720 | * passes.def: Likewise. | |
20721 | * rtl.h (struct GTY): Likewise. | |
20722 | (CALL_EXPR_WITH_BOUNDS_P): Likewise. | |
20723 | * stor-layout.c (layout_type): Likewise. | |
20724 | * symtab.c: Likewise. | |
20725 | * target.def: Likewise. | |
20726 | * targhooks.c (default_chkp_bound_type): Likewise. | |
20727 | (default_chkp_bound_mode): Likewise. | |
20728 | (default_builtin_chkp_function): Likewise. | |
20729 | (default_chkp_function_value_bounds): Likewise. | |
20730 | (default_chkp_make_bounds_constant): Likewise. | |
20731 | (default_chkp_initialize_bounds): Likewise. | |
20732 | * targhooks.h (default_chkp_bound_type): Likewise. | |
20733 | (default_chkp_bound_mode): Likewise. | |
20734 | (default_builtin_chkp_function): Likewise. | |
20735 | (default_chkp_function_value_bounds): Likewise. | |
20736 | (default_chkp_make_bounds_constant): Likewise. | |
20737 | (default_chkp_initialize_bounds): Likewise. | |
20738 | * toplev.c (compile_file): Likewise. | |
20739 | (process_options): Likewise. | |
20740 | * tree-core.h (DEF_BUILTIN): Likewise. | |
20741 | (DEF_BUILTIN_CHKP): Likewise. | |
20742 | * tree-inline.c (declare_return_variable): Likewise. | |
20743 | (remap_gimple_stmt): Likewise. | |
20744 | (copy_bb): Likewise. | |
20745 | (initialize_inlined_parameters): Likewise. | |
20746 | (expand_call_inline): Likewise. | |
20747 | * tree-pass.h (make_pass_ipa_chkp_versioning): Likewise. | |
20748 | (make_pass_ipa_chkp_early_produce_thunks): Likewise. | |
20749 | (make_pass_ipa_chkp_produce_thunks): Likewise. | |
20750 | (make_pass_chkp): Likewise. | |
20751 | (make_pass_chkp_opt): Likewise. | |
20752 | (make_pass_chkp_instrumentation_passes): Likewise. | |
20753 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
20754 | * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise. | |
20755 | * tree-ssa-dce.c (propagate_necessity): Likewise. | |
20756 | (eliminate_unnecessary_stmts): Likewise. | |
20757 | * tree-ssa-pre.c (create_expression_by_pieces): Likewise. | |
20758 | * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. | |
20759 | * tree-ssa-sccvn.h: Likewise. | |
20760 | * tree-ssa-strlen.c (get_string_length): Likewise. | |
20761 | (valid_builtin_call): Likewise. | |
20762 | (adjust_last_stmt): Likewise. | |
20763 | (handle_builtin_strchr): Likewise. | |
20764 | (handle_builtin_strcpy): Likewise. | |
20765 | (handle_builtin_stxncpy): Likewise. | |
20766 | (handle_builtin_memcpy): Likewise. | |
20767 | (handle_builtin_strcat): Likewise. | |
20768 | (strlen_check_and_optimize_stmt): Likewise. | |
20769 | * tree-stdarg.c (expand_ifn_va_arg_1): Likewise. | |
20770 | * tree-streamer-in.c: Likewise. | |
20771 | * tree-streamer.c (record_common_node): Likewise. | |
20772 | * tree.c (tree_code_size): Likewise. | |
20773 | (wide_int_to_tree_1): Likewise. | |
20774 | (type_contains_placeholder_1): Likewise. | |
20775 | (build_common_tree_nodes): Likewise. | |
20776 | * tree.def (POINTER_BOUNDS_TYPE): Likewise. | |
20777 | * tree.h (POINTER_BOUNDS_TYPE_P): Likewise. | |
20778 | (POINTER_BOUNDS_P): Likewise. | |
20779 | (BOUNDED_TYPE_P): Likewise. | |
20780 | (BOUNDED_P): Likewise. | |
20781 | (CALL_WITH_BOUNDS_P): Likewise. | |
20782 | (pointer_bounds_type_node): Likewise. | |
20783 | * value-prof.c (gimple_ic): Likewise. | |
20784 | * var-tracking.c (vt_add_function_parameters): Likewise. | |
20785 | * varasm.c (make_decl_rtl): Likewise. | |
20786 | (assemble_start_function): Likewise. | |
20787 | (output_constant): Likewise. | |
20788 | (maybe_assemble_visibility): Likewise. | |
20789 | * varpool.c (ctor_for_folding): Likewise. | |
20790 | * chkp-builtins.def: Remove. | |
20791 | * ipa-chkp.c: Remove. | |
20792 | * ipa-chkp.h: Remove. | |
20793 | * rtl-chkp.c: Remove. | |
20794 | * rtl-chkp.h: Remove. | |
20795 | * tree-chkp-opt.c: Remove. | |
20796 | * tree-chkp.c: Remove. | |
20797 | * tree-chkp.h: Remove. | |
20798 | ||
20799 | 2018-06-07 Carl Love <cel@us.ibm.com> | |
20800 | ||
20801 | * config/rs6000/vsx.md (vextract_fp_from_shorth, | |
20802 | vextract_fp_from_shortl): Add BE support. | |
20803 | ||
20804 | 2018-06-07 Paul Koning <ni1d@arrl.net> | |
20805 | ||
20806 | * compare-elim.c (try_merge_compare): Don't merge compare if | |
20807 | address contains a side effect. | |
20808 | (try_eliminate_compare): Likewise. | |
20809 | ||
20810 | 2018-06-07 Olga Makhotina <olga.makhotina@intel.com> | |
20811 | ||
20812 | * config.gcc: Support "tremont". | |
20813 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont". | |
20814 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
20815 | PROCESSOR_TREMONT. | |
20816 | * config/i386/i386.c (m_TREMONT): Define. | |
20817 | (processor_target_table): Add "tremont". | |
20818 | (PTA_TREMONT): Define. | |
20819 | (ix86_lea_outperforms): Add TARGET_TREMONT. | |
20820 | (get_builtin_code_for_version): Handle PROCESSOR_TREMONT. | |
20821 | (fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT | |
20822 | and M_INTEL_GOLDMONT_PLUS. | |
20823 | (fold_builtin_cpu): Add "tremont". | |
20824 | (ix86_add_stmt_cost): Add TARGET_TREMONT. | |
20825 | (ix86_option_override_internal): Add "tremont". | |
20826 | * config/i386/i386.h (processor_costs): Define TARGET_TREMONT. | |
20827 | (processor_type): Add PROCESSOR_TREMONT. | |
20828 | * config/i386/x86-tune.def: Add m_TREMONT. | |
20829 | * doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type. | |
20830 | ||
20831 | 2018-06-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20832 | ||
20833 | * config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the | |
20834 | symbol defined for msp430i* devices to be lower case. | |
20835 | ||
20836 | 2018-06-07 Richard Biener <rguenther@suse.de> | |
20837 | ||
20838 | * graphite-sese-to-poly.c (extract_affine): Avoid unneded | |
20839 | wrapping. Properly wrap the result of a BIT_NOT_EXPR. | |
20840 | Properly wrap signed arithmetic if overflow wraps. | |
20841 | ||
20842 | 2018-06-07 Jakub Jelinek <jakub@redhat.com> | |
20843 | ||
20844 | PR tree-optimization/69615 | |
20845 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs | |
20846 | of a cast from a same precision integral SSA_NAME in a bb dominated | |
20847 | by first_bb, retry with rhs2 set to the rhs1 of the cast. Don't emit | |
20848 | cast to utype if rhs2 has already a compatible type. | |
20849 | ||
20850 | 2018-06-07 Richard Biener <rguenther@suse.de> | |
20851 | ||
20852 | PR tree-optimization/85935 | |
20853 | * graphite-scop-detection.c (find_params_in_bb): Analyze | |
20854 | condition operands with respect to the correct loop. Assert | |
20855 | the analysis doesn't fail. | |
20856 | ||
20857 | 2018-06-04 Carl Love <cel@us.ibm.com> | |
20858 | ||
20859 | * config/rs6000/vsx.md (first_match_index_<mode>): Calculate index | |
20860 | using natural element order. Use gen_lshrsi3 instead of gen_ashrsi3 | |
20861 | as it is slightly cheaper. | |
20862 | (first_match_or_eos_index_<mode>): | |
20863 | Calculate index using natural element order. | |
20864 | (first_match_index_<mode>): | |
20865 | Calculate index using natural element order. | |
20866 | (first_match_or_eos_index_<mode>): | |
20867 | Calculate index using natural order. | |
20868 | (define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>. | |
20869 | for BE and LE modes. | |
20870 | * config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB, | |
20871 | P9V_BUILTIN_VCLZLSBB_V16QI. | |
20872 | * config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode | |
20873 | specific. | |
20874 | ||
20875 | 2018-06-06 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
20876 | ||
20877 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust | |
20878 | indentation and line wrap for many prototypes. Add missing | |
20879 | @smallexample directives around block of prototypes for vec_xl and | |
20880 | vec_xst. | |
20881 | ||
20882 | 2018-06-05 Michael Meissner <meissner@linux.ibm.com> | |
20883 | ||
20884 | * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to | |
20885 | track if we pass or return IEEE 128-bit floating point. | |
20886 | (ieee128_mangling_gcc_8_1): New boolean to say whether to generate | |
20887 | C++ mangling that is compatible with GCC 8.1. | |
20888 | (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook. | |
20889 | (init_cumulative_args): Note if we pass or return IEEE 128-bit | |
20890 | floating point types. | |
20891 | (rs6000_function_arg_advance_1): Likewise. | |
20892 | (rs6000_mangle_type): Optionally generate mangled names that match | |
20893 | what GCC 8.1 generated for IEEE 128-bit floating point types. | |
20894 | (rs6000_globalize_decl_name): If we have an external function that | |
20895 | passes or returns IEEE 128-bit types, generate a weak reference | |
20896 | from the mangled name used in GCC 8.1 to the current mangled | |
20897 | name. | |
20898 | (rs6000_init_builtins): Make __ibm128 use the long double type if | |
20899 | long double is IBM extended double. Make __float128 use the long | |
20900 | double type if long double is IEEE 128-bit. | |
20901 | ||
20902 | PR target/85657 | |
20903 | * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper | |
20904 | macro for __ibm128 built-in functions. | |
20905 | (PACK_IF): Add __ibm128 pack/unpack functions. | |
20906 | (UNPACK_IF): Likewise. | |
20907 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not | |
20908 | enable long double built-in functions if long double is IEEE | |
20909 | 128-bit floating point. | |
20910 | (rs6000_invalid_builtin): Update long double built-in function | |
20911 | error message. | |
20912 | (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in | |
20913 | functions, adjust the built-in function to use the long double | |
20914 | built-in function if __ibm128 and long double are the same type. | |
20915 | * doc/extend.texi (PowerPC builtins): Update documention for | |
20916 | __builtin_{,un}pack_longdouble. Add documentation for | |
20917 | __builtin_{,un}pack_ibm128. | |
20918 | ||
20919 | 2018-06-06 Jim Wilson <jimw@sifive.com> | |
20920 | ||
20921 | * config/riscv/riscv.c (enum riscv_privilege_levels): New. | |
20922 | (struct machine_function): New field interrupt_mode. | |
20923 | (riscv_handle_type_attribute): New function. Add forward declaration. | |
20924 | (riscv_attribute_table) <interrupt>: Use riscv_handle_type_attribute. | |
20925 | (riscv_expand_epilogue): Check interrupt_mode field. | |
20926 | (riscv_set_current_function): Check interrupt attribute args and | |
20927 | set interrupt_mode field. | |
20928 | * config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New. | |
20929 | (riscv_sret, riscv_uret): New. | |
20930 | * doc/extend.texi (RISC-V Function Attributes) <interrupt>: Document | |
20931 | new arguments to interrupt attribute. | |
20932 | ||
20933 | 2018-06-06 Peter Bergner <bergner@vnet.ibm.com> | |
20934 | ||
20935 | PR target/63177 | |
20936 | * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9. | |
20937 | Don't handle -mcpu=power8 if -mpower9-vector is also used. | |
20938 | ||
20939 | 2018-06-06 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
20940 | ||
20941 | * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD, | |
20942 | VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses. | |
20943 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove | |
20944 | several redundant entries. | |
20945 | ||
20946 | 2018-06-06 David Malcolm <dmalcolm@redhat.com> | |
20947 | ||
20948 | * config/i386/i386-protos.h (ix86_expand_call): Strengthen return | |
20949 | type from "rtx" to "rtx_insn *". | |
20950 | * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise | |
20951 | for local "call_insn", removing cast. | |
20952 | (ix86_expand_call): Likewise, introducing a "call_insn" local. | |
20953 | ||
20954 | 2018-06-06 Eric Botcazou <ebotcazou@adacore.com> | |
20955 | ||
20956 | PR tree-optimization/86066 | |
20957 | * gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR | |
20958 | for BIT_INSERT_EXPR stores. | |
20959 | ||
20960 | 2018-06-06 Richard Biener <rguenther@suse.de> | |
20961 | ||
20962 | PR tree-optimization/86062 | |
20963 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary | |
20964 | component refs ontop | |
20965 | of to be offsetted base. | |
20966 | ||
20967 | 2018-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20968 | ||
20969 | * config/msp430/msp430.c (msp430_attr): Allow interrupt handlers | |
20970 | to be static and remove check on interrupt attribute name. | |
20971 | ||
20972 | 2018-06-05 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
20973 | ||
20974 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove | |
20975 | volatile qualifier from vec_lvsl and vec_lvsr argument prototypes. | |
20976 | ||
20977 | 2018-06-05 Steve Ellcey <sellcey@cavium.com> | |
20978 | ||
20979 | PR target/79924 | |
20980 | * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove | |
20981 | second argument. | |
20982 | * config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd): | |
20983 | Remove second argument, change how error is called. | |
20984 | (aarch64_layout_arg): Remove second argument from | |
20985 | aarch64_err_no_fpadvsimd call. | |
20986 | (aarch64_init_cumulative_args): Ditto. | |
20987 | (aarch64_gimplify_va_arg_expr): Ditto. | |
20988 | * config/aarch64/aarch64.md (mov<mode>): Ditto. | |
20989 | ||
20990 | 2018-06-05 Uros Bizjak <ubizjak@gmail.com> | |
20991 | ||
20992 | * config/i386/i386.md (simple_return_indirect_internal): New expander. | |
20993 | (*simple_return_indirect_internal<mode>): Rename from | |
20994 | simple_return_indirect_internal. Use W mode iterator. | |
20995 | (rstorssp): New expander. | |
20996 | (*rstorssp<mode>): Rename from rstorssp. Use P mode iterator. | |
20997 | (clrssbsy): New expander. | |
20998 | (*clrssbsy<mode>): Rename from clrssbsy. Use P mode iterator. | |
20999 | ||
21000 | 2018-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
21001 | ||
21002 | * config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to | |
21003 | __typeof__. | |
21004 | (cmse_check_pointed_object): Likewise. | |
21005 | ||
21006 | 2018-06-05 Martin Liska <mliska@suse.cz> | |
21007 | ||
21008 | PR gcov-profile/47618 | |
21009 | * doc/invoke.texi: Document how -fprofile-dir format | |
21010 | is extended. | |
21011 | ||
21012 | 2018-06-05 Richard Biener <rguenther@suse.de> | |
21013 | ||
21014 | * tree-cfgcleanup.c (cleanup_control_flow_pre): For edge | |
21015 | removal pretend DOM info isn't available so we do not update | |
21016 | it and only remove edges, not dominated blocks. Actually free | |
21017 | DOM info in case we removed something. Remove unreachable blocks. | |
21018 | (mfb_keep_latches): Work with either DOM info or marked backedges. | |
21019 | (cleanup_tree_cfg_noloop): Do not remove unreachable blocks | |
21020 | first. Mark backedges if DOM info isn't available. | |
21021 | (Re-)compute DOM info after cleanup_control_flow_pre. | |
21022 | ||
21023 | 2018-06-05 Richard Biener <rguenther@suse.de> | |
21024 | ||
21025 | * tree-cfg.c (struct locus_discrim_map): Store line, not location. | |
21026 | (locus_discrim_hasher::hash): Adjust. | |
21027 | (locus_discrim_hasher::equal): Likewise. | |
21028 | (next_discriminator_for_locus): Work on line directly. | |
21029 | (same_line_p): Pass in expanded locus1 as well. | |
21030 | (assign_discriminators): Avoid redundant location expansions. | |
21031 | ||
21032 | 2018-06-05 Richard Biener <rguenther@suse.de> | |
21033 | ||
21034 | PR tree-optimization/86046 | |
21035 | * tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P | |
21036 | if required after clearing TREE_ADDRESSABLE. | |
21037 | ||
21038 | 2018-06-05 Richard Biener <rguenther@suse.de> | |
21039 | ||
21040 | PR tree-optimization/86047 | |
21041 | * tree-ssa-loop.c (for_each_index): Glob handling of all | |
21042 | decls and constants and really handle all of them. | |
21043 | ||
21044 | 2018-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21045 | ||
21046 | PR target/81497 | |
21047 | * config/arm/arm-builtins.c (arm_type_qualifiers): Add | |
21048 | qualifier_void_pointer and qualifier_const_void_pointer. | |
21049 | (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above. | |
21050 | (arm_init_builtins): Handle the above. | |
21051 | * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc, | |
21052 | __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2, | |
21053 | __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for | |
21054 | void intrinsics. | |
21055 | ||
21056 | 2018-06-05 Martin Liska <mliska@suse.cz> | |
21057 | ||
21058 | * auto-profile.c (read_autofdo_file): Do not use | |
21059 | gcov_ctr_summary struct. | |
21060 | (afdo_callsite_hot_enough_for_early_inline): Likewise. | |
21061 | * coverage.c (struct counts_entry): Likewise. | |
21062 | (read_counts_file): Read just single summary entry. | |
21063 | (get_coverage_counts): Use gcov_summary struct. | |
21064 | * coverage.h (get_coverage_counts): Likewise. | |
21065 | * gcov-dump.c (dump_working_sets): Likewise. | |
21066 | (tag_summary): Dump just single summary. | |
21067 | * gcov-io.c (gcov_write_summary): Write just histogram | |
21068 | summary. | |
21069 | (gcov_read_summary): Read just single summary. | |
21070 | (compute_working_sets): Use gcov_summary struct. | |
21071 | * gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage | |
21072 | of GCOV_COUNTERS_SUMMABLE. | |
21073 | (GCOV_COUNTERS_SUMMABLE): Remove. | |
21074 | (GCOV_FIRST_VALUE_COUNTER): Replace with | |
21075 | GCOV_COUNTER_V_INTERVAL. | |
21076 | (struct gcov_ctr_summary): Remove. | |
21077 | (struct gcov_summary): Directly use fields of former | |
21078 | gcov_ctr_summary. | |
21079 | (compute_working_sets): Use gcov_summary struct. | |
21080 | * gcov.c (read_count_file): Do not use ctrs fields. | |
21081 | * lto-cgraph.c (merge_profile_summaries): Use gcov_summary | |
21082 | struct. | |
21083 | * lto-streamer.h (struct GTY): Make profile_info gcov_summary | |
21084 | struct. | |
21085 | * profile.c: Likewise. | |
21086 | * profile.h: Likewise. | |
21087 | ||
21088 | 2018-06-05 Martin Liska <mliska@suse.cz> | |
21089 | ||
21090 | PR gcov-profile/84846 | |
21091 | * gcov.c (output_lines): Print working directory only | |
21092 | in intermediate format. | |
21093 | ||
21094 | 2018-06-05 Andreas Krebbel <krebbel@linux.ibm.com> | |
21095 | ||
21096 | * config/s390/s390-builtin-types.def: Add void function type. | |
21097 | * config/s390/s390-builtins.def: Use the function type for the | |
21098 | tbeginc builtin. | |
21099 | ||
21100 | 2018-06-04 Jim Wilson <jimw@sifive.com> | |
21101 | ||
21102 | * config/riscv/riscv-protos.h (riscv_expand_epilogue): Change bool arg | |
21103 | to int. | |
21104 | * config/riscv/riscv.c (riscv_for_each_saved_reg): New args epilogue | |
21105 | and maybe_eh_return. Change regno to unsigned int. Use new args to | |
21106 | handle EH_RETURN_DATA_REGNO registers properly. | |
21107 | (riscv_expand_prologue): Pass new args to riscv_for_each_saved_reg. | |
21108 | (riscv_expand_epilogue): Update comment. Change argument name and | |
21109 | type. Update code to use new name and type. Pass new args to | |
21110 | riscv_for_each_saved_reg. Only use EH_RETURN_STACKADJ_RTX when | |
21111 | EXCEPTION_RETURN. | |
21112 | * config/riscv/riscv.md (NORMAL_RETURN): New. | |
21113 | (SIBCALL_RETURN, EXCEPTION_RETURN): New. | |
21114 | (epilogue, sibcall_epilogue): Update riscv_expand_epilogue arg. | |
21115 | (eh_return): Call gen_eh_return_internal and emit barrier. | |
21116 | (eh_return_internal): Call riscv_expand_epilogue. | |
21117 | ||
21118 | 2018-06-04 Eric Botcazou <ebotcazou@adacore.com> | |
21119 | ||
21120 | * gimple-ssa-store-merging.c (struct merged_store_group): Move up | |
21121 | bit_insertion field and declare can_be_merged_into method. | |
21122 | (merged_store_group::can_be_merged_into): New method. | |
21123 | (imm_store_chain_info::coalesce_immediate): Call it to decide whether | |
21124 | consecutive non-overlapping stores can be merged. Turn MEM_REF stores | |
21125 | into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store. | |
21126 | ||
21127 | 2018-06-04 Richard Biener <rguenther@suse.de> | |
21128 | ||
21129 | PR tree-optimization/85955 | |
21130 | * builtins.c (fold_builtin_sincos): Convert pointers to | |
21131 | destination to appropriate type before dereferencing. | |
21132 | ||
21133 | 2018-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
21134 | ||
21135 | * config/rs6000/rs6000.md (abs<mode>2 for FLOAT128): Handle IFmode. | |
21136 | ||
21137 | 2018-06-04 Richard Sandiford <richard.sandiford@linaro.org> | |
21138 | ||
21139 | * expr.c (expand_expr_real_1): Force the operand into memory if | |
21140 | its TYPE_MODE is BLKmode and if there is no integer mode for | |
21141 | the number of bits being extracted. | |
21142 | ||
21143 | 2018-06-04 Jakub Jelinek <jakub@redhat.com> | |
21144 | ||
21145 | PR target/85832 | |
21146 | PR target/86036 | |
21147 | * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): | |
21148 | Use vptestnm rather than vptestm in (=Yc,v,C) variant. | |
21149 | ||
21150 | 2018-06-04 Richard Biener <rguenther@suse.de> | |
21151 | ||
21152 | * tree-cfgcleanup.c (cleanup_tree_cfg_1): Fold into... | |
21153 | (cleanup_tree_cfg_noloop): ... single caller. Do | |
21154 | start_recording_case_labels later. | |
21155 | ||
21156 | 2018-06-04 Sebastian Peryt <sebastian.peryt@intel.com> | |
21157 | ||
21158 | * config/i386/cldemoteintrin.h: Change define from _X86INTRIN_H_INCLUDED | |
21159 | to _IMMINTRIN_H_INCLUDED. | |
21160 | * config/i386/pconfigintrin.h: Ditto. | |
21161 | * config/i386/waitpkgintrin.h: Ditto. | |
21162 | * config/i386/immintrin.h: Add includes for sgxintrin.h, | |
21163 | pconfigintrin.h, waitpkgintrin.h and cldemoteintrin.h. | |
21164 | * config/i386/x86intrin.h: Remove includes for mintrin.h, xmmintrin.h, | |
21165 | emmintrin.h, pmmintrin.h, tmmintrin.h, smmintrin.h, wmmintrin.h, | |
21166 | bmiintrin.h, bmi2intrin.h, lzcntintrin.h, sgxintrin.h, pconfigintrin.h, | |
21167 | waitpkgintrin.h and cldemoteintrin.h. | |
21168 | ||
21169 | 2018-06-04 Richard Biener <rguenther@suse.de> | |
21170 | ||
21171 | PR tree-optimization/86038 | |
21172 | * tracer.c (find_best_successor): Check probability for | |
21173 | being initialized, bail out if not. | |
21174 | ||
21175 | 2018-06-04 Richard Earnshaw <rearnsha@arm.com> | |
21176 | ||
21177 | PR target/86003 | |
21178 | * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list | |
21179 | of bits to ignore when comparing architectures. | |
21180 | ||
21181 | 2018-06-04 Jakub Jelinek <jakub@redhat.com> | |
21182 | ||
21183 | PR tree-optimization/69615 | |
21184 | * fold-const.c (merge_ranges): If range1 is - [x, x] and x is the | |
21185 | maximum or minimum of the type, try to merge it also as if | |
21186 | range1 is + [-, x - 1] or + [x + 1, -]. | |
21187 | ||
21188 | PR c++/86025 | |
21189 | * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE. | |
21190 | ||
21191 | 2018-06-03 Eric Botcazou <ebotcazou@adacore.com> | |
21192 | ||
21193 | PR tree-optimization/86034 | |
21194 | * gimple-ssa-store-merging.c (output_merged_store): Convert the RHS to | |
21195 | the unsigned bitfield type in a bit insertion sequence if it does not | |
21196 | have a larger precision than the bitfield size. | |
21197 | (process_store): Also bypass widening conversions for BIT_INSERT_EXPR. | |
21198 | ||
21199 | 2018-06-03 Kito Cheng <kito.cheng@gmail.com> | |
21200 | ||
21201 | * config/nds32/nds32-peephole2.md: Add new patterns for code size. | |
21202 | ||
21203 | 2018-06-03 Chung-Ju Wu <jasonwucj@gmail.com> | |
21204 | ||
21205 | * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J. | |
21206 | * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J. | |
21207 | * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking. | |
21208 | * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J). | |
21209 | ||
21210 | 2018-06-03 Chung-Ju Wu <jasonwucj@gmail.com> | |
21211 | ||
21212 | * common/config/nds32/nds32-common.c (nds32_option_optimization_table): | |
21213 | Disable -fdelete-null-pointer-checks for ELF toolchain. | |
21214 | ||
21215 | 2018-06-02 Chung-Ju Wu <jasonwucj@gmail.com> | |
21216 | Kito Cheng <kito.cheng@gmail.com> | |
21217 | ||
21218 | * config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt. | |
21219 | (nds32le-*-*, nds32be-*-*): Integrate checking process. | |
21220 | (nds32*-*-*): Add glibc and uclibc conditions. | |
21221 | * common/config/nds32/nds32-common.c (nds32_except_unwind_info): New. | |
21222 | (TARGET_EXCEPT_UNWIND_INFO): Define. | |
21223 | * config/nds32/elf.h: New file. | |
21224 | * config/nds32/linux.h: New file. | |
21225 | * config/nds32/nds32-elf.opt: New file. | |
21226 | * config/nds32/nds32-linux.opt: New file. | |
21227 | * config/nds32/nds32-fp-as-gp.c | |
21228 | (pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI. | |
21229 | * config/nds32/nds32.c (nds32_conditional_register_usage): Consider | |
21230 | TARGET_LINUX_ABI. | |
21231 | (nds32_asm_file_end): Ditto. | |
21232 | (nds32_print_operand): Ditto. | |
21233 | (nds32_insert_attributes): Ditto. | |
21234 | (nds32_init_libfuncs): New function. | |
21235 | (TARGET_HAVE_TLS): Define. | |
21236 | (TARGET_INIT_LIBFUNCS): Define. | |
21237 | * config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax | |
21238 | spec content. | |
21239 | (TARGET_ELF): Apply different mcmodel setting. | |
21240 | (LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has | |
21241 | been migrated into elf.h and linux.h files. | |
21242 | * config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI. | |
21243 | * config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI. | |
21244 | (mcmodel): The content has been migrated into nds32-elf.opt and | |
21245 | nds32-linux.opt files. | |
21246 | * config/nds32/t-elf: New file. | |
21247 | * config/nds32/t-linux: New file. | |
21248 | ||
21249 | 2018-06-02 Chung-Ju Wu <jasonwucj@gmail.com> | |
21250 | Shiva Chen <shiva0217@gmail.com> | |
21251 | ||
21252 | * config/nds32/constants.md (unspec_volatile_element): Add | |
21253 | UNSPEC_VOLATILE_OMIT_FP_BEGIN and UNSPEC_VOLATILE_OMIT_FP_END. | |
21254 | * config/nds32/nds32-fp-as-gp.c: New implementation of fp_as_gp | |
21255 | optimization. | |
21256 | * config/nds32/nds32-protos.h (nds32_naked_function_p): Declare. | |
21257 | (make_pass_nds32_fp_as_gp): Declare. | |
21258 | * config/nds32/nds32.c (nds32_register_passes): Add fp_as_gp as one | |
21259 | optmization pass. | |
21260 | (nds32_asm_function_end_prologue): Remove unused asm output. | |
21261 | (nds32_asm_function_begin_epilogue): Remove unused asm output. | |
21262 | (nds32_asm_file_start): Output necessary fp_as_gp information. | |
21263 | (nds32_option_override): Adjust register usage. | |
21264 | (nds32_expand_prologue): Consider fp_as_gp situation. | |
21265 | (nds32_expand_prologue_v3push): Consider fp_as_gp situation. | |
21266 | * config/nds32/nds32.md (prologue): Check fp_as_gp_p and naked_p. | |
21267 | (epilogue): Ditto. | |
21268 | (return): Ditto. | |
21269 | (simple_return): Ditto. | |
21270 | (omit_fp_begin): Output special directive for fp_as_gp. | |
21271 | (omit_fp_end): Output special directive for fp_as_gp. | |
21272 | * config/nds32/nds32.opt (mfp-as-gp, mno-fp-as-gp, mforce-fp-as-gp, | |
21273 | mforbid-fp-as-gp): New options. | |
21274 | ||
21275 | 2018-06-01 Mark Wielaard <mark@klomp.org> | |
21276 | ||
21277 | * dwarf2out.c (dwarf2out_finish): Remove generation of | |
21278 | DW_AT_loclists_base. | |
21279 | ||
21280 | 2018-06-01 Eric Botcazou <ebotcazou@adacore.com> | |
21281 | ||
21282 | * gimple-ssa-store-merging.c: Include gimple-fold.h. | |
21283 | (struct store_immediate_info): Document BIT_INSERT_EXPR stores. | |
21284 | (struct merged_store_group): Add bit_insertion field. | |
21285 | (dump_char_array): Use standard hexadecimal format. | |
21286 | (merged_store_group::merged_store_group): Set bit_insertion to false. | |
21287 | (merged_store_group::apply_stores): Use optimal buffer size. Deal | |
21288 | with BIT_INSERT_EXPR stores. Move up code updating the mask and | |
21289 | also print the mask in the dump file. | |
21290 | (pass_store_merging::gate): Minor tweak. | |
21291 | (imm_store_chain_info::coalesce_immediate): Fix wrong association | |
21292 | of stores with groups in dump. Allow coalescing of BIT_INSERT_EXPR | |
21293 | stores with INTEGER_CST stores. | |
21294 | (count_multiple_uses) <BIT_INSERT_EXPR>: New case. | |
21295 | (imm_store_chain_info::output_merged_store): Add try_bitpos variable | |
21296 | and use it throughout. Generate bit insertion sequences if need be. | |
21297 | (pass_store_merging::process_store): Remove redundant condition. | |
21298 | Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR. | |
21299 | ||
21300 | 2018-06-01 Segher Boessenkool <segher@kernel.crashing.org> | |
21301 | ||
21302 | * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of | |
21303 | the 128-bit floating point types. Fix function comment. | |
21304 | ||
21305 | 2018-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
21306 | ||
21307 | * config/aarch64/aarch64-simd.md | |
21308 | (aarch64_simd_vec_unpack<su>_lo_<mode>): Use UXTL and SXTL assembler | |
21309 | mnemonics. | |
21310 | (aarch64_simd_vec_unpack<su>_hi_<mode>): Use UXTL2 and SXTL2 assembler | |
21311 | mnemonics. | |
21312 | ||
21313 | 2018-06-01 Richard Sandiford <richard.sandiford@linaro.org> | |
21314 | ||
21315 | PR tree-optimization/85989 | |
21316 | * gimple-ssa-backprop.c (backprop::m_visited_phis): New member | |
21317 | variable. | |
21318 | (backprop::intersect_uses): Check it when deciding whether this | |
21319 | is a backedge reference. | |
21320 | (backprop::process_block): Add each phi to m_visited_phis | |
21321 | after visiting it, then clear it at the end. | |
21322 | ||
21323 | 2018-06-01 Richard Biener <rguenther@suse.de> | |
21324 | ||
21325 | * tree-vectorizer.h (vect_dr_stmt): New function. | |
21326 | (vect_get_load_cost): Adjust. | |
21327 | (vect_get_store_cost): Likewise. | |
21328 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): | |
21329 | Use vect_dr_stmt instead of DR_SMTT. | |
21330 | (vect_record_base_alignments): Likewise. | |
21331 | (vect_calculate_target_alignment): Likewise. | |
21332 | (vect_compute_data_ref_alignment): Likewise and make static. | |
21333 | (vect_update_misalignment_for_peel): Likewise. | |
21334 | (vect_verify_datarefs_alignment): Likewise. | |
21335 | (vector_alignment_reachable_p): Likewise. | |
21336 | (vect_get_data_access_cost): Likewise. Pass down | |
21337 | vinfo to vect_get_load_cost/vect_get_store_cost instead of DR. | |
21338 | (vect_get_peeling_costs_all_drs): Likewise. | |
21339 | (vect_peeling_hash_get_lowest_cost): Likewise. | |
21340 | (vect_enhance_data_refs_alignment): Likewise. | |
21341 | (vect_find_same_alignment_drs): Likewise. | |
21342 | (vect_analyze_data_refs_alignment): Likewise. | |
21343 | (vect_analyze_group_access_1): Likewise. | |
21344 | (vect_analyze_group_access): Likewise. | |
21345 | (vect_analyze_data_ref_access): Likewise. | |
21346 | (vect_analyze_data_ref_accesses): Likewise. | |
21347 | (vect_vfa_segment_size): Likewise. | |
21348 | (vect_small_gap_p): Likewise. | |
21349 | (vectorizable_with_step_bound_p): Likewise. | |
21350 | (vect_prune_runtime_alias_test_list): Likewise. | |
21351 | (vect_analyze_data_refs): Likewise. | |
21352 | (vect_supportable_dr_alignment): Likewise. | |
21353 | * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. | |
21354 | (vect_gen_prolog_loop_niters): Likewise. | |
21355 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
21356 | * tree-vect-patterns.c (vect_recog_bool_pattern): Do not | |
21357 | modify DR_STMT. | |
21358 | (vect_recog_mask_conversion_pattern): Likewise. | |
21359 | (vect_try_gather_scatter_pattern): Likewise. | |
21360 | * tree-vect-stmts.c (vect_model_store_cost): Pass stmt_info | |
21361 | to vect_get_store_cost. | |
21362 | (vect_get_store_cost): Get stmt_info instead of DR. | |
21363 | (vect_model_load_cost): Pass stmt_info to vect_get_load_cost. | |
21364 | (vect_get_load_cost): Get stmt_info instead of DR. | |
21365 | ||
21366 | 2018-06-01 Richard Biener <rguenther@suse.de> | |
21367 | ||
21368 | PR middle-end/86017 | |
21369 | * gimple-fold.c (var_decl_component_p): Also allow offsetted | |
21370 | vars wrapped in MEM_REFs. | |
21371 | ||
21372 | 2018-06-01 Richard Sandiford <richard.sandiford@linaro.org> | |
21373 | ||
21374 | * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): | |
21375 | Fix subreg tests so that we only return a choice between | |
21376 | GENERAL_REGS and FP_REGS if the original classes included both. | |
21377 | ||
21378 | 2018-06-01 Richard Biener <rguenther@suse.de> | |
21379 | ||
21380 | PR ipa/85960 | |
21381 | * tree-ssa-structalias.c (get_function_part_constraint): | |
21382 | Handle NULL fi->decl. | |
21383 | (find_func_aliases_for_call): Properly handle indirect | |
21384 | fi from direct call. | |
21385 | (find_func_clobbers): Likewise. | |
21386 | (ipa_pta_execute): Likewise. | |
21387 | (create_variable_info_for): For functions that are ifunc_resolver | |
21388 | resolve to a varinfo that contains the result of the resolver call. | |
21389 | (associate_varinfo_to_alias): Do not treat ifunc resolvers as | |
21390 | aliases. | |
21391 | ||
21392 | 2018-05-31 Michael Collison <michael.collison@arm.com> | |
21393 | ||
21394 | * config/aarch64/aarch64.md: | |
21395 | (*fix_to_zero_extenddfdi2): New pattern. | |
21396 | * gcc.target/aarch64/fix_extend1.c: New testcase. | |
21397 | ||
21398 | 2018-05-31 Qing Zhao <qing.zhao@oracle.com> | |
21399 | ||
21400 | PR middle-end/78809 | |
21401 | PR middle-end/83026 | |
21402 | * builtins.c (expand_builtin): Add the handling of BUILT_IN_STRCMP_EQ | |
21403 | and BUILT_IN_STRNCMP_EQ. | |
21404 | * builtins.def: Add new builtins BUILT_IN_STRCMP_EQ and | |
21405 | BUILT_IN_STRNCMP_EQ. | |
21406 | * gimple-fold.c (gimple_fold_builtin_string_compare): Add the | |
21407 | handling of BUILTIN_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. | |
21408 | (gimple_fold_builtin): Likewise. | |
21409 | * tree-ssa-strlen.c (compute_string_length): New function. | |
21410 | (determine_min_obsize): New function. | |
21411 | (handle_builtin_string_cmp): New function to handle calls to | |
21412 | string compare functions. | |
21413 | (strlen_optimize_stmt): Add handling to builtin string compare | |
21414 | calls. | |
21415 | * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): | |
21416 | Add the handling of BUILT_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. | |
21417 | * tree.c (build_common_builtin_nodes): Add new defines of | |
21418 | BUILT_IN_STRNCMP_EQ and BUILT_IN_STRCMP_EQ. | |
21419 | ||
21420 | 2018-05-31 Jakub Jelinek <jakub@redhat.com> | |
21421 | ||
21422 | PR target/85984 | |
21423 | * bb-reorder.c (pass_partition_blocks::gate): Return false for | |
21424 | functions with naked attribute. | |
21425 | ||
21426 | 2018-05-31 Uros Bizjak <ubizjak@gmail.com> | |
21427 | ||
21428 | * config/i386/sse.md (avx_vec_concat<mode>): | |
21429 | Substitute concat_tg_mode mode attribute with xtg_mode. | |
21430 | (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto. | |
21431 | (concat_tg_mode): Remove mode attribute. | |
21432 | ||
21433 | 2018-05-31 Martin Sebor <msebor@redhat.com> | |
21434 | ||
21435 | PR c/82063 | |
21436 | * calls.c (alloc_max_size): Correct a logic error/typo. | |
21437 | Treat excessive arguments as infinite. Warn for invalid arguments. | |
21438 | * doc/invoke.texi (-Walloc-size-larger-than): Update. | |
21439 | ||
21440 | 2018-05-31 H.J. Lu <hongjiu.lu@intel.com> | |
21441 | ||
21442 | PR target/85829 | |
21443 | * config/i386/x86-tune.def: Re-enable partial_reg_dependency | |
21444 | and movx for Haswell. | |
21445 | ||
21446 | 2018-05-31 Chung-Lin Tang <cltang@codesourcery.com> | |
21447 | Cesar Philippidis <cesar@codesourcery.com> | |
21448 | ||
21449 | PR middle-end/85879 | |
21450 | * gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true' | |
21451 | when emitting error on private/firstprivate reductions. | |
21452 | * omp-low.c (lower_omp_target): Avoid reference-type processing | |
21453 | on pointers for firstprivate clause. | |
21454 | ||
21455 | 2018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org> | |
21456 | ||
21457 | * config/aarch64/aarch64-simd-builtins.def (ld1x3): New. | |
21458 | (st1x2): Likewise. | |
21459 | (st1x3): Likewise. | |
21460 | * config/aarch64/aarch64-simd.md | |
21461 | (aarch64_ld1x3<VALLDIF:mode>): New pattern. | |
21462 | (aarch64_ld1_x3_<mode>): Likewise | |
21463 | (aarch64_st1x2<VALLDIF:mode>): Likewise | |
21464 | (aarch64_st1_x2_<mode>): Likewise | |
21465 | (aarch64_st1x3<VALLDIF:mode>): Likewise | |
21466 | (aarch64_st1_x3_<mode>): Likewise | |
21467 | * config/aarch64/arm_neon.h (vld1_u8_x3): New function. | |
21468 | (vld1_s8_x3): Likewise. | |
21469 | (vld1_u16_x3): Likewise. | |
21470 | (vld1_s16_x3): Likewise. | |
21471 | (vld1_u32_x3): Likewise. | |
21472 | (vld1_s32_x3): Likewise. | |
21473 | (vld1_u64_x3): Likewise. | |
21474 | (vld1_s64_x3): Likewise. | |
21475 | (vld1_f16_x3): Likewise. | |
21476 | (vld1_f32_x3): Likewise. | |
21477 | (vld1_f64_x3): Likewise. | |
21478 | (vld1_p8_x3): Likewise. | |
21479 | (vld1_p16_x3): Likewise. | |
21480 | (vld1_p64_x3): Likewise. | |
21481 | (vld1q_u8_x3): Likewise. | |
21482 | (vld1q_s8_x3): Likewise. | |
21483 | (vld1q_u16_x3): Likewise. | |
21484 | (vld1q_s16_x3): Likewise. | |
21485 | (vld1q_u32_x3): Likewise. | |
21486 | (vld1q_s32_x3): Likewise. | |
21487 | (vld1q_u64_x3): Likewise. | |
21488 | (vld1q_s64_x3): Likewise. | |
21489 | (vld1q_f16_x3): Likewise. | |
21490 | (vld1q_f32_x3): Likewise. | |
21491 | (vld1q_f64_x3): Likewise. | |
21492 | (vld1q_p8_x3): Likewise. | |
21493 | (vld1q_p16_x3): Likewise. | |
21494 | (vld1q_p64_x3): Likewise. | |
21495 | (vst1_s64_x2): Likewise. | |
21496 | (vst1_u64_x2): Likewise. | |
21497 | (vst1_f64_x2): Likewise. | |
21498 | (vst1_s8_x2): Likewise. | |
21499 | (vst1_p8_x2): Likewise. | |
21500 | (vst1_s16_x2): Likewise. | |
21501 | (vst1_p16_x2): Likewise. | |
21502 | (vst1_s32_x2): Likewise. | |
21503 | (vst1_u8_x2): Likewise. | |
21504 | (vst1_u16_x2): Likewise. | |
21505 | (vst1_u32_x2): Likewise. | |
21506 | (vst1_f16_x2): Likewise. | |
21507 | (vst1_f32_x2): Likewise. | |
21508 | (vst1_p64_x2): Likewise. | |
21509 | (vst1q_s8_x2): Likewise. | |
21510 | (vst1q_p8_x2): Likewise. | |
21511 | (vst1q_s16_x2): Likewise. | |
21512 | (vst1q_p16_x2): Likewise. | |
21513 | (vst1q_s32_x2): Likewise. | |
21514 | (vst1q_s64_x2): Likewise. | |
21515 | (vst1q_u8_x2): Likewise. | |
21516 | (vst1q_u16_x2): Likewise. | |
21517 | (vst1q_u32_x2): Likewise. | |
21518 | (vst1q_u64_x2): Likewise. | |
21519 | (vst1q_f16_x2): Likewise. | |
21520 | (vst1q_f32_x2): Likewise. | |
21521 | (vst1q_f64_x2): Likewise. | |
21522 | (vst1q_p64_x2): Likewise. | |
21523 | (vst1_s64_x3): Likewise. | |
21524 | (vst1_u64_x3): Likewise. | |
21525 | (vst1_f64_x3): Likewise. | |
21526 | (vst1_s8_x3): Likewise. | |
21527 | (vst1_p8_x3): Likewise. | |
21528 | (vst1_s16_x3): Likewise. | |
21529 | (vst1_p16_x3): Likewise. | |
21530 | (vst1_s32_x3): Likewise. | |
21531 | (vst1_u8_x3): Likewise. | |
21532 | (vst1_u16_x3): Likewise. | |
21533 | (vst1_u32_x3): Likewise. | |
21534 | (vst1_f16_x3): Likewise. | |
21535 | (vst1_f32_x3): Likewise. | |
21536 | (vst1_p64_x3): Likewise. | |
21537 | (vst1q_s8_x3): Likewise. | |
21538 | (vst1q_p8_x3): Likewise. | |
21539 | (vst1q_s16_x3): Likewise. | |
21540 | (vst1q_p16_x3): Likewise. | |
21541 | (vst1q_s32_x3): Likewise. | |
21542 | (vst1q_s64_x3): Likewise. | |
21543 | (vst1q_u8_x3): Likewise. | |
21544 | (vst1q_u16_x3): Likewise. | |
21545 | (vst1q_u32_x3): Likewise. | |
21546 | (vst1q_u64_x3): Likewise. | |
21547 | (vst1q_f16_x3): Likewise. | |
21548 | (vst1q_f32_x3): Likewise. | |
21549 | (vst1q_f64_x3): Likewise. | |
21550 | (vst1q_p64_x3): Likewise. | |
21551 | ||
21552 | 2018-05-30 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
21553 | ||
21554 | * config/msp430/msp430.c (msp430_output_labelref): Prepend | |
21555 | user_label_prefix to name. | |
21556 | ||
21557 | * tree-core.h: Update comment about the format of NAME string | |
21558 | passed to handler in attribute_spec. | |
21559 | ||
21560 | * config/msp430/msp430.md: Remove erroneous subreg expression from | |
21561 | zero_extendqisi2 insn pattern. Remove msp430x ISA restriction on | |
21562 | zero_extend{q,h}isi2. | |
21563 | ||
21564 | 2018-05-30 Borislav Petkov <bp@suse.de> | |
21565 | ||
21566 | * doc/extend.texi: Document some architecture specific | |
21567 | constraints and sort entries. | |
21568 | ||
21569 | 2018-05-30 Martin Sebor <msebor@redhat.com> | |
21570 | ||
21571 | PR middle-end/85369 | |
21572 | * builtins.c (expand_builtin_stpcpy_1): New function. | |
21573 | (expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg | |
21574 | only if the former succeeds. | |
21575 | ||
21576 | 2018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org> | |
21577 | ||
21578 | * config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4 | |
21579 | in saphira. | |
21580 | ||
21581 | 2018-05-30 Jan Hubicka <hubicka@ucw.cz> | |
21582 | ||
21583 | * doc/invoke.texi (-flinker-output): Document | |
21584 | ||
21585 | 2018-05-30 Jan Hubicka <hubicka@ucw.cz> | |
21586 | ||
21587 | * passes.c (ipa_write_summaries): Only modify statements if body | |
21588 | is in memory. | |
21589 | * cgraphunit.c (ipa_passes): Also produce intermeidate code when | |
21590 | incrementally linking. | |
21591 | (ipa_passes): Likewise. | |
21592 | * lto-cgraph.c (lto_output_node): When incrementally linking do not | |
21593 | pass down resolution info. | |
21594 | * common.opt (flag_incremental_link): Update info. | |
21595 | * gcc.c (plugin specs): Turn flinker-output=* to | |
21596 | -plugin-opt=-linker-output-known | |
21597 | * toplev.c (compile_file): Also cut compilation when doing incremental | |
21598 | link. | |
21599 | * flag-types. (enum lto_partition_model): Add | |
21600 | LTO_LINKER_OUTPUT_NOLTOREL. | |
21601 | (invoke.texi): Add -flinker-output docs. | |
21602 | * ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental | |
21603 | link same way as WPA; do not stream in dead initializers. | |
21604 | ||
21605 | * dwarf2out.c (dwarf2out_die_ref_for_decl, | |
21606 | darf2out_register_external_decl): Support incremental link. | |
21607 | ||
21608 | 2018-05-30 Jan Hubicka <hubicka@ucw.cz> | |
21609 | ||
21610 | * lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_. | |
21611 | ||
21612 | 2018-05-30 Jan Hubicka <hubicka@ucw.cz> | |
21613 | ||
21614 | * lto-wrapper.c (debug_objcopy): Add rename parameter; pass | |
21615 | it down to simple_object_copy_lto_debug_sections. | |
21616 | (run_gcc): Determine incremental LTO link time and configure | |
21617 | lto1 into non-wpa mode, disable renaming of debug sections. | |
21618 | ||
21619 | 2018-05-30 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
21620 | ||
21621 | * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove | |
21622 | descriptions of various incorrectly documented functions. | |
21623 | ||
21624 | 2018-05-30 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
21625 | ||
21626 | Revert: | |
21627 | * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make | |
21628 | address check not strict. | |
21629 | ||
21630 | 2018-05-30 Richard Biener <rguenther@suse.de> | |
21631 | ||
21632 | PR tree-optimization/85964 | |
21633 | * tracer.c (better_p): Drop initialized count check, we only | |
21634 | call the function with initialized counts now. | |
21635 | (find_best_successor): Do find a best edge if one | |
21636 | has uninitialized count. | |
21637 | (find_best_predecessor): Likewise. Do BB frequency check only | |
21638 | if count is initialized. | |
21639 | ||
21640 | 2017-05-30 Jackson Woodruff <jackson.woodruff@arm.com> | |
21641 | ||
21642 | * config/aarch64/aarch64.c (aarch64_host_wide_int_compare): New. | |
21643 | (aarch64_ldrstr_offset_compare): New. | |
21644 | (aarch64_operands_adjust_ok_for_ldpstp): Update to consider all | |
21645 | load/store orderings. | |
21646 | (aarch64_gen_adjusted_ldpstp): Likewise. | |
21647 | ||
21648 | 2018-05-30 Wilco Dijkstra <wdijkstr@arm.com> | |
21649 | ||
21650 | * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): | |
21651 | Check for subset of GENERAL_REGS and FP_REGS. | |
21652 | * config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of | |
21653 | r=w alternative. | |
21654 | ||
21655 | 2018-05-30 Richard Sandiford <richard.sandiford@linaro.org> | |
21656 | ||
21657 | * alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p | |
21658 | and wi::to_poly_offset. Add the current offset and then check | |
21659 | whether the sum fits, rather than using an unchecked addition of | |
21660 | a checked term. Check for a shwi rather than a uhwi. | |
21661 | * expr.c (get_bit_range): Use tree_to_poly_uint64. | |
21662 | (store_constructor): Use poly_int_tree_p. | |
21663 | (expand_expr_real_1): Likewise. | |
21664 | * function.c (assign_temp): Likewise. | |
21665 | * fold-const.c (const_binop): Use poly_int_tree_p and | |
21666 | wi::to_poly_offset. | |
21667 | (fold_indirect_ref_1): Likewise. Use multiple_p to attempt an exact | |
21668 | division. | |
21669 | * ipa-icf-gimple.c (func_checker::compare_operand): Use | |
21670 | to_poly_offset for MEM offsets. | |
21671 | * ipa-icf.c (sem_variable::equals): Likewise. | |
21672 | * stor-layout.c (compute_record_mode): Use poly_int_tree_p. | |
21673 | * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use | |
21674 | wi::to_poly_offset for BIT_FIELD_REF offsets. | |
21675 | (vn_reference_maybe_forwprop_address): Use poly_int_tree_p and | |
21676 | wi::to_poly_offset. | |
21677 | * var-tracking.c (emit_note_insn_var_location): Use | |
21678 | tree_to_poly_uint64. | |
21679 | ||
21680 | 2018-05-29 Jim Wilson <jimw@sifive.com> | |
21681 | ||
21682 | * config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo. | |
21683 | ||
21684 | 2018-05-29 Uros Bizjak <ubizjak@gmail.com> | |
21685 | ||
21686 | PR target/85950 | |
21687 | * config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2): | |
21688 | Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} | |
21689 | sequence. | |
21690 | (sse4_1_round<mode>2): Use nonimmediate_operand | |
21691 | for operand 1 predicate. | |
21692 | ||
21693 | 2018-05-29 Martin Sebor <msebor@redhat.com> | |
21694 | Richard Biener <rguenther@suse.de> | |
21695 | ||
21696 | PR testsuite/85888 | |
21697 | * calls.c (get_size_range): Call determine_value_range instead | |
21698 | of get_value_range.. | |
21699 | * tree-vrp.h (determine_value_range): Declared new function. | |
21700 | * tree-vrp.c (determine_value_range_1, determine_value_range): New. | |
21701 | ||
21702 | 2018-05-29 Richard Biener <rguenther@suse.de> | |
21703 | ||
21704 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make | |
21705 | sure to use non-pattern stmts for get_earlier_stmt arguments. | |
21706 | * tree-vectorizer.h (get_earlier_stmt): Assert we do not get | |
21707 | called on pattern stmts. | |
21708 | (get_later_stmt): Likewise. | |
21709 | ||
21710 | 2018-05-29 Martin Liska <mliska@suse.cz> | |
21711 | ||
21712 | PR gcov-profile/85759 | |
21713 | * doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR | |
21714 | env variables. | |
21715 | ||
21716 | 2018-05-29 Jakub Jelinek <jakub@redhat.com> | |
21717 | ||
21718 | * tree-cfg.c (verify_gimple_assign_unary): Add checking for | |
21719 | VEC_UNPACK_*_EXPR. | |
21720 | (verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for | |
21721 | VEC_PACK_*_EXPR. | |
21722 | ||
21723 | PR target/85918 | |
21724 | * tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, | |
21725 | VEC_PACK_FLOAT_EXPR): New tree codes. | |
21726 | * tree-pretty-print.c (op_code_prio): Handle | |
21727 | VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR. | |
21728 | (dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, | |
21729 | VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. | |
21730 | * tree-inline.c (estimate_operator_cost): Likewise. | |
21731 | * gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR. | |
21732 | * fold-const.c (const_binop): Likewise. | |
21733 | (const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and | |
21734 | VEC_UNPACK_FIX_TRUNC_LO_EXPR. | |
21735 | * tree-cfg.c (verify_gimple_assign_unary): Likewise. | |
21736 | (verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR. | |
21737 | * cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, | |
21738 | VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. | |
21739 | * expr.c (expand_expr_real_2): Likewise. | |
21740 | * optabs.def (vec_packs_float_optab, vec_packu_float_optab, | |
21741 | vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab, | |
21742 | vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New | |
21743 | optabs. | |
21744 | * optabs.c (expand_widen_pattern_expr): For | |
21745 | VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use | |
21746 | sign from result type rather than operand's type. | |
21747 | (expand_binop_directly): For vec_packu_float_optab and | |
21748 | vec_packs_float_optab allow result type to be different from operand's | |
21749 | type. | |
21750 | * optabs-tree.c (optab_for_tree_code): Handle | |
21751 | VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and | |
21752 | VEC_PACK_FLOAT_EXPR. Formatting fixes. | |
21753 | * tree-vect-generic.c (expand_vector_operations_1): Handle | |
21754 | VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and | |
21755 | VEC_PACK_FLOAT_EXPR. | |
21756 | * tree-vect-stmts.c (supportable_widening_operation): Handle | |
21757 | FIX_TRUNC_EXPR. | |
21758 | (supportable_narrowing_operation): Handle FLOAT_EXPR. | |
21759 | * config/i386/i386.md (fixprefix, floatprefix): New code attributes. | |
21760 | * config/i386/sse.md (*float<floatunssuffix>v2div2sf2): Rename to ... | |
21761 | (float<floatunssuffix>v2div2sf2): ... this. Formatting fix. | |
21762 | (vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New | |
21763 | mode attributes. | |
21764 | (vec_pack<floatprefix>_float_<mode>): New expander. | |
21765 | (vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode | |
21766 | attributes. | |
21767 | (vec_unpack_<fixprefix>fix_trunc_lo_<mode>, | |
21768 | vec_unpack_<fixprefix>fix_trunc_hi_<mode>): New expanders. | |
21769 | * doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m}, | |
21770 | vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m}, | |
21771 | vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}): | |
21772 | Document. | |
21773 | * doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR, | |
21774 | VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description. | |
21775 | (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, | |
21776 | VEC_PACK_FLOAT_EXPR): Document. | |
21777 | ||
21778 | 2018-05-29 Richard Biener <rguenther@suse.de> | |
21779 | ||
21780 | * tree-vectorizer.h (struct vec_info): Add stmt_vec_infos | |
21781 | member. | |
21782 | (stmt_vec_info_vec): Make pointer. | |
21783 | (init_stmt_vec_info_vec): Remove. | |
21784 | (free_stmt_vec_info_vec): Likewise. | |
21785 | (set_stmt_vec_info_vec): New function. | |
21786 | (free_stmt_vec_infos): Likewise. | |
21787 | (vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection. | |
21788 | (set_vinfo_for_stmt): Likewise. | |
21789 | (get_earlier_stmt): Likewise. | |
21790 | (get_later_stmt): Likewise. | |
21791 | * tree-vectorizer.c (stmt_vec_info_vec): Make pointer. | |
21792 | (vec_info::vec_info): Allocate stmt_vec_infos and set the global. | |
21793 | (vec_info::~vec_info): Free stmt_vec_infos. | |
21794 | (vectorize_loops): Set the global stmt_vec_info_vec to NULL. | |
21795 | Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls. | |
21796 | (pass_slp_vectorize::execute): Likewise. | |
21797 | * tree-vect-stmts.c (init_stmt_vec_info_vec): Remove. | |
21798 | (free_stmt_vec_info_vec): Likewise. | |
21799 | (set_stmt_vec_info_vec): New function. | |
21800 | (free_stmt_vec_infos): Likewise. | |
21801 | * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set | |
21802 | the global stmt_vec_info_vec. | |
21803 | * tree-parloops.c (gather_scalar_reductions): Use | |
21804 | set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local | |
21805 | vector. | |
21806 | ||
21807 | 2018-05-29 Richard Biener <rguenther@suse.de> | |
21808 | ||
21809 | * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE. | |
21810 | ||
21811 | 2018-05-29 Martin Liska <mliska@suse.cz> | |
21812 | David Malcolm <dmalcolm@redhat.com> | |
21813 | ||
21814 | * vec.c (test_reverse): New. | |
21815 | (vec_c_tests): Add new test. | |
21816 | * vec.h (vl_ptr>::reverse): New function. | |
21817 | ||
21818 | 2018-05-29 Gerald Pfeifer <gerald@pfeifer.com> | |
21819 | ||
21820 | * config.gcc: Identify FreeBSD 3.x and 4.x as unsupported. | |
21821 | ||
21822 | * config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5 | |
21823 | and later. | |
21824 | ||
21825 | 2018-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
21826 | ||
21827 | * tree-dump.c (dump_node): Use splay_tree_delete_pointers. | |
21828 | ||
21829 | 2018-05-28 Richard Biener <rguenther@suse.de> | |
21830 | ||
21831 | PR tree-optimization/85933 | |
21832 | * tree-vect-data-refs.c (vect_record_base_alignments): Only | |
21833 | look at stmts marked as vectorizable. | |
21834 | ||
21835 | 2018-05-28 Richard Biener <rguenther@suse.de> | |
21836 | ||
21837 | PR tree-optimization/85934 | |
21838 | * tree-vect-generic.c (expand_vector_operations_1): Hoist | |
21839 | vector boolean check before scalar optimization. | |
21840 | ||
21841 | 2018-05-28 Jakub Jelinek <jakub@redhat.com> | |
21842 | ||
21843 | * doc/invoke.texi (ARM Options): Use @item instead of @itemx | |
21844 | for armv5te. | |
21845 | ||
21846 | 2018-05-28 Mark Wielaard <mark@klomp.org> | |
21847 | ||
21848 | * dwarf2asm.c (dw2_asm_output_delta_uleb128): Add brackets around lab2 | |
21849 | if it is an expression containing a minus sign. | |
21850 | ||
21851 | 2018-05-27 John David Anglin <danglin@gcc.gnu.org> | |
21852 | ||
21853 | * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. | |
21854 | ||
21855 | 2018-05-27 Paul Koning <ni1d@arrl.net> | |
21856 | ||
21857 | * config/pdp11/pdp11.md (truncsihi2): Remove. | |
21858 | ||
21859 | 2018-05-27 Monk Chiang <sh.chiang04@gmail.com> | |
21860 | Chung-Ju Wu <jasonwucj@gmail.com> | |
21861 | ||
21862 | * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns | |
21863 | implementation. | |
21864 | (unaligned_store_dw): Ditto. | |
21865 | * config/nds32/nds32-memory-manipulation.c | |
21866 | (nds32_expand_movmemsi_loop_known_size): Refactoring implementation. | |
21867 | (nds32_gen_dup_4_byte_to_word_value): Rename to ... | |
21868 | (nds32_gen_dup_4_byte_to_word_value_aux): ... this. | |
21869 | (emit_setmem_word_loop): Rename to ... | |
21870 | (emit_setmem_doubleword_loop): ... this. | |
21871 | (nds32_gen_dup_4_byte_to_word_value): New function. | |
21872 | (nds32_gen_dup_8_byte_to_double_word_value): New function. | |
21873 | (nds32_expand_setmem_loop): Refine implementation. | |
21874 | (nds32_expand_setmem_loop_v3m): Ditto. | |
21875 | * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New | |
21876 | pattern. | |
21877 | ||
21878 | 2018-05-27 Chung-Ju Wu <jasonwucj@gmail.com> | |
21879 | ||
21880 | * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns. | |
21881 | ||
21882 | 2018-05-27 Chung-Ju Wu <jasonwucj@gmail.com> | |
21883 | ||
21884 | * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue". | |
21885 | (nds32_init_machine_status): Initialize machine->attr_naked_p and | |
21886 | machine->attr_no_prologue_p. | |
21887 | (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes. | |
21888 | (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes. | |
21889 | (nds32_expand_epilogue): Consider attr_naked_p. | |
21890 | (nds32_expand_epilogue_v3pop): Likewise. | |
21891 | (nds32_can_use_return_insn): Likewise. | |
21892 | * config/nds32/nds32.h (machine_function): Add attr_naked_p and | |
21893 | attr_no_prologue_p fields. | |
21894 | * config/nds32/nds32.opt (mret-in-naked-func): New option. | |
21895 | ||
21896 | 2018-05-27 Jakub Jelinek <jakub@redhat.com> | |
21897 | ||
21898 | PR target/85918 | |
21899 | * config/i386/i386.md (fixunssuffix, floatunssuffix): New code | |
21900 | attributes. | |
21901 | * config/i386/sse.md | |
21902 | (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>): | |
21903 | Rename to ... | |
21904 | (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>): | |
21905 | ... this. | |
21906 | (<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>): | |
21907 | Rename to ... | |
21908 | (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>): | |
21909 | ... this. | |
21910 | (*<floatsuffix>floatv2div2sf2): Rename to ... | |
21911 | (*float<floatunssuffix>v2div2sf2): ... this. | |
21912 | (<floatsuffix>floatv2div2sf2_mask): Rename to ... | |
21913 | (float<floatunssuffix>v2div2sf2_mask): ... this. | |
21914 | (*<floatsuffix>floatv2div2sf2_mask_1): Rename to ... | |
21915 | (*float<floatunssuffix>v2div2sf2_mask_1): ... this. | |
21916 | (<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename | |
21917 | to ... | |
21918 | (fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>): | |
21919 | ... this. | |
21920 | (<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): | |
21921 | Rename to ... | |
21922 | (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): | |
21923 | ... this. | |
21924 | (<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): | |
21925 | Rename to ... | |
21926 | (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): | |
21927 | ... this. | |
21928 | (<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ... | |
21929 | (fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this. | |
21930 | (vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of | |
21931 | gen_ufix_truncv8dfv8si2. | |
21932 | * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask, | |
21933 | __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask, | |
21934 | __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask, | |
21935 | __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask, | |
21936 | __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask, | |
21937 | __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask, | |
21938 | __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask): | |
21939 | Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names. | |
21940 | ||
21941 | 2018-05-24 H.J. Lu <hongjiu.lu@intel.com> | |
21942 | ||
21943 | PR target/85900 | |
21944 | PR target/85345 | |
21945 | * varasm.c (assemble_alias): Lookup ifunc attribute on error. | |
21946 | ||
21947 | 2018-05-25 Jim Wilson <jimw@sifive.com> | |
21948 | ||
21949 | * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. | |
21950 | * config/riscv/riscv.c (struct machine_function): Add | |
21951 | interrupt_handler_p and attribute_checked_p fields. | |
21952 | (riscv_attribute_table): Add interrupt. | |
21953 | (riscv_interrupt_type_p): New. | |
21954 | (riscv_save_reg_p): Save extra regs for interrupt handler. | |
21955 | (riscv_use_save_libcall): Return false for interrupt handler. | |
21956 | (riscv_first_stack_step): Add forward declaration. | |
21957 | (riscv_compute_frame_info): New local interrupt_save_t1. Set it | |
21958 | for interrupt handler with large frame. Use it for saved reg list. | |
21959 | (riscv_expand_prologue): Move flag_stack_usage_info support to | |
21960 | eliminate duplication. | |
21961 | (riscv_expand_epilogue): Generate mret for interrupt handler. | |
21962 | (riscv_epilogue_uses): New. | |
21963 | (riscv_can_use_return_insn): Return false for interrupt handler. | |
21964 | (riscv_function_ok_for_sibcall): Likewise. | |
21965 | (riscv_set_current_function): Add interrupt handler support. | |
21966 | * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses. | |
21967 | * config/riscv/riscv.md (UNSPECV_MRET): New. | |
21968 | (GP_REGNUM): New. | |
21969 | (riscv_frflags, riscv_fsflags): Use tab after opcode. | |
21970 | (riscv_mret): New. | |
21971 | * doc/extend.texi (RISC-V Function Attributes) <interrupt>: New. | |
21972 | ||
21973 | 2018-05-25 Bill Schmidt <wschmidt@linux.ibm.com> | |
21974 | ||
21975 | PR tree-optimization/85712 | |
21976 | * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if | |
21977 | this candidate has already been replaced in-situ by a copy. | |
21978 | ||
21979 | 2018-05-25 Jason Merrill <jason@redhat.com> | |
21980 | ||
21981 | PR c++/80485 - inline function non-zero address. | |
21982 | * symtab.c (nonzero_address): Check DECL_COMDAT. | |
21983 | ||
21984 | 2018-05-25 Uros Bizjak <ubizjak@gmail.com> | |
21985 | ||
21986 | PR target/83628 | |
21987 | * config/alpha/alpha.md (ashlsi3): New insn pattern. | |
21988 | (*ashlsi_se): Rename from *ashldi_se. Define as sign | |
21989 | extension of SImode operation. Use const123_operand predicate. | |
21990 | (*saddsi_1): Remove. | |
21991 | (*saddl_se_1): Ditto. | |
21992 | (*ssubsi_1): Ditto. | |
21993 | (*ssubl_se_1): Ditto. | |
21994 | * config/alpha/predicates.md (const123_operand): New predicate. | |
21995 | * config/alpha/constraints.md (P): Use IN_RANGE. | |
21996 | ||
21997 | 2018-05-25 Richard Biener <rguenther@suse.de> | |
21998 | ||
21999 | * tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter, | |
22000 | defaulted to true. | |
22001 | (ref_maybe_used_by_stmt_p): Likewise. | |
22002 | (stmt_may_clobber_ref_p): Likewise. | |
22003 | (stmt_may_clobber_ref_p_1): Likewise. | |
22004 | * tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter | |
22005 | and pass it along. | |
22006 | (ref_maybe_used_by_stmt_p): Likewise. | |
22007 | (stmt_may_clobber_ref_p): Likewise. | |
22008 | (stmt_may_clobber_ref_p_1): Likewise. | |
22009 | * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use | |
22010 | the alias oracle to disambiguate DRs with stmts DR analysis | |
22011 | couldn't handle. | |
22012 | (vect_analyze_data_refs): Do not give up on not analyzable | |
22013 | DRs for BB vectorization. Remove code truncating the dataref | |
22014 | vector. | |
22015 | ||
22016 | 2018-05-25 Jakub Jelinek <jakub@redhat.com> | |
22017 | ||
22018 | PR target/85832 | |
22019 | * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): | |
22020 | Add (=Yk,v,C) variant using vptestm insn. Use TARGET_AVX512BW | |
22021 | in test instead of TARGET_AVX512F for VI12_AVX512VL iterator. | |
22022 | ||
22023 | 2018-05-25 Richard Biener <rguenther@suse.de> | |
22024 | ||
22025 | * tree-vect-data-refs.c (vect_find_stmt_data_reference): New | |
22026 | function, combining stmt data ref gathering and fatal analysis | |
22027 | parts. | |
22028 | (vect_analyze_data_refs): Remove now redudnant code and simplify. | |
22029 | * tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from | |
22030 | vect_analyze_loop_2 and use vect_find_stmt_data_reference. | |
22031 | * tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference. | |
22032 | * tree-vectorizer.h (vect_find_stmt_data_reference): Declare. | |
22033 | ||
22034 | 2018-05-25 Bin Cheng <bin.cheng@arm.com> | |
22035 | ||
22036 | PR tree-optimization/85720 | |
22037 | * tree-loop-distribution.c (break_alias_scc_partitions): Don't merge | |
22038 | SCC if all partitions are builtins. | |
22039 | (version_loop_by_alias_check): New parameter. Generate cancelable | |
22040 | runtime alias check if all partitions are builtins. | |
22041 | (distribute_loop): Update call to above function. | |
22042 | ||
22043 | 2018-05-25 Bin Cheng <bin.cheng@arm.com> | |
22044 | ||
22045 | * tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files. | |
22046 | (create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c. | |
22047 | (parm_default_def_partition_arg): Ditto. | |
22048 | (set_parm_default_def_partition): Ditto. | |
22049 | (get_parm_default_def_partitions): Ditto and make it static. | |
22050 | (get_undefined_value_partitions): Ditto and make it static. | |
22051 | (remove_ssa_form): Refactor call to init_var_map here. | |
22052 | * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range | |
22053 | computation for loop region. | |
22054 | (coalesce_partitions, compute_optimized_partition_bases): Ditto. | |
22055 | (register_default_def): Delete. | |
22056 | (for_all_parms, create_default_def): Move to tree-outof-ssa.c. | |
22057 | (parm_default_def_partition_arg): Ditto. | |
22058 | (set_parm_default_def_partition): Ditto. | |
22059 | (get_parm_default_def_partitions): Ditto and make it static. | |
22060 | (get_undefined_value_partitions): Ditto and make it static. | |
22061 | (coalesce_with_default, coalesce_with_default): Update comment. | |
22062 | (create_coalesce_list_for_region): New func factored out from | |
22063 | create_outofssa_var_map. | |
22064 | (populate_coalesce_list_for_outofssa): New func factored out from | |
22065 | create_outofssa_var_map and coalesce_ssa_name. | |
22066 | (create_outofssa_var_map): Delete. | |
22067 | (coalesce_ssa_name): Refactor to support live range computation. | |
22068 | * tree-ssa-coalesce.h (coalesce_ssa_name): Change decl. | |
22069 | (get_parm_default_def_partitions): Delete. | |
22070 | (get_undefined_value_partitions): Ditto. | |
22071 | * tree-ssa-live.c (init_var_map, delete_var_map): Support live range | |
22072 | computation for loop region. | |
22073 | (new_tree_live_info, loe_visit_block): Ditto. | |
22074 | (live_worklist, set_var_live_on_entry): Ditto. | |
22075 | (calculate_live_on_exit, verify_live_on_entry): Ditto. | |
22076 | * tree-ssa-live.h (struct _var_map): New fields. | |
22077 | (init_var_map): Change decl. | |
22078 | (region_contains_p): New. | |
22079 | ||
22080 | 2018-05-25 Bin Cheng <bin.cheng@arm.com> | |
22081 | ||
22082 | * tree-ssa-live.h (live_merge_and_clear): Delete. | |
22083 | ||
22084 | 2018-05-25 Richard Biener <rguenther@suse.de> | |
22085 | ||
22086 | PR c++/85912 | |
22087 | * tree-dump.c (dequeue_and_dump): Remove access to removed | |
22088 | operand 2 of a SWITCH_EXPR. | |
22089 | ||
22090 | 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> | |
22091 | ||
22092 | * doc/sourcebuild.texi (vect_double_cond_arith): Include | |
22093 | multiplication and division. | |
22094 | * doc/md.texi (cond_mul@var{m}, cond_div@var{m}, cond_mod@var{m}) | |
22095 | (cond_udiv@var{m}, cond_umod@var{m}): Document. | |
22096 | * optabs.def (cond_smul_optab, cond_sdiv_optab, cond_smod_optab) | |
22097 | (cond_udiv_optab, cond_umod_optab): New optabs. | |
22098 | * internal-fn.def (IFN_COND_MUL, IFN_COND_DIV, IFN_COND_MOD) | |
22099 | (IFN_COND_RDIV): New internal functions. | |
22100 | * internal-fn.c (get_conditional_internal_fn): Handle TRUNC_DIV_EXPR, | |
22101 | TRUNC_MOD_EXPR and RDIV_EXPR. | |
22102 | * match.pd (UNCOND_BINARY, COND_BINARY): Handle them. | |
22103 | * config/aarch64/iterators.md (UNSPEC_COND_MUL, UNSPEC_COND_DIV): | |
22104 | New unspecs. | |
22105 | (SVE_INT_BINARY): Include mult. | |
22106 | (SVE_COND_FP_BINARY): Include UNSPEC_MUL and UNSPEC_DIV. | |
22107 | (optab, sve_int_op): Handle mult. | |
22108 | (optab, sve_fp_op, commutative): Handle UNSPEC_COND_MUL and | |
22109 | UNSPEC_COND_DIV. | |
22110 | * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New pattern | |
22111 | for SVE_INT_BINARY_SD. | |
22112 | ||
22113 | 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> | |
22114 | ||
22115 | * config/aarch64/iterators.md (SVE_INT_BINARY_SD): New code iterator. | |
22116 | (optab, sve_int_op): Handle div and udiv. | |
22117 | * config/aarch64/aarch64-sve.md (<optab><mode>3): New expander | |
22118 | for SVE_INT_BINARY_SD. | |
22119 | (*<optab><mode>3): New insn for the same. | |
22120 | ||
22121 | 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> | |
22122 | ||
22123 | * tree-vect-patterns.c: Include predict.h. | |
22124 | (vect_recog_divmod_pattern): Restrict check for division support | |
22125 | to when optimizing for size. | |
22126 | ||
22127 | 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> | |
22128 | ||
22129 | * doc/sourcebuild.texi (vect_double_cond_arith: Document. | |
22130 | * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4. | |
22131 | (gimple_match_op::gimple_match_op): Add an overload for 4 operands. | |
22132 | (gimple_match_op::set_op): Likewise. | |
22133 | (gimple_resimplify4): Declare. | |
22134 | * genmatch.c (get_operand_type): Handle CFN_COND_* functions. | |
22135 | (expr::gen_transform): Likewise. | |
22136 | (decision_tree::gen): Generate a simplification routine for 4 operands. | |
22137 | * gimple-match-head.c (gimple_simplify): Add an overload for | |
22138 | 4 operands. In the top-level function, handle up to 4 call | |
22139 | arguments and call gimple_resimplify4. | |
22140 | (gimple_resimplify4): New function. | |
22141 | (build_call_internal): Pass a fourth operand. | |
22142 | (maybe_push_to_seq): Likewise. | |
22143 | * match.pd (UNCOND_BINARY, COND_BINARY): New operator lists. | |
22144 | Fold VEC_COND_EXPRs of an operation and a default value into | |
22145 | an IFN_COND_* function if possible. | |
22146 | * config/aarch64/iterators.md (UNSPEC_COND_MAX, UNSPEC_COND_MIN): | |
22147 | New unspecs. | |
22148 | (SVE_COND_FP_BINARY): Include them. | |
22149 | (optab, sve_fp_op): Handle them. | |
22150 | (SVE_INT_BINARY_REV): New code iterator. | |
22151 | (SVE_COND_FP_BINARY_REV): New int iterator. | |
22152 | (commutative): New int attribute. | |
22153 | * config/aarch64/aarch64-protos.h (aarch64_sve_prepare_conditional_op): | |
22154 | Declare. | |
22155 | * config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): New | |
22156 | function. | |
22157 | * config/aarch64/aarch64-sve.md (cond_<optab><mode>): Use it. | |
22158 | (*cond_<optab><mode>): New patterns for reversed operands. | |
22159 | ||
22160 | 2018-05-25 Richard Biener <rguenther@suse.de> | |
22161 | ||
22162 | * tree-vectorizer.h (STMT_VINFO_GROUP_*, GROUP_*): Remove. | |
22163 | (DR_GROUP_*): New, assert we have non-NULL ->data_ref_info. | |
22164 | (REDUC_GROUP_*): New, assert we have NULL ->data_ref_info. | |
22165 | (STMT_VINFO_GROUPED_ACCESS): Adjust. | |
22166 | * tree-vect-data-refs.c (everywhere): Adjust users. | |
22167 | * tree-vect-loop.c (everywhere): Likewise. | |
22168 | * tree-vect-slp.c (everywhere): Likewise. | |
22169 | * tree-vect-stmts.c (everywhere): Likewise. | |
22170 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. | |
22171 | ||
22172 | 2018-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
22173 | ||
22174 | * configure.ac (gcc_cv_as_section_has_e): Move to common section. | |
22175 | Rename to... | |
22176 | (gcc_cv_as_section_exclude): ... this. | |
22177 | Try Solaris as #exclude syntax. | |
22178 | * configure: Regenerate. | |
22179 | * config.in: Regenerate. | |
22180 | * config/i386/i386.c (i386_solaris_elf_named_section): Handle | |
22181 | SECTION_EXCLUDE. | |
22182 | * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section) | |
22183 | [HAVE_GAS_SECTION_EXCLUDE]: Handle SECTION_EXCLUDE. | |
22184 | ||
22185 | * varasm.c (default_elf_asm_named_section): Don't check if | |
22186 | HAVE_GAS_SECTION_EXCLUDE is defined. | |
22187 | ||
22188 | 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> | |
22189 | ||
22190 | * doc/md.texi: Update the documentation of the cond_* optabs | |
22191 | to mention the new final operand. Fix GET_MODE_NUNITS call. | |
22192 | Describe the scalar case too. | |
22193 | * internal-fn.def (IFN_EXTRACT_LAST): Change type to fold_left. | |
22194 | * internal-fn.c (expand_cond_unary_optab_fn): Expect 3 operands | |
22195 | instead of 2. | |
22196 | (expand_cond_binary_optab_fn): Expect 4 operands instead of 3. | |
22197 | (get_conditional_internal_fn): Update comment. | |
22198 | * tree-vect-loop.c (vectorizable_reduction): Pass the original | |
22199 | accumulator value as a final argument to conditional functions. | |
22200 | * config/aarch64/aarch64-sve.md (cond_<optab><mode>): Turn into | |
22201 | a define_expand and add an "else" operand. Assert for now that | |
22202 | the else operand is equal to operand 2. Use SVE_INT_BINARY and | |
22203 | SVE_COND_FP_BINARY instead of SVE_COND_INT_OP and SVE_COND_FP_OP. | |
22204 | (*cond_<optab><mode>): New patterns. | |
22205 | * config/aarch64/iterators.md (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX) | |
22206 | (UNSPEC_COND_SMIN, UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) | |
22207 | (UNSPEC_COND_EOR): Delete. | |
22208 | (optab): Remove associated mappings. | |
22209 | (SVE_INT_BINARY): New code iterator. | |
22210 | (sve_int_op): Remove int attribute and add "minus" to the code | |
22211 | attribute. | |
22212 | (SVE_COND_INT_OP): Delete. | |
22213 | (SVE_COND_FP_OP): Rename to... | |
22214 | (SVE_COND_FP_BINARY): ...this. | |
22215 | ||
22216 | 2018-05-25 Richard Sandiford <richard.sandiford@linaro.org> | |
22217 | ||
22218 | * optabs.c (can_reuse_operands_p): New function. | |
22219 | (maybe_legitimize_operands): Try to reuse the results for | |
22220 | earlier operands. | |
22221 | ||
22222 | 2018-05-24 Uros Bizjak <ubizjak@gmail.com> | |
22223 | ||
22224 | * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>): | |
22225 | Add {q} suffix to insn mnemonic. | |
22226 | ||
22227 | 2018-05-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
22228 | ||
22229 | * config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define. | |
22230 | (msp430_warn_func_return): New. | |
22231 | ||
22232 | 2018-05-24 Roger Sayle <roger@nextmovesoftware.com> | |
22233 | ||
22234 | * fold-const.c (tree_nonzero_bits): New function. | |
22235 | * fold-const.h (tree_nonzero_bits): Likewise. | |
22236 | * match.pd (POPCOUNT): New patterns to fold BUILTIN_POPCOUNT and | |
22237 | friends. POPCOUNT(x&1) => x&1, POPCOUNT(x)==0 => x==0, etc. | |
22238 | ||
22239 | 2018-05-24 H.J. Lu <hongjiu.lu@intel.com> | |
22240 | ||
22241 | PR target/85900 | |
22242 | PR target/85345 | |
22243 | * varasm.c (assemble_alias): Check ifunc_resolver only on | |
22244 | FUNCTION_DECL. | |
22245 | ||
22246 | 2018-05-24 Uros Bizjak <ubizjak@gmail.com> | |
22247 | ||
22248 | PR target/85903 | |
22249 | * config/i386/sse.md (movdi_to_sse): Do not generate pseudo | |
22250 | when memory input operand is handled. | |
22251 | ||
22252 | 2018-05-24 Luis Machado <luis.machado@linaro.org> | |
22253 | ||
22254 | * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static | |
22255 | global. | |
22256 | (qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table. | |
22257 | ||
22258 | 2018-05-24 Richard Sandiford <richard.sandiford@linaro.org> | |
22259 | ||
22260 | * match.pd: Delay FMA folds until after vectorization. | |
22261 | ||
22262 | 2018-05-24 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
22263 | ||
22264 | PR target/83009 | |
22265 | * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make | |
22266 | address check not strict. | |
22267 | ||
22268 | 2018-05-24 Richard Sandiford <richard.sandiford@linaro.org> | |
22269 | ||
22270 | * gimple-match.h (gimple_match_op): New class. | |
22271 | (mprts_hook): Replace parameters with a gimple_match_op *. | |
22272 | (maybe_build_generic_op): Likewise. | |
22273 | (gimple_simplified_result_is_gimple_val): Replace parameters with | |
22274 | a const gimple_match_op *. | |
22275 | (gimple_simplify): Replace code_helper * and tree * parameters with | |
22276 | a gimple_match_op * parameter. | |
22277 | (gimple_resimplify1): Replace code_helper *, tree and tree * | |
22278 | parameters with a gimple_match_op * parameter. | |
22279 | (gimple_resimplify2): Likewise. | |
22280 | (gimple_resimplify3): Likewise. | |
22281 | (maybe_push_res_to_seq): Replace code_helper, tree and tree * | |
22282 | parameters with a gimple_match_op * parameter. | |
22283 | * gimple-match-head.c (gimple_simplify): Change prototypes of | |
22284 | auto-generated functions to take a gimple_match_op * instead of | |
22285 | separate code_helper * and tree * parameters. Make the same | |
22286 | change in the top-level overload and update calls to the | |
22287 | gimple_resimplify routines. Update calls to the auto-generated | |
22288 | functions and to maybe_push_res_to_seq in the publicly-facing | |
22289 | operation-specific gimple_simplify overloads. | |
22290 | (gimple_match_op::MAX_NUM_OPS): Define. | |
22291 | (gimple_resimplify1): Replace rcode and ops with a single res_op | |
22292 | parameter. Update call to gimple_simplify. | |
22293 | (gimple_resimplify2): Likewise. | |
22294 | (gimple_resimplify3): Likewise. | |
22295 | (mprts_hook): Replace parameters with a gimple_match_op *. | |
22296 | (maybe_build_generic_op): Likewise. | |
22297 | (build_call_internal): Replace type, nargs and ops with | |
22298 | a gimple_match_op *. | |
22299 | (maybe_push_res_to_seq): Replace res_code, type and ops parameters | |
22300 | with a single gimple_match_op *. Update calls to mprts_hook, | |
22301 | build_call_internal and gimple_simplified_result_is_gimple_val. | |
22302 | Factor out code that is common to the tree_code and combined_fn cases. | |
22303 | * genmatch.c (expr::gen_transform): Replace tem_code and | |
22304 | tem_ops with a gimple_match_op called tem_op. Update calls | |
22305 | to the gimple_resimplify functions and maybe_push_res_to_seq. | |
22306 | (dt_simplify::gen_1): Manipulate res_op instead of res_code and | |
22307 | res_ops. Update call to the gimple_resimplify functions. | |
22308 | (dt_simplify::gen): Pass res_op instead of res_code and res_ops. | |
22309 | (decision_tree::gen): Make the functions take a gimple_match_op * | |
22310 | called res_op instead of separate res_code and res_ops parameters. | |
22311 | Update call accordingly. | |
22312 | * gimple-fold.c (replace_stmt_with_simplification): Replace rcode | |
22313 | and ops with a single res_op parameter. Update calls to | |
22314 | maybe_build_generic_op and maybe_push_res_to_seq. | |
22315 | (fold_stmt_1): Update calls to gimple_simplify and | |
22316 | replace_stmt_with_simplification. | |
22317 | (gimple_fold_stmt_to_constant_1): Update calls to gimple_simplify | |
22318 | and gimple_simplified_result_is_gimple_val. | |
22319 | * tree-cfgcleanup.c (cleanup_control_expr_graph): Update call to | |
22320 | gimple_simplify. | |
22321 | * tree-ssa-sccvn.c (vn_lookup_simplify_result): Replace parameters | |
22322 | with a gimple_match_op *. | |
22323 | (vn_nary_build_or_lookup): Likewise. Update call to | |
22324 | vn_nary_build_or_lookup_1. | |
22325 | (vn_nary_build_or_lookup_1): Replace rcode, type and ops with a | |
22326 | gimple_match_op *. Update calls to the gimple_resimplify routines | |
22327 | and to gimple_simplified_result_is_gimple_val. | |
22328 | (vn_nary_simplify): Update call to vn_nary_build_or_lookup_1. | |
22329 | Use gimple_match_op::MAX_NUM_OPS instead of a hard-coded 3. | |
22330 | (vn_reference_lookup_3): Update call to vn_nary_build_or_lookup. | |
22331 | (visit_nary_op): Likewise. | |
22332 | (visit_reference_op_load): Likewise. | |
22333 | ||
22334 | 2018-05-23 Luis Machado <luis.machado@linaro.org> | |
22335 | ||
22336 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Use correct type | |
22337 | modifier for printing the step amount. | |
22338 | ||
22339 | 2018-05-23 Jozef Lawrynowicz <jozef.l@somniumtech.com> | |
22340 | ||
22341 | PR target/78849 | |
22342 | * tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN | |
22343 | types. | |
22344 | ||
22345 | 2018-05-23 Segher Boessenkool <segher@kernel.crashing.org> | |
22346 | ||
22347 | * doc/sourcebuild.texi (Endianness): New subsubsection. | |
22348 | ||
22349 | 2018-05-23 Luis Machado <luis.machado@linaro.org> | |
22350 | ||
22351 | * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) | |
22352 | <prefetch_dynamic_strides>: New const bool field. | |
22353 | * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include | |
22354 | prefetch_dynamic_strides. | |
22355 | (exynosm1_prefetch_tune): Likewise. | |
22356 | (thunderxt88_prefetch_tune): Likewise. | |
22357 | (thunderx_prefetch_tune): Likewise. | |
22358 | (thunderx2t99_prefetch_tune): Likewise. | |
22359 | (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to | |
22360 | false. | |
22361 | (aarch64_override_options_internal): Update to set | |
22362 | PARAM_PREFETCH_DYNAMIC_STRIDES. | |
22363 | * doc/invoke.texi (prefetch-dynamic-strides): Document new option. | |
22364 | * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. | |
22365 | * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. | |
22366 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for | |
22367 | prefetch-dynamic-strides setting. | |
22368 | ||
22369 | 2018-05-23 Luis Machado <luis.machado@linaro.org> | |
22370 | ||
22371 | * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) | |
22372 | <minimum_stride>: New const int field. | |
22373 | * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include | |
22374 | minimum_stride field defaulting to -1. | |
22375 | (exynosm1_prefetch_tune): Likewise. | |
22376 | (thunderxt88_prefetch_tune): Likewise. | |
22377 | (thunderx_prefetch_tune): Likewise. | |
22378 | (thunderx2t99_prefetch_tune): Likewise. | |
22379 | (qdf24xx_prefetch_tune) <minimum_stride>: Set to 2048. | |
22380 | <default_opt_level>: Set to 3. | |
22381 | (aarch64_override_options_internal): Update to set | |
22382 | PARAM_PREFETCH_MINIMUM_STRIDE. | |
22383 | * doc/invoke.texi (prefetch-minimum-stride): Document new option. | |
22384 | * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. | |
22385 | * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. | |
22386 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if | |
22387 | stride is constant and is below the minimum stride threshold. | |
22388 | ||
22389 | 2018-05-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22390 | ||
22391 | * config/arm/arm-cpus.in (mode26): Delete. | |
22392 | (armv4): Delete mode26 reference. | |
22393 | * config/arm/arm.c (arm_configure_build_target): Delete use of | |
22394 | isa_bit_mode26. | |
22395 | ||
22396 | 2018-05-23 Uros Bizjak <ubizjak@gmail.com> | |
22397 | ||
22398 | * config/i386/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512): | |
22399 | New insn pattern. | |
22400 | (floatunssi<mode>2): Also enable for AVX512F and TARGET_SSE_MATH. | |
22401 | Rewrite expander pattern. Emit gen_floatunssi<mode>2_i387_with_xmm | |
22402 | for non-SSE modes. | |
22403 | (floatunsdisf2): Rewrite expander pattern. Hanlde TARGET_AVX512F. | |
22404 | (floatunsdidf2): Ditto. | |
22405 | ||
22406 | 2018-05-23 Uros Bizjak <ubizjak@gmail.com> | |
22407 | ||
22408 | * config/i386/i386.md (fixuns_trunc<mode>di2): New insn pattern. | |
22409 | (fixuns_trunc<mode>si2_avx512f): Ditto. | |
22410 | (*fixuns_trunc<mode>si2_avx512f_zext): Ditto. | |
22411 | (fixuns_trunc<mode>si2): Also enable for AVX512F and TARGET_SSE_MATH. | |
22412 | Emit fixuns_trunc<mode>si2_avx512f for AVX512F targets. | |
22413 | ||
22414 | 2018-05-23 Alexander Monakov <amonakov@ispras.ru> | |
22415 | ||
22416 | PR rtl-optimization/79985 | |
22417 | * df-scan.c (df_insn_refs_collect): Remove special case for | |
22418 | global registers and asm statements. | |
22419 | ||
22420 | 2018-05-23 Alexander Monakov <amonakov@ispras.ru> | |
22421 | ||
22422 | * extend.texi (Global Register Variables): Rewrite the bullet list. | |
22423 | Note that the register is available for allocation. Note that access | |
22424 | via inline asm must use constraints. Add note about async-signal | |
22425 | handlers. Remove paragraph about automagic register selection. | |
22426 | ||
22427 | 2018-05-23 Richard Biener <rguenther@suse.de> | |
22428 | ||
22429 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction | |
22430 | of fixed offset from memset VN. | |
22431 | ||
22432 | 2018-05-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
22433 | ||
22434 | * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add | |
22435 | first_interp field. | |
22436 | (alloc_cand_and_find_basis): Initialize first_interp field. | |
22437 | (slsr_process_mul): Modify first_interp field. | |
22438 | (slsr_process_add): Likewise. | |
22439 | (slsr_process_cast): Modify first_interp field for each new | |
22440 | interpretation. | |
22441 | (slsr_process_copy): Likewise. | |
22442 | (dump_candidate): Dump first_interp field. | |
22443 | (replace_mult_candidate): Process all interpretations, not just | |
22444 | subsequent ones. | |
22445 | (replace_rhs_if_not_dup): Likewise. | |
22446 | (replace_one_candidate): Likewise. | |
22447 | ||
22448 | 2018-05-23 Wilco Dijkstra <wdijkstr@arm.com> | |
22449 | ||
22450 | * config/aarch64/aarch64.c (aarch64_use_frame_pointer): | |
22451 | Add new boolean. | |
22452 | (aarch64_needs_frame_chain): New function. | |
22453 | (aarch64_parse_override_string): Set aarch64_use_frame_pointer. | |
22454 | ||
22455 | 2018-05-23 Sudakshina Das <sudi.das@arm.com> | |
22456 | ||
22457 | PR target/84882 | |
22458 | * common/config/aarch64/aarch64-common.c (aarch64_handle_option): | |
22459 | Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags. | |
22460 | * config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative. | |
22461 | * config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg | |
22462 | as true for strict-align. | |
22463 | (aarch64_can_inline_p): Perform checks even when callee has no | |
22464 | attributes to check for strict alignment. | |
22465 | * doc/extend.texi (AArch64 Function Attributes): Document | |
22466 | no-strict-align. | |
22467 | * doc/invoke.texi: (AArch64 Options): Likewise. | |
22468 | ||
22469 | 2018-05-23 Richard Sandiford <richard.sandiford@linaro.org> | |
22470 | ||
22471 | PR tree-optimization/85853 | |
22472 | * tree-vect-slp.c (vect_slp_analyze_node_operations): Split out | |
22473 | the handling of the root of the node to... | |
22474 | (vect_slp_analyze_node_operations_1): ...this new function, | |
22475 | and run the whole thing with the child nodes' def types | |
22476 | set according to their SLP node's def type. | |
22477 | ||
22478 | 2018-05-23 Richard Biener <rguenther@suse.de> | |
22479 | ||
22480 | PR middle-end/85874 | |
22481 | * tree-data-ref.c (create_runtime_alias_checks): Defer | |
22482 | and ignore overflow warnings. | |
22483 | ||
22484 | 2018-05-23 Yury Gribov <tetra2005@gmail.com> | |
22485 | ||
22486 | PR tree-optimization/85822 | |
22487 | * tree-vrp.c (is_masked_range_test): Fix handling of negative | |
22488 | constants. | |
22489 | ||
22490 | 2018-05-23 Richard Biener <rguenther@suse.de> | |
22491 | ||
22492 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary | |
22493 | memset constants via native_interpret_expr. | |
22494 | ||
22495 | 2018-05-22 H.J. Lu <hongjiu.lu@intel.com> | |
22496 | ||
22497 | PR target/85345 | |
22498 | * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc | |
22499 | attribute. | |
22500 | (cgraph_node::create_alias): Likewise. | |
22501 | (cgraph_node::get_availability): Check ifunc_resolver instead | |
22502 | of looking up ifunc attribute. | |
22503 | * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. | |
22504 | * varasm.c (do_assemble_alias): Likewise. | |
22505 | (assemble_alias): Likewise. | |
22506 | (default_binds_local_p_3): Likewise. | |
22507 | * cgraph.h (cgraph_node): Add ifunc_resolver. | |
22508 | (cgraph_node::only_called_directly_or_aliased_p): Return false | |
22509 | for IFUNC resolver. | |
22510 | * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc | |
22511 | attribute. | |
22512 | * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver | |
22513 | is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)). | |
22514 | (symtab_node::binds_to_current_def_p): Check ifunc_resolver | |
22515 | instead of looking up ifunc attribute. | |
22516 | ||
22517 | 2018-05-22 Luis Machado <luis.machado@linaro.org> | |
22518 | ||
22519 | * config/aarch64/aarch64.md (*ashift<mode>_extv_bfiz): New pattern. | |
22520 | ||
22521 | 2018-05-22 Martin Sebor <msebor@redhat.com> | |
22522 | ||
22523 | PR middle-end/85359 | |
22524 | * builtins.c (expand_builtin_strcpy): Call maybe_warn_nonstring_arg | |
22525 | only when expasion succeeds. | |
22526 | (expand_builtin_strcmp): Same. | |
22527 | (expand_builtin_strncmp): Same. | |
22528 | ||
22529 | 2018-05-22 Martin Sebor <msebor@redhat.com> | |
22530 | ||
22531 | * calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment. | |
22532 | ||
22533 | 2018-05-22 Jackson Woodruff <jackson.woodruff@arm.com> | |
22534 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22535 | ||
22536 | * config/aarch64/aarch64-ldpstp.md: Replace uses of | |
22537 | aarch64_mem_pair_operand with memory_operand and delete operand swapping | |
22538 | code. | |
22539 | * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): | |
22540 | Add check for legitimate_address. | |
22541 | (aarch64_gen_adjusted_ldpstp): Swap operands where appropriate. | |
22542 | (aarch64_swap_ldrstr_operands): New. | |
22543 | * config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands): | |
22544 | Define prototype. | |
22545 | ||
22546 | 2018-05-22 Jackson Woodruff <jackson.woodruff@arm.com> | |
22547 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22548 | ||
22549 | * config/aarch64/aarch64.md: New patterns to generate stp | |
22550 | and ldp. | |
22551 | (store_pair_sw, store_pair_dw): New patterns to generate stp for | |
22552 | single words and double words. | |
22553 | (load_pair_sw, load_pair_dw): Likewise. | |
22554 | (store_pair_sf, store_pair_df, store_pair_si, store_pair_di): | |
22555 | Delete. | |
22556 | (load_pair_sf, load_pair_df, load_pair_si, load_pair_di): | |
22557 | Delete. | |
22558 | * config/aarch64/aarch64-ldpstp.md: Modify peephole | |
22559 | for different mode ldpstp and add peephole for merged zero stores. | |
22560 | Likewise for loads. | |
22561 | * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): | |
22562 | Add size check. | |
22563 | (aarch64_gen_store_pair): Rename calls to match new patterns. | |
22564 | (aarch64_gen_load_pair): Rename calls to match new patterns. | |
22565 | * config/aarch64/aarch64-simd.md (load_pair<mode>): Rename to... | |
22566 | (load_pair<DREG:mode><DREG2:mode>): ... This. | |
22567 | (store_pair<mode>): Rename to... | |
22568 | (vec_store_pair<DREG:mode><DREG2:mode>): ... This. | |
22569 | * config/aarch64/iterators.md (DREG, DREG2, DX2, SX, SX2, DSX): | |
22570 | New mode iterators. | |
22571 | (V_INT_EQUIV): Handle SImode. | |
22572 | * config/aarch64/predicates.md (aarch64_reg_zero_or_fp_zero): | |
22573 | New predicate. | |
22574 | ||
22575 | 2018-05-22 Martin Sebor <msebor@redhat.com> | |
22576 | ||
22577 | PR c/85623 | |
22578 | * calls.c (maybe_warn_nonstring_arg): Use string length to set | |
22579 | or ajust the presumed bound on an operation to avoid unnecessary | |
22580 | warnings. | |
22581 | ||
22582 | 2018-05-22 Martin Sebor <msebor@redhat.com> | |
22583 | ||
22584 | PR tree-optimization/85826 | |
22585 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid | |
22586 | assuming that a DECL necesarily has a constant size. | |
22587 | ||
22588 | 2018-05-22 Richard Sandiford <richard.sandiford@linaro.org> | |
22589 | ||
22590 | PR middle-end/85862 | |
22591 | * internal-fn.c (expand_direct_optab_fn): Cope with a null lhs. | |
22592 | ||
22593 | 2018-05-22 Richard Biener <rguenther@suse.de> | |
22594 | ||
22595 | PR tree-optimization/85834 | |
22596 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly handle | |
22597 | non-constant and non-zero memset arguments. | |
22598 | ||
22599 | 2018-05-22 Martin Liska <mliska@suse.cz> | |
22600 | ||
22601 | PR ipa/85607 | |
22602 | * ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types. | |
22603 | ||
22604 | 2018-05-22 Richard Biener <rguenther@suse.de> | |
22605 | ||
22606 | PR tree-optimization/85863 | |
22607 | * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant | |
22608 | comparisons when vectype is specified. | |
22609 | (vectorizable_condition): Do not specify vectype for | |
22610 | vect_is_simple_cond when SLP vectorizing. | |
22611 | ||
22612 | 2018-05-21 Michael Meissner <meissner@linux.ibm.com> | |
22613 | ||
22614 | PR target/85657 | |
22615 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not | |
22616 | define __ibm128 as long double. | |
22617 | * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128 | |
22618 | as a distinct type when IEEE 128-bit support is enabled. | |
22619 | (init_float128_ieee): Fix up conversions between IFmode and IEEE | |
22620 | 128-bit types to use the correct functions. | |
22621 | (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to | |
22622 | convert between 128-bit floating point types that have different | |
22623 | modes but the same representation, instead of using gen_lowpart to | |
22624 | makean alias. | |
22625 | * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and | |
22626 | KFmode. | |
22627 | (IFKF_reg): New attributes to give the register constraints for | |
22628 | IFmode and KFmode. | |
22629 | (extend<mode>tf2_internal): New insns to mark an explicit | |
22630 | conversion between 128-bit floating point types that have a | |
22631 | different mode but share the same representation. | |
22632 | ||
22633 | 2018-05-21 Richard Sandiford <richard.sandiford@linaro.org> | |
22634 | ||
22635 | PR tree-optimization/85814 | |
22636 | * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with | |
22637 | a null return from get_strinfo when unsharing the next | |
22638 | strinfo in the chain. | |
22639 | ||
22640 | 2018-05-21 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | |
22641 | ||
22642 | PR gcc/84923 | |
22643 | * varasm.c (weak_finish): Clean up weak_decls. | |
22644 | ||
22645 | 2018-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22646 | ||
22647 | * config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL, | |
22648 | UNSPEC_SABDL2, UNSPEC_SADALP, UNSPEC_UABAL, UNSPEC_UABDL2, | |
22649 | UNSPEC_UADALP values. | |
22650 | * config/aarch64/iterators.md (ABAL): New int iterator. | |
22651 | (ABDL2): Likewise. | |
22652 | (ADALP): Likewise. | |
22653 | (sur): Add mappings for the above. | |
22654 | * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3): | |
22655 | New define_insn. | |
22656 | (aarch64_<sur>abal<mode>_4): Likewise. | |
22657 | (aarch64_<sur>adalp<mode>_3): Likewise. | |
22658 | (<sur>sadv16qi): New define_expand. | |
22659 | ||
22660 | 2018-05-21 Alexander Nesterovskiy <alexander.nesterovskiy@intel.com> | |
22661 | ||
22662 | * config/i386/i386.md (*movsf_internal): AVX falsedep fix. | |
22663 | (*movdf_internal): Ditto. | |
22664 | (*rcpsf2_sse): Ditto. | |
22665 | (*rsqrtsf2_sse): Ditto. | |
22666 | (*sqrt<mode>2_sse): Ditto. | |
22667 | ||
22668 | 2018-05-21 Tamar Christina <tamar.christina@arm.com> | |
22669 | ||
22670 | * config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to | |
22671 | eor3q<mode>4. | |
22672 | (aarch64_bcaxqv8hi): Change to bcaxq<mode>4. | |
22673 | * config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32, | |
22674 | veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, | |
22675 | vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, | |
22676 | vbcaxq_s64): New. | |
22677 | * config/aarch64/arm_neon.h: Likewise. | |
22678 | * config/aarch64/iterators.md (VQ_I): New. | |
22679 | ||
22680 | 2018-05-21 Alexey Brodkin <abrodkin@synopsys.com> | |
22681 | ||
22682 | * config.gcc: Add arc/t-multilib-linux to tmake_file for | |
22683 | arc*-*-linux*. | |
22684 | * config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and | |
22685 | MULTILIB_DIRNAMES | |
22686 | ||
22687 | 2018-05-20 Chung-Ju Wu <jasonwucj@gmail.com> | |
22688 | ||
22689 | * config/nds32/constraints.md (S): New constraint. | |
22690 | * config/nds32/nds32.md (call_internal): Use constraint S. | |
22691 | (call_value_internal): Likewise. | |
22692 | (sibcall_internal): Likewise. | |
22693 | (sibcall_value_internal): Likewise. | |
22694 | ||
22695 | 2018-05-20 Kito Cheng <kito.cheng@gmail.com> | |
22696 | Chung-Ju Wu <jasonwucj@gmail.com> | |
22697 | ||
22698 | * config/nds32/nds32.c (nds32_register_move_cost): Take garywolf cpu | |
22699 | into consideration. | |
22700 | ||
22701 | 2018-05-20 Kito Cheng <kito.cheng@gmail.com> | |
22702 | Chung-Ju Wu <jasonwucj@gmail.com> | |
22703 | ||
22704 | * config/nds32/nds32-cost.c (rtx_cost_model_t): New structure. | |
22705 | (insn_size_16bit, insn_size_32bit): New variables for cost evaluation. | |
22706 | (nds32_rtx_costs_impl): Simplify. | |
22707 | (nds32_address_cost_impl): Simplify. | |
22708 | (nds32_init_rtx_costs): New function. | |
22709 | (nds32_rtx_costs_speed_prefer): Likewise. | |
22710 | (nds32_rtx_costs_size_prefer): Likewise. | |
22711 | (nds32_address_cost_speed_prefer): Likewise. | |
22712 | (nds32_address_cost_speed_fwprop): Likewise. | |
22713 | (nds32_address_cost_size_prefer): Likewise. | |
22714 | * config/nds32/nds32-protos.h (nds32_init_rtx_costs): Declare. | |
22715 | * config/nds32/nds32.c (nds32_option_override): Use | |
22716 | nds32_init_rtx_costs function. | |
22717 | ||
22718 | 2018-05-20 Chung-Ju Wu <jasonwucj@gmail.com> | |
22719 | ||
22720 | * config/nds32/nds32.c (nds32_asm_file_start): Output pipeline model. | |
22721 | * config/nds32/nds32.h (TARGET_PIPELINE_N7): Define. | |
22722 | (TARGET_PIPELINE_N8): Likewise. | |
22723 | (TARGET_PIPELINE_N10): Likewise. | |
22724 | (TARGET_PIPELINE_N13): Likewise. | |
22725 | (TARGET_PIPELINE_GRAYWOLF): Likewise. | |
22726 | ||
22727 | 2018-05-19 Monk Chiang <sh.chiang04@gmail.com> | |
22728 | ||
22729 | * config/nds32/nds32-fpu.md: Update copyright year. | |
22730 | ||
22731 | 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> | |
22732 | ||
22733 | * config/nds32/nds32.h (ASM_SPEC): Adjust spec rule. | |
22734 | ||
22735 | 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> | |
22736 | ||
22737 | * config/nds32/nds32.c | |
22738 | (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable. | |
22739 | * config/nds32/nds32.opt (minline-asm-r15): New option. | |
22740 | ||
22741 | 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> | |
22742 | ||
22743 | * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add | |
22744 | MASK_HW_ABS. | |
22745 | * config/nds32/nds32.md (abssi2): New pattern. | |
22746 | ||
22747 | 2018-05-19 Uros Bizjak <ubizjak@gmail.com> | |
22748 | ||
22749 | * config/i386/i386.md (rex64namesuffix): New mode attribute. | |
22750 | * config/i386/sse.md (sse_cvtsi2ss<rex64namesuffix><round_name>): | |
22751 | Merge insn pattern from sse_cvtsi2ss<round_name> and | |
22752 | sse_cvtsi2ssq<round_name> using SWI48 mode iterator. | |
22753 | (sse_cvtss2si<rex64namesuffix><round_name>): Merge insn pattern | |
22754 | from sse_cvtss2si<round_name> and sse_cvtss2siq<round_name> | |
22755 | using SWI48 mode iterator. | |
22756 | (sse_cvtss2si<rex64namesuffix>_2): Merge insn pattern from | |
22757 | sse_cvtss2si_2 and sse_cvtss2siq_2 using SWI48 mode iterator. | |
22758 | (sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Merge insn | |
22759 | pattern from sse_cvttss2si<round_saeonly_name> | |
22760 | and sse_cvttss2siq<round_saeonly_name> using SWI48 mode iterator. | |
22761 | (avx512f_vcvtss2usi<rex64namesuffix><round_name>): Merge insn pattern | |
22762 | from avx512f_vcvtss2usi<round_name> and avx512f_vcvtss2usiq<round_name> | |
22763 | using SWI48 mode iterator. | |
22764 | (avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>): Merge | |
22765 | insn pattern from avx512f_vcvttss2usi<round_saeonly_name> and | |
22766 | avx512f_vcvttss2usiq<round_saeonly_name> using SWI48 mode iterator. | |
22767 | (avx512f_vcvtsd2usi<rex64namesuffix><round_name>): Merge insn pattern | |
22768 | from avx512f_vcvtsd2usi<round_name> and avx512f_vcvtsd2usiq<round_name> | |
22769 | using SWI48 mode iterator. | |
22770 | (avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>): Merge | |
22771 | insn pattern from avx512f_vcvttsd2usi<round_saeonly_name> and | |
22772 | avx512f_vcvttsd2usiq<round_saeonly_name> using SWI48 mode iterator. | |
22773 | (sse2_cvtsd2si<rex64namesuffix><round_name>): Merge insn pattern from | |
22774 | sse2_cvtsd2si<round_name> and sse2_cvtsd2siq<round_name> using | |
22775 | SWI48 mode iterator. | |
22776 | (sse2_cvtsd2si<rex64namesuffix>_2): Merge insn pattern from | |
22777 | sse2_cvtsd2si_2 and sse2_cvtsd2siq_2 using SWI48 mode iterator. | |
22778 | (sse_cvttsd2si<rex64namesuffix><round_saeonly_name>): Merge insn | |
22779 | pattern from sse_cvttsd2si<round_saeonly_name> | |
22780 | and sse_cvttsd2siq<round_saeonly_name> using SWI48 mode iterator. | |
22781 | ||
22782 | 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> | |
22783 | ||
22784 | * config/nds32/nds32-md-auxiliary.c | |
22785 | (nds32_valid_smw_lwm_base_p): Refine. | |
22786 | (nds32_output_smw_single_word): Refine. | |
22787 | (nds32_output_smw_double_word): New. | |
22788 | * config/nds32/nds32-protos.h (nds32_output_smw_double_word): New. | |
22789 | ||
22790 | 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> | |
22791 | ||
22792 | * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Refine. | |
22793 | (nds32_output_stack_pop): Refine. | |
22794 | (nds32_expand_unaligned_load): Refine. | |
22795 | (nds32_expand_unaligned_store): Refine. | |
22796 | ||
22797 | 2018-05-19 Kuan-Lin Chen <kuanlinchentw@gmail.com> | |
22798 | Chung-Ju Wu <jasonwucj@gmail.com> | |
22799 | ||
22800 | * config/nds32/constants.md: Add TP_REGNUM constant. | |
22801 | (unspec_element): Add UNSPEC_GOTINIT, UNSPEC_GOT, UNSPEC_GOTOFF, | |
22802 | UNSPEC_PLT, UNSPEC_TLSGD, UNSPEC_TLSLD, UNSPEC_TLSIE, UNSPEC_TLSLE and | |
22803 | UNSPEC_ADD32. | |
22804 | * config/nds32/nds32-doubleword.md: Consider flag_pic. | |
22805 | * config/nds32/nds32-dspext.md (mov<mode>): Expand TLS and PIC cases. | |
22806 | * config/nds32/nds32-predicates.c (nds32_const_unspec_p): New. | |
22807 | * config/nds32/nds32-md-auxiliary.c: Implementation that support TLS | |
22808 | and PIC code generation. | |
22809 | * config/nds32/nds32-protos.h: Declarations that support TLS and PIC | |
22810 | code generation. | |
22811 | * config/nds32/nds32-relax-opt.c: Consider TLS and PIC for relax | |
22812 | optimization. | |
22813 | * config/nds32/nds32.md: Support TLS and PIC. | |
22814 | * config/nds32/nds32.c: Support TLS and PIC. | |
22815 | * config/nds32/nds32.h (nds32_relax_insn_type): New enum type. | |
22816 | * config/nds32/predicates.md (nds32_nonunspec_symbolic_operand): New | |
22817 | predicate. | |
22818 | ||
22819 | 2018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> | |
22820 | ||
22821 | * config/nds32/nds32-predicates.c (const_vector_to_hwint): Use machine | |
22822 | mode with E_ prefix. | |
22823 | ||
22824 | 2018-05-19 Kuan-Lin Chen <kuanlinchentw@gmail.com> | |
22825 | Chung-Ju Wu <jasonwucj@gmail.com> | |
22826 | ||
22827 | * config/nds32/constants.md (unspec_element): Add UNSPEC_ICT. | |
22828 | * config/nds32/nds32-md-auxiliary.c | |
22829 | (symbolic_reference_mentioned_p): New. | |
22830 | (nds32_legitimize_ict_address): New. | |
22831 | (nds32_expand_ict_move): New. | |
22832 | (nds32_indirect_call_referenced_p): New. | |
22833 | (nds32_symbol_binds_local_p): Delete. | |
22834 | (nds32_long_call_p): Modify. | |
22835 | * config/nds32/nds32-opts.h (nds32_ict_model_type): New enum type. | |
22836 | * config/nds32/nds32-protos.h | |
22837 | (symbolic_reference_mentioned_p): Declare. | |
22838 | (nds32_legitimize_ict_address): Declare. | |
22839 | (nds32_expand_ict_move): Declare. | |
22840 | (nds32_indirect_call_referenced_p): Declare. | |
22841 | * config/nds32/nds32-relax-opt.c (nds32_ict_const_p): New. | |
22842 | (nds32_relax_group): Use nds32_ict_const_p as condition. | |
22843 | * config/nds32/nds32.c (nds32_attribute_table): Add "indirect_call". | |
22844 | (nds32_asm_file_start): Output ict_model directive in asm code. | |
22845 | (nds32_legitimate_address_p): Consider indirect call. | |
22846 | (nds32_print_operand): Consider indirect call. | |
22847 | (nds32_print_operand_address): Consider indirect call. | |
22848 | (nds32_insert_attributes): Handle "indirect_call" attribute. | |
22849 | (TARGET_LEGITIMATE_ADDRESS_P): Define. | |
22850 | (TARGET_LEGITIMATE_CONSTANT_P): Define. | |
22851 | (TARGET_CANNOT_FORCE_CONST_MEM): Define. | |
22852 | (TARGET_DELEGITIMIZE_ADDRESS): Define. | |
22853 | (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. | |
22854 | * config/nds32/nds32.h (SYMBOLIC_CONST_P): Define. | |
22855 | (TARGET_ICT_MODEL_SMALL): Define. | |
22856 | (TARGET_ICT_MODEL_LARGE): Define. | |
22857 | * config/nds32/nds32.md (movsi): Consider ict model. | |
22858 | (call, call_value): Consider ict model. | |
22859 | (sibcall, sibcall_value): Consider ict model. | |
22860 | * config/nds32/nds32.opt (mict-model): New option. | |
22861 | * config/nds32/predicates.md (nds32_symbolic_operand): Consider ict | |
22862 | model. | |
22863 | ||
22864 | 2018-05-18 Kito Cheng <kito.cheng@gmail.com> | |
22865 | Monk Chiang <sh.chiang04@gmail.com> | |
22866 | Jim Wilson <jimw@sifive.com> | |
22867 | ||
22868 | * common/config/riscv/riscv-common.c (riscv_parse_arch_string): | |
22869 | Add support to parse rv32e*. Clear MASK_RVE for rv32i and rv64i. | |
22870 | * config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e. | |
22871 | * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define | |
22872 | __riscv_32e when TARGET_RVE. Handle ABI_ILP32E as soft-float ABI. | |
22873 | * config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E. | |
22874 | * config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE, | |
22875 | compute save_libcall_adjustment properly. | |
22876 | (riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E. | |
22877 | (riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E. | |
22878 | * config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E. | |
22879 | (STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE. | |
22880 | (GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise. | |
22881 | (ABI_SPEC): Handle mabi=ilp32e. | |
22882 | * config/riscv/riscv.opt (abi_type): Add ABI_ILP32E. | |
22883 | (RVE): Add RVE mask. | |
22884 | * doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info. | |
22885 | <-march>: Add rv32e as an example. | |
22886 | ||
22887 | 2018-05-18 Marc Glisse <marc.glisse@inria.fr> | |
22888 | ||
22889 | PR c++/82899 | |
22890 | * tree-ssa-structalias.c (create_variable_info_for_1): Extra argument. | |
22891 | (intra_create_variable_infos): Handle C++ constructors. | |
22892 | ||
22893 | 2018-05-18 Martin Liska <mliska@suse.cz> | |
22894 | ||
22895 | * passes.def: Remove a redundant pass. | |
22896 | ||
22897 | 2018-05-18 Eric Botcazou <ebotcazou@adacore.com> | |
22898 | ||
22899 | PR bootstrap/85838 | |
22900 | * config/sparc/sparc.c (sparc_expand_builtin): Always initialize op[0]. | |
22901 | ||
22902 | 2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22903 | ||
22904 | * config/arm/arm-cpus.in (armv3m, mode32): Delete features. | |
22905 | (ARMv4): Update. | |
22906 | (ARMv2, ARMv3, ARMv3m): Delete fgroups. | |
22907 | (ARMv6m): Update. | |
22908 | (armv2, armv2a, armv3, armv3m): Delete architectures. | |
22909 | (arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, | |
22910 | arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720, | |
22911 | arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi): | |
22912 | Delete cpus. | |
22913 | * config/arm/arm.md (maddsidi4): Remove check for arm_arch3m. | |
22914 | (*mulsidi3adddi): Likewise. | |
22915 | (mulsidi3): Likewise. | |
22916 | (*mulsidi3_nov6): Likewise. | |
22917 | (umulsidi3): Likewise. | |
22918 | (umulsidi3_nov6): Likewise. | |
22919 | (umaddsidi4): Likewise. | |
22920 | (*umulsidi3adddi): Likewise. | |
22921 | (smulsi3_highpart): Likewise. | |
22922 | (*smulsi3_highpart_nov6): Likewise. | |
22923 | (umulsi3_highpart): Likewise. | |
22924 | (*umulsi3_highpart_nov6): Likewise. | |
22925 | * config/arm/arm.h (arm_arch3m): Delete. | |
22926 | * config/arm/arm.c (arm_arch3m): Delete. | |
22927 | (arm_option_override_internal): Update armv3-related comment. | |
22928 | (arm_configure_build_target): Delete use of isa_bit_mode32. | |
22929 | (arm_option_reconfigure_globals): Delete set of arm_ach3m. | |
22930 | (arm_rtx_costs_internal): Delete check of arm_arch3m. | |
22931 | * config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m. | |
22932 | (mulsa3): Likewise. | |
22933 | (mulusa3): Likewise. | |
22934 | * config/arm/arm-protos.h (arm_arch3m): Delete. | |
22935 | * config/arm/arm-tables.opt: Regenerate. | |
22936 | * config/arm/arm-tune.md: Likewise. | |
22937 | * config/arm/t-arm-elf (all_early_nofp): Delete mentions of | |
22938 | deleted architectures. | |
22939 | ||
22940 | 2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
22941 | ||
22942 | * config/arm/arm-cpus.in (armv5, armv5e): Delete features. | |
22943 | (armv5t, armv5te): New features. | |
22944 | (ARMv5, ARMv5e): Delete fgroups. | |
22945 | (ARMv5t, ARMv5te): Adjust for above changes. | |
22946 | (ARMv6m): Likewise. | |
22947 | (armv5, armv5e): Delete arches. | |
22948 | * config/arm/arm.md (*call_reg_armv5): Use arm_arch5t instead of | |
22949 | arm_arch5. | |
22950 | (*call_reg_arm): Likewise. | |
22951 | (*call_value_reg_armv5): Likewise. | |
22952 | (*call_value_reg_arm): Likewise. | |
22953 | (*call_symbol): Likewise. | |
22954 | (*call_value_symbol): Likewise. | |
22955 | (*sibcall_insn): Likewise. | |
22956 | (*sibcall_value_insn): Likewise. | |
22957 | (clzsi2): Likewise. | |
22958 | (prefetch): Likewise. | |
22959 | (define_split and define_peephole2 dependent on arm_arch5): | |
22960 | Likewise. | |
22961 | * config/arm/arm.h (TARGET_LDRD): Use arm_arch5te instead of | |
22962 | arm_arch5e. | |
22963 | (TARGET_ARM_QBIT): Likewise. | |
22964 | (TARGET_DSP_MULTIPLY): Likewise. | |
22965 | (enum base_architecture): Delete BASE_ARCH_5, BASE_ARCH_5E. | |
22966 | (arm_arch5, arm_arch5e): Delete. | |
22967 | (arm_arch5t, arm_arch5te): Declare. | |
22968 | * config/arm/arm.c (arm_arch5, arm_arch5e): Delete. | |
22969 | (arm_arch5t): Declare. | |
22970 | (arm_option_reconfigure_globals): Update for the above. | |
22971 | (arm_options_perform_arch_sanity_checks): Update comment, replace | |
22972 | use of arm_arch5 with arm_arch5t. | |
22973 | (use_return_insn): Likewise. | |
22974 | (arm_emit_call_insn): Likewise. | |
22975 | (output_return_instruction): Likewise. | |
22976 | (arm_final_prescan_insn): Likewise. | |
22977 | (arm_coproc_builtin_available): Likewise. | |
22978 | * config/arm/arm-c.c (arm_cpu_builtins): Replace arm_arch5 and | |
22979 | arm_arch5e with arm_arch5t and arm_arch5te. | |
22980 | * config/arm/arm-protos.h (arm_arch5, arm_arch5e): Delete. | |
22981 | (arm_arch5t, arm_arch5te): Declare. | |
22982 | * config/arm/arm-tables.opt: Regenerate. | |
22983 | * config/arm/t-arm-elf: Remove references to armv5, armv5e. | |
22984 | * config/arm/t-multilib: Likewise. | |
22985 | * config/arm/thumb1.md (*call_reg_thumb1_v5): Check arm_arch5t | |
22986 | instead of arm_arch5. | |
22987 | (*call_reg_thumb1): Likewise. | |
22988 | (*call_value_reg_thumb1_v5): Likewise. | |
22989 | (*call_value_reg_thumb1): Likewise. | |
22990 | * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Remove now | |
22991 | unreachable path. | |
22992 | * doc/invoke.texi (ARM Options): Remove references to armv5, armv5e. | |
22993 | ||
22994 | 2018-05-18 Martin Liska <mliska@suse.cz> | |
22995 | ||
22996 | PR gcov-profile/84846 | |
22997 | * doc/gcov.texi: Document -t option of gcov tool. | |
22998 | ||
22999 | 2018-05-18 Martin Liska <mliska@suse.cz> | |
23000 | ||
23001 | PR gcov-profile/84846 | |
23002 | * gcov.c (print_usage): Add new -t option. | |
23003 | (process_args): Handle the option. | |
23004 | (generate_results): Use stdout as output when requested by | |
23005 | the option. | |
23006 | ||
23007 | 2018-05-18 Martin Liska <mliska@suse.cz> | |
23008 | ||
23009 | PR gcov-profile/84846 | |
23010 | * coverage.c (coverage_init): Write PWD to .gcno file. | |
23011 | * doc/gcov.texi: Document how working directory is printed. | |
23012 | * gcov-dump.c (dump_gcov_file): Print PWD. | |
23013 | * gcov.c (output_intermediate_file): Likewise. | |
23014 | (read_graph_file): Read PWD string. | |
23015 | (output_lines): Print PWD. | |
23016 | ||
23017 | 2018-05-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
23018 | ||
23019 | PR middle-end/85817 | |
23020 | * ipa-pure-const.c (malloc_candidate_p): Remove the check integer_zerop | |
23021 | for retval and return false if all args to phi are zero. | |
23022 | ||
23023 | 2018-05-18 Richard Biener <rguenther@suse.de> | |
23024 | ||
23025 | * gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges | |
23026 | method. | |
23027 | (evrp_dom_walker::before_dom_children): Call it. | |
23028 | ||
23029 | 2018-05-18 Richard Biener <rguenther@suse.de> | |
23030 | ||
23031 | * tree-dfa.c (get_ref_base_and_extent): Use range-info to refine | |
23032 | results when processing array refs with variable index. | |
23033 | ||
23034 | 2018-05-18 Toon Moene <toon@moene.org> | |
23035 | ||
23036 | * doc/invoke.texi: Move -floop-unroll-and-jam documentation | |
23037 | directly after that of -floop-interchange. Indicate that both | |
23038 | options are enabled by default when specifying -O3. | |
23039 | ||
23040 | 2018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23041 | ||
23042 | * config/aarch64/aarch64-simd.md (vec_set<mode>): Use VALL_F16 mode | |
23043 | iterator. Delete separate integer-mode vec_set<mode> expander. | |
23044 | (aarch64_simd_vec_setv2di): Delete. | |
23045 | (vec_setv2di): Delete. | |
23046 | (aarch64_simd_vec_set<mode>): Delete all other patterns with that name. | |
23047 | Use VALL_F16 mode iterator. Add LD1 alternative and use vwcore for | |
23048 | the "w, r" alternative. | |
23049 | ||
23050 | 2018-05-18 Martin Liska <mliska@suse.cz> | |
23051 | ||
23052 | * passes.def: Add pass_lower_switch and pass_lower_switch_O0. | |
23053 | * tree-pass.h (make_pass_lower_switch_O0): New function. | |
23054 | * tree-switch-conversion.c (node_has_low_bound): Remove. | |
23055 | (node_has_high_bound): Likewise. | |
23056 | (node_is_bounded): Likewise. | |
23057 | (class pass_lower_switch): Make it a template type and create | |
23058 | two instances. | |
23059 | (pass_lower_switch::execute): Add template argument. | |
23060 | (make_pass_lower_switch): New function. | |
23061 | (make_pass_lower_switch_O0): New function. | |
23062 | (do_jump_if_equal): Remove. | |
23063 | (emit_case_nodes): Simplify to just handle all 3 cases and leave | |
23064 | all the hard work to tree optimization passes. | |
23065 | ||
23066 | 2018-05-18 Martin Liska <mliska@suse.cz> | |
23067 | ||
23068 | * dbgcnt.c (limit_low): Renamed from limit. | |
23069 | (limit_high): New variable. | |
23070 | (dbg_cnt_is_enabled): Check for upper limit. | |
23071 | (dbg_cnt): Adjust dumping. | |
23072 | (dbg_cnt_set_limit_by_index): Add new argument for high | |
23073 | value. | |
23074 | (dbg_cnt_set_limit_by_name): Likewise. | |
23075 | (dbg_cnt_process_single_pair): Parse new format. | |
23076 | (dbg_cnt_process_opt): Use strtok. | |
23077 | (dbg_cnt_list_all_counters): Remove 'value' and add | |
23078 | 'limit_high'. | |
23079 | * doc/invoke.texi: Document changes. | |
23080 | ||
23081 | 2018-05-18 Richard Sandiford <richard.sandiford@linaro.org> | |
23082 | ||
23083 | * doc/sourcebuild.texi (scalar_all_fma): Document. | |
23084 | * tree.def (FMA_EXPR): Delete. | |
23085 | * internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions. | |
23086 | * internal-fn.c (ternary_direct): New macro. | |
23087 | (expand_ternary_optab_fn): Likewise. | |
23088 | (direct_ternary_optab_supported_p): Likewise. | |
23089 | * Makefile.in (build/genmatch.o): Depend on case-fn-macros.h. | |
23090 | * builtins.c (fold_builtin_fma): Delete. | |
23091 | (fold_builtin_3): Don't call it. | |
23092 | * cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling. | |
23093 | * expr.c (expand_expr_real_2): Likewise. | |
23094 | * fold-const.c (operand_equal_p): Likewise. | |
23095 | (fold_ternary_loc): Likewise. | |
23096 | * gimple-pretty-print.c (dump_ternary_rhs): Likewise. | |
23097 | * gimple.c (DEFTREECODE): Likewise. | |
23098 | * gimplify.c (gimplify_expr): Likewise. | |
23099 | * optabs-tree.c (optab_for_tree_code): Likewise. | |
23100 | * tree-cfg.c (verify_gimple_assign_ternary): Likewise. | |
23101 | * tree-eh.c (operation_could_trap_p): Likewise. | |
23102 | (stmt_could_throw_1_p): Likewise. | |
23103 | * tree-inline.c (estimate_operator_cost): Likewise. | |
23104 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
23105 | (op_code_prio): Likewise. | |
23106 | * tree-ssa-loop-im.c (stmt_cost): Likewise. | |
23107 | * tree-ssa-operands.c (get_expr_operands): Likewise. | |
23108 | * tree.c (commutative_ternary_tree_code, add_expr): Likewise. | |
23109 | * fold-const-call.h (fold_fma): Delete. | |
23110 | * fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS, | |
23111 | CFN_FNMA and CFN_FNMS. | |
23112 | (fold_fma): Delete. | |
23113 | * genmatch.c (combined_fn): New enum. | |
23114 | (commutative_ternary_tree_code): Remove FMA_EXPR handling. | |
23115 | (commutative_op): New function. | |
23116 | (commutate): Use it. Handle more than 2 operands. | |
23117 | (dt_operand::gen_gimple_expr): Use commutative_op. | |
23118 | (parser::parse_expr): Allow :c to be used with non-binary | |
23119 | operators if the commutative operand is known. | |
23120 | * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle | |
23121 | CFN_FMS, CFN_FNMA and CFN_FNMS. | |
23122 | (backprop::process_assign_use): Remove FMA_EXPR handling. | |
23123 | * hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise. | |
23124 | (gen_hsa_fma): New function. | |
23125 | (gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS, | |
23126 | IFN_FNMA and IFN_FNMS. | |
23127 | * match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS. | |
23128 | * gimple-fold.h (follow_all_ssa_edges): Declare. | |
23129 | * gimple-fold.c (follow_all_ssa_edges): New function. | |
23130 | * tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the | |
23131 | gimple_build interface and use follow_all_ssa_edges to fold the result. | |
23132 | (convert_mult_to_fma): Use direct_internal_fn_suppoerted_p | |
23133 | instead of checking for optabs directly. | |
23134 | * config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls | |
23135 | rather than FMA_EXPRs. | |
23136 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a | |
23137 | call to IFN_FMA instead of an FMA_EXPR. | |
23138 | ||
23139 | 2018-05-17 Jim Wilson <jimw@sifive.com> | |
23140 | ||
23141 | * expr.c (do_tablejump): When converting index to Pmode, if we have a | |
23142 | sign extended promoted subreg, and the range does not have the sign bit | |
23143 | set, then do a sign extend. | |
23144 | ||
23145 | * config/riscv/riscv.c (riscv_extend_comparands): In unsigned QImode | |
23146 | test, check for sign extended subreg and/or constant operands, and | |
23147 | do a sign extend in that case. | |
23148 | ||
23149 | 2018-05-17 Steve Ellcey <sellcey@cavium.com> | |
23150 | ||
23151 | * config/aarch64/thunderx2t99.md (thunderx2t99_ls_both): Delete. | |
23152 | (thunderx2t99_multiple): Delete psuedo-units from used cpus. | |
23153 | Add untyped. | |
23154 | (thunderx2t99_alu_shift): Remove alu_shift_reg, alus_shift_reg. | |
23155 | Change logics_shift_reg to logics_shift_imm. | |
23156 | (thunderx2t99_fp_loadpair_basic): Delete. | |
23157 | (thunderx2t99_fp_storepair_basic): Delete. | |
23158 | (thunderx2t99_asimd_int): Add neon_sub and neon_sub_q types. | |
23159 | (thunderx2t99_asimd_polynomial): Delete. | |
23160 | (thunderx2t99_asimd_fp_simple): Add neon_fp_mul_s_scalar_q | |
23161 | and neon_fp_mul_d_scalar_q. | |
23162 | (thunderx2t99_asimd_fp_conv): Add *int_to_fp* types. | |
23163 | (thunderx2t99_asimd_misc): Delete neon_dup and neon_dup_q. | |
23164 | (thunderx2t99_asimd_recip_step): Add missing *sqrt* types. | |
23165 | (thunderx2t99_asimd_lut): Add missing tbl types. | |
23166 | (thunderx2t99_asimd_ext): Delete. | |
23167 | (thunderx2t99_asimd_load1_1_mult): Delete. | |
23168 | (thunderx2t99_asimd_load1_2_mult): Delete. | |
23169 | (thunderx2t99_asimd_load1_ldp): New. | |
23170 | (thunderx2t99_asimd_load1): New. | |
23171 | (thunderx2t99_asimd_load2): Add missing *load2* types. | |
23172 | (thunderx2t99_asimd_load3): New. | |
23173 | (thunderx2t99_asimd_load4): New. | |
23174 | (thunderx2t99_asimd_store1_1_mult): Delete. | |
23175 | (thunderx2t99_asimd_store1_2_mult): Delete. | |
23176 | (thunderx2t99_asimd_store2_mult): Delete. | |
23177 | (thunderx2t99_asimd_store2_onelane): Delete. | |
23178 | (thunderx2t99_asimd_store_stp): New. | |
23179 | (thunderx2t99_asimd_store1): New. | |
23180 | (thunderx2t99_asimd_store2): New. | |
23181 | (thunderx2t99_asimd_store3): New. | |
23182 | (thunderx2t99_asimd_store4): New. | |
23183 | ||
23184 | 2018-05-17 Jerome Lambourg <lambourg@adacore.com> | |
23185 | ||
23186 | * config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove | |
23187 | #include <stdint.h>. Replace intptr_t with __INTPTR_TYPE__. | |
23188 | ||
23189 | 2018-05-17 Pat Haugen <pthaugen@us.ibm.com> | |
23190 | Segher Boessenkool <segher@kernel.crashing.org> | |
23191 | ||
23192 | PR target/85698 | |
23193 | * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest | |
23194 | operand. | |
23195 | ||
23196 | 2018-05-17 Richard Biener <rguenther@suse.de> | |
23197 | ||
23198 | * tree-ssa-dse.c (dse_classify_store): Fix iterator increment | |
23199 | for pruning loop and prune defs feeding only already visited PHIs. | |
23200 | ||
23201 | 2018-05-17 Richard Biener <rguenther@suse.de> | |
23202 | ||
23203 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling. | |
23204 | ||
23205 | 2018-05-17 Bin Cheng <bin.cheng@arm.com> | |
23206 | Richard Biener <rguenther@suse.de> | |
23207 | ||
23208 | PR tree-optimization/85793 | |
23209 | * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load | |
23210 | for VMAT_ELEMENTWISE. | |
23211 | ||
23212 | 2018-05-17 Richard Sandiford <richard.sandiford@linaro.org> | |
23213 | ||
23214 | * internal-fn.h (lookup_internal_fn): Declare | |
23215 | * internal-fn.c (lookup_internal_fn): New function. | |
23216 | * gimple.c (gimple_build_call_from_tree): Handle calls to | |
23217 | internal functions. | |
23218 | * gimple-pretty-print.c (dump_gimple_call): Print "." before | |
23219 | internal function names. | |
23220 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
23221 | * tree-ssa-scopedtables.c (expr_hash_elt::print): Likewise. | |
23222 | ||
23223 | 2018-05-17 Richard Sandiford <richard.sandiford@linaro.org> | |
23224 | ||
23225 | * gimple-fold.h (gimple_build): Make the function forms take | |
23226 | combined_fn rather than built_in_function. | |
23227 | (gimple_simplify): Likewise. | |
23228 | * gimple-match-head.c (gimple_simplify): Likewise. | |
23229 | * gimple-fold.c (gimple_build): Likewise. | |
23230 | * tree-vect-loop.c (get_initial_def_for_reduction): Use gimple_build | |
23231 | rather than gimple_build_call_internal. | |
23232 | (get_initial_defs_for_reduction): Likewise. | |
23233 | (vect_create_epilog_for_reduction): Likewise. | |
23234 | (vectorizable_live_operation): Likewise. | |
23235 | ||
23236 | 2018-05-17 Martin Liska <mliska@suse.cz> | |
23237 | ||
23238 | * gimple-ssa-sprintf.c (format_directive): Do not use | |
23239 | space in between 'G_' and '('. | |
23240 | ||
23241 | 2018-05-17 Jakub Jelinek <jakub@redhat.com> | |
23242 | ||
23243 | PR target/85323 | |
23244 | * config/i386/i386.c (ix86_fold_builtin): Handle masked shifts | |
23245 | even if the mask is not all ones. | |
23246 | ||
23247 | PR target/85323 | |
23248 | * config/i386/i386.c (ix86_fold_builtin): Fold shift builtins by | |
23249 | vector. | |
23250 | (ix86_gimple_fold_builtin): Likewise. | |
23251 | ||
23252 | PR target/85323 | |
23253 | * config/i386/i386.c: Include tree-vector-builder.h. | |
23254 | (ix86_vector_shift_count): New function. | |
23255 | (ix86_fold_builtin): Fold shift builtins by scalar count. | |
23256 | (ix86_gimple_fold_builtin): Likewise. | |
23257 | ||
23258 | * config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8, | |
23259 | _mm512_setzero): New intrinsics. | |
23260 | ||
23261 | 2018-05-17 James Greenhalgh <james.greenhalgh@arm.com> | |
23262 | Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23263 | ||
23264 | * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify | |
23265 | code generation for cases where splatting a value is not useful. | |
23266 | * simplify-rtx.c (simplify_ternary_operation): Simplify | |
23267 | vec_merge across a vec_duplicate and a paradoxical subreg forming | |
23268 | a vector mode to a vec_concat. | |
23269 | ||
23270 | 2018-05-17 Olga Makhotina <olga.makhotina@intel.com> | |
23271 | ||
23272 | * config.gcc: Support "goldmont-plus". | |
23273 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect | |
23274 | "goldmont-plus". | |
23275 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
23276 | PROCESSOR_GOLDMONT_PLUS. | |
23277 | * config/i386/i386.c (m_GOLDMONT_PLUS): Define. | |
23278 | (processor_target_table): Add "goldmont-plus". | |
23279 | (PTA_GOLDMONT_PLUS): Define. | |
23280 | (ix86_lea_outperforms): Add TARGET_GOLDMONT_PLUS. | |
23281 | (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT_PLUS. | |
23282 | (fold_builtin_cpu): Add M_INTEL_GOLDMONT_PLUS. | |
23283 | (fold_builtin_cpu): Add "goldmont-plus". | |
23284 | (ix86_add_stmt_cost): Add TARGET_GOLDMONT_PLUS. | |
23285 | (ix86_option_override_internal): Add "goldmont-plus". | |
23286 | * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT_PLUS. | |
23287 | (processor_type): Add PROCESSOR_GOLDMONT_PLUS. | |
23288 | * config/i386/x86-tune.def: Add m_GOLDMONT_PLUS. | |
23289 | * doc/invoke.texi: Add goldmont-plus as x86 -march=/-mtune= CPU type. | |
23290 | ||
23291 | 2018-05-17 Richard Biener <rguenther@suse.de> | |
23292 | ||
23293 | PR tree-optimization/85757 | |
23294 | * tree-ssa-dse.c (dse_classify_store): Record a PHI def and | |
23295 | remove defs that only feed that PHI from further processing. | |
23296 | ||
23297 | 2018-05-16 Jim Wilson <jimw@sifive.com> | |
23298 | ||
23299 | * config/riscv/riscv.md (<optab>si3_mask, <optab>si3_mask_1): Prepend | |
23300 | asterisk to name. | |
23301 | (<optab>di3_mask, <optab>di3_mask_1): Likewise. | |
23302 | ||
23303 | 2018-05-16 Mark Wielaard <mark@klomp.org> | |
23304 | ||
23305 | * dwarf2out.c (count_index_strings): New function. | |
23306 | (output_indirect_strings): Call count_index_strings and generate | |
23307 | header for dwarf_version >= 5. | |
23308 | ||
23309 | 2018-05-16 Mark Wielaard <mark@klomp.org> | |
23310 | ||
23311 | * dwarf2out.c (dwarf_FORM): New function. | |
23312 | (set_indirect_string): Use dwarf_FORM. | |
23313 | (reset_indirect_string): Likewise. | |
23314 | (size_of_die): Likewise. | |
23315 | (value_format): Likewise. | |
23316 | (output_die): Likewise. | |
23317 | (add_skeleton_AT_string): Likewise. | |
23318 | (output_macinfo_op): Likewise. | |
23319 | (index_string): Likewise. | |
23320 | (output_index_string_offset): Likewise. | |
23321 | (output_index_string): Likewise. | |
23322 | (count_index_strings): Likewise. | |
23323 | ||
23324 | 2018-05-16 Carl Love <cel@us.ibm.com> | |
23325 | ||
23326 | * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions | |
23327 | dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer. | |
23328 | ||
23329 | 2018-05-16 Martin Jambor <mjambor@suse.cz> | |
23330 | ||
23331 | * ipa-prop.c (ipa_free_all_edge_args): Remove. | |
23332 | * ipa-prop.h (ipa_free_all_edge_args): Likewise. | |
23333 | ||
23334 | 2018-05-16 Wilco Dijkstra <wdijkstr@arm.com> | |
23335 | ||
23336 | * config/aarch64/aarch64.md (fma<mode>4): Change into expand pattern. | |
23337 | (fnma<mode>4): Likewise. | |
23338 | (fms<mode>4): Likewise. | |
23339 | (fnms<mode>4): Likewise. | |
23340 | (aarch64_fma<mode>4): Rename insn, reorder accumulator operand. | |
23341 | (aarch64_fnma<mode>4): Likewise. | |
23342 | (aarch64_fms<mode>4): Likewise. | |
23343 | (aarch64_fnms<mode>4): Likewise. | |
23344 | (aarch64_fnmadd<mode>4): Likewise. | |
23345 | ||
23346 | 2018-05-16 Jason Merrill <jason@redhat.com> | |
23347 | ||
23348 | * tree.c (warn_deprecated_use): Return bool. Simplify logic. | |
23349 | ||
23350 | 2018-05-16 Richard Biener <rguenther@suse.de> | |
23351 | ||
23352 | * tree-vectorizer.h (struct stmt_info_for_cost): Add where member. | |
23353 | (dump_stmt_cost): Declare. | |
23354 | (add_stmt_cost): Dump cost we add. | |
23355 | (add_stmt_costs): New function. | |
23356 | (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): | |
23357 | No longer exported. | |
23358 | (vect_analyze_stmt): Adjust prototype. | |
23359 | (vectorizable_condition): Likewise. | |
23360 | (vectorizable_live_operation): Likewise. | |
23361 | (vectorizable_reduction): Likewise. | |
23362 | (vectorizable_induction): Likewise. | |
23363 | * tree-vect-loop.c (vect_analyze_loop_operations): Create local | |
23364 | cost vector to pass to vectorizable_ and record afterwards. | |
23365 | (vect_model_reduction_cost): Take cost vector argument and adjust. | |
23366 | (vect_model_induction_cost): Likewise. | |
23367 | (vectorizable_reduction): Likewise. | |
23368 | (vectorizable_induction): Likewise. | |
23369 | (vectorizable_live_operation): Likewise. | |
23370 | * tree-vect-slp.c (vect_create_new_slp_node): Initialize | |
23371 | SLP_TREE_NUMBER_OF_VEC_STMTS. | |
23372 | (vect_analyze_slp_cost_1): Remove. | |
23373 | (vect_analyze_slp_cost): Likewise. | |
23374 | (vect_slp_analyze_node_operations): Take visited args and | |
23375 | a target cost vector. Avoid processing already visited stmt sets. | |
23376 | (vect_slp_analyze_operations): Use a local cost vector to gather | |
23377 | costs and register those of non-discarded instances. | |
23378 | (vect_bb_vectorization_profitable_p): Use add_stmt_costs. | |
23379 | (vect_schedule_slp_instance): Remove copying of | |
23380 | SLP_TREE_NUMBER_OF_VEC_STMTS. Instead assert that it is not | |
23381 | zero. | |
23382 | * tree-vect-stmts.c (record_stmt_cost): Remove path directly | |
23383 | adding cost. Record cost entry location. | |
23384 | (vect_prologue_cost_for_slp_op): Function to compute cost of | |
23385 | a constant or invariant generated for SLP vect in the prologue, | |
23386 | split out from vect_analyze_slp_cost_1. | |
23387 | (vect_model_simple_cost): Make static. Adjust for SLP costing. | |
23388 | (vect_model_promotion_demotion_cost): Likewise. | |
23389 | (vect_model_store_cost): Likewise, make static. | |
23390 | (vect_model_load_cost): Likewise. | |
23391 | (vectorizable_bswap): Add cost vector arg and adjust. | |
23392 | (vectorizable_call): Likewise. | |
23393 | (vectorizable_simd_clone_call): Likewise. | |
23394 | (vectorizable_conversion): Likewise. | |
23395 | (vectorizable_assignment): Likewise. | |
23396 | (vectorizable_shift): Likewise. | |
23397 | (vectorizable_operation): Likewise. | |
23398 | (vectorizable_store): Likewise. | |
23399 | (vectorizable_load): Likewise. | |
23400 | (vectorizable_condition): Likewise. | |
23401 | (vectorizable_comparison): Likewise. | |
23402 | (can_vectorize_live_stmts): Likewise. | |
23403 | (vect_analyze_stmt): Likewise. | |
23404 | (vect_transform_stmt): Adjust calls to vectorizable_*. | |
23405 | * tree-vectorizer.c: Include gimple-pretty-print.h. | |
23406 | (dump_stmt_cost): New function. | |
23407 | ||
23408 | 2018-05-16 Richard Biener <rguenther@suse.de> | |
23409 | ||
23410 | * params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param. | |
23411 | * doc/invoke.texi (dse-max-alias-queries-per-store): Document. | |
23412 | * tree-ssa-dse.c: Include tree-ssa-loop.h. | |
23413 | (check_name): New callback. | |
23414 | (dse_classify_store): Track cycles via a visited bitmap of PHI | |
23415 | defs and simplify handling of in-loop and across loop dead stores | |
23416 | and properly fail for loop-variant refs. Handle byte-tracking with | |
23417 | multiple defs. Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for | |
23418 | limiting the walk. | |
23419 | ||
23420 | 2018-05-16 Richard Sandiford <richard.sandiford@linaro.org> | |
23421 | ||
23422 | * tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare. | |
23423 | (vect_get_mask_type_for_stmt): Likewise. | |
23424 | * tree-vect-slp.c (vect_two_operations_perm_ok_p): New function, | |
23425 | split out from... | |
23426 | (vect_build_slp_tree_1): ...here. Use vect_get_vector_types_for_stmt | |
23427 | to determine the statement's vector type and the vector type that | |
23428 | should be used for calculating nunits. Deal with cases in which | |
23429 | the type has to be deferred. | |
23430 | (vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt | |
23431 | and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE. | |
23432 | * tree-vect-loop.c (vect_determine_vf_for_stmt_1) | |
23433 | (vect_determine_vf_for_stmt): New functions, split out from... | |
23434 | (vect_determine_vectorization_factor): ...here. | |
23435 | * tree-vect-stmts.c (vect_get_vector_types_for_stmt) | |
23436 | (vect_get_mask_type_for_stmt): New functions, split out from | |
23437 | vect_determine_vectorization_factor. | |
23438 | ||
23439 | 2018-05-16 Richard Biener <rguenther@suse.de> | |
23440 | ||
23441 | * tree-cfg.c (verify_gimple_assign_ternary): Properly | |
23442 | verify the [VEC_]COND_EXPR embedded comparison. | |
23443 | ||
23444 | 2018-05-15 Martin Sebor <msebor@redhat.com> | |
23445 | ||
23446 | PR tree-optimization/85753 | |
23447 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle | |
23448 | RECORD_TYPE in addition to ARRAY_TYPE. | |
23449 | ||
23450 | 2018-05-15 Martin Sebor <msebor@redhat.com> | |
23451 | ||
23452 | PR middle-end/85643 | |
23453 | * calls.c (get_attr_nonstring_decl): Handle MEM_REF. | |
23454 | ||
23455 | 2018-05-15 Richard Biener <rguenther@suse.de> | |
23456 | ||
23457 | * tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter, | |
23458 | add by_clobber_p one. Change algorithm to collect all defs | |
23459 | representing uses we need to walk and try reducing them to | |
23460 | a single one before failing. | |
23461 | (dse_dom_walker::dse_optimize_stmt): Adjust. | |
23462 | ||
23463 | 2018-05-13 Mark Wielaard <mark@klomp.org> | |
23464 | ||
23465 | * dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx. | |
23466 | (size_of_loc_descr): Likewise. | |
23467 | (output_loc_operands): Likewise. | |
23468 | (output_loc_operands_raw): Likewise. | |
23469 | (dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx. | |
23470 | (resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx. | |
23471 | (hash_loc_operands): Likewise. | |
23472 | (compare_loc_operands): Likewise. | |
23473 | ||
23474 | 2018-05-14 Mark Wielaard <mark@klomp.org> | |
23475 | ||
23476 | * dwarf2out.c (count_index_addrs): New function. | |
23477 | (dwarf2out_finish): Use count_index_addrs to calculate addrs_length. | |
23478 | ||
23479 | 2018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
23480 | ||
23481 | PR tree-optimization/83648 | |
23482 | * ipa-pure-const.c (malloc_candidate_p): Allow function with NULL | |
23483 | return value as malloc candidate. | |
23484 | ||
23485 | 2018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
23486 | ||
23487 | PR ipa/85734 | |
23488 | * ipa-pure-const.c (warn_function_malloc): Pass value of known_finite | |
23489 | param as true in call to suggest_attribute. | |
23490 | ||
23491 | 2018-05-14 Segher Boessenkool <segher@kernel.crashing.org> | |
23492 | ||
23493 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for | |
23494 | -mreadonly-in-sdata. | |
23495 | ||
23496 | 2018-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23497 | ||
23498 | * config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused): | |
23499 | New pattern. | |
23500 | (aarch64_crypto_aesd_fused): Likewise. | |
23501 | ||
23502 | 2018-05-14 Wilco Dijkstra <wdijkstr@arm.com> | |
23503 | ||
23504 | * config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives. | |
23505 | (movsi_aarch64): Likewise. | |
23506 | (load_pairsi): Likewise. | |
23507 | (load_pairdi): Likewise. | |
23508 | (store_pairsi): Likewise. | |
23509 | (store_pairdi): Likewise. | |
23510 | (load_pairsf): Likewise. | |
23511 | (load_pairdf): Likewise. | |
23512 | (store_pairsf): Likewise. | |
23513 | (store_pairdf): Likewise. | |
23514 | (zero_extend): Likewise. | |
23515 | (trunc): Swap alternatives. | |
23516 | (fcvt_target): Add '?' to prefer w over r. | |
23517 | ||
23518 | 2018-05-14 Jakub Jelinek <jakub@redhat.com> | |
23519 | ||
23520 | PR target/85756 | |
23521 | * config/i386/i386.md: Disallow non-commutative arithmetics in | |
23522 | last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim | |
23523 | optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS | |
23524 | in the peephole2 before it. | |
23525 | ||
23526 | 2018-05-14 Sebastian Peryt <sebastian.peryt@intel.com> | |
23527 | ||
23528 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET, | |
23529 | OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines. | |
23530 | (ix86_handle_option): Handle -mcldemote. | |
23531 | * config.gcc: New header. | |
23532 | * config/i386/cldemoteintrin.h: New file. | |
23533 | * config/i386/cpuid.h (bit_CLDEMOTE): New bit. | |
23534 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect | |
23535 | -mcldemote. | |
23536 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
23537 | OPTION_MASK_ISA_CLDEMOTE. | |
23538 | * config/i386/i386.c (ix86_target_string): Add -mcldemote. | |
23539 | (ix86_valid_target_attribute_inner_p): Ditto. | |
23540 | (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE. | |
23541 | (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote. | |
23542 | (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE. | |
23543 | * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New. | |
23544 | * config/i386/i386.md (UNSPECV_CLDEMOTE): New. | |
23545 | (cldemote): New. | |
23546 | * config/i386/i386.opt: Add -mcldemote. | |
23547 | * config/i386/x86intrin.h: New header. | |
23548 | * doc/invoke.texi: Add -mcldemote. | |
23549 | ||
23550 | 2018-05-14 Richard Biener <rguenther@suse.de> | |
23551 | ||
23552 | * doc/match-and-simplify.texi: Adjust :s documentation. | |
23553 | ||
23554 | 2018-05-14 Alexander Monakov <amonakov@ispras.ru> | |
23555 | ||
23556 | * sort.cc (REORDER_23): Pass the type for the temporaries instead of | |
23557 | intended memcpy size. | |
23558 | (REORDER_45): Likewise. | |
23559 | ||
23560 | 2018-05-13 Alexander Monakov <amonakov@ispras.ru> | |
23561 | ||
23562 | * sort.cc: New file. | |
23563 | * system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort. | |
23564 | * vec.c (qsort_chk): Use gcc_qsort. | |
23565 | * Makefile.in (OBJS-libcommon): Add sort.o. | |
23566 | (build/sort.o): New target. Use it... | |
23567 | (BUILD_RTL): ... here, and... | |
23568 | (build/gencfn-macros): ... here, and... | |
23569 | (build/genmatch): ... here. | |
23570 | ||
23571 | 2018-05-13 Kito Cheng <kito.cheng@gmail.com> | |
23572 | Chung-Ju Wu <jasonwucj@gmail.com> | |
23573 | ||
23574 | * config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu. | |
23575 | * config/nds32/nds32-graywolf.md: New file. | |
23576 | * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF. | |
23577 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15 | |
23578 | pipeline. | |
23579 | * config/nds32/nds32-protos.h: More declarations for n15 pipeline. | |
23580 | * config/nds32/nds32-utils.c: More implementations for n15 pipeline. | |
23581 | * config/nds32/nds32.md (pipeline_model): Add graywolf. | |
23582 | * config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus. | |
23583 | * config/nds32/pipelines.md: Include n15 settings. | |
23584 | ||
23585 | 2018-05-13 Kito Cheng <kito.cheng@gmail.com> | |
23586 | Chung-Ju Wu <jasonwucj@gmail.com> | |
23587 | ||
23588 | * config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu. | |
23589 | * config/nds32/nds32-n13.md: New file. | |
23590 | * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13. | |
23591 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13 | |
23592 | pipeline. | |
23593 | * config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline. | |
23594 | * config/nds32/nds32.md (pipeline_model): Add n13. | |
23595 | * config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus. | |
23596 | * config/nds32/pipelines.md: Include n13 settings. | |
23597 | ||
23598 | 2018-05-13 Kito Cheng <kito.cheng@gmail.com> | |
23599 | Chung-Ju Wu <jasonwucj@gmail.com> | |
23600 | ||
23601 | * config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu. | |
23602 | * config/nds32/nds32-n10.md: New file. | |
23603 | * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10. | |
23604 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10 | |
23605 | pipeline. | |
23606 | * config/nds32/nds32-protos.h: More declarations for n10 pipeline. | |
23607 | * config/nds32/nds32-utils.c: More implementations for n10 pipeline. | |
23608 | * config/nds32/nds32.md (pipeline_model): Add n10. | |
23609 | * config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus. | |
23610 | * config/nds32/pipelines.md: Include n10 settings. | |
23611 | ||
23612 | 2018-05-13 Monk Chiang <sh.chiang04@gmail.com> | |
23613 | Kito Cheng <kito.cheng@gmail.com> | |
23614 | Chung-Ju Wu <jasonwucj@gmail.com> | |
23615 | ||
23616 | * config.gcc (nds32be-*-*): Handle --with-ext-dsp. | |
23617 | * config/nds32/constants.md (unspec_element, unspec_volatile_element): | |
23618 | Add enum values for DSP extension instructions. | |
23619 | * config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi): | |
23620 | New constraints. | |
23621 | * config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus, | |
23622 | sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max): | |
23623 | New code iterators. | |
23624 | (su, zs, uk, opcode, add_rsub, add_sub): New code attributes. | |
23625 | * config/nds32/nds32-dspext.md: New file for DSP implementation. | |
23626 | * config/nds32/nds32-intrinsic.c: Implementation of DSP extension. | |
23627 | * config/nds32/nds32-intrinsic.md: Likewise. | |
23628 | * config/nds32/nds32_intrinsic.h: Likewise. | |
23629 | * config/nds32/nds32-md-auxiliary.c: Likewise. | |
23630 | * config/nds32/nds32-memory-manipulation.c: Consider DSP extension. | |
23631 | * config/nds32/nds32-predicates.c (const_vector_to_hwint): New. | |
23632 | (nds32_valid_CVp5_p, nds32_valid_CVs5_p): New. | |
23633 | (nds32_valid_CVs2_p, nds32_valid_CVhi_p): New. | |
23634 | * config/nds32/nds32-protos.h: New declarations for DSP extension. | |
23635 | * config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case | |
23636 | TYPE_DMAC in switch statement. | |
23637 | * config/nds32/nds32.c: New checking and implementation for DSP | |
23638 | extension instructions. | |
23639 | * config/nds32/nds32.h: Likewise. | |
23640 | * config/nds32/nds32.md: Likewise. | |
23641 | * config/nds32/nds32.opt (mhw-abs, mext-dsp): New options. | |
23642 | * config/nds32/predicates.md: Implement new predicates for DSP | |
23643 | extension. | |
23644 | ||
23645 | 2018-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23646 | ||
23647 | * config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32): | |
23648 | Reformat alternatives and attributes so it is easier to identify | |
23649 | which constraints/attributes go with which instruction. | |
23650 | (mov<mode>_hardfloat32, FMOVE64): Likewise. | |
23651 | (mov<mode>_softfloat32, FMOVE64): Likewise. | |
23652 | (mov<mode>_hardfloat64, FMOVE64): Likewise. | |
23653 | (mov<mode>_softfloat64, FMOVE64): Likewise. | |
23654 | ||
23655 | 2018-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
23656 | ||
23657 | * doc/extend.texi (PowerPC Built-in Functions): Rename this | |
23658 | subsection. | |
23659 | (Basic PowerPC Built-in Functions): The new name of the | |
23660 | subsection previously known as "PowerPC Built-in Functions". | |
23661 | (Basic PowerPC Built-in Functions Available on all Configurations): | |
23662 | New subsubsection. | |
23663 | (Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise. | |
23664 | (Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise. | |
23665 | (Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise. | |
23666 | (Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise. | |
23667 | ||
23668 | 2018-05-11 Martin Jambor <mjambor@suse.cz> | |
23669 | ||
23670 | PR ipa/85655 | |
23671 | * ipa-cp.c (intersect_with_plats): Check that the lattice contains | |
23672 | single const. | |
23673 | ||
23674 | 2018-05-11 Richard Earnshaw <rearnsha@arm.com> | |
23675 | ||
23676 | PR target/85733 | |
23677 | * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. | |
23678 | ||
23679 | 2018-05-11 Sebastian Peryt <sebastian.peryt@intel.com> | |
23680 | ||
23681 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, | |
23682 | OPTION_MASK_ISA_WAITPKG_UNSET): New defines. | |
23683 | (ix86_handle_option): Handle -mwaitpkg. | |
23684 | * config.gcc: New header. | |
23685 | * config/i386/cpuid.h (bit_WAITPKG): New bit. | |
23686 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg. | |
23687 | * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New | |
23688 | function type. | |
23689 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
23690 | OPTION_MASK_ISA_WAITPKG. | |
23691 | * config/i386/i386.c (ix86_target_string): Add -mwaitpkg. | |
23692 | (ix86_option_override_internal): Add PTA_WAITPKG. | |
23693 | (ix86_valid_target_attribute_inner_p): Add -mwaitpkg. | |
23694 | (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, | |
23695 | IX86_BUILTIN_TPAUSE. | |
23696 | (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor, | |
23697 | __builtin_ia32_umwait and __builtin_ia32_tpause. | |
23698 | (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR, | |
23699 | IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. | |
23700 | * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New. | |
23701 | * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR, | |
23702 | UNSPECV_TPAUSE): New. | |
23703 | (umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New. | |
23704 | * config/i386/i386.opt: Add -mwaitpkg. | |
23705 | * config/i386/waitpkgintrin.h: New file. | |
23706 | * config/i386/x86intrin.h: New header. | |
23707 | * doc/invoke.texi: Add -mwaitpkg. | |
23708 | ||
23709 | 2018-05-11 Richard Earnshaw <rearnsha@arm.com> | |
23710 | ||
23711 | PR target/85606 | |
23712 | * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now | |
23713 | equivalent. | |
23714 | (cortex-m0): Use armv6s-m isa. | |
23715 | (cortex-m0plus): Likewise. | |
23716 | (cortex-m1): Likewise. | |
23717 | (cortex-m0.small-multiply): Likewise. | |
23718 | (cortex-m0plus.small-multiply): Likewise. | |
23719 | (cortex-m1.small-multiply): Likewise. | |
23720 | ||
23721 | 2018-05-11 Allan Sandfeld Jensen <allan.jensen@qt.io> | |
23722 | Jakub Jelinek <jakub@redhat.com> | |
23723 | ||
23724 | PR tree-optimization/85692 | |
23725 | * tree-ssa-forwprop.c (simplify_vector_constructor): Try two | |
23726 | source permute as well. | |
23727 | ||
23728 | 2018-05-11 Martin Liska <mliska@suse.cz> | |
23729 | ||
23730 | PR sanitizer/85556 | |
23731 | * doc/extend.texi: Document LLVM style format for no_sanitize | |
23732 | attribute. | |
23733 | ||
23734 | 2018-05-10 Michael Meissner <meissner@linux.vnet.ibm.com> | |
23735 | ||
23736 | * config/rs6000/rs6000.c (mode_supports_dq_form): Rename | |
23737 | mode_supports_vsx_dform_quad to mode_supports_dq_form. | |
23738 | (mode_supports_vsx_dform_quad): Likewise. | |
23739 | (mode_supports_vmx_dform): Move these functions to be next to the | |
23740 | other mode_supports functions. | |
23741 | (mode_supports_dq_form): Likewise. | |
23742 | (quad_address_p): Change calls of mode_supports_vsx_dform_quad to | |
23743 | mode_supports_dq_form. | |
23744 | (reg_offset_addressing_ok_p): Likewise. | |
23745 | (offsettable_ok_by_alignment): Likewise. | |
23746 | (rs6000_legitimate_offset_address_p): Likewise. | |
23747 | (legitimate_lo_sum_address_p): Likewise. | |
23748 | (rs6000_legitimize_address): Likewise. | |
23749 | (rs6000_legitimize_reload_address): Likewise. | |
23750 | (rs6000_secondary_reload_inner): Likewise. | |
23751 | (rs6000_preferred_reload_class): Likewise. | |
23752 | (rs6000_output_move_128bit): Likewise. | |
23753 | ||
23754 | 2018-05-10 Uros Bizjak <ubizjak@gmail.com> | |
23755 | ||
23756 | * config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>: | |
23757 | Generate SImode target register for null target. | |
23758 | <case IX86_BUILTIN_XGETBV>: Ditto. | |
23759 | <case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation. | |
23760 | * config/i386/xsaveintrin.h (_xgetbv): Add missing return. | |
23761 | ||
23762 | 2018-05-10 Carl Love <cel@us.ibm.com> | |
23763 | ||
23764 | * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions | |
23765 | dcbtt and dcbtstt if operands[2] is 0. | |
23766 | ||
23767 | 2018-05-10 Uros Bizjak <ubizjak@gmail.com> | |
23768 | ||
23769 | PR target/85693 | |
23770 | * config/i386/sse.md (usadv64qi): New expander. | |
23771 | ||
23772 | 2018-05-10 Segher Boessenkool <segher@kernel.crashing.org> | |
23773 | ||
23774 | * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, | |
23775 | altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove | |
23776 | -maltivec=be support. | |
23777 | (vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi, | |
23778 | vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi, | |
23779 | vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, | |
23780 | vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi, | |
23781 | vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi, | |
23782 | vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx, | |
23783 | altivec_vpks<VI_char>ss, altivec_vpks<VI_char>us, | |
23784 | altivec_vpku<VI_char>us, altivec_vpku<VI_char>um, altivec_vsum2sws, | |
23785 | altivec_vsumsws): Adjust. | |
23786 | (altivec_vspltb *altivec_vspltb_internal, altivec_vsplth, | |
23787 | *altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal, | |
23788 | altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be | |
23789 | support. | |
23790 | (altivec_vperm_<mode>, altivec_vperm_<mode>_uns, | |
23791 | altivec_vupkhs<VU_char>, altivec_vupkls<VU_char>, altivec_vupkhpx, | |
23792 | altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust. | |
23793 | (altivec_lve<VI_char>x): Delete expand. | |
23794 | (*altivec_lve<VI_char>x_internal): Rename to... | |
23795 | (altivec_lve<VI_char>x): ... this. | |
23796 | (altivec_lvxl_<mode>): Delete expand. | |
23797 | (*altivec_lvxl_<mode>_internal): Rename to ... | |
23798 | (altivec_lvxl_<mode>): ... this. | |
23799 | (altivec_stvxl_<mode>): Delete expand. | |
23800 | (*altivec_stvxl_<mode>_internal): Rename to ... | |
23801 | (altivec_stvxl_<mode>): ... this. | |
23802 | (altivec_stve<VI_char>x): Delete expand. | |
23803 | (*altivec_stve<VI_char>x_internal): Rename to ... | |
23804 | (altivec_stve<VI_char>x): ... this. | |
23805 | (doublee<mode>2, unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, | |
23806 | doubleh<mode>2, unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, | |
23807 | reduc_plus_scal_<mode>): Adjust. | |
23808 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust | |
23809 | comment. | |
23810 | (rs6000_cpu_cpp_builtins): Adjust. | |
23811 | (altivec_resolve_overloaded_builtin): Remove -maltivec=be support. | |
23812 | * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be, | |
23813 | altivec_expand_stvx_be, altivec_expand_stvex_be): Delete. | |
23814 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove | |
23815 | -maltivec=be support. | |
23816 | (rs6000_split_vec_extract_var): Adjust. | |
23817 | (rs6000_split_v4si_init): Adjust. | |
23818 | (swap_selector_for_mode): Delete. | |
23819 | (altivec_expand_lvx_be, altivec_expand_stvx_be, | |
23820 | altivec_expand_stvex_be): Delete. | |
23821 | (altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove | |
23822 | -maltivec=be support. | |
23823 | (rs6000_gimple_fold_builtin): Ditto. | |
23824 | (rs6000_generate_float2_double_code, rs6000_generate_float2_code): | |
23825 | Adjust. | |
23826 | * config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete. | |
23827 | (TARGET_DIRECT_MOVE_64BIT): Adjust. | |
23828 | * config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust. | |
23829 | * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete. | |
23830 | * config/rs6000/vsx.md (floate<mode>, unsfloatev2di, floato<mode>, | |
23831 | unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df, | |
23832 | vunsignede_v2df, vsx_extract_<mode>_p9, *vsx_extract_si, | |
23833 | *vsx_extract_<mode>_p8, *vsx_extract_si_<uns>float_df, | |
23834 | *vsx_extract_si_<uns>float_<mode>, vsx_set_<mode>_p9, vsx_set_v4sf_p9, | |
23835 | *vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an | |
23836 | anonymous split): Adjust. | |
23837 | (vsx_mergel_<mode>, vsx_mergeh_<mode>): Remove -maltivec=be support. | |
23838 | (vsx_xxspltd_<mode>, extract4b, insert4b): Adjust. | |
23839 | ||
23840 | 2018-05-10 Eric Botcazou <ebotcazou@adacore.com> | |
23841 | ||
23842 | * configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only | |
23843 | when --with-gxx-include-dir is also specified. | |
23844 | * configure: Regenerate. | |
23845 | ||
23846 | 2018-05-09 Jim Wilson <jimw@sifive.com> | |
23847 | ||
23848 | PR target/84797 | |
23849 | * config.gcc (riscv*-*-*): Handle --with-multilib-list. | |
23850 | * config/riscv/t-withmultilib: New. | |
23851 | * config/riscv/withmultilib.h: New. | |
23852 | * doc/install.texi: Document RISC-V --with-multilib-list support. | |
23853 | ||
23854 | 2018-05-09 Richard Biener <rguenther@suse.de> | |
23855 | ||
23856 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost | |
23857 | vector. | |
23858 | (vect_bb_vectorization_profitable_p): Adjust. Compute | |
23859 | actual scalar cost using the cost vector and the add_stmt_cost | |
23860 | machinery. | |
23861 | ||
23862 | 2018-05-09 Segher Boessenkool <segher@kernel.crashing.org> | |
23863 | ||
23864 | PR rtl-optimization/85645 | |
23865 | * config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET | |
23866 | in the REG_CFA_REGISTER note for LR, don't leave it empty. | |
23867 | ||
23868 | 2018-05-09 Segher Boessenkool <segher@kernel.crashing.org> | |
23869 | ||
23870 | PR rtl-optimization/85645 | |
23871 | * shrink-wrap.c (spread_components): Return a boolean saying if | |
23872 | anything was changed. | |
23873 | (try_shrink_wrapping_separate): Iterate spread_components until | |
23874 | nothing changes anymore. | |
23875 | ||
23876 | 2018-05-09 Segher Boessenkool <segher@kernel.crashing.org> | |
23877 | ||
23878 | PR rtl-optimization/85645 | |
23879 | * regrename.c (build_def_use): Also kill the chains that include the | |
23880 | destination of a REG_CFA_REGISTER note. | |
23881 | ||
23882 | 2018-05-09 Segher Boessenkool <segher@kernel.crashing.org> | |
23883 | ||
23884 | PR rtl-optimization/85645 | |
23885 | * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an | |
23886 | insn that has a REG_CFA_REGISTER note. | |
23887 | ||
23888 | 2018-05-09 Richard Sandiford <richard.sandiford@linaro.org> | |
23889 | ||
23890 | * cfgexpand.c (expand_clobber): New function. | |
23891 | (expand_gimple_stmt_1): Use it. | |
23892 | * tree-vect-stmts.c (vect_clobber_variable): New function, | |
23893 | split out from... | |
23894 | (vectorizable_simd_clone_call): ...here. | |
23895 | (vectorizable_store): Emit a clobber either side of an | |
23896 | IFN_STORE_LANES sequence. | |
23897 | (vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence. | |
23898 | ||
23899 | 2018-05-09 Tom de Vries <tom@codesourcery.com> | |
23900 | ||
23901 | PR target/85626 | |
23902 | * config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true") | |
23903 | (define_insn "trap_if_false"): Add exit after trap. | |
23904 | ||
23905 | 2018-05-09 Eric Botcazou <ebotcazou@adacore.com> | |
23906 | ||
23907 | PR rtl-optimization/85638 | |
23908 | * bb-reorder.c: Include common/common-target.h. | |
23909 | (create_forwarder_block): New function extracted from... | |
23910 | (fix_up_crossing_landing_pad): ...here. Rename into... | |
23911 | (dw2_fix_up_crossing_landing_pad): ...this. | |
23912 | (sjlj_fix_up_crossing_landing_pad): New function. | |
23913 | (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, | |
23914 | call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges | |
23915 | from both partitions and exit the loop after one iteration. | |
23916 | ||
23917 | 2018-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
23918 | ||
23919 | Revert: | |
23920 | * doc/extend.texi (PowerPC Built-in Functions): Rename this | |
23921 | subsection. | |
23922 | (Basic PowerPC Built-in Functions): The new name of the | |
23923 | subsection previously known as "PowerPC Built-in Functions". | |
23924 | (Basic PowerPC Built-in Functions Available on all Configurations): | |
23925 | New subsubsection. | |
23926 | (Basic PowerPC Built-in Functions Available on ISA 2.05): New | |
23927 | subsubsection. | |
23928 | (Basic PowerPC Built-in Functions Available on ISA 2.06): New | |
23929 | subsubsection. | |
23930 | (Basic PowerPC Built-in Functions Available on ISA 2.07): New | |
23931 | subsubsection. | |
23932 | (Basic PowerPC Built-in Functions Available on ISA 3.0): New | |
23933 | subsubsection. | |
23934 | ||
23935 | 2018-05-08 Jim Wilson <jimw@sifive.com> | |
23936 | ||
23937 | * config/riscv/linux.h (MUSL_ABI_SUFFIX): Delete unnecessary backslash. | |
23938 | (LD_EMUL_SUFFIX): New. | |
23939 | (LINK_SPEC): Use it. | |
23940 | ||
23941 | 2018-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
23942 | ||
23943 | * doc/extend.texi (PowerPC Built-in Functions): Rename this | |
23944 | subsection. | |
23945 | (Basic PowerPC Built-in Functions): The new name of the | |
23946 | subsection previously known as "PowerPC Built-in Functions". | |
23947 | (Basic PowerPC Built-in Functions Available on all Configurations): | |
23948 | New subsubsection. | |
23949 | (Basic PowerPC Built-in Functions Available on ISA 2.05): New | |
23950 | subsubsection. | |
23951 | (Basic PowerPC Built-in Functions Available on ISA 2.06): New | |
23952 | subsubsection. | |
23953 | (Basic PowerPC Built-in Functions Available on ISA 2.07): New | |
23954 | subsubsection. | |
23955 | (Basic PowerPC Built-in Functions Available on ISA 3.0): New | |
23956 | subsubsection. | |
23957 | ||
23958 | 2018-05-08 Jakub Jelinek <jakub@redhat.com> | |
23959 | ||
23960 | PR target/85683 | |
23961 | * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0 | |
23962 | after cmpelim optimization. | |
23963 | ||
23964 | 2018-05-08 Olga Makhotina <olga.makhotina@intel.com> | |
23965 | ||
23966 | * config.gcc: Support "goldmont". | |
23967 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect "goldmont". | |
23968 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
23969 | PROCESSOR_GOLDMONT. | |
23970 | * config/i386/i386.c (m_GOLDMONT): Define. | |
23971 | (processor_target_table): Add "goldmont". | |
23972 | (PTA_GOLDMONT): Define. | |
23973 | (ix86_lea_outperforms): Add TARGET_GOLDMONT. | |
23974 | (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT. | |
23975 | (fold_builtin_cpu): Add M_INTEL_GOLDMONT. | |
23976 | (fold_builtin_cpu): Add "goldmont". | |
23977 | (ix86_add_stmt_cost): Add TARGET_GOLDMONT. | |
23978 | (ix86_option_override_internal): Add "goldmont". | |
23979 | * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT. | |
23980 | (processor_type): Add PROCESSOR_GOLDMONT. | |
23981 | * config/i386/i386.md: Add CPU "glm". | |
23982 | * config/i386/glm.md: New file. | |
23983 | * config/i386/x86-tune.def: Add m_GOLDMONT. | |
23984 | * doc/invoke.texi: Add goldmont as x86 -march=/-mtune= CPU type. | |
23985 | ||
23986 | 2018-05-08 Jakub Jelinek <jakub@redhat.com> | |
23987 | ||
23988 | PR target/85572 | |
23989 | * config/i386/i386.c (ix86_expand_sse2_abs): Handle E_V2DImode and | |
23990 | E_V4DImode. | |
23991 | * config/i386/sse.md (abs<mode>2): Use VI_AVX2 iterator instead of | |
23992 | VI1248_AVX512VL_AVX512BW. Handle V2DImode and V4DImode if not | |
23993 | TARGET_AVX512VL using ix86_expand_sse2_abs. Formatting fixes. | |
23994 | ||
23995 | PR target/85317 | |
23996 | * config/i386/i386.c (ix86_fold_builtin): Handle | |
23997 | IX86_BUILTIN_{,P}MOVMSK{PS,PD,B}{,128,256}. | |
23998 | ||
23999 | PR target/85480 | |
24000 | * config/i386/sse.md (ssequaterinsnmode): New mode attribute. | |
24001 | (*<extract_type>_vinsert<shuffletype><extract_suf>_0): New pattern. | |
24002 | ||
24003 | 2018-05-08 Richard Earnshaw <rearnsha@arm.com> | |
24004 | ||
24005 | PR target/85658 | |
24006 | * config/arm/parsecpu.awk (check_cpu): Fix operator precedence. | |
24007 | (check_arch): Likewise. | |
24008 | (check_fpu): Return the result rather than printing it. | |
24009 | (end arch): Fix operator precedence. | |
24010 | (end cpu): Likewise. | |
24011 | (END): Print the result from check_fpu. | |
24012 | ||
24013 | 2018-05-08 Richard Sandiford <richard.sandiford@linaro.org> | |
24014 | Alan Hayward <alan.hayward@arm.com> | |
24015 | David Sherwood <david.sherwood@arm.com> | |
24016 | ||
24017 | * config/aarch64/aarch64-sve.md (*pred_cmp<cmp_op><mode>_combine) | |
24018 | (*pred_cmp<cmp_op><mode>, *fcm<cmp_op><mode>_and_combine) | |
24019 | (*fcmuo<mode>_and_combine, *fcm<cmp_op><mode>_and) | |
24020 | (*fcmuo<mode>_and): New patterns. | |
24021 | ||
24022 | 2018-05-08 Richard Sandiford <richard.sandiford@linaro.org> | |
24023 | ||
24024 | * config/aarch64/iterators.md (UNSPEC_COND_LO, UNSPEC_COND_LS) | |
24025 | (UNSPEC_COND_HI, UNSPEC_COND_HS, UNSPEC_COND_UO): Delete. | |
24026 | (SVE_INT_CMP, SVE_FP_CMP): New code iterators. | |
24027 | (cmp_op, sve_imm_con): New code attributes. | |
24028 | (SVE_COND_INT_CMP, imm_con): Delete. | |
24029 | (cmp_op): Remove above unspecs from int attribute. | |
24030 | * config/aarch64/aarch64-sve.md (*vec_cmp<cmp_op>_<mode>): Rename | |
24031 | to... | |
24032 | (*cmp<cmp_op><mode>): ...this. Use UNSPEC_MERGE_PTRUE instead of | |
24033 | comparison-specific unspecs. | |
24034 | (*vec_cmp<cmp_op>_<mode>_ptest): Rename to... | |
24035 | (*cmp<cmp_op><mode>_ptest): ...this and adjust likewise. | |
24036 | (*vec_cmp<cmp_op>_<mode>_cc): Rename to... | |
24037 | (*cmp<cmp_op><mode>_cc): ...this and adjust likewise. | |
24038 | (*vec_fcm<cmp_op><mode>): Rename to... | |
24039 | (*fcm<cmp_op><mode>): ...this and adjust likewise. | |
24040 | (*vec_fcmuo<mode>): Rename to... | |
24041 | (*fcmuo<mode>): ...this and adjust likewise. | |
24042 | (*pred_fcm<cmp_op><mode>): New pattern. | |
24043 | * config/aarch64/aarch64.c (aarch64_emit_unop, aarch64_emit_binop) | |
24044 | (aarch64_emit_sve_ptrue_op, aarch64_emit_sve_ptrue_op_cc): New | |
24045 | functions. | |
24046 | (aarch64_unspec_cond_code): Remove handling of LTU, GTU, LEU, GEU | |
24047 | and UNORDERED. | |
24048 | (aarch64_gen_unspec_cond, aarch64_emit_unspec_cond): Delete. | |
24049 | (aarch64_emit_sve_predicated_cond): New function. | |
24050 | (aarch64_expand_sve_vec_cmp_int): Use aarch64_emit_sve_ptrue_op_cc. | |
24051 | (aarch64_emit_unspec_cond_or): Replace with... | |
24052 | (aarch64_emit_sve_or_conds): ...this new function. Use | |
24053 | aarch64_emit_sve_ptrue_op for the individual comparisons and | |
24054 | aarch64_emit_binop to OR them together. | |
24055 | (aarch64_emit_inverted_unspec_cond): Replace with... | |
24056 | (aarch64_emit_sve_inverted_cond): ...this new function. Use | |
24057 | aarch64_emit_sve_ptrue_op for the comparison and | |
24058 | aarch64_emit_unop to invert the result. | |
24059 | (aarch64_expand_sve_vec_cmp_float): Update after the above | |
24060 | changes. Use aarch64_emit_sve_ptrue_op for native comparisons. | |
24061 | ||
24062 | 2018-05-07 Nathan Sidwell <nathan@acm.org> | |
24063 | ||
24064 | * doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope. | |
24065 | * doc/extend.texi (Deprecated Features): Remove -fno-for-scope | |
24066 | (Backwards Compatibility): Likewise. | |
24067 | ||
24068 | 2018-05-07 Luis Machado <luis.machado@linaro.org> | |
24069 | ||
24070 | PR bootstrap/85681 | |
24071 | Revert: | |
24072 | 2018-05-07 Luis Machado <luis.machado@linaro.org> | |
24073 | ||
24074 | * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) | |
24075 | <prefetch_dynamic_strides>: New const bool field. | |
24076 | * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include | |
24077 | prefetch_dynamic_strides. | |
24078 | (exynosm1_prefetch_tune): Likewise. | |
24079 | (thunderxt88_prefetch_tune): Likewise. | |
24080 | (thunderx_prefetch_tune): Likewise. | |
24081 | (thunderx2t99_prefetch_tune): Likewise. | |
24082 | (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides | |
24083 | to false. | |
24084 | (aarch64_override_options_internal): Update to set | |
24085 | PARAM_PREFETCH_DYNAMIC_STRIDES. | |
24086 | * doc/invoke.texi (prefetch-dynamic-strides): Document new option. | |
24087 | * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. | |
24088 | * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. | |
24089 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for | |
24090 | prefetch-dynamic-strides setting. | |
24091 | ||
24092 | 2018-05-07 Luis Machado <luis.machado@linaro.org> | |
24093 | ||
24094 | * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) | |
24095 | <minimum_stride>: New const int field. | |
24096 | * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include | |
24097 | minimum_stride field. | |
24098 | (exynosm1_prefetch_tune): Likewise. | |
24099 | (thunderxt88_prefetch_tune): Likewise. | |
24100 | (thunderx_prefetch_tune): Likewise. | |
24101 | (thunderx2t99_prefetch_tune): Likewise. | |
24102 | (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. | |
24103 | (aarch64_override_options_internal): Update to set | |
24104 | PARAM_PREFETCH_MINIMUM_STRIDE. | |
24105 | * doc/invoke.texi (prefetch-minimum-stride): Document new option. | |
24106 | * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. | |
24107 | * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. | |
24108 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if | |
24109 | stride is constant and is below the minimum stride threshold. | |
24110 | ||
24111 | 2018-05-07 Luis Machado <luis.machado@linaro.org> | |
24112 | ||
24113 | * config/aarch64/aarch64.c (qdf24xx_prefetch_tune) <l2_cache_size>: Set | |
24114 | to 512. | |
24115 | ||
24116 | 2018-05-07 Luis Machado <luis.machado@linaro.org> | |
24117 | ||
24118 | * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) | |
24119 | <prefetch_dynamic_strides>: New const bool field. | |
24120 | * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include | |
24121 | prefetch_dynamic_strides. | |
24122 | (exynosm1_prefetch_tune): Likewise. | |
24123 | (thunderxt88_prefetch_tune): Likewise. | |
24124 | (thunderx_prefetch_tune): Likewise. | |
24125 | (thunderx2t99_prefetch_tune): Likewise. | |
24126 | (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides | |
24127 | to false. | |
24128 | (aarch64_override_options_internal): Update to set | |
24129 | PARAM_PREFETCH_DYNAMIC_STRIDES. | |
24130 | * doc/invoke.texi (prefetch-dynamic-strides): Document new option. | |
24131 | * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. | |
24132 | * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. | |
24133 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for | |
24134 | prefetch-dynamic-strides setting. | |
24135 | ||
24136 | 2018-05-07 Luis Machado <luis.machado@linaro.org> | |
24137 | ||
24138 | * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) | |
24139 | <minimum_stride>: New const int field. | |
24140 | * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include | |
24141 | minimum_stride field. | |
24142 | (exynosm1_prefetch_tune): Likewise. | |
24143 | (thunderxt88_prefetch_tune): Likewise. | |
24144 | (thunderx_prefetch_tune): Likewise. | |
24145 | (thunderx2t99_prefetch_tune): Likewise. | |
24146 | (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. | |
24147 | (aarch64_override_options_internal): Update to set | |
24148 | PARAM_PREFETCH_MINIMUM_STRIDE. | |
24149 | * doc/invoke.texi (prefetch-minimum-stride): Document new option. | |
24150 | * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. | |
24151 | * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. | |
24152 | * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if | |
24153 | stride is constant and is below the minimum stride threshold. | |
24154 | ||
24155 | 2018-05-06 Jakub Jelinek <jakub@redhat.com> | |
24156 | ||
24157 | PR c++/85659 | |
24158 | * cfgexpand.c (expand_asm_stmt): Don't create a temporary if | |
24159 | the type is addressable. Don't force op into register if it has | |
24160 | BLKmode. | |
24161 | ||
24162 | 2018-05-05 Roland McGrath <mcgrathr@google.com> | |
24163 | ||
24164 | PR other/77609 | |
24165 | * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for | |
24166 | any section for which we don't know a specific type it should have, | |
24167 | regardless of name. Previously this was done only for the exact | |
24168 | names ".init_array", ".fini_array", and ".preinit_array". | |
24169 | (default_elf_asm_named_section): Add comment about | |
24170 | relationship with default_section_type_flags and SECTION_NOTYPE. | |
24171 | (get_section): Don't consider it a type conflict if one side has | |
24172 | SECTION_NOTYPE and the other doesn't, as long as neither has the | |
24173 | SECTION_BSS et al used in the default_section_type_flags logic. | |
24174 | ||
24175 | 2018-05-05 Tom de Vries <tom@codesourcery.com> | |
24176 | ||
24177 | PR target/85653 | |
24178 | * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_3): Define. | |
24179 | (workaround_barsyncs): New function. | |
24180 | (nvptx_reorg): Use workaround_barsyncs. | |
24181 | * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. | |
24182 | (define_expand "nvptx_membar_cta"): New define_expand. | |
24183 | (define_insn "*nvptx_membar_cta"): New insn. | |
24184 | ||
24185 | 2018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> | |
24186 | ||
24187 | * brig-builtins.def: Add consts to ptrs etc. in BRIG builtin defs. | |
24188 | To improve optimization opportunities. | |
24189 | * builtin-types.def: The new needed builtin types for the above. | |
24190 | ||
24191 | 2018-05-04 Richard Biener <rguenther@suse.de> | |
24192 | ||
24193 | * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check. | |
24194 | * gimple-ssa-store-merging.c | |
24195 | (imm_store_chain_info::output_merged_store): Remove redundant create, | |
24196 | release split_store vector contents on failure. | |
24197 | * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking | |
24198 | scalar stmt vector on cache hit. | |
24199 | ||
24200 | 2018-05-04 Segher Boessenkool <segher@kernel.crashing.org> | |
24201 | ||
24202 | * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Remove | |
24203 | Xilinx FP support. | |
24204 | * config.gcc (powerpc-xilinx-eabi*): Remove. | |
24205 | * config/rs6000/predicates.md (easy_fp_constant): Remove Xilinx FP | |
24206 | support. | |
24207 | (fusion_addis_mem_combo_load): Ditto. | |
24208 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove Xilinx | |
24209 | FP support. | |
24210 | (rs6000_cpu_cpp_builtins): Ditto. | |
24211 | * config/rs6000/rs6000-linux.c | |
24212 | (rs6000_linux_float_exceptions_rounding_supported_p): Ditto. | |
24213 | * config/rs6000/rs6000-opts.h (enum fpu_type_t): Delete. | |
24214 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove Xilinx FP | |
24215 | support. | |
24216 | (rs6000_setup_reg_addr_masks): Ditto. | |
24217 | (rs6000_init_hard_regno_mode_ok): Ditto. | |
24218 | (rs6000_option_override_internal): Ditto. | |
24219 | (legitimate_lo_sum_address_p): Ditto. | |
24220 | (rs6000_legitimize_address): Ditto. | |
24221 | (rs6000_legitimize_reload_address): Ditto. | |
24222 | (rs6000_legitimate_address_p): Ditto. | |
24223 | (abi_v4_pass_in_fpr): Ditto. | |
24224 | (setup_incoming_varargs): Ditto. | |
24225 | (rs6000_gimplify_va_arg): Ditto. | |
24226 | (rs6000_split_multireg_move): Ditto. | |
24227 | (rs6000_savres_strategy): Ditto. | |
24228 | (rs6000_emit_prologue_components): Ditto. | |
24229 | (rs6000_emit_epilogue_components): Ditto. | |
24230 | (rs6000_emit_prologue): Ditto. | |
24231 | (rs6000_emit_epilogue): Ditto. | |
24232 | (rs6000_elf_file_end): Ditto. | |
24233 | (rs6000_function_value): Ditto. | |
24234 | (rs6000_libcall_value): Ditto. | |
24235 | * config/rs6000/rs6000.h: Ditto. | |
24236 | (TARGET_MINMAX_SF, TARGET_MINMAX_DF): Delete, merge to ... | |
24237 | (TARGET_MINMAX): ... this. New. | |
24238 | (TARGET_SF_FPR, TARGET_DF_FPR, TARGET_SF_INSN, TARGET_DF_INSN): Delete. | |
24239 | * config/rs6000/rs6000.md: Remove Xilinx FP support. | |
24240 | (*movsi_internal1_single): Delete. | |
24241 | * config/rs6000/rs6000.opt (msingle-float, mdouble-float, msimple-fpu, | |
24242 | mfpu=, mxilinx-fpu): Delete. | |
24243 | * config/rs6000/singlefp.h: Delete. | |
24244 | * config/rs6000/sysv4.h: Remove Xilinx FP support. | |
24245 | * config/rs6000/t-rs6000: Ditto. | |
24246 | * config/rs6000/t-xilinx: Delete. | |
24247 | * config/rs6000/titan.md: Adjust for fp_type removal. | |
24248 | * config/rs6000/vsx.md: Remove Xilinx FP support. | |
24249 | (VStype_simple): Delete. | |
24250 | (VSfptype_simple, VSfptype_mul, VSfptype_div, VSfptype_sqrt): Delete. | |
24251 | * config/rs6000/xfpu.h: Delete. | |
24252 | * config/rs6000/xfpu.md: Delete. | |
24253 | * config/rs6000/xilinx.h: Delete. | |
24254 | * config/rs6000/xilinx.opt: Delete. | |
24255 | * doc/invoke.texi (RS/6000 and PowerPC Options): Remove | |
24256 | -msingle-float, -mdouble-float, -msimple-fpu, -mfpu=, and -mxilinx-fpu. | |
24257 | ||
24258 | 2018-05-04 Tom de Vries <tom@codesourcery.com> | |
24259 | ||
24260 | PR libgomp/85639 | |
24261 | * builtins.c (expand_builtin_goacc_parlevel_id_size): Handle null target | |
24262 | if ignore == 0. | |
24263 | ||
24264 | 2018-05-04 Richard Biener <rguenther@suse.de> | |
24265 | ||
24266 | PR middle-end/85627 | |
24267 | * tree-complex.c (update_complex_assignment): We are always in SSA form. | |
24268 | (expand_complex_div_wide): Likewise. | |
24269 | (expand_complex_operations_1): Likewise. | |
24270 | (expand_complex_libcall): Preserve EH info of the original stmt. | |
24271 | (tree_lower_complex): Handle removed blocks. | |
24272 | * tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW | |
24273 | on complex multiplication and division libcall builtins. | |
24274 | ||
24275 | 2018-05-04 Richard Biener <rguenther@suse.de> | |
24276 | ||
24277 | PR middle-end/85574 | |
24278 | * fold-const.c (negate_expr_p): Restrict negation of operand | |
24279 | zero of a division to when we know that can happen without | |
24280 | overflow. | |
24281 | (fold_negate_expr_1): Likewise. | |
24282 | ||
24283 | 2018-05-04 Jakub Jelinek <jakub@redhat.com> | |
24284 | ||
24285 | PR libstdc++/85466 | |
24286 | * real.h (real_nextafter): Declare. | |
24287 | * real.c (real_nextafter): New function. | |
24288 | * fold-const-call.c (fold_const_nextafter): New function. | |
24289 | (fold_const_call_sss): Call it for CASE_CFN_NEXTAFTER and | |
24290 | CASE_CFN_NEXTTOWARD. | |
24291 | (fold_const_call_1): For CASE_CFN_NEXTTOWARD call fold_const_call_sss | |
24292 | even when arg1_mode is different from arg0_mode. | |
24293 | ||
24294 | 2018-05-03 Nathan Sidwell <nathan@acm.org> | |
24295 | ||
24296 | * doc/extend.texi (Deprecated Features): Remove | |
24297 | -ffriend-injection. | |
24298 | (Backwards Compatibility): Likewise. | |
24299 | * doc/invoke.texi (C++ Language Options): Likewise. | |
24300 | (C++ Dialect Options): Likewise. | |
24301 | ||
24302 | 2018-05-03 Jakub Jelinek <jakub@redhat.com> | |
24303 | ||
24304 | PR target/85530 | |
24305 | * config/i386/avx512fintrin.h (_mm512_mullox_epi64, | |
24306 | _mm512_mask_mullox_epi64): New intrinsics. | |
24307 | ||
24308 | 2018-05-03 Tom de Vries <tom@codesourcery.com> | |
24309 | ||
24310 | PR testsuite/85106 | |
24311 | * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization | |
24312 | dump files): Add offload-tree. | |
24313 | ||
24314 | 2018-05-03 Richard Biener <rguenther@suse.de> | |
24315 | ||
24316 | PR tree-optimization/85615 | |
24317 | * tree-ssa-threadupdate.c (thread_block_1): Only allow exits | |
24318 | to loops not nested in BBs loop father to avoid creating multi-entry | |
24319 | loops. | |
24320 | ||
24321 | 2018-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24322 | ||
24323 | PR tree-optimization/70291 | |
24324 | * tree-complex.c (expand_complex_libcall): Add type, inplace_p | |
24325 | arguments. Change return type to tree. Emit libcall as a new | |
24326 | statement rather than replacing existing one when inplace_p is true. | |
24327 | (expand_complex_multiplication_components): New function. | |
24328 | (expand_complex_multiplication): Expand floating-point complex | |
24329 | multiplication using the above. | |
24330 | (expand_complex_division): Rename inner_type parameter to type. | |
24331 | Update expand_complex_libcall call-site. | |
24332 | (expand_complex_operations_1): Update expand_complex_multiplication | |
24333 | and expand_complex_division call-sites. | |
24334 | ||
24335 | 2018-05-02 Jakub Jelinek <jakub@redhat.com> | |
24336 | ||
24337 | PR target/85582 | |
24338 | * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, | |
24339 | *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask, | |
24340 | *<shift_insn><dwi>3_doubleword_mask_1): In condition require that | |
24341 | the highest significant bit of the shift count mask is clear. In | |
24342 | check whether and[sq]i3 is needed verify that all significant bits | |
24343 | of the shift count other than the highest are set. | |
24344 | ||
24345 | 2018-05-02 Tom de Vries <tom@codesourcery.com> | |
24346 | ||
24347 | PR libgomp/82428 | |
24348 | * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define. | |
24349 | * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID) | |
24350 | (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin. | |
24351 | * builtins.c (expand_builtin_goacc_parlevel_id_size): New function. | |
24352 | (expand_builtin): Call expand_builtin_goacc_parlevel_id_size. | |
24353 | * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and | |
24354 | __builtin_goacc_parlevel_size. | |
24355 | ||
24356 | 2018-05-02 Richard Biener <rguenther@suse.de> | |
24357 | ||
24358 | PR tree-optimization/85597 | |
24359 | * tree-vect-stmts.c (vectorizable_operation): For ternary SLP | |
24360 | do not use split vect_get_vec_defs call but call vect_get_slp_defs | |
24361 | directly. | |
24362 | ||
24363 | 2018-05-02 Tom de Vries <tom@codesourcery.com> | |
24364 | ||
24365 | PR testsuite/85106 | |
24366 | * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization | |
24367 | dump files): Add ltrans-tree. | |
24368 | ||
24369 | 2018-05-02 Tom de Vries <tom@codesourcery.com> | |
24370 | ||
24371 | PR testsuite/85106 | |
24372 | * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization | |
24373 | dump files): Add wpa-ipa. | |
24374 | ||
24375 | 2018-05-02 Segher Boessenkool <segher@kernel.crashing.org> | |
24376 | ||
24377 | * config.gcc (powerpc*-*-*): Remove paired.h. Unsupport the | |
24378 | powerpc*-*-linux*paired* target. | |
24379 | * config/rs6000/750cl.h: Delete. | |
24380 | * config/rs6000/paired.h: Delete. | |
24381 | * config/rs6000/paired.md: Delete. | |
24382 | * config/rs6000/predicates.md (easy_vector_constant): Remove paired | |
24383 | float support. | |
24384 | * config/rs6000/rs6000-builtin.def: Remove paired float support. | |
24385 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update | |
24386 | comment. Remove paired float support. | |
24387 | * config/rs6000/rs6000-modes.def: Remove V2SF and V2SI. | |
24388 | * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete | |
24389 | VECTOR_PAIRED. | |
24390 | * config/rs6000/rs6000-protos.h (paired_expand_vector_init, | |
24391 | paired_emit_vector_cond_expr, paired_expand_vector_move): Delete | |
24392 | declarations. | |
24393 | * config/rs6000/rs6000.c: Remove paired float support. | |
24394 | (paired_expand_vector_init, paired_expand_vector_move, | |
24395 | paired_emit_vector_compare, paired_emit_vector_cond_expr, | |
24396 | (paired_expand_lv_builtin, paired_expand_stv_builtin, | |
24397 | paired_expand_builtin, paired_expand_predicate_builtin, | |
24398 | paired_init_builtins): Delete. | |
24399 | * config/rs6000/rs6000.h: Remove paired float support. | |
24400 | * config/rs6000/rs6000.md: Remove paired float support. | |
24401 | (move_from_CR_ov_bit): Delete. | |
24402 | * config/rs6000/rs6000.opt (mpaired): Delete. | |
24403 | * config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES. | |
24404 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired. | |
24405 | ||
24406 | 2018-05-02 Richard Biener <rguenther@suse.de> | |
24407 | ||
24408 | PR middle-end/85567 | |
24409 | * gimplify.c (gimplify_save_expr): When in SSA form allow | |
24410 | SAVE_EXPRs to compute to SSA vars. | |
24411 | ||
24412 | 2018-05-02 Jakub Jelinek <jakub@redhat.com> | |
24413 | ||
24414 | PR target/85582 | |
24415 | * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, | |
24416 | *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask, | |
24417 | *<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't | |
24418 | clobber operands[2], instead use a new pseudo. Formatting fixes. | |
24419 | ||
24420 | 2018-05-02 Richard Sandiford <richard.sandiford@linaro.org> | |
24421 | ||
24422 | PR tree-optimization/85586 | |
24423 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only | |
24424 | exit early for statements in the same group if the accesses are | |
24425 | not strided. | |
24426 | ||
24427 | 2018-05-02 Tom de Vries <tom@codesourcery.com> | |
24428 | ||
24429 | PR lto/85451 | |
24430 | * lto-wrapper.c (compile_offload_image): Add "could not find mkoffload" | |
24431 | error message. | |
24432 | ||
24433 | 2018-05-01 Marc Glisse <marc.glisse@inria.fr> | |
24434 | ||
24435 | PR tree-optimization/85143 | |
24436 | * match.pd (A<B&A<C): Extend to BIT_IOR_EXPR. | |
24437 | ||
24438 | 2018-05-01 Tom de Vries <tom@codesourcery.com> | |
24439 | ||
24440 | PR lto/85451 | |
24441 | * config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler | |
24442 | not found" error message. | |
24443 | ||
24444 | 2018-05-01 Tom de Vries <tom@codesourcery.com> | |
24445 | ||
24446 | PR other/83786 | |
24447 | * vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define. | |
24448 | * vec.c (test_ordered_remove_if): New function. | |
24449 | (vec_c_tests): Call test_ordered_remove_if. | |
24450 | * dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO. | |
24451 | * lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF. | |
24452 | * tree-vect-patterns.c (vect_pattern_recog_1): Use | |
24453 | VEC_ORDERED_REMOVE_IF. | |
24454 | ||
24455 | 2018-05-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
24456 | ||
24457 | PR tree-optimization/82665 | |
24458 | * vr-values.c (vr_values::extract_range_from_binary_expr): Handle | |
24459 | pointer subtraction where arguments come from a memchr call. | |
24460 | ||
24461 | 2018-05-01 Jakub Jelinek <jakub@redhat.com> | |
24462 | ||
24463 | * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use | |
24464 | --push-state --as-needed and --pop-state instead of --as-needed and | |
24465 | --no-as-needed if ld supports it. | |
24466 | * configure: Regenerated. | |
24467 | ||
24468 | PR web/85578 | |
24469 | * doc/install.texi2html: Replace _002d with - and _002a with * in | |
24470 | generated html files using sed. | |
24471 | ||
24472 | 2018-04-30 David Malcolm <dmalcolm@redhat.com> | |
24473 | ||
24474 | PR c++/85523 | |
24475 | * gcc-rich-location.c (blank_line_before_p): New function. | |
24476 | (use_new_line): New function. | |
24477 | (gcc_rich_location::add_fixit_insert_formatted): New function. | |
24478 | * gcc-rich-location.h | |
24479 | (gcc_rich_location::add_fixit_insert_formatted): New function. | |
24480 | ||
24481 | 2018-04-30 David Malcolm <dmalcolm@redhat.com> | |
24482 | ||
24483 | * selftest.c (assert_streq): Rename "expected" and "actual" to | |
24484 | "val1" and "val2". Extend NULL-handling to cover both inputs | |
24485 | symmetrically, while still requiring both to be non-NULL for a pass. | |
24486 | * selftest.h (assert_streq): Rename "expected" and "actual" to | |
24487 | "val1" and "val2". | |
24488 | (ASSERT_EQ): Likewise. | |
24489 | (ASSERT_EQ_AT): Likewise. | |
24490 | (ASSERT_KNOWN_EQ): Likewise. | |
24491 | (ASSERT_KNOWN_EQ_AT): Likewise. | |
24492 | (ASSERT_NE): Likewise. | |
24493 | (ASSERT_MAYBE_NE): Likewise. | |
24494 | (ASSERT_MAYBE_NE_AT): Likewise. | |
24495 | (ASSERT_STREQ): Likewise. Clarify that both must be non-NULL for | |
24496 | the assertion to pass. | |
24497 | (ASSERT_STREQ_AT): Likewise. | |
24498 | ||
24499 | 2018-04-30 Jonathan Wakely <jwakely@redhat.com> | |
24500 | ||
24501 | * doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify | |
24502 | interaction with -pie. | |
24503 | ||
24504 | 2018-04-30 David Malcolm <dmalcolm@redhat.com> | |
24505 | ||
24506 | * selftest.h: Fix alphabetization of per-source-file selftest | |
24507 | declarations. | |
24508 | ||
24509 | 2018-04-30 Jason Merrill <jason@redhat.com> | |
24510 | ||
24511 | PR c++/61982 - dead stores to destroyed objects. | |
24512 | * gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS | |
24513 | of clobber. | |
24514 | ||
24515 | 2018-04-30 Jason Merrill <jason@redhat.com> | |
24516 | ||
24517 | * tree.c (build_clobber): New. | |
24518 | * tree.h: Declare it. | |
24519 | * gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it. | |
24520 | ||
24521 | 2018-04-30 David Malcolm <dmalcolm@redhat.com> | |
24522 | ||
24523 | * diagnostic-show-locus.c (layout::layout): Update for | |
24524 | location_get_source_line returning a char_span. | |
24525 | (struct char_span): Move to input.h. | |
24526 | (struct correction): Update for fields in char_span becoming | |
24527 | private. | |
24528 | (struct source_line): Update for location_get_source_line | |
24529 | returning a char_span. | |
24530 | (layout::print_line): Likewise. | |
24531 | * edit-context.c (edited_file::print_content): Likewise. | |
24532 | (edited_file::print_diff_hunk): Likewise. | |
24533 | (edited_file::print_run_of_changed_lines): Likewise. | |
24534 | (edited_file::get_num_lines): Likewise. | |
24535 | (edited_line::edited_line): Likewise. | |
24536 | * final.c (asm_show_source): Likewise. | |
24537 | * input.c (location_get_source_line): Convert return type | |
24538 | from const char * to char_span, losing the final "line_len" | |
24539 | param. | |
24540 | (dump_location_info): Update for the above. | |
24541 | (get_substring_ranges_for_loc): Likewise. Use a char_span | |
24542 | when handling the literal within the line. | |
24543 | (test_reading_source_line): Update for location_get_source_line | |
24544 | returning a char_span. | |
24545 | * input.h (class char_span): Move here from | |
24546 | diagnostic-show-locus.c, converting from a struct to a class. | |
24547 | Make data members private. | |
24548 | (char_span::operator bool): New. | |
24549 | (char_span::length): New. | |
24550 | (char_span::get_buffer): New. | |
24551 | (char_span::operator[]): New. | |
24552 | (char_span::subspan): Make const. | |
24553 | (char_span::xstrdup): New. | |
24554 | (location_get_source_line): Convert return type from const char * | |
24555 | to char_span, losing the final "line_size" param. | |
24556 | ||
24557 | 2018-04-30 Jan Hubicka <jh@suse.cz> | |
24558 | ||
24559 | * lto-wrapper.c (ltrans_priorities): New static var. | |
24560 | (cmp_priority): New. | |
24561 | (run_gcc): Read priorities and if doing parallel build order | |
24562 | the Makefile by them. | |
24563 | ||
24564 | 2018-04-30 David Malcolm <dmalcolm@redhat.com> | |
24565 | ||
24566 | * input.h (builtins_location_check): Convert to a STATIC_ASSERT. | |
24567 | ||
24568 | 2018-04-30 Richard Biener <rguenther@suse.de> | |
24569 | ||
24570 | * tree-cfg.c (verify_address): Remove base argument, add | |
24571 | flag whether to check TREE_ADDRESSABLE and do that. | |
24572 | (verify_expr): Remove. | |
24573 | (verify_types_in_gimple_reference): Add pieces from verify_expr. | |
24574 | (verify_gimple_assign_single): Likewise. | |
24575 | (verify_gimple_switch): Likewise. | |
24576 | (verify_expr_location_1): Dereference tp once. Add (disabled) | |
24577 | piece from verify_expr. | |
24578 | (verify_gimple_in_cfg): Do not call verify_expr on all ops. | |
24579 | ||
24580 | 2018-04-30 Claudiu Zissulescu <claziss@synopsys.com> | |
24581 | ||
24582 | * config/arc/linux.h (CLEAR_INSN_CACHE): Define. | |
24583 | ||
24584 | 2018-04-30 Claudiu Zissulescu <claziss@synopsys.com> | |
24585 | ||
24586 | * config/arc/arc-protos.h (prepare_extend_operands): Remove. | |
24587 | (small_data_pattern): Likewise. | |
24588 | (arc_rewrite_small_data): Likewise. | |
24589 | * config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove. | |
24590 | (LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise. | |
24591 | (get_symbol_alignment): New function. | |
24592 | (legitimate_small_data_address_p): Likewise. | |
24593 | (legitimate_scaled_address): Update, call | |
24594 | legitimate_small_data_address_p. | |
24595 | (output_sdata): New static variable. | |
24596 | (arc_print_operand): Update how we handle small data operands. | |
24597 | (arc_print_operand_address): Likewise. | |
24598 | (arc_legitimate_address_p): Update, use | |
24599 | legitimate_small_data_address_p. | |
24600 | (arc_rewrite_small_data_p): Remove. | |
24601 | (arc_rewrite_small_data_1): Likewise. | |
24602 | (arc_rewrite_small_data): Likewise. | |
24603 | (small_data_pattern): Likewise. | |
24604 | (compact_sda_memory_operand): Update to use | |
24605 | legitimate_small_data_address_p and get_symbol_alignment. | |
24606 | (prepare_move_operands): Don't rewite sdata pattern. | |
24607 | (prepare_extend_operands): Remove. | |
24608 | * config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata | |
24609 | pattern. | |
24610 | (zero_extendqisi2): Likewise. | |
24611 | (zero_extendhisi2): Likewise. | |
24612 | (extendqihi2): Likewise. | |
24613 | (extendqisi2): Likewise. | |
24614 | (extendhisi2): Likewise. | |
24615 | (addsi3): Likewise. | |
24616 | (subsi3): Likewise. | |
24617 | (andsi3): Likewise. | |
24618 | * config/arc/constraints.md (Usd): Change it to memory constraint. | |
24619 | ||
24620 | 2018-04-30 Claudiu Zissulescu <claziss@synopsys.com> | |
24621 | ||
24622 | * config/arc/arc.c (arc_split_move): Allow signed 6-bit constants | |
24623 | as source of std instructions. | |
24624 | * config/arc/arc.md (movsi_insn): Update pattern predicate to | |
24625 | allow 6-bit constants as source for store instructions. | |
24626 | (movdi_insn): Update instruction pattern to allow 6-bit constants | |
24627 | as source for store instructions. | |
24628 | ||
24629 | 2018-04-30 Jonathan Wakely <jwakely@redhat.com> | |
24630 | ||
24631 | * doc/invoke.texi (-fdebug-types-section): Fix grammar. | |
24632 | ||
24633 | 2018-04-30 Nathan Sidwell <nathan@acm.org> | |
24634 | Sandra Loosemore <sandra@codesourcery.com> | |
24635 | ||
24636 | * dumpfile.c (dump_open): Allow '-' for stdout. | |
24637 | * doc/invoke.texi (Developer Options): Document dump filename | |
24638 | determination early. Document stdin/stdout selection. | |
24639 | ||
24640 | 2018-04-30 Andrew Sadek <andrew.sadek.se@gmail.com> | |
24641 | ||
24642 | Microblaze Target: PIC data text relative | |
24643 | ||
24644 | * config/microblaze/microblaze.opt: add new option -mpic-data-text-rel. | |
24645 | * config/microblaze/microblaze-protos.h (microblaze_constant_address_p): | |
24646 | Add declaration. | |
24647 | * config/microblaze/microblaze.h (microblaze_constant_address_p): | |
24648 | CONSTANT_ADDRESS_P definition to microblaze_constant_address_p. | |
24649 | * config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL): | |
24650 | New addressing mode for data-text relative position indepenedent code. | |
24651 | (microblaze_classify_unspec): add 'UNSPEC_TEXT' case -> | |
24652 | 'ADDRESS_SYMBOLIC_TXT_REL'. | |
24653 | (microblaze_classify_address): Add handling for UNSPEC + CONST_INT. | |
24654 | (microblaze_legitimate_pic_operand): Exclude function calls from | |
24655 | pic operands in case of TARGET_PIC_DATA_TEXT_REL option. | |
24656 | (microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible | |
24657 | addresses cases. | |
24658 | (microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. | |
24659 | (print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. | |
24660 | (print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling | |
24661 | for 'address + offset'. | |
24662 | (microblaze_expand_prologue): Add new function prologue call for | |
24663 | 'r20' assignation. | |
24664 | (microblaze_asm_generate_pic_addr_dif_vec): Override new target hook | |
24665 | 'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector | |
24666 | table in case of TARGET_PIC_DATA_TEXT_REL. | |
24667 | (expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'. | |
24668 | * config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL): | |
24669 | Add new macros 'UNSPEC_TEXT', | |
24670 | 'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue | |
24671 | + exclude function calls from 'UNSPEC_PLT' in case of data text | |
24672 | relative mode. | |
24673 | * doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add | |
24674 | new target hook for generating address diff vector tables in case of | |
24675 | flag_pic. | |
24676 | * doc/tm.texi : Regenerate. | |
24677 | * stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition | |
24678 | 'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case | |
24679 | of addr diff vector generation. | |
24680 | * target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add | |
24681 | target hook definition. | |
24682 | * targhooks.h, targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): | |
24683 | Add default function for generate_pic_addr_diff_vec -> flag_pic. | |
24684 | * doc/invoke.texi (Add new pic option): Add new microblaze pic | |
24685 | option for data text relative. | |
24686 | ||
24687 | 2018-04-30 Richard Biener <rguenther@suse.de> | |
24688 | ||
24689 | * tree-chrec.h (evolution_function_is_constant_p): Remove | |
24690 | redundant check. | |
24691 | * tree-cfg.c (tree_node_can_be_shared): Re-order checks. | |
24692 | ||
24693 | 2018-04-30 Richard Biener <rguenther@suse.de> | |
24694 | ||
24695 | PR bootstrap/85571 | |
24696 | * dwarf2out.c (gen_producer_string): Ignore -fchecking[=]. | |
24697 | ||
24698 | 2018-04-30 Richard Biener <rguenther@suse.de> | |
24699 | ||
24700 | PR tree-optimization/28364 | |
24701 | PR tree-optimization/85275 | |
24702 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after | |
24703 | copying first exit test. | |
24704 | ||
24705 | 2018-04-28 Mark Wielaard <mark@klomp.org> | |
24706 | ||
24707 | * dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for | |
24708 | dwarf_version >= 5. | |
24709 | (dwarf_AT): Handle DW_AT_addr_base. | |
24710 | (add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base. | |
24711 | ||
24712 | 2018-04-28 Uros Bizjak <ubizjak@gmail.com> | |
24713 | ||
24714 | PR target/84431 | |
24715 | * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): New pattern. | |
24716 | (*ashl<dwi>3_doubleword_mask_1): Ditto. | |
24717 | (*<shift_insn><dwi>3_doubleword_mask): Ditto. | |
24718 | (*<shift_insn><dwi>3_doubleword_mask_1): Ditto. | |
24719 | ||
24720 | 2018-04-28 Richard Biener <rguenther@suse.de> | |
24721 | ||
24722 | * tree-cfg.c (verify_gimple_phi): Take a gphi * argument. | |
24723 | (verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts | |
24724 | to reflect use. Only add interesting stmts. | |
24725 | ||
24726 | 2018-04-27 Martin Jambor <mjambor@suse.cz> | |
24727 | ||
24728 | PR ipa/85549 | |
24729 | * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure | |
24730 | the jump function allows for passing through aggregate values. | |
24731 | ||
24732 | 2018-04-27 David Malcolm <dmalcolm@redhat.com> | |
24733 | ||
24734 | * input.h (in_system_header_at): Convert from macro to inline | |
24735 | function. | |
24736 | (from_macro_expansion_at): Likewise. | |
24737 | (from_macro_definition_at): Likewise. | |
24738 | ||
24739 | 2018-04-27 Jeff Law <law@redhat.com> | |
24740 | ||
24741 | * config.gcc: Mark tile* targets as deprecated/obsolete. | |
24742 | ||
24743 | 2018-04-27 Richard Biener <rguenther@suse.de> | |
24744 | ||
24745 | * config/aarch64/aarch64.c: Simplify ap.__stack advance and | |
24746 | fix for ILP32. | |
24747 | ||
24748 | 2018-04-27 Richard Biener <rguenther@suse.de> | |
24749 | ||
24750 | * tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable. | |
24751 | ||
24752 | 2018-04-27 Uros Bizjak <ubizjak@gmail.com> | |
24753 | ||
24754 | * config/i386/i386.md (*movti_internal): Substitute Ye constraint | |
24755 | with Yd constraint. Set "preferred_for_speed" attribute from | |
24756 | TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives | |
24757 | with Yd constraint. | |
24758 | (*movdi_internal): Ditto. | |
24759 | (movti_interunit splitters): Remove | |
24760 | TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition. | |
24761 | (movdi_interunit splitters): Ditto. | |
24762 | * config/i386/constraints.md (Ye): Remove. | |
24763 | (Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC. | |
24764 | ||
24765 | 2018-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24766 | ||
24767 | PR target/85512 | |
24768 | * config/aarch64/constraints.md (Usg): Limit to 31. | |
24769 | (Usj): Limit to 63. | |
24770 | ||
24771 | 2018-04-27 Jakub Jelinek <jakub@redhat.com> | |
24772 | ||
24773 | PR tree-optimization/85529 | |
24774 | * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB | |
24775 | argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE, | |
24776 | rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious | |
24777 | zero extension or masking of the MSB bit. | |
24778 | (optimize_range_tests): Add FIRST_BB argument, pass it through | |
24779 | to optimize_range_tests_var_bound. | |
24780 | (maybe_optimize_range_tests, reassociate_bb): Adjust | |
24781 | optimize_range_tests callers. | |
24782 | ||
24783 | 2018-04-26 Richard Biener <rguenther@suse.de> | |
24784 | Jakub Jelinek <jakub@redhat.com> | |
24785 | ||
24786 | * cgraph.h (symbol_table): Just declare debug method here. | |
24787 | * symtab.c (symbol_table::debug): Define. | |
24788 | ||
24789 | 2018-04-26 Eric Botcazou <ebotcazou@adacore.com> | |
24790 | ||
24791 | * loop-invariant.c (may_assign_reg_p): Return false for frame pointer. | |
24792 | ||
24793 | 2018-04-26 Uros Bizjak <ubizjak@gmail.com> | |
24794 | ||
24795 | * config/i386/i386.md ("isa" attribute): Add x64_sse2. | |
24796 | ("enabled" attribute): Handle x64_sse2 "isa" attribute. | |
24797 | (*movdi_internal): Substitute Yi and Yj constraint with x | |
24798 | and Ym and Yn constraint with y constraint. Update "isa" | |
24799 | attribute and set "preferred_for_speed" attribute from | |
24800 | TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives. | |
24801 | (*movsi_internal): Ditto. | |
24802 | (*movdf_internal): Ditto. | |
24803 | (*movsf_internal): Ditto. | |
24804 | (*zero_extendsidi2): Ditto. | |
24805 | * config/i386/sse.md (vec_set<mode>_0): Ditto. | |
24806 | (sse2_loadld): Ditto. | |
24807 | (*vec_extract<ssevecmodelower>_0): Ditto. | |
24808 | (*vec_extractv4si_0_zext_sse4): Ditto. | |
24809 | (vec_concatv2di): Ditto. | |
24810 | (*vec_dup<mode>): Ditto. | |
24811 | * config/i386/mmx.md (*mov<mode>_internal): Ditto. | |
24812 | * config/i386/constraints.md (Yi): Remove. | |
24813 | (Yj): Remove. | |
24814 | (Ym): Remove. | |
24815 | (Yn): Remove. | |
24816 | ||
24817 | 2018-04-26 Nathan Sidwell <nathan@acm.org> | |
24818 | ||
24819 | * dumpfile.c (dump_open): New. | |
24820 | (dump_open_alternate_stream, dump_start, dump_begin): Call it. | |
24821 | (dump_finish): Detect stdio/stderr by value not name. | |
24822 | ||
24823 | 2018-04-26 Jonathan Wakely <jwakely@redhat.com> | |
24824 | ||
24825 | * doc/invoke.texi (-Wreturn-type): Document default status for C++. | |
24826 | ||
24827 | 2018-04-26 Tom de Vries <tom@codesourcery.com> | |
24828 | ||
24829 | PR target/84952 | |
24830 | * config/nvptx/nvptx.c (verify_neutering_jumps) | |
24831 | (verify_neutering_labels): New function | |
24832 | (nvptx_single): Use verify_neutering_jumps and verify_neutering_labels. | |
24833 | ||
24834 | 2018-04-26 Tom de Vries <tom@codesourcery.com> | |
24835 | ||
24836 | PR target/84025 | |
24837 | * config/nvptx/nvptx.c (needs_neutering_p): New function. | |
24838 | (nvptx_single): Use needs_neutering_p to skip over insns that do not | |
24839 | need neutering. | |
24840 | ||
24841 | 2018-04-26 Richard Biener <rguenther@suse.de> | |
24842 | Tom de Vries <tom@codesourcery.com> | |
24843 | ||
24844 | PR lto/85422 | |
24845 | * lto-streamer-out.c (output_function): Fixup loops if required to match | |
24846 | discovery done in the reader. | |
24847 | ||
24848 | 2018-04-26 Richard Biener <rguenther@suse.de> | |
24849 | ||
24850 | PR tree-optimization/85116 | |
24851 | * tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should | |
24852 | have a loop exit from the single latch predecessor. Remove | |
24853 | case of header with just condition. | |
24854 | (ch_base::copy_headers): Exclude infinite loops from any | |
24855 | processing. | |
24856 | (pass_ch::execute): Record exits. | |
24857 | ||
24858 | 2018-04-26 Richard Biener <rguenther@suse.de> | |
24859 | ||
24860 | * tree-vect-data-refs.c (vect_get_data_access_cost): Get | |
24861 | prologue cost vector and pass it to vect_get_load_cost. | |
24862 | (vect_get_peeling_costs_all_drs): Likewise. | |
24863 | (vect_peeling_hash_get_lowest_cost): Likewise. | |
24864 | (vect_enhance_data_refs_alignment): Likewise. | |
24865 | ||
24866 | 2018-04-26 Richard Biener <rguenther@suse.de> | |
24867 | ||
24868 | PR middle-end/85450 | |
24869 | * tree-cfg.c (verify_gimple_assign_unary): Restore proper | |
24870 | checking of integer<->pointer conversions. | |
24871 | * omp-expand.c (expand_omp_for_static_nochunk): Avoid | |
24872 | sign-/zero-extending pointer types. | |
24873 | (expand_omp_for_static_chunk): Likewise. | |
24874 | ||
24875 | 2018-03-22 Hans-Peter Nilsson <hp@axis.com> | |
24876 | Jean Lee <xiaoyur347@gmail.com> | |
24877 | ||
24878 | * config/mips/mips.c (mips_asan_shadow_offset): New function. | |
24879 | (TARGET_ASAN_SHADOW_OFFSET): Define. | |
24880 | * config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be | |
24881 | true for -fsanitize=address. | |
24882 | ||
24883 | 2018-04-25 Mark Wielaard <mark@klomp.org> | |
24884 | ||
24885 | * dwarf2out.c (file_info_cmp): Sort longer dir prefixes before | |
24886 | shorter ones. | |
24887 | ||
24888 | 2018-04-25 Jakub Jelinek <jakub@redhat.com> | |
24889 | ||
24890 | * config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather | |
24891 | than "alu", remove explicit "memory" and "imm_disp" attributes. | |
24892 | (*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise. | |
24893 | ||
24894 | PR middle-end/85414 | |
24895 | * simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND, | |
24896 | case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to | |
24897 | gen_lowpart_no_emit. | |
24898 | ||
24899 | 2018-04-25 Sebastian Peryt <sebastian.peryt@intel.com> | |
24900 | ||
24901 | PR target/85473 | |
24902 | * config/i386/i386.c (ix86_expand_builtin): Change memory | |
24903 | operand to XI, extend p0 to Pmode. | |
24904 | * config/i386/i386.md: Change unspec volatile and operand | |
24905 | 1 mode to XI, change operand 0 mode to P. | |
24906 | ||
24907 | 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> | |
24908 | ||
24909 | * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with | |
24910 | GET_MODE_MASK before any checking. | |
24911 | (nds32_can_use_bset_p): Likewise. | |
24912 | (nds32_can_use_btgl_p): Likewise. | |
24913 | ||
24914 | 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> | |
24915 | ||
24916 | * config/nds32/nds32-doubleword.md: New define_split pattern for | |
24917 | illegal register number. | |
24918 | ||
24919 | 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> | |
24920 | ||
24921 | * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier. | |
24922 | ||
24923 | 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> | |
24924 | ||
24925 | * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character. | |
24926 | ||
24927 | 2018-04-25 Richard Biener <rguenther@suse.de> | |
24928 | ||
24929 | * lto-streamer.h (LTO_major_version): Bump to 8. | |
24930 | ||
24931 | 2018-04-25 Jakub Jelinek <jakub@redhat.com> | |
24932 | ||
24933 | * BASE-VER: Set to 9.0.0. | |
24934 | ||
24935 | 2018-04-24 Segher Boessenkool <segher@kernel.crashing.org> | |
24936 | ||
24937 | * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes | |
24938 | in __abskf2 and __powikf2. | |
24939 | ||
24940 | 2018-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
24941 | ||
24942 | PR target/85512 | |
24943 | * config/aarch64/constraints.md (Usg, Usj): New constraints. | |
24944 | * config/aarch64/iterators.md (cmode_simd): New mode attribute. | |
24945 | * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3): | |
24946 | Use the above on operand 2. Reindent. | |
24947 | (*aarch64_lshr_sisd_or_int_<mode>3): Likewise. | |
24948 | ||
24949 | 2018-04-24 H.J. Lu <hongjiu.lu@intel.com> | |
24950 | ||
24951 | PR target/85485 | |
24952 | * common/config/i386/i386-common.c (ix86_handle_option): Don't | |
24953 | handle OPT_mcet. | |
24954 | * config/i386/i386.opt (mcet): Removed. | |
24955 | * doc/install.texi: Remove -mcet documentation. | |
24956 | * doc/invoke.texi: Likewise. | |
24957 | ||
24958 | 2018-04-24 H.J. Lu <hongjiu.lu@intel.com> | |
24959 | ||
24960 | PR target/85485 | |
24961 | * doc/install.texi: Remove -mcet from bootstrap-cet. | |
24962 | ||
24963 | 2018-04-24 Jakub Jelinek <jakub@redhat.com> | |
24964 | ||
24965 | PR target/85511 | |
24966 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define | |
24967 | __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 | |
24968 | if TARGET_64BIT. | |
24969 | ||
24970 | PR target/85503 | |
24971 | * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if | |
24972 | const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool | |
24973 | containing a CONST_VECTOR. | |
24974 | ||
24975 | 2018-04-24 Cesar Philippidis <cesar@codesourcery.com> | |
24976 | ||
24977 | * doc/install.texi: Update newlib dependency for nvptx. | |
24978 | ||
24979 | 2018-04-24 Jakub Jelinek <jakub@redhat.com> | |
24980 | ||
24981 | PR target/85508 | |
24982 | * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL | |
24983 | instead of INTVAL when shifting x left. | |
24984 | ||
24985 | 2018-04-24 Andreas Krebbel <krebbel@linux.ibm.com> | |
24986 | ||
24987 | PR tree-optimization/85478 | |
24988 | * tree-vect-loop.c (vect_analyze_loop_2): Do not call | |
24989 | vect_grouped_store_supported for single element vectors. | |
24990 | ||
24991 | 2018-04-24 Richard Biener <rguenther@suse.de> | |
24992 | ||
24993 | PR target/85491 | |
24994 | * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided | |
24995 | load cost increase to the case of non-constant step. | |
24996 | ||
24997 | 2018-04-24 Jakub Jelinek <jakub@redhat.com> | |
24998 | ||
24999 | PR target/84828 | |
25000 | * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead | |
25001 | destination if any_malformed_asm. | |
25002 | ||
25003 | 2018-04-23 Eric Botcazou <ebotcazou@adacore.com> | |
25004 | ||
25005 | PR middle-end/85496 | |
25006 | * expr.c (store_field): In the bitfield case, if the value comes from | |
25007 | a function call and is returned in registers by means of a PARALLEL, | |
25008 | do not change the mode of the temporary unless BLKmode and VOIDmode. | |
25009 | ||
25010 | 2018-04-23 Andrey Belevantsev <abel@ispras.ru> | |
25011 | ||
25012 | PR rtl-optimization/85423 | |
25013 | * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard | |
25014 | dependencies to debug insns when the previous insn is non-debug. | |
25015 | ||
25016 | 2018-04-23 Claudiu Zissulescu <claziss@synopsys.com> | |
25017 | ||
25018 | * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec | |
25019 | enums into a single definition. | |
25020 | (fls): Fix predicates and printing. | |
25021 | (seti): Likewise. | |
25022 | ||
25023 | 2018-04-23 Claudiu Zissulescu <claziss@synopsys.com> | |
25024 | ||
25025 | * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove. | |
25026 | * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers | |
25027 | and short u6 immediate. | |
25028 | (check_if_valid_sleep_operand): Remove. | |
25029 | * config/arc/arc.md (Sleep): Accepts registers and u6 immediates. | |
25030 | ||
25031 | 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> | |
25032 | ||
25033 | * config/nds32/nds32.c (nds32_compute_stack_frame): Consider | |
25034 | flag_always_save_lp condition. | |
25035 | * config/nds32/nds32.opt (malways-save-lp): New option. | |
25036 | ||
25037 | 2018-04-22 Shiva Chen <shiva0217@gmail.com> | |
25038 | ||
25039 | * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare. | |
25040 | * config/nds32/nds32.c (nds32_use_load_post_increment): New. | |
25041 | * config/nds32/nds32.h | |
25042 | (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define. | |
25043 | (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define. | |
25044 | ||
25045 | 2018-04-22 Shiva Chen <shiva0217@gmail.com> | |
25046 | ||
25047 | * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove. | |
25048 | * config/nds32/nds32.c (nds32_ls_333_p): Remove. | |
25049 | ||
25050 | 2018-04-22 Shiva Chen <shiva0217@gmail.com> | |
25051 | Chung-Ju Wu <jasonwucj@gmail.com> | |
25052 | ||
25053 | * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode): | |
25054 | Declare. | |
25055 | * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function. | |
25056 | * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify. | |
25057 | ||
25058 | 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> | |
25059 | ||
25060 | * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. | |
25061 | ||
25062 | 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> | |
25063 | ||
25064 | * config/nds32/nds32-protos.h (nds32_data_alignment, | |
25065 | nds32_local_alignment): Declare. | |
25066 | * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, | |
25067 | nds32_local_alignment): New functions. | |
25068 | (TARGET_CONSTANT_ALIGNMENT): Define. | |
25069 | * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. | |
25070 | ||
25071 | 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> | |
25072 | ||
25073 | * config/nds32/nds32.c | |
25074 | (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file. | |
25075 | (TARGET_MODES_TIEABLE_P): Likewise. | |
25076 | ||
25077 | 2018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> | |
25078 | ||
25079 | * config/nds32/nds32.c (nds32_asm_file_start): Display optimization | |
25080 | level Ofast and Og. | |
25081 | ||
25082 | 2018-04-22 Monk Chiang <sh.chiang04@gmail.com> | |
25083 | Chung-Ju Wu <jasonwucj@gmail.com> | |
25084 | ||
25085 | * config/nds32/constants.md (unspec_volatile_element): Add enum values | |
25086 | for unaligned access. | |
25087 | * config/nds32/nds32-intrinsic.c: Implementation of expanding | |
25088 | unaligned access. | |
25089 | * config/nds32/nds32-intrinsic.md: Likewise. | |
25090 | * config/nds32/nds32_intrinsic.h: Likewise. | |
25091 | * config/nds32/nds32.h (nds32_builtins): Likewise. | |
25092 | * config/nds32/nds32.opt (munaligned-access): New option. | |
25093 | * config/nds32/nds32.c (nds32_asm_file_start): Display | |
25094 | flag_unaligned_access status. | |
25095 | ||
25096 | 2018-04-20 Kito Cheng <kito.cheng@gmail.com> | |
25097 | ||
25098 | * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if | |
25099 | -mno-relax is present. | |
25100 | * config/riscv/linux.h (LINK_SPEC): Ditto. | |
25101 | ||
25102 | 2018-04-20 Martin Sebor <msebor@redhat.com> | |
25103 | ||
25104 | PR c/85365 | |
25105 | * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict | |
25106 | for null pointers. | |
25107 | (gimple_fold_builtin_stxcpy_chk): Same. | |
25108 | * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same. | |
25109 | ||
25110 | 2018-04-20 Michael Meissner <meissner@linux.ibm.com> | |
25111 | ||
25112 | PR target/85456 | |
25113 | * config/rs6000/rs6000.c (init_float128_ieee): Add support to call | |
25114 | __powikf2 when long double is IEEE 128-bit. | |
25115 | ||
25116 | 2018-04-20 Kito Cheng <kito.cheng@gmail.com> | |
25117 | ||
25118 | * config/riscv/riscv.c (riscv_first_stack_step): Round up min | |
25119 | step to make sure stack always aligned. | |
25120 | ||
25121 | 2018-04-20 Carl Love <cel@us.ibm.com> | |
25122 | ||
25123 | PR target/83402 | |
25124 | * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add | |
25125 | size check for arg0. | |
25126 | ||
25127 | 2018-04-20 Nathan Sidwell <nathan@codesourcery.com> | |
25128 | Tom de Vries <tom@codesourcery.com> | |
25129 | ||
25130 | PR target/85445 | |
25131 | * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining): | |
25132 | Emit insns for calls too. | |
25133 | (nvptx_find_par): Always look for worker-level predecessor insn. | |
25134 | (nvptx_propagate): Add is_call parm, return bool. Copy frame for | |
25135 | calls. | |
25136 | (nvptx_vpropagate, nvptx_wpropagate): Adjust. | |
25137 | (nvptx_process_pars): Propagate frames for calls. | |
25138 | ||
25139 | 2018-04-20 H.J. Lu <hongjiu.lu@intel.com> | |
25140 | ||
25141 | PR target/85469 | |
25142 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): | |
25143 | Removed. | |
25144 | (OPTION_MASK_ISA_IBT_UNSET): Likewise. | |
25145 | (ix86_handle_option): Don't handle OPT_mibt. | |
25146 | * config/i386/cet.h: Check __CET__ instead of __IBT__ and | |
25147 | __SHSTK__. | |
25148 | * config/i386/driver-i386.c (host_detect_local_cpu): Remove | |
25149 | has_ibt and ibt. | |
25150 | * config/i386/i386-c.c (ix86_target_macros_internal): Don't | |
25151 | check OPTION_MASK_ISA_IBT nor flag_cf_protection. | |
25152 | (ix86_target_macros): Define __CET__ with flag_cf_protection | |
25153 | for -fcf-protection. | |
25154 | * config/i386/i386.c (isa2_opts): Remove -mibt. | |
25155 | * config/i386/i386.h (TARGET_IBT): Removed. | |
25156 | (TARGET_IBT_P): Likewise. | |
25157 | (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt. | |
25158 | * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT. | |
25159 | * config/i386/i386.opt (mcet): Update help message. | |
25160 | (mshstk): Likewise. | |
25161 | (mibt): Removed. | |
25162 | * doc/invoke.texi: Remove -mibt. Document __CET__. Document | |
25163 | -mcet as an alias for -mshstk. | |
25164 | ||
25165 | 2018-04-20 Richard Biener <rguenther@suse.de> | |
25166 | ||
25167 | PR middle-end/85475 | |
25168 | * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential | |
25169 | complexity by forcing a single use of the multiply operand. | |
25170 | ||
25171 | 2018-04-20 Martin Jambor <mjambor@suse.cz> | |
25172 | ||
25173 | ipa/85449 | |
25174 | * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding | |
25175 | recursion dependency to only apply to non-clones. | |
25176 | ||
25177 | 2018-04-20 Martin Jambor <mjambor@suse.cz> | |
25178 | ||
25179 | ipa/85447 | |
25180 | * ipa-cp.c (create_specialized_node): Check that clones of | |
25181 | self-recursive edges exist during IPA-CP. | |
25182 | ||
25183 | 2018-04-19 Toon Moene <toon@moene.org> | |
25184 | ||
25185 | * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled | |
25186 | by -O3. | |
25187 | ||
25188 | 2018-04-19 Jakub Jelinek <jakub@redhat.com> | |
25189 | ||
25190 | PR tree-optimization/85467 | |
25191 | * fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use | |
25192 | VECTOR_TYPE_P macro. If type is vector type, VIEW_CONVERT_EXPR the | |
25193 | VECTOR_CST element to type. | |
25194 | ||
25195 | 2018-04-19 H.J. Lu <hongjiu.lu@intel.com> | |
25196 | ||
25197 | PR target/85397 | |
25198 | * config/i386/i386.h (STACK_SAVEAREA_MODE): New. | |
25199 | * config/i386/i386.md (builtin_setjmp_setup): Removed. | |
25200 | (builtin_longjmp): Likewise. | |
25201 | (save_stack_nonlocal): New pattern. | |
25202 | (restore_stack_nonlocal): Likewise. | |
25203 | ||
25204 | 2018-04-19 H.J. Lu <hongjiu.lu@intel.com> | |
25205 | ||
25206 | PR target/85404 | |
25207 | * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): | |
25208 | Replace ASM_OUTPUT_LABEL with fprintf. | |
25209 | ||
25210 | 2018-04-19 H.J. Lu <hongjiu.lu@intel.com> | |
25211 | ||
25212 | PR target/85417 | |
25213 | * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): | |
25214 | Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK. | |
25215 | * config/i386/i386-c.c (ix86_target_macros_internal): Also | |
25216 | define __IBT__ and __SHSTK__ for -fcf-protection. | |
25217 | * config/i386/i386.c (pass_insert_endbranch::gate): Don't check | |
25218 | TARGET_IBT. | |
25219 | (ix86_trampoline_init): Likewise. | |
25220 | (x86_output_mi_thunk): Likewise. | |
25221 | (ix86_notrack_prefixed_insn_p): Likewise. | |
25222 | (ix86_option_override_internal): Don't disallow -fcf-protection. | |
25223 | * config/i386/i386.md (rdssp<mode>): Also enable for | |
25224 | -fcf-protection. | |
25225 | (incssp<mode>): Likewise. | |
25226 | (nop_endbr): Likewise. | |
25227 | * config/i386/i386.opt (mcet): Change help message to built-in | |
25228 | functions only. | |
25229 | (mibt): Likewise. | |
25230 | (mshstk): Likewise. | |
25231 | * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition | |
25232 | on -fcf-protection. Change -mcet, -mibt and -mshstk to only | |
25233 | enable CET built-in functions. | |
25234 | ||
25235 | 2018-04-19 Sebastian Peryt <sebastian.peryt@intel.com> | |
25236 | ||
25237 | * common/config/i386/i386-common.c | |
25238 | (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET, | |
25239 | OPTION_MASK_ISA_MOVDIRI_UNSET, | |
25240 | OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines. | |
25241 | (ix86_handle_option): Handle -mmovdiri and -mmovdir64b. | |
25242 | * config.gcc (movdirintrin.h): New header. | |
25243 | * config/i386/cpuid.h (bit_MOVDIRI, | |
25244 | bit_MOVDIR64B): New bits. | |
25245 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri | |
25246 | and -mmvodir64b. | |
25247 | * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED), | |
25248 | (VOID, PVOID, PCVOID)): New function types. | |
25249 | * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32, | |
25250 | __builtin_ia32_directstoreu_u64, | |
25251 | __builtin_ia32_movdir64b): New builtins. | |
25252 | * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New. | |
25253 | * config/i386/i386.c (ix86_target_string): Added -mmovdir64b | |
25254 | and -mmovdiri. | |
25255 | (ix86_valid_target_attribute_inner_p): Ditto. | |
25256 | (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED | |
25257 | and VOID_FTYPE_PUNSIGNED_UNSIGNED. | |
25258 | (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B. | |
25259 | * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P, | |
25260 | TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New. | |
25261 | * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New. | |
25262 | (movdiri<mode>, movdir64b_<mode>): New. | |
25263 | * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b. | |
25264 | * config/i386/immintrin.h: Include movdirintrin.h. | |
25265 | * config/i386/movdirintrin.h: New file. | |
25266 | * doc/invoke.texi: Added -mmovdiri and -mmovdir64b. | |
25267 | ||
25268 | 2018-04-19 Richard Biener <rguenther@suse.de> | |
25269 | ||
25270 | PR middle-end/85455 | |
25271 | * cfg.c (clear_bb_flags): When loop state says we have | |
25272 | marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP. | |
25273 | ||
25274 | 2018-04-19 Richard Biener <rguenther@suse.de> | |
25275 | ||
25276 | PR tree-optimization/84737 | |
25277 | * tree-vect-data-refs.c (vect_copy_ref_info): New function | |
25278 | copying restrict info. | |
25279 | (vect_setup_realignment): Use it. | |
25280 | * tree-vectorizer.h (vect_copy_ref_info): Declare. | |
25281 | * tree-vect-stmts.c (vectorizable_store): Copy ref info from | |
25282 | the first DR to all generated stores. | |
25283 | (vectorizable_load): Likewise for loads. | |
25284 | ||
25285 | 2018-04-19 Jakub Jelinek <jakub@redhat.com> | |
25286 | ||
25287 | PR tree-optimization/85446 | |
25288 | * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require | |
25289 | the integral and pointer types to have the same precision. | |
25290 | ||
25291 | * doc/install.texi: Document --disable-cet being the default and | |
25292 | --enable-cet=auto. | |
25293 | ||
25294 | 2018-04-18 Martin Liska <mliska@suse.cz> | |
25295 | ||
25296 | * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding | |
25297 | style. | |
25298 | ||
25299 | 2018-04-18 Martin Liska <mliska@suse.cz> | |
25300 | ||
25301 | Revert | |
25302 | 2018-03-02 Eric Botcazou <ebotcazou@adacore.com> | |
25303 | ||
25304 | PR ipa/83983 | |
25305 | * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both | |
25306 | arguments if they are comparable. | |
25307 | ||
25308 | 2018-04-18 Martin Liska <mliska@suse.cz> | |
25309 | ||
25310 | Revert | |
25311 | 2018-03-13 Eric Botcazou <ebotcazou@adacore.com> | |
25312 | ||
25313 | PR lto/84805 | |
25314 | * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of | |
25315 | incomplete types. | |
25316 | ||
25317 | 2018-04-18 H.J. Lu <hongjiu.lu@intel.com> | |
25318 | ||
25319 | PR target/85388 | |
25320 | * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert | |
25321 | ENDBR after calling __morestack. | |
25322 | ||
25323 | 2018-04-18 David Malcolm <dmalcolm@redhat.com> | |
25324 | ||
25325 | PR jit/85384 | |
25326 | * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version | |
25327 | by using gcc_base_ver to generate a gcc_driver_version, and use | |
25328 | it when generating GCC_DRIVER_NAME. | |
25329 | * configure: Regenerate. | |
25330 | ||
25331 | 2018-04-18 Jakub Jelinek <jakub@redhat.com> | |
25332 | ||
25333 | PR target/81084 | |
25334 | * config.gcc: Obsolete powerpc*-*-*spe*. | |
25335 | ||
25336 | 2018-04-17 Jakub Jelinek <jakub@redhat.com> | |
25337 | ||
25338 | PR debug/84637 | |
25339 | * dbxout.c (dbxout_int): Perform negation in unsigned int type. | |
25340 | (stabstr_D): Change type of unum from unsigned int to | |
25341 | unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT | |
25342 | type. | |
25343 | ||
25344 | 2018-04-17 Jim Wilson <jimw@sifive.com> | |
25345 | ||
25346 | PR 84856 | |
25347 | * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to | |
25348 | RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size. | |
25349 | Set arg_pointer_offset after using pretend_args_size. | |
25350 | ||
25351 | 2018-04-17 Jakub Jelinek <jakub@redhat.com> | |
25352 | ||
25353 | PR rtl-optimization/85431 | |
25354 | * dse.c (record_store): Ignore zero width stores. | |
25355 | ||
25356 | PR sanitizer/85230 | |
25357 | * asan.c (handle_builtin_stack_restore): Adjust comment. Emit | |
25358 | __asan_allocas_unpoison call and last_alloca_addr = new_sp before | |
25359 | __builtin_stack_restore rather than after it. | |
25360 | * builtins.c (expand_asan_emit_allocas_unpoison): Pass | |
25361 | arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second | |
25362 | argument instead of virtual_dynamic_stack_rtx. | |
25363 | ||
25364 | 2018-04-17 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
25365 | ||
25366 | * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p): | |
25367 | New prototype. | |
25368 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
25369 | Add note to error message to explain internal mapping of overloaded | |
25370 | built-in function name to non-overloaded built-in function name. | |
25371 | * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New | |
25372 | function. | |
25373 | ||
25374 | 2018-04-17 Michael Meissner <meissner@linux.vnet.ibm.com> | |
25375 | ||
25376 | PR target/85424 | |
25377 | * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack | |
25378 | where the inputs overlap with the output. | |
25379 | ||
25380 | 2018-04-17 Jakub Jelinek <jakub@redhat.com> | |
25381 | ||
25382 | * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add | |
25383 | (=v, v) alternative and explicit "memory" attribute. | |
25384 | (vec_extract_lo_<mode><mask_name>): Likewise. Also add | |
25385 | "type", "prefix", "prefix_extra", "length_immediate" and "mode" | |
25386 | attributes. | |
25387 | (vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use | |
25388 | "sselog1" type instead of "sselog". | |
25389 | (vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of | |
25390 | "sselog". Remove explicit "memory" attribute. | |
25391 | (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory", | |
25392 | "type", "prefix", "prefix_extra", "length_immediate" and "mode" | |
25393 | attributes. | |
25394 | (vec_extract_hi_v32hi): Merge all alternatives into one, use | |
25395 | "sselog1" type instead of "sselog". Remove explicit "memory" | |
25396 | attribute. | |
25397 | (vec_extract_hi_v16hi): Merge each pair of alternatives into one, | |
25398 | use "sselog1" type instead of "sselog". Remove explicit "memory" | |
25399 | attribute. | |
25400 | (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory", | |
25401 | "type", "prefix", "prefix_extra", "length_immediate" and "mode" | |
25402 | attributes. | |
25403 | (vec_extract_hi_v64qi): Merge all alternatives into one, use | |
25404 | "sselog1" type instead of "sselog". Remove explicit "memory" | |
25405 | attribute. | |
25406 | (vec_extract_hi_v32qi): Merge each pair of alternatives into one, | |
25407 | use "sselog1" type instead of "sselog". Remove explicit "memory" | |
25408 | attribute. | |
25409 | ||
25410 | PR target/85430 | |
25411 | * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. | |
25412 | ||
25413 | PR middle-end/85414 | |
25414 | * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG | |
25415 | on a SUBREG. | |
25416 | ||
25417 | 2018-04-17 Martin Jambor <mjambor@suse.cz> | |
25418 | ||
25419 | PR ipa/85421 | |
25420 | * ipa-cp.c (create_specialized_node): Call | |
25421 | expand_all_artificial_thunks if necessary. | |
25422 | ||
25423 | 2018-04-17 Martin Liska <mliska@suse.cz> | |
25424 | ||
25425 | PR lto/85405 | |
25426 | * ipa-devirt.c (odr_types_equivalent_p): Remove trailing | |
25427 | in message, remote space in between '_G' and '('. | |
25428 | ||
25429 | 2018-04-17 Jakub Jelinek <jakub@redhat.com> | |
25430 | ||
25431 | PR target/85281 | |
25432 | * config/i386/sse.md (reduces<mode><mask_scalar_name>, | |
25433 | avx512f_vmcmp<mode>3<round_saeonly_name>, | |
25434 | avx512f_vmcmp<mode>3_mask<round_saeonly_name>, | |
25435 | avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>, | |
25436 | avx512f_rndscale<mode><round_saeonly_name>, | |
25437 | avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, | |
25438 | avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): | |
25439 | Use %<iptr>2 instead of %2 for -masm=intel. | |
25440 | (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>, | |
25441 | avx512f_vcvttss2usi<round_saeonly_name>, | |
25442 | avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for | |
25443 | -masm=intel. | |
25444 | (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>, | |
25445 | avx512f_vcvttsd2usi<round_saeonly_name>, | |
25446 | avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>): | |
25447 | Use %q1 instead of %1 for -masm=intel. | |
25448 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, | |
25449 | avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead | |
25450 | of %3 for -masm=intel. | |
25451 | (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for | |
25452 | -masm=intel. | |
25453 | (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for | |
25454 | -masm=intel. | |
25455 | (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for | |
25456 | -masm=intel. | |
25457 | (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with | |
25458 | %k0 and %1 for -masm=intel rather than two patterns, one with %0 and | |
25459 | %g1. | |
25460 | (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for | |
25461 | -masm=intel. | |
25462 | (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with | |
25463 | %q0 and %1 for -masm=intel rather than two patterns, one with %0 and | |
25464 | %g1 and one with %0 and %1. | |
25465 | (avx512er_vmrcp28<mode><round_saeonly_name>, | |
25466 | avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of | |
25467 | %1 for -masm=intel. | |
25468 | (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, | |
25469 | avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, | |
25470 | avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order | |
25471 | of %0 and %{%4%} for -masm=intel. | |
25472 | (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, | |
25473 | avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, | |
25474 | avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap | |
25475 | order of %0 and %{%5%}%{z%} for -masm=intel. | |
25476 | ||
25477 | 2018-04-17 Jan Hubicka <jh@suse.cz> | |
25478 | ||
25479 | PR lto/85405 | |
25480 | * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. | |
25481 | ||
25482 | 2018-04-17 Martin Liska <mliska@suse.cz> | |
25483 | ||
25484 | PR ipa/85329 | |
25485 | * multiple_target.c (create_dispatcher_calls): Set apostrophes | |
25486 | for target_clone error message. Make default implementation | |
25487 | clone to be a local declaration. | |
25488 | (separate_attrs): Add new argument and check for an empty | |
25489 | string. | |
25490 | (expand_target_clones): Handle it. | |
25491 | (ipa_target_clone): Make redirection just for target_clones | |
25492 | functions. | |
25493 | ||
25494 | 2018-04-16 Cesar Philippidis <cesar@codesourcery.com> | |
25495 | Tom de Vries <tom@codesourcery.com> | |
25496 | ||
25497 | PR middle-end/84955 | |
25498 | * omp-expand.c (expand_oacc_for): Add dummy false branch for | |
25499 | tiled basic blocks without omp continue statements. | |
25500 | ||
25501 | 2018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25502 | ||
25503 | PR target/83660 | |
25504 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark | |
25505 | vec_extract expression as having side effects to make sure it gets | |
25506 | a cleanup point. | |
25507 | ||
25508 | 2018-04-16 H.J. Lu <hongjiu.lu@intel.com> | |
25509 | ||
25510 | PR target/85403 | |
25511 | * config/i386/i386.c (get_builtin_code_for_version): Check | |
25512 | error_mark_node. | |
25513 | ||
25514 | 2018-04-16 Olga Makhotina <olga.makhotina@intel.com> | |
25515 | ||
25516 | PR target/84331 | |
25517 | * config.gcc: Support "skylake". | |
25518 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle | |
25519 | PROCESSOR_SKYLAKE. | |
25520 | * config/i386/i386.c (m_SKYLAKE): Define. | |
25521 | (processor_target_table): Add "skylake". | |
25522 | (ix86_option_override_internal): Add "skylake". | |
25523 | (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, | |
25524 | PROCESSOR_CANNONLAKE. | |
25525 | (get_builtin_code_for_version): Fix priority for | |
25526 | PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, | |
25527 | PROCESSOR_SKYLAKE-AVX512. | |
25528 | * config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. | |
25529 | (processor_type): Add PROCESSOR_SKYLAKE. | |
25530 | ||
25531 | 2018-04-16 Paolo Carlini <paolo.carlini@oracle.com> | |
25532 | Jason Merrill <jason@redhat.com> | |
25533 | ||
25534 | PR c++/85112 | |
25535 | * convert.c (convert_to_integer_1): Use direct recursion for | |
25536 | enumeral types and types with a precision less than the number | |
25537 | of bits in their mode. | |
25538 | ||
25539 | 2018-04-16 Julia Koval <julia.koval@intel.com> | |
25540 | ||
25541 | PR target/84413 | |
25542 | * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, | |
25543 | X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 | |
25544 | ||
25545 | 2018-04-14 Segher Boessenkool <segher@kernel.crashing.org> | |
25546 | ||
25547 | PR target/85293 | |
25548 | * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. | |
25549 | * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move | |
25550 | and -mno-direct-move. | |
25551 | ||
25552 | 2018-04-13 Paul A. Clarke <pc@us.ibm.com> | |
25553 | ||
25554 | PR target/83402 | |
25555 | * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): | |
25556 | Ensure that vec_splat_s32 is only called with 0 <= shift < 16. | |
25557 | Ensure negative shifts result in {0}. | |
25558 | ||
25559 | 2018-04-13 Vladimir Makarov <vmakarov@redhat.com> | |
25560 | ||
25561 | PR rtl-optimization/79916 | |
25562 | * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard | |
25563 | regs (if any) to define how to gnerate SD moves when LRA is in | |
25564 | progress. | |
25565 | ||
25566 | 2018-04-13 Jakub Jelinek <jakub@redhat.com> | |
25567 | ||
25568 | PR rtl-optimization/85393 | |
25569 | * except.h (expand_dw2_landing_pad_for_region): Remove declaration. | |
25570 | * except.c (expand_dw2_landing_pad_for_region): Make static. | |
25571 | * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just | |
25572 | a label and unconditional jump to old_bb, rather than | |
25573 | expand_dw2_landing_pad_for_region insn(s) and jump to single_succ | |
25574 | basic block. | |
25575 | ||
25576 | PR rtl-optimization/85376 | |
25577 | * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and | |
25578 | zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX | |
25579 | instead of a specific value. | |
25580 | ||
25581 | 2018-04-13 Jan Hubicka <hubicka@ucw.cz> | |
25582 | Bin Cheng <bin.cheng@arm.com> | |
25583 | ||
25584 | PR tree-optimization/82965 | |
25585 | PR tree-optimization/83991 | |
25586 | * cfgloopanal.c (expected_loop_iterations_unbounded): Add | |
25587 | by_profile_only parameter. | |
25588 | * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile | |
25589 | information if the loop was predicted to iterate too many times. | |
25590 | * cfgloop.h (expected_loop_iterations_unbounded): Update prototype | |
25591 | ||
25592 | 2018-04-13 Jan Hubicka <hubicka@ucw.cz> | |
25593 | ||
25594 | PR lto/71991 | |
25595 | * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for | |
25596 | always inline. | |
25597 | ||
25598 | 2018-04-13 Martin Liska <mliska@suse.cz> | |
25599 | Jakub Jelinek <jakub@redhat.com> | |
25600 | ||
25601 | PR middle-end/81657 | |
25602 | * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. | |
25603 | * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. | |
25604 | * builtins.c (expand_builtin_memory_copy_args): Use | |
25605 | BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, | |
25606 | handle dest_addr == pc_rtx. | |
25607 | ||
25608 | 2018-04-12 Segher Boessenkool <segher@kernel.crashing.org> | |
25609 | ||
25610 | PR target/85291 | |
25611 | * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if | |
25612 | asked to not generate direct moves. | |
25613 | (fix_trunc<mode>si2_stfiwx): Similar. | |
25614 | (fix_trunc<mode>si2_internal): Similar. | |
25615 | ||
25616 | 2018-04-12 Jakub Jelinek <jakub@redhat.com> | |
25617 | ||
25618 | PR debug/83157 | |
25619 | * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. | |
25620 | * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, | |
25621 | lookup if dest in some wider mode is known to be const0_rtx and | |
25622 | if so, record permanent equivalence for it to be ZERO_EXTEND of | |
25623 | the narrower mode destination. | |
25624 | ||
25625 | 2018-04-12 Cesar Philippidis <cesar@codesourcery.com> | |
25626 | ||
25627 | * lto-streamer-out.c (output_function): Revert 259346. | |
25628 | * omp-expand.c (expand_oacc_for): Likewise. | |
25629 | ||
25630 | 2018-04-12 Alexander Monakov <amonakov@ispras.ru> | |
25631 | ||
25632 | PR rtl-optimization/85354 | |
25633 | * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... | |
25634 | * sel-sched.c (sel_global_init): ... here. | |
25635 | ||
25636 | 2018-04-12 Eric Botcazou <ebotcazou@adacore.com> | |
25637 | ||
25638 | PR target/85238 | |
25639 | * lto-wrapper.c (debug_objcopy): Open the files in binary mode. | |
25640 | * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO | |
25641 | mode for PE-COFF targets. | |
25642 | * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. | |
25643 | (i386_pe_asm_lto_end): Likewise. | |
25644 | * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. | |
25645 | (TARGET_ASM_LTO_END): Likewise. | |
25646 | * config/i386/winnt.c (saved_debug_info_level): New static variable. | |
25647 | (i386_pe_asm_lto_start): New function. | |
25648 | (i386_pe_asm_lto_end): Likewise. | |
25649 | ||
25650 | 2018-04-12 Cesar Philippidis <cesar@codesourcery.com> | |
25651 | Richard Biener <rguenther@suse.de> | |
25652 | ||
25653 | PR middle-end/84955 | |
25654 | * lto-streamer-out.c (output_function): Fix CFG loop state before | |
25655 | streaming out. | |
25656 | * omp-expand.c (expand_oacc_for): Handle calls to internal | |
25657 | functions like regular functions. | |
25658 | ||
25659 | 2018-04-12 Richard Biener <rguenther@suse.de> | |
25660 | ||
25661 | PR lto/85371 | |
25662 | * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label] | |
25663 | for the early LTO debug to properly generate references to it | |
25664 | during DIE emission. Do not re-use that for the skeleton for | |
25665 | split-dwarf. | |
25666 | (dwarf2out_early_finish): Likewise. | |
25667 | ||
25668 | 2018-04-12 Jakub Jelinek <jakub@redhat.com> | |
25669 | ||
25670 | PR target/85328 | |
25671 | * config/i386/sse.md | |
25672 | (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split, | |
25673 | <mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split, | |
25674 | vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi, | |
25675 | vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg | |
25676 | and output is a reg, avoid creating invalid lowpart subreg, but | |
25677 | instead split into a 512-bit move. Don't split if not AVX512VL, | |
25678 | input is xmm16+ reg and output is a mem. | |
25679 | (vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi, | |
25680 | vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is | |
25681 | xmm16+ reg and output is a mem. | |
25682 | ||
25683 | 2018-04-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
25684 | ||
25685 | * config/s390/s390.c (s390_output_indirect_thunk_function): Check | |
25686 | also for flag_dwarf2_cfi_asm. | |
25687 | ||
25688 | 2018-04-12 Jakub Jelinek <jakub@redhat.com> | |
25689 | ||
25690 | PR rtl-optimization/85342 | |
25691 | * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use | |
25692 | a bool scalar var inside of the loop instead. Don't try to update | |
25693 | recog_data.operand after failed apply_change_group. | |
25694 | ||
25695 | 2018-04-12 Tom de Vries <tom@codesourcery.com> | |
25696 | ||
25697 | PR target/85296 | |
25698 | * config/nvptx/nvptx.c (flexible_array_member_type_p): New function. | |
25699 | (nvptx_assemble_decl_begin): Add undefined param. Declare undefined | |
25700 | array with flexible array member as array without given dimension. | |
25701 | (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call | |
25702 | argument for undefined param to true. | |
25703 | ||
25704 | 2018-04-11 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25705 | ||
25706 | PR target/85321 | |
25707 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document options | |
25708 | -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe | |
25709 | from PowerPC section. | |
25710 | * config/rs6000/sysv4.opt (mcall-): Improve help text. | |
25711 | * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim | |
25712 | help text that is too long. | |
25713 | * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim | |
25714 | help text that is too long. | |
25715 | * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim | |
25716 | help text that is too long. | |
25717 | ||
25718 | 2018-04-11 Uros Bizjak <ubizjak@gmail.com> | |
25719 | ||
25720 | * config/alpha/alpha.md (stack_probe_internal): Rename | |
25721 | from "probe_stack". Update all callers. | |
25722 | ||
25723 | 2018-04-11 Alexander Monakov <amonakov@ispras.ru> | |
25724 | ||
25725 | PR rtl-optimization/84566 | |
25726 | * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking | |
25727 | sched_macro_fuse_insns. | |
25728 | ||
25729 | 2018-04-11 Alexander Monakov <amonakov@ispras.ru> | |
25730 | ||
25731 | PR target/84301 | |
25732 | * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here... | |
25733 | (compute_block_dependences): ... from here. | |
25734 | ||
25735 | 2018-04-11 Jakub Jelinek <jakub@redhat.com> | |
25736 | ||
25737 | PR tree-optimization/85331 | |
25738 | * vec-perm-indices.h (vec_perm_indices::clamp): Change input type | |
25739 | from int to HOST_WIDE_INT. | |
25740 | ||
25741 | 2018-04-11 Martin Jambor <mjambor@suse.cz> | |
25742 | ||
25743 | PR ipa/84149 | |
25744 | * ipa-cp.c (propagate_vals_across_pass_through): Expand comment. | |
25745 | (cgraph_edge_brings_value_p): New parameter dest_val, check if it is | |
25746 | not the same as the source val. | |
25747 | (cgraph_edge_brings_value_p): New parameter. | |
25748 | (gather_edges_for_value): Pass destination value to | |
25749 | cgraph_edge_brings_value_p. | |
25750 | (perhaps_add_new_callers): Likewise. | |
25751 | (get_info_about_necessary_edges): Likewise and exclude values brought | |
25752 | only by self-recursive edges. | |
25753 | (create_specialized_node): Redirect only clones of self-calling edges. | |
25754 | (+self_recursive_pass_through_p): New function. | |
25755 | (find_more_scalar_values_for_callers_subset): Use it. | |
25756 | (find_aggregate_values_for_callers_subset): Likewise. | |
25757 | (known_aggs_to_agg_replacement_list): Removed. | |
25758 | (decide_whether_version_node): Re-calculate known constants for all | |
25759 | remaining context clones. | |
25760 | ||
25761 | 2018-04-11 Richard Biener <rguenther@suse.de> | |
25762 | ||
25763 | PR lto/85339 | |
25764 | * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute | |
25765 | from early DWARF output. | |
25766 | (dwarf2out_early_finish): Output line info unconditionally into | |
25767 | early DWARF and add reference to it. | |
25768 | ||
25769 | 2018-04-11 Jakub Jelinek <jakub@redhat.com> | |
25770 | ||
25771 | PR target/85281 | |
25772 | * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases. | |
25773 | (<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes | |
25774 | other than V2DFmode using iptr mode attribute. | |
25775 | (<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute. | |
25776 | ||
25777 | 2018-04-11 Alexander Monakov <amonakov@ispras.ru> | |
25778 | ||
25779 | PR rtl-optimization/84659 | |
25780 | * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg. | |
25781 | ||
25782 | 2018-04-11 Jakub Jelinek <jakub@redhat.com> | |
25783 | ||
25784 | PR debug/85302 | |
25785 | * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if | |
25786 | SIZEP is NULL. | |
25787 | (output_loc_list): Pass address of a dummy size variable even in the | |
25788 | locview handling loop. | |
25789 | (index_location_lists): Add comment on why skip_loc_list_entry can't | |
25790 | call size_of_locs. | |
25791 | ||
25792 | 2018-04-11 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
25793 | ||
25794 | PR target/85261 | |
25795 | * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand | |
25796 | into register. | |
25797 | ||
25798 | 2018-04-10 Aaron Sawdey <acsawdey@linux.ibm.com> | |
25799 | ||
25800 | PR target/85321 | |
25801 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document options | |
25802 | -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit, | |
25803 | and -mstring-compare-inline-limit. | |
25804 | ||
25805 | 2018-04-10 Segher Boessenkool <segher@kernel.crashing.org> | |
25806 | ||
25807 | PR target/85287 | |
25808 | * config/rs6000/rs6000.md (allocate_stack): Put the residual size | |
25809 | for stack clash protection in a register whenever we need it to be in | |
25810 | a register. | |
25811 | ||
25812 | 2018-04-10 Segher Boessenkool <segher@kernel.crashing.org> | |
25813 | ||
25814 | * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct): | |
25815 | Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF. | |
25816 | ||
25817 | 2018-04-10 Segher Boessenkool <segher@kernel.crashing.org> | |
25818 | ||
25819 | PR target/85321 | |
25820 | * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in | |
25821 | the help text. | |
25822 | (mlong-double-): Ditto. | |
25823 | * config/rs6000/sysv4.opt (msdata=): Ditto. | |
25824 | (mtls-size=): Ditto. | |
25825 | ||
25826 | 2018-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
25827 | ||
25828 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove | |
25829 | erroneous entries for | |
25830 | "vector int vec_ldl (int, long int *)", and | |
25831 | "vector unsigned int vec_ldl (int, unsigned long int *)". | |
25832 | Add comments and entries for | |
25833 | "vector bool char vec_ldl (int, bool char *)", | |
25834 | "vector bool short vec_ldl (int, bool short *)", | |
25835 | "vector bool int vec_ldl (int, bool int *)", | |
25836 | "vector bool long long vec_ldl (int, bool long long *)", | |
25837 | "vector pixel vec_ldl (int, pixel *)", | |
25838 | "vector long long vec_ldl (int, long long *)", | |
25839 | "vector unsigned long long vec_ldl (int, unsigned long long *)". | |
25840 | * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new | |
25841 | type tree bool_long_long_type_node and correct definition of | |
25842 | bool_V2DI_type_node to make reference to this new type tree. | |
25843 | (rs6000_mangle_type): Replace erroneous reference to | |
25844 | bool_long_type_node with bool_long_long_type_node. | |
25845 | * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add | |
25846 | comments to emphasize sign distinctions for char and int types and | |
25847 | replace RS6000_BTI_bool_long constant with | |
25848 | RS6000_BTI_bool_long_long constant. Also add comment to restrict | |
25849 | use of RS6000_BTI_pixel. | |
25850 | (bool_long_type_node): Remove this macro definition. | |
25851 | (bool_long_long_type_node): New macro definition | |
25852 | ||
25853 | 2018-04-10 Jakub Jelinek <jakub@redhat.com> | |
25854 | ||
25855 | PR rtl-optimization/85300 | |
25856 | * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also | |
25857 | into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if | |
25858 | simplify_unary_operation fails. | |
25859 | ||
25860 | 2018-04-10 Martin Liska <mliska@suse.cz> | |
25861 | ||
25862 | * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node, | |
25863 | cgraph_edge and ipa_ref. | |
25864 | ||
25865 | 2018-04-10 Jakub Jelinek <jakub@redhat.com> | |
25866 | ||
25867 | PR target/85177 | |
25868 | PR target/85255 | |
25869 | * config/i386/sse.md | |
25870 | (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix | |
25871 | computation of the VEC_MERGE selector from mask. | |
25872 | (<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>): | |
25873 | Fix decoding of the VEC_MERGE selector into mask. | |
25874 | ||
25875 | 2018-04-10 Richard Sandiford <richard.sandiford@linaro.org> | |
25876 | ||
25877 | PR tree-optimization/85286 | |
25878 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): | |
25879 | ||
25880 | 2018-04-10 Richard Sandiford <richard.sandiford@linaro.org> | |
25881 | ||
25882 | * final.c (final_1): Set insn_last_address as well as | |
25883 | insn_current_address. | |
25884 | ||
25885 | 2018-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
25886 | ||
25887 | PR target/85173 | |
25888 | * explow.c (emit_stack_probe): Call validize_mem on memory location | |
25889 | before passing it to gen_probe_stack. Create address operand and | |
25890 | legitimize it for the probe_stack_address case. | |
25891 | ||
25892 | 2018-04-09 Jan Hubicka <jh@suse.cz> | |
25893 | ||
25894 | PR lto/85078 | |
25895 | * ipa-devirt.c (rebuild_type_inheritance-hash): New. | |
25896 | * ipa-utils.h (rebuild_type_inheritance-hash): Declare. | |
25897 | * tree.c (free_lang_data_in_type): Fix handling of binfos; | |
25898 | walk basetypes. | |
25899 | (free_lang_data): Rebuild type inheritance graph. | |
25900 | ||
25901 | 2018-04-09 Martin Sebor <msebor@redhat.com> | |
25902 | ||
25903 | * invoke.texi (-finline-small-functions): Mention other optimization | |
25904 | options. | |
25905 | (-findirect-inlining, -fpartial-inlining): Same. | |
25906 | (-finline-functions-called-once): Same. | |
25907 | (-freorder-blocks-and-partition): Same. | |
25908 | ||
25909 | 2018-04-09 Jan Hubicka <jh@suse.cz> | |
25910 | ||
25911 | PR rtl/84058 | |
25912 | * cfgcleanup.c (try_forward_edges): Do not give up on crossing | |
25913 | jumps; choose last target that matches the criteria (i.e. | |
25914 | no partition changes for non-crossing jumps). | |
25915 | * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic | |
25916 | support for redirecting crossing jumps to non-crossing. | |
25917 | ||
25918 | 2018-04-09 Alexey Brodkin <abrodkin@synopsys.com> | |
25919 | ||
25920 | * config/arc/arc.c (arc_expand_prologue): Set stack usage info | |
25921 | also for naked functions. | |
25922 | ||
25923 | 2018-04-09 Claudiu Zissulescu <claziss@synopsys.com> | |
25924 | ||
25925 | * config/arc/arc.md (add_shift): New pattern. | |
25926 | (add_shift2): Likewise. | |
25927 | (sub_shift): Likewise. | |
25928 | (sub_shift_cmp0_noout): Likewise. | |
25929 | (compare_si_ashiftsi): Likewise. | |
25930 | (xbfu_cmp0_noout): New combine pattern. | |
25931 | (xbfu_cmp0"): Likewise. | |
25932 | (movsi_set_cc_insn): Place the predicable variant first. | |
25933 | (commutative_binary_cmp0_noout): Remove clobber. | |
25934 | (commutative_binary_cmp0): New pattern. | |
25935 | (noncommutative_binary_cmp0): Likewise. | |
25936 | (noncommutative_binary_cmp0_noout): Likewise. | |
25937 | (noncommutative_binary_comparison_result_used): Removed. | |
25938 | (rsub_cmp0): New pattern. | |
25939 | (rsub_cmp0_noout): Likewise. | |
25940 | (extzvsi): Changed, keep only meaningful variants. | |
25941 | (SQH, SEZ): New iterators. | |
25942 | (SQH_postfix): New mode attribute. | |
25943 | (SEZ_prefix): New code attribute. | |
25944 | (<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern. | |
25945 | (<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise. | |
25946 | * config/arc/predicates.md (cc_set_register): Use CC_REG instead | |
25947 | of numerical value. | |
25948 | (noncommutative_operator): Check the availability of barrel | |
25949 | shifter option. | |
25950 | ||
25951 | 2018-04-09 Richard Biener <rguenther@suse.de> | |
25952 | ||
25953 | PR tree-optimization/85284 | |
25954 | * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): | |
25955 | Only use the niter constraining form of simple_iv when the exit | |
25956 | is always executed. | |
25957 | ||
25958 | 2018-04-09 Tom de Vries <tom@codesourcery.com> | |
25959 | ||
25960 | PR target/84041 | |
25961 | * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. | |
25962 | (define_expand "*memory_barrier"): New define_expand. | |
25963 | (define_insn "memory_barrier"): New insn. | |
25964 | ||
25965 | 2018-04-09 Andrey Belevantsev <abel@ispras.ru> | |
25966 | ||
25967 | PR rtl-optimization/80463 | |
25968 | PR rtl-optimization/83972 | |
25969 | PR rtl-optimization/83480 | |
25970 | ||
25971 | * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the | |
25972 | correct producer for the insn. | |
25973 | (tidy_control_flow): Fixup seqnos in case of debug insns. | |
25974 | ||
25975 | 2018-04-09 Andrey Belevantsev <abel@ispras.ru> | |
25976 | ||
25977 | PR rtl-optimization/83913 | |
25978 | ||
25979 | * sel-sched-ir.c (merge_expr_data): Choose the middle between two | |
25980 | different sched-times when merging exprs. | |
25981 | ||
25982 | 2018-04-09 Andrey Belevantsev <abel@ispras.ru> | |
25983 | ||
25984 | PR rtl-optimization/83962 | |
25985 | ||
25986 | * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call | |
25987 | tidy_fallthru_edge and tidy_control_flow. | |
25988 | ||
25989 | 2018-04-09 Andrey Belevantsev <abel@ispras.ru> | |
25990 | ||
25991 | PR rtl-optimization/83530 | |
25992 | ||
25993 | * sel-sched.c (force_next_insn): New global variable. | |
25994 | (remove_insn_for_debug): When force_next_insn is true, also leave only | |
25995 | next insn in the ready list. | |
25996 | (sel_sched_region): When the region wasn't scheduled, make another pass | |
25997 | over it with force_next_insn set to 1. | |
25998 | ||
25999 | 2018-04-08 Monk Chiang <sh.chiang04@gmail.com> | |
26000 | ||
26001 | * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h | |
26002 | into tm_file. | |
26003 | * config/nds32/constants.md (unspec_volatile_element): Add enum values | |
26004 | for interrupt control. | |
26005 | * config/nds32/nds32-intrinsic.c: Implementation of intrinsic | |
26006 | functions for interrupt control. | |
26007 | * config/nds32/nds32-intrinsic.md: Likewise. | |
26008 | * config/nds32/nds32_intrinsic.h: Likewise. | |
26009 | * config/nds32/nds32.h (nds32_builtins): Likewise. | |
26010 | ||
26011 | 2018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> | |
26012 | ||
26013 | * config/nds32/nds32.c (nds32_init_machine_status, | |
26014 | nds32_legitimate_index_p, nds32_legitimate_address_p): Consider | |
26015 | strict_aligned_p field. | |
26016 | (nds32_expand_to_rtl_hook): New function. | |
26017 | (TARGET_EXPAND_TO_RTL_HOOK): Define. | |
26018 | * config/nds32/nds32.h (machine_function): Add strict_aligned_p field. | |
26019 | ||
26020 | 2018-04-08 Kito Cheng <kito.cheng@gmail.com> | |
26021 | Chung-Ju Wu <jasonwucj@gmail.com> | |
26022 | ||
26023 | * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu. | |
26024 | * config/nds32/nds32-n7.md: New file. | |
26025 | * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7. | |
26026 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7 | |
26027 | pipeline. | |
26028 | * config/nds32/nds32-protos.h: More declarations for n7 pipeline. | |
26029 | * config/nds32/nds32.md (pipeline_model): Add n7. | |
26030 | * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus. | |
26031 | * config/nds32/pipelines.md: Include n7 settings. | |
26032 | ||
26033 | 2018-04-08 Kito Cheng <kito.cheng@gmail.com> | |
26034 | Chung-Ju Wu <jasonwucj@gmail.com> | |
26035 | ||
26036 | * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu. | |
26037 | * config/nds32/nds32-e8.md: New file. | |
26038 | * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8. | |
26039 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8 | |
26040 | pipeline. | |
26041 | * config/nds32/nds32-protos.h: More declarations for e8 pipeline. | |
26042 | * config/nds32/nds32.md (pipeline_model): Add e8. | |
26043 | * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus. | |
26044 | * config/nds32/pipelines.md: Include e8 settings. | |
26045 | ||
26046 | 2018-04-08 Kito Cheng <kito.cheng@gmail.com> | |
26047 | Chung-Ju Wu <jasonwucj@gmail.com> | |
26048 | ||
26049 | * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu. | |
26050 | * config/nds32/nds32-n8.md: New file. | |
26051 | * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8. | |
26052 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8 | |
26053 | pipeline. | |
26054 | * config/nds32/nds32-protos.h: More declarations for n8 pipeline. | |
26055 | * config/nds32/nds32-utils.c: More implementations for n8 pipeline. | |
26056 | * config/nds32/nds32.md (pipeline_model): Add n8. | |
26057 | * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus. | |
26058 | * config/nds32/pipelines.md: Include n8 settings. | |
26059 | ||
26060 | 2018-04-08 Kito Cheng <kito.cheng@gmail.com> | |
26061 | Chung-Ju Wu <jasonwucj@gmail.com> | |
26062 | ||
26063 | * config.gcc (nds32*): Add nds32-utils.o into extra_objs. | |
26064 | * config/nds32/nds32-n9-2r1w.md: New file. | |
26065 | * config/nds32/nds32-n9-3r2w.md: New file. | |
26066 | * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type, | |
26067 | nds32_register_ports): New or modify for cpu n9. | |
26068 | * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9 | |
26069 | pipeline. | |
26070 | * config/nds32/nds32-protos.h: More declarations for n9 pipeline. | |
26071 | * config/nds32/nds32-utils.c: New file. | |
26072 | * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE, | |
26073 | TARGET_MUL_SLOW): Define. | |
26074 | * config/nds32/nds32.md (pipeline_model): New attribute. | |
26075 | * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports): | |
26076 | New options that support cpu n9. | |
26077 | * config/nds32/pipelines.md: Include n9 settings. | |
26078 | * config/nds32/t-nds32 (nds32-utils.o): Add dependency. | |
26079 | ||
26080 | 2018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> | |
26081 | ||
26082 | * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align | |
26083 | information if necessary. | |
26084 | (output_cond_branch_compare_zero): Likewise. | |
26085 | * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case. | |
26086 | (nds32_target_alignment): Refine for alignment. | |
26087 | * config/nds32/nds32.h (NDS32_ALIGN_P): Define. | |
26088 | (FUNCTION_BOUNDARY): Modify. | |
26089 | * config/nds32/nds32.md (call_internal, call_value_internal): Consider | |
26090 | align case. | |
26091 | * config/nds32/nds32.opt (malways-align, malign-functions): New. | |
26092 | ||
26093 | 2018-04-08 Monk Chiang <sh.chiang04@gmail.com> | |
26094 | ||
26095 | * config/nds32/constants.md (unspec_volatile_element): Add values for | |
26096 | TLB operation and data prefetch. | |
26097 | * config/nds32/nds32-intrinsic.c: Implementation of intrinsic | |
26098 | functions for TLB operation and data prefetch. | |
26099 | * config/nds32/nds32-intrinsic.md: Likewise. | |
26100 | * config/nds32/nds32_intrinsic.h: Likewise. | |
26101 | * config/nds32/nds32.c (nds32_dpref_names): Likewise. | |
26102 | (nds32_print_operand): Likewise. | |
26103 | * config/nds32/nds32.h (nds32_builtins): Likewise. | |
26104 | ||
26105 | 2018-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> | |
26106 | Andrew Pinski <pinsika@gcc.gnu.org> | |
26107 | ||
26108 | PR middle-end/82976 | |
26109 | * match.pd: Use constant_boolean_node of correct type instead of | |
26110 | boolean_true_node or boolean_false_node for simplifying | |
26111 | pointer comparisons to zero. | |
26112 | ||
26113 | 2018-04-07 Jakub Jelinek <jakub@redhat.com> | |
26114 | ||
26115 | PR tree-optimization/80021 | |
26116 | * tree.c (verify_type_variant): Make error call in verify_variant_match | |
26117 | translatable and remove final full stop. | |
26118 | ||
26119 | 2018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> | |
26120 | ||
26121 | * config/nds32/constants.md (unspec_volatile_element): Add | |
26122 | UNSPEC_VOLATILE_EH_RETURN. | |
26123 | * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push, | |
26124 | nds32_output_stack_pop): Support dwarf exception handling process. | |
26125 | * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare. | |
26126 | * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf | |
26127 | exception handling process. | |
26128 | (nds32_compute_stack_frame): Likewise. | |
26129 | (nds32_return_addr_rtx): Likewise. | |
26130 | (nds32_initial_elimination_offset): Likewise. | |
26131 | (nds32_expand_prologue): Likewise. | |
26132 | (nds32_expand_epilogue): Likewise. | |
26133 | (nds32_dynamic_chain_address): New function. | |
26134 | * config/nds32/nds32.h (machine_function): Add fields for dwarf | |
26135 | exception handling. | |
26136 | (DYNAMIC_CHAIN_ADDRESS): Define. | |
26137 | (EH_RETURN_DATA_REGNO): Define. | |
26138 | (EH_RETURN_STACKADJ_RTX): Define. | |
26139 | * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement | |
26140 | patterns for dwarf exception handling. | |
26141 | ||
26142 | 2018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> | |
26143 | ||
26144 | * config/nds32/nds32.h: Clean up obsolete macros. | |
26145 | ||
26146 | 2018-04-07 Monk Chiang <sh.chiang04@gmail.com> | |
26147 | ||
26148 | * config/nds32/constants.md (unspec_element, unspec_volatile_element): | |
26149 | Add enum values for particular instructions. | |
26150 | * config/nds32/nds32-intrinsic.c: Implementation of expanding | |
26151 | particular intrinsic functions. | |
26152 | * config/nds32/nds32-intrinsic.md: Likewise. | |
26153 | * config/nds32/nds32_intrinsic.h: Likewise. | |
26154 | * config/nds32/nds32.h (nds32_builtins): Likewise. | |
26155 | * config/nds32/nds32.md (type): Add pbsad and pbsada. | |
26156 | (btst, ave): New patterns for particular instructions. | |
26157 | ||
26158 | 2018-04-07 Monk Chiang <sh.chiang04@gmail.com> | |
26159 | ||
26160 | * config/nds32/constants.md (unspec_element, unspec_volatile_element): | |
26161 | Add enum values for atomic load/store and memory sync. | |
26162 | * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store | |
26163 | and memory sync. | |
26164 | * config/nds32/nds32-intrinsic.md: Likewise. | |
26165 | * config/nds32/nds32_intrinsic.h: Likewise. | |
26166 | * config/nds32/nds32.h (nds32_builtins): Likewise. | |
26167 | ||
26168 | 2018-04-07 Jakub Jelinek <jakub@redhat.com> | |
26169 | ||
26170 | PR tree-optimization/85257 | |
26171 | * fold-const.c (native_encode_vector): If not all elts could fit | |
26172 | and off is -1, return 0 rather than offset. | |
26173 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass | |
26174 | (offseti - offset2) / BITS_PER_UNIT as 4th argument to | |
26175 | native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't | |
26176 | adjust buffer in native_interpret_expr call. | |
26177 | ||
26178 | 2018-04-07 Monk Chiang <sh.chiang04@gmail.com> | |
26179 | ||
26180 | * config/nds32/constants.md (unspec_volatile_element): Add cache | |
26181 | control enum values. | |
26182 | * config/nds32/nds32-intrinsic.c: Add cache control expand functions. | |
26183 | * config/nds32/nds32-intrinsic.md: Add cache control patterns. | |
26184 | * config/nds32/nds32.c (nds32_cctl_names): New. | |
26185 | (nds32_print_operand): Handle cache control register names. | |
26186 | * config/nds32/nds32.h (nds32_builtins): New enum values. | |
26187 | * config/nds32/nds32_intrinsic.h: Add cache control enum types and | |
26188 | macros. | |
26189 | * config/nds32/nds32.md (type): Add mmu. | |
26190 | * config/nds32/pipelines.md (simple_insn): Add mmu. | |
26191 | ||
26192 | 2018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> | |
26193 | ||
26194 | * config/nds32/nds32.md (type): Remove call. | |
26195 | * config/nds32/pipelines.md (simple_insn): Likewise. | |
26196 | ||
26197 | 2018-04-07 Monk Chiang <sh.chiang04@gmail.com> | |
26198 | ||
26199 | * config/nds32/constants.md (unspec_volatile_element): Add | |
26200 | UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and | |
26201 | UNSPEC_VOLATILE_FMFCFG. | |
26202 | * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin | |
26203 | description for fmfcfg and fmfcsr. | |
26204 | (bdesc_1arg): Add fmtcsr. | |
26205 | (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd. | |
26206 | (nds32_expand_builtin_impl): Deal with FPU intrinsic functions. | |
26207 | * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd, | |
26208 | unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr, | |
26209 | unspec_fmfcfg): New patterns. | |
26210 | * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG, | |
26211 | NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS, | |
26212 | NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD. | |
26213 | * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss, | |
26214 | __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr, | |
26215 | __nds32__fmfcfg): Define. | |
26216 | ||
26217 | 2018-04-07 Monk Chiang <sh.chiang04@gmail.com> | |
26218 | ||
26219 | * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more | |
26220 | intrinsic register names. | |
26221 | * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more | |
26222 | intrinsic register enum values and macros. | |
26223 | ||
26224 | 2018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> | |
26225 | ||
26226 | * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition | |
26227 | for load/store addressing form. | |
26228 | (nds32_print_operand_address): Likewise. | |
26229 | ||
26230 | 2018-04-06 Eric Botcazou <ebotcazou@adacore.com> | |
26231 | ||
26232 | PR target/85196 | |
26233 | * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands | |
26234 | based on LABEL_REF. Remove useless assertion. | |
26235 | (pic_address_needs_scratch): Fix formatting. | |
26236 | (sparc_legitimize_pic_address): Minor tweaks. | |
26237 | (sparc_delegitimize_address): Adjust assertion accordingly. | |
26238 | * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand | |
26239 | into symbolic_operand. | |
26240 | (movsi_high_pic_label_ref): Likewise. | |
26241 | (movsi_lo_sum_pic_label_ref): Likewise. | |
26242 | (movdi_pic_label_ref): Likewise. | |
26243 | (movdi_high_pic_label_ref): Likewise. | |
26244 | (movdi_lo_sum_pic_label_ref): Likewise. | |
26245 | ||
26246 | 2018-04-06 Amaan Cheval <amaan.cheval@gmail.com> | |
26247 | ||
26248 | * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for | |
26249 | custom LIB_SPEC setup. | |
26250 | ||
26251 | 2018-04-06 Ruslan Bukin <br@bsdpad.com> | |
26252 | Kito Cheng <kito.cheng@gmail.com> | |
26253 | ||
26254 | * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. | |
26255 | * config/riscv/freebsd.h: New. | |
26256 | ||
26257 | 2018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> | |
26258 | ||
26259 | * config/nds32/nds32.c (nds32_adjust_insn_length): Refine. | |
26260 | * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in | |
26261 | file. | |
26262 | ||
26263 | 2018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> | |
26264 | Kito Cheng <kito.cheng@gmail.com> | |
26265 | ||
26266 | * config/nds32/nds32-md-auxiliary.c (nds32_output_return, | |
26267 | nds32_output_call, nds32_symbol_binds_local_p): New functions. | |
26268 | * config/nds32/nds32-protos.h (nds32_output_call, | |
26269 | nds32_output_return): Declare. | |
26270 | * config/nds32/nds32.md: Refine all the call and return patterns. | |
26271 | ||
26272 | 2018-04-06 Jakub Jelinek <jakub@redhat.com> | |
26273 | ||
26274 | PR debug/85252 | |
26275 | * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only | |
26276 | build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST. | |
26277 | ||
26278 | PR rtl-optimization/84872 | |
26279 | * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if | |
26280 | nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is | |
26281 | EDGE_CROSSING edge. | |
26282 | ||
26283 | 2018-04-06 Tamar Christina <tamar.christina@arm.com> | |
26284 | ||
26285 | * expr.c (copy_blkmode_to_reg): Revert 254862. | |
26286 | * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise. | |
26287 | ||
26288 | 2018-04-06 Richard Biener <rguenther@suse.de> | |
26289 | ||
26290 | PR middle-end/85244 | |
26291 | * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref | |
26292 | after seeing a component reference with an adjacent field. Treat | |
26293 | refs to arrays at struct end of external decls similar to | |
26294 | refs to unconstrained commons. | |
26295 | ||
26296 | 2018-04-06 Jakub Jelinek <jakub@redhat.com> | |
26297 | ||
26298 | PR sanitizer/85213 | |
26299 | * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't | |
26300 | look through SAVE_EXPRs with non-side-effects argument. Adjust | |
26301 | recursive calls. | |
26302 | (fold_comparison): Adjust twoval_comparison_p caller, don't handle | |
26303 | save_p here. | |
26304 | ||
26305 | 2018-04-06 Richard Biener <rguenther@suse.de> | |
26306 | ||
26307 | PR middle-end/85180 | |
26308 | * alias.c (find_base_term): New wrapper around find_base_term | |
26309 | unwinding CSELIB_VAL_PTR changes. | |
26310 | (find_base_term): Do not restore CSELIB_VAL_PTR during the | |
26311 | recursion. | |
26312 | ||
26313 | 2018-04-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
26314 | ||
26315 | * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP | |
26316 | instructions. | |
26317 | * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New | |
26318 | constant definitions. | |
26319 | ("nop"): lr 0,0 -> nopr r0 | |
26320 | ("nop_lr0", "nop_lr1"): New insn definitions. | |
26321 | ||
26322 | 2018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> | |
26323 | ||
26324 | * config/nds32/nds32.md (*stack_push, *stack_pop): Use | |
26325 | NDS32_V3PUSH_AVAILABLE_P macro. | |
26326 | ||
26327 | 2018-04-06 Monk Chiang <sh.chiang04@gmail.com> | |
26328 | Chung-Ju Wu <jasonwucj@gmail.com> | |
26329 | ||
26330 | * config.gcc (nds32*-*-*): Add v2j v3f v3s checking. | |
26331 | (nds32*-*-*): Add float and fpu_config into supported_defaults. | |
26332 | * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): | |
26333 | Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA. | |
26334 | * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN, | |
26335 | UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS. | |
26336 | * config/nds32/constraints.md: New constraints and checking for hard | |
26337 | float configuration. | |
26338 | * config/nds32/iterators.md: New mode iterator and attribute for hard | |
26339 | float configuration. | |
26340 | * config/nds32/nds32-doubleword.md: Use hard float alternatives and | |
26341 | patterns. | |
26342 | * config/nds32/nds32-fpu.md: New file. | |
26343 | * config/nds32/nds32-md-auxiliary.c: New functions and checkings to | |
26344 | deal with hard float code generation. | |
26345 | * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and | |
26346 | ARCH_V3S. | |
26347 | (abi_type, float_reg_number): New enum type. | |
26348 | * config/nds32/nds32-predicates.c: New predicates for hard float. | |
26349 | * config/nds32/nds32-protos.h: Declare functions for hard float. | |
26350 | * config/nds32/nds32.c: Implementation for hard float configuration. | |
26351 | * config/nds32/nds32.h: Definitions for hard float configuration. | |
26352 | * config/nds32/nds32.md: Include hard float machine description and | |
26353 | modify patterns for hard float configuration. | |
26354 | * config/nds32/nds32.opt: New options for hard float configuration. | |
26355 | * config/nds32/predicates.md: New predicates for hard float | |
26356 | configuration. | |
26357 | ||
26358 | 2018-04-06 Kuan-Lin Chen <kuanlinchentw@gmail.com> | |
26359 | ||
26360 | * common/config/nds32/nds32-common.c | |
26361 | (nds32_option_optimization_table): Enable -mreleax-hint by default. | |
26362 | ||
26363 | 2018-04-05 Jakub Jelinek <jakub@redhat.com> | |
26364 | ||
26365 | PR middle-end/85195 | |
26366 | * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around | |
26367 | CONSTRUCTOR_ELT (ctor, ...)->value. | |
26368 | ||
26369 | 2018-04-05 Uros Bizjak <ubizjak@gmail.com> | |
26370 | ||
26371 | PR target/85193 | |
26372 | * config/i386/i386.md (define_attr "memory"): Handle rotate1 type. | |
26373 | ||
26374 | 2018-04-05 Tom de Vries <tom@codesourcery.com> | |
26375 | ||
26376 | PR target/85204 | |
26377 | * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only | |
26378 | cond jump. | |
26379 | ||
26380 | 2018-04-05 Shiva Chen <shiva0217@gmail.com> | |
26381 | Kito Cheng <kito.cheng@gmail.com> | |
26382 | ||
26383 | * config/nds32/constraints.md (U33): Fine-tune checking condition. | |
26384 | * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto. | |
26385 | * config/nds32/nds32.h (nds32_16bit_address_type): Add | |
26386 | ADDRESS_POST_MODIFY_LO_REG_IMM3U. | |
26387 | ||
26388 | 2018-04-05 Shiva Chen <shiva0217@gmail.com> | |
26389 | Kito Cheng <kito.cheng@gmail.com> | |
26390 | ||
26391 | * config/nds32/constraints.md (Ufe): New memory constraint. | |
26392 | * config/nds32/nds32-md-auxiliary.c (nds32_mem_format, | |
26393 | nds32_output_16bit_load): Consider r8 register for lwi45.fe format. | |
26394 | * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe | |
26395 | operands. | |
26396 | * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U. | |
26397 | * config/nds32/nds32.md (*mov<mode>): Adjust pattern. | |
26398 | ||
26399 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26400 | ||
26401 | * config/nds32/nds32.md: Use optimize_size in the condition for | |
26402 | alu-shift instructions. | |
26403 | ||
26404 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26405 | ||
26406 | * config/nds32/nds32.md (divsi4, udivsi4): New patterns. | |
26407 | ||
26408 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26409 | ||
26410 | * config/nds32/nds32.md (negsi2): Refine pattern. | |
26411 | ||
26412 | 2018-04-05 Kito Cheng <kito.cheng@gmail.com> | |
26413 | Chung-Ju Wu <jasonwucj@gmail.com> | |
26414 | ||
26415 | * config/nds32/iterators.md (shift_rotate): New code iterator. | |
26416 | (shift): New code attribute. | |
26417 | * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New. | |
26418 | * config/nds32/nds32-protos.h (nds32_expand_constant): Declare. | |
26419 | * config/nds32/nds32.c (nds32_print_operand): Deal with more cases. | |
26420 | * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for | |
26421 | bit-wise operations. | |
26422 | (andsi3, *andsi3): Ditto. | |
26423 | (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto. | |
26424 | (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto. | |
26425 | (<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto. | |
26426 | * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand, | |
26427 | nds32_ior_operand, nds32_xor_operand): New predicates. | |
26428 | ||
26429 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26430 | ||
26431 | * config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ... | |
26432 | (addsi3, subsi3): ... this. | |
26433 | ||
26434 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26435 | ||
26436 | * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator. | |
26437 | ||
26438 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26439 | ||
26440 | * config/nds32/nds32.md: Adjust indention. | |
26441 | ||
26442 | 2018-04-05 Kito Cheng <kito.cheng@gmail.com> | |
26443 | ||
26444 | * config/nds32/nds32.md (feature): New attribute. | |
26445 | ||
26446 | 2018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> | |
26447 | ||
26448 | * config/nds32/nds32.md (subtype): New attribute. | |
26449 | ||
26450 | 2018-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
26451 | ||
26452 | PR target/85203 | |
26453 | * config/arm/arm-builtins.c (arm_expand_builtin): Change | |
26454 | expansion to perform a bitwise AND of the argument followed by a | |
26455 | boolean negation of the result. | |
26456 | ||
26457 | 2018-04-04 Peter Bergner <bergner@vnet.ibm.com> | |
26458 | ||
26459 | PR rtl-optimization/84878 | |
26460 | * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine | |
26461 | the basic block. Assert the use reference is not artificial and that | |
26462 | it has an associated insn. | |
26463 | ||
26464 | 2018-04-04 Michael Matz <matz@suse.de> | |
26465 | ||
26466 | * builtins.c (compute_objsize): Pass correct operand | |
26467 | to array_at_struct_end_p. | |
26468 | ||
26469 | 2018-04-04 Richard Biener <rguenther@suse.de> | |
26470 | ||
26471 | PR lto/85176 | |
26472 | * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces | |
26473 | from contexts for DINFO_LEVEL_TERSE and below. | |
26474 | ||
26475 | 2018-04-04 Kito Cheng <kito.cheng@gmail.com> | |
26476 | ||
26477 | * config/nds32/nds32-doubleword.md (move_<mode>): Require | |
26478 | resiter_operand condition. | |
26479 | * config/nds32/nds32.md (*move<mode>): Ditto. | |
26480 | ||
26481 | 2018-04-04 Kito Cheng <kito.cheng@gmail.com> | |
26482 | Monk Chiang <sh.chiang04@gmail.com> | |
26483 | ||
26484 | * config/nds32/nds32.md (movmisalign<mode>): New pattern. | |
26485 | ||
26486 | 2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> | |
26487 | ||
26488 | * config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>. | |
26489 | ||
26490 | 2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> | |
26491 | Kito Cheng <kito.cheng@gmail.com> | |
26492 | ||
26493 | * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code, | |
26494 | nds32_cond_code_str, output_cond_branch, | |
26495 | output_cond_branch_compare_zero, nds32_expand_cbranch, | |
26496 | nds32_expand_cstore, nds32_expand_movcc, | |
26497 | nds32_output_cbranchsi4_equality_zero, | |
26498 | nds32_output_cbranchsi4_equality_reg, | |
26499 | nds32_output_cbranchsi4_equality_reg_or_const_int, | |
26500 | nds32_output_cbranchsi4_greater_less_zero: New functions. | |
26501 | * config/nds32/nds32-protos.h (nds32_expand_cbranch, | |
26502 | nds32_expand_cstore, nds32_expand_movcc, | |
26503 | nds32_output_cbranchsi4_equality_zero, | |
26504 | nds32_output_cbranchsi4_equality_reg, | |
26505 | nds32_output_cbranchsi4_equality_reg_or_const_int, | |
26506 | nds32_output_cbranchsi4_greater_less_zero): Declare. | |
26507 | * config/nds32/predicates.md (nds32_movecc_comparison_operator, | |
26508 | nds32_rimm11s_operand): New predicates. | |
26509 | * config/nds32/nds32.h (nds32_expand_result_type): New enum type. | |
26510 | * config/nds32/nds32.md: Rewrite all the branch and conditional move | |
26511 | patterns. | |
26512 | ||
26513 | 2018-04-04 Kito Cheng <kito.cheng@gmail.com> | |
26514 | ||
26515 | * config/nds32/nds32-doubleword.md: Refine all the instruction type. | |
26516 | * config/nds32/nds32.md: Ditto. | |
26517 | * config/nds32/pipelines.md: Ditto. | |
26518 | ||
26519 | 2018-04-04 Richard Biener <rguenther@suse.de> | |
26520 | ||
26521 | PR tree-optimization/85168 | |
26522 | * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid | |
26523 | propagating abnormals. | |
26524 | ||
26525 | 2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> | |
26526 | ||
26527 | * config/nds32/nds32.md (enabled): Use yes/no for this attribute. | |
26528 | ||
26529 | 2018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> | |
26530 | Kito Cheng <kito.cheng@gmail.com> | |
26531 | ||
26532 | * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function. | |
26533 | * config/nds32/nds32-protos.h (nds32_long_call_p): Declare. | |
26534 | * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. | |
26535 | (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. | |
26536 | * config/nds32/nds32.md (sibcall_internal): New. | |
26537 | (sibcall_register): Remove. | |
26538 | (sibcall_immediate): Remove. | |
26539 | (sibcall_value_internal): New. | |
26540 | (sibcall_value_register): Remove. | |
26541 | (sibcall_value_immediate): Remove. | |
26542 | * config/nds32/predicates.md (nds32_general_register_operand): New. | |
26543 | (nds32_call_address_operand): New. | |
26544 | ||
26545 | 2018-04-03 Jakub Jelinek <jakub@redhat.com> | |
26546 | ||
26547 | PR rtl-optimization/85167 | |
26548 | * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and | |
26549 | bb_defs if *split_p, instead preinitialize it to NULL. | |
26550 | ||
26551 | PR tree-optimization/85156 | |
26552 | * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid | |
26553 | evaluating the argument multiple times. | |
26554 | ||
26555 | 2018-04-03 Bill Schmidt <wschmidt@linux.ibm.com> | |
26556 | ||
26557 | * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather | |
26558 | than vector. | |
26559 | (_mm_cvtpd_ps): Likewise. | |
26560 | (_mm_cvttpd_epi32): Likewise. | |
26561 | * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise. | |
26562 | * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine | |
26563 | vector, pixel, and bool following altivec.h include. | |
26564 | ||
26565 | 2018-04-03 Martin Sebor <msebor@redhat.com> | |
26566 | ||
26567 | * doc/extend.texi (Common Function Attributes): Clarify. | |
26568 | (const attribute): Likewise. | |
26569 | (pure attribute): Likewise. | |
26570 | ||
26571 | 2018-04-03 Jakub Jelinek <jakub@redhat.com> | |
26572 | ||
26573 | PR target/85169 | |
26574 | * config/i386/i386.c (ix86_expand_vector_set): Use | |
26575 | HOST_WIDE_INT_1U << elt instead of 1 << elt. Formatting fix. | |
26576 | ||
26577 | 2018-04-03 Uros Bizjak <ubizjak@gmail.com> | |
26578 | ||
26579 | * config/i386/i386.c (emit_i387_cw_initialization): Always use logic | |
26580 | instructions when changing rounding bits to preserve precision bits | |
26581 | in the x87 control word. | |
26582 | ||
26583 | 2018-04-03 Martin Liska <mliska@suse.cz> | |
26584 | ||
26585 | PR tree-optimization/82491 | |
26586 | * rtl.h (strip_offset_and_add): Replace += suboffset with | |
26587 | poly_uint64 () + suboffset. | |
26588 | ||
26589 | 2018-03-29 Martin Liska <mliska@suse.cz> | |
26590 | Martin Jambor <mjambor@suse.cz> | |
26591 | ||
26592 | PR ipa/84947 | |
26593 | * ipa-cp.c (propagate_bits_across_jump_function): Bail out if | |
26594 | param_type is not an integral or pointer type. | |
26595 | ||
26596 | 2018-04-03 Richard Biener <rguenther@suse.de> | |
26597 | ||
26598 | * sese.h (recompute_all_dominators): Remove. | |
26599 | ||
26600 | 2018-04-02 Martin Sebor <msebor@redhat.com> | |
26601 | ||
26602 | * doc/invoke.texi (-Wrestrict): Fix typos. | |
26603 | ||
26604 | 2018-04-02 Jim Wilson <jimw@sifive.com> | |
26605 | ||
26606 | * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero. | |
26607 | * config/riscv/riscv.md (<optab>si3): Use QImode shift count. | |
26608 | (<optab>di3, <optab>si3_extend): Likewise. | |
26609 | (<optab>si3_mask, <optab>si3_mask_1): New. | |
26610 | (<optab>di3_mask, <optab>di3_mask_1): New. | |
26611 | (<optab>si3_extend_mask, <optab>si3_extend_mask_1): New. | |
26612 | (lshrsi3_zero_extend_1): Use VOIDmode shift count. | |
26613 | * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count. | |
26614 | ||
26615 | 2018-04-02 Gerald Pfeifer <gerald@pfeifer.com> | |
26616 | ||
26617 | * doc/cpp.texi (Variadic Macros): Fix line continuation in an | |
26618 | example. | |
26619 | ||
26620 | 2018-04-02 Chung-Ju Wu <jasonwucj@gmail.com> | |
26621 | ||
26622 | * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define. | |
26623 | (nds32_canonicalize_comparison): New function. | |
26624 | ||
26625 | 2018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> | |
26626 | Kito Cheng <kito.cheng@gmail.com> | |
26627 | Kuan-Lin Chen <kuanlinchentw@gmail.com> | |
26628 | ||
26629 | * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs. | |
26630 | * config/nds32/constants.md (unspec_volatile_element): Add | |
26631 | UNSPEC_VOLATILE_RELAX_GROUP. | |
26632 | * config/nds32/nds32-relax-opt.c: New file. | |
26633 | * config/nds32/nds32-predicates.c | |
26634 | (nds32_symbol_load_store_p): New function. | |
26635 | * config/nds32/nds32-protos.h | |
26636 | (nds32_symbol_load_store_p): Declare function. | |
26637 | (make_pass_nds32_relax_opt): Declare new rtl pass function. | |
26638 | * config/nds32/nds32.c | |
26639 | (nds32_register_pass): New function to register pass. | |
26640 | (nds32_register_passes): New function to register passes. | |
26641 | * config/nds32/nds32.md (relax_group): New pattern. | |
26642 | * config/nds32/nds32.opt (mrelax-hint): New option. | |
26643 | * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency. | |
26644 | ||
26645 | 2018-04-01 Kito Cheng <kito.cheng@gmail.com> | |
26646 | ||
26647 | * config/nds32/t-nds32: Modify files dependency. | |
26648 | ||
26649 | 2018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> | |
26650 | ||
26651 | * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character. | |
26652 | (PROFILE_HOOK): Define its implementation. | |
26653 | ||
26654 | 2018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> | |
26655 | ||
26656 | * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int | |
26657 | type and 32-bit size. | |
26658 | ||
26659 | 2018-04-01 Jakub Jelinek <jakub@redhat.com> | |
26660 | ||
26661 | PR middle-end/85090 | |
26662 | * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F. | |
26663 | (V_128_256): New mode iterator. | |
26664 | (*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split. | |
26665 | (*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise. | |
26666 | (xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead | |
26667 | of V. | |
26668 | * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and | |
26669 | V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F. | |
26670 | ||
26671 | 2018-03-31 Segher Boessenkool <segher@kernel.crashing.org> | |
26672 | ||
26673 | PR target/83315 | |
26674 | * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet) | |
26675 | NaN inputs correctly. | |
26676 | ||
26677 | 2018-03-30 Peter Bergner <bergner@vnet.ibm.com> | |
26678 | ||
26679 | PR target/80546 | |
26680 | * config/rs6000/vsx.md (??r): New mode attribute. | |
26681 | (*vsx_mov<mode>_64bit): Use it. | |
26682 | (*vsx_mov<mode>_32bit): Likewise. | |
26683 | ||
26684 | 2018-03-30 Martin Sebor <msebor@redhat.com> | |
26685 | ||
26686 | PR tree-optimization/84818 | |
26687 | * builtins.c (check_access): Use warning_n. | |
26688 | ||
26689 | 2018-03-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
26690 | ||
26691 | PR target/83822 | |
26692 | * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant | |
26693 | condition. | |
26694 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant | |
26695 | condition. | |
26696 | ||
26697 | 2018-03-30 Julia Koval <julia.koval@intel.com> | |
26698 | ||
26699 | PR target/84413 | |
26700 | * x86-tune.def (movx, partial_reg_dependency): Enable for | |
26701 | m_SKYLAKE_AVX512. | |
26702 | ||
26703 | 2018-03-29 Vladimir Makarov <vmakarov@redhat.com> | |
26704 | ||
26705 | PR inline-asm/84985 | |
26706 | * lra-constraints.c (process_alt_operands): Move setting | |
26707 | this_alternative_matches below. | |
26708 | ||
26709 | 2018-03-29 Martin Liska <mliska@suse.cz> | |
26710 | ||
26711 | PR lto/84995. | |
26712 | * doc/invoke.texi: Document how LTO works with debug info. | |
26713 | Describe auto-load support of binutils. Mention 'x86-64' | |
26714 | as valid option value of -march option. | |
26715 | ||
26716 | 2018-03-29 Jakub Jelinek <jakub@redhat.com> | |
26717 | ||
26718 | * config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>. | |
26719 | ||
26720 | PR c/85094 | |
26721 | * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT. | |
26722 | For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe | |
26723 | OEP_NO_HASH_CHECK for recursive call, to avoid exponential | |
26724 | checking. | |
26725 | ||
26726 | 2018-03-28 Peter Bergner <bergner@vnet.ibm.com> | |
26727 | ||
26728 | PR target/84912 | |
26729 | * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define. | |
26730 | (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64. | |
26731 | * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support | |
26732 | for RS6000_BTM_POWERPC64. | |
26733 | (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64 | |
26734 | (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64. | |
26735 | * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro | |
26736 | definition. | |
26737 | (DIVDE): Use it. | |
26738 | (DIVDEU): Likewise. | |
26739 | ||
26740 | 2018-03-28 Carl Love <cel@us.ibm.com> | |
26741 | ||
26742 | Revert | |
26743 | 2017-09-27 Carl Love <cel@us.ibm.com> | |
26744 | ||
26745 | * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. | |
26746 | (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. | |
26747 | * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the | |
26748 | fctiw instruction. | |
26749 | ||
26750 | 2018-03-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
26751 | ||
26752 | * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool | |
26753 | instead of __vector bool. | |
26754 | (_mm_max_pu8): Likewise. | |
26755 | (_mm_min_pi16): Likewise. | |
26756 | ||
26757 | 2018-03-28 Peter Bergner <bergner@vnet.ibm.com> | |
26758 | ||
26759 | PR target/84912 | |
26760 | * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion. | |
26761 | (DIVWEUO): Likewise. | |
26762 | (DIVDEO): Likewise. | |
26763 | (DIVDEUO): Likewise. | |
26764 | * config/rs6000/rs6000.c (builtin_function_type): Remove support for | |
26765 | DIVWEUO and DIVDEUO. | |
26766 | * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs. | |
26767 | (UNSPEC_DIV_EXTEND): Remove deleted unspecs. | |
26768 | (div_extend): Likewise. | |
26769 | * doc/extend.texi (__builtin_divweo): Remove documentation for deleted | |
26770 | builtin function. | |
26771 | (__builtin_divweuo): Likewise. | |
26772 | (__builtin_divdeo): Likewise. | |
26773 | (__builtin_divdeuo): Likewise. | |
26774 | ||
26775 | 2018-03-28 Jakub Jelinek <jakub@redhat.com> | |
26776 | ||
26777 | PR target/85095 | |
26778 | * config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0, | |
26779 | *sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns. | |
26780 | ||
26781 | PR tree-optimization/82004 | |
26782 | * gimple-match-head.c (optimize_pow_to_exp): New function. | |
26783 | * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE. | |
26784 | Don't fold to exp if optimize_pow_to_exp is false. | |
26785 | ||
26786 | 2018-03-28 Martin Liska <mliska@suse.cz> | |
26787 | ||
26788 | PR other/84819 | |
26789 | * calls.c (initialize_argument_information): Fix trailing space. | |
26790 | * common.opt: Fix typo and provide better explanation for | |
26791 | -fsanitize-coverage option. | |
26792 | * config/i386/i386.opt: Fix typo. | |
26793 | ||
26794 | 2018-03-28 Jakub Jelinek <jakub@redhat.com> | |
26795 | Martin Liska <mliska@suse.cz> | |
26796 | ||
26797 | PR sanitizer/85081 | |
26798 | * gimplify.c (asan_poison_variable): Don't do the check for | |
26799 | gimplify_omp_ctxp here. | |
26800 | (gimplify_decl_expr): Do it here. | |
26801 | (gimplify_target_expr): Likewise. | |
26802 | ||
26803 | 2018-03-28 Martin Liska <mliska@suse.cz> | |
26804 | ||
26805 | PR target/84988 | |
26806 | * config/i386/i386.c (ix86_function_arg_advance): Do not call | |
26807 | chkp_type_bounds_count if MPX is not enabled. | |
26808 | ||
26809 | 2018-03-27 Chung-Ju Wu <jasonwucj@gmail.com> | |
26810 | ||
26811 | * config/nds32/nds32.h (BRANCH_COST): Adjust cost. | |
26812 | ||
26813 | 2018-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> | |
26814 | ||
26815 | PR target/84914 | |
26816 | * config/rs6000/rs6000.c (create_complex_muldiv): New helper | |
26817 | function to create the function decl for complex long double | |
26818 | multiply and divide for -mabi=ieeelongdouble. | |
26819 | (init_float128_ieee): Call it. | |
26820 | ||
26821 | 2018-03-27 H.J. Lu <hongjiu.lu@intel.com> | |
26822 | ||
26823 | PR target/85044 | |
26824 | * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for | |
26825 | -fcf-protection=branch -mibt. | |
26826 | * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes. | |
26827 | ||
26828 | 2018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
26829 | ||
26830 | PR target/81863 | |
26831 | * config/arm/arm.c (arm_valid_symbolic_address): Handle | |
26832 | arm_word_relocations. | |
26833 | ||
26834 | 2018-03-27 Cesar Philippidis <cesar@codesourcery.com> | |
26835 | ||
26836 | PR target/85056 | |
26837 | * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to | |
26838 | extern array declarations. | |
26839 | ||
26840 | 2018-03-27 Richard Biener <rguenther@suse.de> | |
26841 | ||
26842 | PR middle-end/84067 | |
26843 | * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with | |
26844 | explicit single_use checks. | |
26845 | ||
26846 | 2018-03-27 Richard Biener <rguenther@suse.de> | |
26847 | ||
26848 | PR tree-optimization/85082 | |
26849 | * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): | |
26850 | Valueize the VUSE. | |
26851 | ||
26852 | 2018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
26853 | ||
26854 | * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES | |
26855 | * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]): | |
26856 | Turn on fasynchronous-unwind-tables and funwind-tables. | |
26857 | ||
26858 | 2018-03-26 Uros Bizjak <ubizjak@gmail.com> | |
26859 | ||
26860 | PR target/85073 | |
26861 | * config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern. | |
26862 | (*bmi_blsr_<mode>_ccz): Ditto. | |
26863 | ||
26864 | 2018-03-26 Tom de Vries <tom@codesourcery.com> | |
26865 | ||
26866 | PR tree-optimization/85063 | |
26867 | * omp-general.c (offloading_function_p): New function. Factor out | |
26868 | of ... | |
26869 | * omp-offload.c (pass_omp_target_link::gate): ... here. | |
26870 | * omp-general.h (offloading_function_p): Declare. | |
26871 | * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable | |
26872 | with attribute omp declare target for offloading functions. | |
26873 | ||
26874 | 2018-03-24 Richard Sandiford <richard.sandiford@linaro.org> | |
26875 | ||
26876 | PR tree-optimization/84005 | |
26877 | * tree-data-ref.h (get_base_for_alignment): Declare. | |
26878 | * tree-data-ref.c (get_base_for_alignment_1): New function. | |
26879 | (get_base_for_alignment): Likewise. | |
26880 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use | |
26881 | get_base_for_alignment to find a suitable base object, instead | |
26882 | of always using drb->base_address. | |
26883 | ||
26884 | 2018-03-23 Jakub Jelinek <jakub@redhat.com> | |
26885 | ||
26886 | PR inline-asm/85022 | |
26887 | * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have | |
26888 | known size by default. | |
26889 | ||
26890 | 2018-03-23 Vladimir Makarov <vmakarov@redhat.com> | |
26891 | ||
26892 | PR inline-asm/85030 | |
26893 | * lra-constraints.c (process_alt_operands): Don't match BLKmode | |
26894 | and non BLKmode operands. | |
26895 | ||
26896 | 2018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26897 | ||
26898 | PR target/85026 | |
26899 | * config/arm/arm.md (unaligned_loadhis): Remove first alternative. | |
26900 | Clean up attributes. | |
26901 | ||
26902 | 2018-03-23 Richard Biener <rguenther@suse.de> | |
26903 | ||
26904 | PR debug/85020 | |
26905 | * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when | |
26906 | we are going to emit early debug for LTO. | |
26907 | ||
26908 | 2018-03-23 Jakub Jelinek <jakub@redhat.com> | |
26909 | ||
26910 | PR inline-asm/85034 | |
26911 | * function.c (match_asm_constraints_1): Don't optimize if input | |
26912 | doesn't satisfy general_operand predicate for output's mode. | |
26913 | ||
26914 | PR inline-asm/85022 | |
26915 | * alias.c (write_dependence_p): Don't require for x_canonicalized | |
26916 | non-VOIDmode if x has VOIDmode. | |
26917 | ||
26918 | PR sanitizer/85029 | |
26919 | * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), | |
26920 | just don't try to optimize it rather than assert it never happens. | |
26921 | ||
26922 | 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
26923 | ||
26924 | * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X | |
26925 | macro expansions for definition of ST_INTERNAL_<mode> and | |
26926 | LD_INTERNAL_<mode> builtins. | |
26927 | * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): | |
26928 | Remove prototype. | |
26929 | * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this | |
26930 | function. | |
26931 | (altivec_expand_st_builtin): Likewise. | |
26932 | (altivec_expand_builtin): Remove calls to deleted functions. | |
26933 | (rs6000_address_for_altivec): Delete this function. | |
26934 | * config/rs6000/vector.md: Remove expands for | |
26935 | vector_altivec_load_<mode> and vector_altivec_store_<mode>. | |
26936 | ||
26937 | 2018-03-22 Sudakshina Das <sudi.das@arm.com> | |
26938 | ||
26939 | PR target/84826 | |
26940 | * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. | |
26941 | * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid | |
26942 | re-computing once computed. | |
26943 | (arm_expand_prologue): Compute machine->static_chain_stack_bytes. | |
26944 | (arm_init_machine_status): Initialize | |
26945 | machine->static_chain_stack_bytes. | |
26946 | ||
26947 | 2018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
26948 | ||
26949 | PR target/84760 | |
26950 | * doc/extend.texi: Add four new prototypes for vec_ld. | |
26951 | * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol | |
26952 | definitions for more logical presentation. | |
26953 | * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add | |
26954 | entries for V1TI variants of __builtin_altivec_ld builtin. | |
26955 | * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and | |
26956 | handling of V1TI variant of LVX icode pattern. | |
26957 | (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. | |
26958 | (rs6000_gimple_fold_builtin): Likewise. | |
26959 | (altivec_init_builtins): Add code to define | |
26960 | __builtin_altivec_lvx_v1ti function. | |
26961 | ||
26962 | 2018-03-22 Jakub Jelinek <jakub@redhat.com> | |
26963 | ||
26964 | PR inline-asm/84941 | |
26965 | * function.c (match_asm_constraints_1): Don't do the optimization | |
26966 | if input isn't a REG, SUBREG, MEM or constant. | |
26967 | ||
26968 | 2018-03-22 Tom de Vries <tom@codesourcery.com> | |
26969 | ||
26970 | PR tree-optimization/84956 | |
26971 | * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with | |
26972 | bb_has_abnormal_pred. | |
26973 | ||
26974 | 2018-03-22 Jakub Jelinek <jakub@redhat.com> | |
26975 | ||
26976 | PR sanitizer/85018 | |
26977 | * dwarf2asm.c (dw2_output_indirect_constant_1): Set | |
26978 | DECL_INITIAL (decl) to decl at the end. | |
26979 | * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, | |
26980 | adjust the comment. | |
26981 | ||
26982 | 2018-03-21 Joseph Myers <joseph@codesourcery.com> | |
26983 | ||
26984 | * doc/extend.texi (__builtin_tgmath): Document when complex | |
26985 | integer types are treated as _Complex _Float64. | |
26986 | ||
26987 | 2018-03-21 Tom de Vries <tom@codesourcery.com> | |
26988 | ||
26989 | * doc/extend.texi (__builtin_extend_pointer): Remove pasto. | |
26990 | ||
26991 | 2018-03-21 Jakub Jelinek <jakub@redhat.com> | |
26992 | ||
26993 | PR tree-optimization/84960 | |
26994 | * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb | |
26995 | if it is ENTRY block, move them into single succ of ENTRY in that case. | |
26996 | ||
26997 | 2018-03-21 Richard Sandiford <richard.sandiford@linaro.org> | |
26998 | ||
26999 | PR tree-optimization/84811 | |
27000 | * poly-int.h (poly_span_traits): Remove the T3 parameter and | |
27001 | promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. | |
27002 | (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): | |
27003 | (known_subrange_p): Update accordingly. Cast each value involved | |
27004 | in the size comparison, rather than casting the result of the | |
27005 | subtraction. | |
27006 | ||
27007 | 2018-03-21 Jakub Jelinek <jakub@redhat.com> | |
27008 | ||
27009 | PR tree-optimization/84982 | |
27010 | * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion | |
27011 | by flipping the least significant bit rather than all bits from | |
27012 | bitpos to bitpos + bitsize - 1. | |
27013 | ||
27014 | 2018-03-21 Nathan Sidwell <nathan@acm.org> | |
27015 | ||
27016 | * doc/extend.texi (Deprecated Features): Remove mention of | |
27017 | long-deleted deprecations. | |
27018 | ||
27019 | 2018-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27020 | ||
27021 | PR jit/84288 | |
27022 | * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. | |
27023 | * configure: Regenerate. | |
27024 | ||
27025 | 2018-03-21 Tom de Vries <tom@codesourcery.com> | |
27026 | ||
27027 | PR tree-optimization/83126 | |
27028 | * tree-parloops.c (num_phis): New function. | |
27029 | (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. | |
27030 | ||
27031 | 2018-03-21 Nathan Sidwell <nathan@acm.org> | |
27032 | ||
27033 | * doc/extend.texi (Deprecated Features): Update deprecated flags, | |
27034 | mention anon-struct/union members and trailing attributes. | |
27035 | ||
27036 | 2018-03-21 Bin Cheng <bin.cheng@arm.com> | |
27037 | ||
27038 | PR tree-optimization/84969 | |
27039 | * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder | |
27040 | builtin memset partitions if they set different rhs values. | |
27041 | ||
27042 | 2018-03-21 Jakub Jelinek <jakub@redhat.com> | |
27043 | ||
27044 | PR rtl-optimization/84989 | |
27045 | * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify | |
27046 | VEC_DUPLICATE with scalar result mode. | |
27047 | ||
27048 | 2018-03-21 Martin Liska <mliska@suse.cz> | |
27049 | ||
27050 | PR ipa/84963 | |
27051 | * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove | |
27052 | not intended return statement. | |
27053 | ||
27054 | 2018-03-21 Martin Liska <mliska@suse.cz> | |
27055 | ||
27056 | PR target/84988 | |
27057 | * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro. | |
27058 | (chkp_find_bound_slots_1): Limit number of iterations. | |
27059 | ||
27060 | 2018-03-20 David H. Gutteridge <dhgutteridge@sympatico.ca> | |
27061 | ||
27062 | PR target/84838 | |
27063 | * Minor grammar fixes for x86 options. | |
27064 | ||
27065 | 2018-03-20 Jakub Jelinek <jakub@redhat.com> | |
27066 | ||
27067 | PR debug/84875 | |
27068 | * dce.c (delete_unmarked_insns): Don't remove frame related noop moves | |
27069 | holding REG_CFA_RESTORE notes, instead turn them into a USE. | |
27070 | ||
27071 | 2018-03-20 Peter Bergner <bergner@vnet.ibm.com> | |
27072 | ||
27073 | PR target/83789 | |
27074 | * config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn. | |
27075 | (altivec_lvx_<mode>_1op): Likewise. | |
27076 | (altivec_stvx_<mode>_2op): Likewise. | |
27077 | (altivec_stvx_<mode>_1op): Likewise. | |
27078 | (altivec_lvx_<VM2:mode>): New define_expand. | |
27079 | (altivec_stvx_<VM2:mode>): Likewise. | |
27080 | (altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn. | |
27081 | (altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. | |
27082 | (altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise. | |
27083 | (altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. | |
27084 | * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders. | |
27085 | (rs6000_gen_lvx): Likewise. | |
27086 | * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise. | |
27087 | (altivec_expand_stv_builtin): Likewise. | |
27088 | (altivec_expand_builtin): Likewise. | |
27089 | * config/rs6000/vector.md: Likewise. | |
27090 | ||
27091 | 2018-03-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
27092 | ||
27093 | PR target/82518 | |
27094 | * config/arm/arm.c (arm_array_mode_supported_p): Return false for | |
27095 | BYTES_BIG_ENDIAN. | |
27096 | ||
27097 | 2018-03-20 Richard Biener <rguenther@suse.de> | |
27098 | ||
27099 | PR target/84986 | |
27100 | * config/i386/i386.c (ix86_add_stmt_cost): Only cost | |
27101 | sign-conversions as zero, fall back to standard scalar_stmt | |
27102 | cost for the rest. | |
27103 | ||
27104 | 2018-03-20 Martin Liska <mliska@suse.cz> | |
27105 | ||
27106 | PR ipa/84825 | |
27107 | * predict.c (rebuild_frequencies): Handle case when we have | |
27108 | PROFILE_ABSENT, but flag_guess_branch_prob is false. | |
27109 | ||
27110 | 2018-03-20 Jakub Jelinek <jakub@redhat.com> | |
27111 | ||
27112 | PR target/84990 | |
27113 | * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off | |
27114 | flag_section_anchors. | |
27115 | * varasm.c (use_blocks_for_decl_p): Remove hack for | |
27116 | dw2_force_const_mem. | |
27117 | ||
27118 | PR target/84845 | |
27119 | * config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename | |
27120 | to ... | |
27121 | (*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this. If pseudos can't | |
27122 | be created, use lowpart_subreg of operands[0] rather than operands[0] | |
27123 | itself. | |
27124 | (*aarch64_reg_<mode>3_minus_mask): Rename to ... | |
27125 | (*aarch64_ashl_reg_<mode>3_minus_mask): ... this. | |
27126 | (*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate | |
27127 | and n constraint instead of aarch64_shift_imm_di and Usd. | |
27128 | (*aarch64_reg_<optab>_minus<mode>3): Rename to ... | |
27129 | (*aarch64_<optab>_reg_minus<mode>3): ... this. | |
27130 | ||
27131 | 2018-03-20 Sudakshina Das <sudi.das@arm.com> | |
27132 | ||
27133 | PR target/82989 | |
27134 | * config/arm/neon.md (ashldi3_neon): Update ?s for constraints | |
27135 | to favor GPR over NEON registers. | |
27136 | (<shift>di3_neon): Likewise. | |
27137 | ||
27138 | 2018-03-20 Tom de Vries <tom@codesourcery.com> | |
27139 | ||
27140 | PR target/84952 | |
27141 | * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync. | |
27142 | (nvptx_process_pars): Emit bar.sync asap and alap. | |
27143 | ||
27144 | 2018-03-20 Tom de Vries <tom@codesourcery.com> | |
27145 | ||
27146 | PR target/84954 | |
27147 | * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update | |
27148 | seen_label if seen_label is already set. | |
27149 | ||
27150 | 2018-03-20 Jakub Jelinek <jakub@redhat.com> | |
27151 | ||
27152 | PR target/84945 | |
27153 | * config/i386/i386.c (fold_builtin_cpu): For features above 31 | |
27154 | use __cpu_features2 variable instead of __cpu_model.__cpu_features[0]. | |
27155 | Use 1U instead of 1. Formatting fixes. | |
27156 | ||
27157 | PR c/84953 | |
27158 | * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type | |
27159 | instead of TREE_TYPE (s1) for the return value. | |
27160 | ||
27161 | 2018-03-19 Jakub Jelinek <jakub@redhat.com> | |
27162 | ||
27163 | PR tree-optimization/84946 | |
27164 | * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute | |
27165 | bitsize + bitsize in poly_uint64 rather than poly_int64. | |
27166 | ||
27167 | PR sanitizer/78651 | |
27168 | * dwarf2asm.c: Include fold-const.c. | |
27169 | (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR | |
27170 | of decl rather than decl itself. | |
27171 | ||
27172 | PR rtl-optimization/84643 | |
27173 | * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. | |
27174 | ||
27175 | 2018-03-19 Maxim Ostapenko <m.ostapenko@samsung.com> | |
27176 | ||
27177 | PR sanitizer/78651 | |
27178 | * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before | |
27179 | calling assemble_variable. | |
27180 | ||
27181 | 2018-03-19 Sudakshina Das <sudi.das@arm.com> | |
27182 | ||
27183 | PR target/81647 | |
27184 | * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify | |
27185 | instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED. | |
27186 | ||
27187 | 2018-03-19 Jim Wilson <jimw@sifive.com> | |
27188 | ||
27189 | PR bootstrap/84856 | |
27190 | * config/riscv/riscv.c (riscv_function_arg_boundary): Use | |
27191 | PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY. | |
27192 | (riscv_first_stack_step): Likewise. | |
27193 | (riscv_option_override): Use STACK_BOUNDARY instead of | |
27194 | MIN_STACK_BOUNDARY. | |
27195 | * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from | |
27196 | MIN_STACK_BOUNDARY. | |
27197 | (BIGGEST_ALIGNMENT): Set to 128. | |
27198 | (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY. | |
27199 | (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of | |
27200 | STACK_BOUNDARY. | |
27201 | ||
27202 | 2018-03-19 Richard Biener <rguenther@suse.de> | |
27203 | ||
27204 | PR tree-optimization/84933 | |
27205 | * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound | |
27206 | values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE. | |
27207 | ||
27208 | 2018-03-19 Richard Biener <rguenther@suse.de> | |
27209 | ||
27210 | PR tree-optimization/84859 | |
27211 | * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function. | |
27212 | (cond_if_else_store_replacement): Perform sinking operation on | |
27213 | single-store BBs regardless of MAX_STORES_TO_SINK setting. | |
27214 | Generalize what a BB with a single eligible store is. | |
27215 | ||
27216 | 2018-03-19 Richard Biener <rguenther@suse.de> | |
27217 | ||
27218 | PR tree-optimization/84929 | |
27219 | * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard | |
27220 | chrec_is_positive against non-chrec arg. | |
27221 | ||
27222 | 2018-03-19 Tamar Christina <tamar.christina@arm.com> | |
27223 | ||
27224 | PR target/84711 | |
27225 | * config/arm/arm.c (arm_can_change_mode_class): revert r258554. | |
27226 | ||
27227 | 2018-03-18 Martin Liska <mliska@suse.cz> | |
27228 | ||
27229 | PR rtl-optimization/84635 | |
27230 | * regrename.c (build_def_use): Use matches_mode only when | |
27231 | matches >= 0. | |
27232 | ||
27233 | 2018-03-18 Richard Sandiford <richard.sandiford@linaro.org> | |
27234 | ||
27235 | PR tree-optimization/84913 | |
27236 | * tree-vect-loop.c (vectorizable_reduction): Don't try to | |
27237 | vectorize chains of COND_EXPRs. | |
27238 | ||
27239 | 2018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> | |
27240 | ||
27241 | * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value. | |
27242 | ||
27243 | 2018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> | |
27244 | ||
27245 | * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. | |
27246 | ||
27247 | 2018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> | |
27248 | ||
27249 | * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. | |
27250 | ||
27251 | 2018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> | |
27252 | Kito Cheng <kito.cheng@gmail.com> | |
27253 | ||
27254 | * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare. | |
27255 | * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array. | |
27256 | (nds32_adjust_reg_alloc_order): New function. | |
27257 | * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define. | |
27258 | ||
27259 | 2018-03-17 Kito Cheng <kito.cheng@gmail.com> | |
27260 | ||
27261 | * config/nds32/nds32.c (nds32_asm_output_mi_thunk, | |
27262 | nds32_print_operand, nds32_print_operand_address): Use | |
27263 | HOST_WIDE_INT_PRINT_DEC instead. | |
27264 | ||
27265 | 2018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> | |
27266 | ||
27267 | * config/nds32/nds32.c (nds32_register_priority): Modify cost. | |
27268 | ||
27269 | 2018-03-17 Jakub Jelinek <jakub@redhat.com> | |
27270 | ||
27271 | PR target/84902 | |
27272 | * config/i386/i386.c (initial_ix86_tune_features, | |
27273 | initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than | |
27274 | unsigned long long. | |
27275 | (set_ix86_tune_features): Change ix86_tune_mask from unsigned int | |
27276 | to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune | |
27277 | rather than 1u << ix86_tune. Formatting fix. | |
27278 | (ix86_option_override_internal): Change ix86_arch_mask from | |
27279 | unsigned int to unsigned HOST_WIDE_INT, initialize to | |
27280 | HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch. | |
27281 | (ix86_function_specific_restore): Likewise. | |
27282 | ||
27283 | 2018-03-16 Jakub Jelinek <jakub@redhat.com> | |
27284 | ||
27285 | PR target/84899 | |
27286 | * postreload.c (reload_combine_recognize_pattern): Perform | |
27287 | INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and | |
27288 | truncate_int_for_mode the result for the destination's mode. | |
27289 | ||
27290 | PR c/84909 | |
27291 | * hsa-gen.c (mem_type_for_type): Fix comment typo. | |
27292 | * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): | |
27293 | Likewise. | |
27294 | * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): | |
27295 | Likewise. | |
27296 | ||
27297 | 2018-03-16 Vladimir Makarov <vmakarov@redhat.com> | |
27298 | ||
27299 | PR target/84876 | |
27300 | * lra-assigns.c (lra_split_hard_reg_for): Don't use | |
27301 | regno_allocno_class_array and sorted_pseudos. | |
27302 | * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in | |
27303 | insns where regno is used. | |
27304 | ||
27305 | 2018-03-16 Martin Liska <mliska@suse.cz> | |
27306 | ||
27307 | PR ipa/84833 | |
27308 | * multiple_target.c (create_dispatcher_calls): Redirect | |
27309 | reference in the symbol table. | |
27310 | ||
27311 | 2018-03-16 Martin Liska <mliska@suse.cz> | |
27312 | ||
27313 | PR ipa/84722 | |
27314 | * multiple_target.c (create_dispatcher_calls): Redirect also | |
27315 | an alias. | |
27316 | ||
27317 | 2018-03-16 Jakub Jelinek <jakub@redhat.com> | |
27318 | ||
27319 | PR c++/79937 | |
27320 | PR c++/82410 | |
27321 | * tree.h (TARGET_EXPR_NO_ELIDE): Define. | |
27322 | * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with | |
27323 | TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR. | |
27324 | ||
27325 | 2018-03-16 Julia Koval <julia.koval@intel.com> | |
27326 | ||
27327 | * doc/invoke.texi (Skylake Server): Add CLWB. | |
27328 | Cannonlake): Remove CLWB. | |
27329 | ||
27330 | 2018-03-16 Jakub Jelinek <jakub@redhat.com> | |
27331 | ||
27332 | PR tree-optimization/84841 | |
27333 | * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from | |
27334 | 1 << 3. | |
27335 | (FLOAT_ONE_CONST_TYPE): Define. | |
27336 | (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0. | |
27337 | (sort_by_operand_rank): Put entries with higher constant_type last | |
27338 | rather than first to match comments. | |
27339 | ||
27340 | 2018-03-15 Sandra Loosemore <sandra@codesourcery.com> | |
27341 | ||
27342 | * config/nios2/nios2.md (movsi_internal): Fix thinko in | |
27343 | split predicate. | |
27344 | ||
27345 | 2018-03-15 Jakub Jelinek <jakub@redhat.com> | |
27346 | ||
27347 | PR c++/79085 | |
27348 | * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment | |
27349 | check and use address of target always. | |
27350 | ||
27351 | 2018-03-15 H.J. Lu <hongjiu.lu@intel.com> | |
27352 | ||
27353 | PR target/84574 | |
27354 | * config/i386/i386.c (indirect_thunk_needed): Update comments. | |
27355 | (indirect_thunk_bnd_needed): Likewise. | |
27356 | (indirect_thunks_used): Likewise. | |
27357 | (indirect_thunks_bnd_used): Likewise. | |
27358 | (indirect_return_needed): New. | |
27359 | (indirect_return_bnd_needed): Likewise. | |
27360 | (output_indirect_thunk_function): Add a bool argument for | |
27361 | function return. | |
27362 | (output_indirect_thunk_function): Don't generate alias for | |
27363 | function return thunk. | |
27364 | (ix86_code_end): Call output_indirect_thunk_function to generate | |
27365 | function return thunks. | |
27366 | (ix86_output_function_return): Set indirect_return_bnd_needed | |
27367 | and indirect_return_needed instead of indirect_thunk_bnd_needed | |
27368 | and indirect_thunk_needed. | |
27369 | ||
27370 | 2018-03-15 Olga Makhotina <olga.makhotina@intel.com> | |
27371 | ||
27372 | * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. | |
27373 | (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. | |
27374 | (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. | |
27375 | ||
27376 | 2018-03-15 David Malcolm <dmalcolm@redhat.com> | |
27377 | Paul Hua <paul.hua.gm@gmail.com> | |
27378 | ||
27379 | PR c/84852 | |
27380 | * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. | |
27381 | ||
27382 | 2018-03-15 Segher Boessenkool <segher@kernel.crashing.org> | |
27383 | ||
27384 | * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the | |
27385 | TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode | |
27386 | resp. SFmode cases. | |
27387 | ||
27388 | 2018-03-15 Tamar Christina <tamar.christina@arm.com> | |
27389 | ||
27390 | PR target/84711 | |
27391 | * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE | |
27392 | instead of GET_MODE_SIZE when comparing Units. | |
27393 | ||
27394 | 2018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> | |
27395 | ||
27396 | PR target/68256 | |
27397 | * varasm.c (hash_section): Return an unchangeble hash value | |
27398 | * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): | |
27399 | Return !aarch64_can_use_per_function_literal_pools_p (). | |
27400 | ||
27401 | 2018-03-15 Jakub Jelinek <jakub@redhat.com> | |
27402 | ||
27403 | PR target/84860 | |
27404 | * optabs.c (emit_conditional_move): Pass address of cmode's copy | |
27405 | rather than address of cmode as last argument to prepare_cmp_insn. | |
27406 | ||
27407 | 2018-03-15 Julia Koval <julia.koval@intel.com> | |
27408 | ||
27409 | * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, | |
27410 | F_AVX512VNNI, F_AVX512BITALG): New. | |
27411 | ||
27412 | 2018-03-14 John David Anglin <danglin@gcc.gnu.org> | |
27413 | ||
27414 | PR target/83451 | |
27415 | * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload | |
27416 | insn for floating-point loads and stores. | |
27417 | ||
27418 | 2018-03-14 Carl Love <cel@us.ibm.com> | |
27419 | ||
27420 | * config/rs6000/rs6000-c.c: Add macro definitions for | |
27421 | ALTIVEC_BUILTIN_VEC_PERMXOR. | |
27422 | * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. | |
27423 | * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. | |
27424 | * config/rs6000/altivec.md (altivec_vpermxor): New define expand. | |
27425 | * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case | |
27426 | UNSPEC_VPERMXOR. | |
27427 | * config/doc/extend.texi: Add prototypes for vec_permxor. | |
27428 | ||
27429 | 2018-03-14 David Malcolm <dmalcolm@redhat.com> | |
27430 | ||
27431 | PR c/84852 | |
27432 | * diagnostic-show-locus.c (class layout_point): Convert m_line | |
27433 | from int to linenum_type. | |
27434 | (line_span::comparator): Use linenum "compare" function when | |
27435 | comparing line numbers. | |
27436 | (test_line_span): New function. | |
27437 | (layout_range::contains_point): Convert param "row" from int to | |
27438 | linenum_type. | |
27439 | (layout_range::intersects_line_p): Likewise. | |
27440 | (layout::will_show_line_p): Likewise. | |
27441 | (layout::print_source_line): Likewise. | |
27442 | (layout::should_print_annotation_line_p): Likewise. | |
27443 | (layout::print_annotation_line): Likewise. | |
27444 | (layout::print_leading_fixits): Likewise. | |
27445 | (layout::annotation_line_showed_range_p): Likewise. | |
27446 | (struct line_corrections): Likewise for field m_row. | |
27447 | (line_corrections::line_corrections): Likewise for param "row". | |
27448 | (layout::print_trailing_fixits): Likewise. | |
27449 | (layout::get_state_at_point): Likewise. | |
27450 | (layout::get_x_bound_for_row): Likewise. | |
27451 | (layout::print_line): Likewise. | |
27452 | (diagnostic_show_locus): Likewise for locals "last_line" and "row". | |
27453 | (selftest::diagnostic_show_locus_c_tests): Call test_line_span. | |
27454 | * input.c (selftest::test_linenum_comparisons): New function. | |
27455 | (selftest::input_c_tests): Call it. | |
27456 | * selftest.c (selftest::test_assertions): Test ASSERT_GT, | |
27457 | ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. | |
27458 | * selftest.h (ASSERT_GT): New macro. | |
27459 | (ASSERT_GT_AT): New macro. | |
27460 | (ASSERT_LT): New macro. | |
27461 | (ASSERT_LT_AT): New macro. | |
27462 | ||
27463 | 2018-03-14 Segher Boessenkool <segher@kernel.crashing.org> | |
27464 | ||
27465 | PR rtl-optimization/84780 | |
27466 | * combine.c (distribute_links): Don't make a link based on pc_rtx. | |
27467 | ||
27468 | 2018-03-14 Martin Liska <mliska@suse.cz> | |
27469 | ||
27470 | * tree.c (record_node_allocation_statistics): Use | |
27471 | get_stats_node_kind. | |
27472 | (get_stats_node_kind): New function extracted from | |
27473 | record_node_allocation_statistics. | |
27474 | (free_node): Use get_stats_node_kind. | |
27475 | ||
27476 | 2018-03-14 Richard Biener <rguenther@suse.de> | |
27477 | ||
27478 | * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts | |
27479 | that the value-set of ANTIC_IN doesn't grow. | |
27480 | ||
27481 | Revert | |
27482 | * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs | |
27483 | member. | |
27484 | (BB_VISITED_WITH_VISITED_SUCCS): New define. | |
27485 | (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. | |
27486 | ||
27487 | 2018-03-14 Julia Koval <julia.koval@intel.com> | |
27488 | ||
27489 | * config.gcc (icelake-client, icelake-server): New. | |
27490 | (icelake): Remove. | |
27491 | * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. | |
27492 | (initial_ix86_arch_features): Ditto. | |
27493 | (PTA_SKYLAKE): Add SGX. | |
27494 | (PTA_ICELAKE): Remove. | |
27495 | (PTA_ICELAKE_CLIENT): New. | |
27496 | (PTA_ICELAKE_SERVER): New. | |
27497 | (ix86_option_override_internal): Split up icelake on icelake client and | |
27498 | icelake server. | |
27499 | (get_builtin_code_for_version): Ditto. | |
27500 | (fold_builtin_cpu): Ditto. | |
27501 | * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. | |
27502 | * config/i386/i386-c.c (ix86_target_macros_internal): Ditto | |
27503 | * config/i386/i386.h (processor_type): Ditto. | |
27504 | * doc/invoke.texi: Ditto. | |
27505 | ||
27506 | 2018-03-14 Jakub Jelinek <jakub@redhat.com> | |
27507 | ||
27508 | PR sanitizer/83392 | |
27509 | * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also | |
27510 | INTEGER_CST offset, add it together with bitpos / 8 and | |
27511 | sign extend based on POINTER_SIZE. | |
27512 | ||
27513 | PR target/84844 | |
27514 | Revert | |
27515 | 2017-04-20 Uros Bizjak <ubizjak@gmail.com> | |
27516 | ||
27517 | PR target/78090 | |
27518 | * config/i386/constraints.md (Yc): New register constraint. | |
27519 | * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): | |
27520 | Use Yc constraint for alternative 2 of operand 0. Remove | |
27521 | preferred_for_speed attribute. | |
27522 | ||
27523 | 2018-03-14 Richard Biener <rguenther@suse.de> | |
27524 | ||
27525 | PR tree-optimization/84830 | |
27526 | * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN | |
27527 | with the old one to avoid oscillations. | |
27528 | ||
27529 | 2018-03-13 Vladimir Makarov <vmakarov@redhat.com> | |
27530 | ||
27531 | PR target/83712 | |
27532 | * lra-assigns.c (find_all_spills_for): Ignore uninteresting | |
27533 | pseudos. | |
27534 | (assign_by_spills): Return a flag of reload assignment failure. | |
27535 | Do not process the reload assignment failures. Do not spill other | |
27536 | reload pseudos if they has the same reg class. Update n if | |
27537 | necessary. | |
27538 | (lra_assign): Add a return arg. Set up from the result of | |
27539 | assign_by_spills call. | |
27540 | (find_reload_regno_insns, lra_split_hard_reg_for): New functions. | |
27541 | * lra-constraints.c (split_reg): Add a new arg. Use it instead of | |
27542 | usage_insns if it is not NULL. | |
27543 | (spill_hard_reg_in_range): New function. | |
27544 | (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. | |
27545 | * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New | |
27546 | function prototypes. | |
27547 | (lra_assign): Change prototype. | |
27548 | * lra.c (lra): Add code to deal with fails by splitting hard reg | |
27549 | live ranges. | |
27550 | ||
27551 | 2018-03-01 Palmer Dabbelt <palmer@sifive.com> | |
27552 | ||
27553 | * config/riscv/riscv.opt (mrelax): New option. | |
27554 | * config/riscv/riscv.c (riscv_file_start): Emit ".option | |
27555 | "norelax" when riscv_mrelax is disabled. | |
27556 | * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". | |
27557 | ||
27558 | 2018-03-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
27559 | ||
27560 | PR target/84743 | |
27561 | * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel | |
27562 | reassociation for int modes. | |
27563 | ||
27564 | 2018-03-13 Richard Sandiford <richard.sandiford@linaro.org> | |
27565 | ||
27566 | * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): | |
27567 | Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR | |
27568 | for big-endian. | |
27569 | * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. | |
27570 | * config/aarch64/aarch64-sve.md | |
27571 | (*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to... | |
27572 | (aarch64_sve_<perm_insn><perm_hilo><mode>): ...this. | |
27573 | (*extend<mode><Vwide>2): Rename to... | |
27574 | (aarch64_sve_extend<mode><Vwide>2): ...this. | |
27575 | (vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand, | |
27576 | renaming the old pattern to... | |
27577 | (aarch64_sve_punpk<perm_hilo>_<mode>): ...this. Only define | |
27578 | unsigned packs. | |
27579 | (vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a | |
27580 | define_expand, renaming the old pattern to... | |
27581 | (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this. | |
27582 | (*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete. | |
27583 | (vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into | |
27584 | account when deciding which SVE instruction the optab should use. | |
27585 | (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise. | |
27586 | ||
27587 | 2018-03-13 Richard Sandiford <richard.sandiford@linaro.org> | |
27588 | ||
27589 | * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) | |
27590 | (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) | |
27591 | (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) | |
27592 | (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. | |
27593 | (tlsdesc_small_<mode>): Turn a define_expand and use | |
27594 | tlsdesc_small_sve_<mode> for SVE. Rename original define_insn to... | |
27595 | (tlsdesc_small_advsimd_<mode>): ...this. | |
27596 | (tlsdesc_small_sve_<mode>): New pattern. | |
27597 | ||
27598 | 2018-03-13 Richard Sandiford <richard.sandiford@linaro.org> | |
27599 | ||
27600 | * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) | |
27601 | (UNSPEC_UMUL_HIGHPART): New constants. | |
27602 | (MUL_HIGHPART): New int iteraor. | |
27603 | (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. | |
27604 | * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New | |
27605 | define_expand. | |
27606 | (*<su>mul<mode>3_highpart): New define_insn. | |
27607 | ||
27608 | 2018-03-13 Eric Botcazou <ebotcazou@adacore.com> | |
27609 | ||
27610 | PR lto/84805 | |
27611 | * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of | |
27612 | incomplete types. | |
27613 | ||
27614 | 2018-03-13 Martin Liska <mliska@suse.cz> | |
27615 | ||
27616 | PR ipa/84658. | |
27617 | * (sem_item_optimizer::sem_item_optimizer): Initialize new | |
27618 | vector. | |
27619 | (sem_item_optimizer::~sem_item_optimizer): Release it. | |
27620 | (sem_item_optimizer::merge_classes): Register variable aliases. | |
27621 | (sem_item_optimizer::fixup_pt_set): New function. | |
27622 | (sem_item_optimizer::fixup_points_to_sets): Likewise. | |
27623 | * ipa-icf.h: Declare new variables and functions. | |
27624 | ||
27625 | 2018-03-13 Jakub Jelinek <jakub@redhat.com> | |
27626 | ||
27627 | PR middle-end/84834 | |
27628 | * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of | |
27629 | integer_pow2p@2 and test integer_pow2p in condition. | |
27630 | (A < 0 ? C : 0): Similarly for @1. | |
27631 | ||
27632 | PR middle-end/84831 | |
27633 | * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) | |
27634 | characters starting at p contain '\0' character, don't look beyond | |
27635 | that. | |
27636 | ||
27637 | PR target/84827 | |
27638 | * config/i386/i386.md (round<mode>2): For 387 fancy math, disable | |
27639 | pattern if -ftrapping-math -fno-fp-int-builtin-inexact. | |
27640 | ||
27641 | PR target/84828 | |
27642 | * reg-stack.c (change_stack): Change update_end var from int to | |
27643 | rtx_insn *, if non-NULL don't update just BB_END (current_block), but | |
27644 | also call set_block_for_insn on the newly added insns and rescan. | |
27645 | ||
27646 | PR target/84786 | |
27647 | * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v | |
27648 | on the last operand. | |
27649 | ||
27650 | PR c++/84704 | |
27651 | * tree.c (stabilize_reference_1): Return save_expr (e) for | |
27652 | STATEMENT_LIST even if it doesn't have side-effects. | |
27653 | ||
27654 | 2018-03-12 Jonathan Wakely <jwakely@redhat.com> | |
27655 | ||
27656 | * doc/invoke.texi (-mclflushopt): Fix spelling of option. | |
27657 | ||
27658 | 2018-03-12 Renlin Li <renlin.li@arm.com> | |
27659 | ||
27660 | * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to | |
27661 | aarch64_output_scalar_simd_mov_immediate. | |
27662 | ||
27663 | 2018-03-12 Martin Sebor <msebor@redhat.com> | |
27664 | ||
27665 | PR tree-optimization/83456 | |
27666 | * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning | |
27667 | for perfectly overlapping calls to memcpy. | |
27668 | (gimple_fold_builtin_memory_chk): Same. | |
27669 | (gimple_fold_builtin_strcpy): Handle no-warning. | |
27670 | (gimple_fold_builtin_stxcpy_chk): Same. | |
27671 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning. | |
27672 | ||
27673 | 2018-03-12 Segher Boessenkool <segher@kernel.crashing.org> | |
27674 | ||
27675 | * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named" | |
27676 | parameter. Use it for SFmode. | |
27677 | (rs6000_function_arg_advance_1): Adjust. | |
27678 | (rs6000_function_arg): Adjust. | |
27679 | (rs6000_gimplify_va_arg): Pass false for that new parameter. | |
27680 | ||
27681 | 2018-03-12 Segher Boessenkool <segher@kernel.crashing.org> | |
27682 | ||
27683 | PR rtl-optimization/84169 | |
27684 | PR rtl-optimization/84780 | |
27685 | * combine.c (can_combine_p): Check for a 2-insn combination whether | |
27686 | the destination register is used between the two insns, too. | |
27687 | ||
27688 | 2018-03-12 Richard Biener <rguenther@suse.de> | |
27689 | ||
27690 | PR tree-optimization/84803 | |
27691 | * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything | |
27692 | for refs DR analysis didn't process. | |
27693 | ||
27694 | 2018-03-12 Richard Biener <rguenther@suse.de> | |
27695 | ||
27696 | PR tree-optimization/84777 | |
27697 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For | |
27698 | force-vectorize loops ignore whether we are optimizing for size. | |
27699 | ||
27700 | 2018-03-12 Chung-Ju Wu <jasonwucj@gmail.com> | |
27701 | ||
27702 | * config/nds32/nds32.c (nds32_md_asm_adjust): New function. | |
27703 | (TARGET_MD_ASM_ADJUST): Define. | |
27704 | ||
27705 | 2018-03-12 Monk Chiang <sh.chiang04@gmail.com> | |
27706 | Kito Cheng <kito.cheng@gmail.com> | |
27707 | Chung-Ju Wu <jasonwucj@gmail.com> | |
27708 | ||
27709 | * config/nds32/nds32.c (nds32_compute_stack_frame, | |
27710 | nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple, | |
27711 | nds32_emit_stack_v3push, nds32_emit_stack_v3pop, | |
27712 | nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue, | |
27713 | nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine. | |
27714 | * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM, | |
27715 | NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New. | |
27716 | * config/nds32/nds32.md (prologue, epilogue): Use macro | |
27717 | NDS32_V3PUSH_AVAILABLE_P to do checking. | |
27718 | ||
27719 | 2018-03-11 Jakub Jelinek <jakub@redhat.com> | |
27720 | ||
27721 | PR debug/58150 | |
27722 | * dwarf2out.c (gen_enumeration_type_die): Don't guard adding | |
27723 | DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf, | |
27724 | but on TYPE_SIZE. Don't do anything for ENUM_IS_OPAQUE if not creating | |
27725 | a new die. Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE. Guard | |
27726 | addition of most attributes on !orig_type_die or the attribute not | |
27727 | being present already. Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE. | |
27728 | ||
27729 | 2018-03-11 Kito Cheng <kito.cheng@gmail.com> | |
27730 | Chung-Ju Wu <jasonwucj@gmail.com> | |
27731 | ||
27732 | * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define | |
27733 | __NDS32_VH__ macro. | |
27734 | * config/nds32/nds32.opt (mvh): New option. | |
27735 | ||
27736 | 2018-03-11 Kito Cheng <kito.cheng@gmail.com> | |
27737 | Chung-Ju Wu <jasonwucj@gmail.com> | |
27738 | ||
27739 | * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare | |
27740 | function. | |
27741 | * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function. | |
27742 | * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its | |
27743 | definition. | |
27744 | ||
27745 | 2018-03-11 Kito Cheng <kito.cheng@gmail.com> | |
27746 | Chung-Ju Wu <jasonwucj@gmail.com> | |
27747 | ||
27748 | * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New | |
27749 | function. | |
27750 | * config/nds32/nds32-multiple.md (strlensi): New pattern. | |
27751 | * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function. | |
27752 | ||
27753 | 2018-03-11 Monk Chiang <sh.chiang04@gmail.com> | |
27754 | Kito Cheng <kito.cheng@gmail.com> | |
27755 | Chung-Ju Wu <jasonwucj@gmail.com> | |
27756 | ||
27757 | * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB, | |
27758 | UNSPEC_FFMISM and UNSPEC_FLMISM. | |
27759 | * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description | |
27760 | for ffb, ffmism and flmism. | |
27761 | * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern. | |
27762 | (unspec_ffmism): Ditto. | |
27763 | (unspec_flmism): Ditto. | |
27764 | (nds32_expand_builtin_impl): Check if string extension is available. | |
27765 | * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB, | |
27766 | NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM. | |
27767 | ||
27768 | 2018-03-10 Vladimir Makarov <vmakarov@redhat.com> | |
27769 | ||
27770 | Reverting patch: | |
27771 | 2018-03-09 Vladimir Makarov <vmakarov@redhat.com> | |
27772 | ||
27773 | PR target/83712 | |
27774 | * lra-assigns.c (assign_by_spills): Return a flag of reload | |
27775 | assignment failure. Do not process the reload assignment | |
27776 | failures. Do not spill other reload pseudos if they has the same | |
27777 | reg class. | |
27778 | (lra_assign): Add a return arg. Set up from the result of | |
27779 | assign_by_spills call. | |
27780 | (find_reload_regno_insns, lra_split_hard_reg_for): New functions. | |
27781 | * lra-constraints.c (split_reg): Add a new arg. Use it instead of | |
27782 | usage_insns if it is not NULL. | |
27783 | (spill_hard_reg_in_range): New function. | |
27784 | (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. | |
27785 | * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New | |
27786 | function prototypes. | |
27787 | (lra_assign): Change prototype. | |
27788 | * lra.c (lra): Add code to deal with fails by splitting hard reg | |
27789 | live ranges. | |
27790 | ||
27791 | 2018-03-10 H.J. Lu <hongjiu.lu@intel.com> | |
27792 | ||
27793 | PR target/84807 | |
27794 | * config/i386/i386.opt: Replace Enforcment with Enforcement. | |
27795 | ||
27796 | 2018-03-10 Alexandre Oliva <aoliva@redhat.com> | |
27797 | ||
27798 | PR debug/84620 | |
27799 | * dwarf2out.h (dw_val_class): Add dw_val_class_symview. | |
27800 | (dw_val_node): Add val_symbolic_view. | |
27801 | * dwarf2out.c (dw_line_info_table): Add symviews_since_reset. | |
27802 | (symview_upper_bound): New. | |
27803 | (new_line_info_table): Initialize symviews_since_reset. | |
27804 | (dwarf2out_source_line): Count symviews_since_reset and set | |
27805 | symview_upper_bound. | |
27806 | (dw_val_equal_p): Handle symview. | |
27807 | (add_AT_symview): New. | |
27808 | (print_dw_val): Handle symview. | |
27809 | (attr_checksum, attr_checksum_ordered): Likewise. | |
27810 | (same_dw_val_p, size_of_die): Likewise. | |
27811 | (value_format, output_die): Likewise. | |
27812 | (add_high_low_attributes): Use add_AT_symview for entry_view. | |
27813 | (dwarf2out_finish): Reset symview_upper_bound, clear | |
27814 | zero_view_p. | |
27815 | ||
27816 | 2018-03-09 Peter Bergner <bergner@vnet.ibm.com> | |
27817 | ||
27818 | PR target/83969 | |
27819 | * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype. | |
27820 | Add strict argument and use it. | |
27821 | (rs6000_split_multireg_move): Update for new strict argument. | |
27822 | (mem_operand_gpr): Disallow all non-offsettable addresses. | |
27823 | * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint. | |
27824 | ||
27825 | 2018-03-09 Jakub Jelinek <jakub@redhat.com> | |
27826 | ||
27827 | PR target/84772 | |
27828 | * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp | |
27829 | temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY. | |
27830 | * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise. | |
27831 | ||
27832 | PR c++/84767 | |
27833 | * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped | |
27834 | decl, use remap_type if we want to use the type. | |
27835 | ||
27836 | 2018-03-09 Martin Sebor <msebor@redhat.com> | |
27837 | ||
27838 | PR tree-optimization/84526 | |
27839 | * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): | |
27840 | Remove dead code. | |
27841 | (builtin_access::generic_overlap): Be prepared to handle non-array | |
27842 | base objects. | |
27843 | ||
27844 | 2018-03-09 Alexandre Oliva <aoliva@redhat.com> | |
27845 | ||
27846 | PR rtl-optimization/84682 | |
27847 | * lra-constraints.c (process_address_1): Check is_address flag | |
27848 | for address constraints. | |
27849 | (process_alt_operands): Likewise. | |
27850 | * lra.c (lra_set_insn_recog_data): Pass asm operand locs to | |
27851 | preprocess_constraints. | |
27852 | * recog.h (preprocess_constraints): Add oploc parameter. | |
27853 | Adjust callers. | |
27854 | * recog.c (preprocess_constraints): Test address_operand for | |
27855 | CT_ADDRESS constraints. | |
27856 | ||
27857 | 2018-03-09 Vladimir Makarov <vmakarov@redhat.com> | |
27858 | ||
27859 | PR target/83712 | |
27860 | * lra-assigns.c (assign_by_spills): Return a flag of reload | |
27861 | assignment failure. Do not process the reload assignment | |
27862 | failures. Do not spill other reload pseudos if they has the same | |
27863 | reg class. | |
27864 | (lra_assign): Add a return arg. Set up from the result of | |
27865 | assign_by_spills call. | |
27866 | (find_reload_regno_insns, lra_split_hard_reg_for): New functions. | |
27867 | * lra-constraints.c (split_reg): Add a new arg. Use it instead of | |
27868 | usage_insns if it is not NULL. | |
27869 | (spill_hard_reg_in_range): New function. | |
27870 | (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. | |
27871 | * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New | |
27872 | function prototypes. | |
27873 | (lra_assign): Change prototype. | |
27874 | * lra.c (lra): Add code to deal with fails by splitting hard reg | |
27875 | live ranges. | |
27876 | ||
27877 | 2018-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
27878 | ||
27879 | PR target/83193 | |
27880 | * common/config/arm/arm-common.c (arm_parse_arch_option_name): | |
27881 | Accept complain bool parameter. Only emit errors if it is true. | |
27882 | (arm_parse_cpu_option_name): Likewise. | |
27883 | (arm_target_thumb_only): Adjust callers of the above. | |
27884 | * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust | |
27885 | prototype to take a default true bool parameter. | |
27886 | (arm_parse_arch_option_name): Likewise. | |
27887 | ||
27888 | 2018-03-09 David Malcolm <dmalcolm@redhat.com> | |
27889 | Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> | |
27890 | ||
27891 | PR jit/64089 | |
27892 | PR jit/84288 | |
27893 | * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New. | |
27894 | * configure: Regenerate. | |
27895 | * configure.ac ("linker --version-script option"): New. | |
27896 | ("linker soname option"): New. | |
27897 | ||
27898 | 2018-03-09 Richard Biener <rguenther@suse.de> | |
27899 | ||
27900 | PR tree-optimization/84775 | |
27901 | * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink | |
27902 | immediate uses of predicate stmts and mark them modified. | |
27903 | ||
27904 | Revert | |
27905 | PR tree-optimization/84178 | |
27906 | * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates | |
27907 | to caller. | |
27908 | (version_loop_for_if_conversion): Delay update_ssa call. | |
27909 | (tree_if_conversion): Delay update_ssa until after predicate | |
27910 | insertion. | |
27911 | ||
27912 | 2018-03-09 Eric Botcazou <ebotcazou@adacore.com> | |
27913 | ||
27914 | PR target/84763 | |
27915 | * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation | |
27916 | when the function accesses prior frames. | |
27917 | ||
27918 | 2018-03-08 Jakub Jelinek <jakub@redhat.com> | |
27919 | ||
27920 | PR debug/84456 | |
27921 | * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call | |
27922 | gen_llsym, otherwise call maybe_gen_llsym. | |
27923 | ||
27924 | PR inline-asm/84742 | |
27925 | * recog.c (asm_operand_ok): Return 0 if multi-character constraint | |
27926 | has ',' character inside of it. | |
27927 | ||
27928 | 2018-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
27929 | ||
27930 | PR target/84748 | |
27931 | * config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern | |
27932 | as clobbering CC_REGNUM. | |
27933 | ||
27934 | 2018-03-08 Richard Biener <rguenther@suse.de> | |
27935 | ||
27936 | PR middle-end/84552 | |
27937 | * tree-scalar-evolution.c: Include tree-into-ssa.h. | |
27938 | (follow_copies_to_constant): Do not follow SSA names registered | |
27939 | for update. | |
27940 | ||
27941 | 2018-03-08 Richard Biener <rguenther@suse.de> | |
27942 | ||
27943 | PR tree-optimization/84178 | |
27944 | * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates | |
27945 | to caller. | |
27946 | (version_loop_for_if_conversion): Delay update_ssa call. | |
27947 | (tree_if_conversion): Delay update_ssa until after predicate | |
27948 | insertion. | |
27949 | ||
27950 | 2018-03-08 David Malcolm <dmalcolm@redhat.com> | |
27951 | ||
27952 | PR tree-optimization/84178 | |
27953 | * tree-if-conv.c (release_bb_predicate): Remove the | |
27954 | the assertion that the stmts have NULL use_ops. | |
27955 | Discard the statements, asserting that they haven't | |
27956 | yet been added to a BB. | |
27957 | ||
27958 | 2018-03-08 Richard Biener <rguenther@suse.de> | |
27959 | ||
27960 | PR tree-optimization/84746 | |
27961 | * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL. | |
27962 | (phi_translate): Pass in destination ANTIC_OUT set. | |
27963 | (phi_translate_1): Likewise. For a simplified result lookup | |
27964 | a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets. | |
27965 | (phi_translate_set): Adjust. | |
27966 | (do_pre_regular_insertion): Likewise. | |
27967 | (do_pre_partial_partial_insertion): Likewise. | |
27968 | ||
27969 | 2018-03-08 Martin Liska <mliska@suse.cz> | |
27970 | ||
27971 | PR gcov-profile/84735 | |
27972 | * doc/gcov.texi: Document usage of profile files. | |
27973 | * gcov-io.h: Document changes in the format. | |
27974 | ||
27975 | 2018-03-08 Alexandre Oliva <aoliva@redhat.com> | |
27976 | ||
27977 | PR debug/84404 | |
27978 | PR debug/84408 | |
27979 | * dwarf2out.c (struct dw_line_info_table): Update comments for | |
27980 | view == -1. | |
27981 | (FORCE_RESET_NEXT_VIEW): New. | |
27982 | (FORCE_RESETTING_VIEW_P): New. | |
27983 | (RESETTING_VIEW_P): Check for -1 too. | |
27984 | (ZERO_VIEW_P): Likewise. | |
27985 | (new_line_info_table): Force-reset next view. | |
27986 | (dwarf2out_begin_function): Likewise. | |
27987 | (dwarf2out_source_line): Simplify zero_view_p initialization. | |
27988 | Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of | |
27989 | view directly. Omit view when omitting .loc at line 0. | |
27990 | ||
27991 | 2018-03-08 Jakub Jelinek <jakub@redhat.com> | |
27992 | ||
27993 | PR tree-optimization/84740 | |
27994 | * tree-switch-conversion.c (process_switch): Call build_constructors | |
27995 | only if info.phi_count is non-zero. | |
27996 | ||
27997 | PR tree-optimization/84739 | |
27998 | * tree-tailcall.c (find_tail_calls): Check call arguments against | |
27999 | DECL_ARGUMENTS (current_function_decl) rather than | |
28000 | DECL_ARGUMENTS (func) when checking for tail recursion. | |
28001 | ||
28002 | 2018-03-07 Jakub Jelinek <jakub@redhat.com> | |
28003 | ||
28004 | * doc/contrib.texi: Add entries for Martin Liska, David Malcolm, | |
28005 | Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and | |
28006 | Volker Reichelt's entry and add entries for people that perform | |
28007 | GCC fuzzy testing and report numerous bugs. | |
28008 | ||
28009 | 2018-03-07 Segher Boessenkool <segher@kernel.crashing.org> | |
28010 | ||
28011 | PR target/82411 | |
28012 | * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put | |
28013 | readonly data in sdata, if that is disabled. | |
28014 | * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option. | |
28015 | * doc/invoke.texi (RS/6000 and PowerPC Options): Document | |
28016 | -mreadonly-in-sdata option. | |
28017 | ||
28018 | 2018-03-07 Martin Sebor <msebor@redhat.com> | |
28019 | ||
28020 | PR tree-optimization/84468 | |
28021 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor | |
28022 | basic block when looking for nul assignment. | |
28023 | ||
28024 | 2018-03-07 Eric Botcazou <ebotcazou@adacore.com> | |
28025 | ||
28026 | PR target/84277 | |
28027 | * except.h (output_function_exception_table): Adjust prototype. | |
28028 | * except.c (output_function_exception_table): Remove FNNAME parameter | |
28029 | and add SECTION parameter. Ouput one part of the table at a time. | |
28030 | * final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output | |
28031 | the first part of the exception table and emit unwind directives. | |
28032 | * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare. | |
28033 | (i386_pe_seh_cold_init): Likewise. | |
28034 | * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro. | |
28035 | (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. | |
28036 | * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment. | |
28037 | (ix86_output_call_insn): Emit a nop in one more case for SEH. | |
28038 | * config/i386/winnt.c: Include except.h. | |
28039 | (struct seh_frame_state): Add reg_offset, after_prologue and | |
28040 | in_cold_section fields. | |
28041 | (i386_pe_seh_end_prologue): Set seh->after_prologue. | |
28042 | (i386_pe_seh_cold_init): New function. | |
28043 | (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal | |
28044 | to seh->in_cold_section. | |
28045 | (seh_emit_push): Record the offset of the push. | |
28046 | (seh_emit_save): Record the offet of the save. | |
28047 | (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS. | |
28048 | Test seh->after_prologue to disregard the epilogue. | |
28049 | (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini. | |
28050 | (i386_pe_end_cold_function): New function. | |
28051 | ||
28052 | 2018-03-07 Jakub Jelinek <jakub@redhat.com> | |
28053 | ||
28054 | PR fortran/84565 | |
28055 | * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use | |
28056 | aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. | |
28057 | ||
28058 | PR c++/84704 | |
28059 | * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag | |
28060 | on tmp_var. | |
28061 | * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG, | |
28062 | don't print names of DECL_NAMELESS DECL_IGNORED_P decls. | |
28063 | ||
28064 | PR middle-end/84723 | |
28065 | * multiple_target.c: Include tree-inline.h and intl.h. | |
28066 | (expand_target_clones): Diagnose and fail if node->definition and | |
28067 | !tree_versionable_function_p (node->decl). | |
28068 | ||
28069 | 2018-03-06 John David Anglin <danglin@gcc.gnu.org> | |
28070 | ||
28071 | * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use | |
28072 | sprint_ul. | |
28073 | (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change. | |
28074 | (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. | |
28075 | * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above. | |
28076 | ||
28077 | 2018-03-06 Jakub Jelinek <jakub@redhat.com> | |
28078 | ||
28079 | PR target/84710 | |
28080 | * combine.c (try_combine): Use reg_or_subregno instead of handling | |
28081 | just paradoxical SUBREGs and REGs. | |
28082 | ||
28083 | 2018-03-06 Claudiu Zissulescu <claziss@synopsys.com> | |
28084 | ||
28085 | * config/arc/arc.c (arc_finalize_pic): Remove function. | |
28086 | (arc_must_save_register): We use single base PIC register, remove | |
28087 | checks to save/restore the PIC register. | |
28088 | (arc_expand_prologue): Likewise. | |
28089 | * config/arc/arc-protos.h (arc_set_default_type_attributes): | |
28090 | Remove. | |
28091 | (arc_verify_short): Likewise. | |
28092 | (arc_attr_type): Likewise. | |
28093 | * config/arc/arc.c (arc_set_default_type_attributes): Remove. | |
28094 | (walk_stores): Likewise. | |
28095 | (arc_address_cost): Make it static. | |
28096 | (arc_verify_short): Likewise. | |
28097 | (branch_dest): Likewise. | |
28098 | (arc_attr_type): Likewise. | |
28099 | * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove. | |
28100 | (TARGET_INSN_LENGTH_PARAMETERS): Likewise. | |
28101 | (arc_final_prescan_insn): Remove inserting the nops due to | |
28102 | hardware hazards. It is done in reorg step. | |
28103 | (insn_length_variant_t): Remove. | |
28104 | (insn_length_parameters_t): Likewise. | |
28105 | (arc_insn_length_parameters): Likewise. | |
28106 | (arc_get_insn_variants): Likewise. | |
28107 | * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove. | |
28108 | ||
28109 | 2018-03-06 Jakub Jelinek <jakub@redhat.com> | |
28110 | ||
28111 | PR inline-asm/84683 | |
28112 | * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid | |
28113 | assertion failure. | |
28114 | ||
28115 | PR tree-optimization/84687 | |
28116 | * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS | |
28117 | on new_node->decl. | |
28118 | * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization. | |
28119 | ||
28120 | 2018-03-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
28121 | ||
28122 | * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier): | |
28123 | Rename to ppc_speculation_barrier. | |
28124 | * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to | |
28125 | __builtin_ppc_speculation_barrier. | |
28126 | ||
28127 | 2018-03-05 Jakub Jelinek <jakub@redhat.com> | |
28128 | ||
28129 | PR target/84700 | |
28130 | * combine.c (combine_simplify_rtx): Don't try to simplify if | |
28131 | if_then_else_cond returned non-NULL, but either true_rtx or false_rtx | |
28132 | are equal to x. | |
28133 | ||
28134 | 2018-03-05 Segher Boessenkool <segher@kernel.crashing.org> | |
28135 | ||
28136 | * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops | |
28137 | to 32 bytes when compiling for POWER9. | |
28138 | ||
28139 | 2018-03-05 Jakub Jelinek <jakub@redhat.com> | |
28140 | ||
28141 | PR target/84564 | |
28142 | * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for | |
28143 | regparm >= 3 with no arg reg available also for calls with | |
28144 | flag_force_indirect_call. Pass decl to ix86_function_regparm. | |
28145 | ||
28146 | PR target/84524 | |
28147 | * config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with | |
28148 | orig,vex. | |
28149 | (*<plusminus_insn><mode>3): Likewise. Remove <mask_operand3> uses. | |
28150 | ||
28151 | 2018-03-05 Peter Bergner <bergner@vnet.ibm.com> | |
28152 | ||
28153 | PR target/84264 | |
28154 | * config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands. | |
28155 | ||
28156 | 2018-03-05 Richard Biener <rguenther@suse.de> | |
28157 | ||
28158 | PR tree-optimization/84486 | |
28159 | * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code. | |
28160 | When inserting a __builtin_assume_aligned call set the LHS | |
28161 | SSA name alignment info accordingly. | |
28162 | ||
28163 | 2018-03-05 Wilco Dijkstra <wdijkstr@arm.com> | |
28164 | ||
28165 | PR tree-optimization/84114 | |
28166 | * config/aarch64/aarch64.c (aarch64_reassociation_width) | |
28167 | Avoid reassociation of FLOAT_MODE addition. | |
28168 | ||
28169 | 2018-03-05 Olga Makhotina <olga.makhotina@intel.com> | |
28170 | ||
28171 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, | |
28172 | OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, | |
28173 | OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. | |
28174 | (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. | |
28175 | * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. | |
28176 | * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. | |
28177 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig | |
28178 | and -mwbnoinvd. | |
28179 | * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, | |
28180 | __builtin_ia32_wbinvd): New builtins. | |
28181 | (SPECIAL_ARGS2): New. | |
28182 | * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. | |
28183 | (SPECIAL_ARGS2): New. | |
28184 | * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. | |
28185 | (ix86_valid_target_attribute_inner_p): Ditto. | |
28186 | (ix86_init_mmx_sse_builtins): Add special_args2. | |
28187 | * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, | |
28188 | TARGET_WBNOINVD_P): New. | |
28189 | * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. | |
28190 | (define_insn "wbinvd", define_insn "wbnoinvd"): New. | |
28191 | * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. | |
28192 | * config/i386/immintrin.h (_wbinvd): New intrinsic. | |
28193 | * config/i386/pconfigintrin.h: New file. | |
28194 | * config/i386/wbnoinvdintrin.h: Ditto. | |
28195 | * config/i386/x86intrin.h: Add headers pconfigintrin.h and | |
28196 | wbnoinvdintrin.h. | |
28197 | * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. | |
28198 | ||
28199 | 2018-03-05 Richard Biener <rguenther@suse.de> | |
28200 | ||
28201 | PR tree-optimization/84670 | |
28202 | * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs | |
28203 | member. | |
28204 | (BB_VISITED_WITH_VISITED_SUCCS): New define. | |
28205 | (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. | |
28206 | (compute_antic_aux): Only assert the number of values in ANTIC_IN | |
28207 | doesn't grow if all successors (recursively) were visited at least | |
28208 | once. | |
28209 | ||
28210 | 2018-03-05 Richard Biener <rguenther@suse.de> | |
28211 | ||
28212 | PR tree-optimization/84650 | |
28213 | * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache | |
28214 | if executed in the loop pipeline. | |
28215 | ||
28216 | 2018-03-05 Sandra Loosemore <sandra@codesourcery.com> | |
28217 | ||
28218 | * doc/configfiles.texi (Configuration Files): Move info about | |
28219 | conditionalizing $target-protos.h to... | |
28220 | * doc/sourcebuild.texi (Back End): Here. Explain how $target.h | |
28221 | differs from $target-protos.h. | |
28222 | ||
28223 | 2018-03-05 Kito Cheng <kito.cheng@gmail.com> | |
28224 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28225 | ||
28226 | * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare. | |
28227 | * config/nds32/nds32-multiple.md (setmemsi): Define. | |
28228 | * config/nds32/nds32-memory-manipulation.c | |
28229 | (nds32_gen_dup_4_byte_to_word_value): New. | |
28230 | (emit_setmem_word_loop): New. | |
28231 | (emit_setmem_byte_loop): New. | |
28232 | (nds32_expand_setmem_loop): New. | |
28233 | (nds32_expand_setmem_loop_v3m): New. | |
28234 | (nds32_expand_setmem_unroll): New. | |
28235 | (nds32_expand_setmem): New. | |
28236 | ||
28237 | 2018-03-04 Kito Cheng <kito.cheng@gmail.com> | |
28238 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28239 | ||
28240 | * config/nds32/nds32-memory-manipulation.c | |
28241 | (nds32_emit_load_store): New. | |
28242 | (nds32_emit_post_inc_load_store): New. | |
28243 | (nds32_emit_mem_move): New. | |
28244 | (nds32_emit_mem_move_block): New. | |
28245 | (nds32_expand_movmemsi_loop_unknown_size): New. | |
28246 | (nds32_expand_movmemsi_loop_known_size): New. | |
28247 | (nds32_expand_movmemsi_loop): New. | |
28248 | (nds32_expand_movmemsi_unroll): New. | |
28249 | (nds32_expand_movmemqi): Rename ... | |
28250 | (nds32_expand_movmemsi): ... to this. | |
28251 | * config/nds32/nds32-multiple.md (movmemqi): Rename ... | |
28252 | (movmemsi): ... to this. | |
28253 | * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ... | |
28254 | (nds32_expand_movmemsi): ... to this. | |
28255 | ||
28256 | 2018-03-04 Kito Cheng <kito.cheng@gmail.com> | |
28257 | Monk Chiang <sh.chiang04@gmail.com> | |
28258 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28259 | ||
28260 | * config/nds32/nds32-protos.h | |
28261 | (nds32_expand_load_multiple): New arguments. | |
28262 | (nds32_expand_store_multiple): Ditto. | |
28263 | (nds32_valid_multiple_load_store): Rename ... | |
28264 | (nds32_valid_multiple_load_store_p): ... to this. | |
28265 | * config/nds32/nds32-memory-manipulation.c | |
28266 | (nds32_expand_load_multiple): Refine implementation. | |
28267 | (nds32_expand_store_multiple): Ditto. | |
28268 | * config/nds32/nds32-multiple.md | |
28269 | (load_multiple): Update nds32_expand_load_multiple interface. | |
28270 | (store_multiple): Update nds32_expand_store_multiple interface. | |
28271 | * config/nds32/nds32-predicates.c | |
28272 | (nds32_valid_multiple_load_store): Rename ... | |
28273 | (nds32_valid_multiple_load_store_p): ... to this and refine | |
28274 | implementation. | |
28275 | * config/nds32/predicates.md | |
28276 | (nds32_load_multiple_and_update_address_operation): New predicate. | |
28277 | (nds32_store_multiple_and_update_address_operation): New predicate. | |
28278 | ||
28279 | 2018-03-04 Kito Cheng <kito.cheng@gmail.com> | |
28280 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28281 | ||
28282 | * config/nds32/nds32.md (type): Add load_multiple and store_multiple. | |
28283 | (combo): New attribute. | |
28284 | * config/nds32/nds32-multiple.md: Refine patterns with new attributes. | |
28285 | ||
28286 | 2018-03-03 Chung-Ju Wu <jasonwucj@gmail.com> | |
28287 | ||
28288 | * config/nds32/nds32.opt: Change -mcmodel= default value. | |
28289 | ||
28290 | 2018-03-03 Kito Cheng <kito.cheng@gmail.com> | |
28291 | Monk Chiang <sh.chiang04@gmail.com> | |
28292 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28293 | ||
28294 | * config/nds32/constants.md (unspec_element): New enum. | |
28295 | * config/nds32/constraints.md (Umw): New constraint. | |
28296 | * config/nds32/nds32-intrinsic.c: Add more builtin functions. | |
28297 | * config/nds32/nds32-intrinsic.md: Likewise. | |
28298 | * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New. | |
28299 | (nds32_valid_smw_lwm_base_p): New. | |
28300 | (nds32_output_smw_single_word): New. | |
28301 | (nds32_output_lmw_single_word): New. | |
28302 | (nds32_expand_unaligned_load): New. | |
28303 | (nds32_expand_unaligned_store): New. | |
28304 | * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare. | |
28305 | (nds32_output_smw_single_word): Declare. | |
28306 | (nds32_output_lmw_single_word): Declare. | |
28307 | (nds32_expand_unaligned_load): Declare. | |
28308 | (nds32_expand_unaligned_store): Declare. | |
28309 | * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW, | |
28310 | NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW, | |
28311 | NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W, | |
28312 | NDS32_BUILTIN_UASTORE_DW. | |
28313 | * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New | |
28314 | predicate. | |
28315 | ||
28316 | 2018-03-03 Monk Chiang <sh.chiang04@gmail.com> | |
28317 | Kito Cheng <kito.cheng@gmail.com> | |
28318 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28319 | ||
28320 | * config/nds32/nds32-intrinsic.c | |
28321 | (nds32_expand_builtin_null_ftype_reg): Delete. | |
28322 | (nds32_expand_builtin_reg_ftype_imm): Ditto. | |
28323 | (nds32_expand_builtin_null_ftype_reg_imm): Ditto. | |
28324 | (nds32_read_argument): New. | |
28325 | (nds32_legitimize_target): Ditto. | |
28326 | (nds32_legitimize_argument): Ditto. | |
28327 | (nds32_check_constant_argument): Ditto. | |
28328 | (nds32_expand_unop_builtin): Ditto. | |
28329 | (nds32_expand_unopimm_builtin): Ditto. | |
28330 | (nds32_expand_binop_builtin): Ditto. | |
28331 | (nds32_builtin_decl_impl): Ditto. | |
28332 | (builtin_description): Ditto. | |
28333 | (nds32_expand_builtin_impl): Rewrite with new infrastructure. | |
28334 | (nds32_init_builtins_impl): Ditto. | |
28335 | * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define. | |
28336 | (nds32_builtin_decl): New. | |
28337 | * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT. | |
28338 | * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare. | |
28339 | ||
28340 | 2018-03-02 Jeff Law <law@redhat.com> | |
28341 | ||
28342 | * reorg.c (stop_search_p): Handle DEBUG_INSN. | |
28343 | (redundant_insn, fill_simple_delay_slots): Likewise. | |
28344 | (fill_slots_from_thread): Likewise. | |
28345 | * resource.c (mark_referenced_resources): Likewise. | |
28346 | (mark_set_resources, find_dead_or_set_registers): Likewise. | |
28347 | ||
28348 | 2018-03-02 Jakub Jelinek <jakub@redhat.com> | |
28349 | ||
28350 | * substring-locations.h (format_warning_va): Formatting fix for | |
28351 | ATTRIBUTE_GCC_DIAG. | |
28352 | (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second | |
28353 | argument. | |
28354 | (format_warning_n_va, format_warning_at_substring_n): New prototypes. | |
28355 | * substring-locations.c: Include intl.h. | |
28356 | (format_warning_va): Turned into small wrapper around | |
28357 | format_warning_n_va, renamed to ... | |
28358 | (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments, | |
28359 | rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID, | |
28360 | use ngettext. | |
28361 | (format_warning_at_substring_n): New function. | |
28362 | * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma. | |
28363 | (fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of | |
28364 | format_warning_at_substring with just a shorter name instead of | |
28365 | const function pointer. | |
28366 | (fmtwarn_n): New function. | |
28367 | (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where | |
28368 | appropriate, get rid of all the fmtstr temporaries, move conditionals | |
28369 | with G_() wrapped string literals directly into fmtwarn arguments, | |
28370 | cast dir.len to (int), formatting fixes. | |
28371 | ||
28372 | 2018-03-02 Thomas Schwinge <thomas@codesourcery.com> | |
28373 | ||
28374 | * doc/invoke.texi: Remove "Cilk Plus" references. | |
28375 | ||
28376 | 2018-03-02 Jakub Jelinek <jakub@redhat.com> | |
28377 | Richard Biener <rguenther@suse.de> | |
28378 | ||
28379 | PR ipa/84628 | |
28380 | * expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics | |
28381 | for error or warning attributes if CALL_FROM_THUNK_P is set. | |
28382 | Formatting fixes. | |
28383 | ||
28384 | 2018-03-02 Jakub Jelinek <jakub@redhat.com> | |
28385 | ||
28386 | PR target/56540 | |
28387 | * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine | |
28388 | __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY. | |
28389 | ||
28390 | PR target/56540 | |
28391 | * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine | |
28392 | __SIZEOF_{FPREG,FLOAT{80,128}}__ macros. | |
28393 | ||
28394 | * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED | |
28395 | instead of -1U in last predictors element's probability member. | |
28396 | ||
28397 | 2018-03-02 Eric Botcazou <ebotcazou@adacore.com> | |
28398 | ||
28399 | PR ipa/83983 | |
28400 | * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both | |
28401 | arguments if they are comparable. | |
28402 | ||
28403 | 2018-03-02 Richard Sandiford <richard.sandiford@linaro.org> | |
28404 | ||
28405 | PR tree-optimization/84634 | |
28406 | * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace | |
28407 | masks and masked_loop_p with a single loop_masks, making sure it's | |
28408 | null for bb vectorization. | |
28409 | ||
28410 | 2018-03-02 Richard Sandiford <richard.sandiford@linaro.org> | |
28411 | ||
28412 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) | |
28413 | (vect_analyze_data_ref_access): Use loop->safe_len rather than | |
28414 | loop->force_vectorize to check whether there is no alias. | |
28415 | ||
28416 | 2018-03-02 Jakub Jelinek <jakub@redhat.com> | |
28417 | ||
28418 | PR target/84614 | |
28419 | * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New | |
28420 | prototypes. | |
28421 | * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function | |
28422 | comments. | |
28423 | (next_real_nondebug_insn, prev_real_nondebug_insn): New functions. | |
28424 | * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn | |
28425 | instead of a loop around prev_real_insn. | |
28426 | * combine.c (move_deaths): Use prev_real_nondebug_insn instead of | |
28427 | prev_real_insn. | |
28428 | ||
28429 | PR inline-asm/84625 | |
28430 | * config/i386/i386.c (ix86_print_operand): Use conditional | |
28431 | output_operand_lossage instead of gcc_assert if CONST_VECTOR is not | |
28432 | zero vector. | |
28433 | ||
28434 | 2018-03-02 Richard Biener <rguenther@suse.de> | |
28435 | ||
28436 | PR tree-optimization/84427 | |
28437 | * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove. | |
28438 | (bitmap_set_subtract_values): Rewrite to handle multiple | |
28439 | exprs per value. | |
28440 | (clean): Likewise. | |
28441 | (prune_clobbered_mems): Likewise. | |
28442 | (phi_translate): Take edge instead of pred/phiblock. | |
28443 | (phi_translate_1): Likewise. | |
28444 | (phi_translate_set): Likewise. Insert all translated | |
28445 | exprs for a value into the set, keeping possibly multiple | |
28446 | expressions per value. | |
28447 | (compute_antic_aux): Adjust for phi_translate changes. | |
28448 | When intersecting union the expressions and prune those | |
28449 | not in the final value set, keeping possibly multiple | |
28450 | expressions per value. Do not use value-insertion | |
28451 | for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge | |
28452 | all expressions. Add verification that the value-sets | |
28453 | only shrink during iteration. | |
28454 | (compute_partial_antic_aux): Adjust for the phi_translate changes. | |
28455 | (do_pre_regular_insertion): Likewise. | |
28456 | (do_pre_partial_partial_insertion): Likewise. | |
28457 | ||
28458 | 2018-03-02 Richard Biener <rguenther@suse.de> | |
28459 | ||
28460 | PR target/82005 | |
28461 | * config/darwin.c (saved_debug_info_level): New static global. | |
28462 | (darwin_asm_lto_start): Disable debug info generation for LTO out. | |
28463 | (darwin_asm_lto_end): Restore debug info generation settings. | |
28464 | ||
28465 | 2018-03-01 Martin Liska <mliska@suse.cz> | |
28466 | ||
28467 | PR sanitizer/82484 | |
28468 | * sanopt.c (sanitize_rewrite_addressable_params): Do not handle | |
28469 | volatile arguments. | |
28470 | ||
28471 | 2018-03-01 Richard Biener <rguenther@suse.de> | |
28472 | ||
28473 | PR debug/84645 | |
28474 | * dwarf2out.c (gen_variable_die): Properly handle late VLA | |
28475 | type annotation with LTO when debug was disabled at compile-time. | |
28476 | ||
28477 | 2018-03-01 Matthew Fortune <mfortune@gmail.com> | |
28478 | ||
28479 | * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect | |
28480 | XINT with INTVAL. | |
28481 | (mips_final_postscan_insn): Likewise. | |
28482 | ||
28483 | 2018-03-01 Richard Sandiford <richard.sandiford@linaro.org> | |
28484 | ||
28485 | PR rtl-optimization/84528 | |
28486 | * alias.c (init_alias_target): Add commentary. | |
28487 | (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM | |
28488 | a unique base value if the frame pointer is not eliminated | |
28489 | to the stack pointer. | |
28490 | ||
28491 | 2018-03-01 Tom de Vries <tom@codesourcery.com> | |
28492 | ||
28493 | PR rtl-optimization/83327 | |
28494 | * lra-int.h (hard_regs_spilled_into): Declare. | |
28495 | * lra.c (hard_regs_spilled_into): Define. | |
28496 | (init_reg_info): Init hard_regs_spilled_into. | |
28497 | * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. | |
28498 | * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) | |
28499 | (process_bb_lives): Handle hard_regs_spilled_into. | |
28500 | (lra_create_live_ranges_1): Before doing liveness propagation, clear | |
28501 | regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. | |
28502 | ||
28503 | 2018-02-28 David Edelsohn <dje.gcc@gmail.com> | |
28504 | ||
28505 | * config.gcc (powerpc-ibm-aix7.1.*): New stanza. | |
28506 | (powerpc-ibm-aix[789]*): Default to AIX 7.2. | |
28507 | * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. | |
28508 | * config/rs6000/aix72.h: New file. | |
28509 | ||
28510 | 2018-02-28 Jakub Jelinek <jakub@redhat.com> | |
28511 | ||
28512 | * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n | |
28513 | instead of warning_at with conditional singular and plural messages | |
28514 | where possible. | |
28515 | ||
28516 | PR target/52991 | |
28517 | * stor-layout.c (update_alignment_for_field): For | |
28518 | targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield | |
28519 | && !DECL_PACKED (field), do the alignment update, just use | |
28520 | only desired_align instead of MAX (type_align, desired_align) | |
28521 | as the alignment. | |
28522 | (place_field): Don't do known_align < desired_align handling | |
28523 | early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field | |
28524 | is non-NULL, instead do it after rli->prev_field handling and | |
28525 | only if not within a bitfield word. For DECL_PACKED (field) | |
28526 | use type_align of BITS_PER_UNIT. | |
28527 | ||
28528 | 2018-02-28 Eric Botcazou <ebotcazou@adacore.com> | |
28529 | ||
28530 | * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove | |
28531 | superfluous parentheses and trailing spaces. | |
28532 | ||
28533 | 2018-02-28 Richard Biener <rguenther@suse.de> | |
28534 | ||
28535 | PR tree-optimization/84584 | |
28536 | * graphite-scop-detection.c (scop_detection::add_scop): Discard | |
28537 | SCoPs with fake exit edge. | |
28538 | ||
28539 | 2018-02-28 Martin Liska <mliska@suse.cz> | |
28540 | ||
28541 | PR testsuite/84597 | |
28542 | * timevar.c (timer::print): Fix format to properly print 100% | |
28543 | values. | |
28544 | ||
28545 | 2018-02-28 Richard Biener <rguenther@suse.de> | |
28546 | ||
28547 | PR middle-end/84607 | |
28548 | * genmatch.c (capture_info::walk_match): Do not mark | |
28549 | captured expressions without operands as expr_p given | |
28550 | they act more like predicates and should be subject to | |
28551 | "lost tail" side-effect preserving. | |
28552 | ||
28553 | 2018-02-28 Alexandre Oliva <aoliva@redhat.com> | |
28554 | ||
28555 | PR rtl-optimization/81611 | |
28556 | * auto-inc-dec.c (attempt_change): Move dead note from | |
28557 | mem_insn if it's the next use of regno | |
28558 | (find_address): Take address use of reg holding | |
28559 | non-incremented value. Add parm to limit search to the named | |
28560 | reg only. | |
28561 | (merge_in_block): Attempt to use a mem insn that is the next | |
28562 | use of the original regno. | |
28563 | ||
28564 | 2018-02-27 Martin Sebor <msebor@redhat.com> | |
28565 | ||
28566 | PR c++/83871 | |
28567 | * doc/invoke.texi (-Wmissing-attributes): New option. | |
28568 | * print-tree.c (print_node): Handle DECL_UNINLINABLE. | |
28569 | ||
28570 | 2018-02-27 Martin Sebor <msebor@redhat.com> | |
28571 | ||
28572 | PR translation/84207 | |
28573 | * diagnostic-core.h (warning_n, error_n, inform_n): Change | |
28574 | n argument to unsigned HOST_WIDE_INT. | |
28575 | * diagnostic.c (warning_n, error_n, inform_n): Ditto. | |
28576 | (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. | |
28577 | * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. | |
28578 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. | |
28579 | ||
28580 | 2018-02-27 Richard Biener <rguenther@suse.de> | |
28581 | ||
28582 | PR tree-optimization/84512 | |
28583 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
28584 | Do not use the estimate returned from record_stmt_cost for | |
28585 | the scalar iteration cost but sum properly using add_stmt_cost. | |
28586 | ||
28587 | 2018-02-27 Richard Biener <rguenther@suse.de> | |
28588 | ||
28589 | PR tree-optimization/84466 | |
28590 | * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): | |
28591 | Adjust last change to less strictly validate use operands. | |
28592 | ||
28593 | 2018-02-27 Martin Liska <mliska@suse.cz> | |
28594 | ||
28595 | PR gcov-profile/84548 | |
28596 | * gcov.c (process_file): Allow partial overlap and consider it | |
28597 | also as group functions. | |
28598 | (output_lines): Properly calculate range of lines for a group. | |
28599 | ||
28600 | 2018-02-27 Martin Liska <mliska@suse.cz> | |
28601 | ||
28602 | * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and | |
28603 | 'ggc' suffixes. Change first column width. | |
28604 | (timer::print): Fix formatting of the column. | |
28605 | ||
28606 | 2018-02-27 Alexandre Oliva <aoliva@redhat.com> | |
28607 | ||
28608 | * tree-ssa-live.c (remove_unused_scope_block_p): Do not | |
28609 | preserve inline entry blocks for the sake of debug inline | |
28610 | entry point markers alone. | |
28611 | (remove_unused_locals): Suggest in comments a better place to | |
28612 | force the preservation of inline entry blocks that are | |
28613 | otherwise unused, but do not preserve them. | |
28614 | ||
28615 | 2018-02-26 H.J. Lu <hongjiu.lu@intel.com> | |
28616 | ||
28617 | * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. | |
28618 | ||
28619 | 2018-02-26 H.J. Lu <hongjiu.lu@intel.com> | |
28620 | ||
28621 | PR target/84039 | |
28622 | * config/i386/constraints.md (Bs): Replace | |
28623 | ix86_indirect_branch_register with | |
28624 | TARGET_INDIRECT_BRANCH_REGISTER. | |
28625 | (Bw): Likewise. | |
28626 | * config/i386/i386.md (indirect_jump): Likewise. | |
28627 | (tablejump): Likewise. | |
28628 | (*sibcall_memory): Likewise. | |
28629 | (*sibcall_value_memory): Likewise. | |
28630 | Peepholes of indirect call and jump via memory: Likewise. | |
28631 | (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. | |
28632 | (*sibcall_value_GOT_32): Likewise. | |
28633 | * config/i386/predicates.md (indirect_branch_operand): Likewise. | |
28634 | (GOT_memory_operand): Likewise. | |
28635 | (call_insn_operand): Likewise. | |
28636 | (sibcall_insn_operand): Likewise. | |
28637 | (GOT32_symbol_operand): Likewise. | |
28638 | * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. | |
28639 | ||
28640 | 2018-02-26 Eric Botcazou <ebotcazou@adacore.com> | |
28641 | ||
28642 | PR rtl-optimization/83496 | |
28643 | * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from | |
28644 | booleans to RTXes. Call fix_reg_dead_note on every non-null element. | |
28645 | (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a | |
28646 | redundant insn, if any. | |
28647 | (relax_delay_slots): Likewise. | |
28648 | (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. | |
28649 | ||
28650 | 2018-02-26 Richard Sandiford <richard.sandiford@linaro.org> | |
28651 | ||
28652 | PR tree-optimization/83965 | |
28653 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume | |
28654 | that grouped statements are part of a reduction chain. Return | |
28655 | true if the statement is not marked as a reduction itself but | |
28656 | is part of a group. | |
28657 | (vect_recog_dot_prod_pattern): Don't check whether the statement | |
28658 | is part of a group here. | |
28659 | (vect_recog_sad_pattern): Likewise. | |
28660 | (vect_recog_widen_sum_pattern): Likewise. | |
28661 | ||
28662 | 2018-02-26 Eric Botcazou <ebotcazou@adacore.com> | |
28663 | ||
28664 | PR debug/84545 | |
28665 | * final.c (rest_of_clean_state): Also look for calls inside sequences. | |
28666 | ||
28667 | 2018-02-26 H.J. Lu <hongjiu.lu@intel.com> | |
28668 | ||
28669 | PR target/84530 | |
28670 | * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove | |
28671 | the bool argument. | |
28672 | (ix86_output_indirect_function_return): New prototype. | |
28673 | (ix86_split_simple_return_pop_internal): Likewise. | |
28674 | * config/i386/i386.c (indirect_return_via_cx): New. | |
28675 | (indirect_return_via_cx_bnd): Likewise. | |
28676 | (indirect_thunk_name): Handle return va CX_REG. | |
28677 | (output_indirect_thunk_function): Create alias for | |
28678 | __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd. | |
28679 | (ix86_output_indirect_jmp): Remove the bool argument. | |
28680 | (ix86_output_indirect_function_return): New function. | |
28681 | (ix86_split_simple_return_pop_internal): Likewise. | |
28682 | * config/i386/i386.md (*indirect_jump): Don't pass false | |
28683 | to ix86_output_indirect_jmp. | |
28684 | (*tablejump_1): Likewise. | |
28685 | (simple_return_pop_internal): Change it to define_insn_and_split. | |
28686 | Call ix86_split_simple_return_pop_internal to split it for | |
28687 | -mfunction-return=. | |
28688 | (simple_return_indirect_internal): Call | |
28689 | ix86_output_indirect_function_return instead of | |
28690 | ix86_output_indirect_jmp. | |
28691 | ||
28692 | 2018-02-26 Jakub Jelinek <jakub@redhat.com> | |
28693 | ||
28694 | PR bootstrap/84405 | |
28695 | * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use | |
28696 | memset and value initialization afterwards. | |
28697 | ||
28698 | 2018-02-26 Christophe Lyon <christophe.lyon@linaro.org> | |
28699 | ||
28700 | * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS. | |
28701 | ||
28702 | 2018-02-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
28703 | ||
28704 | PR target/84521 | |
28705 | * common/config/aarch64/aarch64-common.c | |
28706 | (aarch_option_optimization_table[]): Switch | |
28707 | off fomit-frame-pointer | |
28708 | ||
28709 | 2018-02-26 Kito Cheng <kito.cheng@gmail.com> | |
28710 | Chung-Ju Wu <jasonwucj@gmail.com> | |
28711 | ||
28712 | * config/nds32/nds32-multiple.md (load_multiple): Disallow | |
28713 | volatile memory. | |
28714 | (store_multiple): Ditto. | |
28715 | ||
28716 | 2018-02-26 Kito Cheng <kito.cheng@gmail.com> | |
28717 | ||
28718 | * config.gcc: Add --with-cpu support for nds32 target. | |
28719 | * config/nds32/nds32-opts.h (nds32_cpu_type): New. | |
28720 | * config/nds32/nds32.opt: Add -mcpu= option. | |
28721 | ||
28722 | 2018-02-25 Segher Boessenkool <segher@kernel.crashing.org> | |
28723 | ||
28724 | * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no, | |
28725 | isel=yes): Warn for these deprecated options. | |
28726 | ||
28727 | 2018-02-23 David Edelsohn <dje.gcc@gmail.com> | |
28728 | ||
28729 | * config/rs6000/aix71.h (TARGET_DEFAULT): Change to | |
28730 | ISA_2_5_MASKS_EMBEDDED. | |
28731 | ||
28732 | 2018-02-23 Jakub Jelinek <jakub@redhat.com> | |
28733 | ||
28734 | * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and | |
28735 | p->max as pointers rather than using iterative_hash_expr. | |
28736 | ||
28737 | 2018-02-23 Carl Love <cel@us.ibm.com> | |
28738 | ||
28739 | * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 | |
28740 | macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to | |
28741 | BU_P8V_OVERLOAD_2. | |
28742 | * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to | |
28743 | P8V_BUILTIN_VEC_VSIGNED2. Change VSX_BUILTIN_VEC_VUNSIGNED2 to | |
28744 | P8V_BUILTIN_VEC_VUNSIGNED2. | |
28745 | ||
28746 | 2018-02-22 Vladimir Makarov <vmakarov@redhat.com> | |
28747 | ||
28748 | PR target/81572 | |
28749 | * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros. | |
28750 | * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use | |
28751 | LRA_UNKNOWN_ALT. | |
28752 | * lra-constraints.c (curr_insn_transform): Set up | |
28753 | LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use | |
28754 | LRA_UNKNOWN_ALT. | |
28755 | (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT. | |
28756 | * lra-eliminations.c (spill_pseudos): Ditto. | |
28757 | (process_insn_for_elimination): Ditto. | |
28758 | * lra-lives.c (reg_early_clobber_p): Use the new macros. | |
28759 | * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and | |
28760 | LRA_NON_CLOBBERED_ALT. | |
28761 | ||
28762 | 2018-02-22 Martin Sebor <msebor@redhat.com> | |
28763 | ||
28764 | PR tree-optimization/84480 | |
28765 | * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings | |
28766 | to maybe_diag_stxncpy_trunc. Call it. | |
28767 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings | |
28768 | from gimple_fold_builtin_strcpy. Print inlining stack. | |
28769 | (handle_builtin_stxncpy): Print inlining stack. | |
28770 | * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare. | |
28771 | ||
28772 | 2018-02-22 H.J. Lu <hongjiu.lu@intel.com> | |
28773 | ||
28774 | PR target/84176 | |
28775 | * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an | |
28776 | error when -mindirect-branch=thunk-extern, -fcf-protection=branch | |
28777 | and -fcheck-pointer-bounds are used together. | |
28778 | (indirect_thunk_prefix): New enum. | |
28779 | (indirect_thunk_need_prefix): New function. | |
28780 | (indirect_thunk_name): Replace need_bnd_p with need_prefix. Use | |
28781 | "_nt" instead of "_bnd" for NOTRACK prefix. | |
28782 | (output_indirect_thunk): Replace need_bnd_p with need_prefix. | |
28783 | (output_indirect_thunk_function): Likewise. | |
28784 | (): Likewise. | |
28785 | (ix86_code_end): Update output_indirect_thunk_function calls. | |
28786 | (ix86_output_indirect_branch_via_reg): Replace | |
28787 | ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix. | |
28788 | (ix86_output_indirect_branch_via_push): Likewise. | |
28789 | (ix86_output_function_return): Likewise. | |
28790 | * doc/invoke.texi: Document -mindirect-branch=thunk-extern is | |
28791 | incompatible with -fcf-protection=branch and | |
28792 | -fcheck-pointer-bounds. | |
28793 | ||
28794 | 2018-02-22 Steve Ellcey <sellcey@cavium.com> | |
28795 | ||
28796 | PR target/83335 | |
28797 | * config/aarch64/aarch64.c (aarch64_print_address_internal): | |
28798 | Change gcc_assert call to output_operand_lossage. | |
28799 | ||
28800 | 2018-02-22 Steve Ellcey <sellcey@cavium.com> | |
28801 | ||
28802 | * doc/extend.texi (__builtin_extend_pointer): Document builtin. | |
28803 | ||
28804 | 2018-02-22 DJ Delorie <dj@redhat.com> | |
28805 | Sebastian Perta <sebastian.perta@renesas.com> | |
28806 | Oleg Endo <olegendo@gcc.gnu.org> | |
28807 | ||
28808 | * config/rx/rx.c (rx_rtx_costs): New function. | |
28809 | (TARGET_RTX_COSTS): Override to use rx_rtx_costs. | |
28810 | ||
28811 | 2018-02-22 Thomas Preud'homme <thomas.preudhomme@arm.com> | |
28812 | ||
28813 | * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs. | |
28814 | ||
28815 | 2018-02-22 Martin Liska <mliska@suse.cz> | |
28816 | ||
28817 | PR driver/83193 | |
28818 | * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): | |
28819 | Add "native" as a possible value. | |
28820 | ||
28821 | 2018-02-22 Martin Liska <mliska@suse.cz> | |
28822 | ||
28823 | PR driver/83193 | |
28824 | * config/i386/i386.c (ix86_option_override_internal): | |
28825 | Add "native" as a possible value for -march and -mtune. | |
28826 | ||
28827 | 2018-02-22 Jakub Jelinek <jakub@redhat.com> | |
28828 | ||
28829 | PR target/84502 | |
28830 | * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag | |
28831 | to all type variants. | |
28832 | ||
28833 | PR tree-optimization/84503 | |
28834 | * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute | |
28835 | width as info->bitpos + info->bitsize - start. | |
28836 | (merged_store_group::merge_overlapping): Simplify width computation. | |
28837 | (check_no_overlap): New function. | |
28838 | (imm_store_chain_info::try_coalesce_bswap): Compute expected | |
28839 | start + width and last_order of the group, fail if check_no_overlap | |
28840 | fails. | |
28841 | (imm_store_chain_info::coalesce_immediate_stores): Don't merge info | |
28842 | to group if check_no_overlap fails. | |
28843 | ||
28844 | 2018-02-21 Segher Boessenkool <segher@kernel.crashing.org> | |
28845 | ||
28846 | * config/rs6000/altivec.md: Delete contraint arguments to | |
28847 | define_expand, define_split, and define_peephole2, and in | |
28848 | define_insn_and_split if always unused. | |
28849 | * config/rs6000/darwin.md: Ditto. | |
28850 | * config/rs6000/dfp.md: Ditto. | |
28851 | * config/rs6000/rs6000.md: Ditto. | |
28852 | * config/rs6000/sync.md: Ditto. | |
28853 | * config/rs6000/vector.md: Ditto. | |
28854 | * config/rs6000/vsx.md: Ditto. | |
28855 | ||
28856 | 2018-02-21 Segher Boessenkool <segher@kernel.crashing.org> | |
28857 | ||
28858 | * config/rs6000/altivec.md: Write output control strings as braced | |
28859 | blocks instead of double-quoted strings. | |
28860 | * config/rs6000/darwin.md: Ditto. | |
28861 | * config/rs6000/rs6000.md: Ditto. | |
28862 | * config/rs6000/vector.md: Ditto. | |
28863 | * config/rs6000/vsx.md: Ditto. | |
28864 | ||
28865 | 2018-02-21 Jason Merrill <jason@redhat.com> | |
28866 | ||
28867 | PR c++/84314 - ICE with templates and fastcall attribute. | |
28868 | * attribs.c (build_type_attribute_qual_variant): Remove assert. | |
28869 | ||
28870 | 2018-02-21 Jan Hubicka <hubicka@ucw.cz> | |
28871 | ||
28872 | * ipa-cp.c (determine_versionability): Fix comment typos. | |
28873 | ||
28874 | 2018-02-21 Jan Hubicka <hubicka@ucw.cz> | |
28875 | ||
28876 | PR c/84229 | |
28877 | * ipa-cp.c (determine_versionability): Do not version functions caling | |
28878 | va_arg_pack. | |
28879 | ||
28880 | 2018-02-21 Martin Liska <mliska@suse.cz> | |
28881 | ||
28882 | PR driver/83193 | |
28883 | * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): | |
28884 | Add "native" as a possible value. | |
28885 | * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT): Define | |
28886 | the macro when native cpu detection is available. | |
28887 | ||
28888 | 2018-02-21 Martin Liska <mliska@suse.cz> | |
28889 | ||
28890 | PR driver/83193 | |
28891 | * common/config/arm/arm-common.c (arm_print_hint_for_arch_option): | |
28892 | Add "native" as a possible value. | |
28893 | * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro | |
28894 | when native cpu detection is available. | |
28895 | ||
28896 | 2018-02-21 Jakub Jelinek <jakub@redhat.com> | |
28897 | Martin Sebor <msebor@redhat.com> | |
28898 | ||
28899 | PR tree-optimization/84478 | |
28900 | * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to | |
28901 | false. | |
28902 | * gimple-fold.c (get_range_strlen): Make minlen const and assume it | |
28903 | can't be NULL. Change FUZZY from bool to int, for 1 add PHI/COND_EXPR | |
28904 | support which is conservatively correct, for 2 only stay conservative | |
28905 | for maxlen. Formatting and comment capitalization fixes. Add STRICT | |
28906 | argument to the 2 argument get_range_strlen, adjust 6 arg | |
28907 | get_range_strlen caller and clear minmaxlen[0] and [1] if it returned | |
28908 | false. | |
28909 | (get_maxval_strlen): Adjust 6 arg get_range_strlen caller. | |
28910 | (gimple_fold_builtin_strlen): Pass true as last argument to | |
28911 | get_range_strlen. | |
28912 | ||
28913 | 2018-02-20 Martin Sebor <msebor@redhat.com> | |
28914 | ||
28915 | PR middle-end/84095 | |
28916 | * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New. | |
28917 | (builtin_memref::set_base_and_offset): Same. Handle inner references. | |
28918 | (builtin_memref::builtin_memref): Factor out parts into | |
28919 | set_base_and_offset and call it. | |
28920 | ||
28921 | 2018-02-20 Richard Sandiford <richard.sandiford@linaro.org> | |
28922 | ||
28923 | PR middle-end/84406 | |
28924 | * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode | |
28925 | is a scalar_int_mode, assert that to_mode is a scalar_int_mode with | |
28926 | greater precision. If to_mode is a MODE_PARTIAL_INT, stop the | |
28927 | search at the associated MODE_INT. | |
28928 | ||
28929 | 2018-02-20 Jeff Law <law@redhat.com> | |
28930 | ||
28931 | PR middle-end/82123 | |
28932 | PR tree-optimization/81592 | |
28933 | PR middle-end/79257 | |
28934 | * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer | |
28935 | for range data rather than using global data. | |
28936 | * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for | |
28937 | range data rather than using global data. | |
28938 | * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter | |
28939 | pass it to children as needed. | |
28940 | (struct directive::fmtresult): Similarly. | |
28941 | (struct directive::set_width): Similarly. | |
28942 | (struct directive::set_precision): Similarly. | |
28943 | (format_integer, format_directive, parse_directive): Similarly. | |
28944 | (format_none): Accept unnamed vr_values parameter. | |
28945 | (format_percent, format_floating, format_character): Similarly. | |
28946 | (format_string, format_plain): Similarly. | |
28947 | * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query | |
28948 | the EVRP range analyzer for range data rather than using global data. | |
28949 | * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and | |
28950 | gimple-ssa-evrp-analyze.h | |
28951 | (class sprintf_dom_walker): Add after_dom_children member function. | |
28952 | Add evrp_range_analyzer member. | |
28953 | (sprintf_dom_walker::before_dom_children): Call into the EVRP | |
28954 | range analyzer as needed. | |
28955 | (sprintf_dom_walker::after_dom_children): New member function. | |
28956 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing | |
28957 | if not optimizing. | |
28958 | (evrp_range_analyzer::record_ranges_from_stmt): Likewise. | |
28959 | (evrp_range_analyzer::pop_to_marker): Likewise. | |
28960 | ||
28961 | 2018-02-20 Richard Sandiford <richard.sandiford@linaro.org> | |
28962 | ||
28963 | PR tree-optimization/84419 | |
28964 | * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF | |
28965 | with the required type if its current type is compatible but | |
28966 | different. | |
28967 | ||
28968 | 2018-02-20 Jakub Jelinek <jakub@redhat.com> | |
28969 | ||
28970 | PR middle-end/82004 | |
28971 | * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until | |
28972 | after vectorization. | |
28973 | ||
28974 | 2018-02-20 Martin Liska <mliska@suse.cz> | |
28975 | ||
28976 | PR driver/83193 | |
28977 | * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print | |
28978 | possible values if we don't have a hint. | |
28979 | ||
28980 | 2018-02-20 Martin Liska <mliska@suse.cz> | |
28981 | ||
28982 | PR c/84310 | |
28983 | PR target/79747 | |
28984 | * final.c (shorten_branches): Build align_tab array with one | |
28985 | more element. | |
28986 | * opts.c (finish_options): Add alignment option limit check. | |
28987 | (MAX_CODE_ALIGN): Likewise. | |
28988 | (MAX_CODE_ALIGN_VALUE): Likewise. | |
28989 | * doc/invoke.texi: Document maximum allowed option value for | |
28990 | all -falign-* options. | |
28991 | ||
28992 | 2018-02-19 Jakub Jelinek <jakub@redhat.com> | |
28993 | ||
28994 | PR target/84146 | |
28995 | * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note. | |
28996 | * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove. | |
28997 | * var-tracking.c (emit_note_insn_var_location): Remove all references | |
28998 | to NOTE_INSN_CALL_ARG_LOCATION. | |
28999 | (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on | |
29000 | the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note. | |
29001 | Use copy_rtx_if_shared. | |
29002 | * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of | |
29003 | NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note. | |
29004 | (dwarf2out_var_location): Remove handling of | |
29005 | NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note | |
29006 | on call_insn. | |
29007 | * final.c (final_scan_insn): Remove all references to | |
29008 | NOTE_INSN_CALL_ARG_LOCATION. | |
29009 | (rest_of_clean_state): Likewise. Remove REG_CALL_ARG_LOCATION notes | |
29010 | before dumping final insns. | |
29011 | * except.c (emit_note_eh_region_end): Remove all references to | |
29012 | NOTE_INSN_CALL_ARG_LOCATION. | |
29013 | * config/alpha/alpha.c (alpha_pad_function_end): Likewise. | |
29014 | * config/c6x/c6x.c (c6x_gen_bundles): Likewise. | |
29015 | * config/arc/arc.c (hwloop_optimize): Likewise. | |
29016 | * config/arm/arm.c (create_fix_barrier): Likewise. | |
29017 | * config/s390/s390.c (s390_chunkify_start): Likewise. | |
29018 | * config/sh/sh.c (find_barrier): Likewise. | |
29019 | * config/i386/i386.c (rest_of_insert_endbranch, | |
29020 | ix86_seh_fixup_eh_fallthru): Likewise. | |
29021 | * config/xtensa/xtensa.c (hwloop_optimize): Likewise. | |
29022 | * config/iq2000/iq2000.c (final_prescan_insn): Likewise. | |
29023 | * config/frv/frv.c (frv_function_prologue): Likewise. | |
29024 | * emit-rtl.c (try_split): Likewise. Copy over REG_CALL_ARG_LOCATION | |
29025 | reg note. | |
29026 | (note_outside_basic_block_p): Remove all references to | |
29027 | NOTE_INSN_CALL_ARG_LOCATION. | |
29028 | * gengtype.c (adjust_field_rtx_def): Likewise. | |
29029 | * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn): | |
29030 | Likewise. | |
29031 | * jump.c (cleanup_barriers, delete_related_insns): Likewise. | |
29032 | * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. | |
29033 | ||
29034 | PR c++/84444 | |
29035 | * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t) | |
29036 | is ADDR_EXPR. | |
29037 | ||
29038 | PR tree-optimization/84452 | |
29039 | * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call | |
29040 | expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen | |
29041 | is NULL. | |
29042 | ||
29043 | 2018-02-19 Martin Liska <mliska@suse.cz> | |
29044 | ||
29045 | PR sanitizer/82183 | |
29046 | * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0. | |
29047 | ||
29048 | 2018-02-19 Martin Liska <mliska@suse.cz> | |
29049 | Richard Sandiford <richard.sandiford@linaro.org> | |
29050 | ||
29051 | PR tree-optimization/82491 | |
29052 | * gimple-fold.c (get_base_constructor): Make earlier bail out | |
29053 | to prevent ubsan. | |
29054 | ||
29055 | 2018-02-19 Carl Love <cel@us.ibm.com> | |
29056 | ||
29057 | * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from | |
29058 | BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to | |
29059 | BU_P8V_OVERLOAD_1. | |
29060 | * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to | |
29061 | P8V_BUILTIN_VEC_NEG. | |
29062 | ||
29063 | 2018-02-19 Sebastian Perta <sebastian.perta@renesas.com> | |
29064 | ||
29065 | * config/rl78/rl78.md (movdf): New define expand. | |
29066 | ||
29067 | 2018-02-19 Martin Liska <mliska@suse.cz> | |
29068 | ||
29069 | PR other/80589 | |
29070 | * doc/invoke.texi: Fix typo. | |
29071 | * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise. | |
29072 | ||
29073 | 2018-02-18 Segher Boessenkool <segher@kernel.crashing.org> | |
29074 | ||
29075 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't | |
29076 | handle rs6000_single_float and rs6000_double_float specially for | |
29077 | e500 family CPUs. | |
29078 | ||
29079 | 2018-02-16 Jeff Law <law@redhat.com> | |
29080 | ||
29081 | * config/rx/rx.c (add_pop_cfi_notes): New function.; | |
29082 | (pop_regs): Use it. | |
29083 | ||
29084 | 2018-02-16 Jakub Jelinek <jakub@redhat.com> | |
29085 | ||
29086 | PR ipa/84425 | |
29087 | * ipa-inline.c (inline_small_functions): Fix a typo. | |
29088 | ||
29089 | 2018-02-16 Nathan Sidwell <nathan@acm.org> | |
29090 | ||
29091 | * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'. | |
29092 | ||
29093 | 2018-02-16 Carl Love <cel@us.ibm.com> | |
29094 | ||
29095 | * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition. | |
29096 | Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and | |
29097 | from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2. | |
29098 | * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2 | |
29099 | expansion to P8V_BUILTIN_VEC_FLOAT2. | |
29100 | ||
29101 | 2018-02-16 Vladimir Makarov <vmakarov@redhat.com> | |
29102 | ||
29103 | PR rtl-optimization/70023 | |
29104 | * lra-constraints.c (inherit_in_ebb): Take hard reg mode of | |
29105 | src_regno into account. | |
29106 | ||
29107 | 2018-02-16 Carl Love <cel@us.ibm.com> | |
29108 | ||
29109 | * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b. | |
29110 | * config/rs6000/rs6000-builtin.def: Remove macro expansion for | |
29111 | VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B. | |
29112 | * config/rs6000/rs6000.c: Remove case statements for | |
29113 | P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B, | |
29114 | P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI, | |
29115 | and P9V_BUILTIN_VEC_VINSERT4B. | |
29116 | * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for | |
29117 | P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B. | |
29118 | * config/rs6000/vsx.md: | |
29119 | * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for | |
29120 | vec_insert4b. | |
29121 | ||
29122 | 2018-02-16 Carl Love <cel@us.ibm.com> | |
29123 | ||
29124 | * config/rs6000/altivec.h: Add builtin names vec_extract4b | |
29125 | vec_insert4b. | |
29126 | * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B | |
29127 | definitions. | |
29128 | * config/rs6000/rs6000-c.c: Add the definitions for | |
29129 | P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B. | |
29130 | * config/rs6000/rs6000.c (altivec_expand_builtin): Add | |
29131 | P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements. | |
29132 | * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand | |
29133 | definition for insert4b and define insn *insert3b_internal. | |
29134 | * doc/extend.texi: Add documentation for vec_extract4b. | |
29135 | ||
29136 | 2018-02-16 Nathan Sidwell <nathan@acm.org> | |
29137 | ||
29138 | * doc/extend.texi (Backwards Compatibility): Mention friend | |
29139 | injection. Note for-scope is deprecated. | |
29140 | * doc/invoke.texi (-ffriend-injection): Deprecate. | |
29141 | ||
29142 | 2018-02-16 Segher Boessenkool <segher@kernel.crashing.org> | |
29143 | ||
29144 | * combine.c (try_combine): When adjusting LOG_LINKS for the destination | |
29145 | that moved to I2, also allow destinations that are a paradoxical | |
29146 | subreg (instead of a normal reg). | |
29147 | ||
29148 | 2018-02-16 Oleg Endo <olegendo@gcc.gnu.org> | |
29149 | ||
29150 | PR target/83831 | |
29151 | * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand | |
29152 | to QImode. | |
29153 | ||
29154 | 2018-02-16 Richard Biener <rguenther@suse.de> | |
29155 | ||
29156 | PR tree-optimization/84037 | |
29157 | PR tree-optimization/84016 | |
29158 | PR target/82862 | |
29159 | * config/i386/i386.c (ix86_builtin_vectorization_cost): | |
29160 | Adjust vec_construct for the fact we need additional higher latency | |
29161 | 128bit inserts for AVX256 and AVX512 vector builds. | |
29162 | (ix86_add_stmt_cost): Scale vector construction cost for | |
29163 | elementwise loads. | |
29164 | ||
29165 | 2018-02-16 Richard Biener <rguenther@suse.de> | |
29166 | ||
29167 | PR tree-optimization/84417 | |
29168 | * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain | |
29169 | the MEM_REF offset when conversion to BIT_FIELD_REF is desired. | |
29170 | (non_rewritable_lvalue_p): Likewise, use poly-ints. | |
29171 | ||
29172 | 2018-02-16 Martin Liska <mliska@suse.cz> | |
29173 | ||
29174 | PR sanitizer/84307 | |
29175 | * internal-fn.def (ASAN_CHECK): Set proper flags. | |
29176 | (ASAN_MARK): Likewise. | |
29177 | ||
29178 | 2018-02-16 Julia Koval <julia.koval@intel.com> | |
29179 | ||
29180 | * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB | |
29181 | from PTA_CANNONLAKE. | |
29182 | ||
29183 | 2018-02-16 Jakub Jelinek <jakub@redhat.com> | |
29184 | ||
29185 | PR target/84272 | |
29186 | * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest): | |
29187 | Use ++iter rather than iter++ for std::list iterators. | |
29188 | (func_fma_steering::dfs): Likewise. Don't delete nodes right away, | |
29189 | defer deleting them until all nodes in the forest are processed. Do | |
29190 | free even leaf nodes. Change to_process into auto_vec. | |
29191 | ||
29192 | PR bootstrap/84405 | |
29193 | * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3. | |
29194 | * vec.h (vec_default_construct): Use memset instead of placement new | |
29195 | if BROKEN_VALUE_INITIALIZATION is defined. | |
29196 | * hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use | |
29197 | memset instead of value initialization if BROKEN_VALUE_INITIALIZATION | |
29198 | is defined. | |
29199 | ||
29200 | PR rtl-optimization/83723 | |
29201 | * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument. | |
29202 | * lra.c (lra_substitute_pseudo): Likewise. If true, use | |
29203 | gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG. Pass DEBUG_P to | |
29204 | recursive calls. | |
29205 | (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo | |
29206 | callers. | |
29207 | * lra-constraints.c (inherit_reload_reg, split_reg): Likewise. | |
29208 | ||
29209 | 2018-02-16 Eric Botcazou <ebotcazou@adacore.com> | |
29210 | ||
29211 | PR rtl-optimization/81443 | |
29212 | * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results | |
29213 | from inner REGs to paradoxical SUBREGs. | |
29214 | ||
29215 | 2018-02-16 Richard Biener <rguenther@suse.de> | |
29216 | ||
29217 | PR tree-optimization/84399 | |
29218 | * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): | |
29219 | For operands we can analyze at their definition make sure we can | |
29220 | analyze them at each use as well. | |
29221 | ||
29222 | 2018-02-16 Richard Biener <rguenther@suse.de> | |
29223 | ||
29224 | PR tree-optimization/84190 | |
29225 | * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch | |
29226 | volatile accesses if the decl isn't volatile. | |
29227 | ||
29228 | 2018-02-15 Jason Merrill <jason@redhat.com> | |
29229 | ||
29230 | PR c++/84314 - ICE with templates and fastcall attribute. | |
29231 | * attribs.c (build_type_attribute_qual_variant): Don't clobber | |
29232 | TYPE_CANONICAL on an existing type. | |
29233 | ||
29234 | 2018-02-15 Jakub Jelinek <jakub@redhat.com> | |
29235 | ||
29236 | PR tree-optimization/84383 | |
29237 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at | |
29238 | dstoff nor call operand_equal_p if dstbase is NULL. | |
29239 | ||
29240 | PR tree-optimization/84334 | |
29241 | * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is | |
29242 | also a CONSTANT_CLASS_P, punt. | |
29243 | ||
29244 | 2018-02-14 Jim Wilson <jimw@sifive.com> | |
29245 | ||
29246 | * config/riscv/riscv.c (riscv_first_stack_step): Move locals after | |
29247 | first SMALL_OPERAND check. New local min_second_step. Move assert | |
29248 | to where locals are set. Add TARGET_RVC support. | |
29249 | * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New. | |
29250 | ||
29251 | 2018-02-14 Indu Bhagat <indu.bhagat@oracle.com> | |
29252 | ||
29253 | * doc/invoke.texi: Correct -Wformat-overflow code sample. | |
29254 | ||
29255 | 2018-02-14 Martin Sebor <msebor@redhat.com> | |
29256 | ||
29257 | PR tree-optimization/83698 | |
29258 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For | |
29259 | arrays constrain the offset range to their bounds. | |
29260 | (builtin_access::strcat_overlap): Adjust the bounds of overlap offset. | |
29261 | (builtin_access::overlap): Avoid setting the size of overlap if it's | |
29262 | already been set. | |
29263 | (maybe_diag_overlap): Also consider arrays when deciding what values | |
29264 | of offsets to include in diagnostics. | |
29265 | ||
29266 | 2018-02-14 Martin Sebor <msebor@redhat.com> | |
29267 | ||
29268 | PR c/84108 | |
29269 | * attribs.c (diag_attr_exclusions): Consider the exclusion(s) | |
29270 | that correspond to the kind of a declaration. | |
29271 | ||
29272 | 2018-02-14 John David Anglin <danglin@gcc.gnu.org> | |
29273 | ||
29274 | PR target/83984 | |
29275 | * config/pa/pa.md: Load address of PIC label using the linkage table | |
29276 | if the label is nonlocal. | |
29277 | ||
29278 | 2018-02-14 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
29279 | ||
29280 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue | |
29281 | warning message if user requests -maltivec=be. | |
29282 | * doc/invoke.texi: Document deprecation of -maltivec=be. | |
29283 | ||
29284 | 2018-02-14 Will Schmidt <will_schmidt@vnet.ibm.com> | |
29285 | ||
29286 | PR target/84220 | |
29287 | * config/rs6000/rs6000-c.c: Update definitions for | |
29288 | ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW, | |
29289 | VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins. | |
29290 | ||
29291 | 2018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
29292 | ||
29293 | PR target/84239 | |
29294 | * config/i386/cetintrin.h: Remove _rdssp[d|q] and | |
29295 | add _get_ssp intrinsics. Remove argument from | |
29296 | __builtin_ia32_rdssp[d|q]. | |
29297 | * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID. | |
29298 | * config/i386/i386-builtin.def: Remove argument from | |
29299 | __builtin_ia32_rdssp[d|q]. | |
29300 | * config/i386/i386.c: Use UINT_FTYPE_VOID. Use | |
29301 | ix86_expand_special_args_builtin for _rdssp[d|q]. | |
29302 | * config/i386/i386.md: Remove argument from rdssp[si|di] insn. | |
29303 | Clear register before usage. | |
29304 | * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q]. | |
29305 | Add documentation for new _get_ssp and _inc_ssp intrinsics. | |
29306 | ||
29307 | 2018-02-14 Richard Sandiford <richard.sandiford@linaro.org> | |
29308 | ||
29309 | PR tree-optimization/84357 | |
29310 | * tree-data-ref.c (object_address_invariant_in_loop_p): Check | |
29311 | operand 1 of an ARRAY_REF too. | |
29312 | ||
29313 | 2018-02-14 Oleg Endo <olegendo@gcc.gnu.org> | |
29314 | ||
29315 | PR target/83831 | |
29316 | * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn, | |
29317 | rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New | |
29318 | declarations. | |
29319 | (set_of_reg): New struct. | |
29320 | (rx_find_set_of_reg, rx_find_use_of_reg): New functions. | |
29321 | * config/rx/rx.c (rx_reg_dead_or_unused_after_insn, | |
29322 | rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New | |
29323 | functions. | |
29324 | * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split. | |
29325 | Split into bitclr, bitset, bitinvert patterns if appropriate. | |
29326 | (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and | |
29327 | use rx_fuse_in_memory_bitop. | |
29328 | (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert | |
29329 | to named insn, correct maximum insn length. | |
29330 | ||
29331 | 2018-02-14 Jozef Lawrynowicz <jozefl.gcc@gmail.com> | |
29332 | ||
29333 | PR target/79242 | |
29334 | * machmode.def: Define a complex mode for PARTIAL_INT. | |
29335 | * genmodes.c (complex_class): Return MODE_COMPLEX_INT for | |
29336 | MODE_PARTIAL_INT. | |
29337 | * doc/rtl.texi: Document CSPImode. | |
29338 | * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode | |
29339 | handling. | |
29340 | (msp430_hard_regno_nregs_with_padding): Likewise. | |
29341 | ||
29342 | 2018-02-13 Peter Bergner <bergner@vnet.ibm.com> | |
29343 | ||
29344 | PR target/84279 | |
29345 | * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses. | |
29346 | ||
29347 | 2018-02-13 Segher Boessenkool <segher@kernel.crashing.org> | |
29348 | ||
29349 | PR rtl-optimization/84169 | |
29350 | * combine.c (try_combine): New variable split_i2i3. Set it to true if | |
29351 | we generated a parallel as new i3 and we split that to new i2 and i3 | |
29352 | instructions. Handle split_i2i3 similar to swap_i2i3: scan the | |
29353 | LOG_LINKs of i3 to see which of those need to link to i2 now. Link | |
29354 | those to i2, not i1. Partially rewrite this scan code. | |
29355 | ||
29356 | 2018-02-13 Jakub Jelinek <jakub@redhat.com> | |
29357 | ||
29358 | PR c/82210 | |
29359 | * stor-layout.c (place_field): For variable length fields, adjust | |
29360 | offset_align afterwards not just based on the field's alignment, | |
29361 | but also on the size. | |
29362 | ||
29363 | PR middle-end/84309 | |
29364 | * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead | |
29365 | of exps and logs in the use_exp2 case. | |
29366 | ||
29367 | 2018-02-13 Jeff Law <law@redhat.com> | |
29368 | ||
29369 | * config/rl/rl78.c (rl78_attribute_table): Fix terminator and | |
29370 | entry for "vector". | |
29371 | ||
29372 | * config/rl78/rl78.c (rl78_handle_func_attribute): Mark | |
29373 | ARGS as unused. | |
29374 | ||
29375 | 2018-02-13 Alexandre Oliva <aoliva@redhat.com> | |
29376 | ||
29377 | PR debug/84342 | |
29378 | PR debug/84319 | |
29379 | * common.opt (gas-loc-support, gas-locview-support): New. | |
29380 | (ginline-points, ginternal-reset-location-views): New. | |
29381 | * doc/invoke.texi: Document them. Use @itemx where intended. | |
29382 | (gvariable-location-views): Adjust. | |
29383 | * target.def (reset_location_view): New. | |
29384 | * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. | |
29385 | (TARGET_RESET_LOCATION_VIEW): New. | |
29386 | * doc/tm.texi: Rebuilt. | |
29387 | * dwarf2out.c (dwarf2out_default_as_loc_support): New. | |
29388 | (dwarf2out_default_as_locview_support): New. | |
29389 | (output_asm_line_debug_info): Use option variables. | |
29390 | (dwarf2out_maybe_output_loclist_view_pair): Likewise. | |
29391 | (output_loc_list): Likewise. | |
29392 | (add_high_low_attributes): Check option variables. | |
29393 | Don't output entry view attribute in strict mode. | |
29394 | (gen_inlined_subroutine_die): Check option variables. | |
29395 | (dwarf2out_inline_entry): Likewise. | |
29396 | (init_sections_and_labels): Likewise. | |
29397 | (dwarf2out_early_finish): Likewise. | |
29398 | (maybe_reset_location_view): New, from... | |
29399 | (dwarf2out_var_location): ... here. Call it. | |
29400 | * debug.h (dwarf2out_default_as_loc_support): Declare. | |
29401 | (dwarf2out_default_as_locview_support): Declare. | |
29402 | * hooks.c (hook_int_rtx_insn_0): New. | |
29403 | * hooks.h (hook_int_rtx_insn_0): Declare. | |
29404 | * toplev.c (process_options): Take -gas-loc-support and | |
29405 | -gas-locview-support from dwarf2out. Enable | |
29406 | -gvariable-location-views by default only with locview | |
29407 | assembler support. Enable -ginternal-reset-location-views by | |
29408 | default only if the target defines the corresponding hook. | |
29409 | Enable -ginline-points by default if location views are | |
29410 | enabled; force it disabled if statement frontiers are | |
29411 | disabled. | |
29412 | * tree-inline.c (expand_call_inline): Check option variables. | |
29413 | * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. | |
29414 | ||
29415 | 2018-02-13 Richard Sandiford <richard.sandiford@linaro.org> | |
29416 | ||
29417 | PR tree-optimization/84321 | |
29418 | * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE | |
29419 | handling. Also check whether the anti-range contains any values | |
29420 | that satisfy the mask; switch to a VR_RANGE if not. | |
29421 | ||
29422 | 2018-02-13 Paolo Bonzini <bonzini@gnu.org> | |
29423 | ||
29424 | PR sanitizer/84340 | |
29425 | * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. | |
29426 | ||
29427 | 2018-02-13 Martin Jambor <mjambor@suse.cz> | |
29428 | ||
29429 | PR c++/83990 | |
29430 | * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location | |
29431 | of call statements, also set location of a load to a temporary. | |
29432 | ||
29433 | 2018-02-13 Sebastian Perta <sebastian.perta@renesas.com> | |
29434 | ||
29435 | * config/rl78/rl78.c (add_vector_labels): New function. | |
29436 | * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. | |
29437 | * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. | |
29438 | * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert | |
29439 | which checks that no arguments are passed. | |
29440 | * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. | |
29441 | * doc/extend.texi: Documentation for the new attribute. | |
29442 | ||
29443 | 2018-02-13 Andreas Schwab <schwab@suse.de> | |
29444 | ||
29445 | * config/riscv/linux.h (CPP_SPEC): Define. | |
29446 | ||
29447 | 2018-02-13 Jakub Jelinek <jakub@redhat.com> | |
29448 | ||
29449 | PR target/84335 | |
29450 | * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass | |
29451 | OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of | |
29452 | OPTION_MASK_ISA_AES as first argument to def_builtin_const | |
29453 | for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 | |
29454 | instead of OPTION_MASK_ISA_PCLMUL as first argument to | |
29455 | def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. | |
29456 | * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it | |
29457 | temporarily for AES and PCLMUL builtins. | |
29458 | ||
29459 | PR tree-optimization/84339 | |
29460 | * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling | |
29461 | ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. | |
29462 | Formatting fixes. | |
29463 | ||
29464 | PR middle-end/84309 | |
29465 | * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into | |
29466 | exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. | |
29467 | * generic-match-head.c (canonicalize_math_after_vectorization_p): New | |
29468 | inline function. | |
29469 | * gimple-match-head.c (canonicalize_math_after_vectorization_p): New | |
29470 | inline function. | |
29471 | * omp-simd-clone.h: New file. | |
29472 | * omp-simd-clone.c: Include omp-simd-clone.h. | |
29473 | (expand_simd_clones): No longer static. | |
29474 | * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, | |
29475 | cgraph.h and omp-simd-clone.h. | |
29476 | (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). | |
29477 | (vect_recog_widen_shift_pattern): Formatting fix. | |
29478 | (vect_pattern_recog_1): Don't check optab for calls. | |
29479 | ||
29480 | PR target/84336 | |
29481 | * config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force | |
29482 | operands[2] into a REG before using gen_lowpart on it. | |
29483 | ||
29484 | 2018-02-12 Jeff Law <law@redhat.com> | |
29485 | ||
29486 | PR target/83760 | |
29487 | * config/sh/sh.c (find_barrier): Consider a sibling call | |
29488 | a barrier as well. | |
29489 | ||
29490 | * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when | |
29491 | successfully back substituting a reg. | |
29492 | ||
29493 | 2018-02-12 Richard Biener <rguenther@suse.de> | |
29494 | ||
29495 | PR tree-optimization/84037 | |
29496 | * tree-vect-slp.c (vect_analyze_slp_cost): Add visited | |
29497 | parameter, move visited init to caller. | |
29498 | (vect_slp_analyze_operations): Separate cost from validity | |
29499 | check, initialize visited once for all instances. | |
29500 | (vect_schedule_slp): Analyze map to CSE vectorized nodes once | |
29501 | for all instances. | |
29502 | * tree-vect-stmts.c (vect_model_simple_cost): Make early | |
29503 | out an assert. | |
29504 | (vect_model_promotion_demotion_cost): Likewise. | |
29505 | (vectorizable_bswap): Guard cost modeling with !slp_node | |
29506 | instead of !PURE_SLP_STMT to avoid double-counting on hybrid | |
29507 | SLP stmts. | |
29508 | (vectorizable_call): Likewise. | |
29509 | (vectorizable_conversion): Likewise. | |
29510 | (vectorizable_assignment): Likewise. | |
29511 | (vectorizable_shift): Likewise. | |
29512 | (vectorizable_operation): Likewise. | |
29513 | (vectorizable_store): Likewise. | |
29514 | (vectorizable_load): Likewise. | |
29515 | (vectorizable_condition): Likewise. | |
29516 | (vectorizable_comparison): Likewise. | |
29517 | ||
29518 | 2018-02-12 Paolo Bonzini <bonzini@gnu.org> | |
29519 | ||
29520 | PR sanitizer/84307 | |
29521 | * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. | |
29522 | (ASAN_MARK): Fix fnspec to account for return value, change pointer | |
29523 | argument from 'R' to 'W' so that the pointed-to datum is clobbered. | |
29524 | ||
29525 | 2018-02-08 Jan Hubicka <hubicka@ucw.cz> | |
29526 | ||
29527 | PR middle-end/83665 | |
29528 | * params.def (inline-min-speedup): Increase from 8 to 15. | |
29529 | (max-inline-insns-auto): Decrease from 40 to 30. | |
29530 | * ipa-split.c (consider_split): Add some buffer for function to | |
29531 | be considered inlining candidate. | |
29532 | * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate | |
29533 | default values. | |
29534 | ||
29535 | 2018-02-12 Richard Biener <rguenther@suse.de> | |
29536 | ||
29537 | PR tree-optimization/84037 | |
29538 | * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the | |
29539 | matched stmts if we cannot swap the non-matched ones. | |
29540 | ||
29541 | 2018-02-12 Olga Makhotina <olga.makhotina@intel.com> | |
29542 | ||
29543 | * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, | |
29544 | _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, | |
29545 | _mm_maskz_scalef_round_ss): New intrinsics. | |
29546 | (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. | |
29547 | * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, | |
29548 | __builtin_ia32_scalefss_round): Remove. | |
29549 | (__builtin_ia32_scalefsd_mask_round, | |
29550 | __builtin_ia32_scalefss_mask_round): New intrinsics. | |
29551 | * config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ... | |
29552 | (vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this. | |
29553 | ((match_operand:VF_128 2 "<round_nimm_predicate>" | |
29554 | "<round_constraint>")): Changed to ... | |
29555 | ((match_operand:VF_128 2 "<round_scalar_nimm_predicate>" | |
29556 | "<round_scalar_constraint>")): ... this. | |
29557 | ("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0| | |
29558 | %0, %1, %2<round_op3>}"): Changed to ... | |
29559 | ("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1, | |
29560 | %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, | |
29561 | %2<round_scalar_mask_op3>}"): ... this. | |
29562 | * config/i386/subst.md (round_scalar_nimm_predicate): New. | |
29563 | ||
29564 | 2018-02-12 Olga Makhotina <olga.makhotina@intel.com> | |
29565 | ||
29566 | * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) | |
29567 | (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) | |
29568 | (_mm_maskz_sqrt_round_ss): New intrinsics. | |
29569 | (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. | |
29570 | (__builtin_ia32_sqrtsd_mask_round) | |
29571 | (__builtin_ia32_sqrtss_mask_round): New builtins. | |
29572 | * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) | |
29573 | (__builtin_ia32_sqrtss_round): Remove. | |
29574 | (__builtin_ia32_sqrtsd_mask_round) | |
29575 | (__builtin_ia32_sqrtss_mask_round): New builtins. | |
29576 | * config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ... | |
29577 | (vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this. | |
29578 | ((match_operand:VF_128 1 "vector_operand" | |
29579 | "xBm,<round_constraint>")): Changed to ... | |
29580 | ((match_operand:VF_128 1 "vector_operand" | |
29581 | "xBm,<round_scalar_constraint>")): ... this. | |
29582 | (vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0| | |
29583 | %0, %2, %<iptr>1<round_op3>}): Changed to ... | |
29584 | (vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2, | |
29585 | %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2, | |
29586 | %<iptr>1<round_scalar_mask_op3>}): ... this. | |
29587 | ((set_attr "prefix" "<round_prefix>")): Changed to ... | |
29588 | ((set_attr "prefix" "<round_scalar_prefix>")): ... this. | |
29589 | ||
29590 | 2018-02-11 Steven Munroe <munroesj@gcc.gnu.org> | |
29591 | ||
29592 | PR target/84266 | |
29593 | * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]): | |
29594 | Cast vec_cmpeq result to correct type. | |
29595 | * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]): | |
29596 | Cast vec_cmpgt result to correct type. | |
29597 | ||
29598 | 2018-02-11 Alexandre Oliva <aoliva@redhat.com> | |
29599 | ||
29600 | * final.c (final_scan_insn_1): Renamed from... | |
29601 | (final_scan_insn): ... this. New wrapper, to recover | |
29602 | seen from the outermost call in recursive ones. | |
29603 | * config/sparc/sparc.c (output_return): Drop seen from call. | |
29604 | (output_sibcall): Likewise. | |
29605 | * config/visium/visium.c (output_branch): Likewise. | |
29606 | ||
29607 | 2018-02-10 John David Anglin <danglin@gcc.gnu.org> | |
29608 | ||
29609 | * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as | |
29610 | function label. | |
29611 | ||
29612 | 2018-02-10 Alan Modra <amodra@gmail.com> | |
29613 | ||
29614 | PR target/84300 | |
29615 | * config/rs6000/rs6000.md (split_stack_return): Remove (use ..). | |
29616 | Specify LR as an input. | |
29617 | ||
29618 | 2018-02-10 Jakub Jelinek <jakub@redhat.com> | |
29619 | ||
29620 | PR sanitizer/83987 | |
29621 | * omp-low.c (maybe_remove_omp_member_access_dummy_vars, | |
29622 | remove_member_access_dummy_vars): New functions. | |
29623 | (lower_omp_for, lower_omp_taskreg, lower_omp_target, | |
29624 | lower_omp_1, execute_lower_omp): Use them. | |
29625 | ||
29626 | PR rtl-optimization/84308 | |
29627 | * shrink-wrap.c (spread_components): Release todo vector. | |
29628 | ||
29629 | 2018-02-09 Vladimir Makarov <vmakarov@redhat.com> | |
29630 | ||
29631 | PR rtl-optimization/57193 | |
29632 | * ira-color.c (struct allocno_color_data): Add member | |
29633 | conflict_allocno_hard_prefs. | |
29634 | (update_conflict_allocno_hard_prefs): New. | |
29635 | (bucket_allocno_compare_func): Add a preference based on | |
29636 | conflict_allocno_hard_prefs. | |
29637 | (push_allocno_to_stack): Update conflict_allocno_hard_prefs. | |
29638 | (color_allocnos): Remove a dead code. Initiate | |
29639 | conflict_allocno_hard_prefs. Call update_costs_from_prefs. | |
29640 | ||
29641 | 2018-02-09 Jakub Jelinek <jakub@redhat.com> | |
29642 | ||
29643 | PR target/84226 | |
29644 | * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand | |
29645 | constraint from =wa to wa. Avoid a subreg on the output operand, | |
29646 | instead use a pseudo and subreg it in a move. | |
29647 | (p9_xxbrd_<mode>): Changed to ... | |
29648 | (p9_xxbrd_v2di): ... this insn, without VSX_D iterator. | |
29649 | (p9_xxbrd_v2df): New expander. | |
29650 | (p9_xxbrw_<mode>): Changed to ... | |
29651 | (p9_xxbrw_v4si): ... this insn, without VSX_W iterator. | |
29652 | (p9_xxbrw_v4sf): New expander. | |
29653 | ||
29654 | 2018-02-09 Sebastian Perta <sebastian.perta@renesas.com> | |
29655 | ||
29656 | * config/rx/rx.md (movsicc): Update expander to be matched by GCC. | |
29657 | ||
29658 | 2018-02-09 Peter Bergner <bergner@vnet.ibm.com> | |
29659 | ||
29660 | PR target/83926 | |
29661 | * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit | |
29662 | multiply in 32-bit mode. | |
29663 | (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode. | |
29664 | (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit | |
29665 | mode. | |
29666 | ||
29667 | 2018-02-09 Sebastian Perta <sebastian.perta@renesas.com> | |
29668 | ||
29669 | * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint | |
29670 | to allow or block "symbol_ref" depending on the value of TARGET_JSR. | |
29671 | * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF. | |
29672 | * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF. | |
29673 | ||
29674 | 2018-02-09 Pierre-Marie de Rodat <derodat@adacore.com> | |
29675 | ||
29676 | PR lto/84213 | |
29677 | * dwarf2out.c (is_trivial_indirect_ref): New function. | |
29678 | (dwarf2out_late_global_decl): Do not generate a location | |
29679 | attribute for variables that have a non-trivial DECL_VALUE_EXPR | |
29680 | and that are not defined in the current unit. | |
29681 | ||
29682 | 2018-02-09 Eric Botcazou <ebotcazou@adacore.com> | |
29683 | ||
29684 | * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison | |
29685 | instead of a libcall for UNORDERED. | |
29686 | ||
29687 | 2018-02-09 Tamar Christina <tamar.christina@arm.com> | |
29688 | ||
29689 | PR target/82641 | |
29690 | * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX, | |
29691 | __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP. | |
29692 | ||
29693 | 2018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
29694 | ||
29695 | PR target/PR84295 | |
29696 | * config/s390/s390.c (s390_set_current_function): Invoke | |
29697 | s390_indirect_branch_settings also if fndecl didn't change. | |
29698 | ||
29699 | 2018-02-09 Alexandre Oliva <aoliva@redhat.com> | |
29700 | ||
29701 | * config/rs6000/rs6000.md (blockage): Set length to zero. | |
29702 | ||
29703 | 2018-02-09 Eric Botcazou <ebotcazou@adacore.com> | |
29704 | ||
29705 | * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion. | |
29706 | ||
29707 | 2018-02-09 Jakub Jelinek <jakub@redhat.com> | |
29708 | ||
29709 | PR sanitizer/84285 | |
29710 | * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS, | |
29711 | STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like | |
29712 | -static-lib*san. | |
29713 | ||
29714 | PR debug/84252 | |
29715 | * var-tracking.c (vt_add_function_parameter): Punt for non-onepart | |
29716 | PARALLEL incoming that failed vt_get_decl_and_offset check. | |
29717 | ||
29718 | PR middle-end/84237 | |
29719 | * output.h (bss_initializer_p): Add NAMED argument, defaulted to false. | |
29720 | * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore | |
29721 | TREE_READONLY bit. | |
29722 | (get_variable_section): For decls in named .bss* sections pass true as | |
29723 | second argument to bss_initializer_p. | |
29724 | ||
29725 | 2018-02-09 Marek Polacek <polacek@redhat.com> | |
29726 | Jakub Jelinek <jakub@redhat.com> | |
29727 | ||
29728 | PR c++/83659 | |
29729 | * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro. | |
29730 | Formatting fixes. Verify first that tree_fits_poly_int64_p (op01). | |
29731 | Sync some changes from cxx_fold_indirect_ref. | |
29732 | ||
29733 | 2018-02-09 Alexandre Oliva <aoliva@redhat.com> | |
29734 | ||
29735 | * cfgexpand.c (expand_gimple_basic_block): Handle inline entry | |
29736 | markers. | |
29737 | * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook. | |
29738 | (BLOCK_INLINE_ENTRY_LABEL): New. | |
29739 | (dwarf2out_var_location): Disregard inline entry markers. | |
29740 | (inline_entry_data): New struct. | |
29741 | (inline_entry_data_hasher): New hashtable type. | |
29742 | (inline_entry_data_hasher::hash): New. | |
29743 | (inline_entry_data_hasher::equal): New. | |
29744 | (inline_entry_data_table): New variable. | |
29745 | (add_high_low_attributes): Add DW_AT_entry_pc and | |
29746 | DW_AT_GNU_entry_view attributes if a pending entry is found | |
29747 | in inline_entry_data_table. Add old entry_pc attribute only | |
29748 | if debug nonbinding markers are disabled. | |
29749 | (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding | |
29750 | markers are enabled. | |
29751 | (block_within_block_p, dwarf2out_inline_entry): New. | |
29752 | (dwarf2out_finish): Check that no entries remained in | |
29753 | inline_entry_data_table. | |
29754 | * final.c (reemit_insn_block_notes): Handle inline entry notes. | |
29755 | (final_scan_insn, notice_source_line): Likewise. | |
29756 | (rest_of_clean_state): Skip inline entry markers. | |
29757 | * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry | |
29758 | markers. | |
29759 | * gimple.c (gimple_build_debug_inline_entry): New. | |
29760 | * gimple.h (enum gimple_debug_subcode): Add | |
29761 | GIMPLE_DEBUG_INLINE_ENTRY. | |
29762 | (gimple_build_debug_inline_entry): Declare. | |
29763 | (gimple_debug_inline_entry_p): New. | |
29764 | (gimple_debug_nonbind_marker_p): Adjust. | |
29765 | * insn-notes.def (INLINE_ENTRY): New. | |
29766 | * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle | |
29767 | inline entry marker notes. | |
29768 | (print_insn): Likewise. | |
29769 | * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support. | |
29770 | (INSN_DEBUG_MARKER_KIND): Likewise. | |
29771 | (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New. | |
29772 | * tree-inline.c (expand_call_inline): Build and insert | |
29773 | debug_inline_entry stmt. | |
29774 | * tree-ssa-live.c (remove_unused_scope_block_p): Preserve | |
29775 | inline entry blocks early, if nonbind markers are enabled. | |
29776 | (dump_scope_block): Dump fragment info. | |
29777 | * var-tracking.c (reemit_marker_as_note): Handle inline entry note. | |
29778 | * doc/gimple.texi (gimple_debug_inline_entry_p): New. | |
29779 | (gimple_build_debug_inline_entry): New. | |
29780 | * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): | |
29781 | Enable/disable inline entry points too. | |
29782 | * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New. | |
29783 | (DEBUG_INSN): Describe inline entry markers. | |
29784 | ||
29785 | * common.opt (gvariable-location-views): New. | |
29786 | (gvariable-location-views=incompat5): New. | |
29787 | * config.in: Rebuilt. | |
29788 | * configure: Rebuilt. | |
29789 | * configure.ac: Test assembler for view support. | |
29790 | * dwarf2asm.c (dw2_asm_output_symname_uleb128): New. | |
29791 | * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare. | |
29792 | * dwarf2out.c (var_loc_view): New typedef. | |
29793 | (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend. | |
29794 | (dwarf2out_locviews_in_attribute): New. | |
29795 | (dwarf2out_locviews_in_loclist): New. | |
29796 | (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists. | |
29797 | (enum dw_line_info_opcode): Add LI_adv_address. | |
29798 | (struct dw_line_info_table): Add view. | |
29799 | (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros. | |
29800 | (DWARF2_ASM_VIEW_DEBUG_INFO): Define default. | |
29801 | (zero_view_p): New variable. | |
29802 | (ZERO_VIEW_P): New macro. | |
29803 | (output_asm_line_debug_info): New. | |
29804 | (struct var_loc_node): Add view. | |
29805 | (add_AT_view_list, AT_loc_list): New. | |
29806 | (add_var_loc_to_decl): Add view param. Test it against last. | |
29807 | (new_loc_list): Add view params. Record them. | |
29808 | (AT_loc_list_ptr): Handle loc and view lists. | |
29809 | (view_list_to_loc_list_val_node): New. | |
29810 | (print_dw_val): Handle dw_val_class_view_list. | |
29811 | (size_of_die): Likewise. | |
29812 | (value_format): Likewise. | |
29813 | (loc_list_has_views): New. | |
29814 | (gen_llsym): Set vl_symbol too. | |
29815 | (maybe_gen_llsym, skip_loc_list_entry): New. | |
29816 | (dwarf2out_maybe_output_loclist_view_pair): New. | |
29817 | (output_loc_list): Output view list or entries too. | |
29818 | (output_view_list_offset): New. | |
29819 | (output_die): Handle dw_val_class_view_list. | |
29820 | (output_dwarf_version): New. | |
29821 | (output_compilation_unit_header): Use it. | |
29822 | (output_skeleton_debug_sections): Likewise. | |
29823 | (output_rnglists, output_line_info): Likewise. | |
29824 | (output_pubnames, output_aranges): Update version comments. | |
29825 | (output_one_line_info_table): Output view numbers in asm comments. | |
29826 | (dw_loc_list): Determine current endview, pass it to new_loc_list. | |
29827 | Call maybe_gen_llsym. | |
29828 | (loc_list_from_tree_1): Adjust. | |
29829 | (add_AT_location_description): Create view list attribute if | |
29830 | needed, check it's absent otherwise. | |
29831 | (convert_cfa_to_fb_loc_list): Adjust. | |
29832 | (maybe_emit_file): Call output_asm_line_debug_info for test. | |
29833 | (dwarf2out_var_location): Reset views as needed. Precompute | |
29834 | add_var_loc_to_decl args. Call get_attr_min_length only if we have the | |
29835 | attribute. Set view. | |
29836 | (new_line_info_table): Reset next view. | |
29837 | (set_cur_line_info_table): Call output_asm_line_debug_info for test. | |
29838 | (dwarf2out_source_line): Likewise. Output view resets and labels to | |
29839 | the assembler, or select appropriate line info opcodes. | |
29840 | (prune_unused_types_walk_attribs): Handle dw_val_class_view_list. | |
29841 | (optimize_string_length): Catch it. Adjust. | |
29842 | (resolve_addr): Copy vl_symbol along with ll_symbol. Handle | |
29843 | dw_val_class_view_list, and remove it if no longer needed. | |
29844 | (hash_loc_list): Hash view numbers. | |
29845 | (loc_list_hasher::equal): Compare them. | |
29846 | (optimize_location_lists): Check whether a view list symbol is | |
29847 | needed, and whether the locview attribute is present, and | |
29848 | whether they match. Remove the locview attribute if no longer | |
29849 | needed. | |
29850 | (index_location_lists): Call skip_loc_list_entry for test. | |
29851 | (dwarf2out_finish): Call output_asm_line_debug_info for test. | |
29852 | Use output_dwarf_version. | |
29853 | * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list. | |
29854 | (struct dw_val_node): Add val_view_list. | |
29855 | * final.c (SEEN_NEXT_VIEW): New. | |
29856 | (set_next_view_needed): New. | |
29857 | (clear_next_view_needed): New. | |
29858 | (maybe_output_next_view): New. | |
29859 | (final_start_function): Rename to... | |
29860 | (final_start_function_1): ... this. Take pointer to FIRST, | |
29861 | add SEEN parameter. Emit param bindings in the initial view. | |
29862 | (final_start_function): Reintroduce SEEN-less interface. | |
29863 | (final): Rename to... | |
29864 | (final_1): ... this. Take SEEN parameter. Output final pending | |
29865 | next view at the end. | |
29866 | (final): Reintroduce seen-less interface. | |
29867 | (final_scan_insn): Output pending next view before switching | |
29868 | sections or ending a block. Mark the next view as needed when | |
29869 | outputting variable locations. Notify debug backend of section | |
29870 | changes, and of location view changes. | |
29871 | (rest_of_handle_final): Adjust. | |
29872 | * toplev.c (process_options): Autodetect value for debug variable | |
29873 | location views option. Warn on incompat5 without -gdwarf-5. | |
29874 | * doc/invoke.texi (gvariable-location-views): New. | |
29875 | (gvariable-location-views=incompat5): New. | |
29876 | (gno-variable-location-views): New. | |
29877 | ||
29878 | 2018-02-08 David Malcolm <dmalcolm@redhat.com> | |
29879 | ||
29880 | PR tree-optimization/84136 | |
29881 | * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion | |
29882 | that the result of find_edge is non-NULL. | |
29883 | ||
29884 | 2018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> | |
29885 | ||
29886 | PR target/83008 | |
29887 | * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of | |
29888 | storing integer register in SImode. Fix cost of 256 and 512 | |
29889 | byte aligned SSE register store. | |
29890 | ||
29891 | 2018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> | |
29892 | ||
29893 | * config/i386/i386.c (ix86_multiplication_cost): Fix | |
29894 | multiplication cost for TARGET_AVX512DQ. | |
29895 | ||
29896 | 2018-02-08 Marek Polacek <polacek@redhat.com> | |
29897 | ||
29898 | PR tree-optimization/84238 | |
29899 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of | |
29900 | get_range_strlen. | |
29901 | ||
29902 | 2018-02-08 Richard Sandiford <richard.sandiford@linaro.org> | |
29903 | ||
29904 | PR tree-optimization/84265 | |
29905 | * tree-vect-stmts.c (vectorizable_store): Don't treat | |
29906 | VMAT_CONTIGUOUS accesses as grouped. | |
29907 | (vectorizable_load): Likewise. | |
29908 | ||
29909 | 2018-02-08 Richard Sandiford <richard.sandiford@linaro.org> | |
29910 | ||
29911 | PR tree-optimization/81635 | |
29912 | * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare. | |
29913 | * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask) | |
29914 | (test_round_for_mask): New functions. | |
29915 | (wide_int_cc_tests): Call test_round_for_mask. | |
29916 | * tree-vrp.h (intersect_range_with_nonzero_bits): Declare. | |
29917 | * tree-vrp.c (intersect_range_with_nonzero_bits): New function. | |
29918 | * tree-data-ref.c (split_constant_offset_1): Use it to refine the | |
29919 | range returned by get_range_info. | |
29920 | ||
29921 | 2018-02-08 Jan Hubicka <hubicka@ucw.cz> | |
29922 | ||
29923 | PR ipa/81360 | |
29924 | * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare | |
29925 | * symtab.c: Include builtins.h | |
29926 | (symtab_node::output_to_lto_symbol_table_p): Move here | |
29927 | from lto-streamer-out.c:output_symbol_p. | |
29928 | * lto-streamer-out.c (write_symbol): Turn early exit to assert. | |
29929 | (output_symbol_p): Move all logic to symtab.c | |
29930 | (produce_symtab): Update. | |
29931 | ||
29932 | 2018-02-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
29933 | ||
29934 | * config/s390/s390-opts.h (enum indirect_branch): Define. | |
29935 | * config/s390/s390-protos.h (s390_return_addr_from_memory) | |
29936 | (s390_indirect_branch_via_thunk) | |
29937 | (s390_indirect_branch_via_inline_thunk): Add function prototypes. | |
29938 | (enum s390_indirect_branch_type): Define. | |
29939 | * config/s390/s390.c (struct s390_frame_layout, struct | |
29940 | machine_function): Remove. | |
29941 | (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask) | |
29942 | (indirect_branch_table_label_no, indirect_branch_table_name): | |
29943 | Define variables. | |
29944 | (INDIRECT_BRANCH_NUM_OPTIONS): Define macro. | |
29945 | (enum s390_indirect_branch_option): Define. | |
29946 | (s390_return_addr_from_memory): New function. | |
29947 | (s390_handle_string_attribute): New function. | |
29948 | (s390_attribute_table): Add new attribute handler. | |
29949 | (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns. | |
29950 | (s390_indirect_branch_via_thunk): New function. | |
29951 | (s390_indirect_branch_via_inline_thunk): New function. | |
29952 | (s390_function_ok_for_sibcall): When jumping via thunk disallow | |
29953 | sibling call optimization for non z10 compiles. | |
29954 | (s390_emit_call): Force indirect branch target to be a single | |
29955 | register. Add r1 clobber for non-z10 compiles. | |
29956 | (s390_emit_epilogue): Emit return jump via return_use expander. | |
29957 | (s390_reorg): Handle JUMP_INSNs as execute targets. | |
29958 | (s390_option_override_internal): Perform validity checks for the | |
29959 | new command line options. | |
29960 | (s390_indirect_branch_attrvalue): New function. | |
29961 | (s390_indirect_branch_settings): New function. | |
29962 | (s390_set_current_function): Invoke s390_indirect_branch_settings. | |
29963 | (s390_output_indirect_thunk_function): New function. | |
29964 | (s390_code_end): Implement target hook. | |
29965 | (s390_case_values_threshold): Implement target hook. | |
29966 | (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target | |
29967 | macros. | |
29968 | * config/s390/s390.h (struct s390_frame_layout) | |
29969 | (struct machine_function): Move here from s390.c. | |
29970 | (TARGET_INDIRECT_BRANCH_NOBP_RET) | |
29971 | (TARGET_INDIRECT_BRANCH_NOBP_JUMP) | |
29972 | (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK) | |
29973 | (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK) | |
29974 | (TARGET_INDIRECT_BRANCH_NOBP_CALL) | |
29975 | (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE) | |
29976 | (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL) | |
29977 | (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX) | |
29978 | (TARGET_INDIRECT_BRANCH_TABLE): Define macros. | |
29979 | * config/s390/s390.md (UNSPEC_EXECUTE_JUMP) | |
29980 | (INDIRECT_BRANCH_THUNK_REGNUM): Define constants. | |
29981 | (mnemonic attribute): Add values which aren't recognized | |
29982 | automatically. | |
29983 | ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable | |
29984 | pattern for branch conversion. Fix mnemonic attribute. | |
29985 | ("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit | |
29986 | indirect branch via thunk if requested. | |
29987 | ("indirect_jump", "<code>"): Expand patterns for branch conversion. | |
29988 | ("*indirect_jump"): Disable for branch conversion using out of | |
29989 | line thunks. | |
29990 | ("indirect_jump_via_thunk<mode>_z10") | |
29991 | ("indirect_jump_via_thunk<mode>") | |
29992 | ("indirect_jump_via_inlinethunk<mode>_z10") | |
29993 | ("indirect_jump_via_inlinethunk<mode>", "*casesi_jump") | |
29994 | ("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>") | |
29995 | ("casesi_jump_via_inlinethunk<mode>_z10") | |
29996 | ("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10") | |
29997 | ("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10") | |
29998 | ("*basr_r_via_thunk", "return<mode>_prez10"): New pattern. | |
29999 | ("*indirect2_jump"): Disable for branch conversion. | |
30000 | ("casesi_jump"): Turn into expander and expand patterns for branch | |
30001 | conversion. | |
30002 | ("return_use"): New expander. | |
30003 | ("*return"): Emit return via thunk and rename it to ... | |
30004 | ("*return<mode>"): ... this one. | |
30005 | * config/s390/s390.opt: Add new options and and enum for the | |
30006 | option values. | |
30007 | ||
30008 | 2018-02-08 Richard Sandiford <richard.sandiford@linaro.org> | |
30009 | ||
30010 | * lra-constraints.c (match_reload): Unconditionally use | |
30011 | gen_lowpart_SUBREG, rather than selecting between that | |
30012 | and equivalent gen_rtx_SUBREG code. | |
30013 | ||
30014 | 2018-02-08 Richard Biener <rguenther@suse.de> | |
30015 | ||
30016 | PR tree-optimization/84233 | |
30017 | * tree-ssa-phiprop.c (propagate_with_phi): Use separate | |
30018 | changed flag instead of boguously re-using phi_inserted. | |
30019 | ||
30020 | 2018-02-08 Martin Jambor <mjambor@suse.cz> | |
30021 | ||
30022 | * hsa-gen.c (get_symbol_for_decl): Set program allocation for | |
30023 | static local variables. | |
30024 | ||
30025 | 2018-02-08 Richard Biener <rguenther@suse.de> | |
30026 | ||
30027 | PR tree-optimization/84278 | |
30028 | * tree-vect-stmts.c (vectorizable_store): When looking for | |
30029 | smaller vector types to perform grouped strided loads/stores | |
30030 | make sure the mode is supported by the target. | |
30031 | (vectorizable_load): Likewise. | |
30032 | ||
30033 | 2018-02-08 Wilco Dijkstra <wdijkstr@arm.com> | |
30034 | ||
30035 | * config/aarch64/aarch64.c (aarch64_components_for_bb): | |
30036 | Increase LDP/STP opportunities by adding adjacent callee-saves. | |
30037 | ||
30038 | 2018-02-08 Wilco Dijkstra <wdijkstr@arm.com> | |
30039 | ||
30040 | PR rtl-optimization/84068 | |
30041 | PR rtl-optimization/83459 | |
30042 | * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. | |
30043 | ||
30044 | 2018-02-08 Aldy Hernandez <aldyh@redhat.com> | |
30045 | ||
30046 | PR tree-optimization/84224 | |
30047 | * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. | |
30048 | * calls.c (gimple_alloca_call_p): Only return TRUE when we have | |
30049 | non-zero arguments. | |
30050 | ||
30051 | 2018-02-07 Iain Sandoe <iain@codesourcery.com> | |
30052 | ||
30053 | PR target/84113 | |
30054 | * config/rs6000/altivec.md (*restore_world): Remove LR use. | |
30055 | * config/rs6000/predicates.md (restore_world_operation): Adjust op | |
30056 | count, remove one USE. | |
30057 | ||
30058 | 2018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> | |
30059 | ||
30060 | * doc/install.texi (Configuration): Document the | |
30061 | --with-long-double-format={ibm,ieee} PowerPC configuration | |
30062 | options. | |
30063 | ||
30064 | PR target/84154 | |
30065 | * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2): | |
30066 | Convert from define_expand to be define_insn_and_split. Rework | |
30067 | float/double/_Float128 conversions to QI/HI/SImode to work with | |
30068 | both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where | |
30069 | conversions to QI/HImode types did a store and then a load to | |
30070 | truncate the value. For conversions to VSX registers, don't split | |
30071 | the insn, instead emit the code directly. Use the code iterator | |
30072 | any_fix to combine signed and unsigned conversions. | |
30073 | (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise. | |
30074 | (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise. | |
30075 | (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise. | |
30076 | (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise. | |
30077 | (fix_<mode>di2_hw): Likewise. | |
30078 | (fixuns_<mode>di2_hw): Likewise. | |
30079 | (fix_<mode>si2_hw): Likewise. | |
30080 | (fixuns_<mode>si2_hw): Likewise. | |
30081 | (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise. | |
30082 | (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise. | |
30083 | (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to | |
30084 | fix<uns>_trunc<SFDF:mode>si2_p8. | |
30085 | (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer used. | |
30086 | (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. | |
30087 | (fix<uns>_<mode>_mem): Likewise. | |
30088 | (fctiw<u>z_<mode>_mem): Likewise. | |
30089 | (fix<uns>_<mode>_mem): Likewise. | |
30090 | (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent | |
30091 | the register allocator from doing a direct move to the GPRs to do | |
30092 | a store, and instead use the ISA 3.0 store byte/half-word from | |
30093 | vector register instruction. For IEEE 128-bit floating point, | |
30094 | also optimize stores of 32-bit ints. | |
30095 | (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise. | |
30096 | ||
30097 | 2018-02-07 Alan Hayward <alan.hayward@arm.com> | |
30098 | ||
30099 | * genextract.c (push_pathstr_operand): New function to support | |
30100 | [a-zA-Z]. | |
30101 | (walk_rtx): Call push_pathstr_operand. | |
30102 | (print_path): Support [a-zA-Z]. | |
30103 | ||
30104 | 2018-02-07 Richard Biener <rguenther@suse.de> | |
30105 | ||
30106 | PR tree-optimization/84037 | |
30107 | * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. | |
30108 | (cse_and_gimplify_to_preheader): Declare. | |
30109 | (vect_get_place_in_interleaving_chain): Likewise. | |
30110 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
30111 | ivexpr_map. | |
30112 | (_loop_vec_info::~_loop_vec_info): Delete it. | |
30113 | (cse_and_gimplify_to_preheader): New function. | |
30114 | * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. | |
30115 | * tree-vect-stmts.c (vectorizable_store): CSE base and steps. | |
30116 | (vectorizable_load): Likewise. For grouped stores always base | |
30117 | the IV on the first element. | |
30118 | * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning | |
30119 | condition before gimplifying. | |
30120 | ||
30121 | 2018-02-07 Jakub Jelinek <jakub@redhat.com> | |
30122 | ||
30123 | * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for | |
30124 | *DIV_EXPR and *MOD_EXPR. | |
30125 | ||
30126 | 2018-02-07 H.J. Lu <hongjiu.lu@intel.com> | |
30127 | ||
30128 | PR target/84248 | |
30129 | * config/i386/i386.c (ix86_option_override_internal): Mask out | |
30130 | the CF_SET bit when checking -fcf-protection. | |
30131 | ||
30132 | 2018-02-07 Tom de Vries <tom@codesourcery.com> | |
30133 | ||
30134 | PR libgomp/84217 | |
30135 | * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large | |
30136 | enough. | |
30137 | ||
30138 | 2018-02-07 Richard Biener <rguenther@suse.de> | |
30139 | ||
30140 | PR tree-optimization/84204 | |
30141 | * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in | |
30142 | this place. | |
30143 | ||
30144 | PR tree-optimization/84205 | |
30145 | * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also | |
30146 | special-case isl_ast_op_zdiv_r. | |
30147 | ||
30148 | PR tree-optimization/84223 | |
30149 | * graphite-scop-detection.c (gather_bbs::before_dom_children): | |
30150 | Only add conditions from within the region. | |
30151 | (gather_bbs::after_dom_children): Adjust. | |
30152 | ||
30153 | 2018-02-07 Georg-Johann Lay <avr@gjlay.de> | |
30154 | ||
30155 | PR target/84209 | |
30156 | * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. | |
30157 | * config/avr/avr.md: Only post-reload split REG-REG moves if | |
30158 | either register is GENERAL_REG_P. | |
30159 | ||
30160 | 2018-02-07 Jakub Jelinek <jakub@redhat.com> | |
30161 | ||
30162 | PR tree-optimization/84235 | |
30163 | * tree-ssa-scopedtables.c | |
30164 | (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt | |
30165 | if the subtraction is performed in floating point type where NaNs are | |
30166 | honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't | |
30167 | build 1. Formatting fix. | |
30168 | ||
30169 | 2018-02-06 Jakub Jelinek <jakub@redhat.com> | |
30170 | ||
30171 | PR target/84146 | |
30172 | * config/i386/i386.c (rest_of_insert_endbranch): Only skip | |
30173 | NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else, | |
30174 | and skip it regardless of bb boundaries. Use CALL_P macro, | |
30175 | don't test INSN_P (insn) together with CALL_P or JUMP_P check | |
30176 | unnecessarily, formatting fix. | |
30177 | ||
30178 | 2018-02-06 Michael Collison <michael.collison@arm.com> | |
30179 | ||
30180 | * config/arm/thumb2.md: | |
30181 | (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it. | |
30182 | (*thumb_mov_notscc): Ditto. | |
30183 | ||
30184 | 2018-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> | |
30185 | ||
30186 | PR target/84154 | |
30187 | * config/rs6000/rs6000.md (su code attribute): Use "u" for | |
30188 | unsigned_fix, not "s". | |
30189 | ||
30190 | 2018-02-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
30191 | ||
30192 | * configure.ac (gcc_fn_eh_frame_ro): New function. | |
30193 | (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for | |
30194 | correct .eh_frame permissions. | |
30195 | * configure: Regenerate. | |
30196 | ||
30197 | 2018-02-06 Andrew Jenner <andrew@codeourcery.com> | |
30198 | ||
30199 | * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove | |
30200 | irrelevant options. | |
30201 | ||
30202 | 2018-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
30203 | ||
30204 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
30205 | Display warning message for -mno-speculate-indirect-jumps. | |
30206 | ||
30207 | 2018-02-06 Andrew Jenner <andrew@codesourcery.com> | |
30208 | ||
30209 | * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add | |
30210 | Undocumented. | |
30211 | * config/powerpcspe/sysv4.opt (mbit-align): Likewise. | |
30212 | ||
30213 | 2018-02-06 Aldy Hernandez <aldyh@redhat.com> | |
30214 | ||
30215 | PR tree-optimization/84225 | |
30216 | * tree-eh.c (find_trapping_overflow): Only call | |
30217 | operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P. | |
30218 | ||
30219 | 2018-02-06 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
30220 | ||
30221 | PR target/84145 | |
30222 | * config/i386/i386.c: Reimplement the check of possible options | |
30223 | -mibt/-mshstk conbination. Change error messages. | |
30224 | * doc/invoke.texi: Fix a typo: remove extra '='. | |
30225 | ||
30226 | 2018-02-06 Marek Polacek <polacek@redhat.com> | |
30227 | ||
30228 | PR tree-optimization/84228 | |
30229 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements. | |
30230 | ||
30231 | 2018-02-06 Tamar Christina <tamar.christina@arm.com> | |
30232 | ||
30233 | PR target/82641 | |
30234 | * config/arm/arm.c (arm_print_asm_arch_directives): Record already | |
30235 | emitted arch directives. | |
30236 | * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and | |
30237 | __ARM_FEATURE_COPROC before changing architectures. | |
30238 | ||
30239 | 2018-02-06 Richard Biener <rguenther@suse.de> | |
30240 | ||
30241 | * config/i386/i386.c (print_reg): Fix typo. | |
30242 | (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll. | |
30243 | ||
30244 | 2018-02-06 Eric Botcazou <ebotcazou@adacore.com> | |
30245 | ||
30246 | * configure: Regenerate. | |
30247 | ||
30248 | 2018-02-05 Martin Sebor <msebor@redhat.com> | |
30249 | ||
30250 | PR tree-optimization/83369 | |
30251 | * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print | |
30252 | inlining context. | |
30253 | ||
30254 | 2018-02-05 Martin Liska <mliska@suse.cz> | |
30255 | ||
30256 | * doc/invoke.texi: Cherry-pick upstream r323995. | |
30257 | ||
30258 | 2018-02-05 Richard Sandiford <richard.sandiford@linaro.org> | |
30259 | ||
30260 | * ira.c (ira_init_register_move_cost): Adjust comment. | |
30261 | ||
30262 | 2018-02-05 Martin Liska <mliska@suse.cz> | |
30263 | ||
30264 | PR gcov-profile/84137 | |
30265 | * doc/gcov.texi: Fix typo in documentation. | |
30266 | ||
30267 | 2018-02-05 Martin Liska <mliska@suse.cz> | |
30268 | ||
30269 | PR gcov-profile/83879 | |
30270 | * doc/gcov.texi: Document necessity of --dynamic-list-data when | |
30271 | using dlopen functionality. | |
30272 | ||
30273 | 2018-02-05 Olga Makhotina <olga.makhotina@intel.com> | |
30274 | ||
30275 | * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd, | |
30276 | _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss, | |
30277 | _mm_maskz_range_ss, _mm_mask_range_round_ss, | |
30278 | _mm_maskz_range_round_ss): New intrinsics. | |
30279 | (__builtin_ia32_rangesd128_round) | |
30280 | (__builtin_ia32_rangess128_round): Remove. | |
30281 | (__builtin_ia32_rangesd128_mask_round, | |
30282 | __builtin_ia32_rangess128_mask_round): New builtins. | |
30283 | * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round, | |
30284 | __builtin_ia32_rangess128_round): Remove. | |
30285 | (__builtin_ia32_rangesd128_mask_round, | |
30286 | __builtin_ia32_rangess128_mask_round): New builtins. | |
30287 | * config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ... | |
30288 | (ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this. | |
30289 | ((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>" | |
30290 | "<round_saeonly_constraint>")): Changed to ... | |
30291 | ((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>" | |
30292 | "<round_saeonly_scalar_constraint>")): ... this. | |
30293 | ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| | |
30294 | %0, %1, %2<round_saeonly_op4>, %3}"): Changed to ... | |
30295 | ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2, | |
30296 | %1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1, | |
30297 | %2<round_saeonly_scalar_mask_op4>, %3}"): ... this. | |
30298 | ||
30299 | 2018-02-02 Andrew Jenner <andrew@codesourcery.com> | |
30300 | ||
30301 | * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant | |
30302 | options. | |
30303 | * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value): | |
30304 | Remove all values except native, 8540 and 8548. | |
30305 | ||
30306 | 2018-02-02 H.J. Lu <hongjiu.lu@intel.com> | |
30307 | ||
30308 | * config/i386/i386.c (ix86_output_function_return): Pass | |
30309 | INVALID_REGNUM, instead of -1, as invalid register number to | |
30310 | indirect_thunk_name and output_indirect_thunk. | |
30311 | ||
30312 | 2018-02-02 Julia Koval <julia.koval@intel.com> | |
30313 | ||
30314 | * config.gcc: Add -march=icelake. | |
30315 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. | |
30316 | * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. | |
30317 | * config/i386/i386.c (processor_costs): Add m_ICELAKE. | |
30318 | (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, | |
30319 | PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. | |
30320 | (processor_target_table): Add icelake. | |
30321 | (ix86_option_override_internal): Handle new PTAs. | |
30322 | (get_builtin_code_for_version): Handle icelake. | |
30323 | (M_INTEL_COREI7_ICELAKE): New. | |
30324 | (fold_builtin_cpu): Handle icelake. | |
30325 | * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. | |
30326 | * doc/invoke.texi: Add -march=icelake. | |
30327 | ||
30328 | 2018-02-02 Julia Koval <julia.koval@intel.com> | |
30329 | ||
30330 | * config/i386/i386.c (ix86_option_override_internal): Change flags type | |
30331 | to wide_int_bitmask. | |
30332 | * wide-int-bitmask.h: New. | |
30333 | ||
30334 | 2018-02-02 Igor Tsimbalist <igor.v.tsimbalist@intel.com> | |
30335 | ||
30336 | PR target/84066 | |
30337 | * config/i386/i386.md: Replace Pmode with word_mode in | |
30338 | builtin_setjmp_setup and builtin_longjmp to support x32. | |
30339 | ||
30340 | 2018-02-01 Peter Bergner <bergner@vnet.ibm.com> | |
30341 | ||
30342 | PR target/56010 | |
30343 | PR target/83743 | |
30344 | * config/rs6000/driver-rs6000.c: #include "diagnostic.h". | |
30345 | #include "opts.h". | |
30346 | (rs6000_supported_cpu_names): New static variable. | |
30347 | (linux_cpu_translation_table): Likewise. | |
30348 | (elf_platform) <cpu>: Define new static variable and use it. | |
30349 | Translate kernel AT_PLATFORM name to canonical name if needed. | |
30350 | Error if platform name is unknown. | |
30351 | ||
30352 | 2018-02-01 Aldy Hernandez <aldyh@redhat.com> | |
30353 | ||
30354 | PR target/84089 | |
30355 | * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. | |
30356 | ||
30357 | 2018-02-01 Jeff Law <law@redhat.com> | |
30358 | ||
30359 | PR target/84128 | |
30360 | * config/i386/i386.c (release_scratch_register_on_entry): Add new | |
30361 | OFFSET and RELEASE_VIA_POP arguments. Use SP+OFFSET to restore | |
30362 | the scratch if RELEASE_VIA_POP is false. | |
30363 | (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE. | |
30364 | If we have to save a temporary register, decrement SIZE appropriately. | |
30365 | Pass new arguments to release_scratch_register_on_entry. | |
30366 | (ix86_adjust_stack_and_probe): Likewise. | |
30367 | (ix86_emit_probe_stack_range): Pass new arguments to | |
30368 | release_scratch_register_on_entry. | |
30369 | ||
30370 | 2018-02-01 Uros Bizjak <ubizjak@gmail.com> | |
30371 | ||
30372 | PR rtl-optimization/84157 | |
30373 | * combine.c (change_zero_ext): Use REG_P predicate in | |
30374 | front of HARD_REGISTER_P predicate. | |
30375 | ||
30376 | 2018-02-01 Georg-Johann Lay <avr@gjlay.de> | |
30377 | ||
30378 | * config/avr/avr.c (avr_option_override): Move disabling of | |
30379 | -fdelete-null-pointer-checks to... | |
30380 | * common/config/avr/avr-common.c (avr_option_optimization_table): | |
30381 | ...here. | |
30382 | ||
30383 | 2018-02-01 Richard Sandiford <richard.sandiford@linaro.org> | |
30384 | ||
30385 | PR tree-optimization/81635 | |
30386 | * tree-data-ref.c (split_constant_offset_1): For types that | |
30387 | wrap on overflow, try to use range info to prove that wrapping | |
30388 | cannot occur. | |
30389 | ||
30390 | 2018-02-01 Renlin Li <renlin.li@arm.com> | |
30391 | ||
30392 | PR target/83370 | |
30393 | * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle | |
30394 | TAILCALL_ADDR_REGS. | |
30395 | (aarch64_register_move_cost): Likewise. | |
30396 | * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to | |
30397 | TAILCALL_ADDR_REGS. | |
30398 | (REG_CLASS_NAMES): Likewise. | |
30399 | (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to | |
30400 | TAILCALL_ADDR_REGS. Remove IP registers. | |
30401 | * config/aarch64/aarch64.md (Ucs): Update register constraint. | |
30402 | ||
30403 | 2018-02-01 Richard Biener <rguenther@suse.de> | |
30404 | ||
30405 | * domwalk.h (dom_walker::dom_walker): Add additional constructor | |
30406 | for specifying RPO order and allow NULL for that. | |
30407 | * domwalk.c (dom_walker::dom_walker): Likewise. | |
30408 | (dom_walker::walk): Handle NULL RPO order. | |
30409 | * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children | |
30410 | in RPO order. | |
30411 | (rewrite_update_dom_walker): Likewise. | |
30412 | (mark_def_dom_walker): Likewise. | |
30413 | ||
30414 | 2018-02-01 Richard Sandiford <richard.sandiford@linaro.org> | |
30415 | ||
30416 | * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move) | |
30417 | (aarch64_maybe_expand_sve_subreg_move): Declare. | |
30418 | * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec. | |
30419 | * config/aarch64/predicates.md (aarch64_any_register_operand): New | |
30420 | predicate. | |
30421 | * config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves | |
30422 | that are semantically a reverse operation. | |
30423 | (*aarch64_sve_mov<mode>_subreg_be): New pattern. | |
30424 | * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): | |
30425 | (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New | |
30426 | functions. | |
30427 | (aarch64_can_change_mode_class): For big-endian, forbid changes | |
30428 | between two SVE modes if they have different element sizes. | |
30429 | ||
30430 | 2018-02-01 Richard Sandiford <richard.sandiford@linaro.org> | |
30431 | ||
30432 | * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer | |
30433 | the TImode handling for big-endian targets. | |
30434 | ||
30435 | 2018-02-01 Richard Sandiford <richard.sandiford@linaro.org> | |
30436 | ||
30437 | * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with... | |
30438 | (*sve_ld1rq<Vesize>): ... this new pattern. Handle all element sizes, | |
30439 | not just bytes. | |
30440 | * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate): | |
30441 | Remove BSWAP handing for big-endian targets and use the form of | |
30442 | LD1RQ appropariate for the mode. | |
30443 | ||
30444 | 2018-02-01 Richard Sandiford <richard.sandiford@linaro.org> | |
30445 | ||
30446 | * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle | |
30447 | all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single | |
30448 | duplicated element. | |
30449 | ||
30450 | 2018-02-01 Richard Sandiford <richard.sandiford@linaro.org> | |
30451 | ||
30452 | PR tearget/83845 | |
30453 | * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten | |
30454 | check for operands that need to go through aarch64_sve_reload_be. | |
30455 | ||
30456 | 2018-02-01 Jakub Jelinek <jakub@redhat.com> | |
30457 | ||
30458 | PR tree-optimization/81661 | |
30459 | PR tree-optimization/84117 | |
30460 | * tree-eh.h (rewrite_to_non_trapping_overflow): Declare. | |
30461 | * tree-eh.c: Include gimplify.h. | |
30462 | (find_trapping_overflow, replace_trapping_overflow, | |
30463 | rewrite_to_non_trapping_overflow): New functions. | |
30464 | * tree-vect-loop.c: Include tree-eh.h. | |
30465 | (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow. | |
30466 | * tree-data-ref.c: Include tree-eh.h. | |
30467 | (get_segment_min_max): Use rewrite_to_non_trapping_overflow. | |
30468 | ||
30469 | 2018-01-31 Uros Bizjak <ubizjak@gmail.com> | |
30470 | ||
30471 | PR rtl-optimization/84123 | |
30472 | * combine.c (change_zero_ext): Check if hard register satisfies | |
30473 | can_change_dest_mode before calling gen_lowpart_SUBREG. | |
30474 | ||
30475 | 2018-01-31 Vladimir Makarov <vmakarov@redhat.com> | |
30476 | ||
30477 | PR target/82444 | |
30478 | * ira.c (ira_init_register_move_cost): Remove assert. | |
30479 | ||
30480 | 2018-01-31 Eric Botcazou <ebotcazou@adacore.com> | |
30481 | ||
30482 | PR rtl-optimization/84071 | |
30483 | * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case. | |
30484 | * doc/tm.texi: Regenerate. | |
30485 | ||
30486 | 2018-01-31 Richard Biener <rguenther@suse.de> | |
30487 | ||
30488 | PR tree-optimization/84132 | |
30489 | * tree-data-ref.c (analyze_miv_subscript): Properly | |
30490 | check whether evolution_function_is_affine_multivariate_p | |
30491 | before calling gcd_of_steps_may_divide_p. | |
30492 | ||
30493 | 2018-01-31 Julia Koval <julia.koval@intel.com> | |
30494 | ||
30495 | PR target/83618 | |
30496 | * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. | |
30497 | * config/i386/i386.md (rdpid_rex64) New. | |
30498 | (rdpid): Make 32bit only. | |
30499 | ||
30500 | 2018-01-29 Aldy Hernandez <aldyh@redhat.com> | |
30501 | ||
30502 | PR lto/84105 | |
30503 | * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with | |
30504 | an IDENTIFIER_NODE for FUNCTION_TYPE's. | |
30505 | ||
30506 | 2018-01-31 Eric Botcazou <ebotcazou@adacore.com> | |
30507 | ||
30508 | Revert | |
30509 | 2018-01-12 Eric Botcazou <ebotcazou@adacore.com> | |
30510 | ||
30511 | * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. | |
30512 | ||
30513 | 2018-01-31 Eric Botcazou <ebotcazou@adacore.com> | |
30514 | ||
30515 | PR rtl-optimization/84071 | |
30516 | * combine.c (record_dead_and_set_regs_1): Record the source unmodified | |
30517 | for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. | |
30518 | ||
30519 | 2018-01-31 Claudiu Zissulescu <claziss@synopsys.com> | |
30520 | ||
30521 | * config/arc/arc.c (arc_handle_aux_attribute): New function. | |
30522 | (arc_attribute_table): Add 'aux' attribute. | |
30523 | (arc_in_small_data_p): Consider aux like variables. | |
30524 | (arc_is_aux_reg_p): New function. | |
30525 | (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. | |
30526 | (arc_get_aux_arg): New function. | |
30527 | (prepare_move_operands): Handle aux-register access. | |
30528 | (arc_handle_aux_attribute): New function. | |
30529 | * doc/extend.texi (ARC Variable attributes): Add subsection. | |
30530 | ||
30531 | 2018-01-31 Claudiu Zissulescu <claziss@synopsys.com> | |
30532 | ||
30533 | * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. | |
30534 | * config/arc/arc.c (arc_handle_uncached_attribute): New function. | |
30535 | (arc_attribute_table): Add 'uncached' attribute. | |
30536 | (arc_print_operand): Print '.di' flag for uncached memory | |
30537 | accesses. | |
30538 | (arc_in_small_data_p): Do not consider for small data the uncached | |
30539 | types. | |
30540 | (arc_is_uncached_mem_p): New function. | |
30541 | * config/arc/predicates.md (compact_store_memory_operand): Check | |
30542 | for uncached memory accesses. | |
30543 | (nonvol_nonimm_operand): Likewise. | |
30544 | * doc/extend.texi (ARC Type Attribute): New subsection. | |
30545 | ||
30546 | 2018-01-31 Jakub Jelinek <jakub@redhat.com> | |
30547 | ||
30548 | PR c/84100 | |
30549 | * common.opt (falign-functions=, falign-jumps=, falign-labels=, | |
30550 | falign-loops=): Add Optimization flag. | |
30551 | ||
30552 | 2018-01-30 Jeff Law <law@redhat.com> | |
30553 | ||
30554 | PR target/84064 | |
30555 | * i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument | |
30556 | INT_REGISTERS_SAVED. Check it prior to calling | |
30557 | get_scratch_register_on_entry. | |
30558 | (ix86_adjust_stack_and_probe): Similarly. | |
30559 | (ix86_emit_probe_stack_range): Similarly. | |
30560 | (ix86_expand_prologue): Corresponding changes. | |
30561 | ||
30562 | 2018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
30563 | ||
30564 | PR target/40411 | |
30565 | * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, | |
30566 | -std=iso9899:199409 instead of -pedantic to select values-Xc.o. | |
30567 | ||
30568 | 2018-01-30 Vladimir Makarov <vmakarov@redhat.com> | |
30569 | ||
30570 | PR target/84112 | |
30571 | * lra-constraints.c (curr_insn_transform): Process AND in the | |
30572 | address. | |
30573 | ||
30574 | 2018-01-30 Jakub Jelinek <jakub@redhat.com> | |
30575 | ||
30576 | PR rtl-optimization/83986 | |
30577 | * sched-deps.c (sched_analyze_insn): For frame related insns, add anti | |
30578 | dependence against last_pending_memory_flush in addition to | |
30579 | pending_jump_insns. | |
30580 | ||
30581 | 2018-01-30 Alexandre Oliva <aoliva@redhat.com> | |
30582 | ||
30583 | PR tree-optimization/81611 | |
30584 | * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening | |
30585 | copies. | |
30586 | ||
30587 | 2018-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
30588 | ||
30589 | PR target/83758 | |
30590 | * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return | |
30591 | a reg rtx. | |
30592 | ||
30593 | 2018-01-30 Richard Biener <rguenther@suse.de> | |
30594 | Jakub Jelinek <jakub@redhat.com> | |
30595 | ||
30596 | PR tree-optimization/84111 | |
30597 | * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip | |
30598 | inner loops added during recursion, as they don't have up-to-date | |
30599 | SSA form. | |
30600 | ||
30601 | 2018-01-30 Jan Hubicka <hubicka@ucw.cz> | |
30602 | ||
30603 | PR ipa/81360 | |
30604 | * ipa-inline.c (can_inline_edge_p): Break out late tests to... | |
30605 | (can_inline_edge_by_limits_p): ... here. | |
30606 | (can_early_inline_edge_p, check_callers, | |
30607 | update_caller_keys, update_callee_keys, recursive_inlining, | |
30608 | add_new_edges_to_heap, speculation_useful_p, | |
30609 | inline_small_functions, | |
30610 | inline_small_functions, flatten_function, | |
30611 | inline_to_all_callers_1): Update. | |
30612 | ||
30613 | 2018-01-30 Jan Hubicka <hubicka@ucw.cz> | |
30614 | ||
30615 | * profile-count.c (profile_count::combine_with_ipa_count): Handle | |
30616 | zeros correctly. | |
30617 | ||
30618 | 2018-01-30 Richard Biener <rguenther@suse.de> | |
30619 | ||
30620 | PR tree-optimization/83008 | |
30621 | * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost | |
30622 | invariant and constant vector uses in stmts when they need | |
30623 | more than one stmt. | |
30624 | ||
30625 | 2018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
30626 | ||
30627 | PR bootstrap/84017 | |
30628 | * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. | |
30629 | * configure: Regenerate. | |
30630 | ||
30631 | 2018-01-30 Richard Sandiford <richard.sandiford@linaro.org> | |
30632 | ||
30633 | * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New | |
30634 | pattern. | |
30635 | (*vec_extract<mode><Vel>_v128): Require a nonzero lane number. | |
30636 | Use gen_rtx_REG rather than gen_lowpart. | |
30637 | ||
30638 | 2018-01-30 Richard Sandiford <richard.sandiford@linaro.org> | |
30639 | ||
30640 | * lra-constraints.c (match_reload): Use subreg_lowpart_offset | |
30641 | rather than 0 when creating partial subregs. | |
30642 | ||
30643 | 2018-01-30 Richard Sandiford <richard.sandiford@linaro.org> | |
30644 | ||
30645 | * vec-perm-indices.c (vec_perm_indices::series_p): Give examples | |
30646 | of usage. | |
30647 | ||
30648 | 2018-01-29 Michael Meissner <meissner@linux.vnet.ibm.com> | |
30649 | ||
30650 | PR target/81550 | |
30651 | * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode | |
30652 | and SFmode can go in Altivec registers (-mcpu=power7 for DFmode, | |
30653 | -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY | |
30654 | flags. This restores the settings used before the 2017-07-24. | |
30655 | Turning off pre increment/decrement/modify allows IVOPTS to | |
30656 | optimize DF/SF loops where the index is an int. | |
30657 | ||
30658 | 2018-01-29 Richard Biener <rguenther@suse.de> | |
30659 | Kelvin Nilsen <kelvin@gcc.gnu.org> | |
30660 | ||
30661 | PR bootstrap/80867 | |
30662 | * tree-vect-stmts.c (vectorizable_call): Don't call | |
30663 | targetm.vectorize_builtin_md_vectorized_function if callee is | |
30664 | NULL. | |
30665 | ||
30666 | 2018-01-22 Carl Love <cel@us.ibm.com> | |
30667 | ||
30668 | * doc/extend.tex: Fix typo in second arg in | |
30669 | __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}. | |
30670 | ||
30671 | 2018-01-29 Richard Biener <rguenther@suse.de> | |
30672 | ||
30673 | PR tree-optimization/84086 | |
30674 | * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. | |
30675 | (flush_ssaname_freelist): When SSA names were released reset | |
30676 | the SCEV hash table. | |
30677 | ||
30678 | 2018-01-29 Richard Biener <rguenther@suse.de> | |
30679 | ||
30680 | PR tree-optimization/84057 | |
30681 | * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already | |
30682 | removed paths when removing edges. | |
30683 | ||
30684 | 2018-01-27 H.J. Lu <hongjiu.lu@intel.com> | |
30685 | ||
30686 | * doc/invoke.texi: Replace -mfunction-return==@var{choice} with | |
30687 | -mfunction-return=@var{choice}. | |
30688 | ||
30689 | 2018-01-27 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
30690 | ||
30691 | PR diagnostic/84034 | |
30692 | * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace): | |
30693 | Handle CR like TAB. | |
30694 | (layout::print_source_line): Likewise. | |
30695 | (test_get_line_width_without_trailing_whitespace): Add test cases. | |
30696 | ||
30697 | 2018-01-27 Jakub Jelinek <jakub@redhat.com> | |
30698 | ||
30699 | PR middle-end/84040 | |
30700 | * sched-deps.c (sched_macro_fuse_insns): Return immediately for | |
30701 | debug insns. | |
30702 | ||
30703 | 2018-01-26 Jim Wilson <jimw@sifive.com> | |
30704 | ||
30705 | * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. | |
30706 | ||
30707 | * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs | |
30708 | specified. | |
30709 | ||
30710 | 2018-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
30711 | ||
30712 | * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS | |
30713 | and CMP + SUB-immediate -> SUBS. | |
30714 | ||
30715 | 2018-01-26 Martin Sebor <msebor@redhat.com> | |
30716 | ||
30717 | PR tree-optimization/83896 | |
30718 | * tree-ssa-strlen.c (get_string_len): Rename... | |
30719 | (get_string_cst_length): ...to this. Return HOST_WIDE_INT. | |
30720 | Avoid assuming length is constant. | |
30721 | (handle_char_store): Use HOST_WIDE_INT for string length. | |
30722 | ||
30723 | 2018-01-26 Uros Bizjak <ubizjak@gmail.com> | |
30724 | ||
30725 | PR target/81763 | |
30726 | * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber | |
30727 | to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives. | |
30728 | ||
30729 | 2018-01-26 Richard Biener <rguenther@suse.de> | |
30730 | ||
30731 | PR rtl-optimization/84003 | |
30732 | * dse.c (record_store): Only record redundant stores when | |
30733 | the earlier store aliases at least all accesses the later one does. | |
30734 | ||
30735 | 2018-01-26 Jakub Jelinek <jakub@redhat.com> | |
30736 | ||
30737 | PR rtl-optimization/83985 | |
30738 | * dce.c (deletable_insn_p): Return false for separate shrink wrapping | |
30739 | REG_CFA_RESTORE insns. | |
30740 | (delete_unmarked_insns): Don't ignore separate shrink wrapping | |
30741 | REG_CFA_RESTORE insns here. | |
30742 | ||
30743 | PR c/83989 | |
30744 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't | |
30745 | use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR. | |
30746 | ||
30747 | 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> | |
30748 | ||
30749 | * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3. | |
30750 | * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... . | |
30751 | (arc_init): Likewise. | |
30752 | (arc_override_options): Likewise. | |
30753 | (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune | |
30754 | value. | |
30755 | (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn | |
30756 | support. | |
30757 | * config/arc/arc.h (TARGET_DBNZ): Define. | |
30758 | * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to | |
30759 | properly set the tune attribute. | |
30760 | (dbnz): Use TARGET_DBNZ guard. | |
30761 | * config/arc/arc.opt (mtune): Add core3 option. | |
30762 | ||
30763 | 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> | |
30764 | ||
30765 | * config/arc/arc.c (arc_delegitimize_address_0): Refactored to | |
30766 | recognize new pic like addresses. | |
30767 | (arc_delegitimize_address): Clean up. | |
30768 | ||
30769 | 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> | |
30770 | ||
30771 | * config/arc/arc-arches.def: Option mrf16 valid for all | |
30772 | architectures. | |
30773 | * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. | |
30774 | * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. | |
30775 | * config/arc/arc-options.def (FL_RF16): Add mrf16 option. | |
30776 | * config/arc/arc-tables.opt: Regenerate. | |
30777 | * config/arc/arc.c (arc_conditional_register_usage): Handle | |
30778 | reduced register file case. | |
30779 | (arc_file_start): Set must have build attributes. | |
30780 | * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using | |
30781 | mrf16 option value. | |
30782 | * config/arc/arc.opt (mrf16): Add new option. | |
30783 | * config/arc/elf.h (ATTRIBUTE_PCS): Define. | |
30784 | * config/arc/genmultilib.awk: Handle new mrf16 option. | |
30785 | * config/arc/linux.h (ATTRIBUTE_PCS): Define. | |
30786 | * config/arc/t-multilib: Regenerate. | |
30787 | * doc/invoke.texi (ARC Options): Document mrf16 option. | |
30788 | ||
30789 | 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> | |
30790 | ||
30791 | * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. | |
30792 | * config/arc/arc.c (arc_handle_secure_attribute): New function. | |
30793 | (arc_attribute_table): Add 'secure_call' attribute. | |
30794 | (arc_print_operand): Print secure call operand. | |
30795 | (arc_function_ok_for_sibcall): Don't optimize tail calls when | |
30796 | secure. | |
30797 | (arc_is_secure_call_p): New function. * config/arc/arc.md | |
30798 | (call_i): Add support for sjli instruction. | |
30799 | (call_value_i): Likewise. | |
30800 | * config/arc/constraints.md (Csc): New constraint. | |
30801 | ||
30802 | 2018-01-26 Claudiu Zissulescu <claziss@synopsys.com> | |
30803 | John Eric Martin <John.Martin@emmicro-us.com> | |
30804 | ||
30805 | * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. | |
30806 | * config/arc/arc.c (_arc_jli_section): New struct. | |
30807 | (arc_jli_section): New type. | |
30808 | (rc_jli_sections): New static variable. | |
30809 | (arc_handle_jli_attribute): New function. | |
30810 | (arc_attribute_table): Add jli_always and jli_fixed attribute. | |
30811 | (arc_file_end): New function. | |
30812 | (TARGET_ASM_FILE_END): Define. | |
30813 | (arc_print_operand): Reuse 'S' letter for JLI output instruction. | |
30814 | (arc_add_jli_section): New function. | |
30815 | (jli_call_scan): Likewise. | |
30816 | (arc_reorg): Call jli_call_scan. | |
30817 | (arc_output_addsi): Remove 'S' from printing asm operand. | |
30818 | (arc_is_jli_call_p): New function. | |
30819 | * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm | |
30820 | operand. | |
30821 | (movhi_insn): Likewise. | |
30822 | (movsi_insn): Likewise. | |
30823 | (movsi_set_cc_insn): Likewise. | |
30824 | (loadqi_update): Likewise. | |
30825 | (load_zeroextendqisi_update): Likewise. | |
30826 | (load_signextendqisi_update): Likewise. | |
30827 | (loadhi_update): Likewise. | |
30828 | (load_zeroextendhisi_update): Likewise. | |
30829 | (load_signextendhisi_update): Likewise. | |
30830 | (loadsi_update): Likewise. | |
30831 | (loadsf_update): Likewise. | |
30832 | (movsicc_insn): Likewise. | |
30833 | (bset_insn): Likewise. | |
30834 | (bxor_insn): Likewise. | |
30835 | (bclr_insn): Likewise. | |
30836 | (bmsk_insn): Likewise. | |
30837 | (bicsi3_insn): Likewise. | |
30838 | (cmpsi_cc_c_insn): Likewise. | |
30839 | (movsi_ne): Likewise. | |
30840 | (movsi_cond_exec): Likewise. | |
30841 | (clrsbsi2): Likewise. | |
30842 | (norm_f): Likewise. | |
30843 | (normw): Likewise. | |
30844 | (swap): Likewise. | |
30845 | (divaw): Likewise. | |
30846 | (flag): Likewise. | |
30847 | (sr): Likewise. | |
30848 | (kflag): Likewise. | |
30849 | (ffs): Likewise. | |
30850 | (ffs_f): Likewise. | |
30851 | (fls): Likewise. | |
30852 | (call_i): Remove 'S' asm letter, add jli instruction. | |
30853 | (call_value_i): Likewise. | |
30854 | * config/arc/arc.op (mjli-always): New option. | |
30855 | * config/arc/constraints.md (Cji): New constraint. | |
30856 | * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm | |
30857 | operand. | |
30858 | (subsf3_fpx): Likewise. | |
30859 | (mulsf3_fpx): Likewise. | |
30860 | * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing | |
30861 | asm operand. | |
30862 | * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' | |
30863 | function attrbutes. | |
30864 | * doc/invoke.texi (ARC): Document mjli-always option. | |
30865 | ||
30866 | 2018-01-26 Sebastian Perta <sebastian.perta@renesas.com> | |
30867 | ||
30868 | * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const | |
30869 | avoid addition with 0 and use incw and decw where possible. | |
30870 | ||
30871 | 2018-01-26 Richard Biener <rguenther@suse.de> | |
30872 | ||
30873 | PR tree-optimization/81082 | |
30874 | * fold-const.c (fold_plusminus_mult_expr): Do not perform the | |
30875 | association if it requires casting to unsigned. | |
30876 | * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived | |
30877 | from fold_plusminus_mult_expr to catch important cases late when | |
30878 | range info is available. | |
30879 | ||
30880 | 2018-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
30881 | ||
30882 | * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. | |
30883 | * configure.ac (hidden_linkonce): New test. | |
30884 | * configure: Regenerate. | |
30885 | * config.in: Regenerate. | |
30886 | ||
30887 | 2018-01-26 Julia Koval <julia.koval@intel.com> | |
30888 | ||
30889 | * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, | |
30890 | _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, | |
30891 | _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, | |
30892 | _mm_mask_bitshuffle_epi64_mask): Fix type. | |
30893 | * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, | |
30894 | USI_FTYPE_V4DI_V4DI_USI): Remove. | |
30895 | * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, | |
30896 | __builtin_ia32_vpshufbitqmb256_mask, | |
30897 | __builtin_ia32_vpshufbitqmb128_mask): Fix types. | |
30898 | * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. | |
30899 | * config/i386/sse.md (VI1_AVX512VLBW): Change types. | |
30900 | ||
30901 | 2018-01-26 Alan Modra <amodra@gmail.com> | |
30902 | ||
30903 | PR target/84033 | |
30904 | * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude | |
30905 | UNSPEC_VBPERMQ. Sort other unspecs. | |
30906 | ||
30907 | 2018-01-25 David Edelsohn <dje.gcc@gmail.com> | |
30908 | ||
30909 | * doc/invoke.texi (PowerPC Options): Document 'native' cpu type. | |
30910 | ||
30911 | 2018-01-25 Jan Hubicka <hubicka@ucw.cz> | |
30912 | ||
30913 | PR middle-end/83055 | |
30914 | * predict.c (drop_profile): Do not push/pop cfun; update also | |
30915 | node->count. | |
30916 | (handle_missing_profiles): Fix logic looking for zero profiles. | |
30917 | ||
30918 | 2018-01-25 Jakub Jelinek <jakub@redhat.com> | |
30919 | ||
30920 | PR middle-end/83977 | |
30921 | * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature | |
30922 | on functions with #pragma omp declare simd or functions with simd | |
30923 | attribute. | |
30924 | * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. | |
30925 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
30926 | Remove trailing \n from warning_at calls. | |
30927 | ||
30928 | 2018-01-25 Tom de Vries <tom@codesourcery.com> | |
30929 | ||
30930 | PR target/84028 | |
30931 | * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call | |
30932 | for neutered workers. | |
30933 | ||
30934 | 2018-01-24 Joseph Myers <joseph@codesourcery.com> | |
30935 | ||
30936 | PR target/68467 | |
30937 | * config/m68k/m68k.c (m68k_promote_function_mode): New function. | |
30938 | (TARGET_PROMOTE_FUNCTION_MODE): New macro. | |
30939 | ||
30940 | 2018-01-24 Jeff Law <law@redhat.com> | |
30941 | ||
30942 | PR target/83994 | |
30943 | * i386.c (get_probe_interval): Move to earlier point. | |
30944 | (ix86_compute_frame_layout): If -fstack-clash-protection and | |
30945 | the frame is larger than the probe interval, then use pushes | |
30946 | to save registers rather than reg->mem moves. | |
30947 | (ix86_expand_prologue): Remove conditional for int_registers_saved | |
30948 | assertion. | |
30949 | ||
30950 | 2018-01-24 Vladimir Makarov <vmakarov@redhat.com> | |
30951 | ||
30952 | PR target/84014 | |
30953 | * ira-build.c (setup_min_max_allocno_live_range_point): Set up | |
30954 | min/max for never referenced object. | |
30955 | ||
30956 | 2018-01-24 Jakub Jelinek <jakub@redhat.com> | |
30957 | ||
30958 | PR middle-end/83977 | |
30959 | * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN | |
30960 | here. | |
30961 | * omp-low.c (create_omp_child_function): Remove "omp declare simd" | |
30962 | attributes from DECL_ATTRIBUTES (decl) without affecting | |
30963 | DECL_ATTRIBUTES (current_function_decl). | |
30964 | * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL | |
30965 | functions with non-NULL DECL_ABSTRACT_ORIGIN. | |
30966 | ||
30967 | 2018-01-24 Richard Sandiford <richard.sandiford@linaro.org> | |
30968 | ||
30969 | PR tree-optimization/83979 | |
30970 | * fold-const.c (fold_comparison): Use constant_boolean_node | |
30971 | instead of boolean_{true,false}_node. | |
30972 | ||
30973 | 2018-01-24 Jan Hubicka <hubicka@ucw.cz> | |
30974 | ||
30975 | * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls | |
30976 | with zero counts. | |
30977 | ||
30978 | 2018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
30979 | ||
30980 | * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): | |
30981 | Simplify the clause that sets the length attribute. | |
30982 | (*call_value_indirect_nonlocal_sysv<mode>): Likewise. | |
30983 | (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the | |
30984 | clause that sets the length attribute. | |
30985 | (*sibcall_value_nonlocal_sysv<mode>): Likewise. | |
30986 | ||
30987 | 2018-01-24 Tom de Vries <tom@codesourcery.com> | |
30988 | ||
30989 | PR target/83589 | |
30990 | * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. | |
30991 | (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. | |
30992 | Add strict parameter. | |
30993 | (prevent_branch_around_nothing): Insert dummy insn between branch to | |
30994 | label and label with no ptx insn inbetween. | |
30995 | * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. | |
30996 | ||
30997 | 2018-01-24 Tom de Vries <tom@codesourcery.com> | |
30998 | ||
30999 | PR target/81352 | |
31000 | * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call | |
31001 | for neutered threads in warp. | |
31002 | * config/nvptx/nvptx.md (define_insn "exit"): New insn. | |
31003 | ||
31004 | 2018-01-24 Richard Biener <rguenther@suse.de> | |
31005 | ||
31006 | PR tree-optimization/83176 | |
31007 | * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } | |
31008 | operands. | |
31009 | ||
31010 | 2018-01-24 Richard Biener <rguenther@suse.de> | |
31011 | ||
31012 | PR tree-optimization/82819 | |
31013 | * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid | |
31014 | code generating pluses that are no-ops in the target precision. | |
31015 | ||
31016 | 2018-01-24 Richard Biener <rguenther@suse.de> | |
31017 | ||
31018 | PR middle-end/84000 | |
31019 | * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. | |
31020 | ||
31021 | 2018-01-23 Jan Hubicka <hubicka@ucw.cz> | |
31022 | ||
31023 | * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count | |
31024 | to merge probabilities. | |
31025 | * predict.c (probably_never_executed): Also mark as cold functions | |
31026 | with global 0 profile and guessed local profile. | |
31027 | * profile-count.c (profile_probability::combine_with_count): New | |
31028 | member function. | |
31029 | * profile-count.h (profile_probability::operator*, | |
31030 | profile_probability::operator*=, profile_probability::operator/, | |
31031 | profile_probability::operator/=): Reduce precision to adjusted | |
31032 | and set value to guessed on contradictory divisions. | |
31033 | (profile_probability::combine_with_freq): Remove. | |
31034 | (profile_probability::combine_wiht_count): Declare. | |
31035 | (profile_count::force_nonzero):: Set to adjusted. | |
31036 | (profile_count::probability_in):: Set quality to adjusted. | |
31037 | * tree-ssa-tail-merge.c (replace_block_by): Use | |
31038 | combine_with_count. | |
31039 | ||
31040 | 2018-01-23 Andrew Waterman <andrew@sifive.com> | |
31041 | Jim Wilson <jimw@sifive.com> | |
31042 | ||
31043 | * config/riscv/riscv.c (riscv_stack_boundary): New. | |
31044 | (riscv_option_override): Set riscv_stack_boundary. Handle | |
31045 | riscv_preferred_stack_boundary_arg. | |
31046 | * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. | |
31047 | (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. | |
31048 | (STACK_BOUNDARY): Set to riscv_stack_boundary. | |
31049 | (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. | |
31050 | * config/riscv/riscv.opt (mpreferred-stack-boundary): New. | |
31051 | * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. | |
31052 | ||
31053 | 2018-01-23 H.J. Lu <hongjiu.lu@intel.com> | |
31054 | ||
31055 | PR target/83905 | |
31056 | * config/i386/i386.c (ix86_expand_prologue): Use cost reference | |
31057 | of struct ix86_frame. | |
31058 | (ix86_expand_epilogue): Likewise. Add a local variable for | |
31059 | the reg_save_offset field in struct ix86_frame. | |
31060 | ||
31061 | 2018-01-23 Bin Cheng <bin.cheng@arm.com> | |
31062 | ||
31063 | PR tree-optimization/82604 | |
31064 | * tree-loop-distribution.c (enum partition_kind): New enum item | |
31065 | PKIND_PARTIAL_MEMSET. | |
31066 | (partition_builtin_p): Support above new enum item. | |
31067 | (generate_code_for_partition): Ditto. | |
31068 | (compute_access_range): Differentiate cases that equality can be | |
31069 | proven at all loops, the innermost loops or no loops. | |
31070 | (classify_builtin_st, classify_builtin_ldst): Adjust call to above | |
31071 | function. Set PKIND_PARTIAL_MEMSET for partition appropriately. | |
31072 | (finalize_partitions, distribute_loop): Don't fuse partition of | |
31073 | PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest. | |
31074 | (prepare_perfect_loop_nest): Distribute 3-level loop nest only if | |
31075 | parloop is enabled. | |
31076 | ||
31077 | 2018-01-23 Martin Liska <mliska@suse.cz> | |
31078 | ||
31079 | * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in | |
31080 | order to ignore the predictor. | |
31081 | (PRED_POLYMORPHIC_CALL): Likewise. | |
31082 | (PRED_RECURSIVE_CALL): Likewise. | |
31083 | ||
31084 | 2018-01-23 Martin Liska <mliska@suse.cz> | |
31085 | ||
31086 | * tree-profile.c (tree_profiling): Print function header to | |
31087 | aware reader which function we are working on. | |
31088 | * value-prof.c (gimple_find_values_to_profile): Do not print | |
31089 | not interesting value histograms. | |
31090 | ||
31091 | 2018-01-23 Martin Liska <mliska@suse.cz> | |
31092 | ||
31093 | * profile-count.h (enum profile_quality): Add | |
31094 | profile_uninitialized as the first value. Do not number values | |
31095 | as they are zero based. | |
31096 | (profile_count::verify): Update sanity check. | |
31097 | (profile_probability::verify): Likewise. | |
31098 | ||
31099 | 2018-01-23 Nathan Sidwell <nathan@acm.org> | |
31100 | ||
31101 | * doc/invoke.texi (ffor-scope): Deprecate. | |
31102 | ||
31103 | 2018-01-23 David Malcolm <dmalcolm@redhat.com> | |
31104 | ||
31105 | PR tree-optimization/83510 | |
31106 | * domwalk.c (set_all_edges_as_executable): New function. | |
31107 | (dom_walker::dom_walker): Convert bool param | |
31108 | "skip_unreachable_blocks" to enum reachability. Move setup of | |
31109 | edge flags to set_all_edges_as_executable and only do it when | |
31110 | reachability is REACHABLE_BLOCKS. | |
31111 | * domwalk.h (enum dom_walker::reachability): New enum. | |
31112 | (dom_walker::dom_walker): Convert bool param | |
31113 | "skip_unreachable_blocks" to enum reachability. | |
31114 | (set_all_edges_as_executable): New decl. | |
31115 | * graphite-scop-detection.c (gather_bbs::gather_bbs): Convert | |
31116 | from false for "skip_unreachable_blocks" to ALL_BLOCKS for | |
31117 | "reachability". | |
31118 | * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise, | |
31119 | but converting true to REACHABLE_BLOCKS. | |
31120 | * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise. | |
31121 | * tree-vrp.c | |
31122 | (check_array_bounds_dom_walker::check_array_bounds_dom_walker): | |
31123 | Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS. | |
31124 | (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to | |
31125 | REACHABLE_BLOCKS. | |
31126 | (vrp_prop::vrp_finalize): Call set_all_edges_as_executable | |
31127 | if check_all_array_refs will be called. | |
31128 | ||
31129 | 2018-01-23 David Malcolm <dmalcolm@redhat.com> | |
31130 | ||
31131 | * tree.c (selftest::test_location_wrappers): Add more test | |
31132 | coverage. | |
31133 | ||
31134 | 2018-01-23 David Malcolm <dmalcolm@redhat.com> | |
31135 | ||
31136 | * sbitmap.c (selftest::test_set_range): Fix memory leaks. | |
31137 | (selftest::test_bit_in_range): Likewise. | |
31138 | ||
31139 | 2018-01-23 Richard Sandiford <richard.sandiford@linaro.org> | |
31140 | ||
31141 | PR testsuite/83888 | |
31142 | * doc/sourcebuild.texi (vect_float): Say that the selector | |
31143 | only describes the situation when -funsafe-math-optimizations is on. | |
31144 | (vect_float_strict): Document. | |
31145 | ||
31146 | 2018-01-23 Richard Sandiford <richard.sandiford@linaro.org> | |
31147 | ||
31148 | PR tree-optimization/83965 | |
31149 | * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. | |
31150 | (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it | |
31151 | instead of checking only for a reduction. | |
31152 | (vect_recog_widen_sum_pattern): Likewise. | |
31153 | ||
31154 | 2018-01-23 Jan Hubicka <hubicka@ucw.cz> | |
31155 | ||
31156 | * predict.c (probably_never_executed): Only use precise profile info. | |
31157 | (compute_function_frequency): Skip after inlining hack since we now | |
31158 | have quality checking. | |
31159 | ||
31160 | 2018-01-23 Jan Hubicka <hubicka@ucw.cz> | |
31161 | ||
31162 | * profile-count.h (profile_probability::very_unlikely, | |
31163 | profile_probability::unlikely, profile_probability::even): Set | |
31164 | precision to guessed. | |
31165 | ||
31166 | 2018-01-23 Richard Biener <rguenther@suse.de> | |
31167 | ||
31168 | PR tree-optimization/83963 | |
31169 | * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): | |
31170 | Properly terminate dominator walk when crossing the exit edge not | |
31171 | when visiting its source block. | |
31172 | ||
31173 | 2018-01-23 Jakub Jelinek <jakub@redhat.com> | |
31174 | ||
31175 | PR c++/83918 | |
31176 | * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than | |
31177 | VIEW_CONVERT_EXPR to wrap CONST_DECLs. | |
31178 | ||
31179 | 2018-01-22 Jakub Jelinek <jakub@redhat.com> | |
31180 | ||
31181 | PR tree-optimization/83957 | |
31182 | * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove | |
31183 | semicolon after for body surrounded by braces. | |
31184 | ||
31185 | PR tree-optimization/83081 | |
31186 | * profile-count.h (profile_probability::split): New method. | |
31187 | * dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>: | |
31188 | Use profile_probability::split. | |
31189 | (do_compare_rtx_and_jump): Fix adjustment of probabilities | |
31190 | when splitting a single conditional jump into 2. | |
31191 | ||
31192 | 2018-01-22 David Malcolm <dmalcolm@redhat.com> | |
31193 | ||
31194 | PR tree-optimization/69452 | |
31195 | * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove | |
31196 | decl. | |
31197 | ||
31198 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31199 | ||
31200 | * config/rl78/rl78-expand.md (bswaphi2): New define_expand. | |
31201 | * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn. | |
31202 | * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn. | |
31203 | ||
31204 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31205 | ||
31206 | * config/rl78/rl78-protos.h (rl78_split_movdi): New function | |
31207 | declaration. | |
31208 | * config/rl78/rl78.md (movdi): New define_expand. | |
31209 | * config/rl78/rl78.c (rl78_split_movdi): New function. | |
31210 | ||
31211 | 2018-01-22 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31212 | ||
31213 | PR target/83862 | |
31214 | * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete, | |
31215 | no longer used. | |
31216 | * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise. | |
31217 | * config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE | |
31218 | 128-bit to produce an UNSPEC move to get the double word with the | |
31219 | signbit and then a shift directly to do signbit. | |
31220 | (signbit<mode>2_dm): Replace old IEEE 128-bit signbit | |
31221 | implementation with a new version that just does either a direct | |
31222 | move or a regular move. Move memory interface to separate insns. | |
31223 | Move insns so they are next to the expander. | |
31224 | (signbit<mode>2_dm_mem_be): New combiner insns to combine load | |
31225 | with signbit move. Split big and little endian case. | |
31226 | (signbit<mode>2_dm_mem_le): Likewise. | |
31227 | (signbit<mode>2_dm_<su>ext): Delete, no longer used. | |
31228 | (signbit<mode>2_dm2): Likewise. | |
31229 | ||
31230 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31231 | ||
31232 | * config/rl78/rl78.md (anddi3): New define_expand. | |
31233 | ||
31234 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31235 | ||
31236 | * config/rl78/rl78.md (umindi3): New define_expand. | |
31237 | ||
31238 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31239 | ||
31240 | * config/rl78/rl78.md (smindi3): New define_expand. | |
31241 | ||
31242 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31243 | ||
31244 | * config/rl78/rl78.md (smaxdi3): New define_expand. | |
31245 | ||
31246 | 2018-01-22 Carl Love <cel@us.ibm.com> | |
31247 | ||
31248 | * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI, | |
31249 | LVX_V1TI): Add macro expansion. | |
31250 | * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument | |
31251 | definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST, | |
31252 | VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins. | |
31253 | * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p); | |
31254 | Change check to determine if the instruction is a byte reversing | |
31255 | entry. Fix typo in comment. | |
31256 | * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry | |
31257 | for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI. | |
31258 | Add def_builtin calls for new builtins. | |
31259 | * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti): | |
31260 | Add define_insn expansion. | |
31261 | ||
31262 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31263 | ||
31264 | * config/rl78/rl78.md (umaxdi3): New define_expand. | |
31265 | ||
31266 | 2018-01-22 Sebastian Perta <sebastian.perta@renesas.com> | |
31267 | ||
31268 | * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check | |
31269 | for non-QImode registers. | |
31270 | ||
31271 | 2018-01-22 Richard Biener <rguenther@suse.de> | |
31272 | ||
31273 | PR tree-optimization/83963 | |
31274 | * graphite-scop-detection.c (scop_detection::get_sese): Delay | |
31275 | including the loop exit block. | |
31276 | (scop_detection::merge_sese): Likewise. | |
31277 | (scop_detection::add_scop): Do it here instead. | |
31278 | ||
31279 | 2018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31280 | ||
31281 | * doc/sourcebuild.texi (arm_softfloat): Document. | |
31282 | ||
31283 | 2018-01-21 John David Anglin <danglin@gcc.gnu.org> | |
31284 | ||
31285 | PR gcc/77734 | |
31286 | * config/pa/pa.c (pa_function_ok_for_sibcall): Use | |
31287 | targetm.binds_local_p instead of TREE_PUBLIC to check local binding. | |
31288 | Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check. | |
31289 | ||
31290 | 2018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31291 | David Edelsohn <dje.gcc@gmail.com> | |
31292 | ||
31293 | PR target/83946 | |
31294 | * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): | |
31295 | Change "crset eq" to "crset 2". | |
31296 | (*call_value_indirect_nonlocal_sysv<mode>): Likewise. | |
31297 | (*call_indirect_aix<mode>_nospec): Likewise. | |
31298 | (*call_value_indirect_aix<mode>_nospec): Likewise. | |
31299 | (*call_indirect_elfv2<mode>_nospec): Likewise. | |
31300 | (*call_value_indirect_elfv2<mode>_nospec): Likewise. | |
31301 | (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2"; | |
31302 | change assembly output from . to $. | |
31303 | (*sibcall_value_nonlocal_sysv<mode>): Likewise. | |
31304 | (indirect_jump<mode>_nospec): Change assembly output from . to $. | |
31305 | (*tablejump<mode>_internal1_nospec): Likewise. | |
31306 | ||
31307 | 2018-01-21 Oleg Endo <olegendo@gcc.gnu.org> | |
31308 | ||
31309 | PR target/80870 | |
31310 | * config/sh/sh_optimize_sett_clrt.cc: | |
31311 | Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes. | |
31312 | ||
31313 | 2018-01-20 Richard Sandiford <richard.sandiford@linaro.org> | |
31314 | ||
31315 | PR tree-optimization/83940 | |
31316 | * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set | |
31317 | offset_dt to vect_constant_def rather than vect_unknown_def_type. | |
31318 | (vect_check_load_store_mask): Add a mask_dt_out parameter and | |
31319 | use it to pass back the definition type. | |
31320 | (vect_check_store_rhs): Likewise rhs_dt_out. | |
31321 | (vect_build_gather_load_calls): Add a mask_dt argument and use | |
31322 | it instead of a call to vect_is_simple_use. | |
31323 | (vectorizable_store): Update calls to vect_check_load_store_mask | |
31324 | and vect_check_store_rhs. Use the dt returned by the latter instead | |
31325 | of scatter_src_dt. Use the cached mask_dt and gs_info.offset_dt | |
31326 | instead of calls to vect_is_simple_use. Pass the scalar rather | |
31327 | than the vector operand to vect_is_simple_use when handling | |
31328 | second and subsequent copies of an rhs value. | |
31329 | (vectorizable_load): Update calls to vect_check_load_store_mask | |
31330 | and vect_build_gather_load_calls. Use the cached mask_dt and | |
31331 | gs_info.offset_dt instead of calls to vect_is_simple_use. | |
31332 | ||
31333 | 2018-01-20 Jakub Jelinek <jakub@redhat.com> | |
31334 | ||
31335 | PR middle-end/83945 | |
31336 | * tree-emutls.c: Include gimplify.h. | |
31337 | (lower_emutls_2): New function. | |
31338 | (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree | |
31339 | with lower_emutls_2 callback finds some TLS decl in it, unshare_expr | |
31340 | it before further processing. | |
31341 | ||
31342 | PR target/83930 | |
31343 | * simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use | |
31344 | UINTVAL (trueop1) instead of INTVAL (op1). | |
31345 | ||
31346 | 2018-01-19 Jakub Jelinek <jakub@redhat.com> | |
31347 | ||
31348 | PR debug/81570 | |
31349 | PR debug/83728 | |
31350 | * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to | |
31351 | INCOMING_FRAME_SP_OFFSET if not defined. | |
31352 | (scan_trace): Add ENTRY argument. If true and | |
31353 | DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET, | |
31354 | emit a note to adjust the CFA offset. | |
31355 | (create_cfi_notes): Adjust scan_trace callers. | |
31356 | (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than | |
31357 | INCOMING_FRAME_SP_OFFSET in the CIE. | |
31358 | * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define. | |
31359 | * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): | |
31360 | Likewise. | |
31361 | * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document. | |
31362 | * doc/tm.texi: Regenerated. | |
31363 | ||
31364 | 2018-01-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> | |
31365 | ||
31366 | PR rtl-optimization/83147 | |
31367 | * lra-constraints.c (remove_inheritance_pseudos): Use | |
31368 | lra_substitute_pseudo_within_insn. | |
31369 | ||
31370 | 2018-01-19 Tom de Vries <tom@codesourcery.com> | |
31371 | Cesar Philippidis <cesar@codesourcery.com> | |
31372 | ||
31373 | PR target/83920 | |
31374 | * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround. | |
31375 | ||
31376 | 2018-01-19 Cesar Philippidis <cesar@codesourcery.com> | |
31377 | ||
31378 | PR target/83790 | |
31379 | * config/nvptx/nvptx.c (output_init_frag): Don't use generic address | |
31380 | spaces for function labels. | |
31381 | ||
31382 | 2018-01-19 Martin Liska <mliska@suse.cz> | |
31383 | ||
31384 | * predict.def (PRED_LOOP_EXIT): Change from 85 to 89. | |
31385 | (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78. | |
31386 | (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67. | |
31387 | (PRED_OPCODE_POSITIVE): Change from 64 to 59. | |
31388 | (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59. | |
31389 | (PRED_CONST_RETURN): Change from 69 to 65. | |
31390 | (PRED_NULL_RETURN): Change from 91 to 71. | |
31391 | (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64. | |
31392 | (PRED_LOOP_GUARD): Change from 66 to 73. | |
31393 | ||
31394 | 2018-01-19 Martin Liska <mliska@suse.cz> | |
31395 | ||
31396 | * predict.c (predict_insn_def): Add new assert. | |
31397 | (struct branch_predictor): Change type to signed integer. | |
31398 | (test_prediction_value_range): Amend test to cover | |
31399 | PROB_UNINITIALIZED. | |
31400 | * predict.def (PRED_LOOP_ITERATIONS): Use the new constant. | |
31401 | (PRED_LOOP_ITERATIONS_GUESSED): Likewise. | |
31402 | (PRED_LOOP_ITERATIONS_MAX): Likewise. | |
31403 | (PRED_LOOP_IV_COMPARE): Likewise. | |
31404 | * predict.h (PROB_UNINITIALIZED): Define new constant. | |
31405 | ||
31406 | 2018-01-19 Martin Liska <mliska@suse.cz> | |
31407 | ||
31408 | * predict.c (dump_prediction): Add new format for | |
31409 | analyze_brprob.py script which is enabled with -details | |
31410 | suboption. | |
31411 | * profile-count.h (precise_p): New function. | |
31412 | ||
31413 | 2018-01-19 Richard Sandiford <richard.sandiford@linaro.org> | |
31414 | ||
31415 | PR tree-optimization/83922 | |
31416 | * tree-vect-loop.c (vect_verify_full_masking): Return false if | |
31417 | there are no statements that need masking. | |
31418 | (vect_active_double_reduction_p): New function. | |
31419 | (vect_analyze_loop_operations): Use it when handling phis that | |
31420 | are not in the loop header. | |
31421 | ||
31422 | 2018-01-19 Richard Sandiford <richard.sandiford@linaro.org> | |
31423 | ||
31424 | PR tree-optimization/83914 | |
31425 | * tree-vect-loop.c (vectorizable_induction): Don't convert | |
31426 | init_expr or apply the peeling adjustment for inductions | |
31427 | that are nested within the vectorized loop. | |
31428 | ||
31429 | 2018-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31430 | ||
31431 | * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic | |
31432 | instead of NEG. | |
31433 | ||
31434 | 2018-01-18 Jakub Jelinek <jakub@redhat.com> | |
31435 | ||
31436 | PR sanitizer/81715 | |
31437 | PR testsuite/83882 | |
31438 | * function.h (gimplify_parameters): Add gimple_seq * argument. | |
31439 | * function.c: Include gimple.h and options.h. | |
31440 | (gimplify_parameters): Add cleanup argument, add CLOBBER stmts | |
31441 | for the added local temporaries if needed. | |
31442 | * gimplify.c (gimplify_body): Adjust gimplify_parameters caller, | |
31443 | if there are any parameter cleanups, wrap whole body into a | |
31444 | try/finally with the cleanups. | |
31445 | ||
31446 | 2018-01-18 Wilco Dijkstra <wdijkstr@arm.com> | |
31447 | ||
31448 | PR target/82964 | |
31449 | * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): | |
31450 | Use GET_MODE_CLASS for scalar floating point. | |
31451 | ||
31452 | 2018-01-18 Jan Hubicka <hubicka@ucw.cz> | |
31453 | ||
31454 | PR ipa/82256 | |
31455 | patch by PaX Team | |
31456 | * cgraphclones.c (cgraph_node::create_version_clone_with_body): | |
31457 | Fix call of call_cgraph_insertion_hooks. | |
31458 | ||
31459 | 2018-01-18 Martin Sebor <msebor@redhat.com> | |
31460 | ||
31461 | * doc/invoke.texi (-Wclass-memaccess): Tweak text. | |
31462 | ||
31463 | 2018-01-18 Jan Hubicka <hubicka@ucw.cz> | |
31464 | ||
31465 | PR ipa/83619 | |
31466 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge | |
31467 | frequencies. | |
31468 | ||
31469 | 2018-01-18 Boris Kolpackov <boris@codesynthesis.com> | |
31470 | ||
31471 | PR other/70268 | |
31472 | * common.opt: (-ffile-prefix-map): New option. | |
31473 | * opts.c (common_handle_option): Defer it. | |
31474 | * opts-global.c (handle_common_deferred_options): Handle it. | |
31475 | * debug.h (remap_debug_filename, add_debug_prefix_map): Move to... | |
31476 | * file-prefix-map.h: New file. | |
31477 | (remap_debug_filename, add_debug_prefix_map): ...here. | |
31478 | (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New. | |
31479 | * final.c (debug_prefix_map, add_debug_prefix_map | |
31480 | remap_debug_filename): Move to... | |
31481 | * file-prefix-map.c: New file. | |
31482 | (file_prefix_map, add_prefix_map, remap_filename) ...here and rename, | |
31483 | generalize, get rid of alloca(), use strrchr() instead of strchr(). | |
31484 | (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map): | |
31485 | Implement in terms of add_prefix_map(). | |
31486 | (remap_macro_filename, remap_debug_filename): Implement in term of | |
31487 | remap_filename(). | |
31488 | * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files. | |
31489 | * builtins.c (fold_builtin_FILE): Call remap_macro_filename(). | |
31490 | * dbxout.c: Include file-prefix-map.h. | |
31491 | * varasm.c: Likewise. | |
31492 | * vmsdbgout.c: Likewise. | |
31493 | * xcoffout.c: Likewise. | |
31494 | * dwarf2out.c: Likewise plus omit new options from DW_AT_producer. | |
31495 | * doc/cppopts.texi (-fmacro-prefix-map): Document. | |
31496 | * doc/invoke.texi (-ffile-prefix-map): Document. | |
31497 | (-fdebug-prefix-map): Update description. | |
31498 | ||
31499 | 2018-01-18 Martin Liska <mliska@suse.cz> | |
31500 | ||
31501 | * config/i386/i386.c (indirect_thunk_name): Document that also | |
31502 | lfence is emitted. | |
31503 | (output_indirect_thunk): Document why both instructions | |
31504 | (pause and lfence) are generated. | |
31505 | ||
31506 | 2018-01-18 Richard Biener <rguenther@suse.de> | |
31507 | ||
31508 | PR tree-optimization/83887 | |
31509 | * graphite-scop-detection.c | |
31510 | (scop_detection::get_nearest_dom_with_single_entry): Remove. | |
31511 | (scop_detection::get_nearest_pdom_with_single_exit): Likewise. | |
31512 | (scop_detection::merge_sese): Re-implement with a flood-fill | |
31513 | algorithm that properly finds a SESE region if it exists. | |
31514 | ||
31515 | 2018-01-18 Jakub Jelinek <jakub@redhat.com> | |
31516 | ||
31517 | PR c/61240 | |
31518 | * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For | |
31519 | pointer_diff optimizations use view_convert instead of convert. | |
31520 | ||
31521 | 2018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31522 | ||
31523 | * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): | |
31524 | Generate different code for -mno-speculate-indirect-jumps. | |
31525 | (*call_value_indirect_nonlocal_sysv<mode>): Likewise. | |
31526 | (*call_indirect_aix<mode>): Disable for | |
31527 | -mno-speculate-indirect-jumps. | |
31528 | (*call_indirect_aix<mode>_nospec): New define_insn. | |
31529 | (*call_value_indirect_aix<mode>): Disable for | |
31530 | -mno-speculate-indirect-jumps. | |
31531 | (*call_value_indirect_aix<mode>_nospec): New define_insn. | |
31532 | (*sibcall_nonlocal_sysv<mode>): Generate different code for | |
31533 | -mno-speculate-indirect-jumps. | |
31534 | (*sibcall_value_nonlocal_sysv<mode>): Likewise. | |
31535 | ||
31536 | 2018-01-17 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31537 | ||
31538 | * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a | |
31539 | long double type, set the flags for noting the default long double | |
31540 | type, even if we don't pass or return a long double type. | |
31541 | ||
31542 | 2018-01-17 Jan Hubicka <hubicka@ucw.cz> | |
31543 | ||
31544 | PR ipa/83051 | |
31545 | * ipa-inline.c (flatten_function): Do not overwrite final inlining | |
31546 | failure. | |
31547 | ||
31548 | 2018-01-17 Will Schmidt <will_schmidt@vnet.ibm.com> | |
31549 | ||
31550 | * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding | |
31551 | support for merge[hl]. | |
31552 | (fold_mergehl_helper): New helper function. | |
31553 | (tree-vector-builder.h): New #include for tree_vector_builder usage. | |
31554 | * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn. | |
31555 | (altivec_vmrglw_direct): Add xxmrglw insn. | |
31556 | ||
31557 | 2018-01-17 Andrew Waterman <andrew@sifive.com> | |
31558 | ||
31559 | * config/riscv/riscv.c (riscv_conditional_register_usage): If | |
31560 | UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs. | |
31561 | ||
31562 | 2018-01-17 David Malcolm <dmalcolm@redhat.com> | |
31563 | ||
31564 | PR lto/83121 | |
31565 | * ipa-devirt.c (add_type_duplicate): When comparing memory layout, | |
31566 | call the lto_location_cache before reading the | |
31567 | DECL_SOURCE_LOCATION of the types. | |
31568 | ||
31569 | 2018-01-17 Wilco Dijkstra <wdijkstr@arm.com> | |
31570 | Richard Sandiford <richard.sandiford@linaro.org> | |
31571 | ||
31572 | * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint. | |
31573 | * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function. | |
31574 | (aarch64_legitimate_constant_p): Just support CONST_DOUBLE | |
31575 | SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates. | |
31576 | * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate): | |
31577 | Add declaration. | |
31578 | * config/aarch64/constraints.md (aarch64_movti_operand): | |
31579 | Limit immediates. | |
31580 | * config/aarch64/predicates.md (Uti): Add new constraint. | |
31581 | ||
31582 | 2018-01-17 Carl Love <cel@us.ibm.com> | |
31583 | ||
31584 | * config/rs6000/vsx.md (define_expand xl_len_r, | |
31585 | define_expand stxvl, define_expand *stxvl): Add match_dup argument. | |
31586 | (define_insn): Add, match_dup 1 argument to define_insn stxvll and | |
31587 | lxvll. | |
31588 | (define_expand, define_insn): Move the shift left from the | |
31589 | define_insn to the define_expand for lxvl and stxvl instructions. | |
31590 | * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL | |
31591 | and XL_LEN_R definitions to PURE. | |
31592 | ||
31593 | 2018-01-17 Uros Bizjak <ubizjak@gmail.com> | |
31594 | ||
31595 | * config/i386/i386.c (indirect_thunk_name): Declare regno | |
31596 | as unsigned int. Compare regno with INVALID_REGNUM. | |
31597 | (output_indirect_thunk): Ditto. | |
31598 | (output_indirect_thunk_function): Ditto. | |
31599 | (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM | |
31600 | in the call to output_indirect_thunk_function. | |
31601 | ||
31602 | 2018-01-17 Richard Sandiford <richard.sandiford@linaro.org> | |
31603 | ||
31604 | PR middle-end/83884 | |
31605 | * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0) | |
31606 | rather than the size of inner_type to determine the stack slot size | |
31607 | when handling VIEW_CONVERT_EXPRs on strict-alignment targets. | |
31608 | ||
31609 | 2018-01-16 Sebastian Peryt <sebastian.peryt@intel.com> | |
31610 | ||
31611 | PR target/83546 | |
31612 | * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND | |
31613 | to PTA_SILVERMONT. | |
31614 | ||
31615 | 2018-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> | |
31616 | ||
31617 | * config.gcc (powerpc*-linux*-*): Add support for 64-bit little | |
31618 | endian Linux systems to optionally enable multilibs for selecting | |
31619 | the long double type if the user configured an explicit type. | |
31620 | * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we | |
31621 | have no long double multilibs if not defined. | |
31622 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not | |
31623 | warn if the user used -mabi={ieee,ibm}longdouble and we built | |
31624 | multilibs for long double. | |
31625 | * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the | |
31626 | appropriate multilib option. | |
31627 | (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default | |
31628 | multilib options. | |
31629 | * config/rs6000/t-ldouble-linux64le-ibm: New configuration files | |
31630 | for building long double multilibs. | |
31631 | * config/rs6000/t-ldouble-linux64le-ieee: Likewise. | |
31632 | ||
31633 | 2018-01-16 John David Anglin <danglin@gcc.gnu.org> | |
31634 | ||
31635 | * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller | |
31636 | copies. | |
31637 | ||
31638 | * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to | |
31639 | 64 bits. | |
31640 | * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to | |
31641 | 128 bits. | |
31642 | ||
31643 | * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode | |
31644 | variables. | |
31645 | ||
31646 | * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE | |
31647 | return value. | |
31648 | ||
31649 | 2018-01-16 Eric Botcazou <ebotcazou@adacore.com> | |
31650 | ||
31651 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an | |
31652 | ADDR_EXPR, do not count the offset of a COMPONENT_REF twice. | |
31653 | ||
31654 | 2018-01-16 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
31655 | ||
31656 | * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate | |
31657 | different rtl trees depending on TARGET_64BIT. | |
31658 | (rs6000_gen_lvx): Likewise. | |
31659 | ||
31660 | 2018-01-16 Eric Botcazou <ebotcazou@adacore.com> | |
31661 | ||
31662 | * config/visium/visium.md (nop): Tweak comment. | |
31663 | (hazard_nop): Likewise. | |
31664 | ||
31665 | 2018-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
31666 | ||
31667 | * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for | |
31668 | -mspeculate-indirect-jumps. | |
31669 | * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable | |
31670 | for -mno-speculate-indirect-jumps. | |
31671 | (*call_indirect_elfv2<mode>_nospec): New define_insn. | |
31672 | (*call_value_indirect_elfv2<mode>): Disable for | |
31673 | -mno-speculate-indirect-jumps. | |
31674 | (*call_value_indirect_elfv2<mode>_nospec): New define_insn. | |
31675 | (indirect_jump): Emit different RTL for | |
31676 | -mno-speculate-indirect-jumps. | |
31677 | (*indirect_jump<mode>): Disable for | |
31678 | -mno-speculate-indirect-jumps. | |
31679 | (*indirect_jump<mode>_nospec): New define_insn. | |
31680 | (tablejump): Emit different RTL for | |
31681 | -mno-speculate-indirect-jumps. | |
31682 | (tablejumpsi): Disable for -mno-speculate-indirect-jumps. | |
31683 | (tablejumpsi_nospec): New define_expand. | |
31684 | (tablejumpdi): Disable for -mno-speculate-indirect-jumps. | |
31685 | (tablejumpdi_nospec): New define_expand. | |
31686 | (*tablejump<mode>_internal1): Disable for | |
31687 | -mno-speculate-indirect-jumps. | |
31688 | (*tablejump<mode>_internal1_nospec): New define_insn. | |
31689 | * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New | |
31690 | option. | |
31691 | ||
31692 | 2018-01-16 Artyom Skrobov tyomitch@gmail.com | |
31693 | ||
31694 | * caller-save.c (insert_save): Drop unnecessary parameter. All | |
31695 | callers updated. | |
31696 | ||
31697 | 2018-01-16 Jakub Jelinek <jakub@redhat.com> | |
31698 | Richard Biener <rguenth@suse.de> | |
31699 | ||
31700 | PR libgomp/83590 | |
31701 | * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr) | |
31702 | return early, inline manually is_gimple_sizepos. Make sure if we | |
31703 | call gimplify_expr we don't end up with a gimple constant. | |
31704 | * tree.c (variably_modified_type_p): Don't return true for | |
31705 | is_gimple_constant (_t). Inline manually is_gimple_sizepos. | |
31706 | * gimplify.h (is_gimple_sizepos): Remove. | |
31707 | ||
31708 | 2018-01-16 Richard Sandiford <richard.sandiford@linaro.org> | |
31709 | ||
31710 | PR tree-optimization/83857 | |
31711 | * tree-vect-loop.c (vect_analyze_loop_operations): Don't call | |
31712 | vectorizable_live_operation for pure SLP statements. | |
31713 | (vectorizable_live_operation): Handle PHIs. | |
31714 | ||
31715 | 2018-01-16 Richard Biener <rguenther@suse.de> | |
31716 | ||
31717 | PR tree-optimization/83867 | |
31718 | * tree-vect-stmts.c (vect_transform_stmt): Precompute | |
31719 | nested_in_vect_loop_p since the scalar stmt may get invalidated. | |
31720 | ||
31721 | 2018-01-16 Jakub Jelinek <jakub@redhat.com> | |
31722 | ||
31723 | PR c/83844 | |
31724 | * stor-layout.c (handle_warn_if_not_align): Use byte_position and | |
31725 | multiple_of_p instead of unchecked tree_to_uhwi and UHWI check. | |
31726 | If off is not INTEGER_CST, issue a may not be aligned warning | |
31727 | rather than isn't aligned. Use isn%'t rather than isn't. | |
31728 | * fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through | |
31729 | into MULT_EXPR. | |
31730 | <case MULT_EXPR>: Improve the case when bottom and one of the | |
31731 | MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that | |
31732 | operand, in that case check if the other operand is multiple of | |
31733 | bottom divided by the INTEGER_CST operand. | |
31734 | ||
31735 | 2018-01-16 Richard Sandiford <richard.sandiford@linaro.org> | |
31736 | ||
31737 | PR target/83858 | |
31738 | * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete. | |
31739 | * config/pa/pa-protos.h (pa_function_arg_size): Declare. | |
31740 | * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use | |
31741 | pa_function_arg_size instead of FUNCTION_ARG_SIZE. | |
31742 | * config/pa/pa.c (pa_function_arg_advance): Likewise. | |
31743 | (pa_function_arg, pa_arg_partial_bytes): Likewise. | |
31744 | (pa_function_arg_size): New function. | |
31745 | ||
31746 | 2018-01-16 Richard Sandiford <richard.sandiford@linaro.org> | |
31747 | ||
31748 | * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices | |
31749 | in a separate statement. | |
31750 | ||
31751 | 2018-01-16 Richard Sandiford <richard.sandiford@linaro.org> | |
31752 | ||
31753 | PR tree-optimization/83847 | |
31754 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't | |
31755 | group gathers and scatters. | |
31756 | ||
31757 | 2018-01-16 Jakub Jelinek <jakub@redhat.com> | |
31758 | ||
31759 | PR rtl-optimization/86620 | |
31760 | * params.def (max-sched-ready-insns): Bump minimum value to 1. | |
31761 | ||
31762 | PR rtl-optimization/83213 | |
31763 | * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn | |
31764 | to last if both are JUMP_INSNs. | |
31765 | ||
31766 | PR tree-optimization/83843 | |
31767 | * gimple-ssa-store-merging.c | |
31768 | (imm_store_chain_info::output_merged_store): Handle bit_not_p on | |
31769 | store_immediate_info for bswap/nop orig_stores. | |
31770 | ||
31771 | 2018-01-15 Andrew Waterman <andrew@sifive.com> | |
31772 | ||
31773 | * config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if | |
31774 | !TARGET_MUL. | |
31775 | <UDIV>: Increase cost if !TARGET_DIV. | |
31776 | ||
31777 | 2018-01-15 Segher Boessenkool <segher@kernel.crashing.org> | |
31778 | ||
31779 | * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr. | |
31780 | (define_attr "cr_logical_3op"): New. | |
31781 | (cceq_ior_compare): Adjust. | |
31782 | (cceq_ior_compare_complement): Adjust. | |
31783 | (*cceq_rev_compare): Adjust. | |
31784 | * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust. | |
31785 | (is_cracked_insn): Adjust. | |
31786 | (insn_must_be_first_in_group): Adjust. | |
31787 | * config/rs6000/40x.md: Adjust. | |
31788 | * config/rs6000/440.md: Adjust. | |
31789 | * config/rs6000/476.md: Adjust. | |
31790 | * config/rs6000/601.md: Adjust. | |
31791 | * config/rs6000/603.md: Adjust. | |
31792 | * config/rs6000/6xx.md: Adjust. | |
31793 | * config/rs6000/7450.md: Adjust. | |
31794 | * config/rs6000/7xx.md: Adjust. | |
31795 | * config/rs6000/8540.md: Adjust. | |
31796 | * config/rs6000/cell.md: Adjust. | |
31797 | * config/rs6000/e300c2c3.md: Adjust. | |
31798 | * config/rs6000/e500mc.md: Adjust. | |
31799 | * config/rs6000/e500mc64.md: Adjust. | |
31800 | * config/rs6000/e5500.md: Adjust. | |
31801 | * config/rs6000/e6500.md: Adjust. | |
31802 | * config/rs6000/mpc.md: Adjust. | |
31803 | * config/rs6000/power4.md: Adjust. | |
31804 | * config/rs6000/power5.md: Adjust. | |
31805 | * config/rs6000/power6.md: Adjust. | |
31806 | * config/rs6000/power7.md: Adjust. | |
31807 | * config/rs6000/power8.md: Adjust. | |
31808 | * config/rs6000/power9.md: Adjust. | |
31809 | * config/rs6000/rs64.md: Adjust. | |
31810 | * config/rs6000/titan.md: Adjust. | |
31811 | ||
31812 | 2018-01-15 H.J. Lu <hongjiu.lu@intel.com> | |
31813 | ||
31814 | * config/i386/predicates.md (indirect_branch_operand): Rewrite | |
31815 | ix86_indirect_branch_register logic. | |
31816 | ||
31817 | 2018-01-15 H.J. Lu <hongjiu.lu@intel.com> | |
31818 | ||
31819 | * config/i386/constraints.md (Bs): Update | |
31820 | ix86_indirect_branch_register check. Don't check | |
31821 | ix86_indirect_branch_register with GOT_memory_operand. | |
31822 | (Bw): Likewise. | |
31823 | * config/i386/predicates.md (GOT_memory_operand): Don't check | |
31824 | ix86_indirect_branch_register here. | |
31825 | (GOT32_symbol_operand): Likewise. | |
31826 | ||
31827 | 2018-01-15 H.J. Lu <hongjiu.lu@intel.com> | |
31828 | ||
31829 | * config/i386/predicates.md (constant_call_address_operand): | |
31830 | Rewrite ix86_indirect_branch_register logic. | |
31831 | (sibcall_insn_operand): Likewise. | |
31832 | ||
31833 | 2018-01-15 H.J. Lu <hongjiu.lu@intel.com> | |
31834 | ||
31835 | * config/i386/constraints.md (Bs): Replace | |
31836 | ix86_indirect_branch_thunk_register with | |
31837 | ix86_indirect_branch_register. | |
31838 | (Bw): Likewise. | |
31839 | * config/i386/i386.md (indirect_jump): Likewise. | |
31840 | (tablejump): Likewise. | |
31841 | (*sibcall_memory): Likewise. | |
31842 | (*sibcall_value_memory): Likewise. | |
31843 | Peepholes of indirect call and jump via memory: Likewise. | |
31844 | * config/i386/i386.opt: Likewise. | |
31845 | * config/i386/predicates.md (indirect_branch_operand): Likewise. | |
31846 | (GOT_memory_operand): Likewise. | |
31847 | (call_insn_operand): Likewise. | |
31848 | (sibcall_insn_operand): Likewise. | |
31849 | (GOT32_symbol_operand): Likewise. | |
31850 | ||
31851 | 2018-01-15 Jakub Jelinek <jakub@redhat.com> | |
31852 | ||
31853 | PR middle-end/83837 | |
31854 | * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val | |
31855 | type rather than type addr's type points to. | |
31856 | (expand_omp_atomic_mutex): Likewise. | |
31857 | (expand_omp_atomic): Likewise. | |
31858 | ||
31859 | 2018-01-15 H.J. Lu <hongjiu.lu@intel.com> | |
31860 | ||
31861 | PR target/83839 | |
31862 | * config/i386/i386.c (output_indirect_thunk_function): Use | |
31863 | ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO | |
31864 | for __x86_return_thunk. | |
31865 | ||
31866 | 2018-01-15 Richard Biener <rguenther@suse.de> | |
31867 | ||
31868 | PR middle-end/83850 | |
31869 | * expmed.c (extract_bit_field_1): Fix typo. | |
31870 | ||
31871 | 2018-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
31872 | ||
31873 | PR target/83687 | |
31874 | * config/arm/iterators.md (VF): New mode iterator. | |
31875 | * config/arm/neon.md (neon_vabd<mode>_2): Use the above. | |
31876 | Remove integer-related logic from pattern. | |
31877 | (neon_vabd<mode>_3): Likewise. | |
31878 | ||
31879 | 2018-01-15 Jakub Jelinek <jakub@redhat.com> | |
31880 | ||
31881 | PR middle-end/82694 | |
31882 | * common.opt (fstrict-overflow): No longer an alias. | |
31883 | (fwrapv-pointer): New option. | |
31884 | * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define | |
31885 | also for pointer types based on flag_wrapv_pointer. | |
31886 | * opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set | |
31887 | opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if | |
31888 | opts->x_flag_wrapv got set. | |
31889 | * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01 | |
31890 | changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of | |
31891 | POINTER_TYPE_OVERFLOW_UNDEFINED. | |
31892 | * match.pd: Likewise in address comparison pattern. | |
31893 | * doc/invoke.texi: Document -fwrapv and -fstrict-overflow. | |
31894 | ||
31895 | 2018-01-15 Richard Biener <rguenther@suse.de> | |
31896 | ||
31897 | PR lto/83804 | |
31898 | * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs | |
31899 | from TYPE_FIELDS. Free TYPE_BINFO if not used by devirtualization. | |
31900 | Reset type names to their identifier if their TYPE_DECL doesn't | |
31901 | have linkage (and thus is used for ODR and devirt). | |
31902 | (save_debug_info_for_decl): Remove. | |
31903 | (save_debug_info_for_type): Likewise. | |
31904 | (add_tree_to_fld_list): Adjust. | |
31905 | * tree-pretty-print.c (dump_generic_node): Make dumping of | |
31906 | type names more robust. | |
31907 | ||
31908 | 2018-01-15 Richard Biener <rguenther@suse.de> | |
31909 | ||
31910 | * BASE-VER: Bump to 8.0.1. | |
31911 | ||
31912 | 2018-01-14 Martin Sebor <msebor@redhat.com> | |
31913 | ||
31914 | PR other/83508 | |
31915 | * builtins.c (check_access): Avoid warning when the no-warning bit | |
31916 | is set. | |
31917 | ||
31918 | 2018-01-14 Cory Fields <cory-nospam-@coryfields.com> | |
31919 | ||
31920 | * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. | |
31921 | * ira-color (allocno_hard_regs_compare): Likewise. | |
31922 | ||
31923 | 2018-01-14 Nathan Rossi <nathan@nathanrossi.com> | |
31924 | ||
31925 | PR target/83013 | |
31926 | * config/microblaze/microblaze.c (microblaze_asm_output_ident): | |
31927 | Use .pushsection/.popsection. | |
31928 | ||
31929 | 2018-01-14 Martin Sebor <msebor@redhat.com> | |
31930 | ||
31931 | PR c++/81327 | |
31932 | * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting. | |
31933 | ||
31934 | 2018-01-14 Jakub Jelinek <jakub@redhat.com> | |
31935 | ||
31936 | * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h | |
31937 | entry from extra_headers. | |
31938 | (x86_64-*-*): Remove two duplicate gfniintrin.h entries from | |
31939 | extra_headers, make the list bitwise identical to the i?86-*-* one. | |
31940 | ||
31941 | 2018-01-14 H.J. Lu <hongjiu.lu@intel.com> | |
31942 | ||
31943 | * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow | |
31944 | -mcmodel=large with -mindirect-branch=thunk, | |
31945 | -mindirect-branch=thunk-extern, -mfunction-return=thunk and | |
31946 | -mfunction-return=thunk-extern. | |
31947 | * doc/invoke.texi: Document -mcmodel=large is incompatible with | |
31948 | -mindirect-branch=thunk, -mindirect-branch=thunk-extern, | |
31949 | -mfunction-return=thunk and -mfunction-return=thunk-extern. | |
31950 | ||
31951 | 2018-01-14 H.J. Lu <hongjiu.lu@intel.com> | |
31952 | ||
31953 | * config/i386/i386.c (print_reg): Print the name of the full | |
31954 | integer register without '%'. | |
31955 | (ix86_print_operand): Handle 'V'. | |
31956 | * doc/extend.texi: Document 'V' modifier. | |
31957 | ||
31958 | 2018-01-14 H.J. Lu <hongjiu.lu@intel.com> | |
31959 | ||
31960 | * config/i386/constraints.md (Bs): Disallow memory operand for | |
31961 | -mindirect-branch-register. | |
31962 | (Bw): Likewise. | |
31963 | * config/i386/predicates.md (indirect_branch_operand): Likewise. | |
31964 | (GOT_memory_operand): Likewise. | |
31965 | (call_insn_operand): Likewise. | |
31966 | (sibcall_insn_operand): Likewise. | |
31967 | (GOT32_symbol_operand): Likewise. | |
31968 | * config/i386/i386.md (indirect_jump): Call convert_memory_address | |
31969 | for -mindirect-branch-register. | |
31970 | (tablejump): Likewise. | |
31971 | (*sibcall_memory): Likewise. | |
31972 | (*sibcall_value_memory): Likewise. | |
31973 | Disallow peepholes of indirect call and jump via memory for | |
31974 | -mindirect-branch-register. | |
31975 | (*call_pop): Replace m with Bw. | |
31976 | (*call_value_pop): Likewise. | |
31977 | (*sibcall_pop_memory): Replace m with Bs. | |
31978 | * config/i386/i386.opt (mindirect-branch-register): New option. | |
31979 | * doc/invoke.texi: Document -mindirect-branch-register option. | |
31980 | ||
31981 | 2018-01-14 H.J. Lu <hongjiu.lu@intel.com> | |
31982 | ||
31983 | * config/i386/i386-protos.h (ix86_output_function_return): New. | |
31984 | * config/i386/i386.c (ix86_set_indirect_branch_type): Also | |
31985 | set function_return_type. | |
31986 | (indirect_thunk_name): Add ret_p to indicate thunk for function | |
31987 | return. | |
31988 | (output_indirect_thunk_function): Pass false to | |
31989 | indirect_thunk_name. | |
31990 | (ix86_output_indirect_branch_via_reg): Likewise. | |
31991 | (ix86_output_indirect_branch_via_push): Likewise. | |
31992 | (output_indirect_thunk_function): Create alias for function | |
31993 | return thunk if regno < 0. | |
31994 | (ix86_output_function_return): New function. | |
31995 | (ix86_handle_fndecl_attribute): Handle function_return. | |
31996 | (ix86_attribute_table): Add function_return. | |
31997 | * config/i386/i386.h (machine_function): Add | |
31998 | function_return_type. | |
31999 | * config/i386/i386.md (simple_return_internal): Use | |
32000 | ix86_output_function_return. | |
32001 | (simple_return_internal_long): Likewise. | |
32002 | * config/i386/i386.opt (mfunction-return=): New option. | |
32003 | (indirect_branch): Mention -mfunction-return=. | |
32004 | * doc/extend.texi: Document function_return function attribute. | |
32005 | * doc/invoke.texi: Document -mfunction-return= option. | |
32006 | ||
32007 | 2018-01-14 H.J. Lu <hongjiu.lu@intel.com> | |
32008 | ||
32009 | * config/i386/i386-opts.h (indirect_branch): New. | |
32010 | * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise. | |
32011 | * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone | |
32012 | with local indirect jump when converting indirect call and jump. | |
32013 | (ix86_set_indirect_branch_type): New. | |
32014 | (ix86_set_current_function): Call ix86_set_indirect_branch_type. | |
32015 | (indirectlabelno): New. | |
32016 | (indirect_thunk_needed): Likewise. | |
32017 | (indirect_thunk_bnd_needed): Likewise. | |
32018 | (indirect_thunks_used): Likewise. | |
32019 | (indirect_thunks_bnd_used): Likewise. | |
32020 | (INDIRECT_LABEL): Likewise. | |
32021 | (indirect_thunk_name): Likewise. | |
32022 | (output_indirect_thunk): Likewise. | |
32023 | (output_indirect_thunk_function): Likewise. | |
32024 | (ix86_output_indirect_branch_via_reg): Likewise. | |
32025 | (ix86_output_indirect_branch_via_push): Likewise. | |
32026 | (ix86_output_indirect_branch): Likewise. | |
32027 | (ix86_output_indirect_jmp): Likewise. | |
32028 | (ix86_code_end): Call output_indirect_thunk_function if needed. | |
32029 | (ix86_output_call_insn): Call ix86_output_indirect_branch if | |
32030 | needed. | |
32031 | (ix86_handle_fndecl_attribute): Handle indirect_branch. | |
32032 | (ix86_attribute_table): Add indirect_branch. | |
32033 | * config/i386/i386.h (machine_function): Add indirect_branch_type | |
32034 | and has_local_indirect_jump. | |
32035 | * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump | |
32036 | to true. | |
32037 | (tablejump): Likewise. | |
32038 | (*indirect_jump): Use ix86_output_indirect_jmp. | |
32039 | (*tablejump_1): Likewise. | |
32040 | (simple_return_indirect_internal): Likewise. | |
32041 | * config/i386/i386.opt (mindirect-branch=): New option. | |
32042 | (indirect_branch): New. | |
32043 | (keep): Likewise. | |
32044 | (thunk): Likewise. | |
32045 | (thunk-inline): Likewise. | |
32046 | (thunk-extern): Likewise. | |
32047 | * doc/extend.texi: Document indirect_branch function attribute. | |
32048 | * doc/invoke.texi: Document -mindirect-branch= option. | |
32049 | ||
32050 | 2018-01-14 Jan Hubicka <hubicka@ucw.cz> | |
32051 | ||
32052 | PR ipa/83051 | |
32053 | * ipa-inline.c (edge_badness): Tolerate roundoff errors. | |
32054 | ||
32055 | 2018-01-14 Richard Sandiford <richard.sandiford@linaro.org> | |
32056 | ||
32057 | * ipa-inline.c (want_inline_small_function_p): Return false if | |
32058 | inlining has already failed with CIF_FINAL_ERROR. | |
32059 | (update_caller_keys): Call want_inline_small_function_p before | |
32060 | can_inline_edge_p. | |
32061 | (update_callee_keys): Likewise. | |
32062 | ||
32063 | 2018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
32064 | ||
32065 | * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p): | |
32066 | New function. | |
32067 | (rs6000_quadword_masked_address_p): Likewise. | |
32068 | (quad_aligned_load_p): Likewise. | |
32069 | (quad_aligned_store_p): Likewise. | |
32070 | (const_load_sequence_p): Add comment to describe the outer-most loop. | |
32071 | (mimic_memory_attributes_and_flags): New function. | |
32072 | (rs6000_gen_stvx): Likewise. | |
32073 | (replace_swapped_aligned_store): Likewise. | |
32074 | (rs6000_gen_lvx): Likewise. | |
32075 | (replace_swapped_aligned_load): Likewise. | |
32076 | (replace_swapped_load_constant): Capitalize argument name in | |
32077 | comment describing this function. | |
32078 | (rs6000_analyze_swaps): Add a third pass to search for vector loads | |
32079 | and stores that access quad-word aligned addresses and replace | |
32080 | with stvx or lvx instructions when appropriate. | |
32081 | * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p): | |
32082 | New function prototype. | |
32083 | (rs6000_quadword_masked_address_p): Likewise. | |
32084 | (rs6000_gen_lvx): Likewise. | |
32085 | (rs6000_gen_stvx): Likewise. | |
32086 | * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes | |
32087 | VSX_D (V2DF, V2DI), modify this split to select lvx instruction | |
32088 | when memory address is aligned. | |
32089 | (*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify | |
32090 | this split to select lvx instruction when memory address is aligned. | |
32091 | (*vsx_le_perm_load_v8hi): Modify this split to select lvx | |
32092 | instruction when memory address is aligned. | |
32093 | (*vsx_le_perm_load_v16qi): Likewise. | |
32094 | (four unnamed splitters): Modify to select the stvx instruction | |
32095 | when memory is aligned. | |
32096 | ||
32097 | 2018-01-13 Jan Hubicka <hubicka@ucw.cz> | |
32098 | ||
32099 | * predict.c (determine_unlikely_bbs): Handle correctly BBs | |
32100 | which appears in the queue multiple times. | |
32101 | ||
32102 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32103 | Alan Hayward <alan.hayward@arm.com> | |
32104 | David Sherwood <david.sherwood@arm.com> | |
32105 | ||
32106 | * tree-vectorizer.h (vec_lower_bound): New structure. | |
32107 | (_loop_vec_info): Add check_nonzero and lower_bounds. | |
32108 | (LOOP_VINFO_CHECK_NONZERO): New macro. | |
32109 | (LOOP_VINFO_LOWER_BOUNDS): Likewise. | |
32110 | (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too. | |
32111 | * tree-data-ref.h (dr_with_seg_len): Add access_size and align | |
32112 | fields. Make seg_len the distance travelled, not including the | |
32113 | access size. | |
32114 | (dr_direction_indicator): Declare. | |
32115 | (dr_zero_step_indicator): Likewise. | |
32116 | (dr_known_forward_stride_p): Likewise. | |
32117 | * tree-data-ref.c: Include stringpool.h, tree-vrp.h and | |
32118 | tree-ssanames.h. | |
32119 | (runtime_alias_check_p): Allow runtime alias checks with | |
32120 | variable strides. | |
32121 | (operator ==): Compare access_size and align. | |
32122 | (prune_runtime_alias_test_list): Rework for new distinction between | |
32123 | the access_size and seg_len. | |
32124 | (create_intersect_range_checks_index): Likewise. Cope with polynomial | |
32125 | segment lengths. | |
32126 | (get_segment_min_max): New function. | |
32127 | (create_intersect_range_checks): Use it. | |
32128 | (dr_step_indicator): New function. | |
32129 | (dr_direction_indicator): Likewise. | |
32130 | (dr_zero_step_indicator): Likewise. | |
32131 | (dr_known_forward_stride_p): Likewise. | |
32132 | * tree-loop-distribution.c (data_ref_segment_size): Return | |
32133 | DR_STEP * (niters - 1). | |
32134 | (compute_alias_check_pairs): Update call to the dr_with_seg_len | |
32135 | constructor. | |
32136 | * tree-vect-data-refs.c (vect_check_nonzero_value): New function. | |
32137 | (vect_preserves_scalar_order_p): New function, split out from... | |
32138 | (vect_analyze_data_ref_dependence): ...here. Check for zero steps. | |
32139 | (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1). | |
32140 | (vect_vfa_access_size): New function. | |
32141 | (vect_vfa_align): Likewise. | |
32142 | (vect_compile_time_alias): Take access_size_a and access_b arguments. | |
32143 | (dump_lower_bound): New function. | |
32144 | (vect_check_lower_bound): Likewise. | |
32145 | (vect_small_gap_p): Likewise. | |
32146 | (vectorizable_with_step_bound_p): Likewise. | |
32147 | (vect_prune_runtime_alias_test_list): Ignore cross-iteration | |
32148 | depencies if the vectorization factor is 1. Convert the checks | |
32149 | for nonzero steps into checks on the bounds of DR_STEP. Try using | |
32150 | a bunds check for variable steps if the minimum required step is | |
32151 | relatively small. Update calls to the dr_with_seg_len | |
32152 | constructor and to vect_compile_time_alias. | |
32153 | * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New | |
32154 | function. | |
32155 | (vect_loop_versioning): Call it. | |
32156 | * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS | |
32157 | when retrying. | |
32158 | (vect_estimate_min_profitable_iters): Account for any bounds checks. | |
32159 | ||
32160 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32161 | Alan Hayward <alan.hayward@arm.com> | |
32162 | David Sherwood <david.sherwood@arm.com> | |
32163 | ||
32164 | * doc/sourcebuild.texi (vect_scatter_store): Document. | |
32165 | * optabs.def (scatter_store_optab, mask_scatter_store_optab): New | |
32166 | optabs. | |
32167 | * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}): | |
32168 | Document. | |
32169 | * genopinit.c (main): Add supports_vec_scatter_store and | |
32170 | supports_vec_scatter_store_cached to target_optabs. | |
32171 | * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and | |
32172 | IFN_MASK_SCATTER_STORE. | |
32173 | * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal | |
32174 | functions. | |
32175 | * internal-fn.h (internal_store_fn_p): Declare. | |
32176 | (internal_fn_stored_value_index): Likewise. | |
32177 | * internal-fn.c (scatter_store_direct): New macro. | |
32178 | (expand_scatter_store_optab_fn): New function. | |
32179 | (direct_scatter_store_optab_supported_p): New macro. | |
32180 | (internal_store_fn_p): New function. | |
32181 | (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and | |
32182 | IFN_MASK_SCATTER_STORE. | |
32183 | (internal_fn_mask_index): Likewise. | |
32184 | (internal_fn_stored_value_index): New function. | |
32185 | (internal_gather_scatter_fn_supported_p): Adjust operand numbers | |
32186 | for scatter stores. | |
32187 | * optabs-query.h (supports_vec_scatter_store_p): Declare. | |
32188 | * optabs-query.c (supports_vec_scatter_store_p): New function. | |
32189 | * tree-vectorizer.h (vect_get_store_rhs): Declare. | |
32190 | * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return | |
32191 | true for scatter stores. | |
32192 | (vect_gather_scatter_fn_p): Handle scatter stores too. | |
32193 | (vect_check_gather_scatter): Consider using scatter stores if | |
32194 | supports_vec_scatter_store_p. | |
32195 | * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle | |
32196 | scatter stores too. | |
32197 | * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use | |
32198 | internal_fn_stored_value_index. | |
32199 | (check_load_store_masking): Handle scatter stores too. | |
32200 | (vect_get_store_rhs): Make public. | |
32201 | (vectorizable_call): Use internal_store_fn_p. | |
32202 | (vectorizable_store): Handle scatter store internal functions. | |
32203 | (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE | |
32204 | when deciding whether the end of the group has been reached. | |
32205 | * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec. | |
32206 | * config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander. | |
32207 | (mask_scatter_store<mode>): New insns. | |
32208 | ||
32209 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32210 | Alan Hayward <alan.hayward@arm.com> | |
32211 | David Sherwood <david.sherwood@arm.com> | |
32212 | ||
32213 | * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare. | |
32214 | * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public. | |
32215 | * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New | |
32216 | function. | |
32217 | (vect_use_strided_gather_scatters_p): Take a masked_p argument. | |
32218 | Use vect_truncate_gather_scatter_offset if we can't treat the | |
32219 | operation as a normal gather load or scatter store. | |
32220 | (get_group_load_store_type): Take the gather_scatter_info | |
32221 | as argument. Try using a gather load or scatter store for | |
32222 | single-element groups. | |
32223 | (get_load_store_type): Update calls to get_group_load_store_type | |
32224 | and vect_use_strided_gather_scatters_p. | |
32225 | ||
32226 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32227 | Alan Hayward <alan.hayward@arm.com> | |
32228 | David Sherwood <david.sherwood@arm.com> | |
32229 | ||
32230 | * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra | |
32231 | optional tree argument. | |
32232 | * tree-vect-data-refs.c (vect_check_gather_scatter): Check for | |
32233 | null target hooks. | |
32234 | (vect_create_data_ref_ptr): Take the iv_step as an optional argument, | |
32235 | but continue to use the current value as a fallback. | |
32236 | (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare | |
32237 | to compare the updates. | |
32238 | * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function. | |
32239 | (get_load_store_type): Use it when handling a strided access. | |
32240 | (vect_get_strided_load_store_ops): New function. | |
32241 | (vect_get_data_ptr_increment): Likewise. | |
32242 | (vectorizable_load): Handle strided gather loads. Always pass | |
32243 | a step to vect_create_data_ref_ptr and bump_vector_ptr. | |
32244 | ||
32245 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32246 | Alan Hayward <alan.hayward@arm.com> | |
32247 | David Sherwood <david.sherwood@arm.com> | |
32248 | ||
32249 | * doc/md.texi (gather_load@var{m}): Document. | |
32250 | (mask_gather_load@var{m}): Likewise. | |
32251 | * genopinit.c (main): Add supports_vec_gather_load and | |
32252 | supports_vec_gather_load_cached to target_optabs. | |
32253 | * optabs-tree.c (init_tree_optimization_optabs): Use | |
32254 | ggc_cleared_alloc to allocate target_optabs. | |
32255 | * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs. | |
32256 | * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal | |
32257 | functions. | |
32258 | * internal-fn.h (internal_load_fn_p): Declare. | |
32259 | (internal_gather_scatter_fn_p): Likewise. | |
32260 | (internal_fn_mask_index): Likewise. | |
32261 | (internal_gather_scatter_fn_supported_p): Likewise. | |
32262 | * internal-fn.c (gather_load_direct): New macro. | |
32263 | (expand_gather_load_optab_fn): New function. | |
32264 | (direct_gather_load_optab_supported_p): New macro. | |
32265 | (direct_internal_fn_optab): New function. | |
32266 | (internal_load_fn_p): Likewise. | |
32267 | (internal_gather_scatter_fn_p): Likewise. | |
32268 | (internal_fn_mask_index): Likewise. | |
32269 | (internal_gather_scatter_fn_supported_p): Likewise. | |
32270 | * optabs-query.c (supports_at_least_one_mode_p): New function. | |
32271 | (supports_vec_gather_load_p): Likewise. | |
32272 | * optabs-query.h (supports_vec_gather_load_p): Declare. | |
32273 | * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type | |
32274 | and memory_type field. | |
32275 | (NUM_PATTERNS): Bump to 15. | |
32276 | * tree-vect-data-refs.c: Include internal-fn.h. | |
32277 | (vect_gather_scatter_fn_p): New function. | |
32278 | (vect_describe_gather_scatter_call): Likewise. | |
32279 | (vect_check_gather_scatter): Try using internal functions for | |
32280 | gather loads. Recognize existing calls to a gather load function. | |
32281 | (vect_analyze_data_refs): Consider using gather loads if | |
32282 | supports_vec_gather_load_p. | |
32283 | * tree-vect-patterns.c (vect_get_load_store_mask): New function. | |
32284 | (vect_get_gather_scatter_offset_type): Likewise. | |
32285 | (vect_convert_mask_for_vectype): Likewise. | |
32286 | (vect_add_conversion_to_patterm): Likewise. | |
32287 | (vect_try_gather_scatter_pattern): Likewise. | |
32288 | (vect_recog_gather_scatter_pattern): New pattern recognizer. | |
32289 | (vect_vect_recog_func_ptrs): Add it. | |
32290 | * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use | |
32291 | internal_fn_mask_index and internal_gather_scatter_fn_p. | |
32292 | (check_load_store_masking): Take the gather_scatter_info as an | |
32293 | argument and handle gather loads. | |
32294 | (vect_get_gather_scatter_ops): New function. | |
32295 | (vectorizable_call): Check internal_load_fn_p. | |
32296 | (vectorizable_load): Likewise. Handle gather load internal | |
32297 | functions. | |
32298 | (vectorizable_store): Update call to check_load_store_masking. | |
32299 | * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec. | |
32300 | * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators. | |
32301 | * config/aarch64/predicates.md (aarch64_gather_scale_operand_w) | |
32302 | (aarch64_gather_scale_operand_d): New predicates. | |
32303 | * config/aarch64/aarch64-sve.md (gather_load<mode>): New expander. | |
32304 | (mask_gather_load<mode>): New insns. | |
32305 | ||
32306 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32307 | Alan Hayward <alan.hayward@arm.com> | |
32308 | David Sherwood <david.sherwood@arm.com> | |
32309 | ||
32310 | * optabs.def (fold_left_plus_optab): New optab. | |
32311 | * doc/md.texi (fold_left_plus_@var{m}): Document. | |
32312 | * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function. | |
32313 | * internal-fn.c (fold_left_direct): Define. | |
32314 | (expand_fold_left_optab_fn): Likewise. | |
32315 | (direct_fold_left_optab_supported_p): Likewise. | |
32316 | * fold-const-call.c (fold_const_fold_left): New function. | |
32317 | (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS. | |
32318 | * tree-parloops.c (valid_reduction_p): New function. | |
32319 | (gather_scalar_reductions): Use it. | |
32320 | * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type. | |
32321 | (vect_finish_replace_stmt): Declare. | |
32322 | * tree-vect-loop.c (fold_left_reduction_fn): New function. | |
32323 | (needs_fold_left_reduction_p): New function, split out from... | |
32324 | (vect_is_simple_reduction): ...here. Accept reductions that | |
32325 | forbid reassociation, but give them type FOLD_LEFT_REDUCTION. | |
32326 | (vect_force_simple_reduction): Also store the reduction type in | |
32327 | the assignment's STMT_VINFO_REDUC_TYPE. | |
32328 | (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION. | |
32329 | (merge_with_identity): New function. | |
32330 | (vect_expand_fold_left): Likewise. | |
32331 | (vectorize_fold_left_reduction): Likewise. | |
32332 | (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION. Leave the | |
32333 | scalar phi in place for it. Check for target support and reject | |
32334 | cases that would reassociate the operation. Defer the transform | |
32335 | phase to vectorize_fold_left_reduction. | |
32336 | * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec. | |
32337 | * config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander. | |
32338 | (*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns. | |
32339 | ||
32340 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32341 | ||
32342 | * tree-if-conv.c (predicate_mem_writes): Remove redundant | |
32343 | call to ifc_temp_var. | |
32344 | ||
32345 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32346 | Alan Hayward <alan.hayward@arm.com> | |
32347 | David Sherwood <david.sherwood@arm.com> | |
32348 | ||
32349 | * target.def (legitimize_address_displacement): Take the original | |
32350 | offset as a poly_int. | |
32351 | * targhooks.h (default_legitimize_address_displacement): Update | |
32352 | accordingly. | |
32353 | * targhooks.c (default_legitimize_address_displacement): Likewise. | |
32354 | * doc/tm.texi: Regenerate. | |
32355 | * lra-constraints.c (base_plus_disp_to_reg): Take the displacement | |
32356 | as an argument, moving assert of ad->disp == ad->disp_term to... | |
32357 | (process_address_1): ...here. Update calls to base_plus_disp_to_reg. | |
32358 | Try calling targetm.legitimize_address_displacement before expanding | |
32359 | the address rather than afterwards, and adjust for the new interface. | |
32360 | * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): | |
32361 | Match the new hook interface. Handle SVE addresses. | |
32362 | * config/sh/sh.c (sh_legitimize_address_displacement): Make the | |
32363 | new hook interface. | |
32364 | ||
32365 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32366 | ||
32367 | * Makefile.in (OBJS): Add early-remat.o. | |
32368 | * target.def (select_early_remat_modes): New hook. | |
32369 | * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook. | |
32370 | * doc/tm.texi: Regenerate. | |
32371 | * targhooks.h (default_select_early_remat_modes): Declare. | |
32372 | * targhooks.c (default_select_early_remat_modes): New function. | |
32373 | * timevar.def (TV_EARLY_REMAT): New timevar. | |
32374 | * passes.def (pass_early_remat): New pass. | |
32375 | * tree-pass.h (make_pass_early_remat): Declare. | |
32376 | * early-remat.c: New file. | |
32377 | * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New | |
32378 | function. | |
32379 | (TARGET_SELECT_EARLY_REMAT_MODES): Define. | |
32380 | ||
32381 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32382 | Alan Hayward <alan.hayward@arm.com> | |
32383 | David Sherwood <david.sherwood@arm.com> | |
32384 | ||
32385 | * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace | |
32386 | vfm1 with a bound_epilog parameter. | |
32387 | (vect_do_peeling): Update calls accordingly, and move the prologue | |
32388 | call earlier in the function. Treat the base bound_epilog as 0 for | |
32389 | fully-masked loops and retain vf - 1 for other loops. Add 1 to | |
32390 | this base when peeling for gaps. | |
32391 | * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps | |
32392 | with fully-masked loops. | |
32393 | (vect_estimate_min_profitable_iters): Handle the single peeled | |
32394 | iteration in that case. | |
32395 | ||
32396 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32397 | Alan Hayward <alan.hayward@arm.com> | |
32398 | David Sherwood <david.sherwood@arm.com> | |
32399 | ||
32400 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow | |
32401 | single-element interleaving even if the size is not a power of 2. | |
32402 | * tree-vect-stmts.c (get_load_store_type): Disallow elementwise | |
32403 | accesses for single-element interleaving if the group size is | |
32404 | not a power of 2. | |
32405 | ||
32406 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32407 | Alan Hayward <alan.hayward@arm.com> | |
32408 | David Sherwood <david.sherwood@arm.com> | |
32409 | ||
32410 | * doc/md.texi (fold_extract_last_@var{m}): Document. | |
32411 | * doc/sourcebuild.texi (vect_fold_extract_last): Likewise. | |
32412 | * optabs.def (fold_extract_last_optab): New optab. | |
32413 | * internal-fn.def (FOLD_EXTRACT_LAST): New internal function. | |
32414 | * internal-fn.c (fold_extract_direct): New macro. | |
32415 | (expand_fold_extract_optab_fn): Likewise. | |
32416 | (direct_fold_extract_optab_supported_p): Likewise. | |
32417 | * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type. | |
32418 | * tree-vect-loop.c (vect_model_reduction_cost): Handle | |
32419 | EXTRACT_LAST_REDUCTION. | |
32420 | (get_initial_def_for_reduction): Do not create an initial vector | |
32421 | for EXTRACT_LAST_REDUCTION reductions. | |
32422 | (vectorizable_reduction): Leave the scalar phi in place for | |
32423 | EXTRACT_LAST_REDUCTIONs. Try using EXTRACT_LAST_REDUCTION | |
32424 | ahead of INTEGER_INDUC_COND_REDUCTION. Do not check for an | |
32425 | epilogue code for EXTRACT_LAST_REDUCTION and defer the | |
32426 | transform phase to vectorizable_condition. | |
32427 | * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function, | |
32428 | split out from... | |
32429 | (vect_finish_stmt_generation): ...here. | |
32430 | (vect_finish_replace_stmt): New function. | |
32431 | (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION. | |
32432 | * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New | |
32433 | pattern. | |
32434 | * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec. | |
32435 | ||
32436 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32437 | Alan Hayward <alan.hayward@arm.com> | |
32438 | David Sherwood <david.sherwood@arm.com> | |
32439 | ||
32440 | * doc/md.texi (extract_last_@var{m}): Document. | |
32441 | * optabs.def (extract_last_optab): New optab. | |
32442 | * internal-fn.def (EXTRACT_LAST): New internal function. | |
32443 | * internal-fn.c (cond_unary_direct): New macro. | |
32444 | (expand_cond_unary_optab_fn): Likewise. | |
32445 | (direct_cond_unary_optab_supported_p): Likewise. | |
32446 | * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked | |
32447 | loops using EXTRACT_LAST. | |
32448 | * config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to... | |
32449 | (extract_last_<mode>): ...this optab. | |
32450 | (vec_extract<mode><Vel>): Update accordingly. | |
32451 | ||
32452 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32453 | Alan Hayward <alan.hayward@arm.com> | |
32454 | David Sherwood <david.sherwood@arm.com> | |
32455 | ||
32456 | * target.def (empty_mask_is_expensive): New hook. | |
32457 | * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook. | |
32458 | * doc/tm.texi: Regenerate. | |
32459 | * targhooks.h (default_empty_mask_is_expensive): Declare. | |
32460 | * targhooks.c (default_empty_mask_is_expensive): New function. | |
32461 | * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores | |
32462 | if the target says that empty masks are expensive. | |
32463 | * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive): | |
32464 | New function. | |
32465 | (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine. | |
32466 | ||
32467 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32468 | Alan Hayward <alan.hayward@arm.com> | |
32469 | David Sherwood <david.sherwood@arm.com> | |
32470 | ||
32471 | * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field. | |
32472 | (LOOP_VINFO_MASK_SKIP_NITERS): New macro. | |
32473 | (vect_use_loop_mask_for_alignment_p): New function. | |
32474 | (vect_prepare_for_masked_peels, vect_gen_while_not): Declare. | |
32475 | * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an | |
32476 | niters_skip argument. Make sure that the first niters_skip elements | |
32477 | of the first iteration are inactive. | |
32478 | (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS. | |
32479 | Update call to vect_set_loop_masks_directly. | |
32480 | (get_misalign_in_elems): New function, split out from... | |
32481 | (vect_gen_prolog_loop_niters): ...here. | |
32482 | (vect_update_init_of_dr): Take a code argument that specifies whether | |
32483 | the adjustment should be added or subtracted. | |
32484 | (vect_update_init_of_drs): Likewise. | |
32485 | (vect_prepare_for_masked_peels): New function. | |
32486 | (vect_do_peeling): Skip prologue peeling if we're using a mask | |
32487 | instead. Update call to vect_update_inits_of_drs. | |
32488 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
32489 | mask_skip_niters. | |
32490 | (vect_analyze_loop_2): Allow fully-masked loops with peeling for | |
32491 | alignment. Do not include the number of peeled iterations in | |
32492 | the minimum threshold in that case. | |
32493 | (vectorizable_induction): Adjust the start value down by | |
32494 | LOOP_VINFO_MASK_SKIP_NITERS iterations. | |
32495 | (vect_transform_loop): Call vect_prepare_for_masked_peels. | |
32496 | Take the number of skipped iterations into account when calculating | |
32497 | the loop bounds. | |
32498 | * tree-vect-stmts.c (vect_gen_while_not): New function. | |
32499 | ||
32500 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32501 | Alan Hayward <alan.hayward@arm.com> | |
32502 | David Sherwood <david.sherwood@arm.com> | |
32503 | ||
32504 | * doc/sourcebuild.texi (vect_fully_masked): Document. | |
32505 | * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and | |
32506 | default value to 0. | |
32507 | * tree-vect-loop.c (vect_analyze_loop_costing): New function, | |
32508 | split out from... | |
32509 | (vect_analyze_loop_2): ...here. Don't check the vectorization | |
32510 | factor against the number of loop iterations if the loop is | |
32511 | fully-masked. | |
32512 | ||
32513 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32514 | Alan Hayward <alan.hayward@arm.com> | |
32515 | David Sherwood <david.sherwood@arm.com> | |
32516 | ||
32517 | * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into... | |
32518 | (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types. | |
32519 | (dump_groups): Update accordingly. | |
32520 | (iv_use::mem_type): New member variable. | |
32521 | (address_p): New function. | |
32522 | (record_use): Add a mem_type argument and initialize the new | |
32523 | mem_type field. | |
32524 | (record_group_use): Add a mem_type argument. Use address_p. | |
32525 | Remove obsolete null checks of base_object. Update call to record_use. | |
32526 | (find_interesting_uses_op): Update call to record_group_use. | |
32527 | (find_interesting_uses_cond): Likewise. | |
32528 | (find_interesting_uses_address): Likewise. | |
32529 | (get_mem_type_for_internal_fn): New function. | |
32530 | (find_address_like_use): Likewise. | |
32531 | (find_interesting_uses_stmt): Try find_address_like_use before | |
32532 | calling find_interesting_uses_op. | |
32533 | (addr_offset_valid_p): Use the iv mem_type field as the type | |
32534 | of the addressed memory. | |
32535 | (add_autoinc_candidates): Likewise. | |
32536 | (get_address_cost): Likewise. | |
32537 | (split_small_address_groups_p): Use address_p. | |
32538 | (split_address_groups): Likewise. | |
32539 | (add_iv_candidate_for_use): Likewise. | |
32540 | (autoinc_possible_for_pair): Likewise. | |
32541 | (rewrite_groups): Likewise. | |
32542 | (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS. | |
32543 | (determine_group_iv_cost): Update after split of USE_ADDRESS. | |
32544 | (get_alias_ptr_type_for_ptr_address): New function. | |
32545 | (rewrite_use_address): Rewrite address uses in calls that were | |
32546 | identified by find_address_like_use. | |
32547 | ||
32548 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32549 | Alan Hayward <alan.hayward@arm.com> | |
32550 | David Sherwood <david.sherwood@arm.com> | |
32551 | ||
32552 | * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of | |
32553 | TARGET_MEM_REFs. | |
32554 | * gimple-expr.h (is_gimple_addressable: Likewise. | |
32555 | * gimple-expr.c (is_gimple_address): Likewise. | |
32556 | * internal-fn.c (expand_call_mem_ref): New function. | |
32557 | (expand_mask_load_optab_fn): Use it. | |
32558 | (expand_mask_store_optab_fn): Likewise. | |
32559 | ||
32560 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32561 | Alan Hayward <alan.hayward@arm.com> | |
32562 | David Sherwood <david.sherwood@arm.com> | |
32563 | ||
32564 | * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode}) | |
32565 | (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode}) | |
32566 | (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode}) | |
32567 | (cond_umax@var{mode}): Document. | |
32568 | * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab) | |
32569 | (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab) | |
32570 | (cond_umin_optab, cond_umax_optab): New optabs. | |
32571 | * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND) | |
32572 | (COND_IOR, COND_XOR): New internal functions. | |
32573 | * internal-fn.h (get_conditional_internal_fn): Declare. | |
32574 | * internal-fn.c (cond_binary_direct): New macro. | |
32575 | (expand_cond_binary_optab_fn): Likewise. | |
32576 | (direct_cond_binary_optab_supported_p): Likewise. | |
32577 | (get_conditional_internal_fn): New function. | |
32578 | * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops. | |
32579 | Cope with reduction statements that are vectorized as calls rather | |
32580 | than assignments. | |
32581 | * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns. | |
32582 | * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB) | |
32583 | (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN) | |
32584 | (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) | |
32585 | (UNSPEC_COND_EOR): New unspecs. | |
32586 | (optab): Add mappings for them. | |
32587 | (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators. | |
32588 | (sve_int_op, sve_fp_op): New int attributes. | |
32589 | ||
32590 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32591 | Alan Hayward <alan.hayward@arm.com> | |
32592 | David Sherwood <david.sherwood@arm.com> | |
32593 | ||
32594 | * optabs.def (while_ult_optab): New optab. | |
32595 | * doc/md.texi (while_ult@var{m}@var{n}): Document. | |
32596 | * internal-fn.def (WHILE_ULT): New internal function. | |
32597 | * internal-fn.h (direct_internal_fn_supported_p): New override | |
32598 | that takes two types as argument. | |
32599 | * internal-fn.c (while_direct): New macro. | |
32600 | (expand_while_optab_fn): New function. | |
32601 | (convert_optab_supported_p): Likewise. | |
32602 | (direct_while_optab_supported_p): New macro. | |
32603 | * wide-int.h (wi::udiv_ceil): New function. | |
32604 | * tree-vectorizer.h (rgroup_masks): New structure. | |
32605 | (vec_loop_masks): New typedef. | |
32606 | (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p | |
32607 | and fully_masked_p. | |
32608 | (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P) | |
32609 | (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros. | |
32610 | (vect_max_vf): New function. | |
32611 | (slpeel_make_loop_iterate_ntimes): Delete. | |
32612 | (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while) | |
32613 | (vect_halve_mask_nunits, vect_double_mask_nunits): Declare. | |
32614 | (vect_record_loop_mask, vect_get_loop_mask): Likewise. | |
32615 | * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h, | |
32616 | internal-fn.h, stor-layout.h and optabs-query.h. | |
32617 | (vect_set_loop_mask): New function. | |
32618 | (add_preheader_seq): Likewise. | |
32619 | (add_header_seq): Likewise. | |
32620 | (interleave_supported_p): Likewise. | |
32621 | (vect_maybe_permute_loop_masks): Likewise. | |
32622 | (vect_set_loop_masks_directly): Likewise. | |
32623 | (vect_set_loop_condition_masked): Likewise. | |
32624 | (vect_set_loop_condition_unmasked): New function, split out from | |
32625 | slpeel_make_loop_iterate_ntimes. | |
32626 | (slpeel_make_loop_iterate_ntimes): Rename to.. | |
32627 | (vect_set_loop_condition): ...this. Use vect_set_loop_condition_masked | |
32628 | for fully-masked loops and vect_set_loop_condition_unmasked otherwise. | |
32629 | (vect_do_peeling): Update call accordingly. | |
32630 | (vect_gen_vector_loop_niters): Use VF as the step for fully-masked | |
32631 | loops. | |
32632 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
32633 | mask_compare_type, can_fully_mask_p and fully_masked_p. | |
32634 | (release_vec_loop_masks): New function. | |
32635 | (_loop_vec_info): Use it to free the loop masks. | |
32636 | (can_produce_all_loop_masks_p): New function. | |
32637 | (vect_get_max_nscalars_per_iter): Likewise. | |
32638 | (vect_verify_full_masking): Likewise. | |
32639 | (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around | |
32640 | retries, and free the mask rgroups before retrying. Check loop-wide | |
32641 | reasons for disallowing fully-masked loops. Make the final decision | |
32642 | about whether use a fully-masked loop or not. | |
32643 | (vect_estimate_min_profitable_iters): Do not assume that peeling | |
32644 | for the number of iterations will be needed for fully-masked loops. | |
32645 | (vectorizable_reduction): Disable fully-masked loops. | |
32646 | (vectorizable_live_operation): Likewise. | |
32647 | (vect_halve_mask_nunits): New function. | |
32648 | (vect_double_mask_nunits): Likewise. | |
32649 | (vect_record_loop_mask): Likewise. | |
32650 | (vect_get_loop_mask): Likewise. | |
32651 | (vect_transform_loop): Handle the case in which the final loop | |
32652 | iteration might handle a partial vector. Call vect_set_loop_condition | |
32653 | instead of slpeel_make_loop_iterate_ntimes. | |
32654 | * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h. | |
32655 | (check_load_store_masking): New function. | |
32656 | (prepare_load_store_mask): Likewise. | |
32657 | (vectorizable_store): Handle fully-masked loops. | |
32658 | (vectorizable_load): Likewise. | |
32659 | (supportable_widening_operation): Use vect_halve_mask_nunits for | |
32660 | booleans. | |
32661 | (supportable_narrowing_operation): Likewise vect_double_mask_nunits. | |
32662 | (vect_gen_while): New function. | |
32663 | * config/aarch64/aarch64.md (umax<mode>3): New expander. | |
32664 | (aarch64_uqdec<mode>): New insn. | |
32665 | ||
32666 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32667 | Alan Hayward <alan.hayward@arm.com> | |
32668 | David Sherwood <david.sherwood@arm.com> | |
32669 | ||
32670 | * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab) | |
32671 | (reduc_xor_scal_optab): New optabs. | |
32672 | * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m}) | |
32673 | (reduc_xor_scal_@var{m}): Document. | |
32674 | * doc/sourcebuild.texi (vect_logical_reduc): Likewise. | |
32675 | * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New | |
32676 | internal functions. | |
32677 | * fold-const-call.c (fold_const_call): Handle them. | |
32678 | * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new | |
32679 | internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. | |
32680 | * config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>): | |
32681 | (*reduc_<bit_reduc>_scal_<mode>): New patterns. | |
32682 | * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV) | |
32683 | (UNSPEC_XORV): New unspecs. | |
32684 | (optab): Add entries for them. | |
32685 | (BITWISEV): New int iterator. | |
32686 | (bit_reduc_op): New int attributes. | |
32687 | ||
32688 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32689 | Alan Hayward <alan.hayward@arm.com> | |
32690 | David Sherwood <david.sherwood@arm.com> | |
32691 | ||
32692 | * doc/md.texi (vec_shl_insert_@var{m}): New optab. | |
32693 | * internal-fn.def (VEC_SHL_INSERT): New internal function. | |
32694 | * optabs.def (vec_shl_insert_optab): New optab. | |
32695 | * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare. | |
32696 | (duplicate_and_interleave): Likewise. | |
32697 | * tree-vect-loop.c: Include internal-fn.h. | |
32698 | (neutral_op_for_slp_reduction): New function, split out from | |
32699 | get_initial_defs_for_reduction. | |
32700 | (get_initial_def_for_reduction): Handle option 2 for variable-length | |
32701 | vectors by loading the neutral value into a vector and then shifting | |
32702 | the initial value into element 0. | |
32703 | (get_initial_defs_for_reduction): Replace the code argument with | |
32704 | the neutral value calculated by neutral_op_for_slp_reduction. | |
32705 | Use gimple_build_vector for constant-length vectors. | |
32706 | Use IFN_VEC_SHL_INSERT for variable-length vectors if all | |
32707 | but the first group_size elements have a neutral value. | |
32708 | Use duplicate_and_interleave otherwise. | |
32709 | (vect_create_epilog_for_reduction): Take a neutral_op parameter. | |
32710 | Update call to get_initial_defs_for_reduction. Handle SLP | |
32711 | reductions for variable-length vectors by creating one vector | |
32712 | result for each scalar result, with the elements associated | |
32713 | with other scalar results stubbed out with the neutral value. | |
32714 | (vectorizable_reduction): Call neutral_op_for_slp_reduction. | |
32715 | Require IFN_VEC_SHL_INSERT for double reductions on | |
32716 | variable-length vectors, or SLP reductions that have | |
32717 | a neutral value. Require can_duplicate_and_interleave_p | |
32718 | support for variable-length unchained SLP reductions if there | |
32719 | is no neutral value, such as for MIN/MAX reductions. Also require | |
32720 | the number of vector elements to be a multiple of the number of | |
32721 | SLP statements when doing variable-length unchained SLP reductions. | |
32722 | Update call to vect_create_epilog_for_reduction. | |
32723 | * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public | |
32724 | and remove initial values. | |
32725 | (duplicate_and_interleave): Make public. | |
32726 | * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec. | |
32727 | * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn. | |
32728 | ||
32729 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32730 | Alan Hayward <alan.hayward@arm.com> | |
32731 | David Sherwood <david.sherwood@arm.com> | |
32732 | ||
32733 | * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h | |
32734 | (can_duplicate_and_interleave_p): New function. | |
32735 | (vect_get_and_check_slp_defs): Take the vector of statements | |
32736 | rather than just the current one. Remove excess parentheses. | |
32737 | Restriction rejectinon of vect_constant_def and vect_external_def | |
32738 | for variable-length vectors to boolean types, or types for which | |
32739 | can_duplicate_and_interleave_p is false. | |
32740 | (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs. | |
32741 | (duplicate_and_interleave): New function. | |
32742 | (vect_get_constant_vectors): Use gimple_build_vector for | |
32743 | constant-length vectors and suitable variable-length constant | |
32744 | vectors. Use duplicate_and_interleave for other variable-length | |
32745 | vectors. Don't defer the update when inserting new statements. | |
32746 | ||
32747 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32748 | Alan Hayward <alan.hayward@arm.com> | |
32749 | David Sherwood <david.sherwood@arm.com> | |
32750 | ||
32751 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure | |
32752 | min_profitable_iters doesn't go negative. | |
32753 | ||
32754 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32755 | Alan Hayward <alan.hayward@arm.com> | |
32756 | David Sherwood <david.sherwood@arm.com> | |
32757 | ||
32758 | * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. | |
32759 | (vec_mask_store_lanes@var{m}@var{n}): Likewise. | |
32760 | * optabs.def (vec_mask_load_lanes_optab): New optab. | |
32761 | (vec_mask_store_lanes_optab): Likewise. | |
32762 | * internal-fn.def (MASK_LOAD_LANES): New internal function. | |
32763 | (MASK_STORE_LANES): Likewise. | |
32764 | * internal-fn.c (mask_load_lanes_direct): New macro. | |
32765 | (mask_store_lanes_direct): Likewise. | |
32766 | (expand_mask_load_optab_fn): Handle masked operations. | |
32767 | (expand_mask_load_lanes_optab_fn): New macro. | |
32768 | (expand_mask_store_optab_fn): Handle masked operations. | |
32769 | (expand_mask_store_lanes_optab_fn): New macro. | |
32770 | (direct_mask_load_lanes_optab_supported_p): Likewise. | |
32771 | (direct_mask_store_lanes_optab_supported_p): Likewise. | |
32772 | * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p | |
32773 | parameter. | |
32774 | (vect_load_lanes_supported): Likewise. | |
32775 | * tree-vect-data-refs.c (strip_conversion): New function. | |
32776 | (can_group_stmts_p): Likewise. | |
32777 | (vect_analyze_data_ref_accesses): Use it instead of checking | |
32778 | for a pair of assignments. | |
32779 | (vect_store_lanes_supported): Take a masked_p parameter. | |
32780 | (vect_load_lanes_supported): Likewise. | |
32781 | * tree-vect-loop.c (vect_analyze_loop_2): Update calls to | |
32782 | vect_store_lanes_supported and vect_load_lanes_supported. | |
32783 | * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. | |
32784 | * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p | |
32785 | parameter. Don't allow gaps for masked accesses. | |
32786 | Use vect_get_store_rhs. Update calls to vect_store_lanes_supported | |
32787 | and vect_load_lanes_supported. | |
32788 | (get_load_store_type): Take a masked_p parameter and update | |
32789 | call to get_group_load_store_type. | |
32790 | (vectorizable_store): Update call to get_load_store_type. | |
32791 | Handle IFN_MASK_STORE_LANES. | |
32792 | (vectorizable_load): Update call to get_load_store_type. | |
32793 | Handle IFN_MASK_LOAD_LANES. | |
32794 | ||
32795 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32796 | Alan Hayward <alan.hayward@arm.com> | |
32797 | David Sherwood <david.sherwood@arm.com> | |
32798 | ||
32799 | * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector | |
32800 | modes for SVE. | |
32801 | * config/aarch64/aarch64-protos.h | |
32802 | (aarch64_sve_struct_memory_operand_p): Declare. | |
32803 | * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator. | |
32804 | (vector_count, insn_length, VSINGLE, vsingle): New mode attributes. | |
32805 | (VPRED, vpred): Handle SVE structure modes. | |
32806 | * config/aarch64/constraints.md (Utx): New constraint. | |
32807 | * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand) | |
32808 | (aarch64_sve_struct_nonimmediate_operand): New predicates. | |
32809 | * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs. | |
32810 | * config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le) | |
32811 | (*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for | |
32812 | structure modes. Split into pieces after RA. | |
32813 | (vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>) | |
32814 | (vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>): | |
32815 | New patterns. | |
32816 | * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle | |
32817 | SVE structure modes. | |
32818 | (aarch64_classify_address): Likewise. | |
32819 | (sizetochar): Move earlier in file. | |
32820 | (aarch64_print_operand): Handle SVE register lists. | |
32821 | (aarch64_array_mode): New function. | |
32822 | (aarch64_sve_struct_memory_operand_p): Likewise. | |
32823 | (TARGET_ARRAY_MODE): Redefine. | |
32824 | ||
32825 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32826 | Alan Hayward <alan.hayward@arm.com> | |
32827 | David Sherwood <david.sherwood@arm.com> | |
32828 | ||
32829 | * target.def (array_mode): New target hook. | |
32830 | * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook. | |
32831 | * doc/tm.texi: Regenerate. | |
32832 | * hooks.h (hook_optmode_mode_uhwi_none): Declare. | |
32833 | * hooks.c (hook_optmode_mode_uhwi_none): New function. | |
32834 | * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use | |
32835 | targetm.array_mode. | |
32836 | * stor-layout.c (mode_for_array): Likewise. Support polynomial | |
32837 | type sizes. | |
32838 | ||
32839 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32840 | Alan Hayward <alan.hayward@arm.com> | |
32841 | David Sherwood <david.sherwood@arm.com> | |
32842 | ||
32843 | * fold-const.c (fold_binary_loc): Check the argument types | |
32844 | rather than the result type when testing for a vector operation. | |
32845 | ||
32846 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32847 | ||
32848 | * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. | |
32849 | * doc/tm.texi: Regenerate. | |
32850 | ||
32851 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
32852 | Alan Hayward <alan.hayward@arm.com> | |
32853 | David Sherwood <david.sherwood@arm.com> | |
32854 | ||
32855 | * doc/invoke.texi (-msve-vector-bits=): Document new option. | |
32856 | (sve): Document new AArch64 extension. | |
32857 | * doc/md.texi (w): Extend the description of the AArch64 | |
32858 | constraint to include SVE vectors. | |
32859 | (Upl, Upa): Document new AArch64 predicate constraints. | |
32860 | * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New | |
32861 | enum. | |
32862 | * config/aarch64/aarch64.opt (sve_vector_bits): New enum. | |
32863 | (msve-vector-bits=): New option. | |
32864 | * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable | |
32865 | SVE when these are disabled. | |
32866 | (sve): New extension. | |
32867 | * config/aarch64/aarch64-modes.def: Define SVE vector and predicate | |
32868 | modes. Adjust their number of units based on aarch64_sve_vg. | |
32869 | (MAX_BITSIZE_MODE_ANY_MODE): Define. | |
32870 | * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New | |
32871 | aarch64_addr_query_type. | |
32872 | (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode) | |
32873 | (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p) | |
32874 | (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries) | |
32875 | (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate) | |
32876 | (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate) | |
32877 | (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare. | |
32878 | (aarch64_simd_imm_zero_p): Delete. | |
32879 | (aarch64_check_zero_based_sve_index_immediate): Declare. | |
32880 | (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) | |
32881 | (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) | |
32882 | (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) | |
32883 | (aarch64_sve_float_mul_immediate_p): Likewise. | |
32884 | (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT | |
32885 | rather than an rtx. | |
32886 | (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare. | |
32887 | (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback. | |
32888 | (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare. | |
32889 | (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float) | |
32890 | (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare. | |
32891 | (aarch64_regmode_natural_size): Likewise. | |
32892 | * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro. | |
32893 | (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift | |
32894 | left one place. | |
32895 | (AARCH64_ISA_SVE, TARGET_SVE): New macros. | |
32896 | (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries | |
32897 | for VG and the SVE predicate registers. | |
32898 | (V_ALIASES): Add a "z"-prefixed alias. | |
32899 | (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1. | |
32900 | (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros. | |
32901 | (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise. | |
32902 | (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes. | |
32903 | (REG_CLASS_NAMES): Add entries for them. | |
32904 | (REG_CLASS_CONTENTS): Likewise. Update ALL_REGS to include VG | |
32905 | and the predicate registers. | |
32906 | (aarch64_sve_vg): Declare. | |
32907 | (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED) | |
32908 | (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros. | |
32909 | (REGMODE_NATURAL_SIZE): Define. | |
32910 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle | |
32911 | SVE macros. | |
32912 | * config/aarch64/aarch64.c: Include cfgrtl.h. | |
32913 | (simd_immediate_info): Add a constructor for series vectors, | |
32914 | and an associated step field. | |
32915 | (aarch64_sve_vg): New variable. | |
32916 | (aarch64_dbx_register_number): Handle VG and the predicate registers. | |
32917 | (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete. | |
32918 | (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE) | |
32919 | (VEC_ANY_DATA, VEC_STRUCT): New constants. | |
32920 | (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p) | |
32921 | (aarch64_classify_vector_mode, aarch64_vector_data_mode_p) | |
32922 | (aarch64_sve_data_mode_p, aarch64_sve_pred_mode) | |
32923 | (aarch64_get_mask_mode): New functions. | |
32924 | (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS | |
32925 | and FP_LO_REGS. Handle PR_REGS, PR_LO_REGS and PR_HI_REGS. | |
32926 | (aarch64_hard_regno_mode_ok): Handle VG. Also handle the SVE | |
32927 | predicate modes and predicate registers. Explicitly restrict | |
32928 | GPRs to modes of 16 bytes or smaller. Only allow FP registers | |
32929 | to store a vector mode if it is recognized by | |
32930 | aarch64_classify_vector_mode. | |
32931 | (aarch64_regmode_natural_size): New function. | |
32932 | (aarch64_hard_regno_caller_save_mode): Return the original mode | |
32933 | for predicates. | |
32934 | (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate) | |
32935 | (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl) | |
32936 | (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate) | |
32937 | (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New | |
32938 | functions. | |
32939 | (aarch64_add_offset): Add a temp2 parameter. Assert that temp1 | |
32940 | does not overlap dest if the function is frame-related. Handle | |
32941 | SVE constants. | |
32942 | (aarch64_split_add_offset): New function. | |
32943 | (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass | |
32944 | them aarch64_add_offset. | |
32945 | (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter | |
32946 | and update call to aarch64_sub_sp. | |
32947 | (aarch64_add_cfa_expression): New function. | |
32948 | (aarch64_expand_prologue): Pass extra temporary registers to the | |
32949 | functions above. Handle the case in which we need to emit new | |
32950 | DW_CFA_expressions for registers that were originally saved | |
32951 | relative to the stack pointer, but now have to be expressed | |
32952 | relative to the frame pointer. | |
32953 | (aarch64_output_mi_thunk): Pass extra temporary registers to the | |
32954 | functions above. | |
32955 | (aarch64_expand_epilogue): Likewise. Prevent inheritance of | |
32956 | IP0 and IP1 values for SVE frames. | |
32957 | (aarch64_expand_vec_series): New function. | |
32958 | (aarch64_expand_sve_widened_duplicate): Likewise. | |
32959 | (aarch64_expand_sve_const_vector): Likewise. | |
32960 | (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter. | |
32961 | Handle SVE constants. Use emit_move_insn to move a force_const_mem | |
32962 | into the register, rather than emitting a SET directly. | |
32963 | (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move) | |
32964 | (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p) | |
32965 | (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p) | |
32966 | (offset_9bit_signed_scaled_p): New functions. | |
32967 | (aarch64_replicate_bitmask_imm): New function. | |
32968 | (aarch64_bitmask_imm): Use it. | |
32969 | (aarch64_cannot_force_const_mem): Reject expressions involving | |
32970 | a CONST_POLY_INT. Update call to aarch64_classify_symbol. | |
32971 | (aarch64_classify_index): Handle SVE indices, by requiring | |
32972 | a plain register index with a scale that matches the element size. | |
32973 | (aarch64_classify_address): Handle SVE addresses. Assert that | |
32974 | the mode of the address is VOIDmode or an integer mode. | |
32975 | Update call to aarch64_classify_symbol. | |
32976 | (aarch64_classify_symbolic_expression): Update call to | |
32977 | aarch64_classify_symbol. | |
32978 | (aarch64_const_vec_all_in_range_p): New function. | |
32979 | (aarch64_print_vector_float_operand): Likewise. | |
32980 | (aarch64_print_operand): Handle 'N' and 'C'. Use "zN" rather than | |
32981 | "vN" for FP registers with SVE modes. Handle (const ...) vectors | |
32982 | and the FP immediates 1.0 and 0.5. | |
32983 | (aarch64_print_address_internal): Handle SVE addresses. | |
32984 | (aarch64_print_operand_address): Use ADDR_QUERY_ANY. | |
32985 | (aarch64_regno_regclass): Handle predicate registers. | |
32986 | (aarch64_secondary_reload): Handle big-endian reloads of SVE | |
32987 | data modes. | |
32988 | (aarch64_class_max_nregs): Handle SVE modes and predicate registers. | |
32989 | (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions. | |
32990 | (aarch64_convert_sve_vector_bits): New function. | |
32991 | (aarch64_override_options): Use it to handle -msve-vector-bits=. | |
32992 | (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT | |
32993 | rather than an rtx. | |
32994 | (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode. | |
32995 | Handle SVE vector and predicate modes. Accept VL-based constants | |
32996 | that need only one temporary register, and VL offsets that require | |
32997 | no temporary registers. | |
32998 | (aarch64_conditional_register_usage): Mark the predicate registers | |
32999 | as fixed if SVE isn't available. | |
33000 | (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode. | |
33001 | Return true for SVE vector and predicate modes. | |
33002 | (aarch64_simd_container_mode): Take the number of bits as a poly_int64 | |
33003 | rather than an unsigned int. Handle SVE modes. | |
33004 | (aarch64_preferred_simd_mode): Update call accordingly. Handle | |
33005 | SVE modes. | |
33006 | (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR | |
33007 | if SVE is enabled. | |
33008 | (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) | |
33009 | (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) | |
33010 | (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) | |
33011 | (aarch64_sve_float_mul_immediate_p): New functions. | |
33012 | (aarch64_sve_valid_immediate): New function. | |
33013 | (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors. | |
33014 | Explicitly reject structure modes. Check for INDEX constants. | |
33015 | Handle PTRUE and PFALSE constants. | |
33016 | (aarch64_check_zero_based_sve_index_immediate): New function. | |
33017 | (aarch64_simd_imm_zero_p): Delete. | |
33018 | (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for | |
33019 | vector modes. Accept constants in the range of CNT[BHWD]. | |
33020 | (aarch64_simd_scalar_immediate_valid_for_move): Explicitly | |
33021 | ask for an Advanced SIMD mode. | |
33022 | (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions. | |
33023 | (aarch64_simd_vector_alignment): Handle SVE predicates. | |
33024 | (aarch64_vectorize_preferred_vector_alignment): New function. | |
33025 | (aarch64_simd_vector_alignment_reachable): Use it instead of | |
33026 | the vector size. | |
33027 | (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p. | |
33028 | (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New | |
33029 | functions. | |
33030 | (MAX_VECT_LEN): Delete. | |
33031 | (expand_vec_perm_d): Add a vec_flags field. | |
33032 | (emit_unspec2, aarch64_expand_sve_vec_perm): New functions. | |
33033 | (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) | |
33034 | (aarch64_evpc_ext): Don't apply a big-endian lane correction | |
33035 | for SVE modes. | |
33036 | (aarch64_evpc_rev): Rename to... | |
33037 | (aarch64_evpc_rev_local): ...this. Use a predicated operation for SVE. | |
33038 | (aarch64_evpc_rev_global): New function. | |
33039 | (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP. | |
33040 | (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of | |
33041 | MAX_VECT_LEN. | |
33042 | (aarch64_evpc_sve_tbl): New function. | |
33043 | (aarch64_expand_vec_perm_const_1): Update after rename of | |
33044 | aarch64_evpc_rev. Handle SVE permutes too, trying | |
33045 | aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather | |
33046 | than aarch64_evpc_tbl. | |
33047 | (aarch64_vectorize_vec_perm_const): Initialize vec_flags. | |
33048 | (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code) | |
33049 | (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int) | |
33050 | (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or) | |
33051 | (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float) | |
33052 | (aarch64_expand_sve_vcond): New functions. | |
33053 | (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead | |
33054 | of aarch64_vector_mode_p. | |
33055 | (aarch64_dwarf_poly_indeterminate_value): New function. | |
33056 | (aarch64_compute_pressure_classes): Likewise. | |
33057 | (aarch64_can_change_mode_class): Likewise. | |
33058 | (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine. | |
33059 | (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise. | |
33060 | (TARGET_VECTORIZE_GET_MASK_MODE): Likewise. | |
33061 | (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise. | |
33062 | (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise. | |
33063 | (TARGET_CAN_CHANGE_MODE_CLASS): Likewise. | |
33064 | * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr) | |
33065 | (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New | |
33066 | constraints. | |
33067 | (Dn, Dl, Dr): Accept const as well as const_vector. | |
33068 | (Dz): Likewise. Compare against CONST0_RTX. | |
33069 | * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead | |
33070 | of "vector" where appropriate. | |
33071 | (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD) | |
33072 | (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators. | |
33073 | (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT) | |
33074 | (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE) | |
33075 | (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS) | |
33076 | (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs. | |
33077 | (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV) | |
33078 | (v_int_equiv): Extend to SVE modes. | |
33079 | (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New | |
33080 | mode attributes. | |
33081 | (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators. | |
33082 | (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt. | |
33083 | (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs. | |
33084 | (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP) | |
33085 | (SVE_COND_FP_CMP): New int iterators. | |
33086 | (perm_hilo): Handle the new unpack unspecs. | |
33087 | (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int | |
33088 | attributes. | |
33089 | * config/aarch64/predicates.md (aarch64_sve_cnt_immediate) | |
33090 | (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate) | |
33091 | (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand) | |
33092 | (aarch64_equality_operator, aarch64_constant_vector_operand) | |
33093 | (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates. | |
33094 | (aarch64_sve_nonimmediate_operand): Likewise. | |
33095 | (aarch64_sve_general_operand): Likewise. | |
33096 | (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise. | |
33097 | (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate) | |
33098 | (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise. | |
33099 | (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise. | |
33100 | (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise. | |
33101 | (aarch64_sve_float_arith_immediate): Likewise. | |
33102 | (aarch64_sve_float_arith_with_sub_immediate): Likewise. | |
33103 | (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise. | |
33104 | (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise. | |
33105 | (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise. | |
33106 | (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise. | |
33107 | (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise. | |
33108 | (aarch64_sve_float_arith_operand): Likewise. | |
33109 | (aarch64_sve_float_arith_with_sub_operand): Likewise. | |
33110 | (aarch64_sve_float_mul_operand): Likewise. | |
33111 | (aarch64_sve_vec_perm_operand): Likewise. | |
33112 | (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate. | |
33113 | (aarch64_mov_operand): Accept const_poly_int and const_vector. | |
33114 | (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const | |
33115 | as well as const_vector. | |
33116 | (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier | |
33117 | in file. Use CONST0_RTX and CONSTM1_RTX. | |
33118 | (aarch64_simd_or_scalar_imm_zero): Likewise. Add match_codes. | |
33119 | (aarch64_simd_reg_or_zero): Accept const as well as const_vector. | |
33120 | Use aarch64_simd_imm_zero. | |
33121 | * config/aarch64/aarch64-sve.md: New file. | |
33122 | * config/aarch64/aarch64.md: Include it. | |
33123 | (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers. | |
33124 | (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE) | |
33125 | (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI) | |
33126 | (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK) | |
33127 | (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants. | |
33128 | (sve): New attribute. | |
33129 | (enabled): Disable instructions with the sve attribute unless | |
33130 | TARGET_SVE. | |
33131 | (movqi, movhi): Pass CONST_POLY_INT operaneds through | |
33132 | aarch64_expand_mov_immediate. | |
33133 | (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle | |
33134 | CNT[BHSD] immediates. | |
33135 | (movti): Split CONST_POLY_INT moves into two halves. | |
33136 | (add<mode>3): Accept aarch64_pluslong_or_poly_operand. | |
33137 | Split additions that need a temporary here if the destination | |
33138 | is the stack pointer. | |
33139 | (*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates. | |
33140 | (*add<mode>3_poly_1): New instruction. | |
33141 | (set_clobber_cc): New expander. | |
33142 | ||
33143 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
33144 | ||
33145 | * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes | |
33146 | parameter and use it instead of GET_MODE_SIZE (innermode). Use | |
33147 | inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). | |
33148 | Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of | |
33149 | GET_MODE_NUNITS (innermode). Also add a first_elem parameter. | |
33150 | Change innermode from fixed_mode_size to machine_mode. | |
33151 | (simplify_subreg): Update call accordingly. Handle a constant-sized | |
33152 | subreg of a variable-length CONST_VECTOR. | |
33153 | ||
33154 | 2018-01-13 Richard Sandiford <richard.sandiford@linaro.org> | |
33155 | Alan Hayward <alan.hayward@arm.com> | |
33156 | David Sherwood <david.sherwood@arm.com> | |
33157 | ||
33158 | * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function. | |
33159 | (add_offset_to_base): New function, split out from... | |
33160 | (create_mem_ref): ...here. When handling a scale other than 1, | |
33161 | check first whether the address is valid without the offset. | |
33162 | Add it into the base if so, leaving the index and scale as-is. | |
33163 | ||
33164 | 2018-01-12 Jakub Jelinek <jakub@redhat.com> | |
33165 | ||
33166 | PR c++/83778 | |
33167 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call | |
33168 | fold_for_warn before checking if arg2 is INTEGER_CST. | |
33169 | ||
33170 | 2018-01-12 Segher Boessenkool <segher@kernel.crashing.org> | |
33171 | ||
33172 | * config/rs6000/predicates.md (load_multiple_operation): Delete. | |
33173 | (store_multiple_operation): Delete. | |
33174 | * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. | |
33175 | * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. | |
33176 | * config/rs6000/rs6000-string.c (expand_block_move): Delete everything | |
33177 | guarded by TARGET_STRING. | |
33178 | (rs6000_output_load_multiple): Delete. | |
33179 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete | |
33180 | OPTION_MASK_STRING / TARGET_STRING handling. | |
33181 | (print_operand) <'N', 'O'>: Add comment that these are unused now. | |
33182 | (const rs6000_opt_masks) <"string">: Change mask to 0. | |
33183 | * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. | |
33184 | (MASK_STRING): Delete. | |
33185 | * config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING | |
33186 | parts. Simplify. | |
33187 | (load_multiple): Delete. | |
33188 | (*ldmsi8): Delete. | |
33189 | (*ldmsi7): Delete. | |
33190 | (*ldmsi6): Delete. | |
33191 | (*ldmsi5): Delete. | |
33192 | (*ldmsi4): Delete. | |
33193 | (*ldmsi3): Delete. | |
33194 | (store_multiple): Delete. | |
33195 | (*stmsi8): Delete. | |
33196 | (*stmsi7): Delete. | |
33197 | (*stmsi6): Delete. | |
33198 | (*stmsi5): Delete. | |
33199 | (*stmsi4): Delete. | |
33200 | (*stmsi3): Delete. | |
33201 | (movmemsi_8reg): Delete. | |
33202 | (corresponding unnamed define_insn): Delete. | |
33203 | (movmemsi_6reg): Delete. | |
33204 | (corresponding unnamed define_insn): Delete. | |
33205 | (movmemsi_4reg): Delete. | |
33206 | (corresponding unnamed define_insn): Delete. | |
33207 | (movmemsi_2reg): Delete. | |
33208 | (corresponding unnamed define_insn): Delete. | |
33209 | (movmemsi_1reg): Delete. | |
33210 | (corresponding unnamed define_insn): Delete. | |
33211 | * config/rs6000/rs6000.opt (mno-string): New. | |
33212 | (mstring): Replace by deprecation warning stub. | |
33213 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring. | |
33214 | ||
33215 | 2018-01-12 Jakub Jelinek <jakub@redhat.com> | |
33216 | ||
33217 | * regrename.c (regrename_do_replace): If replacing the same | |
33218 | reg multiple times, try to reuse last created gen_raw_REG. | |
33219 | ||
33220 | PR debug/81155 | |
33221 | * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition | |
33222 | main to workaround a bug in GDB. | |
33223 | ||
33224 | 2018-01-12 Tom de Vries <tom@codesourcery.com> | |
33225 | ||
33226 | PR target/83737 | |
33227 | * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap. | |
33228 | ||
33229 | 2018-01-12 Vladimir Makarov <vmakarov@redhat.com> | |
33230 | ||
33231 | PR rtl-optimization/80481 | |
33232 | * ira-color.c (get_cap_member): New function. | |
33233 | (allocnos_conflict_by_live_ranges_p): Use it. | |
33234 | (slot_coalesced_allocno_live_ranges_intersect_p): Add assert. | |
33235 | (setup_slot_coalesced_allocno_live_ranges): Ditto. | |
33236 | ||
33237 | 2018-01-12 Uros Bizjak <ubizjak@gmail.com> | |
33238 | ||
33239 | PR target/83628 | |
33240 | * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern. | |
33241 | (*saddl_se_1): Ditto. | |
33242 | (*ssubsi_1): Ditto. | |
33243 | (*ssubl_se_1): Ditto. | |
33244 | ||
33245 | 2018-01-12 Richard Sandiford <richard.sandiford@linaro.org> | |
33246 | ||
33247 | * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest | |
33248 | rather than wi::to_widest for DR_INITs. | |
33249 | * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use | |
33250 | wi::to_poly_offset rather than wi::to_offset for DR_INIT. | |
33251 | (vect_analyze_data_ref_accesses): Require both DR_INITs to be | |
33252 | INTEGER_CSTs. | |
33253 | (vect_analyze_group_access_1): Note that here. | |
33254 | ||
33255 | 2018-01-12 Richard Sandiford <richard.sandiford@linaro.org> | |
33256 | ||
33257 | * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle | |
33258 | polynomial type sizes. | |
33259 | ||
33260 | 2018-01-12 Richard Sandiford <richard.sandiford@linaro.org> | |
33261 | ||
33262 | * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a | |
33263 | poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size. | |
33264 | (gimple_add_tmp_var): Likewise. | |
33265 | ||
33266 | 2018-01-12 Martin Liska <mliska@suse.cz> | |
33267 | ||
33268 | * gimple.c (gimple_alloc_counts): Use uint64_t instead of int. | |
33269 | (gimple_alloc_sizes): Likewise. | |
33270 | (dump_gimple_statistics): Use PRIu64 in printf format. | |
33271 | * gimple.h: Change uint64_t to int. | |
33272 | ||
33273 | 2018-01-12 Martin Liska <mliska@suse.cz> | |
33274 | ||
33275 | * tree-core.h: Use uint64_t instead of int. | |
33276 | * tree.c (tree_node_counts): Likewise. | |
33277 | (tree_node_sizes): Likewise. | |
33278 | (dump_tree_statistics): Use PRIu64 in printf format. | |
33279 | ||
33280 | 2018-01-12 Martin Liska <mliska@suse.cz> | |
33281 | ||
33282 | * Makefile.in: As qsort_chk is implemented in vec.c, add | |
33283 | vec.o to linkage of gencfn-macros. | |
33284 | * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's | |
33285 | passing the info to record_node_allocation_statistics. | |
33286 | (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration | |
33287 | and pass the info. | |
33288 | * ggc-common.c (struct ggc_usage): Add operator== and use | |
33289 | it in operator< and compare function. | |
33290 | * mem-stats.h (struct mem_usage): Likewise. | |
33291 | * vec.c (struct vec_usage): Remove operator< and compare | |
33292 | function. Can be simply inherited. | |
33293 | ||
33294 | 2018-01-12 Martin Jambor <mjambor@suse.cz> | |
33295 | ||
33296 | PR target/81616 | |
33297 | * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS. | |
33298 | * tree-ssa-math-opts.c: Include domwalk.h. | |
33299 | (convert_mult_to_fma_1): New function. | |
33300 | (fma_transformation_info): New type. | |
33301 | (fma_deferring_state): Likewise. | |
33302 | (cancel_fma_deferring): New function. | |
33303 | (result_of_phi): Likewise. | |
33304 | (last_fma_candidate_feeds_initial_phi): Likewise. | |
33305 | (convert_mult_to_fma): Added deferring logic, split actual | |
33306 | transformation to convert_mult_to_fma_1. | |
33307 | (math_opts_dom_walker): New type. | |
33308 | (math_opts_dom_walker::after_dom_children): New method, body moved | |
33309 | here from pass_optimize_widening_mul::execute, added deferring logic | |
33310 | bits. | |
33311 | (pass_optimize_widening_mul::execute): Moved most of code to | |
33312 | math_opts_dom_walker::after_dom_children. | |
33313 | * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New. | |
33314 | * config/i386/i386.c (ix86_option_override_internal): Added | |
33315 | maybe_setting of PARAM_AVOID_FMA_MAX_BITS. | |
33316 | ||
33317 | 2018-01-12 Richard Biener <rguenther@suse.de> | |
33318 | ||
33319 | PR debug/83157 | |
33320 | * dwarf2out.c (gen_variable_die): Do not reset old_die for | |
33321 | inline instance vars. | |
33322 | ||
33323 | 2018-01-12 Oleg Endo <olegendo@gcc.gnu.org> | |
33324 | ||
33325 | PR target/81819 | |
33326 | * config/rx/rx.c (rx_is_restricted_memory_address): | |
33327 | Handle SUBREG case. | |
33328 | ||
33329 | 2018-01-12 Richard Biener <rguenther@suse.de> | |
33330 | ||
33331 | PR tree-optimization/80846 | |
33332 | * target.def (split_reduction): New target hook. | |
33333 | * targhooks.c (default_split_reduction): New function. | |
33334 | * targhooks.h (default_split_reduction): Declare. | |
33335 | * tree-vect-loop.c (vect_create_epilog_for_reduction): If the | |
33336 | target requests first reduce vectors by combining low and high | |
33337 | parts. | |
33338 | * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust. | |
33339 | (get_vectype_for_scalar_type_and_size): Export. | |
33340 | * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare. | |
33341 | * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document. | |
33342 | * doc/tm.texi: Regenerate. | |
33343 | * config/i386/i386.c (ix86_split_reduction): Implement | |
33344 | TARGET_VECTORIZE_SPLIT_REDUCTION. | |
33345 | ||
33346 | 2018-01-12 Eric Botcazou <ebotcazou@adacore.com> | |
33347 | ||
33348 | PR target/83368 | |
33349 | * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM | |
33350 | in PIC mode except for TARGET_VXWORKS_RTP. | |
33351 | * config/sparc/sparc.c: Include cfgrtl.h. | |
33352 | (TARGET_INIT_PIC_REG): Define. | |
33353 | (TARGET_USE_PSEUDO_PIC_REG): Likewise. | |
33354 | (sparc_pic_register_p): New predicate. | |
33355 | (sparc_legitimate_address_p): Use it. | |
33356 | (sparc_legitimize_pic_address): Likewise. | |
33357 | (sparc_delegitimize_address): Likewise. | |
33358 | (sparc_mode_dependent_address_p): Likewise. | |
33359 | (gen_load_pcrel_sym): Remove 4th parameter. | |
33360 | (load_got_register): Adjust call to above. Remove obsolete stuff. | |
33361 | (sparc_expand_prologue): Do not call load_got_register here. | |
33362 | (sparc_flat_expand_prologue): Likewise. | |
33363 | (sparc_output_mi_thunk): Set the pic_offset_table_rtx object. | |
33364 | (sparc_use_pseudo_pic_reg): New function. | |
33365 | (sparc_init_pic_reg): Likewise. | |
33366 | * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. | |
33367 | (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP. | |
33368 | ||
33369 | 2018-01-12 Christophe Lyon <christophe.lyon@linaro.org> | |
33370 | ||
33371 | * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): | |
33372 | Add item for branch_cost. | |
33373 | ||
33374 | 2018-01-12 Eric Botcazou <ebotcazou@adacore.com> | |
33375 | ||
33376 | PR rtl-optimization/83565 | |
33377 | * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do | |
33378 | not extend the result to a larger mode for rotate operations. | |
33379 | (num_sign_bit_copies1): Likewise. | |
33380 | ||
33381 | 2018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
33382 | ||
33383 | PR target/40411 | |
33384 | * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or | |
33385 | -symbolic. | |
33386 | Use values-Xc.o for -pedantic. | |
33387 | Link with values-xpg4.o for C90, values-xpg6.o otherwise. | |
33388 | ||
33389 | 2018-01-12 Martin Liska <mliska@suse.cz> | |
33390 | ||
33391 | PR ipa/83054 | |
33392 | * ipa-devirt.c (final_warning_record::grow_type_warnings): | |
33393 | New function. | |
33394 | (possible_polymorphic_call_targets): Use it. | |
33395 | (ipa_devirt): Likewise. | |
33396 | ||
33397 | 2018-01-12 Martin Liska <mliska@suse.cz> | |
33398 | ||
33399 | * profile-count.h (enum profile_quality): Use 0 as invalid | |
33400 | enum value of profile_quality. | |
33401 | ||
33402 | 2018-01-12 Chung-Ju Wu <jasonwucj@gmail.com> | |
33403 | ||
33404 | * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and | |
33405 | -mext-string options. | |
33406 | ||
33407 | 2018-01-12 Richard Biener <rguenther@suse.de> | |
33408 | ||
33409 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Process | |
33410 | DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P. | |
33411 | * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): | |
33412 | Likewise. | |
33413 | * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. | |
33414 | ||
33415 | 2018-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> | |
33416 | ||
33417 | * configure.ac (--with-long-double-format): Add support for the | |
33418 | configuration option to change the default long double format on | |
33419 | PowerPC systems. | |
33420 | * config.gcc (powerpc*-linux*-*): Likewise. | |
33421 | * configure: Regenerate. | |
33422 | * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long | |
33423 | double is IEEE, define __KC__ and __KF__ to allow floatn.h to be | |
33424 | used without modification. | |
33425 | ||
33426 | 2018-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
33427 | ||
33428 | * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define. | |
33429 | (SPEC_BARRIER): New instantiation of BU_P7_MISC_X. | |
33430 | * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle | |
33431 | MISC_BUILTIN_SPEC_BARRIER. | |
33432 | (rs6000_init_builtins): Likewise. | |
33433 | * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV | |
33434 | enum value. | |
33435 | (speculation_barrier): New define_insn. | |
33436 | * doc/extend.texi: Document __builtin_speculation_barrier. | |
33437 | ||
33438 | 2018-01-11 Jakub Jelinek <jakub@redhat.com> | |
33439 | ||
33440 | PR target/83203 | |
33441 | * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var | |
33442 | is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0. | |
33443 | * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode | |
33444 | iterators. | |
33445 | (ssescalarmodesuffix): Add 512-bit vectors. Use "d" or "q" for | |
33446 | integral modes instead of "ss" and "sd". | |
33447 | (vec_set<mode>_0): New define_insns for 256-bit and 512-bit | |
33448 | vectors with 32-bit and 64-bit elements. | |
33449 | (vecdupssescalarmodesuffix): New mode attribute. | |
33450 | (vec_dup<mode>): Use it. | |
33451 | ||
33452 | 2018-01-11 H.J. Lu <hongjiu.lu@intel.com> | |
33453 | ||
33454 | PR target/83330 | |
33455 | * config/i386/i386.c (ix86_compute_frame_layout): Align stack | |
33456 | frame if argument is passed on stack. | |
33457 | ||
33458 | 2018-01-11 Jakub Jelinek <jakub@redhat.com> | |
33459 | ||
33460 | PR target/82682 | |
33461 | * ree.c (combine_reaching_defs): Optimize also | |
33462 | reg2=exp; reg1=reg2; reg2=any_extend(reg1); into | |
33463 | reg2=any_extend(exp); reg1=reg2;, formatting fix. | |
33464 | ||
33465 | 2018-01-11 Jan Hubicka <hubicka@ucw.cz> | |
33466 | ||
33467 | PR middle-end/83189 | |
33468 | * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. | |
33469 | ||
33470 | 2018-01-11 Jan Hubicka <hubicka@ucw.cz> | |
33471 | ||
33472 | PR middle-end/83718 | |
33473 | * tree-inline.c (copy_cfg_body): Adjust num&den for scaling | |
33474 | after they are computed. | |
33475 | ||
33476 | 2018-01-11 Bin Cheng <bin.cheng@arm.com> | |
33477 | ||
33478 | PR tree-optimization/83695 | |
33479 | * gimple-loop-linterchange.cc | |
33480 | (tree_loop_interchange::interchange_loops): Call scev_reset_htab to | |
33481 | reset cached scev information after interchange. | |
33482 | (pass_linterchange::execute): Remove call to scev_reset_htab. | |
33483 | ||
33484 | 2018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33485 | ||
33486 | * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32, | |
33487 | vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, | |
33488 | vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, | |
33489 | vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, | |
33490 | vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, | |
33491 | vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define. | |
33492 | * config/arm/arm_neon_builtins.def (vfmal_lane_low, | |
33493 | vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high, | |
33494 | vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low, | |
33495 | vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high, | |
33496 | vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins. | |
33497 | * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes. | |
33498 | (V_lane_reg): Likewise. | |
33499 | * config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>): | |
33500 | New define_expand. | |
33501 | (neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise. | |
33502 | (vfmal_lane_low<mode>_intrinsic, | |
33503 | vfmal_lane_low<vfmlsel2><mode>_intrinsic, | |
33504 | vfmal_lane_high<vfmlsel2><mode>_intrinsic, | |
33505 | vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic, | |
33506 | vfmsl_lane_low<vfmlsel2><mode>_intrinsic, | |
33507 | vfmsl_lane_high<vfmlsel2><mode>_intrinsic, | |
33508 | vfmsl_lane_high<mode>_intrinsic): New define_insns. | |
33509 | ||
33510 | 2018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33511 | ||
33512 | * config/arm/arm-cpus.in (fp16fml): New feature. | |
33513 | (ALL_SIMD): Add fp16fml. | |
33514 | (armv8.2-a): Add fp16fml as an option. | |
33515 | (armv8.3-a): Likewise. | |
33516 | (armv8.4-a): Add fp16fml as part of fp16. | |
33517 | * config/arm/arm.h (TARGET_FP16FML): Define. | |
33518 | * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML | |
33519 | when appropriate. | |
33520 | * config/arm/arm-modes.def (V2HF): Define. | |
33521 | * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, | |
33522 | vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, | |
33523 | vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define. | |
33524 | * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high, | |
33525 | vfmsl_low, vfmsl_high): New set of builtins. | |
33526 | * config/arm/iterators.md (PLUSMINUS): New code iterator. | |
33527 | (vfml_op): New code attribute. | |
33528 | (VFMLHALVES): New int iterator. | |
33529 | (VFML, VFMLSEL): New mode attributes. | |
33530 | (V_reg): Define mapping for V2HF. | |
33531 | (V_hi, V_lo): New mode attributes. | |
33532 | (VF_constraint): Likewise. | |
33533 | (vfml_half, vfml_half_selector): New int attributes. | |
33534 | * config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New | |
33535 | define_expand. | |
33536 | (vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic, | |
33537 | vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic): | |
33538 | New define_insn. | |
33539 | * config/arm/t-arm-elf (v8_fps): Add fp16fml. | |
33540 | * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml. | |
33541 | * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs. | |
33542 | * doc/invoke.texi (ARM Options): Document fp16fml. Update armv8.4-a | |
33543 | documentation. | |
33544 | * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon): | |
33545 | Document new effective target and option set. | |
33546 | ||
33547 | 2018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33548 | ||
33549 | * config/arm/arm-cpus.in (armv8_4): New feature. | |
33550 | (ARMv8_4a): New fgroup. | |
33551 | (armv8.4-a): New arch. | |
33552 | * config/arm/arm-tables.opt: Regenerate. | |
33553 | * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a. | |
33554 | * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a. | |
33555 | * config/arm/t-multilib (v8_4_a_simd_variants): New variable. | |
33556 | Add matching rules for -march=armv8.4-a and extensions. | |
33557 | * doc/invoke.texi (ARM Options): Document -march=armv8.4-a. | |
33558 | ||
33559 | 2018-01-11 Oleg Endo <olegendo@gcc.gnu.org> | |
33560 | ||
33561 | PR target/81821 | |
33562 | * config/rx/rx.md (BW): New mode attribute. | |
33563 | (sync_lock_test_and_setsi): Add mode suffix to insn output. | |
33564 | ||
33565 | 2018-01-11 Richard Biener <rguenther@suse.de> | |
33566 | ||
33567 | PR tree-optimization/83435 | |
33568 | * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. | |
33569 | * graphite-scop-detection.c (scop_detection::get_sese): Likewise. | |
33570 | * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. | |
33571 | ||
33572 | 2018-01-11 Richard Sandiford <richard.sandiford@linaro.org> | |
33573 | Alan Hayward <alan.hayward@arm.com> | |
33574 | David Sherwood <david.sherwood@arm.com> | |
33575 | ||
33576 | * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset | |
33577 | field. | |
33578 | (aarch64_classify_address): Initialize it. Track polynomial offsets. | |
33579 | (aarch64_print_address_internal): Use it to check for a zero offset. | |
33580 | ||
33581 | 2018-01-11 Richard Sandiford <richard.sandiford@linaro.org> | |
33582 | Alan Hayward <alan.hayward@arm.com> | |
33583 | David Sherwood <david.sherwood@arm.com> | |
33584 | ||
33585 | * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2. | |
33586 | * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset): | |
33587 | Return a poly_int64 rather than a HOST_WIDE_INT. | |
33588 | (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64 | |
33589 | rather than a HOST_WIDE_INT. | |
33590 | * config/aarch64/aarch64.h (aarch64_frame): Protect with | |
33591 | HAVE_POLY_INT_H rather than HOST_WIDE_INT. Change locals_offset, | |
33592 | hard_fp_offset, frame_size, initial_adjust, callee_offset and | |
33593 | final_offset from HOST_WIDE_INT to poly_int64. | |
33594 | * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use | |
33595 | to_constant when getting the number of units in an Advanced SIMD | |
33596 | mode. | |
33597 | (aarch64_builtin_vectorized_function): Check for a constant number | |
33598 | of units. | |
33599 | * config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial | |
33600 | GET_MODE_SIZE. | |
33601 | (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits | |
33602 | attribute instead of GET_MODE_NUNITS. | |
33603 | * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) | |
33604 | (aarch64_class_max_nregs): Use the constant_lowest_bound of the | |
33605 | GET_MODE_SIZE for fixed-size registers. | |
33606 | (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p. | |
33607 | (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index) | |
33608 | (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address) | |
33609 | (aarch64_legitimize_address_displacement, aarch64_secondary_reload) | |
33610 | (aarch64_print_operand, aarch64_print_address_internal) | |
33611 | (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost) | |
33612 | (aarch64_short_vector_p, aapcs_vfp_sub_candidate) | |
33613 | (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp): | |
33614 | Handle polynomial GET_MODE_SIZE. | |
33615 | (aarch64_hard_regno_caller_save_mode): Likewise. Return modes | |
33616 | wider than SImode without modification. | |
33617 | (tls_symbolic_operand_type): Use strip_offset instead of split_const. | |
33618 | (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward) | |
33619 | (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle | |
33620 | passing and returning SVE modes. | |
33621 | (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode | |
33622 | rather than GEN_INT. | |
33623 | (aarch64_emit_probe_stack_range): Take the size as a poly_int64 | |
33624 | rather than a HOST_WIDE_INT, but call sorry if it isn't constant. | |
33625 | (aarch64_allocate_and_probe_stack_space): Likewise. | |
33626 | (aarch64_layout_frame): Cope with polynomial offsets. | |
33627 | (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the | |
33628 | start_offset as a poly_int64 rather than a HOST_WIDE_INT. Track | |
33629 | polynomial offsets. | |
33630 | (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p) | |
33631 | (aarch64_offset_7bit_signed_scaled_p): Take the offset as a | |
33632 | poly_int64 rather than a HOST_WIDE_INT. | |
33633 | (aarch64_get_separate_components, aarch64_process_components) | |
33634 | (aarch64_expand_prologue, aarch64_expand_epilogue) | |
33635 | (aarch64_use_return_insn_p): Handle polynomial frame offsets. | |
33636 | (aarch64_anchor_offset): New function, split out from... | |
33637 | (aarch64_legitimize_address): ...here. | |
33638 | (aarch64_builtin_vectorization_cost): Handle polynomial | |
33639 | TYPE_VECTOR_SUBPARTS. | |
33640 | (aarch64_simd_check_vect_par_cnst_half): Handle polynomial | |
33641 | GET_MODE_NUNITS. | |
33642 | (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the | |
33643 | number of elements from the PARALLEL rather than the mode. | |
33644 | (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE | |
33645 | rather than GET_MODE_BITSIZE. | |
33646 | (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext) | |
33647 | (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip) | |
33648 | (aarch64_expand_vec_perm_const_1): Handle polynomial | |
33649 | d->perm.length () and d->perm elements. | |
33650 | (aarch64_evpc_tbl): Likewise. Use nelt rather than GET_MODE_NUNITS. | |
33651 | Apply to_constant to d->perm elements. | |
33652 | (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle | |
33653 | polynomial CONST_VECTOR_NUNITS. | |
33654 | (aarch64_move_pointer): Take amount as a poly_int64 rather | |
33655 | than an int. | |
33656 | (aarch64_progress_pointer): Avoid temporary variable. | |
33657 | * config/aarch64/aarch64.md (aarch64_<crc_variant>): Use | |
33658 | the mode attribute instead of GET_MODE. | |
33659 | ||
33660 | 2018-01-11 Richard Sandiford <richard.sandiford@linaro.org> | |
33661 | Alan Hayward <alan.hayward@arm.com> | |
33662 | David Sherwood <david.sherwood@arm.com> | |
33663 | ||
33664 | * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that | |
33665 | x exists before using it. | |
33666 | (aarch64_add_constant_internal): Rename to... | |
33667 | (aarch64_add_offset_1): ...this. Replace regnum with separate | |
33668 | src and dest rtxes. Handle the case in which they're different, | |
33669 | including when the offset is zero. Replace scratchreg with an rtx. | |
33670 | Use 2 additions if there is no spare register into which we can | |
33671 | move a 16-bit constant. | |
33672 | (aarch64_add_constant): Delete. | |
33673 | (aarch64_add_offset): Replace reg with separate src and dest | |
33674 | rtxes. Take a poly_int64 offset instead of a HOST_WIDE_INT. | |
33675 | Use aarch64_add_offset_1. | |
33676 | (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as | |
33677 | an rtx rather than an int. Take the delta as a poly_int64 | |
33678 | rather than a HOST_WIDE_INT. Use aarch64_add_offset. | |
33679 | (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset. | |
33680 | (aarch64_expand_prologue): Update calls to aarch64_sub_sp, | |
33681 | aarch64_allocate_and_probe_stack_space and aarch64_add_offset. | |
33682 | (aarch64_expand_epilogue): Update calls to aarch64_add_offset | |
33683 | and aarch64_add_sp. | |
33684 | (aarch64_output_mi_thunk): Use aarch64_add_offset rather than | |
33685 | aarch64_add_constant. | |
33686 | ||
33687 | 2018-01-11 Richard Sandiford <richard.sandiford@linaro.org> | |
33688 | ||
33689 | * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): | |
33690 | Use scalar_float_mode. | |
33691 | ||
33692 | 2018-01-11 Richard Sandiford <richard.sandiford@linaro.org> | |
33693 | ||
33694 | * config/aarch64/aarch64-simd.md | |
33695 | (aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS. | |
33696 | (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise. | |
33697 | (aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise. | |
33698 | (aarch64_fml<f16mac1>l_lane_highv2sf): Likewise. | |
33699 | (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise. | |
33700 | (aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise. | |
33701 | (aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise. | |
33702 | (aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise. | |
33703 | (aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise. | |
33704 | (aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise. | |
33705 | ||
33706 | 2018-01-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
33707 | ||
33708 | PR target/83514 | |
33709 | * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if | |
33710 | targ_options->x_arm_arch_string is non NULL. | |
33711 | ||
33712 | 2018-01-11 Tamar Christina <tamar.christina@arm.com> | |
33713 | ||
33714 | * config/aarch64/aarch64.h | |
33715 | (AARCH64_FL_FOR_ARCH8_4): Add AARCH64_FL_DOTPROD. | |
33716 | ||
33717 | 2018-01-11 Sudakshina Das <sudi.das@arm.com> | |
33718 | ||
33719 | PR target/82096 | |
33720 | * expmed.c (emit_store_flag_force): Swap if const op0 | |
33721 | and change VOIDmode to mode of op0. | |
33722 | ||
33723 | 2018-01-11 Richard Sandiford <richard.sandiford@linaro.org> | |
33724 | ||
33725 | PR rtl-optimization/83761 | |
33726 | * caller-save.c (replace_reg_with_saved_mem): Pass bits rather | |
33727 | than bytes to mode_for_size. | |
33728 | ||
33729 | 2018-01-10 Jan Hubicka <hubicka@ucw.cz> | |
33730 | ||
33731 | PR middle-end/83189 | |
33732 | * gfortran.fortran-torture/compile/pr83189.f90: New testcase. | |
33733 | * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero | |
33734 | profile. | |
33735 | ||
33736 | 2018-01-10 Jan Hubicka <hubicka@ucw.cz> | |
33737 | ||
33738 | PR middle-end/83575 | |
33739 | * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition | |
33740 | when in layout mode. | |
33741 | (cfg_layout_finalize): Do not verify cfg before we are out of layout. | |
33742 | * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing | |
33743 | partition fixup. | |
33744 | ||
33745 | 2018-01-10 Michael Collison <michael.collison@arm.com> | |
33746 | ||
33747 | * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE. | |
33748 | * config/aarch64/aarch64-option-extension.def: Add | |
33749 | AARCH64_OPT_EXTENSION of 'fp16fml'. | |
33750 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
33751 | (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true. | |
33752 | * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate. | |
33753 | * config/aarch64/constraints.md (Ui7): New constraint. | |
33754 | * config/aarch64/iterators.md (VFMLA_W): New mode iterator. | |
33755 | (VFMLA_SEL_W): Ditto. | |
33756 | (f16quad): Ditto. | |
33757 | (f16mac1): Ditto. | |
33758 | (VFMLA16_LOW): New int iterator. | |
33759 | (VFMLA16_HIGH): Ditto. | |
33760 | (UNSPEC_FMLAL): New unspec. | |
33761 | (UNSPEC_FMLSL): Ditto. | |
33762 | (UNSPEC_FMLAL2): Ditto. | |
33763 | (UNSPEC_FMLSL2): Ditto. | |
33764 | (f16mac): New code attribute. | |
33765 | * config/aarch64/aarch64-simd-builtins.def | |
33766 | (aarch64_fmlal_lowv2sf): Ditto. | |
33767 | (aarch64_fmlsl_lowv2sf): Ditto. | |
33768 | (aarch64_fmlalq_lowv4sf): Ditto. | |
33769 | (aarch64_fmlslq_lowv4sf): Ditto. | |
33770 | (aarch64_fmlal_highv2sf): Ditto. | |
33771 | (aarch64_fmlsl_highv2sf): Ditto. | |
33772 | (aarch64_fmlalq_highv4sf): Ditto. | |
33773 | (aarch64_fmlslq_highv4sf): Ditto. | |
33774 | (aarch64_fmlal_lane_lowv2sf): Ditto. | |
33775 | (aarch64_fmlsl_lane_lowv2sf): Ditto. | |
33776 | (aarch64_fmlal_laneq_lowv2sf): Ditto. | |
33777 | (aarch64_fmlsl_laneq_lowv2sf): Ditto. | |
33778 | (aarch64_fmlalq_lane_lowv4sf): Ditto. | |
33779 | (aarch64_fmlsl_lane_lowv4sf): Ditto. | |
33780 | (aarch64_fmlalq_laneq_lowv4sf): Ditto. | |
33781 | (aarch64_fmlsl_laneq_lowv4sf): Ditto. | |
33782 | (aarch64_fmlal_lane_highv2sf): Ditto. | |
33783 | (aarch64_fmlsl_lane_highv2sf): Ditto. | |
33784 | (aarch64_fmlal_laneq_highv2sf): Ditto. | |
33785 | (aarch64_fmlsl_laneq_highv2sf): Ditto. | |
33786 | (aarch64_fmlalq_lane_highv4sf): Ditto. | |
33787 | (aarch64_fmlsl_lane_highv4sf): Ditto. | |
33788 | (aarch64_fmlalq_laneq_highv4sf): Ditto. | |
33789 | (aarch64_fmlsl_laneq_highv4sf): Ditto. | |
33790 | * config/aarch64/aarch64-simd.md: | |
33791 | (aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern. | |
33792 | (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto. | |
33793 | (aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto. | |
33794 | (aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto. | |
33795 | (aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto. | |
33796 | (aarch64_fml<f16mac1>l_lane_highv2sf): Ditto. | |
33797 | (aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto. | |
33798 | (aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto. | |
33799 | (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto. | |
33800 | (aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto. | |
33801 | (aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto. | |
33802 | (aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto. | |
33803 | (aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto. | |
33804 | (aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto. | |
33805 | (aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto. | |
33806 | (aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto. | |
33807 | (aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto. | |
33808 | (aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto. | |
33809 | (aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto. | |
33810 | (aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto. | |
33811 | * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic. | |
33812 | (vfmlsl_low_u32): Ditto. | |
33813 | (vfmlalq_low_u32): Ditto. | |
33814 | (vfmlslq_low_u32): Ditto. | |
33815 | (vfmlal_high_u32): Ditto. | |
33816 | (vfmlsl_high_u32): Ditto. | |
33817 | (vfmlalq_high_u32): Ditto. | |
33818 | (vfmlslq_high_u32): Ditto. | |
33819 | (vfmlal_lane_low_u32): Ditto. | |
33820 | (vfmlsl_lane_low_u32): Ditto. | |
33821 | (vfmlal_laneq_low_u32): Ditto. | |
33822 | (vfmlsl_laneq_low_u32): Ditto. | |
33823 | (vfmlalq_lane_low_u32): Ditto. | |
33824 | (vfmlslq_lane_low_u32): Ditto. | |
33825 | (vfmlalq_laneq_low_u32): Ditto. | |
33826 | (vfmlslq_laneq_low_u32): Ditto. | |
33827 | (vfmlal_lane_high_u32): Ditto. | |
33828 | (vfmlsl_lane_high_u32): Ditto. | |
33829 | (vfmlal_laneq_high_u32): Ditto. | |
33830 | (vfmlsl_laneq_high_u32): Ditto. | |
33831 | (vfmlalq_lane_high_u32): Ditto. | |
33832 | (vfmlslq_lane_high_u32): Ditto. | |
33833 | (vfmlalq_laneq_high_u32): Ditto. | |
33834 | (vfmlslq_laneq_high_u32): Ditto. | |
33835 | * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag. | |
33836 | (AARCH64_FL_FOR_ARCH8_4): New. | |
33837 | (AARCH64_ISA_F16FML): New ISA flag. | |
33838 | (TARGET_F16FML): New feature flag for fp16fml. | |
33839 | (doc/invoke.texi): Document new fp16fml option. | |
33840 | ||
33841 | 2018-01-10 Michael Collison <michael.collison@arm.com> | |
33842 | ||
33843 | * config/aarch64/aarch64-builtins.c: | |
33844 | (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New. | |
33845 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
33846 | (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true. | |
33847 | * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags. | |
33848 | (AARCH64_ISA_SHA3): New ISA flag. | |
33849 | (TARGET_SHA3): New feature flag for sha3. | |
33850 | * config/aarch64/iterators.md (sha512_op): New int attribute. | |
33851 | (CRYPTO_SHA512): New int iterator. | |
33852 | (UNSPEC_SHA512H): New unspec. | |
33853 | (UNSPEC_SHA512H2): Ditto. | |
33854 | (UNSPEC_SHA512SU0): Ditto. | |
33855 | (UNSPEC_SHA512SU1): Ditto. | |
33856 | * config/aarch64/aarch64-simd-builtins.def | |
33857 | (aarch64_crypto_sha512hqv2di): New builtin. | |
33858 | (aarch64_crypto_sha512h2qv2di): Ditto. | |
33859 | (aarch64_crypto_sha512su0qv2di): Ditto. | |
33860 | (aarch64_crypto_sha512su1qv2di): Ditto. | |
33861 | (aarch64_eor3qv8hi): Ditto. | |
33862 | (aarch64_rax1qv2di): Ditto. | |
33863 | (aarch64_xarqv2di): Ditto. | |
33864 | (aarch64_bcaxqv8hi): Ditto. | |
33865 | * config/aarch64/aarch64-simd.md: | |
33866 | (aarch64_crypto_sha512h<sha512_op>qv2di): New pattern. | |
33867 | (aarch64_crypto_sha512su0qv2di): Ditto. | |
33868 | (aarch64_crypto_sha512su1qv2di): Ditto. | |
33869 | (aarch64_eor3qv8hi): Ditto. | |
33870 | (aarch64_rax1qv2di): Ditto. | |
33871 | (aarch64_xarqv2di): Ditto. | |
33872 | (aarch64_bcaxqv8hi): Ditto. | |
33873 | * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic. | |
33874 | (vsha512h2q_u64): Ditto. | |
33875 | (vsha512su0q_u64): Ditto. | |
33876 | (vsha512su1q_u64): Ditto. | |
33877 | (veor3q_u16): Ditto. | |
33878 | (vrax1q_u64): Ditto. | |
33879 | (vxarq_u64): Ditto. | |
33880 | (vbcaxq_u16): Ditto. | |
33881 | * config/arm/types.md (crypto_sha512): New type attribute. | |
33882 | (crypto_sha3): Ditto. | |
33883 | (doc/invoke.texi): Document new sha3 option. | |
33884 | ||
33885 | 2018-01-10 Michael Collison <michael.collison@arm.com> | |
33886 | ||
33887 | * config/aarch64/aarch64-builtins.c: | |
33888 | (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New. | |
33889 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
33890 | (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true. | |
33891 | (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true. | |
33892 | * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags. | |
33893 | (AARCH64_ISA_SM4): New ISA flag. | |
33894 | (TARGET_SM4): New feature flag for sm4. | |
33895 | * config/aarch64/aarch64-simd-builtins.def | |
33896 | (aarch64_sm3ss1qv4si): Ditto. | |
33897 | (aarch64_sm3tt1aq4si): Ditto. | |
33898 | (aarch64_sm3tt1bq4si): Ditto. | |
33899 | (aarch64_sm3tt2aq4si): Ditto. | |
33900 | (aarch64_sm3tt2bq4si): Ditto. | |
33901 | (aarch64_sm3partw1qv4si): Ditto. | |
33902 | (aarch64_sm3partw2qv4si): Ditto. | |
33903 | (aarch64_sm4eqv4si): Ditto. | |
33904 | (aarch64_sm4ekeyqv4si): Ditto. | |
33905 | * config/aarch64/aarch64-simd.md: | |
33906 | (aarch64_sm3ss1qv4si): Ditto. | |
33907 | (aarch64_sm3tt<sm3tt_op>qv4si): Ditto. | |
33908 | (aarch64_sm3partw<sm3part_op>qv4si): Ditto. | |
33909 | (aarch64_sm4eqv4si): Ditto. | |
33910 | (aarch64_sm4ekeyqv4si): Ditto. | |
33911 | * config/aarch64/iterators.md (sm3tt_op): New int iterator. | |
33912 | (sm3part_op): Ditto. | |
33913 | (CRYPTO_SM3TT): Ditto. | |
33914 | (CRYPTO_SM3PART): Ditto. | |
33915 | (UNSPEC_SM3SS1): New unspec. | |
33916 | (UNSPEC_SM3TT1A): Ditto. | |
33917 | (UNSPEC_SM3TT1B): Ditto. | |
33918 | (UNSPEC_SM3TT2A): Ditto. | |
33919 | (UNSPEC_SM3TT2B): Ditto. | |
33920 | (UNSPEC_SM3PARTW1): Ditto. | |
33921 | (UNSPEC_SM3PARTW2): Ditto. | |
33922 | (UNSPEC_SM4E): Ditto. | |
33923 | (UNSPEC_SM4EKEY): Ditto. | |
33924 | * config/aarch64/constraints.md (Ui2): New constraint. | |
33925 | * config/aarch64/predicates.md (aarch64_imm2): New predicate. | |
33926 | * config/arm/types.md (crypto_sm3): New type attribute. | |
33927 | (crypto_sm4): Ditto. | |
33928 | * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic. | |
33929 | (vsm3tt1aq_u32): Ditto. | |
33930 | (vsm3tt1bq_u32): Ditto. | |
33931 | (vsm3tt2aq_u32): Ditto. | |
33932 | (vsm3tt2bq_u32): Ditto. | |
33933 | (vsm3partw1q_u32): Ditto. | |
33934 | (vsm3partw2q_u32): Ditto. | |
33935 | (vsm4eq_u32): Ditto. | |
33936 | (vsm4ekeyq_u32): Ditto. | |
33937 | (doc/invoke.texi): Document new sm4 option. | |
33938 | ||
33939 | 2018-01-10 Michael Collison <michael.collison@arm.com> | |
33940 | ||
33941 | * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture. | |
33942 | * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag. | |
33943 | (AARCH64_FL_FOR_ARCH8_4): New. | |
33944 | (AARCH64_FL_V8_4): New flag. | |
33945 | (doc/invoke.texi): Document new armv8.4-a option. | |
33946 | ||
33947 | 2018-01-10 Michael Collison <michael.collison@arm.com> | |
33948 | ||
33949 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
33950 | (__ARM_FEATURE_AES): Define if TARGET_AES is true. | |
33951 | (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true. | |
33952 | * config/aarch64/aarch64-option-extension.def: Add | |
33953 | AARCH64_OPT_EXTENSION of 'sha2'. | |
33954 | (aes): Add AARCH64_OPT_EXTENSION of 'aes'. | |
33955 | (crypto): Disable sha2 and aes if crypto disabled. | |
33956 | (crypto): Enable aes and sha2 if enabled. | |
33957 | (simd): Disable sha2 and aes if simd disabled. | |
33958 | * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2): | |
33959 | New flags. | |
33960 | (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags. | |
33961 | (TARGET_SHA2): New feature flag for sha2. | |
33962 | (TARGET_AES): New feature flag for aes. | |
33963 | * config/aarch64/aarch64-simd.md: | |
33964 | (aarch64_crypto_aes<aes_op>v16qi): Make pattern | |
33965 | conditional on TARGET_AES. | |
33966 | (aarch64_crypto_aes<aesmc_op>v16qi): Ditto. | |
33967 | (aarch64_crypto_sha1hsi): Make pattern conditional | |
33968 | on TARGET_SHA2. | |
33969 | (aarch64_crypto_sha1hv4si): Ditto. | |
33970 | (aarch64_be_crypto_sha1hv4si): Ditto. | |
33971 | (aarch64_crypto_sha1su1v4si): Ditto. | |
33972 | (aarch64_crypto_sha1<sha1_op>v4si): Ditto. | |
33973 | (aarch64_crypto_sha1su0v4si): Ditto. | |
33974 | (aarch64_crypto_sha256h<sha256_op>v4si): Ditto. | |
33975 | (aarch64_crypto_sha256su0v4si): Ditto. | |
33976 | (aarch64_crypto_sha256su1v4si): Ditto. | |
33977 | (doc/invoke.texi): Document new aes and sha2 options. | |
33978 | ||
33979 | 2018-01-10 Martin Sebor <msebor@redhat.com> | |
33980 | ||
33981 | PR tree-optimization/83781 | |
33982 | * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers | |
33983 | as string arrays. | |
33984 | ||
33985 | 2018-01-11 Martin Sebor <msebor@gmail.com> | |
33986 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
33987 | ||
33988 | PR tree-optimization/83501 | |
33989 | PR tree-optimization/81703 | |
33990 | ||
33991 | * tree-ssa-strlen.c (get_string_cst): Rename... | |
33992 | (get_string_len): ...to this. Handle global constants. | |
33993 | (handle_char_store): Adjust. | |
33994 | ||
33995 | 2018-01-10 Kito Cheng <kito.cheng@gmail.com> | |
33996 | Jim Wilson <jimw@sifive.com> | |
33997 | ||
33998 | * config/riscv/riscv-protos.h (riscv_output_return): New. | |
33999 | * config/riscv/riscv.c (struct machine_function): New naked_p field. | |
34000 | (riscv_attribute_table, riscv_output_return), | |
34001 | (riscv_handle_fndecl_attribute, riscv_naked_function_p), | |
34002 | (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New. | |
34003 | (riscv_compute_frame_info): Only compute frame->mask if not a naked | |
34004 | function. | |
34005 | (riscv_expand_prologue): Add early return for naked function. | |
34006 | (riscv_expand_epilogue): Likewise. | |
34007 | (riscv_function_ok_for_sibcall): Return false for naked function. | |
34008 | (riscv_set_current_function): New. | |
34009 | (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS), | |
34010 | (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New. | |
34011 | * config/riscv/riscv.md (simple_return): Call riscv_output_return. | |
34012 | * doc/extend.texi (RISC-V Function Attributes): New. | |
34013 | ||
34014 | 2018-01-10 Michael Meissner <meissner@linux.vnet.ibm.com> | |
34015 | ||
34016 | * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly | |
34017 | check for 128-bit long double before checking TCmode. | |
34018 | * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for | |
34019 | 128-bit long doubles before checking TFmode or TCmode. | |
34020 | (FLOAT128_IBM_P): Likewise. | |
34021 | ||
34022 | 2018-01-10 Martin Sebor <msebor@redhat.com> | |
34023 | ||
34024 | PR tree-optimization/83671 | |
34025 | * builtins.c (c_strlen): Unconditionally return zero for the empty | |
34026 | string. | |
34027 | Use -Warray-bounds for warnings. | |
34028 | * gimple-fold.c (get_range_strlen): Handle non-constant lengths | |
34029 | for non-constant array indices with COMPONENT_REF, arrays of | |
34030 | arrays, and pointers to arrays. | |
34031 | (gimple_fold_builtin_strlen): Determine and set length range for | |
34032 | non-constant character arrays. | |
34033 | ||
34034 | 2018-01-10 Aldy Hernandez <aldyh@redhat.com> | |
34035 | ||
34036 | PR middle-end/81897 | |
34037 | * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip | |
34038 | empty blocks. | |
34039 | ||
34040 | 2018-01-10 Eric Botcazou <ebotcazou@adacore.com> | |
34041 | ||
34042 | * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. | |
34043 | ||
34044 | 2018-01-10 Peter Bergner <bergner@vnet.ibm.com> | |
34045 | ||
34046 | PR target/83399 | |
34047 | * config/rs6000/rs6000.c (print_operand) <'y'>: Use | |
34048 | VECTOR_MEM_ALTIVEC_OR_VSX_P. | |
34049 | * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use | |
34050 | indexed_or_indirect_operand predicate. | |
34051 | (*vsx_le_perm_load_<mode> for VSX_W): Likewise. | |
34052 | (*vsx_le_perm_load_v8hi): Likewise. | |
34053 | (*vsx_le_perm_load_v16qi): Likewise. | |
34054 | (*vsx_le_perm_store_<mode> for VSX_D): Likewise. | |
34055 | (*vsx_le_perm_store_<mode> for VSX_W): Likewise. | |
34056 | (*vsx_le_perm_store_v8hi): Likewise. | |
34057 | (*vsx_le_perm_store_v16qi): Likewise. | |
34058 | (eight unnamed splitters): Likewise. | |
34059 | ||
34060 | 2018-01-10 Peter Bergner <bergner@vnet.ibm.com> | |
34061 | ||
34062 | * config/rs6000/x86intrin.h: Change #warning to #error. Update message. | |
34063 | * config/rs6000/emmintrin.h: Likewise. | |
34064 | * config/rs6000/mmintrin.h: Likewise. | |
34065 | * config/rs6000/xmmintrin.h: Likewise. | |
34066 | ||
34067 | 2018-01-10 David Malcolm <dmalcolm@redhat.com> | |
34068 | ||
34069 | PR c++/43486 | |
34070 | * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of | |
34071 | "public_flag". | |
34072 | * tree.c (tree_nop_conversion): Return true for location wrapper | |
34073 | nodes. | |
34074 | (maybe_wrap_with_location): New function. | |
34075 | (selftest::check_strip_nops): New function. | |
34076 | (selftest::test_location_wrappers): New function. | |
34077 | (selftest::tree_c_tests): Call it. | |
34078 | * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro. | |
34079 | (maybe_wrap_with_location): New decl. | |
34080 | (EXPR_LOCATION_WRAPPER_P): New macro. | |
34081 | (location_wrapper_p): New inline function. | |
34082 | (tree_strip_any_location_wrapper): New inline function. | |
34083 | ||
34084 | 2018-01-10 H.J. Lu <hongjiu.lu@intel.com> | |
34085 | ||
34086 | PR target/83735 | |
34087 | * config/i386/i386.c (ix86_compute_frame_layout): Always adjust | |
34088 | stack_realign_offset for the largest alignment of stack slot | |
34089 | actually used. | |
34090 | (ix86_find_max_used_stack_alignment): New function. | |
34091 | (ix86_finalize_stack_frame_flags): Use it. Set | |
34092 | max_used_stack_alignment if we don't realign stack. | |
34093 | * config/i386/i386.h (machine_function): Add | |
34094 | max_used_stack_alignment. | |
34095 | ||
34096 | 2018-01-10 Christophe Lyon <christophe.lyon@linaro.org> | |
34097 | ||
34098 | * config/arm/arm.opt (-mbranch-cost): New option. | |
34099 | * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into | |
34100 | account. | |
34101 | ||
34102 | 2018-01-10 Segher Boessenkool <segher@kernel.crashing.org> | |
34103 | ||
34104 | PR target/83629 | |
34105 | * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, | |
34106 | load_toc_v4_PIC_3c): Wrap const term in CONST RTL. | |
34107 | ||
34108 | 2018-01-10 Richard Biener <rguenther@suse.de> | |
34109 | ||
34110 | PR debug/83765 | |
34111 | * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration | |
34112 | early out so it also covers the case where we have a non-NULL | |
34113 | origin. | |
34114 | ||
34115 | 2018-01-10 Richard Sandiford <richard.sandiford@linaro.org> | |
34116 | ||
34117 | PR tree-optimization/83753 | |
34118 | * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS | |
34119 | for non-strided grouped accesses if the number of elements is 1. | |
34120 | ||
34121 | 2018-01-10 Jan Hubicka <hubicka@ucw.cz> | |
34122 | ||
34123 | PR target/81616 | |
34124 | * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. | |
34125 | * i386.h (TARGET_USE_GATHER): Define. | |
34126 | * x86-tune.def (X86_TUNE_USE_GATHER): New. | |
34127 | ||
34128 | 2018-01-10 Martin Liska <mliska@suse.cz> | |
34129 | ||
34130 | PR bootstrap/82831 | |
34131 | * basic-block.h (CLEANUP_NO_PARTITIONING): New define. | |
34132 | * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up | |
34133 | partitioning. | |
34134 | * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if | |
34135 | CLEANUP_NO_PARTITIONING is not set. | |
34136 | ||
34137 | 2018-01-10 Richard Sandiford <richard.sandiford@linaro.org> | |
34138 | ||
34139 | * doc/rtl.texi: Remove documentation of (const ...) wrappers | |
34140 | for vectors, as a partial revert of r254296. | |
34141 | * rtl.h (const_vec_p): Delete. | |
34142 | (const_vec_duplicate_p): Don't test for vector CONSTs. | |
34143 | (unwrap_const_vec_duplicate, const_vec_series_p): Likewise. | |
34144 | * expmed.c (make_tree): Likewise. | |
34145 | ||
34146 | Revert: | |
34147 | * common.md (E, F): Use CONSTANT_P instead of checking for | |
34148 | CONST_VECTOR. | |
34149 | * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of | |
34150 | checking for CONST_VECTOR. | |
34151 | ||
34152 | 2018-01-09 Jan Hubicka <hubicka@ucw.cz> | |
34153 | ||
34154 | PR middle-end/83575 | |
34155 | * predict.c (force_edge_cold): Handle in more sane way edges | |
34156 | with no prediction. | |
34157 | ||
34158 | 2018-01-09 Carl Love <cel@us.ibm.com> | |
34159 | ||
34160 | * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF, | |
34161 | V4SI, V4SF types. | |
34162 | (p8_vmrgew): Add support for V2DI, V2DF, V4SF types. | |
34163 | * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF, | |
34164 | VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF, | |
34165 | VMRGOW_V2DI, VMRGOW_V2DF. Remove definition for VMRGOW. | |
34166 | * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2, | |
34167 | P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW): Add definitions. | |
34168 | * config/rs6000/rs6000-protos.h: Add extern defition for | |
34169 | rs6000_generate_float2_double_code. | |
34170 | * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add | |
34171 | function. | |
34172 | * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn. | |
34173 | (float2_v2df): Add define_expand. | |
34174 | ||
34175 | 2018-01-09 Uros Bizjak <ubizjak@gmail.com> | |
34176 | ||
34177 | PR target/83628 | |
34178 | * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of | |
34179 | op_mode in the force_to_mode call. | |
34180 | ||
34181 | 2018-01-09 Richard Sandiford <richard.sandiford@linaro.org> | |
34182 | ||
34183 | * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p | |
34184 | instead of checking each element individually. | |
34185 | (aarch64_evpc_uzp): Likewise. | |
34186 | (aarch64_evpc_zip): Likewise. | |
34187 | (aarch64_evpc_ext): Likewise. | |
34188 | (aarch64_evpc_rev): Likewise. | |
34189 | (aarch64_evpc_dup): Test the encoding for a single duplicated element, | |
34190 | instead of checking each element individually. Return true without | |
34191 | generating rtl if | |
34192 | (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test | |
34193 | whether all selected elements come from the same input, instead of | |
34194 | checking each element individually. Remove calls to gen_rtx_REG, | |
34195 | start_sequence and end_sequence and instead assert that no rtl is | |
34196 | generated. | |
34197 | ||
34198 | 2018-01-09 Richard Sandiford <richard.sandiford@linaro.org> | |
34199 | ||
34200 | * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix | |
34201 | order of HIGH and CONST checks. | |
34202 | ||
34203 | 2018-01-09 Richard Sandiford <richard.sandiford@linaro.org> | |
34204 | ||
34205 | * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable | |
34206 | if the destination isn't an SSA_NAME. | |
34207 | ||
34208 | 2018-01-09 Richard Biener <rguenther@suse.de> | |
34209 | ||
34210 | PR tree-optimization/83668 | |
34211 | * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, | |
34212 | move prologue... | |
34213 | (canonicalize_loop_form): ... here, renamed from ... | |
34214 | (canonicalize_loop_closed_ssa_form): ... this and amended to | |
34215 | swap successor edges for loop exit blocks to make us use | |
34216 | the RPO order we need for initial schedule generation. | |
34217 | ||
34218 | 2018-01-09 Joseph Myers <joseph@codesourcery.com> | |
34219 | ||
34220 | PR tree-optimization/64811 | |
34221 | * match.pd: When optimizing comparisons with Inf, avoid | |
34222 | introducing or losing exceptions from comparisons with NaN. | |
34223 | ||
34224 | 2018-01-09 Martin Liska <mliska@suse.cz> | |
34225 | ||
34226 | PR sanitizer/82517 | |
34227 | * asan.c (shadow_mem_size): Add gcc_assert. | |
34228 | ||
34229 | 2018-01-09 Georg-Johann Lay <avr@gjlay.de> | |
34230 | ||
34231 | Don't save registers in main(). | |
34232 | ||
34233 | PR target/83738 | |
34234 | * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. | |
34235 | * config/avr/avr.opt (-mmain-is-OS_task): New target option. | |
34236 | * config/avr/avr.c (avr_set_current_function): Don't error if | |
34237 | naked, OS_task or OS_main are specified at the same time. | |
34238 | (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, | |
34239 | OS_main. | |
34240 | (avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task | |
34241 | attribute. | |
34242 | * common/config/avr/avr-common.c (avr_option_optimization_table): | |
34243 | Switch on -mmain-is-OS_task for optimizing compilations. | |
34244 | ||
34245 | 2018-01-09 Richard Biener <rguenther@suse.de> | |
34246 | ||
34247 | PR tree-optimization/83572 | |
34248 | * graphite.c: Include cfganal.h. | |
34249 | (graphite_transform_loops): Connect infinite loops to exit | |
34250 | and remove fake edges at the end. | |
34251 | ||
34252 | 2018-01-09 Jan Hubicka <hubicka@ucw.cz> | |
34253 | ||
34254 | * ipa-inline.c (edge_badness): Revert accidental checkin. | |
34255 | ||
34256 | 2018-01-09 Jan Hubicka <hubicka@ucw.cz> | |
34257 | ||
34258 | PR ipa/80763 | |
34259 | * ipa-comdats.c (set_comdat_group): Only set comdat group of real | |
34260 | symbols; not inline clones. | |
34261 | ||
34262 | 2018-01-09 Jakub Jelinek <jakub@redhat.com> | |
34263 | ||
34264 | PR target/83507 | |
34265 | * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move | |
34266 | hard registers. Formatting fixes. | |
34267 | ||
34268 | PR preprocessor/83722 | |
34269 | * gcc.c (try_generate_repro): Pass | |
34270 | &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than | |
34271 | &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to | |
34272 | do_report_bug. | |
34273 | ||
34274 | 2018-01-08 Monk Chiang <sh.chiang04@gmail.com> | |
34275 | Kito Cheng <kito.cheng@gmail.com> | |
34276 | ||
34277 | * config/riscv/riscv.c (machine_function::is_leaf): Remove field. | |
34278 | (riscv_leaf_function_p): Delete. | |
34279 | (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. | |
34280 | ||
34281 | 2018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
34282 | ||
34283 | * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New | |
34284 | function. | |
34285 | (do_ifelse): New function. | |
34286 | (do_isel): New function. | |
34287 | (do_sub3): New function. | |
34288 | (do_add3): New function. | |
34289 | (do_load_mask_compare): New function. | |
34290 | (do_overlap_load_compare): New function. | |
34291 | (expand_compare_loop): New function. | |
34292 | (expand_block_compare): Call expand_compare_loop() when appropriate. | |
34293 | * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change | |
34294 | option description. | |
34295 | (-mblock-compare-inline-loop-limit): New option. | |
34296 | ||
34297 | 2018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
34298 | ||
34299 | PR target/83677 | |
34300 | * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): | |
34301 | Reverse order of second and third operands in first alternative. | |
34302 | * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order | |
34303 | of first and second elements in UNSPEC_VPERMR vector. | |
34304 | (altivec_expand_vec_perm_le): Likewise. | |
34305 | ||
34306 | 2018-01-08 Jeff Law <law@redhat.com> | |
34307 | ||
34308 | PR rtl-optimizatin/81308 | |
34309 | * tree-switch-conversion.c (cfg_altered): New file scoped static. | |
34310 | (process_switch): If group_case_labels makes a change, then set | |
34311 | cfg_altered. | |
34312 | (pass_convert_switch::execute): If a switch is converted, then | |
34313 | set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. | |
34314 | ||
34315 | PR rtl-optimization/81308 | |
34316 | * recog.c (split_all_insns): Conditionally cleanup the CFG after | |
34317 | splitting insns. | |
34318 | ||
34319 | 2018-01-08 Vidya Praveen <vidyapraveen@arm.com> | |
34320 | ||
34321 | PR target/83663 - Revert r255946 | |
34322 | * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code | |
34323 | generation for cases where splatting a value is not useful. | |
34324 | * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge | |
34325 | across a vec_duplicate and a paradoxical subreg forming a vector | |
34326 | mode to a vec_concat. | |
34327 | ||
34328 | 2018-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34329 | ||
34330 | * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for | |
34331 | -march=armv8.3-a variants. | |
34332 | * config/arm/t-multilib: Likewise. | |
34333 | * config/arm/t-arm-elf: Likewise. Handle dotprod extension. | |
34334 | ||
34335 | 2018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
34336 | ||
34337 | * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it | |
34338 | to generate rtl. | |
34339 | (cceq_ior_compare_complement): Give it a name so I can use it, and | |
34340 | change boolean_or_operator predicate to boolean_operator so it can | |
34341 | be used to generate a crand. | |
34342 | (eqne): New code iterator. | |
34343 | (bd/bd_neg): New code_attrs. | |
34344 | (<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into | |
34345 | a single define_insn. | |
34346 | (<bd>tf_<mode>): A new insn pattern for the conditional form branch | |
34347 | decrement (bdnzt/bdnzf/bdzt/bdzf). | |
34348 | * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated | |
34349 | with the new names of the branch decrement patterns, and added the | |
34350 | names of the branch decrement conditional patterns. | |
34351 | ||
34352 | 2018-01-08 Richard Biener <rguenther@suse.de> | |
34353 | ||
34354 | PR tree-optimization/83563 | |
34355 | * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV | |
34356 | cache. | |
34357 | ||
34358 | 2018-01-08 Richard Biener <rguenther@suse.de> | |
34359 | ||
34360 | PR middle-end/83713 | |
34361 | * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. | |
34362 | ||
34363 | 2018-01-08 Richard Biener <rguenther@suse.de> | |
34364 | ||
34365 | PR tree-optimization/83685 | |
34366 | * tree-ssa-pre.c (create_expression_by_pieces): Do not insert | |
34367 | references to abnormals. | |
34368 | ||
34369 | 2018-01-08 Richard Biener <rguenther@suse.de> | |
34370 | ||
34371 | PR lto/83719 | |
34372 | * dwarf2out.c (output_indirect_strings): Handle empty | |
34373 | skeleton_debug_str_hash. | |
34374 | (dwarf2out_early_finish): Index strings for -gsplit-dwarf. | |
34375 | ||
34376 | 2018-01-08 Claudiu Zissulescu <claziss@synopsys.com> | |
34377 | ||
34378 | * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. | |
34379 | (emit_store_direct): Likewise. | |
34380 | (arc_trampoline_adjust_address): Likewise. | |
34381 | (arc_asm_trampoline_template): New function. | |
34382 | (arc_initialize_trampoline): Use asm_trampoline_template. | |
34383 | (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define. | |
34384 | * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16. | |
34385 | * config/arc/arc.md (flush_icache): Delete pattern. | |
34386 | ||
34387 | 2018-01-08 Claudiu Zissulescu <claziss@synopsys.com> | |
34388 | ||
34389 | * config/arc/arc-c.def (__ARC_UNALIGNED__): New define. | |
34390 | * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using | |
34391 | munaligned-access. | |
34392 | ||
34393 | 2018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34394 | ||
34395 | PR target/83681 | |
34396 | * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard | |
34397 | by not USED_FOR_TARGET. | |
34398 | (make_pass_resolve_sw_modes): Likewise. | |
34399 | ||
34400 | 2018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34401 | ||
34402 | * config/nios2/nios2.h (nios2_section_threshold): Guard by not | |
34403 | USED_FOR_TARGET. | |
34404 | ||
34405 | 2018-01-08 Richard Biener <rguenther@suse.de> | |
34406 | ||
34407 | PR middle-end/83580 | |
34408 | * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS. | |
34409 | ||
34410 | 2018-01-08 Richard Biener <rguenther@suse.de> | |
34411 | ||
34412 | PR middle-end/83517 | |
34413 | * match.pd ((t * 2) / 2) -> t): Add missing :c. | |
34414 | ||
34415 | 2018-01-06 Aldy Hernandez <aldyh@redhat.com> | |
34416 | ||
34417 | PR middle-end/81897 | |
34418 | * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on | |
34419 | basic blocks with a small number of successors. | |
34420 | (convert_control_dep_chain_into_preds): Improve handling of | |
34421 | forwarder blocks. | |
34422 | (dump_predicates): Split apart into... | |
34423 | (dump_pred_chain): ...here... | |
34424 | (dump_pred_info): ...and here. | |
34425 | (can_one_predicate_be_invalidated_p): Add debugging printfs. | |
34426 | (can_chain_union_be_invalidated_p): Improve check for invalidation | |
34427 | of paths. | |
34428 | (uninit_uses_cannot_happen): Avoid unnecessary if | |
34429 | convert_control_dep_chain_into_preds yielded nothing. | |
34430 | ||
34431 | 2018-01-06 Martin Sebor <msebor@redhat.com> | |
34432 | ||
34433 | PR tree-optimization/83640 | |
34434 | * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid | |
34435 | subtracting negative offset from size. | |
34436 | (builtin_access::overlap): Adjust offset bounds of the access to fall | |
34437 | within the size of the object if possible. | |
34438 | ||
34439 | 2018-01-06 Richard Sandiford <richard.sandiford@linaro.org> | |
34440 | ||
34441 | PR rtl-optimization/83699 | |
34442 | * expmed.c (extract_bit_field_1): Restrict the vector usage of | |
34443 | extract_bit_field_as_subreg to cases in which the extracted | |
34444 | value is also a vector. | |
34445 | ||
34446 | * lra-constraints.c (process_alt_operands): Test for the equivalence | |
34447 | substitutions when detecting a possible reload cycle. | |
34448 | ||
34449 | 2018-01-06 Jakub Jelinek <jakub@redhat.com> | |
34450 | ||
34451 | PR debug/83480 | |
34452 | * toplev.c (process_options): Don't enable debug_nonbind_markers_p | |
34453 | by default if flag_selective_schedling{,2}. Formatting fixes. | |
34454 | ||
34455 | PR rtl-optimization/83682 | |
34456 | * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE | |
34457 | if it has non-VECTOR_MODE element mode. | |
34458 | (vec_duplicate_p): Likewise. | |
34459 | ||
34460 | PR middle-end/83694 | |
34461 | * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode | |
34462 | and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT. | |
34463 | ||
34464 | 2018-01-05 Jakub Jelinek <jakub@redhat.com> | |
34465 | ||
34466 | PR target/83604 | |
34467 | * config/i386/i386-builtin.def | |
34468 | (__builtin_ia32_vgf2p8affineinvqb_v64qi, | |
34469 | __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi): | |
34470 | Require also OPTION_MASK_ISA_AVX512F in addition to | |
34471 | OPTION_MASK_ISA_GFNI. | |
34472 | (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask, | |
34473 | __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require | |
34474 | OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition | |
34475 | to OPTION_MASK_ISA_GFNI. | |
34476 | (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require | |
34477 | OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and | |
34478 | OPTION_MASK_ISA_AVX512BW. | |
34479 | (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require | |
34480 | OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in | |
34481 | addition to OPTION_MASK_ISA_GFNI. | |
34482 | (__builtin_ia32_vgf2p8affineinvqb_v16qi, | |
34483 | __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi): | |
34484 | Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition | |
34485 | to OPTION_MASK_ISA_GFNI. | |
34486 | * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being | |
34487 | a requirement for all ISAs rather than any of them with a few | |
34488 | exceptions. | |
34489 | (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before | |
34490 | processing. | |
34491 | (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2 | |
34492 | bitmasks to be enabled with 3 exceptions, instead of requiring any | |
34493 | enabled ISA with lots of exceptions. | |
34494 | * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, | |
34495 | vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): | |
34496 | Change avx512bw in isa attribute to avx512f. | |
34497 | * config/i386/sgxintrin.h: Add license boilerplate. | |
34498 | * config/i386/vaesintrin.h: Likewise. Fix macro spelling __AVX512F | |
34499 | to __AVX512F__ and __AVX512VL to __AVX512VL__. | |
34500 | (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128, | |
34501 | _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not | |
34502 | defined. | |
34503 | * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, | |
34504 | _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable | |
34505 | temporarily sse2 rather than sse if not enabled already. | |
34506 | ||
34507 | PR target/83604 | |
34508 | * config/i386/sse.md (VI248_VLBW): Rename to ... | |
34509 | (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. | |
34510 | (vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, | |
34511 | vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, | |
34512 | vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, | |
34513 | vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL | |
34514 | mode iterator instead of VI248_VLBW. | |
34515 | ||
34516 | 2018-01-05 Jan Hubicka <hubicka@ucw.cz> | |
34517 | ||
34518 | * ipa-fnsummary.c (record_modified_bb_info): Add OP. | |
34519 | (record_modified): Skip clobbers; add debug output. | |
34520 | (param_change_prob): Use sreal frequencies. | |
34521 | ||
34522 | 2018-01-05 Richard Sandiford <richard.sandiford@linaro.org> | |
34523 | ||
34524 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't | |
34525 | punt for user-aligned variables. | |
34526 | ||
34527 | 2018-01-05 Richard Sandiford <richard.sandiford@linaro.org> | |
34528 | ||
34529 | * tree-chrec.c (chrec_contains_symbols): Return true for | |
34530 | POLY_INT_CST. | |
34531 | ||
34532 | 2018-01-05 Sudakshina Das <sudi.das@arm.com> | |
34533 | ||
34534 | PR target/82439 | |
34535 | * simplify-rtx.c (simplify_relational_operation_1): Add simplifications | |
34536 | of (x|y) == x for BICS pattern. | |
34537 | ||
34538 | 2018-01-05 Jakub Jelinek <jakub@redhat.com> | |
34539 | ||
34540 | PR tree-optimization/83605 | |
34541 | * gimple-ssa-strength-reduction.c: Include tree-eh.h. | |
34542 | (find_candidates_dom_walker::before_dom_children): Ignore stmts that | |
34543 | can throw. | |
34544 | ||
34545 | 2018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
34546 | ||
34547 | * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. | |
34548 | * config/epiphany/rtems.h: New file. | |
34549 | ||
34550 | 2018-01-04 Jakub Jelinek <jakub@redhat.com> | |
34551 | Uros Bizjak <ubizjak@gmail.com> | |
34552 | ||
34553 | PR target/83554 | |
34554 | * config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use | |
34555 | QIreg_operand instead of register_operand predicate. | |
34556 | * config/i386/i386.c (ix86_rop_should_change_byte_p, | |
34557 | set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in | |
34558 | comments instead of -fmitigate[-_]rop. | |
34559 | ||
34560 | 2018-01-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
34561 | ||
34562 | PR bootstrap/81926 | |
34563 | * cgraphunit.c (symbol_table::compile): Switch to text_section | |
34564 | before calling assembly_start debug hook. | |
34565 | * run-rtl-passes.c (run_rtl_passes): Likewise. | |
34566 | Include output.h. | |
34567 | ||
34568 | 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> | |
34569 | ||
34570 | * tree-vrp.c (extract_range_from_binary_expr_1): Check | |
34571 | range_int_cst_p rather than !symbolic_range_p before calling | |
34572 | extract_range_from_multiplicative_op_1. | |
34573 | ||
34574 | 2018-01-04 Jeff Law <law@redhat.com> | |
34575 | ||
34576 | * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove | |
34577 | redundant test in assertion. | |
34578 | ||
34579 | 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> | |
34580 | ||
34581 | * doc/rtl.texi: Document machine_mode wrapper classes. | |
34582 | ||
34583 | 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> | |
34584 | ||
34585 | * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before | |
34586 | using tree_to_uhwi. | |
34587 | ||
34588 | 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> | |
34589 | ||
34590 | * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow | |
34591 | the VEC_PERM_EXPR fold to fail. | |
34592 | ||
34593 | 2018-01-04 Jakub Jelinek <jakub@redhat.com> | |
34594 | ||
34595 | PR debug/83585 | |
34596 | * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition | |
34597 | to switched_sections. | |
34598 | ||
34599 | 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> | |
34600 | ||
34601 | PR target/83680 | |
34602 | * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted | |
34603 | test for d.testing. | |
34604 | ||
34605 | 2018-01-04 Peter Bergner <bergner@vnet.ibm.com> | |
34606 | ||
34607 | PR target/83387 | |
34608 | * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not | |
34609 | allow arguments in FP registers if TARGET_HARD_FLOAT is false. | |
34610 | ||
34611 | 2018-01-04 Jakub Jelinek <jakub@redhat.com> | |
34612 | ||
34613 | PR debug/83666 | |
34614 | * cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode | |
34615 | is BLKmode and bitpos not zero or mode change is needed. | |
34616 | ||
34617 | 2018-01-04 Richard Sandiford <richard.sandiford@linaro.org> | |
34618 | ||
34619 | PR target/83675 | |
34620 | * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require | |
34621 | TARGET_VIS2. | |
34622 | ||
34623 | 2018-01-04 Uros Bizjak <ubizjak@gmail.com> | |
34624 | ||
34625 | PR target/83628 | |
34626 | * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT | |
34627 | instead of MULT rtx. Update all corresponding splitters. | |
34628 | (*saddl_se): Ditto. | |
34629 | (*ssub<modesuffix>): Ditto. | |
34630 | (*ssubl_se): Ditto. | |
34631 | (*cmp_sadd_di): Update split patterns. | |
34632 | (*cmp_sadd_si): Ditto. | |
34633 | (*cmp_sadd_sidi): Ditto. | |
34634 | (*cmp_ssub_di): Ditto. | |
34635 | (*cmp_ssub_si): Ditto. | |
34636 | (*cmp_ssub_sidi): Ditto. | |
34637 | * config/alpha/predicates.md (const23_operand): New predicate. | |
34638 | * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: | |
34639 | Look for ASHIFT, not MULT inner operand. | |
34640 | (alpha_split_conditional_move): Update for *sadd<modesuffix> change. | |
34641 | ||
34642 | 2018-01-04 Martin Liska <mliska@suse.cz> | |
34643 | ||
34644 | PR gcov-profile/83669 | |
34645 | * gcov.c (output_intermediate_file): Add version to intermediate | |
34646 | gcov file. | |
34647 | * doc/gcov.texi: Document new field 'version' in intermediate | |
34648 | file format. Fix location of '-k' option of gcov command. | |
34649 | ||
34650 | 2018-01-04 Martin Liska <mliska@suse.cz> | |
34651 | ||
34652 | PR ipa/82352 | |
34653 | * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. | |
34654 | ||
34655 | 2018-01-04 Jakub Jelinek <jakub@redhat.com> | |
34656 | ||
34657 | * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. | |
34658 | ||
34659 | 2018-01-03 Martin Sebor <msebor@redhat.com> | |
34660 | ||
34661 | PR tree-optimization/83655 | |
34662 | * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid | |
34663 | checking calls with invalid arguments. | |
34664 | ||
34665 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34666 | ||
34667 | * tree-vect-stmts.c (vect_get_store_rhs): New function. | |
34668 | (vectorizable_mask_load_store): Delete. | |
34669 | (vectorizable_call): Return false for masked loads and stores. | |
34670 | (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs | |
34671 | instead of gimple_assign_rhs1. | |
34672 | (vectorizable_load): Handle IFN_MASK_LOAD. | |
34673 | (vect_transform_stmt): Don't set is_store for call_vec_info_type. | |
34674 | ||
34675 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34676 | ||
34677 | * tree-vect-stmts.c (vect_build_gather_load_calls): New function, | |
34678 | split out from.., | |
34679 | (vectorizable_mask_load_store): ...here. | |
34680 | (vectorizable_load): ...and here. | |
34681 | ||
34682 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34683 | ||
34684 | * tree-vect-stmts.c (vect_build_all_ones_mask) | |
34685 | (vect_build_zero_merge_argument): New functions, split out from... | |
34686 | (vectorizable_load): ...here. | |
34687 | ||
34688 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34689 | ||
34690 | * tree-vect-stmts.c (vect_check_store_rhs): New function, | |
34691 | split out from... | |
34692 | (vectorizable_mask_load_store): ...here. | |
34693 | (vectorizable_store): ...and here. | |
34694 | ||
34695 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34696 | ||
34697 | * tree-vect-stmts.c (vect_check_load_store_mask): New function, | |
34698 | split out from... | |
34699 | (vectorizable_mask_load_store): ...here. | |
34700 | ||
34701 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34702 | ||
34703 | * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c | |
34704 | (vect_model_store_cost): Take a vec_load_store_type instead of a | |
34705 | vect_def_type. | |
34706 | * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h. | |
34707 | (vect_model_store_cost): Take a vec_load_store_type instead of a | |
34708 | vect_def_type. | |
34709 | (vectorizable_mask_load_store): Update accordingly. | |
34710 | (vectorizable_store): Likewise. | |
34711 | * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly. | |
34712 | ||
34713 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34714 | ||
34715 | * tree-vect-loop.c (vect_transform_loop): Stub out scalar | |
34716 | IFN_MASK_LOAD calls here rather than... | |
34717 | * tree-vect-stmts.c (vectorizable_mask_load_store): ...here. | |
34718 | ||
34719 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34720 | Alan Hayward <alan.hayward@arm.com> | |
34721 | David Sherwood <david.sherwood@arm.com> | |
34722 | ||
34723 | * expmed.c (extract_bit_field_1): For vector extracts, | |
34724 | fall back to extract_bit_field_as_subreg if vec_extract | |
34725 | isn't available. | |
34726 | ||
34727 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34728 | Alan Hayward <alan.hayward@arm.com> | |
34729 | David Sherwood <david.sherwood@arm.com> | |
34730 | ||
34731 | * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether | |
34732 | they are variable or constant sized. | |
34733 | (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized | |
34734 | slots for constant-sized data. | |
34735 | ||
34736 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34737 | Alan Hayward <alan.hayward@arm.com> | |
34738 | David Sherwood <david.sherwood@arm.com> | |
34739 | ||
34740 | * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When | |
34741 | handling COND_EXPRs with boolean comparisons, try to find a better | |
34742 | basis for the mask type than the boolean itself. | |
34743 | ||
34744 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34745 | ||
34746 | * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default | |
34747 | is calculated and how it can be overridden. | |
34748 | * genmodes.c (max_bitsize_mode_any_mode): New variable. | |
34749 | (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE, | |
34750 | if defined. | |
34751 | (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE, | |
34752 | if nonzero. | |
34753 | ||
34754 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34755 | Alan Hayward <alan.hayward@arm.com> | |
34756 | David Sherwood <david.sherwood@arm.com> | |
34757 | ||
34758 | * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate): | |
34759 | Remove the mode argument. | |
34760 | (aarch64_simd_valid_immediate): Remove the mode and inverse | |
34761 | arguments. | |
34762 | * config/aarch64/iterators.md (bitsize): New iterator. | |
34763 | * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3) | |
34764 | (ior<mode>3): Update calls to aarch64_output_simd_mov_immediate. | |
34765 | * config/aarch64/constraints.md (Do, Db, Dn): Update calls to | |
34766 | aarch64_simd_valid_immediate. | |
34767 | * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise. | |
34768 | (aarch64_reg_or_bic_imm): Likewise. | |
34769 | * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn | |
34770 | with an insn_type enum and msl with a modifier_type enum. | |
34771 | Replace element_width with a scalar_mode. Change the shift | |
34772 | to unsigned int. Add constructors for scalar_float_mode and | |
34773 | scalar_int_mode elements. | |
34774 | (aarch64_vect_float_const_representable_p): Delete. | |
34775 | (aarch64_can_const_movi_rtx_p) | |
34776 | (aarch64_simd_scalar_immediate_valid_for_move) | |
34777 | (aarch64_simd_make_constant): Update call to | |
34778 | aarch64_simd_valid_immediate. | |
34779 | (aarch64_advsimd_valid_immediate_hs): New function. | |
34780 | (aarch64_advsimd_valid_immediate): Likewise. | |
34781 | (aarch64_simd_valid_immediate): Remove mode and inverse | |
34782 | arguments. Rewrite to use the above. Use const_vec_duplicate_p | |
34783 | to detect duplicated constants and use aarch64_float_const_zero_rtx_p | |
34784 | and aarch64_float_const_representable_p on the result. | |
34785 | (aarch64_output_simd_mov_immediate): Remove mode argument. | |
34786 | Update call to aarch64_simd_valid_immediate and use of | |
34787 | simd_immediate_info. | |
34788 | (aarch64_output_scalar_simd_mov_immediate): Update call | |
34789 | accordingly. | |
34790 | ||
34791 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34792 | Alan Hayward <alan.hayward@arm.com> | |
34793 | David Sherwood <david.sherwood@arm.com> | |
34794 | ||
34795 | * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION. | |
34796 | (mode_nunits): Likewise CONST_MODE_NUNITS. | |
34797 | * machmode.def (ADJUST_NUNITS): Document. | |
34798 | * genmodes.c (mode_data::need_nunits_adj): New field. | |
34799 | (blank_mode): Update accordingly. | |
34800 | (adj_nunits): New variable. | |
34801 | (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ | |
34802 | parameter. | |
34803 | (emit_mode_size_inline): Set need_bytesize_adj for all modes | |
34804 | listed in adj_nunits. | |
34805 | (emit_mode_nunits_inline): Set need_nunits_adj for all modes | |
34806 | listed in adj_nunits. Don't emit case statements for such modes. | |
34807 | (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS | |
34808 | and CONST_MODE_PRECISION. Make CONST_MODE_SIZE expand to | |
34809 | nothing if adj_nunits is nonnull. | |
34810 | (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl. | |
34811 | (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit) | |
34812 | (emit_mode_fbit): Update use of print_maybe_const_decl. | |
34813 | (emit_move_size): Likewise. Treat the array as non-const | |
34814 | if adj_nunits. | |
34815 | (emit_mode_adjustments): Handle adj_nunits. | |
34816 | ||
34817 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34818 | ||
34819 | * machmode.def (VECTOR_MODES_WITH_PREFIX): Document. | |
34820 | * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro. | |
34821 | (VECTOR_MODES): Use it. | |
34822 | (make_vector_modes): Take the prefix as an argument. | |
34823 | ||
34824 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34825 | Alan Hayward <alan.hayward@arm.com> | |
34826 | David Sherwood <david.sherwood@arm.com> | |
34827 | ||
34828 | * mode-classes.def (MODE_VECTOR_BOOL): New mode class. | |
34829 | * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true | |
34830 | for MODE_VECTOR_BOOL. | |
34831 | * machmode.def (VECTOR_BOOL_MODE): Document. | |
34832 | * genmodes.c (VECTOR_BOOL_MODE): New macro. | |
34833 | (make_vector_bool_mode): New function. | |
34834 | (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle | |
34835 | MODE_VECTOR_BOOL. | |
34836 | * lto-streamer-in.c (lto_input_mode_table): Likewise. | |
34837 | * rtx-vector-builder.c (rtx_vector_builder::find_cached_value): | |
34838 | Likewise. | |
34839 | * stor-layout.c (int_mode_for_mode): Likewise. | |
34840 | * tree.c (build_vector_type_for_mode): Likewise. | |
34841 | * varasm.c (output_constant_pool_2): Likewise. | |
34842 | * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and | |
34843 | CONSTM1_RTX (BImode) are the same thing. Initialize const_tiny_rtx | |
34844 | for MODE_VECTOR_BOOL. | |
34845 | * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list | |
34846 | of mode class checks. | |
34847 | * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P | |
34848 | instead of a list of mode class checks. | |
34849 | (expand_vector_scalar_condition): Likewise. | |
34850 | (type_for_widest_vector_mode): Handle BImode as an inner mode. | |
34851 | ||
34852 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34853 | Alan Hayward <alan.hayward@arm.com> | |
34854 | David Sherwood <david.sherwood@arm.com> | |
34855 | ||
34856 | * machmode.h (mode_size): Change from unsigned short to | |
34857 | poly_uint16_pod. | |
34858 | (mode_to_bytes): Return a poly_uint16 rather than an unsigned short. | |
34859 | (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES, | |
34860 | or if measurement_type is not polynomial. | |
34861 | (fixed_size_mode::includes_p): Check for constant-sized modes. | |
34862 | * genmodes.c (emit_mode_size_inline): Make mode_size_inline | |
34863 | return a poly_uint16 rather than an unsigned short. | |
34864 | (emit_mode_size): Change the type of mode_size from unsigned short | |
34865 | to poly_uint16_pod. Use ZERO_COEFFS for the initializer. | |
34866 | (emit_mode_adjustments): Cope with polynomial vector sizes. | |
34867 | * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value | |
34868 | for GET_MODE_SIZE. | |
34869 | * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value | |
34870 | for GET_MODE_SIZE. | |
34871 | * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial. | |
34872 | * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise. | |
34873 | * caller-save.c (setup_save_areas): Likewise. | |
34874 | (replace_reg_with_saved_mem): Likewise. | |
34875 | * calls.c (emit_library_call_value_1): Likewise. | |
34876 | * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise. | |
34877 | * combine.c (simplify_set, make_extraction, simplify_shift_const_1) | |
34878 | (gen_lowpart_for_combine): Likewise. | |
34879 | * convert.c (convert_to_integer_1): Likewise. | |
34880 | * cse.c (equiv_constant, cse_insn): Likewise. | |
34881 | * cselib.c (autoinc_split, cselib_hash_rtx): Likewise. | |
34882 | (cselib_subst_to_values): Likewise. | |
34883 | * dce.c (word_dce_process_block): Likewise. | |
34884 | * df-problems.c (df_word_lr_mark_ref): Likewise. | |
34885 | * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise. | |
34886 | * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor) | |
34887 | (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor) | |
34888 | (rtl_for_decl_location): Likewise. | |
34889 | * emit-rtl.c (gen_highpart, widen_memory_access): Likewise. | |
34890 | * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise. | |
34891 | * expr.c (emit_group_load_1, clear_storage_hints): Likewise. | |
34892 | (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise. | |
34893 | (expand_expr_real_1): Likewise. | |
34894 | * function.c (assign_parm_setup_block_p, assign_parm_setup_block) | |
34895 | (pad_below): Likewise. | |
34896 | * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. | |
34897 | * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise. | |
34898 | * ira.c (get_subreg_tracking_sizes): Likewise. | |
34899 | * ira-build.c (ira_create_allocno_objects): Likewise. | |
34900 | * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise. | |
34901 | (ira_sort_regnos_for_alter_reg): Likewise. | |
34902 | * ira-costs.c (record_operand_costs): Likewise. | |
34903 | * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn) | |
34904 | (resolve_simple_move): Likewise. | |
34905 | * lra-constraints.c (get_reload_reg, operands_match_p): Likewise. | |
34906 | (process_addr_reg, simplify_operand_subreg, curr_insn_transform) | |
34907 | (lra_constraints): Likewise. | |
34908 | (CONST_POOL_OK_P): Reject variable-sized modes. | |
34909 | * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare) | |
34910 | (add_pseudo_to_slot, lra_spill): Likewise. | |
34911 | * omp-low.c (omp_clause_aligned_alignment): Likewise. | |
34912 | * optabs-query.c (get_best_extraction_insn): Likewise. | |
34913 | * optabs-tree.c (expand_vec_cond_expr_p): Likewise. | |
34914 | * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise. | |
34915 | (expand_mult_highpart, valid_multiword_target_p): Likewise. | |
34916 | * recog.c (offsettable_address_addr_space_p): Likewise. | |
34917 | * regcprop.c (maybe_mode_change): Likewise. | |
34918 | * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise. | |
34919 | * regrename.c (build_def_use): Likewise. | |
34920 | * regstat.c (dump_reg_info): Likewise. | |
34921 | * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload) | |
34922 | (find_reloads, find_reloads_subreg_address): Likewise. | |
34923 | * reload1.c (eliminate_regs_1): Likewise. | |
34924 | * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise. | |
34925 | * simplify-rtx.c (avoid_constant_pool_reference): Likewise. | |
34926 | (simplify_binary_operation_1, simplify_subreg): Likewise. | |
34927 | * targhooks.c (default_function_arg_padding): Likewise. | |
34928 | (default_hard_regno_nregs, default_class_max_nregs): Likewise. | |
34929 | * tree-cfg.c (verify_gimple_assign_binary): Likewise. | |
34930 | (verify_gimple_assign_ternary): Likewise. | |
34931 | * tree-inline.c (estimate_move_cost): Likewise. | |
34932 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
34933 | * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise. | |
34934 | (get_address_cost_ainc): Likewise. | |
34935 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. | |
34936 | (vect_supportable_dr_alignment): Likewise. | |
34937 | * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. | |
34938 | (vectorizable_reduction): Likewise. | |
34939 | * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift) | |
34940 | (vectorizable_operation, vectorizable_load): Likewise. | |
34941 | * tree.c (build_same_sized_truth_vector_type): Likewise. | |
34942 | * valtrack.c (cleanup_auto_inc_dec): Likewise. | |
34943 | * var-tracking.c (emit_note_insn_var_location): Likewise. | |
34944 | * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>. | |
34945 | (ADDR_VEC_ALIGN): Likewise. | |
34946 | ||
34947 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34948 | Alan Hayward <alan.hayward@arm.com> | |
34949 | David Sherwood <david.sherwood@arm.com> | |
34950 | ||
34951 | * machmode.h (mode_to_bits): Return a poly_uint16 rather than an | |
34952 | unsigned short. | |
34953 | (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES, | |
34954 | or if measurement_type is polynomial. | |
34955 | * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial. | |
34956 | * combine.c (make_extraction): Likewise. | |
34957 | * dse.c (find_shift_sequence): Likewise. | |
34958 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
34959 | * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise. | |
34960 | (extract_bit_field, extract_low_bits): Likewise. | |
34961 | * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise. | |
34962 | (optimize_bitfield_assignment_op, expand_assignment): Likewise. | |
34963 | (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise. | |
34964 | * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise. | |
34965 | * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. | |
34966 | * reload.c (find_reloads): Likewise. | |
34967 | * reload1.c (alter_reg): Likewise. | |
34968 | * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise. | |
34969 | * targhooks.c (default_secondary_memory_needed_mode): Likewise. | |
34970 | * tree-if-conv.c (predicate_mem_writes): Likewise. | |
34971 | * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. | |
34972 | * tree-vect-patterns.c (adjust_bool_pattern): Likewise. | |
34973 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. | |
34974 | * valtrack.c (dead_debug_insert_temp): Likewise. | |
34975 | * varasm.c (mergeable_constant_section): Likewise. | |
34976 | * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>. | |
34977 | ||
34978 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34979 | Alan Hayward <alan.hayward@arm.com> | |
34980 | David Sherwood <david.sherwood@arm.com> | |
34981 | ||
34982 | * expr.c (expand_assignment): Cope with polynomial mode sizes | |
34983 | when assigning to a CONCAT. | |
34984 | ||
34985 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
34986 | Alan Hayward <alan.hayward@arm.com> | |
34987 | David Sherwood <david.sherwood@arm.com> | |
34988 | ||
34989 | * machmode.h (mode_precision): Change from unsigned short to | |
34990 | poly_uint16_pod. | |
34991 | (mode_to_precision): Return a poly_uint16 rather than an unsigned | |
34992 | short. | |
34993 | (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES, | |
34994 | or if measurement_type is not polynomial. | |
34995 | (HWI_COMPUTABLE_MODE_P): Turn into a function. Optimize the case | |
34996 | in which the mode is already known to be a scalar_int_mode. | |
34997 | * genmodes.c (emit_mode_precision): Change the type of mode_precision | |
34998 | from unsigned short to poly_uint16_pod. Use ZERO_COEFFS for the | |
34999 | initializer. | |
35000 | * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value | |
35001 | for GET_MODE_PRECISION. | |
35002 | * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value | |
35003 | for GET_MODE_PRECISION. | |
35004 | * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION | |
35005 | as polynomial. | |
35006 | (try_combine, find_split_point, combine_simplify_rtx): Likewise. | |
35007 | (expand_field_assignment, make_extraction): Likewise. | |
35008 | (make_compound_operation_int, record_dead_and_set_regs_1): Likewise. | |
35009 | (get_last_value): Likewise. | |
35010 | * convert.c (convert_to_integer_1): Likewise. | |
35011 | * cse.c (cse_insn): Likewise. | |
35012 | * expr.c (expand_expr_real_1): Likewise. | |
35013 | * lra-constraints.c (simplify_operand_subreg): Likewise. | |
35014 | * optabs-query.c (can_atomic_load_p): Likewise. | |
35015 | * optabs.c (expand_atomic_load): Likewise. | |
35016 | (expand_atomic_store): Likewise. | |
35017 | * ree.c (combine_reaching_defs): Likewise. | |
35018 | * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise. | |
35019 | * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise. | |
35020 | * tree.h (type_has_mode_precision_p): Likewise. | |
35021 | * ubsan.c (instrument_si_overflow): Likewise. | |
35022 | ||
35023 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35024 | Alan Hayward <alan.hayward@arm.com> | |
35025 | David Sherwood <david.sherwood@arm.com> | |
35026 | ||
35027 | * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle | |
35028 | polynomial numbers of units. | |
35029 | (SET_TYPE_VECTOR_SUBPARTS): Likewise. | |
35030 | (valid_vector_subparts_p): New function. | |
35031 | (build_vector_type): Remove temporary shim and take the number | |
35032 | of units as a poly_uint64 rather than an int. | |
35033 | (build_opaque_vector_type): Take the number of units as a | |
35034 | poly_uint64 rather than an int. | |
35035 | * tree.c (build_vector_from_ctor): Handle polynomial | |
35036 | TYPE_VECTOR_SUBPARTS. | |
35037 | (type_hash_canon_hash, type_cache_hasher::equal): Likewise. | |
35038 | (uniform_vector_p, vector_type_mode, build_vector): Likewise. | |
35039 | (build_vector_from_val): If the number of units is variable, | |
35040 | use build_vec_duplicate_cst for constant operands and | |
35041 | VEC_DUPLICATE_EXPR otherwise. | |
35042 | (make_vector_type): Remove temporary is_constant (). | |
35043 | (build_vector_type, build_opaque_vector_type): Take the number of | |
35044 | units as a poly_uint64 rather than an int. | |
35045 | (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and | |
35046 | VECTOR_CST_NELTS. | |
35047 | * cfgexpand.c (expand_debug_expr): Likewise. | |
35048 | * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise. | |
35049 | (store_constructor, expand_expr_real_1): Likewise. | |
35050 | (const_scalar_mask_from_tree): Likewise. | |
35051 | * fold-const-call.c (fold_const_reduction): Likewise. | |
35052 | * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise. | |
35053 | (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise. | |
35054 | (native_encode_vector, vec_cst_ctor_to_array): Likewise. | |
35055 | (fold_relational_const): Likewise. | |
35056 | (native_interpret_vector): Likewise. Change the size from an | |
35057 | int to an unsigned int. | |
35058 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial | |
35059 | TYPE_VECTOR_SUBPARTS. | |
35060 | (gimple_fold_indirect_ref, gimple_build_vector): Likewise. | |
35061 | (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when | |
35062 | duplicating a non-constant operand into a variable-length vector. | |
35063 | * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial | |
35064 | TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS. | |
35065 | * ipa-icf.c (sem_variable::equals): Likewise. | |
35066 | * match.pd: Likewise. | |
35067 | * omp-simd-clone.c (simd_clone_subparts): Likewise. | |
35068 | * print-tree.c (print_node): Likewise. | |
35069 | * stor-layout.c (layout_type): Likewise. | |
35070 | * targhooks.c (default_builtin_vectorization_cost): Likewise. | |
35071 | * tree-cfg.c (verify_gimple_comparison): Likewise. | |
35072 | (verify_gimple_assign_binary): Likewise. | |
35073 | (verify_gimple_assign_ternary): Likewise. | |
35074 | (verify_gimple_assign_single): Likewise. | |
35075 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
35076 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
35077 | (simplify_bitfield_ref, is_combined_permutation_identity): Likewise. | |
35078 | * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. | |
35079 | (vect_grouped_load_supported, vect_permute_load_chain): Likewise. | |
35080 | (vect_shift_permute_load_chain): Likewise. | |
35081 | * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise. | |
35082 | (expand_vector_condition, optimize_vector_constructor): Likewise. | |
35083 | (lower_vec_perm, get_compute_type): Likewise. | |
35084 | * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. | |
35085 | (get_initial_defs_for_reduction, vect_transform_loop): Likewise. | |
35086 | * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. | |
35087 | (vect_recog_mask_conversion_pattern): Likewise. | |
35088 | * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise. | |
35089 | (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise. | |
35090 | * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. | |
35091 | (get_group_load_store_type, vectorizable_mask_load_store): Likewise. | |
35092 | (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment) | |
35093 | (vectorizable_shift, vectorizable_operation, vectorizable_store) | |
35094 | (vectorizable_load, vect_is_simple_cond, vectorizable_comparison) | |
35095 | (supportable_widening_operation): Likewise. | |
35096 | (supportable_narrowing_operation): Likewise. | |
35097 | * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts): | |
35098 | Likewise. | |
35099 | * varasm.c (output_constant): Likewise. | |
35100 | ||
35101 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35102 | Alan Hayward <alan.hayward@arm.com> | |
35103 | David Sherwood <david.sherwood@arm.com> | |
35104 | ||
35105 | * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize | |
35106 | so that both the length == 3 and length != 3 cases set up their | |
35107 | own permute vectors. Add comments explaining why we know the | |
35108 | number of elements is constant. | |
35109 | (vect_permute_load_chain): Likewise. | |
35110 | ||
35111 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35112 | Alan Hayward <alan.hayward@arm.com> | |
35113 | David Sherwood <david.sherwood@arm.com> | |
35114 | ||
35115 | * machmode.h (mode_nunits): Change from unsigned char to | |
35116 | poly_uint16_pod. | |
35117 | (ONLY_FIXED_SIZE_MODES): New macro. | |
35118 | (pod_mode::measurement_type, scalar_int_mode::measurement_type) | |
35119 | (scalar_float_mode::measurement_type, scalar_mode::measurement_type) | |
35120 | (complex_mode::measurement_type, fixed_size_mode::measurement_type): | |
35121 | New typedefs. | |
35122 | (mode_to_nunits): Return a poly_uint16 rather than an unsigned short. | |
35123 | (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES, | |
35124 | or if measurement_type is not polynomial. | |
35125 | * genmodes.c (ZERO_COEFFS): New macro. | |
35126 | (emit_mode_nunits_inline): Make mode_nunits_inline return a | |
35127 | poly_uint16. | |
35128 | (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod. | |
35129 | Use ZERO_COEFFS when emitting initializers. | |
35130 | * data-streamer.h (bp_pack_poly_value): New function. | |
35131 | (bp_unpack_poly_value): Likewise. | |
35132 | * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value | |
35133 | for GET_MODE_NUNITS. | |
35134 | * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value | |
35135 | for GET_MODE_NUNITS. | |
35136 | * tree.c (make_vector_type): Remove temporary shim and make | |
35137 | the real function take the number of units as a poly_uint64 | |
35138 | rather than an int. | |
35139 | (build_vector_type_for_mode): Handle polynomial nunits. | |
35140 | * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise. | |
35141 | * emit-rtl.c (const_vec_series_p_1): Likewise. | |
35142 | (gen_rtx_CONST_VECTOR): Likewise. | |
35143 | * fold-const.c (test_vec_duplicate_folding): Likewise. | |
35144 | * genrecog.c (validate_pattern): Likewise. | |
35145 | * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise. | |
35146 | * optabs-tree.c (expand_vec_cond_expr_p): Likewise. | |
35147 | * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise. | |
35148 | (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise. | |
35149 | (expand_vec_cond_expr, expand_mult_highpart): Likewise. | |
35150 | * rtlanal.c (subreg_get_info): Likewise. | |
35151 | * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. | |
35152 | (vect_grouped_load_supported): Likewise. | |
35153 | * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. | |
35154 | * tree-vect-loop.c (have_whole_vector_shift): Likewise. | |
35155 | * simplify-rtx.c (simplify_unary_operation_1): Likewise. | |
35156 | (simplify_const_unary_operation, simplify_binary_operation_1) | |
35157 | (simplify_const_binary_operation, simplify_ternary_operation) | |
35158 | (test_vector_ops_duplicate, test_vector_ops): Likewise. | |
35159 | (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode | |
35160 | instead of CONST_VECTOR_NUNITS. | |
35161 | * varasm.c (output_constant_pool_2): Likewise. | |
35162 | * rtx-vector-builder.c (rtx_vector_builder::build): Only include the | |
35163 | explicit-encoded elements in the XVEC for variable-length vectors. | |
35164 | ||
35165 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35166 | ||
35167 | * lra-constraints.c (curr_insn_transform): Use partial_subreg_p. | |
35168 | ||
35169 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35170 | Alan Hayward <alan.hayward@arm.com> | |
35171 | David Sherwood <david.sherwood@arm.com> | |
35172 | ||
35173 | * coretypes.h (fixed_size_mode): Declare. | |
35174 | (fixed_size_mode_pod): New typedef. | |
35175 | * builtins.h (target_builtins::x_apply_args_mode) | |
35176 | (target_builtins::x_apply_result_mode): Change type to | |
35177 | fixed_size_mode_pod. | |
35178 | * builtins.c (apply_args_size, apply_result_size, result_vector) | |
35179 | (expand_builtin_apply_args_1, expand_builtin_apply) | |
35180 | (expand_builtin_return): Update accordingly. | |
35181 | ||
35182 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35183 | ||
35184 | * cse.c (hash_rtx_cb): Hash only the encoded elements. | |
35185 | * cselib.c (cselib_hash_rtx): Likewise. | |
35186 | * expmed.c (make_tree): Build VECTOR_CSTs directly from the | |
35187 | CONST_VECTOR encoding. | |
35188 | ||
35189 | 2018-01-03 Jakub Jelinek <jakub@redhat.com> | |
35190 | Jeff Law <law@redhat.com> | |
35191 | ||
35192 | PR target/83641 | |
35193 | * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For | |
35194 | noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop, | |
35195 | only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp | |
35196 | and add REG_CFA_ADJUST_CFA notes in that case to both insns. | |
35197 | ||
35198 | PR target/83641 | |
35199 | * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not | |
35200 | explicitly probe *sp in a noreturn function if there were any callee | |
35201 | register saves or frame pointer is needed. | |
35202 | ||
35203 | 2018-01-03 Jakub Jelinek <jakub@redhat.com> | |
35204 | ||
35205 | PR debug/83621 | |
35206 | * cfgexpand.c (expand_debug_expr): Return NULL if mode is | |
35207 | BLKmode for ternary, binary or unary expressions. | |
35208 | ||
35209 | PR debug/83645 | |
35210 | * var-tracking.c (delete_vta_debug_insn): New inline function. | |
35211 | (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just | |
35212 | insns from get_insns () to NULL instead of each bb separately. | |
35213 | Use delete_vta_debug_insn. No longer static. | |
35214 | (vt_debug_insns_local, variable_tracking_main_1): Adjust | |
35215 | delete_vta_debug_insns callers. | |
35216 | * rtl.h (delete_vta_debug_insns): Declare. | |
35217 | * final.c (rest_of_handle_final): Call delete_vta_debug_insns | |
35218 | instead of variable_tracking_main. | |
35219 | ||
35220 | 2018-01-03 Martin Sebor <msebor@redhat.com> | |
35221 | ||
35222 | PR tree-optimization/83603 | |
35223 | * calls.c (maybe_warn_nonstring_arg): Avoid accessing function | |
35224 | arguments past the endof the argument list in functions declared | |
35225 | without a prototype. | |
35226 | * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): | |
35227 | Avoid checking when arguments are null. | |
35228 | ||
35229 | 2018-01-03 Martin Sebor <msebor@redhat.com> | |
35230 | ||
35231 | PR c/83559 | |
35232 | * doc/extend.texi (attribute const): Fix a typo. | |
35233 | * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid | |
35234 | issuing -Wsuggest-attribute for void functions. | |
35235 | ||
35236 | 2018-01-03 Martin Sebor <msebor@redhat.com> | |
35237 | ||
35238 | * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use | |
35239 | offset_int::from instead of wide_int::to_shwi. | |
35240 | (maybe_diag_overlap): Remove assertion. | |
35241 | Use HOST_WIDE_INT_PRINT_DEC instead of %lli. | |
35242 | * gimple-ssa-sprintf.c (format_directive): Same. | |
35243 | (parse_directive): Same. | |
35244 | (sprintf_dom_walker::compute_format_length): Same. | |
35245 | (try_substitute_return_value): Same. | |
35246 | ||
35247 | 2018-01-03 Jeff Law <law@redhat.com> | |
35248 | ||
35249 | PR middle-end/83654 | |
35250 | * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a | |
35251 | non-constant residual for zero at runtime and avoid probing in | |
35252 | that case. Reorganize code for trailing problem to mirror handling | |
35253 | of the residual. | |
35254 | ||
35255 | 2018-01-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
35256 | ||
35257 | PR tree-optimization/83501 | |
35258 | * tree-ssa-strlen.c (get_string_cst): New. | |
35259 | (handle_char_store): Call get_string_cst. | |
35260 | ||
35261 | 2018-01-03 Martin Liska <mliska@suse.cz> | |
35262 | ||
35263 | PR tree-optimization/83593 | |
35264 | * tree-ssa-strlen.c: Include tree-cfg.h. | |
35265 | (strlen_check_and_optimize_stmt): Add new argument cleanup_eh. | |
35266 | (strlen_dom_walker): Add new member variable m_cleanup_cfg. | |
35267 | (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg | |
35268 | to false. | |
35269 | (strlen_dom_walker::before_dom_children): Call | |
35270 | gimple_purge_dead_eh_edges. Dump tranformation with details | |
35271 | dump flags. | |
35272 | (strlen_dom_walker::before_dom_children): Update call by adding | |
35273 | new argument cleanup_eh. | |
35274 | (pass_strlen::execute): Return TODO_cleanup_cfg if needed. | |
35275 | ||
35276 | 2018-01-03 Martin Liska <mliska@suse.cz> | |
35277 | ||
35278 | PR ipa/83549 | |
35279 | * cif-code.def (VARIADIC_THUNK): New enum value. | |
35280 | * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic | |
35281 | thunks. | |
35282 | ||
35283 | 2018-01-03 Jan Beulich <jbeulich@suse.com> | |
35284 | ||
35285 | * sse.md (mov<mode>_internal): Tighten condition for when to use | |
35286 | vmovdqu<ssescalarsize> for TI and OI modes. | |
35287 | ||
35288 | 2018-01-03 Jakub Jelinek <jakub@redhat.com> | |
35289 | ||
35290 | Update copyright years. | |
35291 | ||
35292 | 2018-01-03 Martin Liska <mliska@suse.cz> | |
35293 | ||
35294 | PR ipa/83594 | |
35295 | * ipa-visibility.c (function_and_variable_visibility): Skip | |
35296 | functions with noipa attribure. | |
35297 | ||
35298 | 2018-01-03 Jakub Jelinek <jakub@redhat.com> | |
35299 | ||
35300 | * gcc.c (process_command): Update copyright notice dates. | |
35301 | * gcov-dump.c (print_version): Ditto. | |
35302 | * gcov.c (print_version): Ditto. | |
35303 | * gcov-tool.c (print_version): Ditto. | |
35304 | * gengtype.c (create_file): Ditto. | |
35305 | * doc/cpp.texi: Bump @copying's copyright year. | |
35306 | * doc/cppinternals.texi: Ditto. | |
35307 | * doc/gcc.texi: Ditto. | |
35308 | * doc/gccint.texi: Ditto. | |
35309 | * doc/gcov.texi: Ditto. | |
35310 | * doc/install.texi: Ditto. | |
35311 | * doc/invoke.texi: Ditto. | |
35312 | ||
35313 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35314 | ||
35315 | * vector-builder.h (vector_builder::m_full_nelts): Change from | |
35316 | unsigned int to poly_uint64. | |
35317 | (vector_builder::full_nelts): Update prototype accordingly. | |
35318 | (vector_builder::new_vector): Likewise. | |
35319 | (vector_builder::encoded_full_vector_p): Handle polynomial full_nelts. | |
35320 | (vector_builder::operator ==): Likewise. | |
35321 | (vector_builder::finalize): Likewise. | |
35322 | * int-vector-builder.h (int_vector_builder::int_vector_builder): | |
35323 | Take the number of elements as a poly_uint64 rather than an | |
35324 | unsigned int. | |
35325 | * vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change | |
35326 | from unsigned int to poly_uint64. | |
35327 | (vec_perm_indices::vec_perm_indices): Update prototype accordingly. | |
35328 | (vec_perm_indices::new_vector): Likewise. | |
35329 | (vec_perm_indices::length): Likewise. | |
35330 | (vec_perm_indices::nelts_per_input): Likewise. | |
35331 | (vec_perm_indices::input_nelts): Likewise. | |
35332 | * vec-perm-indices.c (vec_perm_indices::new_vector): Take the | |
35333 | number of elements per input as a poly_uint64 rather than an | |
35334 | unsigned int. Use the original encoding for variable-length | |
35335 | vectors, rather than clamping each individual element. | |
35336 | For the second and subsequent elements in each pattern, | |
35337 | clamp the step and base before clamping their sum. | |
35338 | (vec_perm_indices::series_p): Handle polynomial element counts. | |
35339 | (vec_perm_indices::all_in_range_p): Likewise. | |
35340 | (vec_perm_indices_to_tree): Likewise. | |
35341 | (vec_perm_indices_to_rtx): Likewise. | |
35342 | * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. | |
35343 | * tree-vector-builder.c (tree_vector_builder::new_unary_operation) | |
35344 | (tree_vector_builder::new_binary_operation): Handle polynomial | |
35345 | element counts. Return false if we need to know the number | |
35346 | of elements at compile time. | |
35347 | * fold-const.c (fold_vec_perm): Punt if the number of elements | |
35348 | isn't known at compile time. | |
35349 | ||
35350 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35351 | ||
35352 | * vec-perm-indices.h (vec_perm_builder): Change element type | |
35353 | from HOST_WIDE_INT to poly_int64. | |
35354 | (vec_perm_indices::element_type): Update accordingly. | |
35355 | (vec_perm_indices::clamp): Handle polynomial element_types. | |
35356 | * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. | |
35357 | (vec_perm_indices::all_in_range_p): Likewise. | |
35358 | (tree_to_vec_perm_builder): Check for poly_int64 trees rather | |
35359 | than shwi trees. | |
35360 | * vector-builder.h (vector_builder::stepped_sequence_p): Handle | |
35361 | polynomial vec_perm_indices element types. | |
35362 | * int-vector-builder.h (int_vector_builder::equal_p): Likewise. | |
35363 | * fold-const.c (fold_vec_perm): Likewise. | |
35364 | * optabs.c (shift_amt_for_vec_perm_mask): Likewise. | |
35365 | * tree-vect-generic.c (lower_vec_perm): Likewise. | |
35366 | * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. | |
35367 | * config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm | |
35368 | element type to HOST_WIDE_INT. | |
35369 | ||
35370 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35371 | Alan Hayward <alan.hayward@arm.com> | |
35372 | David Sherwood <david.sherwood@arm.com> | |
35373 | ||
35374 | * alias.c (addr_side_effect_eval): Take the size as a poly_int64 | |
35375 | rather than an int. Use plus_constant. | |
35376 | (memrefs_conflict_p): Take the sizes as poly_int64s rather than ints. | |
35377 | Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT. | |
35378 | ||
35379 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35380 | Alan Hayward <alan.hayward@arm.com> | |
35381 | David Sherwood <david.sherwood@arm.com> | |
35382 | ||
35383 | * calls.c (emit_call_1, expand_call): Change struct_value_size from | |
35384 | a HOST_WIDE_INT to a poly_int64. | |
35385 | ||
35386 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35387 | Alan Hayward <alan.hayward@arm.com> | |
35388 | David Sherwood <david.sherwood@arm.com> | |
35389 | ||
35390 | * calls.c (load_register_parameters): Cope with polynomial | |
35391 | mode sizes. Require a constant size for BLKmode parameters | |
35392 | that aren't described by a PARALLEL. If BLOCK_REG_PADDING | |
35393 | forces a parameter to be padded at the lsb end in order to | |
35394 | fill a complete number of words, require the parameter size | |
35395 | to be ordered wrt UNITS_PER_WORD. | |
35396 | ||
35397 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35398 | Alan Hayward <alan.hayward@arm.com> | |
35399 | David Sherwood <david.sherwood@arm.com> | |
35400 | ||
35401 | * reload1.c (spill_stack_slot_width): Change element type | |
35402 | from unsigned int to poly_uint64_pod. | |
35403 | (alter_reg): Treat mode sizes as polynomial. | |
35404 | ||
35405 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35406 | Alan Hayward <alan.hayward@arm.com> | |
35407 | David Sherwood <david.sherwood@arm.com> | |
35408 | ||
35409 | * reload.c (complex_word_subreg_p): New function. | |
35410 | (reload_inner_reg_of_subreg, push_reload): Use it. | |
35411 | ||
35412 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35413 | Alan Hayward <alan.hayward@arm.com> | |
35414 | David Sherwood <david.sherwood@arm.com> | |
35415 | ||
35416 | * lra-constraints.c (process_alt_operands): Reject matched | |
35417 | operands whose sizes aren't ordered. | |
35418 | (match_reload): Refer to this check here. | |
35419 | ||
35420 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35421 | Alan Hayward <alan.hayward@arm.com> | |
35422 | David Sherwood <david.sherwood@arm.com> | |
35423 | ||
35424 | * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert | |
35425 | that the mode size is in the set {1, 2, 4, 8, 16}. | |
35426 | ||
35427 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35428 | Alan Hayward <alan.hayward@arm.com> | |
35429 | David Sherwood <david.sherwood@arm.com> | |
35430 | ||
35431 | * var-tracking.c (adjust_mems): Treat mode sizes as polynomial. | |
35432 | Use plus_constant instead of gen_rtx_PLUS. | |
35433 | ||
35434 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35435 | Alan Hayward <alan.hayward@arm.com> | |
35436 | David Sherwood <david.sherwood@arm.com> | |
35437 | ||
35438 | * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. | |
35439 | * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... | |
35440 | * config/cr16/cr16.c (cr16_push_rounding): ...this new function. | |
35441 | * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. | |
35442 | * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... | |
35443 | * config/h8300/h8300.c (h8300_push_rounding): ...this new function. | |
35444 | * config/i386/i386-protos.h (ix86_push_rounding): Declare. | |
35445 | * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... | |
35446 | * config/i386/i386.c (ix86_push_rounding): ...this new function. | |
35447 | * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return | |
35448 | a poly_int64. | |
35449 | * config/m32c/m32c.c (m32c_push_rounding): Likewise. | |
35450 | * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. | |
35451 | * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... | |
35452 | * config/m68k/m68k.c (m68k_push_rounding): ...this new function. | |
35453 | * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. | |
35454 | * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... | |
35455 | * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. | |
35456 | * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. | |
35457 | * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... | |
35458 | * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new | |
35459 | function. | |
35460 | * expr.c (emit_move_resolve_push): Treat the input and result | |
35461 | of PUSH_ROUNDING as a poly_int64. | |
35462 | (emit_move_complex_push, emit_single_push_insn_1): Likewise. | |
35463 | (emit_push_insn): Likewise. | |
35464 | * lra-eliminations.c (mark_not_eliminable): Likewise. | |
35465 | * recog.c (push_operand): Likewise. | |
35466 | * reload1.c (elimination_effects): Likewise. | |
35467 | * rtlanal.c (nonzero_bits1): Likewise. | |
35468 | * calls.c (store_one_arg): Likewise. Require the padding to be | |
35469 | known at compile time. | |
35470 | ||
35471 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35472 | Alan Hayward <alan.hayward@arm.com> | |
35473 | David Sherwood <david.sherwood@arm.com> | |
35474 | ||
35475 | * expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial. | |
35476 | Use plus_constant instead of gen_rtx_PLUS. | |
35477 | ||
35478 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35479 | Alan Hayward <alan.hayward@arm.com> | |
35480 | David Sherwood <david.sherwood@arm.com> | |
35481 | ||
35482 | * auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64 | |
35483 | rather than an int. | |
35484 | ||
35485 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35486 | Alan Hayward <alan.hayward@arm.com> | |
35487 | David Sherwood <david.sherwood@arm.com> | |
35488 | ||
35489 | * expr.c (expand_expr_real_1): Use tree_to_poly_uint64 | |
35490 | instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs | |
35491 | via stack temporaries. Treat the mode size as polynomial too. | |
35492 | ||
35493 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35494 | Alan Hayward <alan.hayward@arm.com> | |
35495 | David Sherwood <david.sherwood@arm.com> | |
35496 | ||
35497 | * expr.c (expand_expr_real_2): When handling conversions involving | |
35498 | unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than | |
35499 | multiplying int_size_in_bytes by BITS_PER_UNIT. Treat GET_MODE_BISIZE | |
35500 | as a poly_uint64 too. | |
35501 | ||
35502 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35503 | Alan Hayward <alan.hayward@arm.com> | |
35504 | David Sherwood <david.sherwood@arm.com> | |
35505 | ||
35506 | * rtlanal.c (subreg_get_info): Handle polynomial mode sizes. | |
35507 | ||
35508 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35509 | Alan Hayward <alan.hayward@arm.com> | |
35510 | David Sherwood <david.sherwood@arm.com> | |
35511 | ||
35512 | * combine.c (can_change_dest_mode): Handle polynomial | |
35513 | REGMODE_NATURAL_SIZE. | |
35514 | * expmed.c (store_bit_field_1): Likewise. | |
35515 | * expr.c (store_constructor): Likewise. | |
35516 | * emit-rtl.c (validate_subreg): Operate on polynomial mode sizes | |
35517 | and polynomial REGMODE_NATURAL_SIZE. | |
35518 | (gen_lowpart_common): Likewise. | |
35519 | * reginfo.c (record_subregs_of_mode): Likewise. | |
35520 | * rtlanal.c (read_modify_subreg_p): Likewise. | |
35521 | ||
35522 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35523 | Alan Hayward <alan.hayward@arm.com> | |
35524 | David Sherwood <david.sherwood@arm.com> | |
35525 | ||
35526 | * internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial | |
35527 | numbers of elements. | |
35528 | ||
35529 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35530 | Alan Hayward <alan.hayward@arm.com> | |
35531 | David Sherwood <david.sherwood@arm.com> | |
35532 | ||
35533 | * match.pd: Cope with polynomial numbers of vector elements. | |
35534 | ||
35535 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35536 | Alan Hayward <alan.hayward@arm.com> | |
35537 | David Sherwood <david.sherwood@arm.com> | |
35538 | ||
35539 | * fold-const.c (fold_indirect_ref_1): Handle polynomial offsets | |
35540 | in a POINTER_PLUS_EXPR. | |
35541 | ||
35542 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35543 | Alan Hayward <alan.hayward@arm.com> | |
35544 | David Sherwood <david.sherwood@arm.com> | |
35545 | ||
35546 | * omp-simd-clone.c (simd_clone_subparts): New function. | |
35547 | (simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS. | |
35548 | (ipa_simd_modify_function_body): Likewise. | |
35549 | ||
35550 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35551 | Alan Hayward <alan.hayward@arm.com> | |
35552 | David Sherwood <david.sherwood@arm.com> | |
35553 | ||
35554 | * tree-vect-generic.c (nunits_for_known_piecewise_op): New function. | |
35555 | (expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS. | |
35556 | (expand_vector_addition, add_rshift, expand_vector_divmod): Likewise. | |
35557 | (expand_vector_condition, vector_element): Likewise. | |
35558 | (subparts_gt): New function. | |
35559 | (get_compute_type): Use subparts_gt. | |
35560 | (count_type_subparts): Delete. | |
35561 | (expand_vector_operations_1): Use subparts_gt instead of | |
35562 | count_type_subparts. | |
35563 | ||
35564 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35565 | Alan Hayward <alan.hayward@arm.com> | |
35566 | David Sherwood <david.sherwood@arm.com> | |
35567 | ||
35568 | * tree-vect-data-refs.c (vect_no_alias_p): Replace with... | |
35569 | (vect_compile_time_alias): ...this new function. Do the calculation | |
35570 | on poly_ints rather than trees. | |
35571 | (vect_prune_runtime_alias_test_list): Update call accordingly. | |
35572 | ||
35573 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35574 | Alan Hayward <alan.hayward@arm.com> | |
35575 | David Sherwood <david.sherwood@arm.com> | |
35576 | ||
35577 | * tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial | |
35578 | numbers of units. | |
35579 | (vect_schedule_slp_instance): Likewise. | |
35580 | ||
35581 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35582 | Alan Hayward <alan.hayward@arm.com> | |
35583 | David Sherwood <david.sherwood@arm.com> | |
35584 | ||
35585 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Reject | |
35586 | constant and extern definitions for variable-length vectors. | |
35587 | (vect_get_constant_vectors): Note that the number of units | |
35588 | is known to be constant. | |
35589 | ||
35590 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35591 | Alan Hayward <alan.hayward@arm.com> | |
35592 | David Sherwood <david.sherwood@arm.com> | |
35593 | ||
35594 | * tree-vect-stmts.c (vectorizable_conversion): Treat the number | |
35595 | of units as polynomial. Choose between WIDE and NARROW based | |
35596 | on multiple_p. | |
35597 | ||
35598 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35599 | Alan Hayward <alan.hayward@arm.com> | |
35600 | David Sherwood <david.sherwood@arm.com> | |
35601 | ||
35602 | * tree-vect-stmts.c (simd_clone_subparts): New function. | |
35603 | (vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS. | |
35604 | ||
35605 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35606 | Alan Hayward <alan.hayward@arm.com> | |
35607 | David Sherwood <david.sherwood@arm.com> | |
35608 | ||
35609 | * tree-vect-stmts.c (vectorizable_call): Treat the number of | |
35610 | vectors as polynomial. Use build_index_vector for | |
35611 | IFN_GOMP_SIMD_LANE. | |
35612 | ||
35613 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35614 | Alan Hayward <alan.hayward@arm.com> | |
35615 | David Sherwood <david.sherwood@arm.com> | |
35616 | ||
35617 | * tree-vect-stmts.c (get_load_store_type): Treat the number of | |
35618 | units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP | |
35619 | for variable-length vectors. | |
35620 | (vectorizable_mask_load_store): Treat the number of units as | |
35621 | polynomial, asserting that it is constant if the condition has | |
35622 | already been enforced. | |
35623 | (vectorizable_store, vectorizable_load): Likewise. | |
35624 | ||
35625 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35626 | Alan Hayward <alan.hayward@arm.com> | |
35627 | David Sherwood <david.sherwood@arm.com> | |
35628 | ||
35629 | * tree-vect-loop.c (vectorizable_live_operation): Treat the number | |
35630 | of units as polynomial. Punt if we can't tell at compile time | |
35631 | which vector contains the final result. | |
35632 | ||
35633 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35634 | Alan Hayward <alan.hayward@arm.com> | |
35635 | David Sherwood <david.sherwood@arm.com> | |
35636 | ||
35637 | * tree-vect-loop.c (vectorizable_induction): Treat the number | |
35638 | of units as polynomial. Punt on SLP inductions. Use an integer | |
35639 | VEC_SERIES_EXPR for variable-length integer reductions. Use a | |
35640 | cast of such a series for variable-length floating-point | |
35641 | reductions. | |
35642 | ||
35643 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35644 | Alan Hayward <alan.hayward@arm.com> | |
35645 | David Sherwood <david.sherwood@arm.com> | |
35646 | ||
35647 | * tree.h (build_index_vector): Declare. | |
35648 | * tree.c (build_index_vector): New function. | |
35649 | * tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number | |
35650 | of units as polynomial, forcibly converting it to a constant if | |
35651 | vectorizable_reduction has already enforced the condition. | |
35652 | (vect_create_epilog_for_reduction): Likewise. Use build_index_vector | |
35653 | to create a {1,2,3,...} vector. | |
35654 | (vectorizable_reduction): Treat the number of units as polynomial. | |
35655 | Choose vectype_in based on the largest scalar element size rather | |
35656 | than the smallest number of units. Enforce the restrictions | |
35657 | relied on above. | |
35658 | ||
35659 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35660 | Alan Hayward <alan.hayward@arm.com> | |
35661 | David Sherwood <david.sherwood@arm.com> | |
35662 | ||
35663 | * tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the | |
35664 | number of units as polynomial. | |
35665 | ||
35666 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35667 | Alan Hayward <alan.hayward@arm.com> | |
35668 | David Sherwood <david.sherwood@arm.com> | |
35669 | ||
35670 | * target.h (vector_sizes, auto_vector_sizes): New typedefs. | |
35671 | * target.def (autovectorize_vector_sizes): Return the vector sizes | |
35672 | by pointer, using vector_sizes rather than a bitmask. | |
35673 | * targhooks.h (default_autovectorize_vector_sizes): Update accordingly. | |
35674 | * targhooks.c (default_autovectorize_vector_sizes): Likewise. | |
35675 | * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): | |
35676 | Likewise. | |
35677 | * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. | |
35678 | * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. | |
35679 | * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. | |
35680 | * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. | |
35681 | * omp-general.c (omp_max_vf): Likewise. | |
35682 | * omp-low.c (omp_clause_aligned_alignment): Likewise. | |
35683 | * optabs-query.c (can_vec_mask_load_store_p): Likewise. | |
35684 | * tree-vect-loop.c (vect_analyze_loop): Likewise. | |
35685 | * tree-vect-slp.c (vect_slp_bb): Likewise. | |
35686 | * doc/tm.texi: Regenerate. | |
35687 | * tree-vectorizer.h (current_vector_size): Change from an unsigned int | |
35688 | to a poly_uint64. | |
35689 | * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take | |
35690 | the vector size as a poly_uint64 rather than an unsigned int. | |
35691 | (current_vector_size): Change from an unsigned int to a poly_uint64. | |
35692 | (get_vectype_for_scalar_type): Update accordingly. | |
35693 | * tree.h (build_truth_vector_type): Take the size and number of | |
35694 | units as a poly_uint64 rather than an unsigned int. | |
35695 | (build_vector_type): Add a temporary overload that takes | |
35696 | the number of units as a poly_uint64 rather than an unsigned int. | |
35697 | * tree.c (make_vector_type): Likewise. | |
35698 | (build_truth_vector_type): Take the number of units as a poly_uint64 | |
35699 | rather than an unsigned int. | |
35700 | ||
35701 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35702 | Alan Hayward <alan.hayward@arm.com> | |
35703 | David Sherwood <david.sherwood@arm.com> | |
35704 | ||
35705 | * target.def (get_mask_mode): Take the number of units and length | |
35706 | as poly_uint64s rather than unsigned ints. | |
35707 | * targhooks.h (default_get_mask_mode): Update accordingly. | |
35708 | * targhooks.c (default_get_mask_mode): Likewise. | |
35709 | * config/i386/i386.c (ix86_get_mask_mode): Likewise. | |
35710 | * doc/tm.texi: Regenerate. | |
35711 | ||
35712 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35713 | Alan Hayward <alan.hayward@arm.com> | |
35714 | David Sherwood <david.sherwood@arm.com> | |
35715 | ||
35716 | * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. | |
35717 | * omp-general.c (omp_max_vf): Likewise. | |
35718 | * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. | |
35719 | (expand_omp_simd): Handle polynomial safelen. | |
35720 | * omp-low.c (omplow_simd_context): Add a default constructor. | |
35721 | (omplow_simd_context::max_vf): Change from int to poly_uint64. | |
35722 | (lower_rec_simd_input_clauses): Update accordingly. | |
35723 | (lower_rec_input_clauses): Likewise. | |
35724 | ||
35725 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35726 | Alan Hayward <alan.hayward@arm.com> | |
35727 | David Sherwood <david.sherwood@arm.com> | |
35728 | ||
35729 | * tree-vectorizer.h (vect_nunits_for_cost): New function. | |
35730 | * tree-vect-loop.c (vect_model_reduction_cost): Use it. | |
35731 | * tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise. | |
35732 | (vect_analyze_slp_cost): Likewise. | |
35733 | * tree-vect-stmts.c (vect_model_store_cost): Likewise. | |
35734 | (vect_model_load_cost): Likewise. | |
35735 | ||
35736 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35737 | Alan Hayward <alan.hayward@arm.com> | |
35738 | David Sherwood <david.sherwood@arm.com> | |
35739 | ||
35740 | * tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1) | |
35741 | (vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits | |
35742 | from an unsigned int * to a poly_uint64_pod *. | |
35743 | (calculate_unrolling_factor): New function. | |
35744 | (vect_analyze_slp_instance): Use it. Track polynomial max_nunits. | |
35745 | ||
35746 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35747 | Alan Hayward <alan.hayward@arm.com> | |
35748 | David Sherwood <david.sherwood@arm.com> | |
35749 | ||
35750 | * tree-vectorizer.h (_slp_instance::unrolling_factor): Change | |
35751 | from an unsigned int to a poly_uint64. | |
35752 | (_loop_vec_info::slp_unrolling_factor): Likewise. | |
35753 | (_loop_vec_info::vectorization_factor): Change from an int | |
35754 | to a poly_uint64. | |
35755 | (MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX. | |
35756 | (vect_get_num_vectors): New function. | |
35757 | (vect_update_max_nunits, vect_vf_for_cost): Likewise. | |
35758 | (vect_get_num_copies): Use vect_get_num_vectors. | |
35759 | (vect_analyze_data_ref_dependences): Change max_vf from an int * | |
35760 | to an unsigned int *. | |
35761 | (vect_analyze_data_refs): Change min_vf from an int * to a | |
35762 | poly_uint64 *. | |
35763 | (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather | |
35764 | than an unsigned HOST_WIDE_INT. | |
35765 | * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) | |
35766 | (vect_analyze_data_ref_dependence): Change max_vf from an int * | |
35767 | to an unsigned int *. | |
35768 | (vect_analyze_data_ref_dependences): Likewise. | |
35769 | (vect_compute_data_ref_alignment): Handle polynomial vf. | |
35770 | (vect_enhance_data_refs_alignment): Likewise. | |
35771 | (vect_prune_runtime_alias_test_list): Likewise. | |
35772 | (vect_shift_permute_load_chain): Likewise. | |
35773 | (vect_supportable_dr_alignment): Likewise. | |
35774 | (dependence_distance_ge_vf): Take the vectorization factor as a | |
35775 | poly_uint64 rather than an unsigned HOST_WIDE_INT. | |
35776 | (vect_analyze_data_refs): Change min_vf from an int * to a | |
35777 | poly_uint64 *. | |
35778 | * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take | |
35779 | vfm1 as a poly_uint64 rather than an int. Make the same change | |
35780 | for the returned bound_scalar. | |
35781 | (vect_gen_vector_loop_niters): Handle polynomial vf. | |
35782 | (vect_do_peeling): Likewise. Update call to | |
35783 | vect_gen_scalar_loop_niters and handle polynomial bound_scalars. | |
35784 | (vect_gen_vector_loop_niters_mult_vf): Assert that the vf must | |
35785 | be constant. | |
35786 | * tree-vect-loop.c (vect_determine_vectorization_factor) | |
35787 | (vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf. | |
35788 | (vect_get_known_peeling_cost): Likewise. | |
35789 | (vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise. | |
35790 | (vect_worthwhile_without_simd_p, vectorizable_induction): Likewise. | |
35791 | (vect_transform_loop): Likewise. Use the lowest possible VF when | |
35792 | updating the upper bounds of the loop. | |
35793 | (vect_min_worthwhile_factor): Make static. Return an unsigned int | |
35794 | rather than an int. | |
35795 | * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with | |
35796 | polynomial unroll factors. | |
35797 | (vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise. | |
35798 | (vect_make_slp_decision): Likewise. | |
35799 | (vect_supported_load_permutation_p): Likewise, and polynomial | |
35800 | vf too. | |
35801 | (vect_analyze_slp_cost): Handle polynomial vf. | |
35802 | (vect_slp_analyze_node_operations): Likewise. | |
35803 | (vect_slp_analyze_bb_1): Likewise. | |
35804 | (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather | |
35805 | than an unsigned HOST_WIDE_INT. | |
35806 | * tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store) | |
35807 | (vectorizable_load): Handle polynomial vf. | |
35808 | * tree-vectorizer.c (simduid_to_vf::vf): Change from an int to | |
35809 | a poly_uint64. | |
35810 | (adjust_simduid_builtins, shrink_simd_arrays): Update accordingly. | |
35811 | ||
35812 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35813 | Alan Hayward <alan.hayward@arm.com> | |
35814 | David Sherwood <david.sherwood@arm.com> | |
35815 | ||
35816 | * match.pd: Handle bit operations involving three constants | |
35817 | and try to fold one pair. | |
35818 | ||
35819 | 2018-01-03 Richard Sandiford <richard.sandiford@linaro.org> | |
35820 | ||
35821 | * tree-vect-loop-manip.c: Include gimple-fold.h. | |
35822 | (slpeel_make_loop_iterate_ntimes): Add step, final_iv and | |
35823 | niters_maybe_zero parameters. Handle other cases besides a step of 1. | |
35824 | (vect_gen_vector_loop_niters): Add a step_vector_ptr parameter. | |
35825 | Add a path that uses a step of VF instead of 1, but disable it | |
35826 | for now. | |
35827 | (vect_do_peeling): Add step_vector, niters_vector_mult_vf_var | |
35828 | and niters_no_overflow parameters. Update calls to | |
35829 | slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters. | |
35830 | Create a new SSA name if the latter choses to use a ste other | |
35831 | than zero, and return it via niters_vector_mult_vf_var. | |
35832 | * tree-vect-loop.c (vect_transform_loop): Update calls to | |
35833 | vect_do_peeling, vect_gen_vector_loop_niters and | |
35834 | slpeel_make_loop_iterate_ntimes. | |
35835 | * tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling) | |
35836 | (vect_gen_vector_loop_niters): Update declarations after above changes. | |
35837 | ||
35838 | 2018-01-02 Michael Meissner <meissner@linux.vnet.ibm.com> | |
35839 | ||
35840 | * config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE | |
35841 | 128-bit round to integer instructions. | |
35842 | (ceil<mode>2): Likewise. | |
35843 | (btrunc<mode>2): Likewise. | |
35844 | (round<mode>2): Likewise. | |
35845 | ||
35846 | 2018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
35847 | ||
35848 | * config/rs6000/rs6000-string.c (expand_block_move): Allow the use of | |
35849 | unaligned VSX load/store on P8/P9. | |
35850 | (expand_block_clear): Allow the use of unaligned VSX | |
35851 | load/store on P8/P9. | |
35852 | ||
35853 | 2018-01-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> | |
35854 | ||
35855 | * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store): | |
35856 | New function. | |
35857 | (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a | |
35858 | swap associated with both a load and a store. | |
35859 | ||
35860 | 2018-01-02 Andrew Waterman <andrew@sifive.com> | |
35861 | ||
35862 | * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New. | |
35863 | * config/riscv/riscv.md (clear_cache): Use it. | |
35864 | ||
35865 | 2018-01-02 Artyom Skrobov <tyomitch@gmail.com> | |
35866 | ||
35867 | * web.c: Remove out-of-date comment. | |
35868 | ||
35869 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35870 | ||
35871 | * expr.c (fixup_args_size_notes): Check that any existing | |
35872 | REG_ARGS_SIZE notes are correct, and don't try to re-add them. | |
35873 | (emit_single_push_insn_1): Move stack_pointer_delta adjustment to... | |
35874 | (emit_single_push_insn): ...here. | |
35875 | ||
35876 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35877 | ||
35878 | * rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt. | |
35879 | (const_vector_encoded_nelts): New function. | |
35880 | (CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS. | |
35881 | (const_vector_int_elt, const_vector_elt): Declare. | |
35882 | * emit-rtl.c (const_vector_int_elt_1): New function. | |
35883 | (const_vector_elt): Likewise. | |
35884 | * simplify-rtx.c (simplify_immed_subreg): Avoid taking the address | |
35885 | of CONST_VECTOR_ELT. | |
35886 | ||
35887 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35888 | ||
35889 | * expr.c: Include rtx-vector-builder.h. | |
35890 | (const_vector_mask_from_tree): Use rtx_vector_builder and operate | |
35891 | directly on the tree encoding. | |
35892 | (const_vector_from_tree): Likewise. | |
35893 | * optabs.c: Include rtx-vector-builder.h. | |
35894 | (expand_vec_perm_var): Use rtx_vector_builder and create a repeating | |
35895 | sequence of "u" values. | |
35896 | * vec-perm-indices.c: Include rtx-vector-builder.h. | |
35897 | (vec_perm_indices_to_rtx): Use rtx_vector_builder and operate | |
35898 | directly on the vec_perm_indices encoding. | |
35899 | ||
35900 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35901 | ||
35902 | * doc/rtl.texi (const_vector): Describe new encoding scheme. | |
35903 | * Makefile.in (OBJS): Add rtx-vector-builder.o. | |
35904 | * rtx-vector-builder.h: New file. | |
35905 | * rtx-vector-builder.c: Likewise. | |
35906 | * rtl.h (rtx_def::u2): Add a const_vector field. | |
35907 | (CONST_VECTOR_NPATTERNS): New macro. | |
35908 | (CONST_VECTOR_NELTS_PER_PATTERN): Likewise. | |
35909 | (CONST_VECTOR_DUPLICATE_P): Likewise. | |
35910 | (CONST_VECTOR_STEPPED_P): Likewise. | |
35911 | (CONST_VECTOR_ENCODED_ELT): Likewise. | |
35912 | (const_vec_duplicate_p): Check for a duplicated vector encoding. | |
35913 | (unwrap_const_vec_duplicate): Likewise. | |
35914 | (const_vec_series_p): Check for a non-duplicated vector encoding. | |
35915 | Say that the function only returns true for integer vectors. | |
35916 | * emit-rtl.c: Include rtx-vector-builder.h. | |
35917 | (gen_const_vec_duplicate_1): Delete. | |
35918 | (gen_const_vector): Call gen_const_vec_duplicate instead of | |
35919 | gen_const_vec_duplicate_1. | |
35920 | (const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding. | |
35921 | (gen_const_vec_duplicate): Use rtx_vector_builder. | |
35922 | (gen_const_vec_series): Likewise. | |
35923 | (gen_rtx_CONST_VECTOR): Likewise. | |
35924 | * config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h. | |
35925 | (swap_const_vector_halves): Take an rtx pointer rather than rtx. | |
35926 | Build a new vector rather than modifying a CONST_VECTOR in-place. | |
35927 | (handle_special_swappables): Update call accordingly. | |
35928 | * config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h. | |
35929 | (swap_const_vector_halves): Take an rtx pointer rather than rtx. | |
35930 | Build a new vector rather than modifying a CONST_VECTOR in-place. | |
35931 | (handle_special_swappables): Update call accordingly. | |
35932 | ||
35933 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35934 | ||
35935 | * simplify-rtx.c (simplify_const_binary_operation): Use | |
35936 | CONST_VECTOR_ELT instead of XVECEXP. | |
35937 | ||
35938 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35939 | ||
35940 | * tree-cfg.c (verify_gimple_assign_ternary): Allow the size of | |
35941 | the selector elements to be different from the data elements | |
35942 | if the selector is a VECTOR_CST. | |
35943 | * tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of | |
35944 | ssizetype for the selector. | |
35945 | ||
35946 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35947 | ||
35948 | * optabs.c (shift_amt_for_vec_perm_mask): Try using series_p | |
35949 | before testing each element individually. | |
35950 | * tree-vect-generic.c (lower_vec_perm): Likewise. | |
35951 | ||
35952 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35953 | ||
35954 | * selftest.h (selftest::vec_perm_indices_c_tests): Declare. | |
35955 | * selftest-run-tests.c (selftest::run_tests): Call it. | |
35956 | * vector-builder.h (vector_builder::operator ==): New function. | |
35957 | (vector_builder::operator !=): Likewise. | |
35958 | * vec-perm-indices.h (vec_perm_indices::series_p): Declare. | |
35959 | (vec_perm_indices::all_from_input_p): New function. | |
35960 | * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. | |
35961 | (test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise. | |
35962 | * fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder | |
35963 | instead of reading the VECTOR_CST directly. Detect whether both | |
35964 | vector inputs are the same before constructing the vec_perm_indices, | |
35965 | and update the number of inputs argument accordingly. Use the | |
35966 | utility functions added above. Only construct sel2 if we need to. | |
35967 | ||
35968 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35969 | ||
35970 | * optabs.c (expand_vec_perm_var): Use an explicit encoding for | |
35971 | the broadcast of the low byte. | |
35972 | (expand_mult_highpart): Use an explicit encoding for the permutes. | |
35973 | * optabs-query.c (can_mult_highpart_p): Likewise. | |
35974 | * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. | |
35975 | * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. | |
35976 | (vectorizable_bswap): Likewise. | |
35977 | * tree-vect-data-refs.c (vect_grouped_store_supported): Use an | |
35978 | explicit encoding for the power-of-2 permutes. | |
35979 | (vect_permute_store_chain): Likewise. | |
35980 | (vect_grouped_load_supported): Likewise. | |
35981 | (vect_permute_load_chain): Likewise. | |
35982 | ||
35983 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35984 | ||
35985 | * vec-perm-indices.h (vec_perm_indices_to_tree): Declare. | |
35986 | * vec-perm-indices.c (vec_perm_indices_to_tree): New function. | |
35987 | * tree-ssa-forwprop.c (simplify_vector_constructor): Use it. | |
35988 | * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. | |
35989 | * tree-vect-stmts.c (vectorizable_bswap): Likewise. | |
35990 | (vect_gen_perm_mask_any): Likewise. | |
35991 | ||
35992 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
35993 | ||
35994 | * int-vector-builder.h: New file. | |
35995 | * vec-perm-indices.h: Include int-vector-builder.h. | |
35996 | (vec_perm_indices): Redefine as an int_vector_builder. | |
35997 | (auto_vec_perm_indices): Delete. | |
35998 | (vec_perm_builder): Redefine as a stand-alone class. | |
35999 | (vec_perm_indices::vec_perm_indices): New function. | |
36000 | (vec_perm_indices::clamp): Likewise. | |
36001 | * vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h. | |
36002 | (vec_perm_indices::new_vector): New function. | |
36003 | (vec_perm_indices::new_expanded_vector): Update for new | |
36004 | vec_perm_indices class. | |
36005 | (vec_perm_indices::rotate_inputs): New function. | |
36006 | (vec_perm_indices::all_in_range_p): Operate directly on the | |
36007 | encoded form, without computing elided elements. | |
36008 | (tree_to_vec_perm_builder): Operate directly on the VECTOR_CST | |
36009 | encoding. Update for new vec_perm_indices class. | |
36010 | * optabs.c (expand_vec_perm_const): Create a vec_perm_indices for | |
36011 | the given vec_perm_builder. | |
36012 | (expand_vec_perm_var): Update vec_perm_builder constructor. | |
36013 | (expand_mult_highpart): Use vec_perm_builder instead of | |
36014 | auto_vec_perm_indices. | |
36015 | * optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and | |
36016 | vec_perm_indices instead of auto_vec_perm_indices. Use a single | |
36017 | or double series encoding as appropriate. | |
36018 | * fold-const.c (fold_ternary_loc): Use vec_perm_builder and | |
36019 | vec_perm_indices instead of auto_vec_perm_indices. | |
36020 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
36021 | * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. | |
36022 | (vect_permute_store_chain): Likewise. | |
36023 | (vect_grouped_load_supported): Likewise. | |
36024 | (vect_permute_load_chain): Likewise. | |
36025 | (vect_shift_permute_load_chain): Likewise. | |
36026 | * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. | |
36027 | (vect_transform_slp_perm_load): Likewise. | |
36028 | (vect_schedule_slp_instance): Likewise. | |
36029 | * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. | |
36030 | (vectorizable_mask_load_store): Likewise. | |
36031 | (vectorizable_bswap): Likewise. | |
36032 | (vectorizable_store): Likewise. | |
36033 | (vectorizable_load): Likewise. | |
36034 | * tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and | |
36035 | vec_perm_indices instead of auto_vec_perm_indices. Use | |
36036 | tree_to_vec_perm_builder to read the vector from a tree. | |
36037 | * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a | |
36038 | vec_perm_builder instead of a vec_perm_indices. | |
36039 | (have_whole_vector_shift): Use vec_perm_builder and | |
36040 | vec_perm_indices instead of auto_vec_perm_indices. Leave the | |
36041 | truncation to calc_vec_perm_mask_for_shift. | |
36042 | (vect_create_epilog_for_reduction): Likewise. | |
36043 | * config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change | |
36044 | from auto_vec_perm_indices to vec_perm_indices. | |
36045 | (aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm | |
36046 | instead of changing individual elements. | |
36047 | (aarch64_vectorize_vec_perm_const): Use new_vector to install | |
36048 | the vector in d.perm. | |
36049 | * config/arm/arm.c (expand_vec_perm_d::perm): Change | |
36050 | from auto_vec_perm_indices to vec_perm_indices. | |
36051 | (arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm | |
36052 | instead of changing individual elements. | |
36053 | (arm_vectorize_vec_perm_const): Use new_vector to install | |
36054 | the vector in d.perm. | |
36055 | * config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even): | |
36056 | Update vec_perm_builder constructor. | |
36057 | (rs6000_expand_interleave): Likewise. | |
36058 | * config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise. | |
36059 | (rs6000_expand_interleave): Likewise. | |
36060 | ||
36061 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
36062 | ||
36063 | * optabs-query.c (can_vec_perm_var_p): Check whether lowering | |
36064 | to qimode could truncate the indices. | |
36065 | * optabs.c (expand_vec_perm_var): Likewise. | |
36066 | ||
36067 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
36068 | ||
36069 | * Makefile.in (OBJS): Add vec-perm-indices.o. | |
36070 | * vec-perm-indices.h: New file. | |
36071 | * vec-perm-indices.c: Likewise. | |
36072 | * target.h (vec_perm_indices): Replace with a forward class | |
36073 | declaration. | |
36074 | (auto_vec_perm_indices): Move to vec-perm-indices.h. | |
36075 | * optabs.h: Include vec-perm-indices.h. | |
36076 | (expand_vec_perm): Delete. | |
36077 | (selector_fits_mode_p, expand_vec_perm_var): Declare. | |
36078 | (expand_vec_perm_const): Declare. | |
36079 | * target.def (vec_perm_const_ok): Replace with... | |
36080 | (vec_perm_const): ...this new hook. | |
36081 | * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with... | |
36082 | (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook. | |
36083 | * doc/tm.texi: Regenerate. | |
36084 | * optabs.def (vec_perm_const): Delete. | |
36085 | * doc/md.texi (vec_perm_const): Likewise. | |
36086 | (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST. | |
36087 | * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than | |
36088 | expand_vec_perm for constant permutation vectors. Assert that | |
36089 | the mode of variable permutation vectors is the integer equivalent | |
36090 | of the mode that is being permuted. | |
36091 | * optabs-query.h (selector_fits_mode_p): Declare. | |
36092 | * optabs-query.c: Include vec-perm-indices.h. | |
36093 | (selector_fits_mode_p): New function. | |
36094 | (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const | |
36095 | is defined, instead of checking whether the vec_perm_const_optab | |
36096 | exists. Use targetm.vectorize.vec_perm_const instead of | |
36097 | targetm.vectorize.vec_perm_const_ok. Check whether the indices | |
36098 | fit in the vector mode before using a variable permute. | |
36099 | * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a | |
36100 | vec_perm_indices instead of an rtx. | |
36101 | (expand_vec_perm): Replace with... | |
36102 | (expand_vec_perm_const): ...this new function. Take the selector | |
36103 | as a vec_perm_indices rather than an rtx. Also take the mode of | |
36104 | the selector. Update call to shift_amt_for_vec_perm_mask. | |
36105 | Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab. | |
36106 | Use vec_perm_indices::new_expanded_vector to expand the original | |
36107 | selector into bytes. Check whether the indices fit in the vector | |
36108 | mode before using a variable permute. | |
36109 | (expand_vec_perm_var): Make global. | |
36110 | (expand_mult_highpart): Use expand_vec_perm_const. | |
36111 | * fold-const.c: Includes vec-perm-indices.h. | |
36112 | * tree-ssa-forwprop.c: Likewise. | |
36113 | * tree-vect-data-refs.c: Likewise. | |
36114 | * tree-vect-generic.c: Likewise. | |
36115 | * tree-vect-loop.c: Likewise. | |
36116 | * tree-vect-slp.c: Likewise. | |
36117 | * tree-vect-stmts.c: Likewise. | |
36118 | * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const): | |
36119 | Delete. | |
36120 | * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete. | |
36121 | * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const) | |
36122 | (aarch64_vectorize_vec_perm_const_ok): Fuse into... | |
36123 | (aarch64_vectorize_vec_perm_const): ...this new function. | |
36124 | (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. | |
36125 | (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. | |
36126 | * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete. | |
36127 | * config/arm/vec-common.md (vec_perm_const<mode>): Delete. | |
36128 | * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. | |
36129 | (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. | |
36130 | (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge | |
36131 | into... | |
36132 | (arm_vectorize_vec_perm_const): ...this new function. Explicitly | |
36133 | check for NEON modes. | |
36134 | * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete. | |
36135 | * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete. | |
36136 | * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment. | |
36137 | (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge | |
36138 | into... | |
36139 | (ix86_vectorize_vec_perm_const): ...this new function. Incorporate | |
36140 | the old VEC_PERM_CONST conditions. | |
36141 | * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete. | |
36142 | * config/ia64/vect.md (vec_perm_const<mode>): Delete. | |
36143 | * config/ia64/ia64.c (ia64_expand_vec_perm_const) | |
36144 | (ia64_vectorize_vec_perm_const_ok): Merge into... | |
36145 | (ia64_vectorize_vec_perm_const): ...this new function. | |
36146 | * config/mips/loongson.md (vec_perm_const<mode>): Delete. | |
36147 | * config/mips/mips-msa.md (vec_perm_const<mode>): Delete. | |
36148 | * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete. | |
36149 | * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete. | |
36150 | * config/mips/mips.c (mips_expand_vec_perm_const) | |
36151 | (mips_vectorize_vec_perm_const_ok): Merge into... | |
36152 | (mips_vectorize_vec_perm_const): ...this new function. | |
36153 | * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete. | |
36154 | * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete. | |
36155 | * config/powerpcspe/spe.md (vec_perm_constv2si): Delete. | |
36156 | * config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete. | |
36157 | * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const) | |
36158 | (rs6000_expand_vec_perm_const): Delete. | |
36159 | * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): | |
36160 | Delete. | |
36161 | (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. | |
36162 | (altivec_expand_vec_perm_const_le): Take each operand individually. | |
36163 | Operate on constant selectors rather than rtxes. | |
36164 | (altivec_expand_vec_perm_const): Likewise. Update call to | |
36165 | altivec_expand_vec_perm_const_le. | |
36166 | (rs6000_expand_vec_perm_const): Delete. | |
36167 | (rs6000_vectorize_vec_perm_const_ok): Delete. | |
36168 | (rs6000_vectorize_vec_perm_const): New function. | |
36169 | (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of | |
36170 | an element count and rtx array. | |
36171 | (rs6000_expand_extract_even): Update call accordingly. | |
36172 | (rs6000_expand_interleave): Likewise. | |
36173 | * config/rs6000/altivec.md (vec_perm_constv16qi): Delete. | |
36174 | * config/rs6000/paired.md (vec_perm_constv2sf): Delete. | |
36175 | * config/rs6000/vsx.md (vec_perm_const<mode>): Delete. | |
36176 | * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const) | |
36177 | (rs6000_expand_vec_perm_const): Delete. | |
36178 | * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. | |
36179 | (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. | |
36180 | (altivec_expand_vec_perm_const_le): Take each operand individually. | |
36181 | Operate on constant selectors rather than rtxes. | |
36182 | (altivec_expand_vec_perm_const): Likewise. Update call to | |
36183 | altivec_expand_vec_perm_const_le. | |
36184 | (rs6000_expand_vec_perm_const): Delete. | |
36185 | (rs6000_vectorize_vec_perm_const_ok): Delete. | |
36186 | (rs6000_vectorize_vec_perm_const): New function. Remove stray | |
36187 | reference to the SPE evmerge intructions. | |
36188 | (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of | |
36189 | an element count and rtx array. | |
36190 | (rs6000_expand_extract_even): Update call accordingly. | |
36191 | (rs6000_expand_interleave): Likewise. | |
36192 | * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of... | |
36193 | * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this | |
36194 | new function. | |
36195 | (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. | |
36196 | ||
36197 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
36198 | ||
36199 | * optabs.c (expand_vec_perm_1): Assert that SEL has an integer | |
36200 | vector mode and that that mode matches the mode of the data | |
36201 | being permuted. | |
36202 | (expand_vec_perm): Split handling of non-CONST_VECTOR selectors | |
36203 | out into expand_vec_perm_var. Do all CONST_VECTOR handling here, | |
36204 | directly using expand_vec_perm_1 when forcing selectors into | |
36205 | registers. | |
36206 | (expand_vec_perm_var): New function, split out from expand_vec_perm. | |
36207 | ||
36208 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
36209 | ||
36210 | * optabs-query.h (can_vec_perm_p): Delete. | |
36211 | (can_vec_perm_var_p, can_vec_perm_const_p): Declare. | |
36212 | * optabs-query.c (can_vec_perm_p): Split into... | |
36213 | (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions. | |
36214 | (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a | |
36215 | particular selector is valid. | |
36216 | * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. | |
36217 | * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. | |
36218 | (vect_grouped_load_supported): Likewise. | |
36219 | (vect_shift_permute_load_chain): Likewise. | |
36220 | * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. | |
36221 | (vect_transform_slp_perm_load): Likewise. | |
36222 | * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. | |
36223 | (vectorizable_bswap): Likewise. | |
36224 | (vect_gen_perm_mask_checked): Likewise. | |
36225 | * fold-const.c (fold_ternary_loc): Likewise. Don't take | |
36226 | implementations of variable permutation vectors into account | |
36227 | when deciding which selector to use. | |
36228 | * tree-vect-loop.c (have_whole_vector_shift): Don't check whether | |
36229 | vec_perm_const_optab is supported; instead use can_vec_perm_const_p | |
36230 | with a false third argument. | |
36231 | * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p | |
36232 | to test whether the constant selector is valid and can_vec_perm_var_p | |
36233 | to test whether a variable selector is valid. | |
36234 | ||
36235 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
36236 | ||
36237 | * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *. | |
36238 | * optabs-query.c (can_vec_perm_p): Likewise. | |
36239 | * fold-const.c (fold_vec_perm): Take a const vec_perm_indices & | |
36240 | instead of vec_perm_indices. | |
36241 | * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise, | |
36242 | (vect_gen_perm_mask_checked): Likewise, | |
36243 | * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise, | |
36244 | (vect_gen_perm_mask_checked): Likewise, | |
36245 | ||
36246 | 2018-01-02 Richard Sandiford <richard.sandiford@linaro.org> | |
36247 | ||
36248 | * optabs-query.h (qimode_for_vec_perm): Declare. | |
36249 | * optabs-query.c (can_vec_perm_p): Split out qimode search to... | |
36250 | (qimode_for_vec_perm): ...this new function. | |
36251 | * optabs.c (expand_vec_perm): Use qimode_for_vec_perm. | |
36252 | ||
36253 | 2018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> | |
36254 | ||
36255 | * rtlanal.c (canonicalize_condition): Return 0 if final rtx | |
36256 | does not have a conditional at the top. | |
36257 | ||
36258 | 2018-01-02 Richard Biener <rguenther@suse.de> | |
36259 | ||
36260 | * ipa-inline.c (big_speedup_p): Fix expression. | |
36261 | ||
36262 | 2018-01-02 Jan Hubicka <hubicka@ucw.cz> | |
36263 | ||
36264 | PR target/81616 | |
36265 | * config/i386/x86-tune-costs.h: Increase cost of integer load costs | |
36266 | for generic 4->6. | |
36267 | ||
36268 | 2018-01-02 Jan Hubicka <hubicka@ucw.cz> | |
36269 | ||
36270 | PR target/81616 | |
36271 | Generic tuning. | |
36272 | * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17, | |
36273 | cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14 | |
36274 | and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase | |
36275 | cond_taken_branch_cost 3->4. | |
36276 | ||
36277 | 2018-01-01 Jakub Jelinek <jakub@redhat.com> | |
36278 | ||
36279 | PR tree-optimization/83581 | |
36280 | * tree-loop-distribution.c (pass_loop_distribution::execute): Return | |
36281 | TODO_cleanup_cfg if any changes have been made. | |
36282 | ||
36283 | PR middle-end/83608 | |
36284 | * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of | |
36285 | convert_modes if target mode has the right side, but different mode | |
36286 | class. | |
36287 | ||
36288 | PR middle-end/83609 | |
36289 | * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg | |
36290 | last argument when extracting from CONCAT. If either from_real or | |
36291 | from_imag is NULL, use expansion through memory. If result is not | |
36292 | a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg | |
36293 | the parts directly to inner mode, if even that fails, use expansion | |
36294 | through memory. | |
36295 | ||
36296 | PR middle-end/83623 | |
36297 | * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT, | |
36298 | check for bswap in mode rather than HImode and use that in expand_unop | |
36299 | too. | |
36300 | \f | |
36301 | Copyright (C) 2018 Free Software Foundation, Inc. | |
36302 | ||
36303 | Copying and distribution of this file, with or without modification, | |
36304 | are permitted in any medium without royalty provided the copyright | |
36305 | notice and this notice are preserved. |