1 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
3 * configure.ac (ACX_BUGURL): Update.
4 * configure: Regenerate.
6 2017-02-09 Richard Biener <rguenther@suse.de>
8 PR tree-optimization/69823
9 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region):
10 Properly enumerate all BBs in the region. Use auto_vec/auto_bitmap.
12 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
14 * config/arc/arc-c.def: Add __NPS400__ definition.
15 * config/arc/arc.h (CPP_SPEC): Don't define __NPS400__ here.
16 (TARGET_NPS400): Define.
18 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
20 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
22 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
24 (arc_cpu_types): Fill the arch_info field with a pointer into the
26 (arc_selected_cpu): Declare.
27 * config/arc/arc.c (arc_selected_cpu): Make global.
28 (arc_selected_arch): Delete.
29 (arc_base_cpu): Delete.
30 (arc_override_options): Remove references to deleted variables,
31 update access to arch information.
32 (ARC_OPT): Update access to arch information.
34 * config/arc/arc.h (arc_base_cpu): Remove declaration.
35 (TARGET_ARC600): Update access to arch information.
36 (TARGET_ARC601): Likewise.
37 (TARGET_ARC700): Likewise.
38 (TARGET_EM): Likewise.
39 (TARGET_HS): Likewise.
40 * config/arc/driver-arc.c (arc_cpu_to_as): Update access to arch
43 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
46 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
47 condition/operands for integer GE/LE/GEU/LEU operations.
49 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
52 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
55 2017-02-08 Martin Jambor <mjambor@suse.cz>
58 * ipa-prop.c (ipa_alloc_node_params): Make static, return bool
59 whether allocation happened.
60 (ipa_initialize_node_params): Do not call ipa_alloc_node_params if
61 nothing was allocated.
63 2017-02-08 Jakub Jelinek <jakub@redhat.com>
65 PR tree-optimization/79408
66 * tree-vrp.c (simplify_div_or_mod_using_ranges): If op1 is not
67 constant, but SSA_NAME with a known integer range, use the minimum
68 of that range instead of op1 to determine if modulo can be replaced
69 with its first operand.
71 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
73 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
75 2017-02-08 Richard Biener <rguenther@suse.de>
77 PR tree-optimization/71824
78 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
79 Check all loops contained in the merged region.
81 2017-02-07 Andrew Pinski <apinski@cavium.com>
83 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
85 2017-02-07 Andrew Pinski <apinski@cavium.com>
87 * config/aarch64/aarch64-cores.def (thunderx): Disable LSE.
88 (thunderxt88): Likewise.
89 (thunderxt81): Disable LSE and change v8.1 to v8.
90 (thunderxt83): Likewise.
92 2017-02-07 Jakub Jelinek <jakub@redhat.com>
93 Richard Biener <rguenther@suse.de>
96 * ira-int.h (struct target_ira_int): Change x_max_struct_costs_size
97 type from int to size_t.
98 * ira-costs.c (struct_costs_size): Change type from int to size_t.
100 2017-02-07 Jakub Jelinek <jakub@redhat.com>
102 PR rtl-optimization/79386
103 * cprop.c (bypass_conditional_jumps): Initialize
104 bypass_last_basic_block already before splitting bbs after
105 unconditional traps...
106 (bypass_conditional_jumps): ... rather than here.
109 * config/i386/sse.md (xtg_mode, gatherq_mode): New mode attrs.
110 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2,
111 *avx512f_gatherdi<mode>, *avx512f_gatherdi<mode>_2): Use them,
112 fix -masm=intel patterns.
114 2017-02-07 Richard Biener <rguenther@suse.de>
116 PR tree-optimization/79256
118 * builtins.c (get_object_alignment_2): Use min_align_of_type
119 to extract alignment for MEM_REFs to honor BIGGEST_FIELD_ALIGNMENT
120 and ADJUST_FIELD_ALIGN.
122 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
124 * doc/tm.texi: Regenerate.
125 * stor-layout.c (layout_decl): Adjust.
126 (update_alignment_for_field): Likewise.
127 (place_field): Likewise.
128 (min_align_of_type): Likewise.
129 * config/arc/arc.h (ADJUST_FIELD_ALIGN): Adjust.
130 * config/epiphany/epiphany.h (ADJUST_FIELD_ALIGN): Likewise.
131 * config/epiphany/epiphany.c (epiphany_adjust_field_align): Likewise.
132 * config/frv/frv.h (ADJUST_FIELD_ALIGN): Likewise.
133 * config/frv/frv.c (frv_adjust_field_align): Likewise.
134 * config/i386/i386.h (ADJUST_FIELD_ALIGN): Likewise.
135 * config/i386/i386.c (x86_field_alignment): Likewise.
136 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Likewise.
137 * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Likewise.
138 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Likewise.
139 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
140 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Likewise.
141 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
145 2017-01-30 Richard Biener <rguenther@suse.de>
147 PR tree-optimization/79256
148 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
149 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
152 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
154 * config/mips/mips.c (mips_expand_builtin_insn): Convert the QImode
155 argument of the pshufh, psllh, psllw, psrah, psraw, psrlh, psrlw
156 builtins to SImode and emit a zero-extend, if necessary.
158 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
160 * docs/invoke.texi (RISC-V Options): Alphabetize.
162 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
164 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
167 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
169 * config/riscv/riscv.c: New file.
170 * gcc/common/config/riscv/riscv-common.c: Likewise.
171 * config.gcc: Likewise.
172 * config/riscv/constraints.md: Likewise.
173 * config/riscv/elf.h: Likewise.
174 * config/riscv/generic.md: Likewise.
175 * config/riscv/linux.h: Likewise.
176 * config/riscv/multilib-generator: Likewise.
177 * config/riscv/peephole.md: Likewise.
178 * config/riscv/pic.md: Likewise.
179 * config/riscv/predicates.md: Likewise.
180 * config/riscv/riscv-builtins.c: Likewise.
181 * config/riscv/riscv-c.c: Likewise.
182 * config/riscv/riscv-ftypes.def: Likewise.
183 * config/riscv/riscv-modes.def: Likewise.
184 * config/riscv/riscv-opts.h: Likewise.
185 * config/riscv/riscv-protos.h: Likewise.
186 * config/riscv/riscv.h: Likewise.
187 * config/riscv/riscv.md: Likewise.
188 * config/riscv/riscv.opt: Likewise.
189 * config/riscv/sync.md: Likewise.
190 * config/riscv/t-elf-multilib: Likewise.
191 * config/riscv/t-linux: Likewise.
192 * config/riscv/t-linux-multilib: Likewise.
193 * config/riscv/t-riscv: Likewise.
194 * configure.ac: Likewise.
195 * doc/contrib.texi: Add Kito Cheng, Palmer Dabbelt, and Andrew
196 Waterman as RISC-V maintainers.
197 * doc/install.texi: Add RISC-V entries.
198 * doc/invoke.texi: Add RISC-V options section.
199 * doc/md.texi: Add RISC-V constraints section.
200 * configure: Regenerated.
202 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
205 * config/rs6000/vector.md (vcond<mode><mode>): Allow the true and
206 false values to be constant vectors with all 0 or all 1 bits set.
207 (vcondu<mode><mode>): Likewise.
208 * config/rs6000/predicates.md (vector_int_reg_or_same_bit): New
210 (fpmask_comparison_operator): Update comment.
211 (vecint_comparison_operator): New predicate.
212 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Optimize
213 vector conditionals when the true and false values are constant
214 vectors with all 0 bits or all 1 bits set.
216 2017-02-06 Martin Sebor <msebor@redhat.com>
218 PR tree-optimization/79376
219 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
221 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
223 * config/i386/sse.md (vector modes -> vec_extract* splitter): Use
224 explicit subreg RTX with operand 1. Use VECTOR_MODE_P predicate
225 to simplify split condition.
227 2017-02-06 Jakub Jelinek <jakub@redhat.com>
229 * omp-expand.c (oxpand_omp_atomic_fetch_op,
230 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
233 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
235 PR rtl-optimization/68664
236 * target.def (can_speculate_insn): New hook.
237 * doc/tm.texi.in (TARGET_SCHED_CAN_SPECULATE_INSN): New hook.
238 * doc/tm.texi: Regenerate.
239 * sched-rgn.c (can_schedule_ready_p): Use the new hook.
240 * config/rs6000/rs6000.c (TARGET_SCHED_CAN_SPECULATE_INSN): New macro.
241 (rs6000_sched_can_speculate_insn): New function.
243 2017-02-06 Jakub Jelinek <jakub@redhat.com>
245 PR tree-optimization/79284
246 * tree-vectorizer.h (VECT_SCALAR_BOOLEAN_TYPE_P): Define.
247 * tree-vect-stmts.c (vect_get_vec_def_for_operand,
248 vectorizable_mask_load_store, vectorizable_operation,
249 vect_is_simple_cond, get_same_sized_vectype): Use it instead
250 of comparing TREE_CODE of a type against BOOLEAN_TYPE.
251 * tree-vect-patterns.c (check_bool_pattern, search_type_for_mask_1,
252 vect_recog_bool_pattern, vect_recog_mask_conversion_pattern): Likewise.
253 * tree-vect-slp.c (vect_get_constant_vectors): Likewise.
254 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
255 Remove redundant gimple_code (stmt) == GIMPLE_ASSIGN test after
256 is_gimple_assign (stmt). Replace another such test with
257 is_gimple_assign (stmt).
259 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
262 * config/avr/avr.c (rtl-iter.h): Include it.
263 (TARGET_LEGITIMATE_COMBINED_INSN): New hook define...
264 (avr_legitimate_combined_insn): ...and implementation.
266 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
268 * config/s390/predicates.md ("larl_operand"): Use macros from hwint.h.
269 * config/s390/s390.c (s390_const_operand_ok)
270 (s390_canonicalize_comparison, s390_extract_part)
271 (s390_single_part, s390_contiguous_bitmask_nowrap_p)
272 (s390_contiguous_bitmask_p, s390_rtx_costs)
273 (legitimize_pic_address): Likewise.
274 * config/s390/s390.md ("clzdi2", "clztidi2"): Likewise.
275 * config/s390/vx-builtins.md ("vec_genbytemaskv16qi")
276 ("vec_permi<mode>", "vfae<mode>", "*vfaes<mode>", "vstrc<mode>")
277 ("*vstrcs<mode>"): Use UINTVAL() to set unsigned HOST_WIDE_INT.
278 * config/s390/vector.md ("vec_vfenes<mode>"): Likewise.
280 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
282 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
283 REGNO($0) == REGNO($1).
285 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
287 * config/s390/linux.h(SIZE_TYPE): Add comment.
289 2017-02-06 Julian Brown <julian@codesourcery.com>
290 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
291 Virendra Pathak <virendra.pathak@broadcom.com>
293 * config/aarch64/aarch64-cores.def: Change the scheduler
295 * config/aarch64/aarch64.md: Include thunderx2t99.md.
296 * config/aarch64/thunderx2t99.md: New file.
298 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
300 * doc/standards.texi (Go Language): Update link to language
303 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
305 * tree-eh.c (lower_resx): Sanitize profile.
306 (cleanup_empty_eh_move_lp): Likewise.
308 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
311 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
313 * cfgloopmanip.h (loop_version): Update prototype.
314 * modulo-sched.c (sms_schedule): Update call of loop_version.
315 * tree-if-conv.c(version_loop_for_if_conversion): Likewise.
316 * tree-parloops.c (gen_parallel_loop): Likewise.
317 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Likewise.
318 * tree-ssa-loop-split.c (split_loop): Likewise.
319 * tree-ssa-loop-unswitch.c (tree_unswitch_loop): Likewise.
320 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise.
322 2017-02-05 Martin Liska <mliska@suse.cz>
325 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
327 (print_operand_address): Initialize a struct to zero.
329 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
331 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
332 garbage collector only in textual form.
334 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
336 * doc/extend.texi (x86 specific memory model extensions for
337 transactional memory): Simplify a phrase.
339 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
342 * config/sparc/sync.md (atomic_loaddi_1): Replace 'U' constraint with
343 'r', 'm' constraint with 'T' and !TARGET_ARCH64 with TARGET_ARCH32.
344 (atomic_storedi_1): Likewise.
346 2017-02-04 Jakub Jelinek <jakub@redhat.com>
348 PR tree-optimization/79338
349 * tree-parloops.c (gather_scalar_reductions): Don't call
350 vect_analyze_loop_form for loop->inner before destroying loop's
353 2017-02-03 Martin Sebor <msebor@redhat.com>
355 PR tree-optimization/79327
356 * gimple-ssa-sprintf.c (tree_digits): Avoid adding the base prefix
357 when precision has resulted in leading zeros.
358 (format_integer): Adjust the likely counter to assume an unknown
359 argument that may be zero is non-zero.
361 2017-02-03 Jason Merrill <jason@redhat.com>
364 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
365 avoid copying non-taken branch.
367 2017-02-03 Jakub Jelinek <jakub@redhat.com>
369 PR tree-optimization/79340
370 * tree-vect-loop.c (vectorizable_reduction): Release
371 vec_defs elements after safe_splicing them into other vectors.
374 PR tree-optimization/79327
375 * gimple-ssa-sprintf.c (adjust_range_for_overflow): If returning
376 true, always set *argmin and *argmax to TYPE_{MIN,MAX}_VALUE of
378 (format_integer): Use wide_int_to_tree instead of build_int_cst
379 + to_?hwi. If argmin is NULL, just set argmin and argmax to
380 TYPE_{MIN,MAX}_VALUE of argtype. Simplify and fix computation
381 of shortest and longest sequence.
383 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
385 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
386 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
388 2017-02-03 Walter Lee <walt@tilera.com>
391 * config/tilegx/tilegx.md (tilegx_expand_prologue): Add blockage
392 after initial stackframe link reg save.
393 * config/tilepro/tilepro.md (tilepro_expand_prologue): Likewise.
395 2017-02-03 Jakub Jelinek <jakub@redhat.com>
398 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
399 wu for stxssp alternative.
401 2017-02-03 Martin Sebor <msebor@redhat.com>
403 PR tree-optimization/79352
404 * gimple-fold.c (get_range_strlen): Add argument.
405 (get_range_strlen): Change return type to bool.
406 (get_maxval_strlen): Pass in a dummy argument.
407 * gimple-fold.h (get_range_strlen): Change return type to bool.
408 * gimple-ssa-sprintf.c (get_string_length): Set unlikely counter.
409 * tree.h (array_at_struct_end_p): Add argument.
410 * tree.c (array_at_struct_end_p): Handle it.
412 2017-02-03 Martin Liska <mliska@suse.cz>
415 * multiple_target.c (create_dispatcher_calls): Redirect edge
416 from a caller of a dispatcher.
417 (expand_target_clones): Make the clones local.
418 (ipa_target_clone): Do both target clones and resolvers.
419 (ipa_dispatcher_calls): Remove the pass.
420 (pass_dispatcher_calls::gate): Likewise.
421 (make_pass_dispatcher_calls): Likewise.
422 * passes.def (pass_target_clone): Put as very first IPA early
425 2017-02-03 Martin Liska <mliska@suse.cz>
427 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
428 in case of a function with ifunc attribute.
430 2017-02-03 Martin Liska <mliska@suse.cz>
432 * cgraph.c (cgraph_node::dump): Dump function version info.
433 * symtab.c (symtab_node::dump_base): Add missing new line.
435 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
437 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
438 (ifcombine_ifandif): Use it.
440 2017-02-03 Martin Liska <mliska@suse.cz>
442 * doc/invoke.texi: Document default value for
443 use-after-scope-direct-emission-threshold.
445 2017-02-03 Martin Liska <mliska@suse.cz>
447 PR tree-optimization/79339
448 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
449 (format_floating): Likewise.
451 2017-02-03 Martin Liska <mliska@suse.cz>
454 * ipa-prop.c (ipa_node_params_t::insert): Remove current
456 (ipa_node_params_t::remove): Likewise.
457 * ipa-prop.h (ipa_node_params::ipa_node_params): Make default
458 initialization from removed ipa_node_params_t::insert.
459 (ipa_node_params::~ipa_node_params): Move from removed
460 ipa_node_params_t::release.
461 * symbol-summary.h (symbol_summary::m_released): New member.
462 Do not release a summary twice. Do not allow to call finalizer
463 for types of a summary that live in GGC memory.
465 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
467 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
470 2017-02-02 Martin Sebor <msebor@redhat.com>
473 * gimple-ssa-sprintf.c (get_string_length): Set lower bound to zero.
474 (format_string): Tighten up the range of output for non-constant
475 strings and correct the expected range for wide non-constant strings.
477 2017-02-02 Martin Sebor <msebor@redhat.com>
479 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
482 * doc/invoke.texi (-fdump-rtl-): Remove pass-specific options from
484 (-fdump-tree-@var): Add to index and document how to come up
485 with pass-specific option and dump file names.
486 (-fdump-passes): Clarify where to look for output.
488 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
491 * tree-ssa-threadbackward.c (profitable_jump_thread_path): Dump
492 statistics of the analyzed path; allow threading for speed when
493 any of BBs along the path are optimized for speed.
495 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
498 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
499 settings of the virtual registers.
502 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
504 * explow.c (get_dynamic_stack_size): Take known alignment of stack
505 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
508 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
510 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
511 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
513 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
515 * config/s390/s390.md: Add missing comments with the expanded
517 * config/s390/vector.md: Likewise.
518 * config/s390/vx-builtins.md: Likewise.
520 2017-02-02 Jakub Jelinek <jakub@redhat.com>
523 * config/rs6000/rs6000.md (*fixuns_trunc<mode>di2_fctiduz): Rename to ...
524 (fixuns_trunc<mode>di2): ... this, remove previous expander. Put all
525 conditions on a single line.
527 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
529 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
530 __S390_VX__ to __VX__.
532 2017-02-01 Andrew Pinski <apinski@cavium.com>
534 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): Pass
535 stmt_info to record_stmt_cost.
536 (vect_get_known_peeling_cost): Pass stmt_info if known to
538 * config/aarch64/aarch64-protos.h (cpu_vector_cost): Split
539 cpu_vector_cost field into
540 scalar_int_stmt_cost and scalar_fp_stmt_cost. Split vec_stmt_cost
541 field into vec_int_stmt_cost and vec_fp_stmt_cost.
542 * config/aarch64/aarch64.c (generic_vector_cost): Update for the
543 splitting of scalar_stmt_cost and vec_stmt_cost.
544 (thunderx_vector_cost): Likewise.
545 (cortexa57_vector_cost): LIkewise.
546 (exynosm1_vector_cost): Likewise.
547 (xgene1_vector_cost): Likewise.
548 (thunderx2t99_vector_cost): Improve after the splitting of the two
550 (aarch64_builtin_vectorization_cost): Update for the splitting of
551 scalar_stmt_cost and vec_stmt_cost.
553 2017-02-01 Torvald Riegel <triegel@redhat.com>
554 Richard Henderson <rth@redhat.com>
556 * builtins.c (fold_builtin_atomic_always_lock_free): Make "lock-free"
557 conditional on existance of a fast atomic load.
558 * optabs-query.c (can_atomic_load_p): New function.
559 * optabs-query.h (can_atomic_load_p): Declare it.
560 * optabs.c (expand_atomic_exchange): Always delegate to libatomic if
561 no fast atomic load is available for the particular size of access.
562 (expand_atomic_compare_and_swap): Likewise.
563 (expand_atomic_load): Likewise.
564 (expand_atomic_store): Likewise.
565 (expand_atomic_fetch_op): Likewise.
566 * testsuite/lib/target-supports.exp
567 (check_effective_target_sync_int_128): Remove x86 because it provides
569 (check_effective_target_sync_int_128_runtime): Likewise.
571 2017-02-01 Richard Biener <rguenther@suse.de>
573 * graphite.c: Include tree-vectorizer.h for find_loop_location.
574 (graphite_transform_loops): Provide opt-info for optimized nests.
575 * tree-parloop.c (parallelize_loops): Provide opt-info for
578 2017-02-01 Richard Biener <rguenther@suse.de>
581 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
584 2017-02-01 Richard Biener <rguenther@suse.de>
586 PR tree-optimization/71824
587 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
588 Verify the loops are valid in the merged SESE region.
589 (scop_detection::can_represent_loop_1): Check analyzing the
590 evolution of the number of iterations in the region succeeds.
592 2017-01-31 Ian Lance Taylor <iant@golang.org>
594 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
595 REG_ARGS_SIZE note to 32-bit push insns and call insn.
597 2017-01-31 David Malcolm <dmalcolm@redhat.com>
599 PR preprocessor/79210
600 * input.c (get_substring_ranges_for_loc): Replace line_width
601 assertion with error-handling.
603 2017-01-31 Richard Biener <rguenther@suse.de>
605 PR tree-optimization/77318
606 * graphite-sese-to-poly.c (extract_affine): Fix assert.
607 (create_pw_aff_from_tree): Take loop parameter.
608 (add_condition_to_pbb): Pass loop of the condition to
609 create_pw_aff_from_tree.
611 2017-01-31 Jakub Jelinek <jakub@redhat.com>
613 * config/s390/s390.c (s390_asan_shadow_offset): New function.
614 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
616 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
620 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
622 (convert_int_to_float128): Likewise.
623 * config/rs6000/rs6000.c (convert_float128_to_int): Likewise.
624 (convert_int_to_float128): Likewise.
625 * config/rs6000/rs6000.md (UNSPEC_IEEE128_MOVE): Likewise.
626 (UNSPEC_IEEE128_CONVERT): Likewise.
627 (floatsi<mode>2, FLOAT128 iterator): Bypass calling
628 rs6000_expand_float128_convert if we have IEEE 128-bit hardware.
629 Use local variables for IBM extended format.
630 (fix_trunc<mode>si2, FLOAT128 iterator): Likewise.
631 (fix_trunc<mode>si2_fprs): Likewise.
632 (fixuns_trunc<IEEE128:mode><SDI:mode>2): Likewise.
633 (floatuns<IEEE128:mode>2, IEEE128 iterator): Likewise.
634 (fix<uns>_<mode>si2_hw): Rework the IEEE 128-bt hardware support
635 to know that we can now have integers of all sizes in vector
637 (fix<uns>_<mode>di2_hw): Likewise.
638 (float<uns>_<mode>si2_hw): Likewise.
639 (fix_<mode>si2_hw): Likewise.
640 (fixuns_<mode>si2_hw): Likewise.
641 (float<uns>_<mode>di2_hw): Likewise.
642 (float_<mode>di2_hw): Likewise.
643 (float_<mode>si2_hw): Likewise.
644 (floatuns_<mode>di2_hw): Likewise.
645 (floatuns_<mode>si2_hw): Likewise.
646 (xscvqp<su>wz_<mode>): Delete, no longer used.
647 (xscvqp<su>dz_<mode>): Likewise.
648 (xscv<su>dqp_<mode>): Likewise.
649 (ieee128_mfvsrd_64bit): Likewise.
650 (ieee128_mfvsrd_32bit): Likewise.
651 (ieee128_mfvsrwz): Likewise.
652 (ieee128_mtvsrw): Likewise.
653 (ieee128_mtvsrd_64bit): Likewise.
654 (ieee128_mtvsrd_32bit): Likewise.
656 2017-01-31 Martin Liska <mliska@suse.cz>
659 * ipa-prop.c (ipa_free_all_node_params): Call release method
660 instead of ~sumbol_summary to not to trigger double times
663 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
665 PR tree-optimization/71691
666 * bitmap.h (class auto_bitmap): New.
667 * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Call
668 is_maybe_undefined instead of ssa_undefined_value_p.
670 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
672 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
673 __S390_ARCH_LEVEL__ to __ARCH__.
675 2017-01-31 Jakub Jelinek <jakub@redhat.com>
677 PR tree-optimization/79267
678 * value-prof.c (gimple_ic): Only drop lhs for noreturn calls
679 if should_remove_lhs_p is true.
681 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
684 * dwarf2out.c (clone_as_declaration): Drop DW_AT_alignment.
685 (add_alignment_attribute): New.
686 (base_type_die): Add alignment attribute.
687 (subrange_type_die): Likewise.
688 (modified_type_die): Likewise.
689 (gen_array_type_die): Likewise.
690 (gen_descr_array_type_die: Likewise.
691 (gen_enumeration_type_die): Likewise.
692 (gen_subprogram_die): Likewise.
693 (gen_variable_die): Likewise.
694 (gen_field_die): Likewise.
695 (gen_ptr_to_mbr_type_die): Likewise.
696 (gen_struct_or_union_type_die): Likewise.
697 (gen_subroutine_type_die): Likewise.
698 (gen_typedef_die): Likewise.
699 (base_type_cmp): Compare alignment attribute.
701 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
704 * config/rs6000/altivec.md (*setb_internal): Rename to setb_signed.
705 (setb_unsigned) New pattern for setb with CCUNS.
706 * config/rs6000/rs6000.c (expand_block_compare): Use a different
707 subfc./subfe sequence to avoid overflow problems. Generate a
708 shorter sequence with cmpld/setb for power9.
709 * config/rs6000/rs6000.md (subf<mode>3_carry_dot2): Add a new pattern
710 for generating subfc. instruction.
711 (cmpstrsi): Add TARGET_POPCNTD predicate as the generate sequence
712 now uses this instruction.
714 2017-01-30 Ian Lance Taylor <iant@google.com>
717 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
718 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
720 2017-01-30 Martin Sebor <msebor@redhat.com>
722 * gimple-ssa-sprintf.c (fmtresult::adjust_for_width_or_precision):
723 Move constant to the right of a relational operator.
724 (get_mpfr_format_length, format_character, format_string): Ditto.
725 (should_warn_p, maybe_warn): Same.
727 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
729 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
732 * asan.c (get_translation_unit_decl): Remove function.
733 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
735 2017-01-30 Martin Liska <mliska@suse.cz>
737 PR gcov-profile/79259
738 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
741 2017-01-30 Martin Liska <mliska@suse.cz>
744 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
745 Initialize variables with NULL value.
747 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
750 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
752 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
754 2017-01-30 Richard Biener <rguenther@suse.de>
756 PR tree-optimization/79276
757 * tree-vrp.c (process_assert_insertions): Properly adjust common
758 when removing a duplicate.
760 * gcc.dg/torture/pr79276.c: New testcase.
762 2017-01-30 Richard Biener <rguenther@suse.de>
764 PR tree-optimization/79256
765 * targhooks.c (default_builtin_vector_alignment_reachable): Honor
766 BIGGEST_FIELD_ALIGNMENT and ADJUST_FIELD_ALIGN to fix up bogus
768 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
770 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
773 * config/s390/s390.md ("*r<noxa>sbg_<mode>_srl_bitmask")
774 ("*r<noxa>sbg_<mode>_sll_bitmask")
775 ("*extzv_<mode>_srl<clobbercc_or_nocc>")
776 ("*extzv_<mode>_sll<clobbercc_or_nocc>"):
777 Use contiguous_bitmask_nowrap_operand.
779 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
782 * config/rs6000/altivec.h (vec_xl): Revise #define.
785 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
787 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
789 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
791 PR rtl-optimization/79194
792 * cprop.c (one_cprop_pass): Move deletion of code after unconditional
793 traps before call to bypass_conditional_jumps.
795 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
797 PR tree-optimization/71374
798 * lra-constraints.c (check_conflict_input_operands): New.
799 (match_reload): Use it.
801 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
804 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
805 account to calculate conflict_set.
807 2017-01-27 Bin Cheng <bin.cheng@arm.com>
809 PR rtl-optimization/78559
810 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
811 other_insn in combine.
813 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
815 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
816 uint16_type_node for BT_UINT16.
818 2017-01-27 David Malcolm <dmalcolm@redhat.com>
820 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
822 (GIMPLE Tests): New node.
823 (RTL Tests): New node.
825 2017-01-27 Richard Biener <rguenther@suse.de>
827 PR tree-optimization/79245
828 * tree-loop-distribution.c (distribute_loop): Apply cost
829 modeling also to detected patterns.
831 2017-01-27 Richard Biener <rguenther@suse.de>
833 PR tree-optimization/71433
834 * tree-vrp.c (register_new_assert_for): Revert earlier changes.
835 (compare_assert_loc): New function.
836 (process_assert_insertions): Sort and optimize assert locations
837 to remove duplicates and push down identical assertions on
838 edges to their destination block.
840 2017-01-27 Richard Biener <rguenther@suse.de>
842 PR tree-optimization/79244
843 * tree-vrp.c (remove_range_assertions): Forcefully propagate
844 out SSA names even if abnormal.
846 2017-01-27 Jakub Jelinek <jakub@redhat.com>
848 * realmpfr.h: Poison MPFR_RND{N,Z,U,D}.
849 * gimple-ssa-sprintf.c (format_floating_max): Use GMP_RNDN
850 instead of MPFR_RNDN.
852 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
855 * arm.c (arm_option_override): Don't call build_target_option_node
856 until after doing all option overrides.
857 (arm_valid_target_attribute_tree): Likewise.
859 2017-01-27 Martin Liska <mliska@suse.cz>
861 * doc/invoke.texi (-fprofile-arcs): Document profiling support
862 for {cd}tors and C++ {cd}tors.
864 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
866 * config/s390/s390.md ("*setmem_long_and")
867 ("*setmem_long_and_31z"): Use zero_extend instead of and.
869 2017-01-26 Martin Sebor <msebor@redhat.com>
871 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
874 2017-01-26 Martin Sebor <msebor@redhat.com>
876 * gimple-ssa-sprintf.c (format_floating): Test HAVE_XFmode and
877 HAVE_DFmode before using XFmode or DFmode.
878 (parse_directive): Avoid using the z length modifier to avoid
879 the ISO C++98 does not support the ‘z’ gnu_printf length modifier.
882 * gimple-ssa-sprintf.c (adjust_for_width_or_precision): Change
883 to accept adjustment as an array.
884 (get_int_range): New function.
885 (struct directive): Make width and prec arrays.
886 (directive::set_width, directive::set_precision): Call get_int_range.
887 (format_integer, format_floating): Handle width and precision ranges.
888 (format_string, parse_directive): Same.
890 2017-01-26 Jakub Jelinek <jakub@redhat.com>
893 * dwarf2out.c (generate_skeleton_bottom_up): For children with
894 comdat_type_p set, just clone them, but keep the children in the
898 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
899 which have direct callers with -fvar-tracking-assignments enabled
901 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
902 inside of type units.
904 2017-01-26 Martin Sebor <msebor@redhat.com>
907 * gimple-ssa-sprintf.c (struct result_range): Add likely and
909 (struct format_result): Replace number_chars, number_chars_min,
910 and number_chars_max with a single member of struct result_range.
912 (format_result::operator+=): Adjust.
913 (struct fmtresult): Remove bounded. Handle likely and unlikely
915 (fmtresult::adjust_for_width_or_precision): New function.
916 (fmtresult:type_max_digits): New function.
917 (bytes_remaining): Handle likely and unlikely counters.
918 (min_bytes_remaining): Remove.
919 (format_percent): Simplify.
920 (format_integer, format_floating): Set likely and unlikely counters.
921 (get_string_length, format_character, format_string): Same.
922 (format_plain, should_warn_p): New function.
923 (maybe_warn): Call should_warn_p. Update diagnostic messages
924 and handle those for all directives, including plain strings.
925 (format_directive): Handle likely and unlikely counters.
926 Remove unnecessary quoting from diagnostics. Add an informational
929 (pass_sprintf_length::compute_format_length): Simplify.
930 (try_substitute_return_value): Handle likely and unlikely counters.
932 2017-01-26 Carl Love <cel@us.ibm.com>
934 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
935 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
937 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
940 * lra-assigns.c (setup_live_pseudos_and_spill_after_risky): Take
941 endianess for subregs into account.
942 * lra-constraints.c (lra_constraints): Do risky transformations
943 always on the first iteration.
944 * lra-lives.c (check_pseudos_live_through_calls): Add arg
945 last_call_used_reg_set.
946 (process_bb_lives): Define and use last_call_used_reg_set.
947 * lra.c (lra): Always continue after lra_constraints on the first
950 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
952 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
954 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
956 2017-01-26 Jakub Jelinek <jakub@redhat.com>
958 * config/i386/avx512fintrin.h (_ktest_mask16_u8,
959 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): Move to ...
960 * config/i386/avx512dqintrin.h (_ktest_mask16_u8,
961 _ktestz_mask16_u8, _ktestc_mask16_u8, _kadd_mask16): ... here.
962 * config/i386/i386-builtin.def (__builtin_ia32_ktestchi,
963 __builtin_ia32_ktestzhi, __builtin_ia32_kaddhi): Use
964 OPTION_MASK_ISA_AVX512DQ instead of OPTION_MASK_ISA_AVX512F.
965 * config/i386/sse.md (SWI1248_AVX512BWDQ2): New mode iterator.
966 (kadd<mode>, ktest<mode>): Use it instead of SWI1248_AVX512BWDQ.
968 2017-01-26 Marek Polacek <polacek@redhat.com>
971 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
972 for the third operand.
974 2017-01-26 Jakub Jelinek <jakub@redhat.com>
977 * omp-low.c (struct omp_context): Add simt_stmt field.
978 (scan_omp_for): Return omp_context *.
979 (scan_omp_simd): Set simt_stmt on the non-_simt_ SIMD
980 context to the _simt_ SIMD stmt.
981 (lower_omp_for): For combined SIMD with sibling _simt_
982 SIMD, make sure to use the same decls in _looptemp_
983 clauses as in the sibling.
985 2017-01-26 David Sherwood <david.sherwood@arm.com>
988 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
991 2017-01-26 Jakub Jelinek <jakub@redhat.com>
994 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
995 emit fld b; fld a; if possible.
997 * brig-builtins.def: Update copyright years.
998 * config/arm/arm_acle_builtins.def: Update copyright years.
1000 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
1003 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
1004 constraint instead of o for the stxsd instruction.
1006 2017-01-25 Carl Love <cel@us.ibm.com>
1008 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
1009 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
1011 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
1013 * doc/invoke.texi (C++ Dialect Options): Fix typo.
1015 2017-01-25 Richard Biener <rguenther@suse.de>
1017 PR tree-optimization/69264
1018 * target.def (vector_alignment_reachable): Improve documentation.
1019 * doc/tm.texi: Regenerate.
1020 * targhooks.c (default_builtin_vector_alignment_reachable): Simplify
1022 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Revert
1023 earlier changes with respect to TYPE_USER_ALIGN.
1024 (vector_alignment_reachable_p): Likewise. Improve dumping.
1026 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1029 * config/arm/arm.md (xordi3): Force constant operand into a register
1032 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1034 * doc/invoke.texi (-fstore-merging): Correct default optimization
1035 levels at which it is enabled.
1036 (-O): Move -fstore-merging from list to...
1039 2017-01-25 Richard Biener <rguenther@suse.de>
1042 * omp-expand.c: Include debug.h.
1043 (expand_omp_taskreg): Make sure to generate early debug before
1044 outlining anything from a function.
1045 (expand_omp_target): Likewise.
1046 (grid_expand_target_grid_body): Likewise.
1048 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
1051 * asan.c (get_translation_unit_decl): New function.
1052 (asan_add_global): Extract modules file name from globals
1053 TRANSLATION_UNIT_DECL name.
1055 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
1058 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
1059 for long calls with APCS frame and VFP.
1061 2017-01-24 David Malcolm <dmalcolm@redhat.com>
1063 * cfg.c (original_copy_tables_initialized_p): New function.
1064 * cfg.h (original_copy_tables_initialized_p): New decl.
1065 * cfgrtl.c (relink_block_chain): Guard the call to
1066 free_original_copy_tables with a call to
1067 original_copy_tables_initialized_p.
1068 * cgraph.h (symtab_node::native_rtl_p): New decl.
1069 * cgraphunit.c (symtab_node::native_rtl_p): New function.
1070 (symtab_node::needed_p): Don't assert for early assembly output
1071 for __RTL functions.
1072 (cgraph_node::finalize_function): Set "force_output" for __RTL
1074 (cgraph_node::analyze): Bail out early for __RTL functions.
1075 (analyze_functions): Update assertion to support __RTL functions.
1076 (cgraph_node::expand): Bail out early for __RTL functions.
1077 * final.c (rest_of_clean_state): Don't call delete_tree_ssa for
1079 * function.h (struct function): Update comment for field
1081 * gimple-expr.c: Include "tree-pass.h".
1082 (gimple_has_body_p): Return false for __RTL functions.
1083 * Makefile.in (OBJS): Add run-rtl-passes.o.
1084 * pass_manager.h (gcc::pass_manager::get_rest_of_compilation): New
1086 (gcc::pass_manager::get_clean_slate): New accessor.
1087 * passes.c: Include "insn-addr.h".
1088 (should_skip_pass_p): Add logging. Update logic for running
1089 "expand" to be compatible with both __GIMPLE and __RTL. Guard
1090 property-provider override so it is only done for gimple passes.
1092 (skip_pass): New function.
1093 (execute_one_pass): Call skip_pass when skipping passes.
1094 * read-md.c (md_reader::read_char): Support filtering
1095 the input to a subset of line numbers.
1096 (md_reader::md_reader): Initialize fields
1097 m_first_line and m_last_line.
1098 (md_reader::read_file_fragment): New function.
1099 * read-md.h (md_reader::read_file_fragment): New decl.
1100 (md_reader::m_first_line): New field.
1101 (md_reader::m_last_line): New field.
1102 * read-rtl-function.c (function_reader::create_function): Only
1103 create cfun if it doesn't already exist. Set PROP_rtl on cfun's
1104 curr_properties. Set DECL_INITIAL to a dummy block.
1105 (read_rtl_function_body_from_file_range): New function.
1106 * read-rtl-function.h (read_rtl_function_body_from_file_range):
1108 * run-rtl-passes.c: New file.
1109 * run-rtl-passes.h: New file.
1111 2017-01-24 Jeff Law <law@redhat.com>
1113 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
1116 2017-01-24 Bin Cheng <bin.cheng@arm.com>
1118 PR tree-optimization/79159
1119 * tree-ssa-loop-niter.c (get_cst_init_from_scev): New function.
1120 (record_nonwrapping_iv): Improve boundary using above function if no
1121 value range information.
1123 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
1124 Martin Jambor <mjambor@suse.cz>
1126 * brig-builtins.def: New file.
1127 * builtins.def (DEF_HSAIL_BUILTIN): New macro.
1128 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
1129 (DEF_HSAIL_SAT_BUILTIN): Likewise.
1130 (DEF_HSAIL_INTR_BUILTIN): Likewise.
1131 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
1132 * builtin-types.def (BT_INT8): New.
1133 (BT_INT16): Likewise.
1134 (BT_UINT8): Likewise.
1135 (BT_UINT16): Likewise.
1136 (BT_FN_ULONG): Likewise.
1137 (BT_FN_UINT_INT): Likewise.
1138 (BT_FN_UINT_ULONG): Likewise.
1139 (BT_FN_UINT_LONG): Likewise.
1140 (BT_FN_UINT_PTR): Likewise.
1141 (BT_FN_ULONG_PTR): Likewise.
1142 (BT_FN_INT8_FLOAT): Likewise.
1143 (BT_FN_INT16_FLOAT): Likewise.
1144 (BT_FN_UINT32_FLOAT): Likewise.
1145 (BT_FN_UINT16_FLOAT): Likewise.
1146 (BT_FN_UINT8_FLOAT): Likewise.
1147 (BT_FN_UINT64_FLOAT): Likewise.
1148 (BT_FN_UINT16_UINT32): Likewise.
1149 (BT_FN_UINT32_UINT16): Likewise.
1150 (BT_FN_UINT16_UINT16_UINT16): Likewise.
1151 (BT_FN_INT_PTR_INT): Likewise.
1152 (BT_FN_UINT_PTR_UINT): Likewise.
1153 (BT_FN_LONG_PTR_LONG): Likewise.
1154 (BT_FN_ULONG_PTR_ULONG): Likewise.
1155 (BT_FN_VOID_UINT64_UINT64): Likewise.
1156 (BT_FN_UINT8_UINT8_UINT8): Likewise.
1157 (BT_FN_INT8_INT8_INT8): Likewise.
1158 (BT_FN_INT16_INT16_INT16): Likewise.
1159 (BT_FN_INT_INT_INT): Likewise.
1160 (BT_FN_UINT_FLOAT_UINT): Likewise.
1161 (BT_FN_FLOAT_UINT_UINT): Likewise.
1162 (BT_FN_ULONG_UINT_UINT): Likewise.
1163 (BT_FN_ULONG_UINT_PTR): Likewise.
1164 (BT_FN_ULONG_ULONG_ULONG): Likewise.
1165 (BT_FN_UINT_UINT_UINT): Likewise.
1166 (BT_FN_VOID_UINT_PTR): Likewise.
1167 (BT_FN_UINT_UINT_PTR: Likewise.
1168 (BT_FN_UINT32_UINT64_PTR): Likewise.
1169 (BT_FN_INT_INT_UINT_UINT): Likewise.
1170 (BT_FN_UINT_UINT_UINT_UINT): Likewise.
1171 (BT_FN_UINT_UINT_UINT_PTR): Likewise.
1172 (BT_FN_UINT_ULONG_ULONG_UINT): Likewise.
1173 (BT_FN_ULONG_ULONG_ULONG_ULONG): Likewise.
1174 (BT_FN_LONG_LONG_UINT_UINT): Likewise.
1175 (BT_FN_ULONG_ULONG_UINT_UINT): Likewise.
1176 (BT_FN_VOID_UINT32_UINT64_PTR): Likewise.
1177 (BT_FN_VOID_UINT32_UINT32_PTR): Likewise.
1178 (BT_FN_UINT_UINT_UINT_UINT_UINT): Likewise.
1179 (BT_FN_UINT_FLOAT_FLOAT_FLOAT_FLOAT): Likewise.
1180 (BT_FN_ULONG_ULONG_ULONG_UINT_UINT): Likewise.
1181 * doc/frontends.texi: List BRIG FE.
1182 * doc/install.texi (Testing): Add BRIG tesring requirements.
1183 * doc/invoke.texi (Overall Options): Mention BRIG.
1184 * doc/standards.texi (Standards): Doucment BRIG HSA version.
1186 2017-01-24 Richard Biener <rguenther@suse.de>
1188 PR translation/79208
1189 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
1191 2017-01-24 Martin Jambor <mjambor@suse.cz>
1194 * ipa-prop.c (ipa_free_all_node_params): Call summary destructor.
1195 * ipa-prop.c (ipa_node_params_t::insert): Initialize fields known_csts
1198 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
1201 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
1202 casts from signed to unsigned really don't have a range.
1204 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
1206 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
1207 GMP_RNDx for compatiblity.
1209 2017-01-24 Martin Liska <mliska@suse.cz>
1212 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
1213 that would prevent us to call alloca with -1 as argument.
1215 2017-01-24 Jakub Jelinek <jakub@redhat.com>
1217 * dwarf2out.c (output_compilation_unit_header, output_file_names):
1218 Avoid -Wformat-security warning.
1220 2017-01-23 Andrew Pinski <apinski@cavium.com>
1222 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
1225 2017-01-23 Martin Sebor <msebor@redhat.com>
1228 * gimple-ssa-sprintf.c (warn_level): New global.
1229 (format_integer): Use it here and throughout the rest of the file.
1230 Use the same switch to compute sign as base.
1231 (maybe_warn): New function.
1232 (format_directive): Factor out warnings into maybe_warn.
1233 Add debugging output. Use warn_level.
1234 (add_bytes): Use warn_level.
1235 (pass_sprintf_length::compute_format_length): Add debugging output.
1236 (try_substitute_return_value): Same.
1237 (pass_sprintf_length::handle_gimple_call): Set and use warn_level.
1240 * gimple-ssa-sprintf.c (struct format_result): Remove constant member.
1241 (struct fmtresult, format_integer, format_floating): Adjust.
1242 (fmtresult::fmtresult): Set max correctly in two argument ctor.
1243 (get_string_length, format_string,format_directive): Same.
1244 (pass_sprintf_length::compute_format_length): Same.
1245 (try_substitute_return_value): Simplify slightly.
1248 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust formatting.
1249 (fmtresult::operator+=): Outlined.
1250 (struct fmtresult): Add ctors.
1251 (struct conversion_spec): Rename...
1252 (struct directive): ...to this. Add and remove data members.
1253 (directive::set_width, directive::set_precision): New functions.
1254 (format_percent): Use fmtresult ctor.
1255 (get_width_and_precision): Remove.
1256 (format_integer): Make naming changes. Avoid computing width and
1258 (format_floating): Same. Adjust indentation.
1259 (format_character, format_none): New functions.
1260 (format_string): Moved character handling to format_character.
1261 (format_directive): Remove arguments, change return type.
1262 (parse_directive): New function.
1263 (pass_sprintf_length::compute_format_length): Move directive
1264 parsing to parse_directive.
1266 2017-01-23 Jakub Jelinek <jakub@redhat.com>
1268 * tree.h (assign_assembler_name_if_neeeded): Rename to ...
1269 (assign_assembler_name_if_needed): ... this.
1270 * tree.c (assign_assembler_name_if_neeeded): Rename to ...
1271 (assign_assembler_name_if_needed): ... this.
1272 (free_lang_data_in_cgraph): Adjust callers.
1273 * cgraphunit.c (cgraph_node::analyze): Likewise.
1274 * omp-expand.c (expand_omp_taskreg, expand_omp_target):
1277 2017-01-23 Richard Biener <rguenther@suse.de>
1279 PR tree-optimization/79088
1280 PR tree-optimization/79188
1281 * tree-ssa-threadupdate.c (mark_threaded_blocks): Move code
1282 resetting loop bounds after last path deletion. Reset loop
1283 bounds of the target loop, make code match the comments.
1284 * tree-ssa-threadbackwards.c (pass_early_thread_jumps::execute):
1285 Make sure loops need no fixups.
1287 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
1289 * config/rs6000/rs6000-builtin.def (VSIEDPF): Add scalar insert
1290 exponent support with double type for first argument.
1291 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Changed
1292 type returned by __builtin_vec_extract_sig,
1293 __builtin_vec_extract_sig_sp, and __builtin_vec_extract_sig_dp
1294 functions from "vector int" to "vector unsigned int" or from
1295 "vector long long int" to "vector unsigned long long int".
1296 Changed type returned by __builtin_vec_extract_exp,
1297 __builtin_vec_extract_exp_sp, and __builtin_vec_extract_exp_dp
1298 functions from "vector int" to "vector unsigned int" or from
1299 "vector long long int" to "vector unsigned long long int".
1300 Changed return type of __builtin_vec_test_data_class,
1301 __builtin_vec_test_data_class_sp, and
1302 __builtin_vec_test_data_class_dp from "vector int" to
1303 "vector bool int" or from "vector long long int" to "vector bool
1304 long long int" and changed second argument type from "unsigned
1305 int" to "int". Added new overloaded function forms "vector float
1306 __builtin_vec_insert_exp (vector float, vector unsigned int)" and
1307 "vector float __builtin_vec_insert_exp_sp (vector float, vector
1308 unsigned int)" and "vector double __builtin_vec_insert_exp (vector
1309 double, vector unsigned long long int)" and "vector double
1310 __builtin_vec_insert_exp_dp (vector double, vector unsigned long
1311 long int)". Changed return type of
1312 __builtin_scalar_test_data_class and
1313 __builtin_scalar_test_data_class_sp and
1314 __builtin_scalar_test_data_class_dp from "unsigned int" to "bool
1315 int" and changed second argument from "unsigned int" to "int".
1316 Changed type returned by __builtin_scalar_test_neg,
1317 __builtin_scalar_test_neg_sp, and __builtin_scalar_test_neg_dp
1318 from "int" to "bool int". Added new overloaded function form
1319 "double __builtin_scalar_insert_exp (double, unsigned long long int)".
1320 * config/rs6000/vsx.md (xsiexpdpf): New insn for scalar insert
1321 exponent double-precision with floating point first argument.
1322 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust
1323 documentation of scalar_test_data_class, scalar_test_neg,
1324 scalar_extract_sig, scalar_extract_exp, scalar_insert_exp,
1325 vector_extract_exp, vec_extract_sig, vec_insert_exp, and
1326 vec_test_data_class built-in functions to reflect refinements in
1327 their type signatures.
1329 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
1331 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
1333 (aarch64_elf_asm_destructor): Likewise.
1335 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
1337 PR rtl-optimization/78634
1338 * config/i386/i386.c (ix86_max_noce_ifcvt_seq_cost): New function.
1339 (TARGET_MAX_NOCE_IFCVT_SEQ_COST): Define.
1340 * ifcvt.c (noce_try_cmove): Add missing cost check.
1342 PR rtl-optimization/71724
1343 * combine.c (if_then_else_cond): Look for situations where it is
1344 beneficial to undo the work of one of the recursive calls.
1346 2017-01-23 Bin Cheng <bin.cheng@arm.com>
1348 PR tree-optimization/70754
1349 * tree-predcom.c (stmt_combining_refs): New parameter INSERT_BEFORE.
1350 (reassociate_to_the_same_stmt): New parameter INSERT_BEFORE. Insert
1351 combined stmt before it if not NULL.
1352 (combine_chains): Process refs reversely and compute dominance point
1355 2017-01-23 Martin Liska <mliska@suse.cz>
1357 PR tree-optimization/79196
1358 * tree-ssa-strlen.c (fold_strstr_to_memcmp): Rename to ...
1359 (fold_strstr_to_strncmp): ... this. Fold the pattern to strncmp
1361 (strlen_optimize_stmt): Call the renamed function.
1363 2017-01-23 Michael Matz <matz@suse.de>
1365 PR tree-optimization/78384
1366 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
1368 2017-01-23 Richard Biener <rguenther@suse.de>
1370 PR tree-optimization/79186
1371 * tree-vrp.c (register_new_assert_for): Make sure we've seen
1372 both incoming edges before moving an assert.
1374 2017-01-23 Martin Jambor <mjambor@suse.cz>
1376 * ipa-prop.c (load_from_param_1): Removed.
1377 (load_from_unmodified_param): Bits from load_from_param_1 put back
1379 (load_from_param): Removed.
1380 (compute_complex_assign_jump_func): Removed stmt2 and just replaced it
1381 with stmt. Reverted back to use of load_from_unmodified_param.
1383 2017-01-23 Martin Jambor <mjambor@suse.cz>
1386 * ipa-prop.h (ipa_param_descriptor): Anotate with with GTY(()).
1387 (ipa_node_params): Annotate with GTY((for_user)). Make descriptors
1388 field a pointer to garbage collected vector, mark lattices and
1389 ipcp_orig_node with GTY((skip)).
1390 (ipa_get_param_count): Adjust to descriptors being a pointer.
1391 (ipa_get_param): Likewise.
1392 (ipa_get_type): Likewise.
1393 (ipa_get_param_move_cost): Likewise.
1394 (ipa_set_param_used): Likewise.
1395 (ipa_get_controlled_uses): Likewise.
1396 (ipa_set_controlled_uses): Likewise.
1397 (ipa_is_param_used): Likewise.
1398 (ipa_node_params_t): Move into garbage collector. New methods insert
1400 (ipa_node_params_sum): Annotate wth GTY(()).
1401 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
1403 (ipa_load_from_parm_agg): Adjust declaration.
1404 * ipa-icf.c (param_used_p): Adjust to descriptors being a pointer.
1405 * ipa-profile.c (ipa_profile): Likewise.
1406 * ipa-prop.c (ipa_get_param_decl_index_1): Likewise.
1407 (ipa_populate_param_decls): Make descriptors parameter garbage
1409 (ipa_dump_param): Adjust to descriptors being a pointer.
1410 (ipa_alloc_node_params): Likewise.
1411 (ipa_initialize_node_params): Likewise.
1412 (load_from_param_1): Make descriptors parameter garbage collected.
1413 (load_from_unmodified_param): Likewise.
1414 (load_from_param): Likewise.
1415 (ipa_load_from_parm_agg): Likewise.
1416 (ipa_node_params::~ipa_node_params): Removed.
1417 (ipa_free_all_node_params): Remove call to delete operator.
1418 (ipa_node_params_t::insert): New.
1419 (ipa_node_params_t::remove): Likewise.
1420 (ipa_node_params_t::duplicate): Adjust to descriptors being a pointer,
1421 copy known_csts and known_contexts vectors.
1422 (ipa_read_node_info): Adjust to descriptors being a pointer.
1423 (ipcp_modif_dom_walker): Make m_descriptors field garbage
1425 (ipcp_transform_function): Make descriptors variable garbage
1428 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
1430 * config/i386/avx512bwintrin.h: Add k-mask test, kortest intrinsics.
1431 * config/i386/avx512dqintrin.h: Ditto.
1432 * config/i386/avx512fintrin.h: Ditto.
1433 * gcc/config/i386/i386.c: Handle new builtins.
1434 * config/i386/i386-builtin.def: Add new builtins.
1435 * config/i386/sse.md (ktest<mode>, kortest<mode>): New.
1436 (UNSPEC_KORTEST, UNSPEC_KTEST): New.
1438 2017-01-23 Jakub Jelinek <jakub@redhat.com>
1439 Martin Liska <mliska@suse.cz>
1441 * asan.h: Define ASAN_USE_AFTER_SCOPE_ATTRIBUTE.
1442 * asan.c (asan_expand_poison_ifn): Support stores and use
1443 appropriate ASAN report function.
1444 * internal-fn.c (expand_ASAN_POISON_USE): New function.
1445 * internal-fn.def (ASAN_POISON_USE): Declare.
1446 * tree-into-ssa.c (maybe_add_asan_poison_write): New function.
1447 (maybe_register_def): Create ASAN_POISON_USE when sanitizing.
1448 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove
1449 ASAN_POISON calls w/o LHS.
1450 * tree-ssa.c (execute_update_addresses_taken): Create clobber
1451 for ASAN_MARK (UNPOISON, &x, ...) in order to prevent usage of a LHS
1452 from ASAN_MARK (POISON, &x, ...) coming to a PHI node.
1453 * gimplify.c (asan_poison_variables): Add attribute
1454 use_after_scope_memory to variables that really needs to live
1456 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
1457 having the attribute.
1459 2017-01-23 Martin Liska <mliska@suse.cz>
1461 * asan.c (create_asan_shadow_var): New function.
1462 (asan_expand_poison_ifn): Likewise.
1463 * asan.h (asan_expand_poison_ifn): New declaration.
1464 * internal-fn.c (expand_ASAN_POISON): Likewise.
1465 * internal-fn.def (ASAN_POISON): New builtin.
1466 * sanopt.c (pass_sanopt::execute): Expand
1467 asan_expand_poison_ifn.
1468 * tree-inline.c (copy_decl_for_dup_finish): Make function
1470 * tree-inline.h (copy_decl_for_dup_finish): Likewise.
1471 * tree-ssa.c (is_asan_mark_p): New function.
1472 (execute_update_addresses_taken): Rewrite local variables
1473 (identified just by use-after-scope as addressable) into SSA.
1475 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1477 * doc/install.texi (Specific): opensource.apple.com uses https
1478 now. Remove trailing slash.
1480 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1482 * README.Portability: Remove note on an Irix compatibility issue.
1484 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
1486 * gcov.c (INCLUDE_ALGORITHM): Define.
1487 (INCLUDE_VECTOR): Define.
1488 No longer include <vector> and <algorithm> directly.
1490 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
1492 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
1494 * doc/invoke.texi (Code Gen Options): Ditto.
1496 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
1499 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
1501 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
1503 rtl-optimization/79125
1504 * cprop.c (local_cprop_pass): Handle cases where we make an
1507 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
1511 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
1512 read from, for big endian.
1514 2017-01-20 Jiong Wang <jiong.wang@arm.com>
1516 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
1517 register pauth builtins for LP64 only.
1519 2017-01-20 Marek Polacek <polacek@redhat.com>
1522 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
1525 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
1527 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
1529 * omp-offload.c (pass_omp_device_lower::gate): Use PROP_gimple_lomp_dev.
1530 * passes.c (dump_properties): Handle PROP_gimple_lomp_dev.
1531 * tree-inline.c (expand_call_inline): Propagate PROP_gimple_lomp_dev.
1533 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1536 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
1537 in big-endian mode when they are not a single duplicated value.
1539 2017-01-20 Richard Biener <rguenther@suse.de>
1541 * BASE-VER: Bump to 7.0.1.
1543 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
1545 * omp-low.c (omplow_simd_context): New struct. Use it...
1546 (lower_rec_simd_input_clauses): ...here and...
1547 (lower_rec_input_clauses): ...here to hold common data. Adjust all
1548 references to idx, lane, max_vf, is_simt.
1550 2017-01-20 Graham Markall <graham.markall@embecosm.com>
1552 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
1555 2017-01-20 Martin Jambor <mjambor@suse.cz>
1557 * hsa.h: Renaed to hsa-common.h. Adjusted a comment.
1558 * hsa.c: Renaed to hsa-common.c. Change include of gt-hsa.h to
1560 * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
1561 (GTFILES): Rename hsa.c to hsa-common.c.
1562 * hsa-brig.c: Change include of hsa.h to hsa-common.h.
1563 * hsa-dump.c: Likewise.
1564 * hsa-gen.c: Likewise.
1565 * hsa-regalloc.c: Likewise.
1566 * ipa-hsa.c: Likewise.
1567 * omp-expand.c: Likewise.
1568 * omp-low.c: Likewise.
1569 * toplev.c: Likewise.
1571 2017-01-20 Marek Polacek <polacek@redhat.com>
1574 * doc/invoke.texi: Document -Wduplicated-branches.
1575 * fold-const.c (operand_equal_p): Handle MODIFY_EXPR, INIT_EXPR,
1576 COMPOUND_EXPR, PREDECREMENT_EXPR, PREINCREMENT_EXPR,
1577 POSTDECREMENT_EXPR, POSTINCREMENT_EXPR, CLEANUP_POINT_EXPR, EXPR_STMT,
1578 STATEMENT_LIST, and RETURN_EXPR. For non-pure non-const functions
1579 return 0 only when not OEP_LEXICOGRAPHIC.
1580 (fold_build_cleanup_point_expr): Use the expression
1581 location when building CLEANUP_POINT_EXPR.
1582 * tree-core.h (enum operand_equal_flag): Add OEP_LEXICOGRAPHIC.
1583 * tree.c (add_expr): Handle error_mark_node.
1585 2017-01-20 Martin Liska <mliska@suse.cz>
1588 * tree-profile.c (init_ic_make_global_vars): Do not call
1590 (gimple_init_gcov_profiler): Likewise.
1592 2017-01-20 Martin Liska <mliska@suse.cz>
1595 * cgraph.h (maybe_create_reference): Remove argument and
1597 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
1599 * ipa-cp.c (create_specialized_node): Likewise.
1600 * symtab.c (symtab_node::maybe_create_reference): Handle
1601 VAR_DECLs and ADDR_EXPRs and select ipa_ref_use type.
1603 2017-01-20 Martin Liska <mliska@suse.cz>
1605 * read-rtl-function.c (function_reader::create_function): Use
1606 build_decl instread of build_decl_stat.
1608 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
1610 * config/i386/avx512bwintrin.h: Add k-mask registers shift intrinsics.
1611 * config/i386/avx512dqintrin.h: Ditto.
1612 * config/i386/avx512fintrin.h: Ditto.
1613 * config/i386/i386-builtin-types.def: Add new types.
1614 * gcc/config/i386/i386.c: Handle new types.
1615 * config/i386/i386-builtin.def (__builtin_ia32_kshiftliqi)
1616 (__builtin_ia32_kshiftlihi, __builtin_ia32_kshiftlisi)
1617 (__builtin_ia32_kshiftlidi, __builtin_ia32_kshiftriqi)
1618 (__builtin_ia32_kshiftrihi, __builtin_ia32_kshiftrisi)
1619 (__builtin_ia32_kshiftridi): New.
1620 * config/i386/sse.md (k<code><mode>): Rename *k<code><mode>.
1622 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
1626 * config/rs6000/rs6000.c (TARGET_STACK_PROTECT_GUARD): Unconditionally
1627 define to rs6000_init_stack_protect_guard.
1628 (rs6000_init_stack_protect_guard): New function.
1630 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
1631 Yunqiang Su <yunqiang.su@imgtec.com>
1633 * config.gcc (supported_defaults): Add madd4.
1634 (with_madd4): Add validation.
1635 (all_defaults): Add madd4.
1636 * config/mips/mips.opt (mmadd4): New option.
1637 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1639 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
1641 (ISA_HAS_UNFUSED_MADD4): Gate with mips_madd4.
1642 (ISA_HAS_FUSED_MADD4): Likewise.
1643 * gcc/doc/invoke.texi (-mmadd4): Document the new option.
1644 * gcc/doc/install.texi (--with-madd4): Document the new option.
1646 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1648 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): New
1649 entries for AARCH64_PAUTH_BUILTIN_XPACLRI,
1650 AARCH64_PAUTH_BUILTIN_PACIA1716, AARCH64_PAUTH_BUILTIN_AUTIA1716.
1651 (aarch64_init_pauth_hint_builtins): New.
1652 (aarch64_init_builtins): Call aarch64_init_pauth_hint_builtins.
1653 (aarch64_expand_builtin): Expand new builtins.
1655 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1657 * reg-notes.def (CFA_TOGGLE_RA_MANGLE): New reg-note.
1658 * combine-stack-adj.c (no_unhandled_cfa): Handle
1659 REG_CFA_TOGGLE_RA_MANGLE.
1660 * dwarf2cfi.c (dwarf2out_frame_debug): Handle REG_CFA_TOGGLE_RA_MANGLE.
1661 * config/aarch64/aarch64.c (aarch64_expand_prologue): Generates DWARF
1662 info for return address signing.
1663 (aarch64_expand_epilogue): Likewise.
1665 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1667 * config/aarch64/aarch64-opts.h (aarch64_function_type): New enum.
1668 * config/aarch64/aarch64-protos.h
1669 (aarch64_return_address_signing_enabled): New declaration.
1670 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled):
1672 (aarch64_expand_prologue): Sign return address before it's pushed onto
1674 (aarch64_expand_epilogue): Authenticate return address fetched from
1676 (aarch64_override_options): Sanity check for ILP32 and ISA level.
1677 (aarch64_attributes): New function attributes for "sign-return-address".
1678 * config/aarch64/aarch64.md (UNSPEC_AUTI1716, UNSPEC_AUTISP,
1679 UNSPEC_PACI1716, UNSPEC_PACISP, UNSPEC_XPACLRI): New unspecs.
1680 ("*do_return"): Generate combined instructions according to key index.
1681 ("<pauth_mnem_prefix>sp", "<pauth_mnem_prefix1716", "xpaclri"): New.
1682 * config/aarch64/iterators.md (PAUTH_LR_SP, PAUTH_17_16): New integer
1684 (pauth_mnem_prefix, pauth_hint_num_a): New integer attributes.
1685 * config/aarch64/aarch64.opt (msign-return-address=): New.
1686 * doc/extend.texi (AArch64 Function Attributes): Documents
1687 "sign-return-address=".
1688 * doc/invoke.texi (AArch64 Options): Documents "-msign-return-address=".
1690 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
1692 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
1693 overall option summary.
1695 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1697 * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
1698 * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
1699 AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
1700 * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
1702 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1704 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
1705 -mpower9-minmax by default for -mcpu=power9.
1706 (ISA_3_MASKS_IEEE): Require -mvsx-small-integer to enable IEEE
1707 128-bit floating point.
1709 2017-01-20 Alan Modra <amodra@gmail.com>
1711 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
1712 optimizing for size.
1714 2017-01-20 Alan Modra <amodra@gmail.com>
1717 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
1718 for strcmp and strncmp from corresponding builtin decl.
1720 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
1722 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
1723 instead of i386/rtems-64.h.
1724 * config/i386/rtems-64.h: Remove.
1726 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
1730 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
1732 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
1734 2017-01-19 Tamar Christina <tamar.christina@arm.com>
1736 * config/aarch64/aarch64.c (aarch64_simd_gen_const_vector_dup):
1737 Change int to HOST_WIDE_INT.
1738 * config/aarch64/aarch64-protos.h
1739 (aarch64_simd_gen_const_vector_dup): Likewise.
1740 * config/aarch64/aarch64-simd.md: Add copysign<mode>3.
1742 2017-01-19 David Malcolm <dmalcolm@redhat.com>
1744 * langhooks-def.h (lhd_type_for_size): New decl.
1745 (LANG_HOOKS_TYPE_FOR_SIZE): Define as lhd_type_for_size.
1746 * langhooks.c (lhd_type_for_size): New function, taken from
1749 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
1751 * config/rs6000/power9.md (power9-alu): Remove 'cmp' type and add
1752 define_bypass for CR latency.
1753 (power9-cracked-alu): Update bypass latency and remove power9-branch.
1754 (power9-alu2): Add define_bypass for CR latency.
1756 (power9-mul): Update insn latency.
1757 (power9-mul-compare): Update insn latency, bypass latency and remove
1760 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1762 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
1764 * config/aarch64/aarch64.md
1765 (aarch64_reload_movcp<GPF_TF:mode><P:mode>): Delete reference to
1766 aarch64_nopcrelative_literal_loads.
1767 (aarch64_reload_movcp<VALL:mode><P:mode>): Likewise.
1769 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
1771 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
1773 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
1775 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
1778 * config.gcc (supported_defaults): Add lxc1-sxc1.
1779 (with_lxc1_sxc1): Add validation.
1780 (all_defaults): Add lxc1-sxc1.
1781 * config/mips/mips.opt (mlxc1-sxc1): New option.
1782 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for
1784 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
1785 __mips_no_lxc1_sxc1.
1786 (ISA_HAS_LXC1_SXC1): Gate with mips_lxc1_sxc1.
1787 * gcc/doc/invoke.texi (-mlxc1-sxc1): Document the new option.
1788 * doc/install.texi (--with-lxc1-sxc1): Document the new option.
1790 2017-01-19 Richard Biener <rguenther@suse.de>
1792 PR tree-optimization/72488
1793 * tree-ssa-sccvn.c (run_scc_vn): When we abort the VN make
1794 sure to restore SSA info.
1795 * tree-ssa.c (verify_ssa): Verify SSA info is not shared.
1797 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
1799 PR rtl-optimization/79121
1800 * expr.c (expand_expr_real_2, case LSHIFT_EXPR): Look at the signedness
1801 of the inner type when shifting an extended value.
1803 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
1806 * symtab.c (symtab_node::equal_address_to): Fix comparing of
1807 interposable aliases.
1809 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
1812 * config/rs6000/spe.md (mov_si<mode>_e500_subreg0): Fix constraints.
1813 Use the evmergelohi instruction.
1814 (mov_si<mode>_e500_subreg4_2_le): Likewise.
1815 (mov_sitf_e500_subreg8_2_be): Likewise.
1816 (mov_sitf_e500_subreg12_2_le): Likewise.
1817 (mov_si<mode>_e500_subreg0_2_le): Fix constraints.
1818 (mov_si<mode>_e500_subreg4_2_be): Likewise.
1819 (mov_sitf_e500_subreg8_2_le): Likewise.
1820 (mov_sitf_e500_subreg12_2_be): Likewise.
1822 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1824 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
1825 attribute from vecsimple to vecperm.
1826 (altivec_vbpermq2): Likewise.
1828 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1831 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
1833 2017-01-18 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
1834 * config/rs6000/rs6000-protos.h (expand_strn_compare): Add arg.
1835 * config/rs6000/rs6000.c (expand_strn_compare): Add ability to expand
1836 strcmp. Fix bug where comparison didn't stop with zero byte. Fix
1837 case where N arg is SIZE_MAX.
1838 * config/rs6000/rs6000.md (cmpstrnsi): Args to expand_strn_compare.
1839 (cmpstrsi): Add pattern.
1841 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1843 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add
1844 __builtin_vec_revb builtins.
1845 * config/rs6000/rs6000-builtins.def (P9V_BUILTIN_XXBRQ_V16QI): Add
1846 built-in functions to support generation of the ISA 3.0 XXBR<x>
1847 vector byte reverse instructions.
1848 (P9V_BUILTIN_XXBRQ_V1TI): Likewise.
1849 (P9V_BUILTIN_XXBRD_V2DI): Likewise.
1850 (P9V_BUILTIN_XXBRD_V2DF): Likewise.
1851 (P9V_BUILTIN_XXBGW_V4SI): Likewise.
1852 (P9V_BUILTIN_XXBGW_V4SF): Likewise.
1853 (P9V_BUILTIN_XXBGH_V8HI): Likewise.
1854 (P9V_BUILTIN_VEC_REVB): Likewise.
1855 * config/rs6000/vsx.md (p9_xxbrq_v1ti): New insns/expanders to
1856 generate the ISA 3.0 XXBR<x> vector byte reverse instructions.
1857 (p9_xxbrq_v16qi): Likewise.
1858 (p9_xxbrd_<mode>, VSX_D iterator): Likewise.
1859 (p9_xxbrw_<mode>, VSX_W iterator): Likewise.
1860 (p9_xxbrh_v8hi): Likewise.
1861 * config/rs6000/altivec.h (vec_revb): Define if ISA 3.0.
1862 * doc/extend.texi (RS/6000 Altivec Built-ins): Document the
1863 vec_revb built-in functions.
1865 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
1867 PR rtl-optimization/78952
1868 * config/i386/i386.md (any_extract): New code iterator.
1869 (*insvqi_2): Use any_extract for source operand.
1870 (*insvqi_3): Use any_shiftrt for source operand.
1872 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
1874 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
1876 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
1878 2017-01-18 Matthias Klose <doko@ubuntu.com>
1880 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
1882 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1884 * config/rs6000/altivec.h (vec_bperm): Change #define.
1885 * config/rs6000/altivec.md (UNSPEC_VBPERMD): New enum constant.
1886 (altivec_vbpermq2): New define_insn.
1887 (altivec_vbpermd): Likewise.
1888 * config/rs6000/rs6000-builtin.def (VBPERMQ2): New monomorphic
1890 (VBPERMD): Likewise.
1891 (VBPERM): New polymorphic function interface.
1892 * config/rs6000/r6000-c.c (altivec_overloaded_builtins_table):
1893 Add entries for P9V_BUILTIN_VEC_VBPERM.
1894 * doc/extend.texi: Add interfaces for vec_bperm.
1896 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1898 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Downcase
1899 first letter of error messages.
1900 (s390_resolve_overloaded_builtin): Likewise.
1901 * config/s390/s390.c (s390_expand_builtin): Likewise.
1902 (s390_invalid_arg_for_unprototyped_fn): Likewise.
1903 (s390_valid_target_attribute_inner_p): Likewise.
1904 * config/s390/s390.md ("tabort"): Likewise.
1906 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
1908 * config/mips/mips.h (ISA_HAS_DIV3): Remove unused macro.
1909 (ISA_AVOID_DIV_HILO): New macro.
1910 (ISA_HAS_DIV): Use new ISA_AVOID_DIV_HILO macro.
1911 (ISA_HAS_DDIV): Likewise.
1913 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1915 * doc/invoke.texi (fabi-version): Correct number of occurrences.
1917 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1919 * doc/invoke.texi (fabi-version): Spelling fix.
1921 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1924 * doc/invoke.texi (fabi-version): Mention mangling fix for
1927 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1930 * doc/invoke.texi (fabi-version): Document discriminator mangling.
1932 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
1935 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
1936 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
1938 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
1940 (stack_protect_test): Ditto.
1941 * config/rs6000/rs6000.opt (mstack-protector-guard=,
1942 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
1944 * doc/invoke.texi (Option Summary) [RS/6000 and PowerPC Options]:
1945 Add -mstack-protector-guard=, -mstack-protector-guard-reg=, and
1946 -mstack-protector-guard-offset=.
1947 (RS/6000 and PowerPC Options): Ditto.
1949 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
1951 * config/i386/i386.h (MASK_CLASS_P): New define.
1952 * config/i386/i386.c (inline_secondary_memory_needed): Ensure that
1953 there are no registers from different register sets also when
1954 mask registers are used. Update function comment.
1955 * config/i386/i386.md (*movsi_internal): Split (*k/*krm) alternative
1956 to (*k/*r) and (*k/*km) alternatives.
1958 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
1960 * config/aarch64/aarch64.md (eh_return): Remove pattern and splitter.
1961 * config/aarch64/aarch64.h (AARCH64_EH_STACKADJ_REGNUM): Remove.
1962 (EH_RETURN_HANDLER_RTX): New define.
1963 * config/aarch64/aarch64.c (aarch64_frame_pointer_required):
1964 Force frame pointer in EH return functions.
1965 (aarch64_expand_epilogue): Add barrier for eh_return.
1966 (aarch64_final_eh_return_addr): Remove.
1967 (aarch64_eh_return_handler_rtx): New function.
1968 * config/aarch64/aarch64-protos.h (aarch64_final_eh_return_addr):
1970 (aarch64_eh_return_handler_rtx): New prototype.
1972 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1974 * config/rs6000/altivec.h (vec_rlmi): New #define.
1975 (vec_vrlnm): Likewise.
1976 (vec_rlnm): Likewise.
1977 * config/rs6000/altivec.md (UNSPEC_VRLMI): New UNSPEC enum value.
1978 (UNSPEC_VRLNM): Likewise.
1979 (VIlong): New mode iterator.
1980 (altivec_vrl<VI_char>mi): New define_insn.
1981 (altivec_vrl<VI_char>nm): Likewise.
1982 * config/rs6000/rs6000-builtin.def (VRLWNM): New monomorphic
1985 (RLNM): New polymorphic function entry.
1986 (VRLWMI): New monomorphic function entry.
1988 (RLMI): New polymorphic function entry.
1989 * config/rs6000/r6000-c.c (altivec_overloaded_builtin_table): Add
1990 new entries for P9V_BUILTIN_VEC_RLMI and P9V_BUILTIN_VEC_RLNM.
1991 * doc/extend.texi: Add description of vec_rlmi, vec_rlnm, and
1994 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1997 * dwarf2out.c (field_byte_offset): Restore the
1998 PCC_BITFIELD_TYPE_MATTERS behavior for INTEGER_CST DECL_FIELD_OFFSET
1999 and DECL_FIELD_BIT_OFFSET. Use fold_build2 instead of build2 + fold.
2000 (analyze_variants_discr, gen_variant_part): Use fold_build2 instead
2003 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
2006 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
2008 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2011 * dwarf2out.c (add_data_member_location_attribute): For constant
2012 offset bitfield emit for -gdwarf-5 DW_AT_data_bit_offset attribute
2013 instead of DW_AT_data_member_location, DW_AT_bit_offset and
2014 DW_AT_byte_size attributes.
2016 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
2018 * config/rs6000/rs6000.c (rs6000_emit_move): Also use a TOC reference
2019 after forcing to constant memory when the code model is medium.
2021 2017-01-17 Julia Koval <julia.koval@intel.com>
2024 * config/i386/avx512fintrin.h
2025 (_mm512_i32gather_ps): Change __addr type to void const*.
2026 (_mm512_mask_i32gather_ps): Ditto.
2027 (_mm512_i32gather_pd): Ditto.
2028 (_mm512_mask_i32gather_pd): Ditto.
2029 (_mm512_i64gather_ps): Ditto.
2030 (_mm512_mask_i64gather_ps): Ditto.
2031 (_mm512_i64gather_pd): Ditto.
2032 (_mm512_mask_i64gather_pd): Ditto.
2033 (_mm512_i32gather_epi32): Ditto.
2034 (_mm512_mask_i32gather_epi32): Ditto.
2035 (_mm512_i32gather_epi64): Ditto.
2036 (_mm512_mask_i32gather_epi64): Ditto.
2037 (_mm512_i64gather_epi32): Ditto.
2038 (_mm512_mask_i64gather_epi32): Ditto.
2039 (_mm512_i64gather_epi64): Ditto.
2040 (_mm512_mask_i64gather_epi64): Ditto.
2041 (_mm512_i32scatter_ps): Change __addr type to void*.
2042 (_mm512_mask_i32scatter_ps): Ditto.
2043 (_mm512_i32scatter_pd): Ditto.
2044 (_mm512_mask_i32scatter_pd): Ditto.
2045 (_mm512_i64scatter_ps): Ditto.
2046 (_mm512_mask_i64scatter_ps): Ditto.
2047 (_mm512_i64scatter_pd): Ditto.
2048 (_mm512_mask_i64scatter_pd): Ditto.
2049 (_mm512_i32scatter_epi32): Ditto.
2050 (_mm512_mask_i32scatter_epi32): Ditto.
2051 (_mm512_i32scatter_epi64): Ditto.
2052 (_mm512_mask_i32scatter_epi64): Ditto.
2053 (_mm512_i64scatter_epi32): Ditto.
2054 (_mm512_mask_i64scatter_epi32): Ditto.
2055 (_mm512_i64scatter_epi64): Ditto.
2056 (_mm512_mask_i64scatter_epi64): Ditto.
2057 * config/i386/avx512pfintrin.h
2058 (_mm512_mask_prefetch_i32gather_pd): Change __addr type to void const*.
2059 (_mm512_mask_prefetch_i32gather_ps): Ditto.
2060 (_mm512_mask_prefetch_i64gather_pd): Ditto.
2061 (_mm512_mask_prefetch_i64gather_ps): Ditto.
2062 (_mm512_prefetch_i32scatter_pd): Change __addr type to void*.
2063 (_mm512_prefetch_i32scatter_ps): Ditto.
2064 (_mm512_mask_prefetch_i32scatter_pd): Ditto.
2065 (_mm512_mask_prefetch_i32scatter_ps): Ditto.
2066 (_mm512_prefetch_i64scatter_pd): Ditto.
2067 (_mm512_prefetch_i64scatter_ps): Ditto.
2068 (_mm512_mask_prefetch_i64scatter_pd): Ditto.
2069 (_mm512_mask_prefetch_i64scatter_ps): Ditto.
2070 * config/i386/avx512vlintrin.h
2071 (_mm256_mmask_i32gather_ps): Change __addr type to void const*.
2072 (_mm_mmask_i32gather_ps): Ditto.
2073 (_mm256_mmask_i32gather_pd): Ditto.
2074 (_mm_mmask_i32gather_pd): Ditto.
2075 (_mm256_mmask_i64gather_ps): Ditto.
2076 (_mm_mmask_i64gather_ps): Ditto.
2077 (_mm256_mmask_i64gather_pd): Ditto.
2078 (_mm_mmask_i64gather_pd): Ditto.
2079 (_mm256_mmask_i32gather_epi32): Ditto.
2080 (_mm_mmask_i32gather_epi32): Ditto.
2081 (_mm256_mmask_i32gather_epi64): Ditto.
2082 (_mm_mmask_i32gather_epi64): Ditto.
2083 (_mm256_mmask_i64gather_epi32): Ditto.
2084 (_mm_mmask_i64gather_epi32): Ditto.
2085 (_mm256_mmask_i64gather_epi64): Ditto.
2086 (_mm_mmask_i64gather_epi64): Ditto.
2087 (_mm256_i32scatter_ps): Change __addr type to void*.
2088 (_mm256_mask_i32scatter_ps): Ditto.
2089 (_mm_i32scatter_ps): Ditto.
2090 (_mm_mask_i32scatter_ps): Ditto.
2091 (_mm256_i32scatter_pd): Ditto.
2092 (_mm256_mask_i32scatter_pd): Ditto.
2093 (_mm_i32scatter_pd): Ditto.
2094 (_mm_mask_i32scatter_pd): Ditto.
2095 (_mm256_i64scatter_ps): Ditto.
2096 (_mm256_mask_i64scatter_ps): Ditto.
2097 (_mm_i64scatter_ps): Ditto.
2098 (_mm_mask_i64scatter_ps): Ditto.
2099 (_mm256_i64scatter_pd): Ditto.
2100 (_mm256_mask_i64scatter_pd): Ditto.
2101 (_mm_i64scatter_pd): Ditto.
2102 (_mm_mask_i64scatter_pd): Ditto.
2103 (_mm256_i32scatter_epi32): Ditto.
2104 (_mm256_mask_i32scatter_epi32): Ditto.
2105 (_mm_i32scatter_epi32): Ditto.
2106 (_mm_mask_i32scatter_epi32): Ditto.
2107 (_mm256_i32scatter_epi64): Ditto.
2108 (_mm256_mask_i32scatter_epi64): Ditto.
2109 (_mm_i32scatter_epi64): Ditto.
2110 (_mm_mask_i32scatter_epi64): Ditto.
2111 (_mm256_i64scatter_epi32): Ditto.
2112 (_mm256_mask_i64scatter_epi32): Ditto.
2113 (_mm_i64scatter_epi32): Ditto.
2114 (_mm_mask_i64scatter_epi32): Ditto.
2115 (_mm256_i64scatter_epi64): Ditto.
2116 (_mm256_mask_i64scatter_epi64): Ditto.
2117 (_mm_i64scatter_epi64): Ditto.
2118 (_mm_mask_i64scatter_epi64): Ditto.
2119 * config/i386/i386-builtin-types.def (V16SF_V16SF_PCFLOAT_V16SI_HI_INT)
2120 (V8DF_V8DF_PCDOUBLE_V8SI_QI_INT, V8SF_V8SF_PCFLOAT_V8DI_QI_INT)
2121 (V8DF_V8DF_PCDOUBLE_V8DI_QI_INT, V16SI_V16SI_PCINT_V16SI_HI_INT)
2122 (V8DI_V8DI_PCINT64_V8SI_QI_INT, V8SI_V8SI_PCINT_V8DI_QI_INT)
2123 (V8DI_V8DI_PCINT64_V8DI_QI_INT, V2DF_V2DF_PCDOUBLE_V4SI_QI_INT)
2124 (V4DF_V4DF_PCDOUBLE_V4SI_QI_INT, V2DF_V2DF_PCDOUBLE_V2DI_QI_INT)
2125 (V4DF_V4DF_PCDOUBLE_V4DI_QI_INT, V4SF_V4SF_PCFLOAT_V4SI_QI_INT)
2126 (V8SF_V8SF_PCFLOAT_V8SI_QI_INT, V4SF_V4SF_PCFLOAT_V2DI_QI_INT)
2127 (V4SF_V4SF_PCFLOAT_V4DI_QI_INT, V2DI_V2DI_PCINT64_V4SI_QI_INT)
2128 (V4DI_V4DI_PCINT64_V4SI_QI_INT, V2DI_V2DI_PCINT64_V2DI_QI_INT)
2129 (V4DI_V4DI_PCINT64_V4DI_QI_INT, V4SI_V4SI_PCINT_V4SI_QI_INT)
2130 (V8SI_V8SI_PCINT_V8SI_QI_INT, V4SI_V4SI_PCINT_V2DI_QI_INT)
2131 (V4SI_V4SI_PCINT_V4DI_QI_INT, VOID_PFLOAT_HI_V16SI_V16SF_INT)
2132 (VOID_PFLOAT_QI_V8SI_V8SF_INT, VOID_PFLOAT_QI_V4SI_V4SF_INT)
2133 (VOID_PDOUBLE_QI_V8SI_V8DF_INT, VOID_PDOUBLE_QI_V4SI_V4DF_INT)
2134 (VOID_PDOUBLE_QI_V4SI_V2DF_INT, VOID_PFLOAT_QI_V8DI_V8SF_INT)
2135 (VOID_PFLOAT_QI_V4DI_V4SF_INT, VOID_PFLOAT_QI_V2DI_V4SF_INT)
2136 (VOID_PDOUBLE_QI_V8DI_V8DF_INT, VOID_PDOUBLE_QI_V4DI_V4DF_INT)
2137 (VOID_PDOUBLE_QI_V2DI_V2DF_INT, VOID_PINT_HI_V16SI_V16SI_INT)
2138 (VOID_PINT_QI_V8SI_V8SI_INT, VOID_PINT_QI_V4SI_V4SI_INT)
2139 (VOID_PLONGLONG_QI_V8SI_V8DI_INT, VOID_PLONGLONG_QI_V4SI_V4DI_INT)
2140 (VOID_PLONGLONG_QI_V4SI_V2DI_INT, VOID_PINT_QI_V8DI_V8SI_INT)
2141 (VOID_PINT_QI_V4DI_V4SI_INT, VOID_PINT_QI_V2DI_V4SI_INT)
2142 (VOID_PLONGLONG_QI_V8DI_V8DI_INT, VOID_QI_V8SI_PCINT64_INT_INT)
2143 (VOID_PLONGLONG_QI_V4DI_V4DI_INT, VOID_PLONGLONG_QI_V2DI_V2DI_INT)
2144 (VOID_HI_V16SI_PCINT_INT_INT, VOID_QI_V8DI_PCINT64_INT_INT)
2145 (VOID_QI_V8DI_PCINT_INT_INT): Remove.
2146 (V16SF_V16SF_PCVOID_V16SI_HI_INT, V8DF_V8DF_PCVOID_V8SI_QI_INT)
2147 (V8SF_V8SF_PCVOID_V8DI_QI_INT, V8DF_V8DF_PCVOID_V8DI_QI_INT)
2148 (V16SI_V16SI_PCVOID_V16SI_HI_INT, V8DI_V8DI_PCVOID_V8SI_QI_INT)
2149 (V8SI_V8SI_PCVOID_V8DI_QI_INT, V8DI_V8DI_PCVOID_V8DI_QI_INT)
2150 (VOID_PVOID_HI_V16SI_V16SF_INT, VOID_PVOID_QI_V8SI_V8DF_INT)
2151 (VOID_PVOID_QI_V8DI_V8SF_INT, VOID_PVOID_QI_V8DI_V8DF_INT)
2152 (VOID_PVOID_HI_V16SI_V16SI_INT, VOID_PVOID_QI_V8SI_V8DI_INT)
2153 (VOID_PVOID_QI_V8DI_V8SI_INT, VOID_PVOID_QI_V8DI_V8DI_INT)
2154 (V2DF_V2DF_PCVOID_V4SI_QI_INT, V4DF_V4DF_PCVOID_V4SI_QI_INT)
2155 (V2DF_V2DF_PCVOID_V2DI_QI_INT, V4DF_V4DF_PCVOID_V4DI_QI_INT
2156 (V4SF_V4SF_PCVOID_V4SI_QI_INT, V8SF_V8SF_PCVOID_V8SI_QI_INT)
2157 (V4SF_V4SF_PCVOID_V2DI_QI_INT, V4SF_V4SF_PCVOID_V4DI_QI_INT)
2158 (V2DI_V2DI_PCVOID_V4SI_QI_INT, V4DI_V4DI_PCVOID_V4SI_QI_INT)
2159 (V2DI_V2DI_PCVOID_V2DI_QI_INT, V4DI_V4DI_PCVOID_V4DI_QI_INT)
2160 (V4SI_V4SI_PCVOID_V4SI_QI_INT, V8SI_V8SI_PCVOID_V8SI_QI_INT)
2161 (V4SI_V4SI_PCVOID_V2DI_QI_INT, V4SI_V4SI_PCVOID_V4DI_QI_INT)
2162 (VOID_PVOID_QI_V8SI_V8SF_INT, VOID_PVOID_QI_V4SI_V4SF_INT)
2163 (VOID_PVOID_QI_V4SI_V4DF_INT, VOID_PVOID_QI_V4SI_V2DF_INT)
2164 (VOID_PVOID_QI_V4DI_V4SF_INT, VOID_PVOID_QI_V2DI_V4SF_INT)
2165 (VOID_PVOID_QI_V4DI_V4DF_INT, VOID_PVOID_QI_V2DI_V2DF_INT)
2166 (VOID_PVOID_QI_V8SI_V8SI_INT, VOID_PVOID_QI_V4SI_V4SI_INT)
2167 (VOID_PVOID_QI_V4SI_V4DI_INT, VOID_PVOID_QI_V4SI_V2DI_INT)
2168 (VOID_PVOID_QI_V4DI_V4SI_INT, VOID_PVOID_QI_V2DI_V4SI_INT)
2169 (VOID_PVOID_QI_V4DI_V4DI_INT, VOID_PVOID_QI_V2DI_V2DI_INT)
2170 (VOID_QI_V8SI_PCVOID_INT_INT, VOID_HI_V16SI_PCVOID_INT_INT)
2171 (VOID_QI_V8DI_PCVOID_INT_INT): Add.
2172 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Adjust builtin
2173 definitions accordingly.
2175 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
2176 Kuan-Lin Chen <kuanlinchentw@gmail.com>
2179 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
2182 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
2185 * ira-conflicts.c (ira_build_conflicts): Update total conflict
2186 hard regs for inner regno.
2188 2017-01-17 Martin Liska <mliska@suse.cz>
2191 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
2192 assumption and add comment.
2194 2017-01-17 Nathan Sidwell <nathan@acm.org>
2196 * ipa-visibility.c (localize_node): New function, broken out of ...
2197 (function_and_variable_visibility): ... here. Call it.
2199 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
2202 * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges):
2203 correctly set frequency of oudgoing edge.
2204 (duplicate_thread_path): Fix profile updating.
2206 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2209 * configure.ac: Add GCC_BASE_VER.
2210 * Makefile.in (version): Use @get_gcc_base_ver@ instead of cat to get
2211 version from BASE-VER file.
2212 (CFLAGS-gcc.o): Add -DBASEVER=$(BASEVER_s).
2213 (gcc.o): Depend on $(BASEVER).
2214 * common.opt (dumpfullversion): New option.
2215 * gcc.c (driver_handle_option): Handle OPT_dumpfullversion.
2216 * doc/invoke.texi: Document -dumpfullversion.
2217 * doc/install.texi: Document --with-gcc-major-version-only.
2218 * configure: Regenerated.
2220 2017-01-17 Richard Biener <rguenther@suse.de>
2222 PR tree-optimization/71433
2223 * tree-vrp.c (register_new_assert_for): Merge same asserts
2224 on all incoming edges.
2225 (process_assert_insertions_for): Handle insertions at the
2228 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
2230 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
2231 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
2233 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
2236 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
2239 2017-01-17 Alan Modra <amodra@gmail.com>
2242 * config/rs6000/rs6000.md (elf_high, elf_low): Disable when pic.
2243 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't allow
2244 symbolic stack limit when pic.
2246 2017-01-16 Martin Sebor <msebor@redhat.com>
2248 PR tree-optimization/78608
2249 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
2251 2017-01-16 Jeff Law <law@redhat.com>
2254 2016-12-02 Tadek Kijkowski <tkijkowski@gmail.com>
2255 * Makefile.in (PREPROCESSOR_DEFINES): Add a level of indirection
2256 for several include directories that may be relative to sysroot.
2257 * config/i386/x-mingw32 (gplus_includedir): Define.
2258 (gplus_tool_includedir, gplus_backward_include_dir): Likewise.
2259 (native_system_includedir): Likewise.
2260 * config/i386/mingw32.h (STANDARD_STARTFILE_PREFIX_1): Do not
2261 override if TARGET_SYSTEM_ROOT is defined.
2262 (NATIVE_SYSTEM_HEADER_DIR): Likewise.
2264 PR tree-optimization/79090
2265 PR tree-optimization/33562
2266 PR tree-optimization/61912
2267 PR tree-optimization/77485
2268 * tree-ssa-dse.c (compute_trims): Accept STMT argument. Dump STMT
2269 and computed trims into the dump file.
2271 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
2273 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
2275 2017-01-16 Jakub Jelinek <jakub@redhat.com>
2278 * gimplify.c (gimplify_init_constructor): If want_value and
2279 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
2283 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
2284 sequence. Formatting fixes.
2285 (doloop_optimize): Formatting fixes.
2288 * gcc.c (debug_level_greater_than_spec_func): New function.
2289 (static_spec_functions): Add debug-level-gt spec function.
2290 (ASM_DEBUG_SPEC, cpp_options): Use %:debug-level-gt(0) instead of
2292 * config/darwin.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
2293 * config/darwin9.h (DSYMUTIL_SPEC, ASM_DEBUG_SPEC): Likewise.
2294 * common.opt (g, gcoff, gdwarf, gdwarf-, ggdb, gno-pubnames,
2295 gpubnames, ggnu-pubnames, gno-record-gcc-switches,
2296 grecord-gcc-switches, gno-strict-dwarf, gstrict-dwarf, gstabs,
2297 gstabs+, gtoggle, gvms, gxcoff, gxcoff+): Add Driver flag.
2299 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
2301 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
2302 QImode fixups to general and mask registers only.
2304 2017-01-16 Carl Love <cel@us.ibm.com>
2306 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Add support
2307 for built-in functions
2308 vector signed char vec_nabs (vector signed char)
2309 vector signed short vec_nabs (vector signed short)
2310 vector signed int vec_nabs (vector signed int)
2311 vector signed long long vec_nabs (vector signed long long)
2312 vector float vec_nabs (vector float)
2313 vector double vec_nabs (vector double)
2314 * config/rs6000/rs6000-builtin.def: Add definitions for NABS functions
2316 * config/rs6000/altivec.md: New define_expand nabs<mode>2 types
2317 * config/rs6000/altivec.h: New define for vec_nabs built-in function.
2318 * doc/extend.texi: Update the documentation file for the new built-in
2321 2017-01-16 Martin Sebor <msebor@redhat.com>
2323 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
2326 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2328 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
2329 UNSPEC_VSX__XXSPLTD to require special splat handling.
2331 2017-01-16 David Malcolm <dmalcolm@redhat.com>
2334 * system.h: Poison strndup.
2336 2017-01-16 Alan Modra <amodra@gmail.com>
2339 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
2342 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
2344 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
2346 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
2348 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
2349 call recog here. Assert that INSN_CODE (insn) is non-negative.
2351 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
2354 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
2356 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
2357 in the currently scheduled RTL fragment.
2359 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
2361 PR rtl-optimization/78751
2362 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
2365 2017-01-14 Jeff Law <law@redhat.com>
2367 PR tree-optimization/79090
2368 * tree-ssa-dse.c (valid_ao_ref_for_dse): Reject zero length and
2369 variable length stores.
2370 (compute_trims): Delete dead assignment to *trim_tail.
2371 (dse_dom_walker::dse_optimize_stmt): Optimize mem* calls with
2374 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
2376 PR rtl-optimization/78626
2377 PR rtl-optimization/78727
2378 * cprop.c (one_cprop_pass): Collect unconditional traps in the middle
2379 of a block, and split such blocks after everything else is finished.
2381 2017-01-14 Alan Modra <amodra@gmail.com>
2384 * combine.c (recog_for_combine_1): Set INSN_CODE before calling
2385 target legitimate_combined_insn.
2386 * config/rs6000/rs6000.c (TARGET_LEGITIMATE_COMBINED_INSN): Define.
2387 (rs6000_legitimate_combined_insn): New function.
2388 * config/rs6000/rs6000.md (UNSPEC_DOLOOP): Delete, and remove
2390 (ctr<mode>_internal3): Rename from *ctr<mode>_internal5.
2391 (ctr<mode>_internal4): Rename from *ctr<mode>_internal6.
2392 (ctr<mode>_internal1, ctr<mode>_internal2): Remove '*' from name.
2394 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
2396 * doc/frontends.texi (G++ and GCC): Remove references to Java.
2398 2017-01-13 Jeff Law <law@redhat.com>
2400 PR tree-optimization/33562
2401 PR tree-optimization/61912
2402 PR tree-optimization/77485
2403 * tree-ssa-dse.c (delete_dead_call): Accept gsi rather than
2405 (delete_dead_assignment): Likewise.
2406 (dse_dom_walker::dse_optimize_stmt): Pass in the gsi rather than
2407 statement to delete_dead_call and delete_dead_assignment.
2409 2017-01-13 David Malcolm <dmalcolm@redhat.com>
2412 * substring-locations.c (format_warning_va): Strengthen case 1 so
2413 that both endpoints of the substring must be within the format
2414 range for just the substring to be printed.
2416 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
2418 * config/i386/i386.opt (msgx): Use ix86_isa_flags2 variable.
2419 * config/i386/i386.c (ix86_target_string): Add missing options
2420 to isa_opts and reorder options by implied ISAs. Rename isa_opts2 to
2421 isa2_opts, ix86_flag_opts to flag2_opts, ix86_target_other to
2422 flags_other and ix86_target_other to flags2_other. Display unknown
2424 (ix86_valid_target_attribute_inner_p): Add missing options and
2425 reorder options by implied ISAs, as in ix86_target_string.
2427 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
2429 * hash-table.h (hash_table::too_empty_p): New function.
2430 (hash_table::expand): Use it.
2431 (hash_table::traverse): Likewise.
2432 (hash_table::empty_slot): Use sizeof (value_type) instead of
2433 sizeof (PTR) to convert bytes to elements. Shrink the table
2434 if the current size is excessive for the current number of
2437 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
2439 * ira-costs.c (record_reg_classes): Break from the inner loop
2440 early once alt_fail is known to be true. Update outer loop
2441 handling accordingly.
2443 2017-01-13 Jeff Law <law@redhat.com>
2445 * tree-ssa-dse.c (decrement_count): New function.
2446 (increment_start_addr, maybe_trim_memstar_call): Likewise.
2447 (dse_dom_walker::optimize_stmt): Call maybe_trim_memstar_call directly
2448 when we know the partially dead statement is a mem* function.
2450 PR tree-optimization/61912
2451 PR tree-optimization/77485
2452 * tree-ssa-dse.c: Include expr.h.
2453 (maybe_trim_constructor_store): New function.
2454 (maybe_trim_partially_dead_store): Call maybe_trim_constructor_store.
2456 PR tree-optimization/33562
2457 PR tree-optimization/61912
2458 PR tree-optimization/77485
2459 * doc/invoke.texi: Document new dse-max-object-size param.
2460 * params.def (PARM_DSE_MAX_OBJECT_SIZE): New PARAM.
2461 * tree-ssa-dse.c: Include params.h.
2462 (dse_store_status): New enum.
2463 (initialize_ao_ref_for_dse): New, partially extracted from
2465 (valid_ao_ref_for_dse, normalize_ref): New.
2466 (setup_live_bytes_from_ref, compute_trims): Likewise.
2467 (clear_bytes_written_by, maybe_trim_complex_store): Likewise.
2468 (maybe_trim_partially_dead_store): Likewise.
2469 (maybe_trim_complex_store): Likewise.
2470 (dse_classify_store): Renamed from dse_possibly_dead_store_p.
2471 Track what bytes live from the original store. Return tri-state
2472 for dead, partially dead or live.
2473 (dse_dom_walker): Add constructor, destructor and new private members.
2474 (delete_dead_call, delete_dead_assignment): New extracted from
2476 (dse_optimize_stmt): Make a member of dse_dom_walker.
2477 Use initialize_ao_ref_for_dse.
2479 PR tree-optimization/33562
2480 PR tree-optimization/61912
2481 PR tree-optimization/77485
2482 * sbitmap.h (bitmap_count_bits): Prototype.
2483 (bitmap_clear_range, bitmap_set_range): Likewise.
2484 * sbitmap.c (bitmap_clear_range): New function.
2485 (bitmap_set_range, sbitmap_popcount, bitmap_count_bits): Likewise.
2487 2017-01-13 Martin Liska <mliska@suse.cz>
2490 * function.c (set_cfun): Add new argument force.
2491 * function.h (set_cfun): Likewise.
2492 * ipa-inline-transform.c (inline_call): Use the function when
2493 strict alising from is dropped for function we inline to.
2495 2017-01-13 Richard Biener <rguenther@suse.de>
2497 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
2498 for dumping GIMPLE INTEGER_CSTs.
2500 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2502 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
2503 to 201112L since C++17.
2505 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
2508 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
2509 if -fsanitize=kernel-address is present.
2511 2017-01-13 Richard Biener <rguenther@suse.de>
2513 * tree-pretty-print.c (dump_generic_node): Dump INTEGER_CSTs
2514 as _Literal ( type ) number in case usual suffixes do not
2515 preserve all information.
2517 2017-01-13 Richard Biener <rguenther@suse.de>
2519 PR tree-optimization/77283
2520 * gimple-ssa-split-paths.c: Include gimple-ssa.h, tree-phinodes.h
2521 and ssa-iterators.h.
2522 (is_feasible_trace): Implement a cost model based on joiner
2525 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2528 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
2529 char or short to __float128/_Float128 directly.
2531 2017-01-12 Martin Sebor <msebor@redhat.com>
2533 to -Wformat-overflow.
2534 * gimple-ssa-sprintf.c (pass_sprintf_length::gate): Adjust.
2535 (min_bytes_remaining): Same.
2536 (get_string_length): Same.
2537 (format_string): Same.
2538 (format_directive): Same.
2540 (pass_sprintf_length::handle_gimple_call): Same.
2542 2017-01-12 Jakub Jelinek <jakub@redhat.com>
2544 * gimple-ssa-sprintf.c (try_substitute_return_value): Remove
2545 info.nowrite calls with no lhs that can't throw. Return bool
2546 whether gsi_remove has been called or not.
2547 (pass_sprintf_length::handle_gimple_call): Return bool whether
2548 try_substitute_return_value called gsi_remove. Formatting fix.
2549 (pass_sprintf_length::execute): Don't use gsi_remove if
2550 handle_gimple_call returned true.
2553 * cfgrtl.c (rtl_tidy_fallthru_edge): For any_uncondjump_p that can't
2554 be removed due to side-effects, don't remove following barrier nor
2555 turn the successor edge into fallthru edge.
2557 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2560 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
2561 element-reversing loads and stores as not swappable.
2563 2017-01-12 Nathan Sidwell <nathan@acm.org>
2564 Nicolai Stange <nicstange@gmail.com>
2566 * combine.c (try_combine): Don't ignore result of overlap checking
2567 loop. Combine overlap & asm check into single loop.
2569 2017-01-12 Richard Biener <rguenther@suse.de>
2571 * tree-pretty-print.c (dump_generic_node): Provide -gimple
2572 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
2574 2017-01-12 Richard Biener <rguenther@suse.de>
2576 * tree.c (initialize_tree_contains_struct): Make TS_OPTIMIZATION
2577 and TS_TARGET_OPTION directly derive from TS_BASE.
2578 * tree-core.h (tree_optimization_option): Derive from tree_base.
2579 (tree_target_option): Likewise.
2581 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
2583 * config/i386/i386.c (memory_address_length): Increase len
2584 only when rip_relative_addr_p returns false.
2586 2017-01-11 Julia Koval <julia.koval@intel.com>
2588 * common/config/i386/i386-common.c (OPTION_MASK_ISA_SGX_UNSET): New.
2589 (OPTION_MASK_ISA_SGX_SET): New.
2590 (ix86_handle_option): Handle OPT_msgx.
2591 * config.gcc: Added sgxintrin.h.
2592 * config/i386/driver-i386.c (host_detect_local_cpu): Detect sgx.
2593 * config/i386/i386-c.c (ix86_target_macros_internal): Define __SGX__.
2594 * config/i386/i386.c (ix86_target_string): Add -msgx.
2596 (ix86_option_override_internal): Handle new options.
2597 (ix86_valid_target_attribute_inner_p): Add sgx.
2598 * config/i386/i386.h (TARGET_SGX, TARGET_SGX_P): New.
2599 * config/i386/i386.opt: Add msgx.
2600 * config/i386/sgxintrin.h: New file.
2601 * config/i386/x86intrin.h: Add sgxintrin.h.
2603 2017-01-11 Jakub Jelinek <jakub@redhat.com>
2606 * fold-const.c (maybe_nonzero_address): Return 1 for function
2608 (tree_single_nonzero_warnv_p): Don't handle function local objects
2612 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
2615 2017-01-11 David Malcolm <dmalcolm@redhat.com>
2618 * opts.c: Include "spellcheck.h"
2619 (struct string_fragment): New struct.
2620 (struct edit_distance_traits<const string_fragment &>): New
2622 (get_closest_sanitizer_option): New function.
2623 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
2625 2017-01-11 Jakub Jelinek <jakub@redhat.com>
2627 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
2629 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): Always
2630 DWARF_COMPILE_UNIT_HEADER_SIZE plus 12.
2631 (DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE): Define.
2632 (calc_base_type_die_sizes): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE
2633 for initial die_offset if dwarf_split_debug_info.
2634 (output_comp_unit): Use DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE for
2635 initial next_die_offset if dwo_id is non-NULL. Don't emit padding
2637 (output_skeleton_debug_sections): Formatting fix. Use
2638 DWARF_COMPILE_UNIT_SKELETON_HEADER_SIZE instead of
2639 DWARF_COMPILE_UNIT_HEADER_SIZE. Don't emit padding.
2641 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
2643 * config/arm/cortex-a53.md: Add bypasses for
2645 (cortex_a53_r2f): Only use for transfers.
2646 (cortex_a53_f2r): Likewise.
2647 (cortex_a53_r2f_cvt): Add reservation for conversions.
2648 (cortex_a53_f2r_cvt): Likewise.
2650 2017-01-11 Tamar Christina <tamar.christina@arm.com>
2652 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
2653 to all inlined functions, change static to extern.
2655 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
2658 * config/arm/arm.c (legitimize_pic_address): Handle reference to
2660 (arm_assemble_integer): Likewise.
2662 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
2664 * config.gcc: Use new awk script to check CPU, FPU and architecture
2665 parameters for --with-... options.
2666 * config/arm/parsecpu.awk: New file
2667 * config/arm/arm-cpus.in: New file.
2668 * config/arm/arm-opts.h: Include arm-cpu.h instead of processing .def
2670 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
2672 * config/arm/t-arm: Update dependency rules.
2673 * common/config/arm/arm-common.c: Include arm-cpu-cdata.h instead
2674 of processing .def files.
2675 * config/arm/genopt.sh: Deleted.
2676 * config/arm/gentune.sh: Deleted.
2677 * config/arm/arm-cores.def: Deleted.
2678 * config/arm/arm-arches.def: Deleted.
2679 * config/arm/arm-fpus.def: Deleted.
2680 * config/arm/arm-tune.md: Regenerated.
2681 * config/arm/arm-tables.opt: Regenerated.
2682 * config/arm/arm-cpu.h: New generated file.
2683 * config/arm/arm-cpu-data.h: New generated file.
2684 * config/arm/arm-cpu-cdata.h: New generated file.
2686 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
2689 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
2691 (input_varpool_node): Unpack dynamically_initialized bit.
2693 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
2695 PR rtl-optimization/79032
2696 * lra-constraints.c (simplify_operand_subreg): In the MEM case, test
2697 the alignment of the adjusted memory reference against that of MODE,
2698 instead of the alignment of the original memory reference.
2700 2017-01-11 Martin Jambor <mjambor@suse.cz>
2702 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
2704 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
2705 decorated functions.
2707 2017-01-11 Richard Biener <rguenther@suse.de>
2709 * tree-vrp.c (evrp_dom_walker::before_dom_children): Also
2710 set range/nonnull info for PHI results. Do not set it on
2711 stmts marked for removal.
2713 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
2715 * expr.c (store_field): In the bitfield case, fetch the return value
2716 from the registers before applying a single big-endian adjustment.
2717 Always do a final load for a BLKmode value not larger than a word.
2719 2017-01-10 David Malcolm <dmalcolm@redhat.com>
2722 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
2723 that we correctly handle column numbers greater than
2724 LINE_MAP_MAX_COLUMN_NUMBER.
2726 2017-01-10 Martin Sebor <msebor@redhat.com>
2729 * gimple-ssa-sprintf.c (get_destination_size): Call
2730 {init,fini}object_sizes.
2731 * tree-object-size.c (addr_object_size): Adjust.
2732 (pass_through_call): Adjust.
2733 (pass_object_sizes::execute): Adjust.
2734 * tree-object-size.h (fini_object_sizes): Declare.
2736 2017-01-10 Martin Sebor <msebor@redhat.com>
2738 PR tree-optimization/78775
2739 * builtins.c (get_size_range): Move...
2740 * calls.c: ...to here.
2741 (alloc_max_size): Accept zero argument.
2742 (operand_signed_p): Remove.
2743 (maybe_warn_alloc_args_overflow): Call get_size_range.
2744 * calls.h (get_size_range): Declare.
2746 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
2748 * config/msp430/driver-msp430.c (msp430_mcu_data): Sync with data
2749 from TI's devices.csv file as of September 2016.
2750 * config/msp430/msp430.c (msp430_mcu_data): Likewise.
2752 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
2754 * doc/extend.texi: Tweak formatting to fix overfull hbox warnings.
2755 * doc/invoke.texi: Likewise.
2756 * doc/md.texi: Likewise.
2757 * doc/objc.texi: Likewise.
2759 2017-01-10 Joshua Conner <joshconner@google.com>
2761 * config/arm/fuchsia-elf.h: New file.
2762 * config/fuchsia.h: New file.
2763 * config.gcc (*-*-fuchsia*): Set native_system_header_dir.
2764 (aarch64*-*-fuchsia*, arm*-*-fuchsia*, x86_64-*-fuchsia*): Add to
2766 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
2768 2016-01-10 Richard Biener <rguenther@suse.de>
2770 PR tree-optimization/79034
2771 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds):
2772 Propagate out degenerate PHIs in the joiner.
2774 2017-01-10 Martin Liska <mliska@suse.cz>
2776 * ipa-icf.c (sort_sem_items_by_decl_uid): New function.
2777 (sort_congruence_classes_by_decl_uid): Likewise.
2778 (sort_congruence_class_groups_by_decl_uid): Likewise.
2779 (sem_item_optimizer::merge_classes): Sort class, groups in these
2780 classes and members in the groups by DECL_UID of declarations.
2781 This would make merge operations stable.
2783 2017-01-10 Martin Liska <mliska@suse.cz>
2785 * ipa-icf.c (sem_item_optimizer::sem_item_optimizer): Remove
2786 usage of m_classes_vec.
2787 (sem_item_optimizer::~sem_item_optimizer): Likewise.
2788 (sem_item_optimizer::get_group_by_hash): Likewise.
2789 (sem_item_optimizer::subdivide_classes_by_equality): Likewise.
2790 (sem_item_optimizer::subdivide_classes_by_sensitive_refs): Likewise.
2791 (sem_item_optimizer::verify_classes): Likewise.
2792 (sem_item_optimizer::process_cong_reduction): Likewise.
2793 (sem_item_optimizer::dump_cong_classes): Likewise.
2794 (sem_item_optimizer::merge_classes): Likewise.
2795 * ipa-icf.h (congruence_class_hash): Rename from
2796 congruence_class_group_hash. Remove declaration of m_classes_vec.
2798 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
2800 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512VPOPCNTDQ_SET,
2801 OPTION_MASK_ISA_AVX512VPOPCNTDQ_UNSET): New.
2802 * config.gcc: Add avx512vpopcntdqintrin.h.
2803 * config/i386/avx512vpopcntdqintrin.h: New.
2804 * config/i386/cpuid.h (bit_AVX512VPOPCNTDQ): New.
2805 * config/i386/i386-builtin-types.def: Add new types.
2806 * config/i386/i386-builtin.def (__builtin_ia32_vpopcountd_v16si,
2807 __builtin_ia32_vpopcountd_v16si_mask, __builtin_ia32_vpopcountq_v8di,
2808 __builtin_ia32_vpopcountq_v8di_mask): New.
2809 * config/i386/i386-c.c (ix86_target_macros_internal): Define
2810 __AVX512VPOPCNTDQ__.
2811 * config/i386/i386.c (ix86_target_string): Add -mavx512vpopcntdq.
2812 (PTA_AVX512VPOPCNTDQ): Define.
2813 * config/i386/i386.h (TARGET_AVX512VPOPCNTDQ,
2814 TARGET_AVX512VPOPCNTDQ_P): Define.
2815 * config/i386/i386.opt: Add mavx512vpopcntdq.
2816 * config/i386/immintrin.h: Include avx512vpopcntdqintrin.h.
2817 * config/i386/sse.md (define_insn "vpopcount<mode><mask_name>"): New.
2819 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
2822 * predict.def (PRED_CALL): Set to 67.
2824 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
2826 * expr.c (store_field): In the bitfield case, if the value comes from
2827 a function call and is of an aggregate type returned in registers, do
2828 not modify the field mode; extract the value in all cases if the mode
2829 is BLKmode and the size is not larger than a word.
2831 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
2834 * config/i386/cpuid.h: Fix undefined behavior.
2836 2017-01-04 Jeff Law <law@redhat.com>
2838 PR tree-optimization/79007
2839 PR tree-optimization/67955
2840 * tree-ssa-alias.c (same_addr_size_stores_p): Only need to be
2841 conservative for pt.null when flag_non_call_exceptions is on.
2843 2017-01-09 Jakub Jelinek <jakub@redhat.com>
2845 PR translation/79019
2846 PR translation/79020
2847 * params.def (PARAM_INLINE_MIN_SPEEDUP,
2848 PARAM_IPA_CP_SINGLE_CALL_PENALTY,
2849 PARAM_USE_AFTER_SCOPE_DIRECT_EMISSION_THRESHOLD): Fix typos
2851 * config/avr/avr.opt (maccumulate-args): Likewise.
2852 * config/msp430/msp430.opt (mwarn-mcu): Likewise.
2853 * common.opt (freport-bug): Likewise.
2854 * cif-code.def (CIF_FINAL_ERROR): Likewise.
2855 * doc/invoke.texi (ipa-cp-single-call-penalty): Likewise.
2856 * config/s390/s390.c (s390_invalid_binary_op): Fix spelling in
2857 translatable string.
2858 * config/i386/i386.c (function_value_32): Likewise.
2859 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Likewise.
2860 * config/msp430/msp430.c (msp430_option_override, msp430_attr):
2862 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
2863 * common/config/msp430/msp430-common.c (msp430_handle_option):
2865 * symtab.c (symtab_node::verify_base): Likewise.
2866 * opts.c (set_debug_level): Likewise.
2867 * tree.c (verify_type_variant): Likewise. Fix typo in comment.
2868 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Add
2869 missing whitespace to translatable strings.
2870 * config/avr/avr.md (bswapsi2): Fix typo in comment.
2871 * config/sh/superh.h: Likewise.
2872 * config/i386/xopintrin.h: Likewise.
2873 * config/i386/znver1.md: Likewise.
2874 * config/rs6000/rs6000.c (struct rs6000_opt_mask): Likewise.
2875 * ipa-inline-analysis.c (compute_inline_parameters): Likewise.
2876 * double-int.h (struct double_int): Likewise.
2877 * double-int.c (div_and_round_double): Likewise.
2878 * wide-int.cc: Likewise.
2879 * tree-ssa.c (non_rewritable_mem_ref_base): Likewise.
2880 * tree-ssa-sccvn.c (vn_reference_lookup_3): Likewise.
2881 * cfgcleanup.c (crossjumps_occured): Renamed to ...
2882 (crossjumps_occurred): ... this.
2883 (try_crossjump_bb, try_head_merge_bb, try_optimize_cfg, cleanup_cfg):
2886 PR tree-optimization/78899
2887 * tree-if-conv.c (version_loop_for_if_conversion): Instead of
2888 returning bool return struct loop *, NULL for failure and the new
2890 (versionable_outer_loop_p): Don't version outer loop if it has
2891 dont_vectorized bit set.
2892 (tree_if_conversion): When versioning outer loop, ensure
2893 tree_if_conversion is performed also on the inner loop of the
2894 non-vectorizable outer loop copy.
2895 * tree-vectorizer.c (set_uid_loop_bbs): Formatting fix. Fold
2896 LOOP_VECTORIZED in inner loop of the scalar outer loop and
2897 prevent vectorization of it.
2898 (vectorize_loops): For outer + inner LOOP_VECTORIZED, ensure
2899 the outer loop vectorization of the non-scalar version is attempted
2900 before vectorization of the inner loop in scalar version. If
2901 outer LOOP_VECTORIZED guarded loop is not vectorized, prevent
2902 vectorization of its inner loop.
2903 * tree-vect-loop-manip.c (rename_variables_in_bb): If outer_loop
2904 has 2 inner loops, rename also on edges from bb whose single pred
2905 is outer_loop->header. Fix typo in function comment.
2907 2017-01-09 Martin Sebor <msebor@redhat.com>
2910 * asan.c (asan_emit_stack_protection): Increase local buffer size
2911 to avoid snprintf truncation warning.
2913 2017-01-09 Andrew Pinski <apinski@cavium.com>
2915 * config/aarch64/aarch64-cores.def: Add thunderx2t99. Change vulcan
2916 to reference thunderx2t99 for the tuning structure
2917 * config/aarch64/aarch64-cost-tables.h (vulcan_extra_costs):
2919 (thunderx2t99_extra_costs): This.
2920 * config/aarch64/aarch64-tune.md: Regenerate.
2921 * config/aarch64/aarch64.c (vulcan_addrcost_table): Rename to ...
2922 (vulcan_addrcost_table): This.
2923 (vulcan_regmove_cost): Rename to ...
2924 (thunderx2t99_regmove_cost): This.
2925 (vulcan_vector_cost): Rename to ...
2926 (thunderx2t99_vector_cost): this.
2927 (vulcan_branch_cost): Rename to ...
2928 (thunderx2t99_branch_cost): This.
2929 (vulcan_tunings): Rename to ...
2930 (thunderx2t99_tunings): This and s/vulcan/thunderx2t99 .
2931 * doc/invoke.texi (AARCH64/mtune): Add thunderx2t99.
2933 2017-01-09 Martin Jambor <mjambor@suse.cz>
2937 * ipa-prop.h (ipa_jump_func): Swap positions of vr_known and m_vr.
2938 * ipa-cp.c (ipa_vr_operation_and_type_effects): New function.
2939 (propagate_vr_accross_jump_function): Use the above function for all
2940 value range computations for pass-through jump functions and type
2941 converasion from explicit value range values.
2942 (ipcp_propagate_stage): Do not attempt to deduce types of formal
2943 parameters from TYPE_ARG_TYPES.
2944 * ipa-prop.c (ipa_write_jump_function): Remove trailing whitespace.
2945 (ipa_write_node_info): Stream type of the actual argument.
2946 (ipa_read_node_info): Likewise. Also remove trailing whitespace.
2948 2017-01-09 Martin Liska <mliska@suse.cz>
2951 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
2952 (lookup_compiler): Do not show error message with have_E.
2954 2017-01-09 Jakub Jelinek <jakub@redhat.com>
2956 PR tree-optimization/78938
2957 * tree-vect-stmts.c (vectorizable_condition): For non-masked COND_EXPR
2958 where comp_vectype is VECTOR_BOOLEAN_TYPE_P, use
2959 BIT_{NOT,XOR,AND,IOR}_EXPR on the comparison operands instead of
2960 {EQ,NE,GE,GT,LE,LT}_EXPR directly inside of VEC_COND_EXPR. Formatting
2963 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2965 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
2968 2017-01-09 Richard Biener <rguenther@suse.de>
2970 PR tree-optimization/78997
2971 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
2972 name condition properly.
2974 2017-01-09 Richard Biener <rguenther@suse.de>
2977 * dwarf2out.c (is_cxx): New overload with context.
2978 (is_naming_typedef_decl): Use it.
2980 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2982 * invoke.texi (Option Summary): Correct spacing in option lists
2983 and add line breaks to fix over-long lines.
2985 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2989 * extend.texi (Common Variable Attributes): Add xref to GCC
2990 Internals manual to explain mode attribute keywords.
2992 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2995 * doc/invoke.texi (Option Summary): Move -pthread to Linker Options
2996 and Preprocessor Options.
2997 (Options for Linking): Document -pthread here....
2998 (RS/6000 and PowerPC Options): ...not here.
2999 (Solaris 2 Options): ...or here.
3000 * doc/cppopts.texi: Document -pthread.
3002 2017-01-08 Martin Sebor <msebor@redhat.com>
3005 * doc/invoke.texi (Warning Options): Document -Wformat-truncation.
3006 * gimple-ssa-sprintf.c (call_info::reval_used, call_info::warnopt):
3007 New member functions.
3008 (format_directive): Used them.
3010 (pass_sprintf_length::handle_gimple_call): Same.
3011 * graphite-sese-to-poly.c (tree_int_to_gmp): Increase buffer size
3012 to avoid truncation for any argument.
3013 (extract_affine_mul): Same.
3014 * tree.c (get_file_function_name): Same.
3016 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3019 * predict.def (PRED_INDIR_CALL): Set to 86.
3021 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
3023 PR preprocessor/54124
3024 * doc/cppopts.texi: Reformat -d subtable to list the full name
3025 of the options. Add cross-reference to the docs for the general
3026 compiler -d options.
3027 * doc/invoke.texi (Developer Options): Add cross-reference to the
3028 preprocessor-specific -d option documentation.
3030 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
3032 PR preprocessor/13498
3033 * doc/cpp.texi (Search Path): Rewrite to remove obsolete and
3034 redudant material, and reflect new command-line options.
3035 (System Headers): Likewise.
3037 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
3039 * doc/cppdiropts.texi: Merge documentation of -I, -iquote,
3040 -isystem, and -idirafter. Copy-edit.
3041 * doc/cppopts.texi: Copy-edit. Remove contradiction about
3042 default for -ftrack-macro-expansion. Delete obsolete and
3043 badly-formatted implementation details about -fdebug-cpp output.
3044 * doc/cppwarnopts.texi: Copy-edit.
3046 2017-01-07 David Malcolm <dmalcolm@redhat.com>
3049 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
3050 that the transition from a max line width >= 1<<10 to narrower
3051 lines works correctly.
3053 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
3055 * doc/options.texi (PerFunction): New.
3056 * opt-functions.awk (switch_flags): Map both Optimization and
3057 PerFunction to CL_OPTIMIZATION.
3058 * opth-gen.awk: Test for PerFunction flag along with
3060 * optc-save-gen.awk: Likewise. Introduce var_opt_hash and set
3061 it only when the latter is present. Skip those that don't in
3062 the hash function generator.
3063 * common.opt (fvar-tracking): Mark as PerFunction instead of
3065 (fvar-tracking-assignments): Likewise.
3066 (fvar-tracking-assignments-toggle): Likewise.
3067 (fvar-tracking-uninit): Likewise.
3069 2017-01-07 Jakub Jelinek <jakub@redhat.com>
3071 PR translation/79018
3072 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
3075 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
3078 * config/m68k/m68k.opt (LONG_JUMP_TABLE_OFFSETS): New option.
3079 * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Handle
3080 TARGET_LONG_JUMP_TABLE_OFFSETS.
3081 * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
3082 * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
3083 * config/m68k/m68k.h (CASE_VECTOR_MODE): Likewise.
3084 (ASM_OUTPUT_ADDR_DIFF_ELF): Likewise.
3085 * config/m68k/m68k.md (tablejump expander): Likewise.
3086 (*tablejump_pcrel_hi): Renamed from unnamed insn, reject
3087 TARGET_LONG_JUMP_TABLE_OFFSETS.
3088 (*tablejump_pcrel_si): New insn, handle TARGET_LONG_JUMP_TABLE_OFFSETS.
3089 * doc/invoke.texi (M68K options): Add -mlong-jump-table-offsets.
3091 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
3092 David Holsgrove <david.holsgrove@xilinx.com>
3094 * common/config/microblaze/microblaze-common.c
3095 (TARGET_EXCEPT_UNWIND_INFO): Remove.
3096 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
3098 * config/microblaze/microblaze.c (microblaze_must_save_register)
3099 (microblaze_expand_epilogue, microblaze_return_addr): Handle
3101 (microblaze_eh_return): New function.
3102 * config/microblaze/microblaze.h (RETURN_ADDR_OFFSET)
3103 (EH_RETURN_DATA_REGNO, MB_EH_STACKADJ_REGNUM)
3104 (EH_RETURN_STACKADJ_RTX, ASM_PREFERRED_EH_DATA_FORMAT): New macros.
3105 * config/microblaze/microblaze.md (eh_return): New pattern.
3107 2017-01-06 Jakub Jelinek <jakub@redhat.com>
3109 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
3110 GCC_DIAGNOSTIC_STRINGIFY): Define.
3112 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
3114 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3116 * config/arm/arm.md (<mcrr>): New.
3118 * config/arm/arm.c (arm_arch5te): New.
3119 (arm_option_override): Set arm_arch5te.
3120 (arm_coproc_builtin_available): Add support for mcrr, mcrr2, mrrc
3122 * config/arm/arm-builtins.c (MCRR_QUALIFIERS): Define to...
3123 (arm_mcrr_qualifiers): ... this. New.
3124 (MRRC_QUALIFIERS): Define to...
3125 (arm_mrrc_qualifiers): ... this. New.
3126 * config/arm/arm_acle.h (__arm_mcrr, __arm_mcrr2, __arm_mrrc,
3128 * config/arm/arm_acle_builtins.def (mcrr, mcrr2, mrrc, mrrc2): New.
3129 * config/arm/iterators.md (MCRRI, mcrr, MCRR): New.
3130 (MRRCI, mrrc, MRRC): New.
3131 * config/arm/unspecs.md (VUNSPEC_MCRR, VUNSPEC_MCRR2, VUNSPEC_MRRC,
3132 VUNSPEC_MRRC2): New.
3134 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3136 * config/arm/arm.md (<mcr>): New.
3138 * config/arm/arm.c (arm_coproc_builtin_available): Add
3139 support for mcr, mrc, mcr2 and mrc2.
3140 * config/arm/arm-builtins.c (MCR_QUALIFIERS): Define to...
3141 (arm_mcr_qualifiers): ... this. New.
3142 (MRC_QUALIFIERS): Define to ...
3143 (arm_mrc_qualifiers): ... this. New.
3144 (MCR_QUALIFIERS): Define to ...
3145 (arm_mcr_qualifiers): ... this. New.
3146 * config/arm/arm_acle.h (__arm_mcr, __arm_mrc, __arm_mcr2,
3148 * config/arm/arm_acle_builtins.def (mcr, mcr2, mrc, mrc2): New.
3149 * config/arm/iterators.md (MCRI, mcr, MCR, MRCI, mrc, MRC): New.
3150 * config/arm/unspecs.md (VUNSPEC_MCR, VUNSPEC_MCR2, VUNSPEC_MRC,
3153 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3155 * config/arm/arm.md (*ldc): New.
3159 * config/arm/arm.c (arm_coproc_builtin_available): Add
3160 support for ldc,ldcl,stc,stcl,ldc2,ldc2l,stc2 and stc2l.
3161 (arm_coproc_ldc_stc_legitimate_address): New.
3162 * config/arm/arm-builtins.c (arm_type_qualifiers): Add
3163 'qualifier_const_pointer'.
3164 (LDC_QUALIFIERS): Define to...
3165 (arm_ldc_qualifiers): ... this. New.
3166 (STC_QUALIFIERS): Define to...
3167 (arm_stc_qualifiers): ... this. New.
3168 * config/arm/arm-protos.h
3169 (arm_coproc_ldc_stc_legitimate_address): New.
3170 * config/arm/arm_acle.h (__arm_ldc, __arm_ldcl, __arm_stc,
3171 __arm_stcl, __arm_ldc2, __arm_ldc2l, __arm_stc2, __arm_stc2l): New.
3172 * config/arm/arm_acle_builtins.def (ldc, ldc2, ldcl, ldc2l, stc,
3173 stc2, stcl, stc2l): New.
3174 * config/arm/constraints.md (Uz): New.
3175 * config/arm/iterators.md (LDCI, STCI, ldc, stc, LDC STC): New.
3176 * config/arm/unspecs.md (VUNSPEC_LDC, VUNSPEC_LDC2, VUNSPEC_LDCL,
3177 VUNSPEC_LDC2L, VUNSPEC_STC, VUNSPEC_STC2, VUNSPEC_STCL,
3178 VUNSPEC_STC2L): New.
3180 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3182 * config/arm/arm.md (<cdp>): New.
3183 * config/arm/arm.c (neon_const_bounds): Rename this ...
3184 (arm_const_bounds): ... this.
3185 (arm_coproc_builtin_available): New.
3186 * config/arm/arm-builtins.c (SIMD_MAX_BUILTIN_ARGS): Increase.
3187 (arm_type_qualifiers): Add 'qualifier_unsigned_immediate'.
3188 (CDP_QUALIFIERS): Define to...
3189 (arm_cdp_qualifiers): ... this. New.
3191 (arm_expand_builtin_args): Add case for 6 arguments.
3192 * config/arm/arm-protos.h (neon_const_bounds): Rename this ...
3193 (arm_const_bounds): ... this.
3194 (arm_coproc_builtin_available): New.
3195 * config/arm/arm_acle.h (__arm_cdp): New.
3197 * config/arm/arm_acle_builtins.def (cdp): New.
3199 * config/arm/iterators.md (CDPI,CDP,cdp): New.
3200 * config/arm/neon.md: Rename all 'neon_const_bounds' to
3202 * config/arm/types.md (coproc): New.
3203 * config/arm/unspecs.md (VUNSPEC_CDP, VUNSPEC_CDP2): New.
3204 * gcc/doc/extend.texi (ACLE): Add a mention of Coprocessor intrinsics.
3205 * gcc/doc/sourcebuild.texi (arm_coproc1_ok, arm_coproc2_ok,
3206 arm_coproc3_ok, arm_coproc4_ok): Document new effective targets.
3208 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3210 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
3211 (UBINOP_QUALIFIERS): New.
3213 (acle_builtin_data): New. Change comment.
3214 (arm_builtins): Remove ARM_BUILTIN_CRC32B, ARM_BUILTIN_CRC32H,
3215 ARM_BUILTIN_CRC32W, ARM_BUILTIN_CRC32CB, ARM_BUILTIN_CRC32CH,
3216 ARM_BUILTIN_CRC32CW. Add ARM_BUILTIN_ACLE_BASE and include
3217 arm_acle_builtins.def.
3218 (ARM_BUILTIN_ACLE_PATTERN_START): Define.
3219 (arm_init_acle_builtins): New.
3220 (CRC32_BUILTIN): Remove.
3221 (bdesc_2arg): Remove entries for crc32b, crc32h, crc32w,
3222 crc32cb, crc32ch and crc32cw.
3223 (arm_init_crc32_builtins): Remove.
3224 (arm_init_builtins): Use arm_init_acle_builtins rather
3225 than arm_init_crc32_builtins.
3226 (arm_expand_acle_builtin): New.
3227 (arm_expand_builtin): Use 'arm_expand_acle_builtin'.
3228 * config/arm/arm_acle_builtins.def: New.
3230 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3232 * config/arm/arm-builtins.c (neon_builtin_datum): Rename to ..
3233 (arm_builtin_datum): ... this.
3234 (arm_init_neon_builtin): Rename to ...
3235 (arm_init_builtin): ... this. Add a new parameters PREFIX
3236 and USE_SIG_IN_NAME.
3237 (arm_init_neon_builtins): Replace 'arm_init_neon_builtin' with
3238 'arm_init_builtin'. Replace type 'neon_builtin_datum' with
3239 'arm_builtin_datum'.
3240 (arm_init_vfp_builtins): Likewise.
3241 (builtin_arg): Rename enum's replacing 'NEON_ARG' with
3242 'ARG_BUILTIN' and add a 'ARG_BUILTIN_NEON_MEMORY.
3243 (arm_expand_neon_args): Rename to ...
3244 (arm_expand_builtin_args): ... this. Rename builtin_arg
3245 enum values and differentiate between ARG_BUILTIN_MEMORY
3246 and ARG_BUILTIN_NEON_MEMORY.
3247 (arm_expand_neon_builtin_1): Rename to ...
3248 (arm_expand_builtin_1): ... this. Rename builtin_arg enum
3249 values, arm_expand_builtin_args and add bool parameter NEON.
3250 (arm_expand_neon_builtin): Use arm_expand_builtin_1.
3251 (arm_expand_vfp_builtin): Likewise.
3252 (NEON_MAX_BUILTIN_ARGS): Remove, it was unused.
3254 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3257 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
3258 * predict.c (tree_estimate_probability_bb): Reverse direction of
3259 polymorphic call predictor.
3261 2017-01-06 David Malcolm <dmalcolm@redhat.com>
3263 * passes.c (execute_one_pass): Split out pass-skipping logic into...
3264 (determine_pass_name_match): ...this new function and...
3265 (should_skip_pass_p): ...this new function.
3267 2017-01-06 Nathan Sidwell <nathan@acm.org>
3269 * ipa-visibility.c (function_and_variable_visibility): Reformat
3270 comments and long lines. Remove extrneous if.
3271 * symtab.c (symtab_node::make_decl_local): Fix code format.
3272 (symtab_node::set_section_for_node): Fix comment typo.
3274 2017-01-06 Martin Liska <mliska@suse.cz>
3277 * lra-constraints.c: Rename invariant to lra_invariant.
3278 * predict.c (set_even_probabilities): Initialize e to NULL.
3280 2017-01-05 Martin Sebor <msebor@redhat.com>
3282 PR tree-optimization/78910
3283 * gimple-ssa-sprintf.c (tree_digits): Add an argument.
3284 (format_integer): Correct off-by-one error in the handling
3285 of precision with negative numbers in signed conversions..
3287 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
3289 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
3291 2017-01-05 Jakub Jelinek <jakub@redhat.com>
3293 PR tree-optimization/71016
3294 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Pass cond_stmt to
3295 factor_out_conditional_conversion. Formatting fix.
3296 (factor_out_conditional_conversion): Add cond_stmt argument.
3297 If arg1 is INTEGER_CST, punt if new_arg0 is not any operand of
3298 cond_stmt and if arg0_def_stmt is not the only stmt in its bb.
3301 2017-01-05 David Malcolm <dmalcolm@redhat.com>
3303 * Makefile.in (OBJS): Add read-md.o, read-rtl.o,
3304 read-rtl-function.o, and selftest-rtl.o.
3305 * config/aarch64/aarch64.c: Include selftest.h and selftest-rtl.h.
3306 (selftest::aarch64_test_loading_full_dump): New function.
3307 (selftest::aarch64_run_selftests): New function.
3308 (TARGET_RUN_TARGET_SELFTESTS): Wire it up to
3309 selftest::aarch64_run_selftests.
3310 * config/i386/i386.c
3311 (selftest::ix86_test_loading_dump_fragment_1): New function.
3312 (selftest::ix86_test_loading_call_insn): New function.
3313 (selftest::ix86_test_loading_full_dump): New function.
3314 (selftest::ix86_test_loading_unspec): New function.
3315 (selftest::ix86_run_selftests): Call the new functions.
3316 * emit-rtl.c (maybe_set_max_label_num): New function.
3317 * emit-rtl.h (maybe_set_max_label_num): New decl.
3318 * function.c (instantiate_decls): Guard call to
3319 instantiate_decls_1 with if (DECL_INITIAL (fndecl)).
3320 * function-tests.c (selftest::verify_three_block_rtl_cfg): Remove
3322 * gensupport.c (gen_reader::gen_reader): Pass "false"
3323 for new "compact" param of rtx_reader.
3324 * print-rtl.c (rtx_writer::print_rtx_operand): Print "(nil)"
3325 rather than an empty string for NULL strings.
3326 * read-md.c: Potentially include config.h rather than bconfig.h.
3327 Wrap include of errors.h with #ifdef GENERATOR_FILE.
3328 (have_error): New global, copied from errors.c.
3329 (md_reader::read_name): Rename to...
3330 (md_reader::read_name_1): ...this, adding "out_loc" param,
3331 and converting "missing name or number" to returning false, rather
3333 (md_reader::read_name): Reimplement in terms of read_name_1.
3334 (md_reader::read_name_or_nil): New function.
3335 (md_reader::read_string): Handle "(nil)" by returning NULL.
3336 (md_reader::md_reader): Add new param "compact".
3337 (md_reader::read_md_files): Wrap with #ifdef GENERATOR_FILE.
3338 (md_reader::read_file): New method.
3339 * read-md.h (md_reader::md_reader): Add new param "compact".
3340 (md_reader::read_file): New method.
3341 (md_reader::is_compact): New accessor.
3342 (md_reader::read_name): Convert return type from void to file_location.
3343 (md_reader::read_name_or_nil): New decl.
3344 (md_reader::read_name_1): New decl.
3345 (md_reader::m_compact): New field.
3346 (noop_reader::noop_reader): Pass "false" for new "compact" param
3348 (rtx_reader::rtx_reader): Add new "compact" param.
3349 (rtx_reader::read_rtx_operand): Make virtual and convert return
3350 type from void to rtx.
3351 (rtx_reader::read_until): New decl.
3352 (rtx_reader::handle_any_trailing_information): New virtual function.
3353 (rtx_reader::postprocess): New virtual function.
3354 (rtx_reader::finalize_string): New virtual function.
3355 (rtx_reader::m_in_call_function_usage): New field.
3356 (rtx_reader::m_reuse_rtx_by_id): New field.
3357 * read-rtl-function.c: New file.
3358 * selftest-rtl.c (selftest::assert_rtx_ptr_eq_at): New function.
3359 * selftest-rtl.h (ASSERT_RTX_PTR_EQ): New macro.
3360 (selftest::verify_three_block_rtl_cfg): New decl.
3361 * read-rtl-function.h: New file.
3362 * read-rtl.c: Potentially include config.h rather than bconfig.h.
3363 For host, include function.h, memmodel.h, and emit-rtl.h.
3364 (one_time_initialization): New function.
3365 (struct compact_insn_name): New struct.
3366 (compact_insn_names): New array.
3367 (find_code): Handle insn codes in compact dumps.
3368 (apply_subst_iterator): Wrap with #ifdef GENERATOR_FILE.
3369 (bind_subst_iter_and_attr): Likewise.
3370 (add_condition_to_string): Likewise.
3371 (add_condition_to_rtx): Likewise.
3372 (apply_attribute_uses): Likewise.
3373 (add_current_iterators): Likewise.
3374 (apply_iterators): Likewise.
3375 (initialize_iterators): Guard usage of apply_subst_iterator with
3376 #ifdef GENERATOR_FILE.
3377 (read_conditions): Wrap with #ifdef GENERATOR_FILE.
3378 (md_reader::read_mapping): Likewise.
3379 (add_define_attr_for_define_subst): Likewise.
3380 (add_define_subst_attr): Likewise.
3381 (read_subst_mapping): Likewise.
3382 (check_code_iterator): Likewise.
3383 (rtx_reader::read_rtx): Likewise. Move one-time initialization
3385 (one_time_initialization): New function.
3386 (rtx_reader::read_until): New method.
3387 (read_flags): New function.
3388 (parse_reg_note_name): New function.
3389 (rtx_reader::read_rtx_code): Initialize "iterator" to NULL.
3390 Handle reuse_rtx ids.
3391 Wrap iterator lookup within #ifdef GENERATOR_FILE.
3392 Add parsing support for RTL dumps, mirroring the special-cases in
3393 print_rtx, by calling read_flags, reading REG_NOTE names, INSN_UID
3394 values, and calling handle_any_trailing_information.
3395 (rtx_reader::read_rtx_operand): Convert return type from void
3396 to rtx, returning return_rtx. Handle case 'e'. Call
3397 finalize_string on XSTR and XTMPL fields.
3398 (rtx_reader::read_nested_rtx): Handle dumps in which trailing
3399 "(nil)" values were omitted. Call the postprocess vfunc on the
3401 (rtx_reader::rtx_reader): Add new "compact" param and pass to base
3402 class ctor. Initialize m_in_call_function_usage. Call
3403 one_time_initialization.
3404 * rtl-tests.c (selftest::test_uncond_jump): Call
3405 set_new_first_and_last_insn.
3406 * rtl.h (read_rtx): Wrap decl with #ifdef GENERATOR_FILE.
3407 * selftest-rtl.c: New file.
3408 * selftest-rtl.h (class selftest::rtl_dump_test): New class.
3409 (selftest::get_insn_by_uid): New decl.
3410 * selftest-run-tests.c (selftest::run_tests): Call
3411 read_rtl_function_c_tests.
3412 * selftest.h (selftest::read_rtl_function_c_tests): New decl.
3413 * tree-dfa.c (ssa_default_def): Return NULL_TREE for rtl function
3416 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
3418 * config/i386/i386.md (*testqi_ext_3): No need to handle memory
3419 operands in a special way. Assert that pos+len <= mode precision.
3421 2017-01-05 Jakub Jelinek <jakub@redhat.com>
3423 * common.opt (fvect-cost-model): Remove RejectNegative flag, use
3424 3 argument Alias with unlimited for the negative form.
3425 (fno-vect-cost-model): Removed.
3427 2017-01-05 Martin Liska <mliska@suse.cz>
3429 * hsa-gen.c (gen_hsa_divmod): New function.
3430 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
3432 2017-01-05 Martin Liska <mliska@suse.cz>
3435 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
3438 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3440 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
3441 small constant length operands.
3443 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3445 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
3446 between loop iterations.
3448 2017-01-05 Martin Liska <mliska@suse.cz>
3451 * gimplify.c (gimplify_decl_expr): Compare to
3452 asan_poisoned_variables instread of checking flags.
3453 (gimplify_target_expr): Likewise.
3454 (gimplify_expr): Likewise.
3455 (gimplify_function_tree): Conditionally initialize
3456 asan_poisoned_variables.
3458 2017-01-04 Jeff Law <law@redhat.com>
3460 PR tree-optimizatin/78812
3461 * rtl.h (contains_mem_rtx_p): Prototype.
3462 * ifcvt.c (containts_mem_rtx_p): Move from here to...
3463 * rtlanal.c (contains_mem_rtx_p): Here and remove static linkage.
3464 * gcse.c (prune_expressions): Use contains_mem_rtx_p to discover
3465 and prune MEMs that are not at the toplevel of a SET_SRC rtx. Look
3466 through ZERO_EXTEND and SIGN_EXTEND when trying to avoid pruning MEMs.
3468 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3470 * input.c (assert_char_at_range): Default-initialize actual_range.
3472 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3474 * df-scan.c (df_ref_create_structure): Make regno unsigned,
3475 to match the caller.
3477 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3479 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
3480 insns after final jump in test to emit dummy move.
3482 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3484 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
3485 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
3487 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3489 * multiple_target.c (create_dispatcher_calls): Init e_next.
3490 * tree-ssa-loop-split.c (split_loop): Init border.
3491 * tree-vect-loop.c (vect_determine_vectorization_factor): Init
3494 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
3499 * config/rs6000/predicates.md (sf_subreg_operand): New predicate.
3500 (altivec_register_operand): Do not return true if the operand
3501 contains a SUBREG mixing SImode and SFmode.
3502 (vsx_register_operand): Likewise.
3503 (vsx_reg_sfsubreg_ok): New predicate.
3504 (vfloat_operand): Do not return true if the operand contains a
3505 SUBREG mixing SImode and SFmode.
3506 (vint_operand): Likewise.
3507 (vlogical_operand): Likewise.
3508 (gpc_reg_operand): Likewise.
3509 (int_reg_operand): Likewise.
3510 * config/rs6000/rs6000-protos.h (valid_sf_si_move): Add declaration.
3511 * config/rs6000/rs6000.c (valid_sf_si_move): New function to
3512 determine if a MOVSI or MOVSF operation contains SUBREGs that mix
3514 (rs6000_emit_move_si_sf_subreg): New helper function.
3515 (rs6000_emit_move): Call rs6000_emit_move_si_sf_subreg to possbily
3516 fixup SUBREGs involving SImode and SFmode.
3517 * config/rs6000/vsx.md (SFBOOL_*): New constants that are operand
3518 numbers for the new peephole2 optimization.
3519 (peephole2 for SFmode unions): New peephole2 to optimize cases in
3520 the GLIBC math library that do AND/IOR/XOR operations on single
3521 precision floating point.
3522 * config/rs6000/rs6000.h (TARGET_NO_SF_SUBREG): New internal
3523 target macros to say whether we need to avoid SUBREGs mixing
3525 (TARGET_ALLOW_SF_SUBREG): Likewise.
3526 * config/rs6000/rs6000.md (UNSPEC_SF_FROM_SI): New unspecs.
3527 (UNSPEC_SI_FROM_SF): Likewise.
3528 (iorxor): Change spacing.
3529 (and_ior_xor): New iterator for AND, IOR, and XOR.
3530 (movsi_from_sf): New insns for SImode/SFmode SUBREG support.
3531 (movdi_from_sf_zero_ext): Likewise.
3532 (mov<mode>_hardfloat, FMOVE32 iterator): Use register_operand
3533 instead of gpc_reg_operand. Add SImode/SFmode SUBREG support.
3534 (movsf_from_si): New insn for SImode/SFmode SUBREG support.
3535 (fma<mode>4): Use gpc_reg_operand instead of register_operand.
3536 (fms<mode>4): Likewise.
3537 (fnma<mode>4): Likewise.
3538 (fnms<mode>4): Likewise.
3539 (nfma<mode>4): Likewise.
3540 (nfms<mode>4): Likewise.
3542 2017-01-04 Marek Polacek <polacek@redhat.com>
3545 * doc/invoke.texi: Document -Wpointer-compare.
3547 2017-01-04 Jakub Jelinek <jakub@redhat.com>
3549 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
3552 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
3553 descriptions for -gdwarf-5 and emit them as uleb128 instead of
3556 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
3559 * doc/sourcebuild.texi (PowerPC-specific attributes): Add
3560 documentation of the powerpc_popcntb_ok attribute.
3561 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3562 code to issue warning messages if a requested CPU configuration is
3563 not supported by the binary (assembler and loader) toolchain.
3564 (spe_init_builtins): Add two assertions to prevent ICE if attempt is
3565 made to define a built-in function that has been disabled.
3566 (paired_init_builtins): Add assertion to prevent ICE if attempt is
3567 made to define a built-in function that has been disabled.
3568 (altivec_init_builtins): Add comment explaining why definition
3569 of the DST built-in functions is not preceded by an assertion
3570 check. Add assertions to prevent ICE if attempts are made to
3571 define an altivec predicate or an abs* built-in function that has
3573 (htm_init_builtins): Add comment explaining why definition of the
3574 htm built-in functions is not preceded by an assertion check.
3576 2017-01-04 Jeff Law <law@redhat.com>
3578 PR tree-optimizatin/67955
3579 * tree-ssa-alias.c (same_addr_size_stores_p): Check offsets first.
3580 Allow any SSA_VAR_P as the base objects. Use integer_zerop. Verify
3581 the points-to solution does not include pt_null. Use DECL_PT_UID
3584 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
3586 * config/i386/i386.md (HI/SImode test with imm to QImode splitters):
3587 Use gen_int_mode instead of gen_lopwart for const_int operands.
3589 2017-01-04 Jakub Jelinek <jakub@redhat.com>
3591 PR tree-optimization/71563
3592 * match.pd: Simplify X << Y into X if Y is known to be 0 or
3593 out of range value - has low bits known to be zero.
3595 2017-01-04 Alan Modra <amodra@gmail.com>
3597 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
3598 * configure: Regenerate.
3599 * config.in: Regenerate.
3601 2017-01-04 Jakub Jelinek <jakub@redhat.com>
3604 * input.c (ebcdic_execution_charset::on_error): Don't use strstr for
3605 a substring of the message, but strcmp with the whole message. Ifdef
3606 ENABLE_NLS, translate the message first using dgettext.
3608 2017-01-03 Jeff Law <law@redhat.com>
3610 PR tree-optimizatin/78856
3611 * tree-ssa-threadupdate.c: Include tree-vectorizer.h.
3612 (mark_threaded_blocks): Remove code to truncate thread paths that
3613 cross multiple loop headers. Instead invalidate the cached loop
3614 iteration information and handle case of a thread path walking
3615 into an irreducible region.
3617 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3620 * config/rs6000/rs6000.c (rs6000_split_signbit): Change some
3621 assertions. Add support for doing the signbit if the IEEE 128-bit
3622 floating point value is in a GPR.
3623 * config/rs6000/rs6000.md (Fsignbit): Delete.
3624 (signbit<mode>2_dm): Delete using <Fsignbit> and just use "wa".
3625 Update the length attribute if the value is in a GPR.
3626 (signbit<mode>2_dm_<su>ext): Add combiner pattern to eliminate
3627 the sign or zero extension instruction, since the value is always 0/1.
3628 (signbit<mode>2_dm2): Delete using <Fsignbit>.
3631 * config/rs6000/vsx.md (vsx_extract_<mode>_store_p9): If we are
3632 extracting SImode to a GPR register so that we can generate a
3633 store, limit the vector to be in a traditional Altivec register
3634 for the vextuwrx instruction.
3636 2017-01-03 Ian Lance Taylor <iant@google.com>
3638 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
3640 2017-01-03 Martin Sebor <msebor@redhat.com>
3642 PR tree-optimization/78696
3643 * gimple-ssa-sprintf.c (format_floating): Correct handling of
3644 precision. Use MPFR for %f for greater fidelity. Correct handling
3646 (pass_sprintf_length::compute_format_length): Set width and precision
3647 specified by asrerisk to void_node for vararg functions.
3648 (try_substitute_return_value): Adjust dump output.
3650 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
3652 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
3654 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
3656 * doc/invoke.texi (SPARC options): Document -mlra as the default.
3657 * config/sparc/sparc.c (sparc_option_override): Force LRA unless
3658 -mlra/-mno-lra was passed to the compiler.
3660 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
3662 PR rtl-optimization/65618
3663 * emit-rtl.c (try_split): Move initialization of "before" and
3664 "after" to just before the call to emit_insn_after_setloc.
3666 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
3668 * doc/md.texi (Standard Names): Remove reference to Java frontend.
3670 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
3672 * dwarf2out.c (gen_enumeration_type_die): When
3673 -gno-strict-dwarf, add a DW_AT_encoding attribute.
3675 2017-01-03 Jakub Jelinek <jakub@redhat.com>
3677 PR tree-optimization/78965
3678 * gimple-ssa-sprintf.c (pass_sprintf_length::compute_format_length):
3679 Change first argument from const call_info & to call_info &. For %n
3680 set info.nowrite to false.
3683 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
3684 possibly throwing calls.
3686 * genmatch.c (dt_node::gen_kids_1): If generic_exprs include SSA_NAME
3687 and exprs_len || fns_len, emit the code for SSA_NAME next to the exprs
3688 and fns handling, rather than in a separate case SSA_NAME.
3690 2017-01-02 Jeff Law <law@redhat.com>
3692 * config/darwin-driver.c (darwin_driver_init): Const-correctness
3693 fixes for first_period and second_period variables.
3695 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
3698 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
3699 (*insvqi_1): New insn pattern.
3700 (*insvqi_1_mem_rex64): Ditto.
3702 (*insvqi_3): Rename from *insvqi.
3704 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
3706 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
3708 * doc/cfg.texi (Edges): Remove reference to Java.
3709 (Maintaining the CFG): Ditto.
3711 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3714 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
3715 transparent aliases.
3717 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3720 * predict.def (PRED_CALL): Update hitrate.
3721 (PRED_INDIR_CALL, PRED_POLYMORPHIC_CALL): New predictors.
3722 * predict.c (tree_estimate_probability_bb): Split CALL predictor
3723 into direct/indirect/polymorphic variants.
3725 2017-01-01 Jakub Jelinek <jakub@redhat.com>
3727 Update copyright years.
3729 * gcc.c (process_command): Update copyright notice dates.
3730 * gcov-dump.c (print_version): Ditto.
3731 * gcov.c (print_version): Ditto.
3732 * gcov-tool.c (print_version): Ditto.
3733 * gengtype.c (create_file): Ditto.
3734 * doc/cpp.texi: Bump @copying's copyright year.
3735 * doc/cppinternals.texi: Ditto.
3736 * doc/gcc.texi: Ditto.
3737 * doc/gccint.texi: Ditto.
3738 * doc/gcov.texi: Ditto.
3739 * doc/install.texi: Ditto.
3740 * doc/invoke.texi: Ditto.
3742 Copyright (C) 2017 Free Software Foundation, Inc.
3744 Copying and distribution of this file, with or without modification,
3745 are permitted in any medium without royalty provided the copyright
3746 notice and this notice are preserved.