]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
configure.ac (ACX_BUGURL): Update.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2017-02-09 Gerald Pfeifer <gerald@pfeifer.com>
2
3 * configure.ac (ACX_BUGURL): Update.
4 * configure: Regenerate.
5
6 2017-02-09 Richard Biener <rguenther@suse.de>
7
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.
11
12 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
13
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.
17
18 2017-02-09 Andrew Burgess <andrew.burgess@embecosm.com>
19
20 * config/arc/arc-arch.h (arc_arch_t): Move unchanged to earlier in
21 file.
22 (arc_cpu_t): Change base_architecture field, arch, to a arc_arc_t
23 pointer, arch_info.
24 (arc_cpu_types): Fill the arch_info field with a pointer into the
25 arc_arch_types table.
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.
33 (ARC_OPTX): Likewise.
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
41 information.
42
43 2017-02-08 Pat Haugen <pthaugen@us.ibm.com>
44
45 PR target/78604
46 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Invert
47 condition/operands for integer GE/LE/GEU/LEU operations.
48
49 2017-02-08 Segher Boessenkool <segher@kernel.crashing.org>
50
51 PR translation/79397
52 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Fix spelling
53 of AltiVec.
54
55 2017-02-08 Martin Jambor <mjambor@suse.cz>
56
57 PR ipa/79375
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.
62
63 2017-02-08 Jakub Jelinek <jakub@redhat.com>
64
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.
70
71 2016-02-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
72
73 * config/riscv/riscv.c (riscv_build_integer_1): Avoid use of INT16_MAX.
74
75 2017-02-08 Richard Biener <rguenther@suse.de>
76
77 PR tree-optimization/71824
78 * graphite-scop-detection.c (scop_detection::build_scop_breadth):
79 Check all loops contained in the merged region.
80
81 2017-02-07 Andrew Pinski <apinski@cavium.com>
82
83 * config/aarch64/aarch64.md (popcount<mode>2): New pattern.
84
85 2017-02-07 Andrew Pinski <apinski@cavium.com>
86
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.
91
92 2017-02-07 Jakub Jelinek <jakub@redhat.com>
93 Richard Biener <rguenther@suse.de>
94
95 PR middle-end/79399
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.
99
100 2017-02-07 Jakub Jelinek <jakub@redhat.com>
101
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.
107
108 PR target/79299
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.
113
114 2017-02-07 Richard Biener <rguenther@suse.de>
115
116 PR tree-optimization/79256
117 PR middle-end/79278
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.
121
122 * doc/tm.texi.in (ADJUST_FIELD_ALIGN): Adjust to take additional
123 type parameter.
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):
142 Likewise.
143
144 Revert
145 2017-01-30 Richard Biener <rguenther@suse.de>
146
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
150 alignment on TYPE.
151
152 2017-02-07 Toma Tabacu <toma.tabacu@imgtec.com>
153
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.
157
158 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
159
160 * docs/invoke.texi (RISC-V Options): Alphabetize.
161
162 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
163
164 * doc/invoke.texi (RISC-V Options): Use two spaces to separate
165 options.
166
167 2017-02-06 Palmer Dabbelt <palmer@dabbelt.com>
168
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.
201
202 2017-02-06 Michael Meissner <meissner@linux.vnet.ibm.com>
203
204 PR target/66144
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
209 predicate.
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.
215
216 2017-02-06 Martin Sebor <msebor@redhat.com>
217
218 PR tree-optimization/79376
219 * gimple-fold.c (get_range_strlen): Set the minimum length to zero.
220
221 2017-02-06 Uros Bizjak <ubizjak@gmail.com>
222
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.
226
227 2017-02-06 Jakub Jelinek <jakub@redhat.com>
228
229 * omp-expand.c (oxpand_omp_atomic_fetch_op,
230 expand_omp_atomic_pipeline): Return false if can_atomic_load_p is
231 false.
232
233 2017-02-06 Segher Boessenkool <segher@kernel.crashing.org>
234
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.
242
243 2017-02-06 Jakub Jelinek <jakub@redhat.com>
244
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).
258
259 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
260
261 PR target/78883
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.
265
266 2017-02-06 Dominik Vogt <vogt@linux.vnet.ibm.com>
267
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.
279
280 2017-02-06 Georg-Johann Lay <avr@gjlay.de>
281
282 * config/avr/avr.md (*addhi3_zero_extend): Add alternative where
283 REGNO($0) == REGNO($1).
284
285 2017-02-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
286
287 * config/s390/linux.h(SIZE_TYPE): Add comment.
288
289 2017-02-06 Julian Brown <julian@codesourcery.com>
290 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
291 Virendra Pathak <virendra.pathak@broadcom.com>
292
293 * config/aarch64/aarch64-cores.def: Change the scheduler
294 to Thunderx2t99.
295 * config/aarch64/aarch64.md: Include thunderx2t99.md.
296 * config/aarch64/thunderx2t99.md: New file.
297
298 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
299
300 * doc/standards.texi (Go Language): Update link to language
301 standard.
302
303 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
304
305 * tree-eh.c (lower_resx): Sanitize profile.
306 (cleanup_empty_eh_move_lp): Likewise.
307
308 2017-02-05 Jan Hubicka <hubicka@ucw.cz>
309
310 PR tree-ssa/79347
311 * cfgloopmanip.c (lv_adjust_loop_entry_edge, loop_version): Add
312 ELSE_PROB.
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.
321
322 2017-02-05 Martin Liska <mliska@suse.cz>
323
324 PR bootstrap/78985
325 * config/s390/s390.c (s390_gimplify_va_arg): Initialize local
326 variable to NULL.
327 (print_operand_address): Initialize a struct to zero.
328
329 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
330
331 * doc/contrib.texi (Contributors): Refer to Hans Boehm's
332 garbage collector only in textual form.
333
334 2017-02-05 Gerald Pfeifer <gerald@pfeifer.com>
335
336 * doc/extend.texi (x86 specific memory model extensions for
337 transactional memory): Simplify a phrase.
338
339 2017-02-05 Eric Botcazou <ebotcazou@adacore.com>
340
341 PR target/79353
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.
345
346 2017-02-04 Jakub Jelinek <jakub@redhat.com>
347
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
351 loop_vinfo.
352
353 2017-02-03 Martin Sebor <msebor@redhat.com>
354
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.
360
361 2017-02-03 Jason Merrill <jason@redhat.com>
362
363 PR c++/78689
364 * tree-inline.c (copy_tree_body_r) [COND_EXPR]: Revert change to
365 avoid copying non-taken branch.
366
367 2017-02-03 Jakub Jelinek <jakub@redhat.com>
368
369 PR tree-optimization/79340
370 * tree-vect-loop.c (vectorizable_reduction): Release
371 vec_defs elements after safe_splicing them into other vectors.
372 Formatting fixes.
373
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
377 dirtype.
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.
382
383 2017-02-03 Uros Bizjak <ubizjak@gmail.com>
384
385 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
386 Use pextrd for TARGET_SSE4_1 when creating scalar copy.
387
388 2017-02-03 Walter Lee <walt@tilera.com>
389
390 PR target/78862
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.
394
395 2017-02-03 Jakub Jelinek <jakub@redhat.com>
396
397 PR target/79354
398 * config/rs6000/rs6000.md (movsi_from_sf): Use wb constraint instead of
399 wu for stxssp alternative.
400
401 2017-02-03 Martin Sebor <msebor@redhat.com>
402
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.
411
412 2017-02-03 Martin Liska <mliska@suse.cz>
413
414 PR lto/66295
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
423 pass.
424
425 2017-02-03 Martin Liska <mliska@suse.cz>
426
427 * symtab.c (symtab_node::binds_to_current_def_p): Bail out
428 in case of a function with ifunc attribute.
429
430 2017-02-03 Martin Liska <mliska@suse.cz>
431
432 * cgraph.c (cgraph_node::dump): Dump function version info.
433 * symtab.c (symtab_node::dump_base): Add missing new line.
434
435 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
436
437 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): New function.
438 (ifcombine_ifandif): Use it.
439
440 2017-02-03 Martin Liska <mliska@suse.cz>
441
442 * doc/invoke.texi: Document default value for
443 use-after-scope-direct-emission-threshold.
444
445 2017-02-03 Martin Liska <mliska@suse.cz>
446
447 PR tree-optimization/79339
448 * gimple-ssa-sprintf.c (format_floating_max): Call mpfr_clear.
449 (format_floating): Likewise.
450
451 2017-02-03 Martin Liska <mliska@suse.cz>
452
453 PR ipa/79337
454 * ipa-prop.c (ipa_node_params_t::insert): Remove current
455 implementation.
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.
464
465 2017-02-02 Naveen H.S <Naveen.Hurugalawadi@cavium.com>
466
467 * config/aarch64/aarch64.c (thunderx2t99_tunings): Enable AES and
468 cmp_branch fusion.
469
470 2017-02-02 Martin Sebor <msebor@redhat.com>
471
472 PR middle-end/79275
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.
476
477 2017-02-02 Martin Sebor <msebor@redhat.com>
478
479 * doc/invoke.texi (-maccumulate-args): Fix bad grammar.
480
481 PR middle-end/32003
482 * doc/invoke.texi (-fdump-rtl-): Remove pass-specific options from
483 index.
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.
487
488 2017-02-02 Jan Hubicka <hubicka@ucw.cz>
489
490 PR middle-end/77445
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.
494
495 2017-02-02 Eric Botcazou <ebotcazou@adacore.com>
496
497 PR middle-end/78468
498 * emit-rtl.c (init_emit): Add ??? comment for problematic alignment
499 settings of the virtual registers.
500
501 Revert again
502 2016-08-23 Dominik Vogt <vogt@linux.vnet.ibm.com>
503
504 * explow.c (get_dynamic_stack_size): Take known alignment of stack
505 pointer + STACK_DYNAMIC_OFFSET into account when calculating the size
506 needed.
507
508 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
509
510 * config/s390/vx-builtins.md ("vec_ceil", "vec_floor")
511 ("vec_trunc", "vec_roundc", "vec_round"): Remove expanders.
512
513 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
514
515 * config/s390/s390.md: Add missing comments with the expanded
516 mnemonics.
517 * config/s390/vector.md: Likewise.
518 * config/s390/vx-builtins.md: Likewise.
519
520 2017-02-02 Jakub Jelinek <jakub@redhat.com>
521
522 PR target/79197
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.
526
527 2017-02-02 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
528
529 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
530 __S390_VX__ to __VX__.
531
532 2017-02-01 Andrew Pinski <apinski@cavium.com>
533
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
537 record_stmt_cost.
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
549 fields.
550 (aarch64_builtin_vectorization_cost): Update for the splitting of
551 scalar_stmt_cost and vec_stmt_cost.
552
553 2017-02-01 Torvald Riegel <triegel@redhat.com>
554 Richard Henderson <rth@redhat.com>
555
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
568 no fast atomic load.
569 (check_effective_target_sync_int_128_runtime): Likewise.
570
571 2017-02-01 Richard Biener <rguenther@suse.de>
572
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
576 parallelized loops.
577
578 2017-02-01 Richard Biener <rguenther@suse.de>
579
580 PR middle-end/79315
581 * tree-cfg.c (move_stmt_op): Never set TREE_BLOCK when it
582 was not set before.
583
584 2017-02-01 Richard Biener <rguenther@suse.de>
585
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.
591
592 2017-01-31 Ian Lance Taylor <iant@golang.org>
593
594 * config/i386/i386.c (ix86_expand_split_stack_prologue): Add
595 REG_ARGS_SIZE note to 32-bit push insns and call insn.
596
597 2017-01-31 David Malcolm <dmalcolm@redhat.com>
598
599 PR preprocessor/79210
600 * input.c (get_substring_ranges_for_loc): Replace line_width
601 assertion with error-handling.
602
603 2017-01-31 Richard Biener <rguenther@suse.de>
604
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.
610
611 2017-01-31 Jakub Jelinek <jakub@redhat.com>
612
613 * config/s390/s390.c (s390_asan_shadow_offset): New function.
614 (TARGET_ASAN_SHADOW_OFFSET): Redefine.
615
616 2017-01-31 Michael Meissner <meissner@linux.vnet.ibm.com>
617
618 PR target/78597
619 PR target/79038
620 * config/rs6000/rs6000-protos.h (convert_float128_to_int): Delete,
621 no longer used.
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
636 registers.
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.
655
656 2017-01-31 Martin Liska <mliska@suse.cz>
657
658 PR ipa/79285
659 * ipa-prop.c (ipa_free_all_node_params): Call release method
660 instead of ~sumbol_summary to not to trigger double times
661 dtor of hash_map.
662
663 2017-01-31 Aldy Hernandez <aldyh@redhat.com>
664
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.
669
670 2017-01-31 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
671
672 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Rename
673 __S390_ARCH_LEVEL__ to __ARCH__.
674
675 2017-01-31 Jakub Jelinek <jakub@redhat.com>
676
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.
680
681 2017-01-30 Alexandre Oliva <aoliva@redhat.com>
682
683 PR debug/63238
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.
700
701 2017-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com>
702
703 PR target/79170
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.
713
714 2017-01-30 Ian Lance Taylor <iant@google.com>
715
716 PR debug/79289
717 * dwarf2out.c (gen_type_die_with_usage): When picking a variant
718 for FUNCTION_TYPE/METHOD_TYPE, use the first matching one.
719
720 2017-01-30 Martin Sebor <msebor@redhat.com>
721
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.
726
727 * doc/invoke.texi (-Wformat-truncation=1): Fix typo.
728
729 2017-01-30 Maxim Ostapenko <m.ostapenko@samsung.com>
730
731 PR lto/79061
732 * asan.c (get_translation_unit_decl): Remove function.
733 (asan_add_global): Force has_dynamic_init to zero in LTO mode.
734
735 2017-01-30 Martin Liska <mliska@suse.cz>
736
737 PR gcov-profile/79259
738 * opts.c (common_handle_option): Enable flag_ipa_bit_cp w/
739 -fprofile-generate.
740
741 2017-01-30 Martin Liska <mliska@suse.cz>
742
743 PR bootstrap/78985
744 * config/aarch64/cortex-a57-fma-steering.c (func_fma_steering::analyze):
745 Initialize variables with NULL value.
746
747 2017-01-30 Richard Earnshaw <rearnsh@arm.com>
748
749 PR target/79260
750 * config.gcc (arm*-*-*): Add arm/arm-flags.h and arm/arm-isa.h to
751 tm_p_file.
752 * arm/arm-protos.h: Don't directly include arm-flags.h and arm-isa.h.
753
754 2017-01-30 Richard Biener <rguenther@suse.de>
755
756 PR tree-optimization/79276
757 * tree-vrp.c (process_assert_insertions): Properly adjust common
758 when removing a duplicate.
759
760 * gcc.dg/torture/pr79276.c: New testcase.
761
762 2017-01-30 Richard Biener <rguenther@suse.de>
763
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
767 alignment on TYPE.
768 * tree.c (build_aligned_type): Set TYPE_USER_ALIGN.
769
770 2017-01-30 Dominik Vogt <vogt@linux.vnet.ibm.com>
771
772 PR target/79240
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.
778
779 2017-01-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
780
781 PR target/79268
782 * config/rs6000/altivec.h (vec_xl): Revise #define.
783 (vec_xst): Likewise.
784
785 2017-01-27 Uros Bizjak <ubizjak@gmail.com>
786
787 * config/i386/i386.c (print_reg): Use REGNO instead of true_regnum.
788
789 2017-01-27 Bernd Schmidt <bschmidt@redhat.com>
790
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.
794
795 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
796
797 PR tree-optimization/71374
798 * lra-constraints.c (check_conflict_input_operands): New.
799 (match_reload): Use it.
800
801 2017-01-27 Vladimir Makarov <vmakarov@redhat.com>
802
803 PR target/79131
804 * lra-assigns.c (find_hard_regno_for_1): Take endianess for into
805 account to calculate conflict_set.
806
807 2017-01-27 Bin Cheng <bin.cheng@arm.com>
808
809 PR rtl-optimization/78559
810 * combine.c (try_combine): Discard REG_EQUAL and REG_EQUIV for
811 other_insn in combine.
812
813 2017-01-27 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com>
814
815 * builtin-types.def: Use unsigned_char_type_node for BT_UINT8. Use
816 uint16_type_node for BT_UINT16.
817
818 2017-01-27 David Malcolm <dmalcolm@redhat.com>
819
820 * doc/sourcebuild.texi (Testsuites): Add "GIMPLE Tests" and
821 "RTL Tests" to menu.
822 (GIMPLE Tests): New node.
823 (RTL Tests): New node.
824
825 2017-01-27 Richard Biener <rguenther@suse.de>
826
827 PR tree-optimization/79245
828 * tree-loop-distribution.c (distribute_loop): Apply cost
829 modeling also to detected patterns.
830
831 2017-01-27 Richard Biener <rguenther@suse.de>
832
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.
839
840 2017-01-27 Richard Biener <rguenther@suse.de>
841
842 PR tree-optimization/79244
843 * tree-vrp.c (remove_range_assertions): Forcefully propagate
844 out SSA names even if abnormal.
845
846 2017-01-27 Jakub Jelinek <jakub@redhat.com>
847
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.
851
852 2017-01-27 Richard Earnshaw <rearnsha@arm.com>
853
854 PR target/79239
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.
858
859 2017-01-27 Martin Liska <mliska@suse.cz>
860
861 * doc/invoke.texi (-fprofile-arcs): Document profiling support
862 for {cd}tors and C++ {cd}tors.
863
864 2017-01-27 Dominik Vogt <vogt@linux.vnet.ibm.com>
865
866 * config/s390/s390.md ("*setmem_long_and")
867 ("*setmem_long_and_31z"): Use zero_extend instead of and.
868
869 2017-01-26 Martin Sebor <msebor@redhat.com>
870
871 * gimple-ssa-sprintf.c (format_floating): Simplify the computation
872 of precision.
873
874 2017-01-26 Martin Sebor <msebor@redhat.com>
875
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.
880
881 PR middle-end/78703
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.
889
890 2017-01-26 Jakub Jelinek <jakub@redhat.com>
891
892 PR debug/79129
893 * dwarf2out.c (generate_skeleton_bottom_up): For children with
894 comdat_type_p set, just clone them, but keep the children in the
895 original DIE.
896
897 PR debug/78835
898 * dwarf2out.c (prune_unused_types): Mark all functions with DIEs
899 which have direct callers with -fvar-tracking-assignments enabled
900 in the current TU.
901 (resolve_addr): Avoid adding skeleton DIEs for DW_AT_call_origin
902 inside of type units.
903
904 2017-01-26 Martin Sebor <msebor@redhat.com>
905
906 PR middle-end/78703
907 * gimple-ssa-sprintf.c (struct result_range): Add likely and
908 unlikely counters.
909 (struct format_result): Replace number_chars, number_chars_min,
910 and number_chars_max with a single member of struct result_range.
911 Remove bounded.
912 (format_result::operator+=): Adjust.
913 (struct fmtresult): Remove bounded. Handle likely and unlikely
914 counters.
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
927 note.
928 (add_bytes): Remove.
929 (pass_sprintf_length::compute_format_length): Simplify.
930 (try_substitute_return_value): Handle likely and unlikely counters.
931
932 2017-01-26 Carl Love <cel@us.ibm.com>
933
934 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Remove
935 bogus entries for the P8V_BUILTIN_VEC_VGBBD built-ins
936
937 2017-01-26 Vladimir Makarov <vmakarov@redhat.com>
938
939 PR target/79131
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
948 iteration.
949
950 2017-01-26 Kirill Yukhin <kirill.yukhin@gmail.com>
951
952 * gcc.target/i386/avx512bw-kshiftlq-2.c: Use unsigned long long
953 constant.
954 * gcc.target/i386/avx512bw-kshiftrq-2.c: Ditto.
955
956 2017-01-26 Jakub Jelinek <jakub@redhat.com>
957
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.
967
968 2017-01-26 Marek Polacek <polacek@redhat.com>
969
970 PR c/79199
971 * fold-const.c (operand_equal_p) [COND_EXPR]: Use OP_SAME_WITH_NULL
972 for the third operand.
973
974 2017-01-26 Jakub Jelinek <jakub@redhat.com>
975
976 PR middle-end/79236
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.
984
985 2017-01-26 David Sherwood <david.sherwood@arm.com>
986
987 PR middle-end/79212
988 * gimplify.c (omp_notice_variable): Add GOVD_SEEN flag to variables in
989 all contexts.
990
991 2017-01-26 Jakub Jelinek <jakub@redhat.com>
992
993 PR target/70465
994 * reg-stack.c (emit_swap_insn): Instead of fld a; fld b; fxchg %st(1);
995 emit fld b; fld a; if possible.
996
997 * brig-builtins.def: Update copyright years.
998 * config/arm/arm_acle_builtins.def: Update copyright years.
999
1000 2017-01-25 Michael Meissner <meissner@linux.vnet.ibm.com>
1001
1002 PR target/79179
1003 * config/rs6000/vsx.md (vsx_extract_<mode>_store): Use wY
1004 constraint instead of o for the stxsd instruction.
1005
1006 2017-01-25 Carl Love <cel@us.ibm.com>
1007
1008 * config/rs6000/rs6000-c (altivec_overloaded_builtins): Fix order
1009 of entries for ALTIVEC_BUILTIN_VEC_PACKS and P8V_BUILTIN_VEC_VGBBD.
1010
1011 2017-01-25 Jonathan Wakely <jwakely@redhat.com>
1012
1013 * doc/invoke.texi (C++ Dialect Options): Fix typo.
1014
1015 2017-01-25 Richard Biener <rguenther@suse.de>
1016
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
1021 and add a comment.
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.
1025
1026 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1027
1028 PR target/79145
1029 * config/arm/arm.md (xordi3): Force constant operand into a register
1030 for TARGET_IWMMXT.
1031
1032 2016-01-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1033
1034 * doc/invoke.texi (-fstore-merging): Correct default optimization
1035 levels at which it is enabled.
1036 (-O): Move -fstore-merging from list to...
1037 (-O2): ... Here.
1038
1039 2017-01-25 Richard Biener <rguenther@suse.de>
1040
1041 PR debug/78363
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.
1047
1048 2017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com>
1049
1050 PR lto/79061
1051 * asan.c (get_translation_unit_decl): New function.
1052 (asan_add_global): Extract modules file name from globals
1053 TRANSLATION_UNIT_DECL name.
1054
1055 2017-01-24 Eric Botcazou <ebotcazou@adacore.com>
1056
1057 PR target/77439
1058 * config/arm/arm.c (arm_function_ok_for_sibcall): Add back restriction
1059 for long calls with APCS frame and VFP.
1060
1061 2017-01-24 David Malcolm <dmalcolm@redhat.com>
1062
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
1073 functions.
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
1078 __RTL functions.
1079 * function.h (struct function): Update comment for field
1080 "pass_startwith".
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
1085 accessor.
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.
1091 Don't skip dfinit.
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):
1107 New decl.
1108 * run-rtl-passes.c: New file.
1109 * run-rtl-passes.h: New file.
1110
1111 2017-01-24 Jeff Law <law@redhat.com>
1112
1113 * config/microblaze/microblaze.h (ASM_FORMAT_PRIVATE_NAME): Increase
1114 buffer size.
1115
1116 2017-01-24 Bin Cheng <bin.cheng@arm.com>
1117
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.
1122
1123 2017-01-24 Pekka Jääskeläinen <pekka@parmance.com>
1124 Martin Jambor <mjambor@suse.cz>
1125
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.
1185
1186 2017-01-24 Richard Biener <rguenther@suse.de>
1187
1188 PR translation/79208
1189 * ipa-devirt.c (odr_types_equivalent_p): Fix typo in diagnostic.
1190
1191 2017-01-24 Martin Jambor <mjambor@suse.cz>
1192
1193 PR bootstrap/79198
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
1196 and known_contexts.
1197
1198 2017-01-24 Aldy Hernandez <aldyh@redhat.com>
1199
1200 PR middle-end/79123
1201 * gimple-ssa-warn-alloca.c (alloca_call_type): Make sure
1202 casts from signed to unsigned really don't have a range.
1203
1204 2017-01-24 Markus Trippelsdorf <markus@trippelsdorf.de>
1205
1206 * gimple-ssa-sprintf.c (format_floating): Change MPFR_RNDx to
1207 GMP_RNDx for compatiblity.
1208
1209 2017-01-24 Martin Liska <mliska@suse.cz>
1210
1211 PR bootstrap/79132
1212 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Insert assert
1213 that would prevent us to call alloca with -1 as argument.
1214
1215 2017-01-24 Jakub Jelinek <jakub@redhat.com>
1216
1217 * dwarf2out.c (output_compilation_unit_header, output_file_names):
1218 Avoid -Wformat-security warning.
1219
1220 2017-01-23 Andrew Pinski <apinski@cavium.com>
1221
1222 * config/aarch64/aarch64.c (thunderx2t99_addrcost_table): Improve
1223 cost table.
1224
1225 2017-01-23 Martin Sebor <msebor@redhat.com>
1226
1227 PR middle-end/78703
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.
1238
1239 PR middle-end/78703
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.
1246
1247 PR middle-end/78703
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
1257 precision.
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.
1265
1266 2017-01-23 Jakub Jelinek <jakub@redhat.com>
1267
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):
1275 Likewise.
1276
1277 2017-01-23 Richard Biener <rguenther@suse.de>
1278
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.
1286
1287 2017-01-23 Kelvin Nilsen <kelvin@gcc.gnu.org>
1288
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.
1328
1329 2017-01-23 Andreas Tobler <andreast@gcc.gnu.org>
1330
1331 * config/aarch64/aarch64.c (aarch64_elf_asm_constructor): Increase
1332 size of buf.
1333 (aarch64_elf_asm_destructor): Likewise.
1334
1335 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
1336
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.
1341
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.
1345
1346 2017-01-23 Bin Cheng <bin.cheng@arm.com>
1347
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
1353 for root ref.
1354
1355 2017-01-23 Martin Liska <mliska@suse.cz>
1356
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
1360 instead of memcmp.
1361 (strlen_optimize_stmt): Call the renamed function.
1362
1363 2017-01-23 Michael Matz <matz@suse.de>
1364
1365 PR tree-optimization/78384
1366 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
1367
1368 2017-01-23 Richard Biener <rguenther@suse.de>
1369
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.
1373
1374 2017-01-23 Martin Jambor <mjambor@suse.cz>
1375
1376 * ipa-prop.c (load_from_param_1): Removed.
1377 (load_from_unmodified_param): Bits from load_from_param_1 put back
1378 here.
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.
1382
1383 2017-01-23 Martin Jambor <mjambor@suse.cz>
1384
1385 PR ipa/79108
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
1399 and remove.
1400 (ipa_node_params_sum): Annotate wth GTY(()).
1401 (ipa_check_create_node_params): Adjust to ipa_node_params_sum being
1402 garbage collected.
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
1408 collected.
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
1424 collected.
1425 (ipcp_transform_function): Make descriptors variable garbage
1426 collected.
1427
1428 2017-01-23 Andrew Senkevich <andrew.senkevich@intel.com>
1429
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.
1437
1438 2017-01-23 Jakub Jelinek <jakub@redhat.com>
1439 Martin Liska <mliska@suse.cz>
1440
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
1455 in memory.
1456 * tree-ssa.c (is_asan_mark_p): Do not rewrite into SSA when
1457 having the attribute.
1458
1459 2017-01-23 Martin Liska <mliska@suse.cz>
1460
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
1469 external.
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.
1474
1475 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1476
1477 * doc/install.texi (Specific): opensource.apple.com uses https
1478 now. Remove trailing slash.
1479
1480 2017-01-22 Gerald Pfeifer <gerald@pfeifer.com>
1481
1482 * README.Portability: Remove note on an Irix compatibility issue.
1483
1484 2017-01-22 Dimitry Andric <dim@FreeBSD.org>
1485
1486 * gcov.c (INCLUDE_ALGORITHM): Define.
1487 (INCLUDE_VECTOR): Define.
1488 No longer include <vector> and <algorithm> directly.
1489
1490 2017-01-21 Gerald Pfeifer <gerald@pfeifer.com>
1491
1492 * doc/extend.texi (Thread-Local): Change www.akkadia.org reference
1493 to https.
1494 * doc/invoke.texi (Code Gen Options): Ditto.
1495
1496 2017-01-21 Jan Hubicka <hubicka@ucw.cz>
1497
1498 PR lto/78407
1499 * cfg.c (update_bb_profile_for_threading): Fix updating of probablity.
1500
1501 2017-01-21 Bernd Schmidt <bschmidt@redhat.com>
1502
1503 rtl-optimization/79125
1504 * cprop.c (local_cprop_pass): Handle cases where we make an
1505 unconditional trap.
1506
1507 2017-01-20 Segher Boessenkool <segher@kernel.crashing.org>
1508
1509 PR target/61729
1510 PR target/77850
1511 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust address to
1512 read from, for big endian.
1513
1514 2017-01-20 Jiong Wang <jiong.wang@arm.com>
1515
1516 * config/aarch64/aarch64-builtins.c (aarch64_init_builtins): Register
1517 register pauth builtins for LP64 only.
1518
1519 2017-01-20 Marek Polacek <polacek@redhat.com>
1520
1521 PR c/79152
1522 * gimplify.c (should_warn_for_implicit_fallthrough): Handle consecutive
1523 non-case labels.
1524
1525 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
1526
1527 * omp-expand.c (expand_omp_simd): Clear PROP_gimple_lomp_dev regardless
1528 of safelen status.
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.
1532
1533 2017-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1534
1535 PR target/71270
1536 * config/arm/arm.c (neon_valid_immediate): Reject vector constants
1537 in big-endian mode when they are not a single duplicated value.
1538
1539 2017-01-20 Richard Biener <rguenther@suse.de>
1540
1541 * BASE-VER: Bump to 7.0.1.
1542
1543 2017-01-20 Alexander Monakov <amonakov@ispras.ru>
1544
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.
1549
1550 2017-01-20 Graham Markall <graham.markall@embecosm.com>
1551
1552 * config/arc/arc.h (LINK_SPEC): Use arclinux_nps emulation when
1553 mcpu=nps400.
1554
1555 2017-01-20 Martin Jambor <mjambor@suse.cz>
1556
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
1559 gt-hsa-common.h.
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.
1570
1571 2017-01-20 Marek Polacek <polacek@redhat.com>
1572
1573 PR c/64279
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.
1584
1585 2017-01-20 Martin Liska <mliska@suse.cz>
1586
1587 PR lto/69188
1588 * tree-profile.c (init_ic_make_global_vars): Do not call
1589 finalize_decl.
1590 (gimple_init_gcov_profiler): Likewise.
1591
1592 2017-01-20 Martin Liska <mliska@suse.cz>
1593
1594 PR ipa/71190
1595 * cgraph.h (maybe_create_reference): Remove argument and
1596 update comment.
1597 * cgraphclones.c (cgraph_node::create_virtual_clone): Remove one
1598 argument.
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.
1602
1603 2017-01-20 Martin Liska <mliska@suse.cz>
1604
1605 * read-rtl-function.c (function_reader::create_function): Use
1606 build_decl instread of build_decl_stat.
1607
1608 2017-01-20 Andrew Senkevich <andrew.senkevich@intel.com>
1609
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>.
1621
1622 2017-01-19 Segher Boessenkool <segher@kernel.crashing.org>
1623
1624 PR target/78875
1625 PR target/79140
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.
1629
1630 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
1631 Yunqiang Su <yunqiang.su@imgtec.com>
1632
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
1638 mmadd4.
1639 (TARGET_CPU_CPP_BUILTINS): Add builtin_define for
1640 __mips_no_madd4.
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.
1645
1646 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1647
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.
1654
1655 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1656
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.
1664
1665 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1666
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):
1671 New function.
1672 (aarch64_expand_prologue): Sign return address before it's pushed onto
1673 stack.
1674 (aarch64_expand_epilogue): Authenticate return address fetched from
1675 stack.
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
1683 iterators.
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=".
1689
1690 2017-01-19 Matthew Fortune <matthew.fortune@imgtec.com>
1691
1692 * doc/invoke.texi: Add missing -mlxc1-sxc1 options to
1693 overall option summary.
1694
1695 2017-01-19 Jiong Wang <jiong.wang@arm.com>
1696
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".
1701
1702 2017-01-19 Michael Meissner <meissner@linux.vnet.ibm.com>
1703
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.
1708
1709 2017-01-20 Alan Modra <amodra@gmail.com>
1710
1711 * config/rs6000/rs6000.md (cmpstrnsi, cmpstrsi): Fail if
1712 optimizing for size.
1713
1714 2017-01-20 Alan Modra <amodra@gmail.com>
1715
1716 PR target/79144
1717 * config/rs6000/rs6000.c (expand_strn_compare): Get the asm name
1718 for strcmp and strncmp from corresponding builtin decl.
1719
1720 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
1721
1722 * config.gcc (x86_64-*-rtems*): Use i386/rtemself.h
1723 instead of i386/rtems-64.h.
1724 * config/i386/rtems-64.h: Remove.
1725
1726 2017-01-19 Uros Bizjak <ubizjak@gmail.com>
1727
1728 PR target/78478
1729 Revert:
1730 2013-11-05 Uros Bizjak <ubizjak@gmail.com>
1731
1732 * config/i386/rtemself.h (LONG_DOUBLE_TYPE_SIZE): New define.
1733
1734 2017-01-19 Tamar Christina <tamar.christina@arm.com>
1735
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.
1741
1742 2017-01-19 David Malcolm <dmalcolm@redhat.com>
1743
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
1747 lto_type_for_size.
1748
1749 2017-01-19 Pat Haugen <pthaugen@us.ibm.com>
1750
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.
1755 (power9-cmp): New.
1756 (power9-mul): Update insn latency.
1757 (power9-mul-compare): Update insn latency, bypass latency and remove
1758 power9-branch.
1759
1760 2016-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1761
1762 * config/aarch64/aarch64-protos.h (aarch64_nopcrelative_literal_loads):
1763 Delete.
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.
1768
1769 2017-01-19 Chenghua Xu <paul.hua.gm@gmail.com>
1770
1771 * config/mips/mips.h (ISA_HAS_FUSED_MADD4): Enable for
1772 TARGET_LOONGSON_3A.
1773 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_LOONGSON_3A.
1774
1775 2017-01-19 Doug Gilmore <doug.gilmore@imgtec.com>
1776
1777 PR target/78176
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
1783 mlxc1-sxc1.
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.
1789
1790 2017-01-19 Richard Biener <rguenther@suse.de>
1791
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.
1796
1797 2017-01-19 Richard Earnshaw <rearnsha@arm.com>
1798
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.
1802
1803 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
1804
1805 PR lto/78407
1806 * symtab.c (symtab_node::equal_address_to): Fix comparing of
1807 interposable aliases.
1808
1809 2017-01-18 Peter Bergner <bergner@vnet.ibm.com>
1810
1811 PR target/78516
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.
1821
1822 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1823
1824 * config/rs6000/altivec.md (altivec_vbpermq): Change "type"
1825 attribute from vecsimple to vecperm.
1826 (altivec_vbpermq2): Likewise.
1827
1828 2017-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1829
1830 PR target/79040
1831 * config/rs6000/altivec.h: Fix typo of vec_cntlz to vec_cnttz.
1832
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.
1840
1841 2017-01-18 Michael Meissner <meissner@linux.vnet.ibm.com>
1842
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.
1864
1865 2017-01-18 Uros Bizjak <ubizjak@gmail.com>
1866
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.
1871
1872 2017-01-18 Wilco Dijkstra <wdijkstr@arm.com>
1873
1874 * config/aarch64/aarch64.c (aarch64_sched_adjust_priority)
1875 New function.
1876 (TARGET_SCHED_ADJUST_PRIORITY): Define target hook.
1877
1878 2017-01-18 Matthias Klose <doko@ubuntu.com>
1879
1880 * doc/install.texi: Allow default for --with-target-bdw-gc-include.
1881
1882 2016-01-18 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1883
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
1889 function interface.
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.
1895
1896 2017-01-18 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
1897
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.
1905
1906 2017-01-18 Toma Tabacu <toma.tabacu@imgtec.com>
1907
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.
1912
1913 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1914
1915 * doc/invoke.texi (fabi-version): Correct number of occurrences.
1916
1917 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1918
1919 * doc/invoke.texi (fabi-version): Spelling fix.
1920
1921 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1922
1923 PR c++/70182
1924 * doc/invoke.texi (fabi-version): Mention mangling fix for
1925 operator names.
1926
1927 2017-01-18 Markus Trippelsdorf <markus@trippelsdorf.de>
1928
1929 PR c++/77489
1930 * doc/invoke.texi (fabi-version): Document discriminator mangling.
1931
1932 2017-01-17 Segher Boessenkool <segher@kernel.crashing.org>
1933
1934 PR target/78875
1935 * config/rs6000/rs6000-opts.h (stack_protector_guard): New enum.
1936 * config/rs6000/rs6000.c (rs6000_option_override_internal): Handle
1937 the new options.
1938 * config/rs6000/rs6000.md (stack_protect_set): Handle the new more
1939 flexible settings.
1940 (stack_protect_test): Ditto.
1941 * config/rs6000/rs6000.opt (mstack-protector-guard=,
1942 mstack-protector-guard-reg=, mstack-protector-guard-offset=): New
1943 options.
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.
1948
1949 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
1950
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.
1957
1958 2017-01-17 Wilco Dijkstra <wdijkstr@arm.com>
1959
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):
1969 Remove.
1970 (aarch64_eh_return_handler_rtx): New prototype.
1971
1972 2017-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
1973
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
1983 function entry.
1984 (VRLDNM): Likewise.
1985 (RLNM): New polymorphic function entry.
1986 (VRLWMI): New monomorphic function entry.
1987 (VRLDMI): Likewise.
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
1992 vec_vrlnm.
1993
1994 2017-01-17 Jakub Jelinek <jakub@redhat.com>
1995
1996 PR debug/78839
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
2001 of build2 + fold.
2002
2003 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
2004
2005 PR ada/67205
2006 * config/aarch64/aarch64.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): Define
2007
2008 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2009
2010 PR debug/71669
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.
2015
2016 2017-01-17 Eric Botcazou <ebotcazou@adacore.com>
2017
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.
2020
2021 2017-01-17 Julia Koval <julia.koval@intel.com>
2022
2023 PR target/76731
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.
2174
2175 2017-01-17 Kito Cheng <kito.cheng@gmail.com>
2176 Kuan-Lin Chen <kuanlinchentw@gmail.com>
2177
2178 PR target/79079
2179 * internal-fn.c (expand_mul_overflow): Use convert_modes instead of
2180 gen_lowpart.
2181
2182 2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
2183
2184 PR target/79058
2185 * ira-conflicts.c (ira_build_conflicts): Update total conflict
2186 hard regs for inner regno.
2187
2188 2017-01-17 Martin Liska <mliska@suse.cz>
2189
2190 PR ipa/71207
2191 * ipa-polymorphic-call.c (contains_type_p): Fix wrong
2192 assumption and add comment.
2193
2194 2017-01-17 Nathan Sidwell <nathan@acm.org>
2195
2196 * ipa-visibility.c (localize_node): New function, broken out of ...
2197 (function_and_variable_visibility): ... here. Call it.
2198
2199 2017-01-17 Jan Hubicka <hubicka@ucw.cz>
2200
2201 PR middle-end/77445
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.
2205
2206 2017-01-17 Jakub Jelinek <jakub@redhat.com>
2207
2208 PR other/79046
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.
2219
2220 2017-01-17 Richard Biener <rguenther@suse.de>
2221
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
2226 beginning of BBs.
2227
2228 2017-01-17 Gerald Pfeifer <gerald@pfeifer.com>
2229
2230 * config/i386/cygwin.h (LIBGCJ_SONAME): Remove.
2231 * config/i386/mingw32.h (LIBGCJ_SONAME): Remove.
2232
2233 2017-01-17 Kaz Kojima <kkojima@gcc.gnu.org>
2234
2235 PR target/78633
2236 * config/sh/sh.md (cmpeqsi_t+1): Call copy_rtx to avoid invalid
2237 RTL sharing.
2238
2239 2017-01-17 Alan Modra <amodra@gmail.com>
2240
2241 PR target/79066
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.
2245
2246 2017-01-16 Martin Sebor <msebor@redhat.com>
2247
2248 PR tree-optimization/78608
2249 * gimple-ssa-sprintf.c (tree_digits): Avoid negating TYPE_MIN.
2250
2251 2017-01-16 Jeff Law <law@redhat.com>
2252
2253 Revert:
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.
2263
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.
2270
2271 2017-01-17 Uros Bizjak <ubizjak@gmail.com>
2272
2273 * config/i386/i386.h (LIMIT_RELOAD_CLASS): Remove.
2274
2275 2017-01-16 Jakub Jelinek <jakub@redhat.com>
2276
2277 PR c/79089
2278 * gimplify.c (gimplify_init_constructor): If want_value and
2279 object == lhs, unshare lhs to avoid invalid tree sharing. Formatting
2280 fix.
2281
2282 PR target/79080
2283 * loop-doloop.c (doloop_modify): Call unshare_all_rtl_in_chain on
2284 sequence. Formatting fixes.
2285 (doloop_optimize): Formatting fixes.
2286
2287 PR driver/49726
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
2291 !g0.
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.
2298
2299 2017-01-16 Uros Bizjak <ubizjak@gmail.com>
2300
2301 * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Apply HImode and
2302 QImode fixups to general and mask registers only.
2303
2304 2017-01-16 Carl Love <cel@us.ibm.com>
2305
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
2315 and NABS overload.
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
2319 functions.
2320
2321 2017-01-16 Martin Sebor <msebor@redhat.com>
2322
2323 * gimple-ssa-sprintf.c (format_directive): Correct a typo in a warning
2324 message.
2325
2326 2017-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2327
2328 * config/rs6000/rs6000.c (rtx_is_swappable_p): Change
2329 UNSPEC_VSX__XXSPLTD to require special splat handling.
2330
2331 2017-01-16 David Malcolm <dmalcolm@redhat.com>
2332
2333 PR bootstrap/78616
2334 * system.h: Poison strndup.
2335
2336 2017-01-16 Alan Modra <amodra@gmail.com>
2337
2338 PR target/79098
2339 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Don't
2340 use a switch.
2341
2342 2017-01-16 Georg-Johann Lay <avr@gjlay.de>
2343
2344 * config/avr/avr.h (BRANCH_COST) [reload_completed]: Increase by 4.
2345
2346 2017-01-15 Uros Bizjak <ubizjak@gmail.com>
2347
2348 * config/i386/i386.c (ix86_legitimate_combined_insn): Do not
2349 call recog here. Assert that INSN_CODE (insn) is non-negative.
2350
2351 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
2352
2353 PR target/72749
2354 * cfgrtl.c (rtl_split_edge): Also patch jump insns that jump to the
2355 fallthrough.
2356 * haifa-sched.c (dump_insn_stream): Don't crash if there is a label
2357 in the currently scheduled RTL fragment.
2358
2359 2017-01-15 Segher Boessenkool <segher@kernel.crashing.org>
2360
2361 PR rtl-optimization/78751
2362 * ifcvt.c (find_cond_trap): If we generated a non-existing insn,
2363 give up.
2364
2365 2017-01-14 Jeff Law <law@redhat.com>
2366
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
2372 zero length.
2373
2374 2017-01-14 Bernd Schmidt <bschmidt@redhat.com>
2375
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.
2380
2381 2017-01-14 Alan Modra <amodra@gmail.com>
2382
2383 PR target/72749
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
2389 all uses.
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.
2393
2394 2017-01-14 Gerald Pfeifer <gerald@pfeifer.com>
2395
2396 * doc/frontends.texi (G++ and GCC): Remove references to Java.
2397
2398 2017-01-13 Jeff Law <law@redhat.com>
2399
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
2404 a statement.
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.
2408
2409 2017-01-13 David Malcolm <dmalcolm@redhat.com>
2410
2411 PR c/78304
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.
2415
2416 2017-01-13 Uros Bizjak <ubizjak@gmail.com>
2417
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
2423 isa2 options.
2424 (ix86_valid_target_attribute_inner_p): Add missing options and
2425 reorder options by implied ISAs, as in ix86_target_string.
2426
2427 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
2428
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
2435 elements.
2436
2437 2017-01-13 Richard Sandiford <richard.sandiford@arm.com>
2438
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.
2442
2443 2017-01-13 Jeff Law <law@redhat.com>
2444
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.
2449
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.
2455
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
2464 dse_optimize_stmt.
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
2475 dse_optimize_stmt.
2476 (dse_optimize_stmt): Make a member of dse_dom_walker.
2477 Use initialize_ao_ref_for_dse.
2478
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.
2486
2487 2017-01-13 Martin Liska <mliska@suse.cz>
2488
2489 PR ipa/79043
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.
2494
2495 2017-01-13 Richard Biener <rguenther@suse.de>
2496
2497 * tree-pretty-print.c (dump_generic_node): Fix inverted condition
2498 for dumping GIMPLE INTEGER_CSTs.
2499
2500 2017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2501
2502 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __STDC_VERSION__
2503 to 201112L since C++17.
2504
2505 2017-01-13 Maxim Ostapenko <m.ostapenko@samsung.com>
2506
2507 PR sanitizer/78887
2508 * asan.c (asan_needs_odr_indicator_p): Don't emit ODR indicators
2509 if -fsanitize=kernel-address is present.
2510
2511 2017-01-13 Richard Biener <rguenther@suse.de>
2512
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.
2516
2517 2017-01-13 Richard Biener <rguenther@suse.de>
2518
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
2523 PHI node uses.
2524
2525 2017-01-12 Michael Meissner <meissner@linux.vnet.ibm.com>
2526
2527 PR target/79004
2528 * config/rs6000/rs6000.md (FP_ISA3): Do not optimize converting
2529 char or short to __float128/_Float128 directly.
2530
2531 2017-01-12 Martin Sebor <msebor@redhat.com>
2532
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.
2539 (add_bytes): Same.
2540 (pass_sprintf_length::handle_gimple_call): Same.
2541
2542 2017-01-12 Jakub Jelinek <jakub@redhat.com>
2543
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.
2551
2552 PR bootstrap/79069
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.
2556
2557 2017-01-12 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
2558
2559 PR target/79044
2560 * config/rs6000/rs6000.c (insn_is_swappable_p): Mark
2561 element-reversing loads and stores as not swappable.
2562
2563 2017-01-12 Nathan Sidwell <nathan@acm.org>
2564 Nicolai Stange <nicstange@gmail.com>
2565
2566 * combine.c (try_combine): Don't ignore result of overlap checking
2567 loop. Combine overlap & asm check into single loop.
2568
2569 2017-01-12 Richard Biener <rguenther@suse.de>
2570
2571 * tree-pretty-print.c (dump_generic_node): Provide -gimple
2572 variant for MEM_REF. Sanitize INTEGER_CST for -gimple.
2573
2574 2017-01-12 Richard Biener <rguenther@suse.de>
2575
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.
2580
2581 2017-01-11 Uros Bizjak <ubizjak@gmail.com>
2582
2583 * config/i386/i386.c (memory_address_length): Increase len
2584 only when rip_relative_addr_p returns false.
2585
2586 2017-01-11 Julia Koval <julia.koval@intel.com>
2587
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.
2595 (PTA_SGX): New.
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.
2602
2603 2017-01-11 Jakub Jelinek <jakub@redhat.com>
2604
2605 PR c++/71537
2606 * fold-const.c (maybe_nonzero_address): Return 1 for function
2607 local objects.
2608 (tree_single_nonzero_warnv_p): Don't handle function local objects
2609 here.
2610
2611 PR c++/72813
2612 * gcc.c (default_compilers): Don't add -o %g.s for -S -save-temps
2613 of c-header.
2614
2615 2017-01-11 David Malcolm <dmalcolm@redhat.com>
2616
2617 PR driver/78877
2618 * opts.c: Include "spellcheck.h"
2619 (struct string_fragment): New struct.
2620 (struct edit_distance_traits<const string_fragment &>): New
2621 struct.
2622 (get_closest_sanitizer_option): New function.
2623 (parse_sanitizer_options): Offer suggestions for unrecognized arguments.
2624
2625 2017-01-11 Jakub Jelinek <jakub@redhat.com>
2626
2627 * dwarf2out.c (DWARF_COMPILE_UNIT_HEADER_SIZE): For DWARF5 decrease
2628 by 12.
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
2636 fields.
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.
2640
2641 2017-01-11 Wilco Dijkstra <wdijkstr@arm.com>
2642
2643 * config/arm/cortex-a53.md: Add bypasses for
2644 cortex_a53_r2f_cvt.
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.
2649
2650 2017-01-11 Tamar Christina <tamar.christina@arm.com>
2651
2652 * config/arm/arm_neon.h: Add __artificial__ and gnu_inline
2653 to all inlined functions, change static to extern.
2654
2655 2017-01-11 Christophe Lyon <christophe.lyon@linaro.org>
2656
2657 PR target/78253
2658 * config/arm/arm.c (legitimize_pic_address): Handle reference to
2659 weak symbol.
2660 (arm_assemble_integer): Likewise.
2661
2662 2017-01-11 Richard Earnshaw <rearnsha@arm.com>
2663
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
2669 files.
2670 * config/arm/arm.c: Include arm-cpu-data.h instead of processing .def
2671 files.
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.
2685
2686 2017-01-11 Maxim Ostapenko <m.ostapenko@samsung.com>
2687
2688 PR lto/79042
2689 * lto-cgraph.c (lto_output_varpool_node): Pack dynamically_initialized
2690 bit.
2691 (input_varpool_node): Unpack dynamically_initialized bit.
2692
2693 2017-01-11 Eric Botcazou <ebotcazou@adacore.com>
2694
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.
2699
2700 2017-01-11 Martin Jambor <mjambor@suse.cz>
2701
2702 * hsa.c (hsa_callable_function_p): Revert addition of DECL_ARTIFICIAL
2703 test.
2704 * ipa-hsa.c (process_hsa_functions): Only duplicate non-artificial
2705 decorated functions.
2706
2707 2017-01-11 Richard Biener <rguenther@suse.de>
2708
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.
2712
2713 2017-01-10 Eric Botcazou <ebotcazou@adacore.com>
2714
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.
2718
2719 2017-01-10 David Malcolm <dmalcolm@redhat.com>
2720
2721 PR c++/77949
2722 * input.c (selftest::test_accessing_ordinary_linemaps): Verify
2723 that we correctly handle column numbers greater than
2724 LINE_MAP_MAX_COLUMN_NUMBER.
2725
2726 2017-01-10 Martin Sebor <msebor@redhat.com>
2727
2728 PR middle-end/78245
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.
2735
2736 2017-01-10 Martin Sebor <msebor@redhat.com>
2737
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.
2745
2746 2017-01-10 Joe Seymour <joe.s@somniumtech.com>
2747
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.
2751
2752 2017-01-10 Sandra Loosemore <sandra@codesourcery.com>
2753
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.
2758
2759 2017-01-10 Joshua Conner <joshconner@google.com>
2760
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
2765 targets.
2766 * config.host: (aarch64*-*-fuchsia*, arm*-*-fuchsia*): Add to hosts.
2767
2768 2016-01-10 Richard Biener <rguenther@suse.de>
2769
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.
2773
2774 2017-01-10 Martin Liska <mliska@suse.cz>
2775
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.
2782
2783 2017-01-10 Martin Liska <mliska@suse.cz>
2784
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.
2797
2798 2017-01-10 Andrew Senkevich <andrew.senkevich@intel.com>
2799
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.
2818
2819 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
2820
2821 PR middle-end/77484
2822 * predict.def (PRED_CALL): Set to 67.
2823
2824 2017-01-09 Eric Botcazou <ebotcazou@adacore.com>
2825
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.
2830
2831 2017-01-09 Dominique d'Humieres <dominiq@lps.ens.fr>
2832
2833 PR target/71017
2834 * config/i386/cpuid.h: Fix undefined behavior.
2835
2836 2017-01-04 Jeff Law <law@redhat.com>
2837
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.
2842
2843 2017-01-09 Jakub Jelinek <jakub@redhat.com>
2844
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
2850 in descriptions.
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):
2861 Likewise.
2862 * config/msp430/driver-msp430.c (msp430_select_hwmult_lib): Likewise.
2863 * common/config/msp430/msp430-common.c (msp430_handle_option):
2864 Likewise.
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):
2884 Adjust all uses.
2885
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
2889 loop on success.
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.
2906
2907 2017-01-09 Martin Sebor <msebor@redhat.com>
2908
2909 PR bootstrap/79033
2910 * asan.c (asan_emit_stack_protection): Increase local buffer size
2911 to avoid snprintf truncation warning.
2912
2913 2017-01-09 Andrew Pinski <apinski@cavium.com>
2914
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):
2918 Rename to ...
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.
2932
2933 2017-01-09 Martin Jambor <mjambor@suse.cz>
2934
2935 PR ipa/78365
2936 PR ipa/78599
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.
2947
2948 2017-01-09 Martin Liska <mliska@suse.cz>
2949
2950 PR pch/78970
2951 * gcc.c (driver_handle_option): Handle OPT_E and set have_E.
2952 (lookup_compiler): Do not show error message with have_E.
2953
2954 2017-01-09 Jakub Jelinek <jakub@redhat.com>
2955
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
2961 fixes.
2962
2963 2017-01-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2964
2965 * tree-ssa-address.c (gen_addr_rtx): Don't handle index if it
2966 is const0_rtx.
2967
2968 2017-01-09 Richard Biener <rguenther@suse.de>
2969
2970 PR tree-optimization/78997
2971 * tree-vect-slp.c (vect_mask_constant_operand_p): Handle SSA
2972 name condition properly.
2973
2974 2017-01-09 Richard Biener <rguenther@suse.de>
2975
2976 PR debug/79000
2977 * dwarf2out.c (is_cxx): New overload with context.
2978 (is_naming_typedef_decl): Use it.
2979
2980 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2981
2982 * invoke.texi (Option Summary): Correct spacing in option lists
2983 and add line breaks to fix over-long lines.
2984
2985 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2986
2987 PR middle-end/17660
2988
2989 * extend.texi (Common Variable Attributes): Add xref to GCC
2990 Internals manual to explain mode attribute keywords.
2991
2992 2017-01-08 Sandra Loosemore <sandra@codesourcery.com>
2993
2994 PR other/16519
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.
3001
3002 2017-01-08 Martin Sebor <msebor@redhat.com>
3003
3004 PR middle-end/77708
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.
3009 (add_bytes): Same.
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.
3015
3016 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3017
3018 PR middle-end/77484
3019 * predict.def (PRED_INDIR_CALL): Set to 86.
3020
3021 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
3022
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.
3029
3030 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
3031
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.
3036
3037 2017-01-07 Sandra Loosemore <sandra@codesourcery.com>
3038
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.
3045
3046 2017-01-07 David Malcolm <dmalcolm@redhat.com>
3047
3048 PR c++/72803
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.
3052
3053 2017-01-07 Alexandre Oliva <aoliva@redhat.com>
3054
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
3059 Optimization.
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
3064 Optimization.
3065 (fvar-tracking-assignments): Likewise.
3066 (fvar-tracking-assignments-toggle): Likewise.
3067 (fvar-tracking-uninit): Likewise.
3068
3069 2017-01-07 Jakub Jelinek <jakub@redhat.com>
3070
3071 PR translation/79018
3072 * params.def (PARAM_MAX_STORES_TO_MERGE): Add missing space between
3073 the and store.
3074
3075 2017-01-06 Mikael Pettersson <mikpelinux@gmail.com>
3076
3077 PR target/57583
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.
3090
3091 2017-01-06 Edgar E. Iglesias <edgar.iglesias@xilinx.com>
3092 David Holsgrove <david.holsgrove@xilinx.com>
3093
3094 * common/config/microblaze/microblaze-common.c
3095 (TARGET_EXCEPT_UNWIND_INFO): Remove.
3096 * config/microblaze/microblaze-protos.h (microblaze_eh_return):
3097 New prototype.
3098 * config/microblaze/microblaze.c (microblaze_must_save_register)
3099 (microblaze_expand_epilogue, microblaze_return_addr): Handle
3100 calls_eh_return.
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.
3106
3107 2017-01-06 Jakub Jelinek <jakub@redhat.com>
3108
3109 * system.h (GCC_DIAGNOSTIC_PUSH_IGNORED, GCC_DIAGNOSTIC_POP,
3110 GCC_DIAGNOSTIC_STRINGIFY): Define.
3111
3112 * read-rtl.c (rtx_reader::read_rtx_code): Avoid -Wsign-compare warning.
3113
3114 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3115
3116 * config/arm/arm.md (<mcrr>): New.
3117 (<mrrc>): 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
3121 and mrrc2.
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,
3127 __arm_mrrc2): New.
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.
3133
3134 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3135
3136 * config/arm/arm.md (<mcr>): New.
3137 (<mrc>): 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,
3147 __arm_mrc2): New.
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,
3151 VUNSPEC_MRC2): New.
3152
3153 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3154
3155 * config/arm/arm.md (*ldc): New.
3156 (*stc): New.
3157 (<ldc>): New.
3158 (<stc>): 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.
3179
3180 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3181
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.
3190 (void_UP): Define.
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.
3196 (__arm_cdp2): New.
3197 * config/arm/arm_acle_builtins.def (cdp): New.
3198 (cdp2): New.
3199 * config/arm/iterators.md (CDPI,CDP,cdp): New.
3200 * config/arm/neon.md: Rename all 'neon_const_bounds' to
3201 'arm_const_bounds'.
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.
3207
3208 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3209
3210 * config/arm/arm-builtins.c (arm_unsigned_binop_qualifiers): New.
3211 (UBINOP_QUALIFIERS): New.
3212 (si_UP): Define.
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.
3229
3230 2017-01-06 Andre Vieira <andre.simoesdiasvieira@arm.com>
3231
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.
3253
3254 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3255
3256 PR middle-end/77484
3257 * predict.def (PRED_POLYMORPHIC_CALL): Set to 59.
3258 * predict.c (tree_estimate_probability_bb): Reverse direction of
3259 polymorphic call predictor.
3260
3261 2017-01-06 David Malcolm <dmalcolm@redhat.com>
3262
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.
3266
3267 2017-01-06 Nathan Sidwell <nathan@acm.org>
3268
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.
3273
3274 2017-01-06 Martin Liska <mliska@suse.cz>
3275
3276 PR bootstrap/79003
3277 * lra-constraints.c: Rename invariant to lra_invariant.
3278 * predict.c (set_even_probabilities): Initialize e to NULL.
3279
3280 2017-01-05 Martin Sebor <msebor@redhat.com>
3281
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..
3286
3287 2017-01-05 Eric Botcazou <ebotcazou@adacore.com>
3288
3289 * doc/invoke.texi (C Dialect Options): Adjust -fsso-struct entry.
3290
3291 2017-01-05 Jakub Jelinek <jakub@redhat.com>
3292
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.
3299 Formatting fix.
3300
3301 2017-01-05 David Malcolm <dmalcolm@redhat.com>
3302
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
3321 "static".
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
3332 than failing.
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
3347 of rtx_reader.
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
3384 logic to...
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
3400 return_rtx.
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
3414 dumps.
3415
3416 2017-01-05 Uros Bizjak <ubizjak@gmail.com>
3417
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.
3420
3421 2017-01-05 Jakub Jelinek <jakub@redhat.com>
3422
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.
3426
3427 2017-01-05 Martin Liska <mliska@suse.cz>
3428
3429 * hsa-gen.c (gen_hsa_divmod): New function.
3430 (gen_hsa_insn_for_internal_fn_call): Use the function for IFN_DIVMOD.
3431
3432 2017-01-05 Martin Liska <mliska@suse.cz>
3433
3434 PR pch/78970
3435 * gcc.c (lookup_compiler): Reject '-' filename for a precompiled
3436 header.
3437
3438 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3439
3440 * config/s390/s390.c (s390_expand_setmem): Unroll the loop for
3441 small constant length operands.
3442
3443 2017-01-05 Andreas Krebbel <krebbel@linux.vnet.ibm.com>
3444
3445 * config/s390/s390.c (s390_expand_setmem): Avoid overlapping bytes
3446 between loop iterations.
3447
3448 2017-01-05 Martin Liska <mliska@suse.cz>
3449
3450 PR sanitizer/78815
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.
3457
3458 2017-01-04 Jeff Law <law@redhat.com>
3459
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.
3467
3468 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3469
3470 * input.c (assert_char_at_range): Default-initialize actual_range.
3471
3472 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3473
3474 * df-scan.c (df_ref_create_structure): Make regno unsigned,
3475 to match the caller.
3476
3477 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3478
3479 * cfgexpand.c (expand_gimple_basic_block): Disregard debug
3480 insns after final jump in test to emit dummy move.
3481
3482 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3483
3484 * gimple-iterator.h (gsi_one_nondebug_before_end_p): New.
3485 * tree-eh.c (cleanup_empty_eh): Skip more debug stmts.
3486
3487 2017-01-04 Alexandre Oliva <aoliva@redhat.com>
3488
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
3492 scalar_type.
3493
3494 2017-01-04 Michael Meissner <meissner@linux.vnet.ibm.com>
3495
3496 PR target/71977
3497 PR target/70568
3498 PR target/78823
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
3513 SImode and SFmode.
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
3524 SImode and SFmode.
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.
3541
3542 2017-01-04 Marek Polacek <polacek@redhat.com>
3543
3544 PR c++/64767
3545 * doc/invoke.texi: Document -Wpointer-compare.
3546
3547 2017-01-04 Jakub Jelinek <jakub@redhat.com>
3548
3549 * optc-gen.awk: Emit #error for -W*/-f*/-m* Enum without
3550 RejectNegative.
3551
3552 * dwarf2out.c (output_loc_list): Don't throw away 64K+ location
3553 descriptions for -gdwarf-5 and emit them as uleb128 instead of
3554 2-byte data.
3555
3556 2017-01-04 Kelvin Nilsen <kelvin@gcc.gnu.org>
3557
3558 PR target/78056
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
3572 been disabled.
3573 (htm_init_builtins): Add comment explaining why definition of the
3574 htm built-in functions is not preceded by an assertion check.
3575
3576 2017-01-04 Jeff Law <law@redhat.com>
3577
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
3582 unconditionally.
3583
3584 2017-01-04 Uros Bizjak <ubizjak@gmail.com>
3585
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.
3588
3589 2017-01-04 Jakub Jelinek <jakub@redhat.com>
3590
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.
3594
3595 2017-01-04 Alan Modra <amodra@gmail.com>
3596
3597 * Makefile.in (aclocal_deps): Update and order as per aclocal.m4.
3598 * configure: Regenerate.
3599 * config.in: Regenerate.
3600
3601 2017-01-04 Jakub Jelinek <jakub@redhat.com>
3602
3603 PR bootstrap/77569
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.
3607
3608 2017-01-03 Jeff Law <law@redhat.com>
3609
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.
3616
3617 2017-01-03 Michael Meissner <meissner@linux.vnet.ibm.com>
3618
3619 PR target/78900
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>.
3629
3630 PR target/78953
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.
3635
3636 2017-01-03 Ian Lance Taylor <iant@google.com>
3637
3638 * godump.c (go_format_type): Treat ENUMERAL_TYPE like INTEGER_TYPE.
3639
3640 2017-01-03 Martin Sebor <msebor@redhat.com>
3641
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
3645 of %g.
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.
3649
3650 2017-01-03 David Edelsohn <dje.gcc@gmail.com>
3651
3652 * doc/invoke.texi (RS6000 options): LRA is enabled by default.
3653
3654 2017-01-03 Eric Botcazou <ebotcazou@adacore.com>
3655
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.
3659
3660 2017-01-03 James Cowgill <James.Cowgill@imgtec.com>
3661
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.
3665
3666 2017-01-03 Gerald Pfeifer <gerald@pfeifer.com>
3667
3668 * doc/md.texi (Standard Names): Remove reference to Java frontend.
3669
3670 2017-01-03 Pierre-Marie de Rodat <derodat@adacore.com>
3671
3672 * dwarf2out.c (gen_enumeration_type_die): When
3673 -gno-strict-dwarf, add a DW_AT_encoding attribute.
3674
3675 2017-01-03 Jakub Jelinek <jakub@redhat.com>
3676
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.
3681
3682 PR middle-end/78901
3683 * gimple-ssa-sprintf.c (try_substitute_return_value): Don't change
3684 possibly throwing calls.
3685
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.
3689
3690 2017-01-02 Jeff Law <law@redhat.com>
3691
3692 * config/darwin-driver.c (darwin_driver_init): Const-correctness
3693 fixes for first_period and second_period variables.
3694
3695 2017-01-02 Uros Bizjak <ubizjak@gmail.com>
3696
3697 PR target/78967
3698 * config/i386/i386.md (UNSPEC_NOREX_MEM): New unspec.
3699 (*insvqi_1): New insn pattern.
3700 (*insvqi_1_mem_rex64): Ditto.
3701 (*insvqi_2): Ditto.
3702 (*insvqi_3): Rename from *insvqi.
3703
3704 (*extzvqi_mem_rex64): Add UNSPEC_NOREX_MEM tag.
3705
3706 2017-01-02 Gerald Pfeifer <gerald@pfeifer.com>
3707
3708 * doc/cfg.texi (Edges): Remove reference to Java.
3709 (Maintaining the CFG): Ditto.
3710
3711 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3712
3713 PR middle-end/77674
3714 * symtab.c (symtab_node::binds_to_current_def_p): Fix handling of
3715 transparent aliases.
3716
3717 2017-01-01 Jan Hubicka <hubicka@ucw.cz>
3718
3719 PR middle-end/77484
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.
3724
3725 2017-01-01 Jakub Jelinek <jakub@redhat.com>
3726
3727 Update copyright years.
3728
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.
3741 \f
3742 Copyright (C) 2017 Free Software Foundation, Inc.
3743
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.