1 2017-01-26 Martin Sebor <msebor@redhat.com>
3 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
6 2017-01-26 Martin Sebor <msebor@redhat.com>
8 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
9 HAVE_DFmode before using XFmode or DFmode.
10 (parse_directive): Avoid using the z length modifier to avoid
11 the ISO C++98 does not support the āzā gnu_printf length modifier.
14 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
15 to accept adjustment as an array.
16 (get_int_range): New function.
17 (struct directive): Make width and prec arrays.
18 (directive::set_width, directive::set_precision): Call get_int_range.
19 (format_integer, format_floating): Handle width and precision ranges.
20 (format_string, parse_directive): Same.
22 2017-01-26 Jakub Jelinek <jakub@redhat.com>
25 * dwarf2out.c (generate_skeleton_bottom_up): For children with
26 comdat_type_p set, just clone them, but keep the children in the
30 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
31 which have direct callers with -fvar-tracking-assignments enabled
33 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
36 2017-01-26 Martin Sebor <msebor@redhat.com>
39 * gimple-ssa-sprintf.c (struct result_range): Add likely and
41 (struct format_result): Replace number_chars, number_chars_min,
42 and number_chars_max with a single member of struct result_range.
44 (format_result::operator+=): Adjust.
45 (struct fmtresult): Remove bounded. Handle likely and unlikely
47 (fmtresult::adjust_for_width_or_precision): New function.
48 (fmtresult:type_max_digits): New function.
49 (bytes_remaining): Handle likely and unlikely counters.
50 (min_bytes_remaining): Remove.
51 (format_percent): Simplify.
52 (format_integer, format_floating): Set likely and unlikely counters.
53 (get_string_length, format_character, format_string): Same.
54 (format_plain, should_warn_p): New function.
55 (maybe_warn): Call should_warn_p. Update diagnostic messages
56 and handle those for all directives, including plain strings.
57 (format_directive): Handle likely and unlikely counters.
58 Remove unnecessary quoting from diagnostics. Add an informational
61 (pass_sprintf_length::compute_format_length): Simplify.
62 (try_substitute_return_value): Handle likely and unlikely counters.
64 2017-01-26 Carl Love <cel@us.ibm.com>
66 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
67 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
69 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
72 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
73 endianess for subregs into account.
74 * lra-constraints.c (lra_constraints): Do risky transformations
75 always on the first iteration.
76 * lra-lives.c (check_pseudos_live_through_calls): Add arg
77 last_call_used_reg_set.
78 (process_bb_lives): Define and use last_call_used_reg_set.
79 * lra.c (lra): Always continue after lra_constraints on the first
82 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
84 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
86 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
88 2017-01-26 Jakub Jelinek <jakub@redhat.com>
90 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
91 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
92 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
93 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
94 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
95 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
96 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
97 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
98 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
100 2017-01-26 Marek Polacek <polacek@redhat.com>
103 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
104 for the third operand.
106 2017-01-26 Jakub Jelinek <jakub@redhat.com>
109 * omp-low.c (struct omp_context): Add simt_stmt field.
110 (scan_omp_for): Return omp_context *.
111 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
112 context to the _simt_ SIMD stmt.
113 (lower_omp_for): For combined SIMD with sibling _simt_
114 SIMD, make sure to use the same decls in _looptemp_
115 clauses as in the sibling.
117 2017-01-26 David Sherwood <david.sherwood@arm.com>
120 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
123 2017-01-26 Jakub Jelinek <jakub@redhat.com>
126 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
127 emit fld b; fld a; if possible.
129 * brig-builtins.def: Update copyright years.
130 * config/arm/arm_acle_builtins.def: Update copyright years.
132 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
135 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
136 constraint instead of o for the stxsd instruction.
138 2017-01-25 Carl Love <cel@us.ibm.com>
140 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
141 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
143 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
145 * doc/invoke.texi (C++ Dialect Options): Fix typo.
147 2017-01-25 Richard Biener <rguenther@suse.de>
149 PR tree-optimization/69264
150 * target.def (vector_alignment_reachable): Improve documentation.
151 * doc/tm.texi: Regenerate.
152 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
154 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
155 earlier changes with respect to TYPE_USER_ALIGN.
156 (vector_alignment_reachable_p): Likewise. Improve dumping.
158 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
161 * config/arm/arm.md (xordi3): Force constant operand into a register
164 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
166 * doc/invoke.texi (-fstore-merging): Correct default optimization
167 levels at which it is enabled.
168 (-O): Move -fstore-merging from list to...
171 2017-01-25 Richard Biener <rguenther@suse.de>
174 * omp-expand.c: Include debug.h.
175 (expand_omp_taskreg): Make sure to generate early debug before
176 outlining anything from a function.
177 (expand_omp_target): Likewise.
178 (grid_expand_target_grid_body): Likewise.
180 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
183 * asan.c (get_translation_unit_decl): New function.
184 (asan_add_global): Extract modules file name from globals
185 TRANSLATION_UNIT_DECL name.
187 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
190 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
191 for long calls with APCS frame and VFP.
193 2017-01-24 David Malcolm <dmalcolm@redhat.com>
195 * cfg.c (original_copy_tables_initialized_p): New function.
196 * cfg.h (original_copy_tables_initialized_p): New decl.
197 * cfgrtl.c (relink_block_chain): Guard the call to
198 free_original_copy_tables with a call to
199 original_copy_tables_initialized_p.
200 * cgraph.h (symtab_node::native_rtl_p): New decl.
201 * cgraphunit.c (symtab_node::native_rtl_p): New function.
202 (symtab_node::needed_p): Don't assert for early assembly output
204 (cgraph_node::finalize_function): Set "force_output" for __RTL
206 (cgraph_node::analyze): Bail out early for __RTL functions.
207 (analyze_functions): Update assertion to support __RTL functions.
208 (cgraph_node::expand): Bail out early for __RTL functions.
209 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
211 * function.h (struct function): Update comment for field
213 * gimple-expr.c: Include "tree-pass.h".
214 (gimple_has_body_p): Return false for __RTL functions.
215 * Makefile.in (OBJS): Add run-rtl-passes.o.
216 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
218 (gcc::pass_manager::get_clean_slate): New accessor.
219 * passes.c: Include "insn-addr.h".
220 (should_skip_pass_p): Add logging. Update logic for running
221 "expand" to be compatible with both __GIMPLE and __RTL. Guard
222 property-provider override so it is only done for gimple passes.
224 (skip_pass): New function.
225 (execute_one_pass): Call skip_pass when skipping passes.
226 * read-md.c (md_reader::read_char): Support filtering
227 the input to a subset of line numbers.
228 (md_reader::md_reader): Initialize fields
229 m_first_line and m_last_line.
230 (md_reader::read_file_fragment): New function.
231 * read-md.h (md_reader::read_file_fragment): New decl.
232 (md_reader::m_first_line): New field.
233 (md_reader::m_last_line): New field.
234 * read-rtl-function.c (function_reader::create_function): Only
235 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
236 curr_properties. Set DECL_INITIAL to a dummy block.
237 (read_rtl_function_body_from_file_range): New function.
238 * read-rtl-function.h (read_rtl_function_body_from_file_range):
240 * run-rtl-passes.c: New file.
241 * run-rtl-passes.h: New file.
243 2017-01-24 Jeff Law <law@redhat.com>
245 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
248 2017-01-24 Bin Cheng <bin.cheng@arm.com>
250 PR tree-optimization/79159
251 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
252 (record_nonwrapping_iv): Improve boundary using above function if no
253 value range information.
255 2017-01-24 Pekka JƤƤskelƤinen <pekka@parmance.com>
256 Martin Jambor <mjambor@suse.cz>
258 * brig-builtins.def: New file.
259 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
260 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
261 (DEF_HSAIL_SAT_BUILTIN): Likewise.
262 (DEF_HSAIL_INTR_BUILTIN): Likewise.
263 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
264 * builtin-types.def (BT_INT8): New.
265 (BT_INT16): Likewise.
266 (BT_UINT8): Likewise.
267 (BT_UINT16): Likewise.
268 (BT_FN_ULONG): Likewise.
269 (BT_FN_UINT_INT): Likewise.
270 (BT_FN_UINT_ULONG): Likewise.
271 (BT_FN_UINT_LONG): Likewise.
272 (BT_FN_UINT_PTR): Likewise.
273 (BT_FN_ULONG_PTR): Likewise.
274 (BT_FN_INT8_FLOAT): Likewise.
275 (BT_FN_INT16_FLOAT): Likewise.
276 (BT_FN_UINT32_FLOAT): Likewise.
277 (BT_FN_UINT16_FLOAT): Likewise.
278 (BT_FN_UINT8_FLOAT): Likewise.
279 (BT_FN_UINT64_FLOAT): Likewise.
280 (BT_FN_UINT16_UINT32): Likewise.
281 (BT_FN_UINT32_UINT16): Likewise.
282 (BT_FN_UINT16_UINT16_UINT16): Likewise.
283 (BT_FN_INT_PTR_INT): Likewise.
284 (BT_FN_UINT_PTR_UINT): Likewise.
285 (BT_FN_LONG_PTR_LONG): Likewise.
286 (BT_FN_ULONG_PTR_ULONG): Likewise.
287 (BT_FN_VOID_UINT64_UINT64): Likewise.
288 (BT_FN_UINT8_UINT8_UINT8): Likewise.
289 (BT_FN_INT8_INT8_INT8): Likewise.
290 (BT_FN_INT16_INT16_INT16): Likewise.
291 (BT_FN_INT_INT_INT): Likewise.
292 (BT_FN_UINT_FLOAT_UINT): Likewise.
293 (BT_FN_FLOAT_UINT_UINT): Likewise.
294 (BT_FN_ULONG_UINT_UINT): Likewise.
295 (BT_FN_ULONG_UINT_PTR): Likewise.
296 (BT_FN_ULONG_ULONG_ULONG): Likewise.
297 (BT_FN_UINT_UINT_UINT): Likewise.
298 (BT_FN_VOID_UINT_PTR): Likewise.
299 (BT_FN_UINT_UINT_PTR: Likewise.
300 (BT_FN_UINT32_UINT64_PTR): Likewise.
301 (BT_FN_INT_INT_UINT_UINT): Likewise.
302 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
303 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
304 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
305 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
306 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
307 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
308 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
309 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
310 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
311 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
312 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
313 * doc/frontends.texi: List BRIG FE.
314 * doc/install.texi (Testing): Add BRIG tesring requirements.
315 * doc/invoke.texi (Overall Options): Mention BRIG.
316 * doc/standards.texi (Standards): Doucment BRIG HSA version.
318 2017-01-24 Richard Biener <rguenther@suse.de>
321 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
323 2017-01-24 Martin Jambor <mjambor@suse.cz>
326 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
327 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
330 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
333 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
334 casts from signed to unsigned really don't have a range.
336 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
338 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
339 GMP_RNDx for compatiblity.
341 2017-01-24 Martin Liska <mliska@suse.cz>
344 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
345 that would prevent us to call alloca with -1 as argument.
347 2017-01-24 Jakub Jelinek <jakub@redhat.com>
349 * dwarf2out.c (output_compilation_unit_header, output_file_names):
350 Avoid -Wformat-security warning.
352 2017-01-23 Andrew Pinski <apinski@cavium.com>
354 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
357 2017-01-23 Martin Sebor <msebor@redhat.com>
360 * gimple-ssa-sprintf.c (warn_level): New global.
361 (format_integer): Use it here and throughout the rest of the file.
362 Use the same switch to compute sign as base.
363 (maybe_warn): New function.
364 (format_directive): Factor out warnings into maybe_warn.
365 Add debugging output. Use warn_level.
366 (add_bytes): Use warn_level.
367 (pass_sprintf_length::compute_format_length): Add debugging output.
368 (try_substitute_return_value): Same.
369 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
372 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
373 (struct fmtresult, format_integer, format_floating): Adjust.
374 (fmtresult::fmtresult): Set max correctly in two argument ctor.
375 (get_string_length, format_string,format_directive): Same.
376 (pass_sprintf_length::compute_format_length): Same.
377 (try_substitute_return_value): Simplify slightly.
380 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
381 (fmtresult::operator+=): Outlined.
382 (struct fmtresult): Add ctors.
383 (struct conversion_spec): Rename...
384 (struct directive): ...to this. Add and remove data members.
385 (directive::set_width, directive::set_precision): New functions.
386 (format_percent): Use fmtresult ctor.
387 (get_width_and_precision): Remove.
388 (format_integer): Make naming changes. Avoid computing width and
390 (format_floating): Same. Adjust indentation.
391 (format_character, format_none): New functions.
392 (format_string): Moved character handling to format_character.
393 (format_directive): Remove arguments, change return type.
394 (parse_directive): New function.
395 (pass_sprintf_length::compute_format_length): Move directive
396 parsing to parse_directive.
398 2017-01-23 Jakub Jelinek <jakub@redhat.com>
400 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
401 (assign_assembler_name_if_needed): ... this.
402 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
403 (assign_assembler_name_if_needed): ... this.
404 (free_lang_data_in_cgraph): Adjust callers.
405 * cgraphunit.c (cgraph_node::analyze): Likewise.
406 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
409 2017-01-23 Richard Biener <rguenther@suse.de>
411 PR tree-optimization/79088
412 PR tree-optimization/79188
413 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
414 resetting loop bounds after last path deletion. Reset loop
415 bounds of the target loop, make code match the comments.
416 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
417 Make sure loops need no fixups.
419 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
421 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
422 exponent support with double type for first argument.
423 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
424 type returned by __builtin_vec_extract_sig,
425 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
426 functions from "vector int" to "vector unsigned int" or from
427 "vector long long int" to "vector unsigned long long int".
428 Changed type returned by __builtin_vec_extract_exp,
429 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
430 functions from "vector int" to "vector unsigned int" or from
431 "vector long long int" to "vector unsigned long long int".
432 Changed return type of __builtin_vec_test_data_class,
433 __builtin_vec_test_data_class_sp, and
434 __builtin_vec_test_data_class_dp from "vector int" to
435 "vector bool int" or from "vector long long int" to "vector bool
436 long long int" and changed second argument type from "unsigned
437 int" to "int". Added new overloaded function forms "vector float
438 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
439 "vector float __builtin_vec_insert_exp_sp (vector float, vector
440 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
441 double, vector unsigned long long int)" and "vector double
442 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
443 long int)". Changed return type of
444 __builtin_scalar_test_data_class and
445 __builtin_scalar_test_data_class_sp and
446 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
447 int" and changed second argument from "unsigned int" to "int".
448 Changed type returned by __builtin_scalar_test_neg,
449 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
450 from "int" to "bool int". Added new overloaded function form
451 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
452 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
453 exponent double-precision with floating point first argument.
454 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
455 documentation of scalar_test_data_class, scalar_test_neg,
456 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
457 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
458 vec_test_data_class built-in functions to reflect refinements in
459 their type signatures.
461 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
463 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
465 (aarch64_elf_asm_destructor): Likewise.
467 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
469 PR rtl-optimization/78634
470 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
471 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
472 * ifcvt.c (noce_try_cmove): Add missing cost check.
474 PR rtl-optimization/71724
475 * combine.c (if_then_else_cond): Look for situations where it is
476 beneficial to undo the work of one of the recursive calls.
478 2017-01-23 Bin Cheng <bin.cheng@arm.com>
480 PR tree-optimization/70754
481 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
482 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
483 combined stmt before it if not NULL.
484 (combine_chains): Process refs reversely and compute dominance point
487 2017-01-23 Martin Liska <mliska@suse.cz>
489 PR tree-optimization/79196
490 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
491 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
493 (strlen_optimize_stmt): Call the renamed function.
495 2017-01-23 Michael Matz <matz@suse.de>
497 PR tree-optimization/78384
498 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
500 2017-01-23 Richard Biener <rguenther@suse.de>
502 PR tree-optimization/79186
503 * tree-vrp.c (register_new_assert_for): Make sure we've seen
504 both incoming edges before moving an assert.
506 2017-01-23 Martin Jambor <mjambor@suse.cz>
508 * ipa-prop.c (load_from_param_1): Removed.
509 (load_from_unmodified_param): Bits from load_from_param_1 put back
511 (load_from_param): Removed.
512 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
513 with stmt. Reverted back to use of load_from_unmodified_param.
515 2017-01-23 Martin Jambor <mjambor@suse.cz>
518 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
519 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
520 field a pointer to garbage collected vector, mark lattices and
521 ipcp_orig_node with GTY((skip)).
522 (ipa_get_param_count): Adjust to descriptors being a pointer.
523 (ipa_get_param): Likewise.
524 (ipa_get_type): Likewise.
525 (ipa_get_param_move_cost): Likewise.
526 (ipa_set_param_used): Likewise.
527 (ipa_get_controlled_uses): Likewise.
528 (ipa_set_controlled_uses): Likewise.
529 (ipa_is_param_used): Likewise.
530 (ipa_node_params_t): Move into garbage collector. New methods insert
532 (ipa_node_params_sum): Annotate wth GTY(()).
533 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
535 (ipa_load_from_parm_agg): Adjust declaration.
536 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
537 * ipa-profile.c (ipa_profile): Likewise.
538 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
539 (ipa_populate_param_decls): Make descriptors parameter garbage
541 (ipa_dump_param): Adjust to descriptors being a pointer.
542 (ipa_alloc_node_params): Likewise.
543 (ipa_initialize_node_params): Likewise.
544 (load_from_param_1): Make descriptors parameter garbage collected.
545 (load_from_unmodified_param): Likewise.
546 (load_from_param): Likewise.
547 (ipa_load_from_parm_agg): Likewise.
548 (ipa_node_params::~ipa_node_params): Removed.
549 (ipa_free_all_node_params): Remove call to delete operator.
550 (ipa_node_params_t::insert): New.
551 (ipa_node_params_t::remove): Likewise.
552 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
553 copy known_csts and known_contexts vectors.
554 (ipa_read_node_info): Adjust to descriptors being a pointer.
555 (ipcp_modif_dom_walker): Make m_descriptors field garbage
557 (ipcp_transform_function): Make descriptors variable garbage
560 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
562 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
563 * config/i386/avx512dqintrin.h: Ditto.
564 * config/i386/avx512fintrin.h: Ditto.
565 * gcc/config/i386/i386.c: Handle new builtins.
566 * config/i386/i386-builtin.def: Add new builtins.
567 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
568 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
570 2017-01-23 Jakub Jelinek <jakub@redhat.com>
571 Martin Liska <mliska@suse.cz>
573 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
574 * asan.c (asan_expand_poison_ifn): Support stores and use
575 appropriate ASAN report function.
576 * internal-fn.c (expand_ASAN_POISON_USE): New function.
577 * internal-fn.def (ASAN_POISON_USE): Declare.
578 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
579 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
580 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
581 ASAN_POISON calls w/o LHS.
582 * tree-ssa.c (execute_update_addresses_taken): Create clobber
583 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
584 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
585 * gimplify.c (asan_poison_variables): Add attribute
586 use_after_scope_memory to variables that really needs to live
588 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
589 having the attribute.
591 2017-01-23 Martin Liska <mliska@suse.cz>
593 * asan.c (create_asan_shadow_var): New function.
594 (asan_expand_poison_ifn): Likewise.
595 * asan.h (asan_expand_poison_ifn): New declaration.
596 * internal-fn.c (expand_ASAN_POISON): Likewise.
597 * internal-fn.def (ASAN_POISON): New builtin.
598 * sanopt.c (pass_sanopt::execute): Expand
599 asan_expand_poison_ifn.
600 * tree-inline.c (copy_decl_for_dup_finish): Make function
602 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
603 * tree-ssa.c (is_asan_mark_p): New function.
604 (execute_update_addresses_taken): Rewrite local variables
605 (identified just by use-after-scope as addressable) into SSA.
607 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
609 * doc/install.texi (Specific): opensource.apple.com uses https
610 now. Remove trailing slash.
612 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
614 * README.Portability: Remove note on an Irix compatibility issue.
616 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
618 * gcov.c (INCLUDE_ALGORITHM): Define.
619 (INCLUDE_VECTOR): Define.
620 No longer include <vector> and <algorithm> directly.
622 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
624 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
626 * doc/invoke.texi (Code Gen Options): Ditto.
628 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
631 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
633 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
635 rtl-optimization/79125
636 * cprop.c (local_cprop_pass): Handle cases where we make an
639 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
643 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
644 read from, for big endian.
646 2017-01-20 Jiong Wang <jiong.wang@arm.com>
648 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
649 register pauth builtins for LP64 only.
651 2017-01-20 Marek Polacek <polacek@redhat.com>
654 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
657 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
659 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
661 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
662 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
663 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
665 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
668 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
669 in big-endian mode when they are not a single duplicated value.
671 2017-01-20 Richard Biener <rguenther@suse.de>
673 * BASE-VER: Bump to 7.0.1.
675 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
677 * omp-low.c (omplow_simd_context): New struct. Use it...
678 (lower_rec_simd_input_clauses): ...here and...
679 (lower_rec_input_clauses): ...here to hold common data. Adjust all
680 references to idx, lane, max_vf, is_simt.
682 2017-01-20 Graham Markall <graham.markall@embecosm.com>
684 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
687 2017-01-20 Martin Jambor <mjambor@suse.cz>
689 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
690 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
692 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
693 (GTFILES): Rename hsa.c to hsa-common.c.
694 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
695 * hsa-dump.c: Likewise.
696 * hsa-gen.c: Likewise.
697 * hsa-regalloc.c: Likewise.
698 * ipa-hsa.c: Likewise.
699 * omp-expand.c: Likewise.
700 * omp-low.c: Likewise.
701 * toplev.c: Likewise.
703 2017-01-20 Marek Polacek <polacek@redhat.com>
706 * doc/invoke.texi: Document -Wduplicated-branches.
707 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
708 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
709 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
710 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
711 return 0 only when not OEP_LEXICOGRAPHIC.
712 (fold_build_cleanup_point_expr): Use the expression
713 location when building CLEANUP_POINT_EXPR.
714 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
715 * tree.c (add_expr): Handle error_mark_node.
717 2017-01-20 Martin Liska <mliska@suse.cz>
720 * tree-profile.c (init_ic_make_global_vars): Do not call
722 (gimple_init_gcov_profiler): Likewise.
724 2017-01-20 Martin Liska <mliska@suse.cz>
727 * cgraph.h (maybe_create_reference): Remove argument and
729 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
731 * ipa-cp.c (create_specialized_node): Likewise.
732 * symtab.c (symtab_node::maybe_create_reference): Handle
733 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
735 2017-01-20 Martin Liska <mliska@suse.cz>
737 * read-rtl-function.c (function_reader::create_function): Use
738 build_decl instread of build_decl_stat.
740 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
742 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
743 * config/i386/avx512dqintrin.h: Ditto.
744 * config/i386/avx512fintrin.h: Ditto.
745 * config/i386/i386-builtin-types.def: Add new types.
746 * gcc/config/i386/i386.c: Handle new types.
747 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
748 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
749 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
750 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
751 (__builtin_ia32_kshiftridi): New.
752 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
754 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
758 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
759 define to rs6000_init_stack_protect_guard.
760 (rs6000_init_stack_protect_guard): New function.
762 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
763 Yunqiang Su <yunqiang.su@imgtec.com>
765 * config.gcc (supported_defaults): Add madd4.
766 (with_madd4): Add validation.
767 (all_defaults): Add madd4.
768 * config/mips/mips.opt (mmadd4): New option.
769 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
771 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
773 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
774 (ISA_HAS_FUSED_MADD4): Likewise.
775 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
776 * gcc/doc/install.texi (--with-madd4): Document the new option.
778 2017-01-19 Jiong Wang <jiong.wang@arm.com>
780 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
781 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
782 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
783 (aarch64_init_pauth_hint_builtins): New.
784 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
785 (aarch64_expand_builtin): Expand new builtins.
787 2017-01-19 Jiong Wang <jiong.wang@arm.com>
789 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
790 * combine-stack-adj.c (no_unhandled_cfa): Handle
791 REG_CFA_TOGGLE_RA_MANGLE.
792 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
793 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
794 info for return address signing.
795 (aarch64_expand_epilogue): Likewise.
797 2017-01-19 Jiong Wang <jiong.wang@arm.com>
799 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
800 * config/aarch64/aarch64-protos.h
801 (aarch64_return_address_signing_enabled): New declaration.
802 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
804 (aarch64_expand_prologue): Sign return address before it's pushed onto
806 (aarch64_expand_epilogue): Authenticate return address fetched from
808 (aarch64_override_options): Sanity check for ILP32 and ISA level.
809 (aarch64_attributes): New function attributes for "sign-return-address".
810 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
811 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
812 ("*do_return"): Generate combined instructions according to key index.
813 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
814 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
816 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
817 * config/aarch64/aarch64.opt (msign-return-address=): New.
818 * doc/extend.texi (AArch64 Function Attributes): Documents
819 "sign-return-address=".
820 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
822 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
824 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
825 overall option summary.
827 2017-01-19 Jiong Wang <jiong.wang@arm.com>
829 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
830 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
831 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
832 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
834 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
836 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
837 -mpower9-minmax by default for -mcpu=power9.
838 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
839 128-bit floating point.
841 2017-01-20 Alan Modra <amodra@gmail.com>
843 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
846 2017-01-20 Alan Modra <amodra@gmail.com>
849 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
850 for strcmp and strncmp from corresponding builtin decl.
852 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
854 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
855 instead of i386/rtems-64.h.
856 * config/i386/rtems-64.h: Remove.
858 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
862 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
864 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
866 2017-01-19 Tamar Christina <tamar.christina@arm.com>
868 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
869 Change int to HOST_WIDE_INT.
870 * config/aarch64/aarch64-protos.h
871 (aarch64_simd_gen_const_vector_dup): Likewise.
872 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
874 2017-01-19 David Malcolm <dmalcolm@redhat.com>
876 * langhooks-def.h (lhd_type_for_size): New decl.
877 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
878 * langhooks.c (lhd_type_for_size): New function, taken from
881 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
883 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
884 define_bypass for CR latency.
885 (power9-cracked-alu): Update bypass latency and remove power9-branch.
886 (power9-alu2): Add define_bypass for CR latency.
888 (power9-mul): Update insn latency.
889 (power9-mul-compare): Update insn latency, bypass latency and remove
892 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
894 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
896 * config/aarch64/aarch64.md
897 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
898 aarch64_nopcrelative_literal_loads.
899 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
901 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
903 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
905 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
907 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
910 * config.gcc (supported_defaults): Add lxc1-sxc1.
911 (with_lxc1_sxc1): Add validation.
912 (all_defaults): Add lxc1-sxc1.
913 * config/mips/mips.opt (mlxc1-sxc1): New option.
914 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
916 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
918 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
919 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
920 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
922 2017-01-19 Richard Biener <rguenther@suse.de>
924 PR tree-optimization/72488
925 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
926 sure to restore SSA info.
927 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
929 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
931 PR rtl-optimization/79121
932 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
933 of the inner type when shifting an extended value.
935 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
938 * symtab.c (symtab_node::equal_address_to): Fix comparing of
939 interposable aliases.
941 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
944 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
945 Use the evmergelohi instruction.
946 (mov_si<mode>_e500_subreg4_2_le): Likewise.
947 (mov_sitf_e500_subreg8_2_be): Likewise.
948 (mov_sitf_e500_subreg12_2_le): Likewise.
949 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
950 (mov_si<mode>_e500_subreg4_2_be): Likewise.
951 (mov_sitf_e500_subreg8_2_le): Likewise.
952 (mov_sitf_e500_subreg12_2_be): Likewise.
954 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
956 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
957 attribute from vecsimple to vecperm.
958 (altivec_vbpermq2): Likewise.
960 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
963 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
965 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
966 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
967 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
968 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
969 case where N arg is SIZE_MAX.
970 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
971 (cmpstrsi): Add pattern.
973 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
975 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
976 __builtin_vec_revb builtins.
977 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
978 built-in functions to support generation of the ISA 3.0 XXBR<x>
979 vector byte reverse instructions.
980 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
981 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
982 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
983 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
984 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
985 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
986 (P9V_BUILTIN_VEC_REVB): Likewise.
987 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
988 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
989 (p9_xxbrq_v16qi): Likewise.
990 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
991 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
992 (p9_xxbrh_v8hi): Likewise.
993 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
994 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
995 vec_revb built-in functions.
997 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
999 PR rtl-optimization/78952
1000 * config/i386/i386.md (any_extract): New code iterator.
1001 (*insvqi_2): Use any_extract for source operand.
1002 (*insvqi_3): Use any_shiftrt for source operand.
1004 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
1006 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
1008 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
1010 2017-01-18 Matthias Klose <doko@ubuntu.com>
1012 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
1014 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1016 * config/rs6000/altivec.h (vec_bperm): Change #define.
1017 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
1018 (altivec_vbpermq2): New define_insn.
1019 (altivec_vbpermd): Likewise.
1020 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
1022 (VBPERMD): Likewise.
1023 (VBPERM): New polymorphic function interface.
1024 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
1025 Add entries for P9V_BUILTIN_VEC_VBPERM.
1026 * doc/extend.texi: Add interfaces for vec_bperm.
1028 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1030 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
1031 first letter of error messages.
1032 (s390_resolve_overloaded_builtin): Likewise.
1033 * config/s390/s390.c (s390_expand_builtin): Likewise.
1034 (s390_invalid_arg_for_unprototyped_fn): Likewise.
1035 (s390_valid_target_attribute_inner_p): Likewise.
1036 * config/s390/s390.md ("tabort"): Likewise.
1038 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
1040 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
1041 (ISA_AVOID_DIV_HILO): New macro.
1042 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
1043 (ISA_HAS_DDIV): Likewise.
1045 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1047 * doc/invoke.texi (fabi-version): Correct number of occurrences.
1049 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1051 * doc/invoke.texi (fabi-version): Spelling fix.
1053 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1056 * doc/invoke.texi (fabi-version): Mention mangling fix for
1059 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1062 * doc/invoke.texi (fabi-version): Document discriminator mangling.
1064 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
1067 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
1068 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
1070 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
1072 (stack_protect_test): Ditto.
1073 * config/rs6000/rs6000.opt (mstack-protector-guard=,
1074 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
1076 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
1077 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
1078 -mstack-protector-guard-offset=.
1079 (RS/6000 and PowerPC Options): Ditto.
1081 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
1083 * config/i386/i386.h (MASK_CLASS_P): New define.
1084 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
1085 there are no registers from different register sets also when
1086 mask registers are used. Update function comment.
1087 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
1088 to (*k/*r) and (*k/*km) alternatives.
1090 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
1092 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
1093 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
1094 (EH_RETURN_HANDLER_RTX): New define.
1095 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
1096 Force frame pointer in EH return functions.
1097 (aarch64_expand_epilogue): Add barrier for eh_return.
1098 (aarch64_final_eh_return_addr): Remove.
1099 (aarch64_eh_return_handler_rtx): New function.
1100 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
1102 (aarch64_eh_return_handler_rtx): New prototype.
1104 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1106 * config/rs6000/altivec.h (vec_rlmi): New #define.
1107 (vec_vrlnm): Likewise.
1108 (vec_rlnm): Likewise.
1109 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
1110 (UNSPEC_VRLNM): Likewise.
1111 (VIlong): New mode iterator.
1112 (altivec_vrl<VI_char>mi): New define_insn.
1113 (altivec_vrl<VI_char>nm): Likewise.
1114 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
1117 (RLNM): New polymorphic function entry.
1118 (VRLWMI): New monomorphic function entry.
1120 (RLMI): New polymorphic function entry.
1121 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
1122 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
1123 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
1126 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1129 * dwarf2out.c (field_byte_offset): Restore the
1130 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
1131 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
1132 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
1135 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
1138 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
1140 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1143 * dwarf2out.c (add_data_member_location_attribute): For constant
1144 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
1145 instead of DW_AT_data_member_location, DW_AT_bit_offset and
1146 DW_AT_byte_size attributes.
1148 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
1150 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
1151 after forcing to constant memory when the code model is medium.
1153 2017-01-17 Julia Koval <julia.koval@intel.com>
1156 * config/i386/avx512fintrin.h
1157 (_mm512_i32gather_ps): Change __addr type to void const*.
1158 (_mm512_mask_i32gather_ps): Ditto.
1159 (_mm512_i32gather_pd): Ditto.
1160 (_mm512_mask_i32gather_pd): Ditto.
1161 (_mm512_i64gather_ps): Ditto.
1162 (_mm512_mask_i64gather_ps): Ditto.
1163 (_mm512_i64gather_pd): Ditto.
1164 (_mm512_mask_i64gather_pd): Ditto.
1165 (_mm512_i32gather_epi32): Ditto.
1166 (_mm512_mask_i32gather_epi32): Ditto.
1167 (_mm512_i32gather_epi64): Ditto.
1168 (_mm512_mask_i32gather_epi64): Ditto.
1169 (_mm512_i64gather_epi32): Ditto.
1170 (_mm512_mask_i64gather_epi32): Ditto.
1171 (_mm512_i64gather_epi64): Ditto.
1172 (_mm512_mask_i64gather_epi64): Ditto.
1173 (_mm512_i32scatter_ps): Change __addr type to void*.
1174 (_mm512_mask_i32scatter_ps): Ditto.
1175 (_mm512_i32scatter_pd): Ditto.
1176 (_mm512_mask_i32scatter_pd): Ditto.
1177 (_mm512_i64scatter_ps): Ditto.
1178 (_mm512_mask_i64scatter_ps): Ditto.
1179 (_mm512_i64scatter_pd): Ditto.
1180 (_mm512_mask_i64scatter_pd): Ditto.
1181 (_mm512_i32scatter_epi32): Ditto.
1182 (_mm512_mask_i32scatter_epi32): Ditto.
1183 (_mm512_i32scatter_epi64): Ditto.
1184 (_mm512_mask_i32scatter_epi64): Ditto.
1185 (_mm512_i64scatter_epi32): Ditto.
1186 (_mm512_mask_i64scatter_epi32): Ditto.
1187 (_mm512_i64scatter_epi64): Ditto.
1188 (_mm512_mask_i64scatter_epi64): Ditto.
1189 * config/i386/avx512pfintrin.h
1190 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
1191 (_mm512_mask_prefetch_i32gather_ps): Ditto.
1192 (_mm512_mask_prefetch_i64gather_pd): Ditto.
1193 (_mm512_mask_prefetch_i64gather_ps): Ditto.
1194 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
1195 (_mm512_prefetch_i32scatter_ps): Ditto.
1196 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
1197 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
1198 (_mm512_prefetch_i64scatter_pd): Ditto.
1199 (_mm512_prefetch_i64scatter_ps): Ditto.
1200 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
1201 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
1202 * config/i386/avx512vlintrin.h
1203 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
1204 (_mm_mmask_i32gather_ps): Ditto.
1205 (_mm256_mmask_i32gather_pd): Ditto.
1206 (_mm_mmask_i32gather_pd): Ditto.
1207 (_mm256_mmask_i64gather_ps): Ditto.
1208 (_mm_mmask_i64gather_ps): Ditto.
1209 (_mm256_mmask_i64gather_pd): Ditto.
1210 (_mm_mmask_i64gather_pd): Ditto.
1211 (_mm256_mmask_i32gather_epi32): Ditto.
1212 (_mm_mmask_i32gather_epi32): Ditto.
1213 (_mm256_mmask_i32gather_epi64): Ditto.
1214 (_mm_mmask_i32gather_epi64): Ditto.
1215 (_mm256_mmask_i64gather_epi32): Ditto.
1216 (_mm_mmask_i64gather_epi32): Ditto.
1217 (_mm256_mmask_i64gather_epi64): Ditto.
1218 (_mm_mmask_i64gather_epi64): Ditto.
1219 (_mm256_i32scatter_ps): Change __addr type to void*.
1220 (_mm256_mask_i32scatter_ps): Ditto.
1221 (_mm_i32scatter_ps): Ditto.
1222 (_mm_mask_i32scatter_ps): Ditto.
1223 (_mm256_i32scatter_pd): Ditto.
1224 (_mm256_mask_i32scatter_pd): Ditto.
1225 (_mm_i32scatter_pd): Ditto.
1226 (_mm_mask_i32scatter_pd): Ditto.
1227 (_mm256_i64scatter_ps): Ditto.
1228 (_mm256_mask_i64scatter_ps): Ditto.
1229 (_mm_i64scatter_ps): Ditto.
1230 (_mm_mask_i64scatter_ps): Ditto.
1231 (_mm256_i64scatter_pd): Ditto.
1232 (_mm256_mask_i64scatter_pd): Ditto.
1233 (_mm_i64scatter_pd): Ditto.
1234 (_mm_mask_i64scatter_pd): Ditto.
1235 (_mm256_i32scatter_epi32): Ditto.
1236 (_mm256_mask_i32scatter_epi32): Ditto.
1237 (_mm_i32scatter_epi32): Ditto.
1238 (_mm_mask_i32scatter_epi32): Ditto.
1239 (_mm256_i32scatter_epi64): Ditto.
1240 (_mm256_mask_i32scatter_epi64): Ditto.
1241 (_mm_i32scatter_epi64): Ditto.
1242 (_mm_mask_i32scatter_epi64): Ditto.
1243 (_mm256_i64scatter_epi32): Ditto.
1244 (_mm256_mask_i64scatter_epi32): Ditto.
1245 (_mm_i64scatter_epi32): Ditto.
1246 (_mm_mask_i64scatter_epi32): Ditto.
1247 (_mm256_i64scatter_epi64): Ditto.
1248 (_mm256_mask_i64scatter_epi64): Ditto.
1249 (_mm_i64scatter_epi64): Ditto.
1250 (_mm_mask_i64scatter_epi64): Ditto.
1251 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
1252 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
1253 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
1254 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
1255 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
1256 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
1257 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
1258 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
1259 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
1260 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
1261 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
1262 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
1263 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
1264 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
1265 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
1266 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
1267 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
1268 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
1269 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
1270 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
1271 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
1272 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
1273 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
1274 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
1275 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
1276 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
1277 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
1278 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
1279 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
1280 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
1281 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
1282 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
1283 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
1284 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
1285 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
1286 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
1287 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
1288 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
1289 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
1290 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
1291 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
1292 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
1293 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
1294 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
1295 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
1296 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
1297 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
1298 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
1299 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
1300 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
1301 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
1302 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
1303 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
1304 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
1305 definitions accordingly.
1307 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
1308 Kuan-Lin Chen <kuanlinchentw@gmail.com>
1311 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
1314 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
1317 * ira-conflicts.c (ira_build_conflicts): Update total conflict
1318 hard regs for inner regno.
1320 2017-01-17 Martin Liska <mliska@suse.cz>
1323 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
1324 assumption and add comment.
1326 2017-01-17 Nathan Sidwell <nathan@acm.org>
1328 * ipa-visibility.c (localize_node): New function, broken out of ...
1329 (function_and_variable_visibility): ... here. Call it.
1331 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
1334 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
1335 correctly set frequency of oudgoing edge.
1336 (duplicate_thread_path): Fix profile updating.
1338 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1341 * configure.ac: Add GCC_BASE_VER.
1342 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
1343 version from BASE-VER file.
1344 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
1345 (gcc.o): Depend on $(BASEVER).
1346 * common.opt (dumpfullversion): New option.
1347 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
1348 * doc/invoke.texi: Document -dumpfullversion.
1349 * doc/install.texi: Document --with-gcc-major-version-only.
1350 * configure: Regenerated.
1352 2017-01-17 Richard Biener <rguenther@suse.de>
1354 PR tree-optimization/71433
1355 * tree-vrp.c (register_new_assert_for): Merge same asserts
1356 on all incoming edges.
1357 (process_assert_insertions_for): Handle insertions at the
1360 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
1362 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
1363 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
1365 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
1368 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
1371 2017-01-17 Alan Modra <amodra@gmail.com>
1374 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
1375 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
1376 symbolic stack limit when pic.
1378 2017-01-16 Martin Sebor <msebor@redhat.com>
1380 PR tree-optimization/78608
1381 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
1383 2017-01-16 Jeff Law <law@redhat.com>
1386 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
1387 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
1388 for several include directories that may be relative to sysroot.
1389 * config/i386/x-mingw32 (gplus_includedir): Define.
1390 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
1391 (native_system_includedir): Likewise.
1392 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
1393 override if TARGET_SYSTEM_ROOT is defined.
1394 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
1396 PR tree-optimization/79090
1397 PR tree-optimization/33562
1398 PR tree-optimization/61912
1399 PR tree-optimization/77485
1400 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
1401 and computed trims into the dump file.
1403 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
1405 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
1407 2017-01-16 Jakub Jelinek <jakub@redhat.com>
1410 * gimplify.c (gimplify_init_constructor): If want_value and
1411 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
1415 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
1416 sequence. Formatting fixes.
1417 (doloop_optimize): Formatting fixes.
1420 * gcc.c (debug_level_greater_than_spec_func): New function.
1421 (static_spec_functions): Add debug-level-gt spec function.
1422 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
1424 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
1425 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
1426 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
1427 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
1428 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
1429 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
1431 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
1433 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
1434 QImode fixups to general and mask registers only.
1436 2017-01-16 Carl Love <cel@us.ibm.com>
1438 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
1439 for built-in functions
1440 vector signed char vec_nabs (vector signed char)
1441 vector signed short vec_nabs (vector signed short)
1442 vector signed int vec_nabs (vector signed int)
1443 vector signed long long vec_nabs (vector signed long long)
1444 vector float vec_nabs (vector float)
1445 vector double vec_nabs (vector double)
1446 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
1448 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
1449 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
1450 * doc/extend.texi: Update the documentation file for the new built-in
1453 2017-01-16 Martin Sebor <msebor@redhat.com>
1455 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
1458 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1460 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
1461 UNSPEC_VSX__XXSPLTD to require special splat handling.
1463 2017-01-16 David Malcolm <dmalcolm@redhat.com>
1466 * system.h: Poison strndup.
1468 2017-01-16 Alan Modra <amodra@gmail.com>
1471 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
1474 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
1476 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
1478 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
1480 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
1481 call recog here. Assert that INSN_CODE (insn) is non-negative.
1483 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
1486 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
1488 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
1489 in the currently scheduled RTL fragment.
1491 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
1493 PR rtl-optimization/78751
1494 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
1497 2017-01-14 Jeff Law <law@redhat.com>
1499 PR tree-optimization/79090
1500 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
1501 variable length stores.
1502 (compute_trims): Delete dead assignment to *trim_tail.
1503 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
1506 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
1508 PR rtl-optimization/78626
1509 PR rtl-optimization/78727
1510 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
1511 of a block, and split such blocks after everything else is finished.
1513 2017-01-14 Alan Modra <amodra@gmail.com>
1516 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
1517 target legitimate_combined_insn.
1518 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
1519 (rs6000_legitimate_combined_insn): New function.
1520 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
1522 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
1523 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
1524 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
1526 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
1528 * doc/frontends.texi (G++ and GCC): Remove references to Java.
1530 2017-01-13 Jeff Law <law@redhat.com>
1532 PR tree-optimization/33562
1533 PR tree-optimization/61912
1534 PR tree-optimization/77485
1535 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
1537 (delete_dead_assignment): Likewise.
1538 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
1539 statement to delete_dead_call and delete_dead_assignment.
1541 2017-01-13 David Malcolm <dmalcolm@redhat.com>
1544 * substring-locations.c (format_warning_va): Strengthen case 1 so
1545 that both endpoints of the substring must be within the format
1546 range for just the substring to be printed.
1548 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
1550 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
1551 * config/i386/i386.c (ix86_target_string): Add missing options
1552 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
1553 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
1554 flags_other and ix86_target_other to flags2_other. Display unknown
1556 (ix86_valid_target_attribute_inner_p): Add missing options and
1557 reorder options by implied ISAs, as in ix86_target_string.
1559 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
1561 * hash-table.h (hash_table::too_empty_p): New function.
1562 (hash_table::expand): Use it.
1563 (hash_table::traverse): Likewise.
1564 (hash_table::empty_slot): Use sizeof (value_type) instead of
1565 sizeof (PTR) to convert bytes to elements. Shrink the table
1566 if the current size is excessive for the current number of
1569 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
1571 * ira-costs.c (record_reg_classes): Break from the inner loop
1572 early once alt_fail is known to be true. Update outer loop
1573 handling accordingly.
1575 2017-01-13 Jeff Law <law@redhat.com>
1577 * tree-ssa-dse.c (decrement_count): New function.
1578 (increment_start_addr, maybe_trim_memstar_call): Likewise.
1579 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
1580 when we know the partially dead statement is a mem* function.
1582 PR tree-optimization/61912
1583 PR tree-optimization/77485
1584 * tree-ssa-dse.c: Include expr.h.
1585 (maybe_trim_constructor_store): New function.
1586 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
1588 PR tree-optimization/33562
1589 PR tree-optimization/61912
1590 PR tree-optimization/77485
1591 * doc/invoke.texi: Document new dse-max-object-size param.
1592 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
1593 * tree-ssa-dse.c: Include params.h.
1594 (dse_store_status): New enum.
1595 (initialize_ao_ref_for_dse): New, partially extracted from
1597 (valid_ao_ref_for_dse, normalize_ref): New.
1598 (setup_live_bytes_from_ref, compute_trims): Likewise.
1599 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
1600 (maybe_trim_partially_dead_store): Likewise.
1601 (maybe_trim_complex_store): Likewise.
1602 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
1603 Track what bytes live from the original store. Return tri-state
1604 for dead, partially dead or live.
1605 (dse_dom_walker): Add constructor, destructor and new private members.
1606 (delete_dead_call, delete_dead_assignment): New extracted from
1608 (dse_optimize_stmt): Make a member of dse_dom_walker.
1609 Use initialize_ao_ref_for_dse.
1611 PR tree-optimization/33562
1612 PR tree-optimization/61912
1613 PR tree-optimization/77485
1614 * sbitmap.h (bitmap_count_bits): Prototype.
1615 (bitmap_clear_range, bitmap_set_range): Likewise.
1616 * sbitmap.c (bitmap_clear_range): New function.
1617 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
1619 2017-01-13 Martin Liska <mliska@suse.cz>
1622 * function.c (set_cfun): Add new argument force.
1623 * function.h (set_cfun): Likewise.
1624 * ipa-inline-transform.c (inline_call): Use the function when
1625 strict alising from is dropped for function we inline to.
1627 2017-01-13 Richard Biener <rguenther@suse.de>
1629 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
1630 for dumping GIMPLE INTEGER_CSTs.
1632 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1634 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
1635 to 201112L since C++17.
1637 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
1640 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
1641 if -fsanitize=kernel-address is present.
1643 2017-01-13 Richard Biener <rguenther@suse.de>
1645 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
1646 as _Literal ( type ) number in case usual suffixes do not
1647 preserve all information.
1649 2017-01-13 Richard Biener <rguenther@suse.de>
1651 PR tree-optimization/77283
1652 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
1653 and ssa-iterators.h.
1654 (is_feasible_trace): Implement a cost model based on joiner
1657 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
1660 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
1661 char or short to __float128/_Float128 directly.
1663 2017-01-12 Martin Sebor <msebor@redhat.com>
1665 to -Wformat-overflow.
1666 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
1667 (min_bytes_remaining): Same.
1668 (get_string_length): Same.
1669 (format_string): Same.
1670 (format_directive): Same.
1672 (pass_sprintf_length::handle_gimple_call): Same.
1674 2017-01-12 Jakub Jelinek <jakub@redhat.com>
1676 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
1677 info.nowrite calls with no lhs that can't throw. Return bool
1678 whether gsi_remove has been called or not.
1679 (pass_sprintf_length::handle_gimple_call): Return bool whether
1680 try_substitute_return_value called gsi_remove. Formatting fix.
1681 (pass_sprintf_length::execute): Don't use gsi_remove if
1682 handle_gimple_call returned true.
1685 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
1686 be removed due to side-effects, don't remove following barrier nor
1687 turn the successor edge into fallthru edge.
1689 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1692 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
1693 element-reversing loads and stores as not swappable.
1695 2017-01-12 Nathan Sidwell <nathan@acm.org>
1696 Nicolai Stange <nicstange@gmail.com>
1698 * combine.c (try_combine): Don't ignore result of overlap checking
1699 loop. Combine overlap & asm check into single loop.
1701 2017-01-12 Richard Biener <rguenther@suse.de>
1703 * tree-pretty-print.c (dump_generic_node): Provide -gimple
1704 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
1706 2017-01-12 Richard Biener <rguenther@suse.de>
1708 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
1709 and TS_TARGET_OPTION directly derive from TS_BASE.
1710 * tree-core.h (tree_optimization_option): Derive from tree_base.
1711 (tree_target_option): Likewise.
1713 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
1715 * config/i386/i386.c (memory_address_length): Increase len
1716 only when rip_relative_addr_p returns false.
1718 2017-01-11 Julia Koval <julia.koval@intel.com>
1720 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
1721 (OPTION_MASK_ISA_SGX_SET): New.
1722 (ix86_handle_option): Handle OPT_msgx.
1723 * config.gcc: Added sgxintrin.h.
1724 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
1725 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
1726 * config/i386/i386.c (ix86_target_string): Add -msgx.
1728 (ix86_option_override_internal): Handle new options.
1729 (ix86_valid_target_attribute_inner_p): Add sgx.
1730 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
1731 * config/i386/i386.opt: Add msgx.
1732 * config/i386/sgxintrin.h: New file.
1733 * config/i386/x86intrin.h: Add sgxintrin.h.
1735 2017-01-11 Jakub Jelinek <jakub@redhat.com>
1738 * fold-const.c (maybe_nonzero_address): Return 1 for function
1740 (tree_single_nonzero_warnv_p): Don't handle function local objects
1744 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
1747 2017-01-11 David Malcolm <dmalcolm@redhat.com>
1750 * opts.c: Include "spellcheck.h"
1751 (struct string_fragment): New struct.
1752 (struct edit_distance_traits<const string_fragment &>): New
1754 (get_closest_sanitizer_option): New function.
1755 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
1757 2017-01-11 Jakub Jelinek <jakub@redhat.com>
1759 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
1761 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
1762 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
1763 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
1764 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
1765 for initial die_offset if dwarf_split_debug_info.
1766 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
1767 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
1769 (output_skeleton_debug_sections): Formatting fix. Use
1770 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
1771 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
1773 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
1775 * config/arm/cortex-a53.md: Add bypasses for
1777 (cortex_a53_r2f): Only use for transfers.
1778 (cortex_a53_f2r): Likewise.
1779 (cortex_a53_r2f_cvt): Add reservation for conversions.
1780 (cortex_a53_f2r_cvt): Likewise.
1782 2017-01-11 Tamar Christina <tamar.christina@arm.com>
1784 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
1785 to all inlined functions, change static to extern.
1787 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
1790 * config/arm/arm.c (legitimize_pic_address): Handle reference to
1792 (arm_assemble_integer): Likewise.
1794 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
1796 * config.gcc: Use new awk script to check CPU, FPU and architecture
1797 parameters for --with-... options.
1798 * config/arm/parsecpu.awk: New file
1799 * config/arm/arm-cpus.in: New file.
1800 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
1802 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
1804 * config/arm/t-arm: Update dependency rules.
1805 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
1806 of processing .def files.
1807 * config/arm/genopt.sh: Deleted.
1808 * config/arm/gentune.sh: Deleted.
1809 * config/arm/arm-cores.def: Deleted.
1810 * config/arm/arm-arches.def: Deleted.
1811 * config/arm/arm-fpus.def: Deleted.
1812 * config/arm/arm-tune.md: Regenerated.
1813 * config/arm/arm-tables.opt: Regenerated.
1814 * config/arm/arm-cpu.h: New generated file.
1815 * config/arm/arm-cpu-data.h: New generated file.
1816 * config/arm/arm-cpu-cdata.h: New generated file.
1818 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
1821 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
1823 (input_varpool_node): Unpack dynamically_initialized bit.
1825 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
1827 PR rtl-optimization/79032
1828 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
1829 the alignment of the adjusted memory reference against that of MODE,
1830 instead of the alignment of the original memory reference.
1832 2017-01-11 Martin Jambor <mjambor@suse.cz>
1834 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
1836 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
1837 decorated functions.
1839 2017-01-11 Richard Biener <rguenther@suse.de>
1841 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
1842 set range/nonnull info for PHI results. Do not set it on
1843 stmts marked for removal.
1845 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
1847 * expr.c (store_field): In the bitfield case, fetch the return value
1848 from the registers before applying a single big-endian adjustment.
1849 Always do a final load for a BLKmode value not larger than a word.
1851 2017-01-10 David Malcolm <dmalcolm@redhat.com>
1854 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
1855 that we correctly handle column numbers greater than
1856 LINE_MAP_MAX_COLUMN_NUMBER.
1858 2017-01-10 Martin Sebor <msebor@redhat.com>
1861 * gimple-ssa-sprintf.c (get_destination_size): Call
1862 {init,fini}object_sizes.
1863 * tree-object-size.c (addr_object_size): Adjust.
1864 (pass_through_call): Adjust.
1865 (pass_object_sizes::execute): Adjust.
1866 * tree-object-size.h (fini_object_sizes): Declare.
1868 2017-01-10 Martin Sebor <msebor@redhat.com>
1870 PR tree-optimization/78775
1871 * builtins.c (get_size_range): Move...
1872 * calls.c: ...to here.
1873 (alloc_max_size): Accept zero argument.
1874 (operand_signed_p): Remove.
1875 (maybe_warn_alloc_args_overflow): Call get_size_range.
1876 * calls.h (get_size_range): Declare.
1878 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
1880 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
1881 from TI's devices.csv file as of September 2016.
1882 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
1884 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
1886 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
1887 * doc/invoke.texi: Likewise.
1888 * doc/md.texi: Likewise.
1889 * doc/objc.texi: Likewise.
1891 2017-01-10 Joshua Conner <joshconner@google.com>
1893 * config/arm/fuchsia-elf.h: New file.
1894 * config/fuchsia.h: New file.
1895 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
1896 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
1898 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
1900 2016-01-10 Richard Biener <rguenther@suse.de>
1902 PR tree-optimization/79034
1903 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
1904 Propagate out degenerate PHIs in the joiner.
1906 2017-01-10 Martin Liska <mliska@suse.cz>
1908 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
1909 (sort_congruence_classes_by_decl_uid): Likewise.
1910 (sort_congruence_class_groups_by_decl_uid): Likewise.
1911 (sem_item_optimizer::merge_classes): Sort class, groups in these
1912 classes and members in the groups by DECL_UID of declarations.
1913 This would make merge operations stable.
1915 2017-01-10 Martin Liska <mliska@suse.cz>
1917 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
1918 usage of m_classes_vec.
1919 (sem_item_optimizer::~sem_item_optimizer): Likewise.
1920 (sem_item_optimizer::get_group_by_hash): Likewise.
1921 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
1922 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
1923 (sem_item_optimizer::verify_classes): Likewise.
1924 (sem_item_optimizer::process_cong_reduction): Likewise.
1925 (sem_item_optimizer::dump_cong_classes): Likewise.
1926 (sem_item_optimizer::merge_classes): Likewise.
1927 * ipa-icf.h (congruence_class_hash): Rename from
1928 congruence_class_group_hash. Remove declaration of m_classes_vec.
1930 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
1932 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
1933 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
1934 * config.gcc: Add avx512vpopcntdqintrin.h.
1935 * config/i386/avx512vpopcntdqintrin.h: New.
1936 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
1937 * config/i386/i386-builtin-types.def: Add new types.
1938 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
1939 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
1940 __builtin_ia32_vpopcountq_v8di_mask): New.
1941 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1942 __AVX512VPOPCNTDQ__.
1943 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
1944 (PTA_AVX512VPOPCNTDQ): Define.
1945 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
1946 TARGET_AVX512VPOPCNTDQ_P): Define.
1947 * config/i386/i386.opt: Add mavx512vpopcntdq.
1948 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
1949 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
1951 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
1954 * predict.def (PRED_CALL): Set to 67.
1956 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
1958 * expr.c (store_field): In the bitfield case, if the value comes from
1959 a function call and is of an aggregate type returned in registers, do
1960 not modify the field mode; extract the value in all cases if the mode
1961 is BLKmode and the size is not larger than a word.
1963 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
1966 * config/i386/cpuid.h: Fix undefined behavior.
1968 2017-01-04 Jeff Law <law@redhat.com>
1970 PR tree-optimization/79007
1971 PR tree-optimization/67955
1972 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
1973 conservative for pt.null when flag_non_call_exceptions is on.
1975 2017-01-09 Jakub Jelinek <jakub@redhat.com>
1977 PR translation/79019
1978 PR translation/79020
1979 * params.def (PARAM_INLINE_MIN_SPEEDUP,
1980 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
1981 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
1983 * config/avr/avr.opt (maccumulate-args): Likewise.
1984 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
1985 * common.opt (freport-bug): Likewise.
1986 * cif-code.def (CIF_FINAL_ERROR): Likewise.
1987 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
1988 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
1989 translatable string.
1990 * config/i386/i386.c (function_value_32): Likewise.
1991 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
1992 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
1994 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
1995 * common/config/msp430/msp430-common.c (msp430_handle_option):
1997 * symtab.c (symtab_node::verify_base): Likewise.
1998 * opts.c (set_debug_level): Likewise.
1999 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
2000 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2001 missing whitespace to translatable strings.
2002 * config/avr/avr.md (bswapsi2): Fix typo in comment.
2003 * config/sh/superh.h: Likewise.
2004 * config/i386/xopintrin.h: Likewise.
2005 * config/i386/znver1.md: Likewise.
2006 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
2007 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
2008 * double-int.h (struct double_int): Likewise.
2009 * double-int.c (div_and_round_double): Likewise.
2010 * wide-int.cc: Likewise.
2011 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
2012 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2013 * cfgcleanup.c (crossjumps_occured): Renamed to ...
2014 (crossjumps_occurred): ... this.
2015 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
2018 PR tree-optimization/78899
2019 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
2020 returning bool return struct loop *, NULL for failure and the new
2022 (versionable_outer_loop_p): Don't version outer loop if it has
2023 dont_vectorized bit set.
2024 (tree_if_conversion): When versioning outer loop, ensure
2025 tree_if_conversion is performed also on the inner loop of the
2026 non-vectorizable outer loop copy.
2027 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
2028 LOOP_VECTORIZED in inner loop of the scalar outer loop and
2029 prevent vectorization of it.
2030 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
2031 the outer loop vectorization of the non-scalar version is attempted
2032 before vectorization of the inner loop in scalar version. If
2033 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
2034 vectorization of its inner loop.
2035 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
2036 has 2 inner loops, rename also on edges from bb whose single pred
2037 is outer_loop->header. Fix typo in function comment.
2039 2017-01-09 Martin Sebor <msebor@redhat.com>
2042 * asan.c (asan_emit_stack_protection): Increase local buffer size
2043 to avoid snprintf truncation warning.
2045 2017-01-09 Andrew Pinski <apinski@cavium.com>
2047 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
2048 to reference thunderx2t99 for the tuning structure
2049 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
2051 (thunderx2t99_extra_costs): This.
2052 * config/aarch64/aarch64-tune.md: Regenerate.
2053 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
2054 (vulcan_addrcost_table): This.
2055 (vulcan_regmove_cost): Rename to ...
2056 (thunderx2t99_regmove_cost): This.
2057 (vulcan_vector_cost): Rename to ...
2058 (thunderx2t99_vector_cost): this.
2059 (vulcan_branch_cost): Rename to ...
2060 (thunderx2t99_branch_cost): This.
2061 (vulcan_tunings): Rename to ...
2062 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
2063 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
2065 2017-01-09 Martin Jambor <mjambor@suse.cz>
2069 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
2070 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
2071 (propagate_vr_accross_jump_function): Use the above function for all
2072 value range computations for pass-through jump functions and type
2073 converasion from explicit value range values.
2074 (ipcp_propagate_stage): Do not attempt to deduce types of formal
2075 parameters from TYPE_ARG_TYPES.
2076 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
2077 (ipa_write_node_info): Stream type of the actual argument.
2078 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
2080 2017-01-09 Martin Liska <mliska@suse.cz>
2083 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
2084 (lookup_compiler): Do not show error message with have_E.
2086 2017-01-09 Jakub Jelinek <jakub@redhat.com>
2088 PR tree-optimization/78938
2089 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
2090 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
2091 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
2092 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
2095 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2097 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
2100 2017-01-09 Richard Biener <rguenther@suse.de>
2102 PR tree-optimization/78997
2103 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
2104 name condition properly.
2106 2017-01-09 Richard Biener <rguenther@suse.de>
2109 * dwarf2out.c (is_cxx): New overload with context.
2110 (is_naming_typedef_decl): Use it.
2112 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2114 * invoke.texi (Option Summary): Correct spacing in option lists
2115 and add line breaks to fix over-long lines.
2117 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2121 * extend.texi (Common Variable Attributes): Add xref to GCC
2122 Internals manual to explain mode attribute keywords.
2124 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2127 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
2128 and Preprocessor Options.
2129 (Options for Linking): Document -pthread here....
2130 (RS/6000 and PowerPC Options): ...not here.
2131 (Solaris 2 Options): ...or here.
2132 * doc/cppopts.texi: Document -pthread.
2134 2017-01-08 Martin Sebor <msebor@redhat.com>
2137 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
2138 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
2139 New member functions.
2140 (format_directive): Used them.
2142 (pass_sprintf_length::handle_gimple_call): Same.
2143 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
2144 to avoid truncation for any argument.
2145 (extract_affine_mul): Same.
2146 * tree.c (get_file_function_name): Same.
2148 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
2151 * predict.def (PRED_INDIR_CALL): Set to 86.
2153 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
2155 PR preprocessor/54124
2156 * doc/cppopts.texi: Reformat -d subtable to list the full name
2157 of the options. Add cross-reference to the docs for the general
2158 compiler -d options.
2159 * doc/invoke.texi (Developer Options): Add cross-reference to the
2160 preprocessor-specific -d option documentation.
2162 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
2164 PR preprocessor/13498
2165 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
2166 redudant material, and reflect new command-line options.
2167 (System Headers): Likewise.
2169 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
2171 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
2172 -isystem, and -idirafter. Copy-edit.
2173 * doc/cppopts.texi: Copy-edit. Remove contradiction about
2174 default for -ftrack-macro-expansion. Delete obsolete and
2175 badly-formatted implementation details about -fdebug-cpp output.
2176 * doc/cppwarnopts.texi: Copy-edit.
2178 2017-01-07 David Malcolm <dmalcolm@redhat.com>
2181 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
2182 that the transition from a max line width >= 1<<10 to narrower
2183 lines works correctly.
2185 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
2187 * doc/options.texi (PerFunction): New.
2188 * opt-functions.awk (switch_flags): Map both Optimization and
2189 PerFunction to CL_OPTIMIZATION.
2190 * opth-gen.awk: Test for PerFunction flag along with
2192 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
2193 it only when the latter is present. Skip those that don't in
2194 the hash function generator.
2195 * common.opt (fvar-tracking): Mark as PerFunction instead of
2197 (fvar-tracking-assignments): Likewise.
2198 (fvar-tracking-assignments-toggle): Likewise.
2199 (fvar-tracking-uninit): Likewise.
2201 2017-01-07 Jakub Jelinek <jakub@redhat.com>
2203 PR translation/79018
2204 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
2207 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
2210 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
2211 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
2212 TARGET_LONG_JUMP_TABLE_OFFSETS.
2213 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
2214 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
2215 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
2216 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
2217 * config/m68k/m68k.md (tablejump expander): Likewise.
2218 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
2219 TARGET_LONG_JUMP_TABLE_OFFSETS.
2220 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
2221 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
2223 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
2224 David Holsgrove <david.holsgrove@xilinx.com>
2226 * common/config/microblaze/microblaze-common.c
2227 (TARGET_EXCEPT_UNWIND_INFO): Remove.
2228 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
2230 * config/microblaze/microblaze.c (microblaze_must_save_register)
2231 (microblaze_expand_epilogue, microblaze_return_addr): Handle
2233 (microblaze_eh_return): New function.
2234 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
2235 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
2236 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
2237 * config/microblaze/microblaze.md (eh_return): New pattern.
2239 2017-01-06 Jakub Jelinek <jakub@redhat.com>
2241 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
2242 GCC_DIAGNOSTIC_STRINGIFY): Define.
2244 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
2246 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2248 * config/arm/arm.md (<mcrr>): New.
2250 * config/arm/arm.c (arm_arch5te): New.
2251 (arm_option_override): Set arm_arch5te.
2252 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
2254 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
2255 (arm_mcrr_qualifiers): ... this. New.
2256 (MRRC_QUALIFIERS): Define to...
2257 (arm_mrrc_qualifiers): ... this. New.
2258 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
2260 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
2261 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
2262 (MRRCI, mrrc, MRRC): New.
2263 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
2264 VUNSPEC_MRRC2): New.
2266 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2268 * config/arm/arm.md (<mcr>): New.
2270 * config/arm/arm.c (arm_coproc_builtin_available): Add
2271 support for mcr, mrc, mcr2 and mrc2.
2272 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
2273 (arm_mcr_qualifiers): ... this. New.
2274 (MRC_QUALIFIERS): Define to ...
2275 (arm_mrc_qualifiers): ... this. New.
2276 (MCR_QUALIFIERS): Define to ...
2277 (arm_mcr_qualifiers): ... this. New.
2278 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
2280 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
2281 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
2282 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
2285 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2287 * config/arm/arm.md (*ldc): New.
2291 * config/arm/arm.c (arm_coproc_builtin_available): Add
2292 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
2293 (arm_coproc_ldc_stc_legitimate_address): New.
2294 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
2295 'qualifier_const_pointer'.
2296 (LDC_QUALIFIERS): Define to...
2297 (arm_ldc_qualifiers): ... this. New.
2298 (STC_QUALIFIERS): Define to...
2299 (arm_stc_qualifiers): ... this. New.
2300 * config/arm/arm-protos.h
2301 (arm_coproc_ldc_stc_legitimate_address): New.
2302 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
2303 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
2304 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
2305 stc2, stcl, stc2l): New.
2306 * config/arm/constraints.md (Uz): New.
2307 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
2308 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
2309 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
2310 VUNSPEC_STC2L): New.
2312 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2314 * config/arm/arm.md (<cdp>): New.
2315 * config/arm/arm.c (neon_const_bounds): Rename this ...
2316 (arm_const_bounds): ... this.
2317 (arm_coproc_builtin_available): New.
2318 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
2319 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
2320 (CDP_QUALIFIERS): Define to...
2321 (arm_cdp_qualifiers): ... this. New.
2323 (arm_expand_builtin_args): Add case for 6 arguments.
2324 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
2325 (arm_const_bounds): ... this.
2326 (arm_coproc_builtin_available): New.
2327 * config/arm/arm_acle.h (__arm_cdp): New.
2329 * config/arm/arm_acle_builtins.def (cdp): New.
2331 * config/arm/iterators.md (CDPI,CDP,cdp): New.
2332 * config/arm/neon.md: Rename all 'neon_const_bounds' to
2334 * config/arm/types.md (coproc): New.
2335 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
2336 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
2337 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
2338 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
2340 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2342 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
2343 (UBINOP_QUALIFIERS): New.
2345 (acle_builtin_data): New. Change comment.
2346 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
2347 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
2348 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
2349 arm_acle_builtins.def.
2350 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
2351 (arm_init_acle_builtins): New.
2352 (CRC32_BUILTIN): Remove.
2353 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
2354 crc32cb, crc32ch and crc32cw.
2355 (arm_init_crc32_builtins): Remove.
2356 (arm_init_builtins): Use arm_init_acle_builtins rather
2357 than arm_init_crc32_builtins.
2358 (arm_expand_acle_builtin): New.
2359 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
2360 * config/arm/arm_acle_builtins.def: New.
2362 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
2364 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
2365 (arm_builtin_datum): ... this.
2366 (arm_init_neon_builtin): Rename to ...
2367 (arm_init_builtin): ... this. Add a new parameters PREFIX
2368 and USE_SIG_IN_NAME.
2369 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
2370 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
2371 'arm_builtin_datum'.
2372 (arm_init_vfp_builtins): Likewise.
2373 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
2374 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
2375 (arm_expand_neon_args): Rename to ...
2376 (arm_expand_builtin_args): ... this. Rename builtin_arg
2377 enum values and differentiate between ARG_BUILTIN_MEMORY
2378 and ARG_BUILTIN_NEON_MEMORY.
2379 (arm_expand_neon_builtin_1): Rename to ...
2380 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
2381 values, arm_expand_builtin_args and add bool parameter NEON.
2382 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
2383 (arm_expand_vfp_builtin): Likewise.
2384 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
2386 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
2389 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
2390 * predict.c (tree_estimate_probability_bb): Reverse direction of
2391 polymorphic call predictor.
2393 2017-01-06 David Malcolm <dmalcolm@redhat.com>
2395 * passes.c (execute_one_pass): Split out pass-skipping logic into...
2396 (determine_pass_name_match): ...this new function and...
2397 (should_skip_pass_p): ...this new function.
2399 2017-01-06 Nathan Sidwell <nathan@acm.org>
2401 * ipa-visibility.c (function_and_variable_visibility): Reformat
2402 comments and long lines. Remove extrneous if.
2403 * symtab.c (symtab_node::make_decl_local): Fix code format.
2404 (symtab_node::set_section_for_node): Fix comment typo.
2406 2017-01-06 Martin Liska <mliska@suse.cz>
2409 * lra-constraints.c: Rename invariant to lra_invariant.
2410 * predict.c (set_even_probabilities): Initialize e to NULL.
2412 2017-01-05 Martin Sebor <msebor@redhat.com>
2414 PR tree-optimization/78910
2415 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
2416 (format_integer): Correct off-by-one error in the handling
2417 of precision with negative numbers in signed conversions..
2419 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
2421 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
2423 2017-01-05 Jakub Jelinek <jakub@redhat.com>
2425 PR tree-optimization/71016
2426 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
2427 factor_out_conditional_conversion. Formatting fix.
2428 (factor_out_conditional_conversion): Add cond_stmt argument.
2429 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
2430 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
2433 2017-01-05 David Malcolm <dmalcolm@redhat.com>
2435 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
2436 read-rtl-function.o, and selftest-rtl.o.
2437 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
2438 (selftest::aarch64_test_loading_full_dump): New function.
2439 (selftest::aarch64_run_selftests): New function.
2440 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
2441 selftest::aarch64_run_selftests.
2442 * config/i386/i386.c
2443 (selftest::ix86_test_loading_dump_fragment_1): New function.
2444 (selftest::ix86_test_loading_call_insn): New function.
2445 (selftest::ix86_test_loading_full_dump): New function.
2446 (selftest::ix86_test_loading_unspec): New function.
2447 (selftest::ix86_run_selftests): Call the new functions.
2448 * emit-rtl.c (maybe_set_max_label_num): New function.
2449 * emit-rtl.h (maybe_set_max_label_num): New decl.
2450 * function.c (instantiate_decls): Guard call to
2451 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
2452 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
2454 * gensupport.c (gen_reader::gen_reader): Pass "false"
2455 for new "compact" param of rtx_reader.
2456 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
2457 rather than an empty string for NULL strings.
2458 * read-md.c: Potentially include config.h rather than bconfig.h.
2459 Wrap include of errors.h with #ifdef GENERATOR_FILE.
2460 (have_error): New global, copied from errors.c.
2461 (md_reader::read_name): Rename to...
2462 (md_reader::read_name_1): ...this, adding "out_loc" param,
2463 and converting "missing name or number" to returning false, rather
2465 (md_reader::read_name): Reimplement in terms of read_name_1.
2466 (md_reader::read_name_or_nil): New function.
2467 (md_reader::read_string): Handle "(nil)" by returning NULL.
2468 (md_reader::md_reader): Add new param "compact".
2469 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
2470 (md_reader::read_file): New method.
2471 * read-md.h (md_reader::md_reader): Add new param "compact".
2472 (md_reader::read_file): New method.
2473 (md_reader::is_compact): New accessor.
2474 (md_reader::read_name): Convert return type from void to file_location.
2475 (md_reader::read_name_or_nil): New decl.
2476 (md_reader::read_name_1): New decl.
2477 (md_reader::m_compact): New field.
2478 (noop_reader::noop_reader): Pass "false" for new "compact" param
2480 (rtx_reader::rtx_reader): Add new "compact" param.
2481 (rtx_reader::read_rtx_operand): Make virtual and convert return
2482 type from void to rtx.
2483 (rtx_reader::read_until): New decl.
2484 (rtx_reader::handle_any_trailing_information): New virtual function.
2485 (rtx_reader::postprocess): New virtual function.
2486 (rtx_reader::finalize_string): New virtual function.
2487 (rtx_reader::m_in_call_function_usage): New field.
2488 (rtx_reader::m_reuse_rtx_by_id): New field.
2489 * read-rtl-function.c: New file.
2490 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
2491 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
2492 (selftest::verify_three_block_rtl_cfg): New decl.
2493 * read-rtl-function.h: New file.
2494 * read-rtl.c: Potentially include config.h rather than bconfig.h.
2495 For host, include function.h, memmodel.h, and emit-rtl.h.
2496 (one_time_initialization): New function.
2497 (struct compact_insn_name): New struct.
2498 (compact_insn_names): New array.
2499 (find_code): Handle insn codes in compact dumps.
2500 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
2501 (bind_subst_iter_and_attr): Likewise.
2502 (add_condition_to_string): Likewise.
2503 (add_condition_to_rtx): Likewise.
2504 (apply_attribute_uses): Likewise.
2505 (add_current_iterators): Likewise.
2506 (apply_iterators): Likewise.
2507 (initialize_iterators): Guard usage of apply_subst_iterator with
2508 #ifdef GENERATOR_FILE.
2509 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
2510 (md_reader::read_mapping): Likewise.
2511 (add_define_attr_for_define_subst): Likewise.
2512 (add_define_subst_attr): Likewise.
2513 (read_subst_mapping): Likewise.
2514 (check_code_iterator): Likewise.
2515 (rtx_reader::read_rtx): Likewise. Move one-time initialization
2517 (one_time_initialization): New function.
2518 (rtx_reader::read_until): New method.
2519 (read_flags): New function.
2520 (parse_reg_note_name): New function.
2521 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
2522 Handle reuse_rtx ids.
2523 Wrap iterator lookup within #ifdef GENERATOR_FILE.
2524 Add parsing support for RTL dumps, mirroring the special-cases in
2525 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
2526 values, and calling handle_any_trailing_information.
2527 (rtx_reader::read_rtx_operand): Convert return type from void
2528 to rtx, returning return_rtx. Handle case 'e'. Call
2529 finalize_string on XSTR and XTMPL fields.
2530 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
2531 "(nil)" values were omitted. Call the postprocess vfunc on the
2533 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
2534 class ctor. Initialize m_in_call_function_usage. Call
2535 one_time_initialization.
2536 * rtl-tests.c (selftest::test_uncond_jump): Call
2537 set_new_first_and_last_insn.
2538 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
2539 * selftest-rtl.c: New file.
2540 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
2541 (selftest::get_insn_by_uid): New decl.
2542 * selftest-run-tests.c (selftest::run_tests): Call
2543 read_rtl_function_c_tests.
2544 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
2545 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
2548 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
2550 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
2551 operands in a special way. Assert that pos+len <= mode precision.
2553 2017-01-05 Jakub Jelinek <jakub@redhat.com>
2555 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
2556 3 argument Alias with unlimited for the negative form.
2557 (fno-vect-cost-model): Removed.
2559 2017-01-05 Martin Liska <mliska@suse.cz>
2561 * hsa-gen.c (gen_hsa_divmod): New function.
2562 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
2564 2017-01-05 Martin Liska <mliska@suse.cz>
2567 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
2570 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2572 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
2573 small constant length operands.
2575 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
2577 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
2578 between loop iterations.
2580 2017-01-05 Martin Liska <mliska@suse.cz>
2583 * gimplify.c (gimplify_decl_expr): Compare to
2584 asan_poisoned_variables instread of checking flags.
2585 (gimplify_target_expr): Likewise.
2586 (gimplify_expr): Likewise.
2587 (gimplify_function_tree): Conditionally initialize
2588 asan_poisoned_variables.
2590 2017-01-04 Jeff Law <law@redhat.com>
2592 PR tree-optimizatin/78812
2593 * rtl.h (contains_mem_rtx_p): Prototype.
2594 * ifcvt.c (containts_mem_rtx_p): Move from here to...
2595 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
2596 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
2597 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
2598 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
2600 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
2602 * input.c (assert_char_at_range): Default-initialize actual_range.
2604 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
2606 * df-scan.c (df_ref_create_structure): Make regno unsigned,
2607 to match the caller.
2609 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
2611 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
2612 insns after final jump in test to emit dummy move.
2614 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
2616 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
2617 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
2619 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
2621 * multiple_target.c (create_dispatcher_calls): Init e_next.
2622 * tree-ssa-loop-split.c (split_loop): Init border.
2623 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
2626 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
2631 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
2632 (altivec_register_operand): Do not return true if the operand
2633 contains a SUBREG mixing SImode and SFmode.
2634 (vsx_register_operand): Likewise.
2635 (vsx_reg_sfsubreg_ok): New predicate.
2636 (vfloat_operand): Do not return true if the operand contains a
2637 SUBREG mixing SImode and SFmode.
2638 (vint_operand): Likewise.
2639 (vlogical_operand): Likewise.
2640 (gpc_reg_operand): Likewise.
2641 (int_reg_operand): Likewise.
2642 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
2643 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
2644 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
2646 (rs6000_emit_move_si_sf_subreg): New helper function.
2647 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
2648 fixup SUBREGs involving SImode and SFmode.
2649 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
2650 numbers for the new peephole2 optimization.
2651 (peephole2 for SFmode unions): New peephole2 to optimize cases in
2652 the GLIBC math library that do AND/IOR/XOR operations on single
2653 precision floating point.
2654 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
2655 target macros to say whether we need to avoid SUBREGs mixing
2657 (TARGET_ALLOW_SF_SUBREG): Likewise.
2658 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
2659 (UNSPEC_SI_FROM_SF): Likewise.
2660 (iorxor): Change spacing.
2661 (and_ior_xor): New iterator for AND, IOR, and XOR.
2662 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
2663 (movdi_from_sf_zero_ext): Likewise.
2664 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
2665 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
2666 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
2667 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
2668 (fms<mode>4): Likewise.
2669 (fnma<mode>4): Likewise.
2670 (fnms<mode>4): Likewise.
2671 (nfma<mode>4): Likewise.
2672 (nfms<mode>4): Likewise.
2674 2017-01-04 Marek Polacek <polacek@redhat.com>
2677 * doc/invoke.texi: Document -Wpointer-compare.
2679 2017-01-04 Jakub Jelinek <jakub@redhat.com>
2681 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
2684 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
2685 descriptions for -gdwarf-5 and emit them as uleb128 instead of
2688 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
2691 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
2692 documentation of the powerpc_popcntb_ok attribute.
2693 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
2694 code to issue warning messages if a requested CPU configuration is
2695 not supported by the binary (assembler and loader) toolchain.
2696 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
2697 made to define a built-in function that has been disabled.
2698 (paired_init_builtins): Add assertion to prevent ICE if attempt is
2699 made to define a built-in function that has been disabled.
2700 (altivec_init_builtins): Add comment explaining why definition
2701 of the DST built-in functions is not preceded by an assertion
2702 check. Add assertions to prevent ICE if attempts are made to
2703 define an altivec predicate or an abs* built-in function that has
2705 (htm_init_builtins): Add comment explaining why definition of the
2706 htm built-in functions is not preceded by an assertion check.
2708 2017-01-04 Jeff Law <law@redhat.com>
2710 PR tree-optimizatin/67955
2711 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
2712 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
2713 the points-to solution does not include pt_null. Use DECL_PT_UID
2716 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
2718 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
2719 Use gen_int_mode instead of gen_lopwart for const_int operands.
2721 2017-01-04 Jakub Jelinek <jakub@redhat.com>
2723 PR tree-optimization/71563
2724 * match.pd: Simplify X << Y into X if Y is known to be 0 or
2725 out of range value - has low bits known to be zero.
2727 2017-01-04 Alan Modra <amodra@gmail.com>
2729 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
2730 * configure: Regenerate.
2731 * config.in: Regenerate.
2733 2017-01-04 Jakub Jelinek <jakub@redhat.com>
2736 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
2737 a substring of the message, but strcmp with the whole message. Ifdef
2738 ENABLE_NLS, translate the message first using dgettext.
2740 2017-01-03 Jeff Law <law@redhat.com>
2742 PR tree-optimizatin/78856
2743 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
2744 (mark_threaded_blocks): Remove code to truncate thread paths that
2745 cross multiple loop headers. Instead invalidate the cached loop
2746 iteration information and handle case of a thread path walking
2747 into an irreducible region.
2749 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
2752 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
2753 assertions. Add support for doing the signbit if the IEEE 128-bit
2754 floating point value is in a GPR.
2755 * config/rs6000/rs6000.md (Fsignbit): Delete.
2756 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
2757 Update the length attribute if the value is in a GPR.
2758 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
2759 the sign or zero extension instruction, since the value is always 0/1.
2760 (signbit<mode>2_dm2): Delete using <Fsignbit>.
2763 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
2764 extracting SImode to a GPR register so that we can generate a
2765 store, limit the vector to be in a traditional Altivec register
2766 for the vextuwrx instruction.
2768 2017-01-03 Ian Lance Taylor <iant@google.com>
2770 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
2772 2017-01-03 Martin Sebor <msebor@redhat.com>
2774 PR tree-optimization/78696
2775 * gimple-ssa-sprintf.c (format_floating): Correct handling of
2776 precision. Use MPFR for %f for greater fidelity. Correct handling
2778 (pass_sprintf_length::compute_format_length): Set width and precision
2779 specified by asrerisk to void_node for vararg functions.
2780 (try_substitute_return_value): Adjust dump output.
2782 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
2784 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
2786 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
2788 * doc/invoke.texi (SPARC options): Document -mlra as the default.
2789 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
2790 -mlra/-mno-lra was passed to the compiler.
2792 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
2794 PR rtl-optimization/65618
2795 * emit-rtl.c (try_split): Move initialization of "before" and
2796 "after" to just before the call to emit_insn_after_setloc.
2798 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
2800 * doc/md.texi (Standard Names): Remove reference to Java frontend.
2802 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
2804 * dwarf2out.c (gen_enumeration_type_die): When
2805 -gno-strict-dwarf, add a DW_AT_encoding attribute.
2807 2017-01-03 Jakub Jelinek <jakub@redhat.com>
2809 PR tree-optimization/78965
2810 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
2811 Change first argument from const call_info & to call_info &. For %n
2812 set info.nowrite to false.
2815 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
2816 possibly throwing calls.
2818 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
2819 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
2820 and fns handling, rather than in a separate case SSA_NAME.
2822 2017-01-02 Jeff Law <law@redhat.com>
2824 * config/darwin-driver.c (darwin_driver_init): Const-correctness
2825 fixes for first_period and second_period variables.
2827 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
2830 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
2831 (*insvqi_1): New insn pattern.
2832 (*insvqi_1_mem_rex64): Ditto.
2834 (*insvqi_3): Rename from *insvqi.
2836 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
2838 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
2840 * doc/cfg.texi (Edges): Remove reference to Java.
2841 (Maintaining the CFG): Ditto.
2843 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
2846 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
2847 transparent aliases.
2849 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
2852 * predict.def (PRED_CALL): Update hitrate.
2853 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
2854 * predict.c (tree_estimate_probability_bb): Split CALL predictor
2855 into direct/indirect/polymorphic variants.
2857 2017-01-01 Jakub Jelinek <jakub@redhat.com>
2859 Update copyright years.
2861 * gcc.c (process_command): Update copyright notice dates.
2862 * gcov-dump.c (print_version): Ditto.
2863 * gcov.c (print_version): Ditto.
2864 * gcov-tool.c (print_version): Ditto.
2865 * gengtype.c (create_file): Ditto.
2866 * doc/cpp.texi: Bump @copying's copyright year.
2867 * doc/cppinternals.texi: Ditto.
2868 * doc/gcc.texi: Ditto.
2869 * doc/gccint.texi: Ditto.
2870 * doc/gcov.texi: Ditto.
2871 * doc/install.texi: Ditto.
2872 * doc/invoke.texi: Ditto.
2874 Copyright (C) 2017 Free Software Foundation, Inc.
2876 Copying and distribution of this file, with or without modification,
2877 are permitted in any medium without royalty provided the copyright
2878 notice and this notice are preserved.